![]() |
WarpTwin
Documentation for WarpTwin models and classes.
|
Templated class to perform Nonlinear Least Squares. More...
#include <NonlinearLeastSquares.hpp>
Public Member Functions | |
| NonlinearLeastSquares (Integrator< N+N *N > &integ, Measurements< N, M, O > &measurement_ref) | |
| int16 | solve (const std::array< floating_point, N > &initial_guess, const clockwerk::Matrix< N, N > &P0, const clockwerk::Matrix< M, M > &R, const std::array< floating_point, M > *measurements_pointer, const floating_point *time_pointer, const std::array< floating_point, O > *obs_state_pointer, const uint32 num_measurements, const uint32 max_iterations, const floating_point tolerance, const floating_point max_step_size, clockwerk::Matrix< N, N > *covariance_estimate, std::array< floating_point, N > *state_estimate) |
| Function to solve the nonlinear least squares problem. | |
Templated class to perform Nonlinear Least Squares.
This class performs an iterative nonlinear least squares batch measurement update using the current state, an "observer state" which provides information (i.e. ground station information), and the associated measurement and H matrix functions. It requires three templated arguments, which are as follows: N - The number of target states estimated in the EKF M - The number of measurement states provided. Same as the number of noise states. O - The number of observer states used to support measurement generation
Author: Alex Jackson alex..nosp@m.jack.nosp@m.son@w.nosp@m.arpw.nosp@m.are.c.nosp@m.o
| warpos::NonlinearLeastSquares< N, M, O >::NonlinearLeastSquares | ( | Integrator< N+N *N > & | integ, |
| Measurements< N, M, O > & | measurement_ref ) |
Constructor
| [in] | integ | Reference to integrator for propagating state and STM |
| [in] | measurement_ref | Reference to measurement model |
| int16 warpos::NonlinearLeastSquares< N, M, O >::solve | ( | const std::array< floating_point, N > & | initial_guess, |
| const clockwerk::Matrix< N, N > & | P0, | ||
| const clockwerk::Matrix< M, M > & | R, | ||
| const std::array< floating_point, M > * | measurements_pointer, | ||
| const floating_point * | time_pointer, | ||
| const std::array< floating_point, O > * | obs_state_pointer, | ||
| const uint32 | num_measurements, | ||
| const uint32 | max_iterations, | ||
| const floating_point | tolerance, | ||
| const floating_point | max_step_size, | ||
| clockwerk::Matrix< N, N > * | covariance_estimate, | ||
| std::array< floating_point, N > * | state_estimate ) |
Function to solve the nonlinear least squares problem.
| [in] | initial_guess | The initial guess of the state |
| [in] | P0 | The initial state covariance matrix |
| [in] | R | The measurement noise covariance matrix |
| [in] | measurements_pointer | Pointer to the first element of the array of measurements (note this is a nested array, each Mx1 measurement should be its own array inside of this array) |
| [in] | time_pointer | Pointer to the first element of an array of time objects corresponding to each measurement |
| [in] | obs_state_pointer | Pointer to the first element of an array of observer states (note this is a nested array, each Ox1 observer state should be its own array inside of this array) |
| [in] | num_measurements | The number of measurements (also the number of time stamps) |
| [in] | max_iterations | The maximum number of times to iterate before exiting |
| [in] | tolerance | The convergence tolerance |
| [in] | max_step_size | The maximum step size for the integrator |
| [out] | covariance_estimate | The covariance estimate after the algorithm is run |
| [out] | state_estimate | The state estimate after the algorithm is run |