21#ifndef KDL_CHAIN_EXTERNAL_WRENCH_ESTIMATOR_HPP
22#define KDL_CHAIN_EXTERNAL_WRENCH_ESTIMATOR_HPP
25#include "utilities/svd_eigen_HH.hpp"
26#include "chaindynparam.hpp"
27#include "chainjnttojacsolver.hpp"
28#include "chainfksolverpos_recursive.hpp"
45 typedef Eigen::Matrix<double, 6, 1 > Vector6d;
67 ChainExternalWrenchEstimator(
const Chain &chain,
const Vector &gravity,
const double sample_frequency,
const double estimation_gain,
const double filter_constant,
const double eps = 0.00001,
const int maxiter = 150);
112 const double DT_SEC, FILTER_CONST;
116 JntSpaceInertiaMatrix jnt_mass_matrix, previous_jnt_mass_matrix, jnt_mass_matrix_dot;
117 JntArray initial_jnt_momentum, estimated_momentum_integral, filtered_estimated_ext_torque,
118 gravity_torque, coriolis_torque, total_torque, estimated_ext_torque;
120 Eigen::MatrixXd jacobian_end_eff_transpose, jacobian_end_eff_transpose_inv, U, V;
121 Eigen::VectorXd S, S_inv, tmp, ESTIMATION_GAIN;
Definition chaindynparam.hpp:48
ChainExternalWrenchEstimator(const Chain &chain, const Vector &gravity, const double sample_frequency, const double estimation_gain, const double filter_constant, const double eps=0.00001, const int maxiter=150)
Internally-used Dynamics Parameters (Gravity) solver failed.
virtual void updateInternalDataStructures()
static const int E_DYNPARAMSOLVERCORIOLIS_FAILED
Internally-used Dynamics Parameters (Mass) solver failed.
Definition chainexternalwrenchestimator.hpp:52
static const int E_DYNPARAMSOLVERGRAVITY_FAILED
Internally-used Dynamics Parameters (Coriolis) solver failed.
Definition chainexternalwrenchestimator.hpp:53
void setSVDMaxIter(const int maxiter_in)
void getEstimatedJntTorque(JntArray &external_joint_torque)
int JntToExtWrench(const JntArray &joint_position, const JntArray &joint_velocity, const JntArray &joint_torque, Wrench &external_wrench)
static const int E_FKSOLVERPOS_FAILED
Definition chainexternalwrenchestimator.hpp:49
void setSVDEps(const double eps_in)
virtual const char * strError(const int error) const
static const int E_DYNPARAMSOLVERMASS_FAILED
Internally-used Jacobian solver failed.
Definition chainexternalwrenchestimator.hpp:51
static const int E_JACSOLVER_FAILED
Internally-used Forward Position Kinematics (Recursive) solver failed.
Definition chainexternalwrenchestimator.hpp:50
int setInitialMomentum(const JntArray &joint_position, const JntArray &joint_velocity)
~ChainExternalWrenchEstimator()
Definition chainexternalwrenchestimator.hpp:68
Definition chainfksolverpos_recursive.hpp:37
Class to calculate the jacobian of a general KDL::Chain, it is used by other solvers.
Definition chainjnttojacsolver.hpp:39
This class encapsulates a serial kinematic interconnection structure. It is built out of segments.
Definition chain.hpp:35
Definition jacobian.hpp:37
Definition jntarray.hpp:70
SolverI()
Initialize latest error to E_NOERROR.
Definition solveri.hpp:111
int error
Latest error, initialized to E_NOERROR in constructor.
Definition solveri.hpp:149
A concrete implementation of a 3 dimensional vector class.
Definition frames.hpp:163
represents both translational and rotational acceleration.
Definition frames.hpp:882
Definition articulatedbodyinertia.hpp:32