Ubuntu16.04配置orb_slam2环境,orb_slam的单目数据集,单目实时运行,RGB-D数据集的运行
1.运行配置过程中参考链接如下:
1.配置orb_slam2环境
参考链接https://zhuanlan.zhihu.com/p/412843996
2.安装ROS
参考链接:https://blog.csdn.net/sf9898/article/details/105290198
3.rosdep初始化,更新失败问题
参考链接:https://zhuanlan.zhihu.com/p/398754989
4.orb_slam2运行实例化
参考链接:https://blog.csdn.net/qq_41133375/article/details/105613129
2.ORB-SLAM配置过程
2.1.建立工作空间
mkdir -p catkin_ws/src
cd catkin_ws/src
catkin_init_workspace
(报错,按提示安装。)
cd ..
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
安装cmake、gcc、g++、git工具
sudo apt-get install cmake
sudo apt-get install gcc g++
sudo apt-get install git
2.2 pangolin安装
下载地址:https://link.zhihu.com/?target=https%3A//github.com/stevenlovegrove/Pangolin/archive/refs/tags/v0.6.tar.gz
解压到catkin_ws/src下面,或Home下都可以
安装依赖项
sudo apt-get install libglew-dev libpython2.7-dev libboost-dev libboost-thread-dev libboost-filesystem-dev -y
由于还有一些依赖的库没有装上,建议利用github上自带的Dependencies部分进行配置。在Pangolin文件夹下新建一个文档名字叫install_prerequisites.sh,复制链接里代码https://link.zhihu.com/?target=https%3A//github.com/stevenlovegrove/Pangolin/blob/master/scripts/install_prerequisites.sh到install_prerequisites.sh文本文档中,进行下面操作
chmod +x install_prerequisites.sh
./install_prerequisites.sh --dry-run recommended
./install_prerequisites.sh
接下来在Pangolin文件夹中新建一个build文件夹,然后在build文件夹中进行如下操作。这里的j8可以根据自己CPU的进程数目选择。
cmake ..
make -j8
sudo make install
注:pangolin安装失败请参考博客
https://blog.csdn.net/yinweiwuzhisuoyixue/article/details/121324007
https://blog.csdn.net/qq_35042020/article/details/86648566
2.3 安装opencv
下载地址https://link.zhihu.com/?target=https%3A//opencv.org/releases/
我下载的版本是3.4.1,下载source文件即可。
安装一些依赖项
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
解压到home下
cd opencv-3.4.1
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j8
sudo make install
接下来配置一些文件
sudo gedit /etc/ld.so.conf.d/opencv.conf
sudo ldconfig
sudo gedit /etc/bash.bashrc
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
source /etc/bash.bashrc
sudo updatedb
pkg-config opencv --modversion
2.4 安装eigen3
sudo apt-get install libeigen3-dev
至此ORB_SLAM2所需环境配置完成,下面运行操作。
3.ORB-SLAM运行实例化
下载
如果需要在ROS环境下运行ORB_SLAM,最好将工程放在catkin_ws/src文件夹下
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
编译
cd ORB_SLAM2
chmod +x build.sh
./build.sh
3.1 单目运行
在ORB_SLAM2文件夹下打开终端,执行以下命令
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/用户名/Data/rgbd_dataset_freiburg1_desk
注意:Monocular表示单目,RGB-D表示深度相机数据集;TUM1.yaml,TUM2.yaml,TUM3.yaml对应不同数据集对应的设置,Vocabulary/ORBvoc.txt 表示词袋,rgbd_dataset_freiburg1_desk数据集
运行截图
3.2 单目实时运行
再此之前先安装usb_cam和ros,参考https://blog.csdn.net/creative1/article/details/122094472
编译带ROS的版本
chmod +x build_ros.sh
gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/自己的用户名/catkin_ws/src/ORB_SLAM2/Examples/ROS
source ~/.bashrc
./build_ros.sh
到这里可能会报一下错误
执行以下操作
sudo rosdep fix-permissions
rosdep update
再次编译还是会遇到问题
只需要修改ORB_SLAM2/Examples/ROS/ORB_SLAM2中CMakelists.txt,在set那里添加-lboost_system即可再次执行
./build_ros.sh
然后就可以顺利编译通过,大功告成了。
另外在/home/用户名/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src的目录下的ros_mono.cc文件
将/camera/image_raw,改为usb_cam节点发布的话题/usb_cam/image_raw再次编译
./build_ros.sh
下面运行操作:
打开一个终端
roscore
再打开一个终端
roslaunch usb_cam usb_cam-test.launch
在ORB_SLAM2文件夹下打开终端
rosrun ORB_SLAM2 Mono /home/用户名/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/yinyin/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml
运行截图:
3.3 rgb-d运行
在home目录下新建一个名字为Data的文件夹,下载TUM数据集,地址https://vision.in.tum.de/data/datasets/rgbd-dataset/download进入官网点击tgz下载
下载associate.py,https://vision.in.tum.de/data/datasets/rgbd-dataset/tools放在数据集下,在数据集下打开一个终端执行以下命令生成:associations.txt
python associate.py rgb.txt depth.txt > associations.txt
最后在ORB_SLAM2文件夹下打开终端,执行以下命令
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml /home/用户名/Data/rgbd_dataset_freiburg1_desk /home/用户名/Data/rgbd_dataset_freiburg1_desk/associations.txt
ros安装和usb_cam安装放在我另一篇