Term-end Projects using Lego Mindstorms
and Java:
Project Grading Factor: 15% of the Grade
Concepts Learned:
You need to demonstrate a solid understanding
of the following concepts in your project.
Inheritance, interface, super class, sub class,
polymorphism, super, method overloading, method over-riding, event-driven
programming and behavior control.
Project Description:
The project will lead to in class competition which will be
on May 15th between
There will be showcase on Tuesday, May 16th between 12.30 and 3.30 (Room 307 Roosevelt Extension).
Your group can choose any of the following two projects. You have to let me know which one you plan to choose.
1. Rescue Project:
Using the Lego Mindstorms
kit, you will have to program a robot which follows a line, detects obstacles
(and backs up when it hits an obstacle) and can detect (by playing sound)
various colored regions that the line passes through.
The course will look like similar to this:

The course is built on white foamcore, and the
line is "drawn" with black electrical tape. There are figures
"drawn" in green tape and aluminum foil. All of these elements give
different readings on a light sensor.
A course which incorporates these elements will be provided for you to
practice on with the robots. This will be placed in Ingersoll
5301 for you to use. We already set up a schedule of times (beyond our class
time, see below openlab) that this room is open for
you.
At the end of the project these robots will compete over this kind of
course; the aim is to complete the course in the minimum time.
Doing badly in the competition will not hurt your grade for the project,
but doing well in the competition may increase your grade for the project.
The robot control programs should be written using object-oriented
paradigm. (Hints: Inheritance Lab).
Rescue Competition
details
The following notes should be consulted
in conjunction with the line following course.
They describe the procedure that will be followed during the
competition.
Place the robot at the end of the black line where the line touches the
edge of the board.
Let the robot start line-following and start timing.
At some point between the third and fourth corners place an object (for
example a box).
When the robot touches the object, it should stop, back up slightly and
wait
When the robot has stopped after backing up, remove the object.
When the robot reaches the green figures it should play a sound.
When the robot reaches the silver figures, stops, and plays a second
sound (to show it recognizes the silver patch) stop the clock.
NOTE:
2. Soccer Project
:
The project is to program a robot that can play soccer and compete with students from our classes and other CIS classes who have been working with robots.
Both the pitch and the ball are designed to simplify the task of playing soccer.
The pitch is a standard RoboCupJunior one-on-one soccer pitch. This has a floor which is a greyscale. Thus one end of the pitch is black, the other is white, and the color gradient "slopes" from one to the other. You can use a light sensor (just like you used it in the first project) to tell which end of the field is which and which way the robot is heading.
You can find a more detailed description of the pitch on the RoboCupJunior (www.robocupjunior.org) website, where the full Soccer rules are given.
The pitch also has walls, so the ball cannot leave the pitch and the robot can detect (using a bump sensor) when it is at a wall.
The ball emits infra-red light, so you can use a light sensor to find the ball.
The rules for the competition will be the usual RoboCupJunior rules, but the games will be shorter, around 5 in total.
Everyone needs to submit a project report which is their own work (and we will be checking that group members have not just cut and pasted between reports), just like for the other projects.
Each report should be 2-3 pages long (standard letter paper, 10-12pt type, single spaced), and should describe the design of the code which controls the robot.
You must not only describe the design choices made, but also justify them.
In addition to the 2-3 pages of report, you must submit two other items:
Project Resources:
I recommend using the behavior API provided with lejos. For instance, you can implement a goalie robot and player robot using behavior interface. You can change the role of your robot (i.e goalie to player) depending on the part of the soccer court you are in!
· Go to the following site to find programming behavior with leJOS.
o http://lejos.sourceforge.net/tutorial/behavior/
· Go to the following site to find more about behavior robotics.
o http://today.java.net/pub/a/today/2005/02/21/robotics.html?page=last
Extra Credit:
Teams are welcome to enter the grand competition for fun. Your excellent participation during the event will be count as EXTRA CREDIT (up to 5% of the grade) points. As I have mentioned during the class, there will be students from other classes who will be competing with our class. So, your excellent performance will make you earn additional "EXTRA CREDIT" points beyond the allocated project points. I will try my best to provide all the help and resources. I hope that you make the best out of it:-)
Lab Hours
If you need to use the lab for during the project, then email me to set up a time to do this.
You increase your chances of using the lab when you want if this fits with my schedule. This semester I'm on campus for most of every Tuesday and Wedesday. If you choose a time on those days you'll probably be okay.
For the two weeks leading up to the challenge, there will be extra hours that the lab 5301 is open
during club hours based on the following openlab schedule (www.sci.brooklyn.cuny.edu/~mqazhar/openlab)