|
iCub-main
|
A class for setting a virtual sensor link. More...
#include <iDynInv.h>
Inheritance diagram for iCub::iDyn::SensorLinkNewtonEuler:Public Member Functions | |
| 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) |
| virtual std::string | getType () const |
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 | |
| 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 | |
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::iCubArmSensorLink, and iCub::iDyn::iCubLegSensorLink.
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 |