it like this about the example of puma560'model in ~\kdl\models\puma560.cpp
puma560.addSegment(Segment(Joint(Joint::RotZ),
Frame::DH(0.0,M_PI_2,0.0,0.0)....puma560.addSegment(Segment(Joint(Joint::RotZ),
Frame::DH(0.4318,0.0,0.0,0.0)....puma560.addSegment(Segment(Joint(Joint::RotZ),
Frame::DH(0.0203,-M_PI_2,0.15005,0.0)....puma560.addSegment(Segment(Joint(Joint::RotZ),
Frame::DH(0.0,M_PI_2,0.4318,0.0)..........
but i look up some other books, the argument of Frame::DH() like this: a alpha d theta 0 0 0 M_PI_2 0 -M_PI_2 0.14909 0 0.4318 0 0 -M_PI_2 0.0203 -M_PI_2 0.4337 0 0 M_PI_2 0 0 0 -M_PI_2 0 0
it's different, so how could i get the four argument about a, alpha, d, theta in DH method?
how to get the four argument about a, alpha, d, theta in DH meth
On Monday 09 August 2010 15:48:49 4057625 [..] ... wrote:
> it like this about the example of puma560'model in ~\kdl\models\puma560.cpp
>
> puma560.addSegment(Segment(Joint(Joint::RotZ),
> Frame::DH(0.0,M_PI_2,0.0,0.0)....
> puma560.addSegment(Segment(Joint(Joint::RotZ),
> Frame::DH(0.4318,0.0,0.0,0.0)....
> puma560.addSegment(Segment(Joint(Joint::RotZ),
> Frame::DH(0.0203,-M_PI_2,0.15005,0.0)....
> puma560.addSegment(Segment(Joint(Joint::RotZ),
> Frame::DH(0.0,M_PI_2,0.4318,0.0).....
> .....
>
> but i look up some other books, the argument of Frame::DH() like this:
> a alpha d theta
> 0 0 0 M_PI_2
> 0 -M_PI_2 0.14909 0
> 0.4318 0 0 -M_PI_2
> 0.0203 -M_PI_2 0.4337 0
> 0 M_PI_2 0 0
> 0 -M_PI_2 0 0
>
> it's different, so how could i get the four argument about a, alpha, d,
> theta in DH method?
The problem with DH parameters is that there are different definitions, the
original version from Denavi/Hartenberg and the modified one defined by Craig.
We support both in KDL:
//The modified version of Craig
static Frame DH_Craig1989 (double a, double alpha, double d, double theta)
//The original version
static Frame DH (double a, double alpha, double d, double theta)
You should check which definition your book is using.
We do not have support for getting DH parameters since frames can represent a
lot more than what can be specified using DH parameters.
Ruben
Their are two common ways us
how to get the four argument about a, alpha, d, theta in DH meth
it like this about the example of puma560'model in ~\kdl\models\puma560.cpp
puma560.addSegment(Segment(Joint(Joint::RotZ),
Frame::DH(0.0,M_PI_2,0.0,0.0)....
puma560.addSegment(Segment(Joint(Joint::RotZ),
Frame::DH(0.4318,0.0,0.0,0.0)....
puma560.addSegment(Segment(Joint(Joint::RotZ),
Frame::DH(0.0203,-M_PI_2,0.15005,0.0)....
puma560.addSegment(Segment(Joint(Joint::RotZ),
Frame::DH(0.0,M_PI_2,0.4318,0.0).....
.....
but i look up some other books, the argument of Frame::DH() like this:
a alpha d theta
0 0 0 M_PI_2
0 -M_PI_2 0.14909 0
0.4318 0 0 -M_PI_2
0.0203 -M_PI_2 0.4337 0
0 M_PI_2 0 0
0 -M_PI_2 0 0
it's different, so how could i get the four argument about a, alpha, d, theta in DH method?