Ubuntu20.04的ROS环境安装ORB-SLAM3详解

这篇具有很好参考价值的文章主要介绍了Ubuntu20.04的ROS环境安装ORB-SLAM3详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

视觉SLAM实验要在Ubuntu20.04系统上使用ROS跑ORB-SLAM3,熟悉一下特征点法的SLAM,把安装过程总结记录下来。

一、配置版本信息

系统 版本
ubuntu 20.04
Pangolin 0.6
Eigen 3
Opencv 4.2
usb_cam

二、替换镜像源

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

执行命令更新源

sudo apt-get update
sudo apt-get upgrade

三、安装ROS环境

1、ROS简介

ROS全称Robot Operating System(机器人操作系统)

  • ROS是适用于机器人的开源元操作系统
  • ROS集成了大量的工具,库,协议,提供类似OS所提供的功能,简化对机器人的控制
  • 还提供了用于在多台计算机上获取,构建,编写和运行代码的工具和库,ROS在某些方面类似于"机器人框架”
  • ROS设计者将ROS表述为“ROS = Plumbing + Tools + Capabilities + Ecosystem",即ROS是通讯机制、工具软件包、机器人高层技能以及机器人生态系统的集合体

http://www.autolabor.com.cn/book/ROSTutorials/index.html

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

2、小鱼安装

小鱼老师把国外关于ROS的库放到了自己的服务器上,所以只用向他的服务器发送命令就能快速安装

安装ROS系统配置比较复杂,Ubuntu20.04对应ROS版本为noetic,推荐使用小鱼老师的一键安装、配置ROS的代码

wget http://fishros.com/install -O fishros && bash fishros

Ubuntu20.04的ROS环境安装ORB-SLAM3详解
平时使用都是ROS1,ROS2是ROS1的改进版本,支持多机,分布式,暂时不会使用。

Ubuntu20.04的ROS环境安装ORB-SLAM3详解
Ubuntu20.04的ROS环境安装ORB-SLAM3详解

四、环境配置

1、安装库

(1)安装git,g++
sudo apt-get install git
sudo apt install g++

建议先安装ROS中的cv_bridgelibopencv-dev,再安装和libopencv版本号一样的opencv库,这样可以避免opencv的版本冲突问题。

(2)安装cv_bridge库
sudo apt-get install libopencv-dev
sudo apt-get install ros-noekit-cv-bridge
(3)安装Opencv
①安装依赖项
sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt install python3-dev python3-numpy
sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
sudo apt install libpng-dev libopenexr-dev libtiff-dev libwebp-dev
②下载Opencv源文件

解压至主目录,重新命名:opencv
Ubuntu20.04的ROS环境安装ORB-SLAM3详解

③安装OpenCV
cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES ..
make -j16 
sudo make install

④查看版本号
pkg-config --modversion opencv4

Ubuntu20.04的ROS环境安装ORB-SLAM3详解
由于noekit的自带libopencv版本是4.2.0,如果安装opencv3会出现版本冲突使编译不通过。如果安装opencv4但不是4.2.0依然会产生冲突,但编译能够通过,但运行时会出现核心已转储的问题。所以建议直接安装和libopencv一样的版本,小鱼的ROS已经自带OpenCV4.2.0,所以只需要挑着安装即可

(4)安装EIGEN库
sudo apt-get install libeigen3-dev

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

(5)安装Pangolin库
①下载Pangolin 0.6

解压到主目录,重新命名为Pangolin
Ubuntu20.04的ROS环境安装ORB-SLAM3详解

②安装依赖项
sudo apt-get install libglew-dev libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libpng-dev

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

③编译安装
cd Pangolin 
mkdir build && cd build
cmake -DCPP11_NO_BOOST=1 ..
make

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

sudo make install

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

④验证
cd ../examples/HelloPangolin
mkdir build && cd build
cmake ..

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

make
./HelloPangolin
#成功会弹出如下窗口

Ubuntu20.04的ROS环境安装ORB-SLAM3详解
Ubuntu20.04的ROS环境安装ORB-SLAM3详解

(6)安装Boost库

①这里非常坑,官网上的依赖没有boost,但如果不安装boost会报很多的关于c++的错误,并且无法定位

②进入boost官网网址:http://www.boost.org/users/download/

③解压编译安装

tar -xvf boost_1_77_0.tar.gz
cd ./boost_1_77_0
./bootstrap.sh
sudo ./b2 install

2、ORB-SLAM3编译

(1)下载ORB-SLAM3
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

(2)修改源文件

①ORB_SLAM3下CMakeLists.txt

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

  • 第20行 c++11
 set(CMAKE_CXX_STANDARD 14)

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

  • 第41行 Eigen3
find_package(Eigen3 REQUIRED)

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

②修改ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/CMakeLists.txt
Ubuntu20.04的ROS环境安装ORB-SLAM3详解

  • 第12、13行,去掉-march=native,避免运行一段时间后核心已转储的问题

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  -Wall  -O3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall   -O3")

第41行,将find_package(Eigen3 3.1.0 REQUIRED)修改
Ubuntu20.04的ROS环境安装ORB-SLAM3详解

find_package(Eigen3 REQUIRED)
  • 第20行,std=c++11

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

 set(CMAKE_CXX_STANDARD 14)
  • 第33行OpenCV版本

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

find_package(OpenCV 4.2.0 REQUIRED)
  • 修改ORB_SLAM3/Thirdparty/DBoW2 /CMakeLists.txt

去掉-march=native,避免运行一段时间后核心已转储的问题Ubuntu20.04的ROS环境安装ORB-SLAM3详解
Ubuntu20.04的ROS环境安装ORB-SLAM3详解

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  -Wall  -O3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall   -O3")
  • 修改ORB_SLAM3/Thirdparty/g2o/CMakeLists.txt
    去掉-march=native,避免运行一段时间后核心已转储的问题

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  -Wall  -O3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall   -O3")

将find_package(Eigen3 3.1.0 REQUIRED)修改
Ubuntu20.04的ROS环境安装ORB-SLAM3详解

find_package(Eigen3 REQUIRED)
(3)安装python2.7
sudo apt install libpython2.7-dev

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

(4)添加ROS环境

①在编译ros版本时候需要初始化ROS,在**~/.bashrc的最后一行加入以下代码

sudo gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/geekfanr/workspace/ORB_SLAM3/Examples/ROS
#保存退出
source ~/.bashrc

Ubuntu20.04的ROS环境安装ORB-SLAM3详解
②再打开一个终端运行

echo ${ROS_PACKAGE_PATH}

Ubuntu20.04的ROS环境安装ORB-SLAM3详解
如果能正确显示刚刚加入的地址则正常

ROS中使用许多工具前,要求需要初始化rosdep(可以安装系统依赖),rosdep 的初始化与更新

小鱼基于rosdep源码制作了rosdepc,专门服务国内ROS用户

sudo pip install rosdepc
(5)编译

①编译ORB-SLAM3

cd ORB_SLAM3
chmod +x build.sh
./build.sh

Ubuntu20.04的ROS环境安装ORB-SLAM3详解
②编译ROS下ORB-SLAM3

cd ORB_SLAM3
chmod +x build_ros.sh
./build_ros.sh

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

五、ORB-SLAM3运行

1、创建工作目录

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
source ~/catkin_ws/devel/setup.bash

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

2、安装usb_cam

cd catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git
cd ..
ctakin_make
source ./devel/setup.bash

3、编译usb_cam

cd  ~/catkin_ws/src/usb_cam
mkdir build
cd build
cmake ..
make

4、测试usb摄像头

打开新终端,运行ROS

roscore
cd ~/catkin_ws/

回到原终端运行launch文件

source devel/setup.bash
roslaunch usb_cam usb_cam-test.launch

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

这里注意,如果是虚拟机运行,需要把USB控制器的USB兼容性给为USB 3.1

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

5、相机标定

(1)安装v4l2
sudo apt-get install v4l-utils
(2)张正友相机标定方法

在ROS中已经集成了对相机完成标定以及畸变矫正的整个流程,用起来非常方便。通常使用张正友相机标定方法,即利用平面坐标的单应性关系,流程简洁

(3)8×6的角点

黑白棋盘格是由9×7的黑白格组成,但是使用时仅仅用到内部交点数即8×6的角点

rosrun camera_calibration cameracalibrator.py –size 8×6 –square 0.03 image:=/usb_cam/image_raw
(4)保存标定结果

注意标定过程中左右,上下,前后,对角方向前后倾斜标定板,这样使得右边X,Y,Size,Skew变成绿色后,CALIBRATE按钮变为蓝色,然后点击(等上半分钟左右)变为下面三个按钮都可以点击,依次点击SAVE(保存)和COMMIT(提交)到相机配置文件中。即可将标定结果保存至本地。

(5)标定结果文件calibrationdata.tar.gz

点击SAVE之后:(‘Wrote calibration data to’, ‘/tmp/calibrationdata.tar.gz’)

Ubuntu20.04的ROS环境安装ORB-SLAM3详解
找到标定结果文件后,按照其数据修改Examples_Old/ROS/ORB_SLAM3目录下Asus.yaml

6、数据保存

(1)点击save按钮,终端会打印生成文件及路径(计算机目录/tmp下)

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

(2)点击commit按钮,提交数据并退出程序,可以看到提示写入文件head_camera.yaml
writing calibration data to /home/geekfanr/.ros/camera_info/head_camera.yaml

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

(3)修改Asus.yaml

找到标定结果文件后,按照其数据修改Examples_Old/ROS/ORB_SLAM3目录下Asus.yaml
Ubuntu20.04的ROS环境安装ORB-SLAM3详解
Ubuntu20.04的ROS环境安装ORB-SLAM3详解

(4)相机矩阵参数

由于OpenCV标定出来的文件,畸变参数好像和ORB-SLAM2使用的畸变参数略有不同,这里先不填,只填上相机矩阵的参数。
Ubuntu20.04的ROS环境安装ORB-SLAM3详解

7、运行ROS下ORB-SLAM3

(1)接收话题名称更改

在运行程序之前,需要将ORB_SLAM3/Examples_Old/ROS/ORB_SLAM3/src/ros_mono.cc和ORB_SLAM3/Examples_Old/ROS/ORB_SLAM3/src/AR/ros_mono_ar.cc的接收话题名称更改

ros::NodeHandle nodeHandler;
ros::Subscriber sub = nodeHandler.subscribe("/usb_cam/image_raw", 1, &ImageGrabber::GrabImage,&igb);
ros::spin();

Ubuntu20.04的ROS环境安装ORB-SLAM3详解
Ubuntu20.04的ROS环境安装ORB-SLAM3详解

(2)执行单目实时usb_cam效果
rosrun ORB_SLAM3 Mono Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml

Ubuntu20.04的ROS环境安装ORB-SLAM3详解

六、总结

目前能够编译运行诸如此类的特征法SLAM开源项目了,虽然初学经历了各种尝试,但是熟悉了Linux系统和ROS系统的操作、cmake、shell、OpenCV等等,为了能够自己进行开发,还需要更深入的学习。

从开源项目入手,学习其理论和工程实现,是入门的捷径,只有看懂的代码才改的动代码,深入之后在其基础上做一定的改进。

工程实现只是科研的一部分,作为研究生,更重要的是抓住SLAM中的一个小问题,看看能否对现有的算法进行改进或者比较。所以还是要从论文出发,寻找灵感,去实现,并验证效果。文章来源地址https://www.toymoban.com/news/detail-420621.html

到了这里,关于Ubuntu20.04的ROS环境安装ORB-SLAM3详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SLAM实战篇】Ubuntu 20.04版本(OpenCV版本4.5.3)对于ORB-SLAM2安装运行,代码编译,自己的数据集构造

    学完SLAM十四讲 心血来潮想跑一下ORB-SLAM2的代码,纯新手小白,自己的踩坑经历进行整理: 本文章主要对ORB-SLAM2进行编译运行。以及自己构建数据集。 源码github地址:https://github.com/raulmur/ORB_SLAM2 终端克隆代码: 查看源代码,其重要的代码库仅为三个文件夹: Example include s

    2024年03月13日
    浏览(44)
  • Ubuntu20.04配置YOLOV5算法相关环境,并运行融合YOLOV5的ORB-SLAM2开源代码(亲测有效)

              这篇博客介绍的是如何在Ubuntu系统下配置YOLOV5算法环境。并且运行一个融合YOLOV5的ORB-SLAM2开源代码。         安装的软件主要是anaconda,然后anaconda可以帮我们安装python、pytorch这些东西。我的ubuntu版本:ubuntu20.04.5LTS。 安装的anaconda类型: Anaconda3-2022.05 安装的p

    2024年02月02日
    浏览(37)
  • ORB_SLAM2配置——基于Ubuntu20.04+ROS+gazebo仿真

    一、引言 ORB-SLAM2,它是基于单目、双目或RGB-D相机的一个完整的SLAM系统,其中包括地图重用、回环检测和重定位功能。这个系统可以适用于多种环境,无论是室内小型手持设备,还是工厂环境中飞行的无人机和城市中行驶的车辆,其都可以在标准CPU上实时运行。该系统的后端

    2023年04月13日
    浏览(39)
  • 记录:ubuntu20.04+ORB_SLAM2_with_pointcloud_map+ROS noetic

    由于相机实时在线运行需要ROS,但Ubuntu22.04只支持ROS2,于是重装Ubuntu20.04。 上一篇文章跑通的是官方版本的ORB_SLAM2,不支持点云显示。高翔修改版本支持RGB-D相机的点云显示功能。 高翔修改版本ORB_SLAM2:https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map 环境:ubunntu20.04、opencv3.4.

    2024年02月11日
    浏览(38)
  • 【ORB_SLAM】Ubuntu20.04 配置ORB_SLAM3

    本文主要记录基于Ubuntu20.04环境下,对普通的ORB_SLAM3和稠密版本的ORB_SLAM3进行环境的配置。 这里采用鱼香ros的一键安装,感谢小鱼的一键安装。 Pangolin:链接: https://pan.baidu.com/s/1FXYLsEK1W3xmX0m_Vqylag 提取码: jgz2 (基于小六的注释后的ORB_SLAM3代码) https://github.com/electech6/ORB_SLAM3_d

    2024年02月15日
    浏览(43)
  • ORB-SLAM2详细安装教程(ubuntu18.04)

    paper: https://arxiv.org/pdf/1610.06475.pdf githup: :https://github.com/raulmur/ORB_SLAM2 提示:ORB-SLAM2源码作者推荐在Ubuntu 12.04, 14.04 和16.04上安装运行。 最近在ubuntu18.04上配置ORB-SLAM2运行环境时踩了很多坑,在这期间查阅了很多资料和博客,于是想对安装过程进行总结,方便自己反复查阅以及分享经

    2024年02月02日
    浏览(54)
  • ubuntu20.04一键安装VScode搭建ROS编程环境

    VSCode 全称 Visual Studio Code,是微软出的一款轻量级代码编辑器,免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。

    2023年04月24日
    浏览(41)
  • ubuntu18.04配置ORB-SLAM3并跑EuRoC数据集(单目)

    1.1  C++11 or C++0x Compiler 安装 新建一个终端(新建终端的快捷键是Ctrl+Alt+T) 输入以下代码 sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install build-essential sudo apt-get install cmake 1.2  Pangolin 安装 Pangolin的官方教程地址:https://github.com/stevenlovegrove/Pangolin 安装Pangolin 1.2.1下载

    2023年04月20日
    浏览(44)
  • Ubuntu18.04版本下配置ORB-SLAM3和数据集测试方法

    使用:VMware Workstation Pro 虚拟机系统版本是:Ubuntu 18.04.06 虚拟机内存:8g(若为4g大小,很容易出现后文中ORB-SLAM3编译时会出现的内存问题) 虚拟机存储:50g 若是配置完发现存储空间不足,可以参考这篇博客进行清理: 下载配置技巧:Ubuntu18.04安装vmware-tools解决无法复制粘贴

    2024年02月09日
    浏览(40)
  • Ubuntu18.04下使用安卓手机Camera和IMU信息运行ORB-SLAM2

    1、下载Android_Camera-IMU,将其中的Camera-Imu.apk文件发送至手机端进行安装。 下载命令: git clone https://github.com/hitcm/Android_Camera-IMU.git  发送至手机的文件在手机端安装以后的软件  在手机端安装好以后的软件如下:  2、安装功能依赖包:sudo apt-get install ros-melodic-imu-tools  # 修改

    2024年02月09日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包