Project 1, CS 106

Background and Motivation: In this project you will develop a closed-loop control procedure to navigate a simple maze (slightly more complex than a curving hallway). Previous labs have focused on open-loop control, where the robot receives no feedback about its actions. Your robot will need to be able to navigate from one end of a simple "maze" to the other end. To ensure that the robot is not "hard-coded," the maze may be changed slightly over time.

You are encouraged to work in groups of two for this project

Goal
Your robot will begin in a start location, oriented towards a goal location. Your robot should use its sensors to drive towards the goal location, avoiding walls along the way. If the robot hits a wall, it should recognize that it has stalled and perform an action to get itself unstuck. When the robot reaches the goal location, a bright light will shine on the robot, and the robot should stop+close the connection with your computer.

You will demonstrate your robot during the Wednesday/Thursday lab before Spring Break (3/7 and 3/8) or on Friday afternoon (3/9). If you succeed on reaching the goal on your first try, you will receive an A for performance. If you succed on the second or third try, you will receive a B for performance. If you do not succed within 3 tries, you will receive at most a C for performance.
In addition to a performance grade (70%), you will also be graded on your coding style and efficacy (30%).
Clever code and/or faster completion time may raise your overall grade.

Submit your java code via moodle by 11:59pm on Friday 3/9. If you worked in a group, clearly specify this in your code.