Свяжите с сервисным сервером ROS 2
Используйте ros2svcclient
создать сервисный объект клиента ROS 2. Этот сервисный клиент использует связь, чтобы отправить запросы к и получить ответы из, сервисный сервер ROS 2. Для получения дополнительной информации смотрите Вызов и Предоставьте ROS 2 Услуги.
создает сервисный клиент заданного client
= ros2svcclient(node
,servicename
,servicetype
)servicetype
независимо от ли сервисный сервер, предлагающий servicename
доступно. Это присоединяет клиент к узлу ROS 2, заданному ros2node
объект, node
.
[
возвращает новое сообщение запроса на обслуживание в client
,reqmsg
]
= ros2svcclient(___)reqmsg
, использование любого из аргументов от предыдущих синтаксисов. Тип сообщения reqmsg
определяется входным сервисным типом. Сообщение инициализируется значениями по умолчанию. Можно также создать использование сообщения запроса ros2message
.
ros2message | Создайте структуры сообщения ROS 2 |
call | Вызовите ROS или сервисный сервер ROS 2 и получите ответ |
isServerAvailable | Определите, доступен ли сервер ROS 2 ROS или сервиса |
waitForServer | Ожидайте ROS или сервисного сервера ROS 2, чтобы запуститься |
Сервисные серверы ROS 2 не могут передать ошибки в выполнении обратного вызова непосредственно клиентам. В таких ситуациях серверы только возвращают ответ по умолчанию без любой индикации относительно отказа. Следовательно, рекомендуется использовать блоки try-catch в функции обратного вызова и установить определенные поля в сообщении ответа передавать успех/отказ выполнения обратного вызова на серверной стороне.