HarnessPlugin Class Reference

This plugin is designed to lower a model at a controlled rate. More...

#include <HarnessPlugin.hh>

Inherits ModelPlugin.

Public Types

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

Public Member Functions

 HarnessPlugin ()
 Constructor. More...
 
virtual ~HarnessPlugin ()
 Destructor. More...
 
void Attach (const ignition::math::Pose3d &_pose)
 Move the child link to the specified pose and recreate the harness joint. More...
 
void Detach ()
 Detach the <detach> joint. 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...
 
void SetWinchVelocity (const float _value)
 Set the target winch velocity. More...
 
double WinchVelocity () const
 Get the current winch velocity. 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 Attributes

std::string filename
 Path to the shared library file. More...
 
std::string handleName
 Short name. More...
 
PluginType type
 Type of plugin. More...
 

Detailed Description

This plugin is designed to lower a model at a controlled rate.

Joints between a harness model and a model to lower are created according to SDF provided to this plugin.

A winch joint and detach joint can be specified. The winch joint, ideally a prismatic joint, has a PID controller. The detach joint, which can be the same joint as the winch joint, is detached on a given signal.

Three topics are created:

  1. ~/<plugin_model_name>/harness/velocity
    • Message Type: GzString, expected to be a float
    • Purpose: Set target winch velocity
  2. ~/<plugin_model_name>/harness/detach
    • Message Type: GzString, expected to be a bool ("true")
    • Purpose: Detach the <detach> joint.
  3. ~/<plugin_model_name>/harness/attach
    • Message Type: Pose, world pose to be set for child link before attaching
    • Purpose: Attach the joint at the specified world pose

For an example refer to:

  • World file: worlds/harness.world
  • Code: examples/stand_alone/harness

Member Typedef Documentation

typedef boost::shared_ptr<ModelPlugin > TPtr
inherited

plugin pointer type definition

Constructor & Destructor Documentation

Constructor.

virtual ~HarnessPlugin ( )
virtual

Destructor.

Member Function Documentation

void Attach ( const ignition::math::Pose3d &  _pose)

Move the child link to the specified pose and recreate the harness joint.

Parameters
[in]_poseDesired world pose of child link before harnessing
static TPtr Create ( const std::string &  _filename,
const std::string &  _name 
)
inlinestaticinherited

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

It locates the shared library and loads it dynamically.

Parameters
[in]_filenamethe path to the shared library.
[in]_nameshort name of the plugin
Returns
Shared Pointer to this class type

References PluginT< T >::filename, gzerr, and SingletonT< SystemPaths >::Instance().

void Detach ( )

Detach the <detach> joint.

Once the joint is detached, it can be reattached with the Attach method.

std::string GetFilename ( ) const
inlineinherited

Get the name of the handler.

References PluginT< T >::filename.

std::string GetHandle ( ) const
inlineinherited

Get the short name of the handler.

References PluginT< T >::handleName.

PluginType GetType ( ) const
inlineinherited

Returns the type of the plugin.

Returns
type of the plugin

References PluginT< T >::type.

virtual void Init ( )
virtual

Override this method for custom plugin initialization behavior.

Reimplemented from ModelPlugin.

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]_modelPointer to the Model
[in]_sdfPointer to the SDF element of the plugin.

Implements ModelPlugin.

virtual void Reset ( )
inlinevirtualinherited

Override this method for custom plugin reset behavior.

Reimplemented in RandomVelocityPlugin, ElevatorPlugin, FollowerPlugin, LinearBatteryPlugin, ActorPlugin, InitialVelocityPlugin, and SphereAtlasDemoPlugin.

void SetWinchVelocity ( const float  _value)

Set the target winch velocity.

Parameters
[in]_valueTarget winch velocity.
double WinchVelocity ( ) const

Get the current winch velocity.

Returns
Velocity of the winch joint

Member Data Documentation

std::string filename
protectedinherited

Path to the shared library file.

std::string handleName
protectedinherited

Short name.

PluginType type
protectedinherited

Type of plugin.

Referenced by ModelPlugin::ModelPlugin().


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