Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of initExoVars by
initExoVars.h@11:7b7d30293fb7, 2015-06-30 (annotated)
- 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?
User | Revision | Line number | New 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(); |