Replies: 5 comments
-
|
From experimenting, I noticed that the closed loop behaviour is OK when creating the Articulation object, but NOT calling: When stepping. |
Beta Was this translation helpful? Give feedback.
-
|
Thank you for posting this. You have two separate but interacting issues here: (1) how PhysX/Isaac Sim handle closed loops (via “exclude from articulation”), and (2) what Here are a few things to consider (summary still under review). 1. Closed loops and “Exclude from Articulation”Closed-loop chains in Isaac Sim/PhysX are supported by breaking the loop at one joint and marking that joint as “Exclude from Articulation,” so the physical constraint is kept but the articulation tree remains a tree.12 When you load the USD in the Isaac Sim GUI and just “apply forces to a body,” you are effectively using the PhysX joint configuration as authored in USD (including which joints are excluded from articulation), and you are not overwriting joint drive parameters from Isaac Lab code. That is why your closed-loop behavior looks correct in that mode.21 With Isaac Lab’s So the fact that the loop behaves correctly when you do not call 2. IdealPDActuatorCfg vs implicit actuatorsThe The documentation notes for the PD actuator (Isaac Lab API) emphasize that for implicit actuators, stiffness and damping are set to the simulation directly; the class itself does not compute torques but keeps approximate torques for logging. This means: 5
In a closed loop, if the excluded joint or its neighbors rely on a specific drive configuration (e.g., some spring or damping, or specific limits) and you overwrite that to 3. Why behavior changes when calling
|
Beta Was this translation helpful? Give feedback.
-
|
Hi. I really appreciate your detail explanation and references. Thank you very much for your help. I'll carefully try to solve this today and write back again with any other tip I encounter. |
Beta Was this translation helpful? Give feedback.
-
|
Hi @RandomOakForest, thank you very much again for your guidance. Thanks to it I was able to implement a closed loop model of the robot that seems to behave correctly when using it as an Articulation Asset. When importing it as an Articulation, I notice different behaviour of the closed loop mechanism when the actuators apply effort when loading the model with different values of solver_position_iteration_count and solver_velocity_iteration_count. For example: The behavour of the model seems better when using: But I don't think it is feasable to train an RL algorithm with many environments in parallel with this higher iteration count. Do you have any guidance on tuning this count and if there is another parameter involved in how accurate or how "stiff" the excluded joint behaves? |
Beta Was this translation helpful? Give feedback.
-
|
Following up, I'll move this post to our Discussions section. In general, for RL with many parallel envs, you want the minimum settings that keep the mechanism stable and “good enough” instead of “perfect”. A good workflow:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Question
I am working on a robot that I want to model with closed loops mechanisms. I managed to have the USD model working by selecting via isaac-sim's GUI the joints that close the loop to: "Exclude from Articulation". When loading this model using the GUI I can apply a force to a body and I see that the resulting movement in the closed loop mechanism is correct.
I now want to load the USD and create an Articulation object so that I can integrate this model with the RL training. When doing this I define position actuators in the motor with a certain stiffness and damping. And also I define stiffness = 0 in the passive joints. When simulating this, the closed loop mechanism does not move correctly.
Do you have any guidance when dealing with the Articulation object and closed loop mechanisms? Is there any documentation on a robot with closed loops that works using the Articulation from isaac lab?
I use a very similar loop than the one shown here:
#1250
And this is more or less the basic Actuation I have:
The idea with this cfg is to have actuators and passive joints and the resulting behaviour should be according with the closed loop system too.
Thank you very much for your help.
Build Info
Describe the versions that you are currently using:
Beta Was this translation helpful? Give feedback.
All reactions