В этом примере показано, как использовать /turtlebot_move действие с роботом Turtlebot. /turtlebot_move действие занимает место в среде робота и пытается переместить робота в это место.
Выполните шаги в разделе Начало работы с беседкой и моделируемым TurtleBot, чтобы настроить моделируемый TurtleBot. После запуска виртуальной машины запустите Gazebo Empty world с помощью ярлыка на рабочем столе и откройте окно терминала.
Для запуска сервера действий ROS Turtlebot используйте эту команду на терминале распределения ROS.
~/start-turtlebot-move-action-server.sh

Подключение к сети ROS. Необходимо установить сервер действий ROS в этой сети. Изменение ipaddress на адрес сети ROS.
ipaddress = '192.168.2.150';
rosinit(ipaddress,11311);Initializing global node /matlab_global_node_94218 with NodeURI http://192.168.2.1:51650/
Просмотрите действия ROS, доступные в сети. Вы должны видеть /turtlebot_move доступно.
rosaction list/turtlebot_move
Создайте простой клиент действий для подключения к серверу действий. Укажите имя действия. goalMsg является сообщением о цели для указания параметров цели.
[client,goalMsg] = rosactionclient('/turtlebot_move');
waitForServer(client)Задайте параметры для цели. goalMsg содержит свойства как для прямого, так и для поворотного расстояния. Укажите расстояние вперед и угол поворота робота. В этом примере робот перемещается вперед на 2 метра.
goalMsg.ForwardDistance = 2; goalMsg.TurnDistance = 0;
Установите функцию обратной связи пустой, чтобы не иметь никаких выходных данных во время выполнения цели. Отпуск FeedbackFcn в качестве значения по умолчанию для получения распечатки информации обратной связи о выполнении цели.
client.FeedbackFcn = [];
Отправьте сообщение о цели на сервер. Дождитесь его выполнения и получите сообщение о результатах.
[resultMsg,~,~] = sendGoalAndWait(client,goalMsg)
resultMsg =
ROS TurtlebotMoveResult message with properties:
MessageType: 'turtlebot_actions/TurtlebotMoveResult'
TurnDistance: 0
ForwardDistance: 2.0022
Use showdetails to show the contents of the message
Отключитесь от сети АФК.
rosshutdown
Shutting down global node /matlab_global_node_94218 with NodeURI http://192.168.2.1:51650/