IsaacLab icon indicating copy to clipboard operation
IsaacLab copied to clipboard

Adds action clipping options for `OperationalSpaceControllerAction`

Open ozhanozen opened this issue 10 months ago • 3 comments

Description

This PR adds the feature to set clipping thresholds for the OperationalSpaceControllerAction.

Depending on the target_type, the physical interpretation of the clipping differs:

  • For wrench_abs, it is a limit for the applied contact force
  • For pose_rel, it is effectively a limit for the end-effector velocity.
  • For pose_abs, it is an end-effector workspace limit. For the orientation part, which is represented as a quaternion, I have calculated a delta rotation (wrt zero quaternion, i.e., (1,0,0,0)), applied the clipping on this, and finally applied the resulting clipped delta rotation back to the zero quaternion to get the new processed actions.

Moreover, the PR also adds a public member function to modify these clip values during the training, for potential use cases such as clip threshold randomization or curriculum purposes.

Related to #1548 and maybe #1732. Currently, the clipping in OperationalSpaceControllerAction is managed using its class attributes (without dictionaries) but could be later extended to ActionTermCfg.

Type of change

  • New feature (non-breaking change which adds functionality)

Checklist

  • [x] I have run the pre-commit checks with ./isaaclab.sh --format
  • [x] I have made corresponding changes to the documentation
  • [x] My changes generate no new warnings
  • [x] I have added tests that prove my fix is effective or that my feature works
  • [x] I have updated the changelog and the corresponding version in the extension's config/extension.toml file
  • [x] I have added my name to the CONTRIBUTORS.md or my name already exists there

ozhanozen avatar Feb 13 '25 19:02 ozhanozen

Thanks for this! @oahmednv could you please review as well?

kellyguo11 avatar Feb 14 '25 03:02 kellyguo11

I have converted clip and scale parameters –and the respective public functions to modify them during training– to be in the batched form, as such is more useful for domain randomization. Moreover, I fixed some relevant docstring typos.

ozhanozen avatar Mar 05 '25 13:03 ozhanozen

Hi @kellyguo11 and @oahmednv, just a gentle ping. Please let me know if you get a chance to review this. Happy to update anything if needed!

ozhanozen avatar Apr 24 '25 20:04 ozhanozen