Skip to content
Snippets Groups Projects

Resolve "Compass measurements"

Merged Joan Vallvé Navarro requested to merge 18-compass-measurements into devel
Files
13
+ 63
0
#ifndef CAPTURE_COMPASS_H_
#define CAPTURE_COMPASS_H_
//Wolf includes
#include "core/capture/capture_base.h"
#include "imu/sensor/sensor_compass.h"
//std includes
//
namespace wolf {
WOLF_PTR_TYPEDEFS(CaptureCompass);
//class CaptureCompass
class CaptureCompass : public CaptureBase
{
protected:
Eigen::Vector3d data_; ///< Raw data (magnetic field).
Eigen::Matrix3d data_covariance_; ///< Noise of the data.
public:
CaptureCompass(const TimeStamp& _ts,
SensorBasePtr _sensor_ptr,
const Eigen::Vector3d& _data) :
CaptureBase("CaptureCompass", _ts, _sensor_ptr),
data_(_data)
{
auto sensor_compass = std::dynamic_pointer_cast<SensorCompass>(_sensor_ptr);
assert(sensor_compass != nullptr && "CaptureCompass: Sensor should be of type SensorCompass");
data_covariance_ = sensor_compass->computeMeasurementCovariance(data_);
}
CaptureCompass(const TimeStamp& _ts,
SensorBasePtr _sensor_ptr,
const Eigen::Vector3d& _data,
const Eigen::Matrix3d& _data_covariance) :
CaptureBase("CaptureCompass", _ts, _sensor_ptr),
data_(_data),
data_covariance_(_data_covariance)
{
assert((_sensor_ptr == nullptr or std::dynamic_pointer_cast<SensorCompass>(_sensor_ptr) != nullptr) && "CaptureCompass: Sensor should be of type SensorCompass");
}
~CaptureCompass() override
{
}
const Eigen::Vector3d& getData() const
{
return data_;
}
const Eigen::Matrix3d& getDataCovariance() const
{
return data_covariance_;
}
};
} //namespace wolf
#endif
Loading