# Botball

Botball is an educational robotics program that focuses on engaging middle and high school aged students in team-oriented robotics competitions. Thousands of children and young adults participate in the Botball program. It has been active since 1998 and features a robotics curriculum which focuses on designing, building and programming a pair of autonomous robots. Teams use a standardized kit of materials, document the process and then compete in a tournament in which the challenges change annually. All materials in the kits are exactly the same for every team around the world, so there are no unfair advantages. Botball teams are mostly based in the United States with over 300 teams and local tournaments in more than a dozen regions. In recent years it also holds an annual Global Conference on Educational Robotics (GCER), with an international tournament that attracts teams all over the country as well as from Mexico, Austria, China, Uganda, Poland, Qatar, Kuwait, Egypt, and many others.

## Overview

Botball's mantra is that “Today’s Botball kids are tomorrow’s scientists and engineers.” The program is managed by the non-profit KISS Institute for Practical Robotics (KISS stands for the engineering acronym: Keep It Simple Stupid) whose vision is to use robotics "to stimulate and engage students in exploring their potential in engineering, science and math." The goal of Botball and KISS to educate the workforce of the future and to engage students in science, technology, engineering and math. This objective is shared by the NASA Robotics Alliance Project (RAP) which partners with Botball and other robotics education programs. NASA RAP's mission is “to enable the implementation of future robotic space exploration missions.” NASA sponsors Botball through providing technical mentors and other resources. It also hosts an online free course in Programming robots in C, featuring a controller that was used in Botball NASA RAP sees Botball as an opportunity to reach out to its future workforce and provide relevant hands-on experience and necessary skills to potential future NASA scientists.
Botball is known for the sophistication and complexity of its robotic competitions. What differentiates Botball from other student robotics programs is that the robots are autonomous; therefore, they are not directed by remote control. Students use computer science to program the robots to recognize challenges and then attempt the objectives of the competition. The robots contain several types of sensors and also two digital cameras for their computer vision systems. Robot Magazine, highlighted in an article the gameplay and systems, "Every year the game offers different challenges at varying levels of difficulty, so participants can focus on harder goals, or find simpler solutions, based on their abilities ... Botball uses the CBC2, a powerful robot controller that easily interfaces with a large number of sensors and effectors and features an ARM 9-based CPU/Vision processor running LINUX, an ARM 7-based DAQ/Motor control system, and integrated display and touch screens that are easy to use. The CBC2 uses the KISS-C Integrated Development Environment and its libraries, especially designed to be friendly to users with vastly different programming experience. Both the CBC2 and KISS-C were developed by KISS Institute and are used in university research programs, as well as the Botball Program."
Botball competitions revolve around using autonomous robots to complete a series of tasks (such as collecting objects and moving them to another location or recognizing certain color objects and sorting them) within a set time limit of two minutes. Sensors and digital cameras give input to the robots, which help to identify objects. Beforehand and between rounds of competition, participants program the robots using an integrated development environment (KISS-C is the latest version). Botball competitors also must complete online documentation of their progress and their goals to score points.
A similar competition for adults, called the KIPR Open (formerly Beyond Botball), commenced in 2001.

## History

The KISS Institute for Practical Robotics is a 501(c)(3) not-for profit education and research organization, incorporated in Virginia in 1994. It is headquartered now located in Norman, Oklahoma. KISS Institute was co-founded by Ms. Cathryne Stein, Dr. David Miller, and Dr. Marc Slack with the objective of creating a center for a system of technology and science education programs based on robotics, and to use robotic technology to better serve the public good. Ms. Stein has recently retired as executive director; she is succeeded by Dr. Steve Goodgame, an experienced educator who became CEO via No Contest. Dr. Miller is the Chief Technology Officer, as well as the Wilkonson Professor of Aerospace and Mechanical Engineering at the University of Oklahoma. Dr. Miller is a former JPL employee, having made significant contributions to NASA's Mars Rover project.
Botball was first started in 1997 by the KISS Institute for Practical Robotics (KIPR).

## Technical components

At the start of each Botball season, each team receives a kit of components with enough material to build two completely autonomous robots.
The mechanical components used in Botball are Lego Technic bricks. The electrical components have included a variety of robot controllers, of which each team's kit contains two (enabling them to build two fully autonomous robots out of each kit), as well as a number of different sensors and motors.

### Robot controllers used in Botball

* KIPR Wombat
* KIPR Wallaby
* iRobot Create, with an XBC or CBC attached.
* KIPR Wallaby
* An unmodified iRobot Create.
Previously used:
* Handy Board, with and without the expansion board
* Lego RCX, v1 and v2
* XBC – v1, v2 and v3
* CBC – v1 and v2
* KIPR Link
* An example of a Handy Board. This one is larger than the one included in most sets.
* The RCX without any attachments or motors.
* The XBC robot controller. The Game Boy Advance, Game Boy Micro, or Game Boy Advance SP can be used with the XBC.
* A CBC Botball Controller (based on a Chumby)
* KIPR Link

### Sensors and motors
#### Motors

* Servo motors
    In Botball, servo motors are generally used to power an arm or attachment on the robot. They are standard hobby servos, commanded to a position using a standard pulse-width signal as for remote-control cars and airplanes, but in this case the signals are generated by the CBC (or earlier controllers). The servos have an angular range from 0 to 180 degrees and provide motor torque to hold the commanded position. Servos can be calibrated from a special control screen on the CBC w/o any programming to test/adjust their mechanical positions for a desired angular command.
* Electric DC motors
    In Botball, the electric DC motors are generally used for powering wheels. Using the Wallaby, however, they can be commanded to run at an accurate speed and stop at a precise rotational position. This is provided at the operating system level in the CBC by periodically sampling the EMF as the motor turns and adjusting the power. The user code only needs to specify the desired speed (and stopping position, if required) using motor functions.

#### Sensors

* Passive sensors
** Touch sensor
       A touch sensor detects when the sensor is hit.
** Light sensor
       A light sensor detects light. Light sensors are used in the beginning of the round when a bulb lights up to signal the beginning of a round.
** Color camera
       In Botball, the camera is used to keep track of moving objects or move to objects. The camera can track the center of areas (or "blobs") of color (this is called the "blob tracker"). The blob coordinates can, in turn be used to point an arm, or to guide the robot to the object, using a guidance program.
** IR break beam sensor
       This sensor uses a beam passing between an emitter and receiver to test for small obstructions.
* Active sensors
** Infrared emitter/receivers
** Sonar sensor
       These sensors are used to tell the distance between the robot and an object.

### Programming language

The official programming language used in Botball from 1997 to 2008 was Interactive C. KISS-C is the official programming language used in Botball 2009 to 2011. KISS IDE is the official programming environment used in Botball from Fall of 2011–2016. KISS IDE supports C, C++, Java, and Python.

## Rules
### Robot construction

Robots can only be constructed of the parts included in the kit.
* A maximum of 93 square inches of paper (which must be 20-pound paper or less) may be used. The paper used must be black or white.
* String may be used in the construction of the robot; up to 36 inches may be used.
* Ten #19 rubber bands can be used.
* The metal parts included in the kit cannot be broken into smaller pieces.
* Of the metal parts, only the flat bars and plates may be bent.
* The only removable parts on the iRobot Create are the rear wheel, the drive wheel clips, and the rear cargo bay wall. Any other parts cannot be removed or disassembled.
* The area the robots start in varies by year. In 2010 the starting area is 22 by 31.5 by 15 inches (10395 in$^3$)
** The robot must be under a certain height constraint at the start of the match.
* A team may have four different objects on the field.
** All the objects must fit into the starting box.
* No wireless communications are allowed during the tournament.

### Game play

Each year has a different set of objectives. The 2008 theme was outer space based, with the robots on board a space station. The robots must get ready for a solar flare by collecting "food" (green balls), rescuing "crew members" (orange balls), and deploying "satellites" (blue cups) and "solar sails" (cocktail umbrellas). The robots must also collect Botguy (a plush robot) and a garden (a large green ball) and place them on their side. The board is made up of two eight-foot by four-foot boards connected by a two-foot by four-foot ditch. The ditch has two bridges on either side, which the robots must knock down to get to the other side.
The field size depends upon the game; this one totals 8 ft by 12 ft, with most of the surface surrounded by 1+1⁄2-inch PVC pipe. When two teams compete against each other, they start on opposite ends of the playing surface and have 120 seconds to move around objects and score points. At the end of a game, the robots must stop themselves, at which time a judge scores the game to determine which team's robots won.

#### Scoring

For the 2008 season, the initial score of a team is 0 and then points are calculated at the end of the game using the point values found in the following table:
| | Side 1 ("your side") | Solarium | Shelter | Space | Side 2 ("other team's side") |
| Satellite | -4 | -6 | -6 | 0 | N/A |
| Solar sail | -3 | -3 | -3 | 0 | N/A |
| Plant | 1 | 6 | 0 | 0 | N/A |
| Crew | 1 | 0 | 6 | 0 | N/A |
| Garden | 5 | 15 | 3 | 0 | N/A |
| Botguy | 5 | 3 | 15 | 0 | N/A |
| Team 1's robot | 0 | 0 | 0 | 0 | 15 on their side and 30 in shelter |

## The Botball season/Competition

The Botball regional season runs from late January to about early May. During this time, students attend a two-day workshop and are trained in learning the basics of computer programming. Students have six to eight weeks to program, build, and test their robots. As the robots progress, students have to document how their robot is coming along as well as the tweaks and changes they made from the original design. During the regional competition, there are three rounds: Seeding, Double Eliminations, and Alliance. Seeding: Seeding is where one team goes against themselves(it is more like a practice round) but students still earn points and there is an award for the team that scores the highest on the seeding round. Double Eliminations is where the actual competition begins and where teams compete against each other until they are eliminated twice. Alliance Matches are matches for teams who have been eliminated twice early in the competition. Two teams are paired up together and they compete for points(it works like the seeding rounds but there is 1 individual team on each side and they try and score points as an alliance.)

### Regions and international competitions

As of 2012, the regions in the United States are as follows:
* Arizona
* Colorado
* Florida
* Chicago area
* Greater Los Angeles
* Georgia
* Greater DC/Virginia
* Greater San Diego
* Greater St. Louis
* Hawaiʻi
* Maryland
* New England
* New Mexico
* New York/New Jersey
* Northern California
* Oklahoma
* Poland
* Southern California
* Texas
Botball also had 4 tournaments in the Middle East:
* Egypt
* Qatar
* Kuwait
* United Arab Emirates
As of 2011, Botball also had tournaments in
* Austria
Starting in 2001, KIPR began holding a national competition and in 2003 the first international team participated. The international competition is held during the summer after all of the regional competitions have completed. Every team that participates in a regional competition is eligible to participate in the international competition. The game rules at the international competition are generally identical to that year's regional game. The event is held during the GCER (Global Conference for Educational Robotics). The KIPR Open (formerly Beyond Botball) is also held at GCER and multiple speakers come and talk about the robotics field. GCER has been hosted in Hawaii; Northern and Southern CA; Norman, OK; Jacksonville, FL; Leesburg, VA; and Edwardsville, IL, and Washington DC. In 2013, GCER will be held in Norman, OK.