3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ArduPilot SITLをWindowsで爆速セットアップ:国産シミュレータ「箱庭」でラクに可視化・制御する方法

Last updated at Posted at 2025-05-23

「ArduPilotのSITL環境、Windowsで動かすのって正直しんどい……」

って思っていませんか。

  • WSLを入れるだけで一苦労
  • ビルドや依存関係で何度も詰まる
  • 動かした後も「で、どうやって可視化するの?」と立ち止まる

本記事では、そんな悩みを抱えたエンジニア・企画担当の方に向けて、
国産のドローンシミュレータ「箱庭ドローンシミュレータ」 を活用して、“サクサク動いて拡張しやすい”ArduPilot SITLのセットアップ手順を紹介します。

想定読者

  • ArduPilotをPoCやプロトタイピングで使いたい方
  • 実機がなくても制御ロジックを検証したい開発者
  • UnityやWeb連携も含めた「拡張しやすいSITL環境」を探している方

💡ちなみに:PX4でも同じこと、できます

「うちはPX4派なんだけど、箱庭で同じようなことできないの?」

──できます!

箱庭ドローンシミュレータは、オープンソースフライトコントローラの2大巨頭「PX4」「ArduPilot」の両方に対応しているのです。

PX4派の方は、以下の記事をご参照ください:

📖 WindowsでPX4 SITLを超簡単に動かす!箱庭シミュレータの使い方


この記事でできるようになること

  • WSL2上でArduPilot SITLを手軽に試せる
  • Unityでビジュアライズもできる
  • Python APIとの接続で“次のステップ”にも進める

では、早速始めましょう。

💻 Windows環境

必要なものはこれだけです。

ツール 用途 備考
Windows 11 / WSL2 ホスト環境 WSL2は必須(WSL1不可)
Ubuntu 24.04.2 LTS ArduPilotのビルド/実行 WSL2内で動かします
UnityHub/Unity(6.1) 可視化(任意) 自機やセンサの3D表示が可能
Mission Planner MAVLinkの通信確認 QGCでも代替可能ですが相性◎

💡 UnityやMission Plannerは「あとからでも導入可」です。
まずは ArduPilot を動かすところまでサクッと進めるのがポイントです。

🛠 環境セットアップ

まずは、WSL2を起動です!

📦 箱庭ドローンシミュレータ本体

git clone --recursive https://github.com/toppers/hakoniwa-drone-core.git

クローンする場所は、WSL2/Ubuntuのホーム直下に project ディレクトリ作成して、そこで行うのがお勧めです。

クローンおわったら、WSL に docker をインストールしよう!

箱庭Webサーバー

git clone --recursive https://github.com/toppers/hakoniwa-webserver.git

クローンする場所は、WSL2/Ubuntuのホーム直下に project ディレクトリ作成して、そこで行うのがお勧めです。

✈️ ArduPilot本体(ビルドが必要)

ここみて!

クローンする場所は、WSL2/Ubuntuのホーム直下に project ディレクトリ作成して、そこで行うのがお勧めです。

🎮 Unityで可視化したい場合はこちら(任意)

git clone --recursive https://github.com/hakoniwalab/hakoniwa-unity-drone.git

クローンする場所は、Windowsのファイルシステム(例えば /mnt/c)直下に project ディレクトリ作成して、そこで行うのがお勧めです。

クローン終わったら、Unity Hubで下図のように Add をクリックして、

image.png

hakoniwa-unity-drone/simulation を追加してください。

image.png

成功すると、下図のようになります。

image.png

そして、simulation をクリックすると、Unityが起動します。(何回か再起動メッセージがでますが、めげずにがんばりましょう)

起動後、下図のように、プロジェクトビューから、Scenes/WebAvatar をクリック!

image.png

ヒエラルキービューの HakoniwaWeb を選択して、Inspectorビューの Server Uri のIPアドレスを、WSL2のIPアドレスを指定します。

WSL2のIPアドレスは、Ubuntu 上で ifconfigeth0 のものを入力します。

例:

tmori@WinHako:~/qiita$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.31.9.252  netmask 255.255.240.0  broadcast 172.31.15.255

ちなみに、デフォルトで動くドローンはこちらっす。

image.png

お疲れさまでした、さっそく動かしてみましょう

さー、やりましょう。

まずは、Mission Planner 起動だ!

image.png

お次は、Ardupilot SITL 起動だー。

hakoniwa-drone-core に、Ardupilot SITL 起動スクリプトおいてありますから、以下のように起動してください。

bash tools/ardupilot/run.bash <ardupilot-path> <HOST_IP>

<ardupilot-path> には、Ardupilotのパスを指定してください。
<HOST_IP> には、ホストPCのIPアドレスを指定してください。(power shell 起動して ipconfig で確認できます)

例:

tmori@WinHako:~/project/hakoniwa-drone-core$ bash tools/ardupilot/run.bash ../ardupilot  192.168.2.156

成功すると、こんな感じで、Ardupilotの起動ログが出力されます。

SIM_VEHICLE: Start
SIM_VEHICLE: Killing tasks
SIM_VEHICLE: Starting up at SITL location
SIM_VEHICLE: WAF build
SIM_VEHICLE: Configure waf
SIM_VEHICLE: "/home/tmori/project/ardupilot/modules/waf/waf-light" "configure" "--board" "sitl"
:

ラスボス・箱庭ドローンシミュレータを起動だ!

以下を実行してください。

bash hakoniwa-drone-core/docker/run.bash
bash hakoniwa-drone-core/docker/tools/run-hako.bash ardupilot

成功すると、Ardupilot と Mission Planner が反応します。

Ardupilot のログはこんな感じです。

Detected vehicle 1:1 on link 0
link 1 OK
online system 1
STABILIZE> Mode STABILIZE
AP: Initialising ArduPilot
AP: ArduCopter V4.7.0-dev (5b317b46)
AP: 35ca8cc61f9c43a581467a70fdde2c6d
AP: Frame: QUAD/X
AP: ArduCopter V4.7.0-dev (5b317b46)
AP: 35ca8cc61f9c43a581467a70fdde2c6d
AP: Frame: QUAD/X
AP: RCInput: decoding UDP (Pulses)
AP: Calibrating barometer
AP: ArduCopter V4.7.0-dev (5b317b46)
AP: 35ca8cc61f9c43a581467a70fdde2c6d
AP: Frame: QUAD/X
Got COMMAND_ACK: REQUEST_MESSAGE: ACCEPTED
Got COMMAND_ACK: REQUEST_MESSAGE: ACCEPTED
Got COMMAND_ACK: REQUEST_AUTOPILOT_CAPABILITIES: FAILED
Got COMMAND_ACK: REQUEST_AUTOPILOT_CAPABILITIES: FAILED
AP: ArduCopter V4.7.0-dev (5b317b46)
AP: 35ca8cc61f9c43a581467a70fdde2c6d
AP: Frame: QUAD/X
Got COMMAND_ACK: DO_SEND_BANNER: ACCEPTED
AP: ArduCopter V4.7.0-dev (5b317b46)
AP: 35ca8cc61f9c43a581467a70fdde2c6d
AP: Frame: QUAD/X
Got COMMAND_ACK: DO_SEND_BANNER: ACCEPTED
AP: ArduCopter V4.7.0-dev (5b317b46)
AP: 35ca8cc61f9c43a581467a70fdde2c6d
AP: Frame: QUAD/X
Got COMMAND_ACK: DO_SEND_BANNER: ACCEPTED
AP: ArduCopter V4.7.0-dev (5b317b46)
AP: 35ca8cc61f9c43a581467a70fdde2c6d
AP: Frame: QUAD/X
Got COMMAND_ACK: DO_SEND_BANNER: ACCEPTED
paramftp: bad count 1349 should be 1339
FTP reply for mavlink component 190
AP: ArduCopter V4.7.0-dev (5b317b46)
AP: 35ca8cc61f9c43a581467a70fdde2c6d
AP: Frame: QUAD/X
AP: Barometer 1 calibration complete
AP: Barometer 2 calibration complete
Init Gyro**AP: ArduCopter V4.7.0-dev (5b317b46)
AP: 35ca8cc61f9c43a581467a70fdde2c6d
AP: Frame: QUAD/X
AP: ArduCopter V4.7.0-dev (5b317b46)
AP: 35ca8cc61f9c43a581467a70fdde2c6d
AP: Frame: QUAD/X

AP: ArduPilot Ready
AP: AHRS: DCM active
AP: ArduCopter V4.7.0-dev (5b317b46)
AP: 35ca8cc61f9c43a581467a70fdde2c6d
AP: Frame: QUAD/X
AP: RC7: SaveWaypoint LOW
Received 1349 parameters
Saved 1349 parameters to mav.parm
fence present
Flight battery 100 percent
Received 1349 parameters (ftp)
Saved 1349 parameters to mav.parm
AP: EKF3 IMU0 initialised
AP: EKF3 IMU1 initialised
AP: AHRS: EKF3 active
AP: EKF3 IMU0 tilt alignment complete
AP: EKF3 IMU1 tilt alignment complete
AP: EKF3 IMU0 MAG0 initial yaw alignment complete
AP: EKF3 IMU1 MAG0 initial yaw alignment complete
AP: GPS 1: probing for u-blox at 230400 baud
AP: GPS 1: detected u-blox
AP: EKF3 IMU0 origin set
AP: EKF3 IMU1 origin set
AP: Field Elevation Set: 121m
AP: PreArm: Gyros inconsistent
AP: PreArm: Main loop slow (222Hz < 300Hz)
AP: EKF3 IMU0 is using GPS
AP: EKF3 IMU1 is using GPS

Unity でドローンの雄姿を見たい人向け

Unityのプレイボタンをクリックして、ヒエラルキービューから、DJIAvatar2 をダブルクリックすると、その雄姿が見えます!

操作動画:

🚀 まとめと次の一歩

ここまでお疲れさまでした!

  • ArduPilot SITLをWSL2上で動かし、
  • Mission Plannerで状態を確認し、
  • Unityで可視化する

という一連のステップを、国産のドローンシミュレータ「箱庭」を使って体験できたと思います。

これだけで終わりではありません。
Hakoniwa Drone Core は、Python API、Web連携、ROS2連携、AR拡張まで可能な拡張性の高いプラットフォームです。

「制御ロジックを試したい」「実機前のPoCを作りたい」「自社プロダクトに組み込みたい」

そういった次のステップに踏み出すための、第一歩になれば嬉しいです。

3
3
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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?