(十一)ORBSLAM2在ROS下运行

本文详细记录了在ROS环境下运行ORBSLAM2时遇到的两个主要问题:ROS路径设置和cv_bridge的opencv版本冲突。通过调整ROS路径、重新安装cv_bridge解决了问题,使得ORBSLAM2的RGBD和AR节点能够成功运行。测试表明,ORBSLAM2在光照变化、遮挡和快速运动等情况下仍能保持一定的鲁棒性。
摘要由CSDN通过智能技术生成

 ORBSLAM2运行ROS节点障碍

  ORBSLAM2提供了与ROS耦合的应用程序,放在单独的ROS文件夹中。同样的,它提供了与ROS无关联的同类型的应用程序。不过,为了方便,笔者主要测试了它在ROS下的应用程序,因为笔者的摄像头是用ROS提供的openni2来驱动的,所以可以利用相机主题直接为ORBSLAM2提供输入图像。不过,笔者在跑通这个程序的过程中遇到了一些障碍,所以在此做个总结。

  问题1:ROS路径设置的问题

  问题2:cv_bridge的opencv版本冲突的问题;


ROS路径设置的问题

  由于ORBSLAM2中设置了rosbuild_init(),而我们编译文档之前需要先关联工作区间。ORBSLAM2这里提供的这个文档中,并没有我们熟悉的ROS里的package.xml和devel这些文件,所以起初笔者在编译的时候,一直不知道该怎么办?

  直接编译会显示ORBSLAM2路径冲突之类的问题,具体错误是:

  [rosbuild] rospack found package "ORB_SLAM2" at "", but the current directory is "/home/xiaoC/ORB_SLAM2/Examples/ROS/ORB_SLAM2"

  当然,后面这个路径就是笔者放ORBSLAM2的路径。这个显示的错误表示ROS环境并没有设置正确。

  因此,笔者首先在~/.bashrc上设置了路径:

sudo vim ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/xiaoC/ORB_SLAM2/Examples/ROS
source ~/.bashrc

  注意,后面这个path是笔者的路径,不同用户路径不同。

  理论上,这个应该要work的,不过遗憾的是,并没有。如何确认有没有work呢?方法是:

echo $ROS_PACKAGE_PATH

  如果终端显示了笔者刚刚加入的路径,说明ROS路径配置成功了,遗憾的是,并没有。

  具体可以参考:https://github.com/raulmur/ORB_SLAM2/issues/url

  后来,笔者继续查找原因,发现添加的路径的位置好像错了,于是在ROS的安装路径下更改路径:

cd /opt/ros/indigo/
sudo vim setup.bash 
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/xiaoC/ORB_SLAM2/Examples/ROS
source setup.bash

  同样,我们可以用两种方式来确认路径添加成功了没有,第一种就是我们上面提到的echo,第二种是:

roscd ORB_SLAM2

  如果能进入这个文件夹,说明我们路径设置成功了。

  具体可以参考:https://www.cnblogs.com/xy123001/p/6918334.html

  于是,通过这个设置,笔者便把ROS编译这关通过了。


 cv_bridge的opencv版本冲突的问题

  接下来就是这个大问题,困扰了笔者一个下午的时间,都没搞定。后来吃了个晚饭回来,就解决了。所以说,精神食粮贫乏的时候,需要真正的食量来激发灵感。

  这个问题主要出现的位置是,在笔者运行RGBD节点的时候:

rosrun ORB_SLAM2 RGBD ../../../Vocabulary/ORBvoc.txt ./Asus.yaml

  显示的错误主要是opencv版本冲突。其实这个问题在前面编译的时候就提醒过我们,提示内容:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值