An abstract gazebo model plugin for tracked vehicles. More...
#include <TrackedVehiclePlugin.hh>
Inherits ModelPlugin.
Inherited by SimpleTrackedVehiclePlugin, and WheelTrackedVehiclePlugin.
| Public Types | |
| typedef boost::shared_ptr< ModelPlugin > | TPtr | 
| plugin pointer type definition  More... | |
| Public Member Functions | |
| TrackedVehiclePlugin () | |
| Default Contstuctor.  More... | |
| virtual | ~TrackedVehiclePlugin () | 
| 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 | 
| Initialize the plugin.  More... | |
| void | Load (physics::ModelPtr _model, sdf::ElementPtr _sdf) override | 
| Called when the plugin is loaded.  More... | |
| void | Reset () override | 
| Reset the plugin.  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 | |
| virtual std::string | GetRobotNamespace () | 
| Namespace used as a prefix for gazebo topic names.  More... | |
| virtual double | GetSteeringEfficiency () | 
| Steering efficiency coefficient (between 0.0 and 1.0).  More... | |
| virtual boost::optional< double > | GetTrackMu () | 
| Friction coefficient in the first friction direction.  More... | |
| virtual boost::optional< double > | GetTrackMu2 () | 
| Friction coefficient in the second friction direction.  More... | |
| virtual double | GetTracksSeparation () | 
| Distance between the centers of the tracks.  More... | |
| 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 | OnVelMsg (ConstPosePtr &_msg) GAZEBO_DEPRECATED(9.0) | 
| Callback for setting desired body velocity.  More... | |
| void | OnVelMsg (ConstTwistPtr &_msg) | 
| Callback for setting desired body velocity.  More... | |
| void | SetBodyVelocity (double _linear, double _angular) | 
| Set new target velocity for the tracks based on the desired.  More... | |
| void | SetLinkMu (const physics::LinkPtr &_link) | 
| Set mu and mu2 of all collisions of the given link to values given by GetTrackMu() and GetTrackMu2().  More... | |
| virtual void | SetSteeringEfficiency (double _steeringEfficiency) | 
| Set steering efficiency coefficient (between 0.0 and 1.0).  More... | |
| virtual void | SetTrackMu (double _mu) | 
| Friction coefficient in the first friction direction.  More... | |
| virtual void | SetTrackMu2 (double _mu2) | 
| Friction coefficient in the second friction direction.  More... | |
| virtual void | SetTrackVelocity (double _left, double _right) | 
| Set new target velocity for the tracks.  More... | |
| virtual void | SetTrackVelocityImpl (double _left, double _right)=0 | 
| Set new target velocity for the tracks.  More... | |
| virtual void | UpdateTrackSurface ()=0 | 
| Update surface parameters of the tracks to correspond to the values set in this plugin.  More... | |
| Protected Attributes | |
| std::string | filename | 
| Path to the shared library file.  More... | |
| std::string | handleName | 
| Short name.  More... | |
| std::mutex | mutex | 
| Mutex to protect updates.  More... | |
| std::unordered_map< Tracks, std::string > | trackNames | 
| Textual lowercase names of the tracks.  More... | |
| PluginType | type | 
| Type of plugin.  More... | |
An abstract gazebo model plugin for tracked vehicles.
The plugin processes the following parameters (all have defaults): <steering_efficiency> Steering efficiency coefficient (0.0 to 1.0). Default is 0.5. <tracks_separation> Distance between the centers of the tracks. Default is 0.4. Implementation may try to autodetect this value. <max_linear_speed> Max linear velocity in m/s. Also max track velocity. Default is 1.0. <max_angular_speed> Max angular speed in rad/s. Default is 1.0. <track_mu> Friction coefficient in the first friction direction. If not set, mu of the tracks is not changed, so the values from model definition are used. <track_mu2> Friction coefficient in the second friction direction. If not set, mu of the tracks is not changed, so the values from model definition are used. <robot_namespace> Namespace used as a prefix for gazebo topic names. Default is the name of the model.
| 
 | inherited | 
plugin pointer type definition
Default Contstuctor.
| 
 | virtual | 
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.
| 
 | protectedvirtual | 
Namespace used as a prefix for gazebo topic names.
| 
 | protectedvirtual | 
Steering efficiency coefficient (between 0.0 and 1.0).
| 
 | protectedvirtual | 
Friction coefficient in the first friction direction.
| 
 | protectedvirtual | 
Friction coefficient in the second friction direction.
| 
 | protectedvirtual | 
Distance between the centers of the tracks.
| 
 | inlineinherited | 
| 
 | overridevirtual | 
| 
 | overridevirtual | 
Called when the plugin is loaded.
| [in] | _model | Pointer to the model for which the plugin is loaded | 
| [in] | _sdf | Pointer to the SDF for _model | 
Implements ModelPlugin.
Reimplemented in WheelTrackedVehiclePlugin.
| 
 | 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.
| [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. | 
References gzmsg, and PluginT< T >::handleName.
| 
 | 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.
| [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. | 
| 
 | protectedvirtual | 
Callback for setting desired body velocity.
Normally, this callback converts the x/yaw message to track velocities and calls SetTrackVelocity().
| [in] | _msg | Pose message from external publisher | 
| 
 | protected | 
Callback for setting desired body velocity.
Normally, this callback converts the x/yaw message to track velocities and calls SetTrackVelocity().
| [in] | _msg | Twist message from external publisher | 
| 
 | overridevirtual | 
| 
 | protected | 
Set new target velocity for the tracks based on the desired.
| [in] | _linear | Desired linear velocity of the vehicle. | 
| [in] | _angular | Desired angular velocity of the vehicle. | 
| 
 | protected | 
Set mu and mu2 of all collisions of the given link to values given by GetTrackMu() and GetTrackMu2().
| [in] | _link | The link whose "mu"s are to be set. | 
| 
 | protectedvirtual | 
Set steering efficiency coefficient (between 0.0 and 1.0).
| [in] | _steeringEfficiency | The new steering efficiency. | 
| 
 | protectedvirtual | 
Friction coefficient in the first friction direction.
| [in] | _mu | The new coefficient. | 
| 
 | protectedvirtual | 
Friction coefficient in the second friction direction.
| [in] | _mu2 | The new coefficient. | 
| 
 | protectedvirtual | 
Set new target velocity for the tracks.
Descendant classes need to implement this function.
| [in] | _left | Velocity of left track. | 
| [in] | _right | Velocity of right track. | 
| 
 | protectedpure virtual | 
Set new target velocity for the tracks.
Descendant classes need to implement this function.
Do not call this function directly, instead call SetTrackVelocity().
| [in] | _left | Velocity of left track. | 
| [in] | _right | Velocity of right track. | 
Implemented in SimpleTrackedVehiclePlugin, and WheelTrackedVehiclePlugin.
| 
 | protectedpure virtual | 
Update surface parameters of the tracks to correspond to the values set in this plugin.
Implemented in SimpleTrackedVehiclePlugin, and WheelTrackedVehiclePlugin.
| 
 | protectedinherited | 
Path to the shared library file.
| 
 | protectedinherited | 
Short name.
| 
 | protected | 
Mutex to protect updates.
| 
 | protected | 
Textual lowercase names of the tracks.
| 
 | protectedinherited | 
Type of plugin.