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

请确保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

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值