[ros-users] urdf frame placement

Miguel Prada miguel.register at gmail.com
Tue Mar 23 09:48:57 UTC 2010


El 23/03/2010, a las 04:28, John Hsu escribió:

> Hi Miguel,
> 
> In the attached launch script you had set a parameter in rviz node
>     <node pkg="rviz" name="rviz_visualizer" type="rviz">
>         <param name="robot_description" command="cat /home/mprada/test_robot_urdf.xml"/>
>     </node>
> I recommend publishing the parameter and starting the rviz node separately,
>     <node pkg="rviz" name="rviz_visualizer" type="rviz"/>
>     <param name="robot_description" textfile="$(find your_stack_name)/test_robot_urdf.xml" />

I already had changed that, but thanks anyways :)

> to spawn the robot in sim:
>     <node name="spawn_robot" pkg="gazebo_tools" type="gazebo_model" args="-p robot_description spawn robot_1" respawn="false" output="screen" />
> 
> for starting robot_state_publisher, a good example is
> pr2_controller_manager/controller_manager.launcher
> 
> By the way, does gazebo run on the Intel graphics card for you?  I am guessing no?

I've tried what you mention to spawn the robot into the sim. The visualizer doesn't work indeed but, watching the clocks and FPS counter on the bottom, I would say that the simulation is running.

Also, I can read a warning in the terminal I used to invoke roslaunch that says: "URDF root link "world" is deprecated, please remove joint to world link from your URDF". What does this stand for?

In addition, when the gazebo window opens up, I cannot see the robot on the models list on the upper right corner (even when changing world link name to base_link). Is this allright?

> thanks,
> John


El 22/03/2010, a las 18:59, Josh Faust escribió:

> Yes -- rviz uses the tf transforms to figure out where things are relative to the fixed frame.
> 
> What Intel graphics card do you have?  Can you send a screenshot of rviz not working?  I've been trying to keep things working with on the integrated Intel cards since they're so prevalent.

The graphic card is "Mobile 4 Series Chipset Integrated Graphics Controller". When I run either gazebo or rviz I get this message, which I've already googled and tried to fix with no success:

do_wait: drmWaitVBlank returned -1, IRQs don't seem to be working correctly.
Try adjusting the vblank_mode configuration parameter.

Also, the visualization in gazebo doesn't work at all, while in rviz I can see the grid and move it around (although it sometimes freezes). I can say the frames are being published because the position and orientation that can be seen on the left panel are being updated fine. However, I can see no frames or visual representation of the robot either. 

I can recall being able to see the frames once and I've been trying to reproduce what I did, but I don't find out what am I doing differently. Maybe this screenshot gives you some idea (http://www.flickr.com/photos/miguelprada/4456230501/).


> Josh

Thanks to both of you for your help.

Best,
Miguel.

> 
> On Mon, Mar 22, 2010 at 10:31 AM, Miguel Prada <miguel.register at gmail.com> wrote:
> Ok, I'll reply to myself. I think I'm going in the right direction now.
> 
> I added a robot_state_publisher node to the previous scheme I was talking about. This node reads the robot description from the urdf file, receives JointState messages from the joint_states topic, and publishes the tf frames.
> 
> Now everything seems to be working fine when I open rviz to visualize (no errors or warnings). However I have to rely on the frame position and orientation that's printed on the display properties panel, since the visualization doesn't work on the computer I'm working on (damn Intel integrated graphics...).
> 
> Does this sound better?
> 
> Regards,
> Miguel.
> 
> El 21/03/2010, a las 21:06, Miguel Prada escribió:
> 
>> 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.
>> 
>> <urdf_rviz.zip>
>> 
>> 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
>> 
> 
> 
> _______________________________________________
> 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/20100323/4390706d/attachment-0003.html>


More information about the ros-users mailing list