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_output | For double-acting actuators. Without it, opening means releasing close_output. |
closed_input, open_input | Optional sensors asserted when closed or open. |
settle = 0.3 s | Without a sensor for the target, the motion counts as done after this. |
motion_timeout = 2 s | With a sensor, it must assert within this, else Fault. |
(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.