IsaacLab icon indicating copy to clipboard operation
IsaacLab copied to clipboard

[feature] adding a holonomic action term to mirror non holonomic action term

Open KyleM73 opened this issue 1 year ago • 1 comments

Description

  • Added HolonomicAction action term to mirror the NonHolonomicAction action 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_w in NonHolonomicAction action term where the quaternion in apply_action() was shaped as [num envs, 1, 4] but it needs to be shaped [num envs, 4] in order to get the yaw component via euler_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-commit checks 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 --test and they pass
  • [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

KyleM73 avatar Mar 24 '24 00:03 KyleM73

If this PR is accepted, I wonder if it would be better to combine the holonomic and non holonomic action terms in one file

KyleM73 avatar Mar 24 '24 01:03 KyleM73