同じ入力で、ほぼ同じ出力を。より速く、より多くの検証を。
PX4 の制御・状態推定コア(EKF2 を含む)をそのまま利用し、実行基盤を軽量化して決定論的に動作させた制御シミュレーション機能です。PX4 SITL と同じミッションを飛ばし比べ、どれだけ近いかを実測で確かめました。
紹介動画:Control Link とは、PX4 SITL との違い、離陸から着陸までの飛行の比較、数値による確認(約2分)。
仕組み:同じ入力を、2つの方式で実行して比べる
Control Link箱庭ドローンPROの機能・1プロセス・決定論的実行
PX4 の実ソフトウェア(PositionControl、AttitudeControl、RateControl、ControlAllocation、EKF2 など)をそのまま利用し、uORB/Work Queue の代わりに関数呼び出しと明示的な同期制御で、1つのプロセスの中で実行します。
PX4 SITL実機と同じ自動操縦ソフト・複数プロセス・箱庭で時刻同期
PX4 の実ソフトウェアをまるごと動かし、ミッション・PX4・箱庭ドローンPROの機体サービスを、箱庭の時刻同期で実行します。
箱庭ドローンPROシナリオ実行・時刻同期・可視化
機体とセンサーのモデルは両方で共通です。違いは実行のしかただけ。すべての記録は箱庭コアの共通の時刻の上にあるので、指令から機体が動くまでの遅れも、同じ物差しで比べられます。
どれだけ近いか 実測
機体 x500、北へ30 m → 向きを反転して戻る → 東へ30 m を、離陸から着陸まで自動で飛ぶミッション。Control Link 10回(センサーのノイズの乱数を変える)と PX4 SITL 10回 を重ねています。
経路と速さ
機体の傾き方
指令から動き出すまで
自分の傾きと高さの見積もり(推定)
ばらつきごと比べる
- 離陸の指令 → 離床:3.23秒 対 3.24秒
- 離陸の指令 → 目標の高さ(4.7 m):8.81秒 対 8.93秒
- 着陸の指令 → 接地:7.71秒 対 7.62秒
残っている違いと、その理由
一致しなかった項目(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 と比べるための設定」としてまとめていて、ふだんの利用には影響しません。
検証の進め方
→ だから軽量版で先に広く試す
データ:2026年10月11日。機体 x500、PX4 SITL(1 ms の物理、4 ms のセンサー交換)との比較。各指標は中央値の差が許容差の内側かで判定。所要時間は今回の試験の1回あたりの実測。
