我在Raspberry Pi上安装ROS中介绍了如何安装 ROS-Comm. ROS-Comm 只包含了最基本的软件,大部分应用编译和运行所依赖的 Package 比如common_msgs
, tf
, geometry
等都没有安装。此外,还需要安装一些自己需要的 Package,例如,我要用到 Asus Xtion Pro Live 传感器,ROS 中的 openni2_camera
很好地支持 Xtion,openni2_camera
和openni2_launch
也需要安装。本文将介绍如何在 Raspberry Pi 上安装 ROS Package.
如果你是刚刚安装好 ROS-Comm,这一步就不需要了。首先将之前的.rosinstall
文件备份,以免新的文件将它覆盖。
$ cd ~/ros_catkin_ws
$ mv -i indigo-desktop-full-wet.rosinstall indigo-desktop-full-wet.rosinstall.old
$ rosinstall_generator desktop_full --rosdistro indigo --deps --wet-only --tar > indigo-desktop-full-wet.rosinstall
比较两个文件的差别:
$ diff -u indigo-desktop-full-wet.rosinstall indigo-desktop-full-wet.rosinstall.old
如果输出为空,则没有更新。如果你需要这些更新,使用wstool
更新 Workspace:
$ wstool merge -t src indigo-desktop-full-wet.rosinstall
$ wstool update -t src
一个 ROS 工程可以运行在多个计算机上,我将 Raspberry Pi 作为移动端,只需要和硬件交互,没有计算和监控任务(这些耗费资源的任务放在计算能力更强的远程 PC 上运行),因此,只需要安装一些基础的以及跟硬件相关的 Package 就够了. 我根据需求,加入了如下几个 Package: common_msgs
, tf
, openni2_camera
, openni2_launch
, control_msgs
, diagnostics
, dynamic_reconfigure
. 尽可能多的加如你需要的 Package,然后使用rosinstall_generator
生成.rosinstall
文件:
$ cd ~/ros_catkin_ws
$ rosinstall_generator ros_comm common_msgs tf openni2_camera openni2_launch control_msgs diagnostics dynamic_reconfigure --rosdistro indigo --deps --wet-only --exclude roslisp --tar > indigo-custom_ros.rosinstall
查看一下indigo-custom_ros.rosinstall
文件会发现,除了我添加的 Package 之外,还有加上了许多编译和运行时所依赖的其它 Package.
更新 Workspace:
$ wstool merge -t src indigo-custom_ros.rosinstall
$ wstool update -t src
使用rosdep
安装其他的依赖软件:
$ rosdep install --from-paths src --ignore-src --rosdistro indigo -y -r --os=debian:wheezy
我在这一步骤中碰到有几个软件无法解决依赖问题,无法安装,不过对后面并没有多大影响。如果不嫌麻烦的话,可以将.deb
下载下来手动安装。
最后,编译安装:
$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/indigo
如果最后一步有什么编译错误产生的话,请看我下一篇文章。