Main Page | Modules | Class Hierarchy

Marvin Software

0.1

Author:
Bradley E. Kratochvil

Institute of Robotics and Intelligent Systems

Date:
2005
Version:
0.1

Introduction

flat.png

This is a brief introduction to the software systems to be used on the Marvin platforms developed at the Institute for Robotics and Intelligent Systems (IRIS) at the Swiss Federal Institute of Technology in Zurich (ETHZ). The main emphasis behind this platform is to allow students greater flexibility with different forms of I/O, and not the development of a new robot control framework. Thus, an existing architecture named Player/Stage was selected for this purpose. Using Player allows us to abstract much of the specific hardware dependencies and work with more general devices such as motors, lasers, or grippers.

Due to using Player as our software's basis, we are able to capitalize on having access to work from cutting age researchers around the world without having to develop all the infrastructure ourselves. Player may seem a bit overwhelming at first, but this guide will attempt to help you get started as quickly as possible.

Note:
As you traverse through this documenation, some of the links will return you to the web documentation of Player/Stage. This is to help reduce redundancy in documentation and to keep the information as current and accurate as possible.

Getting Started

Player is divided into 2 different main functionalities, a server and a client. The server is intended to run on the robot and provides access to all of the hardware. Clients are intended to be the user level programs that do all of the intelligent work. Clients talk with the server over a network connection, so they are not required to reside on the same machine. Before we get too carried away, let's take a look a starting a simple Player server on Marvin.

$ player marvin.cfg

It's that easy. The file, marvin.cfg, contains all of the settings required to run the robot. Now from another console, we can use a client utility such as playerv to connect to the robot and control it.

$ playerv

It's that easy (well, sort of). There are only a handfull of drivers that are specific to the Marvin systems at ETHZ. These drivers are the following:

Although these are still under development, they are fairly stable. Most work with Marvin will then be using the config files and the high level Player interfaces. A sample C++ client will be available for download on the course website to get you started developing.

For more information, check out the Player/Stage homepage at http://playerstage.sourceforge.net/. They have a number of articles on getting started and how to use the system.

Simulation with Stage

It is also possible to simulate the robot in the 2D Stage simulator that comes along with Player. A sample set of configuration files can be downloaded from the course website which will allow you to simulate the competition environment. Since all programs are written to a generic interface (ie position, laser, etc), transition between the simulated environment and the real one can be minimized. This helps to speed prototyping along during the initial stages of development.

stage-001.png

Drivers of interest

The following is a list of drivers that will be of particular interest for the course:

Navigation

Mapping & Localization

Vision

Logging

Further information

They also have some more detailed guides online such as: