最近因?yàn)閷W(xué)習(xí)開(kāi)發(fā)需要,要開(kāi)始接觸一些視覺(jué)相關(guān)的內(nèi)容,拿到了一個(gè)Inter 的D435i深度相機(jī),記錄一下在Ubuntu18環(huán)境下配置SDK 包的歷程
寫(xiě)在開(kāi)頭
注意 :
Intel官方最新版的librealsense版本與ROS1的ROS Wrapper是 版本不一致的,且ROS Wrapper支持的是較低版本的SDK ,具體可以去網(wǎng)站查看
最新的SDK 支持ROS2 Wrapper
如果完全按照后文從git倉(cāng)庫(kù)克隆的方法安裝的話,一般安裝的都是最新版的librealsense以及ROS2 Wrapper,兩者一般情況下是相互匹配的。如果是手動(dòng)安裝或是從其他地方離線獲取了庫(kù)文件,就可能存在版本不匹配的問(wèn)題,查看librealsense的版本方法如下:
在librealsense/
目錄下,打開(kāi)package.xml
文件,第十行左右有版本描述<version>2.51.1</version>
以該版本為例,其支持的SDK 為v2.51.1
,與ROS2 Wrapper 4.51.1
相匹配
ROS1 Wrapper支持較老版本的SDK
因此如果使用的是ROS1環(huán)境,建議手動(dòng)下載sdk包,以及支持Ros1與librealsense v2.50.0的ROS Wrapper,后文的克隆倉(cāng)庫(kù)步驟就可以跳過(guò)了。
Intel官網(wǎng)的安裝文檔
文檔鏈接
安裝須知(來(lái)自官網(wǎng))
- D435i is supported on Linux, Windows 10. Requires FW 5.11.6.250+.
SDK安裝(拔掉相機(jī)進(jìn)行)
-
更新Linux內(nèi)核:
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
-
克隆遠(yuǎn)端倉(cāng)庫(kù)
git clone https://github.com/IntelRealSense/librealsense.git
-
安裝依賴
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
-
在克隆的本地倉(cāng)庫(kù)路徑下,
cd librealsense\
-
運(yùn)行許可腳本
./scripts/setup_udev_rules.sh
-
下載并編譯內(nèi)核模塊
./scripts/patch-realsense-ubuntu-lts.sh
-
注意,這一步的代碼運(yùn)行時(shí)間會(huì)很長(zhǎng),要耐心等待
remote :Counting objects
運(yùn)行完畢,約有1.5Gb的內(nèi)容要獲取與下載: -
安裝結(jié)束:
-
-
安裝硬件基礎(chǔ)包:
cd ./scripts/
./patch-arch.sh
SDK編譯
- 在librealsense根目錄下創(chuàng)建
build
文件夾:mkdir build && cd build
- 使用
cmake ..
預(yù)編譯,有以下三種具體方式-
cmake ..
:默認(rèn)構(gòu)建設(shè)置為在Debug模式下生成核心共享對(duì)象和單元測(cè)試二進(jìn)制文件。使用-DCMAKE_BUILD_TYPE=Release
進(jìn)行優(yōu)化構(gòu)建。 -
cmake ../ -DBUILD_EXAMPLES=true
:同時(shí)編譯demos和tutorials ——我使用這個(gè) -
cmake ../ -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=false
:針對(duì)沒(méi)有OpenGL 或X11的系統(tǒng)
-
- 清除安裝,生成項(xiàng)目,安裝至系統(tǒng):
sudo make uninstall && make clean && make && sudo make install
- 注意,這一步如果因?yàn)榫W(wǎng)絡(luò)原因無(wú)法連接到‘libcurl’,可以去github手動(dòng)下載,然后修改
/librealsense/CMake
目錄下的external_libcurl.cmake
文件,注釋掉20行左右的GIT_REPOSITORY "https://github.com/curl/curl.git"
-
下載 后的文件夾改名為
libcurl
存放于目錄/librealsense/build/third-party
下 - 如果出現(xiàn)報(bào)錯(cuò):
gcc: internal compiler error
,可能是因?yàn)樵O(shè)備沒(méi)有足夠的運(yùn)行內(nèi)存,可以嘗試關(guān)掉一些正在運(yùn)行的app再次make一下,確保RAM大于2GB(虛擬機(jī)注意)
- 注意,這一步如果因?yàn)榫W(wǎng)絡(luò)原因無(wú)法連接到‘libcurl’,可以去github手動(dòng)下載,然后修改
相機(jī)試運(yùn)行
進(jìn)入文件目錄build/examples/capture
根目錄下,插上相機(jī),運(yùn)行./rs-capture
此時(shí)理論上會(huì)出現(xiàn)相機(jī)捕捉到的圖像和深度圖,而我在第一次運(yùn)行時(shí)沒(méi)有顯示圖像,并出現(xiàn)報(bào)錯(cuò):
RealSense error calling rs2_pipeline_wait_for_frames(pipe:0x557831ce1260):
Frame didn't arrive within 15000
說(shuō)明通過(guò)py文件并沒(méi)有正常啟動(dòng)攝像頭,相關(guān)問(wèn)題可查看:
https://github.com/IntelRealSense/librealsense/issues/2639
細(xì)細(xì)研究了一波他們的討論后,認(rèn)為應(yīng)該是usb連接線以及電腦插口的問(wèn)題,在命令行輸入realsense-viewer
,發(fā)現(xiàn)相機(jī)已經(jīng)被電腦讀取到,只是USB 端口是2.1
解決辦法就是更換線材或是嘗試升級(jí)固件,升級(jí)固件可參考realsense升級(jí)固件Firmware
再次嘗試./rs-capture
,即可正常顯示:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-471406.html
安裝ROS Wrapper
官網(wǎng)教程
本部分一定要在前一步相機(jī)驅(qū)動(dòng)安裝好后進(jìn)行文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-471406.html
- 創(chuàng)建工作空間
mkdir -p ~/Vision_ws/src
- 進(jìn)入工作空間
cd ~/Vision_ws/src
- 克隆倉(cāng)庫(kù)代碼(在src目錄下):
git clone https://github.com/IntelRealSense/realsense-ros
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1
cd ..
git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
- 編譯工作空間
- 定義workspace:
catkin_init_workspace
(src中) cd ..
catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install
- 定義workspace:
- 定義環(huán)境變量:
- bash終端:
echo "source ~/Vision_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
- zsh終端:
echo "source ~/Vision_ws/devel/setup.zsh" >> ~/.zshrc
source ~/.zshrc
- bash終端:
- 在ROS中測(cè)試相機(jī)節(jié)點(diǎn)
roslaunch realsense2_camera rs_camera.launch
到了這里,關(guān)于Ubuntu18.04安裝配置使用Intel RealSense D435i深度相機(jī)以及在ROS環(huán)境下配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!