Project 06 / 06

Autonomous
Vision-Guided
Robot Platform

A HiWonder Raspberry Pi robot co-programmed in Python — OpenCV and YOLO detection turned into PWM servo commands, with ultrasonic sensing and depth estimation underneath for autonomous navigation.

Year
Sep — Dec 2025
Context
MSE 112 · Mechatronic Design Studio I
Role
Vision & controls
Stack
Python · OpenCV · YOLO · Raspberry Pi
Fig. 06 — Detection frame · Centroid → servo command
YOLO · Visual servoing

Overview

A robot that sees is only interesting once what it sees turns into movement. On a HiWonder Raspberry Pi platform I co-programmed in Python, I built that path end to end: OpenCV pipelines that find faces and objects in a live video stream, a YOLO detector whose bounding-box centroid becomes a PWM servo command, ultrasonic sensing and depth estimation underneath it for obstacle avoidance, and sensor-polling loops and interrupt-driven input handling at the firmware level so the robot kept its footing through a cluttered course.

What I built

01

Vision-to-actuation pipeline

Built computer vision pipelines in OpenCV for face and object detection on a live video stream, then closed the loop with YOLO — bounding-box and centroid coordinates mapped onto PWM servo commands, with inverse kinematics turning those coordinates into coordinated arm and chassis motion for real-time visual servoing.

02

Autonomous obstacle avoidance

Co-programmed real-time obstacle avoidance in Python using ultrasonic sensing and depth estimation, letting the robot navigate a cluttered course on its own rather than along a fixed path.

03

GPIO, PWM & multi-axis motor control

Interfaced expansion boards with the Raspberry Pi's GPIO and configured PWM signals for multi-axis servo and brushless DC motor control, getting the arm and the drive train to move together.

04

Firmware-level Python

Wrote firmware-level Python covering sensor-polling loops and interrupt-driven input handling, reducing the sensor events missed during continuous operation.

Stack

Python OpenCV YOLO Raspberry Pi GPIO & PWM Inverse kinematics