![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Six crescent shaped legs
Embed:
(wiki syntax)
Show/hide line numbers
EncoderMotor.hpp
00001 #ifndef ENCODER_MOTOR_H 00002 #define ENCODER_MOTOR_H 00003 00004 #include "Motor.hpp" 00005 #include "SpeedEncoder.hpp" 00006 #include "LerpSmoother.hpp" 00007 #include "PIDController.hpp" 00008 #include "SyncGroup.hpp" 00009 #include <limits> 00010 00011 class EncoderMotor : public Motor 00012 { 00013 public: 00014 enum Mode 00015 { 00016 NoMode, 00017 SpeedMode, 00018 TurnMode 00019 }; 00020 00021 EncoderMotor(MotorData nData, EncoderData encData, PIDData speedPIDData, PIDData turnPIDData, SyncGroup *nSync = NULL); 00022 00023 virtual void drive(float speed); 00024 virtual void rotate(float turn, float speedLimit = std::numeric_limits<float>::max()); 00025 00026 SpeedEncoder& getEncoder(); 00027 float getSetSpeed() const; 00028 float getSetTurn() const; 00029 00030 //private: 00031 void tick(); 00032 00033 SpeedEncoder encoder; 00034 LerpSmoother speedSmoother; 00035 00036 Mode mode; 00037 00038 PIDController speedPID; 00039 float setSpeed; 00040 00041 PIDController turnPID; 00042 float setTurn; 00043 float turnSpeedLimit; 00044 float errorTurn; 00045 00046 SyncGroup *sync; 00047 }; 00048 00049 #endif // ENCODER_MOTOR_H
Generated on Thu Jul 14 2022 23:15:59 by
![doxygen](doxygen.png)