Создайте сервисный сервер 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 |