APM:Libraries
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
AccelCalibrator Class Reference

#include <AccelCalibrator.h>

Collaboration diagram for AccelCalibrator:
[legend]

Classes

struct  AccelSample
 
struct  param_t
 
union  param_u
 

Public Member Functions

 AccelCalibrator ()
 
void start (enum accel_cal_fit_type_t fit_type=ACCEL_CAL_AXIS_ALIGNED_ELLIPSOID, uint8_t num_samples=6, float sample_time=0.5f)
 
void start (enum accel_cal_fit_type_t fit_type, uint8_t num_samples, float sample_time, Vector3f offset, Vector3f diag, Vector3f offdiag)
 
void clear ()
 
bool running ()
 
void collect_sample ()
 
void check_for_timeout ()
 
void get_calibration (Vector3f &offset) const
 
void get_calibration (Vector3f &offset, Vector3f &diag) const
 
void get_calibration (Vector3f &offset, Vector3f &diag, Vector3f &offdiag) const
 
void new_sample (const Vector3f &delta_velocity, float dt)
 
bool get_sample (uint8_t i, Vector3f &s) const
 
bool get_sample_corrected (uint8_t i, Vector3f &s) const
 
void set_tolerance (float tolerance)
 
enum accel_cal_status_t get_status () const
 
uint8_t get_num_samples_collected () const
 
float get_fitness () const
 

Private Types

typedef VectorN< float, ACCEL_CAL_MAX_NUM_PARAMSVectorP
 

Private Member Functions

bool accept_sample (const Vector3f &sample)
 
void reset_state ()
 
void set_status (enum accel_cal_status_t)
 
bool accept_result () const
 
uint8_t get_num_params () const
 
float calc_residual (const Vector3f &sample, const struct param_t &params) const
 
float calc_mean_squared_residuals () const
 
float calc_mean_squared_residuals (const struct param_t &params) const
 
void calc_jacob (const Vector3f &sample, const struct param_t &params, VectorP &ret) const
 
void run_fit (uint8_t max_iterations, float &fitness)
 

Private Attributes

uint8_t _conf_num_samples
 
float _conf_sample_time
 
enum accel_cal_fit_type_t _conf_fit_type
 
float _conf_tolerance
 
accel_cal_status_t _status
 
struct AccelSample_sample_buffer
 
uint8_t _samples_collected
 
union param_u _param
 
float _fitness
 
uint32_t _last_samp_frag_collected_ms
 
float _min_sample_dist
 

Detailed Description

Definition at line 34 of file AccelCalibrator.h.

Member Typedef Documentation

◆ VectorP

Definition at line 94 of file AccelCalibrator.h.

Constructor & Destructor Documentation

◆ AccelCalibrator()

AccelCalibrator::AccelCalibrator ( )

Definition at line 30 of file AccelCalibrator.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ accept_result()

bool AccelCalibrator::accept_result ( ) const
private

Definition at line 153 of file AccelCalibrator.cpp.

Referenced by new_sample().

Here is the caller graph for this function:

◆ accept_sample()

bool AccelCalibrator::accept_sample ( const Vector3f sample)
private

Definition at line 240 of file AccelCalibrator.cpp.

Referenced by new_sample().

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

◆ calc_jacob()

void AccelCalibrator::calc_jacob ( const Vector3f sample,
const struct param_t params,
VectorP ret 
) const
private

Definition at line 421 of file AccelCalibrator.cpp.

Referenced by run_fit().

Here is the caller graph for this function:

◆ calc_mean_squared_residuals() [1/2]

float AccelCalibrator::calc_mean_squared_residuals ( ) const
private

Definition at line 396 of file AccelCalibrator.cpp.

Referenced by run_fit().

Here is the caller graph for this function:

◆ calc_mean_squared_residuals() [2/2]

float AccelCalibrator::calc_mean_squared_residuals ( const struct param_t params) const
private

Definition at line 403 of file AccelCalibrator.cpp.

Here is the call graph for this function:

◆ calc_residual()

float AccelCalibrator::calc_residual ( const Vector3f sample,
const struct param_t params 
) const
private

Definition at line 385 of file AccelCalibrator.cpp.

Referenced by calc_mean_squared_residuals(), and run_fit().

Here is the caller graph for this function:

◆ check_for_timeout()

void AccelCalibrator::check_for_timeout ( )

Definition at line 195 of file AccelCalibrator.cpp.

Referenced by AP_AccelCal::update().

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

◆ clear()

void AccelCalibrator::clear ( )

Definition at line 99 of file AccelCalibrator.cpp.

Referenced by AccelCalibrator(), AP_AccelCal::clear(), AP_AccelCal::start(), and start().

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

◆ collect_sample()

void AccelCalibrator::collect_sample ( )

Definition at line 109 of file AccelCalibrator.cpp.

Referenced by AP_AccelCal::collect_sample().

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

◆ get_calibration() [1/3]

void AccelCalibrator::get_calibration ( Vector3f offset) const

Definition at line 203 of file AccelCalibrator.cpp.

Referenced by AP_InertialSensor::_acal_save_calibrations().

Here is the caller graph for this function:

◆ get_calibration() [2/3]

void AccelCalibrator::get_calibration ( Vector3f offset,
Vector3f diag 
) const

Definition at line 208 of file AccelCalibrator.cpp.

◆ get_calibration() [3/3]

void AccelCalibrator::get_calibration ( Vector3f offset,
Vector3f diag,
Vector3f offdiag 
) const

Definition at line 214 of file AccelCalibrator.cpp.

◆ get_fitness()

float AccelCalibrator::get_fitness ( ) const
inline

Definition at line 81 of file AccelCalibrator.h.

◆ get_num_params()

uint8_t AccelCalibrator::get_num_params ( ) const
private

Definition at line 457 of file AccelCalibrator.cpp.

Referenced by run_fit().

Here is the caller graph for this function:

◆ get_num_samples_collected()

uint8_t AccelCalibrator::get_num_samples_collected ( ) const
inline

Definition at line 78 of file AccelCalibrator.h.

Referenced by AP_InertialSensor::get_primary_accel_cal_sample_avg(), and AP_AccelCal::update().

Here is the caller graph for this function:

◆ get_sample()

bool AccelCalibrator::get_sample ( uint8_t  i,
Vector3f s 
) const

Definition at line 168 of file AccelCalibrator.cpp.

Referenced by accept_sample(), calc_mean_squared_residuals(), get_sample_corrected(), and run_fit().

Here is the caller graph for this function:

◆ get_sample_corrected()

bool AccelCalibrator::get_sample_corrected ( uint8_t  i,
Vector3f s 
) const

Definition at line 178 of file AccelCalibrator.cpp.

Referenced by AP_InertialSensor::get_fixed_mount_accel_cal_sample(), and AP_InertialSensor::get_primary_accel_cal_sample_avg().

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

◆ get_status()

enum accel_cal_status_t AccelCalibrator::get_status ( ) const
inline

Definition at line 75 of file AccelCalibrator.h.

Referenced by AP_InertialSensor_Backend::_publish_accel(), and AP_AccelCal::update_status().

Here is the caller graph for this function:

◆ new_sample()

void AccelCalibrator::new_sample ( const Vector3f delta_velocity,
float  dt 
)

Definition at line 114 of file AccelCalibrator.cpp.

Referenced by AP_InertialSensor_Backend::_publish_accel().

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

◆ reset_state()

void AccelCalibrator::reset_state ( )
private

◆ run_fit()

void AccelCalibrator::run_fit ( uint8_t  max_iterations,
float &  fitness 
)
private

Definition at line 326 of file AccelCalibrator.cpp.

Referenced by new_sample().

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

◆ running()

bool AccelCalibrator::running ( )

Definition at line 104 of file AccelCalibrator.cpp.

Referenced by set_status().

Here is the caller graph for this function:

◆ set_status()

void AccelCalibrator::set_status ( enum accel_cal_status_t  status)
private

Definition at line 258 of file AccelCalibrator.cpp.

Referenced by check_for_timeout(), clear(), collect_sample(), new_sample(), and start().

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

◆ set_tolerance()

void AccelCalibrator::set_tolerance ( float  tolerance)
inline

Definition at line 72 of file AccelCalibrator.h.

◆ start() [1/2]

void AccelCalibrator::start ( enum accel_cal_fit_type_t  fit_type = ACCEL_CAL_AXIS_ALIGNED_ELLIPSOID,
uint8_t  num_samples = 6,
float  sample_time = 0.5f 
)

Definition at line 54 of file AccelCalibrator.cpp.

Referenced by AP_AccelCal::start().

Here is the caller graph for this function:

◆ start() [2/2]

void AccelCalibrator::start ( enum accel_cal_fit_type_t  fit_type,
uint8_t  num_samples,
float  sample_time,
Vector3f  offset,
Vector3f  diag,
Vector3f  offdiag 
)

Definition at line 58 of file AccelCalibrator.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ _conf_fit_type

enum accel_cal_fit_type_t AccelCalibrator::_conf_fit_type
private

Definition at line 110 of file AccelCalibrator.h.

Referenced by calc_jacob(), get_num_params(), and start().

◆ _conf_num_samples

uint8_t AccelCalibrator::_conf_num_samples
private

Definition at line 108 of file AccelCalibrator.h.

Referenced by new_sample(), set_status(), and start().

◆ _conf_sample_time

float AccelCalibrator::_conf_sample_time
private

Definition at line 109 of file AccelCalibrator.h.

Referenced by check_for_timeout(), new_sample(), and start().

◆ _conf_tolerance

float AccelCalibrator::_conf_tolerance
private

Definition at line 111 of file AccelCalibrator.h.

Referenced by new_sample(), and set_tolerance().

◆ _fitness

float AccelCalibrator::_fitness
private

Definition at line 118 of file AccelCalibrator.h.

Referenced by get_fitness(), and new_sample().

◆ _last_samp_frag_collected_ms

uint32_t AccelCalibrator::_last_samp_frag_collected_ms
private

Definition at line 119 of file AccelCalibrator.h.

Referenced by check_for_timeout(), new_sample(), and set_status().

◆ _min_sample_dist

float AccelCalibrator::_min_sample_dist
private

Definition at line 120 of file AccelCalibrator.h.

Referenced by accept_sample(), and start().

◆ _param

union param_u AccelCalibrator::_param
private

◆ _sample_buffer

struct AccelSample* AccelCalibrator::_sample_buffer
private

◆ _samples_collected

uint8_t AccelCalibrator::_samples_collected
private

◆ _status

accel_cal_status_t AccelCalibrator::_status
private

The documentation for this class was generated from the following files: