feat: keep RGB-D captures only on workstation
This commit is contained in:
@@ -1031,6 +1031,7 @@ tg3_local_teleop.py
|
||||
data_collection.py
|
||||
data_recorder_protocol.py
|
||||
data_recorder_node.py
|
||||
delete_ready_episode.py
|
||||
config.toml
|
||||
run.sh
|
||||
run_data_recorder.sh
|
||||
@@ -1061,11 +1062,13 @@ rosbag 加载 `RobotState/ArmCtrl` 时出现 undefined symbol。`run.sh` 仍需
|
||||
迁移时在 `config.toml [data_collection]` 核对 `base_directory`、100 GiB 余量、30 分钟
|
||||
上限、明确 topic 白名单和 required topics。不要改成 `ros2 bag record -a`,点云需另行
|
||||
估算带宽和磁盘后再加入。当前白名单已经包含头/腰 Orbbec 的 JPEG RGB、无损 PNG 深度、
|
||||
CameraInfo、Metadata 和 `/tf_static`;腰部 RGB-D/Metadata/静态 TF 为 required,两路
|
||||
图像收尾时还要求各自平均频率至少 `20 Hz`。头部未启动时是 optional,以后启动
|
||||
`orbbec_head.service` 即可由正在录制的 rosbag 自动发现。
|
||||
CameraInfo、Metadata 和 `/tf_static`。头、腰相机都是 optional:服务已启动时 rosbag 自动
|
||||
发现并采集;未启动时不影响核心 episode 开始或进入 READY。收尾后 manifest 会分别把
|
||||
两台相机标成 `absent`、`healthy`、`partial` 或 `low_rate`,后两种附带质量警告但不阻塞
|
||||
核心数据保存。
|
||||
|
||||
新机器人先确认相机服务和发布者。相机必须在按 L3 开始 episode 之前启动:
|
||||
需要采集某台相机的完整 episode 时,先确认相机服务和发布者;不需要相机时可保持服务
|
||||
停止,L3 数采仍可正常启动:
|
||||
|
||||
```bash
|
||||
systemctl is-active orbbec_waist.service orbbec_head.service
|
||||
@@ -1077,7 +1080,8 @@ ros2 topic info /ob_camera_waist/color/image_raw/compressed
|
||||
ros2 topic info /ob_camera_waist/depth/image_raw/compressedDepth
|
||||
```
|
||||
|
||||
两条腰部话题都必须显示 `Publisher count: 1`。原始 1280x720 RGB+深度约
|
||||
希望采集腰部图像时,两条腰部话题应显示 `Publisher count: 1`;头部同理。原始
|
||||
1280x720 RGB+深度约
|
||||
`8.3 GB/min/相机`,所以默认不重复录 raw,而是录标准 image_transport 压缩流;现场
|
||||
单相机约 `1.3–1.5 GB/min`,实际随画面变化。头部和腰部都运行时应按约两倍预留空间与
|
||||
同步时间。`minimum_free_gib=100` 是停止下限,不是整条 episode 的容量预算;双相机
|
||||
@@ -1113,12 +1117,17 @@ systemctl --user restart tg3-data-get-sync.service
|
||||
2. 左摇杆按下(L3)连续 1 秒开始数采;该键是 `button_joystick.left`,不是 X/Y/Z;
|
||||
3. 松开 L3 至少 0.5 秒,再长按 1 秒结束;或正常 Z+C 结束遥操自动收尾;
|
||||
4. 查看 Nvidia `/tg3/data_collection/status`,必须先到 `ready`,不能从 `active/` 取数据;
|
||||
recorder 会同时要求 required topics 有实时发布者且最终消息计数大于零;
|
||||
recorder 会要求核心 required topics 有实时发布者且最终消息计数大于零;相机质量看
|
||||
manifest 的 `optional_topic_groups`,相机未启动显示 `absent`,不会阻塞;
|
||||
5. 查看本机 `Data_Get/sync_status.json`,最终目录必须有 `READY`、`manifest.json`、
|
||||
`bag/metadata.yaml` 和非空 `*.mcap`;
|
||||
`VERIFIED`、`bag/metadata.yaml` 和非空 `*.mcap`;
|
||||
6. 执行 `ros2 bag info <episode>/bag` 并确认所需 topic 有消息;
|
||||
7. 断开 PS 网络再采一条,确认 Nvidia 保留数据;恢复网络后应续传且 SHA-256 通过。
|
||||
7. 断开 PS 网络再采一条,确认 Nvidia 暂存 `ready/`;恢复网络后应续传,完成 SHA-256、
|
||||
fsync 和 `VERIFIED` 后,只删除机器人上 manifest 完全匹配的该 episode。
|
||||
|
||||
每个新会话先要求 L3 稳定松开 0.5 秒,同一次持续按压只切换一次。数采故障不得解除
|
||||
遥操或延迟 STOP/Home;桥心跳中断超过 3 秒时 recorder 会自行 SIGINT 收尾。机器人
|
||||
`ready/` 不自动删除,确认本机和外部备份后才按具体 episode 清理。
|
||||
遥操或延迟 STOP/Home;桥心跳中断超过 3 秒时 recorder 会自行 SIGINT 收尾。当前架构在
|
||||
录制期间必须先写 Nvidia 的项目专用 `active/`,PS 离线时也会暂存在 `ready/`;它不是
|
||||
长期副本。本机完成全文件验真并持久化 `VERIFIED` 后,固定根目录删除助手才会原子移走并
|
||||
删除该 exact episode,不能触碰 `active/`、`failed/` 或根目录。`retain_failed_episodes=false`
|
||||
时失败录包也不在机器人保留。EAI 只转发控制数据,不保存 MCAP 或相机 payload。
|
||||
|
||||
Reference in New Issue
Block a user