ProxSuite
ロボット制御と最適化のための高性能QP/LPソルバー
ライセンス
BSD-2-Clause
概要
ProxSuiteは、Inria、ENS Paris、CNRSのWillowチームとSierraチーム(WillowはPinocchioの共同開発も行っています)による高度な最適化ツールボックスで、ロボティクスにおける二次計画(QP)問題と線形計画(LP)問題のための効率的なソルバーを提供します。中核となるProxQPソルバーは新しい主双対近接拡張ラグランジュ法を用いており、モデル予測制御(MPC)、全身制御、軌道最適化で最先端の性能を発揮します。密、疎、混合の問題定式化に対応し、C++とPythonのインターフェースを備えています。
ProxSuiteは、パリのInriaとEcole Normale SuperieureのWillowおよびSierra研究グループが開発した、数値最適化ソルバーのオープンソースコレクションです。中核コンポーネントのProxQPは、主双対近接拡張ラグランジュ法で二次計画問題を解き、悪条件問題や実行不可能な問題でも高速性と数値的堅牢性を両立します。
このツールボックスは密、疎、マトリックスフリーのソルバーバックエンドを提供しており、問題の構造に合わせてソルバーを選べます。高度な機能として、SIMDベクトル化のサポート、以前の解からのウォームスタート、並列でのバッチQP求解、非凸QPの処理、そして学習ベースのアプリケーション向けにQP解を通じて微分する機能があります。
ProxSuiteは、CVXPY、CasADi、そしてPinocchio上に構築されたロボット逆動力学フレームワークTSIDなど、主要な最適化エコシステムにすでに統合されています。pip、conda、Homebrewで配布されており、コアのC++ライブラリに加えてPythonとJuliaのバインディングを備えています。
重要な理由
二次計画はロボット制御の中核です。全身制御器やモデル予測制御から、接触を伴う逆動力学まで幅広く使われます。ProxSuiteのProxQPソルバーは最も難しいQPベンチマークで最先端の性能を発揮し、凸問題と非凸問題の両方を扱えるため、リアルタイムのロボット最適化に欠かせない構成要素です。
解決する課題
リアルタイムのロボット制御器は、悪条件問題や実行不可能な問題であっても、数値的安定性を保証しながら高い頻度で二次計画問題を解く必要があります。ProxSuiteは、高速で数値的に堅牢であり、密、疎、マトリックスフリーの問題定式化を扱える柔軟性を兼ね備えたソルバーを提供します。QPが主問題として実行不可能な場合でも、有用な結果を返します。
主なポイント
- ProxQPソルバーは主双対近接拡張ラグランジュ法を用いて、堅牢にQPを解きます
- 密、疎、マトリックスフリーのバックエンドをサポートし、SIMDベクトル化で最高性能を引き出します
- 非凸QPを扱い、実行不可能な問題に対しては最も近い実行可能解を返します
- CVXPY、CasADi、およびタスク空間逆動力学フレームワークTSIDに統合されています
- pip、conda、Homebrewで入手でき、PythonとJuliaのバインディングを備えています
対象
- MPCや全身制御器を実装するロボット制御エンジニア
- QPソルバーの性能をベンチマークする最適化研究者
- 接触を考慮したリアルタイム制御を必要とする脚式ロボット開発者
- 大規模なQPやLPを解くオペレーションズリサーチの実務者
制限事項
- QPおよびLP問題に特化 — 汎用の非線形計画ソルバーではありません
- 最高性能を得るにはベクトル化フラグ(-march=native)を付けたコンパイルが必要です
- OSQPやqpOASESなどの定評あるソルバーと比べると、比較的新しいプロジェクトです
- バッチ求解やQP微分などの高度な機能は学習曲線が急です