因為工作需要在SL1680上使用深度攝像頭,因此選用RealSense D455深度攝像頭。而 Intel RealSense 深度攝像頭則提供了先進的 3D 感知和計算機視覺功能,適用於機器人、無人機及 3D 掃描等多種場景。RealSense能在Yocto上建置SDK,建置的過程中遇到USB相容問題,針對此問題找到解法,製作本篇博文分享給大家。
►硬體與軟體準備
硬體:
- Synaptics SL1680 開發板
- Intel RealSense D455深度攝像頭(如 D435 或 D455型號)
軟體:
- Synaptics SDK建置
- Intel RealSense SDK(librealsense)
►Yocto 編譯環境
當前使用Ubuntu 22.04版本,其他詳細系統建置及工具操作,參考官方github提供的網頁,其中1.4.0依據版本做調整,網址如下:
https://synaptics-astra.github.io/doc/v/1.4.0/linux/index.html
需要先安裝Docker:
sudo apt install docker.io
sudo adduser ${USER} docker
newgrp docker
newgrp ${USER}
建置docker環境,之後每次要編譯系統時,皆需要執行指令:
docker run --rm -it -v $(pwd):$(pwd) ghcr.io/synaptics-astra/crops:1.0.0 --workdir=$(pwd)
下載sdk,需要依照版本進行調整下載,更改v1.x.x即可,指令如下:
git clone -b v1.4.0 --recurse-submodules https://github.com/synaptics-astra/sdk
進入sdk並source環境
cd sdk
source meta-synaptics/setup/setup-environment
選擇開發板,本專案使用SL1680,開始編譯,指令如下:
bitbake astra-media
如果發生錯誤,重複使用bitbake astra-media指令,如果還無法持續編譯,需查看哪個軟體出問題,假設linux-syna出問題,範例如下:
bitbake -c cleansstate linux-syna
bitbake linux-syna
bitbake astra-media
編譯完成,檔案會在下方路徑
sdk/build-sl1680/tmp/deploy/images/sl1680/SYNAIMG
程式碼編譯需要開發SDK,用於在電腦開發端程式碼編譯使用,指令如下:
bitbake astra-media -c do_populate_sdk
►Intel RealSense
Github上下載meta-intel-realsense版本需要選擇kirkstone,指令如下:
cd sdk
git clone https://github.com/IntelRealSense/meta-intel-realsense.git -b kirkstone
進入sdk/build-sl1680路徑找到conf/bblayers.conf,增加下面內容:
BBLAYERS += "path/to/meta-intel-realsense"
進入sdk/build-sl1680路徑找到conf/local.conf,增加下面內容:
IMAGE_INSTALL:append = " librealsense2 librealsense2-tools"
IMAGE_INSTALL:append = " librealsense2-examples librealsense2-debug-tools"
進入sdk/meta-intel-realsense/recipes-support/librealsense路徑,找到librealsense2_2.50.0.bb進入後,新增及修改下面地方:
PACKAGECONFIG[rsusb] = "-DFORCE_RSUSB_BACKEND:BOOL=ON,-DFORCE_RSUSB_BACKEND:BOOL=ON"
PACKAGECONFIG_pn-librealsense2 = "rsusb"
回到sdk/build-sl1680路徑,執行重新編譯:
bitbake -f linux-syna -c compile
bitbake linux-syna -c deploy
bitbake -f astra-media
燒錄至開發板後,將RealSense裝置接入USB3接口,進行指令測試:
adb shell
rs-enumerate-devices
執行成功會看到下面畫面:
►小結
通過本文,我們展示了如何在 Synaptics SL1680 平台上使用 Yocto 集成 Intel RealSense 深度攝像頭。從硬體和軟體的準備、Yocto 環境配置,到內核調整及最終測試,我們逐步完成了開發環境的構建與驗證。希望這篇博文對你有所幫助,謝謝你的閱讀!。
►參考
Yocto Layer for librealsense https://github.com/IntelRealSense/meta-intel-realsense
Synaptics Astra SDK Documentation https://synaptics-astra.github.io/doc/
►Q&A
Q1: SL1680 支援哪些 Intel RealSense 型號?
A1: 支援 D415、D435、L515 等,但需確保 USB 接口供電和內核驅動支持。
Q2: 如何確認 Intel RealSense 驅動是否正確安裝?
A2: 執行 rs-enumerate-devices,若顯示攝像頭信息,則驅動安裝成功。
Q3: 如何在 Yocto 中添加驅動?
A3: 編輯 local.conf 的 IMAGE_INSTALL:append 添加驅動包,或調整內核配置啟用對應模塊。
Q4: Intel RealSense SDK 支援哪些開發語言?
A4: 支援 C++、Python 等多種語言,適用於開發深度感知和點雲處理應用。
Q5: 如果內核升級,是否需要重新編譯 SDK?
A5: 是的,內核升級後可能需要重新編譯 librealsense 以適配新版本。
評論