成功解决: rosdep init 报错

2023-05-16

看完这篇,所有 rosdep init 报错都能解决!

  • 〇、本文主要涉及三个部分的内容
  • 一、内容背景
  • 二、本文解决的问题
    • (1) Ubuntu18.04系统盘制作、安装
    • (2) ROS Melodic安装
    • (3) “千古难题”—— rosdep init 的完美解决方案
      • <1>实现原理
      • <2>文件替换——重点
        • 文件一
        • 文件二
        • 文件三
        • 文件四
  • 三、后记
  • 四、补充问题

看完这篇,所有 rosdep init 报错都能解决!)

单系统 + Ubuntu18.04 + ROS Melodic 完整安装 + 解决 rosdep init 方法【一站式解决】

〇、本文主要涉及三个部分的内容

(1)安装Ubuntu18.04;

(2)安装ROS Melodic;

(3)解决安装ROS过程中出现的 rosdep init 和 update 出现的网络连接问题。

一、内容背景

(1) 腾出一个笔记本,安装单一 Ubuntu 系统,版本选择 18.04 。
(2) 在 Ubuntu18.04 中,安装 ROS Melodic 版本,用于硬件的驱动和 SLAM 工具包。

二、本文解决的问题

(1) Ubuntu18.04系统盘制作、安装

难度不大。参考这个博客,容易复现。

https://blog.csdn.net/baidu_36602427/article/details/86548203

TODO:后期补充。

(2) ROS Melodic安装

难度不大。

参考这两个博客,容易复现。

仅在初始化步骤困难,在本文第(3)中详细说明了解决方法。
https://blog.csdn.net/qq_44830040/article/details/106049992

(3) “千古难题”—— rosdep init 的完美解决方案

在编译过程中发现在ROS下需要用到rosdep命令:

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.

本节参考内容链接:

https://blog.csdn.net/weixin_42584917/article/details/114448355
https://blog.csdn.net/weixin_43311920/article/details/114796748

rosdep init 和 rosdep update 一直是安装ROS过程中,困扰和报错最多的部分,感谢作者(发哥爱开源)的贡献 和 CCsherlock 的整理。

<1>实现原理

将rosdistro clone到本地,两种方式

git clone https://github.com/ros/rosdistro.git
百度网盘链接:
链接:https://pan.baidu.com/s/1IvNfKau8E4ILh-X3iT57EA 
提取码:nemo 

git或百度网盘下载后,放到/home文件夹下:

/home/nemo/rosdistro

多说两句:(百度网盘下载后)将文件解压,解压后的文件夹,放到/home下就可以了,如果不放心,存放之后,右键文件夹查看属性,文件位置应该是上面显示的/home/nemo/rosdistro,其中nemo是安装ubuntu时,自定义的计算机名。

#TODO:图片下次安装时补充。

<2>文件替换——重点

这部分一共有四个文件需要替换内容,要非常仔细,是关键步骤。

文件一

终端打开刚刚下载(clone)下来的rosdistro文件夹

cd /home/yourname/rosdistro/rosdep/sources.list.d/

打开文件一:

sudo gedit 20-default.list 

把所有yourname 改成自己的计算机名。

这是模板:

# os-specific listings first
yaml file:///home/yourname/rosdistro/rosdep/osx-homebrew.yaml osx

# generic
yaml file:///home/yourname/rosdistro/rosdep/base.yaml
yaml file:///home/yourname/rosdistro/rosdep/python.yaml
yaml file:///home/yourname/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/yourname/rosdistro/releases/fuerte.yaml fuerte

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

我改完之后的效果(我的计算机名设置为 nemo):

# os-specific listings first
yaml file:///home/nemo/rosdistro/rosdep/osx-homebrew.yaml osx

# generic
yaml file:///home/nemo/rosdistro/rosdep/base.yaml
yaml file:///home/nemo/rosdistro/rosdep/python.yaml
yaml file:///home/nemo/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/nemo/rosdistro/releases/fuerte.yaml fuerte

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

文件二

打开终端输入:

cd /usr/lib/python2.7/dist-packages/rosdep2/

打开第二个要修改的文件:

sudo gedit gbpdistro_support.py

这个文件中,只替换这两行

FUERTE_GBPDISTRO_URL = 'file:///home/yourname/rosdistro/' \
    'releases/fuerte.yaml'

同样的,yourname改成自己的计算机名。我的是nemo。

**我第一次装错,就是把整个文件都删掉,只留下这两行了。结果只能重新来过。**

文件三

打开终端输入:

cd /usr/lib/python2.7/dist-packages/rosdep2/

打开第二个要修改的文件:

sudo gedit rep3.py

这个文件中,只替换这一行:

REP3_TARGETS_URL = 'file:///home/yourname/rosdistro/releases/targets.yaml'

同样的,yourname改成自己的计算机名。我的是nemo。

文件四

打开终端输入:

cd /usr/lib/python2.7/dist-packages/rosdistro/

打开第二个要修改的文件:

sudo gedit __init__.py

这里我跟作者CCsherlock的文件是一样的,也有说法是init.py文件。

这个文件中,只替换这一行:

DEFAULT_INDEX_URL = 'file:///home/yourname/rosdistro/index-v4.yaml'

同样的,yourname改成自己的计算机名。我的是nemo。

三、后记

装了很多次 Ubuntu 和 ROS,记录一下安装路径。

四、补充问题

重新安装 ROS 时,出现了新问题:

Command ‘roscore’ not found, but can be installed with:
sudo apt install python-roslaunch

按照提示安装时,出现:

正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
python-roslaunch : 依赖: python-roslib 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

下面链接能够解决,是环境变量的问题:

https://blog.csdn.net/m0_51684563/article/details/115771657?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162537973716780255294751%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162537973716780255294751&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-2-115771657.first_rank_v2_pc_rank_v29&utm_term=Command+%27roscore%27+not+found%2C+but+can+be+installed+with%3A++sudo+apt+install+python-roslaunch&spm=1018.2226.3001.4187
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

成功解决: rosdep init 报错 的相关文章

随机推荐