33 pioneer in motion, Position integration – Pioneer 2 User Manual

Page 39

Advertising
background image

Pioneer Mobile Robots

33

Pioneer in Motion

When P2OS receives a P2OS server-translation or -rotation command, it accelerates the Pioneer robot at
the SETA or SETRA rate you program, or the rates preset in the P2OS configuration parameters.
Rotational headings are achieved by a trapezoidal velocity function (Figure 6-2). This function is re-
computed each time a new heading command is received, making on-the-fly orientation changes possible.

Note that, with P2OS version 1.8 and later, you may override deceleration with the emergency stop

(E_STOP) command number 55. Accordingly, with E_STOP, 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.

ro tat io nal
v e lo cit y

t im e

m ax veloci ty

accel

decel

posi tion
achi eved

short turn,
m ax velocity
not r eached

position
achieved

start
position

Figure 6-2. Pioneer’s trapezoidal turning velocity profile

Position Integration

Pioneer keeps track of its position and orientation based on dead-reckoning from wheel motion, which is an
internal coordinate position.

Registration between external and internal coordinates deteriorates rapidly with movement, due to gearbox
play, wheel imbalance and slippage, and many other real-world factors. You can rely on the dead-
reckoning ability of the robot for just a short range—on the order of several meters and one revolution,
depending on the surface (carpets tend to be worse than hard floors).

Table 6-6. P2OS motion commands

Rotation

HEAD

Absolute heading

DHEAD, DCHEAD

Differential heading from control point

SETRA

Rotational (de)acceleration to achieve setpoint

SETRV

Sets rotational velocity for Colbert turn and turnto
commands

Translation

VEL

Forward/back velocity

SETA

Translational (de)acceleration to achieve setpoint

SETV

Velocity for Colbert move command

Also, moving either too fast or too slow tends to exacerbate the absolute position errors. Accordingly,
consider the robot’s dead-reckoning capability as a means of tying together sensor readings taken over a
short period of time, not as a method of keeping the robot on course with respect to a global map.

The orientation commands HEAD and DHEAD turn the robot with respect to its internal dead-reckoned
angle (Figure 6-3). On start-up, the robot is at the origin (0,0), pointing toward the positive x-axis at 0
degrees. Absolute angles vary between 0 and 360 degrees. As the robot moves, it will update this internal
position based on dead-reckoning. The x,y position is always positive, and rolls over at about 3,000 milli-
meters. So, if the robot is at position (400,2900) and moves +400 millimeters along the y-axis and -600
millimeters along the x-axis, its new position will be (2800,300).

Advertising