Player Robot Server
Brian Gerkey, Kasper Stoy, and Richard T. Vaughan
This document describes the design and implementation of Player, a multi-threaded robot device server developed at the USC Robotics Research Labs. It gives you simple and complete control over the physical sensors and actuators on your mobile robot. When Player is running on your robot, your client control program connects to it via a standard TCP socket, and communication is accomplished by the sending and receiving of some of a small set of simple messages.
Player is designed to be language and platform independent. Your client program can run on any machine that has network connectivity to your robot, and it can be written in any language that can open and control a TCP socket. We currently have client-side utilities available in C++, Tcl, and Java, with Python in the works. Further, Player makes no assumptions about how you might want to structure your robot control programs. In this way, it is much more "minimal" that other robot interfaces. If you want your client to be a highly concurrent multi-threaded program, write it like that. If you like a simple read-think-act loop, do that. If you like to control your robot interactively, try our Tcl client (or write your own client utilities in your favorite interactive language).