一、普通版本
1. Eigen3
# 默认版本是3.3.7
sudo apt install libeigen3-dev
2. OpenCV
# 默认版本是 4.2.0
sudo apt install libopencv-dev
3. Pangolin
从官网 下载稳定版本V0.6(master版本与其他库使用时出错)。安装指令如下所示:
# 安装依赖项
sudo apt-get install libglew-dev doxygen
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev
sudo apt-get install libpng-dev
# 解压缩后
cd Pangolin
mkdir build && cd build
cmake ..
make -j
sudo make install
realsense2(选装)
# 注册public key
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
# 添加apt源
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
# 安装
sudo apt install librealsense2-dkms librealsense2-utils librealsense2-dev
4. ORB_SLAM3
# 下载
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
# 编译
cd ORB_SLAM3
chmod +x build.sh
./build.sh
5. EuRoC 示例
5.1 下载数据包
打开官网,下载如图所示的多个数据包。
下载完成后解压缩,如下图所示
按Ctrl+L可查看数据文件夹当前路径,我这里是/media/cgnerds/ECA4B49EA4B46D28/Data/EuRoC,在ORB_SLAM3根目录下建立datasets文件夹,打开终端,输入如下命令建立软链接。
ln -s /media/cgnerds/ECA4B49EA4B46D28/Data/EuRoC EuRoC
建立完成后如下所示:
5.2 单一数据包示例
在Examples文件夹下,打开终端,输入如下命令。
./Monocular-Inertial/mono_inertial_euroc ../Vocabulary/ORBvoc.txt ./Monocular-Inertial/EuRoC.yaml ../datasets/EuRoC/MH_01_easy ./Monocular-Inertial/EuRoC_TimeStamps/MH01.txt dataset-MH01_monoi
5.3 多个数据包示例
./Monocular-Inertial/mono_inertial_euroc ../Vocabulary/ORBvoc.txt ./Monocular-Inertial/EuRoC.yaml ../datasets/EuRoC/MH_01_easy ./Monocular-Inertial/EuRoC_TimeStamps/MH01.txt ../datasets/EuRoC/MH_02_easy ./Monocular-Inertial/EuRoC_TimeStamps/MH02.txt ../datasets/EuRoC/MH_03_medium ./Monocular-Inertial/EuRoC_TimeStamps/MH03.txt ../datasets/EuRoC/MH_04_difficult ./Monocular-Inertial/EuRoC_TimeStamps/MH04.txt ../datasets/EuRoC/MH_05_difficult ./Monocular-Inertial/EuRoC_TimeStamps/MH05.txt dataset-MH01_to_MH05_monoi
二、ROS版本
1. ROS安装
按照官网安装。首先设置raw.githubusercontent.com。
# 在终端运行如下命令,打开hosts文件
sudo gedit /etc/hosts
# 在打开的文件添加如下行,添加完成后关闭
199.232.68.133 raw.githubusercontent.com
# 在终端运行如下命令,添加source.list
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
# 设置key
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
如果返回OK,则说明设置成功。
正式安装
sudo apt update
sudo apt install ros-noetic-desktop-full
# 在使用ROS的每个bash终端中获取此脚本的源代码
# 环境配置(二选一即可)
## Bash
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
## zsh
echo "source /opt/ros/noetic/setup.zsh" >> ~/.zshrc
source ~/.zshrc
# 安装工具
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo rosdep init
rosdep update
2. ORB_SLAM3 ROS版本编译
修改 Examples/ROS/ORB_SLAM3 下的 CMakeLists.txt 中的OpenCV 版本为 4.0,如下所示:
设置
# 将 Examples/ROS/ORB_SLAM3 添加到环境变量 ROS_PACKAGE_PATH
gedit ~/.zshrc
# 将 PATH替换为ORB_SLAM3路径,再将以下语句添加到 ~/.zshrc 末尾
source /opt/ros/noetic/setup.zsh
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/cgnerds/Dev/ORB_SLAM3/ORB_SLAM3/Examples/ROS
设置如下所示:
编译
# 执行build_ros.sh 脚本
chmod +x build_ros.sh
./build_ros.sh
3. ROS示例
3.1 查看数据集topic信息
在数据集路径下打开终端,输入如下命令
rosbag info MH_01_easy.bag
输出如下:
根据topics信息,修改 ros_mono_inertial.cc 文件中的相应代码,如下所示
ros::Subscriber sub_imu = n.subscribe("/imu0", 1000, &ImuGrabber::GrabImu, &imugb);
ros::Subscriber sub_img0 = n.subscribe("/cam0/image_raw", 100, &ImageGrabber::GrabImage, &igb);
之后再次编译。
3.2 运行
打开第一个终端,启动roscore,如下所示
roscore
打开第二个终端,在Example文件夹下执行
rosrun ORB_SLAM3 Mono_Inertial ../Vocabulary/ORBvoc.txt ./Monocular-Inertial/EuRoC.yaml
打开第三个终端,在数据集文件夹下执行
rosbag play MH_01_easy.bag
运行时,如下所示: