Move only robot of a robot-track combination

  • Our system is KRC4 8.5.7 HF1 and KR 90 R3100 extra HA.
    The robot will be mounted on a linear track, custom made, but with Kuka motor.
    In our application the robot wil have to go to a position 1 in the cell to do a job.
    For this position the robot axes as wel the track wil have to be on the right position.
    But there is also a position 2, where the robot will exchange its tool.
    But position 2 is connected to the flange of the track. Also the robot must be able to to go to position 2
    no matter where he is on its track. So it has to be trackposition independent (contrary to position 1).
    If I teach position 2 (with touchup), the trackposition wil be tought in to. So executing a motion
    to the tought position 2 will also move the track to the position where i touched up.
    What I want is that the robot axes go to the tool exchange position but that the track stays where it is.
    The only way I achieved this so far (in simulation) is by teaching position 2 as E6AXIS position and when
    executing the PTP motion only use the A1 to A6 values, not the E1-E6 values.
    Is that the only way to achieve my goal, or are there other (better) ways of programming this situation?

    Thanks.

  • Depends. Is this 7th axis kinematically integrated? If not, you could try switching it into Async mode temporarily for the tool-change program.


    The main issue here is with Inline Form programming. IFs create a good "easy mode" for programming KUKAbots, but create roadblocks for doing things like this. The main reason being that whenever you create a motion using the pendant menus, the point is created as en E6POS, which includes all the External Axes values. And even if you delete the Ex values, using TouchUp will re-write them back in.


    As I mentioned above, putting the E1 axis into asynchronous mode at the beginning of the tool change program (and putting it back into synchronous mode at the end!) would probably be the easiest answer. But another technique would be to go into the .DAT file of your tool change program, and declare the points as POS instead of E6POS, or AXIS instead of E6AXIS. You have to do this by hand, but once you have, the Inline Forms will not change the variable type, and won't fill in any Ex values when you TouchUp. Usually you would DECL the points first (remember to add the X prefix that the IFs want), then create the motions in the .SRC with Inline Forms. However, you can probably go into your existing program, change the E6POSs to POS, and delete all the Ex values, keeping the XYZABCST values. That should work too.

  • The 7th axis (linear track) is kinematically integrated. Because this is the $robroot system, I suppos it cannot be set in the program to Async mode.
    I succeed in saving the positions for the tool change in POS variable. Moving to this position succeeds as long as the track is at the same position as when teaching the position for tool change. If I put the track at another position and then want to move the tcp of the robot to toolchange position while the track must stay stationarry, I get an error before the motion starts : KSS01447 Software limit switch point cannot be reached +A4.
    What axis that signals a software limit switch warning depends on where I put the track.
    What does work is saving the tool change position in Axis variable. Then the robot goes to the position while the track remains at its position.
    The problem here is that besides the endpoint for toolchange, there are also some motion to an offset (geometric operator) of the tool change position. And to use an XYZ-offset the endpoint should be in XYZ-format (POS or E6POS).
    Another question, I saw that my BASE_DATA[1] is linked to the flange of the linear track. I was thinking if I teach the tool change point to base 1, maybe it would be stationary to the track, but using base 1 in my case generated error KSS01582 Kinematic assignment indamissable.

  • Mmm... all Bases are offsets relative to $WORLD, and on a kinematically integrated rail, $WORLD is "dismounted" from the base of the robot and "mounted" to the 0 position of the rail.


    So, even if you make your position a POS, the XYZ values are relative to $WORLD, not to the $ROBROOT.


    So, we need to offset your position to correct for this. Creating a new Base just for the tool-change program, then offsetting that base by the value of $POS_ACT_MES.E1, might do the trick. So, assuming your Base has the X+ axis parallel with the + direction of E1, something like:

    Code
    DECL FRAME _fShift
    $BASE=$NULLFRAME ; set to $WORLD
    _fShift = $NULLFRAME ; set to 0
    _fShift.X = $POS_ACT_MES.E1
    $BASE = $BASE : _fShift ; 6DOF transform

    Something like that should work.


    Or, it might be possible to use the difference between $WORLD and $ROBROOT (which is "live" in $ROBROOT_C) for your offset.


    Or... I never tried this, but if you dynamically set your tool-change Base to $ROBROOT (which is always the bottom center of Axis 1), at the beginning of the tool-change program, that just might work.

  • As I tested it in Office Lite, a solution would be to teach the tool change position with a base that at that moment is equal to $robroot_c,
    an when executing the motion (when program is running) to the tool change position setting the base to $robroot_c at that moment.
    For the toolchange position, I use the POS format.
    Another solution is teach the point in AXIS format. But with the disadvantage that I cannot directly use offsets on the AXIS point to create approach positions.
    It seems the X-axis of the robot ($robroot) is standard aligned with the transportation direction of the track when the track is kinematically coupled to the robot. Just wondering, is it advisable to keep the X-axis of the robot in that direction? As with a standalone (no track) robot the x-axis comes out forward from the connection box of the robot. In our situation the robot will be mounted at 90° to the track, so X-axis will also be 90° rotated to standalone situtation.

  • You can mount the robot atop the rail any way you like. The KUKA KL-series rails, for example, usually support 8 mounting orientations (one every 45deg).


    The critical element is tuning your linear axis, and setting your MADA values correctly to match the way the robot is mounted. This may require some iterative testing and tuning.

Advertising from our partners