BTick :an open-source tool for Behavior Tree monitoring and runtime control in ROS 2

Hi ROS community!
Working with Behavior Trees in robotics? :deciduous_tree:

Meet BTick, a powerful tool designed to make monitoring, debugging, and analyzing BehaviorTree.CPP applications easier and more interactive.

Key Features

:small_blue_diamond: Unlimited Nodes & Multi-Tree Support โ€” Automatically discover and monitor multiple trees and nested subtrees in real time.

:small_blue_diamond: Live Monitoring & Interactive Debugging โ€” Track execution, use breakpoints and step execution, and inspect node states.

:small_blue_diamond: Runtime Control & Testing โ€” Override node statuses, inject delays, edit supported ports, and inspect or modify Blackboard variables.

:small_blue_diamond: Recording, Replay & Performance Analysis โ€” Record sessions, replay execution through a timeline, export logs, and analyze execution timing.

:small_blue_diamond: Integrated XML Editor โ€” Create and edit BehaviorTree.CPP v4 XML files with interactive visualization and navigation.

:small_blue_diamond: Three Protocols & Integrations

  • BTick Protocol โ€” Native monitoring and interactive debugging.

  • Groot2 Protocol โ€” Groot2-compatible communication and supported Pro features.

  • Nav2 Integration โ€” Visualize Behavior Trees through the ROS 2 Nav2 logging topic.

:small_blue_diamond: Web & Desktop Applications โ€” Access BTick through a browser or a standalone desktop application.

:link: Explore BTick

:movie_camera: Full Demo: [Demo Link]

:open_book: Documentation: BTick: Behavior Tree Visualizer & Debugger โ€” BTick 1.0.0 documentation

:laptop: Application Repository: GitHub - SherifFathey/btick_app ยท GitHub

:gear: Core Integration: GitHub - SherifFathey/btick ยท GitHub

Built for developers working with ROS 2, BehaviorTree.CPP, and Nav2.

The goal is simple: bring Behavior Tree visualization, monitoring, debugging, recording, and analysis together in one interface.

:speech_balloon: Feedback and contributions are welcome!

demo

4 Likes

Looks awesome! Is this only useful for development or would it also make sense for monitoring/operating deployed robots? If the latter then I think this would make for a great Transitive capability. It would help spread the word and, on the technical side, would move the UI to the cloud with a remote connection to the robot for monitoring from the web without the need for a VPN or similar.

1 Like

Thanks for the suggestion! This is definitely just the beginning for BTick. On the development side, BTick allows you to modify the Behavior Tree at runtime, making debugging, testing, and experimenting with different behaviors much easier. For deployed robots, I believe it could also be valuable for remote monitoring, troubleshooting, and diagnosing unexpected behavior in real-world operation.

Integrating BTick with Transitive is a great idea, and Iโ€™ll definitely explore this direction. Iโ€™d also really appreciate it if you could try BTick on one of your real-world robotics projects and share your feedback. It would be great to hear your thoughts on how well it fits into an actual robotics workflow and what improvements would make it more useful.