Hacker News new | ask | show | jobs
by jcr 3975 days ago
I was trying to avoid running off into the endless weeds of details and acronyms and talking, but oh well... ;)

I'm not very familiar with the more advance microscopy based AOI systems used on silicon and chip level manufacturing (e.g. wire bonding checks). I'm also not familiar with advanced AOI used in robotic assembly. On the bright side, I am familiar with the comparatively "simple" form of AOI used on PCB assembly lines.

With PCB's most of the AOI identification and spatial orientation issues are solved through Fiducial Marks [1] and pattern recognition. Some PCB AOI systems even read/record chip/board lettering with OCR, as well as handling Bar and QR codes. Most of the rules and routines controlling the AOI are consistently derived directly from the PCB design files, so there is little need for custom setup programming on each new PCB run.

That last point is critical; The rules and routines are automatically and consistently _derived_ from the authoritative data sources. Manually writing every tiny step in the AOI automation routines for each PCB design would never be time/cost effective, so it has never been done.

Given sufficient example 2D images, 3D scan models, or CAD files, doing the object recognition and spatial orientation with OpenCV is reasonably straight forward, even without fiducials. The extremely tricky part will be automatically deriving rules and routines for the GetScale AOI-like capabilities from authoritative data sources. If the human assembly task is to attach the top cover and secure it with four screws from the other side, you should _never_ need to manually write the AOI routine for checking the existence of a screw in each of the four corners when viewing the bottom of the product.

I'm sure you're really busy, so I think I'll stop here. ;)

If you want to know about the projects I'm working on, email would be a lot better for me. My address is on my HN profile page. Also, I spotted a few places where your website could use a little TLC, and it's better to point them out through email rather than publicly.

[1] https://en.wikipedia.org/wiki/Fiducial_marker#PCB