Eurobot2012_Primary

Dependencies:   mbed Eurobot_2012_Primary

globals.h

Committer:
narshu
Date:
2012-04-28
Revision:
15:acae5c0e9ca8
Parent:
14:24f994dc2770
Child:
19:06610e1c0895

File content as of revision 15:acae5c0e9ca8:

#ifndef GLOBALS_H
#define GLOBALS_H

#include "mbed.h"
#define PI 3.14159265

//enables ui
#define UION

//#define ROBOT_SECONDARY

#ifdef ROBOT_SECONDARY
//Secondary Robot constants in mm
const int robot_width = 260;
const int encoderRevCount = 360;
const int wheelmm = 226;
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 = 304;
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;//0.0005; //(very poorly) accounts for hitting things
const float angvarpertime = 0;//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;
};
const pos beaconpos[] = {{3000, 1000},{0,0}, {0,2000}};

//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            50
#define ANGLE_TOR               0.1

// motion control
#define MOVE_SPEED              30
#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 14
#define SPIN_MOVE_P 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