KeysToCmdVelPlugin Class Reference

Send velocity commands to a model based on keypress messages received. More...

#include <KeysToCmdVelPlugin.hh>

Inherits ModelPlugin.

Public Types

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

Public Member Functions

 KeysToCmdVelPlugin ()
 Constructor. More...
 
 ~KeysToCmdVelPlugin ()
 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...
 
void Init () override
 Override this method for custom plugin initialization behavior. More...
 
void Load (physics::ModelPtr _model, sdf::ElementPtr _sdf) override
 Load function. More...
 
void Reset () override
 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 OnKeyPress (ConstAnyPtr &_msg)
 Callback each time a key message is received. 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

Send velocity commands to a model based on keypress messages received.

The commands are instances of Pose type with x field denoting linear speed and yaw denoting angular speed.

The keypresses are taken from topic "~/keyboard/keypress" generated by the KeyboardGUIPlugin.

Unfortunately, due to the implementation of the KeyboardGUIPlugin, this plugin can only process the "key down" events and not "key up" events, so it is not possible to react on the set of keys currently pressed, but only to a sequence of keypresses.

The plugin processes the following parameters:

<publish_as_twist> If true, the published message type will be Twist. If false, it will be Pose. Default is false. The Pose message isn't very good for angular speed representation since it will always clamp the speed to interval -pi to pi. <cmd_vel_topic> The topic to which velocity commands are be published. Default is "~/cmd_vel". <max_linear_vel> Maximum linear velocity commanded to the vehicle (m/s). Default is 1.0 (m/s). <min_linear_vel> Minimum linear velocity commanded to the vehicle (m/s). Default is -max_linear_vel (m/s). <max_angular_vel> Maximum angular velocity commanded to the vehicle (rad/s). Default is 1.0 (rad/s). <key_controls> If this tag is empty or missing, the default assignment (arrow keys) is used; otherwise, the keys can be set using the (repeatable) subelements <stop>, <accelerate>, <decelerate>, <left> and <right> containing the keycodes.

Member Typedef Documentation

◆ TPtr

typedef boost::shared_ptr<ModelPlugin > TPtr
inherited

plugin pointer type definition

Constructor & Destructor Documentation

◆ KeysToCmdVelPlugin()

Constructor.

◆ ~KeysToCmdVelPlugin()

Destructor.

Member Function Documentation

◆ Create()

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

◆ GetFilename()

std::string GetFilename ( ) const
inlineinherited

Get the name of the handler.

References PluginT< T >::filename.

◆ GetHandle()

std::string GetHandle ( ) const
inlineinherited

Get the short name of the handler.

References PluginT< T >::handleName.

◆ GetType()

PluginType GetType ( ) const
inlineinherited

Returns the type of the plugin.

Returns
type of the plugin

References PluginT< T >::type.

◆ Init()

void Init ( )
overridevirtual

Override this method for custom plugin initialization behavior.

Reimplemented from ModelPlugin.

◆ Load()

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

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.

◆ LoadParam() [1/2]

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

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]_sdfThe SDF element of the plugin.
[in]_nameName of a tag inside the SDF.
[out]_targetThe reference to store the param value to.
[in]_defaultValueThe default value.

References gzmsg, and PluginT< T >::handleName.

◆ LoadParam() [2/2]

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

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]_sdfThe SDF element of the plugin.
[in]_nameName of a tag inside the SDF.
[out]_targetThe reference to store the param value to.
[in]_defaultValueThe default value.

◆ OnKeyPress()

virtual void OnKeyPress ( ConstAnyPtr &  _msg)
protectedvirtual

Callback each time a key message is received.

Parameters
[in]_msgKeypress message.

◆ Reset()

void Reset ( )
overridevirtual

Override this method for custom plugin reset behavior.

Reimplemented from ModelPlugin.

Member Data Documentation

◆ filename

std::string filename
protectedinherited

Path to the shared library file.

◆ handleName

std::string handleName
protectedinherited

Short name.

◆ type

PluginType type
protectedinherited

Type of plugin.


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