RoboidControl for Arduino
Loading...
Searching...
No Matches
Public Member Functions | 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

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.
 
PlacementGetMotorPlacement (unsigned int motorIx)
 Get the Placement of a specific Motor.
 
virtual void SetTwistSpeed (float forward, float yaw=0.0F)
 Sets the forward and rotation speed of a (grounded) Roboid.
 
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.
 

Protected Attributes

unsigned int motorCount = 0
 The number of motors used for Propulsion.
 
Placementplacement = 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

◆ GetMotorPlacement()

Placement * Propulsion::GetMotorPlacement ( unsigned int  motorIx)

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

◆ SetTwistSpeed() [1/3]

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

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.

◆ 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.

◆ 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.

Member Data Documentation

◆ motorCount

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

The number of motors used for Propulsion.

◆ placement

Placement* Passer::RoboidControl::Propulsion::placement = nullptr
protected

The Placement of the motors used for Propulsion.


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