<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>El 23/03/2010, a las 04:28, John Hsu escribió:</div><br class="Apple-interchange-newline"><blockquote type="cite">Hi Miguel,<br><br>In the attached launch script you had set a parameter in rviz node<br>    <node pkg="rviz" name="rviz_visualizer" type="rviz"><br>        <param name="robot_description" command="cat /home/mprada/test_robot_urdf.xml"/><br>

    </node><br>I recommend publishing the parameter and starting the rviz node separately,<br>    <node pkg="rviz" name="rviz_visualizer" type="rviz"/><br>
    <param name="robot_description" textfile="$(find your_stack_name)/test_robot_urdf.xml" /><br></blockquote><div><br></div><div>I already had changed that, but thanks anyways :)</div><br><blockquote type="cite">to spawn the robot in sim:<br>    <node name="spawn_robot" pkg="gazebo_tools" type="gazebo_model" args="-p robot_description spawn robot_1" respawn="false" output="screen" /><br>

<br>for starting robot_state_publisher, a good example is<br>pr2_controller_manager/controller_manager.launcher<br><br>By the way, does gazebo run on the Intel graphics card for you?  I am guessing no?<br></blockquote><div><br></div><div>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.</div><div><br></div><div>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?</div><div><br></div><div>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?</div><br><blockquote type="cite">thanks,<br>John<br></blockquote><div><br></div><div><br></div><div><div>El 22/03/2010, a las 18:59, Josh Faust escribió:</div><br><blockquote type="cite"><div class="gmail_quote"><div>Yes -- rviz uses the tf transforms to figure out where things are relative to the fixed frame.<br><br>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.<br></div></div></blockquote><div><br></div><div>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:</div><div><br></div><div>do_wait: drmWaitVBlank returned -1, IRQs don't seem to be working correctly.</div><div>Try adjusting the vblank_mode configuration parameter.</div><div><br></div><div>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. </div><div><br></div><div>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 (<a href="http://www.flickr.com/photos/miguelprada/4456230501/">http://www.flickr.com/photos/miguelprada/4456230501/</a>).</div><div><br></div><br><blockquote type="cite"><div class="gmail_quote"><div>Josh<br></div></div></blockquote><div><br></div><div>Thanks to both of you for your help.</div><div><br></div></div><div>Best,</div><div>Miguel.</div><br><blockquote type="cite">

<br><div class="gmail_quote">On Mon, Mar 22, 2010 at 10:31 AM, Miguel Prada <span dir="ltr"><<a href="mailto:miguel.register@gmail.com">miguel.register@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div style="word-wrap: break-word;">Ok, I'll reply to myself. I think I'm going in the right direction now.<div><br></div><div>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.</div>

<div><br></div><div>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...).</div>

<div><br></div><div>Does this sound better?</div><div><br></div><div>Regards,</div><div>Miguel.</div><div><br><div><div><div>El 21/03/2010, a las 21:06, Miguel Prada escribió:</div><br><blockquote type="cite"><div><div></div>

<div class="h5"><div style="word-wrap: break-word;"><div>Hi John,</div><div><br></div><div>First of all, thanks for you reply.</div><div><br></div><div>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).</div>

<div><br></div><div><blockquote type="cite"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">For example, I find it quite confusing that the dimensions of the links are specified inside the joint element.<br>

</blockquote><br>I am not sure what you mean by above (<a href="http://www.ros.org/wiki/urdf/XML/Joint" target="_blank">here's the same link to the joint element definition</a>), can you please elaborate on the question a bit?<br>

<br>The dimensions of links are specified <a href="http://www.ros.org/wiki/urdf/XML/Link" target="_blank">here</a>, where you can specify the dimensions for <visual> and <collision> body dimensions.<br></blockquote>

</div><div><br></div><div>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.</div>

<div><br></div><div><blockquote type="cite"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Also, is the world frame oriented like it's shown on the schematic on the urdf tutorial page? With the y axis pointing upwards?<br>

</blockquote><div><br>I think you are referring to <a href="http://www.ros.org/wiki/urdf/Tutorials/Create%20your%20own%20urdf%20file" target="_blank">this page</a>?  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).<br>

</div></blockquote></div><div><br></div><div>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?</div>

<div><br></div><div>Does this question make more sense?</div><div><br></div><div>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 <a href="http://www.ros.org/wiki/rviz/DisplayTypes/RobotModel" target="_blank">here</a>. 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.</div>

<div><br></div><div>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".</div>

<div><br></div><div>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).</div>

<div><br></div><div>Thanks in advance for you help and kindness :)</div><div><br></div><div>Best,</div><div>Miguel.</div><div><br></div><div></div></div></div></div><span><urdf_rviz.zip></span><div style="word-wrap: break-word;">

<div></div><div><br></div><div><div>El 19/03/2010, a las 19:52, John Hsu escribió:</div><br><blockquote type="cite"><div class="im">Hi Miguel,<br><br>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.<br>



<br>If you need more information on conversion from D-H parameters to transforms between rigid body links, this <a href="http://www.ros.org/wiki/urdf/XML/Joint" target="_blank">link to the joint element definition</a> 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 :)<br>



<br></div><div class="im"><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">For example, I find it quite confusing that the dimensions of the links are specified inside the joint element.<br>



</blockquote>
<br>I am not sure what you mean by above (<a href="http://www.ros.org/wiki/urdf/XML/Joint" target="_blank">here's the same link to the joint element definition</a>), can you please elaborate on the question a bit?<br>

<br>The dimensions of links are specified <a href="http://www.ros.org/wiki/urdf/XML/Link" target="_blank">here</a>, where you can specify the dimensions for <visual> and <collision> body dimensions.<br>

<br></div><div class="im"><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">Also, is the world frame oriented like it's shown on the schematic on the urdf tutorial page? With the y axis pointing upwards?<br>



</blockquote></div><div><div class="im"><br>I think you are referring to <a href="http://www.ros.org/wiki/urdf/Tutorials/Create%20your%20own%20urdf%20file" target="_blank">this page</a>?  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).<br>



<br></div><div class="im">As a side note, we are working on a URDF->COLLADA converter (<a href="https://code.ros.org/svn/ros-pkg/stacks/robot_model/trunk/collada_urdf/" target="_blank">package name collada_urdf in robot_model trunk</a>) should you be interested.<br>



<br>Hope I am answering your questions correctly.<br>Best,<br>John<br> </div></div><br><div class="gmail_quote"><div class="im">On Wed, Mar 17, 2010 at 10:41 AM, Miguel Prada <span dir="ltr"><<a href="mailto:miguel.register@gmail.com" target="_blank">miguel.register@gmail.com</a>></span> wrote:<br>



</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">Hi,<br>
<br>
I'm quite new to ROS and I'm trying to describe a simple robot manipulator using urdf format.<br>
<br>
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.<br>




<br></div><div class="im">
For example, I find it quite confusing that the dimensions of the links are specified inside the joint element.<br>
<br></div><div class="im">
Also, is the world frame oriented like it's shown on the schematic on the urdf tutorial page? With the y axis pointing upwards?<br>
<br></div><div class="im">
Thanks,<br>
Miguel.<br>
_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org" target="_blank">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
</div></blockquote></div><div class="im"><br>
_______________________________________________<br>ros-users mailing list<br><a href="mailto:ros-users@code.ros.org" target="_blank">ros-users@code.ros.org</a><br><a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>

</div></blockquote></div><br></div></blockquote></div><br></div></div></div><br>_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
<br></blockquote></div><br>
_______________________________________________<br>ros-users mailing list<br><a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br><a href="https://code.ros.org/mailman/listinfo/ros-users">https://code.ros.org/mailman/listinfo/ros-users</a><br></blockquote></div><br></body></html>