0
$\begingroup$

Gazebo Answers logo

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?


Originally posted by Max Pfingsthorn on Gazebo Answers with karma: 53 on 2013-01-23

Post score: 2

$\endgroup$

1 Answer 1

0
$\begingroup$

Gazebo Answers logo

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.


Originally posted by nkoenig with karma: 7676 on 2013-01-23

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by Max Pfingsthorn on 2013-01-24:
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.

Comment by nkoenig on 2013-01-24:
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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.