Ubuntu16.04运行ORBSLAM2_with_pointcloud_map

* 安装PCL

之前按照十四讲中方法安装,但是/usr/include/下无pcl-1.7文件,不知道是自己操作失败还是什么原因,因此安装官方预编译版本

sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl  
sudo apt-get update  
sudo apt-get install libpcl-dev

安装后头文件在/usr/include/pcl-1.7中,库在/usr/lib/中,则安装成功。使用上面命令安装好pcl库后,发现pcl_viewer不能使用,因此继续安装:

sudo apt-get install pcl-tools

如果想要利用源码安装,网址:PCL历史版本下载

* 安装Pangolin

安装依赖:

sudo apt-get install libglew-dev  libboost-dev libboost-thread-dev libboost-filesystem-dev cmake

下载编译安装:

git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
make -j7
sudo make install

* 安装Sophus

直接编译安装:

cd Sophus
mkdir build
cd build
cmake ..
make -j7
sudo make install

* 安装ceres

安装依赖:

sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.4 libgflags-dev libgoogle-glog-dev libgtest-dev

下载编译安装:

git clone https://github.com/hitcm/ceres-solver-1.11.0.git
cd ceres-solver-1.11.0
mkdir build
cd build
cmake ..
make -j7
sudo make install

* 安装eigen3.2.7

大于3.2.8可能会有一些问题,这里我选择源码安装Eigen3.2.7,在Eigen源码库上选择自己需要的版本下载后解压并进入文件夹根目录下.

mkdir build
cd build
cmake ..
make 
sudo make install

可用pkg-config --modversion eigen3查看eigen版本.

* opencv安装

参考:opencv 2.4.9与opencv 3.1.0共存(cpu)
opencv 2.4.9与opencv 3.4.3共存(gpu)

* g2o安装

  • 安装依赖:
sudo apt-get intall libsuitesparse-dev qtdeclarative5-dev qt5-default libqglviewer-dev libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.4 libcholmod3.0.6
  • 下载源码:
#这里的g2o高博做了一些修改,与十四讲中不同
git clone https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git
cd ORBSLAM2_with_pointcloud_map/g2o_with_orbslam2
  • 更改一些配置文件:

修改 g2o_with_orbslam2/CMakeLists.txt ,注释如下代码:
#shall we build the examples
#SET(G2O_BUILD_EXAMPLES ON CACHE BOOL “Build g2o examples”)
#IF(G2O_BUILD_EXAMPLES)
#MESSAGE(STATUS “Compiling g2o examples”)
#ENDIF(G2O_BUILD_EXAMPLES)

修改 g2o_with_orbslam2/g2o/CMakeLists.txt ,注释如下代码:
#Examples
#IF(G2O_BUILD_EXAMPLES)
#ADD_SUBDIRECTORY(examples)
#ENDIF(G2O_BUILD_EXAMPLES)

修改 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));

  • 编译安装g2o
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j7
sudo make install

* 安装DBOW2

这里需要先将下载好的ORB_SLAM2_modified/Thirdparty/DBoW2文件中的build文件夹先删除.

cd ORB_SLAM2_modified/Thirdparty/DBoW2
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j7

编译成功后,会在/lib目录下生成 libDBoW2.so,将该库文件拷贝到系统目录下:

sudo cp ../lib/libDBoW2.so /usr/local/lib

* 最终编译运行程序

这里可以修改一下CMakeLists.txt文件中的opencv版本,eigen版本不修改也无影响,然后还需要下载 ORBvoc.txt.tar.gz 并解压到ORB_SLAM2_modified/Vocabulary 目录下,最后编译程序,并根据ORB-SLAM2官网提供命令运行数据集

cd ORB_SLAM2_modified
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j7

*遇到问题

最后编译程序阶段出现问题:

No rule to make target '/usr/lib/x86_64-linux-gnu/libproj.so

解决方法:

在/usr/lib/x86_64-linux-gnu中搜索如果有libproj.so.9,则执行
sudo ln -s /usr/lib/x86_64-linux-gnu/libproj.so.9 /usr/lib/x86_64-linux-gnu/libproj.so
若没有,则安装
sudo apt-get install libproj-dev
问题即可解决

又出现:

/usr/bin/ld: cannot find -lvtkproj4

解决方法:

sudo ln -s /usr/lib/x86_64-linux-gnu/libvtkCommonCore-6.2.so /usr/lib/libvtkproj4.so

参考:https://blog.csdn.net/qq_25349629/article/details/88350374
https://blog.csdn.net/Xuesengxinyi/article/details/93469079
https://blog.csdn.net/ABC_ORANGE/article/details/81669847
https://blog.csdn.net/AmbitiousRuralDog/article/details/93176165

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值