RoboidControl-cpp/Quadcopter.h
2023-12-06 13:09:13 +01:00

37 lines
949 B
C++

#pragma once
#include "Propulsion.h"
#include "Thing.h"
#include "Vector3.h"
namespace Passer {
namespace RoboidControl {
/// @brief Support for Quadcopter as a propulsion method
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;