Gazebo | Ignition | Community
Ask Your Question
2

Is it possible to check whether a model intersects some geometry?

asked 2013-01-23 02:18:43 -0600

Max Pfingsthorn gravatar image

updated 2013-01-23 02:19:15 -0600

I would like to use Gazebo for simulating underwater vehicles. Ideally, I would want to know how much of my vehicle's volume is submerged in a water body, this allows me to calculate how much buoyancy to apply to make it float.

However, I can imagine more uses for a "volume query" if you will:

  • Triggers for world changes, e.g. some event occurs if the robot enters or exits the volume

  • Sensor behavior changes, e.g. a kinect won't work in the "outdoor" volume

  • For external simulators: e.g. Radio-dropout zones in RoboCup Rescue (though this should be implemented as a wifi blocking volume rather than a "wifi doesn't work here" volume)

Ideally, there should be three states: Outside, Transition (robot intersects boundary), Inside

I know this is possible with Bullet, I've done something similar, but it's necessary to set up some collision masks and do a manual query. Is there a way to access the underlying physics engine? Also, is it possible to add such logical geometry without visual and only "non-colliding" (does this make sense?) collision shapes to explicitly ask them for collisions later in a plugin?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2013-01-23 21:01:26 -0600

nkoenig gravatar image

Gazebo 1.4 (to be released on Feb 1, 2013) will have access to the physics engine (currently ODE, with Bullet scheduled for Gazebo 1.5). You'll have access to the physics engine via a WorldPlugin.

A volume query would be a nice addition to Gazebo: I've created and issue for this here (https://bitbucket.org/osrf/gazebo/issue/436/underwater-robotics-and-volume-query)

I'm more than willing to help you tackle this new feature if you're up for it.

edit flag offensive delete link more

Comments

Thanks for the clarification. I guess this will be a not-so-trivial addition to Gazebo since it's not only a matter of doing the query, it's also a matter of describing these volumes in SDF. Or could this be solved as a model plugin? After all, it's just a matter of setting collision masks properly.

Max Pfingsthorn gravatar imageMax Pfingsthorn ( 2013-01-24 07:23:27 -0600 )edit

The way I understood it, you want to check if a shape is partially protruding from another shape. This is a bit more difficult than plain collision checking.

nkoenig gravatar imagenkoenig ( 2013-01-24 11:28:46 -0600 )edit

Question Tools

Stats

Asked: 2013-01-23 02:18:43 -0600

Seen: 759 times

Last updated: Jan 23 '13