センサーと、層ごとの抽象
センサーは事実を取り、飛行制御は姿勢を保ち、中間のソフトウェアは処理を繋ぎ、運航の仕組みは便を許可する。この層を混ぜると、演示の画面を物流網と錯覚する。
何を測っているか
GNSSは衛星までの距離から位置と時刻を出す。精度はメートル級が普通で、ビルの谷ではマルチパスに弱く、妨害やなりすましの影響も受ける。止まっているときの機首方位は、移動の軌跡からは出ない。RTKは搬送波位相と基準局か網の補正で、アンビギュイティが固定できたときにセンチ級になる。フロート解はフィックスではない。補正が切れれば普通のGNSSへ戻る。基準点の座標が違えば、精密な答えがまとめてずれる。IMUは加速度と角速度を高頻度で出し、積分すればドリフトする。気圧計は相対高度に強く、天候と、置き場所が悪ければロータの吹き下ろしでバイアスが乗る。
光学は受動で、模様と光が要る。太陽、雨、ガラス、雪の無地に迷う。着陸の確認や障害物の補助には使えるが、それ単体が全天候のセンサーではない。LiDARは自ら測距し、幾何は取りやすい。霧、強い雨、砂塵では劣化し、質量と電力を食う。高いセンサーが低いセンサーの欠点を自動で消すわけではない。推定器はこれらを混ぜて一つの状態にする。混ぜたあとの表示を、各センサーがいつも正しいという意味に読むな。どの入力が落ちたときに推定がどう劣化するかを、飛行の前に言えねばならない。
ADS-Bの受信は、放送している協力的な機体、主に装備義務のある有人機を聞く。米国では定められた空域のADS-B Outが規則にある。装備していない航空機も、小型ドローンの大半も、そこには出ない。有人交通の部分的な絵であって、検知回避そのものではない。リモートIDは逆向きで、無人機自身が識別と位置を放送する。標準の放送型では操縦局の位置も含み得る。説明責任の信号である。他機を見るセンサーではなく、受け取った人の本人確認でもない。二つの電波を、一つの「見えてる」にまとめなさい。
どの層が何を隠すか
PX4とArduPilotは機上の飛行スタックである。センサを読み、推定をしている。姿勢と位置のループを閉じ、モータへの混合を行い、ジオフェンスや低電圧やリンク喪失のフェイルセーフを掛ける。隠しているのは「指令した姿勢や速度や位置を、機体の限界の中で達成する」ことである。限界の外は達成しない。MAVLinkはその会話の規約で、テレメトリと指令とミッション項目とハートビートを運ぶ。システムIDとコンポーネントIDは宛先であって、安全の判断ではない。電線の上の文法を抽象するのであり、飛ばしてよいかは抽象しない。
ROS 2はコンパニオン計算機のミドルウェアだ。型のあるメッセージを、ノードが出版し購読する。知覚や実験的な計画のプロセス間を抽象する。オートパイロットではない。ROSのノードが落ちても、ロータを安定させている唯一のものであってはならない。飛行スタックが自分でフェイルセーフする。QGroundControlは、設定と校正とミッション編集と、一機のライブテレメトリのための操作卓だ。ArduPilot側で近い役割なのがMission Plannerなどだ。一機、一セッション、人が輪にいる。航空会社の運航系ではない。
メーカーのSDKは、閉じた範囲を抽象する。DJIの系統は、公開されたミッションのレベルで機体とペイロードを指令し、推定と混合は内側に残る。AuterionはPX4の周りに、フリートやアプリの企業向けの層を置く。スティックより運航ソフトに近い。Skydioの系統は、自機の上の高位の技能を出し、回避は内部のままだ。どれも「メーカーが隠したものを、呼んだ側が持っている」とは意味しない。抽象の境界を、契約と文書で言え。言えないSDKは、便利な黒箱であって、安全の説明ではない。
操作アプリと運航系
操作アプリの地平は一飛行だ。アーム、点検表、この機体のミッション、スティックかウェイポイント、帰還。使う人は操縦者か遠隔のオペレータで、時計は離陸から着陸までである。運航系の地平は網だ。注文、機体の空き、パッドの枠、天候の飛行中止、空域の制約、戦略的な間隔、適合の監視、規制のための記録、注文システムとの接続。使う人はディスパッチャで、時計は一日の枠だ。MAVLinkのテレメトリは運航系へ流し得る。流れても、地上局がUTMになるわけではない。
U-spaceやUTMが並べる識別、ジオフェンス、飛行の認可、追跡、衝突の支援は、運航系の側のサービスである。それを一機の画面に描いただけでは、サービスを実装したことにはならない。デモが成功すると、人は画面を網と呼びたくなる。画面は一機が指令に追従したことを示すことがある。パッドの次の枠、拒否された空域、届かなかった受け取り、予備を割った風は示さない。その四つを別のシステムが持っていないなら、物流はまだ無い。飛行スタックを褒めるのはよい。運航系の代わりにしないでくれ。
- PX4 — System architecture
フライトコントローラ、地上局としてのQGroundControl、コンパニオンとROSやMAVSDKの並びを示した概観である。層の地図であって、認証の主張ではない。
- MAVLink — System and component IDs
同じシステムIDを共有する部品に、一意のコンポーネントIDを割り当てる、という規約の説明である。メッセージの宛先の話で、運航判断の話ではない。
- ROS 2 — Basic concepts
ROS 2を、型のある出版購読でプロセス間を繋ぐミドルウェアだと定義している。グラフはノードのネットワークだ。姿勢制御のループだとは書いていない。
- FAA — Remote identification of drones
飛行中の無人機が識別と位置を放送する、という米国の説明である。受信側の交通センサではなく、統合のための説明責任の層だ。