Call Service

Вызовите сервис в сети ROS 2

  • Библиотека:
  • ROS Toolbox / ROS 2

  • Call Service Block ROS 2

Описание

Блок Call Service берет сообщение запроса на обслуживание ROS 2, отправляет его в сервисный сервер ROS 2 и ожидает ответа. Сервисный сервер ROS 2 должен быть настроен где-нибудь в сети перед использованием этого блока. Проверяйте доступные сервисы на сеть ROS 2 путем выполнения ros2 service list команда, которая использует ros2 функция. Используйте ros2svcserver настраивать сервисный сервер в MATLAB®.

Задайте имя для своего сервиса ROS 2 и сервисного типа в маске блока. Если соединено с сетью ROS 2, можно выбрать из списка доступных сервисов. Можно создать пустое сообщение запроса на обслуживание или ответа, чтобы заполнить с данными с помощью блока Blank Message.

Всегда задавайте параметры качества сервиса (QoS) в маске блока. Параметры QoS для этого блока должны быть совместимы с сервисным сервером, чтобы отправить запросы и получить ответы.

Порты

Входной параметр

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

Запросите сообщение в виде невиртуальной шины. Тип сообщения запроса соответствует вашему сервисному типу. Чтобы сгенерировать пустую шину сообщения запроса, чтобы заполнить с данными, используйте блок Blank Message.

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

Вывод

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

Сообщение ответа, возвращенное как невиртуальная шина. Ответ основан на сообщении входа Req. Тип сообщения ответа соответствует вашему сервисному типу. Чтобы сгенерировать пустую шину сообщения ответа, чтобы заполнить с данными, используйте блок Blank Message.

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

Состояние ошибки для сервиса вызывает в виде целого числа. Каждое целое число соответствует различному состоянию ошибки для сервисной связи или состояния сервисного вызова. Если состояние ошибки происходит, Resp выходные параметры последнее сообщение ответа или пустое сообщение, если ответ не был ранее получен.

Код ошибкиУсловие
0Сервисный ответ был успешно получен и доступен в Resp вывод .
1Связь не была установлена в заданном Connection timeout.
2Ответ с сервера не был получен.

Зависимости

Этот выход включен, когда флажком Show ErrorCode output port является on.

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

Параметры

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

Основной

Источник для определения сервисного имени:

  • Select from ROS network — Используйте Select, чтобы выбрать сервисное имя. Name и параметры Type установлены автоматически. Вы должны быть соединены с сетью ROS 2.

  • Specify your own — Введите сервисное имя в Name и задайте его сервисный тип в Type. Необходимо совпадать с сервисным именем точно.

Сервисное имя в виде вектора символов. Сервисное имя должно совпадать с сервисным именем, доступным на сервисном сервере ROS. Чтобы видеть список допустимых сервисов в сети ROS 2, смотрите ros2.

Сервисный тип в виде вектора символов. Каждое сервисное имя имеет соответствующий тип.

Тайм-аут для сервисной связи сервера в виде положительного числового скаляра в секундах. Если связь не может быть установлена с сервисным сервером ROS в это время, то ErrorCode выходные параметры 1.

Установите этот флажок, чтобы вывести ErrorCode выход. Если состояние ошибки происходит, Resp выходные параметры последнее сообщение ответа или пустое сообщение, если ответ не был ранее получен.

Качество сервиса (QoS)

Определяет режим хранения запросов в очереди. Если заливки очереди с запросами, ожидающими, чтобы быть обработанным, то старые запросы будут пропущены, чтобы создать место для нового. Если установлено в Keep last, очередь хранит количество запросов, установленных Depth параметр. Если установлено в Keep all, очередь хранит все запросы до пределов ресурса MATLAB.

Количество запросов сохранило в очереди запроса когда History установлен в Keep last.

Влияет на гарантию доставки запроса. Если Reliable, затем доставка гарантируется, но может повторить многократно. Если Best effort, затем делайте попытку доставки и не повторяйте. Reliable установка рекомендуется для сервисов.

Влияет на персистентность запросов, которая позволяет поздно стартовым серверам получать количество старых запросов, заданных Depth. Если Volatile, затем запросы не сохраняются. Если Transient local, затем блок сохранит новые запросы.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Смотрите также

Блоки

Функции

Введенный в R2021b