自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
- ROS官网:http://www.ros.org/
- Ubuntu版本下载:http://releases.ubuntu.com/
- 基于Ubuntu安装ROS kinetic教程:http://wiki.ros.org/kinetic/Installation/Ubuntu
选择镜像源
(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
$ 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
配置文件最后添加:
1 | # Set ROS Kinetic |
说明:
- 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 校验和不符问题
解决办法:
打开终端,使用命令清除临时文件:
$ 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