Pioneer 3™ Operations Manual
Pioneer 3™ Operations Manual
Pioneer 3™ Operations Manual
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Advanced Robot Control & <strong>Operations</strong> Software<br />
Chapter 6<br />
ARCOS<br />
All MOBILEROBOTS platforms use a client-server<br />
mobile robot-control architecture. In the<br />
model, the robot’s controller servers work to<br />
manage all the low-level details of the<br />
mobile robot’s systems. These include<br />
operating the motors, firing the sonar,<br />
collecting and reporting sonar and wheel<br />
encoder data, and so on⎯all on command<br />
from and reporting to a separate client<br />
application, such as the ARIA demo.<br />
With this client/server architecture, robotics<br />
applications developers do not need to<br />
know many details about a particular robot<br />
server, because the client insulates them<br />
from this lowest level of control. Some of<br />
you, however, may want to write your own<br />
robotics control and reactive planning<br />
programs, or just would like to have a closer<br />
programming relationship with your robot.<br />
This chapter explains how to communicate<br />
with and control your robot via the<br />
Advanced Robot Control and <strong>Operations</strong><br />
Software (ARCOS) client-server interface.<br />
The same ARCOS functions and commands<br />
are supported in the various clientprogramming<br />
environments that<br />
accompany your robot or are available for<br />
separate license.<br />
Figure 18. MOBILEROBOTS client-server<br />
control architecture<br />
Experienced MOBILEROBOTS users can be assured that ARCOS is upwardly compatible with<br />
all MOBILEROBOTS platforms, implementing the same commands and information packets<br />
that first appeared in the <strong>Pioneer</strong> 1-based PSOS, in the original <strong>Pioneer</strong> 2-based P2OS,<br />
and more recent AROS-based <strong>Pioneer</strong> 2s and 3s, as well as PeopleBot and PowerBot.<br />
ARCOS, of course, extends the servers to add new functionality, improve performance,<br />
and provide additional information about the robot's state and sensing.<br />
CLIENT-SERVER COMMUNICATION PACKET PROTOCOLS<br />
MOBILEROBOTS platforms communicate with a client using special client-server<br />
communication packet protocols, one for command packets from client to server and<br />
another for Server Information Packets (SIPs) from the server to client. Both protocols are<br />
bit streams consisting of five main elements: a two-byte header, a one-byte count of the<br />
number of subsequent packet bytes, the client command or SIP packet type, command<br />
data types and argument values or SIP data bytes, and, finally, a two-byte checksum.<br />
Packets are limited to a maximum of 207 bytes each.<br />
The two-byte header which signals the start of a packet is the same for both clientcommand<br />
packets and SIPs: 0xFA (250) followed by 0xFB (251). The subsequent count<br />
byte is the number of all subsequent bytes in the packet including the checksum, but not<br />
including the byte count value itself or the header bytes.<br />
Data types are simple and depend on the element (see descriptions below): client<br />
commands, SIP types, and so on, are single 8-bit bytes, for example. Command<br />
30