33template<
typename StateKeyType>
53 template<
typename Scalar,
int Size,
typename Derived>
57 const double& latitude,
58 const double& longitude,
59 const Eigen::QuaternionBase<Derived>& n_quat_b)
61 Phi.template block<4>(
Att,
Att).setIdentity();
71 template<
typename Derived>
73 calcPhiAndQ(
double dt,
const double& latitude,
const double& longitude,
const Eigen::QuaternionBase<Derived>& n_quat_b)
87 bool ShowGui(
float itemWidth,
float unitWidth,
const char*
id)
101 "%.1e", ImGuiInputTextFlags_CharsScientific))
120 template<
typename Derived>
122 calcProcessNoiseMatrix(
double dt,
double latitude,
double longitude,
const Eigen::QuaternionBase<Derived>& n_quat_b)
const
131 Eigen::Matrix4d S_e = e_J_n * n_covQuat_b * e_J_n.transpose();
133 return { dt * S_e,
Att,
Att };
Transformation collection.
nlohmann::json json
json namespace
Units used by the system model parameters.
#define LOG_DEBUG
Debug information. Should not be called on functions which receive observations (spamming)
std::pair< KeyedMatrix4d< StateKeyType >, KeyedMatrix4d< StateKeyType > > calcPhiAndQ(double dt, const double &latitude, const double &longitude, const Eigen::QuaternionBase< Derived > &n_quat_b)
Calculates the state transition matrix (π½) and the process noise covariance matrix (π)
void initialize()
Initializes the attitude model.
friend void from_json(const json &j, AttitudeModel &data)
Converts the provided json object into the data object.
Eigen::Vector3d _gui_covarianceAngularVelocity
GUI selection for the Standard deviation of the angular velocity due to user motion (Roll,...
void updatePhiAndQ(KeyedMatrix< Scalar, StateKeyType, StateKeyType, Size, Size > &Phi, KeyedMatrix< Scalar, StateKeyType, StateKeyType, Size, Size > &Q, double dt, const double &latitude, const double &longitude, const Eigen::QuaternionBase< Derived > &n_quat_b)
Updates the provided Phi, Q and G matrix.
friend void to_json(json &j, const AttitudeModel &data)
Converts the provided data into a json object.
Eigen::Vector3d _covarianceAngularVelocity
Covariance of the angular velocity due to user motion (Roll, Pitch, Yaw) [radΒ²/s].
bool ShowGui(float itemWidth, float unitWidth, const char *id)
Shows a GUI.
Units::CovarianceAngularVelocityUnits _gui_covarianceAngularVelocityUnit
Gui selection for the Unit of the input covarianceAngularVelocity.
const std::array< StateKeyType, 4 > & Att
All attitude keys.
KeyedMatrix4d< StateKeyType > calcProcessNoiseMatrix(double dt, double latitude, double longitude, const Eigen::QuaternionBase< Derived > &n_quat_b) const
Calculates the process noise matrix Q.
Static sized KeyedMatrix.
constexpr std::array< StateKeyType, 4 > Att
All attitude keys.
CovarianceAngularVelocityUnits
Possible Units for the Standard deviation of the rotation velocity.
@ deg_sqrts
[ deg / β(s) ]
@ rad_sqrts
[ rad / β(s) ]
@ degsqrts_min
[ deg β(s) / min ]
Eigen::Matrix< typename Derived::Scalar, 4, 4 > covQuat2QuatJacobian(const Eigen::QuaternionBase< Derived > &beta_quat_alpha)
Calculates the Jacobian to convert an attitude represented in quaternions from one frame into another...
Eigen::Quaternion< Scalar > e_Quat_n(const Scalar &latitude, const Scalar &longitude)
Quaternion for rotations from navigation to Earth-fixed frame.
Eigen::Matrix4< typename Derived::Scalar > covRPY2quat(const Eigen::MatrixBase< Derived > &covRPY, const Eigen::QuaternionBase< DerivedQ > &n_quat_b)
Converts a covariance for an attitude represented in Euler angels (roll, pitch, yaw) into a covarianc...
const char * to_string(gui::widgets::PositionWithFrame::ReferenceFrame refFrame)
Converts the enum to a string.
KeyedMatrix< double, RowKeyType, ColKeyType, 4, 4 > KeyedMatrix4d
Static 4x4 squared size KeyedMatrix with double types.
double convertUnit(const double &value, Units::PositionUncertaintyUnits unit)
Converts the value depending on the unit provided.
std::string MakeComboItems()
Units separated by '\0' and terminated by double '\0'.
static const internal::all_t all
Used to request all rows or columns in KeyedMatrices.
Matrix which can be accessed by keys.