CPSC 3720 - Spring 2009 Project: Lego Mindstorms Robot (LMR) System Introduction ------------ The LMR system consists of a Lego Mindstorms robot you are required to build and a personal computer that controls the motion of the robot via an wireless Bluetooth interface. In addition to constructing the robot, you are required to build the software running on the robot and on the PC. You will be split in several pairs of teams, one responsible with developing the PC software, the other with the robot software. Each pair of teams will be given a Lego Mindstorms Robot kit. Each participant receives an account for the computer labs in the Math and CS department where you can develop the system. However, you are free to use any other platforms, for example your personal laptop, etc. This document gives a very general description of the system you are required to implement for this course. You are responsible to extract a workable list of requirements by interviewing your instructor during the "Requirements Elicitation" class (see schedule) and by discussion with your peers (for example, with your sister team developing the other half of the system). Purpose of the system --------------------- a) to have fun (hopefully) b) to experience the development of a non-trivial system involving both software and hardware components c) at the completion of the project, we want to have a soccer competition where two robots will play against each other. Some general requirements for the LMR system ---------------------------------------- 1. The operator controls the robot real-time using the interface provided by the PC software. She can give commands to the robot such as: move forward/backwards, turn right/left, etc. The interaction should be similar to that experienced when playing a "car race" game on the computer, except that the "virtual car" is replaced by the robot. 2. The robot should have three wheels. Two of the wheels are controlled by a motor each. When the two motors turn at different speeds, the robot turns. To play soccer, the robot should also be equipped with a "shooting arm". The arm is controlled by the operator. Directions to construct the robot come with the kit. 3. The operator must be able to control the speed of the robot. 4. The robot must function when other robots using the bluetooth protocol are present. 5a. The robot must know about distances and angles. For example, the operator can give a command such as "forward 23 cm" and the robot should travel forward 23 centimeters, on a line as straight as possible. 5b. The robot must have the possibility to record its motion pattern. The operator can enable the "record" mode of the robot. In this mode, the movements of the robot as controlled by the operator are remembered. When the record mode of the robot is off, the robot can be asked to perform the most recent motion stored in its memory. The robot must be accurate in remembering distances, angles, and velocities for movement. 6. The robot should be able to lose/regain the connection with the station automatically and gracefully. For example, it should be possible to shutdown the PC software and to start it again, without the need to reboot the robot. In particular, if 5b is implemented, the robot should not lose its recorded motion if the connection with the PC is lost.