I want to try my luck here on the forum. I have simple program for milling with KUKA KR90 with turntable generated in RoboDK. In simulation in RoboDK is all good, but when i run program in robot, arm go to home position on robot base, so position of turntable is not set. Can someone help where to write turntable coordinates in robot controller? (KRC4). Many thanks.
Turntable coordinates (position). KRC4
-
Janek -
February 6, 2024 at 9:29 AM -
Thread is Unresolved
-
-
MOM
February 6, 2024 at 10:42 AM Approved the thread. -
What does the generated robot program look like? Is the external kinematic integrated and correctly measured in on the robot controller? Does it behave correctly without RoboDK? If so is the correct moving base activated on robot side? ...
If you want hints we had the same discussions in the past. At best use the forum search.
Fubini
-
in config.dat under BASE_DATA. Is the turntable measured and coupled with the robot?
-
Many thanks. External kinematic is integrated in controller, but i think without postition. When program start, turntable go to home postion (it rotates), but spindle go to position near robot base. If i generated same program, but without turntable in RoboDK, robot start in correct position.
I am still looking for the position of the table, but I thought that the robot was able to read the position of the table from the generated program and work in the same way as in the simulation. Evidently, the coordinates of the table need to be set in the controller, but I don't know where exactly.
Now is postion of turntable X+1800mm ;Y0; Z+185mm. Relative to base of robot.
Thanks for support. Jan
-
get familiar with the documentation, see READ FIRST.
you want to measure root point...
-
Thanks. I am an absolute beginner. So I understood that I had to have a base created. I created it. The program always resets the selected tool and base values at start. So I rewrote the values directly in the generated program. The program already selects the correct settings for base and tool when it starts, but it still goes somewhere. Please watch the attached video, at the beginning go the table correctly to zero and arm go above the "milled part". But then the arm moves away. It is not the same as in the simulation. It will be some banal problem, but I don't know how to proceed.
-
Base is a statinary frame tied to something (fixture etc.)...
kinematic is device with one or more axes:
robot is a 6-axis kineamtic.
turntable is a one-axis kinematic.
DKP is a two-axis kinematics, etc.
each kinematic has a root point. position of the kineamtic output is expressed relative to its own root points so it is important to know how the rootpoint is placed in the world.
once the root position of the kinematic is known, (alon with transform and axes positions of the kinematic) one can determine where the output of the kinematic output is.
for robot arm root point is at the center of the foot of the robot. the output point is at the center of the robot flange.
robot always assumes its own position in the world - see $ROBROOT. the TCP is defined by adding tool offset to the flange.
for other kinematics placed around the robot (turntable, positioner, other robots etc.) robot needs to know where their root points are.
this is data supplied by the user and it can be either numerically entered or measured using robot.
you always need to first integratge kinematics into MADA (axes setup, transforms, output reference point location).
but then measuring root point has advantages:
a) you don't need to know which point on the kinematcis is the root point
b) you do not need to worry if the root point is accessible (usually it is not).
c) unless you use CMM, this is more accurate. if you do not understand this, try using measure tape from the robot root point to numerically enter base. you will find that getting under the foot of the robot arm is ... difficult. therefore nobody does it like that, such measurments are only done from top and of coursde they are only approximate. this is not precise enough for anything - other than sanity checks.
so in most cases one will use root measurement. this measurement is under robot menu called measure root point and manual describes steps to do so.
basically upon selecting that menu, follow the prompts. make sure that your turntable has "pin" marked (This is reference point on the output of the kinematics).
it is a point on the output of the turntable that is NOT at the cetner of the turntable.
KUKA kinematics normally have this point marked as an "+".
you need to make sure robot knows the exact distance from pin to rotation axis of the table.
common mistake when making custom turntable is to not mark the pin and provide this value - and then you have a problems - cannot calculate the root point ....
for measuring root point you also need pointy tool on the robot, with well measured TCP.
then you bring the TCP of your pointy tool to pin of the turn table and teach the point. then you back off the robot and move the turntable to another position and repeat the process (bring the pointy tool to pin and teach the point). after teaching all the points. robot will calculate where the root point of the turntable is and its orientation.
-
In your config.dat there is no Tool or Base data.They are set in testprogramm.src. The turntable must be measured as well.
-
I think I have the root point set to the system as well. I think I just have something turned on wrong, or the program is reading incorrect values. Thanks for your time.
-
Here is actualised config.dat
And program
-
Talk to the guy who generated the programm in RoboDK. You have this at the beginning of your programm:
; Program generated by RoboDK v5.6.7 for KUKA KR 90 R2700 pro on 07/02/2024 12:06:58
; Using nominal kinematics.
; ---- Setting reference (Base) ----
; Using external axes
; $BASE=EK(EX_AX_DATA[1].ROOT,EX_AX_DATA[1].EX_KIN,EX_AX_DATA[1].OFFSET)
; $ACT_EX_AX= 1
$BASE = {FRAME: X 0.000,Y 0.000,Z 200.000,A 0.000,B 0.000,C 0.000}
; --------------------------
; ---- Setting tool (TCP) ----
$TOOL = {FRAME: X 257.000,Y 0.000,Z 61.500,A 0.000,B 90.000,C 0.000}
-
I did this program and unfortunately I don't know what is wrong. Can you open the robodk file and verify the correctness of the generated file?
Many thanks.
-
cannot open the robodk file.
-
$config.dat shows that no tool or load data.
since no tool was defined, there can be no pointer tool either and therefore no measurement of the turntable root point. this means the screenshot of root point measurement is also faked...
-
Thanks for your patience. I am trying to understand your advice. I have already correctly targeted the root point of the external kinematics. The coordinates are almost identical to what I have set up in RoboDK. The root point of the table was set in the base nr. 1. However, the arm keeps making the same mistake. Attached is the current config and the generated program.