Skip to content

Commit ac34612

Browse files
committedOct 13, 2022
new readme
1 parent 33f5628 commit ac34612

File tree

2 files changed

+34
-62
lines changed

2 files changed

+34
-62
lines changed
 

Diff for: ‎README.md

+9-62
Original file line numberDiff line numberDiff line change
@@ -8,39 +8,35 @@
88

99
# BehaviorTree.CPP
1010

11-
<p align="center"><img src="docs/images/ReadTheDocs.png"></p>
11+
<p align="center"><img src="animated.svg"></p>
1212

13-
This __C++ 14__ library provides a framework to create BehaviorTrees.
13+
This __C++ 17__ library provides a framework to create BehaviorTrees.
1414
It was designed to be flexible, easy to use, reactive and fast.
1515

1616
Even if our main use-case is __robotics__, you can use this library to build
17-
__AI for games__, or to replace Finite State Machines in your application.
17+
__AI for games__, or to replace Finite State Machines.
1818

1919
There are few features that make __BehaviorTree.CPP__ unique, when compared to other implementations:
2020

2121
- It makes __asynchronous Actions__, i.e. non-blocking, a first-class citizen.
2222

2323
- You can build __reactive__ behaviors that execute multiple Actions concurrently.
2424

25-
- Trees are defined using a Domain Specific Scripting __scripting language__ (based on XML), and can be loaded at run-time; in other words, even if written in C++, Trees are _not_ hard-coded.
25+
- Trees are defined using a Domain Specific __scripting language__ (based on XML), and can be loaded at run-time; in other words, even if written in C++, the morphology of the Trees is _not_ hard-coded.
2626

2727
- You can statically link your custom TreeNodes or convert them into __plugins__
28-
which can be loaded at run-time.
28+
and load them at run-time.
2929

3030
- It provides a type-safe and flexible mechanism to do __Dataflow__ between
3131
Nodes of the Tree.
3232

3333
- It includes a __logging/profiling__ infrastructure that allows the user
3434
to visualize, record, replay and analyze state transitions.
3535

36-
- Last but not least: it is well [documented](https://www.behaviortree.dev/)!
37-
3836
## Documentation
3937

4038
You can learn about the main concepts, the API and the tutorials here: https://www.behaviortree.dev/
4139

42-
To find more details about the conceptual ideas that make this implementation different from others,
43-
you can read the [final deliverable of the project MOOD2Be](https://github.com/BehaviorTree/BehaviorTree.CPP/blob/master/MOOD2Be_final_report.pdf).
4440

4541
## Forum and Community
4642

@@ -64,15 +60,9 @@ In practice, this means that:
6460
You should be able to implement them once and reuse them to build many behaviors.
6561

6662
- To build a Behavior Tree out of TreeNodes, the Behavior Designer must
67-
not need to read nor modify the C++ source code of a given TreeNode.
68-
69-
- Complex Behaviours must be composable using Subtrees
70-
71-
Many of the features and, sometimes, the apparent limitations of this library, might be a consequence
72-
of this design principle.
63+
not need to read nor to modify the C++ source code..
7364

74-
For instance, having a scoped BlackBoard, visible only in a portion of the tree, is particularly important
75-
to avoid "name pollution" and allow the creation of large scale trees.
65+
- Complex Behaviours must be composable using Subtrees.
7666

7767
# GUI Editor
7868

@@ -83,13 +73,6 @@ If you are looking for a more fancy graphical user interface (and I know you do)
8373

8474
![Groot screenshot](docs/groot-screenshot.png)
8575

86-
## Watch Groot and BehaviorTree.CPP in action
87-
88-
Click on the following image to see a short video of how the C++ library and
89-
the graphic user interface are used to design and monitor a Behavior Tree.
90-
91-
[![MOOD2Be](docs/video_MOOD2Be.png)](https://vimeo.com/304651183)
92-
9376
# How to compile (plain old cmake)
9477

9578
On Ubuntu, you are encourage to install the following dependencies:
@@ -105,12 +88,11 @@ To compile and install the library, from the BehaviorTree.CPP folder, execute:
10588
make
10689
sudo make install
10790

108-
If you want to use BT.CPp in your application a typical **CMakeLists.txt** file
91+
If you want to use BT.CPP in your application a typical **CMakeLists.txt** file
10992
will look like this:
11093

11194
```cmake
11295
cmake_minimum_required(VERSION 3.10.2)
113-
11496
project(hello_BT)
11597
11698
set(CMAKE_CXX_STANDARD 17)
@@ -121,41 +103,6 @@ add_executable(${PROJECT_NAME} "hello_BT.cpp")
121103
target_link_libraries(${PROJECT_NAME} BT::behaviortree_cpp)
122104
```
123105

124-
## ROS1 or ROS2 users (Catkin/Ament)
125-
126-
You can easily install the package with the command
127-
128-
sudo apt-get install ros-$ROS_DISTRO-behaviortree-cpp-v4
129-
130-
If you want to compile it with catkin, you __must__ include this package
131-
to your catkin workspace.
132-
133-
# Acknowledgement
134-
135-
This library was initially developed at **Eurecat - https://eurecat.org/en/** (main author, Davide Faconti) in a joint effort
136-
with the **Italian Institute of Technology** (Michele Colledanchise).
137-
138-
This software is one of the main components of [MOOD2Be](https://eurecat.org/en/portfolio-items/mood2be/),
139-
which is one of the six **Integrated Technical Projects (ITPs)** selected from the
140-
[RobMoSys first open call](https://robmosys.eu/itp/). Therefore, MOOD2Be has been supported by the European Horizon2020 project RobMoSys. This software is RobMoSys conformant.
141-
142-
![RobMoSys Conformant](docs/robmosys_conformant_logo.png)
143-
144-
# Further readings
145-
146-
- Introductory article: [Behavior trees for AI: How they work](http://www.gamasutra.com/blogs/ChrisSimpson/20140717/221339/Behavior_trees_for_AI_How_they_work.php)
147-
148-
- **How Behavior Trees Modularize Hybrid Control Systems and Generalize
149-
Sequential Behavior Compositions, the Subsumption Architecture,
150-
and Decision Trees.**
151-
Michele Colledanchise and Petter Ogren. IEEE Transaction on Robotics 2017.
152-
153-
- **Behavior Trees in Robotics and AI**,
154-
published by CRC Press Taylor & Francis, available for purchase
155-
(ebook and hardcover) on the CRC Press Store or Amazon.
156-
157-
The Preprint version (free) is available here: https://arxiv.org/abs/1709.00084
158-
159106
# License
160107

161108
The MIT License (MIT)
@@ -164,7 +111,7 @@ Copyright (c) 2014-2018 Michele Colledanchise
164111

165112
Copyright (c) 2018-2019 Davide Faconti, Eurecat
166113

167-
Copyright (c) 2019-2021 Davide Faconti
114+
Copyright (c) 2019-2022 Davide Faconti
168115

169116
Permission is hereby granted, free of charge, to any person obtaining a copy
170117
of this software and associated documentation files (the "Software"), to deal

0 commit comments

Comments
 (0)