mavlinkio

Соединитесь с клиентами MAVLink, чтобы обмениваться сообщениями

Описание

Объект mavlinkio соединяется с клиентами MAVLink через порты UDP, чтобы обмениваться сообщениями с БПЛА (беспилотные воздушные автомобили) использование протоколов связи MAVLink.

Примечание

Этот объект требует, чтобы вы установили Библиотеку UAV для Robotics System Toolbox™. Чтобы установить дополнения, используйте roboticsAddons и выберите желаемое дополнение.

Создание

Синтаксис

mavlink = mavlinkio(msgDefinitions)
mavlink = mavlinkio(dialectXML)
mavlink = mavlinkio(dialectXML,version)
mavlink = mavlinkio(___,Name,Value)

Описание

mavlink = mavlinkio(msgDefinitions) создает интерфейс, чтобы соединиться с клиентами MAVLink, использующими объект входа mavlinkdialect, который задает определения сообщения. Этот объект диалекта установлен непосредственно в свойство Dialect.

пример

mavlink = mavlinkio(dialectXML) непосредственно задает XML-файл для определений сообщения как имя файла. mavlinkdialect создается с помощью этого XML-файла и устанавливается в свойство Dialect

mavlink = mavlinkio(dialectXML,version) дополнительно задает версию протокола MAVLink или как 1 или как 2.

mavlink = mavlinkio(___,Name,Value) дополнительно задает аргументы с помощью следующих пар "имя-значение".

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пары "имя-значение" непосредственно устанавливают информацию о клиенте MAVLink в свойстве LocalClient. Смотрите LocalClient для большего количества информации о том, какие значения могут быть установлены.

Свойства

развернуть все

Диалект MAVLink, заданный как объект mavlinkdialect. Диалект задает структуру сообщения для протокола MAVLink.

Это свойство доступно только для чтения.

Локальная информация клиента, указанная как структура. Локальный клиент является настройкой в MATLAB®, чтобы связаться с другими клиентами MAVLink. Структура содержит следующие поля:

  • SystemID

  • ComponentID

  • ComponentType

  • AutopilotType

Чтобы установить эти значения при создании объекта mavlinkio, используйте пары "имя-значение". Например:

mavlink = mavlinkio("common.xml","SystemID",1,"ComponentID",1)

Это свойство является ненастраиваемым, когда вы соединяетесь с клиентом MAVLink. Для получения дополнительной информации смотрите mavlinkclient.

Типы данных: struct

Функции объекта

connectСоединитесь с клиентами MAVLink через порт UDP
disconnectРазъединитесь от клиентов MAVLink
sendmsgОтправьте сообщение MAVLink
sendudpmsgОтправьте сообщение MAVLink в порт UDP
serializemsgСериализируйте сообщение MAVLink к бинарному буферу
listConnectionsПеречислите все активные связи MAVLink
listClientsПеречислите все соединили клиенты MAVLink
listTopicsПеречислите все темы, полученные клиентом MAVLink

Примеры

свернуть все

ПРИМЕЧАНИЕ: Этот пример требует, чтобы вы установили Библиотеку UAV для Robotics System Toolbox®. Вызовите roboticsAddons, чтобы открыть Проводник Дополнений и установить библиотеку.

Соединитесь с клиентом MAVLink.

mavlink = mavlinkio("common.xml");
connect(mavlink,"UDP");

Создайте объект для того, чтобы хранить клиентскую информацию. Задайте систему и ID компонента.

client = mavlinkclient(mavlink,1,1)
client = 
  mavlinkclient with properties:

         SystemID: 1
      ComponentID: 1
    ComponentType: "Unknown"
    AutopilotType: "Unknown"

Разъединитесь от клиента.

disconnect(mavlink)

Этот пример показывает, как соединиться с клиентами MAVLink, осмотреть список тем, связей и клиентов, и отправить сообщения через порты UDP с помощью протокола связи MAVLink.

ПРИМЕЧАНИЕ: Этот пример требует, чтобы вы установили Библиотеку UAV для Robotics System Toolbox®. Вызовите roboticsAddons, чтобы открыть Проводник Дополнений и установить библиотеку.

Соединитесь с клиентом MAVLink, использующим диалект "common.xml" . Этот локальный клиент связывается с любыми другими клиентами через порт UDP.

dialect = mavlinkdialect("common.xml");
mavlink = mavlinkio(dialect);
connect(mavlink,"UDP")
ans = 
"Connection1"

Можно перечислить все активные клиенты, связи и темы для связи MAVLink. В настоящее время существует только одна клиентская связь, и никакие темы не получили сообщения.

listClients(mavlink)
ans=1×4 table
    SystemID    ComponentID    ComponentType          AutopilotType     
    ________    ___________    ______________    _______________________

      255            1         "MAV_TYPE_GCS"    "MAV_AUTOPILOT_INVALID"

listConnections(mavlink)
ans=1×2 table
    ConnectionName      ConnectionInfo   
    ______________    ___________________

    "Connection1"     "UDP@0.0.0.0:64627"

listTopics(mavlink)
ans =

  0×5 empty table

Создайте подписчика для получения сообщений на клиенте. Этот подписчик прислушивается к теме сообщения "HEARTBEAT" с ID, равным 0.

sub = mavlinksub(mavlink,0);

Создайте сообщение "HEARTBEAT" с помощью объекта mavlinkdialect. Укажите информацию полезной нагрузки и отправьте сообщение по клиенту MAVLink.

msg = createmsg(dialect,"HEARTBEAT");
msg.Payload.type(:) = enum2num(dialect,'MAV_TYPE','MAV_TYPE_QUADROTOR');
sendmsg(mavlink,msg)

Разъединитесь от клиента.

disconnect(mavlink)

Введенный в R2019a