Add quadcopter support

This commit is contained in:
Pascal Serrarens 2023-11-07 17:36:19 +01:00
parent 5c8d7df31b
commit d3015be69c
5 changed files with 32 additions and 0 deletions

View File

@ -102,3 +102,7 @@ void Propulsion::SetTwistVelocity(float forwardVelocity, float turningVelocity)
float rightVelocity = Float::Clamp(forwardVelocity + turningVelocity, -1, 1);
SetDiffDriveVelocities(leftVelocity, rightVelocity);
}
Quadcopter* Propulsion::GetQuadcopter() {
return quadcopter;
}

View File

@ -1,5 +1,6 @@
#pragma once
#include "Quadcopter.h"
#include "ControlledMotor.h"
#include "Placement.h"
#include "Vector2.h"
@ -33,6 +34,7 @@ class Propulsion {
void SetTwistVelocity(float forward, float yaw);
// Think: drones
Quadcopter* GetQuadcopter();
void SetLinearSpeed(Vector3 direction);
protected:
@ -40,4 +42,6 @@ class Propulsion {
//MotorPlacement* motors = nullptr;
Placement* placement = nullptr;
unsigned int motorCount = 0;
Quadcopter* quadcopter = nullptr;
};

9
Quadcopter.cpp Normal file
View File

@ -0,0 +1,9 @@
#include "Quadcopter.h"
Quadcopter::Quadcopter() {
}
void Quadcopter::LinearMotion(Vector3 velocity, float yawRate) {
this->velocity = velocity;
this->yawRate = yawRate;
}

14
Quadcopter.h Normal file
View File

@ -0,0 +1,14 @@
#pragma once
#include "Thing.h"
#include "Vector3.h"
class Quadcopter : public Thing {
public:
Quadcopter();
void LinearMotion(Vector3 velocity, float yawRate = 0.0F);
protected:
Vector3 velocity = Vector3::zero;
float yawRate = 0.0F;
};

View File

@ -1,5 +1,6 @@
#pragma once
#include "Sensor.h"
#include "Placement.h"
#include <list>