18#include <yarp/sig/Vector.h> 
   19#include <yarp/sig/Matrix.h> 
   28using namespace yarp::sig;
 
   55    :
iDynNode(
"node with arms, torso and head")
 
   64        Matrix Harm_right(4,4); Harm_right.eye();
 
   65        Matrix Htorso(4,4); Htorso.eye();
 
   66        Matrix Hhead(4,4); Hhead.eye();
 
   67        Matrix Harm_left(4,4); Harm_left.eye();
 
   71        Harm_right(0,0) = -cos(theta);  Harm_right(0,1) = 0.0;  Harm_right(0,2) = -sin(theta);  Harm_right(0,3) = 0.00294;
 
   72        Harm_right(1,0) = 0.0;          Harm_right(1,1) = -1.0; Harm_right(1,2) = 0.0;          Harm_right(1,3) = -0.050;
 
   73        Harm_right(2,0) = -sin(theta);  Harm_right(2,1) = 0.0;  Harm_right(2,2) = cos(theta);   Harm_right(2,3) = 0.10997;
 
   74        Harm_right(3,3) = 1.0;
 
   85        H0.zero();  H0(0,1)=-1.0;   H0(1,2)=-1.0;   H0(2,0)=1.0;    H0(3,3)=1.0;
 
 
 
  155    for(
int i=0;i<m.rows();i++)
 
  157        for(
int j=0;j<m.cols();j++)
 
  158            cout<<setw(15)<<m(i,j);
 
 
  165    for(
size_t j=0;j<v.length();j++)
 
  166        cout<<setw(15)<<v(j);
 
 
  179    cout<<endl<<
"Node <"<<node.
toString()<<
"> created"<<endl;
 
  185    Vector q_torso(node.
torso->
getN());     q_torso.zero();
 
  186    Vector q_head(node.
head->
getN());       q_head.zero();
 
  196    Matrix J(6,1);  J.zero();
 
  197    Vector pose(6); pose.zero();
 
  206            <<
"************************\n" 
  207            <<
"* 1 - torso to right arm \n" 
  208            <<
"* 2 - torso to left arm \n" 
  209            <<
"* 3 - torso to head \n" 
  210            <<
"* 4 - head to right arm \n" 
  211            <<
"* 5 - head to left arm \n" 
  212            <<
"* 6 - head to torso \n" 
  213            <<
"* 7 - right arm to left arm \n" 
  214            <<
"* 8 - left arm to right arm \n" 
  218            <<
"* Enter your choice: ";
 
  231            case 'q': cout<<
"  .. quitting, bye.\n"<<endl; 
ok=
false; 
break;
 
  232            default:  cout<<
"  .. this is not a correct choice!!\n"<<endl; 
ok=
false;
 
  244    cout<<endl<<
"\n\n************************\n\n";
 
 
Vector Pose_HeadArmRight(bool axisRep=false)
 
Vector Pose_TorsoArmLeft(bool axisRep=false)
 
Matrix Jacobian_TorsoArmLeft()
 
Matrix Jacobian_TorsoHead()
 
Vector Pose_HeadArmLeft(bool axisRep=false)
 
Matrix Jacobian_ArmRightArmLeft()
 
Matrix Jacobian_TorsoArmRight()
 
Vector Pose_HeadTorso(bool axisRep=false)
 
Matrix Jacobian_ArmLeftArmRight()
 
Matrix Jacobian_HeadArmLeft()
 
Vector Pose_ArmLeftArmRight(bool axisRep=false)
 
Vector Pose_TorsoHead(bool axisRep=false)
 
Matrix Jacobian_HeadTorso()
 
Vector Pose_TorsoArmRight(bool axisRep=false)
 
Vector Pose_ArmRightArmLeft(bool axisRep=false)
 
Matrix Jacobian_HeadArmRight()
 
A class for defining the 7-DOF iCub Arm in the iDyn framework.
 
A class for defining the 3-DOF Inertia Sensor Kinematics.
 
A class for defining the 3-DOF iCub Torso in the iDyn framework.
 
yarp::sig::Vector setAng(const yarp::sig::Vector &q)
Sets the free joint angles to values of q[i].
 
A class for defining a generic Limb within the iDyn framework.
 
A class for connecting two or mutiple limbs and exchanging kinematic and wrench information between l...
 
unsigned int verbose
verbosity flag
 
yarp::sig::Vector computePose(unsigned int iChainA, JacobType dirA, unsigned int iChainB, JacobType dirB, const bool axisRep)
Compute the Pose of the end-effector, given a "virtual" chain connecting two limbs.
 
std::string info
info or useful notes
 
yarp::sig::Matrix computeJacobian(unsigned int iChain)
Compute the Jacobian of the limb with index iChain in the node, in its default direction (as it would...
 
virtual void addLimb(iDyn::iDynLimb *limb, const yarp::sig::Matrix &H, const FlowType kinFlow=RBT_NODE_OUT, const FlowType wreFlow=RBT_NODE_IN, bool hasSensor=false)
Add one limb to the node, defining its RigidBodyTransformation.
 
void setVerbosity(unsigned int _verbose)
Sets the verbosity level of the Chain.
 
unsigned int getN() const
Returns the number of Links belonging to the Chain.
 
bool setH0(const yarp::sig::Matrix &_H0)
Sets H0, the rigid roto-translation matrix from the root reference frame to the 0th frame.
 
void printVector(const string &s, const Vector &v)
 
void printMatrix(const string &s, const Matrix &m)
 
constexpr double CTRL_DEG2RAD
PI/180.
 
Copyright (C) 2008 RobotCub Consortium.