初学ROS,第一步的install是必然经历的,无论是基于虚拟机还是双系统。具体的安装步骤在网上可以很方便的找到,

现以 Ubuntu18.04+ROS Melodic为例说明。

1、ROS安装步骤

(1) 配置Ubuntu的源和库

选中 main universe restricted multiverse 4项,并将下载源改为国内的,如aliyun、清华源等

rospy是安装在ROS中还是Python中 ros 安装_bash

2、设置sources.list

命令行执行如下命令

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

3、设置密钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

4、正式安装,建议安装桌面完整版 ros-xxx-desktop-full

sudo apt update
sudo apt install ros-melodic-desktop-full

5、配置环境变量,可以避免每次手动执行setup.bash,非常方便

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

6、依赖包安装,如rosinstall和其他依赖包。rosinstall是一个常用的命令行工具,它使您能够用一个命令轻松地下载ROS包的许多源代码树

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

7、rosdep的初始化

在使用许多ROS工具之前,需要初始化rosdep。rosdep使您能够轻松地为要编译的源代码安装系统依赖项,并且是在ROS中运行某些核心组件所必需的。

如果您尚未安装rosdep,请按以下步骤进行安装。

sudo apt install python-rosdep

初始化rosdep

sudo rosdep init
rosdep update

截止到以上的操作步骤,是根据ROS Wiki中Ros Melodic安装说明一步步COPY过来的,执行 sudo rosdep init之前没有任何问题,亲身验证!!!

但执行 sudo rosdep init,出现了问题,相信大家在安装时基本都会遇到,下面总结一下这里安装的方法,这也是 本文的重点。

20-default.list无法下载,由于访问的网址涉及到翻墙的内容,经常会出现如下的错误,raw.githubusercontant.com无法连接。

rospy是安装在ROS中还是Python中 ros 安装_bash_02

针对这个问题,网上也搜到了很多的相关博客文章,基本分为三大类:

7.1 使用手机热点的方式 ,使用此方式在下载安装包的时候确实会有速度的提升,但是对于rosdep init的问题,我用这种方法没有解决(PS:我的是移动卡,不确定电信、联通卡的效果)

7.2 修改 /etc/hosts 文件,重新映射 raw.githubusercontant.com 的IP地址

执行这个方法,首先需要查询raw.githubusercontant.com 对应的真实IP地址,可以借助 https://www.ipaddress.com/ 网站

rospy是安装在ROS中还是Python中 ros 安装_github_03

修改 hosts文件

rospy是安装在ROS中还是Python中 ros 安装_bash_04

使用这种方式在虚拟机上安装时,有一次成功的例子。后来安装双系统,再用这种方式安装ROS,得到的又是一次次的失败......

安装ROS真的是对忍耐力极大的考验,庆幸我的电脑没别砸坏。

7.3 把ROS包下载到本地安装,这个方法拯救了我!

sudo rosdep init  是要从

https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list 下载20-default.list文件到本地

rosdep update 则是根据20-default.list解析相关的文件。

因此直接从github拿来ros发行包 https://github.com/ros/rosdistro,并将其中涉及到 raw.githubusercontant.com 的路径替换为本地路径:

(1) 20-default.list (在rosdistro-master/rosdep/sources.list.d/),修改如下

rospy是安装在ROS中还是Python中 ros 安装_python_05

(2)rep3.py (在/usr/lib/python2.7/dist-packages/rosdep2),修改如下

rospy是安装在ROS中还是Python中 ros 安装_python_06

(3)sources_list.py (在/usr/lib/python2.7/dist-packages/rosdep2),修改如下

rospy是安装在ROS中还是Python中 ros 安装_github_07

(4)__init__.py (在/usr/lib/python2.7/dist-packages/rosdistro),修改如下

rospy是安装在ROS中还是Python中 ros 安装_github_08

(5) 另外,在完成以上修改并执行 sudo rosdep init 过程中,可能会出现语法错误

rospy是安装在ROS中还是Python中 ros 安装_github_09

根据错误提示,把 from __future__ imports xxx的语句放到 文件的最前面 (包含注释)

最后执行 sudo rosdep init && rosdep update 成功:

rospy是安装在ROS中还是Python中 ros 安装_python_10

8、安装验证

8.1 命令行输入 ros,按两次tab键,会出现所有ros字母开头的指令,表示安装成功

rospy是安装在ROS中还是Python中 ros 安装_bash_11

8.2 执行验证程序:看到小乌龟,至此ROS 全部安装成功!!

rospy是安装在ROS中还是Python中 ros 安装_bash_12