Ожидайте сервера действия, чтобы запуститься
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.