书籍详情
ROS机器人开发技术基础
作者:蒋畅江、罗云翔、张宇航 等 编著
出版社:化学工业出版社
出版时间:2022-04-01
ISBN:9787122405203
定价:¥68.00
购买这本书可以去
内容简介
本书是内容全面、偏重基础的ROS 机器人开发入门书籍,是作者总结多年科研教学成果并在吸收国内外理论、方法和技术的基础上完成的。本书详细介绍了ROS 机器人基础和ROS 常用开发工具,详细讲解了ROS系统架构、ROS 客户端库和机器人建模与仿真;以工程开发为重心,详细讲解机器视觉、机器语音、SLAM 和导航等多方面ROS 应用的实现原理和方法。本书结合大量实例,帮助读者在实现ROS 基础功能的同时深入理解基于ROS 的机器人开发技术,将书中的内容用于实践。本书注重运用CDIO 工程教育理念,立足培养实际动手能力、综合应用能力、创新思维能力。本书配有免费教学软件包,帮助读者更好理解和实践书中内容;配有免费电子课件,欢迎选用本书作教材的师生下载使用。本书可作为普通高等院校机器人工程、自动化、人工智能、电子信息工程、软件工程等相关专业的教材,也可供广大科技工作者和工程技术人员参考使用。
作者简介
暂缺《ROS机器人开发技术基础》作者简介
目录
第1 章 ROS 机器人基础
1.1 机器人时代与ROS 的诞生 001
1.2 初识ROS 002
1.3 ROS 的安装及测试 003
1.3.1 选择操作系统与ROS 版本 003
1.3.2 ROS 的安装步骤 004
1.3.3 测试ROS 007
1.4 安装教学包 008
1.5 二进制包与源代码包 010
1.6 本章小结 010
习题一 011
第2 章 ROS 系统架构
2.1 ROS 文件系统 012
2.1.1 catkin 工作空间 012
2.1.2 catkin 编译系统 013
2.1.3 package 功能包 015
2.1.4 CMakeLists.txt 文件 017
2.1.5 package.xml 文件 019
2.1.6 其他常见文件类型 022
2.1.7 Metapackage 元功能包 023
2.2 ROS 通信架构 024
2.2.1 Node 与Node Master 024
2.2.2 launch 启动文件 026
2.2.3 话题 028
2.2.4 服务 032
2.2.5 参数服务器 035
2.2.6 动作库 037
2.3 本章小结 039
习题二 039
第3 章 ROS 常用组件和开发工具
3.1 Gazebo 仿真工具 041
3.1.1 认识Gazebo 041
3.1.2 操作演示 042
3.2 Rviz 可视化平台 044
3.2.1 认识Rviz 044
3.2.2 操作演示 044
3.3 rqt 可视化工具 046
3.3.1 认识rqt 046
3.3.2 操作演示 046
3.4 rosbag 功能包 048
3.4.1 认识rosbag 048
3.4.2 操作演示 049
3.5 RoboWare Studio 集成开发环境 051
3.5.1 安装RoboWare Studio 051
3.5.2 操作演示 052
3.6 代码管理Git 058
3.6.1 认识Git 058
3.6.2 操作演示 058
3.7 本章小结 060
习题三 060
第4 章 ROS 客户端库
4.1 Client Library 简介 061
4.2 roscpp 062
4.2.1 节点 063
4.2.2 topic 065
4.2.3 service 068
4.2.4 param 070
4.2.5 时钟 073
4.2.6 日志和异常 075
4.3 rospy 075
4.3.1 rospy 与roscpp 的比较 075
4.3.2 rospy 结构 076
4.3.3 rospy API 076
4.3.4 topic 078
4.3.5 service 080
4.3.6 param 与Time 082
4.4 本章小结 084
习题四 084
第5 章 坐标变换TF 及编程
5.1 认识TF 086
5.1.1 简介 086
5.1.2 ROS 中的TF 086
5.1.3 ROS 中TF 坐标的基本规则 088
5.2 TF 原理和TF 消息 090
5.2.1 TF 基本原理 090
5.2.2 TF 数据类型 092
5.2.3 TF 特点 093
5.2.4 TF 消息 093
5.3 TF 编程基础 095
5.3.1 TF 功能包及官方实例 095
5.3.2 TF 编程基础 096
5.4 TF in C 097
5.4.1 简介 097
5.4.2 数据类型 097
5.4.3 数据转换 097
5.4.4 TF 类 100
5.5 TF in Python 101
5.5.1 简介 101
5.5.2 数据类型 101
5.5.3 TF 库 101
5.5.4 TF 类 102
5.6 TF 相关工具命令 103
5.7 本章小结 104
习题五 104
第6 章 机器人建模与仿真
6.1 机器人URDF 模型 105
6.2 创建与显示URDF 模型 108
6.2.1 机器人描述功能包 108
6.2.2 创建URDF 模型 108
6.2.3 解析URDF 模型 109
6.2.4 在Rviz 中显示模型 111
6.2.5 让机器人动起来 112
6.3 添加碰撞和物理属性 114
6.4 xacro 文件简化URDF 模型 115
6.5 添加传感器模型 118
6.5.1 添加摄像头 118
6.5.2 添加Kinect 120
6.5.3 添加激光雷达 121
6.6 ArbotiX Rviz 机器人运动仿真 121
6.6.1 安装ArbotiX 122
6.6.2 配置ArbotiX 控制器 122
6.6.3 运行仿真环境 123
6.7 ros_control 125
6.7.1 ros_control 框架 125
6.7.2 ros_control 安装 127
6.7.3 控制器 127
6.7.4 硬件接口 127
6.7.5 传动装置 128
6.7.6 关节约束 129
6.7.7 控制器管理器 130
6.8 机器人Gazebo 仿真 131
6.8.1 在Gazebo 中显示机器人模型 131
6.8.2 Gazebo 插件 132
6.8.3 Gazebo 传动装置 134
6.8.4 摄像头仿真 136
6.8.5 Kinect 仿真 139
6.8.6 激光雷达仿真 140
6.9 本章小结 143
习题六 143
第7 章 机器视觉开发技术
7.1 ROS 图像数据 145
7.1.1 二维图像数据 145
7.1.2 三维点云和深度图像 147
7.1.3 查看点云图像 149
7.1.4 ROS-PCL 开发接口 151
7.2 摄像头标定 152
7.2.1 camera_calibration 功能包 153
7.2.2 启动标定程序 153
7.2.3 标定摄像头 153
7.2.4 Kinect 相机的标定 155
7.2.5 加载标定参数的配置文件 155
7.2.6 校正图像 156
7.3 OpenCV 库和人脸识别 157
7.3.1 安装OpenCV 库 157
7.3.2 使用OpenCV 库 157
7.3.3 使用OpenCV 实现人脸识别 162
7.4 二维码识别 167
7.4.1 ar_track_alvar 功能包 167
7.4.2 创建二维码 168
7.4.3 摄像头识别二维码 169
7.4.4 物体姿态估计与AR 标记检测 171
7.5 物体检测 174
7.5.1 find_object_2d 功能包 174
7.5.2 物体检测实例 175
7.5.3 话题和参数 178
7.6 本章小结 178
习题七 179
第8 章 机器语音开发技术
8.1 语音识别 180
8.1.1 PocketSphinx 功能包 180
8.1.2 PocketSphinx 功能包测试 182
8.1.3 添加语音库 183
8.1.4 创建PocketSphinx 的launch 文件 185
8.2 语音播放 185
8.2.1 播放指定文件 185
8.2.2 将输入的文字转化为语音 186
8.3 通过语音控制机器人 186
8.3.1 语音控制小海龟 186
8.3.2 XBot 对话和语音控制 187
8.3.3 自定义对话内容 188
8.3.4 监控talker 功能包的运行状态 189
8.4 在ROS 上使用科大讯飞 190
8.4.1 下载科大讯飞SDK 190
8.4.2 SDK 包测试 191
8.4.3 ROS 结合科大讯飞进行语音听写 193
8.5 智能语音对话 195
8.5.1 tts 语音合成实现对话 195
8.5.2 通过图灵进行语义理解 202
8.5.3 与机器人对话 206
8.6 本章小结 208
习题八 208
第9 章 机器人SLAM 与自主导航开发技术
9.1 理论基础 210
9.1.1 传感器 210
9.1.2 地图 213
9.2 Gmapping 算法 215
9.2.1 Gmapping 功能包 215
9.2.2 Gmapping 计算图 218
9.2.3 话题和服务 219
9.2.4 参数 220
9.2.5 里程计误差及修正 221
9.3 Hector 算法 221
9.3.1 Hector 功能包 221
9.3.2 Hector 计算图 223
9.3.3 话题和服务 224
9.3.4 参数 224
9.4 Cartographer 算法 225
9.4.1 Cartographer 功能包 225
9.4.2 Cartographer 总体框架 226
9.4.3 Cartographer 测试 226
9.4.4 Cartographer 节点的配置与运行 228
9.5 自主导航 231
9.5.1 导航功能包 231
9.5.2 工作框架 232
9.5.3 move_base 233
9.5.4 move_base 的service 234
9.5.5 导航案例 234
9.6 costmap 和map_server 237
9.6.1 代价地图 238
9.6.2 地图插件的选择 238
9.6.3 map_server 239
9.7 AMCL 定位算法 240
9.7.1 AMCL 计算图 240
9.7.2 话题和服务 241
9.7.3 参数 242
9.7.4 AMCL 测试 243
9.8 本章小结 245
习题九 245
第10 章 ROS 机器人开发实例
10.1 TurtleBot 246
10.1.1 TurtleBot 的配置与使用 247
10.1.2 Gazebo 中的TurtleBot3 249
10.1.3 使用TurtleBot 实现导航功能 249
10.2 XBot-U 251
10.2.1 XBot-U 特点 251
10.2.2 初步上手XBot-U 机器人 252
10.2.3 智能交互 254
10.2.4 自主导航 254
10.2.5 XBot 仿真与教学 255
10.3 Unitree A1 257
10.3.1 Unitree A1 的功能与结构 257
10.3.2 Unitree A1 关节电机的配置 258
10.3.3 让Unitree A1 机器人站起来 260
10.4 本章小结 263
参考文献
1.1 机器人时代与ROS 的诞生 001
1.2 初识ROS 002
1.3 ROS 的安装及测试 003
1.3.1 选择操作系统与ROS 版本 003
1.3.2 ROS 的安装步骤 004
1.3.3 测试ROS 007
1.4 安装教学包 008
1.5 二进制包与源代码包 010
1.6 本章小结 010
习题一 011
第2 章 ROS 系统架构
2.1 ROS 文件系统 012
2.1.1 catkin 工作空间 012
2.1.2 catkin 编译系统 013
2.1.3 package 功能包 015
2.1.4 CMakeLists.txt 文件 017
2.1.5 package.xml 文件 019
2.1.6 其他常见文件类型 022
2.1.7 Metapackage 元功能包 023
2.2 ROS 通信架构 024
2.2.1 Node 与Node Master 024
2.2.2 launch 启动文件 026
2.2.3 话题 028
2.2.4 服务 032
2.2.5 参数服务器 035
2.2.6 动作库 037
2.3 本章小结 039
习题二 039
第3 章 ROS 常用组件和开发工具
3.1 Gazebo 仿真工具 041
3.1.1 认识Gazebo 041
3.1.2 操作演示 042
3.2 Rviz 可视化平台 044
3.2.1 认识Rviz 044
3.2.2 操作演示 044
3.3 rqt 可视化工具 046
3.3.1 认识rqt 046
3.3.2 操作演示 046
3.4 rosbag 功能包 048
3.4.1 认识rosbag 048
3.4.2 操作演示 049
3.5 RoboWare Studio 集成开发环境 051
3.5.1 安装RoboWare Studio 051
3.5.2 操作演示 052
3.6 代码管理Git 058
3.6.1 认识Git 058
3.6.2 操作演示 058
3.7 本章小结 060
习题三 060
第4 章 ROS 客户端库
4.1 Client Library 简介 061
4.2 roscpp 062
4.2.1 节点 063
4.2.2 topic 065
4.2.3 service 068
4.2.4 param 070
4.2.5 时钟 073
4.2.6 日志和异常 075
4.3 rospy 075
4.3.1 rospy 与roscpp 的比较 075
4.3.2 rospy 结构 076
4.3.3 rospy API 076
4.3.4 topic 078
4.3.5 service 080
4.3.6 param 与Time 082
4.4 本章小结 084
习题四 084
第5 章 坐标变换TF 及编程
5.1 认识TF 086
5.1.1 简介 086
5.1.2 ROS 中的TF 086
5.1.3 ROS 中TF 坐标的基本规则 088
5.2 TF 原理和TF 消息 090
5.2.1 TF 基本原理 090
5.2.2 TF 数据类型 092
5.2.3 TF 特点 093
5.2.4 TF 消息 093
5.3 TF 编程基础 095
5.3.1 TF 功能包及官方实例 095
5.3.2 TF 编程基础 096
5.4 TF in C 097
5.4.1 简介 097
5.4.2 数据类型 097
5.4.3 数据转换 097
5.4.4 TF 类 100
5.5 TF in Python 101
5.5.1 简介 101
5.5.2 数据类型 101
5.5.3 TF 库 101
5.5.4 TF 类 102
5.6 TF 相关工具命令 103
5.7 本章小结 104
习题五 104
第6 章 机器人建模与仿真
6.1 机器人URDF 模型 105
6.2 创建与显示URDF 模型 108
6.2.1 机器人描述功能包 108
6.2.2 创建URDF 模型 108
6.2.3 解析URDF 模型 109
6.2.4 在Rviz 中显示模型 111
6.2.5 让机器人动起来 112
6.3 添加碰撞和物理属性 114
6.4 xacro 文件简化URDF 模型 115
6.5 添加传感器模型 118
6.5.1 添加摄像头 118
6.5.2 添加Kinect 120
6.5.3 添加激光雷达 121
6.6 ArbotiX Rviz 机器人运动仿真 121
6.6.1 安装ArbotiX 122
6.6.2 配置ArbotiX 控制器 122
6.6.3 运行仿真环境 123
6.7 ros_control 125
6.7.1 ros_control 框架 125
6.7.2 ros_control 安装 127
6.7.3 控制器 127
6.7.4 硬件接口 127
6.7.5 传动装置 128
6.7.6 关节约束 129
6.7.7 控制器管理器 130
6.8 机器人Gazebo 仿真 131
6.8.1 在Gazebo 中显示机器人模型 131
6.8.2 Gazebo 插件 132
6.8.3 Gazebo 传动装置 134
6.8.4 摄像头仿真 136
6.8.5 Kinect 仿真 139
6.8.6 激光雷达仿真 140
6.9 本章小结 143
习题六 143
第7 章 机器视觉开发技术
7.1 ROS 图像数据 145
7.1.1 二维图像数据 145
7.1.2 三维点云和深度图像 147
7.1.3 查看点云图像 149
7.1.4 ROS-PCL 开发接口 151
7.2 摄像头标定 152
7.2.1 camera_calibration 功能包 153
7.2.2 启动标定程序 153
7.2.3 标定摄像头 153
7.2.4 Kinect 相机的标定 155
7.2.5 加载标定参数的配置文件 155
7.2.6 校正图像 156
7.3 OpenCV 库和人脸识别 157
7.3.1 安装OpenCV 库 157
7.3.2 使用OpenCV 库 157
7.3.3 使用OpenCV 实现人脸识别 162
7.4 二维码识别 167
7.4.1 ar_track_alvar 功能包 167
7.4.2 创建二维码 168
7.4.3 摄像头识别二维码 169
7.4.4 物体姿态估计与AR 标记检测 171
7.5 物体检测 174
7.5.1 find_object_2d 功能包 174
7.5.2 物体检测实例 175
7.5.3 话题和参数 178
7.6 本章小结 178
习题七 179
第8 章 机器语音开发技术
8.1 语音识别 180
8.1.1 PocketSphinx 功能包 180
8.1.2 PocketSphinx 功能包测试 182
8.1.3 添加语音库 183
8.1.4 创建PocketSphinx 的launch 文件 185
8.2 语音播放 185
8.2.1 播放指定文件 185
8.2.2 将输入的文字转化为语音 186
8.3 通过语音控制机器人 186
8.3.1 语音控制小海龟 186
8.3.2 XBot 对话和语音控制 187
8.3.3 自定义对话内容 188
8.3.4 监控talker 功能包的运行状态 189
8.4 在ROS 上使用科大讯飞 190
8.4.1 下载科大讯飞SDK 190
8.4.2 SDK 包测试 191
8.4.3 ROS 结合科大讯飞进行语音听写 193
8.5 智能语音对话 195
8.5.1 tts 语音合成实现对话 195
8.5.2 通过图灵进行语义理解 202
8.5.3 与机器人对话 206
8.6 本章小结 208
习题八 208
第9 章 机器人SLAM 与自主导航开发技术
9.1 理论基础 210
9.1.1 传感器 210
9.1.2 地图 213
9.2 Gmapping 算法 215
9.2.1 Gmapping 功能包 215
9.2.2 Gmapping 计算图 218
9.2.3 话题和服务 219
9.2.4 参数 220
9.2.5 里程计误差及修正 221
9.3 Hector 算法 221
9.3.1 Hector 功能包 221
9.3.2 Hector 计算图 223
9.3.3 话题和服务 224
9.3.4 参数 224
9.4 Cartographer 算法 225
9.4.1 Cartographer 功能包 225
9.4.2 Cartographer 总体框架 226
9.4.3 Cartographer 测试 226
9.4.4 Cartographer 节点的配置与运行 228
9.5 自主导航 231
9.5.1 导航功能包 231
9.5.2 工作框架 232
9.5.3 move_base 233
9.5.4 move_base 的service 234
9.5.5 导航案例 234
9.6 costmap 和map_server 237
9.6.1 代价地图 238
9.6.2 地图插件的选择 238
9.6.3 map_server 239
9.7 AMCL 定位算法 240
9.7.1 AMCL 计算图 240
9.7.2 话题和服务 241
9.7.3 参数 242
9.7.4 AMCL 测试 243
9.8 本章小结 245
习题九 245
第10 章 ROS 机器人开发实例
10.1 TurtleBot 246
10.1.1 TurtleBot 的配置与使用 247
10.1.2 Gazebo 中的TurtleBot3 249
10.1.3 使用TurtleBot 实现导航功能 249
10.2 XBot-U 251
10.2.1 XBot-U 特点 251
10.2.2 初步上手XBot-U 机器人 252
10.2.3 智能交互 254
10.2.4 自主导航 254
10.2.5 XBot 仿真与教学 255
10.3 Unitree A1 257
10.3.1 Unitree A1 的功能与结构 257
10.3.2 Unitree A1 关节电机的配置 258
10.3.3 让Unitree A1 机器人站起来 260
10.4 本章小结 263
参考文献
猜您喜欢