2014 ARTSI Robotics Competition at Tapia, Sponsored by iAAMCS

Date: Saturday, Feb. 8, 2014
Location: Seattle, WA, at the ACM Richard Tapia Celebration of Diversity in Computing
Prizes generously contributed by Seagate Technology.
Team Registration Deadline: January 5, 2014
Click for Frequently Asked Questions


  • 2/8/2014: Winners announced.
  • 2/1/2014: Bug fix to MapBuilder; do a cvs update.
  • 1/31/2014: Updated the SortCylinders arena model: walls are 32 inches high.
  • 1/11/2014: Added a second sample program for the main robot event.
  • 1/6/2014: Details of the main robot event have been added to the web page; see below.

Competition Overview: Do I Need a Robot?
Some events can be done in simulation. The main event must be done on a real robot, but loaner robots will be sent out to schools that need them. The competition uses the Tekkotsu software framework, a free, open source platform developed at Carnegie Mellon. The robot is the Calliope2SP, co-developed by RoPro Design and Carnegie Mellon, and based on the iRobot Create.

Challenge Tasks

Challenge Task 1: HexPent
The robot must execute the trajectory shown at right. The path is a hexagon fused with a pentagon. All sides are 500 millimeters. The robot starts out facing north. It must make a left turn of 90 degrees, go forward 500 millimeters, and proceed from there around the rest of the path. When it returns to its starting position it must make a final turn so that it is facing north again. If you would like to use Mirage to develop your solution, you may use the Mirage world HexPent.mirage.

Here is a similar challenge task from the 2013 competition, along with the solution.
Example problem. The robot starts out facing north and must execute a trajectory that makes a five-pointed star, with a leg length of 1 meter. The world source file is Star5.ian and the Mirage file is Star5.mirage. The solution code is Star5.cc.fsm.

Challenge Task 2: Digit Reader
The robot starts out facing the first of three boxes. Each box has an AprilTag on its front; the tag code denotes a digit 0-9. In the figure at right, the digits are 2, 5, 4. The robot must read the AprilTags and speak the results as a three digit number, e.g., "two hundred fifty-four". The first box is 1.5 meters in front of the robot, and the boxes are spaced 1 meter apart. The robot is allowed to move around to read the boxes, if desired. The actual digits will of course be different than the 2-5-4 sequence shown. To test your code in Mirage, use world source file Digits.ian or Mirage file Digits.mirage.

Challenge Task 3: Slalom Course
Make your own Mirage world containing a line of five pillars, as in the figure at right. Have the robot weave between the pillars as if on a slalom course, without hitting any of them. Your world does not have to look exactly like the example given here: you can choose the size, spacing, and appearance of the pillars. Since you know the locations of the pillars, you can program the robot's trajectory without using vision.

Simulator Event: Angry Robot Birds

Construct an Angry Birds-type world with images of pigs (on cubes) supported by structural items that the robot can knock over by running into them. Include several types of pigs and several different structures. Then, program your robot to get the pigs! (Since you know where things are in the world, you can program a fixed trajectory for your robot, or use vision if you're really good.)

Competition entries will be judged based on the intricacy of the world and the cleverness of the robot's actions. The images at right are a very simple example; surely you can do better than this.

Some technical notes: Set the mass of your objects to 0.1 so the robot can safely run into them. See the Mirage Tips wiki page to learn how to put images onto cubes. Pig images are available on the web.

Sample files: AngryBirds.ian, AngryBirds.mirage, Pigs.material, generic-pig.png.

Robot Event: Cylinder Sorting

This task is to be done on the physical robot, but the initial solution can be developed using the Mirage simulator. The arena is 3 meters by 1.5 meters. There is a 500 mm square goal box at either end, marked by blue lines. There is an AprilTag in the center of each wall; these can serve as navigation landmarks. There are four randomly-positioned red cylinders, each with an AprilTag on its top. Your robot must move the cylinders with tagID 10 into the east goal box, and those with tagID 11 into the west goal box.

Arena notes: you can make an arena using Plasticor or cut-up cardboard boxes. You can buy large cardboard boxes from moving companies like U-Haul, or shipping companies like UPS. A Mirage model of the arena is available: SortCylinders.ian, SortCylinders.mirage.

Landmark notes: the four landmarks are AprilTags with distinct tagIDs: north(1), east(2), south(3), and west(4). The tag size isn't crucial, but the centers of the tags must be positioned exactly 8 inches above the ground. (This is higher than the 7 inches we normally use.) To accomodate this, you must set MapBuilderRequest::defaultMarkerHeight to 8*25.4. See the sample code provided below.

Goal box notes: although the goal locations are marked with blue lines, you are not required to use these lines for navigation. You know the arena dimensions and are provided with a pre-constructed world map in the sample code, so you can calculate the goal locations in world coordinates.

Cylinder notes: the cylinders are Folgers coffee canisters with the labels removed, and an AprilTag pasted on the top. You can purchase these canisters at your local grocery store, or make your own from a mailing tube. The canisters are 100 mm in diameter and 132 mm high. The exact size of the AprilTag isn't crucial, but obviously, larger tags are easier to see at a distance. Even so, some cylinder tags may not be readable if the robot is too far from the cylinder. The tagID will be 10 for some cylinders and 11 for others.

Camera notes: when running on the real robot, you may need to play with the camera settings to compensate for the room illumination.

Sample code: the first bit of sample code, SortSample1.cc.fsm, constructs the world map and looks for cylinders and lines. The second bit of sample code SortSample2.cc.fsm, extends the previous sample by picking up a cylinder and depositing it in the center of the arena. You will need to modify this code to move cylinders to the correct goal box based on their AprilTag. Do a cvs update before attempting to run this code, as there have been substantial enhancements and bug fixes made in December 2013/January 2014.

Scoring: each team is allowed two runs. Each run is limited to 10 minutes. Teams will be ranked based on the number of canisters in the correct goal box at the end of their run, and secondarily, by speed. To count as being in a goal box, at least 50% of the cylinder must be within the blue line. Note: if a robot accidentally pushes a canister out of the goal box, it won't contribute to the score unless the robot pushes it back in again.

Frequently Asked Questions
  1. How do I install the Tekkotsu software?
  2. How can I learn Tekkotsu robot programming?
  3. How do I obtain a loaner robot?
  4. What constitutes a "team"?
  5. How do I register for the competition?
  6. Can I purchase my own Calliope2SP robots?
1. How do I install the Tekkotsu software?
You will need a workstation that runs Ubuntu Linux 12.04. We are looking into creating our own Ubuntu install CD that includes Tekkotsu. For now, simply go to the Tekkotsu Wiki and follow the Ubuntu install instructions and then the Tekkotsu install instructions. For the Mirage simulator, follow the Mirage install instructions.

2. How can I learn Tekkotsu robot programming?

The labs on the Tekkotsu wiki are the best introduction. There is additional material on the tutorials page. For greater depth, see the lecture notes from Dave Touretzky's Cognitive Robotics course.

3. How do I obtain a loaner robot?

Loaner robots will be supplied on a first come, first served basis to schools that demonstrate proficiency in basic Tekkotsu programming using the Mirage simulator. Any of the three Challenge Tasks can be used to demonstrate proficiency; simply send in the source code for your solution along with your team registration information.

4. What constitutes a "team"?

A team consists of one to four students who work together to solve a task. At most one team member can be a graduate student; all others must be undergraduates.

5. How do I register for the competition?

Teams must qualify at time of registration by demonstrating mastery of basic robot programming. The reasons for this are (1) to ensure that teams don't wait until the last minute to start working with Tekkotsu, and (2) to allow us to accurately estimate the amount of time, space, and judging resources required for the competition. Any of the three Challenge Tasks can be used as a qualification task; simply send in the source code for your solution along with your team registration info.

To register, send an email to ARTSI.Competition@gmail.com no later than January 5, 2014 (preferably earlier) with the following information:

  • School name
  • Team name and contact info (email and phone)
  • Name of each team member, and the faculty advisor's name
  • Source code for your qualification entry
  • Competition event(s) in which you expect to participate
  • Travel assistance received: have any members received Tapia scholarships?
  • Travel assistance requested: some travel funding may be available from iAAMCS
6. Can I purchase my own Calliope2SP robots?
Robots may be purchased from RoPro Design. The competition organizers have no financial relationship with RoPro Design and receive no royalties from any sales.

Competition Organizers
The ARTSI Robotics Competitions are created by David Touretzky of Carnegie Mellon, and administered by him and Tamara Rogers of Tennessee State University.

About ARTSI and iAAMCS
ARTSI (Advancing Robotics Technology for Societal Impact) is a consortium of computer science educators working to develop an active African American robotics community and recruit underrepresented students to pursue graduate training and careers in research. ARTSI is led by Chutima Boonthum-Denecke of Hampton University, and David Touretzky of Carnegie Mellon. ARTSI was formerly funded by the National Science Foundation's BPC (Broadening Participation in Computing) program, which now funds iAAMCS, the Institute for African-American Mentoring in Computing Sciences. iAAMCS is the sponsor of (and provides some funding for) the ARTSI robotics competition at Tapia. iAAMCS is led by Juan Gilbert of Clemson University.