APM:Libraries
|
#include <AccelCalibrator.h>
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_PARAMS > | VectorP |
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 ¶ms) const |
float | calc_mean_squared_residuals () const |
float | calc_mean_squared_residuals (const struct param_t ¶ms) const |
void | calc_jacob (const Vector3f &sample, const struct param_t ¶ms, 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 |
Definition at line 34 of file AccelCalibrator.h.
|
private |
Definition at line 94 of file AccelCalibrator.h.
AccelCalibrator::AccelCalibrator | ( | ) |
|
private |
Definition at line 153 of file AccelCalibrator.cpp.
Referenced by new_sample().
|
private |
Definition at line 240 of file AccelCalibrator.cpp.
Referenced by new_sample().
|
private |
Definition at line 421 of file AccelCalibrator.cpp.
Referenced by run_fit().
|
private |
Definition at line 396 of file AccelCalibrator.cpp.
Referenced by run_fit().
|
private |
|
private |
Definition at line 385 of file AccelCalibrator.cpp.
Referenced by calc_mean_squared_residuals(), and run_fit().
void AccelCalibrator::check_for_timeout | ( | ) |
Definition at line 195 of file AccelCalibrator.cpp.
Referenced by AP_AccelCal::update().
void AccelCalibrator::clear | ( | ) |
Definition at line 99 of file AccelCalibrator.cpp.
Referenced by AccelCalibrator(), AP_AccelCal::clear(), AP_AccelCal::start(), and start().
void AccelCalibrator::collect_sample | ( | ) |
Definition at line 109 of file AccelCalibrator.cpp.
Referenced by AP_AccelCal::collect_sample().
void AccelCalibrator::get_calibration | ( | Vector3f & | offset | ) | const |
Definition at line 203 of file AccelCalibrator.cpp.
Referenced by AP_InertialSensor::_acal_save_calibrations().
Definition at line 208 of file AccelCalibrator.cpp.
void AccelCalibrator::get_calibration | ( | Vector3f & | offset, |
Vector3f & | diag, | ||
Vector3f & | offdiag | ||
) | const |
Definition at line 214 of file AccelCalibrator.cpp.
|
inline |
Definition at line 81 of file AccelCalibrator.h.
|
private |
Definition at line 457 of file AccelCalibrator.cpp.
Referenced by run_fit().
|
inline |
Definition at line 78 of file AccelCalibrator.h.
Referenced by AP_InertialSensor::get_primary_accel_cal_sample_avg(), and AP_AccelCal::update().
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().
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().
|
inline |
Definition at line 75 of file AccelCalibrator.h.
Referenced by AP_InertialSensor_Backend::_publish_accel(), and AP_AccelCal::update_status().
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().
|
private |
|
private |
Definition at line 326 of file AccelCalibrator.cpp.
Referenced by new_sample().
bool AccelCalibrator::running | ( | ) |
Definition at line 104 of file AccelCalibrator.cpp.
Referenced by set_status().
|
private |
Definition at line 258 of file AccelCalibrator.cpp.
Referenced by check_for_timeout(), clear(), collect_sample(), new_sample(), and start().
|
inline |
Definition at line 72 of file AccelCalibrator.h.
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().
void AccelCalibrator::start | ( | enum accel_cal_fit_type_t | fit_type, |
uint8_t | num_samples, | ||
float | sample_time, | ||
Vector3f | offset, | ||
Vector3f | diag, | ||
Vector3f | offdiag | ||
) |
|
private |
Definition at line 110 of file AccelCalibrator.h.
Referenced by calc_jacob(), get_num_params(), and start().
|
private |
Definition at line 108 of file AccelCalibrator.h.
Referenced by new_sample(), set_status(), and start().
|
private |
Definition at line 109 of file AccelCalibrator.h.
Referenced by check_for_timeout(), new_sample(), and start().
|
private |
Definition at line 111 of file AccelCalibrator.h.
Referenced by new_sample(), and set_tolerance().
|
private |
Definition at line 118 of file AccelCalibrator.h.
Referenced by get_fitness(), and new_sample().
|
private |
Definition at line 119 of file AccelCalibrator.h.
Referenced by check_for_timeout(), new_sample(), and set_status().
|
private |
Definition at line 120 of file AccelCalibrator.h.
Referenced by accept_sample(), and start().
|
private |
Definition at line 117 of file AccelCalibrator.h.
Referenced by accept_result(), calc_mean_squared_residuals(), get_calibration(), get_sample_corrected(), run_fit(), and start().
|
private |
Definition at line 115 of file AccelCalibrator.h.
Referenced by accept_sample(), calc_mean_squared_residuals(), get_sample(), new_sample(), run_fit(), and set_status().
|
private |
Definition at line 116 of file AccelCalibrator.h.
Referenced by accept_sample(), calc_mean_squared_residuals(), get_num_samples_collected(), get_sample(), new_sample(), run_fit(), and set_status().
|
private |
Definition at line 114 of file AccelCalibrator.h.
Referenced by check_for_timeout(), get_sample_corrected(), get_status(), new_sample(), running(), set_status(), and start().