Vision Guided Robot System Help Please!!

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

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

  • 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

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

  • 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

  • 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

  • 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

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

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

    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.

  • 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

  • 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