Implement new controller

Dependencies:   mbed-rtos mbed QEI BNO055 MPU6050_DMP_Nucleo-I2Cdev virgo3_imuHandler_Orion_PCB MAX17048 Servo

Fork of Orion_newPCB_test by Team Virgo v3

Committer:
ahmed_lv
Date:
Tue Mar 20 05:56:22 2018 +0000
Revision:
30:44676e1b38f8
Parent:
29:a6a812ee83ea
Editted Input Variables to PID

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ahmed_lv 26:32eaf3c3ac2e 1 #ifndef pidBearing_H
ahmed_lv 26:32eaf3c3ac2e 2 #define pidBearing_H
ahmed_lv 26:32eaf3c3ac2e 3
ahmed_lv 26:32eaf3c3ac2e 4 #include "generalFunctions.h"
ahmed_lv 26:32eaf3c3ac2e 5 #include "mbed.h"
ahmed_lv 26:32eaf3c3ac2e 6 #include "orion_pinmapping.h"
ahmed_lv 26:32eaf3c3ac2e 7 #include "config.h"
ahmed_lv 26:32eaf3c3ac2e 8 #include "math.h"
ahmed_lv 26:32eaf3c3ac2e 9
ahmed_lv 26:32eaf3c3ac2e 10 class pidBearing
ahmed_lv 26:32eaf3c3ac2e 11 {
ahmed_lv 26:32eaf3c3ac2e 12 public:
ahmed_lv 26:32eaf3c3ac2e 13 //motorDriver(PinName mPlus, PinName mMinus, int freq_khz);
ahmed_lv 26:32eaf3c3ac2e 14 //void setPWM(float val);
ahmed_lv 26:32eaf3c3ac2e 15
ahmed_lv 26:32eaf3c3ac2e 16 pidBearing();
ahmed_lv 29:a6a812ee83ea 17 void setSpeedChange(float* wl, float* wr, float* speedChange, float* Error,
ahmed_lv 29:a6a812ee83ea 18 float target[2],
ahmed_lv 29:a6a812ee83ea 19 float local[2],
ahmed_lv 29:a6a812ee83ea 20 float yaw,
ahmed_lv 29:a6a812ee83ea 21 float* robotFrame,
ahmed_lv 29:a6a812ee83ea 22 float xx, float yy,
ahmed_lv 29:a6a812ee83ea 23 float* k3,
ahmed_lv 29:a6a812ee83ea 24 float lGain);
ahmed_lv 29:a6a812ee83ea 25 void pidBearing::findRobotFrameDistance(float target[2], float local[2], float* robotFrame);
ahmed_lv 26:32eaf3c3ac2e 26
ahmed_lv 26:32eaf3c3ac2e 27 private:
ahmed_lv 26:32eaf3c3ac2e 28 float kp, kd, ki;
ahmed_lv 26:32eaf3c3ac2e 29 float imuToAchieve, offset, angleToRotate, prevaError, bearingToWaypoint, sumError, max_in, minDist;
ahmed_lv 26:32eaf3c3ac2e 30 };
ahmed_lv 26:32eaf3c3ac2e 31
ahmed_lv 26:32eaf3c3ac2e 32
ahmed_lv 26:32eaf3c3ac2e 33 #endif