Control Barrier Function
- 別名: CBF, barrier function, CBF-QP
- カテゴリ: Control › Feedback control
- タグ: safety, nonlinear-control, optimization, quadratic-programming, safety-filter, collision-avoidance
符号によって安全集合を示すロボットの状態の関数。安全集合の内側から出発したシステムがそこから決して出ないことを証明できるように、制御入力を制約するために使われる。
定義
制御バリア関数(control barrier functions、CBF)は、動的システムに安全制約を課すための非線形制御理論の道具である。安全集合は、状態のスカラー関数 h(x) が非負となる領域として記述される。たとえば障害物までの距離からマージンを引いたものである。制御バリア関数は、h がどれだけ速く減少してよいかについての条件を加える。すなわち、制御入力は h の時間微分を h 自身のある負の関数より上に保たなければならない。この条件があらゆる時刻で成り立てば、安全集合は前方不変となる。つまり、安全な状態から出発したシステムは安全なままである。
ロボティクスで最もよく使われる定式化は、Aaron Ames らによって 2010 年代半ばに開発された。ダイナミクスが ẋ = f(x) + g(x)u の形をとる制御アフィン系では、バリア条件は制御入力 u について線形である。したがって、各制御ステップで小さな二次計画問題(QP)を解くことで、安全な入力をオンラインで求められる。すなわち、バリア制約とアクチュエータの制限のもとで、望ましいノミナル指令に最も近い入力を求める。
この QP はしばしば安全フィルタと呼ばれる。手動で調整した追従コントローラであれ、プランナであれ、学習済みポリシーであれ、どのコントローラも指令を提案し、CBF-QP は安全制約を満たすのに必要な分だけそれを変更する。CBF は、安定性や追従の目標を表す制御リアプノフ関数(CLF)と自然に組み合わせられる。CLF と CBF を組み合わせた CLF-CBF QP は、安全をハード制約として扱いつつ、性能と安全のトレードオフをとる。
実際の利用ではいくつかの問題が生じる。複雑な幾何形状や高次元のロボットに対して有効なバリア関数を見つけるのは難しいことがある。加速度で指令されるロボットの位置制限のように、制約が入力に直接依存しない場合には、指数型 CBF や高次 CBF などの拡張が必要になる。保証はモデルが正確である範囲でしか成り立たないため、ロバストな変種やデータ駆動の変種は、モデル誤差、入力制限、サンプリング時間を考慮する。CBF 制約はモデル予測制御の問題の中に置くこともでき、そうすればコントローラは現在の状態だけに基づいて動くのではなく、ホライズンにわたって先を見越す。
重要な理由
ロボットはますます人や障害物、そして自身の物理的な限界の近くで動作するようになっており、制御バリア関数は、どのコントローラがノミナル指令を生成するかにかかわらず、それらの制限を課すための数学的根拠のある方法を提供する。安全フィルタは小さな最適化問題であるため、組込みハードウェア上で制御周期に合わせて実行でき、形式的な安全性の議論を純粋に理論的なものではなく実用的なものにする。
主な用途
- 衝突回避 — 移動ロボット、ドローン、ロボットアームを障害物から安全な距離に保つ
- 学習済みポリシーのための安全フィルタ — 強化学習や模倣学習のコントローラからの指令を最小限だけ修正する
- 脚型ロボットとヒューマノイドロボット — 足の接地位置、バランス、自己干渉に制約を課す
- マルチロボットシステム — フォーメーションや群れの中でロボット間の間隔を保つ
- 自動運転 — アダプティブクルーズコントロールで安全な車間距離を保つ
実際の使われ方
チームは通常、障害物までの最小距離、関節の可動範囲、足の接地領域などの安全要件を状態に関する不等式として書くことから始め、それぞれをバリア関数 h(x) に変換する。ロボットの既存のコントローラまたは学習済みポリシーがノミナル指令を生成し、各制御周期で OSQP や qpOASES などの QP ソルバが、すべてのバリア制約とアクチュエータの上下限を満たす最も近い指令を求める。エンジニアは拡張クラス K 関数(多くの場合、h に掛ける単純な線形ゲイン)を調整してフィルタが介入するタイミングの早さを決め、意図的に安全でないノミナル指令でテストして、フィルタが境界を守ることを確認する。制約が競合したり入力が飽和したりすると QP が実行不可能になりうるため、システムには明確に定義されたフォールバック動作も必要である。
よくある誤解
- CBF は実機ロボットの安全を無条件に保証する — 保証は使用したモデルに対して成り立つものであり、モデル化されていないダイナミクス、遅延、入力制限にはロバストな定式化とマージンが必要である
- CBF はメインのコントローラを置き換える — ノミナルコントローラを包むフィルタとして働き、安全集合の境界付近でのみ介入する
- どんな距離関数も有効な CBF になる — その関数はシステムの駆動能力のもとでバリア条件を満たさなければならず、相対次数の高い単純な選択の多くはこれを満たさない
- CBF-QP は常に解ける — 制約が競合したりアクチュエータが飽和したりすると実行不可能になりうるため、フォールバックが必要である
知っておくべき人
- 安全性が重要なロボットコントローラを設計する制御エンジニア
- 学習済みポリシーに安全層を追加するロボット学習の研究者
- ドローンや自動運転車の開発者
- 非線形制御や最適化ベースの制御を学ぶ大学院生
関連技術
- 制御リアプノフ関数(Control Lyapunov Function)
- 二次計画法(Quadratic Programming)
- モデル予測制御(Model Predictive Control)
- 安全フィルタ(Safety Filter)
- Hamilton-Jacobi 到達可能性解析(Hamilton-Jacobi Reachability)
- OSQP
関連用語
関連プロジェクト
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- GTSAM: Factor-graph optimization library powering many modern SLAM backends
- PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
- PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization
- mink: Python inverse kinematics library built on MuJoCo supporting 20+ robot platforms
- NeuPAN: Real-time end-to-end planner that maps raw lidar points directly to robot actions
動画
- Lec 40 Control Barrier Function (CBF): NPTEL - Indian Institute of Science, Bengaluru