From f981d59338f609f64ce5d2e93e24ad80c626862f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20Sol=C3=A0?= <jsola@iri.upc.edu> Date: Mon, 8 Aug 2022 12:30:50 +0200 Subject: [PATCH] New class CaptureForceTorqueInertial --- CMakeLists.txt | 2 ++ .../capture/capture_force_torque_inertial.h | 23 +++++++++++++++ src/capture/capture_force_torque_inertial.cpp | 29 +++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 include/bodydynamics/capture/capture_force_torque_inertial.h create mode 100644 src/capture/capture_force_torque_inertial.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 20dd422..5208055 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -104,6 +104,7 @@ include/${PROJECT_NAME}/math/force_torque_inertial_delta_tools.h ) SET(HDRS_CAPTURE include/${PROJECT_NAME}/capture/capture_force_torque_preint.h +include/${PROJECT_NAME}/capture/capture_force_torque_inertial.h include/${PROJECT_NAME}/capture/capture_inertial_kinematics.h include/${PROJECT_NAME}/capture/capture_leg_odom.h include/${PROJECT_NAME}/capture/capture_point_feet_nomove.h @@ -139,6 +140,7 @@ include/${PROJECT_NAME}/sensor/sensor_point_feet_nomove.h # ============ SOURCES ============ SET(SRCS_CAPTURE src/capture/capture_force_torque_preint.cpp +src/capture/capture_force_torque_inertial.cpp src/capture/capture_inertial_kinematics.cpp src/capture/capture_leg_odom.cpp src/capture/capture_point_feet_nomove.cpp diff --git a/include/bodydynamics/capture/capture_force_torque_inertial.h b/include/bodydynamics/capture/capture_force_torque_inertial.h new file mode 100644 index 0000000..9bef398 --- /dev/null +++ b/include/bodydynamics/capture/capture_force_torque_inertial.h @@ -0,0 +1,23 @@ +#ifndef CAPTURE_FORCE_TORQUE_INERTIAL_H +#define CAPTURE_FORCE_TORQUE_INERTIAL_H + +#include <core/capture/capture_motion.h> + +namespace wolf +{ + +WOLF_PTR_TYPEDEFS(CaptureForceTorqueInertial); + +class CaptureForceTorqueInertial : public CaptureMotion +{ + CaptureForceTorqueInertial(const TimeStamp& _init_ts, + SensorBasePtr _sensor_ptr, + const Eigen::VectorXd& _data, + const Eigen::MatrixXd& _data_cov, + CaptureBasePtr _capture_origin_ptr = nullptr); + virtual ~CaptureForceTorqueInertial(); +}; + +} // namespace wolf + +#endif // CAPTURE_FORCE_TORQUE_INERTIAL_H \ No newline at end of file diff --git a/src/capture/capture_force_torque_inertial.cpp b/src/capture/capture_force_torque_inertial.cpp new file mode 100644 index 0000000..6a15c13 --- /dev/null +++ b/src/capture/capture_force_torque_inertial.cpp @@ -0,0 +1,29 @@ +#include "bodydynamics/capture/capture_force_torque_inertial.h" + +#include <core/state_block/state_block_derived.h> + +namespace wolf +{ +CaptureForceTorqueInertial::CaptureForceTorqueInertial(const TimeStamp& _init_ts, + SensorBasePtr _sensor_ptr, + const Eigen::VectorXd& _data, + const Eigen::MatrixXd& _data_cov, + CaptureBasePtr _capture_origin_ptr) + : CaptureMotion("CaptureForceTorqueInertial", + _init_ts, + _sensor_ptr, + _data, + _data_cov, + _capture_origin_ptr, + nullptr, // position is static + nullptr, // orientation is static + (_sensor_ptr->isStateBlockDynamic('I') // dynamic intrinsics are IMU bias + ? std::make_shared<StateParams6>(_sensor_ptr->getStateBlock('I')->getState(), false) + : nullptr)) +{ + // +} + +CaptureForceTorqueInertial::~CaptureForceTorqueInertial() {} + +} // namespace wolf \ No newline at end of file -- GitLab