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:)
(:toggle label="The Puck" hide puck:)
(:toggle label="Your Robots" hide robots:)
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:)
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:)
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:)
Nov 18th - (:toggle label="State-Machine Test" hide state:)
Nov 24th - (:toggle label="Localization Test" hide local:)
Dec 1st-3rd - (:toggle label="Friendlies" hide friendly:)
Dec 8th - (:toggle label="Competition - First Round" hide first:)
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:)