TransporterPlugin Class Reference

A plugin that allows models to transport (teleport) to a new location. More...

#include <TransporterPlugin.hh>

Inherits WorldPlugin.

Public Types

typedef boost::shared_ptr< WorldPluginTPtr
 plugin pointer type definition More...
 

Public Member Functions

 TransporterPlugin ()
 Constructor. More...
 
virtual ~TransporterPlugin ()
 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 ()
 
virtual void Load (physics::WorldPtr _world, sdf::ElementPtr _sdf)
 Load function. More...
 
virtual void Reset ()
 

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

A plugin that allows models to transport (teleport) to a new location.

A transporter plugin uses multiple named <pads>, where each <pad> defines an outgoing region, an incoming pose, and a destination pad.

When a model enters a pad's outgoing region it is moved to the destination pad's incoming pose. This means the transporter plugin is only useful if at least two pads are defined.

The following is example usage in SDF:

 <plugin filename="libTransporterPlugin.so" name="transporter">
   <!-- Topic that facilitates manual activation of a pad. An
   activation message is only meaningful for pad's with manual
   activation. An activation message consists of
   a string message on this topic with a pad's name to activate.
   See examples/stand_alone/transporter.cc for an example for
   triggering a manual pad. -->
   <activation_topic>~/transporter</activation_topic>

   <!-- Pad 1, which is automatically updated. This means any model
   that enter the outgoing region will be moved. -->
   <pad name="pad1">
     <destination>pad2</destination>
     <activation>auto</activation>

     <outgoing>
       <min>-.5 -.5 0</min>
       <max>.5 .5 1</max>
     </outgoing>

     <incoming>
       <pose>2 3.5 0 0 0 0</pose>
     </incoming>
   </pad>

   <!-- Pad 2 is manually updated. This means a model will be
   moved only if it is in the outgoing region and an activation
   message has been received. An activation message consists of
   a string message on the <activation_topic> topic with
   the pad's name. -->
   <pad name="pad2">
     <destination>pad1</destination>
     <activation>manual</activation>

     <outgoing>
       <min>-.5 3.0 0</min>
       <max>.5 4.0 1</max>
     </outgoing>

     <incoming>
       <pose>2 0 0 0 0 0</pose>
     </incoming>
   </pad>
 </plugin>

Member Typedef Documentation

typedef boost::shared_ptr<WorldPlugin > TPtr
inherited

plugin pointer type definition

Constructor & Destructor Documentation

Constructor.

virtual ~TransporterPlugin ( )
virtual

Destructor.

Member Function Documentation

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
std::string GetFilename ( ) const
inlineinherited

Get the name of the handler.

std::string GetHandle ( ) const
inlineinherited

Get the short name of the handler.

PluginType GetType ( ) const
inlineinherited

Returns the type of the plugin.

Returns
type of the plugin
virtual void Init ( )
inlinevirtualinherited

Reimplemented in ArrangePlugin, SimEventsPlugin, and RubblePlugin.

virtual void Load ( physics::WorldPtr  _world,
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]_worldPointer the World
[in]_sdfPointer the the SDF element of the plugin.

Implements WorldPlugin.

virtual void Reset ( )
inlinevirtualinherited

Reimplemented in ArrangePlugin.

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.


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