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
+5 -2
View File
@@ -1570,8 +1570,8 @@ int run_multi_source(
const cvmmap_streamer::McapCompression compression,
const sl::DEPTH_MODE depth_mode,
const PoseTrackingOptions &pose_tracking) {
if (options.start_frame != 0 || options.has_end_frame) {
spdlog::error("multi-camera mode does not support --start-frame or --end-frame");
if (options.start_frame != 0) {
spdlog::error("multi-camera mode does not support --start-frame");
return exit_code(ToolExitCode::UsageError);
}
bool interrupted{false};
@@ -1678,6 +1678,9 @@ int run_multi_source(
return exit_code(ToolExitCode::RuntimeError);
}
emitted_groups += 1;
if (options.has_end_frame && emitted_groups > options.end_frame) {
break;
}
auto advance = advance_after_emit(streams);
if (!advance) {