How does the computation of closed loop mechanism work?

The Articulation API allows to model closed loop mechanism / parallel mechanism in Isaac Sim. Some topics advise to lower the simulation step in order to make it work well.

However, there is no information in the documentation that explain the computation under the hood or any information in order to make it work well.

I would like to develop a learning environnement with robots having parallel linkages.

This raises the following questions:

  1. How does the simulation work when using this API ? For instance, in the MuJoCo simulator, the dynamics computation is solved as an optimization problem with closed loops modeled as constraints as explained in [1][2]. Where constraints error is turned into an acceleration at loop closure. Does Isaac work in a similar way ?
  2. Is there any general advice to obtain the best behavior from this API ?
  3. Is this feature mature enough for robot learning, i.e Reinforcement Learning and Sim2Real ? If yes, does it scale to many robots at the same time with decent compute time ?
  4. Does anyone have ever used it for reinforcement learning for humanoid robots? For instance, we can see on the project GROOT page a video with the Agility Digit, Fourier Intelligence GR-1 and Apptronick Apollo robots, that all have closed kinematic chains in their architecture , evolving in simulation . Was the Articulation API used for this ?

Thanks.

1 Like

UP. Maybe an nvidia engineer directly involved in Isaac would be best suited to answer. If you know one, please forward him/her this message.

Thank you for your interest in Isaac Lab. To ensure efficient support and collaboration, please submit your topic to its GitHub repo following the instructions provided on Isaac Lab’s Contributing Guidelines regarding discussions, submitting issues, feature requests, and contributing to the project.

We appreciate your understanding and look forward to assisting you.

I do not want to contribute in any way.

However, if you want that I ask the question on Github Q&A, it’s done.
You’ll find the link to the discussion here.