Этот пример показывает управление клавиатурой TurtleBot® с помощью ExampleHelperTurtleBotCommunicator
класс. Инструкции описывают, как настроить объект и как запустить управление клавиатурой. Инструкции относительно того, как использовать управление клавиатурой, отображены, когда функция запускается. Чтобы изменить параметры функции, отредактируйте exampleHelperTurtleBotKeyboardControl
функционируйте или ExampleHelperTurtleBotKeyInput
класс. Для введения в использование TurtleBot с MATLAB® смотрите начинающие примеры (Запуск с Действительным TurtleBot или Запуск с Gazebo и Симулированным TurtleBot)
Предпосылки: свяжитесь с TurtleBot, исследуйте основное поведение TurtleBot
Этот пример дает обзор работы с TurtleBot с помощью его нативного интерфейса ROS. Пакет Поддержки ROS Toolbox™ для основанных на TurtleBot Роботов обеспечивает более оптимизированный интерфейс к TurtleBot. Это позволяет вам:
Получите данные о датчике и отправьте команды управления, явным образом не вызывая команды ROS.
Свяжитесь прозрачно с симулированным роботом в Gazebo или с физическим TurtleBot.
Чтобы установить пакет поддержки, откройтесь, Дополнения> Получают Пакеты Аппаратной поддержки на вкладке MATLAB Home и выбирают основанных на ROS Toolbox Support Package for TurtleBot Роботов. В качестве альтернативы используйте rosAddons
команда.
Убедитесь, что у вас есть TurtleBot, запускающийся или в симуляции через Gazebo® или на действительном оборудовании. Обратитесь к Запуску с Gazebo и Симулированным TurtleBot или Запуску с Действительным TurtleBot для процедуры запуска. Если вы используете симуляцию, Gazebo TurtleBot World
хорошо для исследования.
Инициализируйте ROS. Соединитесь с TurtleBot, заменив ipaddress
с IP-адресом TurtleBot.
ipaddress = 'http://192.168.233.133:11311';
rosinit(ipaddress)
Initializing global node /matlab_global_node_56481 with NodeURI http://192.168.233.1:65458/
Если вы работаете с действительным оборудованием TurtleBot, убедитесь, что вы запускаете камеру Kinect®. Запустите следующее в терминале на TurtleBot:
roslaunch turtlebot_bringup 3dsensor.launch
Подпишитесь на одометрию и лазерные темы сканирования и убедитесь, что можно получить сообщения по этим темам.
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_56481 with NodeURI http://192.168.233.1:65458/
Обратитесь к следующему примеру: Предотвращение Препятствия с TurtleBot и VFH