Team Programming Project

Autonomous Maze Mapping Robot

Final Results
by
Brian Nestrick

CSC419 Programming Project – Fall 2000

 Team Members

Eric Bordeau, Matt Jones, William Martin, Symen Mulders, Brian Nestrick, Wei Qiu, Professor Stephen Linder

 What is the Autonomous Maze Mapping Robot?

This project is designed as a keystone project, incorporating various parts of our computer science education here at Plattsburgh State University.  The project architecture consists of three major, independent parts:  a robot, a server, and a client.  When combined, the three create a system capable of generating a graphical display representing a maze.

 What is the Robot?

The robot navigates around the maze, receiving only commands telling it to follow the right or left wall.  It adjusts its position in respect to the walls of the maze independently of rest of the system.  The robot communicates with the server over a tethered phone cord, using the SECS messaging protocol (A wireless system was desired, however we lacked the resources to invest our efforts into such technology).  Distances between the robot and walls, and total distance traveled, and wheel angle are transmitted to the server.  Other than wall follow commands, the robot also receives start, stop, and reset commands from the server.

 The robot code is included in AMMRobot.zip.

What is the Server?

The server requires a dedicated Microsoft Windows based computer with a free serial port and Internet connection.  Hardware is required in order to facilitate communication between the server to the robot and client.  The server talks to the robot over the above mentioned tethered communication link.  Communication with the client is made possible over the Internet through a created socket.  More then one client can connect to the server; however only the oldest client connected is capable of controlling the robot.  Low-level sensor data from the robot is translated into higher-level messages used by the client to display useful information to the user.  Also contained within the server is an algorithm that decides between right and left wall following, if turned on by the client.  Start, stop, and reset commands are also chosen by either the algorithm or the user of the client.  This algorithm makes possible the creation of a graph representing the makeup of the maze as the robot navigates the hallways. 

The server code is included in MMRServer.zip.

What is the Client?

The client is purely a java program.  This program is portable to any computer system connected to the Internet and is supported by Java 2.  The client provides a high level, graphical user interface (GUI) to the maze-mapping robot.  Sensor data including distances between the robot and wall, distance traveled, and wheel angle are displayed to the user.  Also included in the GUI is a compass showing the current orientation of the robot in respect to its starting position, along with a graph (tree) representing the maze, dynamically created as the robot navigates about.  The client also provides the user with capabilities to send start, stop, and reset commands to the robot. 

The client code is included in AMMRClient.zip