安装配置过程中需要需要cmake、gcc、g++和Git工具
1、安装git,用于从Github上克隆项目到本地
sudo apt-get install git
2、安装cmake
sudo apt-get install cmake
3、安装gcc、g++
sudo apt-get install g++
sudo apt-get install gcc
1、安装依赖项
sudo apt-get install libglew-dev libpython2.7-dev
2、从GitHub将项目下载到本地
git clone https://github.com/stevenlovegrove/Pangolin.git
3、编译安装
cd Pangolin
mkdir build
cd build
cmake ..
make -j4
sudo make install
(1)在执行make -j4的时候可能会遇到如下问题:No package 'xkbcommon’
解决这个问题,执行如下命令:
sudo apt-get install libxkbcommon-dev
(2)也可能遇到问题:No package ‘wayland-protocols’ found
解决方法:
sudo apt-get install wayland-protocols
然后依次执行上面的命令,make -j4执行成功如下图所示:
sudo apt-get install libeigen3-dev
1、克隆仓库
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
可能会遇到这种情况,下载很慢而且还会失败:
所以在执行这一步的时候建议连接手机热点,如下图:
2、编译ORB-SLAM2,第三方库中的DBoW2和g2o,并解压ORB词典
cd ORB_SLAM2
chmod +x build.sh
./build.sh
出现如下问题:
解决usleep问题:在ORB-SLAM2中的include文件夹里面的system.h加入#include
打开Thirdparty/g2o/g2o/solvers/linear_solver_eigen.h
将以下代码:
template
class LinearSolverEigen: public LinearSolver
{ public: typedef Eigen::SparseMatrix, Eigen::ColMajor> SparseMatrix;
typedef Eigen::Triplet Triplet;
typedef Eigen::PermutationMatrix, Eigen::Dynamic, SparseMatrix::Index> PermutationMatrix;
修改为:
template
class LinearSolverEigen: public LinearSolver
{ public:
typedef Eigen::SparseMatrix, Eigen::ColMajor> SparseMatrix;
typedef Eigen::Triplet Triplet;
typedef Eigen::PermutationMatrix, Eigen::Dynamic, int> PermutationMatrix;
然后重新运行上述命令
3、要在ROS环境下运行ORB_SLAM的话,在ROS环境下运行ORB_SLAM,最好将工程放在catkin_ws/src文件夹下,需要进行如下操作:
(1)将包含Examples/ROS/ORB_SLAM2的路径添加到ROS_PACKAGE_PATH环境变量中:打开.bashrc文件并在最后添加路径
打开.bashrc文件:
sudo gedit ~/.bashrc
source ./catkin_ws/devel/setup.sh
使修改后的/.bashrc文件生效
source ~/.bashrc
将下列目录下的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
)
修改为:
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
-lboost_system
)
然后执行命令
cd catkin_ws/src/ORB_SLAM2
chmod +x build_ros.sh
./build_ros.sh
OpenCV的安装参考一下学姐的博客
https://blog.csdn.net/cungudafa/article/details/84451066
编译完成后会在ORB_SLAM2/Examples文件夹下生成各种可执行文件。我们以单目情况为例,展示如何运行ORB_SLAM2程序。
1、下载数据集:有TUM、KITTI、EuRoC三种数据集,这里使用TUM数据集,从http://vision.in.tum.de/data/datasets/rgbd-dataset/download下载序列并解压缩。
解压:
2、执行命令,其中PATH_TO_SEQUENCE_FOLDER为数据集的存储路径,并将tumx.yaml与下载的数据集对应,比如TUM1.yaml,TUM2.yaml 和TUM3.yaml 分别对应 freiburg1, freiburg2 和 freiburg3,根据自己的情况对路径做修改。
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/zj/rgbd_dataset_freiburg1_xyz