Skip to content

Warn when sysid parameters have no modifier - #3509

Open
sylvesterkaczmarek wants to merge 1 commit into
google-deepmind:mainfrom
sylvesterkaczmarek:fix/sysid-none-modifier-warning
Open

Warn when sysid parameters have no modifier#3509
sylvesterkaczmarek wants to merge 1 commit into
google-deepmind:mainfrom
sylvesterkaczmarek:fix/sysid-none-modifier-warning

Conversation

@sylvesterkaczmarek

Copy link
Copy Markdown
Contributor

Summary

Make a silent sysid configuration failure visible when a non-frozen Parameter participates in the decision vector but has modifier=None.

This is the failure mode behind #3286: a modifier factory can accidentally return None, leaving the optimized value disconnected from the MjSpec. The optimizer then sees a zero gradient and can terminate immediately without explaining why.

This change:

  • checks non-frozen parameters when apply_param_modifiers_spec is used
  • emits a warning naming any parameter whose modifier is None
  • emits that warning only once per ParameterDict, avoiding log spam during repeated residual evaluations
  • keeps frozen parameters silent
  • does not change custom build-model workflows unless they explicitly use apply_param_modifiers_spec
  • adds regression coverage for the warned and frozen cases

Addresses #3286.

Validation

The final branch is based directly on current main and contains one focused commit changing only model_modifier.py plus regression tests.

The full sysid test environment was not executed locally here, so no local test pass is claimed.

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.

1 participant