在Raspberry Pi上安装ROS

Raspberry Pi(树莓派)是一款基于 Linux 系统的单板电脑,它的体积小,价格低廉,广泛地应用在智能家居、机器人制作等领域。本人目前在学习 ROS(机器人操作系统),以 Pioneer 机器人为移动平台,配合 ROS 做相关的开发。刚听说这款开源硬件时就在想,能否在这个小板子上跑 ROS 呢?上网一查,果然,Raspberry Pi 上也能够运行 ROS。把过程给大家分享一下,本文主要是翻译工作,其中也带有我对一些步骤的解释。

我的树莓派安装的操作系统是官方原版的Raspbian,安装的 ROS 版本是 indigo。

准备工作

首先在源里添加 ROS Repositories,并更新源以及系统:

$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu wheezy main" > /etc/apt/sources.list.d/ros-latest.list'
$ wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get upgrade

安装必要的依赖:

$ sudo apt-get install python-setuptools python-pip python-yaml python-argparse python-distribute python-docutils python-dateutil python-setuptools python-six
$ sudo pip install rosdep rosinstall_generator wstool rosinstall

配置rosdep

$ sudo rosdep init
$ rosdep update

Fetch源代码

首先,新建一个catkin workspace用来编译安装:

$ mkdir ~/ros_catkin_ws
$ cd ~/ros_catkin_ws

将源代码 fetch 到该目录。我安装的是 ROS-Comm,只包含一些基础的软件,没有图形化工具:

$ rosinstall_generator ros_comm --rosdistro indigo --deps --wet-only --exclude roslisp --tar > indigo-ros_comm-wet.rosinstall
$ wstool init src indigo-ros_comm-wet.rosinstall

上面的rosinstall_generator命令生成.rosinstall文件,该文件包含了 ROS Stack/Package 的 repository 信息。wstool 根据生成的.rosinstall文件,通过版本管理软件(例如 git, subversion 等)将 Stack/Package 的源代码从远程仓库 fetch 到本地目录,该过程完成之后,我们可以在~/ros_catkin_ws/src中看到一些 Stack/Package 的源代码。

安装依赖

接下来,解决编译所需要的依赖,rosdep可以完成大部分工作,但是有些软件 Raspbian 仓库中还没有,需要手动安装。编译 ROS-Comm 之前需要安装libconsole-bridge-devliblz4-dev。 新建一个文件夹:

$ mkdir ~/ros_catkin_ws/external_src
$ sudo apt-get install checkinstall cmake
$ sudo sh -c 'echo "deb-src http://mirrordirector.raspbian.org/raspbian/ testing main contrib non-free rpi" >> /etc/apt/sources.list'
$ sudo apt-get update

安装libconsole-bridge-dev

$ cd ~/ros_catkin_ws/external_src
$ sudo apt-get build-dep console-bridge
$ apt-get source -b console-bridge
$ sudo dpkg -i libconsole-bridge0.2_*.deb libconsole-bridge-dev_*.deb

安装liblz4-dev,这一步花费的时间很长,大概要两个小时:

$ cd ~/ros_catkin_ws/external_src
$ apt-get source -b lz4
$ sudo dpkg -i liblz4-*.deb

上面的操作首先使用apt-get将源代码下载下来并编译成.deb文件,然后通过.deb文件安装到系统中。

使用rosdep解决其他的依赖问题:

$ cd ~/ros_catkin_ws
$ rosdep install --from-paths src --ignore-src --rosdistro indigo -y -r --os=debian:wheezy

rosdep会检查src文件夹,安装其他的依赖包。

编译

上面的步骤都完成之后我们就可以开始编译了:

$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/indigo

编译完成之后,indigo 就安装好了,安装的位置是/opt/ros/indigo,source 一下:
$ source /opt/ros/indigo/setup.bash
尝试着运行一下roscore命令,运行正常的话,ROS indigo 就安装成功了!

参考链接

  1. Installing ROS Indigo on Raspberry Pi
  2. ROS wiki
  3. Raspberry Pi

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