RoboidControl-cpp/Quadcopter.h
2024-03-05 09:13:46 +01:00

36 lines
936 B
C++

#pragma once
#include "LinearAlgebra/Vector3.h"
#include "Propulsion.h"
#include "Thing.h"
namespace Passer {
namespace RoboidControl {
/// @brief Support for Quadcopter as a propulsion method
/// @note This is work in progress
class Quadcopter : public Propulsion {
public:
/// @brief Default constuctor
Quadcopter();
virtual void SetTwistSpeed(float forward, float yaw = 0.0F) override;
virtual void SetTwistSpeed(Vector2 linear, float yaw = 0.0F) override;
virtual void SetTwistSpeed(Vector3 linear, float yaw = 0.0F,
float pitch = 0.0F, float roll = 0.0F) override;
Vector3 GetTargetVelocity();
float GetYawSpeed();
float GetPitchSpeed();
float GetRollSpeed();
protected:
Vector3 velocity = Vector3::zero;
float pitchSpeed = 0.0F;
float yawSpeed = 0.0F;
float rollSpeed = 0.0F;
};
} // namespace RoboidControl
} // namespace Passer
using namespace Passer::RoboidControl;