Skip to main content

· One min read
Davide Faconti

Less than 2 weeks after Beta 4, we have a new release! This version includes some important bug fixes and also some cool new features.

Split View

See two Trees simultaneously, side by side.

Once the split view is opened (top-right icon), you can drag and drop your trees from the Project View to open it in a new tab, or move your tabs from one area to the other.

split_view.png

Live XML preview

Ability to see a preview of the XML that will be generated, before you actually save the file.

The preview is updated live, if the Tree is modified.

xml_preview.png

Save the current Tree view on file

If you righ click on the Tree View area, you will see a new option, "Save Image".

You can choose to save the Tree View as PNG, JPEG or SVG.

· One min read
Davide Faconti

I am pleased to announce the release of the 4th Beta of Groot2. These are the most notable new features...

Support for <include>

In BehaviorTree.CPP it is common to use the XML tag <include> to automatically define the dependency between multiple XML. This is not considered best practice anymore, and you are invited to follow the best practices described in Tutorial 7.

Nevertheless, some user may still rely on the former approach and we want to support them. Now, when selecting a file in the top left Project widget, the Includes section will appear below it. This can be used to inspect, remove and add includes.

beta4_include.png

Theme and Style improvements

A lot of work went into implementing a more reliable and consistent style across platforms. Additionally, the central NodeView area now supports both classic Dark theme and the new Light one.

You can change the theme opening the Preferences dialog, by clicking on the gear icon at the bottom of the left sidebar.

beta4_styles.png

· 3 min read
Davide Faconti

Sometimes people ask me if, when I started this project 4 years ago, I expected BehaviorTree.CPP to gain so much adoption in the robotic community. Even if that is generally meant as a rhetorical question that expects and humble answer, I usually answer "yes".

There are a few reasons why I was optimistic about the fact that this library might be well received:

  • It helps implement a crucial component of a robotic software system, Task Planning; this part is often neglected until the end of the project.

  • I spent an unusual amount of time (maybe 30% of my whole development time) writing documentation.

  • I wanted to build an inclusive project, where people's needs and opinions are heard. I am the "benevolent dictator" of the project, but I do listen and I do learn from others!

Adoption in recent years,

BT.CPP is gaining traction in robotics, as shown in the image below (note as the Y-axis is logarithmic):

adoption

This data was obtained from the paper:

Behavior Trees and State Machines in Robotics Applications

SMACH is still the strongest contender, but you can also note as BT.CPP and PyTrees have gained more and more popularity in our community.

If you want to learn more about the methodology used to obtain these numbers, please refer to the publication mentioned above.

Documentation is a super power

You might be familiar with the phrase:

"If a tree falls in a forest and no one is around to hear it, does it make a sound?"

My personal version of it is:

If an open source software is not used by anyone else but the author, is it still useful?

In both cases, we know that the answer is (or might be) "yes", but hopefully you see what I mean.

Very often, open source is about "scratching your own itch" and sharing what you did with others. That is fine!

But in my case, This project was created specifically to help others; the more it is adopted and used, the more I feel that my initial goal has been achieved.

In my career, I have learned that the best way to drive adoption is:

  • built something that people need.
  • build trust with your users.
  • lower as much as possible the entry barrier.

The latter point is particularly important and it is often underestimated. For me, lowering the entry barrier involved three key steps:

  • writing good documentation (this website).
  • adding tutorials that give the new users a sense of progression.
  • providing a tool that helps people learn visually (Groot).

The documentation of BT.CPP is not perfect, but probably a little above the average, considering the average open source project: this cost a lot of time, but paid off enormously.

If you have any suggestions about how to improve this site, let me know.