File to generate Jacobian matrix and measurement vector for EKF (for tibia lower collar) to calculate collar joint angles. More...
Functions | |
int | generate_jacobian_tib_low_theta (gsl_matrix *J, gsl_vector *state_vec) |
Generate Jacobian for current state for motion of femur collar. | |
int | generate_mes_vec_tib_low (gsl_vector *mes_vector, tibia &tib, int frame_count) |
Generate measurement vector for the measurement equation of the EKF for calulating thetas. | |
int | h_measurement_tib_low_theta (gsl_vector *h, double theta1, double theta2, double theta3, double theta4) |
Generate measurement vector for specific case, using elements of state vector. | |
int | h_tib_low_theta_encaps (gsl_vector *h, gsl_vector *state_vec) |
Generate predicted measurement vector using state-vector (encapsulator for h_measurement_tib_low()) |
File to generate Jacobian matrix and measurement vector for EKF (for tibia lower collar) to calculate collar joint angles.
int generate_jacobian_tib_low_theta | ( | gsl_matrix * | J, |
gsl_vector * | state_vec | ||
) |
Generate Jacobian for current state for motion of femur collar.
We assume that the configuration is that with 5 plates for the femur, sensor locations given as that for readings done on aug 23, 2011. The calcuations are explained in a pdf explaining EKF, and obtained from the maple file jacob_thetas_tibia_low.maple in the postprocess directory
All sensors need to have their data loaded into femur structure before running this function
[out] | J | 14x4 jacobian matrix for function relating the state of the system (the collar joint angles to the measurement vector (distances between optical marker points) |
[in] | state_vec | 4x1 state vector containing [theta1,..., theta4] |
[in] | fem | Femur structure containing all config data and measurements |
Referenced by run_kalman_tib_low_theta().
int generate_mes_vec_tib_low | ( | gsl_vector * | mes_vector, |
tibia & | tib, | ||
int | frame_count | ||
) |
Generate measurement vector for the measurement equation of the EKF for calulating thetas.
[out] | mes_vector | The 14x1 vector denoting output/measurement vector (size of vector already defined, hence we can make this function generic) |
[in] | fem | Femur structure containing all config data and measurements |
[in] | frame_count | Index to identify the time step/frame number for calculation |
References sensor::mdata, and tibia::optical.
Referenced by run_kalman_tib_low_theta().
int h_measurement_tib_low_theta | ( | gsl_vector * | h, |
double | theta1, | ||
double | theta2, | ||
double | theta3, | ||
double | theta4 | ||
) |
Generate measurement vector for specific case, using elements of state vector.
Referenced by h_tib_low_theta_encaps().
int h_tib_low_theta_encaps | ( | gsl_vector * | h, |
gsl_vector * | state_vec | ||
) |
Generate predicted measurement vector using state-vector (encapsulator for h_measurement_tib_low())
References h_measurement_tib_low_theta().
Referenced by run_kalman_tib_low_theta().