Calibrate, activate, move¶
Every session with the gripper starts the same way: clear what errors there are, calibrate, activate. Then it moves. This page does it once with Motor GUI, with Python and over UART; How the gripper works explains what happens inside.
Danger
The jaws move over the whole stroke during calibration, and close with the set force afterwards. Nothing in reach of them, fingers included.
1. Power up¶
At power-up the gripper reports Not calibrated and does not move. Its stepper must be calibrated too, which a bought gripper is from the factory; a self-built gripper gets that in Driver configuration.
2. Clear errors¶
The driver powers up in an error state until its motor is calibrated and it has run through its checks; an E-stop, an over-temperature or a supply fault leave an error too. A gripper with an error does not move, and does not calibrate either: clear first.
An error whose cause is still present comes straight back; after an E-stop, send a command with the E-stop bit at 0 before you clear. Errors and recovery says what each needs.
Check
Motor GUI shows no error; in Python the three error attributes read 0 after the next status poll; over UART,
#Error prints No errors!. An error that is back at once still has its cause:
Errors and recovery.
3. Calibrate¶
The gripper calibration finds the two end stops: the jaws open fully, pause, then close fully, at low force (500 mA) and low speed. Each end is recognised when the jaws have stood still against it for half a second. It takes about ten seconds; the result is not kept over a power cycle, so this runs at every power-up.
If the jaws do not move at all, or move to one end and stop: the gripper is in an error state (clear it first, see step 2), or the stepper is not calibrated. If the routine runs for 24 seconds and gives up, an end stop was not found: something blocks the jaws short of the end, or the mechanism is too stiff for 500 mA.
Until the gripper reports Calibrated, send nothing but status polls: a move command or a clear during the calibration ends it, and the gripper stays uncalibrated.
Check
The jaws opened fully, then closed fully, and the gripper reports Calibrated: in Motor GUI's panel, as
gripper_calibrated = 1 in Python, or Gripper calibrated is: 1 from #Gripinfo. If not after 24 s:
Calibration.
4. Activate¶
A calibrated gripper carries out a move only while it is activated.
Activate. The panel shows Activated.
The activate bit is part of every move command, its fourth argument; send it as 1. To activate without moving, send a command with the action bit, the fifth argument, at 0:
#Grippos activates by itself; #Gripact 1 activates without moving.
Check
The panel shows Activated; in Python gripper_activated reads 1; #Gripinfo prints
Gripper activated is: 1.
5. Move¶
A move is three numbers: the position (0 open, 255 closed), the speed (0 to 255: linear from 1.6 to 190 mm/s at each jaw) and the current limit in mA, which is the grip force (Force and speed). Start with speed 30, about 24 mm/s at each jaw, and 300 mA.
Set Speed 30 and Current 300 with their Set buttons, then Close and Open, or set a Position: the jaws follow, the plots show the position and the current, and the state says whether the jaws reached the position or stopped on something.
Put an object between the jaws and close on it: the jaws stop on it and hold it with 300 mA, and the state reads object detected while closing. Raise the current for a firmer grip, within the stepper's rating, and the speed once the motion is what you want.
Check
The jaws go to each position and the state reads at position; on the object they stop and the state reads object detected while closing. If they do not move: It does not move.
What the gripper reports¶
Every move command is answered with the gripper's state, which Motor GUI shows in its panel and the library puts into attributes: the position, the current, whether it is calibrated and activated, whether a move is in progress, the object-detection result, and the three error bits. How the gripper works goes through them.
Comments
Found a mistake on this page? Edit it on GitHub · Report it · Get help · This page as Markdown · llms.txt · The whole manual as PDF