1 Wins+Ubuntu双系统安装
2 配置ORBSLAM2
2.1 工具配置
2.2 安装Pangolin库
2.3 安装Opencv2.4.11
2.4 安装Eigen3
2.5 安装ORBSLAM2
3 安装与配置ROS
4 错误记录与解决方案
1 Wins+Ubuntu双系统安装
对于ORBSLAM这种对硬件要求较高的大型计算机视觉实验,不推荐在虚拟机上实现,建议安装双系统以集成对显卡、摄像头更好的支持,由于本文关注ORBSLAM,因此关于双系统详细的图文安装步骤请移步参考Linux不会装?Win10+Ubuntu双系统安装、配置、卸载保姆级图文避雷指南。
2 配置ORBSLAM2
2.1 工具配置
sudo apt-get install cmake #安装CMake sudo apt-get install git #安装Git sudo apt-get install gcc g++ #安装g++
2.2 安装Pangolin库
首先安装库依赖文件
sudo apt-get install libglew-dev #安装Glew sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev #安装Boost sudo apt-get install libpython2.7-dev
接着下载、编译、安装Pangolin,为方便第三方库管理,在ORBSLAM2根目录下创建3rd/Pangolin/src
mkdir -p ~/Project/SLAM/ORBSLAM2/3rd/Pangolin/src cd ~/Project/SLAM/ORBSLAM2/3rd/Pangolin/src git clone https://github.com/stevenlovegrove/Pangolin.git mkdir build cd build cmake -DCPP11_NO_BOOST=1 .. # 这一步用虚拟机可能会卡死,需要根据自身硬件设备调整线程数 make -j4 sudo make install # 关键,用于安装
2.3 安装Opencv2.4.11
mkdir -p ~/Project/SLAM/ORBSLAM2/3rd/Opencv2/src cd ~/Project/SLAM/ORBSLAM2/3rd/Opencv2/src
从OpenCV官网下载OpenCV2.4.11然后解压到上述目录。
接着安装依赖
sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
编译安装
mkdir build cd build sudo cmake .. -DCMAKE_BUILD_TYPE=Release -DCUDA_nppi_LIBRARY=true -DWITH_CUDA=OFF -DBUILD_TIFF=ON -DCMAKE_INSTALL_PREFIX=/usr/local/include/opencv2411 make sudo make install
2.4 安装Eigen3
安装
sudo apt-get install libeigen3-dev
Eigen头文件的默认位置在usr/include/eigen3 中。
2.5 安装ORBSLAM2
ORBSLAM2依赖库g2o和DBoW2在这一步编译完成
cd ~/Project/SLAM/ORBSLAM2 git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2 # 编译 chmod +x build.sh ./build.sh
到这里为止ORBSLAM项目编译完成,可以下载数据集进行测试,这里推荐几个数据集网站:
1.ORBSLAM2数据集序列(TUM)
2.ORBSLAM2数据集序列(EUROC)
3.ORBSLAM2数据集序列(KITTI)
解压在项目根目录的dataSet文件里,进入ORBSLAM2根目录进行测试
TUM数据集
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml ~/Project/SLAM/ORBSLAM2/dataSet/rgbd_dataset_freiburg1_xyz
其中标签TUM1.yaml
可以替换成其他,~/Project/Slam/ORBSLAM2/dataSet/rgbd_dataset_freiburg1_xyz
是数据集序列所在路径,rgbd_dataset_freiburg1_xy
是序列名称。
EuROC数据集
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ~/Project/SLAM/ORBSLAM2/dataSet/V2_01_easy/mav0/cam0/data ./Examples/Monocular/EuRoC_TimeStamps/V201.txt
如果遇到加载动态库错误
ORB_SLAM2 libORB_SLAM2.so: cannot open shared object file: No such file or directory
执行下面语句
sudo cp lib/libORB_SLAM2.so /usr/lib sudo cp Thirdparty/g2o/lib/libg2o.so /usr/lib sudo cp Thirdparty/DBoW2/lib/libDBoW2.so /usr/lib
3 安装与配置ROS
ROS的安装与配置请参考
- ROS从入门到精通(一) ROS简介、安装与常见问题,其中详细地给出了ROS安装的步骤,以及安装过程中可能遇到的问题
- ROS从入门到精通(二) VSCode 搭建 ROS 工程环境,其中详细介绍了如何将ROS集成到VSCode中
4 错误记录与解决方案
错误1:编译执行 ./build_ros.sh 时出现
CMakeLists.txt:4 (rosbuild_init)
– Configuring incomplete, errors occurred!
make: *** 没有指明目标并且找不到 makefile停止。
解决方案:此为ROS配置错误,需要修改
sudo gedit ~/.bashrc # 增加 export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/Project/SLAM/ORBSLAM2/ORB_SLAM2/Examples/ROS source ~/.bashrc
错误2:error reading version line
解决方案:一般由rosbag包错误导致,重新下载ros_bag文件。
错误3:[FATAL] [1630244733.986587231]: Error opening file: rgbd_dataset_freiburg1_xyz.bag
解决方案:没有启动ros导致,在某个终端启动roscore即可解决。