I am working on KUKA iiwa 7 R800 and using the controller Sunrise Cabinet. Do you know how to obtain DH parameter in real time? I am using KUKA.WorkBench to upload a series of commands and I need DH parameters of those movements. Do I need to install another software in my laptop? Thank you for reply.
How to obtain DH parameter from KUKA iiwa 7 R800?
-
krittinp -
August 8, 2014 at 3:09 PM -
Thread is marked as Resolved.
-
-
Eh? DH parameters are not "realtime" -- they are inherent to the kinematic configuration of the robot. They don't change.
-
But from my understanding, there is a set of parameter (a, alpha, d, theta) for one position of each joint robot arm. I think they will change from one configuration to one another.
I have tried looking in this forum regarding DH parameter, and there were a lot of comments that said "DH parameter are stored in $MACHINE.DAT" or "they are in folder named R1". I tried looking for them, but they are not there.
-
on a standard robot you can monitor current position of each axis by reading variable $AXIS_ACT. all robot information is stored in MADA which contains two files - $machine.dat and $robcor.dat.
$mchine.dat contains transforms for external axes etc. but I have not seen DH table. possibly it is in not recognizable format (just a list of values in $robcor.dat).
i have not worked with Sunrise platform yet, but from what I've seen it is different from standard kss, all programming is done in Java using Workbench and special version of WorkVisual.
-
on a standard robot you can monitor current position of each axis by reading variable $AXIS_ACT. all robot information is stored in MADA which contains two files - $machine.dat and $robcor.dat.$mchine.dat contains transforms for external axes etc. but I have not seen DH table. possibly it is in not recognizable format (just a list of values in $robcor.dat).
i have not worked with Sunrise platform yet, but from what I've seen it is different from standard kss, all programming is done in Java using Workbench and special version of WorkVisual.
I have found $machine.dat and $robcor.dat, they are in the folder "C:\KRC\Roboter\Devices". But they do not capture any DH parameters. I wish I could capture screen and show it to you but I am not in the university right now.
And yes, I am using KUKA.WorkBench to program it and make it move "programmatically".
-
But from my understanding, there is a set of parameter (a, alpha, d, theta) for one position of each joint robot arm. I think they will change from one configuration to one another.I have tried looking in this forum regarding DH parameter, and there were a lot of comments that said "DH parameter are stored in $MACHINE.DAT" or "they are in folder named R1". I tried looking for them, but they are not there.
DH parameters are, essentially, a kinematic "blueprint" of the robot's construction. They do not change as the robot changes position. They do reference the "zero" position of each axis, relative to the previous/next axis, in order to have a complete 3-axis rotational transform from axis to axis.
-
I have found $machine.dat and $robcor.dat, they are in the folder "C:\KRC\Roboter\Devices". But they do not capture any DH parameters. I wish I could capture screen and show it to you but I am not in the university right now.And yes, I am using KUKA.WorkBench to program it and make it move "programmatically".
Fubini's our resident expert on this stuff, but from what I recall, the files only contain DH parameters for the wrist axes. The primary axes use a non-DH transform, for some historical reason.
Now, the iiWA is... a special case, in a lot of ways. The previous LWR model pretty much followed the classical KUKA kinematic model, except with E1 located between A3 and A4. The iiWA appears to be a complete overhaul, though, with a "start from scractch" approach, instead of modifying the existing KUKA systems. I haven't had an iiWA to use yet, so I can't speak to it in any detail.
Anyway, just what are you trying to accomplish?
-
Hi,
as already said here
https://www.robot-forum.com/robotforum/kuk…39997/#msg39997
KUKA itself does not have DH-parameters for the iiwa, because KUKA does not use them inside its controller. This has not changed for the iiwa robots with sunrise controller. But finding out a set of DHs for the iiwa should not be to difficult for a university student by applying a yard stick. Simply set all axis values to zero and measure all joint distances and angles between the joints. Or more sophisticated approach would be driving each axis individually and noting some flange position with respect to the robot base values. All these values should be on a circle. Hence using 3 of them you could calculate the circ middle point and using the circle normal vector you get the rotational axis. After calculating all rotational axes you can connect them by homogenous transformation matrices, that can of course be described by any DH-convention you like.
Fubini
-
Hi
"Or more sophisticated approach would be driving each axis individually and noting some flange position with respect to the robot base values. All these values should be on a circle. Hence using 3 of them you could calculate the circ middle point and using the circle normal vector you get the rotational axis. After calculating all rotational axes you can connect them by homogenous transformation matrices, that can of course be described by any DH-convention you like."
I have written a program that does something like this automatically, so that we can get the DH parameters of any new robot we use (not only Kuka, also ABB, Kawasaki, Fanuc, UR). It works like a charm, and I can get the DH parameters of the robot in less than 30 seconds (including robot movements). It also works if the robot is mounted on a linear axis (the DH parameters of the axis are then also calculated). Unfortunately I cannot share the program with you, as the algorithm is now part of our product...
But I also agree - it should not be too hard to determine the DH parameters by using a yardstick (or perhaps looking at the drawings of the robot to find the dimensions) and then experimenting a little. It is definitely a good idea to have some sort of visualization of the resulting model, so that you can see that your model is behaving correctly. Good luck!
/RoboticsMan
-
Hi"Or more sophisticated approach would be driving each axis individually and noting some flange position with respect to the robot base values. All these values should be on a circle. Hence using 3 of them you could calculate the circ middle point and using the circle normal vector you get the rotational axis. After calculating all rotational axes you can connect them by homogenous transformation matrices, that can of course be described by any DH-convention you like."
I have written a program that does something like this automatically, so that we can get the DH parameters of any new robot we use (not only Kuka, also ABB, Kawasaki, Fanuc, UR). It works like a charm, and I can get the DH parameters of the robot in less than 30 seconds (including robot movements). It also works if the robot is mounted on a linear axis (the DH parameters of the axis are then also calculated). Unfortunately I cannot share the program with you, as the algorithm is now part of our product...
/RoboticsManWhy, oh WHY must you tease us like this?!?!?
-
Quote
I have written a program that does something like this automatically, so that we can get the DH parameters of any new robot we use (not only Kuka, also ABB, Kawasaki, Fanuc, UR). It works like a charm, and I can get the DH parameters of the robot in less than 30 seconds (including robot movements). It also works if the robot is mounted on a linear axis (the DH parameters of the axis are then also calculated). Unfortunately I cannot share the program with you, as the algorithm is now part of our product...
Actually I have this type of code too, but can't give it to you for various reasons. Sorry for this.
-
The DH are available directly on the LBR iiwa Brochure :
-
see this paper(page 8), and presumably you just scale the lengths to match the robot?
edit: guess the link would help!
-
The DH parameters of KUKA iiwa 7 R800 [as per DH convention Distal]
Joint offset Twist Angle
1. 360 90
2. 0 90
3. 400 90
4. 0 -90
5. 400 90
6. 0 90
7. 126 -90While link lengths are equal to zero.
Difference between DH (Distal) and modified DH (Proximal)
In Distal : [Screw about z-axis (b_i and Theta_i)] * [Screw about x-axis (a_i , alpha_i)] <alpha: Twist Angle, b: joint offset, a= link length>In Proximal: [Screw about x (i-1)-axis (a_(i-1) and alpha_(i-1)] * [Screw about z (i)-axis (b_i , theta_i)] :: Given in J. J. CRAIG
Fubini: Please correct if it is wrong.
-
Hi,
it is difficult for me to correct your parameters because as stated earlier we do not use them inside the controller. Therefore I do not have the correct values either. Anyway its nice somebody mentions the convention used for his DH parameters because most people are not aware that DH parameters are not unique. The most common DH conventions are the original one stated by Denavit Hardenberg and the modified form used e.g. inside the Craig textbook. Hence talking about "the" DH parameters is nonsense.
To check your parameters the easisest way is comparing your forward kinematics result based on your DHs to the controllers result. On a standard KRC4 you could use the FORWARD() function with $BASE and $TOOL both set to $NULLFRAME or simply drive your robot to an arbitrary axis position and compare your forward kinematics result to $POS_ACT (again with $BASE and $TOOL both set to $NULLFRAME). I do not know how the same is achieved inside a Sunrise (iiwa) controller but there should be a possibilty to get the current cartesian position.
Fubini
-
Can some one please tell that where are the Kinematic and Dynamic Data for the KUKA iiwa 7 R800 robot, in the Sunrise Workbench
-
I have found $machine.dat and $robcor.dat, they are in the folder "C:\KRC\Roboter\Devices". But they do not capture any DH parameters. I wish I could capture screen and show it to you but I am not in the university right now.
And yes, I am using KUKA.WorkBench to program it and make it move "programmatically".
Hi Krittinp, I am working on the KUKA iiwa 7 R820, I have put my DH parameters on it myself. I just follow the basic rules to do that. After all, I assess my DH parameters by checking the position of the end-effector. I am curious how you can find the folder "C:\KRC\Roboter\Devices", is it in the cabinet? If so, you must have the password to assess the window?
Vinh
-
Hi Krittinp, I am working on the KUKA iiwa 7 R820, I have put my DH parameters on it myself. I just follow the basic rules to do that. After all, I assess my DH parameters by checking the position of the end-effector. I am curious how you can find the folder "C:\KRC\Roboter\Devices", is it in the cabinet? If so, you must have the password to assess the window?
VinhHello Vine,
Can you please tell the DH that you used for kuka iiwa r820, please mention joint offset, link length, twist angle and joint angle you used for forward kinematic to verify position of robo. Please mention which DH you followed, or from which book.
Thanks -
Hi Mechi,
My DH table:
d1 = l1; a1 = 0; alpha1 = pi/2;
d2 = 0; a2 = 0; alpha2 = -pi/2;
d3 = l2+l3; a3 = 0; alpha3 = -pi/2;
d4 = 0; a4 = 0; alpha4 = pi/2;
d5 = l4+l5; a5 = 0; alpha5 = pi/2;
d6 = 0; a6 = 0; alpha6 = -pi/2;
d7 = l6 + l_flange; a7 = 0; alpha7 = 0;
Joint angle is q1, q2,...,q7. l1, l2,...l6 are the lengths of links.
You may find the DH rules to put coordinate systems in most of robotics books.Vinh
-
Thank you vin,
As you are working on R820, I have simple question that as it is running on sunsystem based on Java, How do you access the 7 joint positions, cartesian pose, and joint torque value in real time to a PC via some java application. -