exponenta event banner

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

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

Предпосылки: Общайтесь с TurtleBot, исследуйте основное поведение TurtleBot

Пакет поддержки оборудования для TurtleBot

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

Чтобы установить пакет поддержки, откройте меню Add-on > Get Hardware Support Packages на вкладке MATLAB Home и выберите ROS Toolbox Support Package for TurtleBot based Robots. В качестве альтернативы используйте rosAddons команда.

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

Убедитесь, что TurtleBot работает либо в симуляции через 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/

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