最近接触Turtlebot,发现百度到的一些经验帖比较片面,这里写一份傻瓜式攻略。
本文参考:http://wiki.ros.org/indigo/Installation/Ubuntu
特定的ROS版本只能在对应的Ubuntu版本上安装。对应关系如下表——
图片来源:http://f.dataguru.cn/thread-903259-1-1.html
一般来说,ROS Indigo版本模块最全。
Ubuntu的各个版本软件包之间存在兼容问题,ROS的各个版本之间也存在兼容问题。也就是说,我们只能安装指定版本的ROS系统,而且必须安装在对应的Ubuntu系统上。
之前我有Ubuntu 16.04(Xenial)版本系统。由于课程需要,必须安装Indigo版本的ROS,于是我尝试寻找一种利用高版本Ubuntu来简化部分安装过程的方法。可惜,方法不存在。
最终我选择了 Windows下 VMware虚拟机 + Ubuntu 14.04(Trusty)的安装方法。不过如果以后非常依赖这套系统的话,还是建议装独立系统(双/多系统),毕竟虚拟机寄人篱下,不是长远之计。
我的版本:Ubuntu 14.04(Trusty) + ROS Indigo
这里从Ubuntu安装完成为起点开始。
设定ROS源为packages.ros.org,以自动获取ROS软件包。
在Ubuntu命令行(Terminal)中输入以下指令(下同)
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
http://wiki.ros.org/ROS/Installation/UbuntuMirrors,http://wiki.ros.org/DebianPackageSources 这两个源也可以用。
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
如果连接出现问题,可在上述指令中尝试hkp://pgp.mit.edu:80,hkp://keyserver.ubuntu.com:80 两个keyserver。
sudo apt-get update
推荐下载豪华全套ROS。其它参考 http://wiki.ros.org/indigo/Installation/Ubuntu
sudo apt-get install ros-indigo-desktop-full
安装耗时较长...请耐心等待...
在这部分可能会遇到依赖包缺失的问题。对于Ubuntu Trusty 14.04.2,尝试下面指令安装依赖包——
sudo apt-get install libgl1-mesa-dev-lts-trusty
其它版本尝试(注意,Trusty 14.04.2不适用)——
sudo apt-get install xserver-xorg-dev-lts-trusty mesa-common-dev-lts-trusty libxatracker-dev-lts-trusty libopenvg1-mesa-dev-lts-trusty libgles2-mesa-dev-lts-trusty libgles1-mesa-dev-lts-trusty libgl1-mesa-dev-lts-trusty libgbm-dev-lts-trusty libegl1-mesa-dev-lts-trusty
sudo rosdep init
rosdep update
使每次运行程序前都自动加载ROS环境变量。
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
source ~/.bashrc
其它可选操作参见 http://wiki.ros.org/indigo/Installation/Ubuntu
rosinstall是ROS中常用的命令行工具,但它独立打包。它实现了一条命令下载一个ROS包的许多相关源。用以下指令来获取rosinstall——
sudo apt-get install python-rosinstall
至此,ROS的软件准备已经全部完成。