logo资料库

机器人操作系统(ROS)教程完整版_中文翻译版.pdf

第1页 / 共181页
第2页 / 共181页
第3页 / 共181页
第4页 / 共181页
第5页 / 共181页
第6页 / 共181页
第7页 / 共181页
第8页 / 共181页
资料共181页,剩余部分请下载后查看
第1章 绪论0F†
1.1 选择ROS的理由
1.2 内容概述
1.3 行文约定
1.4 更多信息
1.5 下一章简介
第2章 入门概述17F†
2.1 安装ROS
2.2 配置账户
2.3 使用turtlesim的小例子
2.4 功能包/软件包(Packages)
2.5 节点管理器(The Master)
2.6 节点(Nodes)
2.7 话题和消息
2.7.1 查看节点构成的计算图
2.7.2 消息和消息类型
2.8 一个更复杂的例子
2.8.1 话题通信的多对多机制
2.8.2 节点之间的松耦合关系
2.9 问题检查
2.10 展望
第3章 编写ROS程序50F†
3.1 创建工作区和功能包
3.2 你好,ROS!
3.2.1 一个简单的程序
3.2.2 编译Hello程序
3.2.3 执行hello程序
3.3 发布者程序
3.3.1 发布消息
3.3.2 消息发布循环
3.3.3 编译pubvel
3.3.4 执行pubvel
3.4 订阅者程序
3.4.1 编译并运行subpose
3.5 展望
第4章 日志消息64F†
4.1 严重级别
4.2 示例程序
4.3 生成日志消息
4.4 查看日志消息
4.4.1 控制台
4.4.2 rosout上的消息
4.4.3 日志文件
4.5 启用和禁用日志消息
4.6 展望
第5章 计算图源命名72F†
5.1 全局名称
5.2 相对名称
5.3 私有名称
5.4 匿名名称(Anonymous names)
5.5 展望
第6章 启动文件73F†
6.1 使用启动文件
6.2 创建启动文件
6.2.1 启动文件的存储位置
6.2.2 启动文件的基本元素
6.3在命名空间内启动节点
6.4 名称重映射(Remapping names)
6.4.1 创建重映射
6.4.2 反向海龟(Reversing a turtle)
6.5 启动文件的其他元素
6.5.1 包含其他文件
6.5.2 启动参数(launch arguments)
6.5.3 创建组(Creating groups)
6.6 展望
第7章 参数87F†
7.1 通过命令行获取参数
7.2 例:turtlesim中的参数
7.3 使用C++获取参数
7.4 在启动文件中设置参数
7.5 展望
第8章 服务95F†
8.1 服务的专用术语
8.2 从命令行查看和调用服务
8.3 客户端程序
8.4 服务器程序
8.4.1 运行和改进服务器程序
8.5 展望
第9章 消息录制与回放100F†
9.1录制与回放包文件
9.2 示例:正方形运动轨迹的包文件
9.3启动文件里面的包文件
9.4 展望
第10章 总结101F†
10.1 下一步
10.2 展望
机器人操作系统(ROS)浅析 [美] Jason M. O'Kane 著 肖军浩 译 i
作者通讯地址: 国防科学技术大学机电工程与自动化学院 肖军浩 博士 地址:湖南省长沙市开福区砚瓦池正街 137 号 邮编:410073 版权信息: ©2015,肖军浩,版权所有。 本书上传至互联网供读者免费下载,版权归肖军浩个 人所有。未经许可,不得以任何方式复制或抄袭本书 之部分或全部内容用于商业目的。 ii
前 言 因为集成了全世界机器人领域顶级科研机构,包括斯坦福大 学、麻省理工学院、慕尼黑工业大学、加州大学伯克利分校、佐 治亚理工大学、弗莱堡大学、东京大学等多年的研究成果,开源 机器人操作系统(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 初学者在实际使用时参考。 iii
首先,感谢 O’Kane 教授对于本书翻译工作的的肯定和支持。 其次,本书的翻译得到国防科学技术大学“控制科学与工程高级 专题”课程师生的大力支持,其中赵云云、李峻翔、肖志鹏、贾 凡、朱琪、郭昭宇、王志强、陈春玉、魏翔宇分别参与了部分章 节的翻译工作。此外,王祥科博士审阅了初稿并提出了许多宝贵 的意见,对此,译者表示诚挚的谢意。最后,感谢 NuBot 研究团 队全体成员对于本书的支持和帮助。 限于译者水平,书中难免会有不足之处,热切地希望得到各 位读者的宝贵意见。作者的 E-mail 地址是:junhao.xiao@ieee.org。 译者 2015 年 9 月于长沙 iv
目 录 第 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 v
3.4 订阅者程序 ......................................................................................... 65 3.5 展望 ..................................................................................................... 71 第 4 章 日志消息 ................................................................................ 73 4.1 严重级别 ............................................................................................. 73 4.2 示例程序 ............................................................................................. 74 4.3 生成日志消息 ..................................................................................... 76 4.4 查看日志消息 ..................................................................................... 81 4.5 启用和禁用日志消息 ......................................................................... 88 4.6 展望 ..................................................................................................... 92 第 5 章 计算图源命名 ........................................................................ 93 5.1 全局名称 ............................................................................................. 93 5.2 相对名称 ............................................................................................. 95 5.3 私有名称 ............................................................................................. 97 5.4 匿名名称(ANONYMOUS NAMES) ........................................................ 98 5.5 展望 ................................................................................................... 100 第 6 章 启动文件 .............................................................................. 101 6.1 使用启动文件 ................................................................................... 101 6.2 创建启动文件 ................................................................................... 105 6.3 在命名空间内启动节点 ................................................................... 110 6.4 名称重映射(REMAPPING NAMES) .................................................... 113 6.5 启动文件的其他元素 ....................................................................... 119 6.6 展望 ................................................................................................... 126 vi
第 7 章 参数 ...................................................................................... 127 7.1 通过命令行获取参数 ....................................................................... 127 7.2 例:TURTLESIM 中的参数 ................................................................... 131 7.3 使用 C++获取参数 ............................................................................ 134 7.4 在启动文件中设置参数 ................................................................... 137 7.5 展望 ................................................................................................... 140 第 8 章 服务 ...................................................................................... 141 8.1 服务的专用术语 ............................................................................... 141 8.2 从命令行查看和调用服务 ............................................................... 142 8.3 客户端程序 ....................................................................................... 148 8.4 服务器程序 ....................................................................................... 153 8.5 展望 ................................................................................................... 159 第 9 章 消息录制与回放 ................................................................... 161 9.1 录制与回放包文件 ........................................................................... 161 9.2 示例:正方形运动轨迹的包文件 ................................................... 163 9.3 启动文件里面的包文件 ................................................................... 167 9.4 展望 ................................................................................................... 170 第 10 章 总结 ...................................................................................... 171 10.1 下一步 ............................................................................................. 171 10.2 展望 ................................................................................................. 174 vii
第1章 绪论 † 合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。 ——老子 本章主要介绍ROS 系统的优势和本书的框架结构。 1.1 选择 ROS 的理由 近年来,机器人领域取得了举世瞩目的进展。性价比较高的 机器人平台,包括地面移动机器人、旋翼无人机和类人机器人等, 得到了广泛应用。更令人感到振奋的是,越来越多的高级智能算 法让机器人的自主等级逐步提高。 尽管如此,对于机器人软件开发人员来说,仍然存在着诸多 挑战。本书主要介绍一个软件平台,即机器人操作系统 1(Robot Operating System, 或简称 ROS),它可以帮助提高机器人软件的 开发效率。ROS 系统的官方定义如下: ROS是面向机器人的开源的元操作系统(meta-operating system)1。它能够提供类似传统操作系统的诸多功能, 如硬件抽象、底层设备控制、常用功能实现、进程间消 息传递和程序包管理等。此外,它还提供相关工具和库, 用于获取、编译、编辑代码以及在多个计算机之间运行 程序完成分布式计算。 虽然上述定义很准确,强调了 ROS 与传统操作系统的异同, † 本章由肖军浩、赵云云翻译。 1 http://wiki.ros.org/ROS/Introduction 1
分享到:
收藏