Updating and Reconfiguring P2OS
PID Parameters
The P2OS configuration parameters include settings for the PID motors controls for
translation and rotation of the robot. The translation PID values also apply to
independent wheel velocities. The default values shown in the Table are for a
moderately loaded robot. Experiment with different values to improve the performance
of your robot in its current environment.
Note that with P2OS version 1.J and later, the PID values have changed from earlier
versions due to changes in the drive servers. Overall drive performance has improved
with the latter version and is much less sensitive individual PID values. Consequently, we
recommend the listed values for all Pioneer 2 and PeopleBot robots, whereas earlier
P2OS versions required much more tuning of the parameters depending on robot type
and configuration/payload.
The P term value Kp increases the overall gain of the system by amplifying the position
error. Large gains will have a tendency to overshoot the velocity goal; small gains will
limit the overshoot but cause the system to become sluggish. We’ve found that a fully
loaded robot works best with a Kp setting of around 15 to 20, whereas lightly loaded
robot may work best with Kp in the range of 20 to 30.
The D term Kv provides a PID gain factor that is proportional to the output velocity. It has
the greatest effect on system damping and minimizing oscillations within the drive
system. The term usually is the first to be adjusted if you encounter unsatisfactory drive
response. Typically, we find Kv to work best in the range of 600 to 800 for lightly to heavily
loaded robots, respectively.
The I Term Ki moderates any steady state errors thereby limiting velocity fluctuations
during the course of a move. At rest, your robot will seek to “zero out” any command
position error. Too large of a Ki factor will cause an excessive windup of the motor when
the load changes, such as when climbing over a bump or accelerating to a new speed.
Consequently, we typically use a minimum value for Ki in the range of 0 to 10 for lightly to
heavily loaded robots respectively.
Encoder and Revcount
P2OS uses the
encoder
and
revcount
parameters to convert your platform-independent
speed and rotation commands—typically expressed in millimeters or degrees per
second, respectively—into platform-dependent units. In previous versions, the
encoder
value was contained in the P2OS code. With improvements to the motion control servers
in P2OS and to support the increasing variety of ActivMedia robot configurations, the
encoder
value is now included as a configuration parameter, although unlike
revcount
,
its value is a constant.
The
encoder
value is the number of encoder pulses (“ticks”) per millimeter of wheel
rotation. The encoder value is, of course, dependent upon the wheel encoder’s
resolution, the motor-to-wheel gear ratio, and the wheel’s diameter.
The
revcount
value is the number of encoder ticks for one full revolution of the robot. It
depends on a number of factors, principally the length of the wheel base, which may
change due to payload, tire wear, operating surface, and so on. Accordingly, we
provide a calibration tool that lets you determine
revcount
for your individual robot
configuration and operating conditions.
Table 16. Some platform-dependent robot parameter values
Model
52