64#include <yarp/os/Property.h>
65#include <yarp/dev/ControlBoardInterfaces.h>
66#include <yarp/sig/Vector.h>
67#include <yarp/sig/Matrix.h>
84 void notImplemented(
const unsigned int verbose,
const std::string &msg);
85 void workInProgress(
const unsigned int verbose,
const std::string &msg);
86 bool asWrench(yarp::sig::Vector &w,
const yarp::sig::Vector &
f,
const yarp::sig::Vector &m);
87 yarp::sig::Vector
asWrench(
const yarp::sig::Vector &
f,
const yarp::sig::Vector &m);
88 bool asForceMoment(
const yarp::sig::Vector &w, yarp::sig::Vector &
f, yarp::sig::Vector &m);
94 class ContactNewtonEuler;
97 class OneChainSensorNewtonEuler;
134 yarp::sig::Matrix
HC;
136 yarp::sig::Matrix
RC;
148 yarp::sig::Vector
dw;
153 yarp::sig::Vector
dp;
164 yarp::sig::Vector
Mu;
208 bool setDynamicParameters(
const double _m,
const yarp::sig::Matrix &_HC,
const yarp::sig::Matrix &_I,
const double _kr,
const double _Fv,
const double _Fs,
const double _Im);
217 bool setDynamicParameters(
const double _m,
const yarp::sig::Matrix &_HC,
const yarp::sig::Matrix &_I);
243 void setInertia(
const double Ixx,
const double Ixy,
const double Ixz,
const double Iyy,
const double Iyz,
const double Izz);
256 double setAng(
const double _teta);
263 double setDAng(
const double _dteta);
270 double setD2Ang(
const double _ddteta);
276 const yarp::sig::Vector&
getLinVel()
const;
290 void setAngPosVelAcc(
const double _teta,
const double _dteta,
const double _ddteta);
297 bool setCOM(
const yarp::sig::Matrix &_HC);
303 bool setCOM(
const yarp::sig::Vector &_rC);
311 void setCOM(
const double _rCx,
const double _rCy,
const double _rCz);
318 bool setForce(
const yarp::sig::Vector &_F);
325 bool setMoment(
const yarp::sig::Vector &_Mu);
333 bool setForceMoment(
const yarp::sig::Vector &_F,
const yarp::sig::Vector &_Mu);
356 double getIm()
const;
357 double getKr()
const;
358 double getFs()
const;
359 double getFv()
const;
364 const yarp::sig::Matrix&
getCOM()
const;
379 const yarp::sig::Vector&
getW()
const;
384 const yarp::sig::Vector&
getdW()
const;
389 const yarp::sig::Vector&
getdWM()
const;
394 const yarp::sig::Vector&
getLinAcc()
const;
404 const yarp::sig::Vector&
getForce()
const;
409 const yarp::sig::Vector&
getMoment()
const;
419 const yarp::sig::Matrix&
getH();
424 const yarp::sig::Matrix&
getR();
429 const yarp::sig::Matrix&
getRC()
const;
436 const yarp::sig::Vector&
getr(
bool proj=
false);
442 const yarp::sig::Vector&
getrC(
bool proj=
false)
const;
506 iDynLink(
const double _m,
const double _rCx,
const double _rCy,
const double _rCz,
const double Ixx,
const double Ixy,
const double Ixz,
const double Iyy,
const double Iyz,
const double Izz,
double _A,
double _D,
double _Alpha,
double _Offset,
double _Min=-
iCub::ctrl::CTRL_PI,
double _Max=
iCub::ctrl::CTRL_PI);
566 virtual void build();
607 yarp::sig::Vector
setAng(
const yarp::sig::Vector &q);
614 yarp::sig::Vector
setDAng(
const yarp::sig::Vector &dq);
621 yarp::sig::Vector
setD2Ang(
const yarp::sig::Vector &ddq);
654 double setAng(
const unsigned int i,
double q);
662 double setDAng(
const unsigned int i,
double dq);
670 double setD2Ang(
const unsigned int i,
double ddq);
677 double getDAng(
const unsigned int i);
684 double getD2Ang(
const unsigned int i);
702 double getMass(
const unsigned int i)
const;
708 bool setMass(
const unsigned int i,
const double _m);
714 yarp::sig::Matrix
getInertia(
const unsigned int i)
const;
738 const yarp::sig::Vector&
getForce(
const unsigned int iLink)
const;
744 const yarp::sig::Vector&
getMoment(
const unsigned int iLink)
const;
750 double getTorque(
const unsigned int iLink)
const;
756 yarp::sig::Vector
getLinVel(
const unsigned int i)
const;
762 yarp::sig::Vector
getLinVelCOM(
const unsigned int i)
const;
768 yarp::sig::Vector
getLinAcc(
const unsigned int i)
const;
774 const yarp::sig::Vector&
getLinAccCOM(
const unsigned int i)
const;
780 yarp::sig::Vector
getAngVel(
const unsigned int i)
const;
786 yarp::sig::Vector
getAngAcc (
const unsigned int i)
const;
799 bool setDynamicParameters(
const unsigned int i,
const double _m,
const yarp::sig::Matrix &_HC,
const yarp::sig::Matrix &_I,
const double _kr,
const double _Fv,
const double _Fs,
const double _Im);
808 bool setDynamicParameters(
const unsigned int i,
const double _m,
const yarp::sig::Matrix &_HC,
const yarp::sig::Matrix &_I);
816 bool setStaticParameters(
const unsigned int i,
const double _m,
const yarp::sig::Matrix &_HC);
830 bool computeNewtonEuler(
const yarp::sig::Vector &w0,
const yarp::sig::Vector &dw0,
const yarp::sig::Vector &ddp0,
const yarp::sig::Vector &Fend,
const yarp::sig::Vector &Muend);
844 bool initNewtonEuler(
const yarp::sig::Vector &w0,
const yarp::sig::Vector &dw0,
const yarp::sig::Vector &ddp0,
const yarp::sig::Vector &Fend,
const yarp::sig::Vector &Muend);
943 bool initKinematicNewtonEuler(
const yarp::sig::Vector &w0,
const yarp::sig::Vector &dw0,
const yarp::sig::Vector &ddp0);
974 void getFrameKinematic(
unsigned int i, yarp::sig::Vector &w, yarp::sig::Vector &dw, yarp::sig::Vector &ddp);
983 void getFrameWrench(
unsigned int i, yarp::sig::Vector &
F, yarp::sig::Vector &Mu);
1018 yarp::sig::Matrix
computeGeoJacobian(
const unsigned int iLinkN,
const yarp::sig::Matrix &Pn,
const yarp::sig::Matrix &_H0 );
1043 yarp::sig::Matrix
getDenHart(
unsigned int i);
1081 yarp::sig::Matrix
getCOM(
unsigned int iLink);
1087 yarp::sig::Matrix
getHCOM(
unsigned int iLink);
1154 yarp::sig::Vector
computeCcGravityTorques(
const yarp::sig::Vector& ddp0,
const yarp::sig::Vector& q,
const yarp::sig::Vector& dq);
1183 virtual void allocate(
const std::string &_type);
1212 iDynLimb(
const std::string &_type);
1330 virtual void allocate(
const std::string &_type);
1357 virtual bool alignJointsBounds(
const std::deque<yarp::dev::IControlLimits*> &lim);
1371 virtual void allocate(
const std::string &_type);
1399 virtual bool alignJointsBounds(
const std::deque<yarp::dev::IControlLimits*> &lim);
1412 virtual void allocate(
const std::string &_type);
1440 virtual bool alignJointsBounds(
const std::deque<yarp::dev::IControlLimits*> &lim);
1454 virtual void allocate(
const std::string &_type);
1482 virtual bool alignJointsBounds(
const std::deque<yarp::dev::IControlLimits*> &lim);
1494 virtual void allocate(
const std::string &_type);
1522 virtual bool alignJointsBounds(
const std::deque<yarp::dev::IControlLimits*> &lim);
1535 virtual void allocate(
const std::string &_type);
1556 virtual bool alignJointsBounds(
const std::deque<yarp::dev::IControlLimits*> &lim);
1568 virtual void allocate(
const std::string &_type);
1589 virtual bool alignJointsBounds(
const std::deque<yarp::dev::IControlLimits*> &lim);
A class for setting a virtual base link: this is useful to initialize the forward phase of Newton-Eul...
A class for setting a virtual final link: this is useful to initialize the backward phase of Newton-E...
A class for computing forces and torques in a iDynChain.
A base class for computing forces and torques in a serial link chain.
A class for setting a rigid body transformation between iDynLimb and iDynNode.
A class for setting a virtual sensor link.
A class for defining the 7-DOF iCub Arm in the iDyn framework.
iCubArmDyn()
Default constructor.
virtual bool alignJointsBounds(const std::deque< yarp::dev::IControlLimits * > &lim)
Alignes the Arm joints bounds with current values set aboard the iCub.
virtual void allocate(const std::string &_type)
A class for defining the 7-DOF iCub Arm in the iDyn framework.
iCubArmNoTorsoDyn()
Default constructor.
virtual bool alignJointsBounds(const std::deque< yarp::dev::IControlLimits * > &lim)
Alignes the Arm joints bounds with current values set aboard the iCub.
virtual void allocate(const std::string &_type)
A class for defining the 6-DOF iCub Leg.
virtual void allocate(const std::string &_type)
commented by Traversaro, 2 sept 2013 void iCubLegDynV2::allocate(const string &_type) { iDynLimb::all...
iCubLegDynV2()
Default constructor.
virtual bool alignJointsBounds(const std::deque< yarp::dev::IControlLimits * > &lim)
Alignes the Leg joints bounds with current values set aboard the iCub.
A class for defining the 6-DOF iCub Leg.
iCubLegDyn()
Default constructor.
virtual void allocate(const std::string &_type)
virtual bool alignJointsBounds(const std::deque< yarp::dev::IControlLimits * > &lim)
Alignes the Leg joints bounds with current values set aboard the iCub.
A class for defining the 3-DOF Inertia Sensor Kinematics (V2 HEAD)
virtual void allocate(const std::string &_type)
virtual bool alignJointsBounds(const std::deque< yarp::dev::IControlLimits * > &lim)
Alignes the Inertial Sensor joints bounds with current values set aboard the iCub.
A class for defining the 3-DOF Inertia Sensor Kinematics.
virtual void allocate(const std::string &_type)
virtual bool alignJointsBounds(const std::deque< yarp::dev::IControlLimits * > &lim)
Alignes the Inertial Sensor joints bounds with current values set aboard the iCub.
A class for defining the 3-DOF iCub Torso in the iDyn framework.
virtual void allocate(const std::string &_type)
virtual bool alignJointsBounds(const std::deque< yarp::dev::IControlLimits * > &lim)
Alignes the Torso joints bounds with current values set aboard the iCub.
iCubTorsoDyn()
Default constructor.
A class for connecting UpperTorso and LowerTorso of the iCub, then getting the WholeBody in the dynam...
A Base class for defining a Serial Link Chain, using dynamics and kinematics.
yarp::sig::Matrix computeGeoJacobian(const unsigned int iLinkN, const yarp::sig::Matrix &Pn)
Compute the Jacobian from link 0 to iLinkN.
yarp::sig::Matrix getDenHart(unsigned int i)
Return the Denavit-Hartenberg matrix of the i-th link in the chain.
yarp::sig::Vector getAngAcc(const unsigned int i) const
Returns the i-th link angular acceleration.
const yarp::sig::Vector & getLinAccCOM(const unsigned int i) const
Returns the i-th link linear acceleration of the COM.
yarp::sig::Vector getForceMomentEndEff() const
Returns the end effector force-moment as a single (6x1) vector.
bool setMasses(yarp::sig::Vector _m)
Set the link masses at once.
const yarp::sig::Vector zero0
yarp::sig::Vector computeGravityTorques(const yarp::sig::Vector &ddp0, const yarp::sig::Vector &q)
Compute the torques generated by gravity considering only the active joints.
yarp::sig::Vector getLinVelCOM(const unsigned int i) const
Returns the i-th link linear velocity of the COM.
yarp::sig::Matrix TESTING_computeCOMJacobian(const unsigned int iLink)
Compute the Jacobian of the COM of link indexed iLink.
bool setStaticParameters(const unsigned int i, const double _m, const yarp::sig::Matrix &_HC)
Set the dynamic parameters of the i-th Link if the chain is in a static situation (inertia is null).
void setIterMode(const ChainComputationMode mode=KINFWD_WREBWD)
Set the computation mode during recursive computation of kinematics (w,dw,d2p,d2pC) and wrench variab...
void computeKinematicNewtonEuler()
Calls the proper method to compute kinematics variables: either ForwardKinematicFromBase() or Backwar...
bool setMass(const unsigned int i, const double _m)
Set the i-th link mass.
yarp::sig::Vector computeCcGravityTorques(const yarp::sig::Vector &ddp0, const yarp::sig::Vector &q, const yarp::sig::Vector &dq)
Compute the torques generated by gravity and centrifugal and coriolis forces, considering only the ac...
bool initKinematicNewtonEuler(const yarp::sig::Vector &w0, const yarp::sig::Vector &dw0, const yarp::sig::Vector &ddp0)
Calls the proper method to set kinematics variables in OneChainNewtonEuler: either initKinematicBase(...
const yarp::sig::Vector & getForce(const unsigned int iLink) const
Returns the i-th link force.
yarp::sig::Vector getMasses() const
Returns the link masses as a vector.
void setIterModeKinematic(const ChainIterationMode _iterateMode_kinematics=FORWARD)
Set the iteration direction during recursive computation of kinematics variables (w,...
yarp::sig::Matrix TESTING_computeCOMJacobian(const unsigned int iLink, const yarp::sig::Matrix &Pn, const yarp::sig::Matrix &_H0)
Compute the Jacobian of the COM of link iLink (considering chain 0-iLink).
yarp::sig::Matrix getForces() const
Returns the links forces as a matrix, where the i-th col is the i-th force.
yarp::sig::Vector computeCcTorques(const yarp::sig::Vector &q, const yarp::sig::Vector &dq)
Compute the torques due to centrifugal and coriolis effects considering only the active joints.
void getFrameKinematic(unsigned int i, yarp::sig::Vector &w, yarp::sig::Vector &dw, yarp::sig::Vector &ddp)
Get the kinematic information of the i-th frame in the OneChainNewtonEuler associated to the current ...
void computeWrenchNewtonEuler()
Calls the proper method to compute wrench variables: either BackwardWrenchFromEnd() or ForwardWrenchF...
yarp::sig::Vector computeCcTorques()
Compute the torques due to centrifugal and coriolis effects considering only the active joints.
yarp::sig::Matrix TESTING_computeCOMJacobian(const unsigned int iLink, const yarp::sig::Matrix &Pn)
Compute the Jacobian of the COM of link iLink (considering chain 0-iLink).
yarp::sig::Vector curr_ddq
q acc
bool initNewtonEuler()
Initialize the Newton-Euler method by setting the base (virtual link) velocity and accelerations ( w0...
OneChainNewtonEuler * NE
pointer to OneChainNewtonEuler class, to be used for computing forces and torques
yarp::sig::Vector setD2Ang(const yarp::sig::Vector &ddq)
Sets the free joint angles acceleration to values of ddq[i].
bool initWrenchNewtonEuler(const yarp::sig::Vector &Fend, const yarp::sig::Vector &Muend)
Calls the proper method to set wrench variables in OneChainNewtonEuler: either initKinematicBase() or...
yarp::sig::Vector getJointBoundMin()
Returns a list containing the min value for each joint.
void prepareNewtonEuler(const NewEulMode NewEulMode_s=DYNAMIC)
Prepare for the Newton-Euler recursive computation of forces and torques.
yarp::sig::Matrix getInertia(const unsigned int i) const
Returns the i-th link inertia matrix.
void setIterModeWrench(const ChainIterationMode _iterateMode_wrench=BACKWARD)
Set the iteration direction during recursive computation of wrench variables (F,Mu,...
yarp::sig::Vector getD2Ang()
Returns the current free joint angles acceleration.
virtual void build()
Build chains and lists.
virtual void clone(const iDynChain &c)
Clone function.
yarp::sig::Matrix getMoments() const
Returns the links moments as a matrix, where the i-th col is the i-th moment.
const yarp::sig::Vector & getMoment(const unsigned int iLink) const
Returns the i-th link moment.
bool initNewtonEuler(const yarp::sig::Vector &w0, const yarp::sig::Vector &dw0, const yarp::sig::Vector &ddp0, const yarp::sig::Vector &Fend, const yarp::sig::Vector &Muend)
Initialize the Newton-Euler method by setting the base (virtual link) velocity and accelerations ( w0...
double getMass(const unsigned int i) const
Returns the i-th link mass.
yarp::sig::Vector getDAng()
Returns the current free joint angles velocity.
yarp::sig::Vector getTorques() const
Returns the links torque as a vector.
yarp::sig::Matrix computeGeoJacobian(const unsigned int iLinkN, const yarp::sig::Matrix &Pn, const yarp::sig::Matrix &_H0)
Compute the Jacobian from link 0 to iLinkN.
yarp::sig::Vector getTorquesNewtonEuler() const
Returns the links torque as a vector.
ChainIterationMode getIterModeWrench() const
Get the iteration direction during recursive computation of wrench variables (F,Mu,...
yarp::sig::Vector computeCcGravityTorques(const yarp::sig::Vector &ddp0)
Compute the torques generated by gravity and centrifugal and coriolis forces, considering only the ac...
bool setDynamicParameters(const unsigned int i, const double _m, const yarp::sig::Matrix &_HC, const yarp::sig::Matrix &_I, const double _kr, const double _Fv, const double _Fs, const double _Im)
Set the dynamic parameters of the i-th Link with motor.
yarp::sig::Matrix computeGeoJacobian(const yarp::sig::Matrix &Pn)
Compute the Jacobian of the chain, from link 0 to N.
void setModeNewtonEuler(const NewEulMode NewEulMode_s=DYNAMIC)
Set the computation mode for Newton-Euler (static/dynamic/etc)
yarp::sig::Vector curr_dq
q vel
yarp::sig::Matrix getCOM(unsigned int iLink)
Return the COM matrix of the i-th link.
yarp::sig::Vector computeGravityTorques(const yarp::sig::Vector &ddp0)
Compute the torques generated by gravity considering only the active joints.
bool setDynamicParameters(const unsigned int i, const double _m, const yarp::sig::Matrix &_HC, const yarp::sig::Matrix &_I)
Set the dynamic parameters of the i-th Link.
ChainIterationMode iterateMode_kinematics
specifies the 'direction' of recursive computation of kinematics variables (w,dw,d2p): FORWARD,...
ChainIterationMode getIterModeKinematic() const
Get the iteration direction during recursive computation of kinematics variables (w,...
iDynChain()
Default constructor.
yarp::sig::Vector setAng(const yarp::sig::Vector &q)
Sets the free joint angles to values of q[i].
iDynChain & operator=(const iDynChain &c)
Copies a Chain object into the current one.
yarp::sig::Matrix computeMassMatrix()
Compute the joint space mass matrix considering only the active joints.
yarp::sig::Vector getJointBoundMax()
Returns a list containing the max value for each joint.
double getTorque(const unsigned int iLink) const
Returns the i-th link torque.
yarp::sig::Vector getLinVel(const unsigned int i) const
Returns the i-th link linear velocity.
iDynLink * refLink(const unsigned int i)
Returns a pointer to the ith iDynLink.
yarp::sig::Matrix computeMassMatrix(const yarp::sig::Vector &q)
Compute the joint space mass matrix considering only the active joints.
void getWrenchNewtonEuler(yarp::sig::Vector &F, yarp::sig::Vector &Mu)
Calls the proper method to get wrench variables in OneChainNewtonEuler either in the base or in the f...
ChainIterationMode iterateMode_wrench
specifies the 'direction' of recursive computation of wrenches (F,Mu): FORWARD, BACKWARD
void getFrameWrench(unsigned int i, yarp::sig::Vector &F, yarp::sig::Vector &Mu)
Get the wrench information of the i-th frame in the OneChainNewtonEuler associated to the current iDy...
yarp::sig::Vector setDAng(const yarp::sig::Vector &dq)
Sets the free joint angles velocity to values of dq[i].
yarp::sig::Vector getLinAcc(const unsigned int i) const
Returns the i-th link linear acceleration.
yarp::sig::Vector getAngVel(const unsigned int i) const
Returns the i-th link angular velocity.
yarp::sig::Matrix computeGeoJacobian(const yarp::sig::Matrix &Pn, const yarp::sig::Matrix &_H0)
Compute the Jacobian of the chain, from link 0 to N.
virtual void dispose()
Dispose.
yarp::sig::Matrix getMomentsNewtonEuler() const
Returns the links moments as a matrix, where the (i+1)-th col is the i-th moment.
bool computeNewtonEuler()
Compute forces and torques with the Newton-Euler recursive algorithm: forward and backward phase are ...
virtual ~iDynChain()
Destructor.
void getKinematicNewtonEuler(yarp::sig::Vector &w, yarp::sig::Vector &dw, yarp::sig::Vector &ddp)
Calls the proper method to get kinematics variables in OneChainNewtonEuler either in the base or in t...
bool computeNewtonEuler(const yarp::sig::Vector &w0, const yarp::sig::Vector &dw0, const yarp::sig::Vector &ddp0, const yarp::sig::Vector &Fend, const yarp::sig::Vector &Muend)
Compute forces and torques with the Newton-Euler recursive algorithm: forward and backward phase are ...
yarp::sig::Matrix getForcesNewtonEuler() const
Returns the links forces as a matrix, where the (i+1)-th col is the i-th force.
yarp::sig::Matrix getHCOM(unsigned int iLink)
Return the H matrix until the COM of the i-th link.
A class for computing force/moment of a sensor placed anywhere in a kinematic chain; its position in ...
A class for defining a generic Limb within the iDyn framework.
virtual void clone(const iDynLimb &limb)
virtual void allocate(const std::string &_type)
iDynLimb(const yarp::os::Property &option)
Creates a new Limb from a list of properties wherein links parameters are specified.
virtual bool alignJointsBounds(const std::deque< yarp::dev::IControlLimits * > &lim)
Alignes the Limb joints bounds with current values set aboard the robot - see also iKin.
void pushLink(iKin::iKinLink &l)
bool rmLink(const unsigned int i)
bool isValid()
Checks if the limb has been properly configured.
iDynChain * asChain()
Returns a pointer to the Limb seen as Chain object.
std::string getType()
Returns the Limb type as a string.
iKin::iKinLink & operator[](const unsigned int i)
iKin::iKinLink & operator()(const unsigned int i)
virtual ~iDynLimb()
Destructor.
bool addLink(const unsigned int i, iKin::iKinLink &l)
std::deque< iDynLink * > linkList
iDynLimb()
Default constructor: right arm is default.
iDynChain & operator=(const iDynChain &c)
iKin::iKinChain & operator<<(iKin::iKinLink &l)
iKin::iKinChain & operator--(int)
bool fromLinksProperties(const yarp::os::Property &option)
Initializes the Limb from a list of properties wherein links parameters are specified.
virtual void dispose()
Dispose.
A base class for defining a Link with standard Denavit-Hartenberg convention, providing kinematic and...
double Fv
F_{v,i} viscous friction.
void setMass(const double _m)
Sets the link mass.
bool setInertia(const yarp::sig::Matrix &_I)
Sets the link inertia.
double getTorque() const
Get the joint torque.
const yarp::sig::Matrix & getInertia() const
Get the inertia matrix.
yarp::sig::Vector dpC
1x3, dp^i_{C_i} linear velocity of center of mass C_i
const yarp::sig::Vector & getLinVel() const
Gets the linear velocity of the link.
bool setDynamicParameters(const double _m, const yarp::sig::Matrix &_HC, const yarp::sig::Matrix &_I, const double _kr, const double _Fv, const double _Fs, const double _Im)
Set the dynamic parameters of both Link and motor.
virtual void clone(const iDynLink &l)
Clone function.
const yarp::sig::Vector & getLinAccC() const
Get the linear acceleration of the COM.
iDynLink(const double _m, const yarp::sig::Vector &_C, const yarp::sig::Matrix &_I, double _A, double _D, double _Alpha, double _Offset, double _Min=-iCub::ctrl::CTRL_PI, double _Max=iCub::ctrl::CTRL_PI)
Constructor, with initialization of kinematic and dynamic data.
iDynLink(const double _m, const yarp::sig::Matrix &_HC, const yarp::sig::Matrix &_I, double _A, double _D, double _Alpha, double _Offset, double _Min=-iCub::ctrl::CTRL_PI, double _Max=iCub::ctrl::CTRL_PI)
Constructor, with initialization of kinematic and dynamic data.
double Im
I_{m_i} rotor inertia.
bool setMoment(const yarp::sig::Vector &_Mu)
Sets the joint moment, in the link frame: Mu^i_i.
yarp::sig::Vector r_proj_store
double Fs
F_{s,i} static friction.
bool setForceMoment(const yarp::sig::Vector &_F, const yarp::sig::Vector &_Mu)
Sets the joint force and moment, in the link frame: F^i_i , Mu^i_i.
yarp::sig::Matrix H_store
iDynLink & operator=(const iDynLink &c)
Overload of operator =.
void setAngPosVelAcc(const double _teta, const double _dteta, const double _ddteta)
Sets the joint angle position, velocity, acceleration.
const yarp::sig::Vector & getMoment() const
Get the link moment.
yarp::sig::Vector ddpC
1x3, d2p=ddp^i_{C_i} linear acceleration of center of mass C_i
yarp::sig::Vector rc_proj
const yarp::sig::Matrix & getR()
Get the link rotational matrix, from the Denavit-Hartenberg matrix.
double setDAng(const double _dteta)
Sets the joint velocity.
const yarp::sig::Matrix & getRC() const
Get the link COM's rotational matrix, from the COM matrix.
double ddq
ddq=d2q, joint acc
double getD2Ang() const
Get the joint acceleration.
yarp::sig::Matrix R_store
bool setStaticParameters(const double _m, const yarp::sig::Matrix &_HC)
Set the dynamic parameters of the Link if the chain is in a static situation (inertia is null).
const yarp::sig::Matrix & getCOM() const
Get the roto-translational matrix describing the COM.
yarp::sig::Vector w
1x3, w^i_i angular velocity
yarp::sig::Vector Mu
1x3, mu^i_i moment
bool setForce(const yarp::sig::Vector &_F)
Sets the joint force, in the link frame: F^i_i.
const yarp::sig::Vector & getdWM() const
Get the angular acceleration of the motor.
double Tau
tau_i joint torque
yarp::sig::Vector F
1x3, f^i_i force
double getDAng() const
Get the joint velocity.
const yarp::sig::Vector & getLinAcc() const
Get the linear acceleration of the link.
double setAng(const double _teta)
Sets the joint position (position constraints are evaluated).
const yarp::sig::Vector & getLinVelC() const
Gets the linear velocity of the COM.
bool setCOM(const yarp::sig::Matrix &_HC)
Set the roto-translation matrix from i to COM.
const yarp::sig::Matrix & getH()
Redefine the getH of iKinLink so that it does not compute the H matrix if the joint angles have not c...
iDynLink()
Default constructor : not implemented.
void zero()
Set all dynamic parameters to zero.
double getMass() const
Get the link mass.
double kr
k_{r,i} inertia constant
yarp::sig::Vector rc
3x1, r^i_{i,C_i}, translational part of HC, constant
const yarp::sig::Vector & getForce() const
Get the link force.
yarp::sig::Matrix RC
3x3, R^i_{C_i} rotational part of HC, constant
yarp::sig::Matrix I
3x3, I^i_i, inertia matrix, constant
const yarp::sig::Vector & getW() const
Get the angular velocity of the link.
yarp::sig::Vector r_store
yarp::sig::Matrix HC
4x4, H^i_{C_i} = R^i_{C_i}, r^i_{i,C_i}, roto-translation matrix from i to Ci, constant
yarp::sig::Vector ddp
1x3, d2p=ddp^i_i linear acceleration of frame i
const yarp::sig::Vector & getdW() const
Get the angular acceleration of the link.
virtual void updateHstore()
yarp::sig::Vector dwM
1x3, dw^{i-1}_{m_i} angular acceleration of rotor
yarp::sig::Vector dw
1x3, dw^i_i angular acceleration
double setD2Ang(const double _ddteta)
Sets the joint acceleration.
yarp::sig::Vector dp
1x3, dp^i_i linear velocity of frame i
void setTorque(const double _Tau)
Sets the joint moment, in the link frame: Tau_i.
A class for computing joint force/moment/torque of an iCub arm (left/right) given the FT measurements...
A class for computing joint force/moment/torque of an iCub leg (left/right) given the FT measurements...
A class for computing forces and torques in a iDynChain, when a force/torque sensor is placed in the ...
A Base class for defining the FT sensor over a generic link of a kinematic chain inherited by iKinLim...
A Base class for defining the Transformation of a Wrench from a frame to another.
A Base class for defining a Serial Link Chain.
void popLink()
Removes a Link from the bottom of the Chain.
void pushLink(iKinLink &l)
Adds a Link at the bottom of the Chain.
iKinChain & operator--(int)
Removes a Link from the bottom of the Chain.
void clear()
Removes all Links.
bool rmLink(const unsigned int i)
Removes the ith Link from the Chain.
bool addLink(const unsigned int i, iKinLink &l)
Adds a Link at the position ith within the Chain.
iKinLink & operator()(const unsigned int i)
Returns a reference to the ith Link of the Chain considering only those Links related to DOF.
iKinLink & operator[](const unsigned int i)
Returns a reference to the ith Link of the Chain.
A Base class for defining a Link with standard Denavit-Hartenberg convention.
virtual const yarp::sig::Vector & getr()
virtual const yarp::sig::Vector & getrC()
constexpr double CTRL_PI
The PI constant.
void notImplemented(const unsigned int verbose)
bool asForceMoment(const yarp::sig::Vector &w, yarp::sig::Vector &f, yarp::sig::Vector &m)
const std::string NewEulMode_s[4]
void workInProgress(const unsigned int verbose, const std::string &msg)
bool asWrench(yarp::sig::Vector &w, const yarp::sig::Vector &f, const yarp::sig::Vector &m)
This file contains the definition of unique IDs for the body parts and the skin parts of the robot.