ROS入门学习2:ROS安装教程

  自2010年机器人操作系统ROS发布以来,目前已经有12个迭代版本,不同的ROS版本对应不同Ubuntu版本,版本选择错误,可能会出现不兼容、安装失败等问题。

- ROS Melodic Morenia主要针对Ubuntu 18.04(Bionic)版本;
- ROS Lunar Loggerhead主要针对Ubuntu 17.04(Zesty)版本;
- ROS Kinetic Kame主要针对Ubuntu 16.04(Xenial)版本。

  本文虚拟机运行Ubuntu 16.04.5 LTS (Xenial Xerus),以ROS版本 ROS Kinetic Kame为例。

安装ROS

选择镜像源

  (1)打开系统设置软件和更新,设置如下图:

(2)在 下载自 中选择 其他站点 ,然后在中国的条目下选择 mirrors.ustc.edu.cn或者mirrors.tuna.tsinghua.edu.cn

  • 中科大镜像:mirrors.ustc.edu.cn
  • 清华大学镜像:mirrors.tuna.tsinghua.edu.cn

开始安装

(1)添加源sources.list
选择一条国内的源,能够大大提高安装下载速度。

# 原始版本
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
# 中科大镜像源 USTC
$ 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'
# 清华大学镜像源 Tsinghua University
$ sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

(2)设置key

$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

(3)确保软件处于最新版

$ sudo apt-get update

(4)安装ROS
  ROS安装时间有点长。。。完全取决于网速。

安装桌面完整版: (推荐) : 包含ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及2D/3D感知
$ sudo apt-get install ros-kinetic-desktop-full

基础版安装: (简版) 包含ROS核心软件包、构建工具以及通信相关的程序库,无GUI工具。适用于树莓派。
 $ sudo apt-get install ros-kinetic-ros-base

(5)安装rosdep
  在使用ROS之前,需要初始化rosdep。rosdep可以轻松地为要编译的源安装系统依赖项,并且需要在ROS中运行一些核心组件。

$ sudo rosdep init
$ rosdep update

(6)配置环境变量

$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc

(7)安装依赖包
  rosinstall是一种常用的命令行工具,使您可以使用一个命令轻松下载ROS包的许多源树。

$ sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

测试ROS

  安装完成后,测试ROS安装效果。输入命令roscore,启动ROS。

(图)启动ROS

卸载ROS

$ sudo apt-get purge ros-*
卸载ros
$ sudo rm -rf /etc/ros
移除ros
$ gedit ~/.bashrc
移除环境变量,删除最后一行关于当前ros版本的变量。

  卸载成功的效果就是/opt下的ROS文件夹被删除,原先的ROS以及曾经安装在ROS中的package也没有了。

ROS配置

  要加载一个配置文件,就像在ROS安装过程中使用的以下命令一样,每次打开新的终端窗口时都必须运行它。

$ source /opt/ros/kinetic/setup.bash
$ source ~/catkin_ws/devel/setup.bash

  为了避免这个繁琐的任务,可以设置终端,使得每次打开新的终端窗口时,都读入配置文件。另外,还将常用的命令简化为快捷命令。

(1)打开~/.bashrc配置文件:

$ gedit ~/.bashrc

(2)在~/.bashrc配置文件最后添加:

~/.bashrc
1
2
3
4
5
6
7
8
# Set ROS Kinetic
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash

# Set ROS alias command
alias cw='cd ~/catkin_ws'
alias cs='cd ~/catkin_ws/src'
alias cm='cd ~/catkin_ws && catkin_make'

说明:

  • cw:进入~/catkin_ws,预设的catkin工作目录
  • cs:进入catkin工作目录中保存源文件的~/catkin_ws/src目录
  • cm:在移动到catkin工作目录~/catkin_ws之后,用catkin_make命令构建ROS功能包

(3)最后在终端运行:

$ source ~/.bashrc

容易出现的问题

  • 无法获得锁问题?
(图)无法获得锁问题

解决办法:

打开终端,输入强制解锁命令:

$ sudo rm /var/cache/apt/archives/lock
$ sudo rm /var/lib/dpkg/lock
  • 输入命令 sudo apt-get update 时出现 Hash 校验和不符问题
(图)Hash 校验和不符问题

解决办法:

打开终端,使用命令清除临时文件:

$ sudo apt-get clean
$ sudo rm -rf /var/lib/apt/lists/*
  • 安装ROS选择中科大镜像源后,sudo apt-get update 出现没有公钥问题
W: GPG 错误:http://mirrors.ustc.edu.cn/ros/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
W: 仓库 “http://mirrors.ustc.edu.cn/ros/ubuntu xenial InRelease” 没有数字签名。
N: 无法认证来自该源的数据,所以使用它会带来潜在风险。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。

解决办法:

打开终端,安装钥匙

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
+