-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Description
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
- 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.
- 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
- Coordinate with embedded/MCU responsible — @forrisdahl
- Control lead — @Q3rkses
- Software lead — @jorgenfj
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
Labels
No labels