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

 

,

 

max velocity

short move

 

max velocity

 

not reached

velocity

 

 

accel

decel

 

time

 

 

start

position

position

position

achieved

achieved

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.

20Note that acceleration and deceleration are distinct values, settable via SETA for translation and SETRA for rotation.

39

Page 45
Image 45
Pioneer 2TM, 3TM manual ActivMedia Robots in Motion, Platform Dependent and Independent Variables