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

Support for Quadcopter as a propulsion method. More...

#include <Quadcopter.h>

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

Public Member Functions

 Quadcopter ()
 Default constuctor.
 
virtual void SetTwistSpeed (float forward, float yaw=0.0F) override
 Get the Placement of a specific Motor.
 
virtual void SetTwistSpeed (Vector2 linear, float yaw=0.0F) override
 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) override
 Set the target 3D linear and 3D rotation speed of a (flying) Roboid.
 
Vector3 GetTargetVelocity ()
 
float GetYawSpeed ()
 
float GetPitchSpeed ()
 
float GetRollSpeed ()
 
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 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

Vector3 velocity = Vector3::zero
 
float pitchSpeed = 0.0F
 
float yawSpeed = 0.0F
 
float rollSpeed = 0.0F
 
unsigned int motorCount = 0
 The number of motors used for Propulsion.
 
Motor ** motors = nullptr
 The Placement of the motors used for Propulsion.
 

Detailed Description

Support for Quadcopter as a propulsion method.

Note
This is work in progress

Constructor & Destructor Documentation

◆ Quadcopter()

Quadcopter::Quadcopter ( )

Default constuctor.

Member Function Documentation

◆ SetTwistSpeed() [1/3]

void Quadcopter::SetTwistSpeed ( float  forward,
float  yaw = 0.0F 
)
overridevirtual

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 from Passer::RoboidControl::Propulsion.

◆ SetTwistSpeed() [2/3]

void Quadcopter::SetTwistSpeed ( Vector2  linear,
float  yaw = 0.0F 
)
overridevirtual

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 from Passer::RoboidControl::Propulsion.

◆ SetTwistSpeed() [3/3]

virtual void Passer::RoboidControl::Quadcopter::SetTwistSpeed ( Vector3  linear,
float  yaw = 0.0F,
float  pitch = 0.0F,
float  roll = 0.0F 
)
overridevirtual

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 from Passer::RoboidControl::Propulsion.

◆ GetTargetVelocity()

Vector3 Quadcopter::GetTargetVelocity ( )

◆ GetYawSpeed()

float Quadcopter::GetYawSpeed ( )

◆ GetPitchSpeed()

float Quadcopter::GetPitchSpeed ( )

◆ GetRollSpeed()

float Quadcopter::GetRollSpeed ( )

◆ Update()

void Propulsion::Update ( float  currentTimeMs)
inherited

Update the propulsion state of the Roboid.

Parameters
currentTimeMsThe time in milliseconds when calling this

◆ GetMotorCount()

unsigned int Propulsion::GetMotorCount ( )
inherited

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)
inherited

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

◆ SetVelocity()

void Propulsion::SetVelocity ( Polar  velocity)
virtualinherited

◆ GetVelocity()

Polar Propulsion::GetVelocity ( )
virtualinherited

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 ( )
virtualinherited

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

◆ velocity

Vector3 Passer::RoboidControl::Quadcopter::velocity = Vector3::zero
protected

◆ pitchSpeed

float Passer::RoboidControl::Quadcopter::pitchSpeed = 0.0F
protected

◆ yawSpeed

float Passer::RoboidControl::Quadcopter::yawSpeed = 0.0F
protected

◆ rollSpeed

float Passer::RoboidControl::Quadcopter::rollSpeed = 0.0F
protected

◆ roboid

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

The roboid of this propulsion system.

◆ motorCount

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

The number of motors used for Propulsion.

◆ motors

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

The Placement of the motors used for Propulsion.


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