forester-bt / forester

unleash the power of behavior trees!
https://forester-bt.github.io/forester/
Apache License 2.0
35 stars 5 forks source link

Combining BT with CBF #37

Open besok opened 1 year ago

besok commented 1 year ago

Control Barrier Functions

besok commented 1 year ago

Here is an example of how CBFs and BTs can be combined. Consider a robot that is moving in a cluttered environment. We want to design a controller that keeps the robot away from obstacles and also ensures that the robot reaches its goal. We can use a CBF to ensure that the robot does not collide with obstacles. The CBF can be defined as a function that maps from the robot's state to a real number. The CBF is designed such that it is positive in the safe set and negative in the unsafe set. The derivative of the CBF is negative semidefinite in the safe set, which ensures that the robot cannot approach an obstacle.

We can then use a BT to control the robot's movement. The BT can be decomposed into a sequence of smaller tasks, such as navigating around obstacles, avoiding collisions, and moving towards the goal. Each task can be implemented as a node in the BT. The BT can then be used to select the appropriate task to execute at each time step.

This hybrid system can achieve both safety and flexibility. The CBF ensures that the robot does not collide with obstacles, while the BT allows the robot to move in a way that is both safe and efficient.

CBFs and BTs are both powerful tools that can be used to control complex systems. They can be used together to create hybrid systems that achieve both safety and flexibility.

mnumanuyar commented 4 months ago

Is this related? https://www.youtube.com/watch?v=sgEBj6vNQVU&list=PLFQdM4LOGDr_vYJuo8YTRcmv3FrwczdKg&index=11

besok commented 4 months ago

Yep, This is basically from here https://www.diva-portal.org/smash/get/diva2:1459984/FULLTEXT01.pdf