raisimTech / raisimLib

Visit www.raisim.com
http://www.raisim.com
Other
341 stars 91 forks source link

Closed kinematic chains #216

Open ecuniato opened 2 years ago

ecuniato commented 2 years ago

I'm trying to spawn a delta robot into RaiSim world from URDF, but it looks like URDF itself cannot describe closed chain articulated systems (this is possible for example with SDF). Since from my understanding RaiSim is using a slightly improved version of URDF, is it possible to create closed chain robots in it?

jhwangbo commented 2 years ago

Not yet. Currently, you can define a closed-loop chain in an MJCF file. I'll add this feature to URDF as well. But I have a long list of to-do's now. It will be done in about two weeks

ecuniato commented 2 years ago

Are there any updates on this?

jhwangbo commented 2 years ago

I can probably finish it next week

mpollayil commented 2 years ago

Any updates on this? Is it possible to close a kinematic chain in Raisim in some way?

jhwangbo commented 2 years ago

You can make it. But it's not satisfying now. At singular configurations, it can exert high force. I need time to think about a more stable algorithm

mpollayil commented 2 years ago

Thank you for the answer Prof. Hwangbo. Do you mean that I can close the chain in the urdf and use it in Raisim, or that I can use an MJCF file? Please keep us updated on the progress.

clanegge commented 2 years ago

Hi! I actually ran into the same problem. I tried to create a closed kinematic chain, but unfortunately, Raisim segfaults when loading the urdf. For simplicity I tried to create a closed "chain" made out of 4 cylindrical links all connected with revolute joints: closedChain

It obviously works when I only add three joints. As soon as I try to connect link4 (top) and link1 (right) with an additional one the example stops working.

For completeness here is the urdf file: closed_chain.txt

You can make it.

Am I doing something wrong? Or did you mean you can only do it using MJCF files?

Thanks for your help in advance.

bbokser commented 2 years ago

You can make it.

Does this mean it's actually implemented? I just tried this and got some very strange behavior--the simulation created two copies of the same link instead of connecting two joints to one link.