Ask Your Question

Groot: how finds models? how connects to running BT?

asked 2020-02-20 08:27:35 -0500

jorge gravatar image

Hi! 'm trying to use Groot to first visualize, then modify ROS2 navigation BT. I use eloquent on 18.04, all compiled from sources (Groot, BehaviorTree.CPP and ROS2 navigation)

When I try to open a tree, e.g. navigate_w_replanning.xml, I get this error:

image description

But I have no idea how to tell Groot where to find models, nor can find any documentation.

And the second question, I tried to visualize the running nav2 BT (a BehaviorTree.CPP), but nothing seems to publish to port 1666:

image description

How I enable this feature on BehaviorTree.CPP? Again, cannot find any parameter nor documentation.


edit retag flag offensive close merge delete


This is a great question for @Carl D.

Frankly, I’ve always designed the BTs on paper and edited by hand. But I think in the software crowd that makes me a heretic.

stevemacenski gravatar image stevemacenski  ( 2020-02-20 09:22:35 -0500 )edit

Digging this out, I also encounter the second error, even though I'm using ROS1 (Kinetic). I'm not sure which port I should use since default (1666) doesn't work, or if I should configure it somewhere in the xml. I couldn't find anything related to real-time monitoring in the doc. EDIT : found my answer here, in the loggers example code :

francoisdtf gravatar image francoisdtf  ( 2020-10-13 03:48:58 -0500 )edit

2 Answers

Sort by » oldest newest most voted

answered 2020-02-20 10:59:48 -0500

Carl D gravatar image

updated 2020-02-20 11:23:01 -0500

Unfortunately, development work needs to be done to enable both your questions.

For the first question, about the unregistered model. Nav 2 uses some custom control nodes. I believe there is no way to add custom control nodes to Groot at the moment. @Davide Faconti can probably confirm this or provide a solution.

For the second question, either Groot needs to be ported to ROS2, or we need to add the ZeroMQ publisher to the navigation 2 behavior tree. I would personally rather see Groot ported to ROS2, because I believe it would be beneficial to be able to capture the behavior tree messages in a Rosbag.

edit flag offensive delete link more


Thanks for the answer. Looking forward to Davide's comments (and also to a ROS2 porting, it would be great!)

jorge gravatar image jorge  ( 2020-02-25 00:46:13 -0500 )edit

There is an open PR towards this:

fergs gravatar image fergs  ( 2020-09-08 19:47:36 -0500 )edit

answered 2020-12-16 05:42:05 -0500

denuwan gravatar image

updated 2020-12-16 21:48:51 -0500

HI, I just found the answer to your second question. You have to pass the BT in to zmq publisher so Groot can take it and display in real time. To do that In your Logger add below line.

PublisherZMQ publisher_zmq(tree);

tree - Loaded tree from text or file. Make sure that you include the bt_zmq_publisher header file first.

-- #include "behaviortree_cpp_v3/loggers/bt_zmq_publisher.h"

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2020-02-20 08:27:35 -0500

Seen: 1,132 times

Last updated: Dec 16 '20