iCub-main
Loading...
Searching...
No Matches
iCub::iDyn::iCubLegSensorLink Class Reference

A class for setting a virtual sensor link on the iCub leg, for the leg FT sensor. More...

#include <iDynInv.h>

Inheritance diagram for iCub::iDyn::iCubLegSensorLink:

Public Member Functions

 iCubLegSensorLink (const std::string _type, const NewEulMode _mode=DYNAMIC, unsigned int verb=iCub::skinDynLib::NO_VERBOSE)
 Constructor: the sensor parameters are automatically set with "right" or "left" choice.
virtual ~iCubLegSensorLink ()
 Destructor.
std::string getType () const
Public Member Functions inherited from iCub::iDyn::SensorLinkNewtonEuler
 SensorLinkNewtonEuler (const NewEulMode _mode, unsigned int verb=iCub::skinDynLib::NO_VERBOSE)
 Default constructor.
 SensorLinkNewtonEuler (const yarp::sig::Matrix &_H, const yarp::sig::Matrix &_COM, const double _m, const yarp::sig::Matrix &_I, const NewEulMode _mode, unsigned int verb=iCub::skinDynLib::NO_VERBOSE)
 Constructor.
virtual ~SensorLinkNewtonEuler ()
 Destructor.
bool setMeasuredFMu (const yarp::sig::Vector &_F, const yarp::sig::Vector &_Mu)
 Set the sensor measured force/moment - if measured by a FT sensor.
bool setSensor (const yarp::sig::Matrix &_H, const yarp::sig::Matrix &_HC, const double _m, const yarp::sig::Matrix &_I)
 Set a new sensor or new sensor properties.
void ForwardAttachToLink (iDynLink *link)
 Compute w,dw,ddp,dppC given the reference frame of the link where the sensor is.
void BackwardAttachToLink (iDynLink *link)
 Compute F,Mu given the reference frame of the link where the sensor is.
void ForwardForcesMomentsToLink (iDynLink *link)
 Forward the sensor forces and moments, measured by the sensor, to the reference frame of the link where the sensor is: this method is the base for the inverse Newton-Euler algorithm, since it forwards the sensor measurements to the iDynChain.
yarp::sig::Vector getForceMoment () const
 Get the sensor force and moment in a single (6x1) vector.
const yarp::sig::Vector & getAngVel () const
const yarp::sig::Vector & getAngAcc () const
const yarp::sig::Vector & getLinAcc () const
const yarp::sig::Vector & getLinAccC () const
const yarp::sig::Vector & getForce () const
const yarp::sig::Vector & getMoment (bool isBase=false) const
double getIm () const
double getFs () const
double getFv () const
double getD2q () const
double getDq () const
double getKr () const
const yarp::sig::Vector & getAngAccM () const
double getTorque () const
const yarp::sig::Matrix & getH () const
double getMass () const
const yarp::sig::Matrix & getInertia () const
const yarp::sig::Matrix & getR ()
const yarp::sig::Matrix & getRC ()
const yarp::sig::Vector & getr (bool proj=false)
const yarp::sig::Vector & getrC (bool proj=false)
bool setForce (const yarp::sig::Vector &_F)
 Set the OneLink force: either the corresponding iDynLink force, or the one declared as member in the child classes derived from OneLink, such as SensorLink.
bool setMoment (const yarp::sig::Vector &_Mu)
 Set the OneLink moment: either the corresponding iDynLink moment, or the one declared as member in the child classes derived from OneLink, such as SensorLink.
void setTorque (const double _Tau)
 Set the OneLink torque, ie the corresponding iDynLink joint torque (nothing in the child classes derived from OneLink, such as SensorLink).
bool setAngVel (const yarp::sig::Vector &_w)
 Set the OneLink angular velocity (w), ie the corresponding iDynLink angular velocity (w) (in the child classes derived from OneLink, it depends).
bool setAngAcc (const yarp::sig::Vector &_dw)
 Set the OneLink angular acceleration (dw), ie the corresponding iDynLink angular acceleration (dw) (in the child classes derived from OneLink, it depends).
bool setLinAcc (const yarp::sig::Vector &_ddp)
 Set the OneLink linear acceleration (ddp), ie the corresponding iDynLink linear acceleration (ddp) (in the child classes derived from OneLink, it depends).
bool setLinAccC (const yarp::sig::Vector &_ddpC)
 Set the OneLink linear acceleration of the COM (ddpC), ie the corresponding iDynLink linear acceleration of the COM (ddpC) (nothing in the child classes derived from OneLink, except for SensorLink).
bool setAngAccM (const yarp::sig::Vector &_dwM)
 Set the OneLink angular acceleration of the motor (dwM), ie the corresponding iDynLink angular acceleration of the COM (dwM) (nothing in the child classes derived from OneLink).
std::string toString () const
 Useful to print some information.
void computeAngVel (iDynLink *link)
void computeAngAcc (iDynLink *link)
void computeLinAcc (iDynLink *link)
void computeLinAccC ()
void computeForce (iDynLink *link)
void computeMoment (iDynLink *link)
void computeForceToLink (iDynLink *link)
void computeMomentToLink (iDynLink *link)
Public Member Functions inherited from iCub::iDyn::OneLinkNewtonEuler
 OneLinkNewtonEuler (iDyn::iDynLink *dlink=NULL)
 Default constructor.
 OneLinkNewtonEuler (const NewEulMode _mode, unsigned int verb=iCub::skinDynLib::NO_VERBOSE, iDyn::iDynLink *dlink=NULL)
 Constructor, with initialization of some data.
virtual ~OneLinkNewtonEuler ()
 Destructor.
void zero ()
 Set everything to zero; R is set to an identity matrix.
virtual bool setAsBase (const yarp::sig::Vector &_w, const yarp::sig::Vector &_dw, const yarp::sig::Vector &_ddp)
 Virtual method to set the frame as the base one: this is useful to initialize the forward phase of Newton-Euler's method.
virtual bool setAsBase (const yarp::sig::Vector &_F, const yarp::sig::Vector &_Mu)
virtual bool setAsFinal (const yarp::sig::Vector &_F, const yarp::sig::Vector &_Mu)
 Set the frame as the final one: this is useful to initialize the backward phase of Newton-Euler's method, by setting F and Mu; R is an identity matrix.
virtual bool setAsFinal (const yarp::sig::Vector &_w, const yarp::sig::Vector &_dw, const yarp::sig::Vector &_ddp)
 Set the frame as the final one: this is useful to initialize the backward phase of Euler's method, by setting w, dw and ddp; R is an identity matrix.
virtual bool setMeasuredTorque (const double _Tau)
 Set measured torque in a joint torque sensor frame.
void setVerbose (unsigned int verb=iCub::skinDynLib::VERBOSE)
 Set the verbosity level of comments during operations.
void setMode (const NewEulMode _mode)
 Set the operation mode (static,dynamic etc).
bool setZM (const yarp::sig::Vector &_zm)
 Set the zM vector.
void setInfo (const std::string &_info)
 Set some information about this OneLink class.
NewEulMode getMode () const
yarp::sig::Vector getZM () const
std::string getInfo () const
virtual const yarp::sig::Matrix & getH ()
void ForwardKinematics (OneLinkNewtonEuler *prev)
 [Forward Newton-Euler] Compute w, dw, ddp, ddpC, dwM
void BackwardKinematics (OneLinkNewtonEuler *prev)
 [Backward Kinematic computation] Compute w, dw, ddp, ddpC, dwM
void BackwardWrench (OneLinkNewtonEuler *next)
 [Backward Newton-Euler] Compute F, Mu, Tau
void ForwardWrench (OneLinkNewtonEuler *prev)
 [Inverse Newton-Euler] Compute F, Mu, Tau
virtual void computeTorque (OneLinkNewtonEuler *prev)
 [all] Compute joint torque; moment must be pre-computed

Protected Attributes

std::string type
 the leg type: left/right
Protected Attributes inherited from iCub::iDyn::SensorLinkNewtonEuler
yarp::sig::Vector F
 measured or estimated force
yarp::sig::Vector Mu
 measured or estimated moment
yarp::sig::Vector w
 angular velocity
yarp::sig::Vector dw
 angular acceleration
yarp::sig::Vector ddp
 linear acceleration
yarp::sig::Vector ddpC
 linear acceleration of the COM
yarp::sig::Matrix H
 the roto-translational matrix from the i-th link to the sensor: it's the matrix describing the sensor position and orientation with respect to the frame of the link where the sensor is placed on
yarp::sig::Matrix COM
 the roto-translational matrix of the COM of the semi-link (bewteen sensor and ith link frame)
yarp::sig::Matrix I
 the semi-link inertia
double m
 the semi-link mass (the portion of link defined by the sensor)
yarp::sig::Matrix R
yarp::sig::Matrix RC
yarp::sig::Vector r
yarp::sig::Vector r_proj
yarp::sig::Vector rc
yarp::sig::Vector rc_proj
const yarp::sig::Vector zeros0
Protected Attributes inherited from iCub::iDyn::OneLinkNewtonEuler
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 z0
 z0=[0 0 1]'
yarp::sig::Vector zm
 z^{i-1}_{m_{i}} versor rotating solidally with link i, projected in frame i ==>> constant
iDyn::iDynLink * link
 the corresponding iDynLink

Additional Inherited Members

Protected Member Functions inherited from iCub::iDyn::OneLinkNewtonEuler
void computeAngVel (OneLinkNewtonEuler *prev)
 [Forward Newton-Euler] compute angular velocity of the link
void computeAngVelBackward (OneLinkNewtonEuler *prev)
 [Forward Newton-Euler] compute angular velocity of the previous link frame
void computeAngAcc (OneLinkNewtonEuler *prev)
 [Forward Newton-Euler] compute angular acceleration of the link
void computeAngAccBackward (OneLinkNewtonEuler *prev)
 [Forward Newton-Euler] compute angular acceleration of the previous link frame
void computeLinAcc (OneLinkNewtonEuler *prev)
 [Forward Newton-Euler] compute linear acceleration of the reference frame of the link
void computeLinAccBackward (OneLinkNewtonEuler *prev)
 [Forward Newton-Euler] compute linear acceleration of the reference frame of the previous link
void computeLinAccC ()
 [Forward Newton-Euler] compute linear acceleration of the center of mass
void computeAngAccM (OneLinkNewtonEuler *prev)
 [Forward Newton-Euler] compute angular acceleration of the rotor
void computeForceBackward (OneLinkNewtonEuler *next)
 [Backward Newton-Euler] compute force from the following link
void computeForceForward (OneLinkNewtonEuler *prev)
 [Inverse Newton-Euler] compute force from the previous link
void computeMomentBackward (OneLinkNewtonEuler *next)
 [Backward Newton-Euler] compute moment from the following link
void computeMomentForward (OneLinkNewtonEuler *prev)
 [Inverse Newton-Euler] compute moment from the previous link

Detailed Description

A class for setting a virtual sensor link on the iCub leg, for the leg FT sensor.

The parameters are automatically set after choosing "left" or "right" part. By default, the CAD parameters are set.

Definition at line 1410 of file iDynInv.h.

Constructor & Destructor Documentation

◆ iCubLegSensorLink()

iCubLegSensorLink::iCubLegSensorLink ( const std::string _type,
const NewEulMode _mode = DYNAMIC,
unsigned int verb = iCub::skinDynLib::NO_VERBOSE )

Constructor: the sensor parameters are automatically set with "right" or "left" choice.

Parameters
_typea string "left"/"right"
_modethe analysis mode (STATIC/DYNAMIC)
verbflag for verbosity

Definition at line 2460 of file iDynInv.cpp.

◆ ~iCubLegSensorLink()

virtual iCub::iDyn::iCubLegSensorLink::~iCubLegSensorLink ( )
inlinevirtual

Destructor.

Definition at line 1430 of file iDynInv.h.

Member Function Documentation

◆ getType()

string iCubLegSensorLink::getType ( ) const
virtual
Returns
type the leg type: left/right

Reimplemented from iCub::iDyn::SensorLinkNewtonEuler.

Definition at line 2498 of file iDynInv.cpp.

Member Data Documentation

◆ type

std::string iCub::iDyn::iCubLegSensorLink::type
protected

the leg type: left/right

Definition at line 1415 of file iDynInv.h.


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