Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
ahrs_float_dcm.h File Reference

Attitude estimation for fixedwings based on the DCM. More...

#include <inttypes.h>
#include "math/pprz_algebra_float.h"
#include "math/pprz_orientation_conversion.h"
#include "modules/gps/gps.h"
+ Include dependency graph for ahrs_float_dcm.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  AhrsFloatDCM
 

Macros

#define Kp_ROLLPITCH   0.015
 
#define Ki_ROLLPITCH   0.000010
 
#define Kp_YAW   0.9
 
#define Ki_YAW   0.00005
 
#define GRAVITY   9.81
 
#define OUTPUTMODE   1
 
#define AHRS_FLOAT_MIN_SPEED_GPS_COURSE   5
 
#define PERFORMANCE_REPORTING   1
 

Enumerations

enum  AhrsDCMStatus { AHRS_DCM_UNINIT , AHRS_DCM_RUNNING }
 

Functions

void ahrs_dcm_init (void)
 
bool ahrs_dcm_align (struct FloatRates *lp_gyro, struct FloatVect3 *lp_accel, struct FloatVect3 *lp_mag)
 
void ahrs_dcm_propagate (struct FloatRates *gyro, float dt)
 
void ahrs_dcm_update_accel (struct FloatVect3 *accel)
 
void ahrs_dcm_update_mag (struct FloatVect3 *mag)
 
void ahrs_dcm_update_gps (struct GpsState *gps_s)
 

Variables

struct AhrsFloatDCM ahrs_dcm
 
int renorm_sqrt_count
 
int renorm_blowup_count
 
float imu_health
 

Detailed Description

Attitude estimation for fixedwings based on the DCM.

Theory: http://code.google.com/p/gentlenav/downloads/list file DCMDraft2.pdf

Definition in file ahrs_float_dcm.h.


Data Structure Documentation

◆ AhrsFloatDCM

struct AhrsFloatDCM

Definition at line 37 of file ahrs_float_dcm.h.

+ Collaboration diagram for AhrsFloatDCM:
Data Fields
struct FloatRates body_rate
float gps_acceleration
uint8_t gps_age
float gps_course
bool gps_course_valid
float gps_speed
struct FloatRates gyro_bias
bool is_aligned
struct FloatEulers ltp_to_body_euler
struct FloatRates rate_correction
enum AhrsDCMStatus status

Macro Definition Documentation

◆ AHRS_FLOAT_MIN_SPEED_GPS_COURSE

#define AHRS_FLOAT_MIN_SPEED_GPS_COURSE   5

Definition at line 74 of file ahrs_float_dcm.h.

◆ GRAVITY

#define GRAVITY   9.81

Definition at line 63 of file ahrs_float_dcm.h.

◆ Ki_ROLLPITCH

#define Ki_ROLLPITCH   0.000010

Definition at line 59 of file ahrs_float_dcm.h.

◆ Ki_YAW

#define Ki_YAW   0.00005

Definition at line 61 of file ahrs_float_dcm.h.

◆ Kp_ROLLPITCH

#define Kp_ROLLPITCH   0.015

Definition at line 58 of file ahrs_float_dcm.h.

◆ Kp_YAW

#define Kp_YAW   0.9

Definition at line 60 of file ahrs_float_dcm.h.

◆ OUTPUTMODE

#define OUTPUTMODE   1

Definition at line 67 of file ahrs_float_dcm.h.

◆ PERFORMANCE_REPORTING

#define PERFORMANCE_REPORTING   1

Definition at line 77 of file ahrs_float_dcm.h.

Enumeration Type Documentation

◆ AhrsDCMStatus

Enumerator
AHRS_DCM_UNINIT 
AHRS_DCM_RUNNING 

Definition at line 32 of file ahrs_float_dcm.h.

Function Documentation

◆ ahrs_dcm_align()

bool ahrs_dcm_align ( struct FloatRates lp_gyro,
struct FloatVect3 lp_accel,
struct FloatVect3 lp_mag 
)

◆ ahrs_dcm_init()

◆ ahrs_dcm_propagate()

void ahrs_dcm_propagate ( struct FloatRates gyro,
float  dt 
)

Definition at line 149 of file ahrs_float_dcm.c.

References ahrs_dcm, AhrsFloatDCM::body_rate, compute_ahrs_representations(), AhrsFloatDCM::gyro_bias, Matrix_update(), Normalize(), FloatRates::p, FloatRates::q, FloatRates::r, and RATES_DIFF.

Referenced by gyro_cb().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ahrs_dcm_update_accel()

void ahrs_dcm_update_accel ( struct FloatVect3 accel)

Definition at line 201 of file ahrs_float_dcm.c.

References accel_float, ahrs_dcm, Drift_correction(), AhrsFloatDCM::gps_acceleration, AhrsFloatDCM::gps_age, AhrsFloatDCM::gps_speed, Omega, PRINT_CONFIG_MSG(), FloatVect3::x, FloatVect3::y, and FloatVect3::z.

Referenced by accel_cb().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ahrs_dcm_update_gps()

void ahrs_dcm_update_gps ( struct GpsState gps_s)

◆ ahrs_dcm_update_mag()

void ahrs_dcm_update_mag ( struct FloatVect3 mag)

Definition at line 228 of file ahrs_float_dcm.c.

References ahrs_dcm, DefaultChannel, DefaultDevice, AhrsFloatDCM::ltp_to_body_euler, MAG_Heading_X, MAG_Heading_Y, FloatEulers::phi, FloatEulers::theta, FloatVect3::x, FloatVect3::y, and FloatVect3::z.

Referenced by mag_cb().

+ Here is the caller graph for this function:

Variable Documentation

◆ ahrs_dcm

◆ imu_health

float imu_health
extern

Referenced by Drift_correction().

◆ renorm_blowup_count

int renorm_blowup_count
extern

Referenced by Normalize().

◆ renorm_sqrt_count

int renorm_sqrt_count
extern

Referenced by Normalize().