Исследование и разработка алгоритмов и программ управления антропоморфным роботом

Анализ существующих учебно-технических решений по управлению антропоморфными роботами. Разработка архитектуры лабораторного комплекса. Разработка структуры данных и знаний для лабораторного комплекса. Программные модули примеров лабораторных работ.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 23.12.2019
Размер файла 7,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Содержание

  • Введение
  • 1. Анализ существующих учебно-технических решений по управлению антропоморфными роботами
    • 1.1 История развития антропоморфных роботов
    • 1.2 Антропоморфный робот Дарвин
    • 1.3 Антропоморфный робот NAO Evolution
  • 2. Разработка архитектуры лабораторного комплекса: предъявляемые требования, ограничения, структурная схема
    • 2.1 Предметная область
    • 2.2 Постановка задачи
    • 2.3 Требования к разрабатываемому комплексу
    • 2.3.1 Требования к лабораторному комплексу в целом
    • 2.3.2 Требования к функциям лабораторного комплекса
    • 2.3.3 Требования к видам обеспечения
    • 2.4 Ограничения для лабораторного комплекса
  • 3. Разработка структуры данных и знаний для лабораторного комплекса
    • 3.1 Описание разработанных структур данных интерфейса
    • 3.2 Структуры данных и знаний в практических примерах
  • 4. Разработка алгоритмов
    • 4.1 Представление алгоритмов в комплексе лабораторных работ
    • 4.2 Разработанные алгоритмы первой лабораторной работы
    • 4.3 Разработанные алгоритмы второй лабораторной работы
    • 4.4 Разработанные алгоритмы третьей лабораторной работы
    • 4.5 Разработанные алгоритмы четвёртой лабораторной работы
    • 4.6 Разработанные алгоритмы пятой лабораторной работы
  • 5. Разработка и описание программных модулей
    • 5.1 Описание программных модулей графического интерфейса
    • 5.2 Описание программных модулей примеров лабораторных работ
  • 6. Экспериментальное тестирование и отладка программных модулей
    • 6.1 Описание проводимого тестирования
    • 6.2 Тестирование и отладка интерфейса лабораторного комплекса
    • 6.3 Тестирование и отладка практических примеров лабораторного комплекса
  • 7. Оценка качества разрабатываемого продукта
    • 7.1 Оценка качества интерфейса комплекса лабораторных работ
    • 7.2 Оценка качества программы диагностики
    • 7.3 Оценка качества программы музыкальной анимации
    • 7.4 Оценка качества программы танца
  • Заключение
  • Список использованных источников
  • Введение

антропоморфный робот лабораторный архитектура

В настоящее время активно ведутся разработки в области антропоморфной робототехники. Антропоморфная робототехника - это перспективное направление исследований, изучающее методы построения человекоподобных роботов и их управления. Эти роботы должны быть универсальными, то есть у них по возможности должна быть одна универсальная платформа и возможности, благодаря которым они смогут выполнять различные виды работ. Создание узкоспециализированных роботов неэффективно. Антропоморфные (человекоподобные) роботы наиболее универсальны, т.к. могут заменить человека благодаря тому, что у них, как и у человека, имеются руки, чтобы работать различным инструментом, и ноги, что даёт им возможность перемещаться на различные расстояния. Возможности такого робота весьма разнообразны: он может выполнять такие сложные и опасные работы как обезвреживание различных видов взрывчатки ввиду того, что при ошибке не пострадает ни один человек, а самого робота можно будет восстановить, либо создать нового по такой же технологии. Ещё одним примером полезного применения антропоморфных роботов является использование их в средах, потенциально опасных для человека, таких как сильное давление, повышенная концентрация газа или высокие температуры. Кроме того, направление антропоморфной робототехники является наукоёмким, вследствие высокой сложности как конструкций роботов, так и систем управления этими конструкциями. Однако стоит задуматься и о безопасности роботов, так как они будут работать в среде, изначально предусмотренной для человека, и учитывать это обстоятельство при их проектировании. Данная работа представляет обучающий комплекс по управлению движениями, а также некоторыми другими видами взаимодействия робота со средой, учитывая её особенности, предназначенный для студентов с целью знакомства их с робототехникой и методами работы с ней на примере антропоморфного робота NAO H25 Evolution V5.

1. Анализ существующих учебно-технических решений по управлению антропоморфными роботами

1.1 История развития антропоморфных роботов

Мысль о появлении искусственных помощников появилась ещё во времена древних греков. В мифах было упоминание о том, что Гефест, бог-кузнец, сковал из золота помощниц, которые, конечно, были человекоподобными, и боги учили их различным видам работ [1]. Над этой идеей задумывались многие люди и первый робот, похожий на человека, появился уже в 1974 году. Развитие андроидной робототехники было практически неразрывно связано с медициной. Вот и первый антропоморфный робот, который представлен на рисунке 1.1, был разработан с целью оценки и дальнейшего развития электромеханических двигателей ортопедических устройств. Он был по сути прадедом антропоморфной робототехники, которая получила широкое распространение в наши дни.

Рисунок 1.1 Первый антропоморфный робот

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

В 1986 году был разработан антропоморфный робот HONDA компанией Honda R&D Co. Ltd., который выглядел как человек, одевший космический скафандр. В настоящее время он доработан и разработана новая модель под названием ASIMO, представленная на рисунке 1.2.

Рисунок 1.2 Робот ASIMO

Большого успеха в данной отрасли в наше время достигла компания НПО «Андроидная техника», которая является монополистом российского рынка. На мировом рынке компанию знают как успешную и конкурентоспособную, занимающейся наукой и исследованиями, проведением опытов и созданием различных конструкций. Также здесь разрабатывают инновационные решения, производят и совершенствуют линейку антропоморфных машин AR-600, которые представлены на рисунке 1.3. Роботы этой компании универсальны и разрабатываются под три приоритетных направления: работа в опасных для человека средах (безлюдные технологии), работа в условиях космоса (космическая робототехника) и обучение (наука и образование) [2].

Рисунок 1.3 Робот AR-600

В начале этого века в компании «Новая Эра» пытались создать первого антропоморфного робота по имени ARNEO, но эту попытку нельзя назвать успешной. Одним из решений, которое предложили в «Новой Эре», является применение вентильных бесконтактных электромоторов с постоянным током, мощность которого составляет 60 Вт. Они изготавливались силами специалистов компании, для них были свойственны удельные характеристики, которые позволяют развить огромную мощность при максимальной нагрузке на конечности робота [3].

В настоящее время существует множество компаний, разрабатывающих робототехнику, но в большинстве своём, это компании, создающие узкоспециализированных роботов, которые представляют собой различные конструкции на колёсах или с помощью иных способов передвижения, а многие вообще в виде отдельных частей роботов, таких как, например, манипуляторы. Но и компаний, разрабатывающих антропоморфных роботов, не так уж и мало. Существует несколько различных подходов к их разработке. Например, компания LEGO, в целях игры и обучения взаимодействия с робототехникой детей школьного возраста, разработала модуль, который позволяет прикрепить его к любому собранному самостоятельно из конструктора роботу, будь он антропоморфным или иной формы, и запрограммировать его с помощью диаграммного языка программирования так, чтобы он смог полноценно управлять собранной конструкцией [4]. А многие компании пошли другим путём и разрабатывают уже готовые андроидные решения для различных целей. Наиболее яркими представителями таких компаний стали ROBOTIS и Aldebaran Robotics.

1.2 Антропоморфный робот Дарвин

Компания ROBOTIS разработала человекоподобного робота Darwin-OP с целью использовать его в процессе образования [5]. Она работает со многими крупными ВУЗами, и большая часть их продуктов применяется в научно-исследовательской деятельности, а также профессиональном проектировании и изготовлении роботов. Сейчас новая модель Darwin-OP называется ROBOTIS-OP2 [6]. Darwin-OP представляет собой модель человекоподобного робота небольшого роста, а его название расшифровывается как «Dynamic Anthropomorphic Robot with Intelligence - Open Platform». Разработан Darwin-OP научно-техническим консорциумом, включающим авторов проекта со стороны компании ROBOTIS и ученых из университетов Virginia Tech, Purdue University,а так же University Pennsylvania.

Антропоморфный робот Darwin-OP (по-новому ROBOTIS-OP) представляет собой человекоподобную модель высотой чуть более 45 см, включающую в себя 20 степеней подвижности суставов на базе сервомодулей Dynamixel MX-28T. Darwin-OP представлен на рисунке 1.4.

Технические характеристики антропоморфного робота Darwin-OP: бортовой компьютер, содержащий процессор Intel Atom Processor N2600 (dual core, 1.6 GHz), заменяемую оперативную память 4 GB (DDR3 204-pin SO-DIMM module), заменяемую память SSD/mSATA module неограниченного размера, периферийный контроллер CM-740 на базе ARM CortexM3 STM32F103RE 72 MHz.

Рисунок 1.4 Робот Darwin-OP

Также он сдержит 6 приводов на каждую из двух ног, 4 привода на каждую из двух рук и 2 привода на голову и шею. Из бортовых датчиков присутствуют: трёхосевой гироскоп, трёхосевой акселерометр, камера и микрофон.

В комплекте с роботом идут запасные запчасти и набор по его ремонту, которые позволяют оперативно отремонтировать повреждённую часть. Это позволяет эксплуатировать Darwin-OP, не опасаясь за сохранность конструкции.

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

Студенты Computational Intelligence and Robotics Lab, Department of Electrical Engineering, National Taiwan Normal University научили робота преодолевать полосу препятствий в полуавтономном режиме. Управление роботом осуществлялось на уровне задач, большинство из которых он выполнял автономно, а переход между задачами осуществлялся по команде оператора. В процессе прохождения полосы препятствий робот ползком преодолел преграды на пути, взобрался по лестнице, перешел плоскости с разным наклоном и несколько уступов. В дополнение робот был оснащен захватным устройством для каждой из рук, с помощью которых он мог манипулировать объектами и передвигаться на руках по подвесной перекладине. Это представлено на рисунке 1.5.

Рисунок 1.5 Преодоление полосы препятствий

Разработчики UNLV (Университет Невады) специально для своего робота разработали модель паллетоукладчика, который управлялся роботом в полностью автономном режиме. Паллетоукладчик представлял собой мобильное шасси дифференциального типа, у которого каждый из двух ведущих приводов управлялся с помощью рычага, приводимого в движение роботом. Робот Darwin, практически как человек, усаживался в кабину паллетоукладчика и своими руками с помощью двух рычагов управлял движением мобильного шасси. Ориентация в пространстве и управление работой паллетоукладчика осуществлялось полностью в автономном режиме. Информацию об окружающей обстановке робот получал посредством системы технического зрения и самостоятельно принимал решения для выполнения поставленной задачи. Так же данная команда разработчиков научила робота передвигаться с переменной нагрузкой, перенося в каждой из рук по ведерку с водой, сохраняя стабильное положение и уверенную походку. Это представлено на рисунке 1.6.

Рисунок 1.6 Паллетоукладчик и перенос воды

Инженер из University of Manitoba (Канада) разработал робота Jennifer и научил его играть в хоккей и кататься на лыжах. Робот Jennifer, ловко управляясь с хоккейной клюшкой, может вести мяч, отдавать пасы и поражать ворота шайбой, при этом балансируя и передвигаясь на коньках. Встав на лыжи, робот ловко спускает по заснеженным склонам, преодолевает уклоны и подъемы, автоматически осуществляет повороты при прохождении трассы. Это представлено на рисунке 1.7.

Рисунок 1.7 Робот Jennifer

Команда разработчиков из Drexel University научили своего робота управлять движением транспорта с рулевым управлением. Для этого была сконструирована мобильная платформа на базе IRobot Create, оснащенная рулевым колесом и двумя педалями для регулирования скорости движения. Осуществляя управление с помощью рулевого колеса, и регулируя скорость движения, робот автономно проехал по трассе, представляющей собой извилистую широкую черную полосу, опираясь исключительно на данные собственной системы технического зрения. Это представлено на рисунке 1.8.

Рисунок 1.8 Мобильная рулевая платформа

Коллектив из Purdue University разработал систему управления робота для автономной игры в гольф. Робот самостоятельно может выйти на игровое поле, обнаружить мяч и лунку, выбрать оптимальное положение и нанести удар с помощью клюшки. Это представлено на рисунке 1.9.

Рисунок 1.9 Робот играет в гольф

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

Поскольку интерес разработчиков и пользователей сервисной робототехники растет в сторону антропоморфной робототехники, робототехническая платформа ROBOTIS-OP с каждым годом становится все более востребованной среди ученых и инженеров-разработчиков сервисных роботов [6].

1.3 Антропоморфный робот NAO Evolution

Сегодня NAO является ведущим гуманоидный роботом, который используется в научных исследованиях и образовании во всем мире [7]. Он представлен на рисунке 1.10.

Робототехника является самым быстрорастущей и наиболее передовой технологией, используемой в образовании и науке. Антропоморфный робот NAO является идеальной платформой для преподавания научных, технологичных, инженерных и математических (STEM) понятий на всех уровнях [8].

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

Рисунок 1.10 Робот NAO Evolution

Он оснащен множеством датчиков: тактильные датчики и ультразвуковые, гироскоп, акселерометр, датчики силы и инфракрасного излучения, две HD камеры, четыре микрофона и высокоточные цифровые энкодеры на каждой части тела. Он имеет два процессора на борту: Atom Intel с тактовой частотой 1,6 ГГц (главный компьютер включает в себя SSD накопители, беспроводной доступ в интернет, Bluetooth и проводные сети) и дополнительный ARM-9 процессор в его груди [9].

Расширенный пакет программного обеспечения включает в себя полный пакет SDK и API на Python, на C# (.Net), C++ и Java. Каждый робот поставляется с Choregraphe - программным обеспечением, которое позволяет легко запрограммировать робота с помощью подвижного интерфейса, который упрощает программирование как для новичков, так и продвинутых пользователей. Пакет программного обеспечения включает в себя расширенное моделирования на основе Webots.

Использование именно NAO даёт ряд преимуществ студентам. Они получают практический опыт, соединяя теорию с практикой, чтобы обнаружить широкий спектр областей, связанных с робототехникой, таких как информатика, механика, электроника или управление.

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

Также немаловажно, что совместная командная работа над проектами решает проблемы с коммуникативными навыками студентов [10].

Одним из основных проектов с использованием NAO Evolution является разработка компании-разработчика, Aldebaran Robotics, Ask NAO. Это отдельный проект от проекта обучающего, созданный специально для помощи и обучения детей, больных аутизмом [11].

Ask NAO - это комплексное решение, разработанное, чтобы помочь учителями и воспитателями в поддержке детей, больных аутизмом. Пример приведён на рисунке 1.11.

Рисунок 1.11 NAO, показывающий движения

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

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

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

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

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

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

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

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

В репозитории доступны образовательные приложения с интерфейсом, непосредственно вдохновленным одобренными поведенческими моделями и подходами (ABA, PECS, TEACCH, DENVER, SCERTS) [12].

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

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

NAO в настоящий момент стоит довольно дорого, восемьсот тысяч рублей, впрочем, Darwin-OP тоже практически не уступает ему в цене. Поэтому российские ВУЗы не имеют достаточно денег на покупку нужного количества таких роботов для образовательного процесса. Но одного вполне можно приобрести, поэтому ВоГУ купил NAO H25 Evolution V5 для предварительного знакомства, взаимодействия и разработки программ для него.

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

2. Разработка архитектуры лабораторного комплекса: предъявляемые требования, ограничения, структурная схема

2.1 Предметная область

Предметная область данной работы - выполнение лабораторных работ по управлению движениями робота NAO. В ходе выполнения этих работ студент с нуля изучает и закрепляет знания по работе с самим роботом, с его веб-интерфейсом, со средой разработки Choregraphe и её возможностями и с приложением для настройки NAO Monitor [13]. Преподаватель проверяет выполненные самостоятельные работы по отчёту, оформленному студентом по по окончании выполнения работы, а также по приложенным к отчёту файлам, содержащим либо одно поведение, либо готовый проект, поэтому он может проверить, насколько хорошо сделана программа и правильно ли сделан отчёт.

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

Титульный лист представляет собой документ, представленный на рисунке 2.1. Должны быть заполнены: наименование факультета, наименование кафедры, номер лабораторной работы, её название, ФИО руководителя, студента, его группа и курс, ФИО проверяющего и год.

Рисунок 2.1 Титульный лист отчёта по лабораторной работе

Отчёт выполняется и сдаётся в электронном виде.

2.2 Постановка задачи

Целью данной работы является разработка комплекса лабораторных работ по управлению движениями антропоморфного робота NAO и объединение всех работ данного комплекса в одну систему. Структурная схема комплекса с интерфейсом представлена на рисунке 2.2.

Рисунок 2.2 Структурная схема комплекса

На основе изученной предметной области были разработаны пять лабораторных работ и интерфейс для их запуска. Открываются они в текстовом редакторе MS Word не ниже 2010 года. Сами работы были выполнены в текстовом редакторе MS Word 2016.

Первая лабораторная работа называется «Ознакомление с антропоморфным роботом NAO H25 Evolution V5 и его возможностями». В ней производится знакомство обучающегося с роботом, то есть правильное подключение и первоначальная настройка параметров, а также осуществление подключения робота через веб-интерфейс.

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

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

Четвёртая лабораторная работа называется «Обучение работе с модулем Timeline и создание простых анимаций с его помощью. Знакомство с режимом анимации». В ней происходит работа с движениями робота с использованием режима Animation mode, а также расположение модулей на таймлайне. Режим Animation mode доступен только при подключённом реальном роботе, так как он заключается в том, что положение частей тела робота можно сохранить на линии времени просто дотронувшись до бампера части тела и передвинуть в нужное положение эту часть. Таким образом можно сразу сделать программу с учётом положения реального робота и проблем, связанных с перемещением его центра тяжести, то есть учитывая то, что он может упасть, если неправильно рассчитать движения на виртуальной модели. На таймлайне можно расположить множество движений робота во времени, а также одновременно на других дорожках указать, что он должен делать параллельно с выполняемыми движениями, тем самым создавая ему полноценное поведение.

Пятая лабораторная работа называется «Создание проекта танца «Яблочко»». В данной работе будет разрабатываться с учётом полученных в предыдущих работах навыков и знаний танец «Яблочко», который, однако, будет отличаться от настоящего, вследствие того, что ноги робота не приспособлены для таких движений, которые используются в этом танце. По итогам выполнения этот танец будет проверен на реальном роботе, а затем студент должен сам разработать любой другой танец. Это станет итоговым заданием данного лабораторного комплекса.

Последовательность выполнения работ представлена на рисунке 2.3.

Рисунок 2.3 Последовательность выполнения работ

2.3 Требования к разрабатываемому комплексу

Требования к лабораторному комплексу делятся на несколько групп: требования к комплексу в целом, к функциям комплекса и к видам обеспечения.

2.3.1 Требования к лабораторному комплексу в целом

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

2.3.2 Требования к функциям лабораторного комплекса

Комплекс должен предоставлять студентам теоретический материал для выполнения лабораторных работ по управлению движениями робота NAO, материал практический для получения навыков работы с роботом, самостоятельные задания для выполнения и сдачи преподавателю, а также указания о том, что должно входить в отчёт по выполненной работе.

2.3.3 Требования к видам обеспечения

Для нормального функционирования комплекса необходим ПК с минимальными системными требованиями: иметь возможность подключаться к точке доступа Wi-Fi или к маршрутизатору с возможностью раздачи Wi-Fi, процессор с тактовой частотой 1,5 Ггц, 512 МБ оперативной памяти, видеокарта с поддержкой OpenGL.

Поддерживаемые операционные системы: Ubuntu 12.04 LTS и старше, Microsoft Windows XP с пакетом обновления 3 и старше, Mac ОС x 10.7.1 Lion и старше [14].

2.4 Ограничения для лабораторного комплекса

Данный комплекс не предоставляет полной информации по работе с NAO Evolution V5, так как некоторые элементы слишком обширны для описания и изучения. Большинство из них описывается в документации по данному роботу на английском языке, но в комплексе не используются. Также некоторые моменты даны студентам на самостоятельное изучение, чтобы, при желании, они смогли разработать более сложную программу, чем это предусмотрено, что приветствуется. В таком случае студент должен описать в отчёте, что он использовал нестандартного при разработке собственной программы.

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

3. Разработка структуры данных и знаний для лабораторного комплекса

3.1 Описание разработанных структур данных интерфейса

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

В разработанном интерфейсе используется во всех формах класс Tform, позволяющий работать с текущей формой.

Сам интерфейс состоит из основного модуля NAOEvolution и четырёх программных модулей: Menu, Zastavka, Soderjanie и About. Через основной модуль программы подключаются и запускаются по очереди остальные модули.

Первый модуль Zastavka, представленный на рисунке 3.1, является заставкой и запускается перед всеми формами на 3 секунды, после чего он закрывается и появляется модуль Menu.

Рисунок 3.1 Заставка

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

В Delphi есть множество модулей, подключаемых к выбранному модулю. Они подключаются в разделе программы uses и предназначены для того, чтобы, прописывая метод, каждый раз не обращаться вручную к необходимому модулю. Например, чтобы каждый раз не писать Form1.EditText1 подключают в разделе uses модуль Forms, что позволяет просто прописывать в программе EditText1.

В модуле Zastavka подключено несколько модулей. Модуль Classes позволяет создавать классы, то есть подпрограммы в программе. Модуль SysUtils делает доступным множество подпрограмм манипулирования данными, таких как IntToStr [5]. Модуль FileUtil позволяет подключаться к файловой системе компьютера. Модуль Forms позволяет подключать другие формы к данной. Модуль Controls позволяет управлять происходящим на экране с помощью курсора мыши. Модуль Graphics позволяет рисовать графику, такую как, например, картинки. Модуль Dialogs позволяет использовать системные диалоги. Модуль ExtCtrls позволяет подключить расширенный набор компонентов, а StdCtrls - стандартный набор компонентов.

Также в модуле Zastavka подключаются такие классы как: TImage, который позволяет использовать картинки на форме, и TStaticText, позволяющий писать на форме текст.

Модуль Menu представляет собой главное меню программы и представлен на рисунке 3.2.

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

Рисунок 3.2 Главное меню интерфейса

Он содержит те же самые модули, что и модуль Zastavka, но ещё добавлен модуль Buttons, который позволяет использовать в программе различные кнопки. Также подключаются модули интерфейса, такие как About, Zastavka, Soderjanie.

Также в модуле Menu используются такие классы, как TBitBtn, который позволяет использовать на форме кнопки с иконками, TImage и TLabel, который позволяет использовать надписи на форме.

Модуль About представляет собой окно помощи по управлению интерфейсом и информацию о разработчике. Он представлен на рисунке 3.3.

Рисунок 3.3 Модуль помощи

Этот модуль подключает такие же модули, что и Menu, только не подключаются другие модули, так как эту форму можно только закрыть.

В этом модуле используются классы TBitBtn, TImage и TLabel.

В последнем модуле Soderjanie происходит запуск одной выбранной из пяти лабораторных работ комплекса. Он представлен на рисунке 3.4.

Рисунок 3.4 Содержание

Этот модуль подключает те же самые модули, что и Menu, только для реализации запуска документов формата.docx дополнительно подключается модуль Process, позволяющий запустить bash-скрипты, которые, в свою очередь, открывают файлы документов.

Также в данном модуле используются классы TBitBtn, TImage, TLabel, TBitmap, позволяющий подключать картинки в формате.bmp, и TProcess, активирующий заданную программу.

3.2 Структуры данных и знаний в практических примерах

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

Первые типы данных появляются во второй лабораторной работе, где в виде вещественных чисел выставляются проценты поворота какой-либо части тела робота.

В третьей лабораторной работе в первом практическом примере используется модуль Sit Down, входы и выходы которого принимают и посылают сигнал типа Bang, что означает совершение определённого события.

В следующем примере рассматривается модуль Say, тоже использующий тип данных Bang. Но он состоит из двух модулей, Localized Text и Say Text, на входе первого модуля и на выходе второго опять же тип данных Bang, а вот между ними передаётся строка с типом данных String.

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

Модуль Get Name передаёт следующему модулю строку типа String.

Модуль Move To передаёт на второй выход сигнал типа данных Dynamic, что означает, что передаётся несколько координат, снятых с датчиков робота. В данном случае возвращается вектор, содержащий координаты x и y, а также значение угла в радианах.

Модуль Get Temperature выдаёт на выход сигнал типа Number, передавая следующему модулю числовое значение.

Модуль Set Language выдаёт на второй выход сигнал типа String, передавая строку возникшей ошибки.

Модуль Switch Case принимает на вход сигнал типа Dynamic, то есть берёт строку, номер или другой тип данных от предыдущего модуля. На выход, которых можно добавить любое количество, выдаётся также сигнал типа Dynamic, позволяя использовать этот модуль для любых типов данных.

Семантическая сеть практического примера из лабораторной №3 представлена на рисунке 3.5.

Рисунок 3.5 Семантическая сеть примера первой лабораторной

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

Модуль Get Attached File передаёт на выход строку пути типа String.

Модуль Set Language выдаёт на второй выход сигнал типа String, передавая строку возникшей ошибки.

Модуль Counter передаёт на первый выход число с типом данных Number.

Модуль Localized Text передаёт на выход строку типа String.

Модуль Say Text принимает на вход строку типа String.

Модуль Animated Say Text принимает на вход строку типа String.

Семантическая сеть практического примера из лабораторной №4 представлена на рисунке 3.6.

Рисунок 3.6 Семантическая сеть примера четвёртой лабораторной

В пятой лабораторной один практический пример - проект танца «Яблочко».

В нём практически все модули передают данные типа Bang.

Модуль Localized Text передаёт на выход строку типа String.

Модуль Get Attached File передаёт на выход строку пути типа String.

Модуль Counter передаёт на первый выход число с типом данных Number.

Семантическая сеть практического примера из лабораторной №5 представлена на рисунке 3.7.

Рисунок 3.7 Семантическая сеть примера пятой лабораторной

4. Разработка алгоритмов

4.1 Представление алгоритмов в комплексе лабораторных работ

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

4.2 Разработанные алгоритмы первой лабораторной работы

В первой лабораторной работе комплекса нет ничего, связанного с разработкой модулей, здесь присутствует алгоритм другого типа.

В практической части представлен алгоритм правильного подключения робота NAO к питанию и сети. В этом пункте представлен краткий вариант этого алгоритма, более подробно и с иллюстрациями он рассмотрен в самой лабораторной работе в теоретической части.

Сначала следует аккуратно извлечь робота из контейнера, затем посадить его на ровную негладкую поверхность, лучше всего стол или пол.

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

Для первоначальной настройки следует подключить Ethernet кабель в порт на затылке робота. Другой конец кабеля можно подключить двумя способами. Первый способ - это подключение к роутеру или коммутатору, который объединит компьютер и робота в локальную сеть, а также выступит в качестве DHCP-сервера и выдаст NAO его IP-адрес. Вторым способом является подключение напрямую в Ethernet порт компьютера, но в данном случае будет недоступно облако компании разработчика Aldebaran Cloud, предоставляющее доступ к расширенным функциям режима автономной жизни и позволяющее роботу взаимодействовать с человеком. Тем не менее, локальное подключение к веб-странице NAO и Choregraphe возможно.

Следующим действием будет нажатие на центральную кнопку на груди NAO один раз и ожидание завершения процесса загрузки. По окончании робот скажет «OGNAK GNOUK».

Затем следует нажать кнопку на груди один раз и

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

После вышеназванных действий можно осуществить вход в веб-интерфейс, который производится одним из трёх способов. Первый способ - это ввод IP-адреса в адресную строку браузера и выполнение перехода. Второй способ - это ввод в адресную строку electronic.local, где electronic - имя робота на данный момент, и выполнение перехода. Третий способ - это подключение через среду разработки Choregraphe, выбор пункта меню «Подключение» и нажатие правой клавишей мыши на реального робота в списке, в контекстном меню выбрав пункт «View web page».

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

После этого подключение будет успешно выполнено.

4.3 Разработанные алгоритмы второй лабораторной работы

Во второй лабораторной работе производится знакомство с принципами управления движениями робота через среду разработки Choregraphe. Это возможно и без написания и составления каких-либо программ.

Единственным алгоритмом, приведённым в данной лабораторной работе, является алгоритм задания NAO какой-либо позы с последующим её сохранением.

Последовательность действий, указанных на рисунках в практическом примере этой лабораторной работы, приводит к позе, представленной на рисунке 4.1.

Рисунок 4.1 Итоговая поза практического примера

4.4 Разработанные алгоритмы третьей лабораторной работы

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

Первый пример представляет собой простой стандартный модуль, позволяющий усадить робота в предустановленную сидячую позицию. Он представлен на рисунке 4.2.

Рисунок 4.2 Модуль посадки

Вторым примером является стандартный модуль произнесения фразы, подключённый к модулю определения языка распознавания и ответов робота. Эта комбинация показана на рисунке 4.3.

Рисунок 4.3 Комбинация произнесения фразы

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

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

Рисунок 4.4 Программа самодиагностики робота NAO

Алгоритм программы таков: сначала активируется модуль WakeUp, пробуждая робота и устанавливая ему русский язык в качестве основного при распознавании и произнесении фраз. Затем включается функция распознавания речи Speech Reco., которая настроена на опознание трёх фраз: «привет», «как ты» и «можешь отдыхать». Далее распознанная фраза передаётся в модуль Switch Case, а если распознавания не произошло, модуль активируется заново в том же режиме. В зависимости от распознанной фразы происходит выбор дальнейшего выполнения программы. Если было распознано слово «привет», то выполняется модуль приветствия Hello, после этого возвращая сигнал выполнения программы снова на модуль Speech Reco. Если была распознана фраза «можешь отдыхать», то выполняется модуль Rest, переводя робота в режим отдыха с расслаблением всех моторов и приводов и заканчивая выполнение программы.

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

Первый модуль определяет текущее имя робота и передаёт его в голосовой модуль, произнося его.

Второй модуль проверяет заряд батареи NAO. Если батарея почти разряжена или обладает низким зарядом, то робот сообщает, что его следует по ставить на зарядку. Если же заряд достаточен, то он сообщает, что заряд батареи в норме.

Третий модуль состоит из двух частей. Первая проверяет соединение робота со средой разработки Choregraphe и в зависимости от результата NAO сообщает, есть ли соединение или нет. Вторая проверяет подключение к интернету, и, опять же, в зависимости от результата, андроид сообщает, есть ли подключение или нет.

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

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

Шестой модуль проверяет, падает ли NAO в текущий момент или стоит на поверхности. В зависимости от результата проверки, робот сообщает, что он твёрдо стоит на ногах или падает.

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

Восьмой модуль позволяет проверить, находится ли NAO на свету или в темноте. По результатам проверки он сообщает, что он находится в тёмном помещении или на него светит свет.

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

Блок-схема программы самодиагностики представлена на рисунке 4.5.

Рисунок 4.5 Блок-схема программы самодиагностики

4.5 Разработанные алгоритмы четвёртой лабораторной работы

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

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

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

Рисунок 4.6 Музыкальное приложение с использованием таймлайна

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

Программа состоит из множества модулей. Основным её модулем, который был разработан самостоятельно, является Timeline. На рисунке 4.6 он изображён как Timeline (1).

Алгоритм программы такой: сначала активируется модуль Stand Up (1), заставляя робота встать, чтобы правильно выполнять последующие движения. Затем активируются одновременно два модуля: Play Sound, начиная воспроизведение звукового файла, и Timeline (1), запуская последовательность движений, заданную в нём.

Для облегчения задачи, то есть чтобы не ставить кадры позиций много раз, высчитывая временное расстояние между ними, можно замкнуть модуль таймлайна сам на себя. Но это приведёт к бесконечному повторению движений, поэтому в программе добавлен счётчик Counter. Он запускает действие модуля таймлайна несколько раз, позволяя подстроить движения под музыку.

Из модуля Timeline (1) выполнение программы может продолжиться в двух направлениях.

Если выполнение движений было прервано, и робот почувствовал, что падает, то следующим выполняется модуль Stand Up (2), позволяя встать из неудобного положения, в которое попал NAO при падении, а затем выполняется модуль Rest, что даёт роботу возможность сесть и расслабить все приводы, чтобы остудить их после активных движений.

Если все движения были выполнены успешно и музыка окончилась, то следующим модулем после Timeline (1) выполняется модуль Stand Up (3), придавая роботу удобную позу для выполнения следующих движений.

После этого с помощью модуля Set Language выставляется русский язык для распознавания и произнесения фраз, и произносится фраза, которая указывает на то, что NAO сейчас начнёт воспроизведение нескольких встроенных анимаций. Эти анимации представлены модулями Animation Say, Animation Say (1) и Animation Say (2).

Одновременно с активацией модулей анимации активируется самостоятельно заданное мигание глазами разного цвета, которое сделано для большей эффектности. Для того, чтобы это мигание не происходило после завершения выполнения анимации, к этому модулю подключён модуль Counter, позволяющий ограничить количество раз выполнения модуля Blink (1).

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

Однако, если вдруг возникнут непредвиденные трудности при выполнении движений, так как внешняя среда непостоянна и может меняться, то он может упасть и, как это заложено в самой программе NAO, он сразу же прервёт выполнение программы. Например, если выполнять движения ходьбы, да и просто движений, приводящих тело робота в неустойчивое положение, на нескользкой поверхности, то он, скорей всего, удержится, а если поверхность будет скользкой или мокрой, то при этих движениях он будет понемногу смещаться в какую-либо сторону и может упасть. Если он упадёт на эту поверхность, то ничего случиться не должно, так как падения предусмотрены компанией Aldebaran Robotics и корпус робота обладает достаточной прочностью, чтобы не треснуть и сохранить в целости внутренние механизмы. Но если падение будет проведено с достаточной высоты, например, со стола, то хрупкие элементы системы, которые в большинстве своём находятся в голове, могут быть частично или полностью разрушены. Поэтому следует быть осторожным при проверке и запуске программ, содержащих какую-либо анимацию, часто присутствующую в виде модулей Timeline.

Блок-схема приложения анимации представлена на рисунке 4.7.

Рисунок 4.7 Блок-схема приложения музыкальной анимации

4.6 Разработанные алгоритмы пятой лабораторной работы

В пятой и итоговой лабораторной работе присутствует всего один пример, который даст студентам представление о том, как можно научить робота танцевать танец «Яблочко», а также впоследствии разработать свой танец для NAO.

Построение приложения учитывает те знания и навыки, которые должен был получить студент при выполнении предыдущих лабораторных работ, и не использует никаких новых приёмов.

Проект приложения по исполнению танца «Яблочко» представлен на рисунке 4.8.

Рисунок 4.8 Проект танца «Яблочко»

Программа состоит из количества модулей меньшего, чем в предыдущих приложениях, так как основная работа проведена в модуле таймлайна. В нём заданы движения рук, которые совпадают с тактом музыки, а также движения ног, которые для простоты сделаны с помощью стандартных модулей Move Toward и Move To, а также применён нестандартный модуль, под названием Set External Anti-Collision, который позволяет включать и выключать детектор падения робота. Это очень помогает, так как NAO может качаться при ходьбе, но не падать и это ошибочно будет распознано как падение, что приведёт к преждевременной остановке программы. Танец - это слишком подвижный проект для робота, поэтому здесь этот модуль просто необходим.

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

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

Алгоритм программы здесь проще, чем в предыдущих примерах.

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

После этого NAO принимает стоячую позу для правильно начала движений танца и с помощью модуля Wait ожидает, пока пройдёт проигрыш музыки, начавшейся, когда он полностью встал. Одновременно с началом танцевальных движений у робота загораются различными цветами глаза и начинают переливаться в ходе танца. Это сделано для большей зрелищности и эффектности NAO во время танца. Модули моргания и переливания сделаны из стандартных модулей Blink, но были проведены модификации в коде модулей для изменения цвета каждого сегмента глаз.

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.