目录
第1章ROS2概述与环境搭建1
1.1ROS2简介1
1.1.1ROS2的发展历程2
1.1.2ROS2的组成体系4
1.1.3ROS2的优势5
1.2ROS2的安装7
1.2.1安装ROS27
1.2.2测试ROS210
1.3ROS2的快速体验10
1.3.1案例简介10
1.3.2HelloWorld(C++)11
1.3.3HelloWorld(Python)13
1.3.4运行优化15
1.4ROS2集成开发环境的搭建16
1.4.1安装VSCode16
1.4.2安装终端19
1.4.3安装git20
1.5ROS2体系框架20
1.5.1ROS2文件系统21
1.5.2ROS2核心模块27
1.5.3ROS2技术支持30
1.5.4ROS2应用方向31
1.6本章小结32
第2章ROS2通信机制核心34
2.1通信机制简介34
2.2话题通信36
2.2.1话题通信案例需求及分析38
2.2.2话题通信之原生消息(C++)39
2.2.3话题通信之原生消息(Python)43
2.2.4话题通信自定义接口消息46
2.2.5话题通信之自定义消息(C++)47
2.2.6话题通信之自定义消息(Python)50
2.3服务通信53
2.3.1服务通信案例需求及分析54
2.3.2服务通信接口消息55
2.3.3服务通信(C++)56
2.3.4服务通信(Python)61
2.4动作通信64
2.4.1动作通信的案例需求及分析65
2.4.2动作通信接口消息66
2.4.3动作通信(C++)67
2.4.4动作通信(Python)73
2.5参数服务77
2.5.1参数服务案例需求及分析78
2.5.2参数数据类型79
2.5.3参数服务(C++)80
2.5.4参数服务(Python)85
2.6本章小结90
〖3〗ROS2编程理论与实践核心篇目录〖3〗第3章ROS2通信机制补充91
3.1分布式通信91
3.2工作空间覆盖93
3.3元功能包95
3.4节点重名96
3.4.1ros2 run设置节点名称97
3.4.2launch文件设置节点名称97
3.4.3编码设置节点名称99
3.5话题重名99
3.5.1ros2 run设置话题名称100
3.5.2launch文件设置话题名称101
3.5.3编码设置话题名称102
3.6时间相关API103
3.6.1Rate104
3.6.2Time105
3.6.3Duration106
3.6.4Time与Duration运算107
3.7通信机制工具109
3.7.1命令工具109
3.7.2rqt工具箱111
3.8通信机制实操113
3.8.1话题通信案例需求及分析113
3.8.2话题通信的实现114
3.8.3服务通信案例需求及分析117
3.8.4服务通信的实现118
3.8.5动作通信案例需求及分析124
3.8.6动作通信的实现125
3.8.7参数服务案例需求及分析133
3.8.8参数服务的实现134
3.9本章小结137
第4章ROS2工具之launch与rosbag2138
4.1启动文件launch简介138
4.2launch之Python实现144
4.2.1节点设置144
4.2.2Python实现执行指令147
4.2.3Python实现参数设置148
4.2.4Python实现文件包含149
4.2.5Python实现分组设置150
4.2.6添加事件151
4.3launch之XML、YAML实现152
4.3.1案例需求及分析152
4.3.2XML、YAML实现执行指令154
4.3.3XML、YAML实现参数设置155
4.3.4XML、YAML实现文件包含156
4.3.5XML、YAML实现分组设置156
4.4录制回放工具——rosbag2157
4.4.1rosbag2命令工具158
4.4.2rosbag2编程(C++)158
4.4.3rosbag2编程(Python)162
4.5本章小结165
第5章ROS2工具之坐标变换167
5.1坐标变换简介167
5.2坐标相关消息169
5.3坐标变换广播170
5.3.1坐标系广播案例及分析171
5.3.2静态广播器(命令)172
5.3.3静态广播器(C++)173
5.3.4静态广播器(Python)176
5.3.5动态广播器(C++)179
5.3.6动态广播器(Python)182
5.3.7坐标点发布案例及分析184
5.3.8坐标点发布(C++)185
5.3.9坐标点发布(Python)187
5.4坐标变换监听189
5.4.1坐标系变换案例需求及分析189
5.4.2坐标系变换(C++)191
5.4.3坐标系变换(Python)193
5.4.4坐标点变换(C++)196
5.4.5坐标点变换(Python)199
5.5坐标变换工具200
5.6坐标变换实操202
5.6.1乌龟跟随案例需求及分析202
5.6.2乌龟跟随的实现(C++)203
5.6.3乌龟跟随的实现(Python)212
5.6.4乌龟护航案例需求及分析218
5.6.5乌龟护航的实现(C++)219
5.6.6乌龟护航的实现(Python)221
5.7本章小结222
第6章ROS2工具之可视化223
6.1可视化简介223
6.2rviz2的基本使用224
6.2.1rviz2的安装224
6.2.2rviz2的启动224
6.2.3rviz2的界面布局224
6.2.4rviz2中的预定义插件225
6.2.5rviz2的插件示例226
6.3rviz2集成urdf的基本流程227
6.3.1rviz2集成urdf案例需求及分析227
6.3.2rviz2集成urdf案例的实现228
6.4urdf的使用语法231
6.4.1urdf语法01_robot231
6.4.2urdf语法02_link232
6.4.3urdf语法03_joint234
6.4.4urdf练习239
6.4.5urdf工具243
6.5urdf优化之xacro244
6.5.1xacro快速体验244
6.5.2xacro使用语法246
6.5.3xacro练习249
6.6本章小结253