sendGoalAndWait

Отправьте целевое сообщение и ожидайте результата

Синтаксис

resultMsg = sendGoalAndWait(client,goalMsg)
resultMsg = sendGoalAndWait(client,goalMsg,timeout)
[resultMsg,state,status] = sendGoalAndWait(___)

Описание

пример

resultMsg = sendGoalAndWait(client,goalMsg) отправляет целевое сообщение с помощью заданного клиента действия для сервера действия и ожидает, пока сервер действия не возвращает сообщение результата. Нажмите Ctrl+C, чтобы прервать ожидание.

resultMsg = sendGoalAndWait(client,goalMsg,timeout) задает период тайм-аута в секундах. Если сервер не возвращает результат в период тайм-аута, функция отображает ошибку.

[resultMsg,state,status] = sendGoalAndWait(___) возвращает итоговое целевое состояние и сопоставленный текст состояния с помощью любого из предыдущих синтаксисов. state содержит информацию о где целевое выполнение, за которым следуют или нет.

Примеры

свернуть все

Отправьте и отмените цели по действиям ROS. Во-первых, установите клиент действия ROS. Затем отправьте целевое сообщение с измененными параметрами. Наконец, отмените свою цель и все цели на сервере действия.

Соединитесь с сетью ROS с заданным IP-адресом. Создайте клиент действия ROS, соединенный с помощью rosactionclient. Задайте имя действия. Ожидайте клиента, чтобы быть соединенными с сервером.

rosinit('192.168.154.131')
[actClient,goalMsg] = rosactionclient('/fibonacci');
waitForServer(actClient);
Initializing global node /matlab_global_node_40739 with NodeURI http://192.168.154.1:57343/

Отправьте целевое сообщение с измененными параметрами. Ожидайте цели закончить выполняться.

goalMsg.Order = 4;
sendGoalAndWait(actClient,goalMsg)
Goal active
Feedback: 
  Sequence :  [0, 1, 1]
Feedback: 
  Sequence :  [0, 1, 1, 2]
Feedback: 
  Sequence :  [0, 1, 1, 2, 3]
Feedback: 
  Sequence :  [0, 1, 1, 2, 3, 5]

ans = 

  ROS FibonacciResult message with properties:

    MessageType: 'actionlib_tutorials/FibonacciResult'
       Sequence: [6×1 int32]

  Use showdetails to show the contents of the message

Отправьте новое целевое сообщение без ожидания.

goalMsg.Order = 5;
sendGoal(actClient,goalMsg)

Отмените цель на клиенте действия ROS, actClient.

cancelGoal(actClient)

Отмените все цели на сервере действия, с которым соединяется actClient.

cancelAllGoals(actClient)

Удалите клиент действия.

delete(actClient)

Отключитесь от сети ROS.

rosshutdown
Shutting down global node /matlab_global_node_40739 with NodeURI http://192.168.154.1:57343/

Входные параметры

свернуть все

Клиент действия ROS, заданный как указатель на объект SimpleActionClient. Этот простой клиент действия позволяет вам отследить одну цель за один раз.

Сообщение цели действия ROS, заданное как указатель на объект Message. Обновите это сообщение со своими целевыми деталями и отправьте его клиенту действия ROS, использующему sendGoal или sendGoalAndWait.

Период тайм-аута для получения сообщения результата, заданного как скаляр в секундах. Если клиент не получает новое сообщение результата в том периоде времени, ошибка отображена.

Выходные аргументы

свернуть все

Сообщение результата, возвращенное как объект ROS Message. Сообщение результата содержит данные о результате, отправленные сервером действия. Эти данные зависят от типа действия.

Итоговое целевое состояние, возвращенное как одно из следующего:

  • 'pending' — Цель была получена, но еще не была принята или отклонена.

  • 'active' — Цель была принята и работает на сервере.

  • 'succeeded' — Цель выполняется успешно.

  • 'preempted' — Клиент действия отменил цель, прежде чем она закончила выполняться.

  • 'aborted' — Цель была прервана, прежде чем она закончила выполняться. Сервер действия обычно прерывает цель.

  • 'rejected' — Цель не была принята будучи в состоянии 'pending'. Сервер действия обычно инициировал это состояние.

  • 'recalled' — Клиент отменил цель, в то время как это было в состоянии 'pending'.

  • 'lost' — Внутренняя ошибка произошла в клиенте действия.

Текст состояния, который сервер сопоставил с итоговым целевым состоянием, возвращенным как вектор символов.

Введенный в R2017b