Jean-Michel Pouré - GOOZE wrote: > What I am worried about is the overall software framework on top of > LinuxCNC. Ideally, I would like to be able to use a high level language. > > The big problem with this is error recovery. I have a Philips CSM84, a similar tank-like construction machine of about 600 Kg and 3 heads. Mine has no vision, but that was an available option on this model. CPU is a 80286, although much like a PC, it is a totally proprietary Yamaha board, all software in EPROMS, and all data in battery-backed SRAM. But, it has a LOT of error recovery built in. It will wait a moment for vacuum to develop when picking up components, if insufficient vacuum is sensed, it raises the nozzle which closes the centering jaws on the nozzle and checks vacuum again, if still no good, it then goes to the dump bucket and cycles the head and vacuum a couple times to clear the nozzle and then retries picking up the next component. After a settable number of retries, it calls for help.
It also has algorithms for sensing board alignment with a "beam sensor" basically a one-pixel camera that searches for fiducial marks on the board to correct for routing errors on the exterior dimensions of the board relative to the pads. It also has the ability to pick parts out of sequential pockets of waffle trays, which I use a lot for FPGAs and such larger parts. Anyway, the error recovery built into the software helps greatly in keeping the process running. I get a LOT of errors when starting up a new board. Eventually, I get the sticking and misaligned feeders figured out and things go better, but I still have some failed pick-ups. If I had to go into LinuxCNC and edit the start point back to the right place to finish the board from the middle of the job after every failed pick-up, I'd still be making my first board. I think there are a couple YouTube videos of LinuxCNC-controlled P&P machines, so some work has been done already. > A pick and place script can be very general. > > During initialization, it needs to list all cartridges, available > components, import gerber placement file, etc ... and perform the > necessary verifications. Place the main board to be assembled and find > edges. > > Then it will try to pick-up one component and if this does not work, it > will retry twice. On some machines, it may be possible to test a > component before placement. Then comes alignment using a first camera > and then placement using a second camera. Finally verification. > > Are there attempts already to drive a pick-and-place machine using Linux > CNC and a high-level language like Python? > I think Nicholas Benezan in the Netherlands used Mach to run his home-made P&P. I think error recovery was part of the reason he has mostly abandoned that machine in favor of a commercial machine. The other reason was he was making his own feeders, a totally daunting effort. There is a Yahoo group dedicated to small-shop P&P users at picknpl...@yahoogroups.com You have to join, but it doesn't get any spam, and I think you might learn a LOT reading the back archives, which are not terribly deep, the group gets little traffic. Jon ------------------------------------------------------------------------------ November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users