bt-blackboard-patterns

Coordinate data sharing between ROS 2 behavior tree nodes via blackboard patterns.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Passing and synchronizing data between BT nodes is error-prone without a shared blackboard. This skill provides patterns to share goals, paths, and state across a Behavior Tree using a central blackboard, reducing wiring complexity and improving maintainability.

Core Features & Use Cases

  • Blackboard data sharing across BT nodes via standard port remapping and SetBlackboard usage.
  • SubTree data flow where parent and subtree exchange inputs and outputs through the blackboard.
  • Debugging and typing discipline enabling consistent data types and runtime checks, with common pitfalls documented.

Quick Start

Write a goal to the blackboard and read it in the next BT node to determine the next action.

Frequently Asked Questions about bt-blackboard-patterns

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

FAQPage Schema
How do I share data between behavior tree nodes in ROS 2?

Share data between ROS 2 behavior tree nodes by writing and reading values through a central blackboard. This approach reduces wiring complexity by using standard port remapping to pass goals, paths, and state across the tree.

What is the best way to pass data between a parent BT and a subtree?

Pass data between a parent behavior tree and a subtree by exchanging inputs and outputs through the blackboard. This sub-tree data flow pattern ensures consistent data sharing and easier debugging across nested nodes.

How do I use SetBlackboard to coordinate behavior tree node state?

Use SetBlackboard to write shared state, goals, or paths into the central blackboard for subsequent behavior tree nodes to read. This enforces consistent data flow and enables the next node to determine the next action based on the shared data.

Why does behavior tree data flow fail without blackboard typing discipline?

Behavior tree data flow fails without blackboard typing discipline because inconsistent data types cause runtime errors when nodes read shared data. Enforcing typing discipline and runtime checks ensures consistent data flow and easier debugging of blackboard values.

Can I debug behavior tree data sharing without port remapping?

Debugging behavior tree data sharing without port remapping is error-prone and increases wiring complexity. Applying port remapping with a central blackboard ensures consistent data flow, enabling consistent data types and runtime checks for easier debugging.

What problem does a blackboard pattern solve in ROS 2 task plans?

A blackboard pattern in ROS 2 task plans solves the error-prone process of passing and synchronizing data between behavior tree nodes. It provides a central blackboard to reduce wiring complexity and improve maintainability when sharing goals and state.