
ROS 2机器人系统开发实践(视频教学版) 梁伟、李园奇、李海慧 清华大学出版社【行情 报价 价格 评测】-京东
目录
[前 言](#前 言)
[目 录](#目 录)
编辑推荐
(1)详解ROS 2机器人基础开发到综合应用的全流程,实战机器人建模与仿真、智能导航系统、视觉目标检测与追踪。
(2)涵盖ROS 2机器人系统开发的各个功能模块与应用领域,揭示ROS 2的强大功能与项目应用潜力。
(3)探讨ROS 2在实际开发场景中的应用技巧,帮助读者解决实际工作中遇到的各种复杂问题,以设计与实施更高效、更智能的机器人应用方案。
(4)通过真实开发场景的案例剖析与实践项目的引导,帮助读者将所学知识灵活运用到实际开发中,探索创新的机器人应用模式。
(5)配套示例源文件、PPT课件、教学视频、教纲、读者交流微信群。
内容简介
ROS 2作为新一代机器人操作系统框架,凭借其跨平台性、分布式通信、多语言支持等优势,成为机器人开发领域的主流技术,为机器人的应用开发、系统集成与优化提供了强大且便捷的工具平台。《ROS 2机器人系统开发实践:视频教学版》旨在为广大读者提供一本全面、系统且实用的ROS 2机器人系统开发参考书,帮助读者获取有价值的知识与技能提升。《ROS 2机器人系统开发实践:视频教学版》配套示例源码、PPT课件、同步教学视频。
《ROS 2机器人系统开发实践:视频教学版》共分8章,内容包括开始你的机器人之旅、ROS 2基础---节点、ROS 2的发布-订阅机制、服务参数---ROS 2交互机制、ROS 2常用开发组件、ROS 2机器人建模与仿真、智能导航系统开发---实现自主导航、ROS视觉目标检测与追踪综合应用。
《ROS 2机器人系统开发实践:视频教学版》既适合ROS 2机器人系统开发初学者、机器人系统开发人员、行业机器人应用开发工程师,也适合高等院校或高职高专学校机器人系统开发课程的学生。
前 言
在这个科技飞速发展的时代,智能机器人技术正以其高效、灵活和多元的特点,深刻地改变着工业生产、科研教育、物流配送等多个领域的发展格局。随着智能制造理念的不断深入推进,移动机器人、工业协作机器人等各类智能机器人的应用愈发广泛,从传统的工业生产、电子制造到新兴的科研教育、智能家居等行业,机器人都扮演着不可或缺的角色。而ROS 2作为新一代机器人操作系统框架,凭借其跨平台性、分布式通信、多语言支持等优势,成为机器人开发领域的主流技术,为机器人的应用开发、系统集成与优化提供了强大且便捷的工具平台。
技术背景
智能制造的浪潮促使制造业朝着数字化、智能化方向加速转型,机器人技术作为智能制造的核心支撑,其开发效率与技术水平直接决定了产业升级的速度与质量。在这样的大背景下,ROS 2机器人开发技术应运而生并迅速发展。而传统的学习与开发模式多依赖于零散的资料或者网络,这种方式不仅缺乏系统性,而且存在开发环境搭建烦琐、核心通信机制理解困难,以及跨Python、C++开发实操能力不足等问题,既耗时费力,又会影响开发者的学习效率,增加技术入门成本。
本书以Ubuntu 22.04系统为基础,以Visual Studio Code(缩写为VSCode)作为开发工具,讲解ROS 2节点开发、主题通信、服务交互等核心功能的快速实现,有效避免了开发者在学习与实践过程中进行反复调试所带来的诸多问题。同时,ROS 2的生态体系不断完善,涵盖Colcon构建工具、Gazebo仿真、RViz可视化等一系列配套工具,实现从机器人基础开发到综合应用的全流程覆盖,极大地提高了机器人开发与部署的效率和准确性,为开发者快速掌握核心技术、落地实际项目提供了坚实的技术支撑。
本书目的
本书旨在为广大读者提供一本全面、系统且实用的ROS 2机器人系统开发学习参考图书。无论是机器人技术领域的初学者,还是具有一定经验的专业工程师,都能从本书中获取有价值的知识与技能提升。
对于初涉机器人编程领域的读者,本书将从基础概念和实操入手,通过详细的步骤讲解和丰富的实例演示,帮助读者快速掌握ROS 2的安装部署、节点开发等核心基础技能,熟悉VSCode、Colcon等常用开发工具的使用方法,建立起对ROS 2机器人开发的初步认识与实践能力,为进一步深入学习和应用奠定坚实的基础。
本书深入探讨了ROS 2在实际开发场景中的应用技巧。例如,发布-订阅机制、服务与参数交互、TF坐标变换、机器人建模与仿真、自主导航、视觉目标检测与追踪等。有一定机器人编程基础的专业人士通过学习这些内容,能够进一步提升自己的技术水平,解决实际工作中遇到的各种复杂问题,实现更高效、更智能的机器人应用方案设计与实施。
此外,本书还注重培养读者的工程实践能力与创新思维。通过大量真实开发场景的案例剖析与实践项目的引导,鼓励读者将所学知识灵活运用到实际开发中,熟练掌握Python与C++双语言开发技巧,探索创新的机器人应用模式,为推动ROS 2技术在各行业的深度应用与发展贡献力量。
本书特点
- 内容全面深入
本书全面涵盖ROS 2机器人系统开发的各个功能模块与应用领域。从ROS 2生态介绍、开发环境部署,到节点开发、发布-订阅机制、服务与参数交互等核心内容,再到机器人建模与仿真、自主导航、视觉目标检测等综合应用,甚至包括Colcon构建、Git版本管理、Launch脚本编写等工程化开发必备技能,均进行了系统的分析与步骤化操作讲解,使读者能够全面了解ROS 2的强大功能与项目应用潜力。
- 实例丰富多样
书中融入了大量精心挑选的实际ROS 2开发项目的应用实例,这些实例具有很强的代表性与实用性。从基础的节点编写、主题通信实现,到复杂的SLAM建图、NAV2自主导航、OpenCV视觉集成,每个知识点都搭配对应的Python与C++双语言实现实例,涵盖Gazebo仿真、RViz可视化、ros2_control控制等实际开发中高频使用的功能模块。通过这些丰富多样的实例讲解,读者能够更好地理解ROS 2在不同机器人开发场景下的应用方法与技巧,提高解决实际问题的能力。
- 讲解细致入微
在内容讲解方面,本书采用了循序渐进、细致入微的方式。对于每一个知识点和操作步骤,均进行了详细的代码注释和描述,清晰梳理了从开发准备、步骤执行到结果验证的全流程,使读者能够清楚地了解操作的具体过程与效果。此外,对于一些容易出错或需要特别注意的地方,如环境变量配置、编译依赖安装、自定义消息接口开发等,书中还给出了相应的提示与解决方案,避免读者在学习与实践过程中走弯路。
- 注重实践应用
本书始终坚持理论与实践相结合,注重培养读者的实践应用能力。在每一章的内容讲解中,都穿插了相应的实践练习与案例分析,引导读者在学习理论知识的同时,及时进行实践操作与应用验证。本书的所有案例均基于Ubuntu 22.04与ROS 2 Humble版本进行开发,确保实操的可复现性,通过对项目开发的实践锻炼,读者能够真正将所学的ROS 2知识转化为实际应用能力,具备独立完成中小型ROS 2机器人项目开发与实施的能力。
本书配套资源
本书配套示例源码、PPT课件、同步教学视频,读者可扫描下面的二维码获取。
本书读者
- 机器人技术爱好者与ROS 2开发自学者。
- ROS 2机器人系统开发领域的工程师与技术人员。
- 智能制造、物流配送、服务机器人等行业的技术研发与系统集成人员。
- 工业机器人、协作机器人领域的调试与应用工程师。
- 从事机器人仿真、导航、机器视觉相关研究的科研人员。
- 高校机器人工程、自动化、计算机科学与技术、人工智能等相关专业的师生。
作者简介
梁伟,高级工程师、软件工程师,主要从事自动控制、电磁场仿真分析、PLC开发与应用、机器人系统开发等技术工作。重庆机电职业技术大学副教授、万达集团机器人自动化业务培训讲师,主编企业技术标准20余项、行业标准1项、团体标准2项。主持企业电力系统运行监控平台开发、大中型配电系统现场智能巡检机器人系统开发等项目。
李园奇,副教授,高级技师。全国机械行业教学指导委员会委员,重庆市职业院校教学创新团队主要成员,重庆市黄大年式教学团队成员。主持重庆市青年项目1项,主研教学科研项目7项,主编教材2部,参与开发市级精品在线课程2门,发表论文7篇,授权专利5项,指导学生获省部级以上奖项58项,其中国家级奖项16项,获优秀指导教师称号5次。
李海慧,高级工程师、副教授、工业机器人应用技术高级工程师,重庆市职业院校名师名匠工作室主要成员,先后担任电气设计师、高校自动化教师,主持重庆市青年项目1项,主研教学教改项目2项,主编教材5部,参与开发市级精品在线课程1门,发表论文5篇,授权专利10项,指导学生获省部级以上奖项18项。
作 者
2026年8月
目 录
目 录
第1章 开始你的机器人之旅 1
1.1 ROS生态介绍 1
1.1.1 ROS 2与机器人的关系 2
1.1.2 ROS 2系统概述及版本介绍 3
1.1.3 ROS 2开发工具介绍 5
1.2 ROS 2开发环境部署 10
1.2.1 在Ubuntu中安装ROS 2 11
1.2.2 在Ubuntu中安装VSCode 18
1.2.3 VSCode集成插件 21
1.2.4 VSCode运行ROS 2环境步骤 25
1.2.5 安装编译依赖项 26
1.2.6 创建工作空间和源码空间 30
1.2.7 启动VSCode并进行配置 31
1.2.8 测试编译环境 33
1.3 启动第一个机器人 37
1.3.1 启动图形模拟器 38
1.3.2 控制模拟器运行及分析 39
1.4 小结 41
第2章 ROS 2基础(节点) 42
2.1 ROS 2节点介绍及程序编写 42
2.1.1 ROS 2节点介绍 43
2.1.2 ROS 2节点实现(Python) 46
2.1.3 ROS 2节点实现(C++) 51
2.2 ROS 2功能包节点编写 56
2.2.1 Python实现功能包节点编写 56
2.2.2 C++实现功能包节点编写 62
2.3 组织管理ROS 2 Workspace 65
2.4 ROS 2构建工具---colcon 67
2.4.1 安装colcon 68
2.4.2 测试编译 69
2.4.3 colcon其他命令 69
2.5 小结 71
第3章 ROS 2的发布-订阅机制 72
3.1 主题通信的工作原理 72
3.2 Python实现主题交互 75
3.2.1 主题发布操作 75
3.2.2 如何订阅主题 81
3.3 主题通信模型 85
3.3.1 理论模型 85
3.3.2 C++基本操作 86
3.3.3 Python基本操作 88
3.3.4 自定义主题通信接口 89
3.3.5 C++实现接口调用 91
3.3.6 Python实现接口调用 96
3.4 小结 99
第4章 ROS 2交互机制(服务与参数) 100
4.1 服务通信 100
4.1.1 通信模型介绍 101
4.1.2 SRV功能自定义 102
4.1.3 C++调用自定义SRV 106
4.1.4 Python调用自定义.srv 111
4.2 参数服务器 117
4.2.1 参数服务器模型介绍 117
4.2.2 C++实现参数操作 119
4.2.3 Python实现参数操作 125
4.3 Python实现机器视觉识别 128
4.3.1 安装usb_cam包 128
4.3.2 启动USB摄像头 130
4.3.3 相机标定及使用 133
4.3.4 集成OpenCV功能 135
4.3.5 订阅相机发布节点信息 138
4.3.6 服务器端分析及实现 142
4.3.7 客户端分析及实现 147
4.4 Launch启动脚本 150
4.4.1 编写Launch脚本文件 150
4.4.2 ROS 2运行脚本 155
4.4.3 Launch脚本进阶 156
4.5 小结 159
第5章 ROS 2常用开发组件 160
5.1 TF坐标变换 160
5.1.1 坐标消息msg 161
5.1.2 静态坐标变换 162
5.1.3 动态坐标变换 166
5.1.4 多种坐标间的变换 170
5.1.5 坐标系关联关系 175
5.1.6 坐标变换示例 178
5.2 rqt可视化工具组件 188
5.3 RViz可视化工具 190
5.3.1 安装可视化工具 190
5.3.2 启动可视化工具 191
5.3.3 界面及预定义插件介绍 192
5.4 小结 196
第6章 ROS 2机器人建模与仿真 197
6.1 机器人系统建模与仿真介绍 197
6.1.1 常见机器人结构 198
6.1.2 机器人系统仿真 200
6.1.3 机器人系统仿真相关组件 201
6.2 RViz集成URDF组件 202
6.2.1 集成流程与操作 203
6.2.2 创建功能包和导入依赖包 203
6.2.3 使用URDF建模 205
6.2.4 Launch脚本编写 209
6.2.5 在RViz中显示创建的模型 211
6.2.6 RViz启动优化 215
6.3 URDF组件 216
6.3.1 URDF语法详解 217
6.3.2 URDF常用工具 228
6.3.3 练习 230
6.4 Xacro优化URDF 238
6.4.1 Xacro及使用详解 238
6.4.2 Xacro使用流程示例 240
6.4.3 Xacro优化实操 248
6.5 在URDF中使用Gazebo 259
6.5.1 安装并使用Gazebo 259
6.5.2 URDF集成Gazebo基本设置 261
6.5.3 Gazebo仿真环境搭建 263
6.5.4 在Gazebo中加载机器人 267
6.5.5 利用Gazebo扩展URDF 268
6.6 ros2_control使用介绍 274
6.6.1 ros2_control安装 274
6.6.2 使用Gazebo集成ros2_control 276
6.6.3 控制机器人 276
6.7 小结 279
第7章 智能导航系统开发案例 280
7.1 NAV2的导航功能结构及介绍 281
7.1.1 路径规划器 281
7.1.2 地图服务器 285
7.1.3 NAV2导航定位 287
7.1.4 运动控制器 289
7.1.5 导航行为树管理器 292
7.2 使用SLAM创建地图 295
7.2.1 SLAM创建地图的原理 295
7.2.2 SLAM Toolbox介绍 297
7.2.3 SLAM Toolbox启动 298
7.2.4 创建地图 302
7.2.5 地图保存 306
7.3 NAV2导航全流程实现 308
7.3.1 安装NAV2 308
7.3.2 NAV2参数设置 310
7.3.3 实现自主导航 316
7.3.4 运行自主导航 317
7.4 小结 321
第8章 视觉目标检测与追踪开发案例 322
8.1 视觉图像数据获取 322
8.1.1 ROS 2获取图像数据程序 322
8.1.2 仿真运行 328
8.2 OpenCV提取图像特征及目标定位 330
8.2.1 ROS 2提取颜色特征 330
8.2.2 目标定位程序实现 338
8.2.3 Gazebo仿真相机测试 343
8.3 基于ROS 2的视觉目标追踪 345
8.3.1 ROS 2视觉目标追踪配置 345
8.3.2 节点代码实现 349
8.3.3 运行测试 354
8.4 小结 358