##

BuoyancyPlugin Class Reference

A plugin that simulates buoyancy of an object immersed in fluid. More...

`#include <BuoyancyPlugin.hh>`

Inherits ModelPlugin.

## Public Types

typedef boost::shared_ptr< ModelPlugin > | TPtr
| plugin pointer type definition More...

## Public Member Functions

| BuoyancyPlugin ()
| Constructor. More...
std::string | GetFilename () const
| Get the name of the handler. More...
std::string | GetHandle () const
| Get the short name of the handler. More...
PluginType | GetType () const
| Returns the type of the plugin. More...
virtual void | Init ()
| Override this method for custom plugin initialization behavior. More...
virtual void | Load (physics::ModelPtr _model, sdf::ElementPtr _sdf)
| Read the model SDF to compute volume and center of volume for each link, and store those properties in volPropsMap. More...
virtual void | Reset ()
| Override this method for custom plugin reset behavior. More...

## Static Public Member Functions

static TPtr | Create (const std::string &_filename, const std::string &_name)
| a class method that creates a plugin from a file name. More...

## Protected Member Functions

void | LoadParam (const sdf::ElementPtr &_sdf, const std::string &_name, V &_target, V _defaultValue=V()) const
| Load parameter value from _sdf and store it to the given reference, using the supplied default value if the element in _sdf is not found. More...
void | LoadParam (sdf::ElementPtr &_sdf, const std::string &_name, std::string &_target, const char *_defaultValue) const
| Load parameter value from _sdf and store it to the given reference, using the supplied default value if the element in _sdf is not found. More...
virtual void | OnUpdate ()
| Callback for World Update events. More...

## Protected Attributes

std::string | filename
| Path to the shared library file. More...
double | fluidDensity
| The density of the fluid in which the object is submerged in kg/m^3. More...
std::string | handleName
| Short name. More...
physics::ModelPtr | model
| Pointer to model containing the plugin. More...
sdf::ElementPtr | sdf
| Pointer to the plugin SDF. More...
PluginType | type
| Type of plugin. More...
event::ConnectionPtr | updateConnection
| Connection to World Update events. More...
std::map< int, VolumeProperties > | volPropsMap
| Map of <link ID, point> pairs mapping link IDs to the CoV (center of volume) and volume of the link. More...

## Detailed Description

A plugin that simulates buoyancy of an object immersed in fluid.

All SDF parameters are optional. <fluid_density> sets the density of the fluid that surrounds the buoyant object. <link> elements describe the volume properties of individual links in the model. For example: <link name="body"> <center_of_volume>1 2 3</center_of_volume> <volume>50</volume> </link> <center_of_volume> A point representing the volumetric center of the link in the link frame. This is where the buoyancy force will be applied. <volume> The volume of the link in kg/m^3. If center of volume and volume are not specified, the plugin will attempt to compute these properties from the link collision shapes. This computation will not be accurate if the object is not composed of simple collision shapes.

## Member Typedef Documentation

## TPtr

typedef boost::shared_ptr<ModelPlugin > TPtr

inherited

plugin pointer type definition

## Constructor & Destructor Documentation

## BuoyancyPlugin()

BuoyancyPlugin | ( |  | ) |

Constructor.

## Member Function Documentation

## Create()

static TPtr Create | ( | const std::string & | _filename,
|  | const std::string & | _name
| ) |  |

inline static inherited

a class method that creates a plugin from a file name.

It locates the shared library and loads it dynamically.

Parameters

  [in] | _filename | the path to the shared library.
  [in] | _name | short name of the plugin

Returns
  Shared Pointer to this class type

## GetFilename()

std::string GetFilename | ( |  | ) | const

inline inherited

Get the name of the handler.

## GetHandle()

std::string GetHandle | ( |  | ) | const

inline inherited

Get the short name of the handler.

## GetType()

PluginType GetType | ( |  | ) | const

inline inherited

Returns the type of the plugin.

Returns
  type of the plugin

## Init()

virtual void Init | ( |  | ) |

virtual

Override this method for custom plugin initialization behavior.

Reimplemented from ModelPlugin.

## Load()

virtual void Load | ( | physics::ModelPtr | _model,
|  | sdf::ElementPtr | _sdf
| ) |  |

virtual

Read the model SDF to compute volume and center of volume for each link, and store those properties in volPropsMap.

Implements ModelPlugin.

## LoadParam() [1/2]

void LoadParam | ( | const sdf::ElementPtr & | _sdf,
|  | const std::string & | _name,
|  | V & | _target,
|  | V | _defaultValue = `V()`
| ) |  | const

inline protected inherited

Load parameter value from _sdf and store it to the given reference, using the supplied default value if the element in _sdf is not found.

A message is written using gzmsg reporting whether the default value was used or not.

Parameters

  [in] | _sdf | The SDF element of the plugin.
  [in] | _name | Name of a tag inside the SDF.
  [out] | _target | The reference to store the param value to.
  [in] | _defaultValue | The default value.

## LoadParam() [2/2]

void LoadParam | ( | sdf::ElementPtr & | _sdf,
|  | const std::string & | _name,
|  | std::string & | _target,
|  | const char * | _defaultValue
| ) |  | const

inline protected inherited

Load parameter value from _sdf and store it to the given reference, using the supplied default value if the element in _sdf is not found.

A message is written using gzmsg reporting whether the default value was used or not. String specialization to allow accepting const char* values for std::string parameters.

Parameters

  [in] | _sdf | The SDF element of the plugin.
  [in] | _name | Name of a tag inside the SDF.
  [out] | _target | The reference to store the param value to.
  [in] | _defaultValue | The default value.

## OnUpdate()

virtual void OnUpdate | ( |  | ) |

protected virtual

Callback for World Update events.

## Reset()

virtual void Reset | ( |  | ) |

inline virtual inherited

Override this method for custom plugin reset behavior.

Reimplemented in TrackedVehiclePlugin, KeysToCmdVelPlugin, SimpleTrackedVehiclePlugin, WheelTrackedVehiclePlugin, RandomVelocityPlugin, ElevatorPlugin, FollowerPlugin, LinearBatteryPlugin, ActorPlugin, InitialVelocityPlugin, and SphereAtlasDemoPlugin.

## Member Data Documentation

## filename

std::string filename

protected inherited

Path to the shared library file.

## fluidDensity

double fluidDensity

protected

The density of the fluid in which the object is submerged in kg/m^3.

Defaults to 1000, the fluid density of water.

## handleName

std::string handleName

protected inherited

Short name.

## model

physics::ModelPtr model

protected

Pointer to model containing the plugin.

## sdf

sdf::ElementPtr sdf

protected

Pointer to the plugin SDF.

## type

PluginType type

protected inherited

Type of plugin.

## updateConnection

event::ConnectionPtr updateConnection

protected

Connection to World Update events.

## volPropsMap

std::map<int, VolumeProperties> volPropsMap

protected

Map of <link ID, point> pairs mapping link IDs to the CoV (center of volume) and volume of the link.

The documentation for this class was generated from the following file:

- BuoyancyPlugin.hh