天天看點

orbslam2 ROS下RGBD實驗記錄(三) KINECT2通過ROS線上跑ORBSLAM2

1.配置ROS_PACKAGE_PATH環境變量 source ~/.bashrc export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/user/ORB_SLAM2/Examples/ROS 否則會出錯說找不到路徑和包

2.進入ORB_SLAM2主路徑編譯ros節點: chmod +x build_ros.sh ./build_ros.sh 確定原程式可以編譯

可能出來如下問題:/usr/bin/ld: CMakeFiles/RGBD.dir/src/ros_rgbd.cc.o: undefined reference to symbol ‘_ZN5boost6system15system_categoryEv’ - 出錯原因為:libboost_system.so 與libboost_filesystem.so找不到連結目錄 - 解決方案為

locate boost_system //查找到目錄 /usr/lib/x86_64-linux-gnu/libboost_system.a /usr/lib/x86_64-linux-gnu/libboost_system.so /usr/lib/x86_64-linux-gnu/libboost_system.so.1.58.0

locate boost_filesystem //查找到目錄 /usr/lib/x86_64-linux-gnu/libboost_filesystem.a /usr/lib/x86_64-linux-gnu/libboost_filesystem.so /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.58.0

将libboost_system.so與libboost_filesystem.so複制到ORB_SLAM2/lib下,并且将ORBSLAM2/Examples/ROS/ORBSLAM2下的Cmakelists.txt中加入庫目錄,具體為 在set(LIBS ${OpenCV_LIBS} ${EIGEN3_LIBS} ${Pangolin_LIBRARIES} ${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so ${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so ${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so

之後加入${PROJECT_SOURCE_DIR}/../../../lib/libboost_filesystem.so ${PROJECT_SOURCE_DIR}/../../../lib/libboost_system.so

3.打開一個終端,運作:roslaunch kinect2_bridge kinect2_bridge.launch 4.再打開另一個終端,輸入:rostopic list檢視此時Kinect2釋出的topic,我用的是/kinect2/qhd/image_color_rect和/kinect2/qhd/image_depth_rect 5.找到源檔案ros_rgbd.cc,按照上面的topic修改裡面的ros訂閱的内容 6.重新編譯工程 ./build_ros.sh

7.在~/ORB_SLAM2/Examples/ROS$ 目錄下,運作 rosrun ORB_SLAM2 RGBD /home/user/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/user/ORB_SLAM2/Examples/RGB-D/kinect2_qhd.yaml 即可得到實時線上軌迹。

orbslam2 ROS下RGBD實驗記錄(三) KINECT2通過ROS線上跑ORBSLAM2

參考連結: https://www.cnblogs.com/bigzhao/p/6635770.html http://blog.csdn.net/sinat_38343378/article/details/78883919