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

Reply via email to