ORB_SLAM3:在ROS(noetic)环境下编译报错的解决方式

本人电脑系统为Ubuntu 20.04,ROS安装的版本为noetic,在用./build_ros.sh命令编译ORB_SLAM3时出现下面的错误:

Failed to invoke rospack to get compile flags for package 'ORB_SLAM3'. Look above for errors from rospack itself. Aborting. Please fix the broken dependency!

仔细往上面找其实还有一个这个报错:

ERROR: Rosdep experienced an error: The read operation timed out Please go to.........

此时已经在.bashrc中添加了下面这段语句,且也source ~/.bashrc了,但还是出现上面的错误。

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:YOUR_PATH/ORB_SLAM3/Examples/ROS

仔细看问题后面有提示:sudo rosdep init和rosdep update来解决,但是我sudo rosdep init后还是报下面的错误:

ERROR: cannot download default sources list from:
https : //raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list 
Website may be down.

当时我按照网上的很多方式去做,最后都失败了,这个问题卡了我两天,不经意间看到学ROS1时候的书,是赵虚左老师的教程,最后解决了上面的问题。

解决方式如下:

1、进入"/usr/lib/python3/dist-packages/"目录下修改相关文件,主要有: ./rosdistro/__init__.py、./rosdep2/gbpdistro_support.py、./rosdep2/sources_list.py 、./rosdep2/rep3.py。

sudo gedit ./rosdistro/__init__.py
sudo gedit ./rosdep2/gbpdistro_support.py
sudo gedit ./rosdep2/sources_list.py
sudo gedit ./rosdep2/rep3.py

2、文件中涉及的 URL 内容,如果是:raw.githubusercontent.com/ros/rosdistro/master都替换成步骤1中准备的gitee.com/zhao-xuzuo/rosdistro/raw/master即可,步骤1中的四个文件修改完后的内容如下:

DEFAULT_INDEX_URL = 'https://gitee.com/zhao-xuzuo/rosdistro/raw/master/index-v4.yaml'
FUERTE_GBPDISTRO_URL = 'https://gitee.com/zhao-xuzuo/rosdistro/raw/master/releases/fuerte.yaml'
DEFAULT_SOURCES_LIST_URL = 'https://gitee.com/zhao-xuzuo/rosdistro/raw/master/rosdep/sources.list.d/20-default.list'
REP3_TARGETS_URL = 'https://gitee.com/zhao-xuzuo/rosdistro/raw/master/releases/targets.yaml'

3、修改完毕,再重新执行命令:

sudo rosdep init
rosdep update

最后删除YOUR_PATH/ORB_SLAM3/Examples/ROS/ORB_SLAM3下的build文件夹,从新执行./build_ros.sh命令,编译成功。

最后说一下ORB_SLAM3为什么要在ROS环境运行,我认为是方便将其部署到机器人上,这样大大简化了后期实体机器人的开发周期,同时有些数据集也是rosbag的格式,在ROS环境下运行比较方便。但是目前的一些头部自动驾驶公司等,都会开发自己的框架,针对自己公司的产品做相应的优化,ROS环境还是相对冗余。学ROS1我非常推荐赵虚左老师的视频,讲的太棒了。

赵虚左老师ROS1视频:https://www.bilibili.com/video/BV1Ci4y1L7ZZ/?spm_id_from=333.999.0.0&vd_source=5d07f02a3545791b3e132f6da34124be

参考:http://www.autolabor.com.cn/book/ROSTutorials/chapter1/12-roskai-fa-gong-ju-an-zhuang/124-an-zhuang-ros.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值