Along with the software (Pyro) we are also developing extensive curricular
modules for learning about and experimenting on various robot behaviors
and control paradigms. We have organized the control paradigms into modules that can either be followed as presented from the beginning to the end,
or one could use individual modules depending on their pedagogical needs.
This way, one can either adopt the entire set of materials as is for
a single course, or use selected modules to supplement existing courses.
See the Courses section in the navigation bar for examples
of courses these materials have been (or are being) used at various institutions.
If you use Pyro in your courses, please send us your course links so
we can add them there.
modules are listed below. The first two modules, which introduce the
Pyro software and basic robot control concepts, should be used prior
to any other module. Each module has related exercises, reading materials,
and additional software that is included in the Pyro distribution. Go
directly to Pyro Modules.
- 1. Introduction
- This module provides as overview of Pyro. Topics include: starting
up the software, connecting to a simulator, connecting to a robot,
using existing robot controllers, and learning the basics of the Python
- 2. Reactive Control
module introduces the most simple robot controllers, starting with
Braitenberg Vehicles which connect motor responses directly to
sensor inputs. Topics include: understanding sensor responses (light,
infrared, sonar, and bump), understanding actuator behavior (differential
drive and gripper), recognizing the problem of noise in the real world,
and learning to tightly couple sensors and actuators for effective
- 3. Behavior-Based Control
- This module discusses the idea of behavior-based control. Two main
methodologies are explored: subsumption architecture and a more general
approach using fuzzy logic. Topics include: behavior design, multi-tasking,
motor and perceptual schema, fuzzy logic, finite state automata, and
creating behaviors for obstacle avoidance, picking up trash, and going
to specific locations.
- 4. Vision
module explores visual processing for mobile robots. The man focus
is integrating vision as a sensor in robotics tasks. Topics include:
vision algorithms (edge detection, blob detection, filters, convolution,
optic flow, color histograms), and using vision algorithms to locate
an object by color or by shape, detect motion, track motion, identify
- 5. Planning and Reasoning
- This module focuses on the deliberative aspects of mobile robotics.
Graph search methodologies and logic form the foundation of this module.
Topics include: first-order logic, state-space diagrams, and search
- 6. Learning
module will explore robot learning and adaptation. Two major paradigms
are presented: neural networks and evolutionary computation.
Topics include: designing appropriate tasks, neural network architectures
and learning methods, genetic algorithms, combining neural networks
and genetic algorithms, and adapting solutions to tasks that were previously
- 7. Mapping and Localization
module explores issues in creating and following topological and
spatial maps. Topics include: building a map, following a map, localization,
occupancy grids, and probabilistic states.
- 8. Multi-Agent Robotics
- This module will explore coordination and communication issues in
multi-agent robotics. Topics include: emulating behaviors of groups
of animals, building a shared map of a space, coordinated behavior
to solve problems that a single robot could not accomplish, and communication
- Appendix A: Learning Python
- This section will present a concise introduction to the Python programming
- Appendix B: Pyro Technics
- This section will outline the steps for obtaining, installing, and
configuring Pyro, and the robot platforms.
- Appendix C: Pyro Quick Reference
Go directly to Pyro Modules
Proposal (full text PDF document)