Simple-Robotics/aligator
A versatile and efficient C++ library for real-time constrained trajectory optimization
Aligator – ロボティクスのための軌道最適化ライブラリ
これは何か
Aligator は、ロボットやその他の動的システムのための最適制御・軌道最適化問題を定式化し解決するツールを提供する、オープンソースの C++ ライブラリ(Python API 付き)です。ProxDDP や FeasibleDDP などの高速で制約付きのソルバーを実装しており、動作計画、モデル予測制御、最適状態推定に使用できます。
主な機能
| 機能 | 詳細 |
|---|---|
| モデリングインターフェース | C++(または Python 経由)でノードごとに最適制御問題を構築。 |
| ソルバー | 近位 DDP(ProxDDP)と FeasibleDDP。どちらも制約を効率的に処理。 |
| 線形代数バックエンド | ソルバー内で発生する線形システムのための複数の因数分解ルーチン。 |
| 剛体ダイナミクスサポート | Pinocchio ライブラリとの直接統合(解析的導関数を含む)。 |
| Crocoddyl 互換性 | Crocoddyl 軌道最適化ライブラリのフロントエンドとして機能可能。 |
| Python API | Python から定式化のプロトタイプ作成やソルバーの実行が可能。迅速な実験と展開に有用。 |
| 並列/CPU 最適化 | OpenMP ベースの並列化やその他の CPU レベルの調整(上級者向けガイドを参照)。 |
典型的な使用例
- 脚式ロボット、ヒューマノイド、マニピュレーションロボットの動作生成・計画。
- 軌道を高頻度で再計算する必要があるモデル予測制御(MPC)。
- 同じ DDP メカニズムを再利用できる最適状態推定(例:平滑化)。
- クリーンな C++ API と Python バインディングにより、新しい最適制御アルゴリズムの研究。
はじめに
- Conda でインストール(推奨):
conda install -c conda-forge aligator - または、軽量パッケージマネージャー Pixi を使用してソースからビルド:
あるいは、リポジトリをクローンして CMake/Ninja でコンパイルします。pixi run test # 依存関係のインストール、設定、ビルド、テストを実行 - 例を実行 – リポジトリには、問題の定義、ソルバーの作成、最適軌道の取得方法を示す C++ および Python のサンプルプログラムが含まれています。
- 高度な使用法 – CMake 統合、Python 拡張モジュールの作成、並列実行の有効化については、上級者向けガイドを参照してください。
パフォーマンスとベンチマーク
別のリポジトリ aligator‑bench に、他のソルバーとの比較ベンチマークが含まれています。このライブラリは、OpenMP と効率的な線形代数バックエンド(Eigen、mimalloc など)を活用し、リアルタイム使用向けに設計されています。
メンテナー
コアチームは Inria と LAAS‑CNRS に拠点を置き、Willow および Gepetto ラボの貢献者が参加しています。このプロジェクトは寛容な BSD‑2‑Clause ライセンスの下でリリースされています。
引用方法
研究で Aligator を使用する場合は、リポジトリ自体を引用し、ProxDDP アルゴリズムについては README に記載されている IEEE T‑Robotics の論文(2025)を引用してください。
結論: Aligator は、C++ のパフォーマンスと Python の利便性の両方を備えた、高速で制約付きの最適制御ソルバーを必要とするロボティクス研究者やエンジニア向けの、本格的な本番グレードの軌道最適化ライブラリです。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト