QGroundControlとQtによる
ローン・無人航空機(UAV)の開発
無人航空機向けのオープンソースの地上管制システムとして広く利用されているQGroundControl(QGC)は、Qtをベースに構築されています。
QGCがどのモジュールを活用しているか、そのライセンスにはどのような要件があるか、そしてQGCとQtを使って準拠したプロプライエタリ製品を構築する方法について解説します。
QGroundControl上でプロプライエタリなアプリケーションを構築するには、商用Qtライセンスが必要です。商用ライセンスがない場合、GPL v3が適用され、ソースコード全体を公開する必要があります。
QtとQGroundControl
QGroundControl(QGC)は、無人機向けのオープンソース地上管制システムとして広く利用されており、PX4やArduPilotなどのオートパイロットを含む、MAVLinkプロトコルに対応するあらゆる機体—空中、地上、水上の自律システム全般—に対してフライト制御とミッションプランニングを提供します。QGCは、PX4、MAVLink、MAVSDKも運営するベンダー中立の非営利団体であるDronecode Foundationによって管理されており、趣味の利用者から研究者、商用オペレーターまで幅広く活用されています。
QGCは、中核となるクロスプラットフォームフレームワークとしてQtを採用することで、単一のコードベースからデスクトップ、モバイル、組み込みの主要なプラットフォームすべてに対応できるという利点を継承しています。さらに、Qtフレームワークは、QGCのユーザーインターフェース、地図・ナビゲーション、ライブ映像フィードなどを支えています。
QGroundControlとQtのオープンソースライセンス
QGroundControlは、Apache 2.0(パーミッシブ)またはGPL v3(コピーレフト)のデュアルライセンスで提供されています。QGCは主にQtをベースに構築されているため、オープンソース利用者がより制限の緩いLGPLではなくGPLのもとでのみ使用できるQtモジュール—Qt Graphs、Qt HTTP Server、Qt Quick 3Dなど—が課すGPLの条件を継承します。
強力なコピーレフトライセンスであるGPLでは、QGCのコードベースから派生した製品はすべてGPLの条件を継承しなければなりません。
GPL v3のもとでソフトウェアを開発する場合、以下の2つの義務が生じます。
ソフトウェアを受け取るすべての人にソースコードを公開しなければならない。
ソフトウェアを特定のハードウェアにロックすることはできない。
商用Qtライセンスを利用すれば、これら両方の制約が解除されます。
注:GPLソフトウェアを商用プロジェクトで使用すること自体は可能ですが、その結果生じる製品をプロプライエタリに保つことはできません。法的・財務上のリスクを避けるため、各組織はオープンソースポリシーを見直し、社内の法務レビューを通じてGPLの義務への準拠を確認することをお勧めします。
QGroundControlの商用利用
GPL v3は、フリーソフトウェアの原則に基づいてコードを開発するための正当な選択肢であり、その結果生じるソースコードはコミュニティと共有されます。
重要:ソースコードを公開しないプロプライエタリなアプリケーションを構築する場合は、商用ライセンスが必要です。
QGCライセンス情報に記載のとおり、QGCとQtの組み合わせとして認められているのは以下の2パターンです。
| 項目 | オープンソースの場合 | 商用の場合 |
|---|---|---|
| QGroundControl | GPL v3 | Apache 2.0 |
| Qtフレームワーク | オープンソース(GPL v3) | 商用Qt |
| 適した用途 | コミュニティ、研究 | 製品開発、受託開発 |
| 主な義務 | 完全なコピーレフト | 商用ライセンス条件 |
| プロプライエタリコード | 公開が必要 | 非公開が可能 |
| ハードウェアロック | 不可 | 可能 |
航空宇宙・防衛向けソフトウェアのその他のリソース
航空宇宙・防衛分野におけるQt Group
クロスプラットフォーム対応のソフトウェア設計・開発・テストを支えるQt Groupのテクノロジーで、提供スピードの向上、継続的な適応、モジュール単位での技術アップグレードを実現します。
航空宇宙・防衛分野におけるQtのオープンソースおよび商用ライセンス
防衛関連プログラムでは、認証、調達、輸出管理の要件を満たすためにソースコードの透明性が求められます。これは、バイナリのみで提供されるソフトウェア製品にとって構造的な障壁となります。