Организация управления роботом Lego NXT c помощью BLUETOOTH
статья по информатике и икт на тему
Статья на Тему: "Организация управления роботом Lego NXT c помощью BLUETOOTH"
Скачать:
Вложение | Размер |
---|---|
statya_lego_nxt.docx | 144.95 КБ |
Предварительный просмотр:
Организация управления роботом Lego NXT c помощью BLUETOOTH
Роботы LEGO NXT серии Mindstorms получили широкое распространение в качестве устройств для апробации алгоритмов управления робототехническими средствами. Целью работы являлось исследование удаленного управления роботом посредством Bluetooth-соединения. Проведено тестирование возможностей встроенного в робота LEGO NXT модуля беспроводной связи CSR BlueCore 4 v2.0. Тестирование осуществлялось пересылкой пакетов данных различной длины по беспроводному каналу между роботом и компьютером. Полученные результаты затем сравнивались с показателями, требующимися для решения реальных задач. Поставленный эксперимент наглядно продемонстрировал, что имеющийся в роботе Bluetooth-модуль нe обеспечивает достаточной скорости передачи данных. В работе предложено переносить требовательные ко времени реакции задачи с компьютера на управляющий микроконтроллер робота с целью обойти ограничения беспроводного канала связи в задаче управления роботом в реальном времени.
В настоящее время роботы Mindstorms NXT компании LEGO нашли самое широкое применение в учебном процессе в высших учебных заведениях. Роботы используются при проведении различных соревнований по мехатронике, робототехнике и искусственному интеллекту. Ежегодно проводится до 100 крупных соревнований международного уровня, самым крупным из которых является WRO (World Robot Olympiad — Всемирная олимпиада роботов). В России крупнейшим мероприятием подобного уровня являются ежегодные соревнования Робофест. Большое развитие получило движение робототехнических кружков.
Распространенность и популярность роботов NXT серии Mindstorms обоснована, в первую очередь, их доступностью широкому кругу пользователей. Процесс программирования и сборки роботов был максимально упрощен компанией LEGO. Сборка конструкции робота осуществляется с помощью универсальных строительных блоков. Написание управляющей программы возможно с использованием простых и наглядных в освоении графических языков, например NXT-G, а также более серьезных графических и процедурных языков, таких как LabView или С. Инженеры LEGO создали модульный конструктор с большими возможностями для построения как простых, так и сложных роботов. Исходные тексты управляющей программы, описания протоколов, а также полное описание внутренней архитектуры находятся в открытом доступе, что открывает широкое поле для деятельности конструкторам и любителям со всего мира. В связи с этим роботы LEGO нередко используются для апробации различных алгоритмов управления робототехническими устройствами.
Аппаратное устройство робота Lego NXT
Управляющий блок робота, так называемый брик, оснащен управляющим микроконтроллером AT91SAM7S256 производства корпорации Atmel на базе 32-битного микропроцессора ARM7. В табл. 1 приведены основные характеристики микроконтроллера.
Таблица 1.
Процессор | ARM7TDMI 32-битный, RISC- архитектура |
Объем внутренней Flash-памяти | 256 Кбайт |
Объем внутренней SRAM-памяти | 64 Кбайт |
Частота работы | До 55 МГц |
Таблица 1. Основные характеристики AT91SAM7S256
В качестве управления силового модуля (сервоприводы робота) используется микроконтроллер на базе 8-битного ATmega48, который в данном случае способен управлять тремя моторами. Брик оснащен небольшим динамиком, диапазон воспроизводимых частот которого составляет 2-16 кГц. Вывод информации осуществляется посредством монохромного LCD- экрана с разрешением 100х64 пикселей и физическим размером 40,6х26 мм. Робот также оснащен четырьмя кнопками, которые предназначены для навигации по интерфейсу посредством иерархического меню. Доступны четыре порта для ввода, три порта для вывода, а также интерфейс USB 2.0, работающий в режиме Full speed (12 Мбит/с). Также робот способен получать данные от четырех датчиков. В табл. 2 представлены основные типы датчиков. Для беспроводного соединения доступен модуль Bluetooth 2.0 EDR, характеристики которого представлены в табл. 3. Питание робота осуществляется от шести батареек типа АА либо от литий-ионного аккумулятора емкостью 1400 мА/ч.
Таблица 2.
Цветовой датчик | Определяет до шести различных цветов: синий, зеленый, красный, желтый, белый и черный |
Световой датчик | Определяет уровень яркости |
Датчик касания | Реагирует на нажатие на кнопку |
Ультразвуковой датчик | Измеряет расстояние в диапазоне от 9 до 75 см |
Звуковой датчик | Измеряет громкость звука |
Компас | Позволяет определить направление Севера |
Акселерометр | Определяет ускорение и направление движения робота |
Таблица 2. Основные типы датчиков робота LEGO NXT
Таблица 3.
Объем внутренней RAM- памяти | 47 Кбайт |
Объем внешней Flash- памяти | 8 Мбит |
Частота работы | 26 МГц |
Таблица 3. Характеристики модуля CSR BlueCore 4 v2.0 и EDR System
На рис. 1 представлена структурная схема, которая иллюстрирует взаимосвязь всех компонент робота.
SPI-шина UART-шина
PC-шина
Рис. 1. Структурная схема робота LEGO NXT
Способы управления роботом Lego NXT
Аппаратное и программное обеспечение Lego NXT, представленное прошивкой LEGO MINDSTORM Firmware 1.28, позволяют осуществлять управление роботом тремя возможными способами.
Первым из способов является подключение NXT к персональному компьютеру посредством USB-кабеля. Использование подобного способа управления ограничивает удаленность робота от компьютера максимальной длиной кабеля, которая составляет пять метров. Также это требует наличия определенного программного обеспечения, установленного на компьютере, с которого осуществляется управление роботом. В реализации микроконтроллера AT91SAM7S256 передача сообщений через USB организована по принципу FIFO-очереди длиной в 328 байт. Команды в виде опкодов посылаются с персонального компьютера, а затем обрабатываются виртуальной машиной робота. Структура команды с двумя аргументами представлена в табл. 4.
Таблица 4.
Слово 1 | Слово 3 | Слово 3 | |||
Название поля | Опкод | Размер | Флаги | Аргумент 1 | Аргумент 2 |
Биты |
Таблица 4. Структура команды с двумя аргументами
Вторым способом подключения является беспроводное соединение посредством Bluetooth-передатчика. Протокол соединения через Bluetooth был реализован в виде профиля последовательного порта (Serial Port Profile, далее SPP), который можно рассматривать как беспроводной последовательный порт.
SPP эмулирует работу последовательного порта, предоставляя тем самым замену существующему RS-232. С целью уменьшения энергопотребления Bluetooth микросхема была реализована в соответствии со стандартом Bluetooth Class II, что ограничивает дистанцию для соединения десятью метрами. Обмен сообщениями происходит аналогично коммуникации посредством USB-кабсля. В виртуальной машине параллельно с выполняемыми программами запускается отдельная задача, ожидающая поступления опкодов из очереди сообщений определенного канала Bluetooth-соединения.
Последним способом управления роботом является запись во Flash-память робота NXT предварительно скомпилированной программы в формате .RXE. Компиляция программы осуществляется на персональном компьютере с помощью компилятора. После ручного запуска программы на роботе NXT виртуальной машиной будут произведены следующие действия:
- Валидация файла - чтение файла и валидация его версии и заголовков.
- Активация - выделение и инициализация блока RAM для хранения данных. После активации текущие исполняемые наборы опкодов и данных будут загружены в выделенный блок в соответствии с последовательностью выполнения кодов.
- Исполнение - интерпретация байт-кода из файла программы. Исполнение продолжается до тех пор, пока вес блоки команд не будут исполнены либо пока пользователь не прервет программу.
- Завершение - освобождение всех использованных систем ввода/вывода и RAM, а также разблокировка файла программы для изменения или удаления.
Характеристик, заложенных в NXT, вполне хватает, если речь идет о несложных и не требовательных к ресурсам задачах. Некоторые задачи встречаются в соревновательной практике чаще других. Такими популярными задачами являются:
- следование по линии, которая обычно представляет собой контрастную изгибающуюся полосу, прочерченную на полу;
- избегание столкновения с препятствиями;
- поиск определенного объекта на соревновательном поле;
- перемещение заданного объекта по соревновательному полю.
Однако при апробации более сложных алгоритмов или же при превышении выделенного виртуальной машиной объема памяти, который в роботе NXT не может превышать 32 Кбайт для одной программы, неизбежно возникает необходимость задействовать дополнительные ресурсы. Например, вычисления производить на персональном компьютере, а непосредственно роботу передавать только управляющие опкоды. Организовать такое сообщение между роботом и компьютером можно либо посредством USB-кабеля, либо используя беспроводное Bluetooth- соединение. Очевидно, что отсутствие необходимости физического подключения к ПК делает Bluetooth-соединение наиболее удобным и интересным решением в данной ситуации.
Описание микросхемы CSR BlueCore 4 v2.0
Микросхема BlueCore 4 v2.0 производства компании CSR содержит в себе все необходимые компоненты для организации полноценного Bluetooth-узла. Интегрированный 16- битный процессор организует стек сообщений. Управляющий NXT микроконтроллер ARM7 взаимодействует с модулем Bluetooth посредством UART. Реализуются два протокола последовательного порта: SPP-A и SPP-B. SPP-A используется, когда локальный беспроводной узел является инициатором соединения. SPP-B задействуется, когда инициатором соединения является удаленный узел. Микросхема BlueCore 4 использует потоковый режим передачи данных на скорости до 220 кбод. Структура данных, содержащих управляющую команду, предназначенную для отправки на NXT, представлена в табл. 5.
Таблица 5.
Байт 0 | Байт 1 | Байт 2 | Байт 3 | Байт 4-N |
0x00 или 0x80 | 0x09 | Номер очереди (0-9) | Длина сообщения | Данные |
Таблица 5. Структура данных для отправки управляющей команды
В качестве ответа робот NXT возвращает пакет данных, содержащий байт состояния. Длина ответного сообщения равна трем байтам. При запросе данных с робота NXT компьютер отправляет пакет с определенной структурой (табл. 6).
Таблица 6.
Байт 0 | Байт 1 | Байт 2 | Байт 3 | Байт 4 |
0x00 или 0x80 | 0x13 | Номер очереди (0-9) | Номер локальной очереди (0-9) | Флаг удаления данных из очереди NXT |
Таблица 6. Структура запроса на чтение данных из робота NXT
В этом случае в качестве ответа робот NXT возвращает пакет, содержащий не только байт состояния, но и номер очереди, из которой отправляются данные, и непосредственно данные, содержащиеся в байтах сообщения с номерами 5-63. Таким образом, максимальный размер полезных данных, отправляемых с робота в одном сообщении, не может превышать 59 байт как в случае Bluetooth-соединения, так и в случае подключения по USB.
При этом необходимо помнить, что практически во всех задачах обмен сообщениями между компьютером и роботом должен происходить в реальном времени. Приведем пример, в котором необходимо задействовать большую вычислительную мощность персонального компьютера, в то же время производя перерасчет управляющего воздействия в реальном времени. На рис. 2 схематично представлен алгоритм следования по линии на основе ПИД-регулятора. Особенностью ПИД-регулятора в случае следования робота по линии является необходимость корректировать управляющее воздействие в среднем каждые 50 миллисекунд с целью обеспечить своевременную реакцию на изменение направления линии.
ПИД-регулятор
Рис. 2. Блок схема ПИД-регулятора для задачи следования робота по линии
Одновременно с движением по линии может потребоваться выполнение ресурсоемкой задачи анализа окружающей среды. В серьезных соревновательных заданиях роботу, чтобы принять оптимальное решение и выиграть, требуется проанализировать текущую ситуацию, соотнеся ее с большой базой правил. В таком случае целесообразно применение экспертной системы с продукционной моделью представления знаний, где правила поведения представлены в виде условий «Если (условие), то (действие)». Применение такой системы потребует больше 32 Кбайт доступной памяти.
Определение скорости соединения
С целью проверки возможности беспроводного канала связи по передаче данных от робота NXT компьютеру был поставлен эксперимент. В рамках данного эксперимента робот постоянно получал запрос от компьютера на предоставление данных о своем состоянии. В ответ робот отправлял сообщения различной длины. В блок ответного сообщения, содержащий непосредственно данные о состоянии, помещались последовательности длиной от 4 до 59 байт.
После запуска программного обеспечения на компьютере и установки подключения между компьютером и роботом NXT со стороны компьютера инициировалось соединение. После инициализации отправлялось сообщение с запросом данных от робота. Затем компьютер ожидал ответа от робота NXT, после чего посылал следующее сообщение с запросом. Данная операция повторялась в течение одной секунды. Было протестировано шесть типов ответных сообщений с различной длиной блока данных: 4, 8, 16, 32, 48 и 59 байт. В целом эксперимент для всех типов блока данных был повторен 1000 раз. В табл. 7 представлены результаты эксперимента с указанием количества посланных и возвращенных пакетов за секунду.
Таблица 7.
Длина блока данных в байтах | Количество переданных и полученных за секунду пакетов (минимум-максимум) |
4 | 11-13 |
8 | 11-13 |
16 | 10-13 |
32 | 7-8 |
48 | 7-8 |
59 | 7-8 |
Таблица 7. Результаты тестирования скорости обмена данными по беспроводному каналу
Как видно из табл. 7, снижение количества отправляемых пакетов происходит при длине блока данных свыше 16 байт. Характеристики блоков данных для разных случаев представлены в табл. 8.
Таблица 8.
Содержание блока | Число задействованных датчиков | Длина блока, байт | Число требуемых пактов в секунду |
Движение по линии | 2 | 6 | 20 |
Обнаружение объекта | 4 | 16 | 10 |
Состояние робота | 0 | 48 | 1 |
Состояние двигателей | 3 | 24 | 20 |
Таблица 8. Характеристики различных блоков данных в реальных задачах управления роботом NXT
Рассмотрим размер блока данных в байтах для реальных задач управления роботом. Например, в задаче следования по линии необходимо обновлять информацию с датчиков каждые 50 миллисекунд. В таком случае каждую секунду компьютер должен запрашивать, а робот передавать • 6 = 120 байт данных. В виду того, что длина одного пакета в задаче следования но линии равна 6 байтам, целесообразно выбрать размер блока данных, равный 8 байт. Исходя из результатов эксперимента, NXT способен передавать от 11 до 13 пакетов длиной 8 байт за секунду. Отсюда возникает противоречие, заключающееся в несоответствии требуемой для решения задачи скорости передачи пакетов реальным возможностям Bluetooth-модуля.
Такая же ситуация может быть и для других задач, в которых управление роботом должно происходить в реальном времени. На рис. 3 представлена диаграмма, показывающая разницу между требуемой и реальной скоростью передачи пакетов для четырех информационных пакетов.
Синий цвет-требуемая скорость, красный цвет- действительная скорость
Рис. 3. Диаграмма показывающая разницу между требуемой и реальной скоростью передачи данных
Перенос критических секций на NXT
Одним из возможных решений обозначенной проблемы является перенос критических задач, таких как следование по линии и отслеживание состояния двигателей, с компьютера на робота NXT. В таком случае обеспечивается приемлемое время реакции на происходящие изменения. В то же время ресурсоемкие задачи продолжают обрабатываться на персональном компьютере с последующей корректировкой действий робота через беспроводной канал связи в соответствии с принятым решением. На рис. 4 представлена блок-схема решения.
Персональный компьютер Робот NXT
Рис. 4. Блок схема алгоритма выполнения критических секций на роботе
Заключение
Роботы Lego Mindstorms активно и широко используются в студенческой соревновательной деятельности, а также для апробации различных алгоритмов. Наиболее удобным способом управления в таком случае является беспроводное соединение посредством Bluetooth- передатчика. Поставленный эксперимент наглядно демонстрирует, что реализованный в роботе NXT механизм беспроводного соединения через SPP не обеспечивает достаточной скорости передачи данных для полного переноса вычислений на персональный компьютер. В работе предложено переносить требовательные ко времени реакции задачи на управляющий микроконтроллер AT91SAM7S256 робота NXT для решения обозначенной проблемы.
По теме: методические разработки, презентации и конспекты
«Робот LEGO WeDo – исполнитель алгоритмов»
Урок из курса информатики и ИКТ, раздел – «Алгоритмы». На уроке, используя конструктор, ученики строят Лего-модель, подключают ее к ЛЕГО-коммутатору и управляют ей посредством компьютерной программы, ...
ПЛАН-КОНСПЕКТ УРОКА «Робот LEGO WeDo – исполнитель алгоритмов»
Урок из курса информатики и ИКТ, раздел – «Алгоритмы». На уроке, используя конструктор, ученики строят Лего-модель, подключают ее к ЛЕГО-коммутатору и управляют ей посредством компьютерной программы, ...
Разработка урока: «Робот LEGO WeDo – исполнитель алгоритмов»
Урок и самоанализ урока по "Легоконструированию"...
Конспект урока на тему: Работа с конструктором Робот LEGO WeDo. Программирование.
В помощь руководителю кружка "Легоконструирование"...
«Робот LEGO WeDo – исполнитель алгоритмов»
«Робот LEGO WeDo – исполнитель алгоритмов» - урок информатики в 9 классеСсылка на разработку урока https://yadi.sk/d/1jBxzlK5cqJvr...
Примеры использования робота Lego Wedo на уроках информатики
Сегодня цель школы – научить школьника ставить и решать познавательные задачи, а для этого – находить, перерабатывать, использовать и создавать информацию, ориентироваться в информационном пространств...
Исполнитель Робот. Управление Роботом.
Разработка урока предназначена для урока информатики в 7 классе....