Skip to content

feat(spot): spot-replay blueprint - play a recording back into Rerun - #3433

Open
jeff-hykin wants to merge 6 commits into
jeff/feat/spotfrom
jeff/feat/spot-replay2
Open

feat(spot): spot-replay blueprint - play a recording back into Rerun#3433
jeff-hykin wants to merge 6 commits into
jeff/feat/spotfrom
jeff/feat/spot-replay2

Conversation

@jeff-hykin

@jeff-hykin jeff-hykin commented Aug 10, 2026

Copy link
Copy Markdown
Member

Summary

Run it with no robot and no local dataset:

dimos run spot-replay --db-path=spot_small_loop.db
Screenshot 2026-08-10 at 4 37 46 PM

SpotReplay plays a memory2 recording back onto SpotHighLevel's stream names so the Rerun camera layout lights up with no robot. spot_camera_visual_overrides routes the two shared CameraInfo streams onto each camera's image entity so every frustum anchors to its optical frame, and a green base_link box stands in for the body.
SpotReplay accumulated its own trail and capped it at 2000 poses, so a long
recording only ever showed its tail. OdometryPath (from the cuvslam branch) does
the same job as a reusable module with a 20000-pose horizon and a publish-rate
ceiling, and works on a live robot too.
I had copied the version from alfred_cuvslam, which still drives itself with an
explicit start()/subscribe. cuvslam carries the later rewrite onto an async
handle_odometry, which is the convention the rest of the modules follow.
@codecov

codecov Bot commented Aug 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 60.67416% with 70 lines in your changes missing coverage. Please review.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
dimos/experimental/robot/bosdyn/spot/replay.py 62.19% 31 Missing ⚠️
dimos/experimental/robot/bosdyn/spot/rerun.py 53.06% 23 Missing ⚠️
dimos/mapping/odometry_path.py 55.55% 16 Missing ⚠️
@@                Coverage Diff                 @@
##           jeff/feat/spot    #3433      +/-   ##
==================================================
- Coverage           71.21%   71.20%   -0.02%     
==================================================
  Files                1253     1256       +3     
  Lines              132484   132659     +175     
  Branches            13505    13520      +15     
==================================================
+ Hits                94349    94458     +109     
- Misses              35011    35078      +67     
+ Partials             3124     3123       -1     
Flag Coverage Δ
OS-ubuntu-24.04-arm 70.00% <60.67%> (-0.01%) ⬇️
OS-ubuntu-latest 71.99% <60.67%> (-0.02%) ⬇️
Py-3.10 71.98% <60.67%> (-0.02%) ⬇️
Py-3.11 71.98% <60.67%> (-0.01%) ⬇️
Py-3.12 71.98% <60.67%> (-0.03%) ⬇️
Py-3.13 71.98% <60.67%> (-0.02%) ⬇️
Py-3.14 71.99% <60.67%> (-0.01%) ⬇️
Py-3.14t 71.98% <60.67%> (-0.02%) ⬇️
SelfHosted-Large 29.66% <ø> (ø)
SelfHosted-Linux 35.83% <ø> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
.../experimental/robot/bosdyn/spot/blueprints/spot.py 100.00% <100.00%> (ø)
...mental/robot/bosdyn/spot/blueprints/spot_replay.py 100.00% <100.00%> (ø)
dimos/robot/all_blueprints.py 100.00% <ø> (ø)
dimos/mapping/odometry_path.py 55.55% <55.55%> (ø)
dimos/experimental/robot/bosdyn/spot/rerun.py 51.56% <53.06%> (+16.26%) ⬆️
dimos/experimental/robot/bosdyn/spot/replay.py 62.19% <62.19%> (ø)

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Routes an explicit --db-path through resolve_db_path (the same helper go2
replay uses), so a name that is not on disk is downloaded from LFS instead
of erroring. Makes `dimos run spot-replay --db-path=spot_small_loop.db` a
one-liner that works on a fresh clone.
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Required CI checks have passed on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant