自2010年开源机器人操作系统(ROS)发布第一个版本以来,截至本书成稿时已经发布了10个版本,ROS也已经成为机器人研发领域的通用性软件平台。ROS是建立在开源操作系统Ubuntu系统之上的开源机器人操作系统,其主要目标是为机器人研究和开发提供代码复用的支持。它提供了操作系统应有的服务,包括硬件抽象、底层设备控制、共用功能执行、进程间消息传递,以及包管理。ROS的官方网站也提供了各种支持文档,相关资源构成了一个强大的生态系统,使学习和使用ROS非常方便。本书通过介绍ROS并以实际机器人为平台,展示机器人主要功能模块涉及的相关理论和应用场景。
样章试读
目录
- 目录
前言
第1章 ROS简介 1
1.1 ROS的历史 1
1.2 ROS的安装 5
1.2.1 ROSFuerte Turtle的安装 5
1.2.2 ROSIndigo Igloo安装 6
第2章 ROS框架 8
2.1 ROS总体框架 8
2.1.1 文件系统级 8
2.1.2 计算图级 9
2.1.3 社区级 11
2.2 ROS功能包 11
2.3 ROS基本命令 15
2.3.1 ROS文件系统命令 15
2.3.2 ROS核心命令 18
第3章 仿真与可视化工具RViz与Gazebo 27
3.1 RViz 27
3.1.1 RViz的安装 27
3.1.2 RViz的使用 27
3.2 Gazebo 30
3.2.1 安装Gazebo 30
3.2.2 运行Gazebo 31
3.2.3 Gazebo的组成 31
3.2.4 URDF模型文件使用实例 33
3.2.5 SolidWorks导出URDF模型 47
第4章 语音识别及语音合成 55
4.1 语音识别原理简介 55
4.2 语音合成原理简介 56
4.3 应用实例 57
4.3.1 CMU Sphinx英文语音识别 57?
4.3.2 CMU Festival英文语音合成 67
4.3.3 家度机器人中文语音交互 71
第5章 视觉系统 82
5.1 OpenCV库 82
5.1.1 OpenCV库简介 82
5.1.2 OpenCV库与ROS的接口 83
5.2 PCL库 86
5.2.1 PCL库简介 86
5.2.2 PCL库与ROS的接口 87
5.3 体感相机在TurtleBot上的应用 89
5.3.1 体感相机简介 89
5.3.2 OpenCV人脸检测 92
5.3.3 PCL点云滤波 97
第6章 导航定位 101
6.1 同时定位与建图 101
6.1.1 SLAM问题的概率模型 101
6.1.2 SLAM问题的解 103
6.1.3 基于TurtleBot平台的SLAM实验 106
6.2 导航 113
6.2.1 导航简介 113
6.2.2 已知地图的导航实验 114
第7章 运动规划 119
7.1 背景与动机 119
7.2 MoveIt!介绍 120
7.2.1 MoveIt!结构 120
7.2.2 MoveIt!安装 121
7.2.3 MoveIt!运动规划 121
7.2.4 MoveIt!场景规划 122
7.2.5 MoveIt!运动学求解器 122
7.2.6 MoveIt!碰撞检测 122
7.3 创建MoveIt!功能包 123
7.4 使用RViz插件测试 MoveIt!功能包 132
7.4.1 MoveIt!的RViz插件 132
7.4.2 路径规划 134
7.5 使用命令行测试MoveIt!功能包 135?
7.6 使用MoveIt!API接口实现路径规划 138
第8章 MATLAB机器人工具箱 148
8.1 系统工具箱简介 148
8.2 连接到ROS网络 149
8.2.1 MATLAB中创建ROS主机 149
8.2.2 连接到现有的ROS主机 150
8.2.3 多种网络连接的情况 150
8.2.4 验证连接情况 151
8.3 MATLAB与Gazebo交互 152
8.3.1 安装MATLAB官方提供的虚拟机 152
8.3.2 MATLAB和ROS、Gazebo连接配置 153
8.3.3 MATLAB读取和修改Gazebo的参数和模型 155
8.3.4 添加、建立和删除Gazebo中的项目 159
8.4 MATLAB与TurtleBot交互 162
8.4.1 连接 TurtleBot 163
8.4.2 控制 TurtleBot 移动并获取相关信息 164
8.4.3 键盘控制 TurtleBot 166
8.4.4 VFH+避障算法 168
8.5 小结 172
参考文献 173