从今天起,好好学习ROS和SLAM,每天白天两小时,晚上两小时。坚持。
0.ROS简介
ROS全称为Robot Operating System,是一个开源的机器人软件平台,遵从BSD协议,可以免费用于学术和商业用途。
就我现在的粗浅理解而言,ROS的本质是一个“类库+命令行工具集”结合的软件平台。
我学习使用ROS主要出于两个目的:
0.1. 在ROS提供的仿真环境下,编写自己的package,进行SLAM算法的模拟和测试,便于快速调试和修改算法。
0.2 研究基于ROS提供的系统封装,在PC上控制实验室移动机器人平台R1的可行性。由于ROS在win/linux平台上皆能运行(可能需要交叉编译),所以从长期来看,以后若真有相关需求,移植ROS到R1内部也是具有可行性的。
1. ROS安装
类似于Opencv,ROS的安装方式分两种,源代码本地编译安装,二进制库形式安装。这里我们选择二进制库安装。
考虑到学习资料的广泛程度,这里我没有安装最新的ROS版本Jade,而是安装了2012年Fuerte,安装过程完全遵从Ubuntu install of Fuerte。
注:我的Ubuntu12.04中repository无需修改,默认已允许"restricted," "universe," and "multiverse."的支持。
1.1 安装前准备。主要是添加可用的ros源。
1.2 ros安装。我这里安装的是ros的桌面完全版。
sudo apt-get install ros-fuerte-desktop-full1.3 环境配置。主要是将ros那些常用命令行工具添加到系统bash支持的命令中。好吧,我对于shell,bash之类并不熟悉,这里的术语可能有点问题。
1.4 其他工具安装。
rosinstall工具主要用于快速安装除ros完整系统外,附加的package和stack。
rosdep工具主要用于帮助用户安装开发过程中可能会用到的依赖项(而非直接的package,stack)
sudo apt-get install python-rosinstall python-rosdep
2. 配置ROS环境
在安装完ROS的完整软件包后,我们需要使用ROS中现成的package和stack,或者自己开发新的package,必须还要再配置好开发环境。
2.1.Ensure 在步骤1中ROS环境变量的配置正确无误。
printenv | grep ROS
2.2 创建一个ROS的workspace。并在该workspace下新建一个sandbox文件夹,并将该文件夹添加到系统bash的路径中去。顾名思义,sandbox文件夹的主要作用在于提供一个编写/编译用户自己创建的package/stack的安全环境。
注:在将sandbox所在路径添加到workspace的bash文件中时,使用如下命令无效。经rosws set -h,发现用户需使用-t选项指定被添加的worksapce。
rosws set ~/fuerte_workspace/sandbox
rosws set ~/fuerte_workspace/sandbox -t ~/fuerte_workspace
以上是简单的环境和环境变量设置方案。
注:暂时所有的软件包操作都基于rosbuild的方式进行,因为听说这种方式相对简单。以后要写自己的package了再转换到catkin模式。