You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Question? [](https://gitter.im/BehaviorTree-ROS/Lobby?utm_source=badge&utm_medium=badge&utm_content=badge)
6
6
7
7
# About BehaviorTree.CPP
8
8
9
9
This __C++__ library provides a framework to create BehaviorTrees.
10
-
It was designed to be flexible, easy to use and fast.
10
+
It was designed to be flexible, easy to use, reactive and fast.
11
11
12
12
Even if our main use-case is __robotics__, you can use this library to build
13
13
__AI for games__, or to replace Finite State Machines in you application.
14
14
15
15
__BehaviorTree.CPP__ has many interesting features, when compared to other implementations:
16
16
17
17
- It makes asynchronous Actions, i.e. non-blocking, a first-class citizen.
18
-
- It allows the creation of trees at run-time, using a textual representation (XML).
18
+
19
+
- You can build reactive behaviors that execute multiple Actions concurrently.
20
+
21
+
- It allows the creation of Trees at run-time, using a textual representation (XML);
22
+
the fact that is written in C++ __does not__ imply that Trees are hard-coded.
23
+
19
24
- You can link staticaly you custom TreeNodes or convert them into plugins
20
25
which are loaded at run-time.
26
+
21
27
- It includes a __logging/profiling__ infrastructure that allows the user
22
28
to visualize, record, replay and analyze state transitions.
23
29
30
+
- It provides a type-safe and flexible mechanism to do dataflow between
31
+
Nodes of the Tree.
32
+
24
33
# Documentation
25
34
26
35
https://behaviortree.github.io/BehaviorTree.CPP/
27
36
37
+
# About version 3.X
38
+
39
+
The main goal of this project is to create a Behavior Tree implementation
40
+
that uses the principles of Model Driven Development to separate the role
41
+
of the __Component Developer__ from the __Behavior Designer__.
42
+
43
+
In practice, this means that:
44
+
45
+
- Custom TreeNodes must be reusable building blocks.
46
+
You should be able to implement them once and reuse them in many contextes.
47
+
48
+
- To build a Behavior Tree out of TreeNodes, the Behavior Designer must
49
+
not need to read nor modify the source code of the a given TreeNode.
50
+
51
+
Version 3 of this library introduce some dramatic changes in the API, but
If you want to compile it with catkin, just include this package in your catkin warkspace as usual.
88
+
If you want to compile it with catkin, you __must__ include this package
89
+
to your catkin workspace.
59
90
60
91
# Acknowledgement
61
92
@@ -71,21 +102,24 @@ Union’s Horizon 2020 Research and Innovation Programme.
71
102
72
103
- 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)
73
104
74
-
-**How Behavior Trees Modularize Hybrid Control Systems and Generalize Sequential Behavior Compositions, the Subsumption Architecture,
75
-
and Decision Trees.** Michele Colledanchise and Petter Ogren. IEEE Transaction on Robotics 2017.
105
+
-**How Behavior Trees Modularize Hybrid Control Systems and Generalize
106
+
Sequential Behavior Compositions, the Subsumption Architecture,
107
+
and Decision Trees.**
108
+
Michele Colledanchise and Petter Ogren. IEEE Transaction on Robotics 2017.
76
109
77
-
-**Behavior Trees in Robotics and AI**, published by CRC Press Taylor & Francis, available for purchase
110
+
-**Behavior Trees in Robotics and AI**,
111
+
published by CRC Press Taylor & Francis, available for purchase
78
112
(ebook and hardcover) on the CRC Press Store or Amazon.
79
113
80
-
The Preprint version (free) is available here: https://arxiv.org/abs/1709.00084
114
+
The Preprint version (free) is available here: https://arxiv.org/abs/1709.00084
81
115
82
116
83
117
# License
84
118
85
119
The MIT License (MIT)
86
120
87
121
Copyright (c) 2014-2018 Michele Colledanchise
88
-
Copyright (c) 2018 Davide Faconti
122
+
Copyright (c) 2018-2019 Davide Faconti
89
123
90
124
Permission is hereby granted, free of charge, to any person obtaining a copy
91
125
of this software and associated documentation files (the "Software"), to deal
0 commit comments