This repository contains the algorithm(s) used to drive an autonomous ground vehicle through an unknown maze. It is part of a bigger project that involved a physical robot (Arduino Uno + Hardware), an Android tablet and a Raspberry Pi (communication server).
There are two main driving phases of the Algorithm — Exploration & Fastest Path. The exploration phase involves the robot exploring the unknown maze to detect the locations of obstacles, starting from the START zone and ending at the START zone. The fastest path phase involves the robot computing and executing the fastest path from the START zone to the GOAL zone through a pre-specififed WAYPOINT.
In order to run this project independently (i.e. without the other components of the system, including the physical robot), the built-in simulator can be used.
Set realRun in Line 43 of Simulator.java to false:
private static final boolean realRun = false;Run Simulator.java and load a map by clicking on the Load Map button and typing in the file name of the map (without the .txt extension) you wish to load. The current available maps are inside maps/. Once a map is loaded, use the Exploration button to start the exploration of the map and the Fastest Path button to compute and execute the fastest path from START to GOAL.
To make your own map, simply copy the contents of
BlankMap.txtand encode obstacles in the map by replacing a0cell with a1cell. Note that theSTARTandGOALzones cannot have obstacles in them.

