This package includes some BehaviorTree.CPP v4 Nodes for MoveIt2.
This is clearly inspired by MoveItPro which is a closed source behavior development platform for robotic arms. But with the Tools of BehaviorTree.CPP v4 and Groot2 we only need the power of additional Nodes to create a more open and acessible move to Behavior Trees also in the world of robotic arms.
This package includes the Node implementation as header only files.
To add a new Node create a new header file add it to the bt_moveit2_nodes.hpp
and compile with colcon.
Currently Available Nodes:
- PlanToPose
- Input: PoseStamped, Planing Group
- Output: RobotTrajectory
- PlanToPoseCartesian
- Input: PoseStamped, Planing Group
- Output: RobotTrajectory
- PrintPose (Debugging)
- Input: PoseStamped
- SetPose
- Input: x,y,z,qx,qy,qz,qw,frame_id
- Output: PoseStamped
- ExecutePlan:
- Input: RobotTrajectory, Planing Group
- MoveToPose
- Input: PoseStamped, Planing Group
This package includes a example behaviortree executor loading the given nodes into a factory.
The Node reads all xml files in the tree
folder and searches for the main.xml
Tree to execute.
Place your tree in this folder or change the folder path in config/behavior_tree_executor.yaml
.
Then after building start:
ros2 launch behavior_tree_executor behavior_tree_executor.launch.py
Feel free use and contribute new Nodes to the Repository or improve the Nodes. I hope we can start something open source to advance the use of Behavior Trees in the work with Robotic Arms.