CSC 419 Programming Project - Plattsburgh
Robot 1. Electro Mechanical X 1.1. Shall move through the corridors of the maze. X 1.2. Shall measure the distance between the robot and walls in front, behind, left, and right of the robot base, by use of IR distance sensors. X 1.3. Shall measure and keep track of the total distance traveled, by use of a computer mouse. X 1.4. Shall be able to withstand multiple collision with 2X4?s 2. Communication X 2.1. Shall communicate with the server with a message protocol using a wireless communication link X 2.2. Shall send the telemetry, status and mapping data to the server at regular intervals. Shall convert the raw telemetry data from IR sensors to metric units, the form in which it will be transmitted to the server. X 2.3. Shall accept operation commands from the server, Robot will accept these commands from the server: Start, stop, pause, turn-right, turn-left and reset. Reset will delete any previous session?s data. Start will start the robot from its default state, hence if the robot was paused it will un pause and start afresh if it was reset. X 2.4. Shall attempt to reconnect to the server when the communication link is lost. 3. Navigation 3.1. Shall be able to explore three distinct maze designs at the minimum as shown on maze specification document. X 3.2. Shall sense intersections. All corridors shall intersect at 90 degrees. X 3.3. Shall stop when connection is lost unless robot was started in wanderer mode. X 3.4. Shall move through the corridor of the maze keeping in center and stop at the intersection waiting for server to issue command. 3.5. Shall accept command to turn to a specific corridor. Server 1. Communication X 1.1. Shall communicate with the robot by a message protocol using wireless communication link. X 1.2. Shall receive telemetry and status data from robot and send commands to the robot. X 1.3. Shall communicate with the client through a socket connection over the Internet. X 1.4. Shall allow multiple clients to connect to server, only the oldest client will be able to control the robot. Others shall only monitor the robot and maze map navigation. X 1.5. Shall attempt to reconnect to the client if the communication link is lost. X 1.6. Shall differentiate between the old user who lost a connection and a new user connecting. X 1.7. Shall transmit to the client robot telemetry, status and mapping data, robots orientation and location and maze map. 2. Mapping and Navigation X 2.1. Shall relay high level commands from the client to low level commands accepted by the robot and low-level sensor data from the robot to high level values used by the client. X 2.2. Shall accept turn commands from the client. X 2.3. Shall determine when the maze is fully mapped and notifying the client and robot. X 2.4. Shall calculate robot orientation and location. X 2.5. Shall identify the type of intersection and command the robot to turn using navigation strategy that will use shortest amount of time to map the maze. X 2.6. Shall generate and relay map information created by a mapping algorithm (from data received from the robot) to the client for display. X 2.7. Shall generate map and transmit it to the clients to be displayed. X 2.8. Shall issue a set of commands to robot to go a specific node using shortest possible route. Client 1. Communication X 1.1. Shall communicate with the server through a socket connection over the Internet. X 1.2. Shall attempt to reconnect to the server if communication is lost, and if communication is re-established the client will update the interface to the more recent data received, otherwise an error message will be displayed notifying the user of lost connection. 2. Display X 2.1. Shall use three panels to display mapping and telemetry data. X 2.1.1. Theseus Radar Panel: Shall display IR sensor data using bleep for each reading. Bleeps shall fade away with gradually. X 2.1.2. 2D Maze Corridor Map Panel: Shall display maze corridors and intersections in 2D form. Will start by showing the IR sensor readings as bleeps and then draw best fitting line on them to represent corridors and update twice a second. X 2.1.3. Maze Graph Panel: Shall use edges and nodes for representing corridors and intersections as instructed by the server. 3. Navigation X 3.1. Shall give the user an option of making robot go to a specific node on the map by clicking on that node, after the maze is fully mapped.
What is the Labyrinth Mapper? This project is designed as a keystone project, incorporating various parts of our computer science education here at Plattsburgh State University. The Labyrinth Mapper uses an autonomous robot, Theseus to gather telemetry data about a maze. Deadelus, server then solves this maze based on the this telemetry data. The project architecture consists of three major, independent parts: a robot, a server, and a client. Combined, the three make a system capable of generating a graphical display representing a maze. What is the Theseus Robot? The robot is made up a tank with a full functional MZ104 computer running Linux operated by batteries. The robot navigates around the maze, receiving commands telling it to start mapping the maze. It stays in the middle of the maze corridors while moving through them and avoids obstacles. The robot communicates with the server using a wireless Ethernet. Distances between the robot and corridor walls, total distance traveled, and robot status are transmitted to the server. The robot receives start, stop, and reset commands from the client through the server and the turn commands from the server. The software on the robot side is coded using C. What is the Deadulus Server? The server requires a computer using wireless Ethernet and Internet connection. The server talks to the robot using the wireless Ethernet and the communication with the client is made possible over the Internet using sockets. 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 which corridor the robot should turn into when it is at intersections. The server determines when the maze is fully mapped and notifies the robot. The server also has algorithm for creating graphical representing of the maze as the robot navigates the maze corridors and relays the transmits the graphical information to the client. The software on the server side is coded using Java. What is the Ariadne Client? The client is a java program making it portable to any computer system connected to the Internet and able to run java application. The client provides a high level, graphical user interface (GUI) to the Theseus robot using three panels:-Theseus Radar Panel, 2D Maze Corridor Map Panel and Maze Graph Panel. The client uses Sensor data including distances between the robot and maze corridor walls, distance traveled, and robot orientation are displayed to the user. Along with a graphical representation of the maze, which is dynamically created as the robot navigates. The client also provides the user with capabilities to send start, stop, and reset commands to the robot.
Ariadne - Client Daedalus - Server Theseus - Robot