Complementarity Constraint
- 別名: complementarity condition, contact complementarity
- カテゴリ: Planning & manipulation › Trajectory optimisation
- タグ: contact, trajectory-optimization, nonlinear-programming, physics-simulation, legged-robots
積がゼロとなる一対の非負条件であり、正になれるのは高々一方の量だけである。すき間がゼロのときにだけ力が存在する接触のモデル化に用いられる。
定義
相補性制約(complementarity constraint)は、どちらも非負でなければならず、かつ積がゼロでなければならない 2 つの量を結びつけるもので、0 ≤ a ⊥ b ≥ 0 と書かれる。どの解においても少なくとも一方はゼロであり、一方が正になれるのは他方がゼロにとどまっている間だけである。この構造は、明示的な切り替え変数なしにシステムが 2 つの状態の間を切り替わるときに必ず現れ、線形相補性問題(LCP)や相補性制約付き数理計画の基礎となっている。
剛体接触はロボティクスにおける標準的な例である。足や指と表面との距離 φ(q) は非負でなければならず、表面は押すことしかできないので法線方向の接触力 λ も非負でなければならず、さらに力がゼロでなくなれるのは距離がゼロのときだけである。すなわち 0 ≤ φ(q) ⊥ λ ≥ 0 となる。クーロン摩擦は、すべり速度と、摩擦力が摩擦円錐の縁にあるかどうかを結びつける追加の相補性条件で書くことができる。Stewart と Trinkle、Anitescu と Potra の手法を含め、1990 年代に開発されたタイムステッピング方式の剛体シミュレータは、各ステップで LCP または関連する相補性問題を解いて接触力積を求める。軌道最適化では、Posa、Cantu、Tedrake(2014)がこれらの制約を直接転写法の問題に直接加えた。これにより、接触の順序を事前に指定しなくても、最適化器がいつどこで接触が生じ、離れるかを選ぶ。
このアプローチは、混合整数による定式化が接触のオン・オフに用いる整数変数を避けられるが、それ自体の難しさをもたらす。相補性制約は非凸であり、標準的な非線形計画ソルバーが前提とする制約想定を満たさないため、ソルバーが停滞したり収束が遅くなったりすることがある。一般的な対処法は、積の条件を φλ ≤ ε に緩和して一連の求解の中で ε を締めていくこと、積をペナルティとしてコストに移すこと、あるいは相補性問題向けに設計されたソルバーを使うことである。良い初期推定が非常に重要であり、そのためコンタクトインプリシット最適化器はより単純な解からウォームスタートされることが多い。
重要な理由
接触は脚式移動とマニピュレーションを特徴づける要素であり、相補性制約は剛体接触を厳密に式で表す標準的な方法である。これによりシミュレータは接触力を一貫して計算でき、最適化器は、エンジニアが歩容や接触の順序を前もって固定しなくても、接触のタイミングを見つけ出せる。
主な用途
- 脚式ロボットとマニピュレーションのためのコンタクトインプリシット軌道最適化
- 接触と摩擦を伴うタイムステッピング方式の剛体シミュレーション
- 着地、跳躍、衝撃の計画
- 関節の限界やケーブルなどの片側拘束のモデル化
- 接触の微分可能な物理定式化
実際の使われ方
あるエンジニアが、高い所から落とされた四脚ロボットの着地を計画する。軌道最適化には数ミリ秒ごとにノット点を置く直接転写法を用い、各足と各ノットについて、地面からの足の高さと鉛直方向の床反力を変数として加え、高さ ≥ 0、力 ≥ 0、高さ × 力 ≤ ε という条件を課す。最初の求解では緩い ε と単純な落下運動からの初期推定を使い、その後の求解ではそれぞれ ε を締め、前回の解からウォームスタートする。最終的な計画は、どの足が最初に接地し、力がどのように立ち上がるかを示す。エンジニアは、残った相補性の違反が十分に小さく、計画が離れた位置で働く力に頼っていないことを確認する。
よくある誤解
- 相補性制約によって接触計画は凸になる — 整数変数はなくなるが、相補性制約は非凸であり、標準的なソルバーにとって数値的に難しい
- 緩和した積が小さい解は物理的に厳密である — φλ ≤ ε のもとでは、最適化器が小さな距離での小さな力を利用できるため、ε と残った違反量を確認しなければならない
- すべての物理エンジンは接触を相補性問題として解く — 多くは厳密な相補性ではなく、ペナルティ接触モデルやコンプライアント接触モデル、あるいは凸緩和を使う
知っておくべき人
- 軌道最適化と脚式移動のエンジニア
- 物理シミュレーションの開発者
- 接触を通じた計画に取り組むマニピュレーションの研究者
- ロボティクスにおける数値最適化の実務者
関連技術
- 線形相補性問題(Linear Complementarity Problem、LCP)
- MPCC(Mathematical Program with Complementarity Constraints)
- IPOPT
- Drake
- PATH ソルバー(PATH Solver)
関連用語
- Contact mode
- Mixed-Integer Programming
- Direct Collocation
- Penalty-Based Contact Model
- Coulomb Friction
- Warm Start
関連プロジェクト
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- ProtoMotions: NVIDIA framework for training simulated digital humans and humanoid robots on GPUs
- PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
- PHC: Physics-based perpetual humanoid controller with fail-state recovery for real-time avatars
- SOFA Framework: Real-time physics simulation framework for medical simulation and soft tissue modeling
- Extreme Parkour with Legged Robots: RL system for legged robot parkour trained in under 20 hours