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