tkkim-robot/safe_control
Safety-critical controllers for single/multi robotic navigation: CBF-QP, MPC-CBF, and etc.
What it solves
safe_control is a Python library designed to ensure safety-critical navigation for robots. It provides a unified codebase to prevent collisions with both known and unknown obstacles, including dynamic obstacles, while allowing robots to follow waypoints or track trajectories.
How it works
The library implements various Control Barrier Function (CBF) based controllers and safety filters. It uses mathematical constraints to ensure the robot stays within a "safe set" of states. Key implementations include:
- Positional Controllers: CBF-QP, MPC-CBF, and Optimal-Decay CBF for collision avoidance.
- Safety Shielding: The
gatekeeperalgorithm, which acts as a filter between a nominal controller and a backup controller to guarantee safety over infinite time. - Dynamics Support: It supports a wide range of robot models, from simple integrators and unicycles to complex quadrotors, VTOLs, and dynamic bicycle models (including drifting cars).
- Sensing Simulation: It simulates RGB-D camera sensors with limited fields of view to handle online detection of unknown obstacles.
Who it’s for
This library is for robotics researchers and engineers developing safety-critical control systems for autonomous vehicles, drones, and multi-agent robotic systems.
Highlights
- Diverse Robot Support: Compatible with various dynamics including kinematic/dynamic bicycle models and 3D quadrotors.
- Dynamic Obstacle Avoidance: Implements advanced CBFs like C3BF and DPCBF for moving obstacles.
- Multi-Agent Capability: Supports navigation for both homogeneous and heterogeneous robot teams.
- Superellipsoid Obstacles: Allows the approximation of rectangular obstacles using differentiable superellipsoids.
- Interactive Visualization: Includes real-time plotting and animation tools for simulation.
Related
- Project
- Project
- Project
- Project
- Project