├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Defconbots 2015 - Tower Defense - Rules 2 | 3 | These are the official rules for the Defconbots 2015, tower defense, competition. 4 | 5 | If you have questions or comments about the rules create an issue in this repository. 6 | 7 | ## Spirit of the Contest 8 | 9 | * Build an autonomous robot with an aiming mechanism and a laser 10 | * Write software for the robot to accurately aim and shoot the laser at moving and illuminated targets 11 | 12 | Robots that go against the spirit of the contest will be disqualified. This is a robotics contest not a language contest -- don't try to exploit some loophole in the wording of the rules -- don't be *that* person. 13 | 14 | ## Robot 15 | 16 | ### Physical 17 | 18 | * Must fit within 1 x 1 x 1 meter cube 19 | * Must be easy to move and stage for competition quickly (< 5 minutes) 20 | * Will sit on a platform ~0.2 meters off the ground (the same as last year) 21 | 22 | ### Shooting Device 23 | 24 | * One(1) **50 milliwatt** Green laser 25 | * The laser should be ON at least 500 ms before a serial message is broadcast (it is recommended you keep the laser enabled at all times during the wave) 26 | * The laser must be capable of encoding a 4800 baud 8N1 serial signal 27 | * A laser hit message may be broadcast once every 500 milliseconds 28 | * No specific laser is required but it is strongly recommended you use the laser used to develop the targets: http://www.civillaser.com/532nm-5mw50mw-ttl-modulation-green-laser-module-dot-16mmx70mm-p-130.html 29 | * If a mirror is used to direct your laser it must not distort your laser beam (cannot be concave or convex) 30 | * The robot should only emit one laser beam (beam-splitters may be used internally but the robot may not emit multiple beams) 31 | 32 | ### Software 33 | 34 | * Autonomous (no remote control) 35 | * Your laser must encode a serial message in the following format: 36 | 37 | [NITT] 38 | 39 | Where N is the target number '1','2','3','4','5' or the character '*'. And TT is an ID assigned to you at the contest. Target number hit IDs will be addressed below in the "Call Your Shots" section. All messages are ASCII-encoded. 40 | 41 | #### Example Serial Messages 42 | 43 | A contestant robot with an ID of 05 is targeting all targets (wildcard address): 44 | 45 | [*I05] 46 | 47 | A contestant robot with an ID of 01 is targeting target number 3: 48 | 49 | [3I01] 50 | 51 | # Competition Mechanics 52 | 53 | ## Arena 54 | 55 | * 6 x 4.5 meters (See conceptual layout http://i.imgur.com/4RzQxc4.png) 56 | * Ground will be flat-black in color 57 | 58 | ## Targets 59 | 60 | * 5 targets 61 | * 5 to 12.5cm off the ground 62 | * 12.5 cm apart 63 | * Three(3) possible speeds: 0 m/s, 0.25 m/s, and 0.33 m/s 64 | * Cylindrical shape (25mm diameter, 25mm height) 65 | * White surface color 66 | * Illuminated blue (470nm) when active, red (631nm) when stunned, off when dead 67 | * Targets are numbered 1 to 5, with target #1 being closest to the engine and subsequent targets sequentially numbered 68 | 69 | ## Waves 70 | 71 | * Each wave starts at a specific point on the track 72 | * Initially all targets are illuminated and "alive" 73 | * Initially the train will move at the nominal speed (0.25 m/s) and speed may change if your shots are "called" 74 | * A "hit" on a target is when a encoded serial laser message is successfully received by the target and verified 75 | * Once a target is hit illumination on the hit target will transition from blue to red for two(2) seconds and illumination on all other targets will be disabled for two(2) seconds 76 | * Wave #1 will require one(1) hit on each target 77 | * Wave #n(where n is the wave number) will require n hits on each target 78 | * Once n hits have been completed the target illumination will stop until the end of the wave 79 | * If there is a problem with the track or targets during a wave the event coordinators reserve the right to halt the wave and restart it or resume the wave from where the problem occured (we will try our best to never let this happen!) 80 | 81 | ## "Call Your Shot" 82 | 83 | There are two possible ways to send a laser hit message to a target -- with the wild-card('*') or with a specific address ('1' to '5'). 84 | 85 | ### Wild-card Hits 86 | 87 | If you decide to use the wild card then you may attempt to hit any target and as soon as the laser hit message registers a hit will be counted, the target will continue to move at normal speed, and the target illumination will cycle normally. 88 | 89 | Each wild-card hit will add **100000 points** to your score. 90 | 91 | ### Addressed Laser Hit Messages (aka Calling Your Shot) 92 | 93 | As an extra challenge competitors can choose to aim at specific targets by addressing them in their target hit message. There are two possible outcomes from calling your shot: 94 | 95 | 1. You call your shot and make the hit: 96 | * The hit will add **150000 points** to your score 97 | * The train will **stop** for 5 seconds (The 5 second delay can occur only once every 30 seconds) 98 | 2. You call your shot and hit the wrong target: 99 | * The hit will **deduct 10000** point from your score 100 | * The train will **speed up** for 5 seconds 101 | 102 | ## How to win 103 | 104 | * Qualification 105 | * Contestants are able to qualify on a first-come, first-serve basis 106 | * Contestants have 10 minutes to set up their robot. When the contestant is ready, the first wave will start 107 | * If a wave is completed, then the next wave will start. Otherwise the contestant has the ability to tweak their robot and retry the wave 108 | * After 3 failed waves, the contestants turn is over, and their score will be recorded on a leaderboard 109 | * If available, contestants are able to try to qualify again at a later time, but people who haven't qualified have first priority 110 | * Finals 111 | * After the qualification round is completed, the finals round will start 112 | * The top 4 contestants in the qualification round proceed to the finals 113 | * In order from fourth place to first place, each contestant will take a turn in order 114 | * Contestants have 10 minutes to set up their robot. When the contestant is ready, the first wave will start 115 | * If a wave is completed, then the next wave will start 116 | * After a failed wave, their turn is over, and their score will be recorded 117 | * The final ranking will be determined by the finals times for the people that were in first through fourth, followed by the runners up in order of their qualification score. 118 | 119 | ## Schedule 120 | 121 | Qualifications: Friday 7-August-2015 Open-to-5pm 122 | 123 | Finals: Saturday 8-Aug-2015, 1PM-3PM 124 | --------------------------------------------------------------------------------