ORB-SLAM2 跑数据集&&运行自己的摄像头

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HERO_CJN/article/details/78373775

假设你已经成功将ORB-SLAM2 编译通过

1、跑单目数据集:

我们这里采用 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 测试数据,使用时注意匹配。

2、跑 RGBD 数据集:

我们这里仍然采用 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

3、使用自己的摄像头数据

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

4、跑rosbag数据

编译

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

**

之后运行参考官方教程即可!

**

展开阅读全文

没有更多推荐了,返回首页