ROS Kinectic安装

ROS安装

本章主要讲解的是**ROS Kinetic** 版本在**Ubuntu 16.04**系统上的安装,后面的内容会在此环境下进行。

1. 添加ROS的镜像源

1
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

Tip

添加的镜像源为中国科技大学的镜像源。由于ROS的主服务器在国外,国内访问时速度比较慢,因此我们添加国内镜像源。

2. 配置密钥

1
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

Tip

如果以上服务器在连接过程中存在问题,可以用以下两个备选地址:

hkp://pgp.mit.edu:80

hkp://keyserver.ubuntu.com:80

3. 更新Ubuntu的源

1
sudo apt-get update

Tip

这个步骤如果更新速度比较慢,请回到ubuntu系统配置中,配置ubuntu的源为阿里的源

4. 安装ROS kinetic

1
sudo apt-get install ros-kinetic-desktop-full

Tip

ros-kinetic-desktop-full内置了很多ROS的开发工具,作为开发阶段而言,我们选择此版本进行安装。

ROS初始化

1. 初始化rosdep

1
2
sudo rosdep init
rosdep update

Tip

在使用ROS之前,需要初始化rosdep。 rosdep可以轻松地为要编译的代码添加系统依赖项,并且帮助我们运行ROS中核心组件。

2. 配置全局环境变量

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

Tip

kinetic安装在/opt/ros/kinetic目录下,我们需要将安装目录下的功能包配置到系统的环境变量中去。这样我们才能使用ROS提供给我们的一些命令工具。

3. 安装打包工具依赖

1
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

安装错误处理

1. 源错误

1
2
3
E: Failed to fetch http://45.252.224.77/files/2116000007703A52/packages.ros.org/ros/ubuntu/dists/xenial/main/binary-amd64/Packages.gz  
E: Failed to fetch http://45.252.224.79/files/111600000609586B/mirrors.ustc.edu.cn/ros/ubuntu/dists/xenial/main/binary-i386/Packages.gz  Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.

Tip

通常在安装过程中会出现 Hash Sum mismatch,这个时候,建议修改Ubuntu操作系统的软件源为http://mirrors.ustc.edu.cn。保证ros的源和ubuntu的源一致,规避掉hash校验的错误。

2. rosdep错误

  • 建议多尝试几次,直到成功。
  • 如果不行,建议全局代理翻墙

测试安装

通过命令启动Ros Master

1
roscore

启动命令后,会有以下日志打印

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
... logging to /home/itheima/.ros/log/970b7818-77d3-11e9-a2e4-000c2948d957/roslaunch-ubuntu-9693.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://ubuntu:44075/
ros_comm version 1.12.14


SUMMARY
========

PARAMETERS
 * /rosdistro: kinetic
 * /rosversion: 1.12.14

NODES

auto-starting new master
process[master]: started with pid [9708]
ROS_MASTER_URI=http://ubuntu:11311/

setting /run_id to 970b7818-77d3-11e9-a2e4-000c2948d957
process[rosout-1]: started with pid [9725]
started core service [/rosout]