1. 安装环
树莓派B+, ROS Indigo, 16G TF卡,Raspbian OS
2. 安装装备
2.1 准备ROS代码仓库
[html] view plain copy
-
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 –
确保Raspbian OS 已经更新
[html] view plain copy
-
sudo apt-get update
-
sudo apt-get upgrade
2.2 安装 bootstrap 依赖
[html] view plain copy
-
sudo apt-get install python-setuptools
-
sudo easy_install pip
-
sudo pip install -U rosdep rosinstall_generator wstool rosinstall
2.3 初始化 rosdep
[html] view plain copy
-
sudo rosdep init
-
rosdep update
3. 编译ROS
3.1 创建workspace来编译ROS
[html] view plain copy
-
mkdir ~/ros_catkin_ws
-
cd ~/ros_catkin_ws
接下来下载ROS代码,ROS 提供了两个代码包
1)ROS-Comm: 这是官方推荐的,但只包含基本的ROS通讯功能,没有navigation, TF, action, RViz等 GUI 工具
2) Desktop: 完整的ROS 功能,适合所有机器人应用。我们选择安装这个。
下面的命令下载并生产编译package列表,会很花时间
[html] view plain copy
-
rosinstall_generator desktop –rosdistro indigo –deps –wet-only –exclude roslisp –tar > indigo-desktop-wet.rosinstall
-
wstool init -j8 src indigo-desktop-wet.rosinstall
如果中途下载中断,下面的命令会接着下载:
[html] view plain copy
-
wstool update -j 4 -t src
3.2 解决依赖
libconsole-bridge-dev, liburdfdom-headers-dev, liburdfdom-dev, liblz4-dev, 和 collada-dom-dev 这五个包并不在Raspbian里面,需要手工编译下载
创建新目录下载这5个包
[html] view plain copy
-
<span style="font-size:18px;">mkdir ~/ros_catkin_ws/external_src
-
sudo apt-get install checkinstall cmake</span>
安装libconsole-bridge-dev:
[html] view plain copy
-
<span style="font-size:18px;">cd ~/ros_catkin_ws/external_src
-
sudo apt-get install libboost-system-dev libboost-thread-dev
-
git clone https://github.com/ros/console_bridge.git
-
cd console_bridge
-
cmake .
-
sudo checkinstall make install</span>
当checkinstall询问是否改变安装选项时,选择[2],将名字从"console-bridge" 改为 "libconsole-bridge-dev"
接下来的两个问题连续选择'n', 否则会编译出错
安装liblz4-dev
[html] view plain copy
-
<span style="font-size:18px;">$ cd ~/ros_catkin_ws/external_src
-
$ wget http://archive.raspbian.org/raspbian/pool/main/l/lz4/liblz4-1_0.0~r122-2_armhf.deb
-
$ wget http://archive.raspbian.org/raspbian/pool/main/l/lz4/liblz4-dev_0.0~r122-2_armhf.deb
-
$ sudo dpkg -i liblz4-1_0.0~r122-2_armhf.deb liblz4-dev_0.0~r122-2_armhf.deb</span>
安装liburdfdom-headers-dev
[html] view plain copy
-
<span style="font-size:18px;">$ cd ~/ros_catkin_ws/external_src
-
$ git clone https://github.com/ros/urdfdom_headers.git
-
$ cd urdfdom_headers
-
$ cmake .
-
$ sudo checkinstall make install</span>
当checkinstall询问是否改变安装选项时,选择[2],将名字从"urdfdom-headers" 改为 "liburdfdom-headers-dev"
接下来的两个问题连续选择'n', 否则会编译出错
安装liburdfdom-dev
[html] view plain copy
-
<span style="font-size:18px;">$ cd ~/ros_catkin_ws/external_src
-
$ sudo apt-get install libboost-test-dev libtinyxml-dev
-
$ git clone https://github.com/ros/urdfdom.git
-
$ cd urdfdom
-
$ cmake .
-
$ sudo checkinstall make install</span>
当checkinstall询问是否改变安装选项时,选择[2],将名字从"urdfdom" 改为 "liburdfdom-dev"
接下来的两个问题连续选择'n', 否则会编译出错
安装collada-dom-dev
[html] view plain copy
-
<span style="font-size:18px;">$ cd ~/ros_catkin_ws/external_src
-
$ sudo apt-get install libboost-filesystem-dev libxml2-dev
-
$ wget http://downloads.sourceforge.net/project/collada-dom/Collada%20DOM/Collada%20DOM%202.4/collada-dom-2.4.0.tgz
-
$ tar -xzf collada-dom-2.4.0.tgz
-
$ cd collada-dom-2.4.0
-
$ cmake .
-
$ sudo checkinstall make install</span>
当checkinstall询问是否改变安装选项时,选择[2],将名字从"collada-dom" 改为 "collada-dom-dev"
接下来的两个问题连续选择'n', 否则会编译出错
3.3 通过rosdep解决依赖
[html] view plain copy
-
<span style="font-size:18px;">$ cd ~/ros_catkin_ws
-
$ rosdep install –from-paths src –ignore-src –rosdistro indigo -y -r –os=debian:wheezy</span>
上面命令会便利所有的package并递归安装依赖
3.4 开始编译ROS
$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/indigo
常见错误:
编译过程中会编译180多个package并同时安装在/opt/ros/indigo目录,经常会报出 'urdf' 'collada_parser‘ ’collada_urdf' 这几个包出错而中断安装。 解决办法就是将这三个包从目录 ~/ros_catkin_ws/src/robot_model 目录中移出,再重新编译整个ROS. 最后单独建立一个workspace,将三个包放到src/robot_model 目录中。 再执行下面命令:
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/indigo
如果仍然报错,则需要重新一个一个安装 步骤3.2中的 liburdfdom-dev,liblz4-dev, 和 collada-dom-dev 包,每安装一个重新编译一遍,成功编译的包可以删除,直到最后都编译成功。