Pioneer 3TM Robotics User Manual


 
ActivMedia Robotics
ActivMedia Robots in Motion
ActivMedia robots use position, as opposed to velocity, motion controls to translate the
platform a certain distance and turn it to a particular heading. To achieve constant
translational (VEL), rotational (ROTATE), or independent-wheel (VEL2) velocities, the
servers simply set the target position well ahead of the robot’s current position.
When the robot controller receives a motion command, it accelerates or decelerates
the robot at the translational SETA (#5) (TR and VEL2 modes) and rotational SETRA (#23;
TR mode only) rates until the platform either achieves its SETV (#6) maximum translational
and SETRV (#10) maximum rotational speeds, or nears its goal. Accordingly, rotational
headings and translational setpoints are achieved by a trapezoidal velocity function,
which AROS recomputes each time a new motion command is received.
20
v
e
l
o
c
i
t
y
time
max velocity
a
c
c
e
l
decel
position
achieved
short
m
o
v
e
,
max
v
e
l
o
c
i
t
y
not r
e
a
c
h
e
d
p
o
s
i
t
i
o
n
a
c
h
i
e
v
e
d
start
position
Figure 17. ActivMedia robot’s trapezoidal velocity profile
AROS automatically limits VEL2-, VEL-, and RVEL-specified velocities to previously
imposed, client-modifiable SETVEL and SETRV maximums, and ultimately by absolute,
platform-dependent, FLASH-embedded constants. Similarly, the distinct acceleration
and deceleration parameters for both translation and rotation are limited by FLASH
constants. AROS initializes these values upon controller startup or reset from related
FLASH parameters. The speed limits, either from FLASH or when changed by SETV or
SETRV commands, take effect on subsequent commands, not previously established
velocity or heading setpoints. And the maximums persist across client-server connection
sessions until the controller is reset.
Note that the E_STOP command #55 or the STOP button that is found on some
ActivMedia robots override deceleration and immediately stop the robot in the shortest
distance and time possible. 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 or until the STOP
button is reset. (See E_STOP and E_STALL later in this chapter.)
Platform Dependent and Independent Variables
All client-side motion command arguments use robot-independent units of measure, in
millimeters or degrees. AROS converts these command arguments into robot-
dependent, wheel encoder-related motion values using two, user-settable parameters:
ticksmm, for translation, and revcount for rotation.
39
20
Note that acceleration and deceleration are distinct values, settable via SETA for translation and SETRA for
rotation.