Code to let Gr20's BioRobotics2017 robot come to live.

Dependencies:   FastPWM MODSERIAL QEI mbed

Revision:
2:df0c6af898ac
Parent:
0:caa8ee3bd882
Child:
5:088917beb5e4
--- a/ref.h	Sun Nov 12 12:05:22 2017 +0000
+++ b/ref.h	Sun Nov 12 14:06:23 2017 +0000
@@ -1,45 +1,68 @@
 /**
  * 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;
-const double kCalibrationOmega = 20; // [deg/sec]
-const double kCalibrationError = 1;
-const double kCalibrationOmegaStep = kCalibrationOmega*kSampleTime;
+
+/**
+ * Allowed range of motion and linear speed
+ */
+const double kMinX = 0.280;  // [m]
+const double kMaxX = 0.560;  // [m]
+
+const double kMinY = -0.140; // [m]
+const double kMaxY =  0.170; // [m]
 
-const double kMinX = 0.290;
-const double kMaxX = 0.600;
+const double kMaxSpeed = 0.05;                 // [m/s]
+const double kMaxStep = kMaxSpeed*kSampleTime; // [m]
 
-const double kMinY = -0.140;
-const double kMaxY =  0.190;
+/**
+ * Calibration motion;
+ */
+const double kCalibrationOmega = 20; // [deg/sec]
+const double kCalibrationError = 1;  // [deg]
+const double kCalibrationOmegaStep = kCalibrationOmega*kSampleTime; // [deg]
 
-const double kOriginTheta1 = robot::InverseKinematicsTheta(kMinX,kMinY,1);
+
+/**
+ * Home angles
+ */
+const double kOriginTheta1 = robot::InverseKinematicsTheta(kMinX,kMinY,1);//[deg]
 const double kOriginTheta2 = robot::InverseKinematicsTheta(kMinX,kMinY,2);
 
-const double kMaxSpeed = 0.05;// [m/s]
-const double kMaxStep = kMaxSpeed*kSampleTime;
-
+/**
+ * Demo coordinates for linear movement between points
+ */
 int i_demo_coord = 0;
 const int kNumDemoCoords = 9;
 const double kDemoCoords[2][kNumDemoCoords]  {
     {kMinX, kMaxX, kMaxX, kMinX, kMinX, kMaxX, kMaxX, kMinX, kMinX},
     {kMinY, kMinY, kMaxY, kMaxY, kMinY, kMaxY, kMinY, kMaxY, kMaxY}
-    };
+};
 
+/**
+ * Current reference signal; motor angles and (x,y) through forward kinematics
+ */
 double theta_1 = 0;
 double theta_2 = 0;
 
 double get_ref_x();
 double get_ref_y();
 
-
-
 void SetPositionAsReference();
 
+/**
+ * Reference signal generation functions
+ */
 void UpdateReference();
 
 void CalibrationReference();
 void HomingReference();
 void DemoReference();
-}
\ No newline at end of file
+}