Announcing the 1st BehaviorTree workshop: call for participation


BehaviorTree.CPP gained a good amount of traction and popularity in recent years, mostly driven by its adoption in Nav2.

An increasing number of teams and companies (small and big) use BT.CPP to coordinate their robots and their requirements evolve over time.

I would like to engage more closely with the community and understand the:

  • use cases
  • pain points and challenges
  • design pattern
  • suggestions for improvement

My plan is to build a roadmap to design Behaviortree.CPP 4.0 with the goal of making it simpler to use, more readable, more scalable and easy to debug.

For this reason, I would like to host the first BehaviorTree workshop on March 31 (details to be shared soon).

If you want to have a spot to highlight your project and suggestion, please send me (direct message or a short abstract of:

  • your use case
  • what you want to be discussed (possible improvements, challenges, ideas).

None of the information you submit will be shared with 3rd parties.

“I am a company and I don’t want to reveal anything about my IPs”

I fully understand your privacy concerns, but your feedback is extremely valuable to improve BT.CPP and make your life easier! Helping the project, you are helping yourself, as a user :wink:

You can contact me privately using my email and, if required, a NDA can be signed.


I’m certainly interested in attending! It sounds like a great opportunity to provide feedback and hopefully learn a bit more about the library.

A question about the workshop: Is it’s purpose solely to get feedback from the community or are you open to presenting some info about the lesser known features of BT.CPP? I think that could be very useful for both new and existing users of the library.

Hi Davide,

When you firm up the details please let me know and I’ll spread the word.

This will NOT be an introduction to the library, but an opportunity for people to use it already to provide feedback and share ideas.

You can find introductory videos here:


Sounds like a great idea! A couple of thoughts I had:

  • Are there any updated in Behavior Tree literature, especially from @miccol’s work, that could be added?
  • For live monitoring, potentially switching technology that allows for multiple publishers & publish the behavior tree XML file on starting so that we can potentially switch between trees within the execution of the system and have that appear in 1 window
  • Perhaps these exist and I haven’t run into them : included looping BT nodes (e.g. while or for conditions, basically) and demo XMLs using them as examples
  • Examples of the parallel control flow node in documentation
  • I’d really love to have a Rviz panel tool for visualizing BTs and BTs in execution. That would be such a huge help.
  • Versioning behavior trees – having version numbers in the preamble of the XML or the root so that we can read that in and have validation checks on the BT being what we expect it to be when in use

Other than that, the only piece I would like is somewhat better explanation of halt() haltChildren() setStatus() and other resetting or state-esk functions in BT.CPP and having best practices about when these should be manually called or handled by the system internally. So, a best practices for behavior tree node designers page. We picked up on those from discussions with you in the earlier days of Nav2, but I don’t think they’re explicitly made clear anywhere for developers at large.


This will NOT be an introduction to the library, but an opportunity for people to use it already to provide feedback and share ideas.

Sounds good.

To confirm, is the plan to hold the workshop online?

yes, online. Using Google Meet or Zoom

All great ideas, @smac thanks!

Please find the calendar details here:

The link to connect will be announced in the next days. Who wants to have a 10-15 minute time slot to talk at the workshop should get in contact with me as described above.

1 Like

Google Calendar says that it “could not find the requested event” when I click on that link on my desktop, and creates an empty event when I try it on my phone. Is the event marked to private (or something else?), or is it an issue on my end?

fixed, thanks for reporting the issue :slight_smile:

Any chance this meeting will be recorded?

Yes, I think that is the plan, unless someone has privacy concerns. In the worst case a summary will be published.

Hi David,

Would you like me to add this to the ROS events calendar and/or the weekly update?

1 Like

That would be great @Katherine_Scott
Zoom meeting details are:

Davide Faconti is inviting you to a scheduled Zoom meeting.

Join Zoom Meeting

Meeting ID: 860 0559 3019

1 Like

You’re on the ROS Discourse calendar now. Let me know if you need anything else.

This is a kind reminder, to anybody interested to join the workshop, to send their contact information and short abstract.

See you next Thursday! :slight_smile:


@facontidavide will the workshop be recorded? I am interested, but I will not be able to join tomorrow :frowning:

I am mostly interested in seeing if there is some research opportunity for us or even if I might promote some projects on BehaviourTree.CPP for my students at VU Amsterdam (an Rviz panel would be a nice Bachelor project for example).

@iivanoo, sure, it will be recorded.
Anyway, let’s talk about opportunities for your students privately (my email is

1 Like

Ok, thanks Davide! I will keep my eyes open for the recording :slight_smile: