DERPS

Dependencies:   BMP280 BNO055_fusion PowerControl mbed

Fork of STRAIGHT_DRIVE_NO_SEP by Antoine Laurens

Committer:
12104404
Date:
Sun Apr 24 22:37:07 2016 +0000
Revision:
35:68917796c30a
Parent:
34:083073e54dbd
Child:
36:dc69442c4c47
angle bias;

Who changed what in which revision?

UserRevisionLine numberNew 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 35:68917796c30a 8 #define SPEED_TURN_MIN 0.20//0.15
12104404 35:68917796c30a 9 #define SPEED_TURN_MAX 0.35//0.45
12104404 35:68917796c30a 10 #define Y_BIAS_MIN 0.95
12104404 25:f3bf8351bbd4 11 #define Y_BIAS_MAX 1.00
12104404 35:68917796c30a 12 #define SPEED_X_MIN 0.15//0.65//0.15
12104404 35:68917796c30a 13 #define SPEED_X_MAX 0.25//0.75//0.25
alaurens 34:083073e54dbd 14 #define GAIN_GRAVITY 0.5
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
alaurens 33:baf24c59affc 26 #define X_NEAR_GOAL 30
alaurens 33:baf24c59affc 27 #define X_FAR_GOAL 120
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 34:083073e54dbd 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 35:68917796c30a 55 bool setXPos(int target, int current, int error, int angle, int curr_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