Создайте сервер службы ROS
Использование rossvcserver или ros.ServiceServer чтобы создать сервер службы ROS, который может получать запросы от клиента службы ROS и отправлять ответы. Перед созданием клиента службы необходимо создать сервер rossvcclient.
Когда вы создаете клиент службы, он устанавливает соединение с сервером. Соединение сохраняется, когда клиент и сервер существуют и могут связаться друг с другом. Когда вы создаете сервер службы, он регистрируется в мастере ROS. Чтобы получить список сервисов или получить информацию о конкретном сервисе, который доступен в текущей сети ROS, используйте rosservice функция.
Сервис имеет связанный тип сообщения и содержит пару сообщений: одно для запроса и одно для ответа. Сервер службы получает запрос, создает соответствующий ответ на основе функции вызова и возвращает его клиенту. Поведение сервера службы по своей сути является асинхронным, поскольку он становится активным только тогда, когда клиент службы соединяется с сетью ROS и отправляет вызов.
Используйте ros.ServiceServer синтаксис при соединении с определенным узлом ROS.
Примечание
В следующем релизе ROS Toolbox будет использовать структуры сообщений вместо объектов для сообщений ROS.
Чтобы использовать структуры сообщений, установите "DataFormat" аргумент имя-значение в "struct". Для получения дополнительной информации см. раздел Структуры сообщений ROS.
создает объект сервера служб с заданным server = rossvcserver(servicename,svctype)ServiceType доступно в сети ROS под именем ServiceName. Объект службы не может отвечать на запросы на обслуживание, пока вы не задаете указателя на функцию коллбэка, NewMessageFcn.
задает функцию обратного вызова, которая создает ответ, когда сервер получает запрос. The server = rossvcserver(servicename,svctype,callback)callback задает NewMessageFcn свойство.
[___] = rossvcclient(___,"DataFormat","struct") использует структуры сообщений вместо объектов с любым из аргументов в предыдущих синтаксисах. Для получения дополнительной информации см. раздел Структуры сообщений ROS.
server = ros.ServiceServer( создает сервер службы, который присоединяется к узлу ROS, node, name,type)node. Сервер становится доступным через указанное имя службы и вводится, когда указатель на функцию обратного вызова задан в NewMessageFcn.
server = ros.ServiceServer( задает функцию обратного вызова, которая установлена на node, name,type,callback)NewMessageFcn свойство.
[___]
= ros.ServiceServer(___,"DataFormat","struct") использует структуры сообщений вместо объектов. Для получения дополнительной информации см. раздел Структуры сообщений ROS.
rosmessage | Создание сообщений ROS |