Sources https://www.youtube.com/watch?v=kRp3eA09JkM&ab_channel=HummingbirdRobotics https://github.com/thehummingbird/robotics_demos/blob/main/behavior_trees/grasp_place_robot_demo/bt_demo.cpp - https://github.com/polymathrobotics/ros2_behavior_tree_example/tree/main/src/plugins - https://github.com/BehaviorTree/BehaviorTree.CPP/issues/412 - https://github.com/Adlink-ROS/BT_ros2 # Using BT with ROS2 https://www.youtube.com/watch?v=KO4S0Lsba6I&ab_channel=TheConstruct ![[Pasted image 20231005132551.png]] ![[Pasted image 20231005134909.png]] ![[Pasted image 20231005135001.png]] }); ![[Pasted image 20231005135120.png]] ### Move Robot ![[Pasted image 20231005135254.png]] ![[Pasted image 20231005135348.png]] ![[Pasted image 20231005135419.png]] Rotate class ![[Pasted image 20231005135545.png]] main ![[Pasted image 20231005135626.png]] ![[Pasted image 20231005135643.png]] ## Definitions - Sequence: can be considered as a logical AND gate - Fallback: can be considered as a logical OR gate # Library Description Alternatively you can use the python library: https://github.com/splintered-reality/py_trees_ros/tree/devel ## Behaviortree Factory Here the behaviortree logic is stored and managed. Nodes that implement actions or conditions need to be registered here such that they can be executed. The BehaviorTree Factory is the place where the [[Business Logic]] is implemented. # BehaviorTree Design ![[Pasted image 20231005172207.png]]