|
Dear All.
I want to get some help on how to get the Jacobian matrix of left arm. From the following website I can get the DH parameters for the left arm. http://eris.liralab.it/wiki/Image:DHnotation_Left.jpg So how can I get the expression for the Jacobian matrix of left arm? Thus based on the Jacobian matrix of left arm, I can get the expression of its Pseudo-inverse matrix and Transposed matrix. Best regards. Zhenli Lu ------------------------------------------------------------------------------ Storage Efficiency Calculator This modeling tool is based on patent-pending intellectual property that has been used successfully in hundreds of IBM storage optimization engage- ments, worldwide. Store less, Store more with what you own, Move data to the right place. Try It Now! http://www.accelacomm.com/jaw/sfnl/114/51427378/ _______________________________________________ Robotcub-hackers mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/robotcub-hackers |
|
Hi Zhenli!
I can help you for that! But before to give you the steps to follow could you tell me what kind of Jacobian do you need? I mean the kinematic (analytical/geometrical) or dynamic (geometrical/COM) one? Bests, Max |
|
In reply to this post by zhenli
Dear Max.
Thank you very much for your email. I am not so clear about the difference between kinematic (analytical/geometrical) or dynamic (geometrical/COM) one? I guess I need the kinematic (analytical/geometrical) Jacobian matrix. But I also like to know how to get the dynamic (geometrical/COM) one. Thanks in advance. Best regards. Zhenli > Message: 7 > Date: Mon, 25 Jul 2011 04:21:07 -0700 (PDT) >From: Maxime Cheramy <[hidden email]> > Subject: Re: [rc-hackers] Dear All, Help on Jacobian >matrix of left > arm(also its Pseudo-inverse matrix and Transposed >matrix ). > To: [hidden email] > Message-ID: <[hidden email]> > Content-Type: text/plain; charset=us-ascii > > Hi Zhenli! > > I can help you for that! But before to give you the >steps to follow could > you tell me what kind of Jacobian do you need? I mean >the kinematic > (analytical/geometrical) or dynamic (geometrical/COM) >one? > > Bests, > > Max > ------------------------------------------------------------------------------ Storage Efficiency Calculator This modeling tool is based on patent-pending intellectual property that has been used successfully in hundreds of IBM storage optimization engage- ments, worldwide. Store less, Store more with what you own, Move data to the right place. Try It Now! http://www.accelacomm.com/jaw/sfnl/114/51427378/ _______________________________________________ Robotcub-hackers mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/robotcub-hackers |
|
Hi Zhenli!
So I will give the step to follow: 1. Create interfaces through pointers: For the kinematic: iCubArm *arm; iKinChain *chain; arm = createArm("right_arm", 0); chain = arm->asChain(); For the dynamic: iCubArmDyn armTorsoDyn("right"); iDynChain *dynChain; And to calculate the Jacobian for the actual value of the angles you have to create (via the remote control board) an IEncoders interface: IEncoders *encod; 2. Get the actual angles values and set them to the chain: Vector fb, encodervalues; encodervalues.resize(m); encod -> getEncoders(encodervalues.data()); cout << "Angles values from encoders: " << encodervalues.toString() << endl; fb = Vector(m, encodervalues.data()); fb = (M_PI*fb)/180; //Conversion to radians cout << "Angles in radian: " << fb.toString() << endl; chain->setAng(fb); //kinematic dynChain->setAng(fb); //dynamic 3. Use the needed method to get the Jacobian you need: For example: Matrix foo2 = dynChain->computeGeoJacobian(); cout << "iDyn geometrical Jacobian : " << foo2.toString() << endl; Or: Matrix foo = chain->AnaJacobian(); cout << "Analytical Jacobian : " << foo.toString() << endl; Matrix fooG = chain->GeoJacobian(); cout << "Geometrical Jacobian : " << fooG.toString() << endl; 4.Finally if you need the transpose or anything else look at the Matrix class: Matrix TgeoJacob; TgeoJacob = foo2.transposed(); Don't forget to set the actual angles values each time you want to calculate the Jacobian! I hope that will be useful for you! If you have more questions do not hesitate! ;) Best regards, Max |
|
In reply to this post by zhenli
Dear Max.
Thank you very much for your email. That works fine. If I meet more question,I will put the information here. Best regards. Zhenli > Message: 3 > Date: Tue, 26 Jul 2011 01:43:53 -0700 (PDT) >From: Maxime Cheramy <[hidden email]> > Subject: Re: [rc-hackers] Dear All, Help on Jacobian >matrix of left > arm(also its Pseudo-inverse matrix and Transposed >matrix ). > To: [hidden email] > Message-ID: <[hidden email]> > Content-Type: text/plain; charset=us-ascii > > Hi Zhenli! > > So I will give the step to follow: > > *1. Create interfaces through pointers:* > /For the kinematic:/ > iCubArm *arm; > iKinChain *chain; > arm = createArm("right_arm", 0); > chain = arm->asChain(); > /For the dynamic:/ > iCubArmDyn armTorsoDyn("right"); > iDynChain *dynChain; > /And to calculate the Jacobian for the actual value of >the angles you have > to create (via the remote control board) an IEncoders >interface:/ > IEncoders *encod; > > *2. Get the actual angles values and set them to the >chain:* > Vector fb, encodervalues; > encodervalues.resize(m); > encod -> getEncoders(encodervalues.data()); > cout << "Angles values from encoders: " << >encodervalues.toString() << > endl; > fb = Vector(m, encodervalues.data()); > fb = (M_PI*fb)/180; //Conversion to radians > cout << "Angles in radian: " << fb.toString() << endl; > > chain->setAng(fb); //kinematic > dynChain->setAng(fb); //dynamic > > *3. Use the needed method to get the Jacobian you need:* > /For example:/ > Matrix foo2 = dynChain->computeGeoJacobian(); > cout << "iDyn geometrical Jacobian : " << >foo2.toString() << endl; > /Or:/ > Matrix foo = chain->AnaJacobian(); > cout << "Analytical Jacobian : " << >foo.toString() << endl; > Matrix fooG = chain->GeoJacobian(); > cout << "Geometrical Jacobian : " << >fooG.toString() << > endl; > * > 4.Finally if you need the transpose or anything else >look at the Matrix > class:* > Matrix TgeoJacob; > TgeoJacob = foo2.transposed(); > > Don't forget to set the actual angles values each time >you want to calculate > the Jacobian! > I hope that will be useful for you! > If you have more questions do not hesitate! ;) > > Best regards, > > Max > > > ------------------------------------------------------------------------------ Magic Quadrant for Content-Aware Data Loss Prevention Research study explores the data loss prevention market. Includes in-depth analysis on the changes within the DLP market, and the criteria used to evaluate the strengths and weaknesses of these DLP solutions. http://www.accelacomm.com/jaw/sfnl/114/51385063/ _______________________________________________ Robotcub-hackers mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/robotcub-hackers |
|
Hi there,
I am also trying to get the analytical jacobian, so far the code you have provided compiles apart from the line: arm = createArm("right_arm", 0); I can't find the function anywhere in the headers, has this been replaced by iCubArm()? If so, how is it implemented? Warm regards, Alex |
|
Hi Alex,
I would honestly need more details to answer your question. Which code are you referring to? Anyway, if you're seeking for the analytical Jacobian, the method for you is provided by iKin library from the main branch of iCub SW and is called AnaJacobian(). Link: http://eris.liralab.it/iCub/main/dox/html/classiCub_1_1iKin_1_1iKinChain.html Cheers, Ugo >-----Original Message----- >From: Alex Smith [mailto:[hidden email]] >Sent: venerdì 23 marzo 2012 17:43 >To: [hidden email] >Subject: Re: [rc-hackers] Dear All, Help on Jacobian matrix of left arm(also >its Pseudo-inverse matrix and Transposed matrix ). > >Hi there, > > I am also trying to get the analytical jacobian, so far the code you have >provided compiles apart from the line: > >arm = createArm("right_arm", 0); > >I can't find the function anywhere in the headers, has this been replaced by >iCubArm()? If so, how is it implemented? > >Warm regards, > >Alex > >-- >View this message in context: http://robotcub- >hackers.2198711.n2.nabble.com/Dear-All-Help-on-Jacobian-matrix-of-left-arm- >also-its-Pseudo-inverse-matrix-and-Transposed-matrix-tp6617818p7399134.html >Sent from the RobotCub Hackers mailing list archive at Nabble.com. > >----------------------------------------------------------------------------- >- >This SF email is sponsosred by: >Try Windows Azure free for 90 days Click Here >http://p.sf.net/sfu/sfd2d-msazure >_______________________________________________ >Robotcub-hackers mailing list >[hidden email] >https://lists.sourceforge.net/lists/listinfo/robotcub-hackers > >----- >Nessun virus nel messaggio. >Controllato da AVG - www.avg.com >Versione: 2012.0.1913 / Database dei virus: 2114/4889 - Data di rilascio: >23/03/2012 ------------------------------------------------------------------------------ This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure _______________________________________________ Robotcub-hackers mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/robotcub-hackers |
| Powered by Nabble | Edit this page |
