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><br>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>thanks,<br>John<br>

<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>