前言
在Ubuntu18.04 安装 ROS melodic 安装教程
本讲义主要讲解是ROS1,并非ROS2
先要了解什么是ros,ros的历程(版本对应的系统)
环境
系统环境
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic
Linux version : 5.3.0-46-generic ( buildd@lcy01-amd64-013 )
Gcc version: 7.5.0 ( Ubuntu 7.5.0-3ubuntu1~18.04 )
软件信息
version :
None
正文
什么是ROS
ROS操作系统是一个中间件,连接了操作系统和你开发的ROS应用程序,基于ROS的应用程序之间建立起了沟通的桥梁,也就是运行在Linux上运行时环境,在这个环境上,机器人的感知、决策、控制算法可以更好的组织和运行。
特点:
-
分布式点对点
ROS采用了分布式的框架,通过点对点的设计让机器人的进程可以分别运行,便于模块化的修改和定制,提高了系统的容错能力。
-
多种语言支持
-
开源社区
ROS具有一个庞大的社区ROS WIKI(http://wiki.ros.org/ ),
ROS1.0 优缺点:
优点 | 缺点 |
---|---|
提供框架、工具和功能 | 通信实时性能有限 |
方便移植 | 系统稳定性上不满足工业级要求 |
庞大的用户群体 | 安全性上没有防护措施 |
免费开源 | 仅支持Linux(Ubuntu) |
ROS 发展历程
ROS1.0版本发布于2010年,基于PR2机器人开发了一系列机器人相关的基础软件包。随后 ROS版本迭代频繁,目前已经发布到了Lunar。 目前使用人数最多的是Kinetic和Indigo这两个 Long Term Support版本。
ROS版本 | 首选Ubuntu版本 | 发布时间 |
---|---|---|
Noetic (Noetic Ninjemys) | Ubuntu Focal Fossa (20.04) | 2020.5 |
Melodic (Melodic Morenia) | Ubuntu Bionic (18.04) | 2018.5 |
Lunar (Lunar Loggerhead) | Ubuntu Zesty (17.04) | 2017.5 |
Kinetic ( Kinetic Kame) | Ubuntu Xenial (16.04) | 2016.5 |
Jade (Jade Turtle) | 2015.5 | |
Indigo (Indigo lgloo) | Ubuntu Trusty (14.04 LTS) | 2014.7 |
… | … | … |
Box (Box TurtleBox Turtle) | 2010.3 |
2018年ROS2 1.0版将发布。
本讲义主要讲解是ROS1,并非ROS2
安装ROS的步骤
ROS版本选择
ROS目前只支持在Linux系统上安装部署,它的首选开发平台是Ubuntu。时至今日ROS已经 相继更新推出了多种版本,供不同版本的Ubuntu开发者使用。为了提供最稳定的开发环境, ROS的每个版本都有一个推荐运行的Ubuntu版本。如下表所示:
ROS版本 | 首选Ubuntu版本 |
---|---|
Noetic (Noetic Ninjemys) | Ubuntu Focal Fossa (20.04) |
Melodic (Melodic Morenia) | Ubuntu Bionic (18.04) |
Lunar (Lunar Loggerhead) | Ubuntu Zesty (17.04) |
Kinetic ( Kinetic Kame) | Ubuntu Xenial (16.04) |
Jade (Jade Turtle) | |
Indigo (Indigo lgloo) | Ubuntu Trusty (14.04 LTS) |
… | … |
Box (Box TurtleBox Turtle) |
本教程使用的平台是Ubuntu 16.04,ROS版本是Kinetic。
如果你还没有安装Ubuntu,建议选择16.04版本(https://www.ubuntu.com/download/desktop )。并且我们建议在本地安装,不推荐用虚拟机,这样兼容性更好。
如果你已经安装Ubuntu,请确定系统版本,在终端中输入 cat /etc/issue
确定Ubuntu版本 号,然后选择对应的ROS版本。如果没有安装正确的ROS版本,就会出现各种各样的依赖错 误,所以安装时请谨慎。
更多信息请参考ROS: Home进行下载和安装。
安装ROS
以下是主机安装ROS
先检查下Ubuntu初始环境是否配置正确。 打开 Ubuntu的设置 -> 软件与更新 -> Ubuntu软件 ->勾选关键 字 universe , restricted , multiverse 三项。
配置完成后,就可以开始安装ROS了,打开终端。
-
添加sources.list
这一步配置将镜像添加到Ubuntu系统源列表中,这是官方源
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.ustc.edu.cn/ros/ubuntu/ $ DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
-
添加keys
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 # 成功显示 Executing: /tmp/apt-key-gpghome.5plp3PAf24/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 gpg: key F42ED6FBAB17C654: public key "Open Robotics <info@osrfoundation.org>" imported gpg: Total number processed: 1 gpg: imported: 1
公钥是Ubuntu系统的一种安全机制,也是ROS安装中不可缺的一部分。
-
系统更新
sudo apt-get update && sudo apt-get upgrade
更新系统,确保自己的Debian软件包和索引是最新的。
-
安装ROS
官网提供了四种默认的安装方式,当然也可以单独安装某个特 定的软件包。这四种方式包括桌面完整版安装、桌面版安装,基础版安装、单独软件包安装。
-
推荐安装桌面完整版安装(包含ROS、rqt、rviz、通用机器人函数库、2D/3D仿真器、导 航以及2D/3D感知功能),如下:
Ubuntu 18.04安装melodic版本
sudo apt install ros-melodic-desktop-full # Ubuntu 18.04
-
桌面版安装(包含ROS、rqt、rviz以及通用机器人函数库)
sudo apt-get install ros-melodic-desktop
-
基础版安装(包含ROS核心软件包、构建工具以及通信相关的程序库,无GUI工具)
sudo apt-get install ros-melodic-ros-base
-
单独软件包安装(这种安装方式在运行ROS缺少某些package依赖时会经常用到。你可 以安装某个指定的ROS软件包,使用软件包名称替换掉下面的PACKAGE)
sudo apt-get install ros-melodic-PACKAGE
例如系统提示找不到slam-gmapping,你就可以:
sudo apt-get install ros-melodic-slam-gmapping
要查找可用的软件包,请运行:
apt-cache search ros-melodic
软件包的依赖问题还可能出现在重复安装ROS、错误安装软件包的过程中,出现有一些软件 包无法安装,例如:
下列软件包有未满足的依赖关系:ros-melodic-desktop-full : 依赖: ros-melodic-desktop 但是它将不会被安装; 依赖: ros-melodic-perception 但是它将不会被安装; 依赖: ros-melodic-simulators 但是它将不会被安装; E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
出现上述问题,有可能是自己的版本不合适不兼容造成,也可能是镜像源没有更新,具体的 设置参考软件和更新的截图。当然也有可能是其他原因,比如更新了忘记刷新环境source一 下,重开一个终端等等。具体的问题原因可以去搜索引擎上尝试求助解决,或者登陆ROS Wiki(ROS的百科全书)去查询解决自己的具体问题。
-
配置ROS
配置ROS是安装完ROS之后必须的工作。
-
安装rosinstall, python-rosdep
rosinstall是ROS中一个独立分开的常用命令行工具,它可以方便让你通过一条命令就可以给 某个ROS软件包下载很多源码树。在ubuntu上安装这个工具,请运行:
sudo apt-get install python-rosdep python-rosinstall python-rosinstall-generator python-wstool
-
初始化rosdep
sudo rosdep init && rosdep update
这一步初始化rosdep,是使用ROS之前的必要一步。rosdep可以方便在你需要编译某些源码 的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。
-
ROS环境配置
# For Ubuntu 18.04 echo "## ROS config" >> ~/.bashrc echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
注意: ROS的环境配置,使得你每次打开一个新的终端,ROS的环境变量都能够自动配置 好,也就是添加到bash会话中,因为命令
source /opt/ros/melodic/setup.bash
只在当前终端 有作用,即具有单一时效性,要想每次新开一个终端都不用重新配置环境,就用echo语句将 命令添加到bash会话中。至此,ROS的安装就结束了,下面测试ROS能否正常运行。
测试ROS
首先启动ROS,输入代码运行roscore:
roscore
如果出现rosdistro和rosversion,那么说明ROS正常启动了!
接着我们测试ROS的吉祥物–小海龟,来简单的测试ROS运行是否正常,同时也来体验一下 ROS的神奇与精彩! 启动roscore后,重新打开一个终端窗口,输入:
rosrun turtlesim turtlesim_node
你还看到一只萌萌的海龟出现在屏幕上,那么该怎么样来操纵这只小海龟呢?重新打开新的 一个终端,输入
rosrun turtlesim turtle_teleop_key
将鼠标聚焦在第三个终端窗口上,然后通过键盘上的方向键,进行操作小海龟,如果小海龟 正常移动,并且在屏幕上留下自己的移动轨迹,如下图。恭喜你,ROS已经成功的安装、配置并且运行!
至此,ROS的安装、配置与测试就全部结束了,下面就正式开启ROS精彩的旅程!