mavlinkio

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

Описание

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

Примечание

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

Создание

Описание

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 имя аргумента и 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:52884"

listTopics(mavlink)
ans =

  0x5 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