Научная статья на тему 'Об архитектуре роботов и интеллектуальном управлении ими'

Об архитектуре роботов и интеллектуальном управлении ими Текст научной статьи по специальности «Электротехника, электронная техника, информационные технологии»

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

Аннотация научной статьи по электротехнике, электронной технике, информационным технологиям, автор научной работы — Окуловский Юрий Сергеевич, Шека Андрей Сергеевич

Описана архитектура колесного робота и системы управления им. Рассмотрены основные устройства, используемые для создания колесных роботов. Приведена классификация языков для управления роботов. Изложены подходы к применению интеллектуальных алгоритмов для решения основных задач управления, связанных с колесными роботами.

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

Похожие темы научных работ по электротехнике, электронной технике, информационным технологиям , автор научной работы — Окуловский Юрий Сергеевич, Шека Андрей Сергеевич

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

Текст научной работы на тему «Об архитектуре роботов и интеллектуальном управлении ими»

ОБ АРХИТЕКТУРЕ РОБОТОВ И ИНТЕЛЛЕКТУАЛЬНОМ

УПРАВЛЕНИИ ИМИ Ю.С. Окуловский, А.С. Шека (Уральский государственный университет им. А.М. Горького)

Научный руководитель - д.ф.-м.н., профессор В.Ю. Попов (Уральский государственный университет им. А.М. Горького)

Описана архитектура колесного робота и системы управления им. Рассмотрены основные устройства, используемые для создания колесных роботов. Приведена классификация языков для управления роботов. Изложены подходы к применению интеллектуальных алгоритмов для решения основных задач управления, связанных с колесными роботами.

Введение

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

В связи с растущей актуальностью использования роботов в современном мире особую важность приобретает подготовка специалистов в этом направлении. Для формирования общего восприятия проблемы необходимо изучать не конкретные модели роботов, но некую типовую, обобщенную и расширяемую модель. При этом, с одной стороны, требуется знакомство будущего специалиста с различными аспектами робототехники: механикой, электротехникой, системами управления, программным обеспечением и так далее. С другой стороны, для специализации в каком-либо направлении требуется возможность детального изучения одного из аспектов без углубленного изучения других. В этом смысле колесные роботы выгодно отличаются от, например, андро-идных роботов. Колесные роботы обладают сравнительно простой механикой и электроникой. Более того, качественная механика для колесных роботов (колесные базы с подвесками, амортизаторами и т.д.) может быть заимствована из моделей, которые используются в соревнованиях радиомоделистов. Подобные колесные базы доступны по цене, обладают хорошим качеством исполнения и могут быть приспособлены для целей робототехники.

Сравнительно простая модель колесного робота вызывает, тем не менее, большой интерес в мировом сообществе. Так, например, широко известны соревнования колесных роботов, играющих в футбол [1], или задачи на движение по пересеченной местности автономных автомобилей [2]. Колесные роботы имеют и прикладное значение: исследование труднодоступных областей (таких, как пирамида Хеопса или поверхность Марса), автоматическое движение по городу в соответствии с правилами дорожного движения («автоматическое такси»), и т.д.

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

или крановой установкой. Дополнительные устройства позволяют решать еще больший спектр задач и при этом не вызывают существенного изменения механической структуры робота. Решение подобных задач традиционными методами не всегда эффективно. Использование нейронных сетей, генетических алгоритмов [3], алгоритмов коллективного разума [4] и других интеллектуальных систем позволяет решать эти задачи с большей эффективностью. Кроме того, в области приложения интеллектуальных систем к робототехнике имеется большой потенциал для исследований, поскольку на сегодняшний день эти темы исследованы в недостаточно полном объеме, как в нашей стране, так и за рубежом.

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

1. Архитектура колесных роботов

1.1. Архитектура электронных устройств

Принципиальная схема взаимосвязей основных компонентов робота изображена на рис. 1.

Устройства, установленные на борту робота

Рис. 1. Схема взаимосвязей основных компонентов робота

1.2. Серводвигатели

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

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

Так как в большинстве случаев для корректировки в полете нужны только небольшие изменения положения, диапазон вращения серводвигателей был ограничен 90°. Эти вращения часто переводились в линейные движения - перемещение закрылок (вверх и вниз), поднимание, и опускание шасси и т.д. Редукционная передача давала возможность относительно небольшому двигателю на коротком расстоянии производить большой крутящий момент.

Управляющий входной сигнал серводвигателя представляет собой последовательность квадратных импульсов длиной от 1 мс до 2 мс, частота повторения которых

лежит в диапазоне от 20 Гц до 60 Гц. Положение выходного вала пропорционально ширине входного импульса - это управление с широтно-импульсной модуляцией (ШИМ).

Рис. 2. Импульс 1 мс

Импульс длительностью 1 мс поворачивает выходной вал вправо, т.е. по часовой стрелке (рис. 2).

Рис. 3. Импульс 2 мс

Импульс длительностью 2 мс поворачивает выходной вал влево, т. е. против часовой стрелки (рис. 3).

Рис. 4. Импульс 1,5 мс

Импульс длительностью 1,5 мс поворачивает выходной вал к центру его вращения (рис. 4).

1.3. Регулятор хода

Регулятор хода используется для регулирования количества оборотов на силовом двигателе, который обеспечивает движения вперед и назад. Он включается между аккумулятором и силовым электродвигателем. Регулятор имеет такой же трехконтактный разъем, как и у серводвигателя, и такой же входной сигнал управления ШИМ В простейшем случае в задачу регулятора входит регулирование потока мощности от аккумулятора к двигателю. При длительности входного импульса 1 мс двигатель выключен,

при 2 мс двигатель развивает максимальную мощность. В промежутке мощность плавно изменяется. Типовая структурная схема включения представлена на рис. 5.

Г - управляющий генератор; К - силовой ключ; Б - диод; А М - электродвигатель;

А - аккумулятор.

л.

Л

чш.

ае

о

Рис. 5. Схема регулятора хода

Входной импульс поступает на управляемый генератор импульсов Г. Частота импульсов постоянна, а вот их длительность зависит от длительности входного импульса следующим образом (рис. 6).

Рис. 6. Зависимость входного и выходного импульсов в регуляторе хода

При длительности выходного импульса 0% на выходе генератора их просто нет -там низкий уровень управляющего ключом сигнала. Ключ К закрыт, ток через двигатель М не течет. При длительности выходного импульса 100% от периода на выходе генератора тоже импульсов нет, но уровень управляющего ключом сигнала высокий. Ключ К открыт, и все напряжение от аккумулятора А приложено к двигателю М. Он развивает при этом максимальную мощность.

При промежуточном значении длительности канального импульса на выходе генератора присутствуют импульсы с длительностью, определяемой по приведенному графику. Скажем, при канальном импульсе 1,5 мс на выходе генератора присутствуют импульсы, длительность которых составляет половину периода. Соответственно, ключ К половину периода открыт, половину - закрыт. Напряжение в точке 1 повторяет эту форму. Данная организация работы регулятора хода и устройство коллекторного двигателя позволяет организовать плавное изменение скорости вращения двигателя. При этом двигатель будет крутиться с постоянной скоростью, без подергиваний, на всех скоростях.

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

1.4. Контроллер сервоприводов

Контроллер сервоприводов - это микроконтроллер с прошитым программным обеспечением. Он генерирует сигналы ШИМ для серводвигателей и регуляторов хода согласно спецификации. В продаже имеется несколько контроллеров, которые способ-

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

В нашем случае используется контроллер ZX-SERVO16. На начальной стадии этот контроллер удовлетворяет потребностям. Но для более свободной архитектуры нужно использовать контроллеры с собственной прошивкой, так как это позволяет нам расширять и изменять функционал контроллера.

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

1.5. Web-камера

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

1.6. Бортовой компьютер

На борту робота установлен компьютер архитектуры x86. Эта распространенная архитектура, что облегчает работу с ней. Для нее существует большое количество инструментов программирования и периферийных устройств. Это позволяет с минимальными затратами проводить расширение и изменение архитектуры робота. Бортовой компьютер использует две операционные системы: Windows и Linux. Первая операционная система более популярна и универсальна для рядовых пользователей, что позволяет с легкостью осваивать робота, но ее через функциональность и закрытость вызывает ряд проблем, связанных с производительностью и расширением. В целом Windows используется для «обкатки» программ. В свою очередь, Linux - открытая операционная система, но на начальной стадии работы с ней возникают проблемы. Linux имеет разнообразные дистрибутивы, что позволяет собрать систему с максимальной производительностью. Кроме того Linux используется на встраиваемых системах, отличных от архитектуры x86, что уменьшит затраты в случае формирования решения, основанного на дешевых системах.

Бортовой компьютер предполагает расширение робота, что влечет за собой использование множества различных устройств, поэтому необходим легко расширяемый протокол общения. Все данные от бортового к командному компьютеру передаются с помощью одного TCP/IP соединения. Формат данных от командного к бортовому и от бортового к командному компьютерам одинаков. Пакеты имеют следующий формат:

ID Длина пакета Данные устройства

^ 1 байт ^ ^ 1 байт ^ <- не более 253 байт ->

1.7. Командный компьютер

Модель робота снабжена рулевым сервоприводом и регулятором хода силового двигателя. Оба устройства подключены к контроллеру 2Х-8БЯУ016. Этот контроллер получает сигналы от материнской платы бортового компьютера через С0М-интерфейс

и выполняет управление сервоприводом и регулятором хода. Также к материнской плате бортового компьютера подключена Web-камера через шину USB. Наконец, бортовой компьютер снабжен Wi-Fi адаптером для связи с другими компьютерами по беспроводной сети.

Преимуществом такой организации является расширяемость модели. Так, контроллер ZX-SERVO16 позволяет осуществлять управление 16 сервоприводами. Соответственно, в случае расширения модели робота дополнительными манипуляторами (экскаваторный ковш, крановая установка, система управления Web-камерой) необходимые сервоприводы могут быть подключены к имеющемуся контроллеру. Также существуют специальные контроллеры для оцифровки сигналов, которые позволяют преобразовывать аналоговые данные в цифровые и передают их по COM-интерфейсу. Соответственно, робот может быть снабжен датчиками ускорения, лазерными дальномерами, гироскопами и другими устройствами. Также преимуществом данной модели является использование стандартных устройств и интерфейсов. Соответственно, для расширения модели не требуется пайка или аппаратное программирование микросхем.

2. Языки управления роботами

Предлагается шестиуровневая программная модель управления роботами: микроконтроллерный уровень автоматных состояний, элементарных движений, структурного моделирования, сценариев, интеллектуального управления.

Микроконтроллерный уровень предполагает обеспечение взаимодействия аппаратуры робота (сервоприводов и т.д.) с программными комплексами более высокого уровня. Этот уровень включает в себя всю аппаратно-зависимую часть программного обеспечения и позволяет использовать программные комплексы более высокого уровня вне зависимости от конкретных моделей роботов и установленных на нем устройств. В частности, для управления сервоприводами используется язык контроллера сервоприводов. Команды на этом языке передаются через интерфейс COM.

Уровень автоматных состояний позволяет программировать элементарные действия исходя из специфики аппаратной части, но не из конкретики модели. Например, уровню автоматных состояний соответствует команда «повернуть руль на 10° влево». Соответственно, программное обеспечение, выдающее подобные команды, способно работать с любой новой моделью колесных роботов, если для этой новой модели будет создан язык микроконтроллерного уровня.

Уровень элементарных движений полностью абстрагирован от аппаратной части и позволяет управлять роботом заданием конкретных последовательности движений.

Уровень структурного моделирования позволяет выделять специфические аппаратные комплексы и узлы, давать им определенные задания, разрешать конфликты между узлами, обеспечивать решение задач в динамическом режиме и автоматически решать широкий спектр первичных задач жизнеобеспечения робота. Для программирования на уровне структурного моделирования предполагается использовать современные языки (C#, Java и другие). Взаимодействие между этими языками и языком уровня элементарных движений осуществляется путем объявления соответствующих программных интерфейсов, которые обеспечивают объектно-ориентированное представление робота.

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

3. Задачи интеллектуальных алгоритмов в робототехнике

3.1. Интеграция с интеллектуальными вычислениями

Для выполнения интеллектуальных вычислений используется специализированная библиотека GANS [5, 6]. Данная библиотека позволяет собирать интеллектуальные системы (нейронные системы или генетические алгоритмы) из простых компонентов. Библиотека написана на C# и имеет открытый исходный код.

При использовании объектно-ориентированного представления робота, с одной стороны, и библиотеки интеллектуальных вычислений - с другой, становится возможной разработка программ управления роботом «изолированно» от тонкостей алгоритмов искусственного интеллекта и особенностей взаимодействия с устройством.

Известно, что решение задач с помощью методов искусственного интеллекта является достаточно ресурсоемким процессом. С другой стороны, системы искусственного интеллекта часто без труда могут быть распараллелены. Поэтому необходимо предусмотреть возможность распараллеливания этих алгоритмов на узлы высокопроизводительной компьютерной техники. Библиотека GANS содержит возможность распараллеливания, и был разработан специальный инструментарий для запуска интеллектуальных алгоритмов на узлах кластера [7].

3.2. Распознавание изображений

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

Наша обработка изображений основывается на использовании нейронных сетей. Первоначально необходимо выполнить преобразование «фон/фигура», т.е. отделить значимые изображения от общего фона. Для выполнения этого преобразования была использована нейронная сеть, обученная на галерее изображений. Эта сеть анализирует пиксели изображения и определяет принадлежность каждого пикселя к фону или значимому объекту. Затем связные области пикселей, принадлежащих объектам, группируются и направляются на последующий анализ.

Для построения полосы препятствий использовались такие объекты, как крупные кубики, кегли и т. п. Для определения типа объекта на фотографии используется батарея нейронных сетей. Каждая из них умеет распознавать свой тип объектов (т.е. кубик, кеглю и т.д.). Анализатор подает изображение объекта на все нейронные сети и выбирает наиболее уверенный ответ.

Преимуществом подобной архитектуры является ее расширяемость. Так, если изменился фон (например, робот приехал в новую, до сих пор не посещаемую комнату), то анализатор «фон/фигура» может быть дополнительно обучен работе в новых условиях. Аналогично, если появился новый, до сих пор неизвестный тип объектов, он будет идентифицирован как неизвестный, поскольку ни одна нейронная сеть не сможет уверенно распознать его. Соответственно, робот задает вопрос оператору относительно названия этого объекта и обучает дополнительную нейронную сеть.

Распознавание изображение важно также для контроля поведения роботов. Рассмотрим, например, типичную задачу для колесного робота - «сдачу на права». Это означает, что робот должен миновать некоторую полосу препятствий, не повредив и не опрокинув препятствия. Контроль над выполнением этого упражнения может быть возложен на видеокамеру. Такая видеокамера устанавливается так, чтобы в ее обзор входило все пространство, на котором робот осуществляет передвижение. С помощью описанных распознающих алгоритмов контролирующая программа строит карту местности, отмечая на ней робота, препятствия и их состояния, посторонние объекты и т. д. Также эта программа способна отметить направление движение робота, его скорость и

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

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

3.3. Управление колесным роботом

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

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

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

Литература

1. DARPA Grand Challenge. - Режим доступа: http://www.darpa.mil/grandchallenge/

2. Federation of International Robot-soccer Association. - Режим доступа: http://www.fira.net/

3. Нейронные сети, генетические алгоритмы и нечёткие системы. / Рутковская Д. и др. - М: Горячая линия-Телеком, 2004.

4. Ant Colony Optimization / M. Dorigo, T. Stützle. MIT Press, 2004.

5. A model and implementation of universal engine for neural systems. / Окуловский Ю.С., 9-й международная конференция "Интеллектуальные системы и компьютерные науки, труды конференции, II том. - Москва, 2006. - С. 21.

6. GANS home page. - Режим доступа: http://ai.math.usu.ru/wiki/index.php?title=GANS

7. Комплекс распределения интеллектуальных вычислений на кластер под управлением операционной системы Windows / Морнев М.Л., Окуловский Ю.С. Четвертая сибирская школа-семинар по параллельным и высокопроизводительным вычислениям. Программа и тезисы. - Томск, 2007. - С. 49.

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