网上大神已经有很详细的总结,在这里记录一下我的安装方法及踩坑解决过程:
1. 版本选择
不同的ubuntu系统对应不同的ROS版本:
Ubuntu | ROS 1.0 | ROS 2.0 |
---|---|---|
16.04 LTS | Kinetic LTS | Ardent |
18.04 LTS | Melodic LTS | Dashing LTS |
20.04 LTS | Noetic LTS | Foxy LTS |
2. 配置下载源
在《软件和更新》中,选择一个国内的下载源
我一般选择华为源或清华源
3. 添加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'
4. 添加ROS密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
5. 更新软件包索引
sudo apt-get update
6. 安装ROS
sudo apt-get install ros-melodic-desktop-full
我的ubuntu版本是18.04,因此安装melodic版本的ROS,这条语句需要根据不同的ubuntu版本进行调整
这一步的时间比较长,耐心等待
7. 初始化rosdep
rosdep是ROS中用于管理依赖关系的工具。在使用ROS之前,需要初始化rosdep
sudo rosdep init
rosdep update
这一步基本上大部分都会出现问题,原因是这一步需要在"raw.githubusercontent.com"这个网站上下载一些文件,在初次安装ROS的时候一般国内网是进不去的,通俗地说,就是“被墙了”
在网上找到了“终极大招”,原理就是把手动下载好的文件放在本地,然后设置20-default.list
中的链接到本地的源文件,这样的话成功率100%
本地文件链接在文章顶部,参照里面的txt文件作相应替换:
(1)解压源文件
upack rosdistro-master.zip
(2)将源文件拷贝至一个固定路径:/etc/ros
sudo cp -r ./rosdistro-master /etc/ros
(3)替换大法:
i.
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list
全选,替换为
yaml file:///etc/ros/rosdistro-master/rosdep/osx-homebrew.yaml osx
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
ii.
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
搜索关键字,替换:
#FUERTE_GBPDISTRO_URL = 'https://raw.githubusercontent.com/ros/rosdistro/' \
# 'master/releases/fuerte.yaml'
FUERTE_GBPDISTRO_URL = 'file:///etc/ros/rosdistro-master/releases/fuerte.yaml'
iii.
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
搜索关键字,替换:
#REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'
REP3_TARGETS_URL = 'file:///etc/ros/rosdistro-master/releases/targets.yaml'
iv.
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
搜索关键字,替换:
#DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
DEFAULT_INDEX_URL = 'file:///etc/ros/rosdistro-master/index-v4.yaml'
(4)最后一步,执行:
rosdep update
至此,问题解决
8. 设置环境变量
为了让ROS命令在每个终端会话中都可用,需要将ROS环境变量添加到您的bash会话中:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
9. 验证ROS安装
(1) 打开一个终端,启动roscore
roscore
(2) 另起一个终端,启动一个小海龟例程:
rosrun turtlesim turtlesim_node
这时会出现一个小海龟的界面
据说每一个小海龟都是随即生成的,每个人的都不一样,算是一种小彩蛋~
(3)再打开一个终端,输入:
rosrun turtlesim turtle_teleop_key
将光标悬停在这个终端中,然后使用↑、↓、←、→键来控制小乌龟的移动
白色的为小乌龟的运动轨迹
在乌龟撞墙时,还会出现Oh no! I hit the wall! (Clamping from [x=11.120889, y=5.544445])的提示
至此,ROS成功安装