Ждите запуска сервера действий
waitForServer( ожидает, пока сервер действий не будет запущен и доступен для отправки целей. The client)IsServerConnected свойство SimpleActionClient показывает состояние подключения к серверу. Нажмите Ctrl+C, чтобы прервать ожидание.
В этом примере показано, как создать клиент действия 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/
client - клиент действия ROSSimpleActionClient указатель на объектКлиент действия ROS, заданный как SimpleActionClient указатель на объект. Этот простой клиент действий позволяет вам отслеживать одну цель за раз.
timeout - Период тайм-аутаПериод ожидания для настройки сервера действий ROS, заданный как скаляр в секундах. Если клиент не подключается к серверу в указанный период времени, отображается ошибка.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.