В этом примере показано, как использовать /turtlebot_move
действие с роботом Turtlebot. /turtlebot_move
действие берет местоположение в среде робота и попытках переместить робота в то местоположение.
Выполните шаги в Начало работы с Gazebo и Симулированным TurtleBot, чтобы установить симулированный TurtleBot. После запуска виртуальной машины запустите Gazebo Пустой мир с помощью настольного ярлыка и откройте окно терминала.
Чтобы запустить сервер действия Turtlebot ROS, используйте эту команду на терминале распределения 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
Отключитесь от сети ROS.
rosshutdown
Shutting down global node /matlab_global_node_94218 with NodeURI http://192.168.2.1:51650/