From af820d3e2bf1410a028c15cfe7ad7cec84850079 Mon Sep 17 00:00:00 2001 From: Jeremie Deray <jeremie.deray@pal-robotics.com> Date: Thu, 26 Oct 2017 11:47:14 +0200 Subject: [PATCH] add CaptureVelocity --- src/CMakeLists.txt | 8 ++++- src/captures/CMakeLists.txt | 9 +++++ src/captures/capture_velocity.cpp | 42 ++++++++++++++++++++++ src/captures/capture_velocity.h | 59 +++++++++++++++++++++++++++++++ 4 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 src/captures/CMakeLists.txt create mode 100644 src/captures/capture_velocity.cpp create mode 100644 src/captures/capture_velocity.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1943a400c..e7e224afa 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -433,6 +433,9 @@ IF (OpenCV_FOUND) ) ENDIF(OpenCV_FOUND) +# Add the capture sub-directory +ADD_SUBDIRECTORY(captures) + IF (cereal_FOUND) ADD_SUBDIRECTORY(serialization/cereal) ENDIF(cereal_FOUND) @@ -472,7 +475,8 @@ ENDIF(YAMLCPP_FOUND) ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS_BASE} - ${SRCS} + ${SRCS} + ${SRCS_CAPTURE} #${SRCS_DTASSC} ${SRCS_WRAPPER} ) @@ -522,6 +526,8 @@ INSTALL(FILES ${HDRS} DESTINATION include/iri-algorithms/wolf) #INSTALL(FILES ${HDRS_DTASSC} # DESTINATION include/iri-algorithms/wolf/data_association) +INSTALL(FILES ${HDRS_CAPTURE} + DESTINATION include/iri-algorithms/wolf/captures) INSTALL(FILES ${HDRS_WRAPPER} DESTINATION include/iri-algorithms/wolf/ceres_wrapper) INSTALL(FILES ${HDRS_SOLVER} diff --git a/src/captures/CMakeLists.txt b/src/captures/CMakeLists.txt new file mode 100644 index 000000000..216253c75 --- /dev/null +++ b/src/captures/CMakeLists.txt @@ -0,0 +1,9 @@ +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) + +# Forward var to parent scope + +SET(HDRS_CAPTURE ${HDRS_CAPTURE} + ${CMAKE_CURRENT_SOURCE_DIR}/capture_velocity.h PARENT_SCOPE) + +SET(SRCS_CAPTURE ${SRCS_CAPTURE} + ${CMAKE_CURRENT_SOURCE_DIR}/capture_velocity.cpp PARENT_SCOPE) diff --git a/src/captures/capture_velocity.cpp b/src/captures/capture_velocity.cpp new file mode 100644 index 000000000..45384d37e --- /dev/null +++ b/src/captures/capture_velocity.cpp @@ -0,0 +1,42 @@ +#include "capture_velocity.h" + +namespace wolf { + +CaptureVelocity::CaptureVelocity(const TimeStamp& _ts, + const SensorBasePtr& _sensor_ptr, + const Eigen::VectorXs& _velocity, + Size _delta_size, Size _delta_cov_size, + FrameBasePtr _origin_frame_ptr) : + CaptureMotion(_ts, _sensor_ptr, _velocity, + _delta_size, _delta_cov_size, _origin_frame_ptr) +{ + setType("VELOCITY"); +} + +CaptureVelocity::CaptureVelocity(const TimeStamp& _ts, + const SensorBasePtr& _sensor_ptr, + const Eigen::VectorXs& _velocity, + const Eigen::MatrixXs& _velocity_cov, + Size _delta_size, Size _delta_cov_size, + FrameBasePtr _origin_frame_ptr, + StateBlockPtr _p_ptr, + StateBlockPtr _o_ptr, + StateBlockPtr _intr_ptr) : + CaptureMotion(_ts, _sensor_ptr, _velocity, _velocity_cov, + _delta_size, _delta_cov_size, _origin_frame_ptr, + _p_ptr, _o_ptr, _intr_ptr) +{ + setType("VELOCITY"); +} + +const Eigen::VectorXs& CaptureVelocity::getVelocity() const +{ + return getData(); +} + +const Eigen::MatrixXs& CaptureVelocity::getVelocityCov() const +{ + return getDataCovariance(); +} + +} // namespace wolf diff --git a/src/captures/capture_velocity.h b/src/captures/capture_velocity.h new file mode 100644 index 000000000..5b3607833 --- /dev/null +++ b/src/captures/capture_velocity.h @@ -0,0 +1,59 @@ +/** + * \file capture_velocity.h + * + * Created on: Oct 20, 2016 + * \author: Jeremie Deray + */ + +#ifndef _WOLF_CAPTURE_VELOCITY_H_ +#define _WOLF_CAPTURE_VELOCITY_H_ + +//wolf includes +#include "capture_motion.h" + +namespace wolf { + +WOLF_PTR_TYPEDEFS(CaptureVelocity); + +/** + * @brief The CaptureVelocity class + * + * Represents a velocity. + */ +class CaptureVelocity : public CaptureMotion +{ +protected: + + using NodeBase::node_type_; + +public: + + /** + * \brief Constructor + **/ + CaptureVelocity(const TimeStamp& _ts, + const SensorBasePtr& _sensor_ptr, + const Eigen::VectorXs& _velocity, + Size _delta_size, Size _delta_cov_size, + FrameBasePtr _origin_frame_ptr); + + CaptureVelocity(const TimeStamp& _ts, + const SensorBasePtr& _sensor_ptr, + const Eigen::VectorXs& _velocity, + const Eigen::MatrixXs& _velocity_cov, + Size _delta_size, Size _delta_cov_size, + FrameBasePtr _origin_frame_ptr, + StateBlockPtr _p_ptr = nullptr, + StateBlockPtr _o_ptr = nullptr, + StateBlockPtr _intr_ptr = nullptr); + + virtual ~CaptureVelocity() = default; + + const Eigen::VectorXs& getVelocity() const; + + const Eigen::MatrixXs& getVelocityCov() const; +}; + +} // namespace wolf + +#endif /* _WOLF_CAPTURE_VELOCITY_H_ */ -- GitLab