This is an introduction to the Pyro Robotics system. This module provides an overview of robotics systems and introduces the core hardware and software. When completed, the reader should be ready to further explore Python and Pyro.
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 mostly 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, Khepera 2, Hemisson robots), Sony's AIBO robot, the IntelliBrain-Bot, and the Roomba.
Simulators: There are a few simulators available that simulate the Pioneer family of robots: Player/Stage, Gazebo, and Pyrobot. There is also a simulator available for Robocup soccer.
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 (hockey 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 of presentation. You are encouraged to work through the modules in a workbook style: read a little, think about it, try out the examples, and then complete the exercises provided.