![]() |
Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
Integrated Navigation System interface. More...
#include <time.h>
#include "ins_ext_pose.h"
#include "state.h"
#include "math/pprz_algebra.h"
#include "math/pprz_algebra_float.h"
#include "modules/imu/imu.h"
#include "modules/ahrs/ahrs.h"
#include "modules/ins/ins.h"
#include "generated/flight_plan.h"
#include "modules/core/abi.h"
#include "modules/datalink/telemetry.h"
Go to the source code of this file.
Data Structures | |
struct | InsExtPose |
Data for telemetry and LTP origin. More... | |
Macros | |
#define | INS_EXT_POSE_P0 {1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.} |
#define | INS_EXT_POSE_Q_NOISE {1.0, 1.0, 1.0, 0.0173, 4.878e-4, 3.547e-4} |
#define | INS_EXT_POSE_R_NOISE {8.372e-6, 3.832e-6, 4.761e-6, 2.830e-4, 8.684e-6, 7.013e-6} |
#define | DEBUG_PRINT(...) {} |
#define | INS_EXT_POSE_IMU_ID ABI_BROADCAST |
Import Gyro and Acc from ABI. | |
Integrated Navigation System interface.
Definition in file ins_ext_pose.c.
struct InsExtPose |
Data for telemetry and LTP origin.
Definition at line 65 of file ins_ext_pose.c.
Data Fields | ||
---|---|---|
struct FloatVect3 | accels_f | |
struct FloatEulers | ev_att | |
struct FloatVect3 | ev_pos | |
struct FloatQuat | ev_quat | |
float | ev_time | |
struct FloatVect3 | ev_vel | |
struct FloatRates | gyros_f | |
bool | has_new_acc | |
bool | has_new_ext_pose | |
bool | has_new_gyro | |
struct NedCoor_i | ltp_accel | |
struct LtpDef_i | ltp_def | |
struct NedCoor_i | ltp_pos | |
struct NedCoor_i | ltp_speed | |
bool | started |
#define DEBUG_PRINT | ( | ... | ) | {} |
Definition at line 56 of file ins_ext_pose.c.
#define INS_EXT_POSE_IMU_ID ABI_BROADCAST |
Import Gyro and Acc from ABI.
Definition at line 194 of file ins_ext_pose.c.
#define INS_EXT_POSE_P0 {1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.} |
Definition at line 41 of file ins_ext_pose.c.
#define INS_EXT_POSE_Q_NOISE {1.0, 1.0, 1.0, 0.0173, 4.878e-4, 3.547e-4} |
Definition at line 45 of file ins_ext_pose.c.
#define INS_EXT_POSE_R_NOISE {8.372e-6, 3.832e-6, 4.761e-6, 2.830e-4, 8.684e-6, 7.013e-6} |
Definition at line 49 of file ins_ext_pose.c.
|
static |
Definition at line 213 of file ins_ext_pose.c.
References InsExtPose::accels_f, ACCELS_FLOAT_OF_BFP, InsExtPose::has_new_acc, and ins_ext_pose.
Referenced by ins_ext_pose_init().
|
static |
Definition at line 399 of file ins_ext_pose.c.
References EKF_U_ACC_X, EKF_U_ACC_Y, EKF_U_ACC_Z, EKF_U_GYRO_P, EKF_U_GYRO_Q, EKF_U_GYRO_R, EKF_X_A_BIAS_X, EKF_X_A_BIAS_Y, EKF_X_A_BIAS_Z, EKF_X_G_BIAS_P, EKF_X_G_BIAS_Q, EKF_X_G_BIAS_R, EKF_X_PHI, EKF_X_POS_X, EKF_X_POS_Y, EKF_X_POS_Z, EKF_X_PSI, EKF_X_THETA, EKF_X_VEL_X, EKF_X_VEL_Y, EKF_X_VEL_Z, foo, and x12.
Referenced by ekf_prediction_step().
|
static |
Definition at line 438 of file ins_ext_pose.c.
References EKF_NUM_STATES, EKF_U_ACC_X, EKF_U_ACC_Y, EKF_U_ACC_Z, EKF_U_GYRO_Q, EKF_U_GYRO_R, EKF_X_A_BIAS_X, EKF_X_A_BIAS_Y, EKF_X_A_BIAS_Z, EKF_X_G_BIAS_P, EKF_X_G_BIAS_Q, EKF_X_G_BIAS_R, EKF_X_PHI, EKF_X_POS_X, EKF_X_POS_Y, EKF_X_POS_Z, EKF_X_PSI, EKF_X_THETA, EKF_X_VEL_X, EKF_X_VEL_Y, EKF_X_VEL_Z, foo, and x12.
Referenced by ekf_prediction_step().
EKF protos.
Definition at line 375 of file ins_ext_pose.c.
References DEBUG_PRINT, EKF_NUM_INPUTS, EKF_NUM_OUTPUTS, EKF_NUM_STATES, ekf_P, ekf_Q, ekf_R, ekf_set_diag(), ekf_U, ekf_X, ekf_Z, float_vect_copy(), foo, INS_EXT_POSE_P0, INS_EXT_POSE_Q_NOISE, INS_EXT_POSE_R_NOISE, and MAKE_MATRIX_PTR.
Referenced by ins_ext_pose_init().
|
static |
Definition at line 516 of file ins_ext_pose.c.
References EKF_NUM_INPUTS, EKF_NUM_STATES, EKF_X_PHI, EKF_X_PSI, EKF_X_THETA, EKF_X_VEL_X, EKF_X_VEL_Y, EKF_X_VEL_Z, EKF_Z_PHI, EKF_Z_POS_X, EKF_Z_POS_Y, EKF_Z_POS_Z, EKF_Z_PSI, EKF_Z_THETA, and foo.
Referenced by ekf_prediction_step().
Definition at line 731 of file ins_ext_pose.c.
References ekf_H, EKF_NUM_OUTPUTS, EKF_NUM_STATES, ekf_P, ekf_R, ekf_X, float_mat_copy(), float_mat_invert(), float_mat_mul(), float_mat_mul_copy(), float_mat_scale(), float_mat_sum_scaled(), float_mat_transpose(), float_mat_vect_mul(), float_vect_add(), float_vect_copy(), float_vect_scale(), foo, K, and MAKE_MATRIX_PTR.
Referenced by ekf_run().
Definition at line 604 of file ins_ext_pose.c.
References ekf_f(), ekf_F(), ekf_L(), EKF_NUM_INPUTS, EKF_NUM_STATES, ekf_P, ekf_Q, ekf_X, float_mat_copy(), float_mat_diagonal_scal(), float_mat_mul(), float_mat_scale(), float_mat_sum_scaled(), float_mat_transpose(), float_mat_transpose_square(), float_vect_add(), float_vect_copy(), float_vect_scale(), foo, and MAKE_MATRIX_PTR.
Referenced by ekf_run().
Definition at line 816 of file ins_ext_pose.c.
References ACCELS_BFP_OF_REAL, InsExtPose::accels_f, DEBUG_PRINT, ekf_measurement_step(), ekf_prediction_step(), ekf_U, EKF_U_ACC_X, EKF_U_ACC_Y, EKF_U_ACC_Z, EKF_U_GYRO_P, EKF_U_GYRO_Q, EKF_U_GYRO_R, ekf_X, EKF_X_A_BIAS_X, EKF_X_A_BIAS_Y, EKF_X_A_BIAS_Z, EKF_X_G_BIAS_P, EKF_X_G_BIAS_Q, EKF_X_G_BIAS_R, EKF_X_PHI, EKF_X_POS_X, EKF_X_POS_Y, EKF_X_POS_Z, EKF_X_PSI, EKF_X_THETA, EKF_X_VEL_X, EKF_X_VEL_Y, EKF_X_VEL_Z, ekf_Z, EKF_Z_PHI, EKF_Z_POS_X, EKF_Z_POS_Y, EKF_Z_POS_Z, EKF_Z_PSI, EKF_Z_THETA, InsExtPose::ev_att, InsExtPose::ev_pos, float_rmat_of_eulers, float_rmat_transp_vmult(), foo, get_sys_time_float(), InsExtPose::gyros_f, InsExtPose::has_new_acc, InsExtPose::has_new_ext_pose, InsExtPose::has_new_gyro, ins_ext_pose, InsExtPose::ltp_accel, InsExtPose::ltp_pos, InsExtPose::ltp_speed, FloatRates::p, FloatEulers::phi, POSITIONS_BFP_OF_REAL, FloatEulers::psi, FloatRates::q, FloatRates::r, SPEEDS_BFP_OF_REAL, InsExtPose::started, stateSetAccelBody_i(), stateSetAccelNed_f(), stateSetBodyRates_f(), stateSetNedToBodyEulers_f(), stateSetPositionNed_f(), stateSetSpeedNed_f(), t0, t1, FloatEulers::theta, VECT3_COPY, FloatVect3::x, NedCoor_f::x, FloatVect3::y, and FloatVect3::z.
Referenced by ins_ext_pose_run().
Definition at line 359 of file ins_ext_pose.c.
Referenced by ekf_init().
|
static |
Definition at line 205 of file ins_ext_pose.c.
References InsExtPose::gyros_f, InsExtPose::has_new_gyro, ins_ext_pose, and RATES_FLOAT_OF_BFP.
Referenced by ins_ext_pose_init().
Module.
Definition at line 283 of file ins_ext_pose.c.
References accel_cb(), accel_ev, DefaultPeriodic, ekf_init(), foo, gyro_cb(), gyro_ev, InsExtPose::has_new_acc, InsExtPose::has_new_ext_pose, InsExtPose::has_new_gyro, ins_ext_pose, INS_EXT_POSE_IMU_ID, ins_ext_pose_init_from_flightplan(), register_periodic_telemetry(), send_ahrs_bias(), send_external_pose_down(), send_filter_status(), send_ins(), send_ins_ref(), send_ins_z(), and InsExtPose::started.
Definition at line 94 of file ins_ext_pose.c.
References ecef_of_lla_i(), foo, LtpDef_i::hmsl, ins_ext_pose, LlaCoor_i::lat, InsExtPose::ltp_def, ltp_def_from_ecef_i(), stateSetLocalOrigin_i(), and waypoints_localize_all().
Referenced by ins_ext_pose_init().
Import External Pose Message.
Definition at line 226 of file ins_ext_pose.c.
References DEBUG_PRINT, ENU_OF_TO_NED, EULERS_COPY, InsExtPose::ev_att, InsExtPose::ev_pos, InsExtPose::ev_quat, InsExtPose::ev_time, InsExtPose::ev_vel, float_eulers_of_quat(), float_quat_comp(), foo, get_sys_time_usec(), InsExtPose::has_new_ext_pose, ins_ext_pose, FloatEulers::phi, FloatEulers::psi, FloatQuat::qi, QUAT_COPY, FloatQuat::qx, FloatQuat::qy, FloatQuat::qz, FloatEulers::theta, and EnuCoor_f::x.
Definition at line 314 of file ins_ext_pose.c.
References ekf_run().
|
static |
Definition at line 172 of file ins_ext_pose.c.
References dev, ekf_X, and foo.
Referenced by ins_ext_pose_init().
|
static |
Definition at line 156 of file ins_ext_pose.c.
References dev, InsExtPose::ev_pos, InsExtPose::ev_quat, InsExtPose::ev_time, InsExtPose::ev_vel, foo, ins_ext_pose, FloatQuat::qi, FloatQuat::qx, FloatQuat::qy, FloatQuat::qz, FloatVect3::x, FloatVect3::y, and FloatVect3::z.
Referenced by ins_ext_pose_init().
|
static |
Definition at line 144 of file ins_ext_pose.c.
References AHRS_COMP_ID_GENERIC, dev, foo, ins_ext_pose, and InsExtPose::started.
Referenced by ins_ext_pose_init().
|
static |
Provide telemetry.
Definition at line 119 of file ins_ext_pose.c.
References dev, foo, ins_ext_pose, InsExtPose::ltp_accel, InsExtPose::ltp_pos, InsExtPose::ltp_speed, NedCoor_i::x, NedCoor_i::y, and NedCoor_i::z.
Referenced by ins_ext_pose_init().
|
static |
Definition at line 135 of file ins_ext_pose.c.
References LlaCoor_i::alt, dev, LtpDef_i::ecef, foo, LtpDef_i::hmsl, ins_ext_pose, LlaCoor_i::lat, LtpDef_i::lla, LlaCoor_i::lon, InsExtPose::ltp_def, EcefCoor_i::x, EcefCoor_i::y, and EcefCoor_i::z.
Referenced by ins_ext_pose_init().
|
static |
Definition at line 127 of file ins_ext_pose.c.
References dev, foo, ins_ext_pose, InsExtPose::ltp_accel, InsExtPose::ltp_pos, InsExtPose::ltp_speed, and NedCoor_i::z.
Referenced by ins_ext_pose_init().
|
static |
Definition at line 198 of file ins_ext_pose.c.
Referenced by ins_ext_pose_init().
|
static |
Definition at line 347 of file ins_ext_pose.c.
Referenced by ekf_measurement_step().
|
static |
Definition at line 343 of file ins_ext_pose.c.
Referenced by ekf_init(), ekf_measurement_step(), and ekf_prediction_step().
|
static |
Definition at line 344 of file ins_ext_pose.c.
Referenced by ekf_init(), and ekf_prediction_step().
|
static |
Definition at line 345 of file ins_ext_pose.c.
Referenced by ekf_init(), and ekf_measurement_step().
|
static |
Definition at line 341 of file ins_ext_pose.c.
Referenced by ekf_init(), ekf_run(), and ins_ext_pose_log_data().
float ekf_X[EKF_NUM_STATES] |
Definition at line 340 of file ins_ext_pose.c.
Referenced by ekf_init(), ekf_measurement_step(), ekf_prediction_step(), ekf_run(), ins_ext_pose_log_data(), and send_ahrs_bias().
|
static |
Definition at line 342 of file ins_ext_pose.c.
Referenced by ekf_init(), ekf_run(), and ins_ext_pose_log_data().
|
static |
Definition at line 199 of file ins_ext_pose.c.
Referenced by ins_ext_pose_init().
struct InsExtPose ins_ext_pose |
Definition at line 91 of file ins_ext_pose.c.
Referenced by accel_cb(), ekf_run(), gyro_cb(), ins_ext_pose_init(), ins_ext_pose_init_from_flightplan(), ins_ext_pose_msg_update(), send_external_pose_down(), send_filter_status(), send_ins(), send_ins_ref(), and send_ins_z().
|
static |
Definition at line 356 of file ins_ext_pose.c.
Referenced by amt22_read(), and ekf_run().
|
static |
Definition at line 357 of file ins_ext_pose.c.
Referenced by amt22_read(), distributed_circular(), ekf_run(), mtostk_apply_polynomial_temp(), and nps_main_loop().