Nathaniel Honka / initExoVars

Fork of initExoVars by HEL's Angels

Committer:
cashdollar
Date:
Tue Jun 30 04:44:30 2015 +0000
Revision:
11:7b7d30293fb7
Parent:
9:6cf157a6d58b
Child:
12:3a5a9bbf1c93
working on read file. not complete

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 9:6cf157a6d58b 12 #include "Brad_poly_gait.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 9:6cf157a6d58b 63 extern struct Brad_poly_gait_t gait_params;
perr1940 9:6cf157a6d58b 64 //extern MMSwing swing;
perr1940 9:6cf157a6d58b 65 //extern MMStance stance;
perr1940 9:6cf157a6d58b 66 extern BradPolySwing swing;
perr1940 9:6cf157a6d58b 67 extern BradPolyStance stance;
cashdollar 2:650a015179b9 68 extern MMFSStance fsStance;
cashdollar 2:650a015179b9 69 extern MMFSSwing fsSwing;
cashdollar 2:650a015179b9 70 extern MMFTG ftgSwing;
cashdollar 2:650a015179b9 71 extern MMFTG ftgStance;
perr1940 0:cd5ad8e47eb8 72 extern GaitGenerator mm_gait;
cashdollar 4:bd8994714003 73 extern LinearBlend blend_left;
cashdollar 4:bd8994714003 74 extern LinearBlend blend_right;
perr1940 0:cd5ad8e47eb8 75
perr1940 0:cd5ad8e47eb8 76
perr1940 0:cd5ad8e47eb8 77 /*******************************
perr1940 0:cd5ad8e47eb8 78 * END OF I/O Initialization
perr1940 0:cd5ad8e47eb8 79 *******************************/
perr1940 0:cd5ad8e47eb8 80
perr1940 0:cd5ad8e47eb8 81 /*******************************
perr1940 0:cd5ad8e47eb8 82 * GLOBAL VARS
perr1940 0:cd5ad8e47eb8 83 *******************************/
perr1940 0:cd5ad8e47eb8 84
perr1940 0:cd5ad8e47eb8 85 // Global Timers!
perr1940 0:cd5ad8e47eb8 86 extern Timer sysClk; // system clock (primarily for datalogging)
perr1940 0:cd5ad8e47eb8 87 extern Timer tState; // time in FSM state
perr1940 0:cd5ad8e47eb8 88 extern Timer t_HCl; // time when high current begins
perr1940 0:cd5ad8e47eb8 89 extern Timer t_HCr;
perr1940 0:cd5ad8e47eb8 90 extern Timer t_BetweenStepCommand;
perr1940 0:cd5ad8e47eb8 91
perr1940 0:cd5ad8e47eb8 92 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 93 const float enc2deg = 360./enc_ticks; // converts encoder reading from 0-16383 (14 bit) to 0-360deg (360 / 16383);
perr1940 0:cd5ad8e47eb8 94 const float control_lim_high=90; //soft stop on the controller
perr1940 0:cd5ad8e47eb8 95 const float control_lim_low=-55;//soft stop on the controller
perr1940 0:cd5ad8e47eb8 96 extern float TimeSinceLastStep;
perr1940 0:cd5ad8e47eb8 97
perr1940 0:cd5ad8e47eb8 98 //Control Variables
perr1940 0:cd5ad8e47eb8 99 // Control variables
perr1940 0:cd5ad8e47eb8 100 // Gain Scheduling!
perr1940 5:fcd299262d0a 101 extern float Kp_Swing;
perr1940 5:fcd299262d0a 102 extern float Kp_Stance;
perr1940 0:cd5ad8e47eb8 103 extern const float Kp_DoubleStance;//.01;
perr1940 0:cd5ad8e47eb8 104 extern const float Kp_Standing;//.01; //0.0025
perr1940 0:cd5ad8e47eb8 105 extern const float Kp_StandUp;
perr1940 0:cd5ad8e47eb8 106 extern const float Kp_SitDown ;
perr1940 0:cd5ad8e47eb8 107 extern const float Kp_Seated;
perr1940 0:cd5ad8e47eb8 108
perr1940 8:ae167702ebcc 109 extern float Kd_Stance;
perr1940 8:ae167702ebcc 110 extern float Kd_Swing;
perr1940 8:ae167702ebcc 111
perr1940 0:cd5ad8e47eb8 112 extern const float Kp;
perr1940 5:fcd299262d0a 113 extern float Kd;
perr1940 0:cd5ad8e47eb8 114 extern const float sat;
perr1940 0:cd5ad8e47eb8 115 extern const float Kp_mag;
perr1940 0:cd5ad8e47eb8 116 extern const float Kp_freq;
perr1940 0:cd5ad8e47eb8 117 extern const float Kp_offset;
perr1940 0:cd5ad8e47eb8 118 extern float stand_adjust;
cashdollar 11:7b7d30293fb7 119 //extern float zero_enc_offset_L;
cashdollar 11:7b7d30293fb7 120 //extern float zero_enc_offset_R;
cashdollar 11:7b7d30293fb7 121 //extern float zero_enc_offset_R;
perr1940 6:87ad618621a4 122 extern float bob_dole;
cashdollar 11:7b7d30293fb7 123 extern float zero_enc_offset_L;//=EncOffset_L;
cashdollar 11:7b7d30293fb7 124 extern float zero_enc_offset_R;//=EncOffset_R;
cashdollar 11:7b7d30293fb7 125
cashdollar 11:7b7d30293fb7 126 //extern float bob_dole;
cashdollar 2:650a015179b9 127 extern float zero_ang_L;
cashdollar 2:650a015179b9 128 extern float zero_ang_R;
cashdollar 2:650a015179b9 129
perr1940 0:cd5ad8e47eb8 130
perr1940 0:cd5ad8e47eb8 131 #endif
perr1940 0:cd5ad8e47eb8 132
perr1940 0:cd5ad8e47eb8 133 extern void initializeExoIOs();
cashdollar 2:650a015179b9 134 void readCalib();