树莓派4B Ubuntu20.04 ROS2 ORB-SLAM3

文章目录

  • 一、编译依赖
  • 二、编译 ORB-SLAM3

一、编译依赖

按照文件中的编译顺序进行编译即可!
有几个问题要注意的是:

  1. 树莓派的交换空间可能不够,需要手动添加 2G 的交换空间,添加教程在这里。
  2. 虽然树莓派4B有4个核心,但是最多使用:make -j2 命令进行编译,不然仍有可能死机。并且一次性并行少量的程序整体进度更快。
  3. 编译Sophus库时需要在~/Sophus_dir/Sophus/CMakeLists.txt 文件中29行下,添加如下内容:
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wno-error=deprecated-copy -Wextra -std=c++11 -Wno-deprecated-declarations -ftemplate-backtrace-limit=0")
  1. sudo updatedb 命令找不到时:
sudo apt-get install mlocate
sudo updatedb

二、编译 ORB-SLAM3

  1. 修改~/slam算法/ORB_SLAM3/CMakeLists.txt中Line 38-44中opencv的版本,为自己电脑上的版本
  2. 编译ORB-SLAM3
cd ~/slam算法/ORB_SLAM3
chmod +x build.sh
./build.sh
  1. 编译ros2-ORB-SLAM3
export ORB_SLAM3_ROOT_DIR=/home/howtoloveyou/slam算法/ORB_SLAM3
  1. ORB-SLAM3 启动单目
cd ~/slam算法/ORB_SLAM3
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml ../../slam-dataset/rgbd_f1_xyz

树莓派4B Ubuntu20.04 ROS2 ORB-SLAM3_第1张图片

  1. ORB-SLAM3 启动RGBD
export LD_LIBRARY_PATH=/home/howtoloveyou/3rd_pkg/Pangolin/build/src/:/home/howtoloveyou/slam算法/ORB_SLAM3/Thirdparty/DBoW2/lib:/home/howtoloveyou/slam算法/ORB_SLAM3/Thirdparty/g2o/lib:/home/howtoloveyou/slam算法/ORB_SLAM3/lib:$LD_LIBRARY_PATH
cd ~/slam算法/ORB_SLAM3
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml ../../slam-dataset/rgbd_f1_xyz Examples/RGB-D/associations/fr1_xyz.txt

树莓派4B Ubuntu20.04 ROS2 ORB-SLAM3_第2张图片

  1. ROS2 ORB-SLAM3 启动 RGBD

提前将ros2-ORB_SLAM3订阅的话题改为数据集的相机话题

cd ~/slam算法/ros2-ORB_SLAM3
. install setup.bash
ros2 run ros2_orbslam3 rgbd /home/howtoloveyou/slam算法/ORB_SLAM3/Vocabulary/ORBvoc.txt /home/howtoloveyou/slam算法/ros2-ORB_SLAM3/src/rgbd/rgbd_f1_xyz.yaml

cd ~/slam-dataset
ros2 bag play rgbd

树莓派4B Ubuntu20.04 ROS2 ORB-SLAM3_第3张图片

你可能感兴趣的:(vslam_exp,ubuntu)