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

В этом примере показано, как использовать /turtlebot_move действие с роботом Turtlebot. The /turtlebot_move действие занимает место в среде робота и пытается переместить робота в это место.

Выполните шаги в запуске с Gazebo и моделируемым 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)

Установите параметры цели. The 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

Отсоединитесь от сети ROS.

rosshutdown
Shutting down global node /matlab_global_node_94218 with NodeURI http://192.168.2.1:51650/