-
Notifications
You must be signed in to change notification settings - Fork 2k
Fixes actuator velocity limits propagation down the articulation root_physx_view #1509
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
Conversation
Signed-off-by: Kelly Guo <[email protected]>
This seems like a nice feature for consistency through the different layers. However, I wonder if this can have implications for the simulator performance, depending on how this constraint is implemented in the backend. I think one potential issue is when using the DCMotor model we want to define a torque cutoff speed to obtain more realistic speed torque relationship, however this does not necessarily mean that we want to have a hard limit on the joint velocities, which might give simulation artefacts. I think follow up work should be to separate the velocity limit used in the DC motor model and the one used for the hard physics limit. What do you think? |
That’s a good point. The velocity_limit is being used as the “no load
speed” which works for active motor torques. But with external loading,
motors can operate in another quadrant of the torque-speed curve producing
more speed.
It should be straightforward to not physically cap the velocity for the
DCMotor.
…On Tue, Dec 10, 2024 at 4:37 AM Lars Rønhaug Pettersen < ***@***.***> wrote:
This seems like a nice feature for consistency through the different
layers. However, I wonder if this can have implications for the simulator
performance, depending on how this constraint is implemented in the backend.
I think one potential issue is when using the DCMotor model we want to
define a torque cutoff speed to obtain more realistic speed torque
relationship, however this does not necessarily mean that we want to have a
hard limit on the joint velocities, which might give simulation artefacts.
I think follow up work should be to separate the velocity limit used in
the DC motor model and the one used for the hard physics limit. What do you
think?
—
Reply to this email directly, view it on GitHub
<#1509 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BHV4FBM7IUFXONK5P4BEP7D2E2Y4LAVCNFSM6AAAAABTFJPSL2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMZRGAYTEMBXGQ>
.
You are receiving this because you were assigned.Message ID:
***@***.***>
|
Should we instead use IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/actuators/actuator_pd.py Line 226 in 4ee4957
This would only require adding one field to the |
I agree with @larsrpe. Solver-level limits are different from the explicit model considerations. For explicit models, we may want to do the clipping inside the model but not have PhysX apply any of that within it (as tight constraints may lead to undefined behaviors). For most of the shared quantities, we should maybe have their counterpart quantities as "torque_limit_sim" and "velocity_limit_sim". This makes it clear that these are being set at the solver level always. Their default values can be high (as right now). |
# Description <!-- Thank you for your interest in sending a pull request. Please make sure to check the contribution guidelines. Link: https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html --> This PR follows up on [Issue 1384](#1384) and [PR 1509](#1509) by seperating actuator limits for calculating computed torques from physics solver limits. Fixes # (#1384) <!-- As a practice, it is recommended to open an issue to have discussions on the proposed pull request. This makes it easier for the community to keep track of what is being developed or added, and if a given feature is demanded by more than one party. --> ## 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) - New feature (non-breaking change which adds functionality) ## 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 - [ ] 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 --> --------- Signed-off-by: James Tigue <[email protected]> Co-authored-by: Pascal Roth <[email protected]>
…1873) # Description The previous fix in #1654 was checking if `effort_limits_sim` is None instead of checking `cfg.effort_limits_sim` for explicit actuators. This did NOT work as effort limits sim is a tensor that gets assigned the value on initialization. The new fix now adds an implicit/explicit model attribute to the actuator model to ensure the right defaults are getting set. It moves all the implicit actuator warning code to its class to keep the articulation class cleaner. We also revert the behavior of setting velocity limits for implicit actuators to the state before #1509. Before that change, the parameter `velocity_limit` was set in the configurations but not getting passed through. The MR #1509 allowed these values to be set which caused many of the assets to not train anymore or behave differently between IsaacLab versions. We now revert this behavior with a warning. If users want to set the limits, they should use the `effort_limit_sim` and `velocity_limit_sim` quantities. Fixes #1837 ## Type of change - Bug fix (non-breaking change which fixes an issue) ## Screenshot The training of Allegro hand environment: * Green: The current main at 6a415df * Black: This MR * Orange: Commenting out the setting of `write_joint_velocity_to_sim` which was introduced in #1509.  ## 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 - [ ] 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 --------- Signed-off-by: Mayank Mittal <[email protected]> Co-authored-by: James Tigue <[email protected]>
# Description <!-- Thank you for your interest in sending a pull request. Please make sure to check the contribution guidelines. Link: https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html --> This PR follows up on [Issue 1384](#1384) and [PR 1509](#1509) by seperating actuator limits for calculating computed torques from physics solver limits. Fixes # (#1384) <!-- As a practice, it is recommended to open an issue to have discussions on the proposed pull request. This makes it easier for the community to keep track of what is being developed or added, and if a given feature is demanded by more than one party. --> ## 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) - New feature (non-breaking change which adds functionality) ## 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 - [ ] 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 --> --------- Signed-off-by: James Tigue <[email protected]> Co-authored-by: Pascal Roth <[email protected]>
…1873) # Description The previous fix in #1654 was checking if `effort_limits_sim` is None instead of checking `cfg.effort_limits_sim` for explicit actuators. This did NOT work as effort limits sim is a tensor that gets assigned the value on initialization. The new fix now adds an implicit/explicit model attribute to the actuator model to ensure the right defaults are getting set. It moves all the implicit actuator warning code to its class to keep the articulation class cleaner. We also revert the behavior of setting velocity limits for implicit actuators to the state before #1509. Before that change, the parameter `velocity_limit` was set in the configurations but not getting passed through. The MR #1509 allowed these values to be set which caused many of the assets to not train anymore or behave differently between IsaacLab versions. We now revert this behavior with a warning. If users want to set the limits, they should use the `effort_limit_sim` and `velocity_limit_sim` quantities. Fixes #1837 ## Type of change - Bug fix (non-breaking change which fixes an issue) ## Screenshot The training of Allegro hand environment: * Green: The current main at 6a415df * Black: This MR * Orange: Commenting out the setting of `write_joint_velocity_to_sim` which was introduced in #1509.  ## 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 - [ ] 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 --------- Signed-off-by: Mayank Mittal <[email protected]> Co-authored-by: James Tigue <[email protected]>
) # Description <!-- Thank you for your interest in sending a pull request. Please make sure to check the contribution guidelines. Link: https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html --> This PR follows up on [Issue 1384](isaac-sim#1384) and [PR 1509](isaac-sim#1509) by seperating actuator limits for calculating computed torques from physics solver limits. Fixes # (isaac-sim#1384) <!-- As a practice, it is recommended to open an issue to have discussions on the proposed pull request. This makes it easier for the community to keep track of what is being developed or added, and if a given feature is demanded by more than one party. --> ## 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) - New feature (non-breaking change which adds functionality) ## 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 - [ ] 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 --> --------- Signed-off-by: James Tigue <[email protected]> Co-authored-by: Pascal Roth <[email protected]>
…saac-sim#1873) # Description The previous fix in isaac-sim#1654 was checking if `effort_limits_sim` is None instead of checking `cfg.effort_limits_sim` for explicit actuators. This did NOT work as effort limits sim is a tensor that gets assigned the value on initialization. The new fix now adds an implicit/explicit model attribute to the actuator model to ensure the right defaults are getting set. It moves all the implicit actuator warning code to its class to keep the articulation class cleaner. We also revert the behavior of setting velocity limits for implicit actuators to the state before isaac-sim#1509. Before that change, the parameter `velocity_limit` was set in the configurations but not getting passed through. The MR isaac-sim#1509 allowed these values to be set which caused many of the assets to not train anymore or behave differently between IsaacLab versions. We now revert this behavior with a warning. If users want to set the limits, they should use the `effort_limit_sim` and `velocity_limit_sim` quantities. Fixes isaac-sim#1837 ## Type of change - Bug fix (non-breaking change which fixes an issue) ## Screenshot The training of Allegro hand environment: * Green: The current main at 78bc07e * Black: This MR * Orange: Commenting out the setting of `write_joint_velocity_to_sim` which was introduced in isaac-sim#1509.  ## 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 - [ ] 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 --------- Signed-off-by: Mayank Mittal <[email protected]> Co-authored-by: James Tigue <[email protected]>
…_physx_view (isaac-sim#1509) # Description <!-- Thank you for your interest in sending a pull request. Please make sure to check the contribution guidelines. Link: https://isaac-sim.github.io/IsaacLab/source/refs/contributing.html --> Previously the velocity limits of the the ActuatorBaseCfg do not get used in most actuators. Only the DCMotor actuator uses it but it only uses it for torque-speed limitations. This PR propagates the velocity_limits of the ActuatorBaseCfg to the articulation root_physx_view. Fixes isaac-sim#1384 <!-- As a practice, it is recommended to open an issue to have discussions on the proposed pull request. This makes it easier for the community to keep track of what is being developed or added, and if a given feature is demanded by more than one party. --> ## 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) ## 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 - [x] 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 --> --------- Signed-off-by: Kelly Guo <[email protected]> Co-authored-by: Kelly Guo <[email protected]> Co-authored-by: Kelly Guo <[email protected]>
) # Description <!-- Thank you for your interest in sending a pull request. Please make sure to check the contribution guidelines. Link: https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html --> This PR follows up on [Issue 1384](isaac-sim#1384) and [PR 1509](isaac-sim#1509) by seperating actuator limits for calculating computed torques from physics solver limits. Fixes # (isaac-sim#1384) <!-- As a practice, it is recommended to open an issue to have discussions on the proposed pull request. This makes it easier for the community to keep track of what is being developed or added, and if a given feature is demanded by more than one party. --> ## 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) - New feature (non-breaking change which adds functionality) ## 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 - [ ] 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 --> --------- Signed-off-by: James Tigue <[email protected]> Co-authored-by: Pascal Roth <[email protected]>
Description
Previously the velocity limits of the the ActuatorBaseCfg do not get used in most actuators. Only the DCMotor actuator uses it but it only uses it for torque-speed limitations.
This PR propagates the velocity_limits of the ActuatorBaseCfg to the articulation root_physx_view.
Fixes #1384
Type of change
Screenshots
Please attach before and after screenshots of the change if applicable.
Checklist
pre-commit
checks with./isaaclab.sh --format
config/extension.toml
fileCONTRIBUTORS.md
or my name already exists there