From 98a000930f3ca83faffaca6971a3f4711d7dfcfc Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Tue, 4 Aug 2026 09:45:24 -0700 Subject: [PATCH 1/4] data: sf_office_stairs, a D455 stereo recording with Point-LIO ground truth 1m50s of IR stereo + colour + depth + four camera_infos + 400 Hz IMU + Mid-360 lidar and Point-LIO odometry, lossless, with no gap over 0.3 s after the camera's first frame. Point-LIO drops roughly half its output here -- 15 Hz against a 28.5 Hz nominal, worst gap ~520 ms. The trajectory is smooth enough to interpolate, but anyone scoring per-frame ATE against it should know. A top-down render is derivable with `heatmap ` and is deliberately not committed. The other recordings from this session are held back: their tarballs are over 5 GB, which the LFS backend cannot accept because giftless's S3 storage does not implement multipart upload, so an object has to fit in a single presigned PUT. --- data/.lfs/sf_office_stairs.db.tar.gz | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 data/.lfs/sf_office_stairs.db.tar.gz diff --git a/data/.lfs/sf_office_stairs.db.tar.gz b/data/.lfs/sf_office_stairs.db.tar.gz new file mode 100644 index 0000000000..814ac6f9eb --- /dev/null +++ b/data/.lfs/sf_office_stairs.db.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5de16b022f9e189e17ce29305d053f67411902b43a43b5ff0358286fa151ac97 +size 4583427916 From 25107826830d4efe0676789f5885ee04dbec7718 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Tue, 4 Aug 2026 15:50:28 -0700 Subject: [PATCH 2/4] data: rename sf_office_stairs rig frames to d455_/mid360_ prefixes The tf frames were named after no particular device -- camera_link, imu_frame -- which says nothing about which of the rig's two sensors they belong to. They now carry the model: camera_* -> d455_*, and the Livox's own IMU becomes mid360_imu_frame. base_link stays unprefixed; it is the rig's ground contact, not a sensor. The color stream is renamed to realsense_color_image to match its siblings. Frame names live in the message payloads as well as in tf, so all 57k stamped frame_ids were rewritten alongside the tree; renaming only tf would leave a recording that loads fine and resolves nothing. --- data/.lfs/sf_office_stairs.db.tar.gz | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/.lfs/sf_office_stairs.db.tar.gz b/data/.lfs/sf_office_stairs.db.tar.gz index 814ac6f9eb..f268738643 100644 --- a/data/.lfs/sf_office_stairs.db.tar.gz +++ b/data/.lfs/sf_office_stairs.db.tar.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5de16b022f9e189e17ce29305d053f67411902b43a43b5ff0358286fa151ac97 -size 4583427916 +oid sha256:a71a7ffdadb1088aa28c0f8ca5e4c6723b9c918ef1a7fe67290bec4a7b22d2e6 +size 4591086789 From a33a3451811a0432d1d6f9163d8f3ed30de8fa55 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Tue, 4 Aug 2026 19:11:09 -0700 Subject: [PATCH 3/4] data: repair repeated frames in sf_office_stairs The RealSense pipeline hands wait_for_frames() the latest frame of each stream, and under load the streams desync. The recorder stamped all of them from one frameset clock and published all of them every iteration, so a stream that had not advanced was stored again -- byte-identical image, repeated timestamp -- and a stream that had advanced got a stale time. Removed 30 identical repeats each from depth, infra1 and infra2; those rows carried nothing the row before them did not, and the three streams stereo methods actually consume are now strictly monotonic. The 30 colour frames that advanced under a stale stamp are kept and tagged ts_suspect: the image is real, only its time is wrong, and the frame's own hardware timestamp was never recorded so it cannot be recovered. Inventing one would be indistinguishable downstream from a measurement. --- data/.lfs/sf_office_stairs.db.tar.gz | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/.lfs/sf_office_stairs.db.tar.gz b/data/.lfs/sf_office_stairs.db.tar.gz index f268738643..9d82d83bf9 100644 --- a/data/.lfs/sf_office_stairs.db.tar.gz +++ b/data/.lfs/sf_office_stairs.db.tar.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a71a7ffdadb1088aa28c0f8ca5e4c6723b9c918ef1a7fe67290bec4a7b22d2e6 -size 4591086789 +oid sha256:1b16d8669f9f043ac4dc0e07258359cd4b0782dfcf1396477af0aa56436e4a50 +size 4572065528 From 5b8736a129645440be5f8a1612c276279e96afa3 Mon Sep 17 00:00:00 2001 From: Jeff Hykin Date: Tue, 4 Aug 2026 19:34:17 -0700 Subject: [PATCH 4/4] data: name every camera_info after the stream it describes realsense_camera_info and realsense_depth_camera_info were the only two that did not, which made the pairing something you had to know rather than read: realsense_camera_info -> realsense_color_image_camera_info realsense_depth_camera_info -> realsense_depth_image_camera_info Every camera_info is now _camera_info and sorts next to its images. --- data/.lfs/sf_office_stairs.db.tar.gz | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/.lfs/sf_office_stairs.db.tar.gz b/data/.lfs/sf_office_stairs.db.tar.gz index 9d82d83bf9..e371ac28e7 100644 --- a/data/.lfs/sf_office_stairs.db.tar.gz +++ b/data/.lfs/sf_office_stairs.db.tar.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1b16d8669f9f043ac4dc0e07258359cd4b0782dfcf1396477af0aa56436e4a50 -size 4572065528 +oid sha256:f75fbd4396d6eeaee6601d74ad69b2d80abe6943aa7b1bcc2962908a66a97b16 +size 4572059329