i
机器人操作系统(ROS)浅析
[美] Jason M. O'Kane 著
肖军浩 译
ii
作者通讯地址:
国防科学技术大学机电工程与自动化学院
肖军浩 博士
地址:湖南省长沙市开福区砚瓦池正街 137 号
邮编:410073
版权信息:
©2015,肖军浩,版权所有。
本书上传至互联网供读者免费下载,版权归肖军浩个
人所有。未经许可,不得以任何方式复制或抄袭本书
之部分或全部内容用于商业目的。
iii
前 言
因为集成了全世界机器人领域顶级科研机构,包括斯坦福大
学、麻省理工学院、慕尼黑工业大学、加州大学伯克利分校、佐
治亚理工大学、弗莱堡大学、东京大学等多年的研究成果,开源
机器人操作系统(Robot Operating System,简称 ROS)甫一问世
便受到了科研人员的广泛关注。随后,ROS 又借助开源的魅力吸
引了世界各地机器人领域的仁人志士群策群力,推动其不断进步。
2013 年麻省理工学院科技评论(MIT Technology Review)指出:
“从 2010 年发布 1.0 版本以来,ROS 已经成为机器人软件的
事实
标准(
de facto standard
)
”。
译者在德国汉堡大学攻读博士学位期间,有幸于 2010 年成
为 ROS 的第一批用户,并将其介绍给身边的同事以及国防科技大
学的老师和同学。2013 年,译者所在研究团队将 NuBot 中型组足
球机器人的软件系统移植到了 ROS 框架下,并于 2014 年和 2015
年分别参加了在巴西若昂佩索阿和中国合肥举办的机器人足球世
界杯。使用 ROS 后 NuBot 足球机器人软件系统的鲁棒性、易用性
和可维护性均有大幅度提高。对我们将 ROS 用于中型组足球机器
人的工作,国际同行给予了非常积极的评价。
译者连续两年将 ROS 的使用作为国防科技大学高年级本科生
实践教学的重要环节,发现一个普遍问题:学生能够迅速理解 ROS
的框架结构和基本概念,但是实际使用时问题却层出不穷,而其
中大部分是共性问题!O’Kane 教授这本“A Gentle Introduction to
ROS”对 ROS 初学过程中的常见问题做了全面的总结。当然,这
本书不仅仅是常见问题汇编,它还对概念和工具做了比在线文档
更深入的剖析!故而,译者在征求 O'Kane 教授的同意后,将该书
译为中文,供中国的 ROS 初学者在实际使用时参考。
v
目
录
第
1
章
绪论
.......................................................................................... 1
1.1 选择 ROS 的理由 .............................................................................. 1
1.2 内容概述 .......................................................................................... 5
1.3 行文约定 .......................................................................................... 7
1.4 更多信息 .......................................................................................... 7
1.5 下一章简介 .................................................................................... 10
第
2
章
入门概述
................................................................................ 11
2.1 安装 ROS ............................................................................................. 11
2.2 配置账户 ............................................................................................. 14
2.3 使用 TURTLESIM 的小例子 .................................................................... 16
2.4 功能包/软件包(PACKAGES).............................................................. 18
2.5 节点管理器(THE MASTER) ............................................................... 22
2.6 节点(NODES) ................................................................................... 23
2.7 话题和消息 ......................................................................................... 26
2.8 一个更复杂的例子 ............................................................................. 39
2.9 问题检查 ............................................................................................. 43
2.10 展望 ................................................................................................... 43
第
3
章
编写
ROS
程序
........................................................................ 45
3.1 创建工作区和功能包 ......................................................................... 45
3.2 你好,ROS! ......................................................................................... 48
3.3 发布者程序 ......................................................................................... 55