Управляйте TurtleBot с помощью телеоперации

В этом примере показано управление клавиатурой TurtleBot ® посредством ExampleHelperTurtleBotCommunicator класс. Инструкции описывают, как настроить объект и как запустить управление клавиатурой. Инструкции по использованию управления клавиатурой отображаются при запуске функции. Чтобы изменить параметры функции, отредактируйте exampleHelperTurtleBotKeyboardControl функцию или ExampleHelperTurtleBotKeyInput класс. Для ознакомления с использованием TurtleBot с MATLAB ®, смотрите примеры начала работы (Начало работы с настоящим TurtleBot или Начало работы с Gazebo и моделируемым TurtleBot)

Необходимые условия: Общайтесь с TurtleBot, Исследуйте основное поведение TurtleBot

Пакет аппаратной поддержки для TurtleBot

Этот пример дает обзор работы с TurtleBot, используя его собственный интерфейс ROS. Пакет Toolbox™ поддержки ROS для роботов на базе TurtleBot обеспечивает более оптимизированный интерфейс для TurtleBot2 оборудования.

Чтобы установить пакет поддержки, откройте дополнения > Get Hardware Support Packages на вкладке MATLAB Home и выберите ROS Toolbox Support Package для роботов на основе TurtleBot. Кроме того, используйте rosAddons команда.

Подключение к TurtleBot

Убедитесь, что TurtleBot работает либо в симуляции через Gazebo ®, либо на реальном оборудовании. Для получения информации о процедуре запуска см. раздел «Начало работы с Gazebo и моделируемым TurtleBot или Начало работы с реальным TurtleBot». Если вы используете симуляцию, Gazebo Office хорошо для исследования.

Инициализация ROS. Подключиться к TurtleBot путем замены ipaddress с IP-адресом TurtleBot.

ipaddress = "http://192.168.111.134:11311";
rosinit(ipaddress)
Initializing global node /matlab_global_node_50694 with NodeURI http://192.168.111.1:59298/

Если вы работаете с реальным TurtleBot2 оборудованием, убедитесь, что вы запускаете камеру Kinect ®. Выполните следующее в терминале на TurtleBot :

roslaunch turtlebot_bringup 3dsensor.launch

Между версиями TurtleBot могут быть некоторые различия в функциональности, датчике и именах тем. Обязательно проверьте, какая версия используется, и ожидаемые темы при ее контроле.

turtleBotVersion = 3; % Gazebo Office world uses TurtleBot3 Burger model

Подпишитесь на темы одометрии и лазерного скана и убедитесь, что вы можете получать сообщения по этим темам.

handles.odomSub = rossubscriber("/odom","BufferSize",25);
receive(handles.odomSub,3);
handles.laserSub = rossubscriber("/scan","BufferSize",5);
receive(handles.laserSub,3);

Создайте издателя для управления скоростью робота.

if turtleBotVersion == 3
    velTopic = "/cmd_vel";
else
    velTopic = "/mobile_base/commands/velocity";
end
handles.velPub = rospublisher(velTopic);

Управляйте роботом

Запуск exampleHelperTurtleBotKeyboardControl функция, которая позволяет управлять TurtleBot с помощью клавиатуры. Пометьте вставленный пример кода как код (выделите и нажмите 'Alt + Enter'), чтобы выполнить функцию.

exampleHelperTurtleBotKeyboardControl(handles);

Ниже приведены выборки Командного окна, мирового графика и мира Gazebo после некоторой телеоперации клавиатуры пользователем:

Если вы перемещаете TurtleBot слишком быстро, графическое изображение препятствий может стать неточным из-за относительных неточностей в теме одометрии на высоких скоростях. Вот пример грязного мирового графика:

Показан пример графика реального TurtleBot, перемещающегося по офисному пространству:

Отсоединитесь от робота

После выхода из функции нажатием qочистить издателей и подписчиков на узле.

clear

Использование rosshutdown после завершения работы с сетью ROS. Завершите работу глобального узла и отсоединитесь от TurtleBot.

rosshutdown
Shutting down global node /matlab_global_node_50694 with NodeURI http://192.168.111.1:59298/

Следующие шаги