hakoniwa-drone-multi

-- Views

September 12, 25

スライド概要

本資料は、箱庭ドローンシミュレータにおける 複数機体シミュレーション の概要と手順をまとめたものです。
PX4 / ArduPilot の両フライトコントローラに対応しており、単体シミュレーションからの差分を中心に整理しています。

# 内容
- 対応しているフライトコントローラ(PX4, ArduPilot, 独自制御)
- 複数機体のアーキテクチャ全体像
- PX4 / ArduPilot の通信ポート構成
- セットアップ手順(機体数分の clone & build)
- シミュレーション手順(PX4 / ArduPilot)
- 実行デモ動画リンク

# 想定読者

- ドローン開発に取り組むエンジニア
- 協調制御・隊列飛行など複数機体制御の研究者
- 教育現場で複数チームによる実習を検討している方

profile-image

TOPPERS/箱庭WG活動でUnityやらAthrillやらmROSやら触ってます。 最近は仕事の関係でWeb系の技術に注力しつつ、箱庭への転用を模索しています。 2023年8月1日:合同会社箱庭ラボに移動しました

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

箱庭ドローン・デモシリーズ 複数機体シミュレーション編 合同会社箱庭ラボ CTO 森崇

2.

アジェンダ • 対応しているフライトコントローラ • 複数機体のアーキテクチャ • 通信ポート • セットアップ手順 • シミュレーション手順 2

3.

対応しているフライトコントローラ • PX4 • ArduPilot • 独自制御(箱庭ドローン) 3

4.

複数機体のアーキテクチャ(全体像) • 箱庭ドローンシミュレータは、1つのプロセスで複数機体を管理しています。 • 機体毎に、コンフィグパラメータがあり、コンフィグディレクトリに連番でコンフィグファイルを配置します。 • ArduPilot/PX4 • Mavlink Python API Ardupilot/PX4 App<0> FC<0> 箱庭ドローンシミュレータ(Engine) drone config directory プロセス:機体毎 シミュレーション接続:MAVLink通信 • シミュレーション通信周期:3msec • アプリ接続: MAVLink通信 • MAVLink Protocol mavlink <0> MAVLink Protocol aircraft <0> drone_config_0.json service <0> controller <0> App<1> mavlink <1> FC<1> MAVLink Protocol MAVLink Protocol aircraft <1> drone_config_1.json service <1> controller <1> • 独自制御 • Python API プロセス:箱庭ドローンシミュレータ内部 • controller<index> シミュレーション接続:関数コール • アプリ接続: PDU通信(共有メモリ) App<0> Hakoniwa PDU • hakoniwa App<1> Hakoniwa PDU 4

5.

PX4の通信ポート 14540/UDP 4560/TCP App<0> 箱庭ドローンシミュレータ (Engine) PX4<0> 14541/UDP 4561/TCP App<1> PX4<1> 18570/UDP 18571/UDP QGC 5

6.

ArduPilotの通信ポート 9002/UDP 14550/UDP App<0> ArduPilot<0> 9003/UDP 9012/UDP 14560/UDP App<1> 箱庭ドローンシミュレータ (Engine) ArduPilot<1> 14550/UDP Mission Planner <0> 9013/UDP 14560/UDP Mission Planner <1> 6

7.

セットアップ手順 • 基本的なセットアップ手順は1台構成の場合と同じです。 • ArduPilot/PX4のclone/buildを機体数分だけ実施してください。 機体数分だけ clone/build 7

8.

ディレクトリ構成 • hakoniwa • hakoniwa-drone-core • hakoniwa-webserver • {ardupilot/px4}-controllers/ • c1 • ardupilot • c2 • ardupilot 8

9.

シミュレーション手順(PX4) 1) PX4(WSL2) # 機体0 bash -x hakoniwa-drone-core/tools/ardupilot/run.bash \ ardupilot-controllers/c1/PX4-Autopilot 0 # 機体1 bash -x hakoniwa-drone-core/tools/ardupilot/run.bash \ ardupilot-controllers/c2/ PX4-Autopilot 1 2) 箱庭(Docker) bash hakoniwa-drone-core/docker/tools/run-hako.bash px4 \ hakoniwa-drone-core/config/pdudef/webavatar-2.json 2 3) Python スクリプト(Docker 内) cd hakoniwa-drone-core/drone_api/pymavlink # 機体0 python3 -m hakosim_mavlink --name Drone --connection udp:127.0.0.1:14540 --type px4 # 機体1 python3 -m hakosim_mavlink --name Drone1 --connection udp:127.0.0.1:14541 --type px4 9

10.

シミュレーション手順(PX4) https://www.youtube.com/watch?v=UpaDkUVhyoc 10

11.

シミュレーション手順(ArduPilot) 1) Ardupilot(WSL2) # 機体0 bash -x hakoniwa-drone-core/tools/ardupilot/run.bash \ ardupilot-controllers/c1/ardupilot/ <HOST_IP> 0 # 機体1 bash -x hakoniwa-drone-core/tools/ardupilot/run.bash \ ardupilot-controllers/c2/ardupilot/ <HOST_IP> 1 2) 箱庭(Docker) bash hakoniwa-drone-core/docker/tools/run-hako.bash ardupilot \ hakoniwa-drone-core/config/pdudef/webavatar-2.json 2 3) Python スクリプト(Docker 内) cd hakoniwa-drone-core/drone_api/pymavlink # 機体0 python3 -m hakosim_mavlink --name Drone --connection udp:127.0.0.1:14550 --type ardupilot # 機体1 python3 -m hakosim_mavlink --name Drone1 --connection udp:127.0.0.1:14560 --type ardupilot 11

12.

シミュレーション手順(ArduPilot) https://www.youtube.com/watch?v=LM9fwNWIJGY 12

13.

ご清聴 ありがとうございました! 13