欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

编译安装高翔的ORBSLAM2_with_pointcloud_map(采坑指南)

程序员文章站 2022-03-07 11:37:13
...

高翔博士对ORBSLAM2修改增加了点云模块,https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map 在编译过程中,遇到很多问题,特来记录一下。以便之后的同学可以快速上手。注意环境是ubuntu16.04。

1、下载源码

git clone https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git

2、解压 orbslam2_modified.zip

解压会得到两个文件夹,分别为 g2o_with_orbslam2 和 ORB_SLAM2_modified,与原orbslam2_modified合并到同一个文件夹

3、进入g2o_with_orbslam2,对cmakelists.txt下的代码进行注释

编译安装高翔的ORBSLAM2_with_pointcloud_map(采坑指南)

同时对g2o文件夹下的cmakelists.txt下的代码进行注释 

编译安装高翔的ORBSLAM2_with_pointcloud_map(采坑指南)

4、回到g2o_with_orbslam2主文件夹,进行编译

cd g2o_with_orbslam2
mkdir build
cmake ..
make -j8
sudo make install

–遇到编译错误时,作如下修改:

(1)修改g2o/types/slam2d/edge_se2_pointxy_bearing.cpp

//t.setRotation(t.rotation().angle()+_measurement);
改为:
t.setRotation((Eigen::Rotation2Dd)(t.rotation().angle()+_measurement));  

(2)打开/g2o_with_orbslam2/g2o/solvers/eigen/linear_solver_eigen.h 

//typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, SparseMatrix::Index> PermutationMatrix;
改为:
typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, SparseMatrix::StorageIndex> PermutationMatrix;
//typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, int> PermutationMatrix;

5、编译DBoW2

cd ORB_SLAM2_modified/Thirdparty/DBoW2
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make 
#sudo make install

不出意外,应该是已经编译过了的。

6、进入/ORB_SLAM2_modified文件夹

此处可以将CMakeLists.txt进行一定的修改,避免opencv、Eigen等版本引发的错误

编译安装高翔的ORBSLAM2_with_pointcloud_map(采坑指南)CMakeLists.txt

然后进行编译:

mkdir build
cd build
cmake ..
make -j8

 7、用单目/双目/rgbd来做做实验

将数据集以及associate.py,放在 ORB_SLAM2_modified目录下,运行如下命令:

python associate.py rgb.txt depth.txt > associations.txt

执行完毕后可运行示例:

./Example/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt path_to_settings path_to_sequence  path_to_association
例如:
./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

编译安装高翔的ORBSLAM2_with_pointcloud_map(采坑指南)

 这里大家往往会遇到以下几个问题:

(1)无法显示点云图,只显示三色坐标,这里可以先尝试鼠标缩放一下并移动一些视角,若还未显示点云图,多半是你使用了TUM2.yaml和TUM3.yaml,相对于TUM1.yaml末尾少了一句代码(当年太傻,运行到这一步死活出不来就放弃了,哎):

PointCloudMapping.Resolution: 0.01

(2)点云未显示彩色:这套代码我也试了好多遍,缺失在颜色这一块有点问题我未能解决,先推荐另外一个版本,亲测可以显示彩色点云图。

ORB-SLAM2 rgbd稠密地图 (地图可回环)

https://github.com/tiantiandabaojian/ORB-SLAM2_RGBD_DENSE_MAP.git

编译安装高翔的ORBSLAM2_with_pointcloud_map(采坑指南)

 

编译的时候不推荐 build.sh 的方式,g2o、DBoW2和主文件依次编译即可。

相关标签: Slam