KRC 2 external axis causing program errors?

Started by jschmidt, March 14, 2018, 09:01:05 PM

Previous topic - Next topic

jschmidt

Hello:

I'm working with a KRC2 and we just added an external axis to the controller. We built our own turntable and are using that.

I created a code in KUKAprc that (I think) accounts for the external axis in the KUKAprc settings and the simulation is working fine. However, when I run the program on the robot, the program only moves the robot slightly from it's start position before I get the error "software limit -A3 out of range". I changed the start position of A3 around a couple times in KUKAprc as well as made some other positioning adjustments but no luck. There's no reason that A3's position should be out of range, and the simulation and analysis both look fine.

The simulations and analysis from KUKAprc were always accurate to real-life before incorporating the external axis into the controller. Within KUKAprc, the only info I added in about the external axis was under ADVANCED > EXTERNAL KINEMATICS > ROTARY AXIS > DYNAMIC VALUE BY VECTOR > X = -1 and of course using the Turntable component under 02 Virtual Robot.

Wondering if I need to give KUKAprc more information about the external axis so that all 7 axises run smoother together?

Johannes @ Robots in Architecture

Hello,

Let's go through that point by point:

If you say that you built your own turntable, you used a KUKA motor and built your mechanics "around it", right? I.e. the control is KUKA standard?
As the next step you would calibrate your turntable, as a result you will get the XYZABC values that signify how the turntable is located in relation to the robot's base. So if X is 1500, the turntable would be 1.5m in front of the robot. Enter those values in the dropdown menu that you get from right-clicking the turntable component in PRC.
Finally you would calibrate an Offset system. That is the same as a Base system, but its zero-point is the origin of your turntable. So the values will be rather small, in the hundreds of millimeters probably. Enter the XYZABC values as a base in KUKA|prc.

Before you proceed with KUKA|prc, activate a calibrated tool and your offset base. Go into e.g. base movement mode and move the E1. The tip of the tool should stay at exactly the same position in relation to the turntable, it rotates with it. If it wobbles around, your calibration isn't very accurate. Or maybe the gear ratio is incorrect.

The dynamic value by vector works OK for some simple cases, I usually now write my own small logic to set the external axis values. You can directly set E1-E4 by right-clicking a movement component and clicking the appropriate option.

Hope that helps!
Best,
Johannes

jschmidt

#2
Hello:

Thank you! That information is helpful.
It is not a KUKA motor that we built our mechanics around - it is instead a Siemens AG Three Phase Servomotor.

When trying to calibrate the turntable with the Root Point subprogram, I received the error message "Kinematic instruction inadmissible" which means that "A non--existent external kinematic system has been assigned to the system variable "$BASE" with the function EK."

I'm assuming that means further calibration needs to be done, but if the Base is the workpiece, and the workpiece is accounted for within KUKAprc, shouldn't that mean we don't have to further calibrate it with the robot?

Johannes @ Robots in Architecture

Hello,

I may be wrong there, so please double-check, but to my knowledge you can only use KUKA motors (or let's say motors attached to a KUKA PowerPack in the cabinet) to drive a turntable synchronously.
Otherwise the E1-E4 values will simply be ignored. In your case I guess that you are controlling your external axis through maybe an analog output or serial commands to a controller? Or have got a servo driver at the bus coupler?
In that case you can set the rotation value e.g. through a Custom KRL command, but you will need to rotate your frames yourself in Grasshopper. At least the calibration should be easy, you can simply do that same as if you calibrate a KUKA turntable but write down the points. With the three points you can create a circle in Grasshopper, and the center is your rotation center and the circle's normal the rotation axis.

Best,
Johannes

jschmidt

Hello!

So my bad, I was working off of the wrong spec for the motor. It is a KUKA motor and the tag is attached, and yes, we did build our own mechanics around it.
Now, my only issue is that I am receiving the error message "kinematic instruction inadmissable" when trying to set the first point of the turntable calibration with the root point subprogram.

My only idea is that I perhaps need to calibrate the tool orientation? So far, we have only calibrated the tool position and have been using that information to mill with a custom spindle tool.

Johannes @ Robots in Architecture

Hello,

But is it synchronizing properly, as per my previous post?
I don't think it's related to the tool orientation, that should not influence it.
Can you simply teach the robot positions that involve a change in the external axis? If that also does not work, I would just call the German KUKA hotline. I guess then it's just a small configuration issue.
If that works, and the KUKA|prc file does not work, please send me the *.src and .dat file from the program (which you manually programmed at the robot, not the PRC program).

Best,
Johannes

jschmidt

Hello,

Yes it is synchronizing properly when I jog it and through a program programmed on the teach pendant.
(sorry in advance but I'm new to this) when you say "teach the robot positions", I thought that that was what I was doing when I was guiding the tool to the 4 reference positions with the Root Point program? And then when trying to do that, I receive the aforementioned error message before I can save any of the points.

Johannes @ Robots in Architecture

By teaching I mean that you "manually" program the robot - so called online-programming, where CAD is offline-programming. So rather than going through Grasshopper you create a new file on the KCP, move the robot somewhere, save it as a PTP movement, move it somewhere else, save it as a LIN movement, always with different values for the external axis. The robot should then be able to replay the movements exactly like you programmed them (relating to the positions, in between it will interpolate according to the movement type).
If that is working while PRC is not working, can post the DAT and SRC files?

Best,
Johannes

Johannes @ Robots in Architecture

After reading your post again - you already cannot calibrate the root point due to an error message?
Does it fail at the end, or at the beginning of the process?
In any case, you should definitely check with KUKA or whoever set up your robot. Probably it's just a single wrong value somewhere.

Best,
Johannes

Johannes @ Robots in Architecture

...and because of your username I somehow assumed you to be in Germany, which seems not to be the case. Sorry for that!
But if you or one of your colleagues DO speak German, I would still recommend calling the German KUKA hotline as it's free during regular office hours and they are very competent: +49 821 797 -1926
Have your robot serial number at hand, as they will ask for it.
I'm not sure how the technical support works in the US, but you can also give that a try!

Best,
Johannes

jschmidt

#10
hello,

yes I am receiving an error message when trying to calibrate at the beginning of the calibration,
so within the Root Point subprogram:

     - I can set the external kinematic system with "ExtBase Ok"
     - then I can set the measurement tool no. with "Tool Ok"
     - I can check the position of the reference mark with "Point Ok"
     - but then, when it prompts me to "move the external axes and then move the TCP... (1st measurement)", I receive the error message when I hit
         "Point Ok" for that first measurement

so I haven't even tried to run a program with the external axis yet.
However, a coworker wrote a program "manually" and the external and the other axises moved synchronously.

And yep I am actually in Detroit (german grandma) and we call the US KUKA hotline all the time so I will do that next!
Thank you for the help so far.

Johannes @ Robots in Architecture

Hello,

Hmm... Strange. I'm more "fluent" with KRC4 so it's a bit hard to troubleshoot from away. I would recommend that you talk with KUKA first, and if they cannot really help you could send me the relevant machine data, so that I can compare it with a similar robot.

And if you program it manually, it might be that the axis movements are looking fine, but when you look at the Cartesian values they are all over the place.

Let me know what KUKA says!

Best,
Johannes

mcb

We had this error also "Kinematic instruction inadmissible".. there was a setting in: Setup-> Service-> Config External Axis that we had missed, or you can edit the R1\MADA\$machine.dat file directly.


$EX_KIN should have ET 1 set to EASYS
$ET1_AX should have TR_A1 set to E1 , name of transformation can be whatever e.g"turntable"
$ET1_TPINFL should have the x value set to the distance from the centre of the turntable to your reference mark.

hope it helps..

jschmidt

Thank you so much! That solved the problem of the error message!

Now I am able to calibrate. However,  at the end of calibration, I first received a huge error measurement (600 mm) instead of anywhere close to the allowable 5 mm. So, I mastered the external axes again through Dial Mastering, recalibrated with the Root Point, and received a still massive - but not as massive as before - 328 mm error measurement.

I think this could be for two reasons: I am calibrating the external axes using a 1/2" diameter flat mill as the reference tool (and am eye-balling where the TCP on it actually is) and I have lightly collided the reference tool with the table a couple times.

I am thinking that I will remaster the robot axes (because of the collisions) and switch out the 1/2" flat mill with a tool that has a point to use as the reference tool for calibrating the Root Point. To me, 328 mm of error still seems too large even if the flat mill is what is the causing the problem, but if the robot axes were also thrown off by the collision, then that amount of error would make sense to me.

Johannes @ Robots in Architecture

#14
Hello,

You can quite easily check if something went wrong with the axes - simply test if the robot can move along a straight line. If it wobbles or deviates a lot you've got a problem, otherwise it shouldn't be in the vicinity of 300mm.
In general I'd say that most milling tools would shatter before the robot gets seriously damaged as they are quite brittle.
And is the tool calibrated correctly? I.e. if you move it in A, B or C the tip stays at the same position?

What you can also do, just for testing, is to guess the root point (move the calibrated tool into the center of rotation, display the actual position) and enter XYZ manually (is there a menu for it? otherwise in the machine data) while leaving ABC at 0.

...one more thing: When it asks you for a reference point, take the approximate distance from the center of the turntable to your calibration point as e.g. X.

Best,
Johannes