Mavlink -Micro Air Vehicleメッセージマーシャリングライブラリ。
Mavlinkは、非常に軽量のヘッダー専用メッセージライブラリで、ドローンおよび/または地上制御ステーション間の通信用です。これは主に、XMLファイルで定義されたさまざまなシステム(「方言」)のメッセージセット仕様と、これらをサポート言語の適切なソースコードに変換するPythonツールで構成されています。 Mavlinkデータを操作するための例とユーティリティを提供する追加のPythonスクリプトがあります。
ヒントMavlinkは、通信帯域幅が非常に限られているアプリケーションに非常に適しています。 Cでの参照実装は、RAMとフラッシュメモリが制限されているリソース制約システム用に高度に最適化されています。これはフィールドプラブンであり、さまざまなメーカーのコンポーネント間の相互運用性インターフェイスとして機能する多くの製品に展開されています。
Ubuntu LTS 20.04または22.04に最小限のMavlink環境をインストールするには、端末に以下を入力してください。
# Dependencies
sudo apt install python3-pip
# Clone mavlink into the directory of your choice
git clone https://github.com/mavlink/mavlink.git --recursive
cd mavlink
python3 -m pip install -r pymavlink/requirements.txt次に、表示されているように、 /mavlinkディレクトリからmessage_definitions/v1.0/common.xmlのmavlink2 c-libraryを作成できます。
python3 -m pymavlink.tools.mavgen --lang=C --wire-protocol=2.0 --output=generated/include/mavlink/v2.0 message_definitions/v1.0/common.xmlcmakeにヘッダーを含めるには、例えばディレクトリinstallにローカルにインストールします。
cmake -Bbuild -H. -DCMAKE_INSTALL_PREFIX=install -DMAVLINK_DIALECT=common -DMAVLINK_VERSION=2.0
cmake --build build --target install
次に、 find_packageを使用して、 CMakeLists.txtの依存関係を取得します。
find_package(MAVLink REQUIRED)
add_executable(my_program my_program.c)
target_link_libraries(my_program PRIVATE MAVLink::mavlink)
ローカルインストールディレクトリをcmakeに渡します(ディレクトリ構造に適応します):
cd ../my_program
cmake -Bbuild -H. -DCMAKE_PREFIX_PATH=../mavlink/install
完全な例については、例を確認してください。
注:cmakeでtarget_link_librariesを使用している場合でも、実際にはMavlinkに「リンク」していません。単なるヘッダーのみのライブラリであるためです。
C Mavlinkライブラリ(Mavgen)の使用では、Cライブラリを使用するための手順がカバーされます。
注: Mavlink Toolchainのインストールでは、他のUbuntuプラットフォームやWindowsにMavlinkをインストールする方法について説明します。Mavlinkライブラリを生成すると、プロジェクトでサポートされている他のプログラミング言語のMavlinkを構築する方法が説明されています。 Mavlinkライブラリを使用するサブトピックは、生成されたライブラリの使用方法を説明しています。