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. Yaskawa Motoman 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

Vision Guided Robot System Help Please!!

  • steveo86
  • January 26, 2020 at 2:16 PM
  • Thread is Unresolved
  • steveo86
    Trophies
    3
    Posts
    19
    • January 26, 2020 at 2:16 PM
    • #1

    Good morning, afternoon or evening depending where you are reading this from.

    I have been working on a vision guided robot system for the last few months and we have come extremely far seeing as this is the first time we have done this sort of thing. I'm using a omron FH series camera system with a omron FZ camera for the vision side of things. I'm using the new motomini robot from yaskawa for the robot side. i'm using a siemens plc for the communications between them. I'm also using a Omron anyfeeder to feed the parts to the camera system and the robot picks from the bed of the anyfeeder.

    So the issue i am having is there is a good 5-10mm variation on the pick point the robot goes to, the detection point on the camera system remains very consistant and doesn't seem to have much variation on it and the amount that is goes out i would see that point moving around which it doesn't.

    If i explain as much as i can into the process i'm hoping someone might be able to offer some help. We have set the robot to the 0,0 point of the camera by working out a set distance in pixels and driving the robot to the points and working out the difference in mm and using that to create a conversion factor between the pixels and mm. In the camera program we then use that conversion factor to send out the distance from 0,0 in mm to the plc which we then send to the robot and do calculations within the robot to make the data sent into the mm's the camera is sending. We have checked the camera output of mm to the position variable we are setting in the robot and the distance in mm's match up perfectly every single time which would imply that the data isn't being sent differently between the two. We are using the X,Y and Theta from the camera system and have checked that its not constantly out on the X position only or only the Y position or just certain angles, it seems to be out on any of them and doesn't seem to have certain position that is always a problem. The weird part is that the robot will go to a position and completely miss the part then come back to the same part and pick it up perfectly. The tool point has been set, we are using imovs as the move to get to the position needed. The speed is fairly high as we have a cycle time goal of under 3.6 seconds for the complete machine cycle as this is what it was with an operator before we changed to a vision guided robot.

    I don't know if thats enough information for someone to have a idea of what I could be doing wrong or not but any advise would be extremely helpful as i'm completely out of ideas at the moment.

  • 95devils
    Reactions Received
    230
    Trophies
    8
    Posts
    1,937
    • January 27, 2020 at 2:14 PM
    • #2

    Let me see if this summation is accurate:

    1) Did a pixel to world conversion. If the part location is at this XY pixel location the robot is here. If the XY pixel location is here the robot is here. How many points did you use?  Are you using a User Frame to match the camera angle?

    2) The data coming into the robot always matches the camera data and plc data.

    3) The robot will go to the correct location but may not be the first time. May require two or more tries.

    This last one to me is the greatest concern. Is another image acquired between the miss and the get? Is the robot is reacting on the same image/same data, does the data stay the same on a miss/get? Or does the data change? Is the camera being triggered from a robot job that is being CALLed or PSTARTed? Basically, sequentially or in parallel.

    Where are you using IMOVs?

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

  • steveo86
    Trophies
    3
    Posts
    19
    • January 27, 2020 at 7:07 PM
    • #3
    Quote from 95devils

    Let me see if this summation is accurate:

    1) Did a pixel to world conversion. If the part location is at this XY pixel location the robot is here. If the XY pixel location is here the robot is here. How many points did you use?  Are you using a User Frame to match the camera angle?

    2) The data coming into the robot always matches the camera data and plc data.

    3) The robot will go to the correct location but may not be the first time. May require two or more tries.

    This last one to me is the greatest concern. Is another image acquired between the miss and the get? Is the robot is reacting on the same image/same data, does the data stay the same on a miss/get? Or does the data change? Is the camera being triggered from a robot job that is being CALLed or PSTARTed? Basically, sequentially or in parallel.

    Where are you using IMOVs?

    Display More

    easier to quote so i can see everything to answer easily.

    1) used a grid on the camera and placed points at 500,500 pixels and also 1500,1500 pixels and drove the robot to each point noting the position of the robot on the XY axis'. Also placed a grid on the anyfeeder and matched to camera centre with points at 50mm off the centre on the XY and drove to them points after working out conversion factor to check correct.

    Not using a user frame at this moment at the robot and camera are parallel and seemed to be working ok.

    2) from everything we have been able to establish the data coming into the robot always matches the camera and plc data.

    3) yes that's the big one that we just can't get out head round. will go to the coords and miss the part completely then go back and pick the part up perfectly 2nd time around.

    Another image is taken and new data sent after every single pick even on the missed one. The data technically changes but when checking camera images and so on the data sent seems to be the same data just sent again as it has still found that part as the best one to pick.

    Camera is being triggered by the plc and then we have waits in the robot program until the data has been collected by the plc and sent to the robot then the robot goes through and does a calculation in the program to work out where it needs to go on the XY and Th.

    IMOVs are being used as the first move using P000 to move to X,Y and Rz, then IMOV on P001 to move the Z axis down to the part and then a final IMOV with P002 to move the robot up on the Z axis clear of the shaker to carry on the placing of the part with normal MOVJ and MOVL

  • WhyDoesMyRobotHateMe
    Reactions Received
    9
    Trophies
    3
    Posts
    50
    • January 28, 2020 at 4:11 PM
    • #4

    This is over my head but I just wanted to say how rad this project is.

  • 95devils
    Reactions Received
    230
    Trophies
    8
    Posts
    1,937
    • January 30, 2020 at 8:08 PM
    • #5
    Quote from steveo86

    easier to quote so i can see everything to answer easily.

    1) used a grid on the camera and placed points at 500,500 pixels and also 1500,1500 pixels and drove the robot to each point noting the position of the robot on the XY axis'. Also placed a grid on the anyfeeder and matched to camera centre with points at 50mm off the centre on the XY and drove to them points after working out conversion factor to check correct.

    Not using a user frame at this moment at the robot and camera are parallel and seemed to be working ok.

    I generally use more than two points for the camera calibration for one to account for lens distortion. But that doesn't explain the good pick the second time around.

    Another image is taken and new data sent after every single pick even on the missed one. The data technically changes but when checking camera images and so on the data sent seems to be the same data just sent again as it has still found that part as the best one to pick.

    Camera is being triggered by the plc and then we have waits in the robot program until the data has been collected by the plc and sent to the robot then the robot goes through and does a calculation in the program to work out where it needs to go on the XY and Th.

    IMOVs are being used as the first move using P000 to move to X,Y and Rz, then IMOV on P001 to move the Z axis down to the part and then a final IMOV with P002 to move the robot up on the Z axis clear of the shaker to carry on the placing of the part with normal MOVJ and MOVL

    Confused by this. I can understand the IMOV down to the part and the IMOV for the depart. The IMOV to the first position, this would be the approach, the robot could be anywhere and react on the data. That position could be anywhere depending on where the robot is at the time. If this is the case, I would not trust the reliability.

    Is the camera data being generated an absolute position or an offset? The way your first post was written I was assuming absolute positioning. That's why I asked where the IMOVs were being used.

    Display More

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

  • Lemster68
    Reactions Received
    296
    Trophies
    9
    Posts
    2,460
    Blog Articles
    7
    • January 30, 2020 at 8:26 PM
    • #6

    What kind of waits in the program? A simple timer? Or a handshake going on? Can you set up the robot to echo back the data so that the plc can verify that it matches what has been sent. Perhaps some read ahead or race of some kind is going on.

  • steveo86
    Trophies
    3
    Posts
    19
    • January 31, 2020 at 9:17 AM
    • #7
    Quote from 95devils

    yes so basically we bring the robot back to the 0,0 point and then use the IMOV to move relative from that position to the position that is sent from the camera so it always moves relative from the same position.

    We had someone from Yaskawa yesterday and the B and R axis was out possibly from the factory which wasn’t helping. Also adjusted the 0,0 position to the camera slightly and it’s night and day the difference

  • steveo86
    Trophies
    3
    Posts
    19
    • January 31, 2020 at 9:18 AM
    • #8
    Quote from Lemster68

    What kind of waits in the program? A simple timer? Or a handshake going on? Can you set up the robot to echo back the data so that the plc can verify that it matches what has been sent. Perhaps some read ahead or race of some kind is going on.

    the waits are more of a handshake. Seems the issue was the R and B axis wasn’t calibrated properly when it left the factory that was adjusted yesterday and the work home position reset and it’s been great ever since

  • steveo86
    Trophies
    3
    Posts
    19
    • January 31, 2020 at 12:39 PM
    • #9
    Quote from WhyDoesMyRobotHateMe

    This is over my head but I just wanted to say how rad this project is.

    sounds more complicated than it is. It’s very cool though I must admit. Was awesome when we first got it working, such a great feeling

  • Drpootarski
    Trophies
    3
    Posts
    5
    • February 29, 2020 at 11:56 PM
    • #10

    did you use a plc to control the anyfeeder? Any issues? Project coming up and just curious.

  • steveo86
    Trophies
    3
    Posts
    19
    • March 1, 2020 at 11:55 PM
    • #11
    Quote from Drpootarski

    did you use a plc to control the anyfeeder? Any issues? Project coming up and just curious

    yeah plc is controlling the anyfeeder sort of. tbf we are only using dispense, feed forward and feed backwards. however from what we have found is you have to load the ascii code everytime you turn it on or off. doesn't retain the code you program in so with the plc we had to have a reload ascii button to load everything up for us everytime the machine shuts down

  • Drpootarski
    Trophies
    3
    Posts
    5
    • March 2, 2020 at 12:10 AM
    • #12

    Yeah that would be fine I got it in yesterday and am sending code with no response and it is a successful send according to the plc. Even using Omron plc and there are no docs on setting up with plc only through robot which I find odd.

  • steveo86
    Trophies
    3
    Posts
    19
    • March 2, 2020 at 7:32 PM
    • #13

    i have a pdf of the user guide but don't know how much help that would be

    Quote from Drpootarski

    Yeah that would be fine I got it in yesterday and am sending code with no response and it is a successful send according to the plc. Even using Omron plc and there are no docs on setting up with plc only through robot which I find odd.

  • Drpootarski
    Trophies
    3
    Posts
    5
    • March 2, 2020 at 7:34 PM
    • #14

    I have the user guide but it only says how to set up with robot. Unless you have something different?

  • steveo86
    Trophies
    3
    Posts
    19
    • March 2, 2020 at 7:46 PM
    • #15
    Quote from Drpootarski

    I have the user guide but it only says how to set up with robot. Unless you have something different?

    the one i have i don't see anything about setting up with a robot at all. just has all ascii code and stuff to send to make the anyfeeder move and stuff

  • Drpootarski
    Trophies
    3
    Posts
    5
    • March 2, 2020 at 7:58 PM
    • #16

    well if you want to attach I would take a look at it.

  • steveo86
    Trophies
    3
    Posts
    19
    • March 2, 2020 at 8:39 PM
    • #17
    Quote from Drpootarski

    well if you want to attach I would take a look at it.

    AnyFeeder_UsersGuide_en_201707_R235I-E-02_tcm849-116241.zip

    hopefully this worked and hopefully it is of help to you

  • Drpootarski
    Trophies
    3
    Posts
    5
    • March 2, 2020 at 8:44 PM
    • #18

    worked great. Thank you. I will take a look when I get to the office.

  • steveo86
    Trophies
    3
    Posts
    19
    • March 2, 2020 at 8:49 PM
    • #19
    Quote from Drpootarski

    worked great. Thank you. I will take a look when I get to the office.

    no problem best of luck. If you have any issues i have the guy who helped us set up the anyfeeder coming in to my place on wednesday. if you let me know what issue you're having he may be able to offer some advise

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

  • Tips for buying used robots

    • yogesh
    • August 19, 2010 at 5:57 AM
    • General Discussion of Industrial Robots Only

Tags

  • vision
  • omron
  • motoman
  • vision guided
  • motomini
  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