假设你已经成功将ORB-SLAM2 编译通过
我们这里采用 freiburg1_desk 数据,可以从这里下载:
freiburg1_desk 数据集
将这个数据集放在 ORB_SLAM2 下的 Data 文件夹下面并解压缩。
运行如下指令:
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml Data/rgbd_dataset_freiburg1_desk
注意:官方所带的 TUM1.yaml 是针对所有 freiburg1 的测试数据的。同理 TUM2.yaml 是针对 freiburg2 测试数据,使用时注意匹配。
我们这里仍然采用 freiburg1_desk 数据,下载方式参见“1、”中的地址。但是 RGBD 的数据处理需要一个工作,就是将 RGB 图和深度图合在一起。我们这里采用 TUM 提供的 associate.py 脚本:
associate.py
下载后放在 ORB_SLAM2 跟目录下,运行如下命令:
python associate.py Data/rgbd_dataset_freiburg1_desk/rgb.txt Data/rgbd_dataset_freiburg1_desk/depth.txt > Data/rgbd_dataset_freiburg1_desk/associations.txt
执行完毕后就可以使用如下命令运行测试程序:
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml Data/rgbd_dataset_freiburg1_desk Data/rgbd_dataset_freiburg1_desk/associations.txt
1、首先将ORB_SLAM2放在ROS工作空间中,然后进行编译
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
注:
1>更改Asus.yaml相机中的内参
2>修改ros_rgbd.cc中原始图和深度图的订阅话题名
2、编译example中的ROS节点
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM2/Examples/ROS
#Execute build_ros.sh script:
chmod +x build_ros.sh
./build_ros.sh
3、运行ROS RGB 节点
roscore
source devel/setup.bash
rosrun ORB_SLAM2 RGBD /home/cjn/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/cjn/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml
注:在运行RGBD节点之前确保已经将图像话题发布了出来,比如使用usb_cam
编译
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’
/usr/lib/x86_64-linux-gnu/libboost_system.so: error adding symbols: DSO missing from command line
出错原因为: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
/usr/local/MATLAB/R2017a/bin/glnxa64/libboost_system.so.1.56.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
/usr/local/MATLAB/R2017a/bin/glnxa64/libboost_filesystem.so.1.56.0
将libboost_system.so、libboost_filesystem.so、
libboost_system.so.1.58.0、libboost_filesystem.so.1.58.0复制到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
**
**