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 8pm and 9pm.

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:

  1. If the robot does not play a sound when it crosses the green patch, it will have 2 minutes added onto its time.

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.

Requirements:

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:

  1. A listing of the code of the control program of the robot. This should be properly commented (I expect to be able to understand exactly what the code is doing from the comments).
  2. A single sheet which describes the contribution to the project of the author of the report. This should be signed by the entire group indicating that they agree that the description is an accurate picture of the author's contribution to the project.

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)

 

1:30pm- 3:30pm Tuesday, May 2nd  

1:30pm- 3:30pm Thursday, May 4th

1:30pm- 3:30pm Tuesday, May 9th

1:30pm- 3:30pm Thursday, May 11th