MAVLINKのドキュメントの雑な日本語訳 Microservices

原文: https://mavlink.io/en/services/

- https://github.com/mavlink/mavlink-devguide にプルリクエスト送ったらいいっぽいけどその前にメモ書き
- プロトコルの全容を把握するのが目的なので全部は訳してない

# [Heartbeat/Connection Protocol](https://mavlink.io/en/services/heartbeat.html) - 生存確認/接続プロトコル

> The heartbeat protocol is used to determine whether a system is connected, and to detect when it has disconnected.

ハートビートプロトコルは、システムが接続されているかどうかを判断し、システムがいつ切断されたかを検出するために使用されます。


## Connection/Disconnection - 接続/接続解除

> A MAVLink component considers itself connected to another system/component if it regularly receives their HEARTBEAT message (and disconnected if expected messages are not received). Therefore, to set up a "connection" every component must regularly broadcast its HEARTBEAT and monitor for heartbeats from other components/systems.

MAVLinkコンポーネントは、HEARTBEATメッセージを定期的に受信している場合は自分自身が別のシステム/コンポーネントに接続されていると見なします（予期されるメッセージが受信されない場合は切断されます）。 したがって、「接続」を設定するには、すべてのコンポーネントが定期的にそのハートビートをブロードキャストし、他のコンポーネント/システムからのハートビートを監視する必要があります。

> The rate at which the HEARTBEAT message must be broadcast, and how many messages may be "missed" before the connection is considered to be broken depends on the channel (it is not defined by MAVLink). On RF telemetry links, components typically publish their heartbeat at 1 Hz and consider another system to have disconnected if four or five messages are not received.

HEARTBEATメッセージをブロードキャストしなければならない速度、および接続が切断されると見なされるまでに「見逃される」可能性があるメッセージの数はチャネルによって異なります（MAVLinkでは定義されていません）。 RFテレメトリリンクでは、コンポーネントは通常1 Hzでハートビートをパブリッシュし、4つまたは5つのメッセージが受信されない場合は別のシステムが切断されたと見なします。

> A system may choose not to broadcast information if it does not detect another system, and it will continue to send messages to a system while it is receiving heartbeats. Therefore it is important that systems:

システムは、他のシステムを検出しない場合は情報をブロードキャストしないことを選択することがあり、ハートビートを受信している間はシステムにメッセージを送信し続けます。それ故に、システムは次のことを行うことが重要です:

- broadcast a heartbeat even when not commanding the remote system.

リモートシステムにコマンドを送出していなくても、システムはハートビートをブロードキャストする。

- do not broadcast a heartbeat when they are in a faulted state (i.e. do not publish a heartbeat from a separate thread that is unaware of the state of the rest of the component).

障害状態にあるときはハートビートをブロードキャストしない（つまり、コンポーネントの残りの状態を認識していない別のスレッドからハートビートを発行しないでください）。

## Ground Control Station (GCS) Connections

> In addition using the heartbeat to establish connection/disconnection, a GCS may not report that an autopilot is connected until its parameters have been downloaded.

ハートビートを使用して接続/切断を確立することに加えて、GCSは、そのパラメータがダウンロードされるまでオートパイロットが接続されていることを報告しないかもしれません。



# [Mission Protocol](https://mavlink.io/en/services/mission.html) - ミッションプロトコル

> The mission sub-protocol allows a GCS or developer API to manage mission (flight plan), geofence and safe point information on a drone/component.

ミッションサブプロトコルは、GCSまたは開発者APIが無人機やコンポーネント上に記録されているミッション（飛行計画）、ジオフェンスおよび安全ポイント情報を管理することを可能にします。

> The protocol covers:

プロトコルは次の項目をカヴァーします:

- Operations to upload, download and clear missions, set/get the current mission item number, and get notification when the current mission item has changed.

ミッションのアップロード、ダウンロード、クリア、現在のミッションアイテム番号の設定/取得、および現在のミッションアイテムが変更されたときの通知の取得のための操作。

- Message type(s) for exchanging mission items.

ミッションアイテムを交換するためのメッセージタイプ。

- MAVLink commands that are common to most autopilots/GCS.

ほとんどのオートパイロット/ GCSに共通のMAVLinkコマンド。

> The protocol follows the client/server pattern, where operations (and most commands) are initiated by the GCS/developer API (client) and acknowledged by the autopilot (server).

プロトコルはクライアント/サーバーパターンに従い、操作（そしてほとんどのコマンド）はGCSまたは開発者API（クライアント）によって開始され、オートパイロット（サーバー）によって確認されます。

> The protocol supports re-request of messages that have not arrived, allowing missions to be reliably transferred over a lossy link.

このプロトコルは、到着していないメッセージの再要求をサポートしているため、ミッションを損失のあるリンクで確実に転送できます。

## Mission Types - ミッション種別

> MAVLink 2 supports three types of "missions": flight plans, geofences and rally/safe points. The protocol uses the same sequence of operations for all types (albeit with different types of Mission Items). The mission types must be stored and handled separately/independently.

MAVLink2は3つのタイプの「ミッション」をサポートします: フライトプラン、ジオフェンス、そしてラリー/セーフポイントです。このプロトコルは、（異なるタイプのミッションアイテムではあるが）全てのタイプに対して同じ一連の操作を使用します。任務の種類は別々にかつ独立して保存され取り扱われなければいけません。

> Mission protocol messages include the type of associated mission in the mission_type field (a MAVLink 2 message extension). The field takes one of the MAV_MISSION_TYPE enum values: MAV_MISSION_TYPE_MISSION, MAV_MISSION_TYPE_FENCE, MAV_MISSION_TYPE_RALLY.

ミッションプロトコルメッセージは、mission_typeフィールド（MAVLink2メッセージ拡張）に関連ミッションのタイプを含みます。このフィールドは、MAV_MISSION_TYPEの列挙値: MAV_MISSION_TYPE_MISSION, MAV_MISSION_TYPE_FENCE, MAV_MISSION_TYPE_RALLY のいずれかを取ります。


# [Parameter Protocol](https://mavlink.io/en/services/parameter.html) - パラメータプロトコル

> The parameter microservice is used to exchange configuration settings between MAVLink systems.

パラメータマイクロサービスはMAVLinkシステム間で設定を交換するために使用されます。

> The protocol guarantees delivery/reliable synchronisation of parameters for systems where the parameter set does not change during normal operation.

このプロトコルは、通常の運用中にパラメータが変更されないシステムに対して、パラメータの配信と信頼性の高い同期を保証します。

> Each parameter is represented as a key/value pair. The key is usually the human-readable name of the parameter (maximum of 16 characters) and a value - which can be one of a number of types.

各パラメータはキーと値のペアとして表されます。 キーは通常、人間が読めるパラメータの名前（最大16文字）と値です。これは、さまざまなタイプのいずれかです。

> This key/value pair has a number of important properties:

このキーと値のペアには、いくつかの重要なプロパティがあります:

> - The human-readable name is small but useful (it can encode parameter names from which users can infer the purpose of the parameter).

人間が読める名前は小さいですが便利です（ユーザーがパラメータの目的を推測できるパラメータ名をエンコードできます）。

> - Unknown autopilots that implement the protocol can be supported "out of the box".

このプロトコルを実装している未知のオートパイロット装置は、「そのまま」使用できます。

> - A GCS does not have to know in advance what parameters exist on a remote system (although in practice a GCS can provide a better user experience with additional parameter metadata like maximum and minimum values, default values, etc.).

GCSは、リモートシステムにどのようなパラメータが存在するかを事前に知る必要はありません（ただし、実際には、GCSは最大値、最小値、デフォルト値などの追加のパラメータメタデータによってより良いユーザーエクスペリエンスを提供できます）。

> - Adding a parameter only requires changes to the system with parameters. A GCS that loads the parameters, and the MAVLink communication libraries, should not require any changes.

パラメータを追加するには、パラメータによるシステムへの変更のみが必要です。 パラメータをロードするGCS、およびMAVLink通信ライブラリは、変更を必要としません。