Fixes implicit actuator limits configs for assets (#2952)
# Description
As discussed by several earlier commit and issues #2135 #1654 #1384
#1509, there is a distinction between motor hardware velocity
limit(velocity_limit), effort limit(effort_limit), simulation velocity
limit(velocity_limit_sim) and effort limit(effort_limit_sim).
ImplicitActuator, lacking the motor model, is inherently
non-attributable to velocity_limit or effort_limit, and should be using
velocity_limit_sim and effort_limit_sim instead if such limits should be
set. However, since most of environment with `ImplicitActuatorCfg` was
written before v1.4, when velocity_limit was basically ignored, and
velocity_limit_sim did not exist. To not break those environments
training, we remove all `velocity_limit` attribute from existing
`ImplicitActuatorCfg`, change all `effort_limit` to `effort_limit_sim`,
and added documentation to articulate this point .
However, even with removing velocity_limit, effort_limit, there could be
subtitles interacting with default USD value. USD may have joints that
comes with velocity_limit_sim and effort_limit_sim unnoticed by user.
Thus, user may thinking sim_limits are uncaped by not specifying limits
in Cfg, but is silently set in USD.
To make that more clear, this PR added flag:
`actuator_value_resolution_debug_print(default to false)` in
`ArticulationCfg`
that has following behavior:
case 1: if USD has default, ActuatorCfg has limits
>if limits is same -> we are all good, no warning.
>if limits is different -> we warn user we used cfg value.
case 2: USD has default, ActuatorCfg no limits -> We warn user saying
the USD defaults is used
Note that his logging can apply to all other joint attributes where
there could be USD-ArticulationCfg conflicts, not limited to
`velocity_limit_si,` or `effort_limit_sim` -> such as : stiffness,
damping, armature .....
Note this section is also documented in articulation.rst
This PR added actuator discrepancy logging into the
:class:`ActuatorBase`.
## Type of change
<!-- As you go through the list, delete the ones that are not
applicable. -->
- Bug fix (non-breaking change which fixes an issue)
- This change requires a documentation update
## Screenshots
Please attach before and after screenshots of the change if applicable.
<!--
Example:
| Before | After |
| ------ | ----- |
| _gif/png before_ | _gif/png after_ |
To upload images to a PR -- simply drag and drop an image while in edit
mode and it should upload the image directly. You can then paste that
source into the above before/after sections.
-->
## Checklist
- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.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 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
<!--
As you go through the checklist above, you can mark something as done by
putting an x character in it
For example,
- [x] I have done this task
- [ ] I have not done this task
-->
---------
Co-authored-by:
Kelly Guo <kellyg@nvidia.com>
Showing
Please register or sign in to comment