.. _program_listing_file_src_navtk_inertial_StaticAlignment.hpp: Program Listing for File StaticAlignment.hpp ============================================ |exhale_lsh| :ref:`Return to documentation for file ` (``src/navtk/inertial/StaticAlignment.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include namespace navtk { namespace inertial { class StaticAlignment : public AlignBase { public: StaticAlignment(const filtering::ImuModel& model = filtering::stim300_model(), const double align_time = 120.0, const Matrix3& vel_cov = Matrix3{{1e-4, 0, 0}, {0, 1e-4, 0}, {0, 0, 1e-4}}); AlignmentStatus process(std::shared_ptr message) override; std::pair get_computed_covariance( const CovarianceFormat format = CovarianceFormat::PINSON15NEDBLOCK) const override; MotionNeeded motion_needed() const override; protected: virtual void calc_alignment(const aspn_xtensor::TypeTimestamp& imu_time); std::pair pos_stats() const; std::pair calc_avg() const; double calc_average_delta_time() const; double align_time; private: /* We've yet to get a good alignment, so keep trying to align using the latest message */ void aligning(const aspn_xtensor::MeasurementImu& message); /* Check if enough IMU/GPS data has been buffered to do a static align */ bool sufficient_data(); /* Storage for tilt cov from sensor messages for use in solution cov output */ Matrix3 tilt_cov; /* Storage for tilt cov from sensor messages for use in solution cov output */ Matrix3 vel_cov; }; } // namespace inertial } // namespace navtk