ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Decimate Collada/urdf for faster collision checking in MoveIt

asked 2014-05-26 03:09:48 -0500

Rabe gravatar image

Hey guys,

I got a couple of .dae files of my robot in fairly high detail. After creating the .urdf with all the joint limits and stuff, I have created a MoveIt-package with those files and can now see the robot and plan in Rviz.

Since my dae files are fairly high detail, I wanted to know if there is a "ROS"-way of decreasing the polynom count in a safe way, so that MoveIt can check faster for collisions.

I didn't create the dae files and don't know much about this format, but my guess would be if I just open them up in a program like blender or something and save them again with less detail, there is no way to guarantee that I didn't accidently remove parts from the robot, letting MoveIt believe that this certain space is empty? Also, some kind of setting for the error would be nice, like "Create me a model which is at maximum 15 mm away from the actual robot"

Is there a script/package/program, that does this?

Thanks in advance, Rabe

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2014-05-26 04:06:04 -0500

updated 2014-05-26 04:11:23 -0500

Depending on the fidelity you want to achieve and the link shapes of your robot, this might be hard to completely automate. I´d recommend giving either Blender or Meshlab a shot. Both allow generating convex hulls for meshes very easily. These generally have a much lower poly count than the original meshes and you can easily simplify them some more after convexification using Meshlab´s simplification filters. Using convex hull, you´ll always overestimate the colliding volume, which gives you a safety margin (but also can result in a reduction of collision-free workspace size if the convex hulls add too much volume). The arms and legs of this 3D printable Atlas model are an example of using convex hulls of the original (much more complicated) geometry.

The other viable option is specifying the collision geometry manually using primitives such as boxes and cylinders, but that is a much more involved manual process for most practical robot systems.

That´s the two practical approaches I used so far at least, but I´m also interested in other ideas, so keep the answers coming ;)

edit flag offensive delete link more


Thanks, I created a convex hull with meshlab and this reduced the planning time from 2-4 seconds to under .5 seconds. I am still keeping the question open, since I am also intrested in more automated and use-case-specific ways to do this.

Rabe gravatar image Rabe  ( 2014-05-26 23:07:01 -0500 )edit

Question Tools



Asked: 2014-05-26 03:09:48 -0500

Seen: 669 times

Last updated: May 26 '14