はじめに
はじめまして,制御初心者 兼 永遠の数理最適化初心者 兼 最適化ツール素人のざきまつです.
今回は,acadosをWindows11に入れてみたので,それの備忘録として書いておこうという記事です.
今まで別のものを使っていたのですが,サポートが終了していることから,サポートがまだ続いているツールに乗り換えたほうがいいと思い,今回ドローンの最適制御でよく使われているacadosを導入したという経緯になります.
acados - Fast and embedded solvers for real-world applications of nonlinear optimal control.
調べてみたところ,ACAODO Toolkitの後継に当たるそうですね.
ACAODO Toolkit - Toolkit for Automatic Control and Dynamic Optimization
本記事の目標は,とりあえずインストールして動くことを確認しようといった感じです.
後々,MacOSやLinuxでの導入方法について記述する予定でございます.
「なんだこのクソみたいなタイトルは」と思った人,書いた張本人の僕も思っています.
それでは,やっていきましょうか.
Installation
Requirements
以下のソフトウェアが必要です,インストールしておいてください.
- MATLAB
- Windows Git Client
- CMake for Windows (version <= 3.31.8)
- MinGW-w64
Clone acados from GitHub
acadosを設置したいフォルダの中で以下のスクリプトを実行してください.
git clone https://github.com/acados/acados.git
cd acados
git checkout v0.4.5
git submodule update --recursive --init
v0.5.0 (latest) を入れようとした場合,最新版のblasfeo
とhpipm
が互換性を持っておらず,CMakeを走らせたときにエラーが発生するので,v0.4.5以前のacadosを入れると安心です.
(2025/07/18 現在)
Prepare acados build (minGW)
- MATLABのアドオンである”MATLAB Support for MinGW-w64 C/C++/Fortran Compiler”をインストール
その後,以下について確認してください.
-
cmake.exe
へのpathが通っているか確認.デフォルトのままだと,pathはC:\Program Files\CMake\bin
-
mingw32-make.exe
へのへのpathが通っているか確認.デフォルトのままだと,pathはC:\ProgramData\MATLAB\SupportPackages\<matlab_version>\3P.instrset\mingw_w64.instrset\bin
(<matlab_version>
はインストールしているMATLABのバージョンを入力すること)
Automatic build of acados (minGW)
<acados_root_folder>/interfaces/acados_matlab_octave
にて,以下のスクリプトを実行.
acados_install_windows()
このコマンドでは通常設定のbuildが走り,casadi
とterra render
が自動的にインストールされます.
Try a MATLAB example
まず,MATLABを起動します.
起動後,mex -setup
を実行し,出力に従ってMinGW64 Compiler (C)
を使用するように設定します.
その後, <acados_root_folder>/examples/acados_matlab_octave
に移動し,以下のスクリプトを実行.
acados_env_variables_windows
最後に, <acados_root_folder>/examples/acados_matlab_octave/getting_started
に移動し,以下のスクリプト実行.
minimal_example_ocp
実行が成功すると,以下のような出力が得られます.人によって変わるかも.
Trouble shooting
Cmake Error
-- Configuring incomplete, errors occurred!
次を使用中のエラー: acados_install_windows (行 62)
cmake command failed. Command was:
cmake.exe -G "MinGW Makefiles" -DACADOS_INSTALL_DIR=%ACADOS_INSTALL_DIR% -DBUILD_SHARED_LIBS=OFF
-DACADOS_WITH_OSQP=OFF ..
CMakeのバージョンが古い or 4.0以上のバージョンが入っています.cmake version 3.31.8
を入れてください.4.0以上だとexternal/blasfeo
への互換性がなく,buildができないです.
CasADi Error
次を使用中のエラー: check_acados_requirements (行 93)
Sorry, we could not set up CasADi for your system, please try manually\n.Instructions can be found on
https://web.casadi.org/get/\nWe recommend using CasADi version3.x.x
エラー: acados_install_windows (行 100)
check_acados_requirements(true);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CasADiを自動でインストールできなかったようです.acadosはbuild中に自動でCasADiをインストールするようになっていますが,何かしらが原因でできていないようです.
please try manually\n.Instructions can be found on
https://web.casadi.org/get/\nWe recommend using CasADi version3.x.x
とあるので,3.x.x
のCasADiをacados/external/casadi-matlab
に手動で入れてください.
その後,再度acados_install_windows()
を実行してください.うまくいくと,以下のような出力が得られます.
おわりに
いかがでしたか?
死ぬほどエラー吐きまくって何とか導入できたのですが,正しく進めるとまぁこんな簡単に入るんですね.
見てください,この苦労.
まぁ,そのうち使い方とかも書きたいですね.
それでは,また今度.