Welcome to Pyro! Pyro stands for Python Robotics. The goal of the Pyro project is to provide a programming environment for easily exploring advanced topics in artificial intelligence and robotics without having to worry about the low-level details of the underlying hardware. That is not to say that Pyro is just a toy. In fact, Pyro is used for real robotics research as well as courseware.

Pyro is written in Python. Python is an interpreted language, which means that you can experiment interactively with your robot programs. In addition to being an environment, Pyro is also a collection of object classes in Python. Because Pyro abstracts all of the underlying hardware details, it can be used for experimenting with several different types of mobile robots and robot simulators. Until now, it has been necessary to learn very different and specific control languages for different mobile robots, particularly those manufactured by different companies. Now, a single language can be used to program many different robots, allowing code to be shared across platforms as well as allowing students to experiment with different robots while learning a single language and environment.

Robots: Currently, the robots supported include the Pioneer family (Pioneer, Pioneer2, PeopleBot robots) and the Khepera family (Khepera and Khepera 2 robots).

Simulators: There are two simulators available that simulate the Pioneer family of robots: Saphira and SRIsim. The latter is the latest simulator for the Pioneer family and is the recommended simulator for use. There is also a simulator available for the Khepera robot.

Pyro has the ability to define different styles of controllers, which are called the robot's brain. For example, the control system could be a neural network, behavior based, or a symbolic planner. One unique characteristic of Pyro is the ability to write controllers using robot abstractions that enable the same controller to operate robots with vastly different morphologies. That is, a controller program written for a Khepera robot (hocky puck-sized, with infrared sensors) could work equally well for a Pioneer robot (medium suitcase-sized, with sonar sensors).

This module will serve as an introduction to the Pyro environment. It introduces the abstractions provided by Pyro, then shows you how to get started with running Pyro. We also introduce effector and sensor abstractions, giving you the chance to try them out on the command line. Finally, we introduce the structure of a robot brain, which is the robot controller.

The remainder of the modules are devoted to a detailed study of various control paradigms as well as topics in artificial intelligence for robotics. We will follow an interactive, hands-on style presentation. You are encouraged to work through the modules in a workbook style: read a little, think about it, try out the examples, and work out all exercises before proceeding.



Robot Morphology
The Pyro Interface*
The Aria Simulator*
The Stage Simulator*
Pioneer Robots*
Khepera Robots*

Brains *
Reactive Control*
Planning & Reasoning
Learning (Neural Nets)*
Intro. to Neural Nets*
Building NNs in Conx
Associative Nets
Recurrent Nets
Robots and NNs
Advanced NNs
Evolutionary Algorithms*
Mapping & Localization
Multi-Agent Robotics*


Learning Python*

Pyro Technics*

Quick Reference*


Beyond Legos Home

Pyro Wiki


Get Pyro*

* These are links to contents still under development. These materials are usable as is but are currently in a state of flux as we work to make the software move towards production quality. Once stable, the materials will be frozen, along with a synchronized Pyro release, and posted here.