Ожидайте сервера действия, чтобы запуститься
waitForServer(client)waitForServer(client,timeout)waitForServer( ожидает, пока сервер действия не запущен и доступен, чтобы отправить цели. Свойство client)IsServerConnected SimpleActionClient показывает состояние связи сервера. Нажмите Ctrl+C, чтобы прервать ожидание.
Этот пример показывает, как создать клиент действия ROS и выполнить действие. Типы действия должны быть настройкой заранее с выполнением сервера действия.
У вас должна быть настройка типа действия '/fibonacci'. Чтобы запустить этот сервер действия используют следующую команду в системе ROS:
rosrun actionlib_tutorials fibonacci_server
Соединитесь с сетью ROS. Вы должны быть соединены с сетью ROS, чтобы собрать информацию о том, какие действия доступны. Замените ipaddress на свой сетевой адрес.
ipaddress = '192.168.154.131';
rosinit(ipaddress)
Initializing global node /matlab_global_node_68978 with NodeURI http://192.168.154.1:51256/
Перечислите действия, доступные в сети. Единственная настройка действия в этой сети является действием '/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)
Goal active
Feedback:
Sequence : [0, 1, 1]
Feedback:
Sequence : [0, 1, 1, 2]
Feedback:
Sequence : [0, 1, 1, 2, 3]
Feedback:
Sequence : [0, 1, 1, 2, 3, 5]
Feedback:
Sequence : [0, 1, 1, 2, 3, 5, 8]
Feedback:
Sequence : [0, 1, 1, 2, 3, 5, 8, 13]
Feedback:
Sequence : [0, 1, 1, 2, 3, 5, 8, 13, 21]
Feedback:
Sequence : [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
Final state succeeded with result:
Sequence : [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
resultMsg =
ROS FibonacciResult message with properties:
MessageType: 'actionlib_tutorials/FibonacciResult'
Sequence: [10×1 int32]
Use showdetails to show the contents of the message
resultState =
1×9 char array
succeeded
Отключитесь от сети ROS.
rosshutdown
Shutting down global node /matlab_global_node_68978 with NodeURI http://192.168.154.1:51256/
Отправьте и отмените цели по действиям ROS. Во-первых, установите клиент действия ROS. Затем отправьте целевое сообщение с измененными параметрами. Наконец, отмените свою цель и все цели на сервере действия.
Соединитесь с сетью ROS с заданным IP-адресом. Создайте клиент действия ROS, соединенный с помощью rosactionclient. Задайте имя действия. Ожидайте клиента, чтобы быть соединенными с сервером.
rosinit('192.168.154.131') [actClient,goalMsg] = rosactionclient('/fibonacci'); waitForServer(actClient);
Initializing global node /matlab_global_node_40739 with NodeURI http://192.168.154.1:57343/
Отправьте целевое сообщение с измененными параметрами. Ожидайте цели закончить выполняться.
goalMsg.Order = 4; sendGoalAndWait(actClient,goalMsg)
Goal active
Feedback:
Sequence : [0, 1, 1]
Feedback:
Sequence : [0, 1, 1, 2]
Feedback:
Sequence : [0, 1, 1, 2, 3]
Feedback:
Sequence : [0, 1, 1, 2, 3, 5]
ans =
ROS FibonacciResult message with properties:
MessageType: 'actionlib_tutorials/FibonacciResult'
Sequence: [6×1 int32]
Use showdetails to show the contents of the message
Отправьте новое целевое сообщение без ожидания.
goalMsg.Order = 5; sendGoal(actClient,goalMsg)
Отмените цель на клиенте действия ROS, actClient.
cancelGoal(actClient)
Отмените все цели на сервере действия, с которым соединяется actClient.
cancelAllGoals(actClient)
Удалите клиент действия.
delete(actClient)
Отключитесь от сети ROS.
rosshutdown
Shutting down global node /matlab_global_node_40739 with NodeURI http://192.168.154.1:57343/
client — Клиент действия ROSSimpleActionClientКлиент действия ROS, заданный как указатель на объект SimpleActionClient. Этот простой клиент действия позволяет вам отследить одну цель за один раз.
тайм-аут Период тайм-аутаПериод тайм-аута для подготовки сервера действия ROS, заданного как скаляр в секундах. Если клиент не соединяется с сервером в указанном периоде времени, ошибка отображена.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.