DataCollectionRig
Six-camera, GNSS- and IMU-instrumented driving data collection rig on Jetson AGX Orin
- Status
- Research
- Version
- No tagged release
- Platform
- GPU workstation
- License
- Not specified
A data collection session that is not trustworthy should say so rather than looking fine; the design goal is that every fault is attributable to a sensor, a timestamp and a cause. For example, frame sync silently reverts on reboot with no visible error, so every session is gated on a sync measurement.
How it is put together.
Six GMSL2 cameras on an NVIDIA Jetson AGX Orin are hardware-frame-synchronised to a single trigger and recorded as annotation-ready H.265 with per-frame timestamps on one shared monotonic clock, alongside a 100 Hz IMU stream and a GNSS receiver. The repository holds setup scripts, a capture engine with CLI and GUI, time-sync and calibration tooling, and measured verification. The README states that every number in it came from a command whose output is reproduced, and it lists open items (unverified camera positions, PPS not delivering edges, no frame sync at cold boot).
- 1
Setup
Camera driver install repair scripts, boot-time frame-sync ordering, udev rules for stable camera symlinks, systemd units
setup/ - 2
Sync and drop tools
Enable frame sync, measure cross-camera spread and dropped frames, soak tests, live viewers
tools/ - 3
Time sync
Timestamped capture and cross-camera frame pairing
timesync/ - 4
Calibration
ChArUco intrinsics/extrinsics
calibration/ - 5
Capture engine
Capture engine, CLI and GUI with sensors, metrics, verify/doctor reports and MCAP export
- 6
Standalone capture app
Standalone GTK capture application
datacollect/ - 7
ISP correction
ISP boot-data correction for the narrow camera pair
isp-correction/
Specification.
- Cameras
- 6 × GMSL2 cameras (4 wide ~128.7°, 2 narrow ~54°), 1920×1536 UYVY @ 30 fps
- Frame sync (measured)
- Median inter-camera spread 58 µs with hardware sync vs 20 380 µs free-running; p95 359 µs; 0 dropped frames over 2 min
- Inertial
- IMU at 100 Hz (measured 99.6 Hz, 0 counter gaps)
- GNSS
- Multi-band, PPS-capable receiver; 3D fix verified (HDOP 0.61); PPS into host not yet working
- Recording
- Annotation-ready H.265 with per-frame timestamps on one shared monotonic clock; MCAP export
- Tooling
- enable_sync, measure_sync, measure_drops, soak tests, cross-camera frame pairing, ChArUco calibration
- Platform
- JetPack 7.2 / L4T R39.2.0, Ubuntu 24.04 (aarch64), Python 3.12, GStreamer 1.24.2
- Runs on
- Runs on an NVIDIA Jetson AGX Orin with GMSL2 cameras, NVENC and TensorRT; a simulate mode exists but the project is a hardware rig
Log.
- DataCollectionRig publishedSix-camera GMSL2 data-collection rig on the Jetson AGX Orin.