ROBOTS THAT LEARN!!!

Overall Problem Statement:  Design and build a robot that will use a neural network to successfully navigate a circular path.

Step 1 - Construction of the Gear Box.  Proper gear box construction is the foundation for a properly working robot.  If the gear box is too tight, once the weight of the handy board is added to the robot, movement may appear very slow or nonexistent.  Detailed step by step instruction on building a gear box can be found at: 

http://www.cs.csi.cuny.edu/~imberman/ai/Build Gear Box.htm

 

Step 2 - Finish robot construction by connecting the two gear boxes and threading the motors onto the gear indicated in the diagram.  This is the gear that moves fastest when turning the wheel.  Use the model robots as the basis for your robot design. Note, all robots have two motors and two photo sensors located at the "front" of the robot.  Make sure your sensors are placed so that they are slightly wider than the duct tape path.

In addition to the  working lab models, the basic robot architecture can be viewed at:

http://163.238.35.144/~grant/imberman/robosp01/fehmbot.htm

 

Make sure you constantly check to see that your wheels move freely as you build your robot. 

 

Step 3 - Programming your robot:  We have different brand/types of photo sensors and motors in the lab.  You will need to determine, for your robot, the power needed to move your robot SLOWLY!!  The robot boards have 32K of memory and have a 2 MHz processor.  Therefore it takes them some time to process information.  Write a simple program, using Interactive C, that has the robot move forward for 1/2 second, turn right and then move forward, 1/2 second and them move left.  Try to find the minimum motor power to do this.  Note how much power you need to make the turns.  This will help you to formulate your training examples.  Use the Interactive C Manual, http://handyboard.com/software/icmanual/icmain.html, as a reference for the different  C commands you will need.  Instructions on how to use Interactive C with your robots can be found at: 

http://www.cs.csi.cuny.edu/~imberman/ai/startinginteractiveC40.htm

Demonstrate your robot to the instructor once it is finished and moving!

 

Step 4 - Write an Interactive C program that will display readings from both photo sensors.  You will use these readings to create your training examples.  Given the way you position the robot on the road, and  the sensor readings from the robot, estimate the parameters needed  for the left and right motor functions to control the rear wheels.  Therefore, each training example will consist of two inputs (the sensor readings), and two outputs (the values passed to the right wheel's motor function and the left wheel's motor function).  Please try not to step on the road.  Dirt from your shoes may interfere with future sensor readings.  You may have to write some small programs and experiment with the robots in order to get a good set of training examples.

 

Step 5 - Use the modified Generation 5 code you created for this project to program your robot with a neural network.    Take the trained neural network function, and modify it for use in Interactive C.  Remember, the gen5 code produces decimal output.  The IC motor function requires a value between 0 and 100.  The training portion of the program is executed in the desktop environment, with the Microsoft Visual C++ compiler.   Once you have the weight values for the neural network equations, incorporate them into the Interactive C neural network program and try your robot on the road.    You may have to repeat steps 4 and 5 several times before your robot reasonably follows the road.  One important thing to remember is to make your robot move slow enough so that it has time to take readings from the road and act upon these readings.