MobileRobots Inc.
Table 3. ARMINFOpac server information packet contents
B
YTE
V
ALUE
(
S
) D
ESCRIPTION
-2
0xFAFB
Header signals start of packet
0
n+53
Number of data bytes, including checksum
1
161
ARMINFOpac server information packet ID
2 thru n
string NULL-terminated string containing the Pioneer Arm’s version
number response, or “No arm” if not connected.
n+1
0-7
Number of Pioneer Arm joints; default is six; 0 if no Arm.
n+2
0-127
Servo #1’s speed setting.
n+3
0-255
Servo #1’s home position setting.
n+4
0-127
Servo #1’s minimum position value.
n+5
~127
Servo #1’s center position value.
n+6
127-255
Servo #1’s maximum position value.
n+7
1-255
Servo #1’s ticks per 90 degree rotation value.
n+8
to
n+50
…
Servo #’s 2-6 speed, home, minimum, center, maximum, and
ticks/90deg settings.
n+51, 52
xx
Data checksum
STATUS and ARMpac
The
ARMpac
SIP provides current Pioneer Arm servo position information as well as arm status. Get
one or a continuous stream (one per standard SIP cycle) of
ARMpac
SIPs with the
STATUS
command.
Table 4. ARMpac contents
B
YTE
V
ALUE
(
S
) D
ESCRIPTION
-2 0xFAFB
Header
0
11
Data byte count
1
160
ARMpac server information packet ID
2 bit-
endcoded
status
Bit-encoded servo power (b0) and connection (b1) status;
respective bit is set (1) if servo power enabled or a connection
established between Pioneer Arm controller and the robot’s
microcontroller.
3 bit-
encoded
status
Bit-encoded motion status for each servo-driven joint; bit set (1)
if respective joint in motion. Note that only bits 1-6 are active,
corresponding to the current Pioneer Arm’s six servo motors and
joints.
4-9
0-255 ea
Servos 1-6 current positions.
10, 11
xx
Data checksum
If, in the case that the robot’s controller cannot communicate with the arm’s controller, or if it loses
communication while servo power is enabled, the arm servers automatically revert to the
HOME
positions with servo power OFF and will not allow restoration of servo power until reset. See
INIT
and
Warm Reset Protocols below.
SPEED and POS
The Pioneer Arm servers move a joint from one position to another in individual steps, rather than
effect an uncontrolled jump from one position to another as happens with the generic arm commands.
And the arm servers control each joint’s rotational speed by waiting a particular period of time
13