Program Listing for File ground_range_measurement.h¶
↰ Return to documentation for file (measurements/ground_range_measurement.h)
#pragma once
#include <utility>
#include "lupnt/core/definitions.h"
#include "lupnt/measurements/measurement.h"
#include "lupnt/measurements/measurement_utils.h"
namespace lupnt {
class GroundStationRangeMeasurement : public MeasurementClone<GroundStationRangeMeasurement> {
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