2
3
4
5
6
7
8
9
10
11
12
13
14
15
17
18
19
20
22#ifndef GNC_NAVIGATION_EKF_EKF_RANGE_RANGERATE_MEAS_UPDATE_H
23#define GNC_NAVIGATION_EKF_EKF_RANGE_RANGERATE_MEAS_UPDATE_H
25#include "core/macros.h"
26#include "architecture/Tasks.h"
27#include "architecture/Time.h"
28#include "core/CartesianVector.hpp"
30#include "gnc/navigation/measurements/CalcRangeRangeRate.hpp"
31#include "gnc/navigation/measurements/CalcRangeRangeRateMatrix.hpp"
32#include "utils/RK4Integrator.hpp"
33#include "gnc/navigation/ekf/EkfMeasurementUpdate.hpp"
37
38
39
40
41
42
43
44
45
46
47
48
49
108 EkfRangeRangerateMeasUpdate();
109 EkfRangeRangerateMeasUpdate(clockwerk::
Task &pnt,
int schedule_slot=0,
const std::string &m_name=
"ekf_range_rangerate");
110 EkfRangeRangerateMeasUpdate(clockwerk::
Executive &e,
int schedule_slot=0,
const std::string &m_name=
"ekf_range_rangerate");
111 virtual ~EkfRangeRangerateMeasUpdate() {}
124 std::array<
double, 6> _state_input;
125 std::array<
double, 6> _observer_state;
126 std::array<
double, 6> _state_output;
127 std::array<
double, 2> _measurement;
134 clockwerk::
Time _prev_time;
#define RANGE_RANGERATE_MEASUREMENTS
Definition CalcRangeRangeRate.hpp:31
#define RANGE_RANGERATE_TARGET_STATES
Definition CalcRangeRangeRate.hpp:29
#define RANGE_RANGERATE_OBSERVER_STATES
Definition CalcRangeRangeRate.hpp:30
Definition CalcRangeRangeRateMatrix.hpp:30
Definition CalcRangeRangeRate.hpp:36
DataIO(GraphTreeObject *data_parent, std::string data_name, T initial_value)
Constructor for the DataIO object.
Definition DataIO.hpp:134
Generic, templated EKF measurement update class.
Definition EkfMeasurementUpdate.hpp:50
EKF Measurement Update with Range and Range Rate.
Definition EkfRangeRangerateMeasUpdate.h:50
int start()
Function to perform task startup activities (step once after creation)
Definition EkfRangeRangerateMeasUpdate.cpp:34
int execute()
Function to execute the task. All math and calculations should be here.
Definition EkfRangeRangerateMeasUpdate.cpp:42
Central control mechanism to run simulations and software.
Definition Executive.h:43
Matrix math implementation.
Definition Matrix.hpp:54
This is the base implementation of the task class.
Definition Tasks.h:68
Wrapper to manage and convert time as timespce.
Definition Time.h:45
Time()
Default, copy constructors and default destructor.
Definition Time.h:48
#define SIGNAL(NAME, TYPE, INITIAL_VALUE)
Definition macros.h:87
#define Matrix6D
Definition macros.h:37
#define START_PARAMS
Definition macros.h:96
#define CartesianVector3D
Definition macros.h:54
#define END_OUTPUTS
Definition macros.h:90
#define END_PARAMS
Definition macros.h:98
#define CartesianVector2D
Definition macros.h:52
#define START_OUTPUTS
Definition macros.h:88
#define END_INPUTS
Definition macros.h:94
#define Matrix2D
Definition macros.h:32
#define START_INPUTS
Definition macros.h:92
clockwerk::DataIO< clockwerk::CartesianVector< double, 2 > > meas_post_residual
Definition EkfRangeRangerateMeasUpdate.h:100
clockwerk::DataIO< clockwerk::CartesianVector< double, 3 > > vel_plus
Definition EkfRangeRangerateMeasUpdate.h:94
clockwerk::DataIO< clockwerk::CartesianVector< double, 3 > > pos_plus
Definition EkfRangeRangerateMeasUpdate.h:92
clockwerk::DataIO< clockwerk::Matrix< double, 6, 6 > > cov_plus
Definition EkfRangeRangerateMeasUpdate.h:96
clockwerk::DataIO< clockwerk::Matrix< double, 2, 2 > > meas_post_covariance
Definition EkfRangeRangerateMeasUpdate.h:104
clockwerk::DataIO< int > meas_processed
Definition EkfRangeRangerateMeasUpdate.h:90
clockwerk::DataIO< clockwerk::CartesianVector< double, 2 > > meas_pre_residual
Definition EkfRangeRangerateMeasUpdate.h:98
clockwerk::DataIO< clockwerk::Matrix< double, 2, 2 > > meas_pre_covariance
Definition EkfRangeRangerateMeasUpdate.h:102
clockwerk::DataIO< double > range_residual_filter
Definition EkfRangeRangerateMeasUpdate.h:60
clockwerk::DataIO< double > range_rate_covariance
Definition EkfRangeRangerateMeasUpdate.h:58
clockwerk::DataIO< double > range_covariance
Definition EkfRangeRangerateMeasUpdate.h:56
clockwerk::DataIO< double > range_rate_residual_filter
Definition EkfRangeRangerateMeasUpdate.h:62