上次出了一篇ROS-Noetic安装教程,无论你用的哪个版本的ROS,当然最大的坑,还是rosdep了。接下来我们一点点说我遇到的每一个坑和解决方案。

【系统:Ubuntu 18.04 + Ros-Melodic】

按照教程安装完ROS,接着安装rosdep。问题顺序是按照正常的安装顺序出现问题的顺序撰写。


【问题一】:sudo: rosdep: 找不到命令

sudo rosdep init

XXX:~$ sudo:找不到rosdep命令

【解决方法一】:安装python-rosdep

# python2.7版本
sudo apt-get install python-rosdep
#python3版本以上
sudo apt-get install python3-rosdep

【坑一】:如果看过相关的帖子,是让你安装的是python(3)-rosdep2,我点了确定之后,我就后悔了,因为他帮我把ROS给卸载了。(内心@#¥%&*)


【问题二】 Wesite may be down

sudo dotnet找不到 sudo rosdep init 找不到命令_配置文件

【解决方法二】:修改hosts文件

sudo gedit /etc/hosts

在最后一行添加raw.githubusercontent.com的IP地址,例如这样

185.199.109.133 raw.githubusercontent.com

当然这个IP地址,你可以进入这个网站搜索它的IP地址,替换掉就可以了。ip地址

sudo rosdep init

sudo dotnet找不到 sudo rosdep init 找不到命令_配置文件_02

【坑二】:Default sources list file already exists

sudo dotnet找不到 sudo rosdep init 找不到命令_sudo dotnet找不到_03

看英文提示,就是你已经初始化过了,无需操作了。或者你也可以删除文件,再初始化一次。

#删除文件
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
#初始化
sudo rosdep init

【问题三】 rosdep update 失败

sudo dotnet找不到 sudo rosdep init 找不到命令_域名服务器_04

看到这堆错误就恶心,但是没办法。

【解决方法三】 添加google域名服务器

#修改配置文件
sudo gedit /etc/resolv.conf
#添加Goole域名服务器

##注释文本中nameserver这一行
##添加以下两行:
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器

#保存退出
sudo apt-get update  && sudo apt-get dist-upgrade
rosdep update

sudo dotnet找不到 sudo rosdep init 找不到命令_域名服务器_05

成功,结束操作。

【坑三】 这里的坑最多,首先其实你还是得考虑网络的问题,我们在一开始的时候修改过Hosts的配置文件,添加了网站的ip,后续又修改了配置文件,但是依然是存在不成功的可能性的,建议以上步骤可以多次循环使用,直到成功为止,目前,我装过2个系统的rosdep,最后一步添加完Google域名服务器的时候,都是一次性成功rosdep update的。重点来了.

在你成功rosdep update的时候,记得把配置文件再修改回去。

#修改配置文件
sudo gedit /etc/resolv.conf

#注释Goole域名服务器
##取消注释文本中nameserver这一行
nameserver x.x.x.x.
#nameserver 8.8.8.8 #google域名服务器
#nameserver 8.8.4.4 #google域名服务器

#保存退出