iCub-main
|
A class for setting a virtual sensor link. More...
#include <iDynInv.h>
Public Member Functions | |
SensorLinkNewtonEuler (const NewEulMode _mode, unsigned int verb=iCub::skinDynLib::NO_VERBOSE) | |
Default constructor. More... | |
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. More... | |
virtual | ~SensorLinkNewtonEuler () |
Destructor. More... | |
bool | setMeasuredFMu (const yarp::sig::Vector &_F, const yarp::sig::Vector &_Mu) |
Set the sensor measured force/moment - if measured by a FT sensor. More... | |
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. More... | |
void | ForwardAttachToLink (iDynLink *link) |
Compute w,dw,ddp,dppC given the reference frame of the link where the sensor is. More... | |
void | BackwardAttachToLink (iDynLink *link) |
Compute F,Mu given the reference frame of the link where the sensor is. More... | |
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. More... | |
yarp::sig::Vector | getForceMoment () const |
Get the sensor force and moment in a single (6x1) vector. More... | |
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. More... | |
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. More... | |
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) More... | |
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) More... | |
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) More... | |
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) More... | |
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) More... | |
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) More... | |
std::string | toString () const |
Useful to print some information. More... | |
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) |
virtual std::string | getType () const |
Public Member Functions inherited from iCub::iDyn::OneLinkNewtonEuler | |
OneLinkNewtonEuler (iDyn::iDynLink *dlink=NULL) | |
Default constructor. More... | |
OneLinkNewtonEuler (const NewEulMode _mode, unsigned int verb=iCub::skinDynLib::NO_VERBOSE, iDyn::iDynLink *dlink=NULL) | |
Constructor, with initialization of some data. More... | |
virtual | ~OneLinkNewtonEuler () |
Destructor. More... | |
void | zero () |
Set everything to zero; R is set to an identity matrix. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual bool | setMeasuredTorque (const double _Tau) |
Set measured torque in a joint torque sensor frame More... | |
void | setVerbose (unsigned int verb=iCub::skinDynLib::VERBOSE) |
Set the verbosity level of comments during operations. More... | |
void | setMode (const NewEulMode _mode) |
Set the operation mode (static,dynamic etc) More... | |
bool | setZM (const yarp::sig::Vector &_zm) |
Set the zM vector. More... | |
void | setInfo (const std::string &_info) |
Set some information about this OneLink class. More... | |
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 More... | |
void | BackwardKinematics (OneLinkNewtonEuler *prev) |
[Backward Kinematic computation] Compute w, dw, ddp, ddpC, dwM More... | |
void | BackwardWrench (OneLinkNewtonEuler *next) |
[Backward Newton-Euler] Compute F, Mu, Tau More... | |
void | ForwardWrench (OneLinkNewtonEuler *prev) |
[Inverse Newton-Euler] Compute F, Mu, Tau More... | |
virtual void | computeTorque (OneLinkNewtonEuler *prev) |
[all] Compute joint torque; moment must be pre-computed More... | |
Protected Attributes | |
yarp::sig::Vector | F |
measured or estimated force More... | |
yarp::sig::Vector | Mu |
measured or estimated moment More... | |
yarp::sig::Vector | w |
angular velocity More... | |
yarp::sig::Vector | dw |
angular acceleration More... | |
yarp::sig::Vector | ddp |
linear acceleration More... | |
yarp::sig::Vector | ddpC |
linear acceleration of the COM More... | |
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 More... | |
yarp::sig::Matrix | COM |
the roto-translational matrix of the COM of the semi-link (bewteen sensor and ith link frame) More... | |
yarp::sig::Matrix | I |
the semi-link inertia More... | |
double | m |
the semi-link mass (the portion of link defined by the sensor) More... | |
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. More... | |
std::string | info |
info or useful notes More... | |
unsigned int | verbose |
verbosity flag More... | |
yarp::sig::Vector | z0 |
z0=[0 0 1]' More... | |
yarp::sig::Vector | zm |
z^{i-1}_{m_{i}} versor rotating solidally with link i, projected in frame i ==>> constant More... | |
iDyn::iDynLink * | link |
the corresponding iDynLink More... | |
Additional Inherited Members | |
Protected Member Functions inherited from iCub::iDyn::OneLinkNewtonEuler | |
void | computeAngVel (OneLinkNewtonEuler *prev) |
[Forward Newton-Euler] compute angular velocity of the link More... | |
void | computeAngVelBackward (OneLinkNewtonEuler *prev) |
[Forward Newton-Euler] compute angular velocity of the previous link frame More... | |
void | computeAngAcc (OneLinkNewtonEuler *prev) |
[Forward Newton-Euler] compute angular acceleration of the link More... | |
void | computeAngAccBackward (OneLinkNewtonEuler *prev) |
[Forward Newton-Euler] compute angular acceleration of the previous link frame More... | |
void | computeLinAcc (OneLinkNewtonEuler *prev) |
[Forward Newton-Euler] compute linear acceleration of the reference frame of the link More... | |
void | computeLinAccBackward (OneLinkNewtonEuler *prev) |
[Forward Newton-Euler] compute linear acceleration of the reference frame of the previous link More... | |
void | computeLinAccC () |
[Forward Newton-Euler] compute linear acceleration of the center of mass More... | |
void | computeAngAccM (OneLinkNewtonEuler *prev) |
[Forward Newton-Euler] compute angular acceleration of the rotor More... | |
void | computeForceBackward (OneLinkNewtonEuler *next) |
[Backward Newton-Euler] compute force from the following link More... | |
void | computeForceForward (OneLinkNewtonEuler *prev) |
[Inverse Newton-Euler] compute force from the previous link More... | |
void | computeMomentBackward (OneLinkNewtonEuler *next) |
[Backward Newton-Euler] compute moment from the following link More... | |
void | computeMomentForward (OneLinkNewtonEuler *prev) |
[Inverse Newton-Euler] compute moment from the previous link More... | |
A class for setting a virtual sensor link.
This class is used to initialize the forward and backward phase of Newton-Euler's method in the Inverse formulation, but also to have estimation of the FT measures by the sensor; the sensor frame is defined with respect to the i-th link, where the sensor is attached. Note that this is a virtual link, since there's no iDynLink attached: it is just necessary to make the recursive Inverse Newton-Euler computations; however, inertia, mass and COM are defined, for the portion of link defined between sensor and i-th frame.
SensorLinkNewtonEuler::SensorLinkNewtonEuler | ( | const NewEulMode | _mode, |
unsigned int | verb = iCub::skinDynLib::NO_VERBOSE |
||
) |
Default constructor.
_mode | the analysis mode (static/dynamic) |
verb | flag for verbosity |
Definition at line 1229 of file iDynInv.cpp.
iCub::iDyn::SensorLinkNewtonEuler::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.
_mode | the analysis mode (static/dynamic) |
verb | flag for verbosity |
|
inlinevirtual |
void SensorLinkNewtonEuler::BackwardAttachToLink | ( | iDynLink * | link | ) |
Compute F,Mu given the reference frame of the link where the sensor is.
link | the iDynLink class of the same link |
Definition at line 1334 of file iDynInv.cpp.
void SensorLinkNewtonEuler::computeAngAcc | ( | iDynLink * | link | ) |
Definition at line 1512 of file iDynInv.cpp.
void SensorLinkNewtonEuler::computeAngVel | ( | iDynLink * | link | ) |
Definition at line 1507 of file iDynInv.cpp.
void SensorLinkNewtonEuler::computeForce | ( | iDynLink * | link | ) |
Definition at line 1555 of file iDynInv.cpp.
void SensorLinkNewtonEuler::computeForceToLink | ( | iDynLink * | link | ) |
Definition at line 1562 of file iDynInv.cpp.
void SensorLinkNewtonEuler::computeLinAcc | ( | iDynLink * | link | ) |
Definition at line 1517 of file iDynInv.cpp.
void SensorLinkNewtonEuler::computeLinAccC | ( | ) |
Definition at line 1537 of file iDynInv.cpp.
void SensorLinkNewtonEuler::computeMoment | ( | iDynLink * | link | ) |
Definition at line 1612 of file iDynInv.cpp.
void SensorLinkNewtonEuler::computeMomentToLink | ( | iDynLink * | link | ) |
Definition at line 1570 of file iDynInv.cpp.
void SensorLinkNewtonEuler::ForwardAttachToLink | ( | iDynLink * | link | ) |
Compute w,dw,ddp,dppC given the reference frame of the link where the sensor is.
link | the iDynLink class of the same link |
Definition at line 1326 of file iDynInv.cpp.
void SensorLinkNewtonEuler::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.
link | the iDynLink class of the same link |
Definition at line 1340 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1358 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1392 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1356 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1389 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1390 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1352 of file iDynInv.cpp.
Vector SensorLinkNewtonEuler::getForceMoment | ( | ) | const |
Get the sensor force and moment in a single (6x1) vector.
Definition at line 1650 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1387 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1388 of file iDynInv.cpp.
const Matrix & SensorLinkNewtonEuler::getH | ( | ) | const |
Definition at line 1394 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1386 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1366 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1391 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1360 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1362 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1364 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1354 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1368 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1372 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1370 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1379 of file iDynInv.cpp.
|
virtual |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1393 of file iDynInv.cpp.
|
virtual |
Reimplemented in iCub::iDyn::iCubLegSensorLink, and iCub::iDyn::iCubArmSensorLink.
Definition at line 1658 of file iDynInv.cpp.
|
virtual |
Set the OneLink angular acceleration (dw), ie the corresponding iDynLink angular acceleration (dw) (in the child classes derived from OneLink, it depends)
_dw | angular acceleration |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1446 of file iDynInv.cpp.
|
virtual |
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)
_dwM | angular acceleration of the motor |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1494 of file iDynInv.cpp.
|
virtual |
Set the OneLink angular velocity (w), ie the corresponding iDynLink angular velocity (w) (in the child classes derived from OneLink, it depends)
_w | angular velocity |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1430 of file iDynInv.cpp.
|
virtual |
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.
_F | a (3x1) vector of forces |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1396 of file iDynInv.cpp.
|
virtual |
Set the OneLink linear acceleration (ddp), ie the corresponding iDynLink linear acceleration (ddp) (in the child classes derived from OneLink, it depends)
_ddp | linear acceleration |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1462 of file iDynInv.cpp.
|
virtual |
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)
_ddpC | linear acceleration of the COM |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1478 of file iDynInv.cpp.
|
virtual |
Set the sensor measured force/moment - if measured by a FT sensor.
_F | the final force |
_Mu | the final moment |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1260 of file iDynInv.cpp.
|
virtual |
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.
_Mu | a 3x1 vector of moments |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1412 of file iDynInv.cpp.
bool SensorLinkNewtonEuler::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.
_H | the roto-traslational matrix from the reference frame of the i-th link to the sensor |
_HC | the roto-traslational matrix of the center of mass of the semi-link defined by the sensor in the i-th link |
_m | the mass of the semi-link |
_I | the inertia of the semi-link |
Definition at line 1280 of file iDynInv.cpp.
|
virtual |
Set the OneLink torque, ie the corresponding iDynLink joint torque (nothing in the child classes derived from OneLink, such as SensorLink)
_Tau | a real torque value |
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1428 of file iDynInv.cpp.
|
virtual |
Useful to print some information.
Reimplemented from iCub::iDyn::OneLinkNewtonEuler.
Definition at line 1310 of file iDynInv.cpp.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |