这个过程基于官方安装页面的内容讲述:http://wiki.ros.org/hydro/Installation/Ubuntu
开始安装之前,需要首先配置软件库,需要把软件库属性设为restricted、universe、multiverse。为了检查你的Ubuntu版本是否支持这些软件库,单击打开Ubuntu软件中心(Ubuntu Software Center);打开Edit | Software Source标签。
添加软件库到sources.list文件中在多种版本的操作系统中都可以安装ROS Hydro。虽然你可以使用任何一个版本,但是推荐最新版本,以避免发生问题。Hydro在Precise Pangolin(12.04)、Quantal Quetzal(12.10)和Raring Ringtail(13.04)下可以正常工作。
在Ubuntu 12.04(Precise Pangolin)下,安装软件库的具体方法如下:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu precise main" > /etc/apt/sources.list.d/ros-latest.list'
在Ubuntu 12.10(Quantal Quetzal)下,安装软件库的具体方法如下:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu quantal main" > /etc/apt/sources.list.d/ros-latest.list'
在Ubuntu 13.04(Raring Ringtail)下,安装软件库的具体方法如下:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu raring main" > /etc/apt/sources.list.d/ros-latest.list'
一旦添加了正确的软件库,操作系统就知道去哪里下载程序,并根据命令自动安装软件。
设置 密钥这一步是为了确认原始代码是正确的,并且没有人在未经所有者授权的情况下修改任何程序代码。通常情况下,当添加完软件库时,你就已经添加了软件库的密钥,并将其添加到操作系统的可信任列表中。
$ wget http://packages.ros.rog/ros.key -O- | sudo apt-key add-
现在我们能够确定代码来自授权网站并且没有被修改。
安装ROS现在开始安装ROS。开始之前先升级一下软件,避免错误的库或软件库版本产生各种问题。输入以下命令升级该软件:
$ sudo apt-get update
ROS非常大,有时候你会安装一些永远也用不到的库和程序。通常情况下,根据用途有四种不同的安装方式。
最简单的安装方式就是桌面完整安装(desktop-full)。这将安装ROS,rqt工具箱,rviz可视化环境(3D)、通用机器人库、2D(如stage)和3D(如gazebo)仿真环境、导航功能包集(移动、定位、地图绘制、机械臂控制),以及其他感知库,如视觉库、激光雷达和RGBD摄像头(深度摄像头):
$sudo apt-get install ros-hydro-desktop-full
如果你没有足够的硬盘空间,或更喜欢安装特定部分的功能包集,那么第一次安装可以仅安装桌面安装文件,包括ROS、rqt工具箱、rviz和其他通用机器人库。之后再需要的时候,再安装其他功能包集(使用apt命令并查找ros-hydro-*功能包集):
$sudo apt-get install ros-hydro-desktop
如果你只想尝试一下,请安装ROS-base。ROS-base通常直接安装在机器人上,尤其是机器人没有屏幕和人机界面,只能tty远程登陆的情况下。他只安装ROS的编译和通信包,而没有任何的GUI工具。在BeagleBoneBlack(BBB)中,你将使用下面命令:
$sudo apt-get install ros-hydro-base
最后,无论你选择哪一个选项安装,你都可以独立安装特定的ROS功能包集(将STACK替换成给定功能包集的名称):
$sudo apt-get install ros-hydro-PACKAGE
初始化rosdep在使用ROS之前,必须先安装和初始化rosdep命令行工具。这可以使你轻松的安装库和编译源代码时的系统依赖,来运行在ROS中的一些核心组件。在ROS Fuerte中,你必须安装完ROS后再安装rosdep,因为它是一个独立的工具。现在rosdep默认安装在ROS中。你可以使用下面的命令安装和初始化rosdep:
$sudo rosdep init
$rosdep update
配置环境现在你已经成功安装了某个版本的ROS,为了能够运行它,系统需要知道可执行或二进制文件以及其他命令的位置。为了实现那以上目的,你需要执行以下脚本:
$source /opt/ros/hydro/setup.bash
如果你还安装了另一个ROS发行版,每次你需要通过调用脚本来使用它,这个脚本会直接配置你的环境。在此我们使用的是ROS Hydro的脚本,如果你想尝试其他发行版,只需要用Fuerte或Groovy代替Hydro即可。
如果你在命令行中输入了roscore,那么将看到有程序启动。这是用来测试是否完成ROS安装以及是否安装正确的最好的方法。
请注意,如果你再次打开一个命令窗口,并输入roscore或其他ROS命令,却无法工作了。这是因为你需要再一次执行脚本来配置全局变量和ROS的安装路径。
这个问题很容易解决,你只需要在.bashrc文件最后添加脚本,当你开始新命令行时,该脚本将执行并配置环境。
.bashrc文件在用户的home文件夹下(/home/用户名/.bashrc)。每次用户打开终端,这个文件加载命令行或终端的配置。所以你可以添加命令或配置方便用户使用。出于这个原因,我们将在.bashrc文件结束时添加脚本,以避免我们每次打开一个新终端都要重复输入命令。我们用下面命令:
$ echo "source /opt/ros/hydro/setup.bash" >> ~/.bashrc
如果要使配置生效,你必须使用下面的命令去执行这个文件,或关闭当前终端,打开另一新的终端。
$ source ~/.bashrc
一些用户需要在他们的系统总安装不止一个ROS的发行版本。由于每次调用脚本都会覆盖系统当前配置,所以~/.bashrc只能设置你正在使用的哪一个版本的setup.bash。为了实现在几个发行版本之间切换,你需要调用不同的setup.bash脚本。
例如,在.bashrc文件下面可能有这么几行代码:
...
source /opt/ros/hydro/setup.bash
source /opt/ros/fuerte/setup.bash
source /opt/ros/electric/setup.bash
...
在这种情况下,ROS Electric版本将被执行。所以你必须确保将要运行的版本是文件中的最后一个。
如果你想通过终端使用的版本,可以非常简单地使用echo $ROS_DISTRO命令。
安装rosinstall现在,下一步工作是安装一个命令行工具,以帮助我们使用一条命令安装其他包。这个工具是基于Python的,但是别担心,使用它不需要你掌握Python。你在接下来的章节中将学习如何使用这个工具:
运行以下命令在Ubuntu中安装这个工具:
$sudo apt-get install python-rosinstall
这就完成了!你已经在你的系统完成了一个完整的ROS系统安装。当我完成一个新安装的ROS后,我个人喜欢测试两个东西:roscore和turtlesim。
如果你想做相同的事,在不同命令行分别输入以下命令:
$ roscore
$ rosrun turtlesim turtlesim_node
如果一切正常,你将看到右边的界面。