URDF Definitions

I am on the course URDF for Robot Modelling.

I have some really basic questions and would want someone to explain them.

Links have an origin we define

This origin is parent or child which depends on how we define it in the joints.

The joint has an origin. I am confused if this a a third origin how is it visualized?

As an example if two links have same origin xyz and rpy, then how can a joint have different origin values breaking their orientation?

Hi @mamojiz97

image

as you can see here that’s the main idea. the joint is between the 2 links

Imagine that you set the xyz and rpy of links on 0 0 0.
So, how can I joint both of them if there are in the same place?

well, that’s work for joint

<joint name="base_link_joint" type="fixed">
    **<origin rpy="2  3.14 1" xyz="1 0 3" />** HERE
    <parent link="link_parent" />
    <child link="link_child" />
  </joint> 

In that line, you can define the position (xyz) and orientation (rpy). So, this is how joint works

Let me know if I was able to solve your doubt

Hi @Voltedge

Thank you for putting effort and it did give me an idea.

The question following your answer is that when
**<origin rpy="2 3.14 1" xyz="1 0 3" />** HERE

Doesn’t that change xyz and rpy of the link?

It was originally set to 0 0 0 but after the joint was added in between one of the links has moved away from 0 0 0. How is that possible?

        Doesn’t that change xyz and rpy of the link?

You changed the origin by joint, so the joint works like a media to connect with another link and restructure your models

  It was originally set to 0 0 0 but after the joint was added in between one of the links has moved away from 0 0 0. How is that possible?

The joint is connected to the 2 centers of each link, the issue is that for the “child” you will be able to configure it through the “origin” parameter

something like this…

Surely the value of xyz changes due to the joint, but I keep it at 0 0 0 to imply that we have not changed directly in the link configuration. All translation/rotation is generated by the joint

Let me know if I solved your doubt

1 Like

Hi @Voltedge

That was very clear and yes it solved my doubt.
If I may put this is in a few statements and please correct me if I am wrong:

  1. The origin that we define within the link definition in the URDF script is truly the pseudo center/origin of that geometry (as opposed to the true geometrical center) that I/we are concerned with.

  2. If we don’t specify an origin in the link definition, the geometrical center of the link becomes the origin of the link.

  3. The origin in a joint is basically how you want to move these origins of the links (whether defined or not) in relative to each other. This “origin of joint” moves the origin of the child link (in other words one end of joint is the origin of the parent link and the origin of the joint is the origin of child link).

  4. Lastly, the orientation of the child link after the joint is made/added takes the orientation of the parent link (only if “rpy” is not defined).
    I am hoping that this sums up my doubts using your clarifications.

Thank You

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.