Iran's skills competitions set the task: an autonomous mobile robot that finds, picks and places objects on a competition floor. I built the control software for two generations of one robot — and both took third place, national in 2016 and the WorldSkills electorate in 2017.
Robot 1 — the platform. A Mecanum-wheel base that navigates autonomously and manipulates flat plates: HSV colour detection through a webcam, laser and Sharp IR distance sensors on an Arduino Mega, four DC motors doing omnidirectional kinematics.
Robot 2 — the arm. The same base, evolved for the international format: a seven-servo Dynamixel arm (MX-64, MX-106, MX-28 and AX series) on top, barcode scanning added to the vision, and full pick-and-place scenarios.
What I wrote
- The whole control stack in C++ on a Windows PC — a Win32 serial layer every device speaks through, the Dynamixel packet protocol for the arm, Mecanum kinematics with encoder-based distance control, and the Arduino bridge for sensors and LEDs
- OpenCV vision — HSV colour detection and barcode reading — feeding the decision graphs that run a match
- The electronics, assembled from scratch; both demo runs are on YouTube below
