Jetson Nano安裝及使用RealSenseD435/D455

能在Jetson Nano上使用RealSense獲取影像深度資訊可以將材料費壓到一萬元出頭,做各式各樣立體視覺的專題。

自駕車是一直以來十分熱門的議題,但在早期的自駕車研發中,都會用上動輒數十萬、甚至到百萬的Lidar。Google早期研發的自駕車,為了全方位的安全,在一台車上就裝了四顆Lidar。過去想要體驗或研發自駕車跟立體視覺,通常都要先花一筆不小的費用。而現在想要體驗立體視覺,並製作自駕車的門檻已經大幅降低。Intel開發的景深攝影機RealSense D435提供的即時影像深度資訊,讓使用者可以在萬元以內體驗立體視覺,而且RealSense體積小,可以輕易地用於各式各樣有趣的應用。

本篇文章要跟大家介紹如何在Jetson Nano上安裝RealSense套件,以及一些簡易的應用。讓對影像深度資訊有興趣,又有一片Jetson Nano的使用者可以輕鬆入門。內文將會著重在RealSense於Jetson Nano上的應用,建議對Jetson Nano或是Linux系統有一些基礎再往下閱讀。

本文大綱

  • 在Jetson Nano上安裝RealSense套件
  • 測試RealSense的官方範例
  • Jetson Nano搭配RealSenseD435溫度實測
作者/攝影  蔡雨錡
時間  3小時
難度  ★★☆☆☆
材料表

在Jetson Nano上安裝RealSense套件

安裝RealSense是參考JetsonHacks的教學完成的,這個網站上有很多NVIDIA Jetson系列的文章以及影片,Github也十分豐富,誠摯地推薦給正在研究NVIDIA Jetson系列硬體的開發者。

安裝過程中會有幾個需要輸入密碼的地方,所耗費時間總約半小時。

Step 1. 設定Swapfile以解決記憶體不足的問題

git clone https://github.com/jetsonhacksnano/installSwapfile
cd installSwapfile
 ./installSwapfile.sh

重新啟動一下

sudo reboot

Step 2. 安裝RealSense套件

以下步驟僅供D435使用,如使用D455請直接看補充說明。安裝的一開始,會跳出警告要你檢查沒有任何RealSense接在Jetson Nano上,確認完畢後按任意鍵就可以繼續安裝了。

git clone https://github.com/jetsonhacksnano/installLibrealsense
cd installLibrealsense
./installLibrealsense.sh
./buildLibrealsense.sh

 

補充說明:如果使用的RealSense型號為D455,請按照以下步驟處理

補充一:

git clone https://github.com/jetsonhacksnano/installLibrealsense
cd installLibrealsense
./installLibrealsense.sh

補充二:檢查JetPack套件的版本,輸入指令

sudo apt-cache show nvidia-jetpack

 

補充三:修改buildLibrealsense.sh內容

LIBREALSENSE_VERSION=v2.31.0
#修改一:D455不支援v2.31.0,修改為LIBREALSENSE_VERSION=v2.38.1

#===========================

NVCC_PATH=/usr/local/cuda-10.0/bin/nvcc
#修改二:如Jetpack為4.4以上,修改為NVCC_PATH=/usr/local/cuda-10.2/bin/nvcc
#===========================

time make -j$(($NUM_CPU - 1))
time make 
#修改三:刪除檔案中的time指令,修改為
make -j$(($NUM_CPU - 1))
make
 
#===========================

/usr/bin/cmake ../ -DBUILD_EXAMPLES=true -DFORCE_LIBUVC=true -DBUILD_WITH_CUDA="$USE_CUDA" -DCMAKE_BUILD_TYPE=release -DBUILD_PYTHON_BINDINGS=bool:true

#修改四:輸出為Python3的函式庫,修改為/usr/bin/cmake ../ -DBUILD_EXAMPLES=true -DFORCE_LIBUVC=true -DBUILD_WITH_CUDA="$USE_CUDA" -DCMAKE_BUILD_TYPE=release -DBUILD_PYTHON_BINDINGS=bool:true -DPYTHON_EXECUTABLE=/usr/bin/python3

 

補充四:

sh ./buildLibrealsense.sh

 

安裝一個缺失的套件

sudo apt-get install libcanberra-gtk-module libcanberra-gtk3-module

安裝完後再次重新啟動

sudo reboot

安裝完成了,接下來就是測試範例讓RealSense動起來!

測試RealSense

打開terminal輸入以下指令,會跳出RealSense的操作界面。

realsense-viewer

將RealSense接上Jetson Nano後可以看到右上角建議你更新RealSense的韌體。點選「Install」更新,這邊會花一些時間。更新完成後如下圖。

將左側面板上的「Stereo Module」、「RGB Camera」都設定為「on」,就可以看到以下畫面,除了RGB Camera 拍到的串流影像之外,還有深度計算影像結果,可以看到兩個畫面的邊界有點差異,那是因為深度影像是多顆鏡頭的綜合結果,彩色影像是RealSense上 RGB Camera直接拍攝到的影像。

2D的兩個模式都有許多可以調整的參數,可以點選標題左側的三角形展開參數列表做調整。

3D模式下可以旋轉,可以下載3D點雲的檔案。有興趣的人可以進一步將檔案製作成可以3D列印的版本。

測試RealSense的官方範例

主要RealSense D435會用到的範例如下,下方包含T265的範例程式是針對追縱攝影機T265,在此不多著墨。

1.Tutorial 1 – 一個用ASCII顯示圖形的畫面

a.使用程式:python-tutorial-1-depth.py
b.執行成果圖:用ASCII code顯示深度影像

2.NumPy and OpenCV  – 測試OpenCV跟NumPy是否能順利使用

a.使用程式:opencv_viewer_example.py
b.執行成果圖:基礎的輪廓圖

3.Stream Alignment – 簡易的去背程式

a.使用程式:align-depth2color.py
b.執行成果圖:去背即時影像

4.RS400 Advanced Mode – 用於控制D400攝像機不同選項的高級模式界面範例

使用程式:python-rs400-advanced-mode-example.py

5.Realsense Backend – 使用後端接口控制設備的範例

使用程式:pybackend_example_1_general.py

6.Read bag file有關如何讀取bag文件並使用著色器在噴射色圖中顯示記錄的深度流的範例

使用程式:read_bag_example.py

7.Box Dimensioner Multicam – 用於控制D400攝像機不同選項的高級模式界面範例

使用程式:box_dimensioner_multicam_demo.py

8.Realsense over Ethernet  – 透過乙太網路做影像串流的教學文件

Jetson Nano搭配RealSenseD435溫度實測

點選「Software/軟體」搜尋Psensor並安裝,可以協助你監控Jetson Nano的溫度。

可以發現沒有加上風扇執行RealSense相關程式的時候,Jetson Nano溫度會高達52度。

有加上風扇後,執行RealSense相關程式的時候,自動降溫可以將系統維持在40 度上下。

可以參考Jetson Nano散熱風扇的教學,在terminal輸入以下指令:

sudo sh -c 'echo 255 > /sys/devices/pwm-fan/target_pwm'

強制將風扇風速調整至100%,就可以在五分鐘內降溫到24度左右!

所以建議想要在Jetson Nano上玩RealSense的人都幫它裝一顆風扇,讓開發板在適當的溫度下運作,可以延長開發板的使用壽命。

對Jetson Nano搭配RealSense有興趣的使用者,請繼續追蹤後續文章,或是有什麼感興趣的相關主題都可以跟我們分享唷!

4 thoughts on “Jetson Nano安裝及使用RealSenseD435/D455

  1. 林暘舜 says:

    您好,我是國立東華大學電機系孫宗瀛教授的研究生,因最近也在研究如何使用Realsense搭配Jetson Nano,但由於我們使用的是較為舊版的F200,而非文中的D435,因此在使用時Jetson Nano一直無法辨識出這項裝置,使用realsense-viewer時,也讀取不到,想請問您是否有方法能夠解決這項問題,另外想再請問一下是否有使用D435的應用影片或是其他應用的結果能夠提供參考,未來若有需求採購的話,想參考一下是否符合需求

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *