Skip to content

Preserve actuator delay state across partial resets - #1218

Merged
kevinzakka merged 6 commits into
mujocolab:mainfrom
lukehugh:codex/fix-actuator-delay-partial-reset
Nov 1, 2026
Merged

kevinzakka merged 6 commits into
mujocolab:mainfrom
lukehugh:codex/fix-actuator-delay-partial-reset

Conversation

@lukehugh

@lukehugh lukehugh commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Partial resets recomputed actuator controls for the whole batch, advancing delay histories and changing controls in environments whose physics had not advanced. Scope reset-time writes and history backfills to the reset environments, including learned actuator histories, while keeping one delay update per physics substep. Regression tests cover explicit and automatic resets, initialization, unchanged trajectories, and builtin/fused control paths. Validated with make check and CPU make test (1094 passed, 13 skipped).

Fixes #1216

Scope reset-time control writes and history backfills to the reset environments, preserving other environments' delay buffers, lag schedules, and controls. Cover explicit and automatic resets, initialization, and builtin, fused, and learned actuator paths.

Fixes mujocolab#1216
Copilot AI balanced review requested due to automatic review settings October 6, 2026 09:17

Copilot AI left a comment

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@lukehugh
lukehugh requested a balanced review from Copilot October 7, 2026 06:50

Copilot AI left a comment

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Preserve the partial-reset changelog entry alongside the upstream viewer-reset and wandb-tags entries.
Preserve the partial-reset fix alongside the latest upstream changelog entries and MuJoCo 3.16 changes.

Validated with make check and make test-cpu (1107 passed, 13 skipped), plus upstream-versus-fixed partial-reset regression reproductions.
@lukehugh

Copy link
Copy Markdown
Contributor Author

Hi, I’d appreciate your thoughts on whether the reset-scoping approach in this PR fits mjlab’s design. I added a cartpole reproduction and quantitative results in #1216, showing that unrelated resets can change untouched environments’ trajectories and rewards. This matters for our robot training with a 125 ms actuator delay, particularly for safety evaluation.

Are there any concerns about the approach, or changes you’d like me to make? Thanks for your time!

@kevinzakka
kevinzakka merged commit dcdf6ce into mujocolab:main Nov 1, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Partial reset advances actuator delay buffers in environments that were not reset

3 participants