10 #ifndef __SOT_SOTFORCECOMPENSATION_H__
11 #define __SOT_SOTFORCECOMPENSATION_H__
18 #include <dynamic-graph/linear-algebra.h>
21 #include <dynamic-graph/entity.h>
22 #include <dynamic-graph/signal-ptr.h>
23 #include <dynamic-graph/signal-time-dependent.h>
25 #include <sot/core/matrix-geometry.hh>
35 #if defined(force_compensation_EXPORTS)
36 #define SOTFORCECOMPENSATION_EXPORT __declspec(dllexport)
38 #define SOTFORCECOMPENSATION_EXPORT __declspec(dllimport)
41 #define SOTFORCECOMPENSATION_EXPORT
54 static MatrixRotation I3;
62 const MatrixRotation& worldRhand,
63 const dynamicgraph::Vector& transSensorCom, MatrixForce& res);
68 const MatrixRotation& sensorRhand,
69 const dynamicgraph::Vector& transSensorCom, MatrixForce& res);
76 const dynamicgraph::Vector& torqueInput,
77 const dynamicgraph::Vector& torquePrecompensation,
78 const dynamicgraph::Vector& gravity,
const MatrixForce& handXworld,
79 const MatrixForce& handVsensor,
const dynamicgraph::Matrix& gainSensor,
80 const dynamicgraph::Vector& momentum, dynamicgraph::Vector& res);
83 const dynamicgraph::Vector& velocity,
const dynamicgraph::Vector& force,
84 dynamicgraph::Vector& res);
86 const dynamicgraph::Vector& velocity,
87 const dynamicgraph::Vector& acceleration,
const MatrixForce& sensorXhand,
88 const dynamicgraph::Matrix& inertiaJoint, dynamicgraph::Vector& res);
91 const dynamicgraph::Vector& torqueInput,
92 const dynamicgraph::Vector& deadZoneLimit, dynamicgraph::Vector& res);
100 const MatrixRotation& worldRhand);
103 const dynamicgraph::Vector& gravity,
const MatrixRotation& handRsensor);
105 const MatrixRotation& handRsensor,
106 bool precompensationCalibration =
false,
107 const MatrixRotation& hand0Rsensor = I3);
119 virtual const std::string&
getClassName(
void)
const {
return CLASS_NAME; }
Definition: force-compensation.h:116
dg::SignalPtr< dynamicgraph::Matrix, int > inertiaJointSIN
Definition: force-compensation.h:139
dg::SignalPtr< dynamicgraph::Vector, int > deadZoneLimitSIN
Definition: force-compensation.h:137
sotDummyType & calibrationTriger(sotDummyType &dummy, int time)
dg::SignalTimeDependent< dynamicgraph::Vector, int > torsorDeadZoneSOUT
Definition: force-compensation.h:156
dg::SignalPtr< dynamicgraph::Vector, int > accelerationSIN
Definition: force-compensation.h:142
ForceCompensationPlugin(const std::string &name)
dg::SignalPtr< dynamicgraph::Vector, int > transSensorJointSIN
Definition: force-compensation.h:138
virtual const std::string & getClassName(void) const
Definition: force-compensation.h:119
virtual ~ForceCompensationPlugin(void)
dg::SignalPtr< dynamicgraph::Matrix, int > gainSensorSIN
Definition: force-compensation.h:136
static const std::string CLASS_NAME
Definition: force-compensation.h:118
dg::SignalPtr< dynamicgraph::Vector, int > translationSensorComSIN
Definition: force-compensation.h:133
dg::SignalPtr< MatrixRotation, int > handRsensorSIN
Definition: force-compensation.h:132
dg::SignalTimeDependent< MatrixForce, int > handVsensorSOUT
Definition: force-compensation.h:146
dg::SignalPtr< dynamicgraph::Vector, int > gravitySIN
Definition: force-compensation.h:134
dg::SignalTimeDependent< MatrixForce, int > sensorXhandSOUT
Definition: force-compensation.h:149
int sotDummyType
Definition: force-compensation.h:158
bool calibrationStarted
Definition: force-compensation.h:120
dg::SignalPtr< dynamicgraph::Vector, int > velocitySIN
Definition: force-compensation.h:141
dg::SignalTimeDependent< sotDummyType, int > calibrationTrigerSOUT
Definition: force-compensation.h:159
dg::SignalTimeDependent< MatrixForce, int > handXworldSOUT
Definition: force-compensation.h:145
dg::SignalPtr< dynamicgraph::Vector, int > torsorDeadZoneSIN
Definition: force-compensation.h:147
dg::SignalTimeDependent< dynamicgraph::Vector, int > momentumSOUT
Definition: force-compensation.h:151
dg::SignalPtr< dynamicgraph::Vector, int > torsorSIN
Definition: force-compensation.h:128
dg::SignalPtr< dynamicgraph::Vector, int > precompensationSIN
Definition: force-compensation.h:135
dg::SignalPtr< dynamicgraph::Vector, int > momentumSIN
Definition: force-compensation.h:152
dg::SignalPtr< MatrixRotation, int > worldRhandSIN
Definition: force-compensation.h:129
dg::SignalTimeDependent< dynamicgraph::Vector, int > torsorCompensatedSOUT
Definition: force-compensation.h:155
Definition: force-compensation.h:52
dynamicgraph::Vector calibrateTransSensorCom(const dynamicgraph::Vector &gravity, const MatrixRotation &handRsensor)
void addCalibrationValue(const dynamicgraph::Vector &torsor, const MatrixRotation &worldRhand)
bool usingPrecompensation
Definition: force-compensation.h:57
static dynamicgraph::Vector & computeTorsorCompensated(const dynamicgraph::Vector &torqueInput, const dynamicgraph::Vector &torquePrecompensation, const dynamicgraph::Vector &gravity, const MatrixForce &handXworld, const MatrixForce &handVsensor, const dynamicgraph::Matrix &gainSensor, const dynamicgraph::Vector &momentum, dynamicgraph::Vector &res)
static MatrixForce & computeHandVsensor(const MatrixRotation &sensorRhand, MatrixForce &res)
static MatrixForce & computeSensorXhand(const MatrixRotation &sensorRhand, const dynamicgraph::Vector &transSensorCom, MatrixForce &res)
std::list< MatrixRotation > rotationList
Definition: force-compensation.h:96
static dynamicgraph::Vector & crossProduct_V_F(const dynamicgraph::Vector &velocity, const dynamicgraph::Vector &force, dynamicgraph::Vector &res)
static dynamicgraph::Vector & computeDeadZone(const dynamicgraph::Vector &torqueInput, const dynamicgraph::Vector &deadZoneLimit, dynamicgraph::Vector &res)
std::list< dynamicgraph::Vector > torsorList
Definition: force-compensation.h:95
void clearCalibration(void)
static dynamicgraph::Vector & computeMomentum(const dynamicgraph::Vector &velocity, const dynamicgraph::Vector &acceleration, const MatrixForce &sensorXhand, const dynamicgraph::Matrix &inertiaJoint, dynamicgraph::Vector &res)
static MatrixForce & computeHandXworld(const MatrixRotation &worldRhand, const dynamicgraph::Vector &transSensorCom, MatrixForce &res)
dynamicgraph::Vector calibrateGravity(const MatrixRotation &handRsensor, bool precompensationCalibration=false, const MatrixRotation &hand0Rsensor=I3)
#define SOTFORCECOMPENSATION_EXPORT
Definition: force-compensation.h:41
Definition: angle-estimator.h:43