Autonomous Robot Navigation Using Computer Vision for Exhaustive Path-Finding

CSEF · 2016 Mathematics & Computer Science Second Award

Overview

Objectives/Goals The objective of this project is to develop a computer vision algorithm for solving the problem of exhaustively searching for a predefined path, by solely analyzing a video stream from a camera mounted on a differential drive robot. The algorithm should find all possible routes a robot can take with no prior knowledge of its environment, other than the color of the paths to be traversed. In this project I also designed and built a differential robot to test the algorithm. The path is represented by a connected graph and marked on the floor and given a completely new path the robot should still find all the routes. Methods/Materials The system consists of a differential robot and camera mounted on top which broadcasts a video stream to a computer through a Wi-Fi network. The computer then analyses the video and sends commands back to the robot via a Bluetooth serial modem. The algorithm was developed in Visual Studio C++ using the computer vision library OpenCV 3.1. The algorithm first uses a preprocessing pipeline to perform color segmentation and then looks for the center of mass of certain regions in a frame. After that it uses a PID algorithm to track the location of the path and determine the position of the next target. I designed the robot on SolidWorks and 3D printed the parts. The camera is an android phone which is mounted on the robot#s body. I used an Arduino DUE connected to a motor controller and two DC motors. Results I developed two sets of patterns which can be used to generate any possible path and to demonstrate the feasibility of the project. Experiments were conducted by recording a video of the robot following a certain pattern from above so that the top view gives a clear position of the robot as it moves through each path. Then the recorded video was replayed to measure the deviation of the robot from the path in equally divided periods of time. I limited the angle of rotation to a maximum of 30° and an equivalent radius of 20cm. The result was that robot was able to successfully complete every tested path. Conclusions/Discussion I developed a robust algorithm that allows a robot to follow different paths without having any prior knowledge of its surroundings and is also capable of exhaustively searching for every connected route. This algorithm is suitable for real-time processing and has industrial applications.

Summary statement

In my project I developed a computer vision algorithm to recognize paths and navigate them autonomously.

Help received

I took engineering courses at my high school that allowed me to learn programming and 3D computer modeling. I have also been a part of multiple robotics teams including the FTC competition where I was the main developer. My main source of information came from the internet.

Awards (1)

Competition history

  • CSEF 2016 Mathematics & Computer Science · Entry S1404

Resources

Related projects

Closest projects by meaning, across every fair and year in the corpus.

Browse more like this

Source: California Science & Engineering Fair public projects

Save projects to your library

Sign in with Google to keep track of projects you find interesting, organized into folders. An account also raises your daily allowance for “Has this been done?”, and lets you create a key for the MCP server with a much higher limit than anonymous use. Browsing stays public.

Continue with Google