24namespace NAV::experimental
47 [[nodiscard]] std::string
type()
const override;
82 static void acf_function(Eigen::VectorXd& y,
int p, Eigen::VectorXd& acf);
90 static void pacf_function(Eigen::VectorXd& y, Eigen::VectorXd& acf,
int p, Eigen::VectorXd& pacf, Eigen::VectorXd& e_hat_initial);
101 static void hannan_rissanen(Eigen::VectorXd& y,
int p,
int q,
int m,
int deque_size, Eigen::VectorXd& x, Eigen::VectorXd& emp_sig, Eigen::VectorXd& y_hat);
110 static void matrix_function(Eigen::VectorXd& y, Eigen::VectorXd& e_hat,
int p,
int q,
int m, Eigen::MatrixXd& A);
113 std::deque<std::shared_ptr<const ImuObs>>
_buffer;
nlohmann::json json
json namespace
Definition FlowManager.hpp:21
Parent Class for all IMU Observations.
Abstract parent class for all nodes.
Definition Node.hpp:86
Node performing an ARMA filtering of incoming data.
Definition ARMA.hpp:28
~ARMA() override
Destructor.
Eigen::MatrixXd _y
measurement data
Definition ARMA.hpp:126
void deinitialize() override
Deinitialize the node.
std::deque< std::shared_ptr< const ImuObs > > _buffer
Buffer used to store Imu observations.
Definition ARMA.hpp:113
int _m
value of superior order (p or q)
Definition ARMA.hpp:136
Eigen::VectorXd _y_hat
ARMA estimates for y_rbm.
Definition ARMA.hpp:128
int _deque_size
modelling size
Definition ARMA.hpp:123
static void pacf_function(Eigen::VectorXd &y, Eigen::VectorXd &acf, int p, Eigen::VectorXd &pacf, Eigen::VectorXd &e_hat_initial)
calculate partial autocorrelation function (PACF) via Durbin-Levinson
void guiConfig() override
ImGui config window which is shown on double click.
Eigen::VectorXd _x
ARMA slope parameters.
Definition ARMA.hpp:130
static constexpr size_t OUTPUT_PORT_INDEX_IMU_OBS
Flow (ImuObs)
Definition ARMA.hpp:65
static void acf_function(Eigen::VectorXd &y, int p, Eigen::VectorXd &acf)
calculate autocorrelation function (ACF)
static void hannan_rissanen(Eigen::VectorXd &y, int p, int q, int m, int deque_size, Eigen::VectorXd &x, Eigen::VectorXd &emp_sig, Eigen::VectorXd &y_hat)
Calculate ARMA parameters through Hannan-Rissanen.
int _k
loop iterator
Definition ARMA.hpp:116
static void matrix_function(Eigen::VectorXd &y, Eigen::VectorXd &e_hat, int p, int q, int m, Eigen::MatrixXd &A)
fill A matrix for least squares
double _y_mean
y-mean
Definition ARMA.hpp:137
bool initialize() override
Initialize the node.
Eigen::VectorXd _y_hat_t
output container
Definition ARMA.hpp:131
int _q_mem
q memory to reset for each observation
Definition ARMA.hpp:134
ARMA(const ARMA &)=delete
Copy constructor.
ARMA & operator=(ARMA &&)=delete
Move assignment operator.
static std::string typeStatic()
String representation of the Class Type.
Eigen::VectorXd _y_rbm
y (reduced by mean)
Definition ARMA.hpp:127
int _q
MA order.
Definition ARMA.hpp:121
std::string type() const override
String representation of the Class Type.
ARMA(ARMA &&)=delete
Move constructor.
int _num_obs
number of observations (3-axis accelerometer / 3-axis gyro)
Definition ARMA.hpp:124
void receiveImuObs(InputPin::NodeDataQueue &queue, size_t pinIdx)
Receive Sensor Data.
ARMA & operator=(const ARMA &)=delete
Copy assignment operator.
static std::string category()
String representation of the Class Category.
bool INITIALIZE
parameter initialization indicator
Definition ARMA.hpp:118
Eigen::VectorXd _emp_sig
empirical significance (p-Value) of parameters
Definition ARMA.hpp:129
int _p
AR order.
Definition ARMA.hpp:120
void restore(const json &j) override
Restores the node from a json object.
static constexpr size_t INPUT_PORT_INDEX_IMU_OBS
Flow (ImuObs)
Definition ARMA.hpp:64
ARMA()
Default constructor.
json save() const override
Saves the node into a json object.
int _p_mem
p memory to reset for each observation
Definition ARMA.hpp:133