rosdep update综合解决方案

rosdep update综合解决方案

最近上手了英伟达工控机做激光雷达slam,他的系统是ubuntu18版本,安装ros也是一项难题,因为网络的限制,很多更新文件都无法下载。查阅了网上很多资料,总结出一些成功率很高的操作。本文的解决方案主要使用文件手动下载方法来解决。

解决方案:

1.按照步骤设置安装源、秘钥、软件包等等。这里看这个链接https://blog.csdn.net/qq_44830040/article/details/106049992#comments_17502313
2.装好ros melodic后,安装python-rosdep
3.rosdep init,初始化ros,到这一步后所有的文件夹都会给你建立好,这里的话可能要给/etc文件夹下的hosts设置镜像源才可以下载,但其下载的内容较少,成功率比较高
4.rosdep update 最重要的一步,更新现有的ros版本。根据上述链接已经不能解决问题的话请继续往下看,欧皇除外。以下是解决步骤:
给 usr/lib/python2.7/dist-packages/rosdistro 中的3个文件设置时延(因为解决方案是手动下载需要的文件,这一步可以省略)

下面是重点
百度网盘下载rosdistro文件夹(这里根据文件夹名称搜索并下载),把rosdistro文件夹移动到目录etc/ros中,更改cd /etc/ros/rosdep/source.list.d 的20-default.list:

# os-specific listings first
#yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

# generic
#yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
#yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
#yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
#yaml file:///etc/ros/rosdistro/master/rosdep/base.yaml

yaml file:///etc/ros/rosdistro/master/rosdep/base.yaml
yaml file:///etc/ros/rosdistro/master/rosdep/python.yaml
yaml file:///etc/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro file:///etc/ros/rosdistro/master/releases/fuerte.yaml fuerte

这一步其实是告诉rosdep用自己的文件而不是访问外网。
到这里解决了80%的问题,hit已经没有问题。

下一步,解决skip和add出错:
修改/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py的url
DEFAULT_SOURCES_LIST_URL = ‘file:///etc/ros/rosdistro/rosdep/sources.list.d/20-default.list’

/usr/lib/python2.7/dist-packages/rosdep2/rep3.py :
REP3_TARGETS_URL = ‘file://etc/ros/rosdistro/releases/targets.yaml’

/usr/lib/python2.7/dist-packages/rosdistro/ __init__.py
DEFAULT_INDEX_URL = ‘file://etc/ros/rosdistro/index-v4.yaml’

(以上地址需要根据自己电脑,对应位置来写,若无targets文件,操作2可省略)

然后执行rosdep update,如果依然不成功的话,看报错:

如果是缺少某一文件,如rolling/distribution.yaml,那就访问https://raw.githubusercontent.com/ros/rosdistro/master/rolling/distribution.yaml
在自己的master文件夹下创建此目录和文件。其他文件同理。

至此,我们将rosdep update所需要的所有文件都手动下载完了,不需要他自己主动访问外网了,updated成功!

你可能感兴趣的:(#,ros入门,机器人开发,ubuntu)