.. _program_listing_file_src_navtk_inertial_Inertial.hpp: Program Listing for File Inertial.hpp ===================================== |exhale_lsh| :ref:`Return to documentation for file ` (``src/navtk/inertial/Inertial.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include #include #include #include #include #include #include #include #include #include #include namespace navtk { namespace inertial { using MechanizationFunction = std::function>( const Vector3& dv, const Vector3& dth, const double dt, const not_null> ref, const not_null> old_ref, const MechanizationOptions& options, AidingAltData* aiding_alt_data)>; class Inertial final { public: explicit Inertial(const not_null> start_pva = std::make_shared(), const MechanizationOptions& mech_options = MechanizationOptions{}, MechanizationFunction mech_fun = static_cast> (*)( const Vector3&, const Vector3&, const double, const not_null>, const not_null>, const MechanizationOptions&, AidingAltData* aiding_alt_data)>(mechanization_standard)); explicit Inertial(not_null> mech_class, const not_null> start_pva = std::make_shared(), const MechanizationOptions& mech_options = MechanizationOptions{}); Inertial(const Inertial& ins); Inertial& operator=(const Inertial& ins); Inertial(Inertial&&) = default; Inertial& operator=(Inertial&&) = default; ~Inertial() noexcept = default; void reset(const not_null> new_pva, const std::shared_ptr old_pva = nullptr); void reset(StandardPosVelAtt new_pva); void reset(WanderPosVelAtt new_pva); not_null> get_solution() const; Vector3 get_gyro_biases() const; void set_gyro_biases(Vector3 gyro_biases); Vector3 get_gyro_scale_factors() const; void set_gyro_scale_factors(Vector3 gyro_scale_factors); Vector3 get_accel_biases() const; void set_accel_biases(Vector3 accel_biases); Vector3 get_accel_scale_factors() const; void set_accel_scale_factors(Vector3 accel_scale_factors); void set_imu_errors(const ImuErrors& errors); void mechanize(const aspn_xtensor::TypeTimestamp& time, const Vector3& accel_meas, const Vector3& gyro_meas, AidingAltData* aiding_alt_data = nullptr); double integrated_alt_error; private: not_null> pva; not_null> pva_old1; Vector3 gyro_bias; Vector3 gyro_scale_factor; Vector3 accel_bias; Vector3 accel_scale_factor; MechanizationFunction _mech_fun; MechanizationOptions _mech_options; void apply_error_model(double dt); Vector3 dv_cpy; Vector3 dth_cpy; }; } // namespace inertial } // namespace navtk