waitForServer

Ждите запуска сервера действий

Описание

пример

waitForServer(client) ожидает, пока сервер действий не будет запущен и доступен для отправки целей. The 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);

Действие fibonacci вычисляет последовательность fibonacci для заданного порядка, заданного в сообщении цели. Сообщение о цели было возвращено при создании клиента действий и может быть изменено для отправки целей на сервер действий 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]'

Отсоединитесь от сети ROS.

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)

Отсоединитесь от сети ROS.

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

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

свернуть все

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

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

Введенный в R2019b