exponenta event banner

waitForServer

Дождитесь запуска сервера действий

Описание

пример

waitForServer(client) ожидает, пока сервер действий не будет запущен и доступен для отправки целей. IsServerConnected имущества SimpleActionClient показывает состояние соединения с сервером. Нажмите Ctrl + C, чтобы прервать ожидание.

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

Примеры

свернуть все

В этом примере показано, как создать клиент действия ROS и выполнить действие. Типы действий должны быть предварительно настроены с запущенным сервером действий.

Необходимо настроить '/fibonacci' тип действия. Чтобы запустить этот сервер действий, используйте следующую команду в системе ROS:

rosrun actionlib_tutorials fibonacci_server

Подключение к сети ROS. Для сбора информации о доступных действиях необходимо подключиться к сети ROS. Заменить ipaddress с вашим сетевым адресом.

ipaddress = '192.168.203.133';
rosinit(ipaddress,11311)
Initializing global node /matlab_global_node_81947 with NodeURI http://192.168.203.1:54283/

Список действий, доступных в сети. Единственным действием, настроенным в этой сети, является '/fibonacci' действия.

rosaction list
/fibonacci

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

[actClient,goalMsg] = rosactionclient('/fibonacci','DataFormat','struct');

Дождитесь подключения клиента действий к серверу.

waitForServer(actClient);

Действие фибоначчи вычислит последовательность фибоначчи для заданного порядка, указанного в целевом сообщении. Сообщение о цели было возвращено при создании клиента действия и может быть изменено для отправки целей на сервер действий ROS. Установка порядка в int32 значение 8.

goalMsg.Order = int32(8);

Отправить цель и дождаться ее завершения. Укажите время ожидания 10 секунд для завершения действия.

[resultMsg,resultState] = sendGoalAndWait(actClient,goalMsg,10);
rosShowDetails(resultMsg)
ans = 
    '
       MessageType :  actionlib_tutorials/FibonacciResult
       Sequence    :  [0, 1, 1, 2, 3, 5, 8, 13, 21]'

Отключитесь от сети АФК.

rosshutdown
Shutting down global node /matlab_global_node_81947 with NodeURI http://192.168.203.1:54283/

В этом примере показано, как отправлять и отменять цели для действий ROS. Типы действий должны быть предварительно настроены с запущенным сервером действий.

Необходимо настроить '/fibonacci' тип действия. Чтобы запустить этот сервер действий, используйте следующую команду в системе ROS:

rosrun actionlib_tutorials fibonacci_server

Сначала настройте клиент действия ROS. Затем отправьте сообщение цели с измененными параметрами. Наконец, отмените цель и все цели на сервере действий.

Подключение к сети ROS с указанным IP-адресом. Создание клиента действий ROS, подключенного к сети ROS с помощью rosactionclient. Укажите имя действия. Дождитесь подключения клиента к серверу.

rosinit('192.168.203.133',11311)
Initializing global node /matlab_global_node_18287 with NodeURI http://192.168.203.1:55284/
[actClient,goalMsg] = rosactionclient('/fibonacci','DataFormat','struct');
waitForServer(actClient);

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

goalMsg.Order = int32(4);
[resultMsg,resultState] = sendGoalAndWait(actClient,goalMsg)
resultMsg = struct with fields:
    MessageType: 'actionlib_tutorials/FibonacciResult'
       Sequence: [0 1 1 2 3]

resultState = 
'succeeded'
rosShowDetails(resultMsg)
ans = 
    '
       MessageType :  actionlib_tutorials/FibonacciResult
       Sequence    :  [0, 1, 1, 2, 3]'

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

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

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

cancelGoal(actClient)

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

cancelAllGoals(actClient)

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

delete(actClient)

Отключитесь от сети АФК.

rosshutdown
Shutting down global node /matlab_global_node_18287 with NodeURI http://192.168.203.1:55284/

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

свернуть все

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

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

Представлен в R2019b