前言
第1章 智能机器人及其发展概述 1
1.1 智能机器人概念及其特点 1
1.1.1 智能机器人概念 1
1.1.2 智能机器人的发展 2
1.1.3 智能机器人的特点 3
1.2 智能机器人的组成 3
1.2.1 智能机器人的硬件组成 3
1.2.2 智能机器人的软件系统 7
1.3 智能机器人的分类 10
1.3.1 服务智能机器人 11
1.3.2 工业智能机器人 14
第2章 ROS体系架构 18
2.1 ROS框架 18
2.1.1 ROS简介 18
2.1.2 ROS整体架构分析 20
2.1.3 名称系统 27
2.2 ROS 2.0框架 28
2.2.1 ROS 2.0简介 28
2.2.2 ROS与ROS 2.0之间的主要区别 29
2.3 本章小结 31
第3章 ROS通信机制 32
3.1 ROS通信机制概述 32
3.1.1 ROS通信机制概念 32
3.1.2 ROS通信机制的基本要素 32
3.1.3 ROS通信机制的分类 33
3.2 基于主题的异步数据流通信 33
3.2.1 简介 33
3.2.2 异步数据流的实现基础 34
3.2.3 异步数据流的实现过程 42
3.2.4 回调函数处理 47
3.3 基于服务的同步RPC通信 50
3.3.1 简介 50
3.3.2 同步RPC通信的实现过程 51
3.4 基于参数服务器的数据传递 55
3.4.1 简介 55
3.4.2 具体实现过程 57
3.5 本章小结 58
第4章 ROS坐标变换体系及其实现 60
4.1 机器人运动学基本原理 60
4.1.1 空间坐标系的描述和转换 60
4.1.2 机器人的正运动学 65
4.2 ROS tf 69
4.3 tf原理分析 70
4.3.1 相关数据结构 70
4.3.2 tf关键模块的实现 80
4.4 特定机器人的ROS tf应用实例 85
4.4.1 tf外部接口 85
4.4.2 ROS tf在UR5上的应用 85
4.5 本章小结 87
第5章 ROS任务调度与有限状态机实现 88
5.1 ROS 任务调度接口设计 88
5.1.1 action的设计与编译 88
5.1.2 基于主题的ActionClient与ActionServer的交互设计 89
5.1.3 ActionClient与ActionServer的交互过程 90
5.1.4 action状态变换 91
5.1.5 actionlib的任务调度策略 93
5.1.6 actionlib接口的具体实现 95
5.2 ROS有限状态机的SMACH 98
5.2.1 有限状态机的基本原理 98
5.2.2 SMACH概述 100
5.2.3 SMACH状态描述 102
5.2.4 SMACH容器设计与实现 107
5.2.5 SMACH主要处理构件分析 111
5.2.6 状态机的具体实现 113
5.3 本章小结 115
第6章 ROS运动规划及其实现 116
6.1 智能机器人运动控制概述 116
6.2 ROS MoveIt包介绍 117
6.2.1 用户接口 117
6.2.2 ROS MoveIt参数配置 118
6.2.3 ROS MoveIt机器人接口 119
6.2.4 ROS MoveIt运动规划实现 120
6.3 运动规划库 121
6.3.1 运动规划库概述 121
6.3.2 MoveIt运动规划
编程用例 122
6.3.3 规划接口定义 123
6.3.4 OMPL接口分析 124
6.4 RRT算法 125
6.4.1 基本RRT算法描述 125
6.4.2 RRT算法的性能分析 127
6.4.3 RRT算法的几种优化 128
6.4.4 CRRT算法 129
6.5 本章小结 130
第7章 基于ROS的智能机器人系统开发方法 131
7.1 ROS实时化 131
7.1.1 混合实时ROS体系结构RGMP-ROS 131
7.1.2 案例分析 133
7.1.3 结合OROCOS的实时性实现 135
7.2 遗产代码的ROS集成 136
7.2.1 ROSlink简介 136
7.2.2 ROSlink实现概述 137
7.2.3 ROSlink设计原理 138
7.3 机器人任务级编程 141
7.3.1 简介 142
7.3.2 功能可见性模板示例 142
7.3.3 实现架构 143
7.3.4 Rviz用户界面 144
7.4 本章小结 146
第8章 基于ROS的服务智能机器人设计 147
8.1 服务智能机器人的基本情况 147
8.1.1 服务智能机器人的现状及分类 147
8.1.2 服务智能机器人的关键技术 148
8.2 ROS导航功能包集介绍 149
8.2.1 概述 149
8.2.2 实现过程 151
8.3 基于ROS的服务智能机器人设计案例 153
8.3.1 先锋3DX机器人——利用ROS实现建图、定位和自主导航 153
8.3.2 基于ROS的足球机器人设计(以NAO机器人为例) 157
8.3.3 基于ROS的多机器人协作AAL体系架构 159
8.3.4 基于ROS的助老服务机器人设计 162
8.4 本章小结 167
第9章 基于ROS的工业智能机器人设计 168
9.1 工业智能机器人及其软件开发挑战 168
9.1.1 工业智能机器人 168
9.1.2 工业智能机器人软件开发挑战 168
9.2 ROS-Industrial 169
9.2.1 ROS-Industrial简介 169
9.2.2 ROS-Industrial项目 169
9.3 基于ROS-Industrial的工业智能机器人开发实例 177
9.3.1 基于ROS-Industrial的智能喷涂机器人设计 177
9.3.2 工业机械臂Descartes运动规划 179
9.3.3 特定工业机器人MotoPlus-ROS增量运动实现 181
9.4 本章小结 188
第10章 智能机器人软件平台及其未来发展 189
10.1 其他智能机器人软件平台 189
10.1.1 微软机器人软件平台 189
10.1.2 ABB智能机器人软件平台 190
10.1.3 服务机器人软件体系框架SAFSR 193
10.2 智能机器人软件未来的发展方向 194
10.2.1 多传感器信息融合 194
10.2.2 人机协作 195
10.2.3 人工智能深化应用 196
10.2.4 多机器人协作 197
10.3 云机器人软件平台 198
10.3.1 云机器人发展背景 198
10.3.2 云机器人系统结构与计算模型 199
10.3.3 Rapyuta机器人云平台 202
10.3.4 云机器人面临的挑战 206
参考文献 207