APM:Libraries
|
#include <CompassCalibrator.h>
Classes | |
class | CompassSample |
class | param_t |
Public Types | |
typedef uint8_t | completion_mask_t[10] |
Public Member Functions | |
CompassCalibrator () | |
void | start (bool retry, float delay, uint16_t offset_max) |
void | clear () |
void | update (bool &failure) |
void | new_sample (const Vector3f &sample) |
bool | check_for_timeout () |
bool | running () const |
void | set_tolerance (float tolerance) |
void | get_calibration (Vector3f &offsets, Vector3f &diagonals, Vector3f &offdiagonals) |
float | get_completion_percent () const |
completion_mask_t & | get_completion_mask () |
enum compass_cal_status_t | get_status () const |
float | get_fitness () const |
uint8_t | get_attempt () const |
Private Member Functions | |
bool | set_status (compass_cal_status_t status) |
bool | accept_sample (const Vector3f &sample) |
bool | accept_sample (const CompassSample &sample) |
bool | fit_acceptable () |
void | reset_state () |
void | initialize_fit () |
bool | fitting () const |
void | thin_samples () |
float | calc_residual (const Vector3f &sample, const param_t ¶ms) const |
float | calc_mean_squared_residuals (const param_t ¶ms) const |
float | calc_mean_squared_residuals () const |
void | calc_initial_offset () |
void | calc_sphere_jacob (const Vector3f &sample, const param_t ¶ms, float *ret) const |
void | run_sphere_fit () |
void | calc_ellipsoid_jacob (const Vector3f &sample, const param_t ¶ms, float *ret) const |
void | run_ellipsoid_fit () |
void | update_completion_mask (const Vector3f &v) |
void | update_completion_mask () |
Private Attributes | |
enum compass_cal_status_t | _status |
uint32_t | _last_sample_ms |
float | _delay_start_sec |
uint32_t | _start_time_ms |
bool | _retry |
float | _tolerance |
uint8_t | _attempt |
uint16_t | _offset_max |
completion_mask_t | _completion_mask |
class param_t | _params |
uint16_t | _fit_step |
CompassSample * | _sample_buffer |
float | _fitness |
float | _initial_fitness |
float | _sphere_lambda |
float | _ellipsoid_lambda |
uint16_t | _samples_collected |
uint16_t | _samples_thinned |
Definition at line 19 of file CompassCalibrator.h.
typedef uint8_t CompassCalibrator::completion_mask_t[10] |
Definition at line 21 of file CompassCalibrator.h.
CompassCalibrator::CompassCalibrator | ( | ) |
|
private |
Definition at line 399 of file CompassCalibrator.cpp.
Referenced by accept_sample(), new_sample(), and thin_samples().
|
private |
|
private |
Definition at line 568 of file CompassCalibrator.cpp.
Referenced by run_ellipsoid_fit().
|
private |
Definition at line 476 of file CompassCalibrator.cpp.
Referenced by update().
|
private |
|
private |
Definition at line 433 of file CompassCalibrator.cpp.
Referenced by initialize_fit(), run_ellipsoid_fit(), and run_sphere_fit().
|
private |
Definition at line 424 of file CompassCalibrator.cpp.
Referenced by calc_mean_squared_residuals(), run_ellipsoid_fit(), and run_sphere_fit().
|
private |
Definition at line 453 of file CompassCalibrator.cpp.
Referenced by run_sphere_fit().
bool CompassCalibrator::check_for_timeout | ( | ) |
void CompassCalibrator::clear | ( | ) |
Definition at line 77 of file CompassCalibrator.cpp.
Referenced by Compass::_accept_calibration_mask(), Compass::_cancel_calibration(), and CompassCalibrator().
|
private |
Definition at line 339 of file CompassCalibrator.cpp.
Referenced by update().
|
private |
Definition at line 220 of file CompassCalibrator.cpp.
Referenced by update().
|
inline |
Definition at line 43 of file CompassCalibrator.h.
Referenced by Compass::send_mag_cal_progress().
void CompassCalibrator::get_calibration | ( | Vector3f & | offsets, |
Vector3f & | diagonals, | ||
Vector3f & | offdiagonals | ||
) |
Definition at line 93 of file CompassCalibrator.cpp.
Referenced by Compass::_accept_calibration(), Compass::send_mag_cal_report(), and set_tolerance().
CompassCalibrator::completion_mask_t & CompassCalibrator::get_completion_mask | ( | ) |
Definition at line 145 of file CompassCalibrator.cpp.
Referenced by set_tolerance().
float CompassCalibrator::get_completion_percent | ( | ) | const |
Definition at line 103 of file CompassCalibrator.cpp.
Referenced by set_tolerance().
|
inline |
Definition at line 42 of file CompassCalibrator.h.
Referenced by Compass::send_mag_cal_report().
|
inline |
Definition at line 41 of file CompassCalibrator.h.
Referenced by Compass::_accept_calibration(), Compass::send_mag_cal_progress(), and Compass::send_mag_cal_report().
|
private |
Definition at line 224 of file CompassCalibrator.cpp.
Referenced by reset_state(), and set_status().
void CompassCalibrator::new_sample | ( | const Vector3f & | sample | ) |
Definition at line 160 of file CompassCalibrator.cpp.
Referenced by AP_Compass_Backend::publish_raw_field().
|
private |
Definition at line 237 of file CompassCalibrator.cpp.
Referenced by set_status().
|
private |
Definition at line 597 of file CompassCalibrator.cpp.
Referenced by update().
|
private |
Definition at line 486 of file CompassCalibrator.cpp.
Referenced by update().
bool CompassCalibrator::running | ( | ) | const |
Definition at line 216 of file CompassCalibrator.cpp.
Referenced by check_for_timeout(), fitting(), new_sample(), and start().
|
private |
Definition at line 249 of file CompassCalibrator.cpp.
Referenced by check_for_timeout(), clear(), new_sample(), start(), and update().
|
inline |
Definition at line 35 of file CompassCalibrator.h.
Referenced by Compass::_start_calibration().
void CompassCalibrator::start | ( | bool | retry, |
float | delay, | ||
uint16_t | offset_max | ||
) |
Definition at line 81 of file CompassCalibrator.cpp.
Referenced by Compass::_start_calibration().
|
private |
Definition at line 357 of file CompassCalibrator.cpp.
Referenced by set_status().
void CompassCalibrator::update | ( | bool & | failure | ) |
Definition at line 174 of file CompassCalibrator.cpp.
Referenced by Compass::compass_cal_update().
|
private |
Update _completion_mask for the geodesic section of v
. Corrections are applied to v
with _params.
v[in] | A vector representing one calibration sample. |
Definition at line 122 of file CompassCalibrator.cpp.
|
private |
Reset and update _completion_mask with the current samples.
Definition at line 137 of file CompassCalibrator.cpp.
Referenced by new_sample(), run_ellipsoid_fit(), run_sphere_fit(), and thin_samples().
|
private |
Definition at line 84 of file CompassCalibrator.h.
Referenced by get_attempt(), set_status(), and start().
|
private |
Definition at line 87 of file CompassCalibrator.h.
Referenced by get_completion_mask(), reset_state(), and update_completion_mask().
|
private |
Definition at line 80 of file CompassCalibrator.h.
Referenced by set_status(), and start().
|
private |
Definition at line 96 of file CompassCalibrator.h.
Referenced by initialize_fit(), and run_ellipsoid_fit().
|
private |
Definition at line 91 of file CompassCalibrator.h.
Referenced by initialize_fit(), and update().
|
private |
Definition at line 93 of file CompassCalibrator.h.
Referenced by fit_acceptable(), get_fitness(), initialize_fit(), run_ellipsoid_fit(), run_sphere_fit(), and update().
|
private |
Definition at line 94 of file CompassCalibrator.h.
Referenced by initialize_fit(), and update().
|
private |
Definition at line 77 of file CompassCalibrator.h.
Referenced by check_for_timeout(), and new_sample().
|
private |
Definition at line 85 of file CompassCalibrator.h.
Referenced by fit_acceptable(), and start().
|
private |
Definition at line 90 of file CompassCalibrator.h.
Referenced by accept_sample(), calc_initial_offset(), calc_mean_squared_residuals(), fit_acceptable(), get_calibration(), initialize_fit(), reset_state(), run_ellipsoid_fit(), run_sphere_fit(), and update_completion_mask().
|
private |
Definition at line 82 of file CompassCalibrator.h.
Referenced by check_for_timeout(), set_status(), and start().
|
private |
Definition at line 92 of file CompassCalibrator.h.
Referenced by accept_sample(), calc_initial_offset(), calc_mean_squared_residuals(), new_sample(), run_ellipsoid_fit(), run_sphere_fit(), set_status(), thin_samples(), and update_completion_mask().
|
private |
Definition at line 97 of file CompassCalibrator.h.
Referenced by accept_sample(), calc_initial_offset(), calc_mean_squared_residuals(), fitting(), get_completion_percent(), initialize_fit(), new_sample(), reset_state(), run_ellipsoid_fit(), run_sphere_fit(), thin_samples(), and update_completion_mask().
|
private |
Definition at line 98 of file CompassCalibrator.h.
Referenced by get_completion_percent(), reset_state(), and thin_samples().
|
private |
Definition at line 95 of file CompassCalibrator.h.
Referenced by initialize_fit(), and run_sphere_fit().
|
private |
Definition at line 81 of file CompassCalibrator.h.
Referenced by set_status(), and start().
|
private |
Definition at line 74 of file CompassCalibrator.h.
Referenced by get_calibration(), get_completion_percent(), get_status(), new_sample(), running(), set_status(), and update().
|
private |
Definition at line 83 of file CompassCalibrator.h.
Referenced by fit_acceptable(), and set_tolerance().