Ubuntu18.04下编译安装ORBSLAM2_with_pointcloud_map总结

文章目录

      • 下载
      • 第一步,编译g2o
      • 编译ORB_SLAM2_modified
      • 终于到运行啦
      • 参考链接
      • 完结撒花

下载

首先从GitHub上下载,然后解压:
Ubuntu18.04下编译安装ORBSLAM2_with_pointcloud_map总结_第1张图片
有点没看懂这个单独的第一个文件夹要怎么用,就按其他博客上的来吧
先把上图中的压缩文件解压:Ubuntu18.04下编译安装ORBSLAM2_with_pointcloud_map总结_第2张图片
然后就在这里边操作就好。

第一步,编译g2o

1. 进入g2o_with_orbslam2,对cmakelists.txt下的代码进行注释
在这里插入图片描述

2. 同时对g2o文件夹下的cmakelists.txt下的代码进行注释
在这里插入图片描述
3. 回到g2o_with_orbslam2主文件夹,进行编译
cd g2o_with_orbslam2
mkdir build
cd build
cmake ..
make -j
sudo make install

在make过程中出现的报错:
(1) Ubuntu18.04下编译安装ORBSLAM2_with_pointcloud_map总结_第3张图片
解决:修改 g2o_with_orbslam2/g2o/types/slam2d/edge_se2_pointxy_bearing.cpp

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

(2) Ubuntu18.04下编译安装ORBSLAM2_with_pointcloud_map总结_第4张图片
解决:修改g2o_with_orbslam2/g2o/solvers/eigen/linear_solver_eigen.h(注意:eigen3.2.8不用修改此处,以上版本需修改,如3.2.10) 我的eigen版本 3.2.10 。


typedef Eigen::PermutationMatrix PermutationMatrix;
改为
typedef Eigen::PermutationMatrix PermutationMatrix;

应该就是这两个问题了,然后开始

编译ORB_SLAM2_modified

1. 先编译Thirdparty下的DBoW2
编译之前先把之前编译的build删掉
然后修改一下CMakeLists下的opencv版本
然后就是进去DBoW2
cd Thirdparty/DBoW2/ rm -rf build
mkdir build
cd build
cmake ..
make -j

这一步应该没什么问题的

2. 编译ORB_SLAM2_modified

  • 先修改一下ORB_SLAM2_modified下的CMakeLists下的opencv版本,原来指定的opencv2.4.3,可以根据自己的版本调整,也可以直接把2.4.3删掉,但要注意这里 的opencv版本要和刚刚DBoW2的opencv版本一致。 我是修改成了2.4

由于我用的是2.4,没出现什么问题,直接就编译成功了。

  • 但是在之前试了一下用3.X版本的opencv,会出现如下报错:
    Ubuntu18.04下编译安装ORBSLAM2_with_pointcloud_map总结_第5张图片

解决:新版本的OpenCV修改了接口名,将CV_LOAD_IMAGE_UNCHANGED 换为了 cv::IMREAD_UNCHANGED

这应该就没什么问题了!

终于到运行啦

  • 由于文件里的Vocabulary这个文件夹是空的,所以要把ORB_SLAM2下的ORBoc.txt复制过来(注意是解压之后的喔)
  • 利用association.py,操作就和ORB_SLAM2一样,在Examples/RGB-D/下生成数据集对应的association.txt文件。
cd Examples/RGB-D/
python associate.py /home/y/SLAM/DataSets/TUM/rgbd_dataset_freiburg1_xyz/rgb.txt /home/y/SLAM/DataSets/TUM/rgbd_dataset_freiburg1_xyz/depth.txt > associations.txt

这里注意rgb.txt在前,depth.txt在后。

  • 运行
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml /home/y/SLAM/DataSets/TUM/rgbd_dataset_freiburg1_xyz /home/y/SLAM/OpenSource/ORB_SLAM2/Examples/RGB-D/associations.txt

在这报错:在这里插入图片描述

解决:把ORB_SLAM2_modified下的CMakeLists中的 -march = native 删掉就ok啦

运行之后,如果看到viewer窗口就是红绿蓝,这个时候华东一下鼠标滚轮就可以看到了。

参考链接

https://blog.csdn.net/dxc7216783/article/details/103736825
https://blog.csdn.net/oliongs/article/details/79696376
https://blog.csdn.net/LOVE1055259415/article/details/79903571
https://blog.csdn.net/Night___Raid/article/details/104298423

完结撒花

你可能感兴趣的:(SLAM学习)