IO · repose-io

Gripper task

A gripper wired to digital IO needs no driver of its own. CuGripperTask<IN, OUT> maps open/close commands to output bits and reads optional sensors back into a state.

Channels

Inputs: (CuGripperCommandPayload, CuDigitalInputPayload<IN>). Outputs: (CuDigitalOutputPayload<OUT>, CuGripperStatePayload). Commands are Open or Close; an empty message keeps the last action. Only the gripper's own bits are masked in its output, so it can share digital_out with other IO users.

Config: CuGripperParams

close_output (required)Output that closes the gripper.
open_outputFor double-acting actuators. Without it, opening means releasing close_output.
closed_input, open_inputOptional sensors asserted when closed or open.
settle = 0.3 sWithout a sensor for the target, the motion counts as done after this.
motion_timeout = 2 sWith a sensor, it must assert within this, else Fault.
ron
(id: "gripper", type: "repose_io::CuGripperTask<8, 8>",
 config: {"close_output": 0, "open_output": 1, "closed_input": 0, "open_input": 1}),

Indices must fit IN/OUT and not be shared. CuGripperParams::single_acting(bit) is the minimal config in Rust.

State

Unknown (nothing commanded, outputs not driven), Opening, Open, Closing, Closed, Fault. Fault means IO not ready, contradictory sensors, or a timeout; outputs keep their last levels. Wait for Closed before moving away with a part.

API reference