Создание сервера службы ROS
Использовать rossvcserver или ros.ServiceServer для создания сервера услуг ROS, который может принимать запросы и отправлять ответы клиенту услуг ROS. Перед созданием клиента службы необходимо создать сервер службы rossvcclient.
При создании клиента службы он устанавливает соединение с сервером. Соединение сохраняется, пока существуют и клиент, и сервер, и может достигать друг друга. При создании сервисного сервера он регистрируется на ведущем сервере ROS. Чтобы получить список услуг или информацию о конкретной услуге, доступной в текущей сети ROS, используйте rosservice функция.
Служба имеет связанный тип сообщения и содержит пару сообщений: одно для запроса и одно для ответа. Сервер услуг принимает запрос, создает соответствующий ответ на основе функции вызова и возвращает его клиенту. Поведение сервера услуг является асинхронным, поскольку он становится активным только тогда, когда клиент услуг подключается к сети ROS и выдает вызов.
Используйте ros.ServiceServer синтаксис при подключении к определенному узлу ROS.
Примечание
В следующем выпуске Панель инструментов ROS будет использовать структуры сообщений вместо объектов для сообщений ROS.
Чтобы использовать структуры сообщений сейчас, установите "DataFormat" аргумент «имя-значение» для "struct". Для получения дополнительной информации см. Структуры сообщений ROS.
создает объект сервера службы с указанным server = rossvcserver(servicename,svctype)ServiceType доступно в сети АФК под именем ServiceName. Объект службы не может отвечать на запросы службы, пока не будет указан обратный вызов дескриптора функции. NewMessageFcn.
определяет функцию обратного вызова, которая создает ответ при получении сервером запроса. 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 |