安装ROS, 初始化时rosdep update出错解决办法

2023-05-16

背景:

ubuntu上安装ROS,不管是在ubuntu16.04上装kinetic,还是在18.04上装melodic,安装完毕后,进行初始化时,反复失败,试遍了网上公开的方法,都没能解决。最后,通过本地创建配置文件的方法,终于搞定。

更新:

最近按照1-3步修改后的状态,执行rosdep update时,在执行gbpdistro file:///etc/ros/rosdistro/master/releases/fuerte.yaml fuerte时,老是报错,返回错误11。原因是解析GitHub: Let’s build from here · GitHub的IP地址时,DNS服务被污染,导致得不到正确的IP地址而报错,需要更改一下本机的DNS服务器地址。具体参照下面第4步。

-------------------------------------

1.执行 sudo rosdep init 失败

反复尝试一下,一般情况下反复个几次,init这步就可以成功。

如果反复不成功,根据提示错误,可以先参考下面链接提供的方法尝试一下

ROS安装过程中sudo rosdep init指令出错 - 许氏Forwards - 博客园

上面的操作都不成功,可以参考下面。

sudo rosdep init 这个操作最主要的工作就是从https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list,下载文件20-default.list,并把它放到/etc/ros/rosdep/sources.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
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

操作起来就是:直接创建目录/etc/ros/rosdep/sources.list.d/,并在此目录下创建20-default.list这个文件。创建这个文件需要高级权限。

2. 执行rosdep update失败

这步的操作失败原因是从raw.githubusercontent.com/下载文件失败,主要是防火墙限制了对这个网站的访问,能科学上网的同学就不用往下看了。

在我所处的网络中,是偶尔能够访问raw.githubusercontent.com/的,但是不持久-_-!!,所以一直无法完整的坚持下来。

(1)可以先参考下面链接的方法,将python脚本的超时时间写长一点比如120s,然后反复尝试。但是单纯使用这个方法,对我没用。

rosdep update 超时问题解决 - 等下一班车 - 博客园

(2)如果单纯上面的操作对你也没用,请继续往下看。分析了前面链接提到的sources_list.pygbpdistro_support.pyrep3.py几个脚本,发现主要在打开20-default.list里的链接时失败,也就是无法下载20-default.list列举的几个配置文件。有了这个发现,下面的事情就是,把这些文件下载到本地,然后修改20-default.list脚本文件就可以了。

具体操作如下:

a.将20-default.list中的链接在浏览器中打开,然后创建一个同名文件,最好连目录结构一起建好,这样后面改脚本比较容易。我是直接建在了/etc/ros/建了相应的目录。

也可以从下面云盘中直接下载,解压到/etc/ros目录下。需要超级权限。

链接: https://pan.baidu.com/s/16ZpEJYMrT4UYgKRgzZIZYg?pwd=janr

提取码: janr 

b.修改20-default.list脚本文件,需要超级权限。可以跟前面的脚本内容做下对比。

# os-specific listings first
#yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx
yaml file:///etc/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
#gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

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

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

退出保存后,执行rosdep update。

在更新过程中,还有部分配置信息会从raw.githubusercontent.com上下载,但是反复几次,基本上就可以成功了。

(3)经过上面两步,还是失败,请继续往下看。

sudo 打开/usr/lib/python2.7/dist-packages/rosdistro/__init__.py这个文件,按照下面的代码进行修改。

# index information

#DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
DEFAULT_INDEX_URL = 'file:///etc/ros/rosdistro/master/index-v4.yaml'

保存后,执行rosdep update。如果一次不成功,再执行个一两次,应该就会出现下面成功完成的这些打印。

(4)如果执行到第3步还是报错,很可能是本机的DNS服务被污染了,无法获得GitHub: Let’s build from here · GitHub这个网址的正确IP,导致连接失败。这时你需要更新一下DNS服务器设置,选择一个外部的DNS服务器。以ubuntu MATE 16.04为例,路径如下:

系统-->系统管理-->网络-->DNS,在这个界面下,先解锁,然后在DNS服务器栏,点击Add,在对话框中填上8.8.8.8(google的DNS服务器),把它放到一位(可以点着上下拖动),然后锁定,关闭。

其他修改DNS服务器地址的方式就不一一列举了,搜一下一堆攻略。

回到terminal,执行rosdep update。这时应该就不会报错了,有可能会超时,主要是网速问题,尝试几次就应该出现下面成功的打印了。

reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit file:///etc/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit file:///etc/ros/rosdistro/master/rosdep/base.yaml
Hit file:///etc/ros/rosdistro/master/rosdep/python.yaml
Hit file:///etc/ros/rosdistro/master/rosdep/ruby.yaml
Hit file:///etc/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index file:///etc/ros/rosdistro/master/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Add distro "dashing"
Add distro "eloquent"
Add distro "foxy"
Skip end-of-life distro "groovy"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Skip end-of-life distro "jade"
Add distro "kinetic"
Skip end-of-life distro "lunar"
Add distro "melodic"
Add distro "noetic"
updated cache in /home/xxxx/.ros/rosdep/sources.cache


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

安装ROS, 初始化时rosdep update出错解决办法 的相关文章

  • git简单命令笔记

    这是一篇关于git的使用笔记 xff0c 刚刚开始使用git 1 创建git本地仓库 xff1a 在你需要版本控制的项目Project根目录下右键点击Git Bash here执行git init 然后在该目录下生成 一个 git的隐藏文件
  • 源码编译Boost库的正确姿态

    源码编译Boost库的正确姿态 写在前面step 1 step 2 step 3 step4 写在前面 项目需要编译pcl库到arm平台 xff0c 交叉编译Boost xff0c Eigen3 Flann 之后再编译pcl库的时候总是报错
  • 第一讲、四旋翼的整体控制方案

    各位朋友 xff0c 我们工作室以后会长期更新一些飞行器干货 xff0c 本部分先介绍四旋翼的整体控制方案及相关设计 控制系统的框架如下 xff0c 借鉴网上来源图片 xff0c 传感器主要是姿态传感器 xff0c 对于大四轴而言 xff0
  • 网页中屏蔽鼠标右键、Ctrl+N、Shift+F10

    lt script language 61 34 Javascript 34 gt 屏蔽鼠标右键 Ctrl 43 N Shift 43 F10 F5刷新 退格键 屏蔽F1帮助 function window onhelp return fa
  • asp.net上一页下一页的部分代码

    lt asp linkbutton id 61 34 btnFirst 34 nclick 61 34 PagerButtonClick 34 runat 61 34 server 34 CommandArgument 61 34 0 34
  • Visual C# 编程操作Excel

    Visual C 编程操作Excel 2004 08 20 作者 xff1a 邵回祖 出处 xff1a ahcit http www yesky com SoftChannel 72342380468109312 20040819 1844
  • C#保存图片到IMAGE字段

    byte FileByteArray System IO MemoryStream ImageStream this sqlConnection1 ConnectionString 61 strConn try if this sqlCon
  • Android-蓝牙sco通话

    APP调用AudioManager startBluetoothSco frameworks base media java android media AudioManager java public void startBluetoot
  • Docker启动时的报错汇总

    八个Docker常见故障 https mp weixin qq com s 2GNKmRJtBGHhUyVBRbRgeA 八个Docker常见故障 报错一 xff1a error initializing graphdriver Docke
  • 利用JAVA操作EXCEL文件

    利用JAVA操作EXCEL文件 转载自 xff1a www csdn net 2003 年 1 月 在开源世界中 xff0c 有两套比较有影响的API可供使用 xff0c 一个是POI xff0c 一个是jExcelAPI 其中jExcel
  • 网站不能更新,错误 '80004005'

    网站数据转移到了另一台服务器 后台数据不能更新 因为程序原因也无错误信息报出 数据库为ACCESS数据库 初步估计是不是数据库只读或是NTFS的权限问题 对数据库目录添加EVERYONE和IIS的来宾帐户写入和修改权限 还是不能更新数据 最
  • vb6实现程序延时的几种方法

    VB6在开发发贴机时 提交数据要用到延时程序 让程延时和等待 从网上找了三种方法 三种方法以最后一种最好用 第一种如果不DOEVENTS的话 会使人感觉程序无反应一样 有以下方法 xff1a 1 使用Windows API函数Sleep 新
  • 初识SEO,SEO学习笔记一

    SEO 是一种方法 更是一种思想 如果只是为了关键字 那他就只是一种工具 一种方法 工具和方法总有过时的时候 而思想 则可以通达 可以明朗 可以提升层次 应当明的有关SEO的几个概念 目标关键词和长尾关词 一直以来 对这个概念都是只能意会
  • 【信号分析与处理】Matlab运算带有冲激函数的积分

    syms t span class token punctuation span span class token comment 定义变量 span span class token keyword int span span class
  • 【计算方法】Python二分法求解方程

    span class token comment 二分法求方程零点 span span class token keyword from span math span class token keyword import span span
  • 【信号分析与处理】-离散信号分析-MATLAB stem函数的使用

    1 stem xff08 y xff09 1 1如果y是向量 xff0c 则从1开始每隔单位长度描点 行向量列向量描点效果相同 e g x 61 1 2 3 4 3 3 2 1 5 stem x 1 2如果y是一个n m矩阵 xff0c 则
  • 基于Shape From Shading(SFS)原理的侧扫声呐海底三维重建项目进度记录

    quad 本文主要用于记录 海底三维重建算法研究 课题毕业设计的进度与内容概括 quad 2021 12 24
  • 【基于侧扫声呐和SFS方法的地形三维重构】(一)增益补偿和斜距校正

    本文主要参考文献如下 1 王杰英 侧扫声呐图像的三维重构 D 浙江大学 2018 qquad 这里先向学长表示感谢 xff01 本文主要讲述了侧扫声呐原始图像需要进行的一些信号处理与图像处理步骤 增益补偿与斜距校正 xff0c 其他处理步骤
  • git教程

    git本地操作 创建文件不丢失记录历史随时回退自动合并 xff0c 但也需要手动合并拥有强大的 分支 分布式 svn xff08 集中式 xff09 需要一台中央服务器git xff08 分布式 xff09 每人都有完成的版本git速度快一
  • 【交叉编译踩坑指北(一)】windows10下Vscode与Cmake编译生成文件

    1 工具链安装 工具链版本如下 C Users Lenovo gt cmake version cmake version 3 24 2 C Users Lenovo gt mingw32 make v GNU Make 4 2 1 Bui

随机推荐