RoboticExplorationLab/TrajectoryOptimization.jl

A fast trajectory optimization library written in Julia

解決する課題

軌道最適化問題は、一般的な非線形計画法 (NLP) ソルバーでは効率的に扱えない独自の構造を持っています。このパッケージは、ソルバーがその構造を活用できるようにする専用のインターフェースと評価手法を提供し、計算効率を劇的に向上させます。また、すべてのダイナミクス、コスト、制約関数がJuliaのForwardDiff.jlを通じて自動的に微分されるため、ユーザーは手動で導関数を記述する必要がありません。

仕組み

TrajectoryOptimization.jlは、軌道最適化問題の定義と評価のみに焦点を当てた軽量なパッケージです。ソルバーは含まれておらず、代わりに独立したソルバーパッケージ(Altro.jlなど)が実装するインターフェースを定義します。このパッケージは問題をセットアップするための便利なAPIを提供し、その評価手法のほぼすべてがメモリ割り当てゼロで、速度のために高度に最適化されています。ユーザーはダイナミクス、コスト、制約を関数として指定し、パッケージは自動微分を使用して導関数を計算します。

対象ユーザー

このパッケージは、特にロボット工学や制御の分野で軌道最適化に取り組む研究者やエンジニア向けです。効率的な問題評価を活用できるカスタムソルバーを構築またはテストしたい方、あるいはJuliaで軌道最適化問題をクリーンかつモジュール化された方法で定式化したいユーザーにとって特に有用です。

ハイライト

  • 軌道最適化問題を定義するためのクリーンなAPIを提供。
  • 評価手法は極めて高速で、メモリ割り当てがほぼゼロ(以前のバージョンより最大100倍高速)。
  • ForwardDiff.jlを使用してダイナミクス、コスト、制約を自動的に微分するため、手動での導関数計算が不要。
  • ソルバーから分離されており、異なるソルバーパッケージがそのインターフェースを実装可能(例: Altro.jl)。
  • 柔軟性を高めるためにモジュール化されたパッケージ(RobotDynamics.jl, Altro.jl, RobotZoo.jl, TrajOptPlots.jl)に分割。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト