前言
由于在学习和项目中接触到了ROS,大多用到的是ROS的通讯机制,这篇博客主要介绍ROS是什么,如何安装,以及初级教程。
另外,百度的Apollo就采用了ROS,可见熟悉甚至精通ROS在机器人研发领域十分重要。
ROS是什么?
机器人操作系统ROS(Robot Operating System)是一个用于编写机器人软件的灵活框架,它集成了大量的工具、库、协议,提供类似操作系统所提供的功能,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间的消息传递、程序发行包管理,可以极大简化繁杂多样的机器人平台下的复杂任务创建与稳定行为控制。
1. ROS的核心是一个分布式、低耦合的通讯机制;
2. ROS提供多种机器人开发工具,可以快速实现数据可视化、机器人仿真等功能;
3. ROS开源社区中包含大量机器人应用功能,可以帮助我们快速开发功能原型;
4. ROS已经成为一个庞大的生态系统,包含机器人领域的方方面面,同时也得到了越来越多第三方工具的支持,为机器人开发提供了系统化的解决方案。
ROS的设计目标
ROS是免费且开源(Open Source)的,它的首要设计目标是在机器人研发领域提高代码复用率。
如何学习ROS
- ROS wiki:http://wiki.ros.org/(也有中文,但资料不够完善)
- 书籍:《ROS机器人程序设计》、《ROS By Example》等。
- 创客制造:https://www.ncnynl.com/
- 各种ROS博客、论坛、公众号。
- Others.
安装ROS
ROS有多个版本,不同版本对应不同的系统平台。
我的系统是Ubuntu 14.04,安装的ROS版本是Indigo。
安装教程参考http://wiki.ros.org/indigo/Installation/Ubuntu,这里可以看做翻译版。
配置Ubuntu软件库
在开始安装之前,需要首先配置软件库,为此需要先把软件库属性设为restricted、universe、multiverse。
打开桌面左侧的系统设置,打开系统 | 软件和更新标签页,确保界面与下图一致。
添加软件库到sources.list文件中
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
设置秘钥
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
安装ROS
更新软件
sudo apt-get update
桌面完整安装
sudo apt-get install ros-indigo-desktop-full
初始化rosdep
sudo rosdep init
rosdep update
配置环境
- 如果ROS环境变量在每次启动新shell时自动添加到bash会话中,这会很方便:
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
source ~/.bashrc
- 如果您安装了多个ROS分发版,~/.bashrc只能为当前使用的版本提供setup.bash。
- 如果只想更改当前shell的环境,则可以键入:
source /opt/ros/indigo/setup.bash
安装rosinstall
rosinstall是ROS中经常使用的命令行工具,可单独分发。 它可以使用一个命令轻松下载ROS软件包的许多源代码树。
sudo apt-get install python-rosinstall
验证是否安装成功
打开终端,输入以下命令:
$ roscore
如下图所示,则表明安装成功。
初级教程
初级教程主要包括下图所示的内容,直接去http://wiki.ros.org/cn/ROS/Tutorials学习即可。