Ubuntu 20.04 下 ORB-SLAM3 安装运行记录

时 2023 年 8 月 29 日


安装

前置依赖安装

ROS Noetic

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt update
sudo apt install ros-noetic-desktop-full
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc`
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo apt install python3-rosdep
sudo rosdep init
rosdep update

OpenCV 4.4

若已安装 ROS noetic 则可跳过此步骤,因为 ROS noetic 自带 OpenCV 4.2.0,与 ORB-SLAM3 所要求的 OpenCV 4.4.0 没什么区别,仅需修改 ORB-SLAM3 项目目录下的 CMakeLists.txt 文件即可。

Pangolin 0.5

Pangolin-0.5.zip
官方未对该依赖的版本做出说明,经测试 Pangolin 0.5 版本未见错误。

sudo cp ./Pangolin-0.5 /usr/local/src/
cd /usr/local/src/
sudo unzip Pangolin-0.5
sudo apt-get install libglew-dev
sudo apt-get install cmake
cd Pangolin-0.5
sudo mkdir build
# 执行完下面的 sudo make install 命令后,该依赖将被安装到 /usr/local/Pangolin-0.5
sudo cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/Pangolin-0.5 ..
sudo make -j7
sudo make install

ORB-SLAM3

  1. git clone 源码;
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
  1. 修改所需 OpenCV 版本;
find_package(OpenCV 4.4)
   if(NOT OpenCV_FOUND)
      message(FATAL_ERROR "OpenCV > 4.4 not found.")
   endif()
find_package(OpenCV 4)
	if(NOT OpenCV_FOUND)
     message(FATAL_ERROR "OpenCV > 4 not found.")
  endif()

将 ORB-SLAM3/Examples/ROS/CMakeLists.txt 中:

find_package(OpenCV 3.0 QUIET)
find_package(OpenCV 4.0 QUIET)
  1. 修改 ORB-SLAM3/build.sh(build_ros.sh) 文件,在 make -j 后面加上线程数;
  2. 编译。
# 非 ROS
./build.sh

# ROS
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/Your/ORB-SLAM3/path/Examples/ROS
./build_ros.sh

编译 ORB-SLAM3 ROS 出现的问题

问题 1:不存在目录 Examples/ROS/ORB_SLAM3

Screenshot from 2023-08-29 16-11-56.png

解决:将 Examples_old/ROS 复制到 Examples 目录下

Examples_old 目录下的例子是 v0.4-beta 版本的,v0.1-release 的 Examples 中没有 ROS 目录。

不要忘记修改 ORB_SLAM3/Examples/ROS/ORB_SLAM3/CMakeLists.txt,使其找到 OpenCV 4。

问题 2:找不到头文件 sophus/se3.hpp

Screenshot from 2023-08-29 16-19-42.png

解决:在 include_directories 中添加路径

${PROJECT_SOURCE_DIR}/../../../Thirdparty/Sophus

Screenshot from 2023-08-29 16-24-16.png

问题:错误转换

Screenshot from 2023-08-29 16-27-02.png

解决:不会!修改 ORB_SLAM3/Examples/ROS/ORB_SLAM3/CMakeLists.txt,将下述几行注释掉。

rosbuild_add_executable(MonoAR
src/AR/ros_mono_ar.cc
src/AR/ViewerAR.h
src/AR/ViewerAR.cc
)

target_link_libraries(MonoAR
${LIBS}
)

运行

非 ROS

./Examples/Stereo-Inertial/stereo_inertial_euroc Vocabulary/ORBvoc.txt Examples/Stereo-Inertial/EuRoC.yaml /mnt/wzy/workspace/information/dataset/euroc/zip/MH_01_easy Examples/Stereo-Inertial/EuRoC_TimeStamps/MH01.txt

问题:程序已经运行,却没有可视化界面

Screenshot from 2023-08-29 16-32-40.png

解决:修改运行对应的源程序,将下图处 false 改为 true,保存并重新编译即可

Screenshot from 2023-08-29 16-34-47.png

运行成功

Screenshot from 2023-08-29 16-40-30.png

ROS

  1. 运行 roscore
  2. 运行下述命令:
./Examples/ROS/ORB_SLAM3/Stereo_Inertial Vocabulary/ORBvoc.txt Examples/Stereo-Inertial/EuRoC.yaml false
  1. play bag:
rosbag play /mnt/wzy/workspace/information/dataset/euroc/bag/MH_01_easy.bag /cam0/image_raw:=/camera/left/image_raw /cam1/image_raw:=/camera/right/image_raw /imu0:=/imu

运行成功

Screenshot from 2023-08-29 16-58-24.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值