上传日期:2023-05-01 16:55:20
上 传 者sh-1993
说明:  BehaviorTree.CPP,C++中的行为树库。包括电池。
(BehaviorTree.CPP,Behavior Trees Library in C++. Batteries included.)

.DS_Store (6148, 2023-05-25)
.clang-format (1981, 2023-05-25)
.github (0, 2023-05-25)
.github\FUNDING.yml (113, 2023-05-25)
.github\workflows (0, 2023-05-25)
.github\workflows\cmake_ubuntu.yml (2022, 2023-05-25)
.github\workflows\cmake_windows.yml (1819, 2023-05-25)
.github\workflows\codeql.yml.bkp (2306, 2023-05-25)
.github\workflows\ros1.yaml (361, 2023-05-25)
.github\workflows\ros2.yaml (509, 2023-05-25)
.gitignore (98, 2023-05-25)
3rdparty (0, 2023-05-25)
3rdparty\cpp-sqlite (0, 2023-05-25)
3rdparty\cpp-sqlite\sqlite.hpp (15872, 2023-05-25)
3rdparty\cppzmq (0, 2023-05-25)
3rdparty\cppzmq\zmq.hpp (78802, 2023-05-25)
3rdparty\cppzmq\zmq_addon.hpp (24136, 2023-05-25)
3rdparty\lexy (0, 2023-05-25)
3rdparty\lexy\CMakeLists.txt (3307, 2023-05-25)
3rdparty\lexy\LICENSE (1338, 2023-05-25)
3rdparty\lexy\cmake (0, 2023-05-25)
3rdparty\lexy\cmake\ (217, 2023-05-25)
3rdparty\lexy\include (0, 2023-05-25)
3rdparty\lexy\include\lexy (0, 2023-05-25)
3rdparty\lexy\include\lexy\_detail (0, 2023-05-25)
3rdparty\lexy\include\lexy\_detail\any_ref.hpp (1469, 2023-05-25)
3rdparty\lexy\include\lexy\_detail\assert.hpp (1210, 2023-05-25)
3rdparty\lexy\include\lexy\_detail\buffer_builder.hpp (4450, 2023-05-25)
3rdparty\lexy\include\lexy\_detail\code_point.hpp (12024, 2023-05-25)
3rdparty\lexy\include\lexy\_detail\config.hpp (4914, 2023-05-25)
3rdparty\lexy\include\lexy\_detail\detect.hpp (1056, 2023-05-25)
3rdparty\lexy\include\lexy\_detail\integer_sequence.hpp (1844, 2023-05-25)
3rdparty\lexy\include\lexy\_detail\invoke.hpp (2156, 2023-05-25)
3rdparty\lexy\include\lexy\_detail\iterator.hpp (6409, 2023-05-25)
3rdparty\lexy\include\lexy\_detail\lazy_init.hpp (5468, 2023-05-25)
3rdparty\lexy\include\lexy\_detail\memory_resource.hpp (4093, 2023-05-25)
3rdparty\lexy\include\lexy\_detail\nttp_string.hpp (5341, 2023-05-25)
... ...

![License MIT]( ![Version]( [![conan Ubuntu](]( [![conan Windows](]( [![ros1](]( [![ros2](]( # BehaviorTree.CPP 4.2

This __C++ 17__ library provides a framework to create BehaviorTrees. It was designed to be flexible, easy to use, reactive and fast. Even if our main use-case is __robotics__, you can use this library to build __AI for games__, or to replace Finite State Machines. There are few features which make __BehaviorTree.CPP__ unique, when compared to other implementations: - It makes __asynchronous Actions__, i.e. non-blocking, a first-class citizen. - You can build __reactive__ behaviors that execute multiple Actions concurrently (orthogonality). - 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. - You can statically link your custom TreeNodes or convert them into __plugins__ and load them at run-time. - It provides a type-safe and flexible mechanism to do __Dataflow__ between Nodes of the Tree. - It includes a __logging/profiling__ infrastructure that allows the user to visualize, record, replay and analyze state transitions. ## Documentation and Community You can learn about the main concepts, the API and the tutorials here: If the documentation doesn't answer your questions and/or you want to connect with the other **BT.CPP** users, visit ## Previous version Version 3.8 of the software can be found in the branch [v3.8]( That branch might receive bug fixes, but the new features will be implemented only in the master branch. # GUI Editor Editing a BehaviorTree is as simple as editing a XML file in your favourite text editor. If you are looking for a more fancy graphical user interface (and I know you do) check [Groot2]( out. ![Groot screenshot](docs/groot-screenshot.png) # How to compile **BT.CPP** requires a compile that supports c++17. Three build systems are supported: - **catkin**, if you use ROS - **colcon (ament)**, if you use ROS2 - **conan** otherwise (Linux/Windows). - **straight cmake** if you want to be personal responsible for depndencies :) Compiling with [conan]( Assuming that you are in the **parent** directory of `BehaviorTree.CPP`: ``` mkdir build; cd build conan install ../BehaviorTree.CPP --output-folder=. --build=missing cmake ../BehaviorTree.CPP -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake cmake --build . --parallel ``` If you have dependencies such as ZeroMQ and SQlite already installed and you don't want to use conan, simply type: ``` mkdir build; cd build cmake ../BehaviorTree.CPP cmake --build . --parallel ``` If you want to use BT.CPP in your application, please refer to the example here: . # Commercial support Are you using BT.CPP in ... ...