
Personal Project
Autonomous Trash Sorting Robot

Built an autonomous trash sorting robot from scratch — combining computer vision classification, a custom robotic arm, and Arduino-based embedded control to identify and sort recyclable materials from general waste in real-time.
Designed and built the complete system as a capstone-level project: a custom 3-DOF robotic arm with servo-driven joints for pick-and-place operations, an overhead camera system for waste identification, and an Arduino Mega microcontroller coordinating all subsystems. The arm uses inverse kinematics to compute joint angles for reaching detected objects on a conveyor-style intake platform and placing them into the correct sorting bin.
Implemented a real-time image classification pipeline using OpenCV: background subtraction isolates objects on the intake surface, contour detection identifies individual waste items, and a color histogram + shape analysis classifier distinguishes between recyclable categories (plastic, paper, metal, glass) and general trash. The classifier was trained on a curated dataset of 500+ labeled waste images captured under controlled lighting conditions matching the robot's operating environment.
The embedded control layer runs on Arduino Mega with a custom state machine: IDLE → DETECT (camera trigger + classification) → PLAN (IK solution for target bin) → EXECUTE (servo trajectory with acceleration profiling) → VERIFY (confirm drop) → RETURN → IDLE. Serial communication between the Arduino and a Python host handles the vision pipeline handoff. Achieved ~85% classification accuracy and a 6-second average cycle time from detection to sorted placement.