MAVLink — различия между версиями
Admin (обсуждение | вклад) (Новая страница: «MAVLink ('''M'''icro '''A'''ir '''V'''ehicle '''Link''') — протокол обмена информацией между наземная станция…») |
Admin (обсуждение | вклад) (→Ссылки) |
||
Строка 26: | Строка 26: | ||
== Ссылки == | == Ссылки == | ||
* [http://qgroundcontrol.org/mavlink/start Официальный сайт] | * [http://qgroundcontrol.org/mavlink/start Официальный сайт] | ||
+ | * [https://github.com/mavlink MAVLink на гитхабе] | ||
* Статья на Хабре о программировании MAVLink: [https://habrahabr.ru/post/312300/ Часть 1] [https://habrahabr.ru/post/312592/ Часть 2] | * Статья на Хабре о программировании MAVLink: [https://habrahabr.ru/post/312300/ Часть 1] [https://habrahabr.ru/post/312592/ Часть 2] | ||
* [http://diydrones.com/group/arducopterusergroup/forum/topics/mavlink-tutorial-for-absolute-dummies-part-i Руководство] на diydrones.com ''(англ.)'' | * [http://diydrones.com/group/arducopterusergroup/forum/topics/mavlink-tutorial-for-absolute-dummies-part-i Руководство] на diydrones.com ''(англ.)'' |
Версия 13:22, 29 ноября 2016
MAVLink (Micro Air Vehicle Link) — протокол обмена информацией между наземной станцией (GCS, Ground control station, а также её компонентами) и любыми малыми беспилотными аппаратами (MAV - Micro Air Vehicle): летающими, ездящими, плавающими, и т.д.
MAVLink распространяется под лицензией LGPL в виде модуля для python (есть удобная обёртка DroneKit) и генератора библиотек под различные языки, в том числе header-only С/C++ библиотеки. Есть так же репозитории уже сгенерированных библиотек для MAVLink версии v1 и версии v2.
Формат
Базовый пакет MAVLink, имеет следующий формат:
- Первый байт пакета (STX) — это символ начала пакета:
- 0xFD для версии v2.0
- 0xFE для версии v1.0
- 0x55 для версии v0.9
- LEN — длина информационной части пакета.
- SEQ — счётчик пакета (0-255), который поможет выявить потерю сообщения.
- SYS (System ID) — идентификатор отправляющей системы.
- COMP (Component ID) — идентификатор отправляющего компонента.
- MSG (Message ID) — тип сообщения, от него зависит, какие данные будут лежать в информационной части пакета.
- PAYLOAD — информационная часть пакета: сообщение, размером от 0 до 255 байт.
- Два последних байта пакета — CKA и CKB, нижний и верхний байт, соответственно, содержат контрольную сумму пакета.
Библиотека MAVLink позволяет кодировать и раскодировать пакеты согласно протоколу, но она не регламентирует, какими аппаратными и программными средствами данные будет отправлены — это могут быть TCP/UDP сообщения, обмен через последовательный порт, да что угодно, что обеспечивает двухсторонний обмен. Библиотека обрабатывает входные данные побайтово, добавляя их в буфер и сама собирает из них пакет. Каждая система или компонент, может одновременно обмениваться данными по разным источникам, тогда для каждого источника назначается специальный идентификатор, называемый channel (канал). MAVLink содержит буфер на каждый канал.
Ссылки
- Официальный сайт
- MAVLink на гитхабе
- Статья на Хабре о программировании MAVLink: Часть 1 Часть 2
- Руководство на diydrones.com (англ.)