ACM Journal of Educational Resources in Computing, Vol. 3. No. 4, December 2003. Article 1.
Pyro: A Python-based Versatile Programming
Environment for Teaching Robotics
DOUGLAS BLANK AND DEEPAK KUMAR, Bryn Mawr College
LISA MEEDEN, Swarthmore College
AND
HOLLY YANCO, University of Massachusetts, Lowell
_________________________________________________________________________________________
In this article we describe a programming framework called Pyro, which provides a set of abstractions that
allows students to write platform-independent robot programs. This project is unique because of its focus on the
pedagogical implications of teaching mobile robotics via a top-down approach. We describe the background of
the project, its novel abstractions, its library of objects, and the many learning modules that have been created
from which curricula for different types of courses can be drawn. Finally, we explore Pyro from the students'
perspective in a case study.
Categories and Subject Descriptors: I.2.9 [Artificial Intelligence]: Robotics – Autonomous vehicles; K.3.2
[Computers and Education]: Computer and Information Science Education – Computer science education;
I.6.7 [Simulation and Modeling]: Simulation Support Systems - Environments
General Terms: Design, Experimentation, Peformance
Additional Key Words and Phrases: Mobile robotics, education, robot abstractions, autonomous control,
programming languages, computer science education, top-down instruction, platform-independent robotics
control
__________________________________________________________________________________________
1. INTRODUCTION
Not that long ago, robotics was a field of study relegated to well-funded engineering
universities that built their own robots. Starting in the mid-1990s, simple, inexpensive
robots (such as the Handyboard and LEGO Mindstorms) were introduced and their use
proliferated in the classroom, first in colleges and later even in middle schools.
Currently, sophisticated robots with cameras, advanced sensors, and motors (such as
Sony's robot dog, Aibo, and ActivMedia's Pioneer) are becoming financially accessible to
undergraduate computer science, and even some courses in psychology.
Although sophisticated robotic platforms are now affordable, a large issue still
remains: how do you teach students to use such robots? Unfortunately, each robot has its
own application programming interface (API) and, even worse, each specific type of
sensor may have its own API. This situation is perhaps similar to one in the early days of
digital computers when every computer had a different architecture, a different assembly
language, and even a different way of storing the most basic kinds of information
The Pyro project was designed to answer the question of how to program
sophisticated robots by serving as a high-level programming paradigm for a wide variety
_________________________________________________________________________________________
This work was funded in part by NSF CCLI Grant DUE 0231363.
Authors’ addresses: D. Blank and D. Kumar, Bryn Mawr College, Computer Science Program, 101 North
Merion Avenue, Bryn Mawr, PA 19010; L. Meeden, Swarthmore College, Computer Science Program, 500
College Avenue, Swarthmore, PA 19081; and H. Yanco, University of Massachusetts Lowell, Computer
Science Department, One University Avenue, Olsen Hall, Room 206, Lowell, MA 01854.
Permission to make digital/hard copy of part of this work for personal or classroom use is granted without fee
provided that the copies are not made or distributed for profit or commercial advantage, the copyright notice,
the title of the publication, and its date of appear, and notice is given that copying is by permission of the ACM,
Inc. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific
permission and/or a fee. Permission may be requested from the Publications Dept., ACM, Inc., 1515 Broadway,
New York, NY 10036, USA, fax:+1(212) 869-0481, permissions@acm.org
© 2005 ACM 1531-4278/03/1200-ART1$5.00