p4p-83/interface

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:

ComponentTechnologiesDescription
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!