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)
iCubNeckInertialDynV2(const ChainComputationMode _mode=KINBWD_WREBWD, const std::string &_type="v2.5")
Default constructor.
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.
iCubNeckInertialDyn(const ChainComputationMode _mode=KINBWD_WREBWD)
Default constructor.
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.
iKin::iKinChain & operator<<(iKin::iKinLink &l)
void pushLink(iKin::iKinLink &l)
iKin::iKinChain & operator--(int)
bool rmLink(const unsigned int i)
bool isValid()
Checks if the limb has been properly configured.
iKin::iKinLink & operator[](const unsigned int i)
iDynChain & operator=(const iDynChain &c)
std::string getType()
Returns the Limb type as a string.
iDynChain * asChain()
Returns a pointer to the Limb seen as Chain object.
virtual ~iDynLimb()
Destructor.
bool addLink(const unsigned int i, iKin::iKinLink &l)
iKin::iKinLink & operator()(const unsigned int i)
std::deque< iDynLink * > linkList
iDynLimb()
Default constructor: right arm is default.
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.
iKinLink & operator()(const unsigned int i)
Returns a reference to the ith Link of the Chain considering only those Links related to DOF.
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)
yarp::os::Bottle & operator<<(yarp::os::Bottle &out, int val)
Helper functions for serialization in bottles for use in the learningMachine library.
This file contains the definition of unique IDs for the body parts and the skin parts of the robot.