3 #define COMPASS_CAL_NUM_SPHERE_PARAMS 4 4 #define COMPASS_CAL_NUM_ELLIPSOID_PARAMS 9 5 #define COMPASS_CAL_NUM_SAMPLES 300 8 #define COMPASS_CAL_DEFAULT_TOLERANCE 5.0f 25 void start(
bool retry,
float delay, uint16_t offset_max);
28 void update(
bool &failure);
float get_completion_percent() const
void start(bool retry, float delay, uint16_t offset_max)
void new_sample(const Vector3f &sample)
void set_tolerance(float tolerance)
enum compass_cal_status_t _status
float calc_residual(const Vector3f &sample, const param_t ¶ms) const
uint8_t get_attempt() const
void calc_ellipsoid_jacob(const Vector3f &sample, const param_t ¶ms, float *ret) const
void update_completion_mask()
uint8_t completion_mask_t[10]
completion_mask_t _completion_mask
completion_mask_t & get_completion_mask()
void calc_sphere_jacob(const Vector3f &sample, const param_t ¶ms, float *ret) const
float * get_sphere_params()
void update(bool &failure)
float get_fitness() const
uint16_t _samples_collected
uint16_t _samples_thinned
void get_calibration(Vector3f &offsets, Vector3f &diagonals, Vector3f &offdiagonals)
enum compass_cal_status_t get_status() const
bool set_status(compass_cal_status_t status)
bool accept_sample(const Vector3f &sample)
float * get_ellipsoid_params()
void calc_initial_offset()
float calc_mean_squared_residuals() const
CompassSample * _sample_buffer