Управляйте TurtleBot с дистанционным управлением

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

Предпосылки: свяжитесь с TurtleBot, исследуйте основное поведение TurtleBot

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

Этот пример дает обзор работы с TurtleBot с помощью его нативного интерфейса ROS. Пакет Поддержки Robotics System Toolbox™ для Роботов TurtleBot®-Based обеспечивает более оптимизированный интерфейс к TurtleBot. Это позволяет вам:

  • Получите данные о датчике и отправьте команды управления, явным образом не вызывая команды ROS

  • Свяжитесь прозрачно с моделируемым роботом в Gazebo или с физическим TurtleBot

Чтобы установить пакет поддержки, откройтесь, Дополнения> Получают Пакеты Аппаратной поддержки на вкладке MATLAB Home и выбирают "TurtleBot-Based Robots". Также используйте roboticsAddons команду.

Соединитесь с TurtleBot

Убедитесь, что у вас есть TurtleBot, запускающийся или в симуляции через Gazebo® или на действительном оборудовании. Обратитесь к Запуску с Gazebo и Моделируемым TurtleBot или Запуску с Действительным TurtleBot для процедуры запуска. Если вы используете симуляцию, Gazebo TurtleBot World хорош для исследования.

Инициализируйте ROS. Соединитесь с TurtleBot, заменив ipaddress на IP-адрес TurtleBot

ipaddress = '192.168.203.129';
rosinit(ipaddress)
Initializing global node /matlab_global_node_40274 with NodeURI http://192.168.203.1:55960/

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

roslaunch turtlebot_bringup 3dsensor.launch

Запустите это в терминале на TurtleBot.

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

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

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

handles.velPub = rospublisher('/mobile_base/commands/velocity');

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

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

exampleHelperTurtleBotKeyboardControl(handles);

Следующее является выборками Командного окна, мирового графика и мира Gazebo после некоторого дистанционного управления клавиатуры пользователем:

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

Демонстрационный график действительного TurtleBot, перемещающего офис, показывают:

Отключитесь от робота

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

clear

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

rosshutdown
Shutting down global node /matlab_global_node_40274 with NodeURI http://192.168.203.1:55960/

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