Many robots made by ActivMedia, such as the Pioneer series and the AmigoBot,
are controlled by a microcontroller that runs a special embedded operating
system called P2OS (on older robots it is called PSOS). The host computer
talks to the P2OS microcontroller over a standard RS232 serial line. Player
includes a driver that offer access to the various P2OS-mediated devices,
logically splitting up the devices' functionality.
Although all the P2OS interaction is actually done in a single thread, the
different P2OS devices are accessed through different Player drivers, each
supporting a different interface and supporting some subset of configuration
requests:
The configuration file options listed in Table 7.2
control how Player communicates with P2OS. Any option can be specified for
any of the drivers listed in the previous section; if an option is specified
for more than one driver, the value given last will be used.
Table:Configuration file options for the p2os_* drivers.
Name
Type
Default
Meaning
port
string
"/dev/ttyS0"
The serial port to be used
radio
integer
0
Nonzero if a radio modem is being used;
zero for a direct serial link
The connection to the P2OS microcontroller is only kept open while
at least one client has at least one of the P2OS-mediated devices open.
When the last P2OS device is closed, the connection to P2OS is also closed.
Implications include: odometry is reset to (0,0,0), motors might be turned off.
Since the P2OS driver uses static C++ class members, only one P2OS
robot can be controlled by Player at any given time. If you want to control
more than one P2OS robots, you'll need to run a separate instance of Player
for each.
This driver can usually initiate a connection to P2OS even when P2OS was
not properly shut down last time. However, if the connection to P2OS is
interrupted (e.g., the serial cable is pulled out), then the driver is not
likely to recover.