Ubuntu安装ROS(每个步骤图文详细)
- 前言(推荐安装)
- ROS对应的Ubuntu的版本
- 换源
- 安装ROS
- 一、添加ROS软件源
- 二、添加密钥
- 三、安装ROS-melodic
- 四、初始化rosdep
- 可能出现的问题:
- 一 、 **sudo: rosdep:找不到命令**
- 二、raw.githubusercontent.com网络下载问题
- 通过修改host解决
- 解决
- ERROR: default sources list file already exists:
- 五、安装rosinstall
- 可能出现的问题—缺失依赖包
- 六、配置同步环境
- 七、测试ROS—(小海龟)
前言(推荐安装)
这里非常非常非常推荐——小鱼ros一键安装
终端执行
wget http://fishros.com/install -O fishros && . fishros
这里完全可以按照提示安装即可,速度快,安装稳定
如果有小伙伴有兴趣尝试手动安装的过程,按照下文安装即可
ROS对应的Ubuntu的版本
Ubuntu版本 | ROS版本 |
---|---|
ubuntu16.04 | ros-kinetic |
ubuntu18.04 | ros-melodic |
ubuntu20.04 | ros-noetic |
这里以Ubuntu18.04作为本篇安装例子(安装步骤等效各个版本,具体安装可进行修改)
换源
在“软件和更新”中选择“下载自:其他站点”中设置国内的站点—(这里选择的是清华大学的站点)
设置完成后进行同步更新
sudo apt-get update
安装ROS
一、添加ROS软件源
新建终端运行:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
二、添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
显示已导入表示添加完成
三、安装ROS-melodic
终端输入:
sudo apt-get update
sudo apt-get install ros-melodic-desktop-full
sudo apt-get install ros-melodic-rqt*
输入“Y”确认安装:
apt-get update 更新之前添加的软件源
四、初始化rosdep
终端输入:
sudo rosdep init
可能出现的问题:
一 、 sudo: rosdep:找不到命令
执行安装:python-rosdep2
sudo apt install python-rosdep2
二、raw.githubusercontent.com网络下载问题
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
通过修改host解决
首先访问 The Best IP Address, Email and Networking Tools - IPAddress.com,查询 raw.githubusercontent.com 的ip地址
打开host文件
sudo gedit /etc/hosts
在host文本的最后一行添加
185.199.109.133 raw.githubusercontent.com
再次执行
sudo rosdep init
写入成功
根据推荐提示执行:
rosdep update
若还是因为网络问题无法进行安装
解决
参考《解决ROS系统 rosdep update超时问题的新方法》
修改位于/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py的函数download_rosdep_data
cd /usr/lib/python2.7/dist-packages/rosdep2/
sudo gedit sources_list.py
打开文件后,搜索定位到def download_rosdep_data(url): 函数
添加:
url="https://ghproxy.com/"+url
if url.startswith("http://") or url.startswith("https://"):
url_request = request.Request(url, headers={'User-Agent': 'rosdep/{version}'.format(version=__version__)})
else:
url_request = url
如图所示:
同时修改路径**/usr/lib/python2.7/dist-packages/rosdistro/init.py**
cd /usr/lib/python2.7/dist-packages/rosdistro
sudo gedit __init__.py
将DEFAULT_INDEX_URL 进行如下替换:
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
PS:之后在执行`sudo rosdep init更新时遇到网络问题时:均可以在地址前面加入https://ghproxy.com/
/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 36行
/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 72行
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py 39行
/usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py 68行 119行
其中,对于第五个地址的网络错误:
https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
在 /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 第204行添加如下代码
gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url
ERROR: default sources list file already exists:
如果出现这个错误
执行:
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
sudo rosdep update
sudo rosdep init
更新结果:
五、安装rosinstall
sudo apt-get install python-rosinstall
可能出现的问题—缺失依赖包
安装缺失的依赖环境
sudo apt-get install python-pip
sudo pip install -U rosinstall
六、配置同步环境
进入ubuntu环境设置文件
source /opt/ros/melodic/setup.bash
在文件末尾添加
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
一切安装完成后进入opt/ros/melodic可以看到已经安装成功
七、测试ROS—(小海龟)
分别开三个终端依次执行
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
出现如图所示即代表安装成功
至此全部的安装已经完成