bt-decorator-nodes

Implement ROS 2 behavior-tree decorator nodes for tick control, retries, and timeouts.

18|2|Updated Apr 20, 2026
One-click install
npx skills add https://github.com/wimblerobotics/ros2-copilot-skills --skill bt-decorator-nodes
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: bt-decorator-nodes
Source: https://github.com/wimblerobotics/ros2-copilot-skills/tree/main/bt-decorator-nodes
Command: npx skills add https://github.com/wimblerobotics/ros2-copilot-skills --skill bt-decorator-nodes

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Decorators wrap exactly one child node and modify its tick behavior, return status, or execution frequency. They are essential for throttling expensive operations, retrying failures, and implementing timeouts.

Core Features & Use Cases

  • RateController, DistanceController, SpeedController: throttle or pace child execution.
  • SingleTrigger, Inverter, ForceSuccess, ForceFailure: control one-shot actions and negation of outcomes.
  • Repeat, Retry, KeepRunningUntilFailure: implement retries and endless patrol loops with safe termination.
  • Timeout and Delay: bound execution time and introduce startup delays.
  • Nested composition: combine decorators to create robust, time-bounded behaviors for ROS 2 navigation and task sequences.

Quick Start

Integrate bt-decorator-nodes into your ROS 2 BT workflow by selecting a decorator and wrapping a single child to control ticking, retries, or timeouts.

Frequently Asked Questions about bt-decorator-nodes

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I control tick frequency in a ROS 2 behavior tree?

Behavior tree decorators wrap a single child node to modify its tick behavior, execution frequency, or return status. They are essential for throttling expensive operations, retrying failures, and implementing timeouts in ROS 2.

How do I implement retry logic and timeouts for ROS 2 navigation tasks?

Implement retry logic and timeouts in ROS 2 navigation by wrapping your action nodes with Retry and Timeout decorators. This ensures safe termination and bounded execution time during task automation and recovery sequences.

Can I compose multiple behavior tree decorators for complex recovery sequences?

Yes, you can nest multiple behavior tree decorators like Inverter, ForceSuccess, and Delay to compose robust, time-bounded behaviors. This nested composition enables precise failure handling and one-shot actions in ROS 2.

What's the best way to throttle expensive operations in ROS 2 behavior trees?

The best way to throttle expensive operations in ROS 2 behavior trees is using controller decorators. DistanceController and SpeedController pace child execution based on spatial metrics rather than strict time intervals.

How do I keep a ROS 2 behavior tree running until a specific failure occurs?

Keep a ROS 2 behavior tree running until a failure occurs by wrapping the desired child node with the KeepRunningUntilFailure decorator. This implements safe endless patrol loops with predictable termination.