A Base class for defining a Serial Link Chain, using dynamics and kinematics.
More...
|
| iDynChain () |
| Default constructor. More...
|
|
| iDynChain (const iDynChain &c) |
| Creates a new Chain from an already existing Chain object. More...
|
|
iDynChain & | operator= (const iDynChain &c) |
| Copies a Chain object into the current one. More...
|
|
yarp::sig::Vector | setAng (const yarp::sig::Vector &q) |
| Sets the free joint angles to values of q[i]. More...
|
|
yarp::sig::Vector | setDAng (const yarp::sig::Vector &dq) |
| Sets the free joint angles velocity to values of dq[i]. More...
|
|
yarp::sig::Vector | setD2Ang (const yarp::sig::Vector &ddq) |
| Sets the free joint angles acceleration to values of ddq[i]. More...
|
|
yarp::sig::Vector | getDAng () |
| Returns the current free joint angles velocity. More...
|
|
yarp::sig::Vector | getD2Ang () |
| Returns the current free joint angles acceleration. More...
|
|
yarp::sig::Vector | getJointBoundMin () |
| Returns a list containing the min value for each joint. More...
|
|
yarp::sig::Vector | getJointBoundMax () |
| Returns a list containing the max value for each joint. More...
|
|
double | setAng (const unsigned int i, double q) |
| Sets the ith joint angle. More...
|
|
double | setDAng (const unsigned int i, double dq) |
| Sets the ith joint angle velocity. More...
|
|
double | setD2Ang (const unsigned int i, double ddq) |
| Sets the ith joint angle acceleration. More...
|
|
double | getDAng (const unsigned int i) |
| Returns the current angle velocity of ith joint. More...
|
|
double | getD2Ang (const unsigned int i) |
| Returns the current angle acceleration of ith joint. More...
|
|
yarp::sig::Vector | getMasses () const |
| Returns the link masses as a vector. More...
|
|
bool | setMasses (yarp::sig::Vector _m) |
| Set the link masses at once. More...
|
|
double | getMass (const unsigned int i) const |
| Returns the i-th link mass. More...
|
|
bool | setMass (const unsigned int i, const double _m) |
| Set the i-th link mass. More...
|
|
yarp::sig::Matrix | getInertia (const unsigned int i) const |
| Returns the i-th link inertia matrix. More...
|
|
yarp::sig::Matrix | getForces () const |
| Returns the links forces as a matrix, where the i-th col is the i-th force. More...
|
|
yarp::sig::Matrix | getMoments () const |
| Returns the links moments as a matrix, where the i-th col is the i-th moment. More...
|
|
yarp::sig::Vector | getTorques () const |
| Returns the links torque as a vector. More...
|
|
const yarp::sig::Vector & | getForce (const unsigned int iLink) const |
| Returns the i-th link force. More...
|
|
const yarp::sig::Vector & | getMoment (const unsigned int iLink) const |
| Returns the i-th link moment. More...
|
|
double | getTorque (const unsigned int iLink) const |
| Returns the i-th link torque. More...
|
|
yarp::sig::Vector | getLinVel (const unsigned int i) const |
| Returns the i-th link linear velocity. More...
|
|
yarp::sig::Vector | getLinVelCOM (const unsigned int i) const |
| Returns the i-th link linear velocity of the COM. More...
|
|
yarp::sig::Vector | getLinAcc (const unsigned int i) const |
| Returns the i-th link linear acceleration. More...
|
|
const yarp::sig::Vector & | getLinAccCOM (const unsigned int i) const |
| Returns the i-th link linear acceleration of the COM. More...
|
|
yarp::sig::Vector | getAngVel (const unsigned int i) const |
| Returns the i-th link angular velocity. More...
|
|
yarp::sig::Vector | getAngAcc (const unsigned int i) const |
| Returns the i-th link angular acceleration. More...
|
|
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. More...
|
|
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. More...
|
|
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). More...
|
|
void | prepareNewtonEuler (const NewEulMode NewEulMode_s=DYNAMIC) |
| Prepare for the Newton-Euler recursive computation of forces and torques. More...
|
|
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 performed, and results are stored in the links; to get resulting forces and torques, one can call getForces() and getMoments() methods. More...
|
|
bool | computeNewtonEuler () |
| Compute forces and torques with the Newton-Euler recursive algorithm: forward and backward phase are performed, and results are stored in the links; to get resulting forces and torques, one can call getForces() and getMoments() methods; before calling this method, initNewtonEuler() must be called. More...
|
|
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, dw0 and ddp0 ) and the final (virtual link) forces and moments Fend and Muend. More...
|
|
bool | initNewtonEuler () |
| Initialize the Newton-Euler method by setting the base (virtual link) velocity and accelerations ( w0, dw0 and ddp0 ) and the final (virtual link) forces and moments Fend and Muend all to zero. More...
|
|
void | setModeNewtonEuler (const NewEulMode NewEulMode_s=DYNAMIC) |
| Set the computation mode for Newton-Euler (static/dynamic/etc) More...
|
|
yarp::sig::Matrix | getForcesNewtonEuler () const |
| Returns the links forces as a matrix, where the (i+1)-th col is the i-th force. More...
|
|
yarp::sig::Matrix | getMomentsNewtonEuler () const |
| Returns the links moments as a matrix, where the (i+1)-th col is the i-th moment. More...
|
|
yarp::sig::Vector | getTorquesNewtonEuler () const |
| Returns the links torque as a vector. More...
|
|
yarp::sig::Vector | getForceMomentEndEff () const |
| Returns the end effector force-moment as a single (6x1) vector. More...
|
|
void | setIterModeKinematic (const ChainIterationMode _iterateMode_kinematics=FORWARD) |
| Set the iteration direction during recursive computation of kinematics variables (w,dw,d2p,d2pC). More...
|
|
void | setIterModeWrench (const ChainIterationMode _iterateMode_wrench=BACKWARD) |
| Set the iteration direction during recursive computation of wrench variables (F,Mu,Tau). More...
|
|
void | setIterMode (const ChainComputationMode mode=KINFWD_WREBWD) |
| Set the computation mode during recursive computation of kinematics (w,dw,d2p,d2pC) and wrench variables(F,Mu,Tau). More...
|
|
ChainIterationMode | getIterModeKinematic () const |
| Get the iteration direction during recursive computation of kinematics variables (w,dw,d2p,d2pC). More...
|
|
ChainIterationMode | getIterModeWrench () const |
| Get the iteration direction during recursive computation of wrench variables (F,Mu,Tau). More...
|
|
void | computeKinematicNewtonEuler () |
| Calls the proper method to compute kinematics variables: either ForwardKinematicFromBase() or BackwardKinematicFromEnd(). More...
|
|
void | computeWrenchNewtonEuler () |
| Calls the proper method to compute wrench variables: either BackwardWrenchFromEnd() or ForwardWrenchFromBase(). More...
|
|
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() or initKinematicEnd(). More...
|
|
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 initKinematicEnd(). More...
|
|
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 the final link. More...
|
|
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 iDynChain, i.e. More...
|
|
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 iDynChain, i.e. More...
|
|
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 final link. More...
|
|
virtual | ~iDynChain () |
| Destructor. More...
|
|
yarp::sig::Matrix | computeGeoJacobian (const unsigned int iLinkN, const yarp::sig::Matrix &Pn) |
| Compute the Jacobian from link 0 to iLinkN. More...
|
|
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. More...
|
|
yarp::sig::Matrix | computeGeoJacobian (const yarp::sig::Matrix &Pn) |
| Compute the Jacobian of the chain, from link 0 to N. More...
|
|
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. More...
|
|
yarp::sig::Matrix | getDenHart (unsigned int i) |
| Return the Denavit-Hartenberg matrix of the i-th link in the chain. More...
|
|
yarp::sig::Matrix | TESTING_computeCOMJacobian (const unsigned int iLink) |
| Compute the Jacobian of the COM of link indexed iLink. More...
|
|
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). More...
|
|
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). More...
|
|
yarp::sig::Matrix | getCOM (unsigned int iLink) |
| Return the COM matrix of the i-th link. More...
|
|
yarp::sig::Matrix | getHCOM (unsigned int iLink) |
| Return the H matrix until the COM of the i-th link. More...
|
|
yarp::sig::Matrix | computeMassMatrix () |
| Compute the joint space mass matrix considering only the active joints. More...
|
|
yarp::sig::Matrix | computeMassMatrix (const yarp::sig::Vector &q) |
| Compute the joint space mass matrix considering only the active joints. More...
|
|
yarp::sig::Vector | computeCcTorques () |
| Compute the torques due to centrifugal and coriolis effects considering only the active joints. More...
|
|
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. More...
|
|
yarp::sig::Vector | computeGravityTorques (const yarp::sig::Vector &ddp0) |
| Compute the torques generated by gravity considering only the active joints. More...
|
|
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. More...
|
|
yarp::sig::Vector | computeCcGravityTorques (const yarp::sig::Vector &ddp0) |
| Compute the torques generated by gravity and centrifugal and coriolis forces, considering only the active joints. More...
|
|
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 active joints. More...
|
|
| iKinChain () |
| Default constructor. More...
|
|
| iKinChain (const iKinChain &c) |
| Creates a new Chain from an already existing Chain object. More...
|
|
iKinChain & | operator= (const iKinChain &c) |
| Copies a Chain object into the current one. More...
|
|
iKinChain & | operator<< (iKinLink &l) |
| Adds a Link at the bottom of the Chain. More...
|
|
iKinChain & | operator-- (int) |
| Removes a Link from the bottom of the Chain. More...
|
|
iKinLink & | operator[] (const unsigned int i) |
| Returns a reference to the ith Link of the Chain. More...
|
|
iKinLink & | operator() (const unsigned int i) |
| Returns a reference to the ith Link of the Chain considering only those Links related to DOF. More...
|
|
bool | addLink (const unsigned int i, iKinLink &l) |
| Adds a Link at the position ith within the Chain. More...
|
|
bool | rmLink (const unsigned int i) |
| Removes the ith Link from the Chain. More...
|
|
void | pushLink (iKinLink &l) |
| Adds a Link at the bottom of the Chain. More...
|
|
void | clear () |
| Removes all Links. More...
|
|
void | popLink () |
| Removes a Link from the bottom of the Chain. More...
|
|
bool | blockLink (const unsigned int i, double Ang) |
| Blocks the ith Link at the a certain value of its joint angle. More...
|
|
bool | blockLink (const unsigned int i) |
| Blocks the ith Link at the current value of its joint angle. More...
|
|
bool | setBlockingValue (const unsigned int i, double Ang) |
| Changes the value of the ith blocked Link. More...
|
|
bool | releaseLink (const unsigned int i) |
| Releases the ith Link. More...
|
|
bool | isLinkBlocked (const unsigned int i) |
| Queries whether the ith Link is blocked. More...
|
|
void | setAllConstraints (bool _constrained) |
| Sets the constraint status of all chain links. More...
|
|
void | setConstraint (unsigned int i, bool _constrained) |
| Sets the constraint status of ith link. More...
|
|
bool | getConstraint (unsigned int i) |
| Returns the constraint status of ith link. More...
|
|
void | setAllLinkVerbosity (unsigned int _verbose) |
| Sets the verbosity level of all Links belonging to the Chain. More...
|
|
void | setVerbosity (unsigned int _verbose) |
| Sets the verbosity level of the Chain. More...
|
|
unsigned int | getVerbosity () const |
| Returns the current Chain verbosity level. More...
|
|
unsigned int | getN () const |
| Returns the number of Links belonging to the Chain. More...
|
|
unsigned int | getDOF () const |
| Returns the current number of Chain's DOF. More...
|
|
yarp::sig::Matrix | getH0 () const |
| Returns H0, the rigid roto-translation matrix from the root reference frame to the 0th frame. More...
|
|
bool | setH0 (const yarp::sig::Matrix &_H0) |
| Sets H0, the rigid roto-translation matrix from the root reference frame to the 0th frame. More...
|
|
yarp::sig::Matrix | getHN () const |
| Returns HN, the rigid roto-translation matrix from the Nth frame to the end-effector. More...
|
|
bool | setHN (const yarp::sig::Matrix &_HN) |
| Sets HN, the rigid roto-translation matrix from the Nth frame to the end-effector. More...
|
|
yarp::sig::Vector | setAng (const yarp::sig::Vector &q) |
| Sets the free joint angles to values of q[i]. More...
|
|
yarp::sig::Vector | getAng () |
| Returns the current free joint angles values. More...
|
|
double | setAng (const unsigned int i, double _Ang) |
| Sets the ith joint angle. More...
|
|
double | getAng (const unsigned int i) |
| Returns the current angle of ith joint. More...
|
|
yarp::sig::Matrix | getH (const unsigned int i, const bool allLink=false) |
| Returns the rigid roto-translation matrix from the root reference frame to the ith frame in Denavit-Hartenberg notation. More...
|
|
yarp::sig::Matrix | getH () |
| Returns the rigid roto-translation matrix from the root reference frame to the end-effector frame in Denavit-Hartenberg notation (HN is taken into account). More...
|
|
yarp::sig::Matrix | getH (const yarp::sig::Vector &q) |
| Returns the rigid roto-translation matrix from the root reference frame to the end-effector frame in Denavit-Hartenberg notation (HN is taken into account). More...
|
|
yarp::sig::Vector | Pose (const unsigned int i, const bool axisRep=true) |
| Returns the coordinates of ith Link. More...
|
|
yarp::sig::Vector | Position (const unsigned int i) |
| Returns the 3D position coordinates of ith Link. More...
|
|
yarp::sig::Vector | EndEffPose (const bool axisRep=true) |
| Returns the coordinates of end-effector. More...
|
|
yarp::sig::Vector | EndEffPose (const yarp::sig::Vector &q, const bool axisRep=true) |
| Returns the coordinates of end-effector computed in q. More...
|
|
yarp::sig::Vector | EndEffPosition () |
| Returns the 3D coordinates of end-effector position. More...
|
|
yarp::sig::Vector | EndEffPosition (const yarp::sig::Vector &q) |
| Returns the 3D coordinates of end-effector position computed in q. More...
|
|
yarp::sig::Matrix | AnaJacobian (const unsigned int i, unsigned int col) |
| Returns the analitical Jacobian of the ith link. More...
|
|
yarp::sig::Matrix | AnaJacobian (unsigned int col=3) |
| Returns the analitical Jacobian of the end-effector. More...
|
|
yarp::sig::Matrix | AnaJacobian (const yarp::sig::Vector &q, unsigned int col=3) |
| Returns the analitical Jacobian of the end-effector computed in q. More...
|
|
yarp::sig::Matrix | GeoJacobian (const unsigned int i) |
| Returns the geometric Jacobian of the ith link. More...
|
|
yarp::sig::Matrix | GeoJacobian () |
| Returns the geometric Jacobian of the end-effector. More...
|
|
yarp::sig::Matrix | GeoJacobian (const yarp::sig::Vector &q) |
| Returns the geometric Jacobian of the end-effector computed in q. More...
|
|
yarp::sig::Vector | Hessian_ij (const unsigned int i, const unsigned int j) |
| Returns the 6x1 vector \( \partial{^2}F\left(q\right)/\partial q_i \partial q_j, \) where \( F\left(q\right) \) is the forward kinematic function and \( \left(q_i,q_j\right) \) is the DOF couple. More...
|
|
void | prepareForHessian () |
| Prepares computation for a successive call to fastHessian_ij(). More...
|
|
yarp::sig::Vector | fastHessian_ij (const unsigned int i, const unsigned int j) |
| Returns the 6x1 vector \( \partial{^2}F\left(q\right)/\partial q_i \partial q_j, \) where \( F\left(q\right) \) is the forward kinematic function and \( \left(q_i,q_j\right) \) is the DOF couple. More...
|
|
yarp::sig::Vector | Hessian_ij (const unsigned int lnk, const unsigned int i, const unsigned int j) |
| Returns the 6x1 vector \( \partial{^2}F\left(q\right)/\partial q_i \partial q_j, \) where \( F\left(q\right) \) is the forward kinematic function and \( \left(q_i,q_j\right) \) is the couple of links. More...
|
|
void | prepareForHessian (const unsigned int lnk) |
| Prepares computation for a successive call to fastHessian_ij() (link version). More...
|
|
yarp::sig::Vector | fastHessian_ij (const unsigned int lnk, const unsigned int i, const unsigned int j) |
| Returns the 6x1 vector \( \partial{^2}F\left(q\right)/\partial q_i \partial q_j, \) where \( F\left(q\right) \) is the forward kinematic function and \( \left(q_i,q_j\right) \) is the couple of links. More...
|
|
yarp::sig::Matrix | DJacobian (const yarp::sig::Vector &dq) |
| Compute the time derivative of the geometric Jacobian. More...
|
|
yarp::sig::Matrix | DJacobian (const unsigned int lnk, const yarp::sig::Vector &dq) |
| Compute the time derivative of the geometric Jacobian (link version). More...
|
|
virtual | ~iKinChain () |
| Destructor. More...
|
|