前言
首先,在Ubuntu系统上安装ROS需要注意一点,每个版本的Ubuntu系统都有与之对应的ROS版本,应根据自身系统版本来安装ROS。Ubuntu和ROS之间的版本对应关系如下:
Ubuntu版本 | ROS1版本 | 发布时间 | 维护截止时间 |
---|---|---|---|
14.04 LTS | Indigo lgloo | 2014.06 | 2019.04 |
16.04 LTS | Kinetic Kame | 2016.05 | 2021.04 |
18.04 LTS | Melodic Morenia | 2018.05 | 2023.05 |
20.04 LTS | Noetic Ninjemys | 2020.05 | 2025.05 |
从22.04版本开始,官方已经不再维护ROS1了,Noetic Ninjemys是ROS1的最后一个版本。后续版本的官方推荐均为ROS2,对应版本情况如下:
Ubuntu版本 | ROS2版本 | 发布时间 | 维护截止时间 |
---|---|---|---|
18.04 LTS | Crystal Clemmys | 2018.12 | 2019.12 |
18.04 LTS | Dashing Diademata | 2019.05 | 2021.05 |
20.04 LTS | Foxy Fitzroy | 2020.06 | 2023.05 |
22.04 LTS | Humble Hawksbill | 2022.05 | 2027.05 |
本文使用的系统为Ubuntu20.04,安装ROS1,对应版本为ROS Noetic。
1. 配置镜像源
配置镜像源可以选择官网源或者国内源,但是一般来说国内源会相对快一些,所以本文推荐使用清华源。
官网源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
清华源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
2. 添加公钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
若成功添加则会显示已导入,重复添加的话会显示未改变,这样也是正确的。如果显示的是公钥已经损坏,那么可能是这个公钥过期了,换一个新的试一试。
3. 更新软件列表
sudo apt-get update
正常情况下你只会看到Hit和Get,也就是命中和获取,如果出现Ign和Not Fetch那么可能是网的问题或者源的问题,换网或换源试试。
4. 安装ROS Noetic完整版
sudo apt-get install ros-noetic-desktop-full
这一步较为耗时,需要等待一段时间。如果上一步update成功,但这一步安装失败,首先检查你调用的命令安装的ROS的版本是否与你的Ubuntu系统版本匹配,版本不对会导致安装报错“无法定位软件包”。其次,也可能是网络问题,这条命令可以重复执行,不用担心上一次安装失败会产生什么影响。
5. 初始化rosdep
sudo rosdep init
这一步较容易出问题,正常情况下在运行之后他会提示你进行下一步操作。
但是很有可能你会看到这样的报错:
这说明你需要手动安装rosdep,应先执行如下命令后再重试。
sudo apt-get install python3-rosdep
此外,你还可能看到这样的报错:
如果遇到这个报错说明你登不上这个网了,你可以换一下网络试试,或者你可以在hosts文件里添加这个网络试一试。
sudo gedit /etc/hosts
在文件末尾添加一行:
151.101.84.133 raw.githubusercontent.com
如果这样操作了之后还是不行,可以通过别的途径下载这个文件,然后修改hosts文件,将指向该网址的路径改成指向你刚刚下好的文件的本地路径。
6. 配置ROS环境
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
依次运行这两条指令,目的是将ROS变量添加到bash中,这样你每次打开终端它将自动为你配置好ROS运行环境。注意这两条指令都不会有任何返回消息,如果实在是不放心想看看是否成功添加,可以在home下按 Ctrl+H 查看隐藏文件,找到 .bashrc 文件,打开后翻到最下方就能看见刚刚添加的那条命令了。
7. 安装依赖项
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
8. 运行小海龟测试是否成功安装
首先,打开一个终端,启动roscore。
roscore
然后再打开一个新的终端,启动小海龟的节点。
rosrun turtlesim turtlesim_node
这时你的屏幕上将出现一个窗口,里面有一只小海龟,但是你没有办法控制它移动。
再打开一个新的终端,输入:
rosrun turtlesim turtle_teleop_key
此时,你可以通过方向键控制小海龟运动,左右键转向,上键前进。
如果想要查看此时运行中的节点信息,则打开终端输入:
rosrun rqt_graph rqt_graph
至此,你的ROS就算是顺利安完了!