ROS kinetic外接Realsense D435i跑ORB_SLAM2教程
本機(jī)環(huán)境:window10+vmware+ubuntu16.04+ROS kinetic+Intel Realsense D435i
基本步驟就四步:
??1.配置好Realsense的SDK以及ros_realsense
??2.配置ORB_SLAM2所需環(huán)境及編譯ORB_SLAM2
??3.調(diào)整相機(jī)參數(shù)(相機(jī)標(biāo)定)
??4.修改源文件,運(yùn)行程序
1.配置Realsense的SDK以及ros_realsense
詳細(xì)過(guò)程參考:ubuntu16.04 kinetic外接Intel Realsense D435i配置教程
2.配置ORB_SLAM2所需環(huán)境及編譯ORB_SLAM2
執(zhí)行代碼如下:
# 安裝 g++ $ sudo apt-get install gcc g++ # 安裝 Pangolin $ sudo apt-get install libglew-dev #安裝Glew $ sudo apt-get install cmake #安裝CMake $ sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev #安裝Boost $ sudo apt-get install libpython2.7-dev #安裝Python2'Python3 $ git clone https://github.com/stevenlovegrove/Pangolin.git $ cd Pangolin $ mkdir build $ cd build $ cmake -DCPP11_NO_BOOST=1 .. $ make $ sudo make # 安裝Opencv $ sudo apt-get update $ sudo apt-get install libcv-dev# 安裝Eigen $ sudo apt-get install libeigen3-dev# 安裝BLAS,LAPACK $ sudo apt-get install libblas-dev $ sudo apt-get install liblapack-dev# 編譯ORB SLAM2 $ cd catkin_ws/src $ git clone https://github.com/raulmur/ORB_SLAM2.git $ cd ORB_SLAM2 $ chmod +x build.sh $ ./build.sh #如果運(yùn)行電腦卡死的話,請(qǐng)修改build.sh文件中所有的make -j為make $ ./build_ros.sh參考:https://www.jianshu.com/p/dbf39b9e4617
3.調(diào)整相機(jī)參數(shù)
其實(shí)這個(gè)過(guò)程就是相機(jī)標(biāo)定的過(guò)程,網(wǎng)上關(guān)于相機(jī)標(biāo)定有很多方法:
??1)用matlab/usb_cam手動(dòng)標(biāo)定
??2)自動(dòng)標(biāo)定(未實(shí)現(xiàn)),參考:https://www.jianshu.com/p/9e3d31ba35da
??3)利用話題訂閱標(biāo)定(本例使用):
本例使用的是比較簡(jiǎn)單操作的方法
首先確定相機(jī)標(biāo)文件路徑為任意一個(gè)yaml文件:/home/max/ORB_slam2_test/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml
標(biāo)定文件修改內(nèi)容:fx,fy,cx,cy,bf
獲得修改值,執(zhí)行步驟如下圖(roslaunch可修改,取決于想用哪個(gè)攝像頭,也可以rs_camera.launch):
fx,fy,cx,cy按照:
由K依次得到fx,cx,fy,cy
注意:D435i baseline為50mm
相機(jī)標(biāo)定參考:https://blog.csdn.net/Carminljm/article/details/86353775?spm=1001.2014.3001.5501
4.修改源文件,運(yùn)行程序
??可使用RGB-D,可使用單目,在此介紹兩種。運(yùn)行之前都要首先訂閱指定話題(rgbd要改兩個(gè),Mono改一個(gè))
??1)使用RGB-D:
??修改源文件路徑:/home/max/ORB_slam2_test/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src/ros_rgbd.cc
??修改內(nèi)容:訂閱話題,改成下圖這樣:
??修改后再./build_ros.sh
??然后三個(gè)終端再執(zhí)行命令(2,3的順序無(wú)所謂。參數(shù)可以絕對(duì)路徑,可以相對(duì)路徑,相對(duì)路徑的話必須在ORB_SLAM2的包下面):
roscore rosrun ORB_SLAM2 RGBD /home/max/ORB_slam2_test/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/max/ORB_slam2_test/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/my.yaml roslaunch realsense2_camera rs_rgbd.launch
??2)使用單目
??修改源文件路徑:
/home/max/ORB_slam2_test/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src/ros_mono.cc
??修改內(nèi)容:訂閱話題,改成下圖這樣:
??修改后再./build_ros.sh
??然后再執(zhí)行命令(2,3的順序無(wú)所謂。參數(shù)可以絕對(duì)路徑,可以相對(duì)路徑,相對(duì)路徑的話必須在ORB_SLAM2的包下面):
roscore rosrun ORB_SLAM2 Mono /home/max/ORB_slam2_test/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/max/ORB_slam2_test/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/my.yaml roslaunch realsense2_camera rs_camera.launch注意:修改yaml文件后一定要./build_ros.sh
常見(jiàn)報(bào)錯(cuò)
運(yùn)行build_ros.sh時(shí)可能會(huì)報(bào)錯(cuò),報(bào)錯(cuò)信息如下:
/usr/bin/ld: CMakeFiles/RGBD.dir/src/ros_rgbd.cc.o: undefined reference to symbol ‘_ZN5boost6system15system_categoryEv’
解決辦法:
總結(jié)
以上是生活随笔為你收集整理的ROS kinetic外接Realsense D435i跑ORB_SLAM2教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: netcat、ncc工具使用
- 下一篇: Netsparker超轻量级Web安全漏