Skip to content

Gripper mode

A driver can run a gripper instead of a joint: the same board, with a state machine that moves a jaw to a position between open and closed, at a speed, with a current limit that becomes the grip force, and that reports when it holds something. The SSG-48 gripper is built on the Spectral Micro this way.

Turning it on

#Gripper 1
#Save

#Default clears the flag again. A driver in gripper mode still answers every other command; the gripper commands only work with the flag set.

Calibrating the gripper

After every power-up the gripper has to find its end stops: #Gripcal or Send_gripper_calibrate. The jaws move to both ends; the positions become 0 (open) and 255 (closed). The motor itself must be calibrated (#Cal) and saved before that, once.

While the gripper calibrates, send only empty status polls. A 5-byte Send_gripper_data_pack, Send_Clear_Error or #Clear stops the calibration without a message, and the next one then starts part way through, where the stopped one left off: switch the driver off and on before you calibrate again (known issue KI-7).

Moving

Over UART:

#Gripvel 100       speed, 0 to 255
#Gripcur 400       current limit of the move in mA, the grip force
#Grippos 200       go to position 200 (0 open, 255 closed); also activates the gripper

Over CAN, Send_gripper_data_pack carries position, speed and current in one frame with the activate and action bits; the driver answers with Respond_Gripper_data_pack: the position, the measured current, whether it is moving, and the object detection:

Object detection Meaning
0 moving
1 an object was detected while closing: the jaws stopped on it and hold it with the current limit
2 an object was detected while opening
3 the position was reached

An empty Send_gripper_data_pack (0 bytes) only asks for the state. The answer to a 5-byte command goes out before the driver acts on it, so its object detection and error bits are still those of the moment before (KI-6); the answers to the next frames show the new move. The action bit in the answer is a copy of the last command's action bit and stays 1 after the move ends (KI-8): the object detection tells when it has ended.

Send_gripper_data_pack's E-stop bit raises the gripper E-stop error; #Gripstop 1 does the same over UART. The error stays: while the E-stop bit is 1 the driver raises it again on every control cycle (KI-5). To recover, clear the bit (#Gripstop 0, or a Send_gripper_data_pack with the bit 0), then #Clear or Send_Clear_Error.

Current

The firmware does not limit the current you give a gripper move. The safe range depends on the gripper's mechanics and motor; the SSG-48 manual gives it for that gripper. The board is rated for 2800 mA, but nothing enforces it here. A gripper move also replaces the driver's current limit with the move's current, and a later #Save keeps that value.

Where the details are

The bytes of the two gripper frames are in the CAN reference, the UART commands in the UART reference.

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