Deep Learning Based Collision Avoidance Algorithm for Mobile Robots in Pedestrian Environments
CSEF · 2018 Mathematical Sciences Fourth Award
Overview
Objectives/Goals The goal of this project was to create an algorithm that could effectively maneuver an autonomous robot by analyzing the video stream from a camera. The camera, mounted on a 2-wheeled robot, would send the video to a laptop for processing and determination of the next location to move to. The robot should be able to autonomously drive alongside people without collisions. The algorithm, with no prior knowledge of its environment, should guide a robot to follow objects without human intervention. Methods/Materials The system consists of a 2-wheeled differential robot using DC brushless motors and an Arduino Mega board, with a camera and laptop mounted on top. The camera sends the input video to the laptop which then feeds the frames to a neural network which recognizes the objects. The location and class of the object is then sent to an algorithm which analyses their 2D position and sends commands back to the Arduino via a bluetooth module to control the motors. The algorithm was developed in C++ using the computer vision library OpenCV 3.1 and consists of a processing pipeline with an initialization stage and a single processing loop. The first step is the frame acquisition which captures the frame, then a modified YOLO neural network locates the objects in the frame. The distance and angle to the objects is found using their positioning on the screen, and finally the next location is calculated and the speed of the motors is transferred to the microcontroller. I designed the robot in SolidWorks, welded the frame as well as 3D printed parts with ABS filament. Results I tested the robot with myself and a variety of different objects detected by the YOLO neural network in both indoor and outdoor settings. The robot managed to follow balls and other toys while avoiding people in the way. The program runs at approximately 3 - 3.5 fps making it functional for real-time usage, and has a 1 - 5% error when calculating distances between 1 and 5 meters away. Conclusions/Discussion At its current state this robot serves as a successful testing platform for research and investigation purposes. The algorithm is gateway to show the possibilities that exist for the transferring of advanced recognition softwares from high-end to low-end technologies, like laptops and phones. This robot can currently successfully detect an object, find its locations, and follow it while avoiding collisions with people.
Summary statement
I designed and built a robot, modified a neural network that detects the objects within a frame, and wrote an algorithm to locate the 3D position of the objects. The robot can navigate by itself while avoiding collisions.
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 2018
Resources
Related projects
CSEF · 2017
Autonomous Off-Road Vehicle Using Computer Vision for Surveillance Applications
CSEF · 2015
Lightweight Path-Inferential Optic Flow Collision Detection for Mobile Robots
CSEF · 2018
Analyzing 2D-Convolutional Neural Network's Ability to Learn Obstacle Avoidance in Self-Driving Applications
CSEF · 2016
Autonomous Robot Navigation Using Computer Vision for Exhaustive Path-Finding
CSEF · 2012
Autonomous Navigation and Robust Object Detection through Edge-based Optical Flow
CSEF · 2017
Safecopter: Developing a Collision Avoidance System Based on an Array of Time-of-Flight 3D Cameras
CSEF · 2010
Utilizing Artificial Neural Networks to Create a Learning Robot
CSEF · 2019
Obstacle Avoiding Robot: A Reinforcement Learning Approach
Closest projects by meaning, across every fair and year in the corpus.
Browse more like this
Source: California Science & Engineering Fair public projects