Skip to content

Planning Group 5: Add group-aware Viser planning#2860

Open
TomCC7 wants to merge 10 commits into
cc/planning_group/mainfrom
cc/planning_group/viser
Open

Planning Group 5: Add group-aware Viser planning#2860
TomCC7 wants to merge 10 commits into
cc/planning_group/mainfrom
cc/planning_group/viser

Conversation

@TomCC7

@TomCC7 TomCC7 commented Jul 10, 2026

Copy link
Copy Markdown
Member

Summary

  • add the planning-group-aware Viser manipulation panel while preserving the UI contract from cc/spec/movegroup@0edb8d3dd
  • add synchronized, group-native multi-robot plan preview with safe cancellation and freshness checks
  • replace the robot-scoped Viser adapter with a visualization-local group backend
  • rename dual-xarm6-planner-coordinator-mock-meshcat to dual-xarm6-planner-coordinator and default that blueprint to Viser

Validation

  • 152 required manipulation and Viser tests passed with no skips
  • targeted mypy passed for all changed production files
  • Ruff, formatting, and git diff --check passed
  • strict OpenSpec validation passed
  • blueprint tests: 4 passed
  • generated blueprint registry test: 1 passed

Notes

  • UI parity was reviewed against 0edb8d3dd only; the prior upstream extraction commit was not used
  • UI review was code-level/manual-contract validation, not a live browser or hardware run

@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

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

Files with missing lines Patch % Lines
dimos/manipulation/visualization/viser/gui.py 74.33% 79 Missing and 56 partials ⚠️
dimos/manipulation/manipulation_module.py 69.40% 61 Missing and 36 partials ⚠️
...planning/world/test_drake_world_planning_groups.py 12.03% 95 Missing ⚠️
dimos/manipulation/planning/world/drake_world.py 14.11% 73 Missing ⚠️
dimos/manipulation/visualization/operator.py 84.04% 17 Missing and 13 partials ⚠️
...on/visualization/viser/test_viser_visualization.py 95.99% 22 Missing and 3 partials ⚠️
...mos/manipulation/visualization/viser/visualizer.py 68.57% 13 Missing and 9 partials ⚠️
dimos/manipulation/visualization/viser/scene.py 88.60% 10 Missing and 8 partials ⚠️
...mos/manipulation/planning/monitor/world_monitor.py 72.91% 8 Missing and 5 partials ⚠️
dimos/manipulation/visualization/test_operator.py 95.33% 8 Missing and 1 partial ⚠️
... and 7 more
@@                    Coverage Diff                     @@
##           cc/planning_group/main    #2860      +/-   ##
==========================================================
+ Coverage                   71.33%   71.52%   +0.18%     
==========================================================
  Files                         905      916      +11     
  Lines                       81625    84810    +3185     
  Branches                     7504     8308     +804     
==========================================================
+ Hits                        58227    60657    +2430     
- Misses                      21488    22070     +582     
- Partials                     1910     2083     +173     
Flag Coverage Δ
OS-ubuntu-24.04-arm 64.21% <52.45%> (+0.65%) ⬆️
OS-ubuntu-latest 66.55% <84.17%> (+0.35%) ⬆️
Py-3.10 66.55% <84.17%> (+0.36%) ⬆️
Py-3.11 66.55% <84.17%> (+0.35%) ⬆️
Py-3.12 66.55% <84.17%> (+0.36%) ⬆️
Py-3.13 66.55% <84.17%> (+0.35%) ⬆️
Py-3.14 66.56% <84.17%> (+0.35%) ⬆️
Py-3.14t 66.55% <84.17%> (+0.35%) ⬆️
SelfHosted-Large 29.67% <19.96%> (-0.22%) ⬇️
SelfHosted-Linux 36.92% <23.40%> (-0.42%) ⬇️
SelfHosted-macOS 35.82% <23.40%> (-0.41%) ⬇️

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

Files with missing lines Coverage Δ
dimos/control/test_control.py 95.19% <100.00%> (+0.62%) ⬆️
dimos/manipulation/_test_manipulation_helpers.py 100.00% <100.00%> (ø)
dimos/manipulation/planning/spec/models.py 98.78% <100.00%> (-1.22%) ⬇️
dimos/manipulation/planning/spec/protocols.py 100.00% <100.00%> (ø)
...anipulation/test_generated_plan_materialization.py 100.00% <100.00%> (ø)
dimos/manipulation/test_manipulation_module.py 100.00% <100.00%> (+1.36%) ⬆️
dimos/manipulation/test_manipulation_unit.py 100.00% <100.00%> (+0.24%) ⬆️
...os/manipulation/test_plan_execution_reservation.py 100.00% <100.00%> (ø)
dimos/manipulation/visualization/factory.py 88.23% <100.00%> (+19.48%) ⬆️
...imos/manipulation/visualization/viser/animation.py 100.00% <100.00%> (ø)
... and 23 more

... and 12 files 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.

@TomCC7 TomCC7 marked this pull request as ready for review July 10, 2026 18:19
@greptile-apps

greptile-apps Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds group-aware manipulation planning and Viser controls. The main changes are:

  • Group-native target editing, planning, preview, and execution in the Viser panel.
  • Shared-clock generated plans split into robot-local execution trajectories.
  • Scoped preview animation state for Viser and Drake visualizations.
  • Updated blueprint naming and Viser defaults for the dual xArm coordinator.

Confidence Score: 4/5

This is close, but these issues should be fixed before merging.

  • Explicit plan execution can send the same trajectory more than once.
  • The cancel fallback can leave a preview ghost running after the operator presses Cancel.

dimos/manipulation/manipulation_module.py and dimos/manipulation/visualization/operator.py

Important Files Changed

Filename Overview
dimos/manipulation/manipulation_module.py Adds generated-plan materialization, freshness checks, and explicit-plan execution, but the explicit path can dispatch the same plan more than once.
dimos/manipulation/visualization/operator.py Adds the UI-neutral manipulation facade, but the cancel fallback can leave an active preview running.
dimos/manipulation/visualization/viser/gui.py Adds group-aware panel state, target evaluation, planning, preview, and execution flows.
dimos/manipulation/visualization/viser/scene.py Adds per-robot preview animation generations and scoped preview visibility updates.

Reviews (10): Last reviewed commit: "fix: address manipulation visualization ..." | Re-trigger Greptile

Comment thread dimos/manipulation/visualization/viser/gui.py Outdated
Comment thread dimos/manipulation/visualization/viser/gui.py Outdated
Comment thread dimos/robot/all_blueprints.py
Comment thread dimos/manipulation/planning/world/drake_world.py Outdated
Comment thread dimos/manipulation/visualization/viser/scene.py Outdated
Comment thread dimos/manipulation/visualization/viser/gui.py Outdated
Comment thread dimos/manipulation/visualization/viser/panel_backend.py Outdated
Comment thread dimos/manipulation/planning/monitor/world_monitor.py Outdated
Comment thread dimos/robot/all_blueprints.py
Comment thread dimos/manipulation/visualization/viser/gui.py Outdated
Comment thread dimos/manipulation/manipulation_module.py Outdated
Comment thread dimos/manipulation/manipulation_module.py Outdated
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Jul 10, 2026
@github-actions github-actions Bot removed the ready-to-merge Required CI checks have passed on this PR label Jul 10, 2026
Comment thread dimos/manipulation/visualization/viser/scene.py Outdated
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Jul 10, 2026
Comment thread dimos/manipulation/visualization/viser/state.py Outdated
Comment thread dimos/manipulation/visualization/viser/state.py Outdated
Comment thread dimos/manipulation/planning/world/drake_world.py Outdated
Comment thread dimos/manipulation/manipulation_module.py Outdated
Comment thread dimos/manipulation/manipulation_module.py Outdated
@github-actions github-actions Bot removed the ready-to-merge Required CI checks have passed on this PR label Jul 11, 2026
Comment thread dimos/manipulation/manipulation_module.py Outdated
Comment thread dimos/manipulation/manipulation_module.py Outdated
Comment thread dimos/manipulation/visualization/viser/scene.py Outdated
Comment thread dimos/manipulation/manipulation_module.py Outdated
Comment thread dimos/manipulation/manipulation_module.py Outdated
Comment thread dimos/manipulation/visualization/operator.py
Comment thread dimos/control/tasks/trajectory_task/trajectory_task.py Outdated
Comment thread dimos/manipulation/manipulation_operator.py Outdated
Comment thread dimos/manipulation/manipulation_module.py
Comment thread dimos/manipulation/visualization/operator.py Outdated
Comment thread dimos/manipulation/visualization/operator.py Outdated
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Jul 12, 2026
@github-actions github-actions Bot removed the ready-to-merge Required CI checks have passed on this PR label Jul 12, 2026
Comment thread dimos/manipulation/manipulation_module.py
Comment thread dimos/manipulation/visualization/operator.py
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Jul 12, 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.

2 participants