Implementation of Behaviour Tree
Development Branch: https://github.com/WATonomous/behaviour-tree
- Behaviour Tree
- Integrate behaviour tree into monorepo infrastructure (wrapping it in a ROS2 node)
- This ROS2 node should be a client of the behaviour tree service
- Test the interface with CARLA simulator
- Iterate and improve
- Integrate behaviour tree into monorepo infrastructure (wrapping it in a ROS2 node)
Current development branch: https://github.com/WATonomous/wato_monorepo/tree/world-modeling-hd-map-bt-service
Goal: Run behaviour tree using HD Map data.
We currently have a rudimentary skeleton of the Behaviour Tree node implemented using ROS2 and py_trees. While functional as a basic testbed (i think), it is not yet suitable for vehicle deployment. The current purpose of this skeleton is to get the behaviour tree setup to run by using the HD Map data (goal position, current position, route list, maybe more...). When it runs properly and we have a solid way to utilize the HD Map data to run the behaviour tree, we can then start refining it and adding more rigidity to the tree.
Current skeleton:
Todos:
- The HD Map service provides bunch of lanelets represented as four-point rectangles (route list) and it needs to be converted into a usable route representation for the tree to use. That way the question nodes and action nodes actually knows what is happening (easily determine if a lanelet is adjacent, easily determine if they are in the correct lane, ...)
- Clean up the behaviour tree before scaling.
- Blue Hexagon: Fallbacks
- Orange Rectangles: Sequences