Home | Tutorials | Wiki | Issues
Ask Your Question

Gazebo/SDF (vs URDF) and MoveIt/PlanningScene

asked 2014-03-31 10:23:20 -0500

ahb gravatar image

updated 2014-04-01 03:51:16 -0500

Hello Gazebo developers and users,

I'd much appreciate your thoughts on how to solve the following issue:

Robotics lab with multiple ROSified industrial robots that is simulated in Gazebo. Currently, each robot is modeled as .xacro (by xacro), which is converted to .urdf that in turn becomes an .sdf (through gzsdf). The relevant inventory in the lab is modeled as multiple .sdf models (using .dae meshes). SDFs <include> feature is used to combine "ground" .sdf models into larger ones, i.e. a camera SDF together with a camera holder SDF. This is also done in order to attach different items to the robot (cameras, grippers, etc). Finally, a .world file brings together a couple of independent, i.e. not connected by joints, models to make up the whole lab.

This works out quite well, e.g. to change the current gripper I only have to modify one of the "composition" .sdf files - I have a hierarchical set of models that is easy to maintain and adjust to a changed situation in the lab.

Solved issues:

  • Visualize current gazebo world together with simulated sensors in rviz. Use .sdf to contextualize real sensor data with static objects in lab. -> gazebo2rviz

Open issue:

  • MoveIt integration: How to use the current gazebo world as PlanningScene for MoveIt?
    What I want to achieve is the following:
    • Maintain only one description for each entity (automatically converted to other formats if necessary).
    • Have a hierarchy of models, i.e. adding a gripper should not require to redefine the robot it is attached to.
    • Use the same description as basis for MoveIt for the simulated and the real lab.
  • I see the following obstacles - any hint at solving them is greatly appreciated:
    • Where to attach end-effectors in a way that they are valid collision elements and taken into account for path planning? In .xacro, .sdf or add them through custom to the PlanningScene at runtime?
    • Write sdf2moveit and gazebo2moveit (or *2planning_scene) myself? If so, how to properly combine the URDF necessary for MoveIt and the SDF necessary - and to be honest preferred - for gazebo?
    • What to push to TF common to simulation and reality, for simulation only and for real robots only?

To recap: How can we achieve a better integration in different parts (here: Visual and collision models for Gazebo, Rviz and MoveIt) of ROS?

NOTE: I will cross-post this to the moveit mailing list (moveit-users at googlegroups dot com).
Update: here is the post and discussion

Kind regards, ahb

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2014-04-01 16:05:42 -0500

nkoenig gravatar image

The three bullet points under moveit integration can be addressed by sticking to URDF + xacro. You can have a URDF for each model, and xacro to configure the URDFs differently. The URDF files can be loaded into Gazebo and into ROS for use with MoveIt.

I don't know much about moveit planning scenes. Can they be generated from sensor data, does it require URDF, or is it a special format?

Could you explaing your last bullet point "What to push to TF..."? I'm not sure what your question is.

edit flag offensive delete link more
Login/Signup to Answer

Question Tools

1 follower


Asked: 2014-03-31 10:23:20 -0500

Seen: 1,074 times

Last updated: Apr 01 '14