Skip to content
Snippets Groups Projects
Commit 54b9a883 authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

Merge branch '23-adapt-to-new-sensor-constructors-in-core' of...

Merge branch '23-adapt-to-new-sensor-constructors-in-core' of ssh://gitlab.iri.upc.edu:2202/mobile_robotics/wolf_projects/wolf_lib/plugins/gnss into 23-adapt-to-new-sensor-constructors-in-core
parents 45249133 f3265384
No related branches found
No related tags found
1 merge request!37Draft: Resolve "Adapt to new sensor constructors in core"
Showing
with 212 additions and 235 deletions
...@@ -20,77 +20,76 @@ ...@@ -20,77 +20,76 @@
#pragma once #pragma once
//Wolf includes // Wolf includes
#include "gnss/common/gnss.h" #include "gnss/common/gnss.h"
#include "gnss/feature/feature_gnss_fix.h" #include "gnss/feature/feature_gnss_fix.h"
#include "core/capture/capture_base.h" #include "core/capture/capture_base.h"
//std includes // std includes
#include "gnss_utils/snapshot.h" #include "gnss_utils/snapshot.h"
namespace wolf { namespace wolf
{
WOLF_PTR_TYPEDEFS(CaptureGnss); WOLF_PTR_TYPEDEFS(CaptureGnss);
//class CaptureGnss // class CaptureGnss
class CaptureGnss : public CaptureBase class CaptureGnss : public CaptureBase
{ {
protected: protected:
GnssUtils::SnapshotPtr snapshot_; ///< observation and navigation data GnssUtils::SnapshotPtr snapshot_; ///< observation and navigation data
public: public:
CaptureGnss(const TimeStamp& _ts, SensorBasePtr _sensor_ptr, GnssUtils::SnapshotPtr _snapshot); CaptureGnss(const TimeStamp& _ts, SensorBasePtr _sensor_ptr, GnssUtils::SnapshotPtr _snapshot);
~CaptureGnss() override; ~CaptureGnss() override;
GnssUtils::SnapshotConstPtr getSnapshot() const; GnssUtils::SnapshotConstPtr getSnapshot() const;
GnssUtils::SnapshotPtr getSnapshot(); GnssUtils::SnapshotPtr getSnapshot();
GnssUtils::ObservationsConstPtr getObservations() const; GnssUtils::ObservationsConstPtr getObservations() const;
GnssUtils::ObservationsPtr getObservations(); GnssUtils::ObservationsPtr getObservations();
GnssUtils::NavigationConstPtr getNavigation() const; GnssUtils::NavigationConstPtr getNavigation() const;
GnssUtils::NavigationPtr getNavigation(); GnssUtils::NavigationPtr getNavigation();
const GnssUtils::Satellites& getSatellites() const; const GnssUtils::Satellites& getSatellites() const;
GnssUtils::Satellites& getSatellites(); GnssUtils::Satellites& getSatellites();
}; };
inline GnssUtils::SnapshotConstPtr CaptureGnss::getSnapshot() const inline GnssUtils::SnapshotConstPtr CaptureGnss::getSnapshot() const
{ {
return snapshot_; return snapshot_;
} }
inline GnssUtils::SnapshotPtr CaptureGnss::getSnapshot() inline GnssUtils::SnapshotPtr CaptureGnss::getSnapshot()
{ {
return snapshot_; return snapshot_;
} }
inline GnssUtils::ObservationsConstPtr CaptureGnss::getObservations() const inline GnssUtils::ObservationsConstPtr CaptureGnss::getObservations() const
{ {
return snapshot_->getObservations(); return snapshot_->getObservations();
} }
inline GnssUtils::ObservationsPtr CaptureGnss::getObservations() inline GnssUtils::ObservationsPtr CaptureGnss::getObservations()
{ {
return snapshot_->getObservations(); return snapshot_->getObservations();
} }
inline GnssUtils::NavigationConstPtr CaptureGnss::getNavigation() const inline GnssUtils::NavigationConstPtr CaptureGnss::getNavigation() const
{ {
return snapshot_->getNavigation(); return snapshot_->getNavigation();
} }
inline GnssUtils::NavigationPtr CaptureGnss::getNavigation() inline GnssUtils::NavigationPtr CaptureGnss::getNavigation()
{ {
return snapshot_->getNavigation(); return snapshot_->getNavigation();
} }
inline GnssUtils::Satellites& CaptureGnss::getSatellites() inline GnssUtils::Satellites& CaptureGnss::getSatellites()
{ {
return snapshot_->getSatellites(); return snapshot_->getSatellites();
} }
inline const GnssUtils::Satellites& CaptureGnss::getSatellites() const inline const GnssUtils::Satellites& CaptureGnss::getSatellites() const
{ {
return snapshot_->getSatellites(); return snapshot_->getSatellites();
} }
} //namespace wolf } // namespace wolf
...@@ -20,48 +20,48 @@ ...@@ -20,48 +20,48 @@
#pragma once #pragma once
//Wolf includes // Wolf includes
#include "gnss/common/gnss.h" #include "gnss/common/gnss.h"
#include "gnss/feature/feature_gnss_fix.h" #include "gnss/feature/feature_gnss_fix.h"
#include "core/capture/capture_base.h" #include "core/capture/capture_base.h"
//std includes // std includes
// //
namespace wolf { namespace wolf
{
WOLF_PTR_TYPEDEFS(CaptureGnssFix); WOLF_PTR_TYPEDEFS(CaptureGnssFix);
//class CaptureGnssFix // class CaptureGnssFix
class CaptureGnssFix : public CaptureBase class CaptureGnssFix : public CaptureBase
{ {
protected: protected:
Eigen::Vector4d fix_ECEF_; ///< position in ECEF coordinates and clock_bias. Eigen::Vector4d fix_ECEF_; ///< position in ECEF coordinates and clock_bias.
Eigen::Matrix4d covariance_ECEF_; ///< Noise of the fix in ECEF coordinates. Eigen::Matrix4d covariance_ECEF_; ///< Noise of the fix in ECEF coordinates.
TimeStamp ts_GPST_; ///< Time stamp in GPS time TimeStamp ts_GPST_; ///< Time stamp in GPS time
public: public:
CaptureGnssFix(const TimeStamp&, CaptureGnssFix(const TimeStamp&,
SensorBasePtr, SensorBasePtr,
const Eigen::Vector4d&, const Eigen::Vector4d&,
const Eigen::Matrix4d&, const Eigen::Matrix4d&,
bool _ecef_coordinates = true); bool _ecef_coordinates = true);
~CaptureGnssFix() override; ~CaptureGnssFix() override;
Eigen::Vector4d getFixEcef() const; Eigen::Vector4d getFixEcef() const;
Eigen::Matrix4d getFixCovarianceEcef() const; Eigen::Matrix4d getFixCovarianceEcef() const;
double getClockBias() const; double getClockBias() const;
double getClockBiasVariance() const; double getClockBiasVariance() const;
Eigen::Vector3d getPositionEcef() const; Eigen::Vector3d getPositionEcef() const;
Eigen::Matrix3d getPositionCovarianceEcef() const; Eigen::Matrix3d getPositionCovarianceEcef() const;
void getPositionAndCovarianceEcef(Eigen::Vector3d&, Eigen::Matrix3d&) const; void getPositionAndCovarianceEcef(Eigen::Vector3d&, Eigen::Matrix3d&) const;
TimeStamp getGpsTimeStamp() const; TimeStamp getGpsTimeStamp() const;
void setFixEcef(const Eigen::Vector4d&); void setFixEcef(const Eigen::Vector4d&);
void setFixCovarianceEcef(const Eigen::Matrix4d&); void setFixCovarianceEcef(const Eigen::Matrix4d&);
void setClockBias(const double&); void setClockBias(const double&);
void setPositionEcef(const Eigen::Vector3d&); void setPositionEcef(const Eigen::Vector3d&);
void setGpsTimeStamp(const TimeStamp&); void setGpsTimeStamp(const TimeStamp&);
}; };
inline Eigen::Vector4d CaptureGnssFix::getFixEcef() const inline Eigen::Vector4d CaptureGnssFix::getFixEcef() const
...@@ -81,7 +81,7 @@ inline double CaptureGnssFix::getClockBias() const ...@@ -81,7 +81,7 @@ inline double CaptureGnssFix::getClockBias() const
inline double CaptureGnssFix::getClockBiasVariance() const inline double CaptureGnssFix::getClockBiasVariance() const
{ {
return covariance_ECEF_(3,3); return covariance_ECEF_(3, 3);
} }
inline Eigen::Vector3d CaptureGnssFix::getPositionEcef() const inline Eigen::Vector3d CaptureGnssFix::getPositionEcef() const
...@@ -91,13 +91,13 @@ inline Eigen::Vector3d CaptureGnssFix::getPositionEcef() const ...@@ -91,13 +91,13 @@ inline Eigen::Vector3d CaptureGnssFix::getPositionEcef() const
inline Eigen::Matrix3d CaptureGnssFix::getPositionCovarianceEcef() const inline Eigen::Matrix3d CaptureGnssFix::getPositionCovarianceEcef() const
{ {
return covariance_ECEF_.topLeftCorner<3,3>(); return covariance_ECEF_.topLeftCorner<3, 3>();
} }
inline void CaptureGnssFix::getPositionAndCovarianceEcef(Eigen::Vector3d& position, Eigen::Matrix3d& cov) const inline void CaptureGnssFix::getPositionAndCovarianceEcef(Eigen::Vector3d& position, Eigen::Matrix3d& cov) const
{ {
position = fix_ECEF_.head<3>(); position = fix_ECEF_.head<3>();
cov = covariance_ECEF_.topLeftCorner<3,3>(); cov = covariance_ECEF_.topLeftCorner<3, 3>();
} }
inline wolf::TimeStamp CaptureGnssFix::getGpsTimeStamp() const inline wolf::TimeStamp CaptureGnssFix::getGpsTimeStamp() const
...@@ -124,10 +124,10 @@ inline void CaptureGnssFix::setPositionEcef(const Eigen::Vector3d& _fix_position ...@@ -124,10 +124,10 @@ inline void CaptureGnssFix::setPositionEcef(const Eigen::Vector3d& _fix_position
{ {
fix_ECEF_.head<3>() = _fix_position; fix_ECEF_.head<3>() = _fix_position;
} }
inline void CaptureGnssFix::setGpsTimeStamp(const TimeStamp& _ts_GPST) inline void CaptureGnssFix::setGpsTimeStamp(const TimeStamp& _ts_GPST)
{ {
ts_GPST_ = _ts_GPST; ts_GPST_ = _ts_GPST;
} }
} //namespace wolf } // namespace wolf
...@@ -20,45 +20,44 @@ ...@@ -20,45 +20,44 @@
#pragma once #pragma once
//Wolf includes // Wolf includes
#include "gnss/common/gnss.h" #include "gnss/common/gnss.h"
#include "core/capture/capture_base.h" #include "core/capture/capture_base.h"
#include "gnss/feature/feature_gnss_displacement.h" #include "gnss/feature/feature_gnss_displacement.h"
//std includes // std includes
// //
namespace wolf { namespace wolf
{
WOLF_PTR_TYPEDEFS(CaptureGnssTdcp); WOLF_PTR_TYPEDEFS(CaptureGnssTdcp);
class CaptureGnssTdcp : public CaptureBase class CaptureGnssTdcp : public CaptureBase
{ {
protected: protected:
Eigen::Vector3d data_; ///< Displacement in ECEF coordinates. Eigen::Vector3d data_; ///< Displacement in ECEF coordinates.
Eigen::Matrix3d data_covariance_; ///< Noise of the capture. Eigen::Matrix3d data_covariance_; ///< Noise of the capture.
FrameBasePtr origin_frame_ptr_; FrameBasePtr origin_frame_ptr_;
TimeStamp ts_GPST_; ///< Time stamp in GPS time TimeStamp ts_GPST_; ///< Time stamp in GPS time
public: public:
CaptureGnssTdcp(const TimeStamp& _ts, CaptureGnssTdcp(const TimeStamp& _ts,
SensorBasePtr _sensor_ptr, SensorBasePtr _sensor_ptr,
const Eigen::Vector3d& _data, const Eigen::Vector3d& _data,
const Eigen::Matrix3d& _data_covariance, const Eigen::Matrix3d& _data_covariance,
const FrameBasePtr& _origin_frame_ptr) : const FrameBasePtr& _origin_frame_ptr)
CaptureBase("CaptureGnssTdcp", _ts, _sensor_ptr), : CaptureBase("CaptureGnssTdcp", _ts, _sensor_ptr),
data_(_data), data_(_data),
data_covariance_(_data_covariance), data_covariance_(_data_covariance),
origin_frame_ptr_(_origin_frame_ptr) origin_frame_ptr_(_origin_frame_ptr){};
{}; ~CaptureGnssTdcp() override{};
~CaptureGnssTdcp() override{}; const Eigen::Vector3d& getData() const;
const Eigen::Vector3d& getData() const; const Eigen::Matrix3d& getDataCovariance() const;
const Eigen::Matrix3d& getDataCovariance() const; void getDataAndCovariance(Eigen::Vector3d& data, Eigen::Matrix3d& data_cov) const;
void getDataAndCovariance(Eigen::Vector3d& data, Eigen::Matrix3d& data_cov) const; FrameBaseConstPtr getOriginFrame() const;
FrameBaseConstPtr getOriginFrame() const; FrameBasePtr getOriginFrame();
FrameBasePtr getOriginFrame(); const TimeStamp& getGpsTimeStamp() const;
const TimeStamp& getGpsTimeStamp() const; void setGpsTimeStamp(const TimeStamp& _ts_GPST);
void setGpsTimeStamp(const TimeStamp &_ts_GPST);
}; };
inline const Eigen::Vector3d& CaptureGnssTdcp::getData() const inline const Eigen::Vector3d& CaptureGnssTdcp::getData() const
...@@ -73,7 +72,7 @@ inline const Eigen::Matrix3d& CaptureGnssTdcp::getDataCovariance() const ...@@ -73,7 +72,7 @@ inline const Eigen::Matrix3d& CaptureGnssTdcp::getDataCovariance() const
inline void CaptureGnssTdcp::getDataAndCovariance(Eigen::Vector3d& data, Eigen::Matrix3d& data_cov) const inline void CaptureGnssTdcp::getDataAndCovariance(Eigen::Vector3d& data, Eigen::Matrix3d& data_cov) const
{ {
data = data_; data = data_;
data_cov = data_covariance_; data_cov = data_covariance_;
} }
...@@ -92,9 +91,9 @@ inline const TimeStamp& CaptureGnssTdcp::getGpsTimeStamp() const ...@@ -92,9 +91,9 @@ inline const TimeStamp& CaptureGnssTdcp::getGpsTimeStamp() const
return ts_GPST_; return ts_GPST_;
} }
inline void CaptureGnssTdcp::setGpsTimeStamp(const TimeStamp &_ts_GPST) inline void CaptureGnssTdcp::setGpsTimeStamp(const TimeStamp& _ts_GPST)
{ {
ts_GPST_ = _ts_GPST; ts_GPST_ = _ts_GPST;
} }
} //namespace wolf } // namespace wolf
...@@ -27,8 +27,7 @@ ...@@ -27,8 +27,7 @@
namespace wolf namespace wolf
{ {
// Folder schema Registry // Folder schema Registry
WOLF_REGISTER_FOLDER("gnss", _WOLF_GNSS_SCHEMA_DIR); WOLF_REGISTER_FOLDER("gnss", _WOLF_GNSS_SCHEMA_DIR);
} } // namespace wolf
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
namespace wolf namespace wolf
{ {
WOLF_PTR_TYPEDEFS(FactorGnssDisplacement2d); WOLF_PTR_TYPEDEFS(FactorGnssDisplacement2d);
class FactorGnssDisplacement2d : public FactorAutodiff<FactorGnssDisplacement2d, 3, 2, 1, 2, 1, 3, 1, 1, 1> class FactorGnssDisplacement2d : public FactorAutodiff<FactorGnssDisplacement2d, 3, 2, 1, 2, 1, 3, 1, 1, 1>
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
namespace wolf namespace wolf
{ {
WOLF_PTR_TYPEDEFS(FactorGnssDisplacement3d); WOLF_PTR_TYPEDEFS(FactorGnssDisplacement3d);
class FactorGnssDisplacement3d : public FactorAutodiff<FactorGnssDisplacement3d, 3, 3, 4, 3, 4, 3, 1, 1, 1> class FactorGnssDisplacement3d : public FactorAutodiff<FactorGnssDisplacement3d, 3, 3, 4, 3, 4, 3, 1, 1, 1>
...@@ -38,11 +37,11 @@ class FactorGnssDisplacement3d : public FactorAutodiff<FactorGnssDisplacement3d, ...@@ -38,11 +37,11 @@ class FactorGnssDisplacement3d : public FactorAutodiff<FactorGnssDisplacement3d,
public: public:
FactorGnssDisplacement3d(const FeatureBasePtr& _ftr_ptr, FactorGnssDisplacement3d(const FeatureBasePtr& _ftr_ptr,
const FrameBasePtr& _frame_other_ptr, const FrameBasePtr& _frame_other_ptr,
const SensorGnssPtr& _sensor_gnss_ptr, const SensorGnssPtr& _sensor_gnss_ptr,
const ProcessorBasePtr& _processor_ptr, const ProcessorBasePtr& _processor_ptr,
bool _apply_loss_function, bool _apply_loss_function,
FactorStatus _status = FAC_ACTIVE) FactorStatus _status = FAC_ACTIVE)
: FactorAutodiff<FactorGnssDisplacement3d, 3, 3, 4, 3, 4, 3, 1, 1, 1>( : FactorAutodiff<FactorGnssDisplacement3d, 3, 3, 4, 3, 4, 3, 1, 1, 1>(
"FactorGnssDisplacement3d", "FactorGnssDisplacement3d",
TOP_GEOM, TOP_GEOM,
...@@ -85,14 +84,14 @@ class FactorGnssDisplacement3d : public FactorAutodiff<FactorGnssDisplacement3d, ...@@ -85,14 +84,14 @@ class FactorGnssDisplacement3d : public FactorAutodiff<FactorGnssDisplacement3d,
template <typename T> template <typename T>
inline bool FactorGnssDisplacement3d::operator()(const T* const _x1, inline bool FactorGnssDisplacement3d::operator()(const T* const _x1,
const T* const _o1, const T* const _o1,
const T* const _x2, const T* const _x2,
const T* const _o2, const T* const _o2,
const T* const _x_antena, const T* const _x_antena,
const T* const _roll_ENU_MAP, const T* const _roll_ENU_MAP,
const T* const _pitch_ENU_MAP, const T* const _pitch_ENU_MAP,
const T* const _yaw_ENU_MAP, const T* const _yaw_ENU_MAP,
T* _residuals) const T* _residuals) const
{ {
Eigen::Map<const Eigen::Matrix<T, 3, 1>> t_MAP_BASE1(_x1); Eigen::Map<const Eigen::Matrix<T, 3, 1>> t_MAP_BASE1(_x1);
Eigen::Map<const Eigen::Quaternion<T>> q_MAP_BASE1(_o1); Eigen::Map<const Eigen::Quaternion<T>> q_MAP_BASE1(_o1);
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
namespace wolf namespace wolf
{ {
WOLF_PTR_TYPEDEFS(FactorGnssDisplacement3dWithClock); WOLF_PTR_TYPEDEFS(FactorGnssDisplacement3dWithClock);
class FactorGnssDisplacement3dWithClock class FactorGnssDisplacement3dWithClock
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
namespace wolf namespace wolf
{ {
WOLF_PTR_TYPEDEFS(FactorGnssFix2d); WOLF_PTR_TYPEDEFS(FactorGnssFix2d);
class FactorGnssFix2d : public FactorAutodiff<FactorGnssFix2d, 3, 2, 1, 3, 3, 1, 1, 1> class FactorGnssFix2d : public FactorAutodiff<FactorGnssFix2d, 3, 2, 1, 3, 3, 1, 1, 1>
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
namespace wolf namespace wolf
{ {
WOLF_PTR_TYPEDEFS(FactorGnssFix3d); WOLF_PTR_TYPEDEFS(FactorGnssFix3d);
class FactorGnssFix3d : public FactorAutodiff<FactorGnssFix3d, 3, 3, 4, 3, 3, 1, 1, 1> class FactorGnssFix3d : public FactorAutodiff<FactorGnssFix3d, 3, 3, 4, 3, 3, 1, 1, 1>
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
namespace wolf namespace wolf
{ {
WOLF_PTR_TYPEDEFS(FactorGnssFix3dWithClock); WOLF_PTR_TYPEDEFS(FactorGnssFix3dWithClock);
class FactorGnssFix3dWithClock : public FactorAutodiff<FactorGnssFix3dWithClock, 4, 3, 4, 3, 3, 1, 1, 1, 1> class FactorGnssFix3dWithClock : public FactorAutodiff<FactorGnssFix3dWithClock, 4, 3, 4, 3, 3, 1, 1, 1, 1>
......
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
namespace wolf namespace wolf
{ {
WOLF_PTR_TYPEDEFS(FactorGnssPseudoRange); WOLF_PTR_TYPEDEFS(FactorGnssPseudoRange);
class FactorGnssPseudoRange : public FactorAutodiff<FactorGnssPseudoRange, 1, 3, 4, 1, 1, 3, 3, 1, 1, 1> class FactorGnssPseudoRange : public FactorAutodiff<FactorGnssPseudoRange, 1, 3, 4, 1, 1, 3, 3, 1, 1, 1>
......
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
namespace wolf namespace wolf
{ {
WOLF_PTR_TYPEDEFS(FactorGnssTdcp); WOLF_PTR_TYPEDEFS(FactorGnssTdcp);
class FactorGnssTdcp : public FactorAutodiff<FactorGnssTdcp, 1, 3, 4, 1, 3, 4, 1, 3, 3, 1, 1, 1> class FactorGnssTdcp : public FactorAutodiff<FactorGnssTdcp, 1, 3, 4, 1, 3, 4, 1, 3, 3, 1, 1, 1>
......
...@@ -20,34 +20,31 @@ ...@@ -20,34 +20,31 @@
#pragma once #pragma once
//Wolf includes // Wolf includes
#include "gnss/common/gnss.h" #include "gnss/common/gnss.h"
#include "core/feature/feature_base.h" #include "core/feature/feature_base.h"
//std includes // std includes
namespace wolf {
namespace wolf
{
WOLF_PTR_TYPEDEFS(FeatureGnssSinleDiff); WOLF_PTR_TYPEDEFS(FeatureGnssSinleDiff);
class FeatureGnssDisplacement : public FeatureBase class FeatureGnssDisplacement : public FeatureBase
{ {
public: public:
/** \brief Constructor from capture pointer and measure
/** \brief Constructor from capture pointer and measure *
* * \param _measurement the measurement
* \param _measurement the measurement * \param _meas_covariance the noise of the measurement
* \param _meas_covariance the noise of the measurement *
* */
*/ FeatureGnssDisplacement(const Eigen::Vector4d& _measurement, const Eigen::Matrix4d& _meas_covariance)
FeatureGnssDisplacement(const Eigen::Vector4d& _measurement, const Eigen::Matrix4d& _meas_covariance) : : FeatureBase("FeatureGnssDisplacement", _measurement, _meas_covariance){};
FeatureBase("FeatureGnssDisplacement", _measurement, _meas_covariance) FeatureGnssDisplacement(const Eigen::Vector3d& _measurement, const Eigen::Matrix3d& _meas_covariance)
{}; : FeatureBase("FeatureGnssDisplacement", _measurement, _meas_covariance){};
FeatureGnssDisplacement(const Eigen::Vector3d& _measurement, const Eigen::Matrix3d& _meas_covariance) :
FeatureBase("FeatureGnssDisplacement", _measurement, _meas_covariance) ~FeatureGnssDisplacement() override{};
{};
~FeatureGnssDisplacement() override{};
}; };
} // namespace wolf } // namespace wolf
...@@ -20,45 +20,42 @@ ...@@ -20,45 +20,42 @@
#pragma once #pragma once
//Wolf includes // Wolf includes
#include "gnss/common/gnss.h" #include "gnss/common/gnss.h"
#include "core/feature/feature_base.h" #include "core/feature/feature_base.h"
//std includes // std includes
#include "gnss_utils/gnss_utils.h" #include "gnss_utils/gnss_utils.h"
#include "gnss_utils/utils/rcv_position.h" #include "gnss_utils/utils/rcv_position.h"
namespace wolf { namespace wolf
{
WOLF_PTR_TYPEDEFS(FeatureGnssFix); WOLF_PTR_TYPEDEFS(FeatureGnssFix);
//class FeatureGnssFix // class FeatureGnssFix
class FeatureGnssFix : public FeatureBase class FeatureGnssFix : public FeatureBase
{ {
public: public:
/** \brief Constructor from capture pointer and measure
/** \brief Constructor from capture pointer and measure *
* * \param _measurement the measurement
* \param _measurement the measurement * \param _meas_covariance the noise of the measurement
* \param _meas_covariance the noise of the measurement *
* */
*/ FeatureGnssFix(const GnssUtils::ComputePosOutput& _gnss_fix_output);
FeatureGnssFix(const GnssUtils::ComputePosOutput& _gnss_fix_output);
~FeatureGnssFix() override{};
~FeatureGnssFix() override{};
private:
private: GnssUtils::ComputePosOutput gnss_fix_output_;
GnssUtils::ComputePosOutput gnss_fix_output_;
}; };
inline FeatureGnssFix::FeatureGnssFix(const GnssUtils::ComputePosOutput& _gnss_fix_output) : inline FeatureGnssFix::FeatureGnssFix(const GnssUtils::ComputePosOutput& _gnss_fix_output)
FeatureBase("FeatureGnssFix", : FeatureBase("FeatureGnssFix",
(Eigen::Vector4d() << _gnss_fix_output.pos, _gnss_fix_output.rcv_bias(0)).finished(), (Eigen::Vector4d() << _gnss_fix_output.pos, _gnss_fix_output.rcv_bias(0)).finished(),
_gnss_fix_output.sol_cov), _gnss_fix_output.sol_cov),
gnss_fix_output_(_gnss_fix_output) gnss_fix_output_(_gnss_fix_output){
{ //
// };
};
} // namespace wolf } // namespace wolf
...@@ -20,57 +20,57 @@ ...@@ -20,57 +20,57 @@
#pragma once #pragma once
//Wolf includes // Wolf includes
#include "gnss/common/gnss.h" #include "gnss/common/gnss.h"
#include "core/feature/feature_base.h" #include "core/feature/feature_base.h"
//std includes // std includes
#include "gnss_utils/range.h" #include "gnss_utils/range.h"
#include "gnss_utils/utils/satellite.h" #include "gnss_utils/utils/satellite.h"
namespace wolf { namespace wolf
{
WOLF_PTR_TYPEDEFS(FeatureGnssSatellite); WOLF_PTR_TYPEDEFS(FeatureGnssSatellite);
WOLF_LIST_TYPEDEFS(FeatureGnssSatellite); WOLF_LIST_TYPEDEFS(FeatureGnssSatellite);
//class FeatureGnssSatellite // class FeatureGnssSatellite
class FeatureGnssSatellite : public FeatureBase class FeatureGnssSatellite : public FeatureBase
{ {
public: public:
/** \brief Constructor
/** \brief Constructor *
* * \param _obs_sat satellite observation in rtklib format
* \param _obs_sat satellite observation in rtklib format *
* * This constructor will take the pseudorange as measurement with 1 m² of variance
* This constructor will take the pseudorange as measurement with 1 m² of variance *
* */
*/ FeatureGnssSatellite(const obsd_t& _obs_sat, const GnssUtils::Satellite& _sat, const GnssUtils::Range& _range);
FeatureGnssSatellite(const obsd_t& _obs_sat, const GnssUtils::Satellite& _sat, const GnssUtils::Range& _range);
~FeatureGnssSatellite() override{};
~FeatureGnssSatellite() override{};
const obsd_t& getObservation() const;
const obsd_t& getObservation() const; int satNumber() const;
int satNumber() const; const GnssUtils::Satellite& getSatellite() const;
const GnssUtils::Satellite& getSatellite() const; const GnssUtils::Range& getRange() const;
const GnssUtils::Range& getRange() const;
private:
private: obsd_t obs_sat_;
obsd_t obs_sat_; GnssUtils::Satellite sat_;
GnssUtils::Satellite sat_; GnssUtils::Range range_;
GnssUtils::Range range_;
}; };
} // namespace wolf
} // namespace wolf
// IMPLEMENTATION // IMPLEMENTATION
namespace wolf { namespace wolf
{
inline FeatureGnssSatellite::FeatureGnssSatellite(const obsd_t& _obs_sat, const GnssUtils::Satellite& _sat, const GnssUtils::Range& _range) : inline FeatureGnssSatellite::FeatureGnssSatellite(const obsd_t& _obs_sat,
FeatureBase("FeatureGnssPseudoRange", Eigen::Vector1d(_range.P_corrected), Eigen::Matrix1d(_range.P_var)), const GnssUtils::Satellite& _sat,
obs_sat_(_obs_sat), const GnssUtils::Range& _range)
sat_(_sat), : FeatureBase("FeatureGnssPseudoRange", Eigen::Vector1d(_range.P_corrected), Eigen::Matrix1d(_range.P_var)),
range_(_range) obs_sat_(_obs_sat),
sat_(_sat),
range_(_range)
{ {
// //
} }
...@@ -95,4 +95,4 @@ inline const GnssUtils::Range& FeatureGnssSatellite::getRange() const ...@@ -95,4 +95,4 @@ inline const GnssUtils::Range& FeatureGnssSatellite::getRange() const
return range_; return range_;
} }
} // namespace wolf } // namespace wolf
...@@ -31,19 +31,18 @@ ...@@ -31,19 +31,18 @@
namespace wolf namespace wolf
{ {
WOLF_PTR_TYPEDEFS(ProcessorGnssFix); WOLF_PTR_TYPEDEFS(ProcessorGnssFix);
// class // class
class ProcessorGnssFix : public ProcessorBase class ProcessorGnssFix : public ProcessorBase
{ {
protected: protected:
SensorGnssPtr sensor_gnss_; SensorGnssPtr sensor_gnss_;
CaptureBasePtr last_KF_capture_, incoming_capture_; CaptureBasePtr last_KF_capture_, incoming_capture_;
FeatureBasePtr last_KF_feature_, incoming_feature_; FeatureBasePtr last_KF_feature_, incoming_feature_;
FrameBasePtr last_KF_; FrameBasePtr last_KF_;
Eigen::Vector3d first_pos_; Eigen::Vector3d first_pos_;
VectorComposite first_frame_state_; VectorComposite first_frame_state_;
public: public:
ProcessorGnssFix(const YAML::Node& _params); ProcessorGnssFix(const YAML::Node& _params);
......
...@@ -41,9 +41,9 @@ WOLF_PTR_TYPEDEFS(ProcessorGnssTdcp); ...@@ -41,9 +41,9 @@ WOLF_PTR_TYPEDEFS(ProcessorGnssTdcp);
class ProcessorGnssTdcp : public ProcessorBase class ProcessorGnssTdcp : public ProcessorBase
{ {
protected: protected:
SensorGnssPtr sensor_gnss_; SensorGnssPtr sensor_gnss_;
CaptureGnssPtr incoming_capture_; CaptureGnssPtr incoming_capture_;
FrameBasePtr last_KF_; FrameBasePtr last_KF_;
public: public:
ProcessorGnssTdcp(const YAML::Node& _params); ProcessorGnssTdcp(const YAML::Node& _params);
...@@ -110,9 +110,9 @@ class ProcessorGnssTdcp : public ProcessorBase ...@@ -110,9 +110,9 @@ class ProcessorGnssTdcp : public ProcessorBase
private: private:
FactorBasePtr emplaceFactor(FeatureBasePtr _ftr, FrameBasePtr _frm_ref); FactorBasePtr emplaceFactor(FeatureBasePtr _ftr, FrameBasePtr _frm_ref);
//PARAMS // PARAMS
struct GnssUtils::TdcpOptions params_tdcp_; struct GnssUtils::TdcpOptions params_tdcp_;
GnssUtils::Options params_compute_pos_; GnssUtils::Options params_compute_pos_;
}; };
inline FrameBaseConstPtr ProcessorGnssTdcp::getLastKF() const inline FrameBaseConstPtr ProcessorGnssTdcp::getLastKF() const
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
namespace wolf namespace wolf
{ {
WOLF_PTR_TYPEDEFS(ProcessorTrackerGnss); WOLF_PTR_TYPEDEFS(ProcessorTrackerGnss);
// Class // Class
...@@ -153,7 +152,7 @@ class ProcessorTrackerGnss : public ProcessorTrackerFeature ...@@ -153,7 +152,7 @@ class ProcessorTrackerGnss : public ProcessorTrackerFeature
void removeOutliers(FactorBasePtrList fac_list, CaptureBasePtr cap); void removeOutliers(FactorBasePtrList fac_list, CaptureBasePtr cap);
protected: protected:
// PARAMS // PARAMS
GnssUtils::Options gnss_opt_; GnssUtils::Options gnss_opt_;
GnssUtils::Options fix_opt_{GnssUtils::default_options}; GnssUtils::Options fix_opt_{GnssUtils::default_options};
...@@ -163,7 +162,6 @@ class ProcessorTrackerGnss : public ProcessorTrackerFeature ...@@ -163,7 +162,6 @@ class ProcessorTrackerGnss : public ProcessorTrackerFeature
bool init_frames_, use_pseudo_ranges_, use_fix_, use_tdcp_, apply_sagnac_correction_; bool init_frames_, use_pseudo_ranges_, use_fix_, use_tdcp_, apply_sagnac_correction_;
int min_sbas_sats_; int min_sbas_sats_;
std::string tdcp_structure_; std::string tdcp_structure_;
}; };
inline ProcessorTrackerGnss::~ProcessorTrackerGnss() inline ProcessorTrackerGnss::~ProcessorTrackerGnss()
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
namespace wolf namespace wolf
{ {
WOLF_PTR_TYPEDEFS(SensorGnss); WOLF_PTR_TYPEDEFS(SensorGnss);
class SensorGnss : public SensorBase class SensorGnss : public SensorBase
{ {
...@@ -105,7 +104,6 @@ class SensorGnss : public SensorBase ...@@ -105,7 +104,6 @@ class SensorGnss : public SensorBase
namespace wolf namespace wolf
{ {
inline bool SensorGnss::isEnuDefined() const inline bool SensorGnss::isEnuDefined() const
{ {
return ENU_defined_; return ENU_defined_;
......
...@@ -25,22 +25,21 @@ ...@@ -25,22 +25,21 @@
namespace wolf namespace wolf
{ {
WOLF_PTR_TYPEDEFS(TreeManagerSlidingWindowTdcp) WOLF_PTR_TYPEDEFS(TreeManagerSlidingWindowTdcp)
class TreeManagerSlidingWindowTdcp : public TreeManagerSlidingWindow class TreeManagerSlidingWindowTdcp : public TreeManagerSlidingWindow
{ {
public: public:
TreeManagerSlidingWindowTdcp(const YAML::Node& _params); TreeManagerSlidingWindowTdcp(const YAML::Node& _params);
WOLF_TREE_MANAGER_CREATE(TreeManagerSlidingWindowTdcp) WOLF_TREE_MANAGER_CREATE(TreeManagerSlidingWindowTdcp)
~TreeManagerSlidingWindowTdcp() override{} ~TreeManagerSlidingWindowTdcp() override {}
void keyFrameCallback(FrameBasePtr _key_frame) override; void keyFrameCallback(FrameBasePtr _key_frame) override;
protected: protected:
SensorBasePtr sensor_imu_; SensorBasePtr sensor_imu_;
Eigen::Matrix6d cov_bias_; Eigen::Matrix6d cov_bias_;
}; };
} /* namespace wolf */ } /* namespace wolf */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment