Skip to content

EngineerNV/RobotProjects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Robot Projects Portfolio

A comprehensive collection of autonomous robotics projects showcasing pathfinding, computer vision, multi-agent communication, and embedded systems programming using Raspberry Pi and TI Tiva C microcontrollers.

πŸ“‹ Table of Contents


🎯 Overview

This repository contains autonomous robotics projects developed progressively to build toward a Capture the Flag robot competition. Each project builds upon the previous one, demonstrating incremental development of complex robotic systems including computer vision, sensor integration, path planning, and wireless communication.

Primary Objectives

  1. Autonomous Navigation: Develop robots capable of navigating mazes and environments using IR sensors
  2. Computer Vision: Implement color detection and object tracking using OpenCV
  3. Multi-Agent Coordination: Create communication protocols for team-based robot coordination
  4. Embedded Systems: Program TI Tiva C microcontrollers for real-time sensor processing and motor control
  5. Hardware Integration: Interface Raspberry Pi with microcontrollers via UART for distributed computing

πŸ€– Projects

1. Capture the Flag Robot Competition

Final Team Project - The culmination of all previous projects, implementing a competitive robot team for Capture the Flag gameplay.

Location: PathFindingAndTracking/FinalProject-CaptureTheFlagTeamCode/

Features:

  • Offensive Strategy: Autonomous flag capture using color tracking and pathfinding
  • Defensive Strategy: Goal protection with aggressive defender behavior
  • Team Coordination: Multiple robot roles (offense, defense, goalkeeper)
  • Real-time Vision: OpenCV-based color detection for flag identification
  • Adaptive Behavior: State-based decision making for game situations

Key Files:

  • CaptureTheFlag_Offense.py - Offensive robot controller
  • CaptureTheFlag_Goalie.py - Defensive robot controller
  • actions.py - Movement primitives and behaviors
  • PWMrobotControl.py - Low-level motor control via UART

Technologies:

  • Python 3
  • OpenCV (cv2) for computer vision
  • PiCamera for video capture
  • UART communication with TI Tiva microcontroller
  • PWM motor control

2. Project 1: Color Tracking

Object Detection and Pursuit - Foundation for visual servoing and target tracking.

Location: PathFindingAndTracking/Project1_Tracking/

Objectives:

  • Detect and track colored objects (stress balls) using computer vision
  • Implement visual servoing to follow moving targets
  • Foundation for flag detection in Capture the Flag game

Key Techniques:

  • HSV color space conversion for robust color detection
  • Contour detection and filtering
  • Centroid calculation for object localization
  • PID-like control for smooth tracking

Key Files:

  • ball_test.py - Main tracking algorithm
  • robotObjectTracker.py - Object tracking implementation
  • makeROI.py - Region of Interest selection tool

Run Instructions:

python3 ball_test.py

Authors:

Courtney Banh, Nick Vaughn (October 2018)


3. Project 2: Coverage and Mapping

Autonomous Exploration - Systematic area coverage using the Boustrophedon (Butler) algorithm.

Location: PathFindingAndTracking/Project2_Coverage/

Objectives:

  • Implement systematic coverage algorithm for unknown environments
  • Create grid-based map representation
  • Integrate IR sensors for obstacle detection
  • Combine exploration with color tracking capabilities

Key Features:

  • Butler Algorithm: Systematic back-and-forth coverage pattern
  • Occupancy Grid Mapping: Matrix-based environment representation
  • Sensor Fusion: IR sensors for obstacle detection
  • Hybrid Behavior: Switch between exploration and target tracking
  • Reverse Path: Return to origin after tracking excursion

Key Files:

  • RobotCoverage.py - Main coverage algorithm
  • map_class.py - Grid-based map representation
  • robotTrack.py - Tracking methods (detectGoal, trackingAlg, reverseMoves)
  • PWMrobotControl.py - Motor control interface

Run Instructions:

python3 RobotCoverage.py

Authors:

Nicholas Vaughn, Courtney Banh


4. Project 3: Multi-Agent Communication

Distributed Robotics - Wireless communication protocol for robot team coordination.

Location: PathFindingAndTracking/Project3_MultiAgent/

Objectives:

  • Develop frame-based communication protocol
  • Implement master-slave role switching
  • Coordinate multiple robots wirelessly
  • Demonstrate with "Simon Says" game

Key Features:

  • ZigBee Wireless: XBee wireless communication modules
  • Frame Protocol: Custom message framing for reliable transmission
  • FSM Design: Finite state machine for protocol states
  • Dynamic Roles: Master/slave role negotiation
  • Command Interpretation: Parse and execute remote commands

Key Files:

  • robotCommProtocol.py - Complete communication protocol implementation
    • simon() - Master robot behavior
    • player() - Slave robot behavior
    • performCommand() - Command execution

Run Instructions:

python3 robotCommProtocol.py

Authors:

Nicholas Vaughn, Courtney Banh


5. TI Tiva Microcontroller Projects

Embedded Systems Programming - Low-level microcontroller code for sensor processing and motor control.

Location: TI Tiva Micro Projects/

5.1 Maze Navigation Robot

Location: TI Tiva Micro Projects/MazeRobot/lab6/

Features:
  • GPIO interrupt-driven sensor reading
  • IR sensor interface (front, left, right)
  • PWM motor control
  • ADC for analog sensor processing
  • UART communication with Raspberry Pi
Key Components:
  • TM4C123GH6PM microcontroller (TI Tiva C)
  • Three IR distance sensors
  • Encoder feedback for odometry
  • Motor driver integration

5.2 Point-to-Point Navigation

Location: TI Tiva Micro Projects/MoveRobotToXYPoint/

Features:
  • Coordinate-based navigation
  • UART communication protocol
  • Real-time motor control
  • Modular code architecture
Key Files:
  • main.c - Main control loop and initialization
  • move.c/h - Movement primitives and control
  • uart_com.c/h - UART communication handlers

Hardware Platform:

  • Microcontroller: TI Tiva C Series TM4C123GH6PM
  • IDE: Code Composer Studio (CCS)
  • Programming: C/C++
  • Interfaces: GPIO, UART, PWM, ADC, Interrupts

πŸ›  Technology Stack

Software

  • Languages: Python 3, C
  • Computer Vision: OpenCV (cv2)
  • Hardware Interface:
    • picamera (Raspberry Pi Camera Module)
    • GPIO control
    • UART/Serial communication
  • Image Processing:
    • NumPy
    • imutils
  • Development Tools:
    • Code Composer Studio (for TI Tiva)
    • Python 3.x

Hardware

  • Compute Platforms:
    • Raspberry Pi (Python host controller)
    • TI Tiva C Series TM4C123GH6PM microcontroller
  • Sensors:
    • IR distance sensors (front, left, right)
    • Raspberry Pi Camera Module
    • Wheel encoders
  • Actuators:
    • DC motors with PWM control
    • Motor driver circuits
  • Communication:
    • UART (Pi ↔ Tiva)
    • ZigBee/XBee wireless modules (robot ↔ robot)

Algorithms & Techniques

  • Computer Vision:
    • HSV color space filtering
    • Contour detection and analysis
    • Morphological operations (erosion, dilation)
    • Frame differencing
  • Path Planning:
    • Boustrophedon coverage algorithm
    • Reactive navigation
    • Occupancy grid mapping
  • Control Systems:
    • PWM motor control
    • Sensor-based reactive control
    • State machine architectures
  • Communication:
    • Custom frame-based protocols
    • Master-slave coordination
    • UART serial communication

✨ Key Features

1. Distributed Computing Architecture

  • High-level processing on Raspberry Pi (vision, planning)
  • Low-level control on TI Tiva (sensors, motors, real-time)
  • UART bridge for seamless communication

2. Modular Software Design

  • Reusable motion control libraries (PWMrobotControl.py)
  • Abstracted sensor interfaces
  • Behavior-based architecture for complex tasks

3. Progressive Complexity

Each project builds on previous work:

  • Project 1 β†’ Vision system
  • Project 2 β†’ Vision + Exploration
  • Project 3 β†’ Vision + Exploration + Communication
  • Final β†’ All capabilities in competitive environment

4. Real-world Application

  • Competitive robotics (Capture the Flag)
  • Autonomous navigation in uncertain environments
  • Multi-agent coordination

πŸŽ“ Skills Demonstrated

Technical Skills

  • βœ… Embedded Systems Programming (C on microcontrollers)
  • βœ… Computer Vision (OpenCV, real-time image processing)
  • βœ… Robotics (kinematics, sensor fusion, control)
  • βœ… Hardware Integration (UART, GPIO, PWM, ADC)
  • βœ… Multi-threading and Real-time Systems
  • βœ… Wireless Communication Protocols
  • βœ… Algorithm Implementation (pathfinding, coverage, tracking)

Software Engineering

  • βœ… Modular code architecture
  • βœ… Progressive development methodology
  • βœ… Hardware abstraction layers
  • βœ… State machine design patterns
  • βœ… Object-oriented programming in robotics

Problem Solving

  • βœ… Sensor calibration and characterization
  • βœ… Integration of multiple subsystems
  • βœ… Real-time performance optimization
  • βœ… Debugging hardware-software interfaces
  • βœ… Team coordination for competitive robotics

πŸ“ Project Documentation

Most project folders contain detailed README files:

  • PathFindingAndTracking/ReadME.md - Overview of vision-based projects
  • Project1_Tracking_README.txt - Color tracking details
  • proj2ReadMe.txt - Coverage algorithm explanation
  • Project3_README.txt - Communication protocol details
  • FinalProject_README.txt - Capture the Flag setup

πŸš€ Getting Started

Prerequisites

# Python dependencies
sudo apt-get install python3 python3-opencv
pip3 install picamera imutils numpy

# Hardware requirements
- Raspberry Pi (any model with camera support)
- TI Tiva C Series microcontroller
- Robot chassis with motors
- IR sensors
- Camera module

Running Projects

Each project includes run instructions in its README. General pattern:

cd PathFindingAndTracking/[ProjectFolder]
python3 [MainFile].py

πŸ“š Additional Documentation

For more detailed information, see:

  • PROJECTS.md - Quick reference guide with all project files and commands
  • ARCHITECTURE.md - Technical system architecture and design decisions
  • Individual project READMEs - Detailed setup instructions in each project folder

πŸ‘₯ Contributors

  • Nicholas Vaughn (EngineerNV)
  • Courtney Banh
  • John Kim
  • Jason Kerins (exploration code reference)

πŸ“Œ Repository Structure

RobotProjects/
β”œβ”€β”€ PathFindingAndTracking/          # Main robotics projects
β”‚   β”œβ”€β”€ Project1_Tracking/           # Color detection and tracking
β”‚   β”œβ”€β”€ Project2_Coverage/           # Area coverage and mapping
β”‚   β”œβ”€β”€ Project3_MultiAgent/         # Wireless communication
β”‚   β”œβ”€β”€ FinalProject/                # Early CTF development
β”‚   └── FinalProject-CaptureTheFlagTeamCode/  # Competition code
β”œβ”€β”€ TI Tiva Micro Projects/          # Embedded systems projects
β”‚   β”œβ”€β”€ MazeRobot/                   # Autonomous maze navigation
β”‚   └── MoveRobotToXYPoint/          # Point navigation system
└── README.md                         # This file

Last Updated: November 2025
License: Educational/Portfolio Project

About

Various Robotic Projects I coded in python for Maze Solving bots to Capture the Flag Robots

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •