OpenCV vision with EMC/linuxcnc

More
16 May 2012 20:46 #20157 by edsimmons
HI EMC forumites,

I'm really sticking my neck out here, but I'd like to start the ball rolling with the pick and place guys... I'm a vision systems designer and I'm familiar with openCV, I've got an engraving machine and use EMC. Combined with the fact I design and build a lot of high spec electronics, a pick and place machine seems a logical progression.

I've read as much as I can find on integrating vision into EMC, I'm keen to make a start but I'm not familiar enough with EMC's structure to get things going.

Is there anyone out there who is willing to collaborate on this work? Ideally any willing volunteers would have an in depth knowledge of the core of EMC. I'm happy to contribute the eventual works back to the EMC/linuxcnc community.

I hope we can make a really solid platform for intelligent vision systems in EMC, the pairing of OpenCV and EMC seems to good to overlook.

My email is This email address is being protected from spambots. You need JavaScript enabled to view it. - I'm keen to hear from anyone who's interested in helping out...

Best regards,
Ed

Please Log in or Create an account to join the conversation.

More
17 May 2012 00:37 #20161 by cmorley
Can you explain how you see the control loop working?
Does the openCV just send a simple signal back to linuxcnc or complex movement commands?

Please Log in or Create an account to join the conversation.

More
17 May 2012 00:48 #20163 by andypugh
cmorley wrote:

Does the openCV just send a simple signal back to linuxcnc or complex movement commands?


I imagine it would provide measured positions in a HAL component, for example fiducial line co-ordinates.
But I agree, the first part of the puzzle is to work out what the camera is for.

Please Log in or Create an account to join the conversation.

More
17 May 2012 07:08 #20168 by edsimmons

cmorley wrote:
Does the openCV just send a simple signal back to linuxcnc or complex movement commands?

I imagine it would provide measured positions in a HAL component, for example fiducial line co-ordinates.
But I agree, the first part of the puzzle is to work out what the camera is for.


This is exactly why I thought I should publicly announce my intention of working on this - the ideas will hopefully be free flowing and we can quickly pick a sensible route.

I can write imaging routines that will find chosen objects in machine coordinates, i.e. fiducials, SMT components etc. I'd also propose functions for measuring rotation of parts for pick'n place.

I'm flexible, can implement this in any way that suits EMC and our needs - I'd just like some clear direction before I get too busy with it.

Building numerous small functions into a HAL component seems the best way to go - looking at the HAL layer, it's seems ample for my needs.

Thanks for looking...

Ed

Please Log in or Create an account to join the conversation.

More
23 May 2012 11:44 #20281 by btvpimill
I wish I could offer wisdom in the LinuxCNC area, but alas I am still much a newbie here.

I can offer first hand insight to how MY commercial PnP works. It seems the vision section provides offsets to the control for 2 things -

1) when a new board is loaded, the control sends the fudical camera over to "measure the board using the board fudicals. This in turn gets recorded as a global offset for the session. It easures both X and Y position, also theta or board rotation.

2) There is a second (and in my case a third for larger parts) camera that takes a picture of each component before it gets placed. This part of the system compares the part to a package definition for the part being placed and in turn seems to provide offset info simular to the 1st step; X,Y and Theta. As a secondary thing, it also confirms there is a part and the part is good. ie: if a pin is bent outside the package def it will trash the part and get a new one.

A good PnP should have 2 cameras to work as described above.

Now in a milling or lathe operation, Assuming we can achieve the same accuracy as my PnP, I could see a camera checking parts before maching takes place much like step 1 above. This would be a HUGE HUGE thing in the machiine industry. I can't tell you the number of parts I have had to scrap simply because an operator loaded it wrong and hit go.

Next could be a visual inspection function, like a poor mans CMM. Here the vision system would just provide coordinates of features that can be either compared to a referance or spit out an inspection sheet.

In a lathe, diameters and features could be checked and maybe re-cut if not up to snuff. Again here the camera would provide dimensions.

And last thing I can think of for now, a simple tool height gage/tool checker. Here the camera would be mounded in a fixed location and the tool presented to it. If its a new tool, the tool offset would be calculated. If it isan in use tool, it could be looked at to see if broken or worn.

So based on this long post - my opinion to the question of "what will the camera be for", is a vision system able to provide measurements/dimsions in what ever form LinuxCNC needs them. At a minimum this will be X,Y. But woud be GREAT if theta can also be done.

I am more than willing to help in any way I can to help with this goal. I think this could put LinuxCNC so far ahead of every thing else (not that it isn't already).

Please Log in or Create an account to join the conversation.

More
23 May 2012 11:59 #20282 by BigJohnT
btvpimill wrote:

Now in a milling or lathe operation, Assuming we can achieve the same accuracy as my PnP, I could see a camera checking parts before maching takes place much like step 1 above. This would be a HUGE HUGE thing in the machiine industry. I can't tell you the number of parts I have had to scrap simply because an operator loaded it wrong and hit go.


A camera inside of a VMC or a Lathe would last about 30 seconds till coolant got on the lens and it could not see again. I've installed cameras on production lines and they are a constant maintenance headache. One camera we installed in a "cleaner" area of the production line lasted 2 shifts before they turned it off... turns out the operators would put a mark on the part up stream for some reason and when it got to this station they squirted it with alcohol to clean the mark off. The splatter covered the lens in no time.

John

Please Log in or Create an account to join the conversation.

More
23 May 2012 12:14 #20283 by btvpimill
There ya go being all practical and what not :)

You mean since I can't even see through the doors, The inside mounted camera would be blind also? Hmmm thats a tough nut to crack. Now you got me thinking about scara mounted camera to move in when needed much like my touch probe does on my lathe..

Please Log in or Create an account to join the conversation.

More
23 May 2012 12:32 #20284 by andypugh
BigJohnT wrote:

A camera inside of a VMC or a Lathe would last about 30 seconds till coolant got on the lens and it could not see again


It might be possible to cover the lens except during tool changes.

I am actually curious about how good a camera + vision system would be as an automated tool-length measuring system. It seems stupid on the face of it, but webcams are so very cheap.

Please Log in or Create an account to join the conversation.

More
23 May 2012 12:49 #20286 by BigJohnT
I don't know much about web cams but the cameras we use can measure the length of an object accurate enough for a tool offset depending on the lens and lighting of course. I can only assume that the measuring ability is partly in in the software the camera uses and partly in the quality of the lens used. The cameras we use have all the software built in and use a network cable and your browser to set it up. Cameras also depend greatly on good lighting and that is a whole nuther black art so much so that we send the parts to the "expert" and they experiment with lighting of various color and intensity and location until the camera can see the "feature" we want.

In any case we try and talk the customer into anything but a camera as a solution when possible due to the maintenance of keeping the camera up and running.

John

Please Log in or Create an account to join the conversation.

More
23 May 2012 12:55 #20287 by andypugh
BigJohnT wrote:

The cameras we use have all the software built in and use a network cable and your browser to set it up.


And a Playstation controller?
I worked for a company that was an integrator for the Keyence cameras, and did the training course, but we never installed one as far as I recall.

Please Log in or Create an account to join the conversation.

Time to create page: 0.094 seconds
Powered by Kunena Forum