Создайте сервисный сервер 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
.
задает функцию обратного вызова, которая создает ответ, когда сервер получает запрос. 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 |