当前位置: 移动技术网 > IT编程>开发语言>其他编程 > Ubuntu18.04下编译安装ORBSLAM2_with_pointcloud_map总结

Ubuntu18.04下编译安装ORBSLAM2_with_pointcloud_map总结

2020年08月01日  | 移动技术网IT编程  | 我要评论
文章目录下载第一步,编译g2o编译ORB_SLAM2_modified终于到运行啦参考链接完结撒花下载首先从GitHub上下载,然后解压:有点没看懂这个单独的第一个文件夹要怎么用,就按其他博客上的来吧先把上图中的压缩文件解压:然后就在这里边操作就好。第一步,编译g2o1. 进入g2o_with_orbslam2,对cmakelists.txt下的代码进行注释2. 同时对g2o文件夹下的cmakelists.txt下的代码进行注释3. 回到g2o_with_orbslam2主文件夹,进



下载

首先从GitHub上下载,然后解压:
在这里插入图片描述
有点没看懂这个单独的第一个文件夹要怎么用,就按其他博客上的来吧
先把上图中的压缩文件解压:在这里插入图片描述
然后就在这里边操作就好。

第一步,编译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) 请问运行之后出现这个是么原因呢 double free or corruption (out) 已放弃 (核心已转储)
解决:修改 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) 在这里插入图片描述
解决:修改g2o_with_orbslam2/g2o/solvers/eigen/linear_solver_eigen.h(注意:eigen3.2.8不用修改此处,以上版本需修改,如3.2.10) 我的eigen版本 3.2.10 。


typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, SparseMatrix::Index> PermutationMatrix;
改为
typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, SparseMatrix::StorageIndex> 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,会出现如下报错:
    在这里插入图片描述

解决:新版本的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_loop.txt 

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

  • 运行
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM2.yaml /home/y/SLAM/DataSets/TUM/rgbd_dataset_freiburg2_desk /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

完结撒花

本文地址:https://blog.csdn.net/weixin_44694952/article/details/108247118

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网