【ORB_SLAM】Ubuntu20.04 配置ORB_SLAM3

2023-05-16

本文主要记录基于Ubuntu20.04环境下,对普通的ORB_SLAM3和稠密版本的ORB_SLAM3进行环境的配置。

一、配置ORB_SLAM3<普通版本>

1.安装ROS开发环境

这里采用鱼香ros的一键安装,感谢小鱼的一键安装。

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

2.安装Pangolin

Pangolin:链接: https://pan.baidu.com/s/1FXYLsEK1W3xmX0m_Vqylag 提取码: jgz2

# 这里采用的是Pangolin-0.5-20.04
cd Pangolin-0.5-20.04
mkdir build
cd build
cmake ..
make -j
sudo make install 

3.安装eigen

sudo apt-get install libeigen3-dev

4.拉取orb_slam3 的源码

(基于小六的注释后的ORB_SLAM3代码)

https://github.com/electech6/ORB_SLAM3_detailed_comments

git clone https://github.com/electech6/ORB_SLAM3_detailed_comments.git

5.安装DBoW2(在Thirdparty文件中)

需要先修改opencv版本

如何查看opencv版本号?

编译(由于在工程当中,并不需要install)

cd DBoW2
mkdir build
cd build
cmake ..
make -j

6.安装g2o

cd g2o
mkdir build
cd build
cmake ..
make -j

7.开始编译ORBSLAM3(普通版)

在工程中修改CMakeLists 中opencv的版本,一定要与系统的opencv版本一致

cd ORB_SLAM3_detailed_comments
mkdir build
cd build
cmake ..
make -j

若显示以上报错,则需要安装realsense2

sudo apt-get install ros-noetic-realsense2-camera

ORB_SLAM3也可以使用一键安装

cd ORB_SLAM3_detailed_comments
sudo chmod 777 build.sh
./build.sh

8.编译ORB_SLAM3 ROS环境

同样需要先修改OpenCV的版本号为本机版本

在bashrc中添加ORBSLAM路径

sudo vim ~/.bashrc
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/robot/orb_slam3/ORB_SLAM3_detailed_comments/Examples/ROS/ORB_SLAM3
# vim 操作方法: 输入 按a
#              结束先按Esc ,再按 :wq
# 记得source下环境
source ~/.bashrc

若出现以上错误,则需要去rosdep init一下,并且rosdep update

可以使用最上面的鱼香ros更新一下

cd ORB_SLAM3_detailed_comments/Examples/ROS/ORB_SLAM3
mkdir build
cd build
cmake ..
make -j

也可以使用一键安装

cd ORB_SLAM3_detailed_comments
sudo chmod 777 build_ros.sh
./build_ros.sh

9.测试一下

# 运行代码之前记得source一下
cd orb_slam3/ORB_SLAM3_detailed_comments/Examples/ROS/ORB_SLAM3/build
source devel/setup.bash
# 终端1
roscore
# 终端2
rosrun ORB_SLAM3 Mono_Inertial /home/robot/orb_slam3/ORB_SLAM3_detailed_comments/Vocabulary/ORBvoc.txt /home/robot/orb_slam3/ORB_SLAM3_detailed_comments/Examples/Monocular-Inertial/EuRoC.yaml

测试数据集:

链接: https://pan.baidu.com/s/1WwTSvQqJ8QSpPPs0G-dXNg 提取码: nnej

rosbag play V1_01_easy.bag

这样,普通版本的ORB_SLAM3环境搭建成功!

将ORB-SLAM3编写成launch文件

<?xml version="1.0"?>
<launch>
    <node pkg="ORB_SLAM3" type="RGBD" name="RGBD" args="/home/qsx/orb_slam/ORB_SLAM3_detailed_comments/Vocabulary/ORBvoc.txt /home/qsx/orb_slam/ORB_SLAM3_detailed_comments/Examples/RGB-D/RealSense_L515.yaml" />

    <arg name="node_start_delay" default="5.0" />  
    <node pkg="rosbag" type="play" name="rosbag_play" args="/home/qsx/F1_dataset/1/record_12_6_F1_3.bag" launch-prefix="bash -c 'sleep $(arg node_start_delay); $0 $@' " />
</launch>

二、编译ORB_SLAM3(稠密版本)

1.下载源码:

git clone -b dense_map_new https://github.com/electech6/ORB_SLAM3_detailed_comments.git

同样需要先安装Thirdparty中的DBoW2和g2o,方法同上。

2.修改opencv版本

若出现以上错误,则需要安装pcl-1.12版本

3.解决pcl多版本共存问题

pcl各个版本下载地址:https://github.com/PointCloudLibrary/pcl/releases

下载pcl-1.12.1:https://github.com/PointCloudLibrary/pcl/archive/refs/tags/pcl-1.12.1.zip

(个人认为:由于我们一般编译安装的文件都放再/usr/local路径,而若是我们自行定义自己的文件夹,这样系统就找不到,也就不会出现多版本共存冲突的问题啦!<俗话说,打不过我躲还行吧!>但需要在CMakeList文件中去寻找我们的文件路径)

①将下载的1.12.1源码放到pcl-1.12文件夹中,再新建一个pcl-1.12_installfile文件用来存放安装后的文件

②开始编译pcl

cd pcl-1.12
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/home/robot/Documents/pcl-1.12_installfile ..
make
make install 
make clean

③修改CmakeList文件

修改成如下:

find_package(PCL 1.12 REQUIRED 
PATHS /home/robot/Documents/pcl-1.12_installfile
)

4.修改c++版本

若出现以上错误,则需要把C++11改为C++14

把C++11改为C++14

5.C++问题

若出现error: ‘std::chrono::monotonic_clock’ has not been declared

则全部替换成steady_clock

这样就可以编译通过啦!

6.编译稠密版本的ORB_SLAM3 ROS

①添加bashrc环境

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/robot/orb_slam3/dense_ORB_SLAM3_detailed_comments/Examples/ROS/ORB_SLAM3

# 保存完记得 
source ~/.bashrc 

②修改CMakeList文件

③使用一键安装

sudo chmod 777 build_ros.sh
./build_ros.sh

④pcl问题

若出现pcl/point_types.h:No such file or directory

则需要修改CMakeList文件

⑤C++版本问题

若出现上述问题,则需要将C++11改为C++14

这样就ROS的稠密版本也编译完成啦!

7.测试一下

①编写launch文件

<?xml version="1.0"?>
<launch>
    <!-- <include file="$(find ORB_SLAM3)/launch/rs_camera.launch"/> -->


    <node pkg="ORB_SLAM3" type="RGBD" name="RGBD" args="/home/robot/orb_slam3/dense_map_ORB_SLAM3_detailed_comments/Vocabulary/ORBvoc.txt /home/robot/orb_slam3/dense_map_ORB_SLAM3_detailed_comments/Examples/ROS/ORB_SLAM3/config/RealSense_L515.yaml" output="screen"/>

    <arg name="node_start_delay" default="5.0" />  

    <node pkg="rosbag" type="play" name="rosbag_play" args="/media/robot/Q小鑫/数据集/R2DIO_data/F3_scene3_data/F3_scene3_dataset/F3_scene3_4.bag" launch-prefix="bash -c 'sleep $(arg node_start_delay); $0 $@' " />

    
</launch>

②修改相机Yaml文件(采用的是RealSense_L515相机)

%YAML:1.0

#--------------------------------------------------------------------------------------------
# Camera Parameters. Adjust them!
#--------------------------------------------------------------------------------------------
# File.version: "1.0"

Camera.type: "PinHole"

# Right Camera calibration and distortion parameters (OpenCV)
Camera.fx: 603.086
Camera.fy: 603.23
Camera.cx: 329.578
Camera.cy: 232.509


# distortion parameters
Camera.k1: 0.15858
Camera.k2: -0.492513
Camera.k3: 0.4519
Camera.p1: -0.00218088
Camera.p2: 0.00021294 

# Camera resolution
Camera.width: 640
Camera.height: 480

# Camera frames per second 
Camera.fps: 30

# IR projector baseline times fx (aprox.)
Camera.bf: 30.33325

# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1

# Close/Far threshold. Baseline times.
ThDepth: 40.0
#Stereo.b: 0.0745
DepthMapFactor: 1000.0
# DepthMapFactor: 1.0
# Depth map values factor
# RGBD.DepthMapFactor: 1000.0

#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------
# ORB Extractor: Number of features per image
ORBextractor.nFeatures: 1000

# ORB Extractor: Scale factor between levels in the scale pyramid     
ORBextractor.scaleFactor: 1.2

# ORB Extractor: Number of levels in the scale pyramid    
ORBextractor.nLevels: 8

# ORB Extractor: Fast threshold
# Image is divided in a grid. At each cell FAST are extracted imposing a minimum response.
# Firstly we impose iniThFAST. If no corners are detected we impose a lower value minThFAST
# You can lower these values if your images have low contrast            
ORBextractor.iniThFAST: 20
ORBextractor.minThFAST: 7

#--------------------------------------------------------------------------------------------
# Viewer Parameters
#--------------------------------------------------------------------------------------------
Viewer.KeyFrameSize: 0.05
Viewer.KeyFrameLineWidth: 1.0
Viewer.GraphLineWidth: 0.9
Viewer.PointSize: 2.0
Viewer.CameraSize: 0.08
Viewer.CameraLineWidth: 3.0
Viewer.ViewpointX: 0.0
Viewer.ViewpointY: -0.7
Viewer.ViewpointZ: -1.8
Viewer.ViewpointF: 500.0

PointCloudMapping.Resolution: 0.05
meank: 50
thresh: 1.0

发现源码颜色有点不对劲

修改源码:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【ORB_SLAM】Ubuntu20.04 配置ORB_SLAM3 的相关文章

  • 三维刚体变换

    欢迎访问我的博客首页 三维刚体变换 1 坐标系 1 1 空间坐标系 1 2 右手坐标系与像素坐标系 2 旋转与平移 2 1 推导旋转 2 2 推导平移 2 3 推导变换 2 4 刚体变换 2 5 坐标系旋转与向量旋转 3 链式变换 4 Ei
  • No rule to make target

    No rule to make target 引言 解决方法 引言 报错 No rule to make target Thirdparty g2o lib libg2o so needed by lib libygz SLAM so 停止
  • SLAM入门

    SLAM定义 SLAM Simultaneous localization and mapping 同时定位 我在哪里 与建图 我周围有什么 当某种移动设备 汽车 扫地机 手机 无人机 机器人 从一个未知环境的未知地点出发 在运动过程中 通
  • ubuntu系统下配置vscode编译cmake

    文章目录 一 配置vs code运行c 代码 三个关键文件介绍 1 tasks json run helloworld cpp 1 1 打开cpp文件 使其成为活动文件 1 2 按编辑器右上角的播放按钮 1 3生成task文件 1 4 此时
  • Event-based Stereo Visual Odometry(双目事件相机里程计)论文学习

    本文详细介绍一篇双目事件相机里程计的论文 Event based Stereo Visual Odometry 港科大沈邵劼团队Yi Zhou和TU Berlin的Guillermo Gallego共同完成 并公布了代码 我准备在接下来一段
  • Ubuntu18.04 安装速腾聚创最新驱动RSLidar_SDK采集XYZIRT格式的激光点云数据 --SLAM不学无术小问题

    Ubuntu18 04 安装速腾聚创最新驱动RSLidar SDK采集XYZIRT格式的激光点云数据 新款驱动支持RS16 RS32 RSBP RS128 RS80 RSM1 B3 RSHELIOS等型号 注意 该教程旨在引导安装 可能现在
  • 【SLAM】卡尔曼滤波(Kalman Filter)

    卡尔曼滤波 Kalman filter 一种利用线性系统状态方程 通过系统输入输出观测数据 对系统状态进行最优估计的算法 由于观测数据中包括系统中的噪声和干扰的影响 所以最优估计也可看作是滤波过程 卡尔曼滤波器的原理解释如下 首先 我们先要
  • 【大一立项】如何亲手搭建ROS小车:硬件和软件介绍

    本次博客将详细介绍上篇博客中提到的ROS小车的硬件和软件部分 由于十一实验室不开门 所以部分代码还没有上传到Github 下位机 下位机使用Arduino 因为大一上刚学完用Arduino做循迹小车 其实Arduino作为ROS小车的下位机
  • Sophus使用记录

    sophus库是一个基于Eigen的C 李群李代数库 可以用来方便地进行李群李代数的运算 头文件 主要用到以下两个头文件 include
  • rtabmap安装与使用

    参考 ubuntu18 04安装Rtabmap 具体详细步骤 教你手把手运行基于ZED的rtab map ZED入门 利用RTAB MAP做SLAM ubuntu16 04 ROS Kinetic rtabmap 源码 非ros版本 安装运
  • 对最小二乘法的一点理解 - slam学习笔记

    我对最小二乘法的理解 在给定参数个数和函数模型之后 根据测试数据 找出与所有测试数据的偏差的平方和最小的参数 这里面应该有两个问题 1 为什么选取与真实数据平方和最小的拟合函数 2 如何求参数 为什么选取与真实数据平方和最小的拟合函数 极大
  • 视觉SLAM漫谈(二):图优化理论与g2o的使用

    视觉SLAM漫谈 二 图优化理论与g2o的使用 1 前言以及回顾 各位朋友 自从上一篇 视觉SLAM漫谈 写成以来已经有一段时间了 我收到几位热心读者的邮件 有的希望我介绍一下当前视觉SLAM程序的实用程度 更多的人希望了解一下前文提到的g
  • 激光SLAM7-基于已知位姿的构图算法

    1 通过覆盖栅格建图算法进行栅格地图的构建 1 1 Theory 1 2 code 这里没有判断idx和hitPtIndex是否有效 start of TODO 对对应的map的cell信息进行更新 1 2 3题内容 GridIndex h
  • Sophus安装踩坑

    装SLAM十四讲第二版提供的Sophus Eigen版本3 4 0 报错 home ch 下载 Sophus 13fb3288311485dc94e3226b69c9b59cd06ff94e test core test so2 cpp 9
  • ORB-SLAM2:基于可识别特征的自主导航与地图构建

    目录 ORB SLAM2 基于可识别特征的自主导航与地图构建 简介 地图 A 地图特征点或3D ORB B 关键帧 C 可视化图像 位置识别 A 图像识别数据库 B 高效优化的ORB匹配 C 视觉一致性 自主导航追踪 A ORB特征获取 B
  • LeGO-LOAM代码详细注释版

    学习LeGO LOAM时 写的代码注释github代码链接 一部分注释来自github用户wykxwyc 一部分来自网上查阅 还有一部分是自己的理解 持续更新中
  • 快看!那个学vSLAM的上吊了! —— (一)综述

    不同于之前发布的文章 我将使用一种全新的方式 iPad Notability Blog的方式打开这个板块的大门 原因有两个 1 Notability更方便手写长公式 也方便手绘坐标系变换等等 2 之前Apple Pencil找不到了新破费买
  • ORB-SLAM2:基于可识别特征的自主导航与地图构建

    ORB SLAM2 基于可识别特征的自主导航与地图构建 ORB SLAM Tracking and Mapping Recognizable Features 转自 http blog csdn net cicibabe article d
  • Todesk突然高速通道使用已结束

    今天使用Todesk直接报出如下错误 好像对于海外用户需要付费购买海外会员 大家有没有什么可以替换的远程控制软件的吗 能分享一下吗
  • ORB 演示代码出现 cv2.error 错误:来自 OpenCV 代码的未知 C++ 异常

    ORB 演示代码位于https opencv python tutroals readthedocs io en latest py tutorials py feature2d py orb py orb html https openc

随机推荐

  • 51单片机串口通信实操(中断函数)

    51单片机串口通信实操 xff08 中断函数 xff09 详细参考单片机手册 SM0 SM1分别为0 1时为模式一 xff0c 因为模式一最为常用 REN 61 1 xff0c 为接收 xff0c REN 61 0 为不接收 当 SM0 S
  • 【Qt学习】编写第一个Qt程序(使用纯代码)

    其实大部分情况下还是使用qtcreator这个工具去编写我们的Qt程序 xff0c 而为什么要记录下这一篇笔记呢 xff1f 主要是想走一遍Qt编译的一个流程 xff0c 更好的理解其内部的编译 xff01 一 创建存放Qt程序的文件夹 x
  • linux---线程安全(同步与互斥)

    1 什么是线程安全 2 如何实现线程安全 3 什么是互斥和互斥的实现 4 死锁 5 什么是同步和同步的实现 6 可重入和不可重入函数 1 什么是线程安全 多个线程同时操作临界资源 xff0c 而不会出现数据的二义性就说明这个线程就是线程安全
  • 【conda学习】记录conda命令

    我们在安装python环境依赖时都比较喜欢使用Anaconda或者Miniconda来进行配置 xff0c 因此本文主要记录一下conda命令的一些相关操作 目录 一 查看版本号 二 查看当前存在的环境空间 三 创建环境空间 四 激活环境空
  • 【STM32学习】(一)CubeMX安装

    安装的所需工具 xff1a 链接 xff1a https pan baidu com s 100vmpGWgrkjasTqhxFFcww 提取码 xff1a zw9i 1 安装JRE 打开JPE安装包 xff1a 然后按照默认即可安装成功
  • 【STM32学习】(二)CubeMX基于HAL库GPIO输出/输入

    本文主要记录下初学cubeMX进行HAL库配置 单片机 xff1a STM32F407ZGT6 一 新建工程 打开CubeMX xff0c Access To MCU SELETOR 二 配置CubeMX 1 设置Debug方式 因为我用的
  • 【科研】文献下载神器方式汇总

    目录 1 X MOL 2 文献小镇 3 文献部落 4 柠檬文献 5 SCI Hub 6 SCI Down 1 X MOL X MOL科学知识平台 学术综合平台 xff0c 查询和下载集成一体 2 文献小镇 sci hub网址 SCIHUB
  • 【Ubuntu】Ubuntu20.04安装GPU显卡驱动

    一 安装显卡驱动 方式一 xff1a 图形界面安装 等待安装即可 方式二 xff1a 命令行安装 sudo apt get install nvidia driver 515 有些显卡只支持455 安装完成记得重启一下 xff0c 然后验证
  • 【Ubuntu】Ubuntu20.04安装NVIDIA Container Toolkit

    基于Apollo的CUDA的docker镜像需要依赖于NVIDIA Container Toolkit xff0c 运行以下命令安装NVIDIA Container ToolKit xff1a distribution 61 etc os
  • 【Cyber RT】Apollo Cyber RT安装

    一 下载源码 克隆Apollo 源码仓库 git clone https gitee com ApolloAuto apollo git xff08 耗时30min xff09 二 启动Apollo Docker 开发容器 进入到Apoll
  • 【导航规划】导航规划背景知识总结

    导航规划类型 xff1a 固定路径引导 1 有人工标识导引 xff08 AGV xff09 磁条导航 磁感应线导航 磁钉导航 二维码导航 AGV xff1a Automatic Guided Vehicle 自动导引车 优点 xff1a 技
  • 【Ubuntu】树莓派4B安装Ubuntu18.04(超详细)

    本教程主要记录下近期给树莓派4B安装Ubuntu18 04的过程 xff01 xff01 xff01 目录 一 下载Ubuntu18 04 Server版本 二 烧录 三 修改WiFi登录以及树莓派分辨率 1 修改wifi 2 修改分辨率
  • 【Summary】机器人方法汇总

    目录 一 软件安装篇 1 安装ROS 2 树莓派4B安装Ubuntu18 04 3 Ubuntu20 04安装GPU 4 Ubuntu20 04安装NVIDIA Container Toolkit 5 Apollo Cyber RT安装 二
  • linux---生产者和消费者模型(条件变量和信号量实现)

    问题的提出 在我们对一些全局变量的进行非原子性操作的时候就可能出现非线程安全 xff0c 比如我们吃面的问题 我们做面的人就是生产者 xff0c 吃面的人就是我们的消费者 xff0c 当我们的消费者需要吃面的时候就唤醒我们的生产者进行生产
  • 【SLAM学习】一些必备依赖包的安装与问题总结

    Ceres xff1a 下载地址 xff1a https github com ceres solver ceres solver releases tag 1 14 0 1 修改 sources list sudo gedit etc a
  • 【数据集】数据集下载总结

    1 AI Studio 数据集 开放数据集 百度AI Studio 人工智能学习与实训社区 2 天池 数据集 数据集 阿里系唯一对外开放数据分享平台 3 Papers with code 数据集 Machine Learning Datas
  • 【RealSense】L515学习记录

    Intel RealSense SDK 2 0的安装 1 注册服务器的公钥 sudo apt key adv keyserver keyserver ubuntu com recv key F6E65AC044F831AC80A06380C
  • 【YOLOv5】记录YOLOv5的学习过程

    以下记录的是Ubuntu20 04版本 xff0c 其他Ubuntu版本也相差不大 一 安装pytorch GPU版本 显卡驱动 CUDA cuDNN 下载pytorch GPU版本 xff1a 最新版本链接 xff1a Start Loc
  • 【Kinect】Ubuntu20.04 安装Azure Kinect Sensor

    本文主要记录Ubuntu20 04 安装Azure Kinect Sensor SDK Azure Kinect 人体跟踪 SDK官网 xff1a https learn microsoft com zh cn azure Kinect d
  • 【ORB_SLAM】Ubuntu20.04 配置ORB_SLAM3

    本文主要记录基于Ubuntu20 04环境下 xff0c 对普通的ORB SLAM3和稠密版本的ORB SLAM3进行环境的配置 一 配置ORB SLAM3 lt 普通版本 gt 1 安装ROS开发环境 这里采用鱼香ros的一键安装 xff