Control Barrier Function(CBF) implementation for quadrotor navigation
We use the standard CBF QP formulation,
where,
In this repository, this QP is solved using CVXOPT.
The parameter
![]() α = 0.1 |
![]() α = 1.0 |
![]() α = 10.0 |
Note that this code has only been tested with ROS-Noetic on Ubuntu 20.04. It is assumed that you already have a complete ROS installation. Also, ensure that CVXOPT is installed.
-
(optional) Set up a catkin workspace
cd mkdir -p catkin_ws/src cd catkin_ws catkin init -
Clone this repository in the workspace
cd catkin_ws/src git clone https://github.com/Arcane-01/cbf-quadrotor-navigation.git . -
Build the workspace
cd ../ catkin build source devel/setup.bash
-
To launch the Gazebo simulation with Bebop and CBF node, run the following command:
bash run_cbf_quadrotor_navigation.sh <world_name><world_name>: Gazebo world file fromcbf/worlds(defaults to env4)
-
Once the CBF node has been initialized, you can begin navigation by setting a 2D Nav Goal in RViZ.
- Singletary et al., “Comparative Analysis of Control Barrier Functions and Artificial Potential Fields for Obstacle Avoidance” arXiv





