DERPS
Dependencies: BMP280 BNO055_fusion PowerControl mbed
Fork of STRAIGHT_DRIVE_NO_SEP by
LOCOMOTION.h@31:69caabc10879, 2016-04-20 (annotated)
- Committer:
- alaurens
- Date:
- Wed Apr 20 08:21:21 2016 +0000
- Revision:
- 31:69caabc10879
- Parent:
- 30:116cd143fdf7
- Child:
- 33:baf24c59affc
drive down window
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
12104404 | 6:0602a9e8118b | 1 | #ifndef LOCOMOTION_H |
12104404 | 6:0602a9e8118b | 2 | #define LOCOMOTION_H |
12104404 | 26:0ea6a550a99d | 3 | |
12104404 | 6:0602a9e8118b | 4 | #include "mbed.h" |
12104404 | 17:2f89826b5679 | 5 | #include "LOCALIZE.h" |
12104404 | 27:fb1298d35bd1 | 6 | #include "math.h" |
12104404 | 26:0ea6a550a99d | 7 | |
12104404 | 29:e8ef4a2e628d | 8 | #define SPEED_TURN_MIN 0.35//0.15 |
12104404 | 29:e8ef4a2e628d | 9 | #define SPEED_TURN_MAX 0.60//0.45 |
12104404 | 30:116cd143fdf7 | 10 | #define Y_BIAS_MIN 0.75 |
12104404 | 25:f3bf8351bbd4 | 11 | #define Y_BIAS_MAX 1.00 |
12104404 | 30:116cd143fdf7 | 12 | #define SPEED_X_MIN 0.10 |
12104404 | 30:116cd143fdf7 | 13 | #define SPEED_X_MAX 0.35 |
12104404 | 30:116cd143fdf7 | 14 | #define GAIN_GRAVITY 0.75 |
12104404 | 27:fb1298d35bd1 | 15 | #define M_PI 3.1415926535897932384 |
12104404 | 26:0ea6a550a99d | 16 | |
alaurens | 31:69caabc10879 | 17 | #define X_STOP 0 |
12104404 | 25:f3bf8351bbd4 | 18 | #define X_INCREASE 1 |
12104404 | 25:f3bf8351bbd4 | 19 | #define X_DECREASE 2 |
12104404 | 25:f3bf8351bbd4 | 20 | #define X_BACKWARDS 3 |
12104404 | 26:0ea6a550a99d | 21 | #define ROTATE_1 4 |
12104404 | 26:0ea6a550a99d | 22 | #define ROTATE_2 5 |
alaurens | 31:69caabc10879 | 23 | #define X_BEGINING 6 |
alaurens | 31:69caabc10879 | 24 | #define BARRIER_CROSS 7 |
12104404 | 26:0ea6a550a99d | 25 | #define BACKOFF 10 |
12104404 | 26:0ea6a550a99d | 26 | #define X_NEAR_GOAL 0 |
12104404 | 26:0ea6a550a99d | 27 | #define X_FAR_GOAL 90 |
12104404 | 26:0ea6a550a99d | 28 | #define Y_INCREMENT 7 |
alaurens | 31:69caabc10879 | 29 | #define FRAME_HE 180 |
alaurens | 31:69caabc10879 | 30 | #define ROB_SIZE 34 |
alaurens | 31:69caabc10879 | 31 | #define TILTZZ 5 |
12104404 | 26:0ea6a550a99d | 32 | |
12104404 | 15:7729da55873a | 33 | enum { |
12104404 | 15:7729da55873a | 34 | ANGLE_TURN = 0, |
12104404 | 15:7729da55873a | 35 | ANGLE_BIAS = 1, |
12104404 | 15:7729da55873a | 36 | }; |
12104404 | 26:0ea6a550a99d | 37 | |
12104404 | 6:0602a9e8118b | 38 | class LOCOMOTION |
12104404 | 6:0602a9e8118b | 39 | { |
12104404 | 6:0602a9e8118b | 40 | public: |
12104404 | 24:fb1f083ebd62 | 41 | LOCOMOTION(PinName en, PinName motor1F, PinName motor1B,PinName motor2F, PinName motor2B, PinName forward1, PinName forward2, DigitalOut& led1, DigitalOut& led2, DigitalOut& led3, DigitalOut& led4); |
12104404 | 23:455f7da3dd7a | 42 | DigitalOut _en; |
12104404 | 15:7729da55873a | 43 | PwmOut _m1f; |
12104404 | 15:7729da55873a | 44 | PwmOut _m1b; |
12104404 | 15:7729da55873a | 45 | PwmOut _m2f; |
12104404 | 15:7729da55873a | 46 | PwmOut _m2b; |
12104404 | 15:7729da55873a | 47 | DigitalOut _m1dir; |
12104404 | 15:7729da55873a | 48 | DigitalOut _m2dir; |
12104404 | 24:fb1f083ebd62 | 49 | DigitalOut _led1; |
12104404 | 24:fb1f083ebd62 | 50 | DigitalOut _led2; |
12104404 | 24:fb1f083ebd62 | 51 | DigitalOut _led3; |
12104404 | 24:fb1f083ebd62 | 52 | DigitalOut _led4; |
12104404 | 23:455f7da3dd7a | 53 | void eStop(void); |
12104404 | 26:0ea6a550a99d | 54 | void mStop(void); |
12104404 | 18:f9012e93edb8 | 55 | bool setXPos(int target, int current, int error, int angle); |
12104404 | 25:f3bf8351bbd4 | 56 | bool setYBias(int target, int current, int error, int angle); |
12104404 | 15:7729da55873a | 57 | bool setAngle(int target, int current, int error, int mode); |
12104404 | 25:f3bf8351bbd4 | 58 | |
alaurens | 31:69caabc10879 | 59 | void setXstate(int *xCurrState, int *xTarget,bool xGood,bool angleGood,int *angleGoal,int *angleTol,int yTarget ); |
12104404 | 25:f3bf8351bbd4 | 60 | void setAngleTol(int *angleTol,bool yGood, bool xGood); |
12104404 | 25:f3bf8351bbd4 | 61 | void setYgoal(bool xGood,bool angleGood,bool yGood,int *yTarget); |
12104404 | 25:f3bf8351bbd4 | 62 | void check_xya(bool *xGood,bool *yGood,bool *angleGood, int xGoal,int angleGoal,int yGoal,LOCALIZE_xya xya,int xErr, int yErr,int angleErr); |
12104404 | 27:fb1298d35bd1 | 63 | void moveF(int angle); |
12104404 | 27:fb1298d35bd1 | 64 | void moveB(void); |
12104404 | 27:fb1298d35bd1 | 65 | |
12104404 | 15:7729da55873a | 66 | protected: |
12104404 | 17:2f89826b5679 | 67 | float s; |
12104404 | 25:f3bf8351bbd4 | 68 | void setMotors(float x); |
12104404 | 27:fb1298d35bd1 | 69 | void setMotors12(float x, float y); |
12104404 | 23:455f7da3dd7a | 70 | int wrap(int num); |
12104404 | 27:fb1298d35bd1 | 71 | inline float compG(float speed, bool dir, int angle); |
12104404 | 19:2dd81b864e14 | 72 | |
12104404 | 6:0602a9e8118b | 73 | }; |
12104404 | 6:0602a9e8118b | 74 | #endif |