-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Replaces deprecated effort_limit and velocity_limit in ImplicitActuatorCfg initializations
#2135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replaces deprecated effort_limit and velocity_limit in ImplicitActuatorCfg initializations
#2135
Conversation
…itActuatorCfg initializations
effort_limit and velocity_limit in ImplicitActuatorCfg initializations
|
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. |
|
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. |
|
Oh nice, I'll close this PR then! |
# 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]>
# 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]>
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]>
# 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]>
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]>
# 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]>
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]>
Description
While running a training, I encountered the following warnings:
To ensure forward compatibility and suppress these warnings, I have updated all instances of implicit actuator initializations by replacing:
Type of change
Checklist
pre-commitchecks with./isaaclab.sh --formatconfig/extension.tomlfileCONTRIBUTORS.mdor my name already exists there