设置 sources.list
为 Ubuntu 的包管理器增加源,设置计算机接受来自于 packages.ros.org 的软件。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
- 1
这一步会根据 Ubuntu Linux 发行版本的不同,添加不同的源。Ubuntu 的版本通过 lsb_release -sc
获得。
一旦添加了正确的软件库,操作系统就知道去哪里下载程序,并根据命令自动安装软件。
设置密钥
这一步是为了确认源代码是正确的,并且没有人在未经所有者授权的情况下,修改任何程序代码。通常情况下,当添加完软件库时,已经添加了软件库的密钥,并将其添加到操作系统的可信任列表中。
设置密钥的命令如下:
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
- 1
如果在连接密钥服务器时遇到了问题,可以尝试在上面的命令中用 hkp://pgp.mit.edu:80
或 hkp://keyserver.ubuntu.com:80
来替换。
安装
首先,需要确保包管理器的索引已经更新至最新:
sudo apt-get update
- 1
ROS 中有非常多不同的库和工具。官方提供了四种默认的配置来安装 ROS。也可以独立地安装 ROS 包。
sudo apt-get install ros-kinetic-desktop
- 1
ROS-Base (Bare Bones):ROS 包,构建和通信库。没有 GUI 工具。
sudo apt-get install ros-kinetic-ros-base
- 1
独立的包安装:可以安装一个特定的 ROS 包(用实际的包名来替换下面的命令中的 “PACKAGE”)。
sudo apt-get install ros-kinetic-PACKAGE
- 1
如:
sudo apt-get install ros-kinetic-slam-gmapping
- 1
要找到可用的包,可以使用:
apt-cache search ros-kinetic
- 1
通常在做开发时,采用 桌面完整安装 比较方便一点,可以一股脑将所有有可能用到的软件包都安装进来。对于实际的机器,则通常采用 ROS-Base (Bare Bones) + 独立的包 的方式进行安装。
初始化 rosdep
在使用 ROS 之前,需要先初始化 rosdep
。rosdep
使得你可以为你想要编译的源码,以及需要运行的 ROS 核心组件,简单地安装系统依赖。
sudo rosdep init
rosdep update
- 1
- 2
环境设置
如果在每次一个新的终端启动时,ROS 环境变量都能自动地添加进你的 bash 会话是非常方便,这可以通过如下命令来实现:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
- 1
- 2
如果安装了多个 ROS 发行版,则 ~/.bashrc
必须只 source
当前正在使用的那一版的 setup.bash
。
如果你只想要修改当前 shell 的环境,则输入如下的命令来替换上面的命令:
完成完整的 ROS 安装之后,可以对安装做一个简单的测试。可以通过 roscore
和 turtlesim
来做测试。
roscore
测试如下:
$ roscore
... logging to /home/hanpfei0306/.ros/log/3e61b674-03cf-11e8-ac54-9cb70ddc3658/roslaunch-hanpfei0306-31481.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://hanpfei0306:44979/
ros_comm version 1.12.12
SUMMARY
========
PARAMETERS
* /rosdistro: kinetic
* /rosversion: 1.12.12
NODES
auto-starting new master
process[master]: started with pid [31495]
ROS_MASTER_URI=http://hanpfei0306:11311/
setting /run_id to 3e61b674-03cf-11e8-ac54-9cb70ddc3658
process[rosout-1]: started with pid [31508]
started core service [/rosout]
- 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
- 26
turtlesim
测试如下:
turtlesim
的运行依赖于
roscore
的运行,因此在测试
turtlesim
需要同时运行
roscore
。
打开一个新终端,通过键盘控制小乌龟,这个终端窗口必须置顶才能键盘控制
rosrun turtlesim turtle_teleop_key
会出现如下结果,此时就可以通过键盘的前后左右来控制小乌龟的平面运动了。
Reading from keyboard
—————————
Use arrow keys to move the turtle.