ROS 2 技术体系 · 工程实战

从通信到应用,构建机器人开发能力

OfferRealizeROS 2 机器人
项目实战

五个递进式项目,一条完整的工程实践路径。
从看见通信问题,到理解中间件底层,再到完成移动机器人业务,让每一步都有可追踪的证据与可落地的成果。

5

核心实战项目

ROS 2

统一技术体系

全链路

从问题到应用

白色差速移动机器人的概念渲染,搭配激光扫描轨迹与红色导航点OBSERVE. UNDERSTAND. BUILD.
ENGINEERED WITH
ROS 标志
ROS 2机器人应用体系
C++ 标志
C++17底层系统实现
Python 标志
Python协议客户端
DDSFast DDS / Cyclone DDS
Eclipse Zenoh 标志
ZenohRMW 与原生通信

不止会用 ROS 2,更理解它如何工作。

以实际问题为起点,在统一的 ROS 2 技术体系中逐步深入,最终把工程方法用于机器人业务。

ONE STACK. FIVE CONNECTED PROJECTS.

ROS 2 通信与回调可观测平台

项目目标 / PROJECT GOAL

搭建一套机器人通信与性能分析平台,通过应用埋点、ROS 2 原生统计和 tracing,记录消息发布、接收与回调执行过程,分析端到端延迟、回调耗时、消息年龄、序号缺口及 QoS 事件,并生成可视化报告。

ROS 2TracingTopic StatisticsQoS

工程原则序号缺口是观测现象,不等于已确认的队列丢弃。

MESSAGE LIFECYCLE
发布消息PUBLISH
接收消息RECEIVE
执行回调CALLBACK

关联时间记录 · 分析端到端延迟

消息年龄回调耗时序号缺口QoS 事件

观测结构示意 · 指标由实际采集数据计算

核心模块 CORE MODULES

01

多层数据采集

结合应用埋点、ROS 2 原生统计与 tracing,记录消息发布、接收和回调执行,形成可以关联的通信观测记录。

02

关键指标分析

分析端到端延迟、回调耗时、消息年龄、序号缺口及 QoS 事件,用可视化报告呈现通信与执行特征。

03

消息缺失分类

区分明确的队列丢弃、未完成消息和原因未知的消息缺失,不将序号缺口直接等同于某一层的丢包。

04

明确测量边界

辨识哪些通信阶段可以直接测量,哪些阶段缺少证据、需要进一步增加探针,避免超出数据支持范围的归因。

实验流程 EXPERIMENT FLOW

应用埋点统计与 tracing关联消息记录指标分析可视化报告
预期成果

消息与回调观测记录、关键指标可视化报告、消息缺失分类结果。

学习收获

学会用数据定位问题,理解可测量范围和证据边界,为后续性能诊断建立可靠基线。

ROS 2 性能问题诊断与优化实战

项目目标 / PROJECT GOAL

围绕机器人开发中的典型性能问题,提供“故障复现—数据采集—原因分析—代码修复—效果对比”的完整实验流程。覆盖慢回调阻塞、数据过载、队列积压、锁竞争、大数据复制、带宽压力、同步日志、时间戳与 TF 对齐、QoS 不兼容等场景,并结合 Executor、Callback Group 和组件通信开展优化。

ROS 2ExecutorCallback Group组件通信TF / QoS

工程原则优化不只是更快,还需要说明数据与资源付出了什么代价。

PERFORMANCE EXPERIMENT
01复现
02采集
03分析
04修复
05对比

用数据验证每一次修复

关注 实时性保障 数据完整性衡量 资源消耗

实验闭环示意 · 在相同条件下对比优化效果

核心模块 CORE MODULES

01

执行与并发瓶颈

复现慢回调阻塞与锁竞争,结合 Executor 和 Callback Group 分析调度、并发和共享资源对处理过程的影响。

02

数据路径与资源压力

覆盖数据过载、队列积压、大数据复制、带宽压力和同步日志,结合组件通信开展针对性优化。

03

时间与通信一致性

分析时间戳与 TF 对齐、QoS 不兼容问题,区分性能瓶颈与配置或数据一致性导致的异常。

04

有依据的效果对比

从故障复现到代码修复形成完整实验闭环,解释优化对实时性、数据完整性和资源消耗的影响,而非只看单一速度指标。

实验流程 EXPERIMENT FLOW

故障复现数据采集原因分析代码修复效果对比
预期成果

可复现的性能故障实验、修复代码、优化前后的数据对比与权衡说明。

学习收获

能够判断性能瓶颈,选择有针对性的优化方法,并解释实时性、数据完整性与资源消耗之间的权衡。

机器人通信中间件性能基准测试

项目目标 / PROJECT GOAL

搭建可复现的通信基准框架,对 TCP、Unix Socket、自研中间件,以及 ROS 2 下的 Fast DDS、Cyclone DDS、Zenoh RMW 和原生 Zenoh 进行分层测试与比较。通过预热、重复实验、载荷变化和原始样本记录,分析 RTT、尾延迟、超时与交付情况;在支持的适配器上开展持续负载、多订阅者和慢消费者实验。

TCP / Unix SocketFast DDSCyclone DDSZenoh RMW原生 Zenoh

工程原则先说明层级、配置与测试条件,再比较性能数字。

LAYERED BENCHMARK
传输基础TCP / Unix Socket
ROS 2 RMWFast DDS / Cyclone DDS / Zenoh RMW
自研与原生自研中间件 / 原生 Zenoh

层级分类示意 · 不表示性能排名或能力完全相同

核心模块 CORE MODULES

01

分层适配与比较

覆盖 TCP、Unix Socket、自研中间件、Fast DDS、Cyclone DDS、Zenoh RMW 与原生 Zenoh,保留各层语义与配置的区别。

02

可复现实验设计

通过预热、重复实验、载荷变化和原始样本记录减少偶然性,让测试条件与结果可以回溯。

03

延迟与交付分析

分析 RTT、尾延迟、超时和消息交付情况,同时关注低延迟与数据交付之间的关系。

04

负载与消费者实验

在支持的适配器上进行持续负载、多订阅者和慢消费者实验,理解适配能力与方案机制对结果的影响。

实验流程 EXPERIMENT FLOW

选择层级与配置预热重复与载荷变化记录原始样本分析延迟与交付
预期成果

分层通信基准框架、原始样本记录、测试配置与结果分析报告。

学习收获

理解不同通信方案的机制与适用条件,能够解释测试结果,避免把不同配置下的数字直接当作性能排名。

从零实现机器人通信中间件

项目目标 / PROJECT GOAL

使用 C++17 实现一套可运行的发布订阅通信系统,包括 Broker、客户端 SDK、命令行工具和 Python 协议客户端。围绕二进制协议、TCP 分帧、主题订阅、消息分发、有界队列、慢消费者处理、心跳、断线重连及自动重订阅逐步展开,并通过 ROS 2 网关连接业务节点。

C++17TCPBrokerPythonROS 2 网关

工程原则可靠性不是无限缓存:资源上限和丢弃策略必须清晰。

PUB / SUB ARCHITECTURE
Publisher发布端
Broker主题与分发
Subscriber订阅端
C++17 SDKPython 客户端命令行工具

自研通信系统 ↔ ROS 2 网关 ↔ 业务节点

系统结构示意 · 网关连接自研系统与 ROS 2 业务节点

核心模块 CORE MODULES

01

协议与传输实现

设计二进制协议并实现 TCP 分帧,建立发布订阅系统中消息编码、传输与解析的基础路径。

02

主题与消息分发

实现 Broker、主题订阅和消息分发,提供客户端 SDK、命令行工具与 Python 协议客户端。

03

有界资源与慢消费者

通过有界队列与慢消费者处理约束资源使用,理解通信可靠性、资源上限与消息丢弃策略之间的关系。

04

连接恢复与业务接入

实现心跳、断线重连和自动重订阅,通过 ROS 2 网关连接业务节点,形成可运行的跨系统通信链路。

实现流程 IMPLEMENTATION FLOW

二进制协议与分帧Broker 与订阅有界队列连接恢复ROS 2 网关
预期成果

可运行的 Broker、C++17 客户端 SDK、命令行工具、Python 协议客户端与 ROS 2 网关。

学习收获

能够追踪一条消息从发送到接收的完整代码路径,理解可靠性、资源上限与丢弃策略的关系。

ROS 2 移动机器人综合应用

项目目标 / PROJECT GOAL

以差速移动机器人为载体,完成从仿真到业务任务的应用开发:搭建机器人模型与 TF 坐标树,接入传感器和底盘控制,完成建图、定位、路径规划、导航避障及任务调度。项目将前四个项目的方法用于实际业务,最终实现定点导航、多点巡检、状态监控和异常恢复。

ROS 2差速机器人TF建图与定位导航与任务调度

工程原则把观测、诊断、通信测试与底层实现带回真实的机器人任务。

ROBOT MISSION MAP

巡检路径概念示意 · 非真实建图或导航实验结果

核心模块 CORE MODULES

01

模型与底层接入

搭建差速机器人模型与 TF 坐标树,接入传感器和底盘控制,打通仿真与应用开发的基础链路。

02

建图、定位与导航

完成建图、定位、路径规划和导航避障,理解各模块在 ROS 2 应用架构中的协作关系。

03

业务任务与恢复

开展任务调度,实现定点导航、多点巡检、状态监控和异常恢复,形成基础移动机器人业务。

04

工程方法综合应用

通过可观测平台定位导航卡顿,通过性能优化改善数据处理,通过通信测试选择合适配置,将前四个项目的方法用于实际业务。

实现流程 IMPLEMENTATION FLOW

模型与 TF传感器与控制建图与定位规划与避障任务调度与恢复
预期成果

差速移动机器人应用,包含定点导航、多点巡检、状态监控与异常恢复。

学习收获

理解 ROS 2 应用架构,能够独立开发和调试基础移动机器人业务,将观测、优化、通信测试与底层理解贯通起来。

技术栈全景

贯通观测、诊断、通信、底层实现与应用开发。五个项目不是孤立练习,而是一套相互支撑的机器人工程方法。

统一应用体系

ROS 2 · 业务节点 · 组件通信 · TF

可观测与诊断

应用埋点 · 原生统计 · Tracing · QoS 事件

执行与并发

Executor · Callback Group · 锁与队列

通信方案

TCP · Unix Socket · Fast DDS · Cyclone DDS · Zenoh

底层工程

C++17 · Broker · Python · 二进制协议 · ROS 2 网关

机器人业务

差速底盘 · 建图定位 · 规划避障 · 巡检恢复

工程实践,从证据开始。

从“看见问题”,走向“完成机器人应用”。

用可观测数据定位问题,用实验验证优化,用分层测试理解通信方案,
再通过底层实现和综合应用,把知识转化为可运行、可调试的机器人业务。

从第一个项目开始