Skip to content

borodziejciesla/pcc-cbf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Probabilistic Colision Cone Control Barrier Function (PCC-CBF)

Implementation of Robust Colision Cone Control Barrier Function for mobile robots, with following kinematics models:

Unicycle Model

Kinematic Model

Bicycle Model

Kinematic Model

Where $a$ and $\delta$ are controll inputs.

Base Controller

Base controller trajectories:

collision_cone

Distance between robots:

collision_cone

Control Barrier Functions

Colision Cone Conrtol Barrier Function (C3BF)

Colision Cone Control Barrier Function is defined in following way:

c3bf

Where $p_r$ and $v_r$ are relative position and velocity of robot and obstacle - as it is presented in figure below.

collision_cone

And are defined in following way:

c3bf c3bf

To stay in safe space control needs to met following condition:

trajectories

Where derivative is defined as:

trajectories

Example trajectory of two robots in colision course is presented below:

Distance between robots (each robot has 0.5 meter radius):

trajectories

Probabilistic Colision Cone Conrtol Barrier Function (PC3BF)

Assume that $p_r \sim (\hat{p}{r}, \Sigma{p})$ and $v_r \sim (\hat{v}{r}, \Sigma{v})$ then uncertain Control Barrier Function has form:

c3bf

Where $\delta_{p} \sim (0, \Sigma_{p})$ and $\delta_{v} \sim (0, \Sigma_{v})$.

And derivative has form:

c3bf

This leads to inequality condition:

c3bf

Where:

c3bf

c3bf

c3bf

Taking it simply it is $c_{h}(x,u) \sim (\mu_{h}, \sigma_{h}^{2})$.

So finally w need to check if random variable $c_{h}(x,u) \geq 0$ with some required probbaility $1-\delta$. This condition can be written as:

c3bf

Example trajectory of two robots in colision course, for different $\alpha$ values, is presented below:

Unicycle model

trajectories

trajectories

trajectories

Bicycle model

trajectories

trajectories

trajectories

How to run?

Docker

Build image:

docker build -t ros2_dev:humble .

Run docker container:

xhost +local:docker

docker run -it \
    --name ros2-rc3bf \
    --env="DISPLAY" \
    --env="QT_X11_NO_MITSHM=1" \
    --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
    --volume="${HOME}/.Xauthority:/root/.Xauthority:rw" \
    --env="XAUTHORITY=/root/.Xauthority" \
    --volume="/yout/paths/robust_c3cbf:/dev/ros_ws:rw" \
    --net=host \
    ros:humble \
    bash

Build ROS2 Node

colcon build
source install/setup.bash

Run

This command runs two robot nodes on collision trajectories.

ros2 launch rc3bf two_robots_straight_line.launch.py

About

Implementation of Probabilistic Colision Cone Control Barrier Function

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors