Rauno U
/
Miisu
Six crescent shaped legs
EncoderMotor.hpp
- Committer:
- sim642
- Date:
- 2016-06-21
- Revision:
- 47:4f418a4b0051
- Parent:
- 37:8021b3ce241a
File content as of revision 47:4f418a4b0051:
#ifndef ENCODER_MOTOR_H #define ENCODER_MOTOR_H #include "Motor.hpp" #include "SpeedEncoder.hpp" #include "LerpSmoother.hpp" #include "PIDController.hpp" #include "SyncGroup.hpp" #include <limits> class EncoderMotor : public Motor { public: enum Mode { NoMode, SpeedMode, TurnMode }; EncoderMotor(MotorData nData, EncoderData encData, PIDData speedPIDData, PIDData turnPIDData, SyncGroup *nSync = NULL); virtual void drive(float speed); virtual void rotate(float turn, float speedLimit = std::numeric_limits<float>::max()); SpeedEncoder& getEncoder(); float getSetSpeed() const; float getSetTurn() const; //private: void tick(); SpeedEncoder encoder; LerpSmoother speedSmoother; Mode mode; PIDController speedPID; float setSpeed; PIDController turnPID; float setTurn; float turnSpeedLimit; float errorTurn; SyncGroup *sync; }; #endif // ENCODER_MOTOR_H