375 Views
September 12, 25
スライド概要
## 概要
本資料は、**ArduPiot SITL と箱庭ドローンシミュレータを Windows 環境で連携させるためのインストール手順と動作確認方法**をまとめたものです。
対象は、ドローンシミュレーションや ArduPiot を活用した研究・教育・開発を行うエンジニア/研究者/教育機関の方々です。
---
### 本資料でわかること
「ArduPilot連携シミュレーション」
「複数機体でのシミュレーション」
「pymavlink-Pythonで操作」
---
### 主な内容
1. **イントロダクション**
* 箱庭ドローン/PRO版の位置づけと用途
* 今日のデモのゴール設定
2. **PX4連携の基礎**
* ArduPiot SITL とは?
* Mission Planner とは?
3. **環境構成**
* Windows 11 + WSL2/Ubuntu 24.04 環境
* Unity / Unreal Engine による可視化構成
4. **セットアップ手順**
* 箱庭ドローンシミュレータの clone
* Docker / WebServer セットアップ
* ArduPiot clone / build
* Mission Planner の接続設定
* Unity / Unreal 版の導入方法
5. **動作確認**
* ArduPiot と箱庭を起動し、Unity/Unreal 上で可視化する手順
6. 複数機体でのシミュレーション
7. pymavlink-Pythonで操作
---
### 想定する読者
* ArduPiot / Mission Planner を利用した研究・教育に取り組む方
* ドローンシミュレータや Unity/Unreal を用いた可視化に関心のある方
* 箱庭ラボのオープンソース/PRO版シミュレータの導入を検討されている方
TOPPERS/箱庭WG活動でUnityやらAthrillやらmROSやら触ってます。 最近は仕事の関係でWeb系の技術に注力しつつ、箱庭への転用を模索しています。 2023年8月1日:合同会社箱庭ラボに移動しました
箱庭ドローン・デモシリーズ ArduPilot 連携編 合同会社箱庭ラボ CTO 森崇
アジェンダ • 本資料の位置付け • オープンソースドローンシミュレータにおける基本構成 • ArduPilot連携の基礎 • ArduPilot SITLとは? • MissionPlannerとは? • 箱庭ドローンとの連携方法 • 必要な環境・構成 • セットアップ手順 • 動作確認手順 • Unity/Unrealでの可視化 2
本資料の位置付け • 本資料は、箱庭ドローンとArduPilotを連携させる上で必要となる 以下の技術情報を整理したものです。 • オープンソースドローンシミュレータにおける基本構成 • ArduPilotのシミュレーション機能(SITL)の概要 • MissionPlannerとの接続および操作手順 • 箱庭ドローンPROとの連携構成および実行手順 • 本資料を通じて、以下を実現できるようになります。 • 箱庭ドローンとArduPilot間の通信構造および動作原理を理解する • 箱庭ドローン・ArduPilot・MissionPlannerを連携させたシミュレーションを再現・実行する ※用語: 箱庭ドローンとは、無償版の箱庭ドローンシミュレータ(hakoniwa-drone-core)の省略名です。 箱庭ドローンPROは、有償版の箱庭ドローンシミュレータ(hakoniwa-drone-pro)を指します。 3
オープンソースドローンシミュレータにおける基本構成 フライトコントローラ・ArduPilotを中心に、箱庭ドローンを利用したシミュレーションをできるまでを解説 (白塗り部分が箱庭ドローンのカバー範囲です。今回は、赤枠部分の説明をします) Open Source Software HardWare Pixhawk Closed Product User Application Firmware MAVSDK PX4 Ground Station QGC DroneKit Position/Speed Attitude SITL DJI HITL Hakoniwa Drone AirSim pymavlink Drone Control Simulation Gazebo ArduPilot Mission Planner Game Engine Unity Unreal Personal Use Free Software 4
アジェンダ • 本資料の位置付け • オープンソースドローンシミュレータにおける基本構成 • ArduPilot連携の基礎 • ArduPilot SITLとは? • MissionPlannerとは? • 箱庭ドローンとの連携方法 • 必要な環境・構成 • セットアップ手順 • 動作確認手順 • Unity/Unrealでの可視化 5
ドローン用オープンソース技術のエコシステム Hardware Firmware Pixhawk Ground Station 6
ArduPilot とは? • 何ものか • ドローンのファームウェア • オートパイロット用のフライトスタック • 主な用途 • 様々な機体を選択できる • マルチコプター、固定翼、VTOL • 地上走行ロボット、水中ドローン • 豊富なソフトウェアが揃っている • 機体制御プログラム • 周辺ドライバ • 動作環境 • NuttX, ChibiOS など複数のRTOSに対応(組込み向け) • Linux (Raspberry Pi, BeagleBone, etc.) 上でも直接動かせる • MacOS/LinuxでSITLが動作する 7
外部連携が考慮されたアーキテクチャ 1. TCP/UDP通信で、以下の連携が可能 1. GCS 2. MAVProxy 3. Physics Simulation 8
SITLとは? Simulation In The Loopの略で、 ArduPilotのフライトコントローラと物理シミュ レータを接続したテストが可能になります 通信メッセージ: ・センサ:JSON ・アクチュエータ:バイナリデータ (AirSimの通信パケット解析結果より) 9
MissionPlanner とは • 何ものか • ドローンの地上局システム用のアプリケーション • 主な用途 • 地上から機体を遠隔操作し、 • 様々なミッションを実行できる • サポートしているファームウェア • ArduPilot • 動作環境 • Windows 10
地図の自動取り込み • アメリカ・ワシントン州レドモンド:47.641468、-122.140165 11
様々な設定 • CTRL+Fでパラメータ設定ファイルで様々な設定できます。 12
MPのシミュレーションでの利用方法 これまでのデモ動画は全てシミュレータでっており、実機と同じ操作が可能です! ↓ArduPilotとの通信設定さえやっておけば。 13
アジェンダ • 本資料の位置付け • オープンソースドローンシミュレータにおける基本構成 • ArduPilot連携の基礎 • ArduPilot SITLとは? • MissionPlannerとは? • 箱庭ドローンとの連携方法 • 必要な環境・構成 • セットアップ手順 • 動作確認手順 • Unity/Unrealでの可視化 14
必要な環境・構成 • パソコン • Unity/Unreal Engineがサクサク動くゲーミングPCを推奨します(RTX3060クラス〜) • OS • Windows 11 • シミュレーション環境 • WSL2/Ubuntu 24.04.2 LTS • ArduPilot及び箱庭ドローンシミュレータ実行環境として利用します • ドローンのビジュアライズ • 以下のいずれかを選択できます • UnityHub/Unity(6.1以降) • Unreal Engine 5.6(Epic Games Launcherから導入、動作実績あり) • ドローンの遠隔操作 • MissionPlanner/pymavlinkを利用します 15
本資料での説明はコンテナパターン前提です 箱庭および箱庭ドローンシミュレータをDockerコンテナ上で一括実行する構成です。 環境差異を吸収し、柔軟なデプロイが可能です。 Hakoniwa Drone Simulator Hakoniwa Environment Hakoniwa Web Server Hakoniwa PDU Data Hakoniwa time Unity/ Unreal Engine Python Application Hakoniwa Core Docker Container Personal Computer
箱庭ドローン&ArduPilot&MPセットアップ手順 箱庭ドローンPROをご利用になる場合は、別途、提 供されるソースコードを展開いただく必要があります WSL2の インストール ArduPilotの clone/build 箱庭 WebServer のclone 箱庭ドローン シミュレータ のclone WSL2/docker のインストール WSL2/Ubuntuのファイルシステム (/home/<user>/project等) MissionPlan nerのインス トール いずれかお好みの方を選択してください Unity のインストール Unreal Engine のインストール Unity版 箱庭ドローン のセットアップ UE版 箱庭ドローン のセットアップ Windowsのファイルシステム (Cドライブ等)
インストールするファイルシステムとディレクトリ • 本チュートリアルでは、以下の構成で説明します。 • Windows側: • C:¥¥hakoniwa に配置する • WSL2側: • ${HOME}/hakoniwa に配置する • TIPS • Unity / Unreal Engine (UE) が Windows 側にインストールされる理由 → WSL2 上には直接インストールできないため。 • 箱庭ドローン関連ソフトウェアが WSL2 側にインストールされる理由 → Windows 側から WSL2 のファイルシステムにアクセスすると I/O 性能が低いため。 • そのため、処理性能を確保するために WSL2 のホームディレクトリ配下に置く。 • つまり、 • ゲームエンジン系は Windows 側 • 箱庭シミュレータ系は WSL2 側 18
箱庭ドローンシミュレータのclone • まずは、ディレクトリ構成の準備と、箱庭ドローンシミュレータ本体を clone しておきます。 mkdir /mnt/c/hakoniwa mkdir hakoniwa cd hakoniwa https://www.youtube.com/ watch?v=AGIWHYllaaQ git clone --recursive https://github.com/toppers/hakoniwa-drone-core.git 19
箱庭ドローンPROを利用される場合 • hakoniwa-drone-core と同一ディレクトリ階層に、 hakoniwa-drone-pro(商用版ソースコード)を展開してください。 • 展開後は、 付属の 「hakoniwa-drone-build.pptx」 に記載の手順に従ってビルドを実施します。 • その他の操作手順や連携構成は、無償版と同一です。 20
WSL2/dockerのインストール • WSL/docker 環境のセットアップ方法 • Docker Desktop for Windows を利用せずに、WSL2/Ubuntu環境に直接 docker をインストールします。 • 詳細:https://github.com/toppers/hakoniwa-drone-core/blob/main/docs/tips/wsl/docker-setup.md bash docker/wsl-docker-install.bash bash docker/wsl-docker-activate.bash bash docker/pull-image.bash https://www.youtube.com/watch?v=76R DUbLWj0w 21
箱庭WebServerのclone cd hakoniwa https://www.youtube.com/watch ?v=_a6MU4xAkxc git clone --recursive https://github.com/toppers/hakoniwa-webserver.git 22
ArduPilot のclone/build • ArduPilotのセットアップ方法 • 詳細:https://github.com/toppers/hakoniwa-drone-core/blob/main/docs/tips/wsl/ardupilot-setup.md cd hakoniwa ArduPilotのコードをクローン (2分)して、ビルド(4分ほど)し ます。結構時間かかります。 https://www.youtube.com/ watch?v=Ty-bIt9K0g8 git clone --recursive https://github.com/ArduPilot/ardupilot.git bash hakoniwa-drone-core/tools/ardupilot/build.bash 23
Unity版箱庭ドローンのセットアップ(1/2) cd /mnt/c/hakoniwa 【補足】 • 初回のUnity起動は長時間かかり ますので、気長に待ちましょう。 • 初回起動が終わると、再起動を求 められますので、再起動してください。 https://www.youtube.com/wat ch?v=1GbhmfBIBE8 git clone --recursive https://github.com/hakoniwalab/hakoniwa-unity-drone.git 24
Unity版箱庭ドローンのセットアップ(2/2) https://www.youtube.com/watch?v=1GbhmfBIBE8 25
UE版箱庭ドローンのセットアップ(1/2) cd /mnt/c/hakoniwa 【補足】 • 初回のUnreal Engineの起 動は長時間かかりますので、気 長に待ちましょう。 https://www.youtube.com/w atch?v=E-8mjlWmu2M git clone –recursive https://github.com/hakoniwalab/hakoniwa-unreal-drone.git 26
追加作業項目 • hakoniwa-unreal-droneをclone後、以下のファイルを削除してください。 • Plugins/HakoniwaPdu/Source/ThirdParty/hakoniwa- ros2pdu/utils/hakoniwa_pdu_generator/templates • 理由: • templatesは、シンボリックリンクファイルです。Windows環境では認識できないので、 ビルドエラーになる場合があります。 • 削除方法 • WSL2での実施例: rm –f Plugins/HakoniwaPdu/Source/ThirdParty/hakoniwa-ros2pdu/utils/hakoniwa_pdu_generator/templates 27
UE版箱庭ドローンのセットアップ(2/2) 1. 2. 3. hakoniwa-unreal-droneの HakoniwaDrone.uprojectを ダブルクリック コンテント/Levelsから AvatarWebを選択 アウトライナーで以下を確認 1. 2. BP_HakoniwaAvatarでドローンの 存在を確認(初号機です) BP_HakoniwaWebClientの WebSocket URIを確認(チェック 内容はUnityの場合と同じです) https://www.youtube.com/ watch?v=G85pqeoWQJc 28
ArduPilot&箱庭動作確認手順(Unityで可視化) • 端末A:ArduPilot起動 • 端末B:箱庭起動 bash hakoniwa-drone-core/tools/ardupilot/run.bash bash hakoniwa-drone-core/docker/run.bash bash hakoniwa-drone-core/docker/tools/run-hako.bash ardupilot https://www.youtube.com/watch? v=y6G_l6Iko30 29
ArduPilot&箱庭動作確認手順(Unrealで可視化) • 端末A:ArduPilot起動 bash hakoniwa-drone-core/tools/ardupilot/run.bash • 端末B:箱庭起動 bash hakoniwa-drone-core/docker/run.bash bash hakoniwa-drone-core/docker/tools/run-hako.bash ardupilot https://www.youtube.com/ watch?v=JFeAttFYpEA 30