Nathaniel Honka / initExoVars

Fork of initExoVars by HEL's Angels

Committer:
perr1940
Date:
Fri Jun 26 22:48:28 2015 +0000
Revision:
6:87ad618621a4
Parent:
5:fcd299262d0a
Child:
7:bbcbecee4183
small stupid change.  zero_enc_offset_R doesn't work

Who changed what in which revision?

UserRevisionLine numberNew contents of line
perr1940 0:cd5ad8e47eb8 1
perr1940 0:cd5ad8e47eb8 2
perr1940 0:cd5ad8e47eb8 3 #ifndef INIT_H
perr1940 0:cd5ad8e47eb8 4 #define INIT_H
perr1940 0:cd5ad8e47eb8 5
perr1940 0:cd5ad8e47eb8 6 #include "mbed.h"
perr1940 0:cd5ad8e47eb8 7 #include "Encoder.h"
perr1940 0:cd5ad8e47eb8 8 #include "HipControl.h"
perr1940 0:cd5ad8e47eb8 9 #include "knee.h"
perr1940 0:cd5ad8e47eb8 10 #include "FSM.h"
perr1940 0:cd5ad8e47eb8 11 #include "MM_gait.h"
perr1940 0:cd5ad8e47eb8 12 #include "dataComm.h"
perr1940 0:cd5ad8e47eb8 13 #define PI (3.141592653589793)
perr1940 0:cd5ad8e47eb8 14 #define my_delete(x) {delete x; x = NULL;}
perr1940 0:cd5ad8e47eb8 15
perr1940 0:cd5ad8e47eb8 16 //#define SAMPLE_TIME .01
perr1940 0:cd5ad8e47eb8 17 #define SAMPLE_TIME .001
perr1940 0:cd5ad8e47eb8 18 #define TO_RAD(x) (x * 0.01745329252) // *pi/180
perr1940 0:cd5ad8e47eb8 19
perr1940 0:cd5ad8e47eb8 20
perr1940 0:cd5ad8e47eb8 21 /********************************
perr1940 0:cd5ad8e47eb8 22 * Initializing various I/O pins!
perr1940 0:cd5ad8e47eb8 23 ********************************/
perr1940 0:cd5ad8e47eb8 24 extern DigitalOut mbedLED1;
perr1940 0:cd5ad8e47eb8 25 extern DigitalOut mbedLED2;
perr1940 0:cd5ad8e47eb8 26 extern DigitalOut mbedLED3;
perr1940 0:cd5ad8e47eb8 27 extern DigitalOut motorLED;
perr1940 0:cd5ad8e47eb8 28
perr1940 0:cd5ad8e47eb8 29 extern SPI dataBedSPI; // mosi, miso, sclk
perr1940 0:cd5ad8e47eb8 30 extern DigitalOut DB_cs;
perr1940 0:cd5ad8e47eb8 31 extern SPI IMUspi;
perr1940 0:cd5ad8e47eb8 32 extern DigitalOut IMUcs;
perr1940 0:cd5ad8e47eb8 33 extern Serial pc;
perr1940 0:cd5ad8e47eb8 34
perr1940 0:cd5ad8e47eb8 35 // Setup stuff
perr1940 0:cd5ad8e47eb8 36 // absolutes
perr1940 0:cd5ad8e47eb8 37 //extern SPI encoder_L;
perr1940 0:cd5ad8e47eb8 38 //extern DigitalOut encoder_cs_L;
perr1940 0:cd5ad8e47eb8 39 //extern SPI encoder_R;
perr1940 0:cd5ad8e47eb8 40 //extern DigitalOut encoder_cs_R;
perr1940 0:cd5ad8e47eb8 41 extern Encoder encoder_L;
perr1940 0:cd5ad8e47eb8 42 extern Encoder encoder_R;
perr1940 0:cd5ad8e47eb8 43
perr1940 0:cd5ad8e47eb8 44 // Incremental Indexes (only for homing!)
perr1940 0:cd5ad8e47eb8 45 extern InterruptIn encIdx_R;
perr1940 0:cd5ad8e47eb8 46 extern InterruptIn encIdx_L;
perr1940 0:cd5ad8e47eb8 47
perr1940 0:cd5ad8e47eb8 48 // Right Leg
perr1940 0:cd5ad8e47eb8 49 extern PwmOut pwmpin_R;
perr1940 0:cd5ad8e47eb8 50 extern DigitalOut dirpin_R;
perr1940 0:cd5ad8e47eb8 51
perr1940 0:cd5ad8e47eb8 52 //Left Leg
perr1940 0:cd5ad8e47eb8 53 //extern PwmOut pwmpin_L;
perr1940 0:cd5ad8e47eb8 54 //extern DigitalOut dirpin_L;
perr1940 0:cd5ad8e47eb8 55 extern HipControl hip_L;
perr1940 0:cd5ad8e47eb8 56 extern HipControl hip_R;
perr1940 0:cd5ad8e47eb8 57 extern Knee knee_L;
perr1940 0:cd5ad8e47eb8 58 extern Knee knee_R;
perr1940 0:cd5ad8e47eb8 59
perr1940 0:cd5ad8e47eb8 60 extern FSM fsm;
perr1940 0:cd5ad8e47eb8 61
perr1940 0:cd5ad8e47eb8 62 extern struct MMgait_t mm_gait_params;
perr1940 0:cd5ad8e47eb8 63 extern MMSwing swing;
perr1940 0:cd5ad8e47eb8 64 extern MMStance stance;
cashdollar 2:650a015179b9 65 extern MMFSStance fsStance;
cashdollar 2:650a015179b9 66 extern MMFSSwing fsSwing;
cashdollar 2:650a015179b9 67 extern MMFTG ftgSwing;
cashdollar 2:650a015179b9 68 extern MMFTG ftgStance;
perr1940 0:cd5ad8e47eb8 69 extern GaitGenerator mm_gait;
cashdollar 4:bd8994714003 70 extern LinearBlend blend_left;
cashdollar 4:bd8994714003 71 extern LinearBlend blend_right;
perr1940 0:cd5ad8e47eb8 72
perr1940 0:cd5ad8e47eb8 73
perr1940 0:cd5ad8e47eb8 74 /*******************************
perr1940 0:cd5ad8e47eb8 75 * END OF I/O Initialization
perr1940 0:cd5ad8e47eb8 76 *******************************/
perr1940 0:cd5ad8e47eb8 77
perr1940 0:cd5ad8e47eb8 78 /*******************************
perr1940 0:cd5ad8e47eb8 79 * GLOBAL VARS
perr1940 0:cd5ad8e47eb8 80 *******************************/
perr1940 0:cd5ad8e47eb8 81
perr1940 0:cd5ad8e47eb8 82 // Global Timers!
perr1940 0:cd5ad8e47eb8 83 extern Timer sysClk; // system clock (primarily for datalogging)
perr1940 0:cd5ad8e47eb8 84 extern Timer tState; // time in FSM state
perr1940 0:cd5ad8e47eb8 85 extern Timer t_HCl; // time when high current begins
perr1940 0:cd5ad8e47eb8 86 extern Timer t_HCr;
perr1940 0:cd5ad8e47eb8 87 extern Timer t_BetweenStepCommand;
perr1940 0:cd5ad8e47eb8 88
perr1940 0:cd5ad8e47eb8 89 const unsigned int enc_ticks=pow(2.,14.)-1; //the number of ticks that the encoder has, 2^14 for our encoder, -1 for 0 state
perr1940 0:cd5ad8e47eb8 90 const float enc2deg = 360./enc_ticks; // converts encoder reading from 0-16383 (14 bit) to 0-360deg (360 / 16383);
perr1940 0:cd5ad8e47eb8 91 const float control_lim_high=90; //soft stop on the controller
perr1940 0:cd5ad8e47eb8 92 const float control_lim_low=-55;//soft stop on the controller
perr1940 0:cd5ad8e47eb8 93 extern float TimeSinceLastStep;
perr1940 0:cd5ad8e47eb8 94
perr1940 0:cd5ad8e47eb8 95 //Control Variables
perr1940 0:cd5ad8e47eb8 96 // Control variables
perr1940 0:cd5ad8e47eb8 97 // Gain Scheduling!
perr1940 5:fcd299262d0a 98 extern float Kp_Swing;
perr1940 5:fcd299262d0a 99 extern float Kp_Stance;
perr1940 0:cd5ad8e47eb8 100 extern const float Kp_DoubleStance;//.01;
perr1940 0:cd5ad8e47eb8 101 extern const float Kp_Standing;//.01; //0.0025
perr1940 0:cd5ad8e47eb8 102 extern const float Kp_StandUp;
perr1940 0:cd5ad8e47eb8 103 extern const float Kp_SitDown ;
perr1940 0:cd5ad8e47eb8 104 extern const float Kp_Seated;
perr1940 0:cd5ad8e47eb8 105
perr1940 0:cd5ad8e47eb8 106 extern const float Kp;
perr1940 5:fcd299262d0a 107 extern float Kd;
perr1940 0:cd5ad8e47eb8 108 extern const float sat;
perr1940 0:cd5ad8e47eb8 109 extern const float Kp_mag;
perr1940 0:cd5ad8e47eb8 110 extern const float Kp_freq;
perr1940 0:cd5ad8e47eb8 111 extern const float Kp_offset;
perr1940 0:cd5ad8e47eb8 112 extern float stand_adjust;
cashdollar 2:650a015179b9 113 extern float zero_enc_offset_L;
cashdollar 2:650a015179b9 114 extern float zero_end_offset_R;
perr1940 6:87ad618621a4 115 extern float bob_dole;
cashdollar 2:650a015179b9 116 extern float zero_ang_L;
cashdollar 2:650a015179b9 117 extern float zero_ang_R;
cashdollar 2:650a015179b9 118
perr1940 0:cd5ad8e47eb8 119
perr1940 0:cd5ad8e47eb8 120 #endif
perr1940 0:cd5ad8e47eb8 121
perr1940 0:cd5ad8e47eb8 122 extern void initializeExoIOs();
cashdollar 2:650a015179b9 123 void readCalib();