MEAM.Design - MEAM 410 - Robockey


Fourteen student teams. Custom-built robots. Fully autonomous. Wireless. Three-on-Three. Full contact... This is the second-annual Robockey Cup!


The Rules

(:toggle label="The Rink" hide rink:)

The Robockey rink will take the general shape shown below, and will be surrounded by a clear plastic border at least 4 centimeters tall. Note - these dimensions are approximate.

(:toggle label="The Puck" hide puck:)

The puck will be approximately 3.0 inches in diameter and will be X.X inches tall. It will emit 940nm IR light around it's circumference.

(:toggle label="Your Robots" hide 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.

Control: Your robot team must be fully autonomous, and each robot must carry it’s own power source.

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

Tracking Fiducial: To mount the tracking fiducial, each robot must have a 1/4-20 male thread protruding at least 1/4-inch above the highest point. The tracking system will provide you with the X,Y location of this thread with respect to the center of the field.

Other Restrictions: Your team must not interfere with the wireless communications of another team or the tracking system. To avoid confusion with the puck, your robots must not emit nor intentionally reflect IR light.

(:toggle label="Wireless Protocol" hide comm:)

Each robot in the tournament will have a unique 5-byte wireless address. These will be defined as follows:

char address[5] = {0xXY, 0xXY, 0xXY, 0xXY, 0xXY};

where X is your team number in hex, and Y is your robot number within your team (1, 2, or 3). For example, the three robots for team 12 will have the addresses of 0xC1, 0xC2, and 0xC3.

You are only allowed to send packets to other members of your team. The game controller will send your robot instructions and localization information, according to the following protocol:

Instructions - The following codes will be sent as single-byte packets to your wireless address. Some instructions require that your robot respond in a certain way.

Function Code Response
Test 0xA0 Flash an LED
Play 0xA1 -
Goal (A) 0xA2 -
Goal (B) 0xA3 -
Pause 0xA4 Stop moving within 3 seconds
Detangle 0xA5 Move randomly
Halftime 0xA6 -
End 0xA7 -

Localization - Whenever the tracking system sees your robot's unique fiducial marker, it will send your robot a 6-byte packet containing localization information. The X and Y positions are 16-bit signed (2’s complement) integers, each split over two bytes, with the high byte being sent first. The position values will give you an estimate of the center of the fiducial relative to the center of the rink.

0xAA 0x00 x_pos L x_pos H y_pos L y_pos H

(:toggle label="Game Procedure" hide game_play:)

A regulation Robockey match consists of two 3-minute periods.

No more than 3 robots can be on the field for each team at a given time.

Upon arrival at the match, a coin will be tossed, and the winning team will then choose which side of the field they would like to start on.

Each participating robot will then be assigned a tracking marker and the tracking software will be configured with the robot’s address. A test connection message will be sent to all of the active robots, whereupon the robot must acknowledge receipt of the message in some visible or audible way.

After signing in, the robots will be placed in the rink beyond the 80-cm lines. No robot can be inside the 80-cm center section before the begin play command is issued.

The puck will be placed in the center of the rink.

Once the begin play command is issued, the robots are free to move about the field, with the objective of getting the puck into the opposing team’s goal.

After 3 minutes of play, the halftime command will be issued. During the 30-second halftime, you will be able to interact with your robots. Before the 30 seconds expire, you must place your robot beyond the 80-cm lines on the opposite side of the rink from where you began the first period.

Each team can call 2 timeouts per match. When a timeout is called, the pause command will be issued, and all robots must stop moving within 3 seconds. Both teams will then have 30 seconds to interact with their robots. You are not allowed to change the general location of your robots during a timeout.

When a goal is scored, the appropriate goal scored command will be issued and the clock will stop. At this point, you must move all robots beyond the appropriate 80-cm lines. Once all robots are in position, the puck will be replaced in the center of the rink, and a begin play command will be issued.

After the end of the second period, the game over command will be issued.

In the event of a tie score, an additional period will be added to the match.


The Schedule

Nov 4th - (:toggle label="Design Plan" hide plan:)

As a team, put together a brief document explaining how you plan to win the Robockey Cup. At a minimum, you should include information on mechanical design decisions, actuator and sensor selection, and the game-play strategy that you will implement. Submit your plan as a PDF to medesign@seas.upenn.edu with the title of Robockey-Txx-Plan, where xx is your team number.

Nov 18th - (:toggle label="State-Machine Test" hide state:)

Before the end of the day on November 18th, each member of your team must demonstrate a robot that is able to follow all of the game play commands.

Nov 24th - (:toggle label="Localization Test" hide local:)

Before the end of the day on November 24th, each member of your team must demonstrate a robot that is able to process localization information and drive itself to the center of the rink. To do this, you will attach a fiducial to the top of your robot, turn the robot on, wait for the "play" command, then have it autonomously drive to the center of the field. This will need to be done for each robot on your team.

Dec 1st-3rd - (:toggle label="Friendlies" hide friendly:)

Each team must participate in at least two supervised friendly matches (with different teams). These matches will follow all of the rules and restrictions listed in the Game Play section. A schedule will be posted in the lab for teams to sign up.

Dec 8th - (:toggle label="Competition - First Round" hide first:)

The Robockey Cup Tournament will be conducted in a double-elimination format with random initial seeding. The first-round matches will also serve as the official grading session, where you will be evaluated based on your ability to meet the requirements outlined above. At this time, each team member will also be asked a series of questions about the system.

Dec 8th-10th - The field will be in Wu & Chen for testing after 7:30 p.m. on December 8th, then again from 8am-noon and 7:30 onward on December 10th.

Dec 11th - (:toggle label="Competition - Final Rounds" hide final:)

Rounds 2 through the championship will be held during a public event in the evening on Friday, December 11th. The field will be moved into the auditorium at 4:30 p.m., with the event tentatively scheduled to start at 6:00 p.m. Invite anyone and everyone!