Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/SherifFathey/btick.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-01 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| btick | 1.0.0 |
README
BTick
BTick integrates with ROS 2 to provide real-time Behavior Tree monitoring and interactive debugging for BehaviorTree.CPP v4 applications.
Overview & Capabilities
The integration connects BTick to the BehaviorTree.CPP execution and monitoring interfaces to expose tree structure, runtime state transitions, and supported debugging controls.

Prerequisites & Dependencies
Ensure ROS 2 and the required BehaviorTree.CPP dependencies are installed and available in your environment.
Building the btick Package
Clone the repository into a ROS 2 workspace:
mkdir -p ~/robot_ws/src
cd ~/robot_ws/src
git clone https://github.com/SherifFathey/btick.git
Install dependencies and build the package:
cd ~/robot_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select btick --symlink-install
source install/setup.bash
Package Configuration
CMakeLists.txt
Add btick to your project’s dependencies:
cmake_minimum_required(VERSION 3.8)
project(my_robot_behavior)
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(behaviortree_cpp REQUIRED)
find_package(btick REQUIRED)
add_executable(my_bt_runner src/my_bt_runner.cpp)
ament_target_dependencies(my_bt_runner
rclcpp
behaviortree_cpp
btick
)
install(TARGETS my_bt_runner
DESTINATION lib/${PROJECT_NAME}
)
package.xml
Declare the dependencies in package.xml:
<depend>rclcpp</depend>
<depend>behaviortree_cpp</depend>
<depend>btick</depend>
C++ Integration Example
The following steps show how to integrate BTick into an existing BehaviorTree.CPP application.
Step 1: Include the BTick Header
#include <btick/btick.hpp>
Step 2: Attach the BTick Monitor
After creating your behavior tree, instantiate btick::Monitor to enable monitoring and supported debugging features in BTick:
btick::Monitor monitor(node, tree, "MainRobotTree", xml_path);
Constructor arguments:
-
node: The ROS 2 node used for communication. -
tree: TheBT::Treeinstance to monitor. -
"MainRobotTree": The tree name displayed in the BTick interface. -
xml_path: The XML file path, used to retrieve tree definition details such as port metadata.
Step 3: Enable Optional Logging
To record execution data to a JSON file, optionally create a btick::Logs instance:
File truncated at 100 lines see the full file