The Story So Far…
OpenPnP – Open Source Pick and Place
January 15, 2010 11:05 am [8 Comments]
Mission
OpenPnP is a project to create the plans and a prototype for a completely open source pick and place machine for the hobbyist level of engineer. What MakerBot did for open source 3D printing I want to do for open source PCB pick and place.
Design Goals
- Under $1000 to build and get started.
- Uses commonly available parts that are available in small quantities.
- Big enough to handle a full panel of PCBs, small enough to fit on a table.
- Able to “pick” parts from non-industry part sources; as simple as a tray full of parts in a single layer.
- Also able to handle common industry part sources such as TR.
- Resolution of .001″ or better.
- Camera on head for part alignment and visual inspection.
- Software for creating part outlines and defining jobs.
Components
- 4 axis CNC consisting of linear bearing rails for X, Y, Z. Head includes a fourth axis A for turning the picked up part.
- Ball screws where possible. Accuracy is a must.
- Servo motors if possible for accuracy. May not be economic. Stepper motors are generally very accurate as well but can lose steps.
- Custom “motherboard” that handles stepper motors, home switches, camera interfacing. A high power, 32 bit MCU might be useful here.
- Good home switches for repeatability. Setting home every time you do something sucks.
- Camera sensor mounted on head for part alignment. This will be very important for “random” part pickup. Goal of the camera is to identify the outline of a picked part and to identify “pin one” for the part.
- Light source for camera.
- Rails on sides for holding part feeders. Each rail has a power + signal connector for e.g. tape advance.
- Built in vacuum source for part pick up / holding.
Ideas
- The idea of “random” part pick up is important. Most hobbyists cannot afford to purchase parts in bulk and even if they could they are generally not making hundreds of a particular board. Parts should be able to be dumped in a tray and as long as they are in a single layer (not stacked) should be able to be picked and aligned. This seems easy, but might be hard.
- The feeder area of the machine should be simple enough for new feeders to be invented and deployed. Feeders will need a mount point, a pick up point and a basic electrical connector for e.g. tape advance.
- Use something like MakerBeam to build as much as possible so that it can be customized and is strong and stable.
- Use a ferrous table or sheet so that boards can be held magnetically. Fixtures can consist of sheets with magnets that can be dropped in.
- Use a computer power supply to run the whole thing if possible. Easy and cheap to source.
- Head may need to be pressure sensitive. There might need to be some “give” somewhere to allow for differences in manufacturing tolerances on part height.
Roadmap
- Design and build frame and axes.
- Design and build head.
- Add CNC components: steppers, linkages, home switches.
- Add camera and optics.
- Software.
- Feeder options.
Resources
- Blog posts and work log in the OpenPnP category.
Get Involved
OpenPnP is still in it’s fledgling stages. Currently I am working on the basics of the cartesian robot. I am interested in talking to people who have experience with OpenCV and other computer vision systems. If this is you, please get in touch.
I just started getting involved with OpenCV and a few key aspects for PnP such as edge detection. Another software package that I have come across by accident via Ubuntu 9.10 Server package installer is called Harpia (offspring of OpenCV). The nice thing about Harpia, it uses a flow chart style GUI for piecing together a vision system. Unfortunately I have only been playing with this application for the past couple days so trying to learn how to export the data for practical use in a PnP enviroment. It does appear to have the ability to export data from some of the module and supposedly aids in generating code based on your flow. (Again only been playing with it for a few hours!)
Sincerely,
Eric Bentley
Started looking at effective ways for X-Y travel of DIY pick and place machine other than using a lead screw. I found something that could be duplicated fairly easily with the right tools called a ServoBelt drive on YouTube.
http://www.youtube.com/watch?v=OdJoVh6DRPA
Take note that NEMA 23′s were used in some of the demo units shown in the video.
Forgot to add another alternative to the ServoBelt drive system called the “Roller Pinion”…this could also be “DIY” duplicated with a little time and effort. I see this system serving both CNC mill and Open PnP.
http://www.youtube.com/watch?v=vPPhwoe2QMU&NR=1
http://dev.forums.reprap.org/read.php?132,15167,15167
A forum discussing a similar idea as a tool head for the 3D open source printer, RepRap. Might be useful for some ideas.
Thanks for your comment. The RepRap pick and place head is what originally got me started on this idea and it seems like the forum has a lot of good info. I will participate there. Thanks!
Hello,
Not sure that random part pick up is necessary for hobbyist level.
If the bottom of your tray is slopped 45 degrees then the components will stack on one of their sides by themselves.
If the component goes automatic at the place of picking then all it is necessary is pick them and rotate or not.
Sorry for the bad English
Another thought:
If you know what component you are trying to pick then you know (with the data sheet) approximately where the vacuum pad need to be.
I’m intrested too.
Regarding OpenCV I have looking until now for some answers.
I have found an interesting and probably adaptable example :
http://www.codeproject.com/KB/cpp/TrackEye.aspx?fid=1403145&fr=101&df=90&mpp=25&noise=3&sort=Position&view=Quick#xx0xx
Also it’s an interesting thread on cnczone about making of pnp machine.