iCub-main
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
iCub::iDyn::iDynSensorTorsoNode Class Reference

A class for connecting a central-up limb, a left and right limb of the iCub, and exchanging kinematic and wrench information between limbs, when both left/right limb have FT sensors and the central-up one use the kinematic and wrench information coming from a inertial measurements or another iDynSensorNode. More...

#include <iDynBody.h>

+ Inheritance diagram for iCub::iDyn::iDynSensorTorsoNode:

Public Member Functions

 iDynSensorTorsoNode (const NewEulMode _mode=DYNAMIC, unsigned int verb=iCub::skinDynLib::VERBOSE)
 Constructor.
 
 iDynSensorTorsoNode (const std::string &_info, const NewEulMode _mode=DYNAMIC, unsigned int verb=iCub::skinDynLib::VERBOSE)
 Constructor.
 
 ~iDynSensorTorsoNode ()
 Destructor.
 
bool update ()
 Main method for solving kinematics and wrench among limbs, where information are shared.
 
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.
 
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::Matrix getHLeft ()
 Return HLeft, i.e.
 
yarp::sig::Matrix getHRight ()
 Return HRight, i.e.
 
yarp::sig::Matrix getHUp ()
 Return HUp, i.e.
 
yarp::sig::Matrix getForces (const std::string &limbType)
 Return the chosen limb forces, as a 6xN matrix.
 
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::Matrix getMoments (const std::string &limbType)
 Return the chosen limb moments, as a 6xN matrix.
 
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::Vector getTorques (const std::string &limbType)
 Return the chosen limb torques, as a Nx1 vector.
 
double getTorque (const std::string &limbType, const unsigned int iLink) const
 Return the chosen limb-link torque, as a real value.
 
bool computeCOM ()
 Performs the computation of the center of mass (COM) of the node.
 
bool EXPERIMENTAL_computeCOMjacobian ()
 Performs the computation of the center of mass jacobian of the node.
 
yarp::sig::Vector getTorsoForce () const
 Return the torso force.
 
yarp::sig::Vector getTorsoMoment () const
 Return the torso moment.
 
yarp::sig::Vector getTorsoAngVel () const
 Return the torso angular velocity.
 
yarp::sig::Vector getTorsoAngAcc () const
 Return the torso angular acceleration.
 
yarp::sig::Vector getTorsoLinAcc () const
 Return the torso linear acceleration.
 
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.
 
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.
 
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::Vector setAng (const std::string &limbType, const yarp::sig::Vector &_q)
 Set joints angle position in the chosen limb.
 
yarp::sig::Vector getAng (const std::string &limbType)
 Get joints angle position in the chosen limb.
 
double setAng (const std::string &limbType, const unsigned int i, double _q)
 Set the i-th joint angle position in the chosen limb.
 
double getAng (const std::string &limbType, const unsigned int i)
 Get a joint angle position in the chosen limb.
 
yarp::sig::Vector setDAng (const std::string &limbType, const yarp::sig::Vector &_dq)
 Set joints angle velocity in the chosen limb.
 
yarp::sig::Vector getDAng (const std::string &limbType)
 Get joints angle velocity in the chosen limb.
 
double setDAng (const std::string &limbType, const unsigned int i, double _dq)
 Set the i-th joint angle velocity in the chosen limb.
 
double getDAng (const std::string &limbType, const unsigned int i)
 Get a joint angle velocity in the chosen 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 getD2Ang (const std::string &limbType)
 Get joints angle acceleration in the chosen limb.
 
double setD2Ang (const std::string &limbType, const unsigned int i, double _ddq)
 Set the i-th joint angle acceleration in the chosen limb.
 
double getD2Ang (const std::string &limbType, const unsigned int i)
 Get a joint angle acceleration in the chosen limb.
 
unsigned int getNLinks (const std::string &limbType) const
 
yarp::sig::Matrix estimateSensorsWrench (const yarp::sig::Matrix &FM, bool afterAttach=false)
 Redefinition from iDynSensorNode.
 
void clearContactList ()
 
- Public Member Functions inherited from iCub::iDyn::iDynSensorNode
 iDynSensorNode (const NewEulMode _mode=DYNAMIC)
 Default constructor.
 
 iDynSensorNode (const std::string &_info, const NewEulMode _mode=DYNAMIC, unsigned int verb=iCub::skinDynLib::VERBOSE)
 Constructor.
 
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.
 
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 after FT sensor measurements.
 
virtual bool solveWrench ()
 Main function to manage the exchange of wrench information among the limbs attached to the node.
 
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.
 
virtual bool setWrenchMeasure (const yarp::sig::Matrix &FM, 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.
 
- Public Member Functions inherited from iCub::iDyn::iDynNode
 iDynNode (const NewEulMode _mode=DYNAMIC)
 Default constructor.
 
 iDynNode (const std::string &_info, const NewEulMode _mode=DYNAMIC, unsigned int verb=iCub::skinDynLib::VERBOSE)
 Constructor with parameters.
 
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::Matrix getRBT (unsigned int iLimb) const
 Return the RBT matrix of a certain limb attached to the node.
 
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.
 
bool solveKinematics ()
 Main function to manage the exchange of kinematic information among the limbs attached to the node.
 
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.
 
bool solveWrench (const yarp::sig::Matrix &FM)
 This is to manage the exchange of wrench information among the limbs attached to the node.
 
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.
 
virtual bool setWrenchMeasure (const yarp::sig::Matrix &F, const yarp::sig::Matrix &M)
 Set the wrench measure on the limbs with input wrench.
 
virtual bool setWrenchMeasure (const yarp::sig::Matrix &FM)
 Set the wrench measure on the limbs with input wrench.
 
yarp::sig::Vector getForce () const
 Return the node force.
 
yarp::sig::Vector getMoment () const
 Return the node moment.
 
yarp::sig::Vector getAngVel () const
 Return the node angular velocity.
 
yarp::sig::Vector getAngAcc () const
 Return the node angular acceleration.
 
yarp::sig::Vector getLinAcc () const
 Return the node linear acceleration.
 
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 be done by iKin).
 
yarp::sig::Matrix computeJacobian (unsigned int iChain, unsigned int iLink)
 Compute the Jacobian of the i-th link of the limb with index iChain in the node, in its default direction (as it would be done by iKin).
 
yarp::sig::Matrix computeJacobian (unsigned int iChainA, JacobType dirA, unsigned int iChainB, JacobType dirB)
 Compute the Jacobian between two links in two different chains.
 
yarp::sig::Matrix computeJacobian (unsigned int iChainA, JacobType dirA, unsigned int iChainB, unsigned int iLinkB, JacobType dirB)
 Compute the Jacobian between two links in two different chains.
 
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.
 
yarp::sig::Vector computePose (unsigned int iChainA, JacobType dirA, unsigned int iChainB, unsigned int iLinkB, JacobType dirB, const bool axisRep)
 Compute the Pose of the end-effector, given a "virtual" chain connecting two limbs.
 
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.
 
yarp::sig::Matrix TESTING_computeCOMJacobian (unsigned int iChainA, JacobType dirA, unsigned int iChainB, unsigned int iLinkB, JacobType dirB)
 Compute the Jacobian of the COM of link iLinkB, in chainB, when two different chains (A and B) are connected.
 

Public Attributes

yarp::sig::Matrix HUp
 roto-translational matrix defining the central-up base frame with respect to the torso node
 
yarp::sig::Matrix HLeft
 roto-translational matrix defining the left limb base frame with respect to the torso node
 
yarp::sig::Matrix HRight
 roto-translational matrix defining the right limb base frame with respect to the torso node
 
std::string left_name
 name of left limb
 
std::string right_name
 name of right limb
 
std::string up_name
 name of central-up limb
 
std::string name
 the torso node name
 
iDyn::iDynContactSolverleftSensor
 Build the node.
 
iDyn::iDynContactSolverrightSensor
 right FT sensor and solver
 
iDyn::iDynLimbleft
 left limb
 
iDyn::iDynLimbright
 right limb
 
iDyn::iDynLimbup
 central-up limb
 
yarp::sig::Vector total_COM_UP
 COMs and masses of the limbs.
 
yarp::sig::Vector total_COM_LF
 
yarp::sig::Vector total_COM_RT
 
double total_mass_UP
 
double total_mass_LF
 
double total_mass_RT
 
yarp::sig::Matrix COM_jacob_UP
 
yarp::sig::Matrix COM_jacob_LF
 
yarp::sig::Matrix COM_jacob_RT
 

Additional Inherited Members

- Protected Member Functions inherited from iCub::iDyn::iDynSensorNode
unsigned int howManySensors () const
 
- Protected Member Functions inherited from iCub::iDyn::iDynNode
void zero ()
 Reset all data to zero.
 
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.
 
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.
 
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.
 
unsigned int howManyWrenchInputs (bool afterAttach=false) const
 Return the number of limbs with wrench input, i.e.
 
unsigned int howManyKinematicInputs (bool afterAttach=false) const
 Return the number of limbs with kinematic input, i.e.
 
- Protected Attributes inherited from iCub::iDyn::iDynSensorNode
std::deque< iDyn::iDynSensor * > sensorList
 the list of iDynSensors used to solve each limb after FT sensor measurements
 
- Protected Attributes inherited from iCub::iDyn::iDynNode
std::deque< RigidBodyTransformationrbtList
 the list of RBT
 
NewEulMode mode
 STATIC/DYNAMIC/DYNAMIC_W_ROTOR/DYNAMIC_CORIOLIS_GRAVITY.
 
std::string info
 info or useful notes
 
unsigned int verbose
 verbosity flag
 
yarp::sig::Vector w
 angular velocity
 
yarp::sig::Vector dw
 angular acceleration
 
yarp::sig::Vector ddp
 linear acceleration
 
yarp::sig::Vector F
 force
 
yarp::sig::Vector Mu
 moment
 
yarp::sig::Vector COM
 COM position of the node.
 
double mass
 total mass of the node
 

Detailed Description

A class for connecting a central-up limb, a left and right limb of the iCub, and exchanging kinematic and wrench information between limbs, when both left/right limb have FT sensors and the central-up one use the kinematic and wrench information coming from a inertial measurements or another iDynSensorNode.

This is the base class of UpperTorso and LowerTorso. The connection between UpperTorso and LowerTorso is not handled here: it is simply supposed that a Torso Node receives correct kinematic and wrench input from outside.

Definition at line 1046 of file iDynBody.h.

Constructor & Destructor Documentation

◆ iDynSensorTorsoNode() [1/2]

iDynSensorTorsoNode::iDynSensorTorsoNode ( const NewEulMode  _mode = DYNAMIC,
unsigned int  verb = iCub::skinDynLib::VERBOSE 
)

Constructor.

Parameters
_modethe computation mode for kinematic/wrench using Newton-Euler's formula
verbverbosity flag

Definition at line 1729 of file iDynBody.cpp.

◆ iDynSensorTorsoNode() [2/2]

iDynSensorTorsoNode::iDynSensorTorsoNode ( const std::string &  _info,
const NewEulMode  _mode = DYNAMIC,
unsigned int  verb = iCub::skinDynLib::VERBOSE 
)

Constructor.

Parameters
_infosome information, ie the node name
_modethe computation mode for kinematic/wrench using Newton-Euler's formula
verbverbosity flag

Definition at line 1735 of file iDynBody.cpp.

◆ ~iDynSensorTorsoNode()

iDynSensorTorsoNode::~iDynSensorTorsoNode ( )

Destructor.

Definition at line 1741 of file iDynBody.cpp.

Member Function Documentation

◆ clearContactList()

void iDynSensorTorsoNode::clearContactList ( )

Definition at line 2220 of file iDynBody.cpp.

◆ computeCOM()

bool iDynSensorTorsoNode::computeCOM ( )

Performs the computation of the center of mass (COM) of the node.

Returns
true if succeeds, false otherwise

Definition at line 1912 of file iDynBody.cpp.

◆ estimateSensorsWrench()

yarp::sig::Matrix iCub::iDyn::iDynSensorTorsoNode::estimateSensorsWrench ( const yarp::sig::Matrix &  FM,
bool  afterAttach = false 
)
inline

Redefinition from iDynSensorNode.

Exploit iDynInvSensor methods to retrieve FT sensor measurements after solving wrenches in the limbs.

Parameters
FMa (6xN) matrix of forces/moments where N is the number of external wrenches for the N limbs of the node
Returns
a (6xM), matrix with estimated wrench for the M sensors

Definition at line 1383 of file iDynBody.h.

◆ EXPERIMENTAL_computeCOMjacobian()

bool iDynSensorTorsoNode::EXPERIMENTAL_computeCOMjacobian ( )

Performs the computation of the center of mass jacobian of the node.

Returns
true if succeeds, false otherwise

Definition at line 1970 of file iDynBody.cpp.

◆ getAng() [1/2]

Vector iDynSensorTorsoNode::getAng ( const std::string &  limbType)

Get joints angle position in the chosen limb.

Parameters
limbTypea string with limb type
Returns
the joint angles

Definition at line 2076 of file iDynBody.cpp.

◆ getAng() [2/2]

double iDynSensorTorsoNode::getAng ( const std::string &  limbType,
const unsigned int  i 
)

Get a joint angle position in the chosen limb.

Parameters
limbTypea string with limb type
ithe link index in the limb
Returns
the joint angle

Definition at line 2100 of file iDynBody.cpp.

◆ getD2Ang() [1/2]

Vector iDynSensorTorsoNode::getD2Ang ( const std::string &  limbType)

Get joints angle acceleration in the chosen limb.

Parameters
limbTypea string with limb type
Returns
the joint acceleration

Definition at line 2172 of file iDynBody.cpp.

◆ getD2Ang() [2/2]

double iDynSensorTorsoNode::getD2Ang ( const std::string &  limbType,
const unsigned int  i 
)

Get a joint angle acceleration in the chosen limb.

Parameters
limbTypea string with limb type
ithe link index in the limb
Returns
the joint acceleration

Definition at line 2196 of file iDynBody.cpp.

◆ getDAng() [1/2]

Vector iDynSensorTorsoNode::getDAng ( const std::string &  limbType)

Get joints angle velocity in the chosen limb.

Parameters
limbTypea string with limb type
Returns
the joint velocity

Definition at line 2124 of file iDynBody.cpp.

◆ getDAng() [2/2]

double iDynSensorTorsoNode::getDAng ( const std::string &  limbType,
const unsigned int  i 
)

Get a joint angle velocity in the chosen limb.

Parameters
limbTypea string with limb type
ithe link index in the limb
Returns
the joint velocity

Definition at line 2148 of file iDynBody.cpp.

◆ getForce()

yarp::sig::Vector iCub::iDyn::iDynSensorTorsoNode::getForce ( const std::string &  limbType,
const unsigned int  iLink 
) const

Return the chosen limb-link force, as a 3x1 vector.

Parameters
limbTypea string with the limb name
iLinkthe link index in the limb
Returns
the chosen limb-link force

◆ getForces()

Matrix iDynSensorTorsoNode::getForces ( const std::string &  limbType)

Return the chosen limb forces, as a 6xN matrix.

Parameters
limbTypea string with the limb name
Returns
the chosen limb forces

Definition at line 1866 of file iDynBody.cpp.

◆ getHLeft()

yarp::sig::Matrix iCub::iDyn::iDynSensorTorsoNode::getHLeft ( )
inline

Return HLeft, i.e.

the roto-translation matrix between the 'left' limb and the node.

Definition at line 1151 of file iDynBody.h.

◆ getHRight()

yarp::sig::Matrix iCub::iDyn::iDynSensorTorsoNode::getHRight ( )
inline

Return HRight, i.e.

the roto-translation matrix between the 'right' limb and the node.

Definition at line 1155 of file iDynBody.h.

◆ getHUp()

yarp::sig::Matrix iCub::iDyn::iDynSensorTorsoNode::getHUp ( )
inline

Return HUp, i.e.

the roto-translation matrix between the 'up' limb and the node.

Definition at line 1159 of file iDynBody.h.

◆ getMoment()

yarp::sig::Vector iCub::iDyn::iDynSensorTorsoNode::getMoment ( const std::string &  limbType,
const unsigned int  iLink 
) const

Return the chosen limb-link moment, as a 3x1 vector.

Parameters
limbTypea string with the limb name
iLinkthe link index in the limb
Returns
the chosen limb-link moment

◆ getMoments()

Matrix iDynSensorTorsoNode::getMoments ( const std::string &  limbType)

Return the chosen limb moments, as a 6xN matrix.

Parameters
limbTypea string with the limb name
Returns
the chosen limb moments

Definition at line 1878 of file iDynBody.cpp.

◆ getNLinks()

unsigned int iDynSensorTorsoNode::getNLinks ( const std::string &  limbType) const
Parameters
limbTypea string with the limb name
Returns
the number of links of the chosen limb

Definition at line 2208 of file iDynBody.cpp.

◆ getTorque()

double iCub::iDyn::iDynSensorTorsoNode::getTorque ( const std::string &  limbType,
const unsigned int  iLink 
) const

Return the chosen limb-link torque, as a real value.

Parameters
limbTypea string with the limb name
iLinkthe link index in the limb
Returns
the chosen limb-link torque

◆ getTorques()

Vector iDynSensorTorsoNode::getTorques ( const std::string &  limbType)

Return the chosen limb torques, as a Nx1 vector.

Parameters
limbTypea string with the limb name
Returns
the chosen limb torques

Definition at line 1890 of file iDynBody.cpp.

◆ getTorsoAngAcc()

Vector iDynSensorTorsoNode::getTorsoAngAcc ( ) const

Return the torso angular acceleration.

Returns
the torso angular acceleration

Definition at line 1908 of file iDynBody.cpp.

◆ getTorsoAngVel()

Vector iDynSensorTorsoNode::getTorsoAngVel ( ) const

Return the torso angular velocity.

Returns
the torso angular velocity

Definition at line 1906 of file iDynBody.cpp.

◆ getTorsoForce()

Vector iDynSensorTorsoNode::getTorsoForce ( ) const

Return the torso force.

Returns
the torso force

Definition at line 1902 of file iDynBody.cpp.

◆ getTorsoLinAcc()

Vector iDynSensorTorsoNode::getTorsoLinAcc ( ) const

Return the torso linear acceleration.

Returns
the torso linear acceleration

Definition at line 1910 of file iDynBody.cpp.

◆ getTorsoMoment()

Vector iDynSensorTorsoNode::getTorsoMoment ( ) const

Return the torso moment.

Returns
the torso moment

Definition at line 1904 of file iDynBody.cpp.

◆ setAng() [1/2]

double iDynSensorTorsoNode::setAng ( const std::string &  limbType,
const unsigned int  i,
double  _q 
)

Set the i-th joint angle position in the chosen limb.

Parameters
_qthe joint position
ithe link index in the limb
limbTypea string with limb type
Returns
the effective joint angle, considering min/max values

Definition at line 2088 of file iDynBody.cpp.

◆ setAng() [2/2]

yarp::sig::Vector iCub::iDyn::iDynSensorTorsoNode::setAng ( const std::string &  limbType,
const yarp::sig::Vector &  _q 
)

Set joints angle position in the chosen limb.

Parameters
_qthe joints position
limbTypea string with limb type
Returns
the effective joint angles, considering min/max values

◆ setD2Ang() [1/2]

double iDynSensorTorsoNode::setD2Ang ( const std::string &  limbType,
const unsigned int  i,
double  _ddq 
)

Set the i-th joint angle acceleration in the chosen limb.

Parameters
_ddqthe joint acceleration
ithe link index in the limb
limbTypea string with limb type
Returns
the effective joint acceleration

Definition at line 2184 of file iDynBody.cpp.

◆ setD2Ang() [2/2]

yarp::sig::Vector iCub::iDyn::iDynSensorTorsoNode::setD2Ang ( const std::string &  limbType,
const yarp::sig::Vector &  _ddq 
)

Set joints angle acceleration in the chosen limb.

Parameters
_dqthe joints acceleration
limbTypea string with limb type
Returns
the effective joint acceleration

◆ setDAng() [1/2]

double iDynSensorTorsoNode::setDAng ( const std::string &  limbType,
const unsigned int  i,
double  _dq 
)

Set the i-th joint angle velocity in the chosen limb.

Parameters
_dqthe joint velocity
ithe link index in the limb
limbTypea string with limb type
Returns
the effective joint velocity

Definition at line 2136 of file iDynBody.cpp.

◆ setDAng() [2/2]

yarp::sig::Vector iCub::iDyn::iDynSensorTorsoNode::setDAng ( const std::string &  limbType,
const yarp::sig::Vector &  _dq 
)

Set joints angle velocity in the chosen limb.

Parameters
_dqthe joints velocity
limbTypea string with limb type
Returns
the effective joint velocity

◆ setInertialMeasure()

bool iDynSensorTorsoNode::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.

Parameters
w0a 3x1 vector with the initial/measured angular velocity
dw0a 3x1 vector with the initial/measured angular acceleration
ddp0a 3x1 vector with the initial/measured linear acceleration
Returns
true if succeeds (correct vectors size), false otherwise

Definition at line 1753 of file iDynBody.cpp.

◆ setSensorMeasurement() [1/2]

bool iCub::iDyn::iDynSensorTorsoNode::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.

This operation is necessary to initialize the wrench phase correctly. The central-up limb wrench is assumed to be already initialized: for example after an attachTorso().

Parameters
FM_righta 6x1 vector with forces and moments measured by the FT sensor in the right limb
FM_lefta 6x1 vector with forces and moments measured by the FT sensor in the left limb
Returns
true if succeeds, false otherwise

◆ setSensorMeasurement() [2/2]

bool iCub::iDyn::iDynSensorTorsoNode::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.

This operation is necessary to initialize the wrench phase correctly. The central-up limb wrench initializing wrench is also specified.

Parameters
FM_righta 6x1 vector with forces and moments measured by the FT sensor in the right limb
FM_lefta 6x1 vector with forces and moments measured by the FT sensor in the left limb
FM_upa 6x1 vector with forces and moments initializing the central-up limb
Returns
true if succeeds, false otherwise

◆ update() [1/3]

bool iDynSensorTorsoNode::update ( )

Main method for solving kinematics and wrench among limbs, where information are shared.

Returns
true if kinematics and wrench phases succeed, false otherwise

Definition at line 1794 of file iDynBody.cpp.

◆ update() [2/3]

bool iCub::iDyn::iDynSensorTorsoNode::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.

This method assumes that the initial kinematics informations have already been set, as the external wrench on the central limb: i.e. this method is the one called after attachTorso().

Parameters
FM_righta 6x1 vector with forces and moments measured by the FT sensor in the right limb
FM_lefta 6x1 vector with forces and moments measured by the FT sensor in the left limb
Returns
true if succeeds, false otherwise

◆ update() [3/3]

bool iCub::iDyn::iDynSensorTorsoNode::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.

Parameters
w0a 3x1 vector with the initial/measured angular velocity
dw0a 3x1 vector with the initial/measured angular acceleration
ddp0a 3x1 vector with the initial/measured linear acceleration
FM_righta 6x1 vector with forces and moments measured by the FT sensor in the right limb
FM_lefta 6x1 vector with forces and moments measured by the FT sensor in the left limb
FM_upa 6x1 vector with forces and moments initializing the central limb
Returns
true if succeeds, false otherwise

Member Data Documentation

◆ COM_jacob_LF

yarp::sig::Matrix iCub::iDyn::iDynSensorTorsoNode::COM_jacob_LF

Definition at line 1093 of file iDynBody.h.

◆ COM_jacob_RT

yarp::sig::Matrix iCub::iDyn::iDynSensorTorsoNode::COM_jacob_RT

Definition at line 1094 of file iDynBody.h.

◆ COM_jacob_UP

yarp::sig::Matrix iCub::iDyn::iDynSensorTorsoNode::COM_jacob_UP

Definition at line 1092 of file iDynBody.h.

◆ HLeft

yarp::sig::Matrix iCub::iDyn::iDynSensorTorsoNode::HLeft

roto-translational matrix defining the left limb base frame with respect to the torso node

Definition at line 1053 of file iDynBody.h.

◆ HRight

yarp::sig::Matrix iCub::iDyn::iDynSensorTorsoNode::HRight

roto-translational matrix defining the right limb base frame with respect to the torso node

Definition at line 1055 of file iDynBody.h.

◆ HUp

yarp::sig::Matrix iCub::iDyn::iDynSensorTorsoNode::HUp

roto-translational matrix defining the central-up base frame with respect to the torso node

Definition at line 1051 of file iDynBody.h.

◆ left

iDyn::iDynLimb* iCub::iDyn::iDynSensorTorsoNode::left

left limb

Definition at line 1079 of file iDynBody.h.

◆ left_name

std::string iCub::iDyn::iDynSensorTorsoNode::left_name

name of left limb

Definition at line 1058 of file iDynBody.h.

◆ leftSensor

iDyn::iDynContactSolver* iCub::iDyn::iDynSensorTorsoNode::leftSensor

Build the node.

left FT sensor and solver

Definition at line 1073 of file iDynBody.h.

◆ name

std::string iCub::iDyn::iDynSensorTorsoNode::name

the torso node name

Definition at line 1064 of file iDynBody.h.

◆ right

iDyn::iDynLimb* iCub::iDyn::iDynSensorTorsoNode::right

right limb

Definition at line 1081 of file iDynBody.h.

◆ right_name

std::string iCub::iDyn::iDynSensorTorsoNode::right_name

name of right limb

Definition at line 1060 of file iDynBody.h.

◆ rightSensor

iDyn::iDynContactSolver* iCub::iDyn::iDynSensorTorsoNode::rightSensor

right FT sensor and solver

Definition at line 1075 of file iDynBody.h.

◆ total_COM_LF

yarp::sig::Vector iCub::iDyn::iDynSensorTorsoNode::total_COM_LF

Definition at line 1087 of file iDynBody.h.

◆ total_COM_RT

yarp::sig::Vector iCub::iDyn::iDynSensorTorsoNode::total_COM_RT

Definition at line 1088 of file iDynBody.h.

◆ total_COM_UP

yarp::sig::Vector iCub::iDyn::iDynSensorTorsoNode::total_COM_UP

COMs and masses of the limbs.

Definition at line 1086 of file iDynBody.h.

◆ total_mass_LF

double iCub::iDyn::iDynSensorTorsoNode::total_mass_LF

Definition at line 1090 of file iDynBody.h.

◆ total_mass_RT

double iCub::iDyn::iDynSensorTorsoNode::total_mass_RT

Definition at line 1091 of file iDynBody.h.

◆ total_mass_UP

double iCub::iDyn::iDynSensorTorsoNode::total_mass_UP

Definition at line 1089 of file iDynBody.h.

◆ up

iDyn::iDynLimb* iCub::iDyn::iDynSensorTorsoNode::up

central-up limb

Definition at line 1083 of file iDynBody.h.

◆ up_name

std::string iCub::iDyn::iDynSensorTorsoNode::up_name

name of central-up limb

Definition at line 1062 of file iDynBody.h.


The documentation for this class was generated from the following files: