Skip to content

Conversation

@louislelay
Copy link
Contributor

Description

While running a training, I encountered the following warnings:

[Warning] [isaaclab.actuators.actuator_pd] The <ImplicitActuatorCfg> object has a value for 'effort_limit'. This parameter will be removed in the future. To set the effort limit, please use 'effort_limit_sim' instead.
[Warning] [isaaclab.actuators.actuator_pd] The <ImplicitActuatorCfg> object has a value for 'velocity_limit'. Previously, although this value was specified, it was not getting used by implicit actuators. Since this parameter affects the simulation behavior, we continue to not use it. This parameter will be removed in the future. To set the velocity limit, please use 'velocity_limit_sim' instead.

To ensure forward compatibility and suppress these warnings, I have updated all instances of implicit actuator initializations by replacing:

  • effort_limit → effort_limit_sim
  • velocity_limit → velocity_limit_sim

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • This change requires a documentation update

Checklist

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

@Mayankm96 Mayankm96 changed the title Replaces deprecated effort_limit and velocity_limit with effort_limit_sim and velocity_limit_sim in ImplicitActuatorCfg initializations Replaces deprecated effort_limit and velocity_limit in ImplicitActuatorCfg initializations Mar 24, 2025
@Mayankm96
Copy link
Contributor

Thanks a lot for the MR. We will have to make sure the training for all the affected environments remains the same. Otherwise, we might break things here accidentally.

We are working on making a test that allows us to keep track of this.

@ooctipus
Copy link
Collaborator

Thank you for the PR, we decide to remove velocity_limit for all implicit actuators rather than change it to velocity_limit_sim. Since most of them were tested to work when velocity_limit was no-operation. Changing it to velocity_limit_sim may break some training.
Please check this PR, and see the details XD
https://github.com/isaac-sim/IsaacLab/pull/2952/files

@louislelay
Copy link
Contributor Author

Oh nice, I'll close this PR then!

@louislelay louislelay closed this Jul 16, 2025
kellyguo11 added a commit that referenced this pull request Jul 29, 2025
# 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 <[email protected]>
zuxinrui pushed a commit to zuxinrui/IsaacLab that referenced this pull request Jul 31, 2025
# Description

As discussed by several earlier commit and issues isaac-sim#2135 isaac-sim#1654 isaac-sim#1384
isaac-sim#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 <[email protected]>
kellyguo11 added a commit that referenced this pull request Aug 7, 2025
As discussed by several earlier commit and issues #2135 #1654 #1384
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`.

<!-- 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

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.
-->

- [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 <[email protected]>
StephenWelch pushed a commit to StephenWelch/IsaacLab that referenced this pull request Aug 17, 2025
# Description

As discussed by several earlier commit and issues isaac-sim#2135 isaac-sim#1654 isaac-sim#1384
isaac-sim#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 <[email protected]>
StephenWelch pushed a commit to StephenWelch/IsaacLab that referenced this pull request Aug 17, 2025
As discussed by several earlier commit and issues isaac-sim#2135 isaac-sim#1654 isaac-sim#1384
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`.

<!-- 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

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.
-->

- [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 <[email protected]>
@louislelay louislelay deleted the fix/replace-effort-velocity-limit-fields branch September 19, 2025 08:18
george-nehma pushed a commit to george-nehma/IsaacLab-Dreamerv3 that referenced this pull request Oct 24, 2025
# Description

As discussed by several earlier commit and issues isaac-sim#2135 isaac-sim#1654 isaac-sim#1384
isaac-sim#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 <[email protected]>
george-nehma pushed a commit to george-nehma/IsaacLab-Dreamerv3 that referenced this pull request Oct 24, 2025
As discussed by several earlier commit and issues isaac-sim#2135 isaac-sim#1654 isaac-sim#1384
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`.

<!-- 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

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.
-->

- [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 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants