feat: expand the multi-robot simulation stack#4
Draft
Functionhx wants to merge 4 commits into
Draft
Conversation
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.
What changed
Why
ActuateX is growing from a single quadruped coursework baseline into a reviewable multi-robot, multi-simulator control stack. The contract layer makes simulator-to-simulator and future simulator-to-real claims testable by freezing joint order, frames, observation layout, actuator semantics, timing, and acceptance metrics.
The Sentinel phase now closes both the dynamics loop and the classical-control loop across two independent physics engines. Local models are rejected unless their validation, equilibrium, rank, controllability, and fall gates pass. Scheduled LQR and H-infinity artifacts carry source hashes and backend metadata, so native and cross-engine results cannot be silently mixed.
The H-infinity implementation is not a relabeled LQR. It solves an indefinite discrete zero-sum game, verifies the control/disturbance saddle conditions, checks Schur stability, and certifies the disturbance-to-performance gain on a dense unit-circle frequency grid. Runtime tests also preserve negative evidence: local linear certificates do not guarantee robustness to contact changes, actuator saturation, large command reversals, or broad domain randomization.
The Sentinel asset remains an original serial-leg design. Community CAD is not redistributed, and restricted mechanical releases are referenced only as design and failure-mode research. The model is control-grade nominal physics, not yet a team-specific digital twin.
The G1 and Sentinel smoke runs prove that the local Isaac/PhysX and MuJoCo pipelines launch, sample, update, and exchange policies. They are intentionally not presented as completed humanoid or competition-grade wheel-legged training. Long-running multi-seed RL training, terrain/impact/self-righting acceptance, and parameter identification remain follow-up work.
Validation
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 pytest -q backends/mujoco/tests/test_sentinel_linear_control.py backends/mujoco/tests/test_sentinel_evaluation_protocol.py backends/mujoco/tests/test_sentinel_evaluation_trace.py backends/mujoco/tests/test_robomaster_dynamics.py— 32 passedpython -m compileall -q ...— passedgit diff --check— passednq=18,nv=17,nu=11, 44 sensors.xzintegrity and 800,000-row count — passedGenerated logs, checkpoints, identification models, evaluation JSON/CSV/SVG, videos, simulator installations, and external Unitree/Isaac repositories remain excluded from Git.