exponenta event banner

Перемещение робота-туртлбота с помощью действий ROS

В этом примере показано, как использовать /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/