This class provides a class that simulates a maritime thruster for boats and underwater vehicles. It uses the equations described in Fossen's "Guidance and Control of Ocean Vehicles" in page 246. This plugin takes in force in Newtons and applies it to the thruster. It also calculates the theoretical RPM of the blades and spins them at that RPM. The rationale for directly using force. More...
#include <Thruster.hh>
Public Member Functions | |
Thruster () | |
Constructor. More... | |
~Thruster () override | |
Destructor. More... | |
void | Configure (const Entity &_entity, const std::shared_ptr< const sdf::Element > &_sdf, EntityComponentManager &_ecm, EventManager &) override |
Documentation inherited. More... | |
void | PreUpdate (const UpdateInfo &_info, EntityComponentManager &_ecm) override |
Documentation inherited. More... | |
Public Member Functions inherited from System | |
System ()=default | |
Constructor. More... | |
virtual | ~System ()=default |
Destructor. More... | |
Detailed Description
This class provides a class that simulates a maritime thruster for boats and underwater vehicles. It uses the equations described in Fossen's "Guidance and Control of Ocean Vehicles" in page 246. This plugin takes in force in Newtons and applies it to the thruster. It also calculates the theoretical RPM of the blades and spins them at that RPM. The rationale for directly using force.
System Parameters
<namespace> - The namespace in which the robot exists. The plugin will listen on the topic /model/{namespace}/joint/{joint_name}/cmd_pos
. [Optional] <joint_name> - This is the joint in the model which corresponds to the propeller. [Required] <thrust_coefficient> - This is the coefficient which relates the RPM to actual thrust. [Required, no units] <fluid_density> - The fluid density of the liquid in which the thruster is operating in. [Required, kgm^-3] <propeller_diameter> - The propeller diameter is the diameter of the prop in meters. [Required, m]
Example
An example configuration is provided in the examples folder. The example uses the LiftDrag plugin to apply steering controls. It also uses the thruster plugin to propell the craft and the buoyancy plugin for buoyant force. To run th example run.
To control the rudder of the craft run the following
To apply a thrust you may run the following command The vehicle should move in a circle.
Constructor & Destructor Documentation
◆ Thruster()
Thruster | ( | ) |
Constructor.
◆ ~Thruster()
|
override |
Destructor.
Member Function Documentation
◆ Configure()
|
overridevirtual |
Documentation inherited.
Implements ISystemConfigure.
◆ PreUpdate()
|
overridevirtual |
Documentation inherited.
Implements ISystemPreUpdate.
The documentation for this class was generated from the following file: