Создайте сервер службы 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 |