Научная статья на тему 'Управление роботом Lego NXT посредством Bluetooth'

Управление роботом Lego NXT посредством Bluetooth Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
2831
185
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ТЕСТИРОВАНИЕ СКОРОСТИ СОЕДИНЕНИЯ / АЛГОРИТМЫ УПРАВЛЕНИЯ РОБОТОМ В РЕАЛЬНОМ ВРЕМЕНИ / LEGO NXT / BLUETOOTH / SERIAL PORT PROFILE / CONNECTION SPEED TEST / REAL-TIME ROBOT CONTROL ALGORITHMS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Дусеев Вагиз Рауфович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

LEGO NXT Mindstorms robots gained prevalence among the wide range of institutions as a useful tool for robotic algorithms approbation. The aim of the work was to investigate the possibilities of wireless robot control via Bluetooth module in order to perform all calculations on personal computer. The built in wireless module CSR BlueCore 4 v2.0 in LEGO NXT robot was tested by repeatedly sending data requests from computer to the robot. Robot replied with data packages of different size. The obtained rate of data transmitting between the LEGO NXT robot and the computer was then compared with data transmitting rate required by the real robotic tasks. The results showed that existing Bluetooth communication module inside LEGO NXT robot is incapable of sending more than 11-13 data packages per second. A solution to come over such limitations of the channel is to reduce the amount of data transmitted from robot to computer by handing over the small real-time tasks to robot itself.

Текст научной работы на тему «Управление роботом Lego NXT посредством Bluetooth»

УДК 621.865.8-2

УПРАВЛЕНИЕ РОБОТОМ LEGO NXT ПОСРЕДСТВОМ BLUETOOTH

В. Р. Дусеев

Томский политехнический университет E-mail: vagiz.d@gmail.com

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

Ключевые слова:

LEGO NXT, Bluetooth, Serial Port Profile, тестирование скорости соединения, алгоритмы управления роботом в реальном времени.

В настоящее время роботы Mindstorms NXT компании LEGO нашли самое широкое применение в учебном процессе в высших учебных заведениях. Роботы используются при проведении различных соревнований по мехатронике, робототехнике и искусственному интеллекту. Ежегодно проводится до 50 крупных соревнований международного уровня, самым крупным из которых является WRO (World Robot Olympiad — Всемирная олимпиада роботов) [1]. В России крупнейшим мероприятием подобного уровня являются ежегодные соревнования Ро-бофест [2]. Большое развитие получило движение робототехнических кружков.

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

Аппаратное устройство робота Lego NXT

Управляющий блок робота, так называемый брик, оснащен управляющим микроконтроллером AT91SAM7S256 [4] производства корпорации Atmel на базе 32-битного микропроцессора ARM7. В табл. 1 приведены основные характеристики микроконтроллера.

Дусеев Вагиз Рауфович,

студент кафедры вычислительной техники Института кибернетики ТПУ. E-mail: vagiz.d@gmail.com Область научных интересов: фильтрация данных, исследование аппаратных возможностей роботов семейства Mindstorms.

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

Процессор ARM7TDMI 32-битный, RISC-архитектура

Объем внутренней Flash-памяти 256 Кбайт

Объем внутренней SRAM-памяти 64 Кбайт

Частота работы до 55 МГц

В качестве управления силового модуля (сервоприводы робота) используется микроконтроллер на базе 8-битного ATmega48, который в данном случае способен управлять тремя моторами. Брик оснащен небольшим динамиком, диапазон воспроизводимых частот которого составляет 2-16 кГц. Вывод информации осуществляется посредством монохромного LCD-экрана с разрешением 100*64 пикселей и физическим размером 40,6*26 мм. Робот также оснащен четырьмя кнопками, которые предназначены для навигации по интерфейсу посредством иерархического меню. Доступны четыре порта для ввода, три порта для вывода, а также интерфейс USB 2.0, работающий в режиме Full speed (12 Мбит/с) [5]. Также робот способен получать данные от четырех датчиков. В табл. 2 представлены основные типы датчиков. Для беспроводного соединения доступен модуль Bluetooth 2.0 EDR, характеристики которого представлены в табл. 3. Питание робота осуществляется от шести батареек типа AA либо от литий-ионного аккумулятора емкостью 1400 мА/ч.

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

Цветовой датчик Определяет до шести различных цветов: синий, зеленый, красный, желтый, белый и черный

Световой датчик Определяет уровень яркости

Датчик касания Представляет собой кнопку, реагирующую на нажатие

Ультразвуковой датчик Измеряет расстояние в диапазоне 9-75 см

Звуковой датчик Измеряет громкость звука; не имеет функции записи

Компас Позволяет определить северное направление, возвращая текущее отклонение робота в радианах

Акселерометр Определяет ускорение и направление движения робота

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

Объем внутренней RAM-памяти 47 Кбайт

Объем внешней Flash-памяти 8 Мбит

Частота работы 26 МГц

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

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

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

Аппаратное и программное обеспечение Lego NXT, представленное прошивкой LEGO MINDSTORM Firmware 1.28 [3], позволяют осуществлять управление роботом тремя возможными способами.

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

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

Слово 1 Слово 2 Слово 3

Название поля Опкод Размер Флаги Аргумент 1 Аргумент 2

Биты 0..7 8..11 12..15 0..15 0..15

Вторым способом подключения является беспроводное соединение посредством Bluetooth-передатчика. Протокол соединения через Bluetooth был реализован в виде профиля последовательного порта (Serial Port Profile, далее SPP) [4], который можно рассматривать как беспроводной последовательный порт. Данный протокол основан на стандарте 07.10 европейского института телекоммуникационных стандартов, а также на протоколе RFCOMM.

SPP эмулирует работу последовательного порта, предоставляя тем самым замену существующему RS-232 [8]. С целью уменьшения энергопотребления Bluetooth микросхема была реализована в соответствии со стандартом Bluetooth Class II, что ограничивает дистанцию для соединения десятью метрами [4]. Обмен сообщениями происходит аналогично коммуникации посредством USB-кабеля. В виртуальной машине параллельно с выполняемыми программами запускается отдельная задача, ожидающая поступления опкодов из очереди сообщений определенного канала Bluetooth-соединения.

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

1. Валидация файла - чтение файла и валидация его версии и заголовков.

2. Активация - выделение и инициализация блока RAM для хранения данных. После активации текущие исполняемые наборы опкодов и данных будут загружены в выделенный блок в соответствии с последовательностью выполнения кодов.

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

4. Завершение - освобождение всех использованных систем ввода/вывода и RAM, а также разблокировка файла программы для изменения или удаления.

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

• следование по линии, которая обычно представляет собой контрастную изгибающуюся полосу, прочерченную на полу;

• избегание столкновения с препятствиями;

• поиск определенного объекта на соревновательном поле;

• перемещение заданного объекта по соревновательному полю.

Однако при апробации более сложных алгоритмов или же при превышении выделенного виртуальной машиной объема памяти, который в роботе NXT не может превышать 32 Кбайт для одной программы, неизбежно возникает необходимость задействовать дополнительные ресурсы. Например, вычисления производить на персональном компьютере, а непосредственно роботу передавать только управляющие опкоды. Организовать такое сообщение между роботом и компьютером можно либо посредством ^В-кабеля, либо используя беспроводное В1иеШо1Ь-соединение. Очевидно, что отсутствие необходимости физического подключения к ПК делает В1ие1оо1Ь-соединение наиболее удобным и интересным решением в данной ситуации.

Описание микросхемы С8Я В1иеСоге 4 у2.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 [8].

Таблица 5. Структура данных для отправки управляющей команды

Байт 0 Байт 1 Байт 2 Байт 3 Байт 4 - N

0x00 или 0x80 0x09 Номер очереди (0-9) Длина сообщения Данные

В качестве ответа робот NXT возвращает пакет данных, содержащий байт состояния. Длина ответного сообщения равна трем байтам. При запросе данных с робота NXT компьютер отправляет пакет с определенной структурой (табл. 6).

Байт 0 Байт 1 Байт 2 Байт 3 Байт 4

0x00 или 0x80 0x13 Номер очереди (0-9) Номер локальной очереди (0-9) Флаг удаления данных из очереди NXT

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

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

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

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

Определение скорости соединения

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

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

Длина блока данных в байтах Количество переданных и полученных за секунду пакетов (шш-шах)

4 11-13

8 11-13

16 10-13

32 7-8

48 7-8

59 7-8

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

Содержание блока Число задействованных датчиков Длина блока, байт Чис ло требуемых пакетов в секунду

Движение по линии 2 6 20

Обнаружение объекта 4 16 10

Состояние робота 0 48 1

Состояние двигателей 3 24 20

Рассмотрим размер блока данных в байтах для реальных задач управления роботом. Например, в задаче следования по линии необходимо обновлять информацию с датчиков каждые 50 миллисекунд. В таком случае каждую секунду компьютер должен запрашивать, а робот передавать ^^ ■ 6 = 120 байт данных. В виду того, что длина одного пакета в задаче следования по линии равна 6 байтам, целесообразно выбрать размер блока данных, равный 8 байт. Исходя из результатов эксперимента, NXT способен передавать от 11 до 13 пакетов длиной 8 байт за секунду. Отсюда возникает противоречие, заключающееся в несоответствии требуемой для решения задачи скорости передачи пакетов реальным возможностям В!иеШо1Ь-модуля.

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

25 20 15 10

Движение по линии

Обнаружение Состояние робота Состояние объекта двигателей

I Требуемая скорость

(Действительная скорость

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

Перенос критических секций на NXT

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

ресурсоёмкая задача 2

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

Заключение

Роботы Lego Mindstorms активно и широко используются в студенческой соревновательной деятельности, а также для апробации различных алгоритмов. Наиболее удобным способом управления в таком случае является беспроводное соединение посредством Bluetooth-

5

0

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

СПИСОК ЛИТЕРАТУРЫ

1. World Robot Olympiad - About. - URL: http://www.wroboto.org/about-wro (дата обращения: 10.05.14).

2. Робофест-2014 - О фестивале. - URL: http://robofest2014.ru/about (дата обращения: 10.05.14).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. LEGO MINDSTORMS NXT Executable File Spécification - 2009 The LEGO Group. - URL: http://www.lego.com/en-us/mindstorms/downloads/nxt/nxt-sdk/ (дата обращения: 10.05.14).

4. LEGO MINDSTORMS NXT Hardware Developer Kit - 2006 The LEGO Group. - URL: http://www.lego.com/en-us/mindstorms/downloads/nxt/nxt-hdk/ (дата обращения: 10.05.14).

5. LEGO MINDSTORMS NXT Bluetooth Developer Kit - 2006 The LEGO Group. - URL: http://www.lego.com/en-us/mindstorms/downloads/nxt/nxt-bdk/ (дата обращения: 10.05.14).

6. Universal Serial Bus Spécification / TOANYIP RIGHTS. - 2000 Apr 27. - URL: http://www.sdphca.ucsd.edu/Lab_Equip_Manuals/usb_20.pdf (дата обращения: 10.05.14).

7. SAM7S Series Complete // atmel.com [2014]. - URL: http://www.atmel.com/Images/doc6175.pdf (дата обращения: 11.05.2014).

8. Bluetooth Core Specification 4.1. - URL: https://www.bluetooth.org/DocMan/handlers/ DownloadDoc.ashx?doc_id=282159 (дата обращения: 11.05.2014).

Поступила 20.05.2014 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.