← Back to Projects

ECE 4900 Capstone: Autonomous Mapping UGV

Role: Electrical & Computer Engineer (Team 4) • Year: 2019
Python Raspberry Pi Robotics Path Planning Algorithms Embedded Systems Autonomous Navigation
Team Members: Ryan Hackney, Devin Hensley, Emily Kong, Yoon Jae Lee, Matt Stoner, Yuan You
Autonomous UGV robot

Project Overview

This senior capstone project addressed the need for Unmanned Ground Vehicles (UGVs) capable of autonomously navigating hazardous or unknown environments. Our team designed and built an autonomous robot that could map indoor spaces, detect obstacles in real-time using ultrasonic sensors, and calculate optimal escape routes using advanced pathfinding algorithms.

Problem Statement: In emergency scenarios (search and rescue, building inspections, hazardous material incidents), first responders need situational awareness before entering dangerous areas. Our UGV provides autonomous mapping and pathfinding to help personnel understand building layouts and identify optimal routes.

System Design

Hardware Components

Microcontroller & Compute:

Motors & Drive System:

Sensors:

Power System:

Chassis:

Software Architecture

Programming Language: Python 3.x

Development Environment: Raspberry Pi OS, SSH remote development

Key Algorithms:

Control Flow:

  1. Ultrasonic sensors trigger and measure distances
  2. Obstacle detection updates internal map representation
  3. A* algorithm calculates optimal path to exit/goal
  4. Motor control translates path into step commands
  5. Real-time position tracking and map updates

Key Modules

Implementation

Circuit Design

Started with breadboard testing of individual sensors and motors. Each HC-SR04 sensor was tested for accuracy and interference patterns. Motor drivers were bench-tested with single motors before integration.

PCB & Wiring: Custom prototype boards for sensor voltage dividers (5V → 3.3V for Raspberry Pi GPIO protection). All motor drivers shared common ground with Raspberry Pi. Extensive wire management through chassis drill-holes to prevent tangling during operation.

Firmware/Software Development

Object-oriented Python with separate modules for hardware interfaces (sensors, motors) and algorithms (pathfinding, mapping). Used NumPy for efficient matrix operations in pathfinding.

Key Challenges:

Memory Management: Raspberry Pi 4's 4GB RAM was more than sufficient. Primary constraint was computation time for pathfinding in large maps (optimized to <5 minutes per path calculation).

Testing & Debugging

Testing Methodology:

  1. Unit Testing: Each sensor tested individually at set distances (5cm - 300cm) to establish accuracy (±5-15cm acceptable error)
  2. Integration Testing: Motor + sensor synchronization tested in controlled hallway environments
  3. Algorithm Validation: Pathfinding tested in simulation before hardware deployment

Debug Tools:

Major Issues & Solutions

Technical Challenges

Signal Noise & Filtering

Ultrasonic sensors produced noisy distance readings, especially near reflective surfaces. Implemented a sliding average filter (10-sample window) to smooth readings and reduce false obstacle detection.

Timing & Synchronization

Coordinating stepper motor steps between left and right motors required precise timing. Used Python's time.sleep() with 4.5ms step delays to ensure smooth, synchronized motion.

Power Consumption

Initial 4-motor design drained batteries rapidly (<30 minutes runtime). Switching to 2-motor drive extended battery life to meet 60-minute specification.

Hardware/Software Integration

Translating algorithmic path (grid coordinates) into motor commands (step counts and directions) required careful calibration. Developed transformation matrices to handle rotation and coordinate system conversions.

Results & Performance

The UGV successfully navigated a demonstration course and demonstrated all required capabilities: autonomous mapping, obstacle detection and avoidance, and path planning using the A* family of algorithms. The system met the project's functional requirements and performed reliably during testing runs.

Skills Demonstrated

Lessons Learned & Future Work

Key Takeaways:

Potential Improvements:

Professor: Haskell Jac Fought • Course: ECE 4900 Capstone Design II
Institution: The Ohio State University, Department of Electrical and Computer Engineering

This project fulfilled the requirements for Ohio State's ECE capstone sequence, demonstrating proficiency in embedded systems design, algorithm development, and interdisciplinary engineering problem-solving.