Code to let Gr20's BioRobotics2017 robot come to live.
Dependencies: FastPWM MODSERIAL QEI mbed
Diff: ref.h
- Revision:
- 7:b9a209f889f5
- Parent:
- 5:088917beb5e4
- Child:
- 8:383a0fb48121
--- a/ref.h Mon Nov 13 09:34:39 2017 +0000 +++ b/ref.h Mon Nov 13 10:39:55 2017 +0000 @@ -1,49 +1,51 @@ #ifndef _REF_H_ #define _REF_H_ + +#include "robot.h" + /** * Reference signals * __note that currently no safety limits are implemented__ * simply use the min/max x&y values as a check - * - * Implementation can be found in main.cpp */ namespace ref { // Sample time for reference signals -const double kSampleTime = 0.01; +static const double kSampleTime = 0.01; /** * Allowed range of motion and linear speed */ -const double kMinX = 0.280; // [m] -const double kMaxX = 0.560; // [m] +static const double kMinX = 0.280; // [m] +static const double kMaxX = 0.560; // [m] -const double kMinY = -0.140; // [m] -const double kMaxY = 0.170; // [m] +static const double kMinY = -0.140; // [m] +static const double kMaxY = 0.170; // [m] -const double kMaxSpeed = 0.05; // [m/s] -const double kMaxStep = kMaxSpeed*kSampleTime; // [m] +static const double kMaxSpeed = 0.05; // [m/s] +static const double kMaxStep = kMaxSpeed*kSampleTime; // [m] /** * Calibration motion; */ -const double kCalibrationOmega = 20; // [deg/sec] -const double kCalibrationError = 1; // [deg] -const double kCalibrationOmegaStep = kCalibrationOmega*kSampleTime; // [deg] +static const double kCalibrationOmega = 20; // [deg/sec] +static const double kCalibrationError = 1; // [deg] +static const double kCalibrationOmegaStep = kCalibrationOmega*kSampleTime; // [deg] /** * Home angles */ -const double kOriginTheta1 = robot::InverseKinematicsTheta(kMinX,kMinY,1);//[deg] -const double kOriginTheta2 = robot::InverseKinematicsTheta(kMinX,kMinY,2); +static const double kOriginTheta1 = robot::InverseKinematicsTheta(kMinX,kMinY,1);//[deg] +static const double kOriginTheta2 = robot::InverseKinematicsTheta(kMinX,kMinY,2); + /** * Demo coordinates for linear movement between points */ -int i_demo_coord = 0; -const int kNumDemoCoords = 9; -const double kDemoCoords[2][kNumDemoCoords] { +extern int i_demo_coord; +static const int kNumDemoCoords = 9; +static const double kDemoCoords[2][kNumDemoCoords] { {kMinX, kMaxX, kMaxX, kMinX, kMinX, kMaxX, kMaxX, kMinX, kMinX}, {kMinY, kMinY, kMaxY, kMaxY, kMinY, kMaxY, kMinY, kMaxY, kMaxY} }; @@ -51,8 +53,8 @@ /** * Current reference signal; motor angles and (x,y) through forward kinematics */ -double theta_1 = 0; -double theta_2 = 0; +extern double theta_1; +extern double theta_2; double get_ref_x(); double get_ref_y();