图 16-3 · 实验工程全景:三个终端各管一段

本图回答的问题:录→查→放全流程里,每个终端各自扮演什么角色,数据从哪来到哪去?

终端 A · 现场源 终端 B / 新终端 · 观众 终端 C · 录放控制台 talker ros2 run demo_nodes_cpp listener 录制时旁听 · 回放时当观众 record / info / play 写入 · 体检 · 再生发布 /chatter 1Hz 订阅 record -a 分叉捕获全部活跃话题 ~/ros2_bags/exp16_full/ exp16_full_0.db3 · 消息本体(CDR 时间序列) metadata.yaml · 清单(13.55s / 54 条 / QoS) Ctrl+C 写入 play 读取 四步闭环(04 节按序执行) ① 录 record -a 15s ② 查 info 心算 1.03Hz ③ 断源后 play ④ -r 2.0 调速 回放前先停 talker/listener(ros2 node list 为空)——历史与现场不能混 ⚠ 第 3 步前必须 Ctrl+C 断掉终端 A/B,否则新旧消息混流
✅ 结论:A 造现场 · C 录放 · B 当观众,bag 目录是唯一交接物 ⚠️ 风险:不断源就回放 → 分不清哪条消息是真的 🔍 验证:04 节 1.4 录制 → 2 体检 → 3 断源回放
EXP-16 · rosbag2 数据录制与回放