2014 ARTSI Robotics Competition at Tapia, Sponsored by iAAMCS
For the 2015 competition, click here
Date: Saturday, Feb. 8, 2014 (passed)
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
Click for the 2015 competition
- 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: These are simple, non-competitive tasks
that beginning robot programmers can solve to demonstrate competence
in Tekkotsu fundamentals. Teams that successfully complete at least
one of these tasks will earn a Certificate of Achievement. The tasks
can be done in simulation, but solutions will be tested on a real
robot at the competition.
- Simulator Event: Students design a small virtual
environment using Tekkotsu's Mirage
simulator, and program a Calliope2SP robot to do something in this
world. This is an opportunity to show off students' creativity as
they design their virtual world. Prizes will be awarded for first,
second, and third place.
- Robot Event: This is a more complex, timed task combining
vision, navigation, and manipulation, and must be done using a real
Calliope2SP robot. Prizes will be awarded for first, second, and
|The Calliope2SP robot gripping a canister marked with an AprilTag. The
blue line marks a boundary that the robot can detect using its camera.
(click for larger version)
Challenge Task 1: HexPent
Here is a similar challenge task from the 2013 competition, along with
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.
Challenge Task 2: Digit Reader
|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 3: Slalom Course
| 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.
| 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,
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:
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
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
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?
- How do I install the Tekkotsu software?
- How can I learn Tekkotsu robot programming?
- How do I obtain a loaner robot?
- What constitutes a "team"?
- How do I register for the competition?
- Can I purchase my own Calliope2SP robots?
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
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
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
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
To register, send an email to ARTSI.Competition@gmail.com
no later than January 5, 2014 (preferably earlier) with the following
6. Can I purchase my own Calliope2SP robots?
- 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
Robots may be purchased from RoPro Design. The
competition organizers have no financial relationship with RoPro
Design and receive no royalties from any sales.
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