# some precise definition or URDF's origin/rpy attribute?

Hello,

I'm looking for a precise definition of the roll-pitch-yaw attribute and how to compute change of reference with it.

I found these pages, but there is too much space for interpretation to my taste:

- http://wiki.ros.org/urdf/XML/joint
- http://answers.ros.org/question/58863...
- http://answers.ros.org/question/58742...
- http://wiki.ros.org/geometry/Rotation...

Is there some other source I missed? If not, I'm planning to propose the following for inclusion in http://wiki.ros.org/urdf/XML/ .

```
<origin> (optional: defaults to identity if not specified)
This is the transform from the parent link to the child link. The joint is located at the origin of the child link, as shown in the figure above.
xyz (optional: defaults to zero vector)
Represents the $$x,y,z$$ offset.
rpy (optional: defaults 'to zero vector 'if not specified)
Represents the rotation around fixed axis: first roll around x, then pitch around y and finally yaw around z. All angles are specified in radians.
combining the xyz and rpy attributes, here is how one can change the coordinates of a point "p" from the child frame to the parent frame:
p_parent = [x;y;z] + Rz(yaw)*Ry(pith)*Rx(roll)*p_child
Rx(a) = [1, 0, 0; 0, cos(a), -sin(a); 0, sin(a), cos(a)]
Ry(a) = [cos(a), 0, sin(a); 0, 1, 0; -sin(a), 0, cos(a)]
Rz(a) = [cos(a), -sin(a), 0; sin(a), cos(a) 0; 0, 0, 1]
```

thanks!

hi @barthelemy, i like your idea to contribute those new details on URDF origin calculations - were they correct and could you still do that?