ActivMedia Robotics
and velocity of the robot.
When in translation/ rotation (TR) motion control (recommended), separate translation
and rotation servers work independently to achieve the specified forward/ reverse
speed and heading of the robot. P2OS will try to make the robot achieve the desired
translational velocity and rotate to the desired heading as soon as the commands are
received. Acceleration and deceleration managers, which default values you may
prepare and also change on-the-fly (SETRA and SETA), operate independently for
translation and rotation, too.
Pioneer in Motion
When P2OS receives a translation, rotation, or direct-wheel velocity command, it
accelerates the robot at the SETA (both TR and VEL2 modes)and SETRA (TR mode only)
rates you program, or at the rates preset in the P2OS configuration parameters.
Rotational headings and translational setpoints are achieved by a trapezoidal velocity
function. This function is recomputed each time a new motion command is received,
making on-the-fly changes possible.
rotational
velocity
time
max velocity
accel
decel
position
achieved
short turn,
max velocity
not reached
position
achieved
start
position
Figure 20. Pioneer’s trapezoidal turning velocity profile
Rotational and
translational velocities
are limited to the
maximum values set in
the P2OS parameters or
which you may reset
with the SETVEL and
SETRV commands.
Maximums take affect
on subsequent
commands, not
previously established
velocity or heading
setpoints.
Note that with P2OS version 1.8 and later, you may override deceleration with the
emergency stop (E_STOP) command number 55 or with the Emergency STOP button
enabled on the Performance PeopleBot (E_STALL command #56). Accordingly, the
robot brakes to zero translational and rotational velocities with very high deceleration
and remains stopped until it receives a subsequent translational or rotational velocity
command from the client. (See E_STOP and E_STALL later in this chapter.)
PID Controls
The Pioneer drive servers use a common Proportional-Integral-Derivative (PID) control
system to adjust the PWM pulse width at the drivers and subsequent power to the
motors. The motor-duty cycle is 200 µsec; pulse-width is proportional 0-500.
The P2OS drive servers recalculate and adjust your robot’s trajectory and speed every
10ms (P2OS v1.I and earlier) or every 5ms (P2OS1.J) based on feedback from the wheel
encoders. Note that the latter time cycle leads to enhanced performance of the robot.
The default PID values for both translation and rotation are stored in FLASH. Beginning
with P2OS1.J, you may change those values on the fly with the client commands 84-87.
37