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

gpst timestamp

parent ea1f4fed
No related branches found
No related tags found
3 merge requests!28release after RAL,!27After 2nd RAL submission,!10Resolve "GAUSS Project"
...@@ -18,6 +18,7 @@ class CaptureGnssFix : public CaptureBase ...@@ -18,6 +18,7 @@ class CaptureGnssFix : public CaptureBase
protected: protected:
Eigen::VectorXs data_; ///< Raw data. Eigen::VectorXs data_; ///< Raw data.
Eigen::MatrixXs data_covariance_; ///< Noise of the capture. Eigen::MatrixXs data_covariance_; ///< Noise of the capture.
TimeStamp ts_GPST_; ///< Time stamp in GPS time
public: public:
CaptureGnssFix(const TimeStamp& _ts, SensorBasePtr _sensor_ptr, const Eigen::VectorXs& _data, const Eigen::MatrixXs& _data_covariance); CaptureGnssFix(const TimeStamp& _ts, SensorBasePtr _sensor_ptr, const Eigen::VectorXs& _data, const Eigen::MatrixXs& _data_covariance);
...@@ -25,6 +26,14 @@ class CaptureGnssFix : public CaptureBase ...@@ -25,6 +26,14 @@ class CaptureGnssFix : public CaptureBase
const Eigen::VectorXs& getData() const; const Eigen::VectorXs& getData() const;
const Eigen::MatrixXs& getDataCovariance() const; const Eigen::MatrixXs& getDataCovariance() const;
void getDataAndCovariance(Eigen::VectorXs& data, Eigen::MatrixXs& data_cov) const; void getDataAndCovariance(Eigen::VectorXs& data, Eigen::MatrixXs& data_cov) const;
const TimeStamp& getGpsTimeStamp() const
{
return ts_GPST_;
}
void setGpsTimeStamp(const TimeStamp& _ts_GPST)
{
ts_GPST_ = _ts_GPST;
}
}; };
inline const Eigen::VectorXs& CaptureGnssFix::getData() const inline const Eigen::VectorXs& CaptureGnssFix::getData() const
......
...@@ -19,6 +19,7 @@ class CaptureGnssSingleDiff : public CaptureBase ...@@ -19,6 +19,7 @@ class CaptureGnssSingleDiff : public CaptureBase
Eigen::Vector3s data_; ///< Raw data. Eigen::Vector3s data_; ///< Raw data.
Eigen::Matrix3s data_covariance_; ///< Noise of the capture. Eigen::Matrix3s data_covariance_; ///< Noise of the capture.
FrameBasePtr origin_frame_ptr_; FrameBasePtr origin_frame_ptr_;
TimeStamp ts_GPST_; ///< Time stamp in GPS time
public: public:
CaptureGnssSingleDiff(const TimeStamp& _ts, CaptureGnssSingleDiff(const TimeStamp& _ts,
...@@ -36,6 +37,14 @@ class CaptureGnssSingleDiff : public CaptureBase ...@@ -36,6 +37,14 @@ class CaptureGnssSingleDiff : public CaptureBase
const Eigen::Matrix3s& getDataCovariance() const; const Eigen::Matrix3s& getDataCovariance() const;
void getDataAndCovariance(Eigen::Vector3s& data, Eigen::Matrix3s& data_cov) const; void getDataAndCovariance(Eigen::Vector3s& data, Eigen::Matrix3s& data_cov) const;
FrameBasePtr getOriginFrame() const; FrameBasePtr getOriginFrame() const;
const TimeStamp& getGpsTimeStamp() const
{
return ts_GPST_;
}
void setGpsTimeStamp(const TimeStamp& _ts_GPST)
{
ts_GPST_ = _ts_GPST;
}
}; };
inline const Eigen::Vector3s& CaptureGnssSingleDiff::getData() const inline const Eigen::Vector3s& CaptureGnssSingleDiff::getData() const
......
...@@ -144,22 +144,22 @@ inline const Eigen::Vector3s& SensorGnss::gettEnuEcef() const ...@@ -144,22 +144,22 @@ inline const Eigen::Vector3s& SensorGnss::gettEnuEcef() const
inline Eigen::Vector3s SensorGnss::gettEnuMap() const inline Eigen::Vector3s SensorGnss::gettEnuMap() const
{ {
return getStateBlockPtrStatic(3)->getState(); return getEnuMapTranslation()->getState();
} }
template<typename T> template<typename T>
inline Eigen::Matrix<T,3,3> SensorGnss::computeREnuMap(const T& _r,const T& _p,const T& _y) const inline Eigen::Matrix<T,3,3> SensorGnss::computeREnuMap(const T& _r,const T& _p,const T& _y) const
{ {
Eigen::Matrix<T,3,3> R_ENU_MAP = (Eigen::AngleAxis<T>(_r, Eigen::Matrix<T,3,1>::UnitX()) return Eigen::Matrix<T,3,3>(Eigen::AngleAxis<T>(_r, Eigen::Matrix<T,3,1>::UnitX()) *
* Eigen::AngleAxis<T>(_p, Eigen::Matrix<T,3,1>::UnitY()) Eigen::AngleAxis<T>(_p, Eigen::Matrix<T,3,1>::UnitY()) *
* Eigen::AngleAxis<T>(_y, Eigen::Matrix<T,3,1>::UnitZ())).toRotationMatrix(); Eigen::AngleAxis<T>(_y, Eigen::Matrix<T,3,1>::UnitZ()));
}
return R_ENU_MAP;
// TODO: store R's when T=Scalar inline Eigen::Matrix3s SensorGnss::getREnuMap() const
//Eigen::Matrix<T,3,3> R_roll_T, R_pitch_T, R_yaw_T; {
//if (!getRollState()->isFixed()) return computeREnuMap(getEnuMapRoll() ->getState()(0),
// *R_roll_ptr_ = Eigen::AngleAxis<Scalar>(0.25*M_PI, Eigen::Vector3s::UnitX()); getEnuMapPitch()->getState()(0),
getEnuMapYaw() ->getState()(0));
} }
} // namespace wolf } // namespace wolf
......
...@@ -245,13 +245,6 @@ void SensorGnss::setEnuMapYawState(const Scalar& yaw_ENU_MAP) ...@@ -245,13 +245,6 @@ void SensorGnss::setEnuMapYawState(const Scalar& yaw_ENU_MAP)
R_ENU_MAP_initialized_ = true; R_ENU_MAP_initialized_ = true;
} }
Eigen::Matrix3s SensorGnss::getREnuMap() const
{
return Eigen::Matrix3s(Eigen::AngleAxis<Scalar>(getEnuMapRoll() ->getState()(0), Eigen::Vector3s::UnitX()) *
Eigen::AngleAxis<Scalar>(getEnuMapPitch()->getState()(0), Eigen::Vector3s::UnitY()) *
Eigen::AngleAxis<Scalar>(getEnuMapYaw() ->getState()(0), Eigen::Vector3s::UnitZ()));
}
// Define the factory method // Define the factory method
SensorBasePtr SensorGnss::create(const std::string& _unique_name, const Eigen::VectorXs& _extrinsics, SensorBasePtr SensorGnss::create(const std::string& _unique_name, const Eigen::VectorXs& _extrinsics,
const IntrinsicsBasePtr _intrinsics) const IntrinsicsBasePtr _intrinsics)
......
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