この記事を読むと、Windows環境で手軽にリアルなドローン操縦体験ができるようになります。
PS4コントローラを握って、箱庭シミュレータ×Unityで、まるで実機のようなフライト体験を始めましょう。
⚠️ 注意:PX4 / Ardupilot は使っていません!
本記事のドローン制御は、箱庭ドローンシミュレータにあらかじめ含まれている制御プログラムで実行されます。
よって、PX4やQGroundControlなどのインストール・設定は不要です。
🎯 想定読者
- 実機操作に近い感覚でドローン操縦訓練を体験したい開発者・教育関係者
- PS4コントローラで直感的に操作できるドローン環境を探している人
- Unityゲーム開発者で、物理エンジンつきのドローン挙動を試したい人
- UnityとWebSocket連携で、双方向インタラクションのある環境を構築したい人
では、早速始めましょう。
💻 Windows環境
必要なものはこれだけです。
ツール | 用途 | 備考 |
---|---|---|
Windows 11 / WSL2 | ホスト環境 | WSL2は必須(WSL1不可) |
Ubuntu 24.04.2 LTS | 箱庭ドローンシミュレータ | WSL2内で動かします |
UnityHub/Unity(6.1) | 可視化(任意) | 自機やセンサの3D表示が可能 |
PS4コントローラ | ドローン操縦用 | - |
💡 PS4コントローラは、事前にWindows側でUSB接続しておきましょう。
TIPS コントローラ入力の流れ
🎮 「PS4コントローラで操作」→「Unityで受け取る」→「WSL上の箱庭ドローンシミュレータに送信」
- コントローラの入力はUnity側のスクリプトで受け取ります
- Unity から WebSocket 経由で、WSL上のシミュレータにコントローラの命令値を送信
- 箱庭ドローンシミュレータは、独自の内蔵制御ロジックでドローンを挙動制御します
このあとの章では、Unityプロジェクトの設定方法や、WSL上の箱庭ドローン環境との接続方法を紹介していきます。
🛠 環境セットアップ
まずは、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
ディレクトリ作成して、そこで行うのがお勧めです。
🎮 Unity環境
git clone --recursive https://github.com/hakoniwalab/hakoniwa-unity-drone.git
クローンする場所は、Windowsのファイルシステム(例えば /mnt/c
)直下に project
ディレクトリ作成して、そこで行うのがお勧めです。
クローン終わったら、Unity Hubで下図のように Add
をクリックして、
hakoniwa-unity-drone/simulation を追加してください。
成功すると、下図のようになります。
そして、simulation
をクリックすると、Unityが起動します。(何回か再起動メッセージがでますが、めげずにがんばりましょう)
起動後、下図のように、プロジェクトビューから、Scenes/WebAvatar
をクリック!
ヒエラルキービューの HakoniwaWeb
を選択して、Inspectorビューの Server Uri
のIPアドレスを、WSL2のIPアドレスを指定します。
WSL2のIPアドレスは、Ubuntu 上で ifconfig
で eth0
のものを入力します。
例:
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
ちなみに、デフォルトで動くドローンはこちらっす。
お疲れさまでした、さっそく動かしてみましょう
さー、やりましょう。
箱庭ドローンシミュレータを起動だ!
WSLの端末で、以下を実行してください。
bash hakoniwa-drone-core/docker/run.bash
成功すると、docker コンテナに入りますので、この状態で、箱庭ドローンシミュレータを起動しましょう。
bash hakoniwa-drone-core/docker/tools/run-hako.bash rc
Unity でドローンを操縦だっ!
Unityのプレイボタンをクリックするだけです。
以下はデモ操作した内容の動画です。
- Xボタンを押す → プロペラが回転
- 左スティック前倒し → ドローンが浮上
- 右スティック前倒し → ドローン前進
- 前方には風(2m/sec)が吹いており、右スティック左倒しであらがう
- 障害物に注意しながら中央の荷物へ向かう
- 〇ボタンで荷物を取得
- 元の位置に戻って 〇ボタンで配送完了
- 左スティック後ろ倒し → 降下
- Xボタン → 着陸
🥳 お疲れさまでした!ここまでできれば、あなたはもう“ドローンパイロット見習い”です。
この仕組みを応用して、オリジナルの操縦シナリオや教育教材にも展開できます。