Ask Your Question
1

How to resize meshes in URDF?

asked 2017-10-18 18:09:20 -0600

BuilderMike gravatar image

updated 2017-10-19 16:34:40 -0600

I am currently drawing out my robot using URDF. I am at the end of the first URDF tutorial (see http://wiki.ros.org/urdf/Tutorials/Bu... ). My problem: once I added my mesh, it is very disproportionate to the rest of the drawing, and I have no idea how to resize the mesh. The tutorial states that: "Meshes can also be sized using relative scaling parameters or a bounding box size"

where do I find an example? Where is the documentation? and if no documentation or examples exist, could you please provide an example of code for a "bounding box" or "relative scaling"?

More detail:

image before meshes are added in urdf file:

image description

image after meshes are added in urdf file:

image description

the code importing the meshes:

   <!-- *********************(21) LMS LINK - MESHES****************************-->
  <!-- a "link" is the part that we are creating. All the internal tags describe
       this part. This is the body of Jimmy (both square levels) -->
  <link name="LMS_link">
    <visual>
      <geometry>
        <!--box dimensions is Meters. L X W X H where the L X H is a rectangle, 
            and the H extrudes it upwards -->
        <mesh filename="package://urdf_tutorial/meshes/LMS-200-30106.dae"/>
      </geometry>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <material name="white"/>
    </visual>
  </link>

    <!-- *********************(22) LMS to LMS PLATE JOINT **********************-->
    <!-- a joint allows us to create a relationship between two links (parts)-->
      <joint name="LMS_to_LMS_plate_joint" type="fixed">
        <parent link="LMS_plate_link"/>
        <child link="LMS_link"/>
        <!-- this is the point at which the two parts attach to one another-->
        <origin xyz="0 0 0"/>
      </joint>

I am building a URDF because it was suggested here: https://answers.ros.org/question/2718...

edit retag flag offensive close merge delete

Comments

@BuilderMike: please attach your images to your question directly. I've given you enough karma to do that.

gvdhoorn gravatar imagegvdhoorn ( 2017-10-19 02:31:03 -0600 )edit

Also: I would advise you follow regular ROS Naming conventions when naming links and joints as well. In summary: no capitals, anywhere, no whitespace, no special chars.

gvdhoorn gravatar imagegvdhoorn ( 2017-10-19 02:33:09 -0600 )edit

@gvdhoorn Thanks for the karma, I updated all my questions to include images instead of links. Also, thank you for the link to the URDF XML wiki.... I missed it when reading the tutorial. As for the naming convention, thanks for pointing out my error. Is there a document outlining these conventions?

BuilderMike gravatar imageBuilderMike ( 2017-10-19 16:52:24 -0600 )edit

re: conventions: I think I linked you to those ("ROS Naming conventions").

If you're looking for joint/link/frame naming conventions, there is geometry/CoordinateFrameConventions, but it's not too explicit.

No capitals or special chars ..

gvdhoorn gravatar imagegvdhoorn ( 2017-10-20 02:34:48 -0600 )edit

.. and no whitespace just makes sense: no guessing as to how someone CaPiTaLiseD their frames, no weird international char / localisation issues, etc.

I always follow wiki/Names with everything (files, directories, xacros, etc).

gvdhoorn gravatar imagegvdhoorn ( 2017-10-20 02:36:03 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
5

answered 2017-10-18 18:35:12 -0600

AndyZe gravatar image

This should do it:

<mesh filename="package://pkg_name/filepath/your_stl.stl" scale="0.001 0.001 0.001"/>

Alternatively, you could install Blender. It lets you scale stl's and also change the coordinate frame. See http://gazebosim.org/tutorials?tut=guided_i2

edit flag offensive delete link more

Comments

Hi AndyZe, Thanks for your answer and suggestion, At this point, I have so many packages to learn that it's overwhelming. Could you expand your answer on what the scale values mean? is it % or actual distance units, and if so which ones? Is there any documentation for this xml tag in a URDF context?

BuilderMike gravatar imageBuilderMike ( 2017-10-18 19:00:05 -0600 )edit

It's just multiplied by that factor. So in my example, the STL would be 1/1000th of the original size.

AndyZe gravatar imageAndyZe ( 2017-10-18 19:03:06 -0600 )edit

How did you know this... is there documentation on this xml tag somewhere? Thank you very much for your answer it did work for me.

BuilderMike gravatar imageBuilderMike ( 2017-10-18 19:10:54 -0600 )edit

Tribal knowledge. But seriously, I learned it from another person firsthand.

AndyZe gravatar imageAndyZe ( 2017-10-18 19:46:39 -0600 )edit

Tribal knowledge

This is all documented on the wiki, see wiki/urdf/XML.

gvdhoorn gravatar imagegvdhoorn ( 2017-10-19 02:29:15 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2017-10-18 18:09:20 -0600

Seen: 4,454 times

Last updated: Oct 19 '17