Program Listing for File surface_measurements.h¶
↰ Return to documentation for file (measurements/surface_measurements.h)
#pragma once
#include <string>
#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