Ожидайте сервера действия, чтобы запуститься
waitForServer( ожидает, пока сервер действия не запущен и доступен, чтобы отправить цели. client)IsServerConnected свойство SimpleActionClient показывает состояние связи сервера. Нажмите Ctrl+C, чтобы прервать ожидание.
В этом примере показано, как создать клиент действия ROS и выполнить действие. Типы действия должны быть настроены заранее с выполнением сервера действия.
Вы, должно быть, настроили '/fibonacci' тип действия. Чтобы запустить этот сервер действия, используйте следующую команду в системе ROS:
rosrun actionlib_tutorials fibonacci_server
Соединитесь с сетью ROS. Вы должны быть соединены с сетью ROS, чтобы собрать информацию о том, какие действия доступны. Замените ipaddress с вашим сетевым адресом.
ipaddress = '192.168.17.129';
rosinit(ipaddress,11311)Initializing global node /matlab_global_node_01856 with NodeURI http://192.168.17.1:57693/
Перечислите действия, доступные в сети. Единственным действием, настроенным в этой сети, является '/fibonacci' действие.
rosaction list/fibonacci
Создайте клиент действия. Задайте имя действия.
[actClient,goalMsg] = rosactionclient('/fibonacci');Ожидайте клиента действия, чтобы связать с сервером.
waitForServer(actClient);
fibonacci действие вычислит fibonacci последовательность для данного распоряжения, заданного в целевом сообщении. Целевое сообщение было возвращено при создании клиента действия и может быть изменено, чтобы отправить цели в сервер действия ROS.
goalMsg.Order = 8
goalMsg =
ROS FibonacciGoal message with properties:
MessageType: 'actionlib_tutorials/FibonacciGoal'
Order: 8
Use showdetails to show the contents of the message
Отправьте цель и ожидайте ее завершения. Задайте тайм-аут 10 секунд, чтобы завершить действие.
[resultMsg,resultState] = sendGoalAndWait(actClient,goalMsg,10)
resultMsg =
ROS FibonacciResult message with properties:
MessageType: 'actionlib_tutorials/FibonacciResult'
Sequence: [10×1 int32]
Use showdetails to show the contents of the message
resultState = 'succeeded'
showdetails(resultMsg)
Sequence : [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
Отключитесь от сети ROS.
rosshutdown
Shutting down global node /matlab_global_node_01856 with NodeURI http://192.168.17.1:57693/
В этом примере показано, как отправить и отменить цели по действиям ROS. Типы действия должны быть настройкой заранее с выполнением сервера действия.
Вы, должно быть, настроили '/fibonacci' тип действия. Чтобы запустить этот сервер действия, используйте следующую команду в системе ROS:
rosrun actionlib_tutorials fibonacci_server
Во-первых, настройте клиент действия ROS. Затем отправьте целевое сообщение модифицированными параметрами. Наконец, отмените свою цель и все цели на сервере действия.
Соединитесь с сетью ROS с заданным IP-адресом. Создайте клиент действия ROS, соединенный с сетью ROS с помощью rosactionclient. Задайте имя действия. Ожидайте клиента, чтобы быть соединенными с сервером.
rosinit('192.168.17.129',11311)Initializing global node /matlab_global_node_59254 with NodeURI http://192.168.17.1:59729/
[actClient,goalMsg] = rosactionclient('/fibonacci');
waitForServer(actClient);Отправьте целевое сообщение модифицированными параметрами. Ожидайте цели закончить выполняться.
goalMsg.Order = 4; [resultMsg,resultState] = sendGoalAndWait(actClient,goalMsg)
resultMsg =
ROS FibonacciResult message with properties:
MessageType: 'actionlib_tutorials/FibonacciResult'
Sequence: [6×1 int32]
Use showdetails to show the contents of the message
resultState = 'succeeded'
showdetails(resultMsg)
Sequence : [0, 1, 1, 2, 3, 5]
Отправьте новое целевое сообщение без ожидания.
goalMsg.Order = 5; sendGoal(actClient,goalMsg)
Отмените цель на клиенте действия ROS, actClient.
cancelGoal(actClient)
Отмените все цели на сервере действия что actClient соединяется с.
cancelAllGoals(actClient)
Удалите клиент действия.
delete(actClient)
Отключитесь от сети ROS.
rosshutdown
Shutting down global node /matlab_global_node_59254 with NodeURI http://192.168.17.1:59729/
client — Клиент действия ROSSimpleActionClient указатель на объектКлиент действия ROS, заданный как SimpleActionClient указатель на объект. Этот простой клиент действия позволяет вам отследить одну цель за один раз.
timeout — Период тайм-аутаПериод тайм-аута для подготовки сервера действия ROS, заданного как скаляр в секундах. Если клиент не связывает с сервером в указанном периоде времени, ошибка отображена.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.