5.5
Termination Conditions for Movement Commands
There are eight commands in Supervisory mode that control finger motion:
•
Position commands, absolute:
M and HOME
•
Position commands, relative:
IO, IC.
•
Velocity commands with ramp-down at target limits:
O, C
•
Velocity commands with control of motor torque at stall:
TO, TC
In all cases, the command terminates and returns when, for every motor specified in the command,
one of the following termination conditions applies:
Case 1: Motor stalls because obstacle(s) stop the motion. The obstacles include foreign objects as
well as joint stops and other fingers.
•
When a motor stalls, the controller will continue driving it for TSTOP milliseconds, after
which a termination condition occurs.
•
If HOLD is false, the motor is then turned off; if HOLD is true, the motor is servoed to
maintain this position.
•
For position commands, if the termination position is not within MPE (Maximum
Position Error), the status code ERR16 is returned corresponding to “Couldn’t reach
position.”
Case 2: The strain-gage range is exceeded.
•
As soon as the sensor value SG rises above HSG (alias MSG) or falls below LSG, a
termination condition occurs for that motor.
•
If HOLD is false, the motor is then turned off; if HOLD is true, the motor is servoed to
maintain the position at which the termination condition occurred.
•
For position commands, if the termination position is not within MPE (Maximum
Position Error), the status code is ERR16 is returned corresponding to “Couldn’t reach
position”.
•
From the PC side of the interface, Case 2 can be distinguished by reading the value of the
strain gage, SG, and seeing if it is larger than the specified MSG.
Case 3: Specified goal position is achieved within MPE.
•
As soon as the goal position is reached, a termination condition occurs for that motor.
•
If HOLD is false, the motor is then turned off; if HOLD is true, the motor is servoed to
maintain the position at which the termination condition occurred.
•
No status code is returned, and a query to property S returns 0.
Case 4: Control-C character sent
•
As soon as the Control C is received, a termination condition occurs for all motors.
•
For each motor, if HOLD is false, that motor is then turned off; if HOLD is true, that
motor is servoed to maintain the position at which the termination condition occurred.
•
The status code returned is 16384.
5.6
BH8-280 Implementation
The BarrettHand API is designed to provide capabilities of what was offered in previous hands
and more. Just as properties were used in the 262 hand, the new 280 hand contains Puck 2 motor
properties that are written or read through a host PC connected with CAN nodes contained in the
hand. The API is meant bring all functionality available to users without the need to know the
low-level CAN communication protocol. The same BarrettHand Control GUI connects to all
BarrettHands and uses the same Supervisory control interface. The same API methods are called.
The GUI provides the purpose/notes of most properties that users will commonly access. See the
API documentation for how to use commands in C++ code.
Page 39 of 89