MEAM.Design - MEAM 410/510 - ROBOCKEY

The Rink

The Robockey rink will take the shape shown below, and will be surrounded by a clear plastic border at least 4 centimeters tall.

The Puck

The puck is 3.0 inches in diameter by 1.0 inch tall, with a ring of eight equally-spaced 940nm IR LEDs (APECVA3010F3C, Digikey: 54-1363-1-ND) situated 0.75 inches above the ground.

The Stars

To estimate your robot's position within the rink, we will provide each robot with a custom mWii sensor capable of detecting a constellation of infrared stars mounted approximately 5 meters above the rink. The star pattern dimensions (relative to the rink center) can be see below (click for higher resolution):


Your Robots

Dimensions - At all times, the robot (and any appendages) must fit within a 15-cm diameter cylinder and be no taller than 13 cm.

Puck Interactions - At no time may your robot independently constrain the puck’s motion (no holding, no adhesives, no features to capture the puck, etc. - if in doubt, ask for clarification before building something!). You robot cannot encapsulate more than 20% of the puck (when viewed from above, we will measure the percentage by connecting a line between the furthest-out points which enclose the puck). Your robot may, however, include a mechanism or actuator to “kick” the puck.

Rink/Goal Interactions - At no time may your robot attach itself to any part of the rink or the goal.

Control - The team of robots must be fully autonomous, and each robot must carry it’s own power source.

Contact & Damage - Your robot must not intentionally damage the rink, the puck, or any other robots.

Positioning LED - Each robot must include a single upward-facing bicolor red/blue LED. When your robot receives the Comm Test signal, it should flash the color corresponding to the goal which is defended in the first period, and whenever the Play command is issued, the LED should turn on and remain illuminated in that color throughout the match.

Other Restrictions - Your team must not interfere with the wireless communications of another team or the game-play system. To avoid confusion with the puck, your robots must not emit nor intentionally reflect IR light. Your robots are not allowed to intentionally link together in any way.

Communications Protocol

Addresses - Each robot in the tournament will have a unique wireless address on channel 1. Your team will be assigned three addresses, starting with your team number multiplied by 4, then incrementing by 1 for each robot. For example, the three robots for team 12 will have addresses 48, 49, and 50 (0x30, 0x31, 0x32). You can find your individual addresses here.

Restrictions - You are NOT allowed to send packets to robots other than those on your team.

Instructions - The game controller will send your robot instructions in a 10-byte packet, as described below. Note that some instructions require that your robot respond in a certain way, and failure to follow the instructions will result in removal of the robot for the period.

Comm Test 0xA0 0xA0 0xA0 0xA0 0xA0 0xA0 0xA0 0xA0 0xA0 0xA0 robots must flash the positioning LED*
Play 0xA1 0xA1 0xA1 0xA1 0xA1 0xA1 0xA1 0xA1 0xA1 0xA1 robots must illuminate the positioning LED and move in a noticeable way
Goal R 0xA2 SA SB 0 0 0 0 0 0 0 SR = score R, SB = score B
Goal B 0xA3 SA SB 0 0 0 0 0 0 0 SR = score R, SB = score B
Pause 0xA4 0xA4 0xA4 0xA4 0xA4 0xA4 0xA4 0xA4 0xA4 0xA4 robots must stop within three seconds
Halftime 0xA6 0xA6 0xA6 0xA6 0xA6 0xA6 0xA6 0xA6 0xA6 0xA6
Game Over 0xA7 0xA7 0xA7 0xA7 0xA7 0xA7 0xA7 0xA7 0xA7 0xA7
Enemy Positions 0xA8 A1 X1 Y1 A2 X2 Y2 A3 X3 Y3 signed char centimeters from rink center

Position Reporting - At a rate of approximately 10 Hertz, your robot must report to address 0xDA the best estimate of its XY location (in centimeters) relative to the rink center (with Goal A to the left) using the following 10-byte packet format:

My Position A X Y 0 0 0 0 0 0 0

Where A is your assigned robot address, and the remaining bytes are the signed X and Y coordinates, respectively. If you do not send in position estimates, your robot will not receive the "Enemy Position" packets described above.

The Game

Length - A regulation Robockey match consists of two one-minute periods.

Teams - No more than 3 robots can be on the field for each team at a given time. Upon arrival at the match, each team will be assigned a side (R or B), and a Comm Test message will be sent to each of the players. All robots must acknowledge receipt of the message by flashing (OFF-ON-OFF) the only blue LED on their robot. Failure to acknowledge the Comm Test will result in the particular robot being removed for the duration of the period. Similarly, failure to respond to the Pause command will result in the robot being removed for the duration of the period.

Initial Position - Play will begin with a polo-style start. To begin, all robots must be placed behind the 80-cm lines, while the puck will be placed in the center of the rink. Once the Play command is issued, the robots are free to move about the field.

Scoring - Goals made by driving the puck into the goal will be scored as one point. Goals made by shooting the puck from more than 10-centimeters from the goal line will be scored as two points (clarified as the puck being outside of the shooter's possession when the center axis of the puck crosses the 10-centimeter line). When a goal is scored, the corresponding Goal command will be issued and the clock will stop. After celebrating, you must quickly move all robots beyond your 80-cm lines (either autonomously or by hand). Once all robots are in position, the puck will be returned to the center of the rink, and the "Play" command will be re-issued.

Halftime - After one minute of play, the Halftime command will be issued. You will then have 30 seconds during which you may interact with your robots. Before the 30 seconds have expired you must place your robots behind the opposite 80-cm line. If you had robots that were removed during the first period, you can attempt to bring them back in at the start of the second half.

Timeouts - Each team can call two timeouts per match. When a timeout is called, the Pause command will be issued. Both teams will then have 30 seconds to interact with their robots. You are not allowed to change the general position or orientation of your robots during a timeout.

End of Game - If the score is not tied at the end of the second period, the Game Over command will be issued. If the score is tied, the Halftime command will be issued again, and a third period will be added to the game. If the score remains tied at the end of the overtime period, a three-round penalty shootout will be used to decide a winner.

The Schedule

Team Selection (11/4) - To choose who you will be working with, add your names here before 9:00 p.m. on Wednesday, November 4th. Those not on the list by the deadline will be randomly assigned.

Design Briefing (11/10) - During our lecture time on Monday, you will have an opportunity to meet with either a team coach or one of the course TAs. You should be prepared to discuss how you plan to win the Robockey Cup. At a minimum, you should be have information on mechanical design decisions, actuator and sensor selection, and the game-play strategy that you will implement.

Pololu Order (11/11) - We are going to place a group actuator order from Pololu early Tuesday morning (hopefully arriving before the weekend). Each team has a budget of $120 (if the items you select come to more than this amount, you will need to cover the difference). To place your order, add your items to the Google Doc - please do not modify other teams' orders!

Localization (11/14) - Complete the mWii localization assignment.

Qualifying (11/24-11/26) - At some point during (or before) the qualifying period, your team must demonstrate at least one robot (preferably two robots) capable of starting from a random location and driving to the goal on the opposite side of the rink when issued a "Play" command.

Friendlies (12/1 - 12/3) - Each team must participate in at least four supervised friendly matches with different teams. These games will follow all of the rules and restrictions listed in the Game Play section. A scoreboard will be maintained in the lab, and the results from the friendlies will be used to seed teams into Pool Play.

Pool Play (12/4-12/7) - Based upon the results from the friendly matches, teams will be divided into six different pools, and you will be assigned matches against each team in your pool. The top teams from each pool will advance to the championship tournament bracket, while the lower 2-3 teams will fill in a consolation bracket.

Early Rounds (12/8) - The parallel-track double-elimination Robockey Cup Tournament will be conducted over two sessions, with initial seeding based on pool-play results. The early rounds of both the championship and consolation brackets are scheduled to take place on Monday the 9th. These matches will also serve as the official grading session, where you will be evaluated based on your ability to meet the project requirements.

The Public Tournament (12/11) - The public tournament will begin with the semifinal and final rounds of the consolation bracket, with the winner bumping up to take a spot in the championship bracket (the three other consolation semifinalists will remain as wildcards in the event of a withdrawal by a championship team). We will then make our way through the championship bracket to declare a winning team.