Skip to content

[Task] Gripper controller #584

@Q3rkses

Description

@Q3rkses

Description of task

Design and implement a simple gripper controller for the AUV that can:

  • Clamp and release (open/close jaws).
  • Rotate roll (continuous or limited, per hardware).
  • Pitch up/down if the mechanism is non-static (disable if hardware is static).

The controller must use the **correct topics/messages to the gripper coordinate with the responsible embedded personnel to finalize the ROS2 ⇄ MCU message schema, units, rates, and safety behaviors. Provide simulator support and designated scenarios for validation.

Suggested Workflow

  1. Align with embedded team and mechanical team: confirm hardware capabilities (max roll/pitch, speeds, torque/force/current limits, endstops, homing), command/feedback message formats, and E-stop behavior.
  2. Implement controller node: can be as complex or as simple as you like, but remember that it needs to work, and that the gripper can be within good margins of error so it does not need to be super cutting edge.

Specifications

Control objectives

  • Clamp/Release: reliable execution within a bounded time.
  • Roll: track commanded angle or rate with bounded overshoot; respect mechanical/electrical limits.
  • Pitch (if enabled): track commanded angle/rate with bounded overshoot; disable feature cleanly on static hardware.
  • Robustness: reject invalid commands; recover gracefully from transient faults and communication loss.

Suggested testing

  • Static orientation tests:
    • With DP holding position, command sequences: CLAMP → RELEASE → CLAMP; verify time-to-action and final state.
    • Roll steps (e.g., 0°→45°→−45°→0°), measure settling time and overshoot.
    • (If enabled) Pitch steps within limits; verify no interference with vehicle body.

Placement

  • New package: control/gripper_controller/ (node, params, README, launch)
  • Tests: tests/gripper_controller/ (state-machine unit tests + simulator scenarios)
  • Wiki: “Gripper Controller” (I/O schema, safety, tuning, and test procedures)

Contacts

Code Quality

  • Every function in header files are documented (inputs/returns/exceptions)
  • The project has automated tests that cover MOST of the functions and branches in functions (pytest/gtest)
  • The code is documented on the wiki (provide link)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions