Pioneer 3™ Operations Manual
Pioneer 3™ Operations Manual
Pioneer 3™ Operations Manual
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Advanced Robot Control & <strong>Operations</strong> Software<br />
acceleration and deceleration parameters for both translation and rotation are limited<br />
by FLASH constants. ARCOS initializes these values upon controller startup or reset from<br />
related FLASH parameters. The speed limits, either from FLASH or when changed by SETV<br />
or SETRV commands, take effect on subsequent commands, not on current translation or<br />
rotation. The maximums revert to their FLASH defaults when disconnected from a client.<br />
The orientation commands HEAD (#12), DHEAD (#13), DCHEAD (#22) turn the robot with<br />
respect to its internal dead-reckoned angle to an absolute heading (0-359 degrees),<br />
relative to its immediate heading, or relative to its current heading setpoint (achieved or<br />
last commanded heading), respectively. In general, positive relative heading command<br />
arguments turn the robot in a counterclockwise direction. However, the robot always<br />
turns in the direction that will achieve its heading most efficiently. Accordingly, relativeheading<br />
arguments greater than 179 degrees automatically get reduced to 179 or less<br />
degrees with a concomitant change in direction of rotation.<br />
The E_STOP command #55 or the STOP button that is found on some MOBILEROBOTS<br />
platforms override deceleration and abruptly stop the robot in the shortest distance and<br />
time possible. Accordingly, the robot brakes to zero translation and rotation velocities<br />
with very high deceleration and remains stopped until it receives a subsequent<br />
translation or rotation velocity command from the client or until the STOP button is reset.<br />
(See E_STOP and E_STALL later in this chapter.)<br />
PID Controls<br />
The ARCOS drive servers use a common Proportional-Integral-Derivative (PID) control<br />
system to adjust the PWM pulse width at the motor drivers to smooth the power to the<br />
motors. The motor-duty cycle is 50 microseconds (20 KHz); pulse-width is proportional 0-<br />
500 for 0-100% of the duty cycle.<br />
The ARCOS drive servers recalculate and adjust your robot’s trajectory and speed every<br />
five milliseconds based on feedback from the wheel encoders.<br />
The default PID values for translation and rotation and maximum PWM are stored as<br />
FLASH parameters in your robot’s controller and may be changed. You also may<br />
temporarily update the PID values with the ARCOS client commands #84 through #87.<br />
On-the-fly changes persist until the client disconnects. Translation PID values apply to<br />
independent wheel-velocity mode.<br />
The P-term value Kp increases the overall gain of the system by amplifying the position<br />
error. Large gains will have a tendency to overshoot the velocity goal; small gains will<br />
limit the overshoot but cause the system to become sluggish. We’ve found that a fully<br />
loaded robot works best with a Kp setting of around 15 to 30, whereas a lightly loaded<br />
robot may work best with Kp in the range of 20 to 50.<br />
The D-term Kv provides a PID gain factor that is proportional to the output velocity. It has<br />
the greatest effect on system damping and minimizing oscillations within the drive<br />
system. The term usually is the first to be adjusted if you encounter unsatisfactory drive<br />
response. Typically, we find Kv to work best in the range of 10 to 30 for lightly to heavily<br />
loaded robots, respectively. If your robot starts to vibrate or shutter, reduce Kv.<br />
The I-Term Ki moderates any steady state errors thereby limiting velocity fluctuations<br />
during the course of a move. At rest, your robot will seek to “zero out” any command<br />
position error. Too large of a Ki factor will cause an excessive windup of the motor when<br />
the load changes, such as when climbing over a bump or accelerating to a new speed.<br />
Consequently, we typically use a minimum value for Ki in the range of 0 to 10 for lightly to<br />
heavily loaded robots respectively.<br />
38