1. Home
    1. Dashboard
    2. Search
  2. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team Members
      4. Search Members
      5. Trophys
  3. Articles
  4. Blog
  5. Videos
  6. Jobs
  7. Shop
    1. Orders
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Products
  • More Options
  1. Robotforum - Support and discussion community for industrial robots and cobots
  2. Forum
  3. Industrial Robot Support and Discussion Center
  4. KUKA Robot Forum
Your browser does not support videos RoboDK Software for simulation and programming
Visit our Mainsponsor
IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Sponsored Ads

KRC2 EK/Offset base functions

  • sam-hhi
  • June 7, 2022 at 9:05 PM
  • Thread is Unresolved
  • sam-hhi
    Trophies
    3
    Posts
    5
    • June 7, 2022 at 9:05 PM
    • #1

    Hello,

    Below is my original Query, I think I have narrowed down the problem to not having set the offset of my external kinematic system properly, or called it in the code. When I measure the offset, do I give it a different number and name from the kinematic root? Do I simply call the base data this relates to (eg. $BASE=BASE_DATA[x]) or do I need to be using $BASE=EK(...)?

    Another issue I can't understand, is when I measure the kinematic offset as the center of the turntable, I get very small values, as expected for XYZABC, but when I then call the base in a program using $BASE=BASE_DATA[x] it seems the values have been changed to the offset base, not from the kinematic root but $WORLD instead (so when attempting to move to cartesian points 0,0,0 it is on the robot base).

    I have used the external axis and programming manual and the expert programmming manual and barely found reference to exactly how you are supposed to use these functions. If someone could point me in the right direction that would be great.


    I am using a KUKA KR240L 180-2 With KRC2Ed05 on KSS5.4.14. I have a turntable using a kuka MGU, I have set up the axis configurator and calibrated the external kinematic root and can jog the turntable with the tool mathematically coupled, this all looks to work perfectly. My issue is that I want to run a machining toolpath generated in RoboDK, this simulates perfectly, but when I try to run it on the robot, rather than the turntable moving and the tool staying relatively still, the TCP moves in a circular motion, maintaining orientation with the turntable. 


    I thought this meant I need to use a kinematic offset, my understanding from the manual is that the reference will then move with the turntable, however I am struggling to understand how exactly this should be set up. If I measure the offset from the robot flange at close to the center, getting XYZABC values close to 0,0,0 0,0,0, when I try to run the toolpath the robot attempts to move to its own root, and checking on the base data I am using for the kinematic base ($BASE_DATA[17]) it has been overwritten to 0,0,0 0,0,0. The manual I am using is for KSS 5.5 as this is all I could find on KUKA Xpert. 


    The output code from RoboDK starts with a PTP, then a series of cartesian LIN moves that describe a circle, while the E1 value also rotates. I have tried flipping the root point 180 degrees, inverting the turntable direction, re-measured the kinematic root and offset numerous times. I have also had an issue when measuring the kinematic root that I get a XYZABC C=-179.9 but this does not seem to affect the mathematical coupling of a tool point on the turntable surface. I think I am not understanding the ROBROOT/WORLD>ROOT>FLANGE>OFFSET process correctly. 


    Any help would be great, apologies if there is something simple I have missed.

    Edited 2 times, last by sam-hhi: Narrowed down problem, added new information (June 11, 2022 at 10:49 PM).

  • sam-hhi June 11, 2022 at 9:20 AM

    Changed the title of the thread from “KRC2 Kinematic/Offset issue machining with RoboDK” to “KRC2 EK/Offset base functions”.
  • sam-hhi
    Trophies
    3
    Posts
    5
    • June 11, 2022 at 10:50 PM
    • #2

    Bumping this thread as I have narrowed down what my problem is. Thanks

  • hermann
    Reactions Received
    412
    Trophies
    9
    Posts
    2,624
    • June 12, 2022 at 7:01 AM
    • #3

    You should post your $config.dat and machine.dat.

  • sam-hhi
    Trophies
    3
    Posts
    5
    • June 15, 2022 at 6:38 PM
    • #4

    Attached is my config and machine files. When I look up the base info on the pendant, all the bases I have set up are listed as type 'offset' but in the config file they all look like regular bases, i'm not sure if this is the issue though. Thanks for having a look.Turntable Machine and config.zip

  • hermann
    Reactions Received
    412
    Trophies
    9
    Posts
    2,624
    • June 15, 2022 at 9:30 PM
    • #5

    in $config.dat

    MACHINE_FRAME_DAT[17]={MACH_DEF_INDEX 0,PARENT[] "WORLD",GEOMETRY[] " "}

    the mach_def_index should point to the correspondig machine_def[]. ie:

    MACHINE_FRAME_DAT[17]={MACH_DEF_INDEX 2,PARENT[] "WORLD",GEOMETRY[] " "}

    and

    MACHINE_DEF[3]={NAME[] " ",COOP_KRC_INDEX 1,PARENT[] " ",ROOT {X 2253.1001,Y 144.020004,Z 546.799988,A 180.0,B 0.0,C 0.0},MECH_TYPE #EBSYS,GEOMETRY[] " "}

    is wrong there is no #EBSYS defined in your $machine.dat, you only have one external axis. But this, may be, is no problem, because KSS ignores #EBSYS if it doesn't exist !?

  • sam-hhi
    Trophies
    3
    Posts
    5
    • June 17, 2022 at 8:17 PM
    • #6

    Thanks, I will have a look at this later, I got a $config file from a similar machine with turntable and this has the same changes in $config you have recommended. I would also like to know if I should be using the EK function like this:

    $BASE=EK(MACHINE_DEF[2].ROOT,MACHINE_DEF[2].MECH_TYPE,BASE_DATA[17]:{x 0,y 0,z 0,a 0,b 0,c 0})

    rather than:

    $BASE=BASE_DATA[17]

    Thanks again, I'll report back once I get a chance to have a go with new $config data

  • hermann
    Reactions Received
    412
    Trophies
    9
    Posts
    2,624
    • June 17, 2022 at 8:20 PM
    • #7
    Quote from sam-hhi

    $BASE=BASE_DATA[17]

    Isn't enough.

  • sam-hhi
    Trophies
    3
    Posts
    5
    • June 27, 2022 at 7:58 AM
    • #8

    Thanks for the help, I have got it working correctly using the EK function, is there another way to do this though?

  • Fubini
    Reactions Received
    283
    Trophies
    9
    Posts
    1,904
    • June 27, 2022 at 10:50 AM
    • #9

    If you use Inline forms the system would implicitly do the EK call for you by calling the appropiate bas.src functions. The same should happen if choose a base from the dropdown menu if an external base is chosen. Otherwise there is no other way. You always need EK but sometimes the system hides its usage from you if you are no expert. And as always as non expert you are not as versatile as an expert is programming.

    Fubini

  • hermann
    Reactions Received
    412
    Trophies
    9
    Posts
    2,624
    • June 27, 2022 at 12:33 PM
    • #10

    Calling bas(#base, 17) should do the job.

Advertising from our partners

IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Advertise in Robotics
Advertise in Robotics

Job Postings

  • Anyware Robotics is hiring!

    yzhou377 February 23, 2025 at 4:54 AM
  • How to see your Job Posting (search or recruit) here in Robot-Forum.com

    Werner Hampel November 18, 2021 at 3:44 PM
Your browser does not support videos RoboDK Software for simulation and programming

Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • krc5
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Thread Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • krc5
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™
As a registered Member:
* You will see no Google advertising
* You can translate posts into your local language
* You can ask questions or help the community with your knowledge
* You can thank the authors for their help
* You can receive notifications of replies or new topics on request
* We do not sell your data - we promise

JOIN OUR GREAT ROBOTICS COMMUNITY.
Don’t have an account yet? Register yourself now and be a part of our community!
Register Yourself Lost Password
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on Google Play
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on the App Store
Download