.. _program_listing_file_measurements_surface_measurements.h: Program Listing for File surface_measurements.h =============================================== |exhale_lsh| :ref:`Return to documentation for file ` (``measurements/surface_measurements.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include "lupnt/core/definitions.h" #include "lupnt/measurements/measurement.h" #include "lupnt/measurements/measurement_utils.h" namespace lupnt { struct LcrnsSatConfig { std::string name = "SV"; Vec3d r0_m = Vec3d::Zero(); Vec3d v0_mps = Vec3d::Zero(); }; constexpr int kSurfaceNavErrorStateSize = 17; struct SurfaceImuMeasurement { double timestamp = 0.0; Vec3d accel = Vec3d::Zero(); Vec3d gyro = Vec3d::Zero(); }; struct SurfaceLansMeasurement : public ErrorStateMeasurement { struct Config { int i_dr = 0; int i_dcb = 15; }; double timestamp = 0.0; Vec3d r_sat = Vec3d::Zero(); double pseudorange_m = 0.0; double sigma_m = 1.0; double sise_m = 3.0; Config config; double PredictedRange(const Vec3d& r_rover, double clock_bias_s) const; Vec3d LosUnit(const Vec3d& r_rover) const; double NoiseVariance() const { return sigma_m * sigma_m + sise_m * sise_m; } MeasData Compute(const NavErrorContext& nom, MatXd* H = nullptr) const override; }; } // namespace lupnt