はじめに
はじめまして,制御初心者 兼 永遠の数理最適化初心者 兼 最適化ツール素人のざきまつです.
今回は,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での導入方法について記述する予定でございます.
「なんだこのクソみたいなタイトルは」と思った人,書いた張本人の僕も思っています.
それでは,やっていきましょうか.
追記(2025/07/22)
WSL2(Ubuntu22.04)を使った導入方法を追記しました.
追記にあたり,絶望くん(@PozihameBaystar)にいくつかアドバイスをいただきました.
ここに感謝の意を表します,ありがとうございました.今度ご飯行こうね.
追記(2025/08/14)
WSL2での導入で,git clone後の操作に誤りがありました.
ご迷惑をおかけした皆様,大変申し訳ありません.
Windows + MATLAB
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() を実行してください.うまくいくと,以下のような出力が得られます.
Windows + WSL2(Ubuntu 22.04)
Requirements
MATLABのやつと大体一緒です.CMakeは,apt installで入れるといい感じのバージョンであるv3.22.xが入ってくれます.
- Windows Subsystem for Linux 2 (Ubuntu 22.04)
- CMake
Preparation
最初に,アップデートが可能なパッケージのリストを更新.できればパッケージ類の更新も行う.
sudo apt update # Update the list of upgratable packages
sudo apt -y upgrade # Upgrade the packages
cmake, build-essentials, pip, virtualenvをインストール
sudo apt install cmake build-essential python3-pip python3-virtualenv
native環境で動かしたい場合は,python3-virtualenvいらないかもしれない.ただ,使わなければいい話なので手順に従うのがおすすめ.
Clone, Build and Install acados
まずは,acadosのworkspaceを作成します.環境をぐちゃぐちゃにしないための配慮です.
「え,私はちゃんとわかるからそんなことしない」って?どうぞどうぞ...どちらにせよ自己責任でお願いします.
mkdir -p acados_ws
その後,acados_ws に移動し,acadosのrepositoryのクローンとsubmodule登録を行います.
cd acados_ws/
git clone https://github.com/acados/acados.git
cd acados
git checkout v0.4.5
git submodule update --recursive --init
このとき,git checkout で必ずバージョン指定を行うこと.v0.4.5までは動作確認済み(2025/07/22 現在)
build フォルダを作成し移動,CMakeでビルドします.
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DACADOS_WITH_OSQP=ON -DACADOS_WITH_QPOASES=ON -DHPIPM_BLASFEO_LIB=ON
make install -j4
Setup Python Interface
acados_templateを開発者モードでインストールします.通常のpip3 install ~をしないようにご注意を.
cd ~/acados_ws/acados
pip3 install -e interfaces/acados_template
コンパイルされた共有ライブラリのpathを,以下の手順で~/.bashrcに追加します.
- vimで
~/.bashrcを開く
sudo vim ~/.bashrc
- 以下のスクリプトを記述
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/acados_ws/acados/lib
export ACADOS_SOURCE_DIR=$HOME/acados_ws/acados
- 保存してvimを終了,以下のスクリプトを実行して変更を反映
source ~/.bashrc
最後に,例題の実行・動作確認を行ってください.
cd ~/acados_ws/acados/examples/acados_python/getting_started
python minimal_example_ocp.py
実行が成功すると,以下のような出力が得られます.人によって変わるかも.
Trouble shooting
plt.show() error
/home/control-lab/acados_ws/acados/examples/acados_python/getting_started/utils.py:78: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown
plt.show()
matplotlibのバックエンドがGUI法事に非対応なのが原因です.以下のコマンドを実行することで解決できます.
sudo apt install python3-tk
または,Pythonスクリプト内で明示的に指定してください.
import matplotlib
matplotlib.use("TkAgg") # or "Qt5Agg", if installed
おわりに
いかがでしたか?
死ぬほどエラー吐きまくって何とか導入できたのですが,正しく進めるとまぁこんな簡単に入るんですね.
見てください,この苦労.
まぁ,そのうち使い方とかも書きたいですね.
それでは,また今度.





