feat: add batch MCAP export tooling for ZED segments

Add a Python batch wrapper around zed_svo_to_mcap for multi-camera
segment exports. The new script supports dataset discovery, repeated
segment-dir inputs, CSV-driven ordering, skip/probe/report flows, dry-run,
and CUDA environment passthrough so kindergarten-style datasets can be
converted into one bundled MCAP per segment.

Extend zed_svo_to_mcap so bundled multi-camera mode accepts --end-frame
with synced-group semantics. In this mode the value is interpreted as the
last emitted synced frame-group index from the common synced start, while
--start-frame remains unsupported.

Vendor a minimal pose-config TOML and a sample segments CSV into this repo
so the MCAP workflow is self-contained. Update the README to document the
batch MCAP flow, use portable placeholders instead of machine-specific
absolute paths, and describe the expected dataset layout explicitly.
This commit is contained in:
2026-03-20 09:19:56 +00:00
parent 8d9bd1b815
commit 1691274e85
5 changed files with 920 additions and 13 deletions
+7
View File
@@ -0,0 +1,7 @@
timestamp,activity,group_path,segment_dir,camera,relative_path
2026-03-18T11-23-22,jump,jump/external/recording,jump/external/recording/2026-03-18T11-23-22,zed1,jump/external/recording/2026-03-18T11-23-22/2026-03-18T11-23-22_zed1.svo2
2026-03-18T11-23-22,jump,jump/external/recording,jump/external/recording/2026-03-18T11-23-22,zed2,jump/external/recording/2026-03-18T11-23-22/2026-03-18T11-23-22_zed2.svo2
2026-03-18T11-23-22,jump,jump/external/recording,jump/external/recording/2026-03-18T11-23-22,zed3,jump/external/recording/2026-03-18T11-23-22/2026-03-18T11-23-22_zed3.svo2
2026-03-18T11-23-22,jump,jump/external/recording,jump/external/recording/2026-03-18T11-23-22,zed4,jump/external/recording/2026-03-18T11-23-22/2026-03-18T11-23-22_zed4.svo2
2026-03-18T11-26-23,jump,jump/experiment/1,jump/experiment/1/2026-03-18T11-26-23,zed1,jump/experiment/1/2026-03-18T11-26-23/2026-03-18T11-26-23_zed1.svo2
2026-03-18T11-26-23,jump,jump/experiment/1,jump/experiment/1/2026-03-18T11-26-23,zed2,jump/experiment/1/2026-03-18T11-26-23/2026-03-18T11-26-23_zed2.svo2
1 timestamp activity group_path segment_dir camera relative_path
2 2026-03-18T11-23-22 jump jump/external/recording jump/external/recording/2026-03-18T11-23-22 zed1 jump/external/recording/2026-03-18T11-23-22/2026-03-18T11-23-22_zed1.svo2
3 2026-03-18T11-23-22 jump jump/external/recording jump/external/recording/2026-03-18T11-23-22 zed2 jump/external/recording/2026-03-18T11-23-22/2026-03-18T11-23-22_zed2.svo2
4 2026-03-18T11-23-22 jump jump/external/recording jump/external/recording/2026-03-18T11-23-22 zed3 jump/external/recording/2026-03-18T11-23-22/2026-03-18T11-23-22_zed3.svo2
5 2026-03-18T11-23-22 jump jump/external/recording jump/external/recording/2026-03-18T11-23-22 zed4 jump/external/recording/2026-03-18T11-23-22/2026-03-18T11-23-22_zed4.svo2
6 2026-03-18T11-26-23 jump jump/experiment/1 jump/experiment/1/2026-03-18T11-26-23 zed1 jump/experiment/1/2026-03-18T11-26-23/2026-03-18T11-26-23_zed1.svo2
7 2026-03-18T11-26-23 jump jump/experiment/1 jump/experiment/1/2026-03-18T11-26-23 zed2 jump/experiment/1/2026-03-18T11-26-23/2026-03-18T11-26-23_zed2.svo2
+18
View File
@@ -0,0 +1,18 @@
# Minimal pose-tracking config for zed_svo_to_mcap.
# The converter currently reads only:
# - zed.coordinate_system
# - zed.body_tracking.reference_frame
# - zed.body_tracking.set_floor_as_origin
[zed]
# Native ZED 3D/body coordinate system used when reading positional tracking.
# Supported values in this repo are IMAGE and RIGHT_HANDED_Y_UP.
coordinate_system = "IMAGE"
[zed.body_tracking]
# Reference frame used for per-camera pose estimation.
# Supported values are CAMERA and WORLD.
reference_frame = "CAMERA"
# When true, WORLD origin is placed on the floor during positional tracking.
set_floor_as_origin = false