Control LinkとPX4 SITLの比較検証


箱庭ドローンPROの Control Link

同じ入力で、ほぼ同じ出力を。より速く、より多くの検証を。

PX4 の制御・状態推定コア(EKF2 を含む)をそのまま利用し、実行基盤を軽量化して決定論的に動作させた制御シミュレーション機能です。PX4 SITL と同じミッションを飛ばし比べ、どれだけ近いかを実測で確かめました。

紹介動画:Control Link とは、PX4 SITL との違い、離陸から着陸までの飛行の比較、数値による確認(約2分)。

63 / 68
許容差の内側で一致
離陸・移動・着陸、推定、反応の時間を判定
NG 0
一致しなかった項目
Control Link 10回(ノイズを変える)対 PX4 SITL 10回の中央値で判定
約25 倍
126秒の飛行を5.0秒で計算
PX4 SITL は1回 約60〜150秒(4倍速〜等速、起動・停止を含む)
5
許容差の内側だが記録
理由を説明できる違い(下の表)

仕組み:同じ入力を、2つの方式で実行して比べる

Control Link箱庭ドローンPROの機能・1プロセス・決定論的実行

軌道生成 PX4→ 位置制御 PX4→ 姿勢制御 PX4→ レート制御 PX4→ 制御配分 PX4→ 機体モデル MuJoCo→ センサー模擬→ 状態推定 EKF2(PX4)

PX4 の実ソフトウェア(PositionControl、AttitudeControl、RateControl、ControlAllocation、EKF2 など)をそのまま利用し、uORB/Work Queue の代わりに関数呼び出しと明示的な同期制御で、1つのプロセスの中で実行します。

PX4 SITL実機と同じ自動操縦ソフト・複数プロセス・箱庭で時刻同期

ミッション MAVLink→ uORB→ 位置・姿勢・レート制御、制御配分→ 機体モデル MuJoCo→ センサー模擬→ 状態推定 EKF2(PX4)

PX4 の実ソフトウェアをまるごと動かし、ミッション・PX4・箱庭ドローンPROの機体サービスを、箱庭の時刻同期で実行します。

箱庭ドローンPROシナリオ実行・時刻同期・可視化

機体とセンサーのモデルは両方で共通です。違いは実行のしかただけ。すべての記録は箱庭コアの共通の時刻の上にあるので、指令から機体が動くまでの遅れも、同じ物差しで比べられます。

どれだけ近いか 実測

機体 x500、北へ30 m → 向きを反転して戻る → 東へ30 m を、離陸から着陸まで自動で飛ぶミッション。Control Link 10回(センサーのノイズの乱数を変える)と PX4 SITL 10回 を重ねています。

経路と速さ

上から見た経路と、区間ごとの水平の速さ。青と赤の線がほぼ重なる
上から見た経路と、各区間の速さ。加速・巡航・減速が重なります。

機体の傾き方

区間ごとのピッチ角とロール角
区間ごとの機体の傾き(ピッチ角・ロール角)。

指令から動き出すまで

指令の直後の回転の速さ
指令を受け取った瞬間(0)からの回転の速さ。箱庭コアの時刻でそろえています。指令から動き出すまでの中央値は、Control Link 71〜82 ms、PX4 SITL 78〜79 ms(区間ごと)。

自分の傾きと高さの見積もり(推定)

推定と真の値の差
推定と真の値の差。傾きは0.1度、高さは1センチ程度の世界で、ずれ方の形と大きさが重なります。

ばらつきごと比べる

代表的な6つの指標の1回ずつの値と中央値
1回ずつの値(点)と中央値(横線)。灰色の帯は PX4 SITL の中央値±許容差。センサーのノイズで毎回変わる量も、10回ずつの分布が重なります。
離陸と着陸(Control Link 10回 対 PX4 SITL 10回の中央値)
  • 離陸の指令 → 離床:3.23秒 対 3.24秒
  • 離陸の指令 → 目標の高さ(4.7 m):8.81秒 対 8.93秒
  • 着陸の指令 → 接地:7.71秒 対 7.62秒
PX4 の自動離陸(モーターの立ち上げ、上昇速度のランプ)と自動着陸(降下速度の規則)を、Control Link でも同じ仕組みで動かしています。

残っている違いと、その理由

一致しなかった項目(NG)はありません。許容差の内側で違いが残っているものを、理由とあわせて記録しています。

違い理由扱い
静止中に機首がゆっくり回る量(30秒で0.2〜0.7°)が毎回違うジャイロの目盛りより遅い回転は見えない(磁気を使わない設定)。両方で同じように起きる分布は一致
移動中に高さが1〜3 cm上下する加速度センサーのノイズの積み重なりを、気圧計と GPS がゆっくり補正する。両方で同じように起きる分布は一致
動き出すまでの時間のばらつきが PX4 SITL で大きいPX4 SITL は軌道更新のタイミングが起動ごとに変わる。Control Link は同じ条件なら同じ中央値は一致
東へ加速する途中がわずかに遅い(+32 ms)調査中(軌道更新のタイミングの影響とみている)許容差 50 ms 以内
着陸の接地がわずかに遅い(+89 ms)調査中許容差 150 ms 以内

再現するもの、しないもの

PX4 SITL は汎用の OS の上で動いていて、処理が実行されるタイミングが毎回わずかに揺れます。Control Link は、その揺れをまねずに、同じ条件なら何度でも同じ結果になるように動きます。そのかわり、センサーのノイズを変えた複数回の飛行で、ばらつきごと比べています。

PX4 SITL がセンサーの値を受け取るときの細かい仕様(センサーの目盛り、GPS の値の刻み、処理の順番)や、自動の離陸・着陸の仕組みは、Control Link でも同じように扱っています。これらは「PX4 SITL と比べるための設定」としてまとめていて、ふだんの利用には影響しません。

検証の進め方

①シナリオ・条件の設定(共通)
②Control Link で大量に探索(高速)
③代表点を抽出(良・境界・不合格)
④PX4 SITL で確認(高精度)
本物は重い
→ だから軽量版で先に広く試す

データ:2026年10月11日。機体 x500、PX4 SITL(1 ms の物理、4 ms のセンサー交換)との比較。各指標は中央値の差が許容差の内側かで判定。所要時間は今回の試験の1回あたりの実測。

トップへ戻る