46 #ifndef __IDYNBODY_H__
47 #define __IDYNBODY_H__
49 #include <yarp/sig/Vector.h>
50 #include <yarp/sig/Matrix.h>
65 class OneLinkNewtonEuler;
66 class BaseLinkNewtonEuler;
67 class FinalLinkNewtonEuler;
68 class SensorLinkNewtonEuler;
69 class ContactNewtonEuler;
70 class OneChainNewtonEuler;
71 class OneChainSensorNewtonEuler;
102 #define RBT_HAS_SENSOR true
103 #define RBT_NO_SENSOR false
104 #define NODE_AFTER_ATTACH true
105 #define NODE_NO_ATTACH false
165 yarp::sig::Vector
dw;
171 yarp::sig::Vector
Mu;
180 yarp::sig::Matrix
getR();
187 yarp::sig::Vector
getr(
bool proj=
false);
231 bool setRBT(
const yarp::sig::Matrix &_H);
243 bool setKinematic(
const yarp::sig::Vector &w0,
const yarp::sig::Vector &dw0,
const yarp::sig::Vector &ddp0);
256 bool setKinematicMeasure(
const yarp::sig::Vector &w0,
const yarp::sig::Vector &dw0,
const yarp::sig::Vector &ddp0);
267 bool setWrench(
const yarp::sig::Vector &F0,
const yarp::sig::Vector &Mu0);
293 yarp::sig::Matrix
getRBT()
const;
306 void getKinematic( yarp::sig::Vector &wNode, yarp::sig::Vector &dwNode, yarp::sig::Vector &ddpNode);
318 void getWrench( yarp::sig::Vector &FNode, yarp::sig::Vector &MuNode);
372 unsigned int getDOF()
const;
382 yarp::sig::Matrix
getH(
const unsigned int i,
const bool allLink=
false);
388 yarp::sig::Matrix
getH();
405 yarp::sig::Matrix
computeGeoJacobian(
const unsigned int iLink,
const yarp::sig::Matrix &Pn,
bool rbtRoto =
false);
415 yarp::sig::Matrix
computeGeoJacobian(
const unsigned int iLink,
const yarp::sig::Matrix &Pn,
const yarp::sig::Matrix &H0,
bool rbtRoto =
false);
435 yarp::sig::Matrix
computeGeoJacobian(
const yarp::sig::Matrix &Pn,
const yarp::sig::Matrix &H0,
bool rbtRoto =
false);
456 yarp::sig::Matrix
getR6()
const;
462 yarp::sig::Matrix
getH0()
const;
469 bool setH0(
const yarp::sig::Matrix &_H0);
503 yarp::sig::Matrix
TESTING_computeCOMJacobian(
const unsigned int iLink,
const yarp::sig::Matrix &Pn,
const yarp::sig::Matrix &_H0,
bool rbtRoto =
false );
510 yarp::sig::Matrix
getHCOM(
unsigned int iLink);
550 yarp::sig::Vector
dw;
556 yarp::sig::Vector
Mu;
637 yarp::sig::Matrix
getRBT(
unsigned int iLimb)
const;
652 bool solveKinematics(
const yarp::sig::Vector &w0,
const yarp::sig::Vector &dw0,
const yarp::sig::Vector &ddp0);
663 bool setKinematicMeasure(
const yarp::sig::Vector &w0,
const yarp::sig::Vector &dw0,
const yarp::sig::Vector &ddp0);
729 bool solveWrench(
const yarp::sig::Matrix &
F,
const yarp::sig::Matrix &M);
801 yarp::sig::Matrix
computeJacobian(
unsigned int iChain,
unsigned int iLink);
877 yarp::sig::Vector
computePose(
unsigned int iChainA,
JacobType dirA,
unsigned int iChainB,
unsigned int iLinkB,
JacobType dirB,
const bool axisRep);
998 virtual bool setWrenchMeasure(
const yarp::sig::Matrix &
F,
const yarp::sig::Matrix &M,
bool afterAttach=
false);
1130 bool update(
const yarp::sig::Vector &FM_right,
const yarp::sig::Vector &FM_left,
bool afterAttach=
true);
1142 bool update(
const yarp::sig::Vector &w0,
const yarp::sig::Vector &dw0,
const yarp::sig::Vector &ddp0,
const yarp::sig::Vector &FM_right,
const yarp::sig::Vector &FM_left,
const yarp::sig::Vector &FM_up);
1166 yarp::sig::Matrix
getForces(
const std::string &limbType);
1174 yarp::sig::Vector
getForce(
const std::string &limbType,
const unsigned int iLink)
const ;
1181 yarp::sig::Matrix
getMoments(
const std::string &limbType);
1189 yarp::sig::Vector
getMoment(
const std::string &limbType,
const unsigned int iLink)
const;
1196 yarp::sig::Vector
getTorques(
const std::string &limbType);
1204 double getTorque(
const std::string &limbType,
const unsigned int iLink)
const;
1256 bool setInertialMeasure(
const yarp::sig::Vector &w0,
const yarp::sig::Vector &dw0,
const yarp::sig::Vector &ddp0);
1276 bool setSensorMeasurement(
const yarp::sig::Vector &FM_right,
const yarp::sig::Vector &FM_left,
const yarp::sig::Vector &FM_up);
1289 yarp::sig::Vector
setAng(
const std::string &limbType,
const yarp::sig::Vector &_q);
1295 yarp::sig::Vector
getAng(
const std::string &limbType);
1303 double setAng(
const std::string &limbType,
const unsigned int i,
double _q);
1310 double getAng(
const std::string &limbType,
const unsigned int i);
1318 yarp::sig::Vector
setDAng(
const std::string &limbType,
const yarp::sig::Vector &_dq);
1324 yarp::sig::Vector
getDAng(
const std::string &limbType);
1332 double setDAng(
const std::string &limbType,
const unsigned int i,
double _dq);
1339 double getDAng(
const std::string &limbType,
const unsigned int i);
1347 yarp::sig::Vector
setD2Ang(
const std::string &limbType,
const yarp::sig::Vector &_ddq);
1353 yarp::sig::Vector
getD2Ang(
const std::string &limbType);
1361 double setD2Ang(
const std::string &limbType,
const unsigned int i,
double _ddq);
1368 double getD2Ang(
const std::string &limbType,
const unsigned int i);
1374 unsigned int getNLinks(
const std::string &limbType)
const;
1511 void attachLowerTorso(
const yarp::sig::Vector &FM_right_leg,
const yarp::sig::Vector &FM_left_leg);
A class for setting a rigid body transformation between iDynLimb and iDynNode.
FlowType getWrenchFlow() const
return the wrench flow type
NewEulMode mode
STATIC/DYNAMIC/DYNAMIC_W_ROTOR/DYNAMIC_CORIOLIS_GRAVITY.
yarp::sig::Vector ddp
linear acceleration
bool setWrenchMeasure(iDyn::iDynSensor *sensor, const yarp::sig::Vector &Fsens, const yarp::sig::Vector &Musens)
Set the wrench variables in the sensor.
yarp::sig::Vector getEndEffPose(const bool axisRep=true)
Return the end-effector pose: x-y-z Cartesian position and 3/4 angles of orientation.
yarp::sig::Matrix getRBT() const
Return the the (4x4) roto-translational matrix defining the rigid body transformation.
bool setRBT(const yarp::sig::Matrix &_H)
Set the roto-translational matrix between the limb and the node, defining the rigid body transformati...
yarp::sig::Matrix TESTING_computeCOMJacobian(const unsigned int iLink, const yarp::sig::Matrix &Pn, bool rbtRoto=false)
Returns the Jacobian matrix of the COM of the selected link (index = iLink) in the chain: in this cas...
FlowType kinFlow
kinematic flow: in-to/out-from node (RBT_NODE_IN/RBT_NODE_OUT)
yarp::sig::Matrix H
the roto-translation between the limb and the node
iDyn::iDynLimb * limb
the limb attached to the RigidBodyTransformation
void getWrench(yarp::sig::Vector &FNode, yarp::sig::Vector &MuNode)
Get the wrench variables (F,Mu) of the limb, transform it according to the RBT and add it to the node...
yarp::sig::Matrix getH()
Return the end-effector roto-translational matrix of the end-effector H of the end-effector.
bool setWrench(const yarp::sig::Vector &F0, const yarp::sig::Vector &Mu0)
Set the wrench variables (F,Mu) of the limb.
yarp::sig::Matrix computeGeoJacobian(const unsigned int iLink, const yarp::sig::Matrix &Pn, bool rbtRoto=false)
This method is used to compute the Jacobian between two links in two different chains (eg from link 4...
yarp::sig::Matrix computeGeoJacobian(const yarp::sig::Matrix &Pn, bool rbtRoto=false)
This method is used to compute the Jacobian between two links in two different chains: in this case i...
void computeLimbWrench()
Calls the compute wrench of the limb.
yarp::sig::Matrix getHCOM(unsigned int iLink)
Returns the COM matrix of the selected link (index = iLink) in the chain.
yarp::sig::Matrix getR6() const
Return a 6x6 diagonal matrix with the rotational matrix of the RBT.
void computeLimbKinematic()
Calls the compute kinematic of the limb.
yarp::sig::Matrix computeGeoJacobian(const yarp::sig::Matrix &Pn, const yarp::sig::Matrix &H0, bool rbtRoto=false)
This method is used to compute the Jacobian between two links in two different chains: in this case i...
yarp::sig::Vector getr(bool proj=false)
Return the translational part of the RBT matrix.
FlowType wreFlow
wrench flow: in-to/out-from node (RBT_NODE_IN/RBT_NODE_OUT)
yarp::sig::Matrix computeGeoJacobian(const unsigned int iLink, const yarp::sig::Matrix &Pn, const yarp::sig::Matrix &H0, bool rbtRoto=false)
This method is used to compute the Jacobian between two links in two different chains.
bool setKinematic(const yarp::sig::Vector &w0, const yarp::sig::Vector &dw0, const yarp::sig::Vector &ddp0)
Set the kinematic variables (w,dw,ddp) of the limb.
void computeWrench()
Basic computations for applying RBT on wrench variables.
std::string toString() const
Return some information.
unsigned int verbose
verbosity flag
yarp::sig::Vector w
angular velocity
yarp::sig::Matrix getR()
Return the rotational 3x3 matrix of the RBT.
yarp::sig::Vector Mu
moment
RigidBodyTransformation(iDyn::iDynLimb *_limb, const yarp::sig::Matrix &_H, const std::string &_info, bool _hasSensor=false, const FlowType kin=RBT_NODE_OUT, const FlowType wre=RBT_NODE_IN, const NewEulMode _mode=DYNAMIC, unsigned int verb=iCub::skinDynLib::VERBOSE)
Constructor, defining the limb attached to the node.
yarp::sig::Matrix getH0() const
Return the H0 matrix of the limb attached to the RBT.
bool setKinematicMeasure(const yarp::sig::Vector &w0, const yarp::sig::Vector &dw0, const yarp::sig::Vector &ddp0)
Set the kinematic variables (w,dw,ddp) of the limb, coming from external measurements (ie a sensor).
unsigned int getDOF() const
Return the number of DOF of the limb (DOF <= N)
yarp::sig::Matrix TESTING_computeCOMJacobian(const unsigned int iLink, bool rbtRoto=false)
Returns the Jacobian matrix of the COM of the selected link (index = iLink) in the chain.
~RigidBodyTransformation()
Destructor.
void getKinematic(yarp::sig::Vector &wNode, yarp::sig::Vector &dwNode, yarp::sig::Vector &ddpNode)
Get the kinematic variables (w,dw,ddp) of the limb, applies the RBT transformation and compute the ki...
std::string info
info or useful notes
yarp::sig::Vector dw
angular acceleration
bool setWrenchMeasure(const yarp::sig::Vector &F0, const yarp::sig::Vector &Mu0)
Set the wrench variables (F,Mu) of the limb.
bool isSensorized() const
Return a boolean, depending if the limb attached to the RBT has a FT sensor or not.
void setInfoFlow(const FlowType kin, const FlowType wre)
Set the flow of kinematic/wrench information: input to node or output from node.
unsigned int getNLinks() const
Return the number of links of the limb (N)
yarp::sig::Matrix TESTING_computeCOMJacobian(const unsigned int iLink, const yarp::sig::Matrix &Pn, const yarp::sig::Matrix &_H0, bool rbtRoto=false)
Returns the Jacobian matrix of the COM of the selected link (index = iLink) in the chain: in this cas...
void computeKinematic()
Basic computations for applying RBT on kinematic variables.
bool setH0(const yarp::sig::Matrix &_H0)
Set a new H0 matrix in the limb attached to the RBT.
FlowType getKinematicFlow() const
Return the kinematic flow type.
bool hasSensor
flag for sensor or not - only used for setWrenchMeasures()
A class for connecting torso, left and right leg of the iCub, and exchanging kinematic and wrench inf...
iCubLowerTorso(version_tag _tag, const NewEulMode _mode=DYNAMIC, unsigned int verb=iCub::skinDynLib::VERBOSE)
Constructor.
version_tag tag
Build the node.
~iCubLowerTorso()
Destructor.
A class for connecting head, left and right arm of the iCub, and exchanging kinematic and wrench info...
version_tag tag
Build the node.
iCubUpperTorso(version_tag tag, const NewEulMode _mode=DYNAMIC, unsigned int verb=iCub::skinDynLib::VERBOSE)
Constructor.
~iCubUpperTorso()
Destructor.
A class for connecting UpperTorso and LowerTorso of the iCub, then getting the WholeBody in the dynam...
yarp::sig::Vector upper_COM
bool getAllVelocities(yarp::sig::Vector &vel)
Retrieves a vector containing the velocities of all the iCub joints, ordered in this way: left leg (6...
RigidBodyTransformation * rbt
the rigid body transformation linking the UpperTorso node with the final link of the iCubTorsoDyn cha...
bool EXPERIMENTAL_getCOMvelocity(iCub::skinDynLib::BodyPart which_part, yarp::sig::Vector &vel, yarp::sig::Vector &dq)
Retrieves a 3x1 vector containing the velocity of the robot COM.
yarp::sig::Matrix COM_Jacob
yarp::sig::Vector lower_COM
iCubUpperTorso * upperTorso
pointer to UpperTorso = head + right arm + left arm
iCubWholeBody(version_tag _tag, const NewEulMode mode=DYNAMIC, unsigned int verbose=iCub::skinDynLib::VERBOSE)
Constructor: build the nodes and creates the whole body.
bool getAllPositions(yarp::sig::Vector &pos)
Retrieves a vector containing the anglular position of all the iCub joints, ordered in this way: left...
~iCubWholeBody()
Standard destructor.
bool EXPERIMENTAL_computeCOMjacobian()
Performs the computation of the center of mass jacobian of the whole iCub.
bool computeCOM()
Performs the computation of the center of mass (COM) of the whole iCub.
iCubLowerTorso * lowerTorso
pointer to LowerTorso = torso + right leg + left leg
yarp::sig::Vector whole_COM
double whole_mass
masses and position of the center of mass of the iCub sub-parts
bool getCOM(iCub::skinDynLib::BodyPart which_part, yarp::sig::Vector &COM, double &mass)
Retrieves the result of the last COM computation.
void attachLowerTorso(const yarp::sig::Vector &FM_right_leg, const yarp::sig::Vector &FM_left_leg)
Connect upper and lower torso: this procedure handles the exchange of kinematic and wrench variables ...
bool EXPERIMENTAL_getCOMjacobian(iCub::skinDynLib::BodyPart which_part, yarp::sig::Matrix &jac)
Retrieves the result of the last COM jacobian computation.
A class for defining a generic Limb within the iDyn framework.
A class for connecting two or mutiple limbs and exchanging kinematic and wrench information between l...
yarp::sig::Vector ddp
linear acceleration
virtual bool setWrenchMeasure(const yarp::sig::Matrix &FM)
Set the wrench measure on the limbs with input wrench.
yarp::sig::Vector getAngAcc() const
Return the node angular acceleration.
unsigned int howManyKinematicInputs(bool afterAttach=false) const
Return the number of limbs with kinematic input, i.e.
yarp::sig::Vector getMoment() const
Return the node moment.
yarp::sig::Vector getForce() const
Return the node force.
yarp::sig::Matrix getRBT(unsigned int iLimb) const
Return the RBT matrix of a certain limb attached to the node.
unsigned int verbose
verbosity flag
unsigned int howManyWrenchInputs(bool afterAttach=false) const
Return the number of limbs with wrench input, i.e.
void compute_Pn_HAN(unsigned int iChainA, JacobType dirA, unsigned int iChainB, JacobType dirB, yarp::sig::Matrix &Pn, yarp::sig::Matrix &H_A_Node)
Compute Pn and H_A_Node matrices given two chains.
NewEulMode mode
STATIC/DYNAMIC/DYNAMIC_W_ROTOR/DYNAMIC_CORIOLIS_GRAVITY.
yarp::sig::Vector w
angular velocity
virtual bool setWrenchMeasure(const yarp::sig::Matrix &F, const yarp::sig::Matrix &M)
Set the wrench measure on the limbs with input wrench.
yarp::sig::Vector computePose(unsigned int iChainA, JacobType dirA, unsigned int iChainB, JacobType dirB, const bool axisRep)
Compute the Pose of the end-effector, given a "virtual" chain connecting two limbs.
bool solveKinematics(const yarp::sig::Vector &w0, const yarp::sig::Vector &dw0, const yarp::sig::Vector &ddp0)
Main function to manage the exchange of kinematic information among the limbs attached to the node.
yarp::sig::Vector Mu
moment
yarp::sig::Vector getAngVel() const
Return the node angular velocity.
iDynNode(const NewEulMode _mode=DYNAMIC)
Default constructor.
std::string info
info or useful notes
yarp::sig::Matrix TESTING_computeCOMJacobian(unsigned int iChain, unsigned int iLink)
Compute the Jacobian of the COM of the i-th link of the limb with index iChain in the node.
std::deque< RigidBodyTransformation > rbtList
the list of RBT
bool solveWrench(const yarp::sig::Matrix &F, const yarp::sig::Matrix &M)
This is to manage the exchange of wrench information among the limbs attached to the node.
bool solveKinematics()
Main function to manage the exchange of kinematic information among the limbs attached to the node.
yarp::sig::Vector getLinAcc() const
Return the node linear acceleration.
bool setKinematicMeasure(const yarp::sig::Vector &w0, const yarp::sig::Vector &dw0, const yarp::sig::Vector &ddp0)
Set the kinematic measurement (w,dw,ddp) on the limb where the kinematic flow is of type RBT_NODE_IN.
yarp::sig::Matrix computeJacobian(unsigned int iChain)
Compute the Jacobian of the limb with index iChain in the node, in its default direction (as it would...
void compute_Pn_HAN(unsigned int iChainA, JacobType dirA, unsigned int iChainB, unsigned int iLinkB, JacobType dirB, yarp::sig::Matrix &Pn, yarp::sig::Matrix &H_A_Node)
Compute Pn and H_A_Node matrices given two chains.
yarp::sig::Vector dw
angular acceleration
virtual bool solveWrench()
Main function to manage the exchange of wrench information among the limbs attached to the node.
double mass
total mass of the node
void compute_Pn_HAN_COM(unsigned int iChainA, JacobType dirA, unsigned int iChainB, unsigned int iLinkB, JacobType dirB, yarp::sig::Matrix &Pn, yarp::sig::Matrix &H_A_Node)
Compute Pn and H_A_Node matrices given two chains.
void zero()
Reset all data to zero.
bool solveWrench(const yarp::sig::Matrix &FM)
This is to manage the exchange of wrench information among the limbs attached to the node.
virtual void addLimb(iDyn::iDynLimb *limb, const yarp::sig::Matrix &H, const FlowType kinFlow=RBT_NODE_OUT, const FlowType wreFlow=RBT_NODE_IN, bool hasSensor=false)
Add one limb to the node, defining its RigidBodyTransformation.
yarp::sig::Vector COM
COM position of the node.
A class for connecting two or mutiple limbs and exchanging kinematic and wrench information between l...
void addLimb(iDyn::iDynLimb *limb, const yarp::sig::Matrix &H, iDyn::iDynSensor *sensor, const FlowType kinFlow=RBT_NODE_OUT, const FlowType wreFlow=RBT_NODE_IN)
Add one limb to the node, defining its RigidBodyTransformation and the iDynSensor used to solve it af...
virtual bool setWrenchMeasure(const yarp::sig::Matrix &FM, bool afterAttach=false)
Set the Wrench measures on the limbs attached to the node.
virtual bool solveWrench()
Main function to manage the exchange of wrench information among the limbs attached to the node.
unsigned int howManySensors() const
virtual bool setWrenchMeasure(const yarp::sig::Matrix &F, const yarp::sig::Matrix &M, bool afterAttach=false)
Set the Wrench measures on the limbs attached to the node.
yarp::sig::Matrix estimateSensorsWrench(const yarp::sig::Matrix &FM, bool afterAttach=false)
Exploit iDynInvSensor methods to retrieve FT sensor measurements after solving wrenches in the limbs.
virtual void addLimb(iDyn::iDynLimb *limb, const yarp::sig::Matrix &H, const FlowType kinFlow=RBT_NODE_OUT, const FlowType wreFlow=RBT_NODE_IN)
Add one limb to the node, defining its RigidBodyTransformation.
std::deque< iDyn::iDynSensor * > sensorList
the list of iDynSensors used to solve each limb after FT sensor measurements
iDynSensorNode(const NewEulMode _mode=DYNAMIC)
Default constructor.
A class for connecting a central-up limb, a left and right limb of the iCub, and exchanging kinematic...
yarp::sig::Vector getD2Ang(const std::string &limbType)
Get joints angle acceleration in the chosen limb.
yarp::sig::Matrix HRight
roto-translational matrix defining the right limb base frame with respect to the torso node
bool computeCOM()
Performs the computation of the center of mass (COM) of the node.
bool update(const yarp::sig::Vector &FM_right, const yarp::sig::Vector &FM_left, bool afterAttach=true)
Main method for solving kinematics and wrench among limbs, where information are shared.
yarp::sig::Matrix COM_jacob_LF
yarp::sig::Matrix COM_jacob_UP
iDynSensorTorsoNode(const NewEulMode _mode=DYNAMIC, unsigned int verb=iCub::skinDynLib::VERBOSE)
Constructor.
std::string name
the torso node name
yarp::sig::Vector getTorques(const std::string &limbType)
Return the chosen limb torques, as a Nx1 vector.
bool update(const yarp::sig::Vector &w0, const yarp::sig::Vector &dw0, const yarp::sig::Vector &ddp0, const yarp::sig::Vector &FM_right, const yarp::sig::Vector &FM_left, const yarp::sig::Vector &FM_up)
Main method for solving kinematics and wrench among limbs, where information are shared.
yarp::sig::Vector getAng(const std::string &limbType)
Get joints angle position in the chosen limb.
double getTorque(const std::string &limbType, const unsigned int iLink) const
Return the chosen limb-link torque, as a real value.
iDyn::iDynContactSolver * leftSensor
Build the node.
yarp::sig::Matrix estimateSensorsWrench(const yarp::sig::Matrix &FM, bool afterAttach=false)
Redefinition from iDynSensorNode.
yarp::sig::Matrix HLeft
roto-translational matrix defining the left limb base frame with respect to the torso node
iDyn::iDynLimb * left
left limb
~iDynSensorTorsoNode()
Destructor.
yarp::sig::Vector setDAng(const std::string &limbType, const yarp::sig::Vector &_dq)
Set joints angle velocity in the chosen limb.
yarp::sig::Vector getTorsoAngAcc() const
Return the torso angular acceleration.
yarp::sig::Matrix getMoments(const std::string &limbType)
Return the chosen limb moments, as a 6xN matrix.
std::string up_name
name of central-up limb
bool setSensorMeasurement(const yarp::sig::Vector &FM_right, const yarp::sig::Vector &FM_left)
Set the FT sensor measurements on the sensor in right and left limb.
yarp::sig::Vector setD2Ang(const std::string &limbType, const yarp::sig::Vector &_ddq)
Set joints angle acceleration in the chosen limb.
yarp::sig::Vector getTorsoLinAcc() const
Return the torso linear acceleration.
yarp::sig::Vector getMoment(const std::string &limbType, const unsigned int iLink) const
Return the chosen limb-link moment, as a 3x1 vector.
yarp::sig::Matrix COM_jacob_RT
yarp::sig::Matrix getHLeft()
Return HLeft, i.e.
yarp::sig::Vector getTorsoForce() const
Return the torso force.
iDyn::iDynLimb * right
right limb
std::string right_name
name of right limb
iDyn::iDynContactSolver * rightSensor
right FT sensor and solver
bool EXPERIMENTAL_computeCOMjacobian()
Performs the computation of the center of mass jacobian of the node.
yarp::sig::Vector getForce(const std::string &limbType, const unsigned int iLink) const
Return the chosen limb-link force, as a 3x1 vector.
yarp::sig::Vector total_COM_RT
unsigned int getNLinks(const std::string &limbType) const
yarp::sig::Matrix getForces(const std::string &limbType)
Return the chosen limb forces, as a 6xN matrix.
yarp::sig::Vector getDAng(const std::string &limbType)
Get joints angle velocity in the chosen limb.
std::string left_name
name of left limb
iDyn::iDynLimb * up
central-up limb
yarp::sig::Vector setAng(const std::string &limbType, const yarp::sig::Vector &_q)
Set joints angle position in the chosen limb.
bool setSensorMeasurement(const yarp::sig::Vector &FM_right, const yarp::sig::Vector &FM_left, const yarp::sig::Vector &FM_up)
Set the FT sensor measurements on the sensor in right and left limb.
yarp::sig::Matrix getHUp()
Return HUp, i.e.
yarp::sig::Vector getTorsoMoment() const
Return the torso moment.
bool setInertialMeasure(const yarp::sig::Vector &w0, const yarp::sig::Vector &dw0, const yarp::sig::Vector &ddp0)
Set the inertial sensor measurements on the central-up limb.
yarp::sig::Vector total_COM_UP
COMs and masses of the limbs.
yarp::sig::Vector getTorsoAngVel() const
Return the torso angular velocity.
bool update()
Main method for solving kinematics and wrench among limbs, where information are shared.
yarp::sig::Vector total_COM_LF
yarp::sig::Matrix HUp
roto-translational matrix defining the central-up base frame with respect to the torso node
yarp::sig::Matrix getHRight()
Return HRight, i.e.
A class for computing forces and torques in a iDynChain, when a force/torque sensor is placed in the ...
This file contains the definition of unique IDs for the body parts and the skin parts of the robot.