data: sf_office_stairs D455 stereo recording - #3349
Open
jeff-hykin wants to merge 6 commits into
Open
Conversation
jeff-hykin
force-pushed
the
jeff/feat/d455_rec
branch
from
August 4, 2026 16:45
0e9068d to
d8a3508
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #3349 +/- ##
==========================================
- Coverage 75.80% 75.80% -0.01%
==========================================
Files 1172 1172
Lines 113568 113568
Branches 10258 10295 +37
==========================================
- Hits 86090 86085 -5
- Misses 24492 24493 +1
- Partials 2986 2990 +4
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
… 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 <recording.db>` 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.
jeff-hykin
force-pushed
the
jeff/feat/d455_rec
branch
from
August 4, 2026 20:45
d8a3508 to
98a0009
Compare
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.
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.
jeff-hykin
marked this pull request as ready for review
August 5, 2026 02:11
jeff-hykin
requested review from
Dreamsorcerer,
leshy,
mustafab0,
paul-nechifor and
spomichter
as code owners
August 5, 2026 02:11
jeff-hykin
enabled auto-merge
August 5, 2026 02:25
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 <stream>_camera_info and sorts next to its images.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
mid360 pointlio + d455, two floors, start and stop same location. use as a smoke test. One revisited April tag, one not-revisited April tag
Other (non-smoke test) stereo datasets here (bigger than 5Gb compressed)
Top Down Pointlio preview
Google Drive Ones
sf_office1

small_loop_left

sf_office1_2

hotel (pointlio drifts in this)

small loop but at night
