Unverified Commit f22b5eb8 authored by Antoine RICHARD's avatar Antoine RICHARD Committed by GitHub

Updates doc on actuators to include some references (#2656)

# Description

Expands the documentation on actuators and the importance of the
armature parameter when using explicit actuators.

## Type of change

- This change requires a documentation update

## 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
- [ ] 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
parent 3d5ea25d
...@@ -76,3 +76,25 @@ The following figure shows the actuator groups for a legged mobile manipulator: ...@@ -76,3 +76,25 @@ The following figure shows the actuator groups for a legged mobile manipulator:
We provide implementations for various explicit actuator models. These are detailed in We provide implementations for various explicit actuator models. These are detailed in
`isaaclab.actuators <../../api/lab/isaaclab.actuators.html>`_ sub-package. `isaaclab.actuators <../../api/lab/isaaclab.actuators.html>`_ sub-package.
Considerations when using actuators
-----------------------------------
As explained in the previous sections, there are two main types of actuator models: implicit and explicit.
The implicit actuator model is provided by the physics engine. This means that when the user sets either
a desired position or velocity, the physics engine will internally compute the efforts that need to be
applied to the joints to achieve the desired behavior. In PhysX, the PD controller adds numerical damping
to the desired effort, which results in more stable behavior.
The explicit actuator model is provided by the user. This means that when the user sets either a desired
position or velocity, the user's model will compute the efforts that need to be applied to the joints to
achieve the desired behavior. While this provides more flexibility, it can also lead to some numerical
instabilities. One way to mitigate this is to use the ``armature`` parameter of the actuator model, either in
the USD file or in the articulation config. This parameter is used to dampen the joint response and helps
improve the numerical stability of the simulation. More details on how to improve articulation stability
can be found in the `OmniPhysics documentation <https://docs.omniverse.nvidia.com/kit/docs/omni_physics/latest/dev_guide/guides/articulation_stability_guide.html>`_.
What does this mean for the user? It means that policies trained with implicit actuators may not transfer
to the exact same robot model when using explicit actuators. If you are running into issues like this, or
in cases where policies do not converge on explicit actuators while they do on implicit ones, increasing
or setting the ``armature`` parameter to a higher value may help.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment