IsaacLab
IsaacLab copied to clipboard
[feature] adding a holonomic action term to mirror non holonomic action term
Description
- Added
HolonomicActionaction term to mirror theNonHolonomicActionaction term but with an additional lateral velocity component. This type of action can be accomplished with the joint velocity action term but requires transforming the coordinates of the learned policy to run on a real robot; with this action term the policy can be used directly for velocity control on holonomic mobile bases.
And a small bug fix:
- Squeezed
quat_winNonHolonomicActionaction term where the quaternion inapply_action()was shaped as[num envs, 1, 4]but it needs to be shaped[num envs, 4]in order to get the yaw component viaeuler_xyz_from_quat().
Type of change
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
Screenshots
for the bug fix:
before:
quat_w = self._asset.data.body_quat_w[:, self._body_idx]
after:
quat_w = self._asset.data.body_quat_w[:, self._body_idx].squeeze(1)
See the commit for the HolonomicAction documentation, provided in the docstring.
Checklist
- [X] I have run the
pre-commitchecks with./orbit.sh --format - [X] I have made corresponding changes to the documentation
- [X] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [X] I have run all the tests with
./orbit.sh --testand they pass - [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
If this PR is accepted, I wonder if it would be better to combine the holonomic and non holonomic action terms in one file