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. Fanuc 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

IRVision - Precision Pick and Place

  • AlexMac
  • August 27, 2024 at 6:06 PM
  • Thread is Unresolved
  • AlexMac
    Reactions Received
    1
    Trophies
    1
    Posts
    49
    • August 27, 2024 at 6:06 PM
    • #1

    Hello guys! I have been struggling with this for a while now, even posting about it here until I've stopped working on it for almost a year. Now this thing is back to haunt me once more....

    With a FANUC LR Mate 200id/14L IRVision 2D Pick and Place application with 2 cameras. One is mounted on the robot for part location and another in a fixed position for tool offset. The issue is 500~600 microns offset in the X-axis. Y and R are pretty acceptable.

    Application overview:

    1. Robot located the part roughly using found position;
    2. Robot moves with the camera where the part was located, centering on its FoV to minimize lens distortion, then runs the same job to locate the part again;
    3. Robot moves with the gripper to the part's position and performs the picking operation;
    4. Robot moves to the UF located on the center of the fixed camera to get the Tool offset, which should be very small (which is for R and Y but not for X).


    Applications Details:

    • All UF were created using AGFS. The UF where the part is located has a scale of 0.04mm/pix with a mean error of 2.1pixel and max 5.58 pixel;
    • The TCP was set using a CAD model and then manually fine-tuned to minimize W and P deviations due to the physical assembly of the gripper;
    • The Vision Data was created using a 2-plane calibration, with a scale 0.045mm/pix, mean error of 0.258 pixel and a maximum of 0.872 pixel. The standoff distance is 120.7mm.
    • The vision job was made using Window Shift with GPM and then Combination Locator with a set of Position Calculations to precisely locate the part geometric center.
    • The part Z height is set on both the picking UF and also for the Tool Offset.
    • The part's weight is negligible, very light.
    • The robot looks pretty much aligned and has not been into serious crashes. I ran Vision Master Calibration last year and it did make a difference on the results.

    The Pick Operation:

    I basically use 3 PRs to perform the picking operation. I store the Found Position coordinates in PR[99]; I have a PR[3] set to 0,0,0,180,0,0 NUT 000 and another one just for the height offset approach which is PR[5] set to 0,0,-50,0,0,0 NUT 000.

    I perform a J PR[3] FINE + Offset PR[99] + Tool Offset PR[5]

    Followed by a L PR[3] FINE + Offset PR[99].

    Once I am in position I wait 500ms and turn the vacuum on, wait 1 second and then I do:

    L PR[3] FINE + Offset PR[99] + Tool Offset PR[5]

    Then I move to the fixed camera and run the Tool Offset job.

    The idea behind the application is that I locate the part's feature, and move the TCP to that coordinate so I can pick it up. Then once the part is picked I move the robot to the fixed camera UF which is centered with the fixed camera. At that stage, the Robot's TCP, the part's feature and the fixed camera UF are all aligned, with minimal error, which matter of fact is for Y and R ( between 60 to 110 microns offset for Y), but for some reason that I can't figure it out the X is way much higher, ranging between 550~600 microns and it is quite consistent, so it is not some pickup error due to the part jumping on the gripper or something (which it isn't ).


    Anyways, if anyone has ever dealt with this kind of problem, please help me out here.:tired_face:


    Thank you!

  • AlexMac
    Reactions Received
    1
    Trophies
    1
    Posts
    49
    • August 27, 2024 at 9:22 PM
    • #2

    New information: The offset error is consistent with the X-axis of the UF. So, if the part is resting at 0/180 in the tray and then I pick up, the Tool Offset will be at the X axis, however, if I rotate the part at 90/-90 in the tray and then pick up, the Tool Offset will now be at the Y axis of the tool.


    I've already tried to recalibrate the Camera Data and also run AGFS again but the problem persists.

    Edited once, last by AlexMac (August 28, 2024 at 12:36 AM).

  • gpunkt
    Reactions Received
    119
    Trophies
    6
    Posts
    456
    • August 28, 2024 at 9:15 AM
    • #3

    Is your reference position/pick position in the vision process set to 0,0,0,0,0,0 in the offset frame used?

    Why are you not using vision offset?

  • HawkME
    Reactions Received
    567
    Trophies
    10
    Posts
    3,268
    • August 28, 2024 at 7:07 PM
    • #4

    500 microns = 0.020 inches.

    Articulated arm robots don't claim to be that accurate. Repeatable, yes, but they generally won't achieve accuracy better than that for dynamic applications.


    There are some robots that can achieve higher accuracy with calibration, but I don't believe that's on option on the LR Mates.

    You may be able to use the vision adjustment command to tweak it in.

  • Online
    Nation
    Typical Robot Error
    Reactions Received
    522
    Trophies
    9
    Posts
    1,901
    • August 28, 2024 at 8:05 PM
    • #5
    Quote from HawkME

    500 microns = 0.020 inches.

    Articulated arm robots don't claim to be that accurate. Repeatable, yes, but they generally won't achieve accuracy better than that for dynamic applications.


    There are some robots that can achieve higher accuracy with calibration, but I don't believe that's on option on the LR Mates.

    You may be able to use the vision adjustment command to tweak it in.

    It's possible, but you have to iterate in. I just got off a job where we were doing +/-0.005", but it took about 12 iterations to get there.

    We also used vision offsets to do it. The job was very similar to AlexMac's process. Pick part with vision, go to stationary camera, find where we picked up the part (iteratively), store that tool offset in a PR, go to the place position, find it with vision (again iteratively), and place with the iRvision offset, and the tool offset applied to the place position.

    Check out the Fanuc position converter I wrote here! Now open source!

    Check out my example Fanuc Ethernet/IP Explicit Messaging program here!

  • AlexMac
    Reactions Received
    1
    Trophies
    1
    Posts
    49
    • August 28, 2024 at 8:31 PM
    • #6
    Quote from gpunkt

    Is your reference position/pick position in the vision process set to 0,0,0,0,0,0 in the offset frame used?

    Why are you not using vision offset?

    Hello! Thanks for your input! The Pick position is set to 0,0,0,180,0,0 with the Offset set to the Found Position on the Vision Job.

    I am not using Vision Offset because I find the part using Found Position, not Fixed Frame Offset.

  • AlexMac
    Reactions Received
    1
    Trophies
    1
    Posts
    49
    • August 28, 2024 at 8:33 PM
    • #7
    Quote from HawkME

    500 microns = 0.020 inches.

    Articulated arm robots don't claim to be that accurate. Repeatable, yes, but they generally won't achieve accuracy better than that for dynamic applications.


    There are some robots that can achieve higher accuracy with calibration, but I don't believe that's on option on the LR Mates.

    You may be able to use the vision adjustment command to tweak it in.

    What bugs me is that is accurate enough in one axis and the other one is not, so I think I might be missing something or something is wrong with the robot....

  • AlexMac
    Reactions Received
    1
    Trophies
    1
    Posts
    49
    • August 28, 2024 at 8:36 PM
    • #8
    Quote from Nation

    It's possible, but you have to iterate in. I just got off a job where we were doing +/-0.005", but it took about 12 iterations to get there.

    We also used vision offsets to do it. The job was very similar to AlexMac's process. Pick part with vision, go to stationary camera, find where we picked up the part (iteratively), store that tool offset in a PR, go to the place position, find it with vision (again iteratively), and place with the iRvision offset, and the tool offset applied to the place position.

    That's awesome, Nation! Were you using Found Position as well to find the part? How were you adjusting the pick position? Regarding the parts to be picked, were they in a fixed position or could they vary in position/orientation?

  • Online
    Nation
    Typical Robot Error
    Reactions Received
    522
    Trophies
    9
    Posts
    1,901
    • August 28, 2024 at 9:04 PM
    • #9
    Quote from AlexMac

    That's awesome, Nation! Were you using Found Position as well to find the part? How were you adjusting the pick position? Regarding the parts to be picked, were they in a fixed position or could they vary in position/orientation?

    Pick position was adjusted using a fixed frame offset. We used the vision offset method. No iteration on the pick. Parts could vary in X, Y, and Rz.

    Once the part was picked, we used the stationary camera, and a tool offset vision process to find where the part landed on the gripper. Iterated here until the error was low enough to proceed. Found vision offset was stored into a PR for the drop position.

    Code
    J P[1:Camera Snap] 15% FINE Tool_Offset,PR[75:Vis Tool Offs]    ;
    VISION RUN_FIND 'VIS_TOOL_OFFSET'    ;
    VISION GET_OFFSET 'VIS_TOOL_OFFSET' VR[9] JMP LBL[999] ;
    PR[75]=VR[9].OFFSET ;
    !Repeat above until PR[75] stabilizes. ;

    At the place position, we used fixed frame offset again. Iterated the camera shot here as well. Placed using the stored tool offset, and the found offset.

    Code
    L P[1:Drop Pos] 100mm/sec FINE VOFFSET,VR[1] Tool_Offset,PR[75:Vis Tool Offs]  ;

    Also, I forget to mention that this was done using a LR Mate 200iD/4s. Those are pretty tight coming out of the factory.

    At no point did I use the found position.

    Check out the Fanuc position converter I wrote here! Now open source!

    Check out my example Fanuc Ethernet/IP Explicit Messaging program here!

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

Similar Threads

  • iRVision - Accuracy changes with Part Rotation

    • AlexMac
    • July 29, 2023 at 7:52 AM
    • Fanuc Robot Forum

Tags

  • IRVIsion
  • Pick and place
  • IrVision 2d
  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