control for robotic arm that can play chess using a granular gripper
Dependencies: Encoder mbed HIDScope Servo MODSERIAL
Fork of chessRobot by
Revision 119:e5136c02a00e, committed 2015-10-28
- Comitter:
- annesteenbeek
- Date:
- Wed Oct 28 12:17:49 2015 +0100
- Parent:
- 118:49605b5bd802
- Parent:
- 113:7af0ae9a24c0
- Child:
- 120:440f1516101b
- Commit message:
- merged with filter changes
Changed in this revision
--- a/emg.cpp Wed Oct 28 12:16:02 2015 +0100 +++ b/emg.cpp Wed Oct 28 12:17:49 2015 +0100 @@ -57,9 +57,9 @@ emg_filt_val = biquad(emg_filt_val,f21_v1,f21_v2,f21_a1,f21_a2,f21_b0,f21_b1,f21_b2,f21_gain); // Apply highpass emg_filt_val = biquad(emg_filt_val,f22_v1,f22_v2,f22_a1,f22_a2,f22_b0,f22_b1,f22_b2,f22_gain); emg_filt_val = biquad(emg_filt_val,f23_v1,f23_v2,f23_a1,f23_a2,f23_b0,f23_b1,f23_b2,f23_gain); - emg_filt_val = biquad(emg_filt_val,f31_v1,f31_v2,f31_a1,f31_a2,f31_b0,f31_b1,f31_b2,f31_gain); // Apply lowpass - emg_filt_val = biquad(emg_filt_val,f32_v1,f32_v2,f32_a1,f32_a2,f32_b0,f32_b1,f32_b2,f32_gain); - emg_filt_val = biquad(emg_filt_val,f33_v1,f33_v2,f33_a1,f33_a2,f33_b0,f33_b1,f33_b2,f33_gain); + //emg_filt_val = biquad(emg_filt_val,f31_v1,f31_v2,f31_a1,f31_a2,f31_b0,f31_b1,f31_b2,f31_gain); // Apply lowpass + //emg_filt_val = biquad(emg_filt_val,f32_v1,f32_v2,f32_a1,f32_a2,f32_b0,f32_b1,f32_b2,f32_gain); + //emg_filt_val = biquad(emg_filt_val,f33_v1,f33_v2,f33_a1,f33_a2,f33_b0,f33_b1,f33_b2,f33_gain); // Rectify signal emg_filt_val = fabs(emg_filt_val); @@ -81,9 +81,9 @@ emg_filt_val = biquad(emg_filt_val,f21_v1b,f21_v2b,f21_a1,f21_a2,f21_b0,f21_b1,f21_b2,f21_gain); // Apply highpass emg_filt_val = biquad(emg_filt_val,f22_v1b,f22_v2b,f22_a1,f22_a2,f22_b0,f22_b1,f22_b2,f22_gain); emg_filt_val = biquad(emg_filt_val,f23_v1b,f23_v2b,f23_a1,f23_a2,f23_b0,f23_b1,f23_b2,f23_gain); - emg_filt_val = biquad(emg_filt_val,f31_v1b,f31_v2b,f31_a1,f31_a2,f31_b0,f31_b1,f31_b2,f31_gain); // Apply lowpass - emg_filt_val = biquad(emg_filt_val,f32_v1b,f32_v2b,f32_a1,f32_a2,f32_b0,f32_b1,f32_b2,f32_gain); - emg_filt_val = biquad(emg_filt_val,f33_v1b,f33_v2b,f33_a1,f33_a2,f33_b0,f33_b1,f33_b2,f33_gain); + //emg_filt_val = biquad(emg_filt_val,f31_v1b,f31_v2b,f31_a1,f31_a2,f31_b0,f31_b1,f31_b2,f31_gain); // Apply lowpass + //emg_filt_val = biquad(emg_filt_val,f32_v1b,f32_v2b,f32_a1,f32_a2,f32_b0,f32_b1,f32_b2,f32_gain); + //emg_filt_val = biquad(emg_filt_val,f33_v1b,f33_v2b,f33_a1,f33_a2,f33_b0,f33_b1,f33_b2,f33_gain); // Rectify signal emg_filt_val = fabs(emg_filt_val);
--- a/filter_constants.cpp Wed Oct 28 12:16:02 2015 +0100 +++ b/filter_constants.cpp Wed Oct 28 12:17:49 2015 +0100 @@ -31,14 +31,14 @@ const double f22_gain = 0.633951, f22_a1 = -1.12909340502, f22_a2 = 0.40671095272, f22_b0 = 1, f22_b1 = -2, f22_b2 = 1; // Constants for pre-filter BiQuad: Highpass 20 Hz #2 const double f23_gain = 0.780779, f23_a1 = -1.39062059536, f23_a2 = 0.73254153630, f23_b0 = 1, f23_b1 = -2, f23_b2 = 1; // Constants for pre-filter BiQuad: Highpass 20 Hz #3 -double f31_v1=0, f31_v2=0, f32_v1=0, f32_v2=0, f33_v1=0, f33_v2=0; -double f31_v1b=0, f31_v2b=0, f32_v1b=0, f32_v2b=0, f33_v1b=0, f33_v2b=0; -const double f31_gain = 0.130049, f31_a1 = -0.57789344562, f31_a2 = 0.09809080329, f31_b0 = 1, f31_b1 = 2, f31_b2 = 1; // Constants for pre-filter BiQuad: Lowpass 30 Hz #1 -const double f32_gain = 0.147923, f32_a1 = -0.65731925030, f32_a2 = 0.24901264940, f32_b0 = 1, f32_b1 = 2, f32_b2 = 1; // Constants for pre-filter BiQuad: Lowpass 30 Hz #2 -const double f33_gain = 0.194139, f33_a1 = -0.86268420183, f33_a2 = 0.63923919773, f33_b0 = 1, f33_b1 = 2, f33_b2 = 1; // Constants for pre-filter BiQuad: Lowpass 30 Hz #3 +//double f31_v1=0, f31_v2=0, f32_v1=0, f32_v2=0, f33_v1=0, f33_v2=0; +//double f31_v1b=0, f31_v2b=0, f32_v1b=0, f32_v2b=0, f33_v1b=0, f33_v2b=0; +//const double f31_gain = 0.130049, f31_a1 = -0.57789344562, f31_a2 = 0.09809080329, f31_b0 = 1, f31_b1 = 2, f31_b2 = 1; // Constants for pre-filter BiQuad: Lowpass 30 Hz #1 +//const double f32_gain = 0.147923, f32_a1 = -0.65731925030, f32_a2 = 0.24901264940, f32_b0 = 1, f32_b1 = 2, f32_b2 = 1; // Constants for pre-filter BiQuad: Lowpass 30 Hz #2 +//const double f33_gain = 0.194139, f33_a1 = -0.86268420183, f33_a2 = 0.63923919773, f33_b0 = 1, f33_b1 = 2, f33_b2 = 1; // Constants for pre-filter BiQuad: Lowpass 30 Hz #3 double a11_v1=0, a11_v2=0, a12_v1=0, a12_v2=0, a13_v1=0, a13_v2=0; double a11_v1b=0, a11_v2b=0, a12_v1b=0, a12_v2b=0, a13_v1b=0, a13_v2b=0; -const double a11_gain = 0.002932, a11_a1 = -1.79028908066, a11_a2 = 0.80198751695, a11_b0 = 1, a11_b1 = 2, a11_b2 = 1; // Constants for averaging BiQuad: Lowpass 4 Hz #1 -const double a12_gain = 0.003004, a12_a1 = -1.83907730494, a12_a2 = 0.85109454222, a12_b0 = 1, a12_b1 = 2, a12_b2 = 1; // Constants for averaging BiQuad: Lowpass 4 Hz #2 -const double a13_gain = 0.003145, a13_a1 = -1.93018419700, a13_a2 = 0.94279676171, a13_b0 = 1, a13_b1 = 2, a13_b2 = 1; // Constants for averaging BiQuad: Lowpass 4 Hz #3 +const double a11_gain = 0.001275, a11_a1 = -1.861713, a11_a2 = 0.866812, a11_b0 = 1, a11_b1 = 2, a11_b2 = 1; // Constants for averaging BiQuad: Lowpass 4 Hz #1 +const double a12_gain = 0.001298, a12_a1 = -1.895537, a12_a2 = 0.900729, a12_b0 = 1, a12_b1 = 2, a12_b2 = 1; // Constants for averaging BiQuad: Lowpass 4 Hz #2 +const double a13_gain = 0.001340, a13_a1 = -1.957123, a13_a2 = 0.962484, a13_b0 = 1, a13_b1 = 2, a13_b2 = 1; // Constants for averaging BiQuad: Lowpass 4 Hz #3