Learn
Meet your match.
A pick-and-place for rapid prototyping
Welcome to our Part IV Project!
The intent for this page is to serve as a one-stop-shop towards understanding the operating principles and features of our pick-and-place machine.
Whether you're looking to hone your skills—or simply after an in-depth look at our system—we do hope that you'll find this page to hit just the right spot.
James Bao and Sam Skinner,
Electrical and Computer Engineering @ The University of Auckland.
Application Interface
Constituent Pages
System Architecture
Our pick-and-place machine comprises of four distinct components, or modules—each of which serves an important role towards the successful function of our system. These components are:
Component | Technologies | Description |
---|---|---|
p4p-83/gantry | C C++ Protobufs | The stateless, low-level machine control of our stepper motors, vacuum nozzle, and limit switches. |
p4p-83/vision | C++ Julia libcamera OpenCV ffmpeg | The machine vision that makes our pick-and-place intelligent. |
p4p-83/controller | C++ Julia Protobufs WebRTC WebSockets | The command & control that conducts the entire orchestra. |
p4p-83/interface | TypeScript Next.js React Tailwind CSS shadcn/ui Zod Protobufs | This web application; the user interface to be used by the operator. |
The p4p-83/vision
and p4p-83/controller
both run on a single Raspberry Pi 5. This is definitely subject to change. The p4p-83/gantry
runs on a Raspberry Pi Pico, connected to the main Raspberry Pi 5 via USB. This p4p-83/interface
web application is served by the Raspberry Pi 5 to a client browser, which could be the operator's own device; a University computer; or a web browser running on the same Raspberry Pi.
Note that the p4p-83/vision
is yet to be implemented, and that the p4p-83/gantry
is yet to be completed. The current gantry firmware resides at p4p-83/gantry-old
, with more details provided below.
In this section, we outline these components, the role(s) that they each play, some technical details that pertain, and the interactions between them. The overarching focus is on these system behaviours and interactions—consequently, many of the following headings necessarily cross component boundaries.
Position with precision
Mastered the manual? Start placing!