在Raspberry Pi上安装ROS Package

我在Raspberry Pi上安装ROS中介绍了如何安装 ROS-Comm. ROS-Comm 只包含了最基本的软件,大部分应用编译和运行所依赖的 Package 比如common_msgs, tf, geometry等都没有安装。此外,还需要安装一些自己需要的 Package,例如,我要用到 Asus Xtion Pro Live 传感器,ROS 中的 openni2_camera很好地支持 Xtion,openni2_cameraopenni2_launch也需要安装。本文将介绍如何在 Raspberry Pi 上安装 ROS Package.

更新Workspace

如果你是刚刚安装好 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

加上Released Packages

一个 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

如果最后一步有什么编译错误产生的话,请看我下一篇文章。

参考链接

  1. http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Indigo%20on%20Raspberry%20Pi
  2. http://wiki.ros.org/indigo/Installation/Source

你可能感兴趣的:(ROS,raspberry-pi,机器人)