3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windowsでacadosをドスドス(導入だけ)

Last updated at Posted at 2025-07-18

はじめに

はじめまして,制御初心者 兼 永遠の数理最適化初心者 兼 最適化ツール素人のざきまつです.
今回は,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

以下のソフトウェアが必要です,インストールしておいてください.

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) を入れようとした場合,最新版のblasfeohpipm が互換性を持っておらず,CMakeを走らせたときにエラーが発生するので,v0.4.5以前のacadosを入れると安心です.
(2025/07/18 現在)

Prepare acados build (minGW)

  1. MATLABのアドオンである”MATLAB Support for MinGW-w64 C/C++/Fortran Compiler”をインストール

mingw_w64.png

その後,以下について確認してください.

  • 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のバージョンを入力すること)

path.png

Automatic build of acados (minGW)

<acados_root_folder>/interfaces/acados_matlab_octave にて,以下のスクリプトを実行.

acados_install_windows()

このコマンドでは通常設定のbuildが走り,casaditerra render が自動的にインストールされます.

Try a MATLAB example

まず,MATLABを起動します.
起動後,mex -setup を実行し,出力に従ってMinGW64 Compiler (C) を使用するように設定します.

setup.png

その後, <acados_root_folder>/examples/acados_matlab_octave に移動し,以下のスクリプトを実行.

acados_env_variables_windows

最後に, <acados_root_folder>/examples/acados_matlab_octave/getting_started に移動し,以下のスクリプト実行.

minimal_example_ocp

実行が成功すると,以下のような出力が得られます.人によって変わるかも.

result.png

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() を実行してください.うまくいくと,以下のような出力が得られます.

success.png

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

実行が成功すると,以下のような出力が得られます.人によって変わるかも.

result_wsl.png

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

おわりに

いかがでしたか?
死ぬほどエラー吐きまくって何とか導入できたのですが,正しく進めるとまぁこんな簡単に入るんですね.
見てください,この苦労.

まぁ,そのうち使い方とかも書きたいですね.

それでは,また今度.

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?