Skip to content

feat(action_status_bridge): add aborted-goal to faults bridge#423

Open
mfaferek93 wants to merge 2 commits into
mainfrom
feat/421-action-status-bridge
Open

feat(action_status_bridge): add aborted-goal to faults bridge#423
mfaferek93 wants to merge 2 commits into
mainfrom
feat/421-action-status-bridge

Conversation

@mfaferek93

Copy link
Copy Markdown
Collaborator

Adds ros2_medkit_action_status_bridge, a generic drop-in adapter that discovers every action via its */_action/status topic and turns terminal ABORTED goal states into FaultManager faults, healing the code on SUCCEEDED.

This captures the authoritative failure channel for the core stacks (Nav2, MoveIt 2, ros2_control), where an aborted goal reaches neither /rosout nor /diagnostics.

  • source_id is the action name; fault_code is <PREFIX>_<ACTION>_ABORTED.
  • Per-goal dedup on goal_id so a latched terminal status reports once.
  • New actions appearing later are picked up by a periodic rescan.

Unit tests cover action-name extraction, fault_code generation, and dedup.

Closes #421

New ros2_medkit_action_status_bridge: watches */_action/status and turns
terminal ABORTED goal states into FaultManager faults, healing on SUCCEEDED.
Catches action-result failures that never reach /rosout or /diagnostics
(MoveIt, Nav2, ros2_control).

Refs #421
Copilot AI review requested due to automatic review settings June 15, 2026 16:53
@mfaferek93 mfaferek93 marked this pull request as draft June 15, 2026 16:55

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new ROS 2 package, ros2_medkit_action_status_bridge, that discovers action */_action/status topics at runtime and converts terminal goal states into FaultManager faults (with optional healing on SUCCEEDED). This complements existing log/diagnostic-based fault sources by capturing failures that only appear on the action status channel.

Changes:

  • Introduces ActionStatusBridgeNode that periodically rescans the graph, subscribes to action status topics, deduplicates terminal events per goal, and reports/heals faults via ros2_medkit_fault_reporter.
  • Adds launch + YAML configuration, plus package/build metadata for installation.
  • Adds GTest unit tests for topic parsing, fault-code formatting, UUID hex conversion, and node construction.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/ros2_medkit_action_status_bridge/test/test_action_status_bridge.cpp New unit tests for helper logic and node creation
src/ros2_medkit_action_status_bridge/src/main.cpp Node entrypoint (init/spin/shutdown)
src/ros2_medkit_action_status_bridge/src/action_status_bridge_node.cpp Core bridge implementation: discovery, subscriptions, dedup, fault reporting
src/ros2_medkit_action_status_bridge/README.md Package overview and configuration docs
src/ros2_medkit_action_status_bridge/package.xml New ROS package manifest and dependencies
src/ros2_medkit_action_status_bridge/launch/action_status_bridge.launch.py Launch file to run the bridge with YAML params
src/ros2_medkit_action_status_bridge/include/ros2_medkit_action_status_bridge/action_status_bridge_node.hpp Public node API + documentation
src/ros2_medkit_action_status_bridge/config/action_status_bridge.yaml Default parameters for the bridge
src/ros2_medkit_action_status_bridge/CMakeLists.txt Build, install, and unit-test wiring
src/ros2_medkit_action_status_bridge/CHANGELOG.rst Initial changelog entry

Comment thread src/ros2_medkit_action_status_bridge/CMakeLists.txt
Comment thread src/ros2_medkit_action_status_bridge/src/action_status_bridge_node.cpp Outdated
Comment thread src/ros2_medkit_action_status_bridge/src/action_status_bridge_node.cpp Outdated
Comment thread src/ros2_medkit_action_status_bridge/CMakeLists.txt
Per-action lifecycle state derived from the whole status array (raise/heal on real transitions, no per-goal masking), sanitized code_prefix, pruning of vanished actions, CANCELED-aware codes, param validation, QoS-incompat warning. Unique test domain range, dropped unused test_depends, added unit coverage; docs corrected.
@mfaferek93 mfaferek93 force-pushed the feat/421-action-status-bridge branch from 6614b45 to 53d1a91 Compare June 15, 2026 19:36
@mfaferek93 mfaferek93 self-assigned this Jun 15, 2026
@mfaferek93 mfaferek93 marked this pull request as ready for review June 15, 2026 19:56
@mfaferek93 mfaferek93 requested a review from bburda June 15, 2026 20:22
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.

feat(fault_pack): promote aborted action goals to faults

2 participants