An Application of Artificial Neural Networks to Decentralized Cooperative Navigation

CSEF · 2016 Mathematics & Computer Science Third Award

Overview

Objectives/Goals Swarms of robots offer an alternative to the conventional single-robot approach in navigation and exploration problems. In this project, I show the viability of using Artificial Neural Networks (ANNs) to control swarms of robots. I train ANNs to execute two tasks involving "exploring" area in a virtual environment: Separation - "dividing and conquering", and Cohesion - staying close together. Methods/Materials The project was written in Python. The virtual environment consists of a 30x50 cell region, where each cell can either be an obstacle or an explorable area. Each robot has 3 proximity sensors that gives the distance to the nearest obstacle and 2 "swarm sensors" that give the distance and direction of the swarm member in the best position. The ANNs output the direction in which the robot turns. To evaluate the ANNs, the program determines how much area 3 robots (controlled by identical but independent ANNs) could explore under a time limit. In Cohesion, the robots have to stay together for the explored area to count. I used a simple genetic algorithm (GA) to train the ANNs. The GA keeps a population of 80 ANNs - each is evaluated, and is given a fitness score. In each iteration (generation), the GA selects the best ANNs through a process called roulette selection and creates a new population based on those ANNs. For each task, I ran the GA 5 times for 20-30 generations each. I then tested the best ANN out of all 5 runs in my tester program. Each ANN was tested at least 150 times. I also varied both obstacle density and swarm size to test the ANNs' versatility. Results The best ANNs stayed together very well in Cohesion, and separated immediately in Separation. I compared the best ANN scores from both tasks to a baseline - randomly wandering robots. The ANNs performed much better than the baseline - almost two times better in Separation, and over 50 times better in Cohesion. These differences were statistically significant (ps < 0.001). In addition, my tests showed that both ANNs were versatile. Conclusions/Discussion This project met my design goal of creating two intelligent ANN controllers. On both tasks, the ANNs perform well and are versatile. Although there is room for improvement (e.g. robots occasionally get confused), this project suggests that ANNs may be used to control swarms in real world navigation and exploration problems.

Summary statement

This project demonstrated the viability of using ANNs to control swarms of robots by training ANNs to perform swarm navigation tasks in a virtual environment.

Help received

I design and coded the project myself after searching the internet for methods pertaining to neural networks. My mother introduced me to Python. I also got coding help from Stack Overflow.

Awards (1)

Competition history

  • CSEF 2016 Mathematics & Computer Science · Entry J1422

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