-
名单暂未出来,请耐心等待!
本书以ROS2核心原理为主线,以机器人开发实践为重心,在详细讲解ROS2核心概念、组件工具的基础上,介绍ROS2构建仿真/实物机器人系统的方法,剖析ROS2用于视觉识别、地图构建、自主导航等应用的方法,配有大量图表、源码等,帮助读者在实现ROS2基础功能的同时,深入理解基于ROS2的机器人开发方法,从而将书中的内容用于实践。 本书采用最新稳定版本ROS2系统和全新一代Gazebo机器人仿真平台,读者只需准备一台计算机,就可以快速上手学习。同时,本书介绍了实物机器人的搭建方法及相应功能的实现,书中源码都加入了中文注释,并针对核心内容提供C++和Python两个版本。为方便读者阅读和学习本书,笔者团队还专门创建了一个网页,供读者下载配套源码、查看操作指令、学习配套视频教程。
如何申请
(1)往下滑到“产品资料”栏,可进一步了解书籍内容,章节设置;
(2)>>点击我要申请,认真填写申请理由、阅读分享计划等,即有机会免费获取书籍。本期活动有1个名额可使用测评券,先用先得。
活动日程
申请时间:12月31日至1月16日
遴选公布:1月20日前,公布全部入围名单
阅读时间:1月27日-3月31日
颁奖时间:活动结束后两周内
阅读要求
收到书籍后,请在EEWorld 测评中心版块 自拟标题发表阅读心得,活动期间内,进度为至少每15天提交一篇,直到完成自己的阅读分享计划,要求100%原创首发,抄袭会被封杀哦。心得可包含:书籍内容的评价、理解、尝试书中实验过程等;
活动评奖
评委将对阅读心得质量、章节打卡任务完成度、分享及时性三方面进行评分。综合分=70%阅读心得质量+10%阅读计划完成度+10%互动性+10%及时性
综合分 | 奖励 |
综合分>=90分 | 保留阅读书籍+20威望+20芯积分 |
综合分>=75分 | 保留阅读书籍+10威望+10芯积分 |
综合分<75分 | 寄回阅读书籍 |
作者简介
胡春旭,ROS机器人社区“古月居”创始人,D-Robotics开发者生态负责人。专注于机器人操作系统及人工智能相关技术的推广与应用,撰写了《ROS机器人开发实践》《移动机器人原理与应用(基于ROS操作系统)》等多本畅销技术书。主导了基于RDK机器人开发者套件的全新机器人开发范式的研发工作,任教于多所高校及机器人/人工智能教育平台。曾获2019 ROS全球十大影响力人物、ROS布道师等荣誉称号。
李乔龙,ROS机器人社区“古月居”负责人,负责古月居社区生态的推广、建设和产品研发。主导设计了古月居Origin系列机器人套件。曾负责全国大学生智能汽车竞赛地平线赛项策划与推广,学生时期获得过多项全国机器人国家级奖项。目前专注于机器人技术和人工智能技术的推广与应用。
本书共有 9 章,分为三部分。
第一部分(1~3 章)介绍 ROS2 基础原理:主要讲解 ROS2 的发展历程、核心原理和组件工具,提供大量的编程和使用示例,为读者全面展示 ROS2 的基础原理和功能。
第二部分(4~6 章)介绍 ROS2 机器人设计:主要讲解如何使用 ROS 2 设计一个仿真机器人和实物机器人,有条件的读者甚至可以根据书中内容自己做一个机器人。
第三部分(7~9 章)介绍 ROS 2 机器人应用:主要讲解使用 ROS 2 开发机器人视觉识别、地图构建和自主导航等众多应用的方法,让机器人不仅动得了,还能看懂和理解周围的环境,并且产生进一步的交互运动。本书特色和内容
本书汇聚了作者过去十几年的机器人开发经验,虽然将 ROS 作为贯穿全书的主线,但更重要的是告诉所有读者:ROS 既是开发机器人的软件平台,也是软件工具,在开发机器人时,不仅要会用这个工具,还要懂机器人开发的诸多原理。所以,本书不仅会详细讲解 ROS2 的基本概念,更会介绍如何将这些概念应用在机器人开发中,同时指导读者从零构建一个完整的机器人系统。
目录
第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
4.3.2 机器人模型可视化 209
4.3.3 机器人模型解析 213
4.4 XACRO机器人模型优化 217
4.4.1 XACRO文件常见语法 218
4.4.2 机器人模型优化 219
4.4.3 机器人模型可视化 223
4.5 完善机器人仿真模型 223
4.5.1 完善物理参数 224
4.5.2 添加控制器插件 225
4.6 Gazebo 机器人仿真 226
4.6.1 在Gazebo中加载机器人模型 226
4.6.2 机器人运动控制仿真 230
4.6.3 RGB相机仿真与可视化 232
4.6.4 RGBD相机仿真与可视化 236
4.6.5 激光雷达仿真与可视化 241
4.7 本章小结 244
5 ROS 2 机器人构建:从仿真到实物 245
5.1 机器人从仿真到实物 245
5.1.1 案例剖析 245
5.1.2 机器人设计 247
5.1.3 软件架构设计 248
5.1.4 计算机端开发环境配置 249
5.1.5 机器人仿真测试 251
5.2 驱动系统设计:让机器人动得了 251
5.2.1 电机驱动原理:从PWM到H桥 251
5.2.2 电机正反转控制编程 255
5.3 底盘运动控制:让机器人动得稳 261
5.3.1 电机编码器测速原理 261
5.3.2 编码器测速编程 262
5.3.3 电机闭环控制方法 266
5.3.4 电机闭环控制编程 272
5.4 运动学正逆解:让机器人动得准 275
5.4.1 机常见器人运动学模型 275
5.4.2 差速运动学原理 281
5.4.3 差速运动学逆解:计算两个轮子的转速 283
5.4.4 差速运动学正解:计算机器人整体的速度 284
5.5 运动控制器中还有什么 284
5.5.1 电源管理:一个输入多种输出 285
5.5.2 IMU:测量机器人的姿态变化 287
5.5.3 人机交互:底层状态清晰明了 291
5.6 机器人控制系统:从“肌肉”到“大脑” 292
5.6.1 控制系统的计算平台 293
5.6.2 控制系统的烧写与配置 293
5.7 本章小结 300
6 ROS 2 控制与感知:让机器人动得了、看得见 301
6.1 机器人通信协议开发 301
6.1.1 通信协议设计 302
6.1.2 通信协议示例解析 303
6.1.3 运动控制器端协议开发(下位机) 306
6.1.4 应用处理器端协议开发(上位机) 314
6.2 机器人 ROS 2 底盘驱动开发 318
6.2.1 机器人 ROS 2 底盘驱动 318
6.2.2 速度控制话题的订阅 321
6.2.3 里程计话题与 tf 的维护 324
6.2.4 机器人状态的动态监控 333
6.3 机器人运动编程与可视化 336
6.3.1 ROS 2 速度控制消息定义 337
6.3.2 运动编程与可视化 338
6.4 相机驱动与图像数据 339
6.4.1 常用相机类型 340
6.4.2 相机驱动与可视化 341
6.4.3 ROS 2 图像消息定义 343
6.4.4 三维相机驱动与可视化 346
6.4.5 ROS 2 点云消息定义 347
6.5 激光雷达驱动与可视化 348
6.5.1 常见激光雷达类型 348
6.5.2 ROS 2 雷达消息定义 349
6.5.3 激光雷达驱动与数据可视化 351
6.6 IMU 驱动与数据可视化 354
6.6.1 ROS 2 IMU 消息定义 354
6.6.2 IMU 驱动与可视化 354
6.7 本章小结 356
第 3 部分 ROS 2 机器人应用
7 ROS 2 视觉应用:让机器人看懂世界 358
7.1 机器视觉原理简介 358
7.2 ROS 2 相机标定 361
7.2.1 安装相机标定功能包 361
7.2.2 运行相机标定节点 362
7.2.3 相机标定流程 362
7.2.4 相机标定文件的使用 366
7.2.5 双目相机标定 370
7.3 OpenCV 图像处理 371
7.3.1 安装 OpenCV 371
7.3.2 在 ROS 2 中使用 OpenCV 371
7.4 视觉应用一:视觉巡线 374
7.4.1 基本原理与实现框架 374
7.4.2 机器人视觉巡线仿真 376
7.4.3 真实机器人视觉巡线 381
7.5 视觉应用二:二维码识别 382
7.5.1 二维码扫描库——Zbar 382
7.5.2 相机识别二维码 383
7.5.3 真实机器人相机识别二维码 387
7.5.4 真实机器人二维码跟随 388
7.6 机器学习应用一:深度学习视觉巡线 389
7.6.1 基本原理与实现框架 390
7.6.2 深度学习视觉巡线应用 390
7.6.3 数据采集与模型训练 392
7.6.4 模型效果评估测试 395
7.6.5 在机器人中部署模型 396
7.7 机器学习应用二:YOLO 目标检测 399
7.7.1 基本原理与实现框架 399
7.7.2 YOLO 目标检测部署 401
7.7.3 数据采集与模型训练 403
7.7.4 机器人目标检测与跟随 406
7.8 本章小结 407
8 ROS 2 地图构建:让机器人理解环境 408
8.1 SLAM 地图构建原理 408
8.1.1 SLAM 是什么 408
8.1.2 SLAM 基本原理 411
8.1.3 SLAM 后端优化 412
8.2 SLAM Toolbox 地图构建 414
8.2.1 算法原理介绍 415
8.2.2 安装与配置方法 415
8.2.3 仿真环境中的 SLAM Toolbox 地图构建 416
8.2.4 真实机器人 SLAM Toolbox 地图构建 418
8.3 Cartographer:二维地图构建 420
8.3.1 算法原理介绍 421
8.3.2 安装与配置方法 . 422
8.3.3 仿真环境中的 Cartographer 地图构建 423
8.3.4 真实机器人 Cartographer 地图构建 427
8.4 ORB:视觉地图构建 430
8.4.1 算法原理介绍 430
8.4.2 安装与配置方法 . 432
8.4.3 真实机器人 ORB 地图构建 434
8.5 RTAB:三维地图构建 435
8.5.1 算法原理介绍 436
8.5.2 安装与配置方法 436
8.5.3 仿真环境中的RTAB地图构建 438
8.5.4 真实机器人RTAB地图构建 441
8.6 本章小结 443
9 ROS 2 自主导航:让机器人运动自由 444
9.1 机器人自主导航原理 444
9.2 Nav2 自主导航框架 445
9.2.1 系统框架 445
9.2.2 全局导航 447
9.2.3 局部导航 448
9.2.4 定位功能 450
9.3 Nav2安装与体验 452
9.3.1 Nav2安装方法 452
9.3.2 Nav2案例体验 452
9.4 机器人自主导航仿真 455
9.4.1 Nav2参数配置 455
9.4.2 Launch启动文件配置 456
9.4.3 机器人自主导航仿真 458
9.5 机器人自主导航实践 461
9.5.1 导航地图配置 461
9.5.2 Nav2 参数与Launch启动文件配置 462
9.5.3 机器人自主导航实践 464
9.6 机器人自主导航编程 467
9.6.1 功能运行 467
9.6.2 编程方法(C++) 468
9.6.3 编程方法(Python) 469
9.7 机器人自主探索应用 470
9.7.1 Nav2+SLAM Toolbox 自主探索应用 470
9.7.2 Nav2+Cartographer 自主探索应用 473
9.8 本章小结 476
名单暂未出来,请耐心等待!
名称 | 作者 | 时间 |
赞助厂商
电子工业出版社成立于1982年10月,工业和信息化部直属的科技与教育出版社,享有“全国优秀出版社”、“讲信誉、重服务”的优秀出版社、“全国版权贸易先进单位”、首届中国出版政府奖“先进出版单位”、“全国百佳图书出版单位”、“中央国家机关文明单位”和“首都文明单位”等荣誉称号。
电子工业出版社始终秉承“为客户提供一流的知识产品及服务”的宗旨和“出精品、育品牌”的理念。形成了以图书、期刊、音像和电子出版为基本业务,以数字出版和信息内容服务、软件研发和信息化服务、教育培训与相关服务、产业促进与行业支撑服务等为增值业务的现代出版与知识服务业务结构。出版物内容涵盖了信息通信技术的各个分支以及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。
最新测评
热门测评心得
联系我们
微信号:helloeeworld
关注我们
电子工程世界 电子工程世界福利社