ROS安装
本章主要讲解的是ROS Kinect 版本在Ubuntu 16.04系统上的安装,后面的内容会在此环境下进行。
1. 添加ROS的镜像源
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'
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'
::: tip
添加的镜像源为中国科技大学的镜像源。由于ROS的主服务器在国外,国内访问时速度比较慢,因此我们添加国内镜像源。
:::
2. 配置密钥
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
::: tip
如果以上服务器在连接过程中存在问题,可以用以下两个备选地址:
:::
3. 更新Ubuntu的源
sudo apt-get update
:::tip
这个步骤如果更新速度比较慢,请回到ubuntu系统配置中,配置ubuntu的源为阿里的源
:::
4. 安装ROS kinetic
sudo apt-get install ros-kinetic-desktop-full
ros-kinetic-desktop-full
内置了很多ROS的开发工具,作为开发阶段而言,我们选择此版本进行安装。
ROS初始化
1. 初始化rosdep
sudo rosdep init
rosdep update
:::tip
在使用ROS之前,需要初始化rosdep。 rosdep可以轻松地为要编译的代码添加系统依赖项,并且帮助我们运行ROS中核心组件。
:::
2. 配置全局环境变量
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
:::tip
kinetic安装在/opt/ros/kinetic
目录下,我们需要将安装目录下的功能包配置到系统的环境变量中去。这样我们才能使用ROS提供给我们的一些命令工具。
:::
3. 安装打包工具依赖
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
安装错误处理
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.
通常在安装过程中会出现 Hash Sum mismatch
,这个时候,建议修改Ubuntu操作系统的软件源为http://mirrors.ustc.edu.cn
。保证ros的源和ubuntu的源一致,规避掉hash校验的错误。
测试安装
通过命令启动Ros Master
roscore
启动命令后,会有以下日志打印
... 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]