[Question] Model with Closed-Loop Kinematics Explodes on Environment Reset #3185
Replies: 3 comments
-
Thanks for posting this. Would you mind posting your reset code for us instead of uploading it in a zip file? Here are some guidelines in the docs. Thanks! |
Beta Was this translation helpful? Give feedback.
-
I apologize for the incorrect upload. Here is my Gist link: <script src="https://gist.github.com/home-river/b4e3ee454db6be02c52e66d2b72c52af.js"></script>The complete reset test logic is in the Originally, I encountered this issue during skrl training: I embedded the articulation reset logic from the MDP’s Additionally, I found that the initial joint angles set through InitialStateCfg in my asset’s cfg configuration do not seem to be applied correctly. Could this be related to the issue I’m facing? Thank you for the suggestion—I’ll implement it and report back whether it fixes the problem. I look forward to your feedback. |
Beta Was this translation helpful? Give feedback.
-
Thank you for following up. I'll move this post to our Discussions in case you need further help. |
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
Hi,
I am currently working with a custom USD model of a hydraulic manipulator. A key feature of this model is that it contains several closed-loop kinematic chains, particularly in the gripper mechanism. To handle this, I have already set the exclude from articulation property on the necessary passive joints within the closed loops.
The Problem
The model loads and simulates correctly within the standard Isaac Sim GUI. When I press "Play," the physics are stable, and the arm holds its position.
However, when I use this model in an RL environment with Isaac Lab, I encounter a critical issue during the environment reset. While the agent can control the arm correctly during an episode, the entire model violently "explodes" or is flung away the moment the env.reset() function is called.
Below is the file of my model.
arm.zip
Then this is the script I used to test the reset function.
reset.zip
Investigation and Details
Root Cause: I have isolated the problem to the Gripper sub-assembly. This is the primary part of the model that contains the closed-loop structure. If I remove the gripper, the rest of the arm resets without any issues. This strongly suggests the problem is related to how the physics engine handles resetting bodies with closed-loop constraints.
Base Model: Please note that the "Car" part of my model is a simplified, static base (it's fixed to the world and has no wheels), so the issue is not related to root body dynamics. I apologize for its crude appearance.
What I've Tried:
Applying exclude from articulation to the passive joints in the loop.
Verifying that the model is stable in the Isaac Sim GUI player.
Simplifying the model to isolate the issue to the gripper.
Could you please provide any guidance or recommended workarounds for successfully resetting articulated systems with closed-loop kinematics in an RL context? Is there a specific technique or setting I might be missing?
Thank you for your time and help.
Below is a picture of my grip.
Beta Was this translation helpful? Give feedback.
All reactions