搞了一下午,终于安装成功了,几乎踩遍了所有的坑。
在此记录一下,希望可以作为参考,帮到后来者。
似乎有一些问题是20.04独有的,就很头疼…
以下的环境你可能已经安装过了,但是建议还是按流程走一遍
1.1更新软件列表
sudo apt-get update
1.2安装依赖项
sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install freeglut3-dev
apt-get install dialog
sudo apt-get install libglew-dev libpython2.7-dev
执行
sudo apt-get install libeigen3-dev
3.1请确定
如果你已经安装过Pangolin了,那请保证你的Pangolin适合ORB_SLAM2。不妨先跳过此步,试一下能否运行ORB_SLAM2。
3.2卸载Pangolin(新安装跳过此步)
cd Pangolin/build//请根据实际情况找到Pangolin文件夹下的build文件夹
sudo make uninstall
如果你在上次安装时没有执行
sudo make install
上一条命令可能会出现错误。
那么直接执行以下即可(上一条命令成功也需要执行以下过程),
首先删除Pangolin文件夹
再进入/usr/local/include查看是否有Pangolin相关的文件夹,一并删除(只删除文件夹名字为Pangolin的,不确定的请勿删除)
3.3新安装或重新安装Pangolin
依赖项安装
sudo apt-get install libxkbcommon-dev
sudo apt-get install wayland-protocols
以避免遇到问题如,No package 'xkbcommon’, No package ‘wayland-protocols’ found。
打开此链接(我给的是v0.6稳定版,经测试可以使用)
点这里下载
将以此链接下载好的Pangolin放置在主目录中(注意文件夹应更名为Pangolin)。
在此目录下打开终端
sudo apt install libglew-dev
cd Pangolin
mkdir build
cd build
cmake ..
make -j
sudo make install
如有时间,请验证一下pangolin的运行效果,命令如下。
cd examples/HelloPangolin
mkdir build && cd build
cmake ..
make
./HelloPangolin
4.1克隆代码(也可以跳过这一步,直接下载我修改好的代码)
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
4.2更改代码
ORB_SLAM2发布以来,Ubuntu已经更新很多次了,而且其他规则也有变化,所以必须先更改代码。
第一步:
按此路径找到~/ORB_SLAM2/include/system.h,并添加如下:
#include
否则在编译安装时重复出现以下问题,
error: 'usleep' was not declared in this scope
第二步:
再进入~/ORB_SLAM2/include/LoopClosing.h,将
typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
Eigen::aligned_allocator<std::pair<const KeyFrame*, g2o::Sim3> > > KeyFrameAndPose;
更改为:
typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
Eigen::aligned_allocator<std::pair<KeyFrame *const, g2o::Sim3> > > KeyFrameAndPose;
重点在于在此代码的替换(加蓝部分)
否则容易出现以下问题
error: static assertion failed: std::map must have the same value_type as its allocator
4.3编译
进入到ORB_SLAM2文件夹下打开终端,运行,
chmod +x build.sh
./build.sh
4.4下载更改好代码
如果网络慢不能安装成功,或者懒得修改,点下面链接,下载修改好但是未编译的版本。
阿里网盘链接
注意下载后代码未编译,别忘记执行以上编译过程
5.1下载数据集
打开链接 https://vision.in.tum.de/data/datasets/rgbd-dataset/download
选择
将文件解压后放置在前文提到的dataset文件夹下。
5.2试运行
然后到XXX文件夹下打开终端,执行以下命令(请保证以上步骤与我一致):
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml dataset/rgbd_dataset_freiburg1_xyz
当开始出现以下画面则说明运行成功
以上,祝大家好运!