EK function details

  • Hi,

    How can I find out more about the command/function 'EK'?
    Looking in the Integrators manual it describes how to calibrate an external axis but not how to enable the synchronicity in the src file.
    The integrators manual says to look in the 'External Axes' Manual for details, but I dont see what Im looking for there either.

  • Hi,

    The EK function is for activating geometric coupling on calibrated external base kinematics predefined in R1/$machine.dat. Hence the $BASE is attached to the flange of a external base kinematic and the robot moves together with the external kinematic (the robot is attached to the chosen external kinematic).

    Die EK-function has the following syntax:

    $BASE = EK (<Root>, <Kinematic identifier>, <Offset>)


    <Root> = Position of external kinematic root in $WORLD
    <Kinematic identifier> = #EASYS or #EBSYS or ... or #EFSYS
    <Offset> = (optional) additional offset frame from the external kinematic flange

    (for examples see bas.src on you controller, which does set the correct $BASE for measuerd in external bases).

    Geometric coupling is deactivated by assigning a different $BASE:

    $BASE = <Frame>

    For RoboTeam/Motion Cooperation there is a similar command called LK(...) allowing you to attach a robot to another robot.

    For attaching on a conveyor the EB(...) command is used.


  • Actually, that brings up something that's puzzling me. I was looking up EK in my manuals, and only found a mention of it (along with LK) in the Coop Motion manual. It also shows up in Asimo's old list of VxWorks functions: http://www.robot-forum.com/rob…programs/msg7846/#msg7846.

    But... there's a mismatch. My Coop manual shows a call to EK as being sent a Frame, a Kinematic Identifier, and an Enum. But Asimo's KInfoFinder shows the declaration of EK the same as you: Frame, KI, Frame.

    Oddly enough, my entire set of manuals for external axis integration make no mention of EK at all.

  • Are you using RoboTeam/Motion Cooperation? That's the only place I've ever seen the EK function -- I'm not even certain it's a part of standard KRL.

    What kind of axis integration are you trying to do, exactly?

    We are trying to enable a rotary table.
    Apparently it uses a kuka motor in it and is compatible.

    This robot uses Camrob

    Where is the EK function defined?
    It seems when we call it then it clobbers the contents of the $BASE variable and I get a 'work envelope exceeded' error.

    $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})

    Edited once, last by wpaynter ().

  • The EK function is a system function. It's defined inside the VxWorks binary, but some of the plaintext inside the binary can be read out.

    What you need starts on Page 50 of that manual. I don't think EK will be necessary. This should work simply by setting up an offset base and choosing when to use it or not in your program.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now