Autonomous waste-sorting robot built for the UNSW DESN1000 ELEC stream.
PixyCam vision | Arduino control | RGB sorting | Differential drive | Servo clamp
2nd place out of 30 teams with 16 successful deposits in 10 minutes, all in the correct RGB order, earning a High Distinction.
| Area | Details |
|---|---|
| Competition | UNSW DESN1000 ELEC waste-sorting robot challenge |
| Result | 2nd out of 30 teams, 16 deposits in 10 minutes, High Distinction |
| Control | Arduino-based autonomous control loop |
| Sensing | PixyCam 2.1 vision, ultrasonic obstacle sensing, IR clamp confirmation |
| Actuation | Differential drive, dual-servo clamp, deposit/reverse cycle |
| Documentation | Final report, design proposal, design journals, wiring, algorithm, calibration sketches |
WALL-F is an autonomous waste-sorting robot designed to identify, collect, and deposit coloured balls representing different plastic waste categories inside a competition arena. The robot logs its home base colour, searches for red, green, and blue target balls in sequence, captures each ball with a front clamp, returns to base, deposits it, and repeats the cycle.
The final build used a two-level PLA chassis, a removable WALL-E-inspired shell, a PixyCam 2.1 for colour tracking, an ultrasonic sensor for obstacle detection, and an IR sensor inside the clamp for capture confirmation.
| Competition build | Internal layout |
|---|---|
![]() |
![]() |
| Full assembly render | No-shell chassis |
|---|---|
![]() |
![]() |
Log base -> search target -> centre -> chase -> clamp -> return -> deposit -> repeat
WALL-F sorts balls in strict RGB order:
RED -> GREEN -> BLUE -> repeat
| Subsystem | Role |
|---|---|
| Vision | PixyCam 2.1 tracks coloured balls and home-base plates |
| Drive | Differential-drive DC motors execute calibrated movement and turning |
| Obstacle handling | HC-SR04 ultrasonic sensor detects nearby walls and obstacles |
| Capture | Dual FS90MG servos close the front clamp around a detected ball |
| Confirmation | TCRT5000 IR sensor confirms when a ball is inside the clamp |
| Deposit | Robot returns to the logged base colour, opens the clamp, reverses, and continues |
See waste-sorting-algorithm.md for the full algorithm breakdown.
| Metric | Outcome |
|---|---|
| Placement | 2nd out of 30 teams |
| Deposits | 16 successful ball deposits |
| Run time | 10 minutes |
| Sequence | Correct RGB order |
| Course result | High Distinction |
- Built around repeated autonomous collection cycles rather than a single scripted run.
- Used PixyCam colour signatures for both target-ball tracking and home-base return.
- Combined proportional visual chasing with timed motor calibration for arena navigation.
- Integrated ultrasonic obstacle handling so the robot could recover from nearby walls.
- Used an IR-confirmed servo clamp so the robot only transitioned after a real capture.
- Debugged electrical integration issues including servo jitter caused by intermittent common-ground connection.
- Finalised an integrated RGB sequence algorithm that performed reliably during competition testing.
The design moved from early ball-retrieval concepts to a compact WALL-F gripper robot through concept scoring, mechanical iteration, sensor testing, and final integration.
Key decisions included:
- selecting a servo-actuated clamp over passive scoop and bell-enclosure concepts
- choosing a two-front-wheel and rear-caster layout for simpler turning
- separating the internal drive/sensor chassis from the removable external shell
- validating PixyCam signatures before full mechanical integration
- adding calibration sketches for motors, servos, ultrasonic sensing, IR sensing, and base return
See design-process.md for a compact public summary of the proposal, journals, and final design iteration.
The final circuit schematic is included as both a PNG preview and PDF exports.
| File | Purpose |
|---|---|
| Schematic PNG | GitHub preview image |
| Schematic PDF | Full schematic export |
| No-drawing-sheet PDF | Cleaner schematic-only export |
| Wiring and pin map | Component wiring, pins, and power notes |
Editable KiCad files will be added under hardware/kicad/ once exported and checked.
- Recalibrate PixyCam colour signatures under the lighting conditions of the new arena.
- Re-measure motor turn timing after changing batteries, wheels, floor surface, or chassis weight.
- Recheck servo open/close angles before running the full autonomous loop.
- Keep the Arduino, motor driver, sensors, and servos on a reliable common ground.
WALL-F is now in public documentation mode. The main remaining upgrade is adding the editable KiCad project files once they are checked, so the repo contains the final code, schematic exports, wiring notes, calibration sketches, design process, and source hardware files in one place.
| Document | Purpose |
|---|---|
| Final Report | Submitted final report with final design, evaluation, and outcome |
| Design Proposal | Proposal-stage concept, subsystem plan, risks, and project plan |
| Design Journal 1 | Early concept generation, tests, and reflections |
| Design Journal 2 | Later integration, compliance testing, debugging, and final iteration |
| Design Overview | Repo-friendly summary of the final mechanical and electrical design |
| Design Process | Compact process summary derived from the proposal and design journals |
| Visual Assets | Photos, CAD renders, and labelled subsystem images |
The public PDFs have been checked for student-number patterns. The design proposal copy excludes the original cover sheet containing student IDs.
wall-f/
|-- README.md
|-- design-overview.md
|-- design-process.md
|-- waste-sorting-algorithm.md
|-- wiring.md
|-- documentation/
| |-- ELEC_FinalReport_TeamC1.pdf
| |-- Design_Proposal.pdf
| |-- Design_Journal_1.pdf
| `-- Design_Journal_2.pdf
|-- finalcode/
| `-- FINALTESTING/
| `-- FINALTESTING.ino
|-- calibration/
| |-- servo-clamp-calibration/
| |-- motor-turn-calibration/
| |-- ultrasonic-distance-test/
| |-- ir-clamp-test/
| |-- pixy-signature-check/
| `-- base-return-calibration/
|-- hardware/
| |-- schematic/
| `-- kicad/
`-- assets/
The final competition sketch is located at:
finalcode/FINALTESTING/FINALTESTING.ino
The folder name matches the .ino file name so it can be opened directly in the Arduino IDE.
The final sketch contains the values used during the competition run. The calibration sketches use xxxx placeholders where values should be re-measured for a rebuilt robot, different batteries, surface friction, motor variance, or camera mounting angle.




