Skip to content
Published on

Pixhawk & eVTOL 飛行制御 完全攻略:PX4、カルマンフィルター、PWM信号、センサーフュージョンからROS2統合まで

Authors
  • Name
    Twitter

1. 概要

ドローンとeVTOL(電動垂直離着陸機)は、もはや実験的な技術ではない。2026年にはJoby AviationとArcher Aviationが商業運航を開始し、都市型エアモビリティ(UAM)は現実のものとなりつつある。これらすべての技術の中心にあるのが飛行制御システムである。

本記事では、飛行制御の核心要素を総まとめする。

┌────────────────────────────────────────────────────────────┐
│                 飛行制御システム全体構造                        │
│                                                             │
│  センサー層       推定層            制御層         出力層    │
│  ┌─────────┐    ┌──────────┐    ┌──────────┐    ┌────────┐ │
│  │IMU(6) │    │カルマン    │    │ PID 制御 │    │  PWM/  │ │
│  │GPS      │──→│フィルター  │──→│ 位置→速度 │──→│ DShot  │ │
│  │気圧計    │    (EKF2/3)  │    │ →姿勢→角速度│    │  ESC   │ │
│  │地磁気    │    │センサー   │    │ →ミキサー  │    │ モーター│ │
│  │         │    │フュージョン│    │          │    │        │ │
│  └─────────┘    └──────────┘    └──────────┘    └────────┘ │
│                                                             │
│  通信: MAVLink ←→ QGroundControl / ROS2 / コンパニオンPC└────────────────────────────────────────────────────────────┘

2. Pixhawk — オープンソース飛行制御機の標準

2.1 Pixhawkとは

Pixhawkは特定の製品ではなく、オープンハードウェア標準である。Dronecode Foundation(Linux Foundation傘下)が管理しており、世界中で100万台以上のPixhawkベースのデバイスが運用されている。

2.2 FMUバージョン履歴

バージョンプロセッサ主な特徴
FMUv2STM32F427 (Cortex-M4, 168MHz)初の商用Pixhawk
FMUv3STM32F427Flash 2MBに拡大
FMUv5STM32F7CANバス追加、拡張性強化
FMUv5XSTM32F7モジュラー設計、三重冗長性導入
FMUv6XSTM32H753 (Cortex-M7, 480MHz)イーサネット、三重IMU、分離センサードメイン
FMUv6CSTM32H743 (Cortex-M7, 480MHz)コスト最適化、二重冗長IMU

2.3 Pixhawk 6X (FMUv6X) 詳細仕様

プロセッサ:

  • FMU: STM32H753 (Cortex-M7, 480MHz, 2MB Flash, 1MB RAM)
  • IO: STM32F103 (Cortex-M3, 72MHz, 64KB SRAM)

搭載センサー(三重冗長):

センサー種別モデル数量備考
IMU(加速度計/ジャイロ)ICM-456863個BalancedGyro技術、各々独立バス・電源
気圧計ICP20100, BMP3882個二重冗長
地磁気センサーBMM1501個-

主要インターフェース:

  • 16+ PWMサーボ出力(IO 8個 + FMU 8個)
  • イーサネットPHY — ミッションコンピュータとの高速通信
  • 4× UART, 3× SPI, 2× CAN, 2× I2C
  • USB-C, RC入力(SBUS/CPPM/DSM)

モジュラー設計: IMU Board + FMU Board + Base Boardが100ピン/50ピンPixhawk Autopilot Busコネクタで分離

2.4 Pixhawk 6C (FMUv6C)

項目仕様
プロセッサSTM32H743 (Cortex-M7, 480MHz)
IMUICM-42688-P + BMI055(二重冗長)
気圧計MS5611
地磁気IST8310
サイズ84.8 × 44 × 12.4 mm
重量59.3g(アルミ)/ 34.6g(プラスチック)
動作温度-25 ~ 85°C

2.5 対応オートパイロットファームウェア

ファームウェアライセンス特徴
PX4 AutopilotBSDDronecode公式、マイクロカーネルアーキテクチャ、精密制御
ArduPilotGPLコミュニティ主導、幅広い機体対応、実戦での検証実績最高

2.6 エコシステム

メーカー:Holybro, CUAV, ARK Electronics, ModalAI, NXP, mRo, Auterion ツール:QGroundControl(GCS), MAVLink, MAVSDK, MAVROS, ROS2統合


3. 飛行制御システムアーキテクチャ

3.1 カスケード制御構造

PX4マルチコプター制御機は、カスケード位置-速度-姿勢-角速度ループを使用する。

[位置 SP][位置 P][速度 PID][姿勢 P][角速度 K-PID][ミキサー][モーター]
  外部ループ              中間ループ       姿勢ループ       内部ループ
  ~50Hz                 ~50Hz          ~250Hz         ~1000Hz
階層コントローラー入力出力更新レート
Position(外部)Pコントローラー位置誤差速度設定値~50Hz
Velocity(中間)PIDコントローラー速度誤差加速度設定値~50Hz
Attitude(姿勢)Pコントローラー(クォータニオン)姿勢誤差角速度設定値~250Hz
Rate(内部)K-PIDコントローラー角速度誤差トルク/推力指令~1000Hz

3.2 PIDコントローラー

連続時間PID:

u(t)=Kpe(t)+Ki0te(τ)dτ+Kdde(t)dtu(t) = K_p \cdot e(t) + K_i \int_0^t e(\tau) d\tau + K_d \frac{de(t)}{dt}

離散時間PID(飛行制御機実装):

u[k]=Kpe[k]+Kij=0ke[j]Δt+Kde[k]e[k1]Δtu[k] = K_p \cdot e[k] + K_i \sum_{j=0}^{k} e[j] \cdot \Delta t + K_d \frac{e[k] - e[k-1]}{\Delta t}

パラメータ役割上げると下げると
KpK_p(比例)誤差に比例した即時応答応答が速くなる、振動増加遅くなる、安定
KiK_i(積分)定常状態誤差の除去誤差0に収束、オーバーシュートの恐れ残留誤差あり
KdK_d(微分)誤差変化率への応答(減衰)オーバーシュート減少、ノイズに敏感振動増加

3.3 位置/速度コントローラー

位置コントローラー(P):

vsp=Kppos(psppest)\vec{v}_{sp} = K_p^{pos} \cdot (\vec{p}_{sp} - \vec{p}_{est})

  • PX4パラメータ:MPC_XY_P, MPC_Z_P
  • 速度飽和:MPC_XY_VEL_MAX

速度コントローラー(PID): 速度誤差 → 加速度設定値、Anti-reset windup適用

3.4 姿勢/角速度コントローラー

姿勢コントローラー(P、クォータニオンベース):

ωsp=Kpatteatt\vec{\omega}_{sp} = K_p^{att} \cdot \vec{e}_{att}

角速度コントローラー(K-PID): 微分経路にローパスフィルターを適用しノイズ低減

ジャイロデータ処理パイプライン:

  1. キャリブレーション補正 → 2. バイアス除去 → 3. ノッチフィルター → 4. ローパスフィルター

3.5 ミキサー(Control Allocation)

角速度コントローラーの出力を個別モーター指令に変換する。

クアッドコプターX構成の例:

[M1M2M3M4]=[1111111111111111][Tτxτyτz]\begin{bmatrix} M_1 \\ M_2 \\ M_3 \\ M_4 \end{bmatrix} = \begin{bmatrix} 1 & -1 & 1 & 1 \\ 1 & 1 & -1 & 1 \\ 1 & 1 & 1 & -1 \\ 1 & -1 & -1 & -1 \end{bmatrix} \begin{bmatrix} T \\ \tau_x \\ \tau_y \\ \tau_z \end{bmatrix}

ここで TT=総推力、τx\tau_x=ロールトルク、τy\tau_y=ピッチトルク、τz\tau_z=ヨートルク


4. PWM信号とESCプロトコル

4.1 PWM(Pulse Width Modulation)の原理

PWMは、デジタル信号のデューティサイクルを変調することでアナログ値を伝達する手法である。

     ┌────┐              ┌────────┐
     │    │              │        │
─────┘    └──────────────┘        └──────────
     |<-->|              |<------>|
     1000μs              2000μs
     (0% スロットル)       (100% スロットル)
     |<-------------------->|
         20ms (50Hz 周期)
パラメータ
パルス幅範囲1000μs(最小)~ 2000μs(最大)
ニュートラル1500μs
標準周期20ms(50Hz)
分解能1000ステップ
信号遅延~2ms

4.2 ESCプロトコル比較

プロトコル種別パルス幅最大更新レート分解能エラー検出
Standard PWMアナログ1000-2000μs500Hz1000なし
OneShot125アナログ125-250μs4kHz1000なし
OneShot42アナログ42-84μs~12kHz1000なし
Multishotアナログ5-25μs~32kHz1000なし
DShot150デジタル-150 kbps2048CRC 4ビット
DShot300デジタル-300 kbps2048CRC 4ビット
DShot600デジタル-600 kbps2048CRC 4ビット
DShot1200デジタル-1200 kbps2048CRC 4ビット

4.3 DShotプロトコル詳細

DShotは2025年現在、事実上の標準ESCプロトコルである。

フレーム構造(16ビット):

[11ビット スロットル (0-2047)] [1ビット テレメトリ要求] [4ビット CRC]
  • スロットル値1-47:特殊コマンド予約(ビープ音、モーター方向反転、ESC設定)
  • ビットエンコーディング:HIGH/LOW比率で0/1を区別(1=75% HIGH、0=37.5% HIGH)

双方向DShot(Bidirectional DShot):

  • ESCがeRPMテレメトリをFCに返信
  • リアルタイムRPMデータでダイナミックノッチフィルター適用 → 振動除去性能が大幅向上
  • 提供データ:RPM、電圧、電流、温度

4.4 PWM vs DShot 主要な違い

特性PWM(アナログ)DShot(デジタル)
信号方式パルス幅で値をエンコード0/1ビットストリーム
キャリブレーション必要(ESCごとに異なる)不要
ノイズ耐性低い高い(CRCエラー検出)
分解能1000ステップ2048ステップ
双方向通信不可可能(テレメトリ)
特殊コマンド不可可能

5. カルマンフィルター — 飛行制御の核心アルゴリズム

5.1 カルマンフィルターの基本原理

カルマンフィルターは、ノイズを含む複数センサーの測定値からシステムの状態を最適に推定する再帰的アルゴリズムである。

┌──────────────────────────────────────────────────────┐
│              カルマンフィルターサイクル                     │
│                                                       │
│  ┌──────────────────┐     ┌──────────────────┐       │
│  │  第1段階: 予測     │     │  第2段階: 更新     │       │
  (Prediction)     │────►│  (Update)        │       │
│  │                  │     │                  │       │
│  │  x̂ = F·x + B·u  │     │  K = P·Hᵀ·S⁻¹   │       │
│  │  P = F·P·F+ Q │     │  x̂ =+ K·(z-Hx̂)│       │
│  │                  │     │  P = (I-KH)·P    │       │
│  │ モーションモデルで │     │  測定値で補正      │       │
│  │ 予測              │     │                  │       │
│  └──────────────────┘     └────────┬─────────┘       │
│           ▲                        │                  │
│           └────────────────────────┘                  │
│                    繰り返し                             │
└──────────────────────────────────────────────────────┘

第1段階:予測(Time Update)

x^kk1=Fkx^k1k1+Bkuk\hat{x}_{k|k-1} = F_k \hat{x}_{k-1|k-1} + B_k u_k

Pkk1=FkPk1k1FkT+QkP_{k|k-1} = F_k P_{k-1|k-1} F_k^T + Q_k

記号意味
x^\hat{x}状態推定ベクトル
FkF_k状態遷移行列
BkB_k制御入力行列
uku_k制御入力(例:ジャイロ角速度)
PP誤差共分散行列
QkQ_kプロセスノイズ共分散

第2段階:更新(Measurement Update)

Kk=Pkk1HkT(HkPkk1HkT+Rk)1K_k = P_{k|k-1} H_k^T (H_k P_{k|k-1} H_k^T + R_k)^{-1}

x^kk=x^kk1+Kk(zkHkx^kk1)\hat{x}_{k|k} = \hat{x}_{k|k-1} + K_k (z_k - H_k \hat{x}_{k|k-1})

Pkk=(IKkHk)Pkk1P_{k|k} = (I - K_k H_k) P_{k|k-1}

記号意味
KkK_kカルマンゲイン — 予測値と測定値の重み付けを決定
HkH_k観測行列
zkz_k実測定値
RkR_k測定ノイズ共分散

カルマンゲインの直感的理解:

  • K1K \to 1:測定値をより信頼(測定ノイズが小さい)
  • K0K \to 0:予測値をより信頼(モデルが正確)

5.2 拡張カルマンフィルター(EKF)

ドローンの力学は非線形であるため、標準カルマンフィルターを直接適用することができない。EKFは非線形関数を1次テイラー級数展開で線形化する。

非線形システム:

xk=f(xk1,uk)+wk(状態遷移)x_k = f(x_{k-1}, u_k) + w_k \quad \text{(状態遷移)}

zk=h(xk)+vk(観測)z_k = h(x_k) + v_k \quad \text{(観測)}

EKF予測:

x^kk1=f(x^k1k1,uk)\hat{x}_{k|k-1} = f(\hat{x}_{k-1|k-1}, u_k)

Pkk1=FkPk1k1FkT+Qk,Fk=fxx^k1P_{k|k-1} = F_k P_{k-1|k-1} F_k^T + Q_k, \quad F_k = \frac{\partial f}{\partial x}\bigg|_{\hat{x}_{k-1}}

EKF更新:

Kk=Pkk1HkT(HkPkk1HkT+Rk)1,Hk=hxx^kk1K_k = P_{k|k-1} H_k^T (H_k P_{k|k-1} H_k^T + R_k)^{-1}, \quad H_k = \frac{\partial h}{\partial x}\bigg|_{\hat{x}_{k|k-1}}

5.3 エラーステートカルマンフィルター(ESKF)

PX4のEKF2はError-State Kalman Filterを実装している。クォータニオン回転の不確実性推定において核心的な役割を果たす。

核心アイデア:

  • クォータニオンを直接推定せず、誤差回転ベクトルを推定
  • SO(3)の接線空間で3Dベクトルとして回転の不確実性を表現
  • Nominal State(慣性航法方程式)とError State(カルマンフィルター)を分離

δx=xtruex^nominal\delta x = x_{true} - \hat{x}_{nominal}

5.4 PX4 EKF2 (ECL EKF) — 24個の状態ベクトル

インデックス状態説明
0-3クォータニオン (q0~q3)NED → Bodyフレーム回転
4-6速度 (Vn, Ve, Vd)NEDフレーム [m/s]
7-9位置 (Pn, Pe, Pd)NEDフレーム [m]
10-12ジャイロバイアスIMUジャイロ [rad/s]
13-15加速度計バイアスIMU加速度計 [m/s²]
16-18地球磁場NEDフレーム [Gauss]
19-21ボディ磁場バイアスBodyフレーム
22-23風速 (Wn, We)北風/東風 [m/s]

センサーフュージョンアーキテクチャ:

  • 遅延フュージョン:センサーごとの時間遅延を吸収するためFIFOバッファに格納し、同一時点のデータをフュージョン
  • IMUデータ:状態の予測にのみ使用し、観測値としては使用しない
  • 複数EKFインスタンス:故障検知を強化(MAX(IMU数,1) × MAX(磁力計数,1)、最大16個)
  • 多重仮説フィルター:ガウス和フィルターでヨー(Yaw)を推定、GPS速度のみでも可能

5.5 ArduPilot EKF2 vs EKF3

特性EKF2EKF3(現在のデフォルト)
センサーアフィニティ非対応対応 — 非主センサーの動的切替
追加センサー基本のみビーコン、ホイールエンコーダー、ビジュアルオドメトリ
レーン切替制限あり動的レーン切替
フォールバックEKF2 → DCMEKF3 → DCM
パラメータEK2_*EK3_*

5.6 相補フィルター vs カルマンフィルター

θest=α(θest+ωgyroΔt)+(1α)θaccel\theta_{est} = \alpha \cdot (\theta_{est} + \omega_{gyro} \cdot \Delta t) + (1-\alpha) \cdot \theta_{accel}

ここで α=ττ+Δt\alpha = \frac{\tau}{\tau + \Delta t}(通常0.96~0.98)

特性相補フィルターカルマンフィルター
複雑度低い高い
計算負荷軽量(組み込み向き)重い(FPU必要)
原理HPF(ジャイロ) + LPF(加速度計)最適重み付き平均(共分散)
バイアス残る可能性ありバイアスフリー
複数センサー2個向き複数センサー最適
故障耐性なしイノベーション一貫性検査

6. eVTOL(Electric Vertical Takeoff and Landing)

6.1 eVTOLとは

電動推進システムで垂直離着陸し、水平飛行する航空機である。都市型エアモビリティ(UAM)の核心として、「空飛ぶタクシー」時代を切り開いている。

6.2 市場動向

  • 市場規模:2025年 約42億ドル → 2033年 約80億ドル(CAGR 37%)
  • 2026年に商業運航開始予定:Joby Aviation, Archer Aviation
企業機体最高速度航続距離乗客シェア
Joby AviationS4322 km/h241 km4+122%
Archer AviationMidnight241 km/h32-80 km4+118%
LiliumLilium Jet300 km/h250 km65-8%
EHangEH216-S130 km/h35 km2-
VolocopterVoloCity110 km/h35 km2-

6.3 機体構成タイプ

マルチローター(Multirotor)

    ①        ②
     \      /
      ┌────┐
      │    │
      └────┘
     /      \
    ③        ④
  • 4~8個のローターが揚力+推力を両方提供
  • 長所:シンプル、安定したホバリング
  • 短所:エネルギー効率が最悪(巡航時に非効率)
  • 代表:EHang EH216-S, Volocopter VoloCity

リフト+クルーズ(Lift + Cruise)

    垂直ローター  垂直ローター         後方プロペラ
      ↓          ↓                  ↓
    ┌──┐      ┌──┐    ═══════    ▶───
    └──┘      └──┘    翼
  • 垂直離陸用ローター + 水平飛行用プロペラを分離
  • 長所:各飛行段階を最適化
  • 短所:垂直ローターが巡航時にデッドウェイト
  • 代表:Archer Midnight, Vertical Aerospace VX4

ティルトローター(Tiltrotor)

  ホバリング:  →  巡航:
  ↑  ↑       →  →
  │  │       ╱  ╲
  ┌──┐      ┌──────┐
  └──┘      └──────┘
  • ローターが垂直/水平方向にティルト
  • 長所:単一推進システムで効率的
  • 短所:ティルト機構の複雑さ
  • 代表:Joby S4(6個ティルト), Bell Nexus

ティルトウィング(Tiltwing)

  • 翼自体がローターとともにティルト
  • 高速・長距離能力
  • 代表:Lilium Jet(36個の電動エンジンを翼に内蔵)

6.4 認証体系

FAA(米国):

  • eVTOLを**「Powered-Lift」**カテゴリに再分類
  • AC 21.17-4(2025.07):最大12,500 lbs、6席以下、バッテリー電動推進
  • Joby:Stage 4認証70%完了(2025 Q3)
  • Archer:55マイル最長有人飛行達成(2025.08)

EASA(欧州):

  • SC-VTOL(Special Condition - VTOL)発行
  • FAAとの基準調和(harmonization)推進

6.5 バッテリー技術

項目現状必要
リチウムイオンエネルギー密度~250 Wh/kg-
300km航続-300-600 Wh/kg
600km航続-600+ Wh/kg
経済的長距離-800+ Wh/kg

全固体電池のブレークスルー:

  • EHang + Inx:480 Wh/kg達成
  • 世界初のeVTOL全固体電池飛行試験成功(48分10秒)
  • 長所:高エネルギー密度、熱安定性、引火性低減

7. PX4オートパイロット

7.1 アーキテクチャ

PX4はマイクロカーネル哲学に従い、モジュール間通信に**uORB(Micro Object Request Broker)**パブリッシュ-サブスクライブバスを使用する。

┌──────────────────────────────────────────────────┐
PX4 Flight Stack│                                                   │
│  センサードライバー ──┐                              │
EKF2 推定器     ──┼──→ [uORB バス] ──→ MAVLink│  制御モジュール   ──┤              ──→ ミキサー/│  飛行モード      ──┘              │   アクチュエーター│
│                                  ──→ ロガー       │
└──────────────────────────────────────────────────┘

7.2 飛行モード

手動モード:

モード説明
Stabilizedスティックが機体角度を制御、離すと水平に復帰
Acroアクロバット飛行、スティックが角速度を制御

補助モード:

モード説明センサー要件
Altitude高度維持、水平は手動気圧計
Position3D位置維持 — 最も安全GPS + 気圧計

自律モード:

モード説明
Hold現在位置でホバリング
Return安全高度まで上昇 → ホーム帰還 → 着陸
Missionウェイポイント自律飛行
Offboard外部(コンパニオン)設定値追従

7.3 MAVLinkプロトコル

ドローン-地上局/コンパニオン間の軽量メッセージングプロトコル。

MAVLink v2メッセージ構造:

[STX][LEN][INC][CMP][SEQ][SYS_ID][COMP_ID][MSG_ID(3B)][PAYLOAD][CRC][SIGNATURE]
  • Heartbeat:1Hz周期、機体タイプ・飛行モード・システム状態を含む
  • QGroundControl:MAVLinkベースのオープンソース地上管制ステーション

8. ArduPilot

8.1 PX4 vs ArduPilot

項目ArduPilotPX4
ライセンスGPL(公開義務)BSD(公開不要)
コード規模700,000+行比較的小規模
アーキテクチャモノリシック傾向マイクロカーネル (uORB)
コミュニティ非常に大規模で活発企業(Auterion)主導
実戦検証最高レベル精密制御に特化
デフォルトEKFEKF3ECL EKF2
GCSMission Planner, QGCQGroundControl

8.2 対応機体

機体ArduPilotPX4
Copter(マルチローター)ArduCopter対応
Plane(固定翼)ArduPlane対応
Rover(地上)ArduRover対応
Sub(水中)ArduSub限定的
VTOLQuadPlane対応(強み)
Helicopter従来型ヘリ対応限定的
Blimp/Boat対応非対応

9. ROS2統合

9.1 2つの統合方式

┌──────────────────┐     ┌──────────────────┐
│ コンパニオンPC     │     │ Pixhawk (PX4)│                  │     │                  │
[ROS2 ノード]    │     │  [PX4 Autopilot]│       │          │     │       │          │
[uXRCE-DDS     │◄───►│  [uXRCE-DDS     │  ← 方式1(推奨)
Agent]UARTClient]│       または       │     │                  │
[MAVROS]       │◄───►│  [MAVLink]       │  ← 方式2(レガシー)
└──────────────────┘     └──────────────────┘

方式1:uXRCE-DDS(推奨)

  • PX4内蔵DDSクライアント → ROS2 DDSに直接参加
  • uORBトピックがROS2トピックに直接マッピング
  • MAVLinkを経由しないため低遅延、高帯域幅

方式2:MAVROS(レガシー)

  • MAVLink → ROS2トピック/サービスブリッジ
  • ArduPilotとの互換性あり

9.2 オフボード制御の例

import rclpy
from rclpy.node import Node
from px4_msgs.msg import (
    OffboardControlMode,
    TrajectorySetpoint,
    VehicleCommand
)

class OffboardControl(Node):
    def __init__(self):
        super().__init__('offboard_control')
        self.offboard_pub = self.create_publisher(
            OffboardControlMode, '/fmu/in/offboard_control_mode', 10)
        self.trajectory_pub = self.create_publisher(
            TrajectorySetpoint, '/fmu/in/trajectory_setpoint', 10)
        self.command_pub = self.create_publisher(
            VehicleCommand, '/fmu/in/vehicle_command', 10)

    def arm(self):
        msg = VehicleCommand()
        msg.command = VehicleCommand.VEHICLE_CMD_COMPONENT_ARM_DISARM
        msg.param1 = 1.0  # Arm
        self.command_pub.publish(msg)

    def set_position(self, x, y, z):
        msg = TrajectorySetpoint()
        msg.position = [x, y, z]  # NED座標
        self.trajectory_pub.publish(msg)

10. SITL/HITLシミュレーション

10.1 SITL(Software-In-The-Loop)

実際のハードウェアなしに開発PC上で飛行ファームウェアを実行しシミュレーションを行う。

# PX4 SITL + Gazebo
cd PX4-Autopilot
make px4_sitl gz_x500

# Micro XRCE-DDS Agent(別ターミナル)
MicroXRCEAgent udp4 -p 8888

# ArduPilot SITL + Gazebo
sim_vehicle.py -v ArduCopter -f gazebo-iris --console --map
  • 実際のファームウェアと同一のコードを実行(シミュレーションドライバーのみ異なる)
  • リスクなしにアルゴリズム検証、高速な反復開発が可能

10.2 HITL(Hardware-In-The-Loop)

実際のPixhawkハードウェア上で通常のファームウェアを実行し、シミュレーターがセンサーデータを提供する。

  • 実際のハードウェアタイミング・性能の検証
  • ハードウェア互換性問題の事前発見
  • 実飛行前の最終検証段階

10.3 Gazebo統合

Gazebo Harmonic(現在推奨):

  • 物理エンジン、センサーシミュレーション、カメラ/LiDARレンダリング
  • PX4とMAVLinkまたは直接プラグイン通信
  • ROS2 Humble連携

11. 学習ロードマップ

11.1 基礎(1-2か月)

順序テーマ資料
1PID制御理論Duckietown - Intro to Drones
2PX4 SITL環境構築PX4 Simulation
3QGroundControl基本QGC User Guide
4カルマンフィルター基礎kalmanfilter.net

11.2 中級(2-4か月)

順序テーマ資料
5PX4開発PX4 Dev Guide
6EKF2センサーフュージョンPX4 EKF Tuning
7ROS2 + PX4統合PX4 ROS2 Guide
8ESCプロトコル (DShot)Oscar Liang - DShot

11.3 上級(4-6か月)

順序テーマ資料
9自律飛行 (Offboard)px4-offboard
10ArduPilot開発ArduPilot Dev Guide
11eVTOL制御アルゴリズム論文および実習
12実機組立・チューニングPixhawk 6X + フレーム組立

12. References

公式ドキュメント

  1. PX4 User Guide
  2. PX4 Dev Guide
  3. ArduPilot Copter Docs
  4. MAVLink Guide
  5. QGroundControl User Guide
  6. Pixhawk Open Standards

ハードウェア

  1. Holybro Pixhawk 6X
  2. Holybro Pixhawk 6C
  3. Dronecode FMUv6 Family

制御および推定

  1. PX4 Controller Diagrams
  2. PX4 EKF2 Tuning Guide
  3. ArduPilot EKF Overview
  4. Kalman Filter Tutorial

ESCプロトコル

  1. DShot Protocol - Oscar Liang
  2. ESC Firmware and Protocols - Oscar Liang
  3. ArduPilot PWM/DShot ESCs

eVTOL

  1. eVTOL Guide - Dewesoft
  2. eVTOL Market Analysis - MotorWatt
  3. FAA eVTOL Certification
  4. EHang Solid-State Battery Flight

ROS2統合

  1. PX4 ROS2 Integration
  2. PX4 uXRCE-DDS Bridge
  3. MAVROS GitHub

GitHubリポジトリ

  1. PX4/PX4-Autopilot
  2. ArduPilot/ardupilot
  3. px4-offboard (ROS2サンプル)
  4. MAVSDK