Creating a closed shape

asked 2019-02-19 08:34:34 -0600

PK gravatar image

updated 2019-02-20 08:20:51 -0600


I am trying to make a triangular frame where each edge is a cylinder. Each of the edges is to be connected to each other through a 'revolute' joint. However, I think it is not possible define such a structure in URDF since it can only represent a tree structure. I was wondering if you could help me with a workaround for this situation?

Thanks a lot!

edit retag flag offensive close merge delete


I'm a bit confused. If you have three links connected by three revolute joints you end up with a rigid system, just a fixed triangle essentially. What is it you're trying to build?

PeteBlackerThe3rd gravatar image PeteBlackerThe3rd  ( 2019-02-19 11:45:52 -0600 )edit

Hello Thank you for the reply. I am trying to create a triangular frame where we can rotate the rest of the frame along any one side. I am not sure if revolute joints are the suitable choice. My underlying question is if we can have a child link with different parents links?

PK gravatar image PK  ( 2019-02-19 12:35:11 -0600 )edit

It is not possible to have different parent links. However you can build 'tree' dependency structures so what you want may be possible with that. URDF does not support kinematic loops though. We'd need to see a diagram the linkages you're trying to model to help further.

PeteBlackerThe3rd gravatar image PeteBlackerThe3rd  ( 2019-02-19 13:17:28 -0600 )edit

Thank you for the prompt reply. Unfortunately, I am not allowed to upload a file since I do not have more than 5 points(new to the forum). However, I think if we have 3 links connected in a triangle with each edge connected by a joint, then we cannot have a tree structure, right?Thanks!

PK gravatar image PK  ( 2019-02-20 08:23:20 -0600 )edit

But since the triangle would be rigid you can model it as a single link. This link would then have three revolute joints connecting it to the other links of your robot. This potentially could be modelled with a tree structure. This is assuming I've interpreted what you're trying to do correctly.

PeteBlackerThe3rd gravatar image PeteBlackerThe3rd  ( 2019-02-20 09:06:05 -0600 )edit

Thank you! That makes sense. Just out of curiosity, if I were to make a system which needs kinematic loops, should I choose SDF? Thanks

PK gravatar image PK  ( 2019-02-21 08:25:04 -0600 )edit

Gazebo and SDF do support kinematic loops, that is correct. But it makes integrating with ROS difficult.

PeteBlackerThe3rd gravatar image PeteBlackerThe3rd  ( 2019-02-21 08:26:40 -0600 )edit

Thank you for all the help!

PK gravatar image PK  ( 2019-02-21 14:10:09 -0600 )edit