注册 登录 进入教材巡展
#

出版时间:2025-12

出版社:电子工业出版社

以下为《ROS 2智能机器人开发实践》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 电子工业出版社
  • 9787121491733
  • 1-6
  • 540868
  • 60266939-2
  • 平塑勒
  • 16开
  • 2025-12
  • 675
  • 492
  • 工学
  • 自动化类
  • 机器人工程
  • 本科 研究生及以上
内容简介
本书以ROS 2核心原理为主线,以机器人开发实践为重心,在详细讲解ROS 2核心概念、组件工具的基础上,介绍ROS 2构建仿真/实物机器人系统的方法,剖析ROS 2用于视觉识别、地图构建、自主导航等应用的方法,配有大量图表、源码等,帮助读者在实现ROS 2基础功能的同时,深入理解基于ROS 2的机器人开发方法,从而将书中的内容用于实践。本书采用最新稳定版本ROS 2系统和全新一代Gazebo机器人仿真平台,读者只需准备一台计算机,就可以快速上手学习。同时,本书介绍了实物机器人的搭建方法及相应功能的实现,书中源码都加入了中文注释,并针对核心内容提供C++和Python两个版本。为方便读者阅读和学习本书,笔者团队还专门创建了一个网页,供读者下载配套源码、查看操作指令、学习配套视频教程。
目录
第1部分 ROS 2 基础原理
1 ROS:智能机器人的灵魂 2
1.1 智能机器人时代 2
1.2 ROS 发展历程 3
1.2.1 ROS 的起源 3
1.2.2 ROS 的发展 4
1.2.3 ROS 的特点 6
1.3 ROS 2 与 ROS 1 7
1.3.1 ROS 1 的局限性 7
1.3.2 全新的 ROS 2 8
1.3.3 ROS 2 与 ROS 1 的对比 10
1.4 ROS 2 安装方法 13
1.4.1 Linux 是什么 14
1.4.2 Ubuntu 是什么 14
1.4.3 Ubuntu 操作系统安装 15
1.4.4 ROS 2 系统安装 18
1.5 ROS 2 命令行操作 20
1.5.1 Linux 中的命令行 21
1.5.2 海龟仿真实践 25
1.5.3 ROS 2 中的命令行 26
1.6 本章小结 31

2 ROS 2 核心原理:构建机器人的基石 32
2.1 ROS 2 机器人开发流程 32
2.2 工作空间:机器人开发的大本营 34
2.2.1 工作空间是什么 34
2.2.2 创建工作空间 35
2.2.3 编译工作空间 36
2.2.4 设置环境变量 37
2.3 功能包:机器人功能分类 37
2.3.1 功能包是什么 38
2.3.2 创建功能包 38
2.3.3 功能包的结构 39
2.3.4 编译功能包 44
2.4 节点:机器人的工作细胞 45
2.4.1 节点是什么 46
2.4.2 节点编程方法(Python) 47
2.4.3 节点编程方法(C++) 49
2.4.4 节点的命令行操作 51
2.4.5 节点应用示例:目标检测 52
2.5 话题:节点间传递数据的桥梁 54
2.5.1 话题是什么 55
2.5.2 话题通信模型 55
2.5.3 话题通信编程示例 57
2.5.4 话题发布者编程方法(Python) 58
2.5.5 话题订阅者编程方法(Python) 59
2.5.6 话题发布者编程方法(C++) 60
2.5.7 话题订阅者编程方法(C++) 62
2.5.8 话题的命令行操作 63
2.5.9 话题应用示例:目标检测(周期式) 64
2.6 服务:节点间的你问我答 68
2.6.1 服务是什么 68
2.6.2 服务通信模型 69
2.6.3 服务通信编程示例 70
2.6.4 客户端编程方法(Python) 71
2.6.5 服务端编程方法(Python) 72
2.6.6 客户端编程方法(C++) 73
2.6.7 服务端编程方法(C++) 75
2.6.8 服务的命令行操作 76
2.6.9 服务应用示例:目标检测(请求式) 77
2.7 通信接口:数据传递的标准结构 80
2.7.1 通信接口是什么 80
2.7.2 通信接口的定义方法 82
2.7.3 通信接口的命令行操作 85
2.7.4 服务接口应用示例:请求目标检测的坐标 86
2.7.5 话题接口应用示例:周期性发布目标检测的坐标 89
2.8 动作:完整行为的流程管理 93
2.8.1 动作是什么 93
2.8.2 动作通信模型 93
2.8.3 动作通信编程示例 95
2.8.4 动作接口的定义方法 96
2.8.5 服务端编程方法(Python) 97
2.8.6 客户端编程方法(Python) 99
2.8.7 客户端编程方法(C++) 101
2.8.8 服务端编程方法(C++) 104
2.8.9 动作的命令行操作 107
2.9 参数:机器人系统的全局字典 107
2.9.1 参数是什么 108
2.9.2 参数通信模型 108
2.9.3 参数的命令行操作 109
2.9.4 参数编程方法(Python) 111
2.9.5 参数编程方法(C++) 112
2.9.6 参数应用示例:设置目标检测的阈值 113
2.10 数据分发服务(DDS):机器人的神经网络 116
2.10.1 DDS 是什么 116
2.10.2 DDS 通信模型 118
2.10.3 质量服务策略 QoS 120
2.10.4 命令行中配置 DDS 的 QoS 123
2.10.5 DDS 编程示例 125
2.11 分布式通信 128
2.11.1 分布式通信是什么 128
2.11.2 SSH 远程网络连接 128
2.11.3 分布式数据传输 130
2.11.4 分布式网络分组 132
2.11.5 海龟分布式通信示例 133
2.12 本章小结 133

3 ROS 2 常用工具:让机器人开发更便捷 134
3.1 Launch:多节点启动与配置脚本 134
3.1.1 多节点启动方法 136
3.1.2 命令行参数配置 137
3.1.3 资源重映射 139
3.1.4 ROS 参数设置 141
3.1.5 Launch 启动文件嵌套包含 143
3.2 tf:机器人坐标系管理系统 144
3.2.1 机器人中的坐标系 145
3.2.2 tf 命令行操作 146
3.2.3 静态 tf 广播(Python) 149
3.2.4 静态 tf 广播(C++) 151
3.2.5 动态 tf 广播(Python) 153
3.2.6 动态 tf 广播(C++) 155
3.2.7 tf 监听(Python) 157
3.2.8 tf 监听(C++) 160
3.2.9 tf 综合应用示例:海龟跟随(Python) 163
3.2.10 tf 综合应用示例:海龟跟随(C++) 168
3.3 Gazebo:机器人三维物理仿真平台 172
3.3.1 Gazebo 介绍 172
3.3.2 机器人仿真示例 175
3.3.3 传感器仿真示例 177
3.4 RViz:数据可视化平台 178
3.4.1 RViz 介绍 178
3.4.2 数据可视化操作流程 181
3.4.3 应用示例一:tf 数据可视化 182
3.4.4 应用示例二:图像数据可视化 184
3.4.5 Gazebo 与 RViz 的关系 186
3.5 rosbag:数据记录与回放 186
3.5.1 记录数据 187
3.5.2 回放数据 188
3.6 rqt:模块化可视化工具箱 189
3.6.1 rqt 介绍 189
3.6.2 日志显示 190
3.6.3 图像显示 191
3.6.4 发布话题/服务数据 192
3.6.5 绘制数据曲线 193
3.6.6 数据包管理 193
3.6.7 节点可视化 194
3.7 ROS 2 开发环境配置 195
3.7.1 版本管理软件 git 195
3.7.2 集成开发环境 VSCode 196
3.8 本章小结 198

第 2 部分 ROS 2 机器人设计
4 ROS 2 机器人仿真:零成本玩转机器人 200
4.1 机器人的定义与组成 200
4.2 URDF 机器人建模 203
4.2.1 连杆的描述 204
4.2.2 关节的描述 206
4.2.3 完整机器人模型 208
4.3 创建机器人URDF模型 209
4.3.1 机器人模型功能包 209