fix: use complete vendor message overlay for rosbag

This commit is contained in:
LengedZhao
2026-08-10 16:01:28 +08:00
parent 5851c26d43
commit 4ba0f63758
3 changed files with 15 additions and 3 deletions

View File

@@ -1052,8 +1052,11 @@ systemctl --user enable --now tg3-data-recorder.service
systemctl --user restart tg3-local-teleop.service
```
录制脚本必须能依次加载 `/opt/ros/jazzy`、`/home/nvidia/xos`、
`/opt/robot_tele_server/install` 和本项目 `ros2_py/install`;否则自定义消息可能无法解码。
录制脚本必须依次加载 `/opt/ros/jazzy`、`/home/nvidia/xos` 和
`/opt/robot_tele_server/install`,但**不能**再加载本项目 `ros2_py/install`。后者是桥接
Python 进程专用的最小 `ArmStatus` 绑定,会遮蔽厂家完整 `ros2_bridge_msgs` C++ 库,导致
rosbag 加载 `RobotState/ArmCtrl` 时出现 undefined symbol。`run.sh` 仍需项目 overlay;
`run_data_recorder.sh` 只用厂家完整消息 overlay。
还需 Python 3 的 PyYAML(Ubuntu 包 `python3-yaml`)解析 rosbag metadata。
迁移时在 `config.toml [data_collection]` 核对 `base_directory`、20 GiB 余量、30 分钟上限、
明确 topic 白名单和 required topics。不要改成 `ros2 bag record -a`,相机/点云需另行估算