[MAVLINKのドキュメントの雑な日本語訳]  - MAVLink Developer Guide

# MAVLink Developer Guide - MAVLink開発者ガイド

> MAVLink is a very lightweight messaging protocol for communicating with drones (and between onboard drone components).

MAVLinkはドローンと（そしてオンボードドローンコンポーネント間で）通信するための非常に軽量のメッセージングプロトコルです。

> MAVLink follows a modern hybrid publish-subscribe and point-to-point design pattern: Data streams are sent / published as topics while configuration sub-protocols such as the mission protocol or parameter protocol are point-to-point with retransmission.

MAVLinkはモダンなパブリッシュ-サブスクライブとポイントツーポイント設計パターンのハイブリッドで設計されています。データストリームはトピックとして送信/パブリッシュされ、ミッションプロトコルやパラメータプロトコルなどの設定サブプロトコルはポイントツーポイントで再送信されます。

> Messages are defined within XML files. Each XML file defines the message set supported by a particular MAVLink system, also referred to as a "dialect". The reference message set that is implemented by most ground control stations and autopilots is defined in common.xml (most dialects build on top of this definition).

メッセージはXMLファイル内で定義されています。各XMLファイルは、「方言」とも呼ばれる、特定のMAVLinkシステムによってサポートされるメッセージセットを定義します。ほとんどの地上管制局と自動操縦装置によって実行される参照メッセージセットはcommon.xmlで定義されています（ほとんどの方言はこの定義に基づいて構築されています）。

> The MAVLink toolchain uses the XML message definitions to generate MAVLink libraries for each of the supported programming languages. Drones, ground control stations, and other MAVLink systems use the generated libraries to communicate. These are typically MIT-licensed, and can therefore be used without limits in any closed-source application without publishing the source code of the closed-source application.

MAVLinkツールチェーンはXMLメッセージ定義を使用して、サポートされている各プログラミング言語用のMAVLinkライブラリを生成します。 無人偵察機、地上管制局、およびその他のMAVLinkシステムは、生成されたライブラリを使用して通信します。 これらは通常MITライセンスされているため、クローズドソースアプリケーションのソースコードを公開しなくても、クローズドソースアプリケーションで制限なく使用できます。

> The C reference implementation is a header-only library that is highly optimized for resource-constrained systems with limited RAM and flash memory. It is field-proven and deployed in many products where it serves as interoperability interface between components of different manufacturers.

Cリファレンス実装は、RAMとフラッシュメモリが限られているリソースに制約のあるシステム用に高度に最適化された、ヘッダのみのライブラリです。 さまざまなメーカーのコンポーネント間の相互運用性インターフェースとして機能する多くの製品で、現場で実証され、展開されています。

> MAVLink was first released early 2009 by Lorenz Meier and has now a significant number of contributors.

MAVLinkは、Lorenz Meierによって2009年初めに最初にリリースされ、そして現在、かなりの数の貢献者を持っています。


## Key Features - 主な機能

> - Very efficient. MAVLink 1 has just 8 bytes overhead per packet, including start sign and packet drop detection. MAVLink 2 has just 14 bytes of overhead (but is a much more secure and extensible protocol). Because MAVLink doesn't require any additional framing it is very well suited for applications with very limited communication bandwidth.

- とても効率的です。MAVLink 1は、スタートサインやパケットドロップ検出を含め、1パケットあたりわずか8バイトのオーバーヘッドがあります。 MAVLink 2にはわずか14バイトのオーバーヘッドがあります（ただし、はるかに安全で拡張可能なプロトコルです）。MAVLinkは追加のフレーミングを必要としないため、通信帯域幅が非常に限られているアプリケーションに非常に適しています。

> - Very reliable. MAVLink has been used since 2009 to communicate between many different vehicles, ground stations (and other nodes) over varied and challenging communication channels (high latency/noise). It provides methods for detecting packet drops, corruption, and for packet authentication.

- 高信頼です。MAVLinkは2009年以来、多様でチャレンジングな通信チャネル（高遅延/高ノイズ）を介して多くの異なる車両、地上局（および他のノード）間で通信するために使用されてきました。パケットのドロップ、破損、およびパケット認証を検出する方法を提供します。

> - Supports many programming languages, running on numerous microcontrollers/operating systems (including ARM7, ATMega, dsPic, STM32 and Windows, Linux, MacOS, Android and iOS).

- 多数のマイクロコントローラ/オペレーティングシステム（ARM7、ATMega、dsPic、STM32、およびWindows、Linux、MacOS、Android、iOSを含む）上で動作する多数のプログラミング言語をサポートします。

> - Allows up to 255 concurrent systems on the network (vehicles, ground stations, etc.)

- ネットワーク上で最大255のシステム（車両、地上局など）を同時に利用できます

> - Enables both offboard and onboard communications (e.g. between a GCS and drone, and between drone autopilot and MAVLink enabled drone camera).

- 機外通信と機内通信の両方が可能です（GCSとドローン間、ドローンオートパイロットとMAVLink対応ドローンカメラ間など）。


## Supported Languages - サポートしているプログラミング言語

> The MAVLink project includes the mavgen and mavgenerate tools that can be used to create MAVLink libraries for a number of programming languages. Additional generators have been provided by other projects.

MAVLinkプロジェクトには、多数のプログラミング言語用のMAVLinkライブラリを作成するために使用できるmavgenおよびmavgenerateツールが含まれています。 他のプロジェクトから追加のジェネレータが提供されています。

> The MAVLink project has not validated and does not provide technical support for generators other than mavgen and mavgenerate.

MAVLinkプロジェクトは、mavgenおよびmavgenerate以外のジェネレータに対して検証されておらず、テクニカルサポートも提供していません。

> The table below shows the available languages/generators, along with their support for MAVLink v1, MAVLink 2 and Message Signing.

以下の表は、利用可能な言語/ジェネレータ、およびMAVLink v1、MAVLink 2、およびメッセージ署名のサポートを示しています。

※表は省略


## Prebuilt MAVLink C Libraries - ビルド済みMAVLink Cライブラリ

> C MAVLink Source Files (only) are auto-generated for the latest versions of all message specifications/dialects (for both MAVLink 1 and 2):

C MAVLinkソースファイル（のみ）は、すべてのメッセージ仕様/方言の最新バージョン用に自動生成されます（MAVLink 1と2の両方）。

- c_library_v2 (MAVLink 2)
- c_library_v1 (MAVLink 1)

> [Using C Libraries](https://mavlink.io/en/mavgen_c/) explains how to use these libraries.

[Cライブラリの使い方](https://mavlink.io/en/mavgen_c/)でこれらのライブラリの使い方を説明します。

※後略