Cooper Liu
/
Eurobot2013_Co-Processor
working version with calibration done
Fork of Eurobot2013 by
Diff: globals.h
- Revision:
- 1:6799c07fe510
- Child:
- 3:8c78c15a92e3
- Child:
- 7:88753d0ad4ca
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/globals.h Wed Nov 07 14:37:35 2012 +0000 @@ -0,0 +1,99 @@ +#ifndef GLOBALS_H +#define GLOBALS_H + +#include "mbed.h" +#define PI 3.14159265 + + +//#define ROBOT_SECONDARY + +//enables ui +//#define UION + +#ifdef ROBOT_SECONDARY +//Secondary Robot constants in mm +const int robot_width = 260; +const int encoderRevCount = 360; +const int wheelmm = 229; +const int robotCircumference = 816; + + +#else +#define ROBOT_PRIMARY +// invert echo polarity for primary +#define SONAR_ECHO_INV +// Primary Robot constants +const int robot_width = 390; +const int encoderRevCount = 1856; +const int wheelmm = 308; +const int robotCircumference = 1150; +#endif + + + +//Robot movement constants +const float fwdvarperunit = 0.01; //1 std dev = 7% //NEEDS TO BE MEASURED AGAIN! +const float varperang = 0.01; //around 1 degree stddev per 180 turn +const float xyvarpertime = 0.0005; //(very poorly) accounts for hitting things +const float angvarpertime = 0.001; + +//sonar constants +static const float sonarvariance = 0.005; + +//IR constants +static const float IRvariance = 0.001; + +//Arena constants +struct pos { + int x; + int y; +}; + +//beacon positions +extern pos beaconpos[]; + +//Colour +extern bool Colour; // 1 for red, 0 for blue + +//System constants +const int PREDICTPERIOD = 20; //ms + +//High speed serial port +extern Serial pc; + +//I2C mutex +//extern Mutex i2c_rlock; +//extern Mutex i2c_wlock; + + +// IR angle calc +#define RELI_BOUND_LOW 4 +#define RELI_BOUND_HIGH 25 + +// Movement target tolerances +#define POSITION_TOR 20 // in mm +#define ANGLE_TOR 0.06 // in rad + +// motion control + +#ifndef MOVE_SPEED_DEF +#define MOVE_SPEED_DEF +static int MOVE_SPEED = 35; +#endif + +#define MAX_STEP_RATIO 0.10 //maximum change in the speed +//#define TRACK_RATE 10 // +- rate for each wheel when tracking + +#ifdef ROBOT_PRIMARY +#define FWD_MOVE_P 20//18 +#define SPIN_MOVE_P 7//5.8 +#else +#define FWD_MOVE_P 3.2 +#define SPIN_MOVE_P 4 +#endif + +// Task suspend periods +#define IR_TURRET_PERIOD 200 +#define MOTION_UPDATE_PERIOD 20 + +#endif \ No newline at end of file