exponenta event banner

звонить

Вызовите служебный сервер ROS и получите ответ

Описание

пример

response = call(serviceclient) отправляет сообщение запроса услуги по умолчанию и ожидает услуги response. Сообщение запроса на обслуживание по умолчанию является пустым сообщением типа serviceclient.ServiceType.

пример

response = call(serviceclient,requestmsg) определяет сообщение запроса на обслуживание, requestmsg, для отправки в службу.

пример

response = call(___,Name,Value) предоставляет дополнительные параметры, указанные одним или несколькими Name,Value пары аргументов, используя любой из аргументов из предыдущих синтаксисов.

Примеры

свернуть все

Подключение к сети ROS.

rosinit
Launching ROS Core...
Done in 0.6921 seconds.
Initializing ROS master on http://192.168.0.10:52010.
Initializing global node /matlab_global_node_32067 with NodeURI http://bat6315glnxa64:41453/

Настройка сервера службы и клиента. Используйте структуры для формата данных сообщения ROS.

server = rossvcserver('/test', 'std_srvs/Empty', @exampleHelperROSEmptyCallback,...
                      'DataFormat','struct');
client = rossvcclient('/test','DataFormat','struct');

Сервер обслуживания вызовов с сообщением по умолчанию.

response = call(client)
response = struct with fields:
    MessageType: 'std_srvs/EmptyResponse'

Завершите работу сети ROS.

rosshutdown
Shutting down global node /matlab_global_node_32067 with NodeURI http://bat6315glnxa64:41453/
Shutting down ROS master on http://192.168.0.10:52010.

Подключение к сети ROS.

rosinit
Launching ROS Core...
Done in 0.68205 seconds.
Initializing ROS master on http://192.168.0.10:57635.
Initializing global node /matlab_global_node_78536 with NodeURI http://bat6315glnxa64:35549/

Настройка сервера службы и клиента. Этот сервер вычисляет сумму двух целых чисел и основан на учебном пособии службы ROS.

sumserver = rossvcserver('/sum','roscpp_tutorials/TwoInts',@exampleHelperROSSumCallback);
sumclient = rossvcclient('/sum');

Получение сообщения запроса для клиента и изменение параметров.

reqMsg = rosmessage(sumclient);
reqMsg.A = 2;
reqMsg.B = 1;

Вызовите службу и получите ответ. Ответ должен быть суммой двух целых чисел, указанных в сообщении запроса. Подождите 5 секунд, пока служба отключится.

response = call(sumclient,reqMsg,'Timeout',5)
response = 
  ROS TwoIntsResponse message with properties:

    MessageType: 'roscpp_tutorials/TwoIntsResponse'
            Sum: 3

  Use showdetails to show the contents of the message

Завершите работу сети ROS.

rosshutdown
Shutting down global node /matlab_global_node_78536 with NodeURI http://bat6315glnxa64:35549/
Shutting down ROS master on http://192.168.0.10:57635.

Входные аргументы

свернуть все

Клиент службы, указанный как ServiceClient дескриптор объекта.

Сообщение запроса, указанное как Message дескриптор объекта или структура. Тип сообщения по умолчанию: serviceclient.ServiceType.

Примечание

В следующем выпуске Панель инструментов ROS будет использовать структуры сообщений вместо объектов для сообщений ROS.

Чтобы использовать структуры сообщений сейчас, установите "DataFormat" аргумент «имя-значение» для "struct". Для получения дополнительной информации см. Структуры сообщений ROS.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: "TimeOut",5

Тайм-аут для ответа службы в секундах, указанный как пара, разделенная запятыми, состоящая из "Timeout" и скаляр. Если клиент службы не получает ответ службы и истечет период тайм-аута, call отображает сообщение об ошибке и позволяет MATLAB ® продолжить выполнение текущей программы. Значение по умолчанию inf запрещает MATLAB запускать текущую программу до тех пор, пока клиент службы не получит ответ службы.

Формат сообщения, указанный как "object" или "struct". Установите это свойство при создании клиента службы с помощью ввода «имя-значение». Для получения дополнительной информации см. Структуры сообщений ROS.

Выходные аргументы

свернуть все

Ответное сообщение, отправленное сервером службы, возвращенное как Message дескриптор объекта или структура.

Вопросы совместимости

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

Изменение поведения в будущем выпуске

См. также

|

Представлен в R2019b