diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1943a400c320c50cc59acb3ea9ab8803b8e03650..e7e224afab7a28b5af7cb455ecdadba070bc8ba3 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 0000000000000000000000000000000000000000..216253c75230057b83739b16319802c0f4d2f69c --- /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 0000000000000000000000000000000000000000..45384d37e0178ad2a56f0de760181b0d7d9a9fe2 --- /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 0000000000000000000000000000000000000000..5b360783382e6f0b3d0b9d33870392c6a02ae8b8 --- /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_ */