Skip to main content

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のユーザーインターフェース、地図・ナビゲーション、ライブ映像フィードなどを支えています。

qt_drone_A_final_30

QGroundControlとQtのオープンソースライセンス

QGroundControlは、Apache 2.0(パーミッシブ)またはGPL v3(コピーレフト)のデュアルライセンスで提供されています。QGCは主にQtをベースに構築されているため、オープンソース利用者がより制限の緩いLGPLではなくGPLのもとでのみ使用できるQtモジュール—Qt GraphsQt HTTP ServerQt Quick 3Dなど—が課すGPLの条件を継承します。

強力なコピーレフトライセンスであるGPLでは、QGCのコードベースから派生した製品はすべてGPLの条件を継承しなければなりません

GPL v3のもとでソフトウェアを開発する場合、以下の2つの義務が生じます。

  • ソフトウェアを受け取るすべての人にソースコードを公開しなければならない。

  • ソフトウェアを特定のハードウェアにロックすることはできない

商用Qtライセンスを利用すれば、これら両方の制約が解除されます。

注:GPLソフトウェアを商用プロジェクトで使用すること自体は可能ですが、その結果生じる製品をプロプライエタリに保つことはできません。法的・財務上のリスクを避けるため、各組織はオープンソースポリシーを見直し、社内の法務レビューを通じてGPLの義務への準拠を確認することをお勧めします。

 

Drone Logistic

QGroundControlの商用利用

GPL v3は、フリーソフトウェアの原則に基づいてコードを開発するための正当な選択肢であり、その結果生じるソースコードはコミュニティと共有されます

重要:ソースコードを公開しないプロプライエタリなアプリケーションを構築する場合は、商用ライセンスが必要です。

QGCライセンス情報に記載のとおり、QGCとQtの組み合わせとして認められているのは以下の2パターンです。

項目 オープンソースの場合 商用の場合
QGroundControl GPL v3 Apache 2.0
Qtフレームワーク オープンソース(GPL v3) 商用Qt
適した用途 コミュニティ、研究 製品開発、受託開発
主な義務 完全なコピーレフト 商用ライセンス条件
プロプライエタリコード 公開が必要 非公開が可能
ハードウェアロック 不可 可能

Qt Components:

  • Qt6::Core - Core functionality
  • Qt6::Gui - GUI framework
  • Qt6::Widgets - Traditional widget-based UI
  • Qt6::Quick - Modern QML-based UI
  • Qt6::QuickControls2 - Material Design controls
  • Qt6::QuickWidgets - Integration between widgets and QML
  • Qt6::Qml - QML engine
  • Qt6::QmlIntegration - QML-C++ integration
  • Qt6::Charts - Data visualization (used for MAVLink Inspector)
  • Qt6::Location - Maps and positioning
  • Qt6::LocationPrivate - Advanced location features
  • Qt6::Positioning - GPS and coordinate handling
  • Qt6::Multimedia - Video streaming support
  • Qt6::Network - Network communications
  • Qt6::Concurrent - Multi-threading
  • Qt6::Sensors - Sensor data handling
  • Qt6::TextToSpeech - Audio notifications
  • Qt6::Svg - Vector graphics
  • Qt6::Sql - Database operations
  • Qt6::Xml - XML parsing
  • Qt6::Core5Compat - Qt5 compatibility layer

Optional Components:

  • Qt6::Bluetooth - Bluetooth connectivity
  • Qt6::OpenGL - 3D rendering
  • Qt6::Quick3D - 3D visualization (for 3D viewer feature)
  • Qt6::SerialPort - Serial communication
  • Qt6::Test - Unit testing framework
  • Qt6::WaylandClient (Linux only)

航空宇宙・防衛向けソフトウェアのその他のリソース

 

ドローン分野におけるQt Group

高度なHMI機能、ミッションプランニング、オペレーターインターフェースを提供する、ドローンおよび無人機向け地上管制ソフトウェア。

航空宇宙・防衛分野におけるQt Group

クロスプラットフォーム対応のソフトウェア設計・開発・テストを支えるQt Groupのテクノロジーで、提供スピードの向上、継続的な適応、モジュール単位での技術アップグレードを実現します。

航空宇宙・防衛分野におけるQtのオープンソースおよび商用ライセンス

防衛関連プログラムでは、認証、調達、輸出管理の要件を満たすためにソースコードの透明性が求められます。これは、バイナリのみで提供されるソフトウェア製品にとって構造的な障壁となります。

ドローンプロジェクトのご相談は、Qt Groupへ

 

詳しくはお問い合わせください