Skip to content

Support parallel_gripper_action_controller in Setup Assistant (#3752)#3773

Merged
nbbrooks merged 2 commits into
jazzyfrom
nbbrooks/jazzy-test-controllers-fix
Jun 23, 2026
Merged

Support parallel_gripper_action_controller in Setup Assistant (#3752)#3773
nbbrooks merged 2 commits into
jazzyfrom
nbbrooks/jazzy-test-controllers-fix

Conversation

@nbbrooks

Copy link
Copy Markdown
Collaborator
  • Support parallel_gripper_action_controller in Setup Assistant

moveit_resources migrated the gripper from position_controllers/ GripperActionController (Humble/Iron) to parallel_gripper_action_controller/ GripperActionController (Jazzy and newer). Both are single-joint GripperActionControllers that take a joint parameter.

Teach moveit_setup_controllers to recognize the new type:

  • ros2_controllers_config: emit the joint (singular) parameter for either gripper controller type, instead of only the old one (the old check misclassified the new type and emitted a joints list).
  • ros2_controllers: offer the new type in getAvailableTypes().
  • test_controllers (ParsePanda): accept either gripper type so the test is distro-agnostic (the panda config now ships the Jazzy+ type).
  • Address review: guard gripper joint index, add panda gripper output test
  • ros2_controllers_config: only write the singular joint parameter when the gripper controller actually has a joint, so joints_[0] is never indexed out of bounds for a gripper with an empty joint list.
  • test_controllers: add OutputPandaGripperUsesSingularJoint, which generates the panda ros2_controllers.yaml and asserts the GripperActionController is emitted with the singular joint key (not the joints list) -- coverage the gripper-less OutputFanuc test could not provide.

Description

Please explain the changes you made, including a reference to the related issue if applicable

Checklist

  • Required by CI: Code is auto formatted using clang-format
  • Extend the tutorials / documentation reference
  • Document API changes relevant to the user in the MIGRATION.md notes
  • Create tests, which fail without this PR reference
  • Include a screenshot if changing a GUI
  • While waiting for someone to review your request, please help review another open pull request to support the maintainers

* Support parallel_gripper_action_controller in Setup Assistant

moveit_resources migrated the gripper from position_controllers/
GripperActionController (Humble/Iron) to parallel_gripper_action_controller/
GripperActionController (Jazzy and newer). Both are single-joint
GripperActionControllers that take a `joint` parameter.

Teach moveit_setup_controllers to recognize the new type:
- ros2_controllers_config: emit the `joint` (singular) parameter for either
  gripper controller type, instead of only the old one (the old check
  misclassified the new type and emitted a `joints` list).
- ros2_controllers: offer the new type in getAvailableTypes().
- test_controllers (ParsePanda): accept either gripper type so the test is
  distro-agnostic (the panda config now ships the Jazzy+ type).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Address review: guard gripper joint index, add panda gripper output test

- ros2_controllers_config: only write the singular `joint` parameter when the
  gripper controller actually has a joint, so joints_[0] is never indexed out
  of bounds for a gripper with an empty joint list.
- test_controllers: add OutputPandaGripperUsesSingularJoint, which generates
  the panda ros2_controllers.yaml and asserts the GripperActionController is
  emitted with the singular `joint` key (not the `joints` list) -- coverage the
  gripper-less OutputFanuc test could not provide.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mergify

mergify Bot commented Jun 23, 2026

Copy link
Copy Markdown

Please target the main branch for development, we will backport the changes to jazzy for you if approved and if they don't break API.

@codecov

codecov Bot commented Jun 23, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 76.92308% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 46.25%. Comparing base (0a18b73) to head (31cb88e).

Files with missing lines Patch % Lines
...lude/moveit_setup_controllers/ros2_controllers.hpp 0.00% 2 Missing ⚠️
...moveit_setup_controllers/test/test_controllers.cpp 85.72% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           jazzy    #3773       +/-   ##
==========================================
+ Coverage   0.00%   46.25%   +46.25%     
==========================================
  Files        294      718      +424     
  Lines      28361    59184    +30823     
  Branches    3964     7598     +3634     
==========================================
+ Hits           0    27369    +27369     
- Misses     28361    31649     +3288     
- Partials       0      166      +166     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@nbbrooks nbbrooks merged commit 51849b3 into jazzy Jun 23, 2026
6 of 7 checks passed
@nbbrooks nbbrooks deleted the nbbrooks/jazzy-test-controllers-fix branch June 23, 2026 15:30
@github-project-automation github-project-automation Bot moved this to ✅ Done in MoveIt Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant