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
  5. Manuals, Software and Tools for KUKA Robots
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

Tool Probe - measuring lenght in milling aplication

  • Lukasz eF
  • February 14, 2024 at 12:28 AM
  • Thread is Unresolved
  • Lukasz eF
    Trophies
    1
    Posts
    1
    • February 14, 2024 at 12:28 AM
    • #1

    Hello, fellow robot enthusiasts. I have been reading this forum for the last 3 months and it has helped me a lot, so I would like to give something back to the community.

    I installed a probe on the robot to measure the tool length.

    All the tools that I use differ only in length and measuring them with the built-in KUKA functions is tedious in my opinion, so I came up with the idea of a probe.

    You will need: the cheapest measuring probe from AliExpress and about 2 meters of wire.

    Step 1: Ask a coworker to drill holes and screw probe to the robot in some rigid place.

    Step 2: Connect the wires as shown in the attached diagram, I used out[16] as the source of 24v and in[16].

    Step 3: I attach a simple program for measurement, I note that I absolutely do not know how to write in KRL and I did as I could. There is definitely room for improvement.

    Maybe someone will find it useful, because it is only an hour of work and it makes life easier in my opinion.


    Code
    ; TOOL NUMBER - Change here
    TOOL_TO_MEASURE = 5
    
    ; Additional lenght value
    LENGHT_ADD = 0
    
    ;FOLD MEASURE_CYCLE
    
    ; Probe turn on
    $OUT[16] = TRUE
    
    ;FOLD BASE_AND_TOOL_UPDATE
    ; Load base
    $BASE = BASE_DATA[32]
    ; Make sure Tool data is correct
    TOOL_DATA[TOOL_TO_MEASURE].X = 0 ;value to be measured
    TOOL_DATA[TOOL_TO_MEASURE].Y = -0.3 ;constant
    TOOL_DATA[TOOL_TO_MEASURE].Z = 106.6 ;constant
    TOOL_DATA[TOOL_TO_MEASURE].A = 0 ;constant
    TOOL_DATA[TOOL_TO_MEASURE].B = -90 ;constant
    TOOL_DATA[TOOL_TO_MEASURE].C = 0 ;constant
    
    BAS(#TOOL,TOOL_TO_MEASURE)
    $TOOL = TOOL_DATA[TOOL_TO_MEASURE]
    BAS(#BASE,32)
    ; To set 'Tool On Robot' Mode
    $IPO_MODE = #BASE
    ;ENDFOLD (BASE_AND_TOOL_UPDATE)
    
    ; Pre-position tool near the probe
    PTP {X 500, Y 0, Z 0, A 0, B 90, C 0, E1 0, E2 -3081  ,S'B110',T'B111011'}
    
    ;Declare interrupt with priority 20
    GLOBAL INTERRUPT DECL 20 WHEN $IN[16]==FALSE DO SUB() ;
    
    ;Start measurement
    INTERRUPT ON 20
    $VEL.CP = 0.012 ;most likely you will need to change this
    LIN_REL {X -200} ;move in direction of the probe
    INTERRUPT OFF 20
    
    END
    
    
    DEF SUB()
    ;brake
    BRAKE
    
    ; save current position in x axis, add compenstation
    TOOL_DATA[TOOL_TO_MEASURE].X = $POS_ACT.X + LENGHT_ADD
    
    ;Update tool data
    $TOOL = TOOL_DATA[TOOL_TO_MEASURE]
    
    ;Move away from probe
    $VEL.CP = 0.15
    LIN_REL {X 50}
    
    ;Turn off the probe
    $OUT[16] = FALSE
    
    ;ENDFOLD (MEASURE_CYCLE)
    END
    Display More

    To make the whole program work, I set base[32] y,z by eye in the middle of the probe and x0 exactly where the tool breaks the circuit in the probe.

    The attached program zeros the tool axis that I want to measure, so if we stop the tool in the place where the probe circuit is broken, the coordinate (in my case X) will be exactly the value that I want to enter in the tool table.

    I checked several times and the repeatability of the measurements is about 0.03 mm with $VEL.CP = 0.004

    EDIT: Im too stupid to attach images, sorry

    1.jpg2.jpg

    Edited once, last by Lukasz eF (February 14, 2024 at 12:35 AM).

  • Nation February 14, 2024 at 1:51 AM

    Approved the thread.
  • DannyDJ
    Reactions Received
    67
    Trophies
    6
    Posts
    503
    • February 15, 2024 at 6:19 AM
    • #2
    Quote from Lukasz eF

    ; save current position in x axis, add compenstation TOOL_DATA[TOOL_TO_MEASURE].X = $POS_ACT.X + LENGHT_ADD

    Here in the interrupt program, it would be good to use $POS_INT.X variable. This captures the Cartesian position of the robot at the moment the Interrupt fires, and would be good to do a check of the interrupt signal before turning the interrupt on(interrupts are edge triggered).

    Also one could wire the interrupt signal to fast measurement input.

  • hermann
    Reactions Received
    407
    Trophies
    9
    Posts
    2,612
    • February 15, 2024 at 6:41 AM
    • #3

    The program only works as standalone program and if you abort after the movement on the interrupt.

    If you want to integrate it in an application, you should use brake/resume in the interrupt routine otherwise the robot will destroy the probe.

    In that case you also have to put the movement towards the probe into a subroutine with an advamce stop or/and set $advance to zero.

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
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • 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
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Tags

  • TOOL
  • milling
  • probe
  • measurement
  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