※記事内に商品プロモーションを含むことがあります。
はじめに
Windows環境にJuliaと経路最適化ソルバALTROを導入する方法を備忘録として残します。
ALTRO (Augmented Lagrangian TRajectory Optimizer) は、2019年にスタンフォード大学のTaylor A. Howell氏らが発表した経路最適化ソルバです。このソルバには、iLQR (iterative Linear Quadratic Regulator) とActive-Set Projection Methodを組み合わせた手法が実装されています。
この記事ではALTROのアルゴリズムには触れず、JuliaとALTROをインストールし、サンプルのプログラムを動かすところまでまとめています。
環境
OSはWindows 10 Homeとし、使用したライブラリ等のバージョンは以下の通りです。
- Julia v1.7.2 64bit
- TrajectoryOptimization v0.7.0
- ALTRO v0.7.0
- RobotDynamics v0.4.6
- RobotZoo v0.3.1
- StaticArrays v1.4.3
TrajectoryOptimizationは最適化問題を定義する(最適化モデリングツール)ライブラリであり、ALTROはソルバーです。また、RobotDynamicsとRobotZooは動的システムを記述するためのライブラリです。いずれもALTROの開発元であるRoboticExplorationLabが提供しています。なお、これらのライブラリはTrajectoryOptimizationのv0.2以前はTrajectoryOptimizationに集約されていましたが、現在は分割されています。
余談ですが、altroはイタリア語で「他の」(other)という意味を持ちます。
JuliaとALTROのインストール
まず、Juliaを以下の公式サイトからダウンロードしてインストールします。
The Julia Programming Language
このとき、Juliaのパスを通しておくと後々便利です。
次に、ALTROと関連するパッケージをインストールします。Juliaのターミナル画面を起動します。]
を押すと、パッケージマネージャモードというパッケージをインストールできるモードに切り替わります。パッケージマネージャモードでは、プロンプトがjulia>
から(@v1.7) pkg>
のように変わります。
この状態でadd [package name]
を実行すると、パッケージがインストールされます。必要なパッケージをすべてインストールします。
|
|
なお、TrajectoryOptimization.jl
のGitHubには、以下でインストールするとあります。
|
|
しかし、これを試したところエラーとなりました。
|
|
Julia 1.0以降では、上記のコマンドでインストールするのは不可となり、パッケージマネージャを使うように仕様が変更されたようです。
サンプルスクリプトの実行
続いて、サンプルスクリプトを実行します。RoboticExplorationLabのリポジトリから、以下のquickstart.jl
(ハッシュ:31bc8c65a477)をローカルに保存します。
quickstart.jl (RoboticExplorationLab_Altro.jl)
次にPowerShellを起動し、julia quickstart.jl
で保存したスクリプトを実行します。実行に成功した場合、以下のように表示されます。
|
|
参考
- Robotic Exploration Lab (GitHub)
- Altro.jl Documention
- Taylor A. Howell, Brian E. Jackson & Zachary Manchester, ALTRO: A Fast Solver for Constrained Trajectory Optimization, (2019).