Allow moving the control surfaces of a Cessna C-172 plane. More...
#include <CessnaPlugin.hh>
Inherits ModelPlugin.
Public Types | |
| typedef boost::shared_ptr< ModelPlugin > | TPtr | 
| plugin pointer type definition  More... | |
Public Member Functions | |
| CessnaPlugin () | |
| Constructor.  More... | |
| ~CessnaPlugin () | |
| 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 Attributes | |
| std::string | filename | 
| Path to the shared library file.  More... | |
| std::string | handleName | 
| Short name.  More... | |
| PluginType | type | 
| Type of plugin.  More... | |
Allow moving the control surfaces of a Cessna C-172 plane.
This plugin might be used with other models that have similar control surfaces.
The plugin requires the following parameters: <propeller> Name of the joint controlling the propeller spin. <propeller_max_rpm> Maximum angular speed in rpm. <left_aileron> Name of the joint controlling the left aileron. <left_flap> Name of the joint controlling the left flap. <right_aileron> Name of the joint controlling the right aileron. <right_flap> Name of the joint controlling the right flap. <elevators> Name of the joint controlling the rear elevators. <rudder> Name of the joint controlling the rudder.
The following parameters are optional: <propeller_p_gain> P gain for the PID that controls the propeller's speed. <propeller_i_gain> I gain for the PID that controls the propeller's speed. <propeller_d_gain> D gain for the PID that controls the propeller's speed. <surfaces_p_gain> P gain for the PID that controls the position of the control surfaces. <surfaces_i_gain> I gain for the PID that controls the position of the control surfaces. <surfaces_d_gain> D gain for the PID that controls the position of the control surfaces.
The plugin will be subscribed to the following topic: "~/<model_name>/control" The expected value is a Cessna message.
The plugin will advertise the following topic with the current state: "~/<model_name>/state"
      
  | 
  inherited | 
plugin pointer type definition
| CessnaPlugin | ( | ) | 
Constructor.
| ~CessnaPlugin | ( | ) | 
Destructor.
      
  | 
  inlinestaticinherited | 
a class method that creates a plugin from a file name.
It locates the shared library and loads it dynamically.
| [in] | _filename | the path to the shared library. | 
| [in] | _name | short name of the plugin | 
References PluginT< T >::filename, gzerr, and SingletonT< SystemPaths >::Instance().
      
  | 
  inlineinherited | 
Get the name of the handler.
References PluginT< T >::filename.
      
  | 
  inlineinherited | 
Get the short name of the handler.
References PluginT< T >::handleName.
      
  | 
  inlineinherited | 
      
  | 
  inlinevirtualinherited | 
Override this method for custom plugin initialization behavior.
Reimplemented in BuoyancyPlugin, HarnessPlugin, FollowerPlugin, VehiclePlugin, LinearBatteryPlugin, MudPlugin, CartDemoPlugin, SphereAtlasDemoPlugin, and DiffDrivePlugin.
      
  | 
  virtual | 
Load function.
Called when a Plugin is first created, and after the World has been loaded. This function should not be blocking.
| [in] | _model | Pointer to the Model | 
| [in] | _sdf | Pointer to the SDF element of the plugin. | 
Implements ModelPlugin.
      
  | 
  inlinevirtualinherited | 
Override this method for custom plugin reset behavior.
Reimplemented in RandomVelocityPlugin, ElevatorPlugin, FollowerPlugin, LinearBatteryPlugin, InitialVelocityPlugin, and SphereAtlasDemoPlugin.
      
  | 
  protectedinherited | 
Path to the shared library file.
      
  | 
  protectedinherited | 
Short name.
      
  | 
  protectedinherited | 
Type of plugin.