LEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | Канобу

Организация управления роботом lego nxt c помощью bluetooth | статья по информатике и икт на тему: | образовательная социальная сеть

Организация управления роботом Lego NXT c помощью BLUETOOTH

Он широко используется для тестирования алгоритмов управления роботами с помощью роботов серии LEGO NXT Mindstorms. В данном исследовании рассматривалось дистанционное управление роботом через Bluetooth-соединение. Робот LEGO NXT тестировался с использованием модуля беспроводной связи CSR BlueCore 4 v2.0. Испытания проводились путем отправки пакетов данных различной длины по беспроводному каналу между роботом и компьютером. Затем полученные результаты сравнивались с результатами, необходимыми для решения реальных задач. Очевидно, что имеющийся в роботе Bluetooth-модуль не может обеспечить достаточно высокую скорость передачи данных. Мы исследуем возможность переноса задач, требующих времени, с компьютера на управляющий микроконтроллер робота, чтобы преодолеть ограничения беспроводного канала связи для управления роботом в реальном времени.

В настоящее время роботы LEGO Mindstorms NXT в основном используются в учебном процессе высших учебных заведений. Роботы используются в соревнованиях, связанных с мехатроникой, робототехникой и искусственным интеллектом. Всемирная олимпиада роботов (WRO) – крупнейшее международное соревнование, в рамках которого ежегодно проводится до 100 крупных мероприятий. Ежегодное соревнование такого уровня “Робофест” является главным российским мероприятием такого уровня. В кругах робототехников произошли значительные изменения.

Популярность и присутствие роботов Mindstorms NXT обусловлены в первую очередь их доступностью для широкого круга пользователей. Компания LEGO максимально упростила процесс программирования и сборки роботов. Сборка робота осуществляется с помощью универсальных строительных блоков. Управляющая программа может быть написана с помощью простых и легко изучаемых графических языков, таких как NXT-G, а также более сложных графических и процедурных языков, таких как LabView или C. Инженеры LEGO создали модульный строительный набор с большими возможностями для создания как простых, так и сложных роботов. В открытом доступе находится исходный код управляющей программы, описание протоколов, а также подробное описание внутренней архитектуры, что открывает целый мир возможностей для конструкторов и любителей. В результате роботы Lego часто используются для тестирования различных алгоритмов управления роботизированными устройствами.

Смотрите про коптеры:  Квадрокоптер «Бабочка», радиоуправляемый, работает от аккумулятора, цвет жёлтый (4708093) - Купить по цене от 849.00 руб. | Интернет магазин SIMA-LAND.RU

Аппаратное обеспечение робота Lego NXT

Блок управления робота, известный как “брик”, содержит управляющий микроконтроллер AT91SAM7S256 от корпорации Atmel на базе 32-битного микропроцессора ARM7. Характеристики микроконтроллера приведены в таблице 1.

Таблица 1

Таблица 1. Основные характеристики AT91SAM7S256

Микроконтроллер на базе 8-битного контроллера ATmega48 управляет силовым модулем робота (сервоприводами), который в данном случае может управлять тремя моторами. Небольшой динамик расположен на кирпиче и позволяет устройству воспроизводить звук в диапазоне 2-16 кГц. Монохромный ЖК-экран имеет разрешение 100х64 пикселей и размеры 40,6х26 мм, на который выводится информация. Также на борту имеются четыре кнопки для навигации по интерфейсу с помощью иерархического меню. Имеется четыре порта ввода, три порта вывода и интерфейс USB 2.0, который работает на полной скорости (12 Мбит в секунду). Кроме того, робот способен получать данные от четырех датчиков. В таблице приведены наиболее распространенные типы датчиков. Для беспроводного соединения имеется модуль Bluetooth 2.0 EDR, характеристики которого приведены в таблице 3. Варианты питания включают шесть батареек типа АА или литий-полимерный аккумулятор емкостью 1400 мА/ч.

Таблица 2.

Таблица 2. Основные типы датчиков для робота LEGO NXT

Таблица 3.

Таблица 3. Характеристики модуля CSR BlueCore 4 v2.0 и EDR System

На рисунке 1 показана схема, иллюстрирующая взаимосвязь всех составляющих робота.

LEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | Канобу

        SPI-шина    UART-шина

Автобус П С.

Рис. 1. Структурная схема робота LEGO NXT

Способы управления роботами Lego NXT

В соответствии с LEGO MINDSTORM Firmware 1.28, аппаратное и программное обеспечение Lego NXT можно контролировать тремя различными способами.

Подключение NXT к компьютеру с помощью USB-кабеля – это первый шаг. При таком способе управления можно увеличить длину кабеля до пяти метров. Помимо программного обеспечения, установленного на компьютере, роботу также требуется некоторое дополнительное программное обеспечение. Передача сообщений через USB основана на принципе 328-байтной очереди FIFO в реализации микроконтроллера AT91SAM7S256. С компьютера опкоды отправляются в виртуальную машину робота, которая их обрабатывает. В таблице 4 показана структура команды с двумя аргументами.

Таблица 4.

Таблица 4: Структура команды с двумя аргументами

Для подключения по беспроводному соединению используется передатчик Bluetooth. Протокол соединения Bluetooth реализован как Serial Port Profiles (SPP), который можно сравнить с беспроводным последовательным портом.

Он заменяет RS-232 при работе с последовательным портом. Для снижения энергопотребления Bluetooth был внедрен стандарт Bluetooth Class II, который ограничивает следующее расстояние: десять метров. Для обмена сообщениями используется тот же протокол, что и для связи по USB-кабелю. В процессе виртуализации VMware отдельный процесс ожидает поступления опкодов из очереди сообщений для отдельного канала Bluetooth-соединения.

Последним способом управления роботом является запись предварительно скомпилированной программы во флэш-память NXT в формате .RXE. Программа компилируется на компьютере с помощью компилятора. После запуска программы вручную на роботе NXT виртуальная машина сделает следующее:

  1. Проверка файла – чтение файла и проверка его версии и заголовков.
  2. Активация – выделение и инициализация блока оперативной памяти для хранения данных. После активации текущие исполняемые опкоды и наборы данных загружаются в выделенный блок в соответствии с последовательностью выполнения кода.
  3. Execution – интерпретация байткода из файла программы. Выполнение продолжается до тех пор, пока не будут выполнены все управляющие блоки или пока пользователь не завершит программу.
  4. Завершение – освобождение всех использованных систем ввода-вывода и оперативной памяти, а также разблокирование программного файла для модификации или удаления.

Характеристик, присущих NXT, достаточно, когда речь идет о простых и малоресурсных задачах. Некоторые задачи встречаются в соревновательной практике чаще, чем другие. К таким популярным задачам относятся:

Кроме того, при опробовании более сложных алгоритмов, чем позволяет виртуальная машина робота NXT, которая не может превышать 32 Кбайт на программу, потребуются дополнительные ресурсы. Вы можете использовать персональный компьютер для расчета и последующей прямой передачи управляющих кодов роботу. Для осуществления такой связи к компьютеру может быть подключен либо USB-кабель, либо Bluetooth. Поскольку физическое подключение к компьютеру здесь не требуется, Bluetooth-соединение является наиболее удобным и интересным решением.

Описание микросхемы  CSR BlueCore 4 v2.0

Чип BlueCore 4 v2.0 от CSR содержит все компоненты, необходимые для полноценного узла Bluetooth. Встроенный 16-разрядный процессор организует стек сообщений. Микроконтроллер ARM7, управляющий NXT, взаимодействует с модулем Bluetooth через UART. Реализованы два протокола последовательного порта: SPP-A и SPP-B. SPP-A используется, когда локальный беспроводной узел инициирует соединение. SPP-B используется, когда инициатором соединения является удаленный узел. Чип BlueCore 4 использует потоковый режим для передачи данных со скоростью до 220 кбод. Структура данных, содержащая команду управления, которая должна быть отправлена в NXT, показана в таблице 5.

Таблица 5.

Таблица 5: Структура данных для передачи команды управления

Ответом является пакет данных, содержащий байт состояния. Три байта составляют ответное сообщение. Компьютер запрашивает данные у робота NXT, отправляя пакет, имеющий определенную структуру (см. таблицу 6).

Таблица 6.

Таблица 6: Структура запроса на чтение данных от робота NXT

Пакет, возвращаемый NXT, содержит не только байт состояния, но и номер очереди, в которую были отправлены данные, и непосредственно байты сообщения, пронумерованные 5-63. Поэтому максимальный размер полезных данных, отправляемых роботом, не может превышать 59 байт ни для Bluetooth, ни для USB-соединения.

Как правило, обмен сообщениями между роботом и компьютером должен происходить в реальном времени практически во всех задачах. Использование большой вычислительной мощности, пересчет управляющего воздействия в реальном времени, является примером, где необходимо использовать персональный компьютер. На рис. 2 показана схема системы на основе ПИД-регулятора для следования по линии. Когда робот следует за линией, ПИД-регулятор должен корректировать управление в среднем каждые 50 миллисекунд, чтобы иметь возможность быстро реагировать на изменение направления этой линии.

LEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | Канобу

               

LEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | Канобу

ПИД-контроллер

Рис. 2. Блок-схема ПИД-регулятора для задачи следования робота по линии

Во время движения по линии роботу может потребоваться выполнить аналитическую задачу. Чтобы эффективно конкурировать, роботу необходимо проанализировать текущую ситуацию, используя огромную базу правил, и принять оптимальное решение. В этом случае целесообразно использовать экспертную систему с продукционной моделью представления знаний, где правила поведения представлены в виде условий “Если (условие), то (действие)”. Использование такой системы потребует более 32 Кбайт памяти.

Настройка скорости соединения

Мы провели эксперимент, чтобы проверить, можно ли использовать беспроводной канал связи для передачи данных между роботом NXT и компьютером. В этом эксперименте компьютер постоянно запрашивал у робота данные о его состоянии. В ответ робот отправлял сообщения разной длины. Блок ответного сообщения, содержащий непосредственно данные о состоянии, содержал последовательности длиной от 4 до 59 байт.

Как только программное обеспечение на компьютере было загружено и компьютер и робот NXT были соединены, соединение было установлено на стороне компьютера. Как только робот был инициализирован, ему было отправлено сообщение с запросом данных. В ответ компьютер отправлял еще одно сообщение с запросом и ждал ответа. Это повторялось в течение одной секунды. Были протестированы сообщения с различными размерами блоков данных: 8, 16, 32, 48 и 59 байт. В целом, эксперимент был проведен 1000 раз для всех типов блоков данных. Согласно таблице 7, ниже приведены результаты эксперимента с количеством отправленных и возвращенных пакетов в секунду.

Таблица 7.

Таблица 7 – Результаты тестирования скорости передачи данных беспроводного канала

В таблице 7 видно, что количество отправляемых пакетов уменьшается, когда длина блоков данных превышает 16 байт. В таблице 8 приведены характеристики блоков данных для различных случаев.

Таблица 8: Результаты опроса

Таблица 8: Характеристики различных блоков данных в реальных задачах управления роботом NXT

Рассмотрим размер блока данных в байтах для реальных задач управления роботом. Например, в задаче следования по линии необходимо обновлять информацию с датчиков каждые 50 миллисекунд. В таком случае каждую секунду компьютер должен запрашивать, а робот передавать LEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | Канобу • 6 = 120 байт данных. В виду того, что длина одного пакета в задаче следования но линии равна 6 байтам, целесообразно выбрать размер блока данных, равный 8 байт. Исходя из результатов эксперимента, NXT способен передавать от 11 до 13 пакетов длиной 8 байт за секунду. Отсюда возникает противоречие, заключающееся в несоответствии требуемой для решения задачи скорости передачи пакетов реальным возможностям Bluetooth-модуля.

Это может быть применимо и к другим задачам, где роботом нужно управлять в режиме реального времени. На рисунке 3 представлен график, показывающий разницу между требуемой и фактической скоростью передачи пакетов для четырех информационных пакетов.

LEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | Канобу

Синий цвет – требуемая скорость, красный – фактическая скорость

Рис. 3. Диаграмма, показывающая разницу между требуемой и фактической скоростью передачи данных

Передача критических эпизодов на NXT

Для решения этой проблемы критически важные задачи, такие как контроль состояния двигателя и отслеживание линии, могут быть переданы от роботизированной руки NXT компьютерной системе. В этом случае достигается приемлемое время реакции на изменения. Персональный компьютер продолжает обрабатывать ресурсоемкие задачи, управляя действиями робота по беспроводному каналу связи в соответствии с принятыми решениями. На рис. 4 решение изображено в виде блок-схемы.

Персональный компьютер Робот NXT

LEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | Канобу

LEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | Канобу

LEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | КанобуLEGO представила возможности для кооперативной игры наборов с Марио и Луиджи | Канобу

Рис. 4. Блок-схема алгоритма выполнения критических участков на роботе

Выводы

Роботы Lego Mindstorms активно и широко используются в соревнованиях для студентов и для тестирования различных алгоритмов. Наиболее удобным методом управления в этом случае является беспроводное соединение через передатчик Bluetooth. Этот эксперимент показал, что механизм беспроводного SPP-соединения, реализованный в роботе NXT, не обеспечивает достаточной скорости передачи данных для передачи всех вычислений на ПК. В данной работе для решения выявленной проблемы предлагается передать чувствительные ко времени задачи управляющему микроконтроллеру AT91SAM7S256 в роботе NXT.

Оцените статью
Радиокоптер.ру
Добавить комментарий