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. General Category - Robot Forum
  4. Robot Geometry, Linear Algebra, Forward and Inverse Kinematics
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

Saw blade calibration on robot arm

  • Darius Grigaliunas
  • May 22, 2024 at 10:12 AM
  • Thread is Unresolved
  • Darius Grigaliunas
    Reactions Received
    1
    Posts
    2
    • May 22, 2024 at 10:12 AM
    • #1

    Hello everyone,

    Have a robot arm with attach spindle motor and saw blade (see attached image). Having issues with tool angles. Because saw blade has radius of 26 cm, small angle error (~1 degree) in TCP (center of saw blade), results in significant position, angle errors on saw blade edges where the actual cutting is happening.

    Most tool calibration techniques only calculates TCP position and disregards orientation error. Maybe someone has experience with similar tools and can share ideas/techniques how tool orientation can be calibrated?

    Thanks in advance!

    Edited once, last by Darius Grigaliunas (May 22, 2024 at 10:44 AM).

  • Online
    SkyeFire
    Reactions Received
    1,051
    Trophies
    12
    Posts
    9,423
    • May 22, 2024 at 3:36 PM
    • #2

    Well, there's a few ways. I think in your case, grabbing a dial indicator and doing it iteratively might be the best way to go.

    I would lock the saw blade so it doesn't turn (if possible), and put some sharpie lines on it parallel with where you want the X and Y axes to be.

    Then create a program that touches one end of the X axis mark to the dial indicator, then moves to touch the other end of the X axis mark to the dial indicator. Zero the dial indicator at the first point, run the program. Based on the distance between the touch points, do something like $TOOL_DATA[1] = TOOL_DATA[1] : {X 0,Y 0, Z 0,A 0, B 0.1, C 0}, where the B value is how much you want to adjust the rotation of the TCP around its own Y axis. Repeat until you have the dial indicator showing the same value at both points.

    Then repeat the process along the Y axis, making changes to C to adjust the rotation around the X axis.

    The Z axis of the tool (going by your illustration) will be mostly irrelevant, except that you'll want to make sure your "touch points" are programmed along the Tool X and Y axes when you start.

    Note: this process works, but there are limits. Eventually you hit a point where improving X disimproves Y, and vice versa, so you'll need to find the best "happy medium" you can live with. Also, this technique depends on the saw blade being flat, and not rotating while you do this process. If the saw blade has any imperfections, you might need to program the motion to drag the dial indicator along the surface rather than just touching at two points, to ensure you get good data.

  • Lemster68
    Reactions Received
    299
    Trophies
    9
    Posts
    2,467
    Blog Articles
    7
    • May 22, 2024 at 4:07 PM
    • #3

    Why is the TCP in the center of the blade? This is the reason that the cutting edge can be off the intended path. I suggest to make the TCP the actual point on the blade that does the cutting.

  • Online
    SkyeFire
    Reactions Received
    1,051
    Trophies
    12
    Posts
    9,423
    • May 22, 2024 at 4:25 PM
    • #4
    Quote from Lemster68

    Why is the TCP in the center of the blade? This is the reason that the cutting edge can be off the intended path. I suggest to make the TCP the actual point on the blade that does the cutting.

    Excellent point. Ideally, the TCP should be at the point of contact. Of course, depending on how deep the blade is cutting, that could be a bit tricky -- should the TCP be at the center of the chord, or at the leading end of the chord?

  • Darius Grigaliunas
    Reactions Received
    1
    Posts
    2
    • May 23, 2024 at 8:34 AM
    • #5

    There are various cuts based on material design. And robot might need to cut with different edge of the blade depending on cut position and robot reachability.
    Besides, I don't think moving TCP to the edge, would solve this. Right now main issues is that when cutting along a line, saw blade moves sideways. And on longer and/or deeper cuts that increases friction between the side of a blade and material, resulting in stopping the blade completely.

    How it should move along a line. Saw blade moves from right to left in this image (top view, yellow part is the material):

    How it actually moves (exaggerated):


    One idea we are thinking of is to put Inclinometer (or multiple for different axis) sensor (for example) on spindle motor to see angle errors and make corrections. Haven't used them before so wondering what is your opinion about that.

  • hermann
    Reactions Received
    406
    Trophies
    9
    Posts
    2,609
    • May 23, 2024 at 8:56 AM
    • #6

    If the view really is top view, and you can't change the cutting position, I think an inclinometer won't help. As it can't measure the direction of deviation.

    A procedure skyefire described could help, how did you already try to calibrate orientation of tool? There exist at least two standard procedures to calibrate tool orientation.

  • Darius Grigaliunas
    Reactions Received
    1
    Posts
    2
    • May 23, 2024 at 11:29 AM
    • #7

    Till now we did standard ABB robot arm joint calibration and TCP position calibration as described in RoboDK docs. TCP orientation is just rotated 90 degrees relative to robot flange.

    Seems like angle errors comes from joint inaccuracies, as angle error changes when moving tool along single axis.

    We also did some custom calibration where we used laser distance sensor and collected real distances to the blade surface and theoretical distances using virtual environment. Did some optimization on that and got orientation offset which improved angles but not as much as we would like. Initially angle error could go up to 1.3 degree, now getting up to 0.7 degree error depending on joint configuration and where tool is pointing to. Preferred error is up to 0.2 degree (based on saw blade diameter).

    Accidentally missed SkyeFire first comment. Thanks for the idea, will give that a try.

    Edited 2 times, last by Darius Grigaliunas (May 23, 2024 at 11:45 AM).

  • Online
    SkyeFire
    Reactions Received
    1,051
    Trophies
    12
    Posts
    9,423
    • May 23, 2024 at 2:50 PM
    • #8
    Quote from SkyeFire

    do something like $TOOL_DATA[1] = TOOL_DATA[1] : {X 0,Y 0, Z 0,A 0, B 0.1, C 0},

    This is KUKA syntax, which won't work on an ABB. For ABB, you'll probably need to use PoseMult() and OrientZYX system functions to achieve the same effects.

  • Online
    panic mode
    Reactions Received
    1,278
    Trophies
    11
    Posts
    13,079
    • May 23, 2024 at 5:32 PM
    • #9
    Quote from SkyeFire

    Well, there's a few ways. I think in your case, grabbing a dial indicator and doing it iteratively might be the best way to go.

    that works in good hands but even then it can take long time. i like to think of any cutting tools as consumables that get replaced frequently and therefore could/should be measured automatically.

    one can write program that brings robot to 3 points and trigger touch probe. then it is simple to calculate two vectors from those three points. and doing cross product of those vectors gives you the vector that is perpendicular to the blade and you are done. this would be not just convenient but also VERY accurate.

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • Lemster68
    Reactions Received
    299
    Trophies
    9
    Posts
    2,467
    Blog Articles
    7
    • May 24, 2024 at 2:28 PM
    • #10
    Quote from Darius Grigaliunas

    There are various cuts based on material design. And robot might need to cut with different edge of the blade depending on cut position and robot reachability.

    You are free to use as many TCP's as are necessary.

    It sounds to me like much of your issue (other than using the cutting edge of the blade as the tcp) is due to backlash in the joints. I am going to guess that the speeds used while cutting are slow as well. With that being said, you might be able to use some servo tuning to get netter results.

    You might want to change the Motion Process Mode to Low Speed Stiff Mode If I made the correct assumption that your cutting speeds are slow.

    You can read up on these things in the System Parameter reference manual.

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

  • angle
  • TOOL
  • calibrate
  • orientation

Users Viewing This Thread

  • 1 Guest
  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