[ros-users] urdf frame placement

Miguel Prada miguel.register at gmail.com
Sun Mar 21 20:06:02 UTC 2010


Hi John,

First of all, thanks for you reply.

I'd like to mention that talking about this issue with a colleague I've been able to understand (at least some of) the reasons why DH parameters are not the best choice to describe kinematic chains (e.g. problems with branching chains).

> For example, I find it quite confusing that the dimensions of the links are specified inside the joint element.
> 
> I am not sure what you mean by above (here's the same link to the joint element definition), can you please elaborate on the question a bit?
> 
> The dimensions of links are specified here, where you can specify the dimensions for <visual> and <collision> body dimensions.


This is because I was looking at it the wrong way. I was thinking of the link dimension only as the distance between two consecutive joints, but now I can see that it makes no sense. For example, as I mentioned above, that would make impossible (or at least very difficult) to represent branching chains.

> Also, is the world frame oriented like it's shown on the schematic on the urdf tutorial page? With the y axis pointing upwards?
> 
> I think you are referring to this page?  The "World" frame is drawn to show how we define relative frame transforms between a sample set of frames.  You can view the "world" as a special link that's inertially fixed.  There is no requirement on how you define the "World" frame.  The informations captured in a robot description (URDF or DH) are simply relative transforms between frames that are attached to bodies and joints.  (So for example, you can take the tutorial screen and rotate it sideways, and the individual transforms between frames should remain valid).


I guess that this must be a misconception on my side again. I thought that there was a unique 'world' frame, well defined, and upon which the rest of the transforms could be referenced. So I guess my question should have been: When a frame (e.g. world) is selected as the fixed frame in rviz, how does rviz display this frame? With the z axis pointing up?

Does this question make more sense?

Also, as a tool to understand this better, I'm trying to visualize a simple urdf robot description using rviz, but I'm having some trouble with this too. The way I'm doing it is creating a launch file that spawns a rviz node and loads the urdf file as a parameter, as explained here. The launch file is the one used in the 'create your own urdf' tutorial, with very simple box visual geometry added to the links. You can find the urdf and launch files on the attachment.

The problem is that when I add the robot model display to rviz, and select world as the fixed frame, there's an error on the Robot Model display which says that there are no transforms from the links to the world ( No transform from [linkX] to [/world] ). There's also a .Global Status warning about the Fixed Frame which states "No tf data. Actual error: Fixed Frame [/world] does not exist".

I realise that I'm probably doing it in a completely wrong way, so I would appreciate some pointers on the good direction. I have already read everything related that I've been able to find on the wiki (mostly on tf, rviz and urdf pages).

Thanks in advance for you help and kindness :)

Best,
Miguel.



El 19/03/2010, a las 19:52, John Hsu escribió:

> Hi Miguel,
> 
> In general when describing the relative pose of two rigid bodies(links), a 6dof transform is used (as in tf).  That's the same approach taken in URDF.  To be more specific, the same transform is the <origin> tag in your <joint>-element.  In addition, for revolute, prismatic and fixed joints, the joint axis coincides with the child link origin.
> 
> If you need more information on conversion from D-H parameters to transforms between rigid body links, this link to the joint element definition should help you get started.  Please let me know if you find the diagram(s) misleading or inadequate.   As usual, we always appreciate any comments or code (e.g. parser) contributions :)
> 
> For example, I find it quite confusing that the dimensions of the links are specified inside the joint element.
> 
> I am not sure what you mean by above (here's the same link to the joint element definition), can you please elaborate on the question a bit?
> 
> The dimensions of links are specified here, where you can specify the dimensions for <visual> and <collision> body dimensions.
> 
> Also, is the world frame oriented like it's shown on the schematic on the urdf tutorial page? With the y axis pointing upwards?
> 
> I think you are referring to this page?  The "World" frame is drawn to show how we define relative frame transforms between a sample set of frames.  You can view the "world" as a special link that's inertially fixed.  There is no requirement on how you define the "World" frame.  The informations captured in a robot description (URDF or DH) are simply relative transforms between frames that are attached to bodies and joints.  (So for example, you can take the tutorial screen and rotate it sideways, and the individual transforms between frames should remain valid).
> 
> As a side note, we are working on a URDF->COLLADA converter (package name collada_urdf in robot_model trunk) should you be interested.
> 
> Hope I am answering your questions correctly.
> Best,
> John
>  
> 
> On Wed, Mar 17, 2010 at 10:41 AM, Miguel Prada <miguel.register at gmail.com> wrote:
> Hi,
> 
> I'm quite new to ROS and I'm trying to describe a simple robot manipulator using urdf format.
> 
> I'm having some trouble understanding the convention used (and the parameters involved), and I just wanted to ask why is it that D-H convention is not used. Specially with it being a standard for describing manipulators, as far as I know.
> 
> For example, I find it quite confusing that the dimensions of the links are specified inside the joint element.
> 
> Also, is the world frame oriented like it's shown on the schematic on the urdf tutorial page? With the y axis pointing upwards?
> 
> Thanks,
> Miguel.
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
> 
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20100321/8b9206fa/attachment-0006.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: urdf_rviz.zip
Type: application/zip
Size: 1756 bytes
Desc: not available
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20100321/8b9206fa/attachment-0005.zip>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20100321/8b9206fa/attachment-0007.html>


More information about the ros-users mailing list