1、下载orbslam2
git clone https://github.com.cnpmjs.org/raulmur/ORB_SLAM2.git
2、下载数据集
链接: https://pan.baidu.com/s/1cmPaJF84NNNPMXosds70Zg 提取码: fpje
解压缩后放在~/dataset下
3、配置环境
pangolin安装方法
先安装依赖
sudo apt-get install libglew-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install libpython2.7-dev
git clone https://github.com.cnpmjs.org/stevenlovegrove/Pangolin.git
mkdir build
cd build
cmake -DCPP11_NO_BOOSR=1 …
make -j16(这里16看自己电脑线程多少而定)
sudo make install
opencv3安装方法
https://blog.csdn.net/zhaohaowu/article/details/113749936
eigen3安装方法
http://eigen.tuxfamily.org/index.php?title=Main_Page
mkdir build
cd build
cmake …
sudo make install
头文件在 /usr/local/include/eigen3/
DBoW2 and g2o, orbslam2第三方库自带无需安装
ros安装方法
https://blog.csdn.net/zhaohaowu/article/details/113749231
创建ros工作空间
mkdir -p ~/test/src
cd ~/test
catkin_make
在主目录下,ctrl+h,打开.bashrc,末端输入source ~/test/devel/setup.bash,保存
source ~/.bashrc
安装usb_cam包
https://github.com/ros-drivers/usb_cam下载解压,放在src下面
cd ~/test
catkin_make
roslaunch usb_cam usb_cam-test.launch,测试后退出
4、数据集
编译
./build.sh
运行
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml ~/dataset/rgbd_dataset_freiburg1_xyz
5、电脑相机
代码修改
修改~/test/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src/ros_mono.cc
原 /camera/image_raw 改为/usb_cam/image_raw
编译
./build_ros.sh
问题及解决方案
1、出现这个错误ORB_SLAM2/src/System.cc: error: ‘usleep’ was not declared in this scope usleep(5000)
解决方案:
找到对应的System.cc文件的首部加入 头文件
#include<unistd.h>
根据实际情况,提示哪个文件usleep有问题,就去加这个头文件。
需要增加unistd.h的文件还有:
Examples/Monocular/mono_euroc.cc
Examples/Monocular/mono_kitti.cc
Examples/Monocular/mono_tum.cc
Examples/RGB-D/rgbd_tum.cc
Examples/Stereo/stereo_euroc.cc
Examples/Stereo/stereo_kitti.cc
src/LocalMapping.cc
src/LoopClosing.cc
src/System.cc
src/Tracking.cc
src/Viewer.cc
2、出现这个错误CMakeFiles/RGBD.dir/build.make:197: recipe for target ‘…/RGBD’ failed
解决方案:
修改~/test/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/文件夹下的CMakeLists.txt文件,在set(LIBS xxxxx 的后面加上-lboost_system)
运行
roslaunch usb_cam usb_cam-test.launch
rosrun ORB_SLAM2 Mono ~/test/src/ORB_SLAM2/Vocabulary/ORBvoc.txt ~/test/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml
6、ZED2
代码修改
roslaunch zed_wrapper zed.launch
rqt_image_view
可以选择合适的话题
/zed/zed_node/left/image_rect_color
/zed/zed_node/right/image_rect_color
修改~/test/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src/ros_stereo.cc
原 /camera/left/image_raw改为/zed/zed_node/left/image_rect_color
原/camera/right/image_raw改为/zed/zed_node/right/image_rect_color
编译
./build_ros.sh
运行
roslaunch zed_wrapper zed.launch
rosrun ORB_SLAM2 Stereo /home/zhw/test/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/zhw/test/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml false
7、astra
与zed类似,但astra发布的话题似乎与ORBSLAM2作者提供的话题一致,不需要修改,编译即可
运行
roslaunch astra_camera astra.launch
rosrun ORB_SLAM2 RGBD /home/zhw/test/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/zhw/test/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml