AmigoBot Mobile Robots
21
AmigoBot’s client-server architecture
Chapter 5
AmigoBot Operating System
All ActivM
EDIA
R
OBOTICS
’ mobile robots use an
intelligent client/server control architecture
developed by Dr. Kurt Konolige. In the model,
the server works to manage all the low-level
details of the mobile robot’s systems. These
include operating the motors, firing the sonar,
collecting sonar and motor encoder data, and
so on
all on command from and reporting to a
separate client application, such as Saphira or
Ayllu.
With this client/server architecture, high-level
robotics applications developers do not need to
know many details about a particular robot
server, because the client typically insulates them
from this lowest level of control. Some of you,
however, may want to write your own robotics
control and reactive planning programs, or just
would like to have a closer programming
relationship with your robot. This chapter explains
how to communicate with AmigoBot via the
AmigoBot Operating System (AmigOS)
client/server interface. The same AmigOS
functions and commands are supported in the
various client-programming libraries that
accompany the robot.
Experienced ActivM
EDIA
R
OBOTICS
Pioneer users
already are familiar with AmigOS: It is directly
compatible with Pioneer Operating Systems,
implementing most of the same commands and
protocols. AmigOS, of course, does not support
all the PSOS or P2OS-enabled accessories for
those respective robots, and extends the servers
to add new functionality, such as with sounds.
Communication Packet Protocol
AmigOS servers communicate with a client application using special packet protocols:
command packets from client to server, and server information packets (SIPs) from the
server to client. Both are bit streams consisting of four main elements: a two-byte header,
a one-byte count of the number of command/data bytes, the client command and its
arguments or the server information data, and finally, a two-byte checksum.