05.05.2013 Views

Pioneer 3™ Operations Manual

Pioneer 3™ Operations Manual

Pioneer 3™ Operations Manual

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!