文章目录

  • 环境
  • 依赖安装
  • Opencv
  • Pangolin
  • Eigen3
  • DBoW2 and g2o
  • Python
  • boost
  • libssl-dev
  • ORB_SLAM3的ROS编译和安装
  • 编译过程中可能遇到的问题
  • Q1:You should double-check your ROS_PACKAGE_PATH to ensure
  • 数据集测试
  • 参考


环境

  • ubuntu18.04-x86
  • nvidia-3080工作站

依赖安装

Opencv

参考这篇博客。

Pangolin

安装v0.6版本的,最新版会报错 error: ‘slots_reference’ was not declared in this scope

git clone -b v0.6 https://gitcode.net/mirrors/stevenlovegrove/pangolin.git
cd Pangolin
mkdir build && cd build
#sudo apt install cmake -y  && sudo apt install build-essential -y
cmake ..
cmake --build .
sudo make install

Eigen3

#github 有个mirror,版本3.3.4 from 2017
git clone https://github.com/eigenteam/eigen-git-mirror
 
#安装
cd eigen-git-mirror
mkdir build
cd build
cmake ..
sudo make install
 
#安装后,头文件安装在/usr/local/include/eigen3/

DBoW2 and g2o

DBoW2主要用于回环检测,g2o(General Graph Optimization)主要用于图优化。
ORB-SLAM3的源码包自带DBoW2 and g2o,编译时会自动安装。不用管。

Python

sudo apt install libpython2.7-dev

boost

官网

视觉SLAM(1):orbslam3复现_Pan

下载之后解压

tar -xzvf boost_1_81_0.tar.gz

解压之后进入解压出来的文件夹

然后执行这个脚本

sudo ./bootstrap.sh

执行完毕之后,你会发现又多了些文件

执行如下脚本

sudo ./b2 install -j24

libssl-dev

sudo apt-get install libssl-dev

ORB_SLAM3的ROS编译和安装

克隆代码

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
cd ORB_SLAM3

添加路径到 ${ORB_SLAM3_ROOT}/Examples/ROS/ORB_SLAM3到~/.bashrc中

gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples/ROS

PS:PATH代指自己的ORB_SLAM3根目录

chmod +x build_ros.sh
./build_ros.sh

编译过程中可能遇到的问题

Q1:You should double-check your ROS_PACKAGE_PATH to ensure

这是由于在ROS环境下编译使用了多个版本的ORB_SLAM3工程导致的。

(1)先cd到/opt/ros/kinetic/share目录下,删除原来的ORB_SLAM3软连接

sudo rm -r ORB_SLAM3

(2)对当前工程在/opt/ros/noetic/share目录下建立软连接

sudo ln -s /home/...(具体路径)....../Examples/ROS/ORB_SLAM2 /opt/ros/kinetic/share/ORB_SLAM2

或者在bashrc中添加ROS_PACKAGE_PATH

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/ckq/TextSLAM/ORB_SLAM3/Examples/ROS/ORB_SLAM3

数据集测试

https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets#downloads 选择ASL格式,下载第一个MH01

视觉SLAM(1):orbslam3复现_git_02