![]() |
Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
Vectornav VN-200 INS subsystem. More...
#include "modules/ins/ins_vectornav.h"
#include "math/pprz_geodetic_wgs84.h"
#include "modules/datalink/telemetry.h"
Go to the source code of this file.
Macros | |
#define | USE_INS_NAV_INIT TRUE |
Functions | |
static void | send_ins (struct transport_tx *trans, struct link_device *dev) |
static void | send_ins_z (struct transport_tx *trans, struct link_device *dev) |
static void | send_ins_ref (struct transport_tx *trans, struct link_device *dev) |
static void | send_vn_info (struct transport_tx *trans, struct link_device *dev) |
static void | send_accel (struct transport_tx *trans, struct link_device *dev) |
static void | send_gyro (struct transport_tx *trans, struct link_device *dev) |
static void | send_accel_scaled (struct transport_tx *trans, struct link_device *dev) |
static void | send_gyro_scaled (struct transport_tx *trans, struct link_device *dev) |
PRINT_CONFIG_MSG ("USE_INS_NAV_INIT defaulting to TRUE") | |
void | ins_vectornav_monitor (void) |
Monitors vectornav data rate and changes GPS lock if the data rate is too low. | |
void | ins_vectornav_event (void) |
Event handling for Vectornav. | |
void | ins_vectornav_init (void) |
Initialize Vectornav struct. | |
void | ins_vectornav_set_sacc (void) |
Set speed (velocity) uncertainty (NED) speed accuracy in cm/s. | |
void | ins_vectornav_set_pacc (void) |
Find maximum uncertainty (NED) position accuracy in cm. | |
void | ins_vectornav_propagate () |
Propagate the received states into the vehicle state machine. | |
Variables | |
struct InsVectornav | ins_vn |
Vectornav VN-200 INS subsystem.
Definition in file ins_vectornav.c.
Definition at line 105 of file ins_vectornav.c.
Event handling for Vectornav.
Definition at line 150 of file ins_vectornav.c.
References ins_vectornav_propagate(), ins_vn, VNPacket::msg_available, vn200_event(), vn200_read_message(), InsVectornav::vn_data, and InsVectornav::vn_packet.
Initialize Vectornav struct.
Definition at line 167 of file ins_vectornav.c.
References InsVectornav::accel_i, InsVectornav::body_to_imu, VNPacket::chksm_error, DefaultPeriodic, foo, VNPacket::framing_error, VNPacket::hdr_error, ins_init_origin_i_from_flightplan(), ins_vn, INS_VN_BODY_TO_IMU_PHI, INS_VN_BODY_TO_IMU_PSI, INS_VN_BODY_TO_IMU_THETA, INT32_VECT3_ZERO, InsVectornav::ltp_accel_i, InsVectornav::ltp_def, InsVectornav::ltp_initialized, InsVectornav::ltp_pos_i, InsVectornav::ltp_speed_i, VNPacket::msg_available, VNPacket::msg_idx, VNPacket::noise_error, orientationSetEulers_f(), VNPacket::overrun_error, register_periodic_telemetry(), send_accel(), send_accel_scaled(), send_gyro(), send_gyro_scaled(), send_ins(), send_ins_ref(), send_ins_z(), send_vn_info(), VNPacket::status, InsVectornav::vn_data, InsVectornav::vn_packet, InsVectornav::vn_rate, InsVectornav::vn_status, VNMsgSync, and VNNotTracking.
Monitors vectornav data rate and changes GPS lock if the data rate is too low.
Definition at line 116 of file ins_vectornav.c.
References SVinfo::cno, VNPacket::counter, GpsState::fix, foo, gps, GPS_FIX_NONE, ins_vn, VNData::mode, GpsState::pacc, GpsState::svinfos, InsVectornav::vn_data, InsVectornav::vn_packet, and InsVectornav::vn_rate.
Propagate the received states into the vehicle state machine.
Definition at line 248 of file ins_vectornav.c.
References VNData::accel, InsVectornav::accel_i, ACCELS_BFP_OF_REAL, LlaCoor_f::alt, VNData::attitude, InsVectornav::body_to_imu, GpsState::course, GpsState::ecef_pos, GpsState::fix, float_quat_of_eulers(), float_rmat_comp(), float_rmat_of_quat(), float_rmat_ratemult(), float_rmat_transp_vmult(), foo, gps, VNData::gps_fix, GPS_FIX_3D, GPS_VALID_COURSE_BIT, GPS_VALID_HMSL_BIT, GPS_VALID_POS_ECEF_BIT, GPS_VALID_POS_LLA_BIT, GpsState::gspeed, VNData::gyro, InsVectornav::gyro_i, GpsState::hmsl, ins_vectornav_set_pacc(), ins_vectornav_set_sacc(), ins_vn, GpsState::last_3dfix_ticks, GpsState::last_3dfix_time, GpsState::last_msg_ticks, GpsState::last_msg_time, LlaCoor_f::lat, VNData::lin_accel, LLA_BFP_OF_REAL, GpsState::lla_pos, InsVectornav::lla_pos, LlaCoor_f::lon, InsVectornav::ltp_accel_f, InsVectornav::ltp_accel_i, InsVectornav::ltp_pos_i, InsVectornav::ltp_speed_i, sys_time::nb_sec, sys_time::nb_sec_rem, GpsState::num_sv, VNData::num_sv, orientationGetRMat_f(), VNData::pos_lla, RATES_BFP_OF_REAL, stateGetAccelNed_i(), stateGetPositionEcef_i(), stateGetPositionNed_i(), stateGetSpeedNed_i(), stateSetAccelNed_f(), stateSetBodyRates_f(), stateSetNedToBodyRMat_f(), stateSetPositionLla_i(), stateSetSpeedNed_f(), GpsState::valid_fields, VECT3_ASSIGN, VNData::vel_ned, InsVectornav::vn_data, wgs84_ellipsoid_to_geoid_f(), NedCoor_f::x, EcefCoor_i::x, NedCoor_f::y, EcefCoor_i::y, and EcefCoor_i::z.
Referenced by ins_vectornav_event().
Find maximum uncertainty (NED) position accuracy in cm.
Definition at line 230 of file ins_vectornav.c.
References gps, ins_vn, GpsState::pacc, VNData::pos_u, and InsVectornav::vn_data.
Referenced by ins_vectornav_propagate().
Set speed (velocity) uncertainty (NED) speed accuracy in cm/s.
Definition at line 221 of file ins_vectornav.c.
References gps, ins_vn, GpsState::sacc, VNData::vel_u, and InsVectornav::vn_data.
Referenced by ins_vectornav_propagate().
PRINT_CONFIG_MSG | ( | "USE_INS_NAV_INIT defaulting to TRUE" | ) |
Referenced by accel_cb(), accel_cb(), accel_cb(), accel_cb(), adc_init(), adc_init_single(), ahrs_dcm_update_accel(), ascii_to_osd_c(), Drift_correction(), gyro_cb(), gyro_cb(), gyro_cb(), gyro_cb(), gyro_cb(), gyro_cb(), gyro_cb(), gyro_cb(), gyro_cb(), init_ltp(), init_ltp(), init_ltp(), mag_cb(), mag_cb(), mcu_arch_init(), and nps_autopilot_run_step().
|
static |
Definition at line 75 of file ins_vectornav.c.
References VNData::accel, dev, foo, IMU_VECTORNAV_ID, ins_vn, InsVectornav::vn_data, FloatVect3::x, FloatVect3::y, and FloatVect3::z.
Referenced by ins_vectornav_init().
|
static |
Definition at line 89 of file ins_vectornav.c.
References InsVectornav::accel_i, dev, foo, IMU_VECTORNAV_ID, ins_vn, Int32Vect3::x, Int32Vect3::y, and Int32Vect3::z.
Referenced by ins_vectornav_init().
|
static |
Definition at line 82 of file ins_vectornav.c.
References dev, foo, VNData::gyro, IMU_VECTORNAV_ID, ins_vn, FloatRates::p, FloatRates::q, FloatRates::r, and InsVectornav::vn_data.
Referenced by ins_vectornav_init().
|
static |
Definition at line 96 of file ins_vectornav.c.
References dev, foo, InsVectornav::gyro_i, IMU_VECTORNAV_ID, ins_vn, Int32Rates::p, Int32Rates::q, and Int32Rates::r.
Referenced by ins_vectornav_init().
|
static |
Definition at line 37 of file ins_vectornav.c.
References dev, foo, ins_vn, InsVectornav::ltp_accel_i, InsVectornav::ltp_pos_i, InsVectornav::ltp_speed_i, NedCoor_i::x, NedCoor_i::y, and NedCoor_i::z.
Referenced by ins_vectornav_init().
|
static |
Definition at line 51 of file ins_vectornav.c.
References LlaCoor_i::alt, dev, LtpDef_i::ecef, foo, LtpDef_i::hmsl, ins_vn, LlaCoor_i::lat, LtpDef_i::lla, LlaCoor_i::lon, InsVectornav::ltp_def, InsVectornav::ltp_initialized, InsVectornav::qfe, EcefCoor_i::x, EcefCoor_i::y, and EcefCoor_i::z.
Referenced by ins_vectornav_init().
|
static |
Definition at line 45 of file ins_vectornav.c.
References InsVectornav::baro_z, dev, foo, ins_vn, InsVectornav::ltp_accel_i, InsVectornav::ltp_pos_i, InsVectornav::ltp_speed_i, and NedCoor_i::z.
Referenced by ins_vectornav_init().
|
static |
Definition at line 61 of file ins_vectornav.c.
References VNPacket::chksm_error, dev, VNData::err, foo, VNPacket::hdr_error, ins_vn, VNData::mode, FloatEulers::phi, FloatEulers::psi, FloatEulers::theta, VNData::timestamp, InsVectornav::vn_data, InsVectornav::vn_packet, InsVectornav::vn_rate, and VNData::ypr_u.
Referenced by ins_vectornav_init().
struct InsVectornav ins_vn |
Definition at line 32 of file ins_vectornav.c.
Referenced by ins_vectornav_event(), ins_vectornav_init(), ins_vectornav_monitor(), ins_vectornav_propagate(), ins_vectornav_set_pacc(), ins_vectornav_set_sacc(), send_accel(), send_accel_scaled(), send_gyro(), send_gyro_scaled(), send_ins(), send_ins_ref(), send_ins_z(), and send_vn_info().