安装ROS版的ORB-SLAM3全过程并跑T265 的bag包

2023-05-16

请确保opencv、eigen、sophus等包已经安装好了。

ORBSLAM3

下载ORBSLAM3

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git

请添加图片描述

  1. 由于我们需要的是ROS版的安装,但是Example里面没有ROS 的包,所以需要从Example_old里面复制一份过去。请添加图片描述

1、先安装非ROS版。

本人感觉先安装非ROS再安装ROS会将很多第三方库安装好,减少不必要的BUG

./build.sh

问题一:build.sh 使用的CMakelist 中的Opencv的版本问题。

请添加图片描述
解决方法:
修改里面opencv版本号

vim CMakeLists.txt

由于我的opencv版本是4.2 所以修改成4.2
请添加图片描述

重新build :

./build.sh

问题二:

/usr/local/include/sigslot/signal.hpp:1180:65: error: ‘slots_reference’ was not declared in this scope
1180 | cow_copy_type<list_type, Lockable> ref = slots_reference();
| ~~~~~~~~~~~~~~~^~
请添加图片描述
这个是由于默认使用的是C++11,而最新的g2o使用的是c++14的问题。
解决方法:
修改CMakeLists中的c++版本号

vim CMakeLists.txt

请添加图片描述
将选中的地方修改成14就可以了,注意不要修改其他的,会造成代码里面的标签错误。

然后重新build。

./build.sh

非ROS版安装成功:
请添加图片描述

2、安装ROS版

首先build_ros.sh。

./build_ros.sh

问题一:没有权限

有的同学会没没办法build,需要修改一下权限。

chmod +x build_ros.sh
./build_ros.sh

问题二:出现了rospack找不到ORBSLAM3问题,我们需要建立一个软连接并且加上ROS路径

请添加图片描述
出现了rospack找不到ORBSLAM3问题,我们需要建立一个软连接并且加上ROS路径

解决方法:

sudo vim ~/.bashrc

#文件路径要和自己的一致/home/....../Examples/ROS
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/jiangz/CODE/ORB_SLAM3/Examples/ROS

请添加图片描述

source ~/.bashrc

还要在ros share中建立软链接

sudo ln -s ~/CODE/ORB_SLAM3/Examples/ROS/ORB_SLAM3 /opt/ros/noetic/share/ORB_SLAM3

然后再 build一下

./build_ros.sh

问题三:c++版本

请添加图片描述
出现了和非ROS时一模一样的问题,所以同样的也是修改CMakeList,但是需要注意的是在build_ros.sh中的CMakList在上面的Example路径中

vim Examples/ROS/ORB_SLAM3/CMakeLists.txt 

请添加图片描述
修改的方式是一样的。

build一下

./bulid_ros.sh

问题四:opencv版本冲突

请添加图片描述
这里说的是一共使用了两个不同版本的opencv,在调用包时候会产生冲突。所以我们需要修改CMakeList中的opencv版本。

解决方法

vim Examples/ROS/ORB_SLAM3/CMakeLists.txt 

修改成同样的opencv版本
请添加图片描述

build 一下

问题五:sophus和Eigen包冲突

不出意外又出问题了。

请添加图片描述
解决方法:
这个也是由于包冲突引起的。
方法可以见这个帖子:
https://blog.csdn.net/zhh2005757/article/details/122353772?spm=1001.2014.3001.5506

build一下。
终于成功了 泪目,搞了我两天。
请添加图片描述

3、ORB-SLAM跑T265录制的bag包

首先查看topic

rosbag info test.bag

请添加图片描述
将topic修改到需要运行的ROS包中。
比如说我这个是双目的,修改ros_stereo.cc 订阅的 topic请添加图片描述

修改完成之后重新build一下。

rosrun ORB_SLAM3 Stereo Vocabulary/ORBvoc.txt Examples/Stereo/RealSense_T265.yaml false
rosbag play test.bag 

成功!

最后再附上一个大佬的文章:https://zhaoxuhui.top/blog/2020/09/30/orb-slam3-cmake-ros-compilation-and-test.html#1ros%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE

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

安装ROS版的ORB-SLAM3全过程并跑T265 的bag包 的相关文章

  • Linux驱动_驱动设计的思想(面向对象、设备树)

    一 Linux驱动 驱动设计的思想 xff08 面向对象 分层 分离 xff09 总则 xff1a Linux驱动 61 驱动框架 43 硬件操作 61 驱动框架 43 单片机 1 面向对象就是用结构体表示某个对象 2 分层 3 分离 事实
  • 2惠普暗影精灵恢复出厂设置

    因为之前把电脑送去惠普售后店维修了 xff08 寻找惠普官方售后店的方法 xff1a 关注微信公众号惠普服务 xff09 xff0c 拿回来的时候系统被店里的人重装了 xff0c 不但C盘只剩下十几G的空间 xff0c 而且多了阴魂不散的3
  • Ubuntu18.04屏幕自动旋转解决方法

    Ubuntu屏幕突然自己旋转 xff0c 大概率是因为开了重力感应 xff0c 电脑倾角变动后 xff0c 屏幕跟随旋转 首先先把屏幕转回来 终端输入 xrandr span class token operator span q 查看连接
  • 傅里叶与图像特征简介

    傅里叶变换在图像处理中有着广泛的应用 xff0c 主要应用方向有 xff1a 图像增强与去噪 边缘检测 特征提取 图像压缩等 其核心思想是使用傅里叶变换将图像由空间域转换至频率域 xff0c 通过对频率域进行不同的运算操作 xff0c 实现
  • openCPU开发demo详解包括线程调度、队列等的使用

    OpenCPU开发例程的详细解释 xff0c 包括各种功能的测试 xff0c 如线程 队列等 源代码为osi demo c 初步学习 xff0c 可能有误 xff0c 仅供参考 demo详解 代码部分系统函数fibo textTrace 输
  • 如何在ros上编写一个简单的node并进行通信

    如何在ros上编写一个简单的node并进行通信 这里采用ros教程的例子 xff0c 稍作修改 与C 43 43 不同的是 xff0c python不需要在package中加入message runtime以及message generat
  • ros编写自己的msg(Python)

    这里 xff0c 假设我们的包名叫做test py 我们写自己的msg文件在该包的msg文件夹下 test msg float32 data 然后 xff0c 我们编写自己的talker py文件如下 usr bin env python
  • docker(2)——docker仓库之Registry、harbor仓库

    一 什么是仓库 Docker 仓库是用来包含镜像的位置 xff0c Docker提供一个注册服务器 xff08 Register xff09 来保存多个仓库 xff0c 每个仓库又可以包含多个具备不同tag的镜像 Docker运行中使用的默
  • 物联网平台设备数据同步到RDS & MySQL数据库(保姆级教学)

    物联网平台设备数据同步到RDS amp MySQL数据库 xff08 保姆级教学 xff09 目标实现 xff1a 阿里云物联网平台某设备实时数据 xff08 MQTT协议上云 xff09 同步存储到RDS MySQL数据库 实现步骤 xf
  • 重头开始

    总感觉 生活中缺点什么 今天开始更新我正在学的FPGA和ESP8266的一些教程和心得 xff1b
  • ESP8266与FPGA初识

    ESP8266 今天其实就了解了一下ESP8266的一些相关 我们主要使用由SDK来编写代码来控制ESP8266以往我们用8266通常都是用AT指令用单片机串口控制的 这样的优点是简单 但是效率不是很高 xff0c 我们知道ESP8266本
  • 大创训练:基于图像处理的智能安防系统(序)

    基本完成目标 xff1a 利用OPENCV进行图像人脸识别进行操作 后期 xff1a 实际应该用到各个平台 QQ xff1a 754331516 欢迎交流 两周一更
  • 研究中常用的数据归一化方法(附Matlab程序)

    在数据处理中 我们往往需要对计算得到的结果数据 xff08 如fMRI中计算得到功能连接等指标 xff09 进行归一化 xff08 Normalization xff09 处理 其实不止在脑科学领域 xff0c 在其他领域也常常需要对结果数
  • INA219与INA216测试总结

    最近需要用到测电压的芯片 xff0c 主要看了一下有TI芯片的INA219系列和INA226系列 xff0c 索性回来都测试了一下 xff0c INA216的话我测试的时候没有图片 INA219我用的是这一款 xff0c 这一款我测试的时候
  • 基于ACFLY无人机调试笔记(一)

    调试心得 最近调试有空了来调试无人机 xff0c 飞控是用的ACFLY EDU的开源飞控 xff0c 因为ACFLY的教程比较少 xff0c 比较偏向商业化 xff0c 所以我开始记录一下使用 记录些项目进行二次开发过程中的细节ACFLY的
  • 入门信号完整性(1)

    最近在学习信号完整性 记录一下学习的过程 好久没回来写了 总觉得脑子是不够用的 这一回打算在博客上写关于信号完整性的知识 xff0c 但是信号完整性的知识非常的抽象 xff0c 所以我们也不能只是学习理论啦 xff0c 还需要仿真软件 xf
  • 二极管仿真模式在同步BUCK里面的应用

    效化和小型化 xff0c 一直都是功率电源发展的两个方向 同步BUCK在这两个方面的卓越表现 xff0c 也是在越来越多的场合得到了运用 xff0c 像锂电池充电 二次砖块电源等等 如图1所示 xff0c 同步BUCK相较传统BUCK最主要
  • 树莓派初体验之安装及SSH远程连接

    树莓派初体验之安装及SSH远程连接 安装远程通信 等了好久终于把树莓派等来了 xff0c 想法是通过pix4飞控和树莓派通信 xff0c 进行飞控的开发 xff0c 毫无经验 xff0c 一点一点来吧 xff0c 也希望有人一起来愉快的学习
  • 树莓派4B与Pixhawk4飞控之状态读取

    树莓派4B与Pixhawk4飞控之状态监控读取 飞控配置树莓派配置程序代码总结 先看看装备 xff0c 上节就说了 xff0c 这树莓派的壳子我喜欢 历经九九八十一难 xff0c 终于把树莓派和Pixhawk4飞控接通了 xff0c 中间尝
  • Ros机器人之(五)订阅subscriber消息

    Ros机器人之 xff08 五 xff09 订阅subscriber消息 这个讲的是订阅节点消息 learning topic里src下创建一个cpp文件 touch pos subscriber 内容如下 xff1a span class

随机推荐