Ubuntu16.04编译高博的ORBSLAM2_with_pointcloud_map详细过程

我在编译过程中主要参考了以下几篇博客:

Ubuntu16.04编译高博的ORBSLAM2_with_pointcloud_map_Andyoyo007的博客-CSDN博客编译高博ORBSLAM2_with_pointcloud_map,用TUM数据集测试。_Seven的博客-CSDN博客

编译安装高翔的ORBSLAM2_with_pointcloud_map,获取点云地图_站在巨人的肩膀上coding-CSDN博客_高翔orbslam2

1、下载源代码

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

2、将其中的压缩包解压,保留压缩包中的ORB_SLAM2_modified并删掉原来的根目录下的ORB_SLAM2_modified。

3、编译安装g20_with_orbslam2并对一些常见的错误进行处理

1) 修改 g2o_with_orbslam2/CMakeLists.txt ,注释如下代码:

2)修改 2)g2o_with_orbslam2/g2o/CMakeLists.txt ,注释如下代码:

 

 3)报错1

解决:修改 g2o_with_orbslam2/g2o/types/slam2d/edge_se2_pointxy_bearing.cpp

  1. t.setRotation(t.rotation().angle()+_measurement);

  2. 改为

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

4)报错

解决:修改g2o_with_orbslam2/g2o/solvers/eigen/linear_solver_eigen.h(注意:eigen3.2.8不用修改此处,以上版本需修改,如3.3.7)     我的eigen版本  3.3.7 。 


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

5)安装成功

4、编译ORB_SLAM2_modified

重新编译DBoW2:

cd Thirdparty/DBoW2/
rm -rf build
mkdir build
cd build
cmake ..
make

编译ORB_SLAM2_modified

mkdir build
cd build
cmake ..
make
sudo make install

错误1

解决方法:

在cmakelist.txt中添加

set(CMAKE_CXX_STANDARD 11)

错误2 找不到libORB_SLAM2.so 文件

原因:Eigen3.3以上的版本不需要添加找libeigen动态库,在cmakelist文件中把找eigen动态库的语句注释掉,并且在里面添加头文件,这样就可以找到动态库文件了。

具体实施方案

添加头文件

include_directories("usr/include/eigen3")

注释掉寻找动态库的语句

#${EIGEN3_INCLUDE_DIR}

成功

运行数据集

下载Vocabulary中的ORBvoc.txt文件,下载TUM数据集到data文件夹,下载associate.py到Examples的RGB文件夹下。
Vocabulary :回环检测,词袋模型
association:深度信息与RGB信息的对应信息
sequence:此处使用的是数据集,不是数据包bag。
注意:TUM1.yaml是针对所有freiburg1的测试数据。同理TUM2.yaml是针对freiburg2测试数据。
跑RGBD数据集:
根据rgbd_tum.cc文件中

./rgbd_tum path_to_vocabulary path_to_settings path_to_sequence path_to_association

相应运行命令例子:

./Examples/RGB-D/rgbd_tum ~/ORBSLAM2_with_pointcloud_map-master/ORB_SLAM2_modified/Vocabulary/ORBvoc.txt ~/ORBSLAM2_with_pointcloud_map-master/ORB_SLAM2_modified/Examples/RGB-D/TUM1.yaml ~/ORBSLAM2_with_pointcloud_map-master/ORB_SLAM2_modified/Examples/RGB-D/rgbd_dataset_freiburg1_desk2 ~/ORBSLAM2_with_pointcloud_map-master/ORB_SLAM2_modified/Examples/RGB-D/associations/fr1_desk2.txt

在运行过程中出现的错误和解决方案

错误1

libORB_SLAM2.so: cannot open shared object file: No such file or directory

1、先看看/usr/lib里面有没有libORB_SLAM2.so如果没有的话从:~/ORBSLAM2_with_pointcloud_map-master/ORB_SLAM2_modified/lib文件夹中把.so文件复制到/usr/lib中

sudo cp -r 文件路径和文件名 usr/lib

2、如果usr/lib里面有ORB_SLAM2.so文件

原因: g2o安装好之后需要配置环境

解决方法:

1. 打开文件

sudo gedit /etc/ld.so.conf

2. 添加g2o库的位置, 默认位置如下:

/usr/local/lib

3. 终端敲入:

sudo ldconfig

 错误2 

Error in `./Examples/RGB-D/rgbd_tum': double free or corruption (out): 0x0000000001d2dbe0 ***

上网查了资料,有人说是内存访问越界了

出现段错误核心已转储问题解决方案

将cmakelist.txt文件中的-march=native全部删掉,再次build运行成功。

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小负不负

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值