1. 安装依赖项
sudo apt-get install libglew-dev sudo apt-get install cmake sudo apt-get install libpython2.7-dev sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev sudo apt-get install libdc1394-22-dev libraw1394-dev sudo apt-get install libjpeg-dev libtiff5-dev libopenexr-dev
2. 安装Pangolin
git clone https://github.com/stevenlovegrove/Pangolin
cd Pangolin
mkdir build
cd build
cmake ..
make
sudo make install
3. 安装OpenCV
参考:https://www.cnblogs.com/gloria-zhang/p/13819297.html
4. 安装eigen3
sudo apt-get install libeigen3-dev
5. DBoW2和g2o包
这两个包含在ORG-SLAM2中,不用单独装。
6. 安装ORB-SLAM2
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2 cd ORB_SLAM2 chmod +x build.sh ./build.sh
7. 解决问题
在Jetson AGX Xavier上调用./build.sh会报错,error:'usleep'。
解决方法是在几个文件中添加头文件
#include <unistd.h>
文件列表:
目录ORB_SLAM2/src下的Tracking.cc,Viewer.cc,System.cc,LoopClosing.cc,LocalMapping.cc
目录ORB_SLAM2/Examples/Monocular下的mono_euroc.cc,mono_tum.cc,mono_kitti.cc
目录ORB_SLAM2/Examples/RGB-D下的rgbd_tum.cc
目录ORB_SLAM2/Examples/Stereo下的stereo_euroc.cc,stereo_kitti.cc
更改后再调用./build.sh。
8. 验证
下载数据集,我只下载了TUM数据集中的第一个rgbd_dataset_freiburg1_xyz,0.42G的。
解压数据集,把文件夹rgbd_dataset_freiburg1_xyz放在ORG_SLAM2目录下。
终端调用
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml rgbd_dataset_freiburg1_xyz
其中,TUM1.yaml也可以改成TUM2.yaml或TUM3.yaml。
结果显示