Ожидайте сервера действия, чтобы запуститься
waitForServer(
ожидает, пока сервер действия не запущен и доступен, чтобы отправить цели. 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 в виде скаляра в секундах. Если клиент не связывает с сервером в указанном периоде времени, ошибка отображена.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.