RoboidControl-cpp/Propulsion.h
2023-11-07 15:11:33 +01:00

44 lines
1016 B
C++

#pragma once
#include "ControlledMotor.h"
#include "Placement.h"
#include "Vector2.h"
#include <list>
//struct MotorPlacement {
// Motor* motor;
// ControlledMotor* controlledMotor;
// Vector2 position;
//};
class Propulsion {
public:
/// @brief Setup sensing
Propulsion();
void Update();
//void AddMotors(MotorPlacement* motors, unsigned int motorCount);
void AddMotors(Placement* motors, unsigned int motorCount);
unsigned int GetMotorCount();
Motor* GetMotor(unsigned int motorIx);
void SetDiffDriveSpeed(float leftSpeed, float rightSpeed);
void SetDiffDriveVelocities(float leftVelocity, float rightVelocity);
void SetTwistSpeed(float forward, float yaw);
void SetTwistSpeed(float forward, float yaw, float pitch);
void SetTwistVelocity(float forward, float yaw);
// Think: drones
void SetLinearSpeed(Vector3 direction);
protected:
//unsigned long lastMillis;
//MotorPlacement* motors = nullptr;
Placement* placement = nullptr;
unsigned int motorCount = 0;
};