From 425c273a38b4307e29bdeb9385dc9c3edd40a22c Mon Sep 17 00:00:00 2001 From: Patrick Sheehan Date: Mon, 18 May 2026 16:34:49 +0200 Subject: [PATCH 1/2] msgs(gripper): trim unused state fields and action feedback Addresses two PR review comments on gripper_guidance/src/gripper_reference_filter_ros.cpp: L145 (jorgenfj): "Does the gripper reference message need to be 6d if we ever only use the first two dims?" GripperReferenceFilter trimmed from 6 floats (roll, pinch, roll_dot, pinch_dot, roll_dotdot, pinch_dotdot) to 2 floats (roll, pinch). The filter genuinely computes derivatives but no downstream consumer (controller translator, sim bridge, CAN interface) reads anything beyond .roll and .pinch. GripperWaypoint changed from nested GripperReferenceFilter roll/pinch (only .roll.roll and .pinch.pinch were ever read; the five derivative fields per axis were always sent as 0 and never read) to flat float64 roll, float64 pinch. L258 (jorgenfj): "Should remove feedback from the action definition and just publish to topic if anyone is interested" GripperReferenceFilterWaypoint.action: feedback section emptied. The filter already publishes its smoothed reference on the topic output; mirroring it as action feedback was redundant. --- action/GripperReferenceFilterWaypoint.action | 1 - msg/GripperReferenceFilter.msg | 11 +---------- msg/GripperWaypoint.msg | 7 +++---- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/action/GripperReferenceFilterWaypoint.action b/action/GripperReferenceFilterWaypoint.action index 7b15e41..d78d561 100644 --- a/action/GripperReferenceFilterWaypoint.action +++ b/action/GripperReferenceFilterWaypoint.action @@ -6,4 +6,3 @@ float64 convergence_threshold bool success --- # Feedback -vortex_msgs/GripperReferenceFilter reference diff --git a/msg/GripperReferenceFilter.msg b/msg/GripperReferenceFilter.msg index ba128d4..3747f58 100644 --- a/msg/GripperReferenceFilter.msg +++ b/msg/GripperReferenceFilter.msg @@ -1,11 +1,2 @@ -# nu_d -float64 roll +float64 roll float64 pinch - -# nu_d_dot -float64 roll_dot -float64 pinch_dot - -# nu_d_dotdot -float64 roll_dotdot -float64 pinch_dotdot diff --git a/msg/GripperWaypoint.msg b/msg/GripperWaypoint.msg index ff70b18..7198bc1 100644 --- a/msg/GripperWaypoint.msg +++ b/msg/GripperWaypoint.msg @@ -1,10 +1,9 @@ -GripperReferenceFilter roll -GripperReferenceFilter pinch +float64 roll +float64 pinch -uint8 mode +uint8 mode # GripperWaypoint mode constraints uint8 ROLL_AND_PINCH = 0 uint8 ONLY_ROLL = 1 uint8 ONLY_PINCH = 2 - From 271805305013ed59162eacc788a7534e244af382 Mon Sep 17 00:00:00 2001 From: Patrick Sheehan Date: Tue, 19 May 2026 11:47:18 +0200 Subject: [PATCH 2/2] msgs(gripper): add GripperOpenLoopCommand action Required by the open-loop gripper controller added in vortexntnu/vortex-gripper#10. The action accepts a velocity command and a fixed duration. The controller publishes that velocity on GripperStateVelocityCommand at a fixed rate for the specified duration, then stops and completes the goal. Intended as a feedback-free fallback when gripper state is not observable. Goal: float64 roll_velocity float64 pinch_velocity float64 duration_seconds uint8 mode (ROLL_AND_PINCH=0, ONLY_ROLL=1, ONLY_PINCH=2) Result: bool success Feedback: float64 elapsed_seconds --- CMakeLists.txt | 1 + action/GripperOpenLoopCommand.action | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 action/GripperOpenLoopCommand.action diff --git a/CMakeLists.txt b/CMakeLists.txt index a345849..334568d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,6 +72,7 @@ set(action_files "action/LocateDock.action" "action/NavigateWaypoints.action" "action/GripperReferenceFilterWaypoint.action" + "action/GripperOpenLoopCommand.action" "action/VtfGuidance.action" "action/GuidanceWaypoint.action" "action/FilteredPose.action" diff --git a/action/GripperOpenLoopCommand.action b/action/GripperOpenLoopCommand.action new file mode 100644 index 0000000..b3a4b3b --- /dev/null +++ b/action/GripperOpenLoopCommand.action @@ -0,0 +1,16 @@ +# Goal +float64 roll_velocity +float64 pinch_velocity +float64 duration_seconds +uint8 mode + +# Mode constraints (mirrors GripperWaypoint mode constants) +uint8 ROLL_AND_PINCH = 0 +uint8 ONLY_ROLL = 1 +uint8 ONLY_PINCH = 2 +--- +# Result +bool success +--- +# Feedback +float64 elapsed_seconds