最近在学习ros导航,然后在网上找了不少资源。
我平台是用的rk3399
看的这篇大佬教程:
https://blog.csdn.net/u011612364/article/details/122147741
然后在安装orb_slam2功能包时出现了很多莫名其妙的问题,要么出现
This compiler appears to be too old to be supported by Eigen
要么就是编译时出现各种未定义错误,在网上查了很多资源,发现主要问题还是出在eigen、pangolin版本问题,记录一下较完整的流程:
1、安装eigen,
如果直接 git clone https://gitlab.com/libeigen/eigen.git
eigen版本是最新的,
)pkg-config --modversion eigen3 可以查看eigen3的版本)
但是orb_slam2是不支持的,即使make、make install成功,也会在pangolin以及orb_slam2编译阶段出现各种莫名其妙的未定义问题。
如果按照原教程安装了的,要先卸载最新的eigen,卸载方式:
eigen源代码编译过的目录中build文件夹里,
执行
sudo make uninstall,
sudo rm -rf /usr/local/include/eigen3
sudo rm -rf /usr/lib/cmake/eigen3
接下来,在eigen官网
https://eigen.tuxfamily.org/index.php?title=Main_Page
里面找到自己需要的eigen版本,这里根据网上大部分资源,选择3.2.0。
然后一系列操作:
tar -xzvf eigen-3.2.0.tar.gz
cd eigen-3.2.0
mkdir build
cd build
cmake ..
make -j6
sudo make install
完成后,
pkg-config --modversion eigen3
查看版本,应该返回eigen版本为3.2.0
2、安装pangolin
如果之前安装了pangolin,则在编译目录build文件夹内卸载:
sudo make uninstall
sudo rm-rf /usr/local/include/pangolin
sudo rm -rf /usr/lib/cmake/pangolin
然后https://blog.csdn.net/qq_33950926/article/details/121129028在这位大佬的百度网盘里面下载0.5版本的pangolin。
然后就是解压
进入到目录
mkdir build
cd build
cmake ..
make -j6
sudo make install
https://blog.csdn.net/weixin_45584297/article/details/116381199
2、安装orb_slam2
上面几步没问题的话,基本这一步就没啥了,
git clone https://github.com/raulmur/ORB_SLAM2.git
进入到目录 执行
chmod -x ./build.sh
./build.sh
如果过程中出现:
c++: internal compiler error: 已杀死 (program cc1plus)、
是内存不够了,自行到build目录下make -j1 少一点线程编译即可
还有一个build_ros.sh
就此完毕