Apply robodk-measured arm kinematics to KRC2ed05

  • Working with a KRC2ed05, with a KR200-3 comp arm.


    I used roboDK's calibration program + laser tracker to create a kinematics DH table:



    How can I update the machine data to match this?


    some qualifiers:

    I have a backup HDD.

    I can use the robodk filter and avoid this, but I'd prefer to correct the kinematics at the source, if it's possible.

    The closest I've gotten is this thread: kinematic parameter stored inside robot, and acceleration and torque signal channel before and after gear reduction but I don't know exactly how the variables are mapped.

    It's easy enough to assume my value of "a'" for Joint 3 (45.091445mm) would replace the even 45mm below in my $TX3P3, both negative. Past those few obvious ones, is there a standard or diagram that shows which values are which? I understand D-H kinematics at a fifth grade level, but these two DH values are missing a theta value anyway. I'm hoping I can at least correct the lengths and take out 80% of my position error.


    FRAME $TIRORO={X 0.0,Y 0.0,Z 750.0,A 0.0,B 0.0,C 0.0}

    FRAME $TFLWP={X 0.0,Y 0.0,Z 210.0,A 0.0,B 0.0,C 0.0}

    FRAME $TX3P3={X 1000.0,Y 0.0,Z -45.0,A 0.0,B 90.0,C 0.0}

    REAL $LENGTH_A=350.0 ;GRUNDACHSLAENGE A

    REAL $LENGTH_B=1050.0 ;GRUNDACHSLAENGE B

    DECL DHART $DH_4={DHART_A 0.0,DHART_D 0.0,DHART_ALPHA 90.0}

    DECL DHART $DH_5={DHART_A 0.0,DHART_D 0.0,DHART_ALPHA -90.0}

  • I tried changing a few of the values as mentioned above, after cold booting I get the errors:
    1) Failed to initialize the dynamic model (code E5)

    2) erroneous correction data


    Resetting the changed values takes care of the errors. Not as simple as I'd hoped.

  • technically you are correct, adapting values in correct places in MADA will do the trick.

    robot MADA is only two DAT files in KRC:\R1\MADA and those can be replaced without cold boot, just deselect robot program and submit, make change, then start submit again.


    problem is that many values are not documented, specially if you look in $ROBCOR.DAT

    and as you have found out KSS performs check so if changes are incomplete, KSS is likely to complain as something will not add up.


    the normal way is to make robot better match the model is not to edit model but create suitable PID file. alternatively one can try to adapt or deactivate some things such as dynamic model which is something to contact KUKA about.

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • It's nice to be on the right path for once. I have to get some parts machining before I can finish this tonight, I'll look through the ROBCOR file has a complement for the kinematics.

    I tried with just the length_A altered and got the same errors. The fallback plan of robodk's filtering is the more common one anyway, I just didn't want a third step between CAM and running the robot. If it's a pain, maybe we'll upgrade to the spatial accuracy add-on computer (I think you had linked to it in another thread, panic mode).


    We'll see what Kuka support says.

  • Just found some corresponding values in ROBCOR:


    Code
    $DYN_DAT[13]=350.0
    $DYN_DAT[14]=1050.0

    if I update these along with the matching values in MACHINE.dat (Length A and Length B) then the error disappears.

    Same with a few numbers in the other variables of MACHINE, but I don't know yet how the DH values are accounted for.

  • some of your dh parameters are completely off.

    Before overwriting the official ones you should try to solve this problem first

    You mean the ones in the photo I attached? Those were generated by RoboDK, I haven't figured out how to convert from their 4 parameters to Kuka's three DH parameters.

    On that note, I got the machine.dat manual from Kuka today, here's the relevant diagram. I'll dive into this later in the afternoon.

  • Attempting to modify the DH parameters of the arm is not going to be simple. And honestly, it may not "fix" the robot very well. Based on my experience with other "tuning" attempts, including KUKA's own in-house "Absoluate Accuracy", the benefits are limited and rather brittle.


    I found better results using a Cartesian correction table, generated using comparisons between a laser tracker and the robot's commanded positions. New River Kinematics does something similar with their SARCA, although I think they actually build an improved DH model (with additional tuning for "sag" and other things outside the DH model) and generate Cartesian or Joint corrections on the fly for requested positions.


    The trick is to generate a sample point cloud of sufficient density, including orientations -- wrist orientations turned out to be the biggest accuracy killer, which increased the required density of our sample set. Then we had a 6DOF weighted-average algorithm that took the location the robot wanted to go to, averaged out the corrections from the nearest N points in the sample set, and applied them. We eventually got accuracies down in the +/- 250-micron range, but it was a fair amount of work.

  • some of the values you have are 2.7m which is way more than any dimension in that diagram

    sheesh, I didn't realize what I was looking at there, that's huge.


    we had a 6DOF weighted-average algorithm that took the location the robot wanted to go to, averaged out the corrections from the nearest N points in the sample set, and applied them.

    This is about what RoboDK does I believe, I was hoping to get around having to run all our CAM programs through their offline filter. It's effective, just a third step to take! I'll give the DH parameters a little more thought, but not hold it as an absolute goal.

    Thanks for the info guys.

  • values a and d are displacements between consecutive frames. they do not necessarily need to be inside the joints or links but convention is to choose the shortest distance along common normal. the result is that those values are never longer than the link itself.

    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

Advertising from our partners