Denavit-Hartenberg Parameters for Kuka-Kr16

  • Hello, I am trying to solve kuka robot inverse kinematics with kinematic decoupling method, but when I tried to get DH parameters I couldn't get the parameters, I am at a dead end so if someone help me I will be very grateful.

  • AD
  • Hi,

    concerning DH Paramter:

    You need the DH Parameter in order to create you DH transformation for each axis.

    Unfortunately there are two ways doing the DH Transformation

    1. DH Transformation introduced by Denavit Hartenberg (rot.z(theta) * trans.z(d) * trans.x(a) * rot.x(alpha))

    2. DH Transformation introduced by Craig (rot.x(alpha) * trans.x(a) * trans.z(d) * rot.z(theta))

    Which DH Paramter you looking for?

    as a first step you should draw the kinematic model of a robot in xz-plane

    given coordinate systems:

    K0 Base coordinate system (your K0 is wrong - you draw yz-plane, K1, K2 and K3 as well)

    K6 Flange Coordinate System

    Send a corrected version of you kinematic model, please

    You also should not forget, that A1, A4 and A6 are rotating mathematical negative and A2, A3 and A5 mathematical positive.

    On Github searching for KR210 you will find some examples on the DH paramter (Craig). You just need the dimensions for your robot in



  • I was trying to do this once, a few years ago, teaching myself DH in the process. I never completed it, since the project I was doing it for got cancelled, but I do recall running into a problem I couldn't resolve going from A3 to A4. I eventually found a YouTube video that showed me a workaround -- since the DH is a mathematical abstraction, it was possible to get correct results by, effectively, "mounting" A4 at A3 -- IIRC, I basically performed just the rotation from A3 to A4 without the translation, then translated A5 out to the correct distance.

    The end result worked like one of the older ABB robots, where A4 rotated nearly the entire length of the A3-A5 link arm. It was technically incorrect, but mathematically valid, since as long as the distance from Ae to A5 was correct, the exact position of A4 along its own axis of rotation made no difference.

    I was using the RTSX add-on for SciLab, as I recall.

  • Sorry guys, it's my original robot, it has a step where I have a problem with denavit-hartenberg's parameters, you can see the joint parameters, called from q1 to q6, at that point are the real actuators, but the coordinate system of those parameters is not always on these actuatos, I found those coordinate systems with the denavit-hartenberg's algoritm.

  • Case :

    DH Matrix introduced by Denavit and Hartenberg and Craig

    A1 inversed

    Comparison of the transformation matrices (symbolic vs. calculated)

    Test case 1 (introduced by Denavit Hartenberg):


    s11 = c11 = 1 => theta = 0.0° (multiplied by $AXIS_DIR[1])


    s32 = c32 = -1=> alpha = -90.0°


    s14 = c14 = cos(0)*260.0 => 260.0

    s24 = c24 = sin(0)*260.0 => 0.0


    s34 = c34 => 675.0

    result: theta = (-)0.0; d = 675.0; a = 260.0; alpha = -90.0;

    Home work: do the same thing with DH Transformation introduced by Craig

    (the indinces of the symbolic DH Transformation is not alway correct - the rest is ok)

    Edited once, last by MOM ().

  • Well, I finally used the decoupling method and the robot end link is positioned near the desired point, there is a 5cm error, to me is a bad result :/

    I used this model to get the angles q1, q2 and q3, and to get the angles from q4 to q6 I used the whole robot

  • so I had a closer look to your post #8

    draw the kinematic model of your robot with all joints set to 0.0 (A1 thru A6, some robot could move to this position, but it is easier to calculate!)

    I gave you an example for axes A1 and A2 (see post #5)

    A1, A2 and A3 (Z-axis) pointing in the opposite direction (see also post #7 for that)

    (this is the reason why my axis 2 is pointing up and your A2 is pointing down)

    Where you got the number 0.6709 from - you are not allowed to make any orientation change besides theta or alpha

    (this part of the drawing is wrong - your first guess was correct - post #8)

    To me you are not 5 cm off, you are 800 mm in Z off

  • MOM , did you use decoupling? Or did you multiply all the matrices A01*...*A56 and then use A01^-1*T = A12*...*A56 to get the angles? and thanks for your advices :)

  • I just followed the rules of DH.

    for FK:

    1. draw kinematic model of the robot with all axes set to zero

    2. get the coordinate system for every axis

    3. get the DH Parameter for every axis (as introduced by Denavit Hartenberg - A1, A4 und A6 are inverted)

    4. calculate the transformation matrices (as introduced by Denavit Hartenberg)

    5. calculate flange frame (T06 by multpliying T01*T12*T23*T34*T45*T56)

    for IK:

    1. calculate wrist center point (wcp)

    2. using wcp to calculate axis position for A1, A2 and A3 (which gives 4 sets of angles)

    3. calculate R36

    4. Using R36 to calculate A4, A5 and A6 (which gives either 2 more choices (+/- 180°) or eight more choices (A4 and A6 +/- 360.0°)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now