Autonomous Car

Designing and building an autonomous mobile robot with real-time control, localization, and sensing, from system architecture to competition-ready deployment.

Role

Product Engineer

Industry

Robotics

Duration

2 months

autonomous vehicle

Overview

This project challenged our team to design and build a fully autonomous mobile robot for a ROBA-style head-to-head game, capable of navigating a structured competition field, interacting with physical game elements, and operating reliably across multiple match scenarios. The system needed to support both autonomous behaviors and real-time manual intervention, while integrating sensing, control, actuation, and embedded software into a single cohesive platform.

We ultimately designed and built a two-wheel differential-drive autonomous robot powered by an ESP32, integrating Time-of-Flight sensors for wall following, Vive-based localization for absolute position awareness, PID-controlled motor actuation, and a Wi-Fi–based control framework to support seamless switching between autonomous and manual modes. The robot was engineered as a complete mechatronic system, with mechanical design, embedded software architecture, sensing, and control developed in parallel to meet competition constraints.

Our robot competed in a class-wide robotics tournament involving 27 teams, where it successfully system advanced to the quarterfinals!

Code Architecture

At a high level, the system consisted of a centralized state machine, non-blocking control loops, and dedicated sensing and control modules for wall following, absolute-position navigation, and Wi-Fi–based manual control.

Wall-Following Behavior

  • Implemented in C++ using three Time-of-Flight sensors (1 front-mounted VL53L0X, 2 right-mounted VL53L4CD) to maintain a consistent lateral offset from field boundaries.

  • The two side-mounted sensors were compared differentially to estimate angular misalignment relative to the wall, while the front sensor provided forward distance awareness.

  • Distance error relative to a 100 mm target offset was converted into heading corrections applied through PID-controlled differential wheel speeds.

  • This approach enabled sustained wall tracking without oscillatory drift, allowing the robot to follow long boundary segments as part of autonomous navigation routines.

Vive-Based Autonomous Navigation

  • Used two Vive photodiode trackers to provide absolute position and orientation estimates within the competition field.

  • Raw position data was filtered using a median filter to reduce jitter before being passed into the control loop.

  • Autonomous navigation was executed as a sequence of orientation alignment followed by translational motion toward predefined coordinate targets.

  • This structure allowed the robot to navigate to three distinct field objectives (low towers, high towers, Nexus) using closed-loop feedback rather than open-loop timing.

Wi-Fi–Based Manual Control

  • Implemented a Wi-Fi control interface by hosting an HTTP server directly on the ESP32.

  • Browser-issued commands were mapped to motor speed, turning, and mode-switching inputs in real time.

  • Manual control operated as a first-class state within the system’s state machine, allowing instant transitions between teleoperation and autonomous behaviors without restarting control loops.

  • This enabled live operator intervention during competition matches while preserving system stability and responsiveness.

Electrical Design

  • Power Architecture: Implemented a multi-rail power design separating logic and sensing electronics from high-current actuation, using dedicated battery packs and onboard regulation to power the ESP32-S2, DC motors, and MG90S servos independently, preventing voltage sag and electrical noise during aggressive maneuvers.

  • Actuation & Motor Control: Controlled the drive motors through an L298N H-bridge motor driver using PWM signals generated by the ESP32, while driving multiple servo actuators through dedicated PWM outputs to enable synchronized wiper motion and coordinated drivetrain control.

  • Sensor & Signal Integration: Integrated VL53L0X and VL53L4CD Time-of-Flight sensors over a shared I2C bus with unique addressing, alongside Vive photodiode trackers interfaced directly to the ESP32, providing clean distance and localization data for closed-loop navigation.

Mechanical Design

  • Chassis Architecture: Designed a modular, stacked chassis using laser-cut 1/8” MDF plates and custom 3D-printed mounts, providing structural rigidity, a low center of gravity, and organized placement of the ESP32, batteries, motor driver, and sensors.

  • Locomotion & Stability: Implemented a two-wheel differential-drive configuration with DC gear motors and rear support caster, enabling predictable turning behavior, smooth arc trajectories, and controlled in-place rotations during autonomous and manual operation.

  • Mechanisms & Packaging: Integrated a quad-servo wiper mechanism using four MG90S metal-gear servos and front-mounted Time-of-Flight sensors within the allowed footprint, ensuring synchronized actuation and unobstructed sensor fields of view during gameplay.

Head-to-Head Competition

Qualifying Match 1:

Quarterfinal Match:

Project Contributors:

Other projects