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