RoboidControl
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Attributes | List of all members
Passer::RoboidControl::Propulsion Class Reference

The Propulsion module for a Roboid is used to move the Roboid in space. More...

#include <Propulsion.h>

Inheritance diagram for Passer::RoboidControl::Propulsion:
Passer::RoboidControl::DifferentialDrive Passer::RoboidControl::Quadcopter

Public Member Functions

 Propulsion ()
 Default Constructor for Propulsion.
 
void Update (float currentTimeMs)
 Update the propulsion state of the Roboid.
 
unsigned int GetMotorCount ()
 Get the number of motors in this roboid.
 
MotorGetMotor (unsigned int motorIx)
 Get a specific motor.
 
virtual void SetTwistSpeed (float forward, float yaw=0.0F)
 Get the Placement of a specific Motor.
 
virtual void SetTwistSpeed (Vector2 linear, float yaw=0.0F)
 Sets the forward, sideward and rotation speed of a (grounded) Roboid.
 
virtual void SetTwistSpeed (Vector3 linear, float yaw=0.0F, float pitch=0.0F, float roll=0.0F)
 Set the target 3D linear and 3D rotation speed of a (flying) Roboid.
 
virtual void SetVelocity (Polar velocity)
 
virtual Polar GetVelocity ()
 Retrieve the current velocity of the roboid.
 
virtual float GetAngularVelocity ()
 Retrieve the current angular velocity of the roboid.
 

Public Attributes

Roboidroboid = nullptr
 The roboid of this propulsion system.
 

Protected Attributes

unsigned int motorCount = 0
 The number of motors used for Propulsion.
 
Motor ** motors = nullptr
 The Placement of the motors used for Propulsion.
 

Detailed Description

The Propulsion module for a Roboid is used to move the Roboid in space.

Usually, a specific implementation of the propulsion module is used for a robot. This base class does not implement the functions to move the Roboid around.

Constructor & Destructor Documentation

◆ Propulsion()

Propulsion::Propulsion ( )

Default Constructor for Propulsion.

Member Function Documentation

◆ Update()

void Propulsion::Update ( float  currentTimeMs)

Update the propulsion state of the Roboid.

Parameters
currentTimeMsThe time in milliseconds when calling this

◆ GetMotorCount()

unsigned int Propulsion::GetMotorCount ( )

Get the number of motors in this roboid.

Returns
The number of motors. Zero when no motors are present

◆ GetMotor()

Motor * Propulsion::GetMotor ( unsigned int  motorIx)

Get a specific motor.

Parameters
motorIxThe index of the motor
Returns
Returns the motor or a nullptr when no motor with the given index could be found

◆ SetTwistSpeed() [1/3]

void Propulsion::SetTwistSpeed ( float  forward,
float  yaw = 0.0F 
)
virtual

Get the Placement of a specific Motor.

Parameters
motorIxThe index of the Motor
Returns
Returns the Placement or a nullptr when no Placement with the give index could be found

Sets the forward and rotation speed of a (grounded) Roboid

Parameters
forwardThe target forward speed
yawThe target rotation speed around the vertical axis This function is typically used for Roboid which are driving on the ground.

Reimplemented in Passer::RoboidControl::DifferentialDrive, and Passer::RoboidControl::Quadcopter.

◆ SetTwistSpeed() [2/3]

void Propulsion::SetTwistSpeed ( Vector2  linear,
float  yaw = 0.0F 
)
virtual

Sets the forward, sideward and rotation speed of a (grounded) Roboid.

Parameters
linearThe target linear (forward, sideward) speed
yawThe target rotation speed around the vertical axis This function is typically used for Roboid which are driving on the ground which have to ability to move sideward

Reimplemented in Passer::RoboidControl::DifferentialDrive, and Passer::RoboidControl::Quadcopter.

◆ SetTwistSpeed() [3/3]

void Propulsion::SetTwistSpeed ( Vector3  linear,
float  yaw = 0.0F,
float  pitch = 0.0F,
float  roll = 0.0F 
)
virtual

Set the target 3D linear and 3D rotation speed of a (flying) Roboid.

Parameters
linearThe target linear speed
yawThe target rotation speed around the vertical axis
pitchThe target rotation speed around the sideward axis
rollThe target rotation speed around hte forward axis

Reimplemented in Passer::RoboidControl::DifferentialDrive, and Passer::RoboidControl::Quadcopter.

◆ SetVelocity()

void Propulsion::SetVelocity ( Polar  velocity)
virtual

◆ GetVelocity()

Polar Propulsion::GetVelocity ( )
virtual

Retrieve the current velocity of the roboid.

Returns
The velocity in polar coordinates The actual units of the velocity depend on the implementation

Reimplemented in Passer::RoboidControl::DifferentialDrive.

◆ GetAngularVelocity()

float Propulsion::GetAngularVelocity ( )
virtual

Retrieve the current angular velocity of the roboid.

Returns
The angular velocity The actual unit of the angular velocity depend on the implementation

Reimplemented in Passer::RoboidControl::DifferentialDrive.

Member Data Documentation

◆ roboid

Roboid* Passer::RoboidControl::Propulsion::roboid = nullptr

The roboid of this propulsion system.

◆ motorCount

unsigned int Passer::RoboidControl::Propulsion::motorCount = 0
protected

The number of motors used for Propulsion.

◆ motors

Motor** Passer::RoboidControl::Propulsion::motors = nullptr
protected

The Placement of the motors used for Propulsion.


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