Adds action clipping options for `OperationalSpaceControllerAction`
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-commitchecks 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.tomlfile - [x] I have added my name to the
CONTRIBUTORS.mdor my name already exists there
Thanks for this! @oahmednv could you please review as well?
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.
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!