##

LiftDragPlugin Class Reference

A plugin that simulates lift and drag. More...

`#include <LiftDragPlugin.hh>`

Inherits ModelPlugin.

## Public Types

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

## Public Member Functions

| LiftDragPlugin ()
| Constructor. More...
| ~LiftDragPlugin ()
| Destructor. 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)
| Load function. 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

double | alpha
| angle of attack More...
double | alpha0
| initial angle of attack More...
double | alphaStall
| angle of attach when airfoil stalls More...
double | area
| effective planeform surface area More...
double | cda
| Coefficient of Drag / alpha slope. More...
double | cdaStall
| Cd-alpha rate after stall. More...
double | cla
| Coefficient of Lift / alpha slope. More...
double | claStall
| Cl-alpha rate after stall. More...
double | cma
| Coefficient of Moment / alpha slope. More...
double | cmaStall
| Cm-alpha rate after stall. More...
physics::JointPtr | controlJoint
| Pointer to a joint that actuates a control surface for this lifting body. More...
double | controlJointRadToCL
| how much to change CL per radian of control surface joint value. More...
ignition::math::Vector3d | cp
| center of pressure in link local coordinates More...
std::string | filename
| Path to the shared library file. More...
ignition::math::Vector3d | forward
| Normally, this is taken as a direction parallel to the chord of the airfoil in zero angle of attack forward flight. More...
std::string | handleName
| Short name. More...
physics::LinkPtr | link
| Pointer to link currently targeted by mud joint. More...
physics::ModelPtr | model
| Pointer to model containing plugin. More...
physics::PhysicsEnginePtr | physics
| Pointer to physics engine. More...
bool | radialSymmetry
| if the shape is aerodynamically radially symmetric about the forward direction. More...
double | rho
| air density at 25 deg C it's about 1.1839 kg/m^3 At 20 °C and 101.325 kPa, dry air has a density of 1.2041 kg/m3. More...
sdf::ElementPtr | sdf
| SDF for this plugin;. More...
double | sweep
| angle of sweep More...
PluginType | type
| Type of plugin. More...
event::ConnectionPtr | updateConnection
| Connection to World Update events. More...
ignition::math::Vector3d | upward
| A vector in the lift/drag plane, perpendicular to the forward vector. More...
double | velocityStall
| : \TODO: make a stall velocity curve More...
ignition::math::Vector3d | velSmooth
| Smoothed velocity. More...
physics::WorldPtr | world
| Pointer to world. More...

## Detailed Description

A plugin that simulates lift and drag.

## Member Typedef Documentation

## TPtr

typedef boost::shared_ptr<ModelPlugin > TPtr

inherited

plugin pointer type definition

## Constructor & Destructor Documentation

## LiftDragPlugin()

LiftDragPlugin | ( |  | ) |

Constructor.

## ~LiftDragPlugin()

~LiftDragPlugin | ( |  | ) |

Destructor.

## 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 | ( |  | ) |

inline virtual inherited

Override this method for custom plugin initialization behavior.

Reimplemented in TrackedVehiclePlugin, KeysToCmdVelPlugin, SimpleTrackedVehiclePlugin, WheelTrackedVehiclePlugin, BuoyancyPlugin, HarnessPlugin, FollowerPlugin, PlaneDemoPlugin, MudPlugin, CartDemoPlugin, VehiclePlugin, GimbalSmall2dPlugin, LinearBatteryPlugin, DiffDrivePlugin, and SphereAtlasDemoPlugin.

## Load()

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

virtual

Load function.

Called when a Plugin is first created, and after the World has been loaded. This function should not be blocking.

Parameters

  [in] | _model | Pointer to the Model
  [in] | _sdf | Pointer to the SDF element of the plugin.

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

## alpha

double alpha

protected

angle of attack

## alpha0

double alpha0

protected

initial angle of attack

## alphaStall

double alphaStall

protected

angle of attach when airfoil stalls

## area

double area

protected

effective planeform surface area

## cda

double cda

protected

Coefficient of Drag / alpha slope.

Drag = C_D * q * S where q (dynamic pressure) = 0.5 * rho * v^2

## cdaStall

double cdaStall

protected

Cd-alpha rate after stall.

## cla

double cla

protected

Coefficient of Lift / alpha slope.

Lift = C_L * q * S where q (dynamic pressure) = 0.5 * rho * v^2

## claStall

double claStall

protected

Cl-alpha rate after stall.

## cma

double cma

protected

Coefficient of Moment / alpha slope.

Moment = C_M * q * S where q (dynamic pressure) = 0.5 * rho * v^2

## cmaStall

double cmaStall

protected

Cm-alpha rate after stall.

## controlJoint

physics::JointPtr controlJoint

protected

Pointer to a joint that actuates a control surface for this lifting body.

## controlJointRadToCL

double controlJointRadToCL

protected

how much to change CL per radian of control surface joint value.

## cp

ignition::math::Vector3d cp

protected

center of pressure in link local coordinates

## filename

std::string filename

protected inherited

Path to the shared library file.

## forward

ignition::math::Vector3d forward

protected

Normally, this is taken as a direction parallel to the chord of the airfoil in zero angle of attack forward flight.

## handleName

std::string handleName

protected inherited

Short name.

## link

physics::LinkPtr link

protected

Pointer to link currently targeted by mud joint.

## model

physics::ModelPtr model

protected

Pointer to model containing plugin.

## physics

physics::PhysicsEnginePtr physics

protected

Pointer to physics engine.

## radialSymmetry

bool radialSymmetry

protected

if the shape is aerodynamically radially symmetric about the forward direction.

Defaults to false for wing shapes. If set to true, the upward direction is determined by the angle of attack.

## rho

double rho

protected

air density at 25 deg C it's about 1.1839 kg/m^3 At 20 °C and 101.325 kPa, dry air has a density of 1.2041 kg/m3.

## sdf

sdf::ElementPtr sdf

protected

SDF for this plugin;.

## sweep

double sweep

protected

angle of sweep

## type

PluginType type

protected inherited

Type of plugin.

## updateConnection

event::ConnectionPtr updateConnection

protected

Connection to World Update events.

## upward

ignition::math::Vector3d upward

protected

A vector in the lift/drag plane, perpendicular to the forward vector.

Inflow velocity orthogonal to forward and upward vectors is considered flow in the wing sweep direction.

## velocityStall

double velocityStall

protected

: \TODO: make a stall velocity curve

## velSmooth

ignition::math::Vector3d velSmooth

protected

Smoothed velocity.

## world

physics::WorldPtr world

protected

Pointer to world.

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

- LiftDragPlugin.hh