Running an OS1-64, two global-shutter MIPI cams, and a 200 Hz IMU on a Jetson Orin with ROS 2 Humble, I’m still seeing ±3 ms skew even with PTP and hardware timestamps, which is inflating reprojection error and EKF residuals… What resources or proven pipelines do you trust for end-to-end sync and extrinsic calibration across these sensors (beyond Kalibr), including lidar–camera targets and IMU bias handling, that have held up in production?
Agree with @tommyp_1975 on using the lidar as time master, but the big win on our Orin (ROS 2 Humble) was ditching Argus: run V4L2 with external FSIN and pass CLOCK_MONOTONIC_RAW from the sensor so ROS doesn’t “restamp” frames. With phc2sys disciplining the Orin clock off the OS1-64’s PHC/PPS we got camera–IMU skew <200 µs, then did lidar–camera extrinsics with vlcal: https://github.com/koide3/vlcal. If your IMU takes PPS-in, lock it too; otherwise exposure changes still nudge the EKF.
On our Jetson Orin (ROS 2 Humble), the last ±3 ms disappeared after wiring each camera’s “exposure active” strobe to the 200 Hz IMU sync-in and using that edge for timestamps, so the EKF aligns to real exposure start instead of driver time; caveat: your IMU needs a hardware sync pin. For lidar–camera extrinsics beyond Kalibr, Autoware’s Charuco pipeline has been the least painful for us and repeatable: https://github.com/autowarefoundation/lidar_camera_calibration.
What helped us was switching the OS1 to “TIME_FROM_SYNC_PULSE_IN” and feeding a shared PPS to it, both cams, and the IMU; @tasha_1984’s wiring note is spot-on, and ros2_tracing showed sub‑0.5 ms after that — PTP alone was herding cats. For calibration beyond Kalibr, we run lidar_align for LiDAR–IMU and then refine cam–IMU in OpenVINS; Ouster’s timestamp mode notes are handy: https://docs.ouster.com.