Skip to content

Fixes/mustafa/go2 controller benchmark#2874

Open
leshy wants to merge 6 commits into
mainfrom
fixes/mustafa/go2-controller-benchmark
Open

Fixes/mustafa/go2 controller benchmark#2874
leshy wants to merge 6 commits into
mainfrom
fixes/mustafa/go2-controller-benchmark

Conversation

@leshy

@leshy leshy commented Jul 11, 2026

Copy link
Copy Markdown
Member

moved utils, mypy fix, merged main

mustafab0 and others added 5 commits June 25, 2026 17:25
…r-benchmark

# Conflicts:
#	dimos/control/coordinator.py
The benchmarking package is only used by control tasks and the go2
benchmark blueprints, so it lives with the feature instead of the
global utils dir.
- import Path the class, not the module, in velocity_profiler
- parametrize bare dict/list generics in benchmarking tuning/score
- read VelocityProfileDC.min_speed default via class attr, not
  __dataclass_fields__ (which types as float | MISSING)
- cast sentinel-typed configure() kwargs at their use sites
- annotate _BENCHMARK_TRANSPORTS with the Blueprint.transports dict type
- add K_RETURN/K_BACKSPACE to the pygame stubs
main grew three checks this branch predates: task manifests renamed
__registry__.py -> _registry.py, no __all__ in dimos/, and no section
marker comments. Rename the two task manifests, drop __all__ from the
feature files, and flatten section headers to plain comments.
@leshy leshy marked this pull request as ready for review July 11, 2026 12:49
@greptile-apps

greptile-apps Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds a Go2 RPP controller and a transport-driven benchmark workflow. The main changes are:

  • New path-following and RPP control tasks.
  • Benchmark recording, scoring, tuning, and path utilities.
  • Go2 controller and benchmark blueprints with path, speed, odometry, and gate transports.
  • Coordinator support for forwarding path and speed messages to tasks.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.

Important Files Changed

Filename Overview
dimos/control/benchmarking/benchmark.py Adds the benchmark publisher, recorder, completion monitor, and JSON run output.
dimos/control/tasks/path_follower_task/path_follower_task.py Adds the passive path-following task state machine and runtime path/speed interfaces.
dimos/control/tasks/rpp_path_follower_task/rpp_path_follower_task.py Adds the RPP specialization that loads Go2 tuning data and applies its controller settings.
dimos/control/coordinator.py Adds coordinator inputs that distribute incoming path and speed messages to control tasks.
dimos/robot/unitree/go2/blueprints/basic/unitree_go2_rpp_controller.py Adds the Go2 RPP controller blueprint and benchmark transport configuration.

Reviews (2): Last reviewed commit: "Merge branch 'main' into fixes/mustafa/g..." | Re-trigger Greptile

Comment thread dimos/control/benchmarking/benchmark.py
@codecov

codecov Bot commented Jul 11, 2026

Copy link
Copy Markdown

Codecov Report

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

Files with missing lines Patch % Lines
dimos/control/benchmarking/tuning.py 58.82% 119 Missing and 7 partials ⚠️
dimos/control/benchmarking/score.py 38.96% 88 Missing and 6 partials ⚠️
...rol/tasks/path_follower_task/path_follower_task.py 70.00% 66 Missing and 21 partials ⚠️
dimos/control/benchmarking/benchmark.py 68.72% 79 Missing and 2 partials ⚠️
dimos/control/benchmarking/paths.py 65.67% 68 Missing and 1 partial ⚠️
dimos/control/coordinator.py 44.77% 31 Missing and 6 partials ⚠️
dimos/control/tasks/velocity_tracking_pid.py 42.62% 35 Missing ⚠️
dimos/robot/unitree/keyboard_teleop.py 16.66% 25 Missing ⚠️
dimos/control/benchmarking/plant.py 87.75% 16 Missing and 2 partials ⚠️
dimos/control/tasks/velocity_profiler.py 78.04% 9 Missing and 9 partials ⚠️
... and 6 more
@@            Coverage Diff             @@
##             main    #2874      +/-   ##
==========================================
+ Coverage   72.40%   72.46%   +0.06%     
==========================================
  Files         998     1020      +22     
  Lines       89235    91492    +2257     
  Branches     8122     8773     +651     
==========================================
+ Hits        64610    66304    +1694     
- Misses      22427    22916     +489     
- Partials     2198     2272      +74     
Flag Coverage Δ
OS-ubuntu-24.04-arm 65.47% <72.83%> (+0.24%) ⬆️
OS-ubuntu-latest 67.82% <72.83%> (+0.18%) ⬆️
Py-3.10 67.81% <72.83%> (+0.18%) ⬆️
Py-3.11 67.82% <72.83%> (+0.19%) ⬆️
Py-3.12 67.82% <72.83%> (+0.18%) ⬆️
Py-3.13 67.82% <72.83%> (+0.19%) ⬆️
Py-3.14 67.82% <72.83%> (+0.18%) ⬆️
Py-3.14t 67.82% <72.83%> (+0.19%) ⬆️
SelfHosted-Large 30.25% <33.57%> (+0.11%) ⬆️
SelfHosted-Linux 37.46% <33.34%> (-0.11%) ⬇️
SelfHosted-macOS 36.33% <33.34%> (-0.08%) ⬇️

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

Files with missing lines Coverage Δ
dimos/control/benchmarking/gate.py 100.00% <100.00%> (ø)
...imos/control/tasks/feedforward_gain_compensator.py 100.00% <100.00%> (ø)
...imos/control/tasks/path_follower_task/_registry.py 100.00% <100.00%> (ø)
.../control/tasks/rpp_path_follower_task/_registry.py 100.00% <100.00%> (ø)
dimos/control/test_coordinator_ports.py 100.00% <100.00%> (ø)
dimos/msgs/std_msgs/Float32.py 100.00% <100.00%> (ø)
...mos/navigation/replanning_a_star/path_distancer.py 75.60% <100.00%> (+40.60%) ⬆️
dimos/robot/all_blueprints.py 100.00% <ø> (ø)
.../go2/blueprints/basic/unitree_go2_rpp_benchmark.py 100.00% <100.00%> (ø)
...go2/blueprints/basic/unitree_go2_rpp_controller.py 100.00% <100.00%> (ø)
... and 16 more

... and 4 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.

@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Jul 11, 2026
@github-actions github-actions Bot added ready-to-merge Required CI checks have passed on this PR and removed ready-to-merge Required CI checks have passed on this PR labels Jul 11, 2026
class VelocityTrackingConfig:
"""Configuration for all three velocity channels."""

vx: VelocityPIDConfig = None # type: ignore[assignment]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't do this.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mustafab0 plz fix so we can merge

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants