ROS

Ubuntu Install ROS

"Ubuntu install ros"

Posted by Stephen on December 4, 2019

前言

在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了,打开终端。

  1. 添加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'
    
  2. 添加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安装中不可缺的一部分。

  3. 系统更新

    sudo apt-get update && sudo apt-get upgrade
    

    更新系统,确保自己的Debian软件包和索引是最新的。

  4. 安装ROS

    官网提供了四种默认的安装方式,当然也可以单独安装某个特 定的软件包。这四种方式包括桌面完整版安装、桌面版安装,基础版安装、单独软件包安装。

    1. 推荐安装桌面完整版安装(包含ROS、rqt、rviz、通用机器人函数库、2D/3D仿真器、导 航以及2D/3D感知功能),如下:

      Ubuntu 18.04安装melodic版本

      sudo apt install ros-melodic-desktop-full # Ubuntu 18.04
      
    2. 桌面版安装(包含ROS、rqt、rviz以及通用机器人函数库)

      sudo apt-get install ros-melodic-desktop
      
    3. 基础版安装(包含ROS核心软件包、构建工具以及通信相关的程序库,无GUI工具)

      sudo apt-get install ros-melodic-ros-base 
      
    4. 单独软件包安装(这种安装方式在运行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之后必须的工作。

  1. 安装rosinstall, python-rosdep

    rosinstall是ROS中一个独立分开的常用命令行工具,它可以方便让你通过一条命令就可以给 某个ROS软件包下载很多源码树。在ubuntu上安装这个工具,请运行:

    sudo apt-get install python-rosdep python-rosinstall python-rosinstall-generator python-wstool
    
  2. 初始化rosdep

    sudo rosdep init && rosdep update
    

    这一步初始化rosdep,是使用ROS之前的必要一步。rosdep可以方便在你需要编译某些源码 的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。

  3. 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精彩的旅程!

后记