.. _program_listing_file_measurements_ground_range_measurement.h: Program Listing for File ground_range_measurement.h =================================================== |exhale_lsh| :ref:`Return to documentation for file ` (``measurements/ground_range_measurement.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 { class GroundStationRangeMeasurement : public MeasurementClone { public: struct Config { bool use_range = true; bool use_range_rate = true; Vec6d reference_state = Vec6d::Zero(); double range_sigma_m = 1.0; double range_rate_sigma_mps = 1.0e-3; }; GroundStationRangeMeasurement() = default; explicit GroundStationRangeMeasurement(Config config) : config_(std::move(config)) {} const Config& GetConfig() const { return config_; } void SetConfig(const Config& config) { config_ = config; } MeasData Compute(const State& x, MatXd* H = nullptr) const override; private: Config config_; int NumRows() const { return (config_.use_range ? 1 : 0) + (config_.use_range_rate ? 1 : 0); } }; } // namespace lupnt