Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ
УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра Электронных приборов (ЭП)
К ЗАЩИТЕ ДОПУСТИТЬ
Заведующий кафедрой ЭП
д-р физ.- мат. наук, проф.
_________ С.М. Шандаров
«___»_________2020 г.
РАЗРАБОТКА ОБУЧАЮЩИХ ПРИЛОЖЕНИЙ ДЛЯ СОЦИАЛЬНОГО
РОБОТА С РАСПОЗНАВАНИЕМ ИЗОБРАЖЕНИЙ
Бакалаврская работа по направлению 11.03.04
«Электроника и наноэлектроника»
профиль «Квантовая и оптическая электроника»
Студент гр. 356
_________А.А. Павлова
«____»__________2020 г.
Руководитель
д-р. физ.-мат. наук,
профессор каф. ЭП ТУСУР
__________Н.И. Буримов
«____»__________2020 г.
Консультант
ст. преподаватель каф. ЭП
ТУСУР
__________Е.С. Шандаров
«____»__________2020 г.
Томск 2020
2
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ
УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра электронных приборов (ЭП)
УТВЕРЖДАЮ
Заведующий кафедрой ЭП,
д-р физ.- мат. наук, проф.
____________С.М. Шандаров
«___» _____________ 2020 г.
ТЕХНИЧЕСКОЕ ЗАДАНИЕ
На бакалаврскую работу студенту Павловой Александре Анатольевне гр.
356 факультета электронной техники
1. Тема работы: «Разработка обучающих приложений для социального
робота с распознаванием изображений», утверждена приказом по ВУЗу
№____________от
2. Исходные данные к работе:
Автономный
робот
NAO,
визуальная
среда
программирования
Choregraphe
3. Содержание пояснительной записки (перечень подлежащих разработке
вопросов):
3.1 Обзор электронной образовательной платформы «Фотон».
3.2 Обзор визуальной среды программирования Choregraphe.
ЭП БР 734541 – 01 81 01
Изм.
Лист
№ докум.
Разраб.
А.А. Павлова
Провер.
Е.С. Шандаров
Руковод.
Н. Контр.
Н.И. Буримов
Л.Н. Орликов
Утверд.
С.М. Шандаров
Подпись Дата
Разработка обучающих
приложений для социального
робота с распознаванием
изображений
Лит.
Лист
Листов
2
105
ТУСУР, ФЭТ, каф.ЭП, гр 356
3
3.3 Разработка сценариев взаимодействия робот-ребёнок.
3.4 Реализация алгоритма распознавания изображений.
3.5 Внедрение анимации в разработанные приложения.
3.6 Испытания разработанных приложений.
4. Перечень графического материала: презентация.
5. Дата выдачи задания:__________________________________
6. Срок сдачи студентом законченной работы «____» ______2020 г.
Руководитель выпускной квалификационной работы:
доктор физико-математических наук, профессор кафедры Электронных
приборов ТУСУР
Буримов Николай Иванович_____________ Дата__________ ____
(подпись)
Консультант:
старший преподаватель кафедры Электронных приборов ТУСУР
Шандаров Евгений Станиславович_____________ Дата__________ ____
(подпись)
Задание принял к исполнению
Павлова Александра Анатольевна_____________ Дата ________ ____
(подпись студента)
Изм.
Лист
№ докум.
Лист
Подпись Дата
ЭП БР 734541 – 01 81 01
3
4
Реферат
Бакалаврская работа, 105 с., 32 рис., 4 табл., 35 источников, 10
прилож.
СОЦИАЛЬНЫЙ РОБОТ NAO, ОБУЧАЮЩИЕ ПРИЛОЖЕНИЯ,
РАСПОЗНАВАНИЕ
ИЗОБРАЖЕНИЙ,
ВИЗУАЛЬНАЯ
СРЕДА
ПРОГРАММИРОВАНИЯ GHOREGRAPHE
Цель работы – изучение структуры программы Ghoregraphe для
создания обучающих приложений с распознаванием изображений, благодаря
которым обучение детей младшего школьного возраста базовым знаниям
некоторых областей будет проводиться в формате мини-игр. Важной
исследуемой частью данной работы являлся модуль технического зрения,
использование анимации робота, тактильных датчиков рук и головы робота
для установления невербального тактильного контакта с детьми.
В процессе работы были разработаны обучающие приложения с
распознаванием изображений, а также приложения, оснащённые активными
движениями робота, которые служат для привлечения внимания детей
младшего возраста. Все разработанные приложения так же работают в offlineрежиме, что позволяет использовать робота при отсутствии соединения с
интернетом.
Уровень владения ЭВМ – среда программирования Choregraphe, языки
программирования PHP, Phyton.
Уровень компьютерной графики: графический редактор paint.NET.
Уровень математического аппарата: арифметический.
Работа выполнена в текстовом редакторе Microsoft Office 365.
Изм.
Лист
№ докум.
Лист
Подпись Дата
ЭП БР 734541 – 01 81 01
4
5
Abstract
Bachelor's work, 105 р., 32 fig., 4 tables, 35 sources', 10 applications'.
NAO
SOCIAL
ROBOT,
LEARNING
APPLICATIONS,
IMAGE
RECOGNITION, GHOREGRAPHE VISUAL PROGRAM
The purpose of the work is learning Choregraphe program structure for
creating educational applications with image recognition, thanks to which primary
school children will be taught basic knowledge in some areas in the form of minigames. An important studied part of this work was the technical vision module, the
using robot animation, tactile sensors on the robot's hands and head for establish
non-verbal tactile contact with children.
In the process, educational applications with image recognition were
developed, as well as applications equipped with active movements of the robot,
which serve to attract the attention of young children. All developed applications
also work offline, which allows you to use the robot in the absence of an Internet
connection.
Computer skills – Choregraphe programming environment, PHP, Phyton
programming languages.
Computer Graphics Level: paint.NET graphics editor.
The level of the mathematical apparatus: arithmetic.
The work was done in a text editor in Microsoft Office 365.
Изм.
Лист
№ докум.
Лист
Подпись Дата
ЭП БР 734541 – 01 81 01
5
6
Аннотация
Разработка обучающих приложений для социального робота с
распознаванием изображений.
Автор:
Павлова
Александра
Анатольевна,
ТУСУР,
факультет
электронной техники (ФЭТ), кафедра электронных приборов (ЭП), 4 курс, гр.
356, Томск 2020 г.
Научный руководитель: Буримов Николай Иванович, доктор физикоматематических наук, профессор кафедры Электронных приборов ТУСУР.
Консультант:
Шандаров
Евгений
Станиславович,
старший
преподаватель кафедры Электронных приборов ТУСУР.
Цель
исследования:
разработка
программного
обеспечения
обучающих приложений для социального робота NAO с распознаванием
изображений в визуальной среде программирования Choregraphe.
Объект исследования: структура программы Ghoregraphe, система
технического зрения робота NAO.
Предмет
исследования:
разработка
приложений,
реализующих
алгоритм распознавания изображений.
Актуальность работы: разработка данных приложений поможет
создать робота, который сможет стать помощником учителей начальной
школы. При внедрении данного робота в учебный процесс, он сможет
помогать детям в изучении школьных предметов различных областей в более
интересном формате обучения.
Решаемые задачи:
1. Изучение структуры программы Ghoregraphe
2. Разработка сценариев взаимодействия робот-ребёнок
3. Внедрение анимации робота в разрабатываемые приложения
4. Реализация алгоритма распознавания изображений
5. Проведение испытаний
7
В работе представлена: реализация программного обеспечения
обучающих приложений с распознаванием изображений, дополненных
анимацией робота.
Новизна:
− внедрение человекоподобного социального робота в учебный процесс
для поддержки обучения в начальной школе;
− проведение обучения в формате мини-игр;
− использование различных каналов взаимодействия при работе с
детьми, таких как: распознавание изображений (картинок, букв, цифр и
прочего), тактильные датчики, текстовый интерфейс, голосовой интерфейс
(анализ/синтез), сенсорный экран;
− связь приложений с базой данных, расположенной в облачном
хранилище, благодаря чему происходит значительное расширение контента
для приложений в объёме;
− использование в приложениях анимации (движений) робота.
Работа может найти применение: разработанное ПО приложений для
социального робота позволит использовать его в качестве электроннообразовательного устройства в образовательном процессе, в результате чего
обучение будет проходить в форме мини-игр.
Потенциальными
потребителями
являются:
− школы;
− детские сады;
− иные образовательные учреждения;
− учителя.
разрабатываемых
приложений
8
ОГЛАВЛЕНИЕ
1 Введение .............................................................................................................. 10
2 Литературный обзор .......................................................................................... 11
2.1 Социальная робототехника ......................................................................... 11
2.2 Роботы в образовании .................................................................................. 19
2.2.1 Роботы LEGO ....................................................................................... 252
2.2.2 Роботы Arduino....................................................................................... 25
2.3 Автономный робот NAO ............................................................................. 28
2.3.1 Визуальная среда программирования Choregraphe ............................ 29
2.3.2 Технические характеристики ................................................................ 30
2.3.3 Движения робота.................................................................................... 32
2.3.4 Система технического зрения робота .................................................. 34
2.3.5 Цветовое пространство YUV ................................................................ 37
3 Постановка задачи.............................................................................................. 40
4 Практическая часть ............................................................................................ 41
4.1 Электронная образовательная платформа «Фотон» ................................. 41
4.2
Создание
приложений
в
визуальной
среде
программирования
Choregraphe ......................................................................................................... 43
4.3 Разработанные приложения ........................................................................ 49
4.4 Испытания ..................................................................................................... 56
5 Заключение ......................................................................................................... 61
Список использованных источников .................................................................. 63
Приложение
А
Скрипт
приложения
«Обучение
знакам
дорожного
движения»……………………………………………………………………….. 68
Приложение Б Скрипт веб-приложения «Обучение знакам дорожного
движения» .............................................................................................................. 77
Приложение В Скрипт приложения «Зарядка» ................................................. 79
Приложение Г Социальный робот на выставке RoboCup Russia Open 2019 .. 80
9
Приложение Д Социальный робот-помощник на тестировании ..................... 81
Приложение Е Робот NAO на китайской промышленной ярмарке China
International Industry Fair в г. Шанхай ................................................................ 82
Приложение Ж Испытания в Кисловской СОШ ............................................. 83
Приложение З Демонстрация робота NAO на выставке «Открытые инновации
2019», г. Москва .................................................................................................... 84
Приложение И Публикации за период обучения .............................................. 83
Приложение К Дипломы за период обучения .................................................. 100
10
1 Введение
Социальная робототехника (Social Robotics) – это довольно новое
направление в развитии науки и техники, цель которого главным образом
направлена на разработку роботов, способных проявлять социальные свойства
и выстраивать взаимоотношения с человеком.
Социальные роботы предназначены для взаимодействия с людьми:
роботы-помощники в банках, аэропортах, гиды, аниматоры, ассистенты,
учителя. Такой робот может разговаривать и понимать речь, узнавать по лицам
и реагировать на прикосновения, двигаться. Данная тема подробно раскрыта в
работе [1].
«На сегодняшний день одной из главных проблем в образовательном
процессе является сложность развития интереса детей к изучению нового
материала, в связи с прогрессом инновационных технологий и многообразием
гаджетов. Именно для решения этой проблемы были разработаны обучающие
приложения для робота NAO, в результате чего обучение проходит в формате
мини-игр» [2].
Целью данной работы являлась разработка программного обеспечения
приложений с распознаванием изображений для социального робота с
последующим внедрением его в образовательные учреждения. Данное
решение поспособствует развитию интереса к изучению нового материала.
«При взаимодействии с социальным роботом, у ребенка возрастает мотивация
к получению знаний, развивается творческое и инженерное мышление,
повышается внимательность и аккуратность» [3].
С помощью приложения Choregraphe были разработаны обучающие
приложения с распознаванием изображений и приложения, дополненные
анимацией робота: «Обучение знакам дорожного движения», «Обучение
устному счету», «Зарядка».
11
2 Литературный обзор
2.1 Социальная робототехника
Создание роботов, оказывающих помощь человеку в повседневных
делах и задачах, является основным направлением социальной робототехники.
Таким образом, на сегодняшний день в рамках данного направления
робототехники создано производство большого ряда роботов-помощников,
роботов-стимуляторов эмоций и пр.
Таким образом, взгляд на робота как на помощника человека, который
может выполнять некоторые повседневные задачи вместо него, создание
робота-помощника – это очень непростая задача, решение которой является
долгим и затруднительным процессом.
Подобные роботы в своём большинстве созданы для выполнения
некоторых бытовых задач. Ярким примером подобного вида роботов является
робототехническая платформа Luna (рисунок 2.1). Компания RoboDynamics
сообщила о массовом производстве данного робота, вследствие чего было
запланировано открытие первого онлайн-магазина по продаже программного
обеспечения [4].
Рисунок 2.1 – Робот-помощник Luna
12
Большая выборка моделей сервисных роботов включает в себя класс
роботов-помощников. Основной целью роботов данного типа является
выполнение ряда задач в сфере обслуживания. Роботы-сиделки, как
представители данного направления робототехники, получили наибольшее
распространение. Главной задачей данных роботов является работа с
пожилыми или недееспособными людьми, и, соответственно, уход за ними.
Помимо того, что роботы способны выполнять различные функции по
уходу, они могут стать и собеседником человека. Робот Jade, который
создавался для пожилых людей и инвалидов, оснащён видеокамерой, в связи
с чем становится возможной фокусировка на лице собеседника. Особенностью
данного робота является возможность начать общение с человеком, когда
произойдёт распознавание взгляда с помощью встроенной камеры.
Наиболее распространёнными роботами-сиделками являются: роботпанда Toco-chan (разработчик Waseda University), NAO и дроид Romeo
(рисунок 2.2), производителями которых является компания Aldebaran
Robotics, а также робот-офисный помощник EMIEW 2 (рисунок 2.3) от
компании Hitachi, перспектива использования которого нацелена на
применение его для оказания помощи в медицинских учреждениях, домах
престарелых и др.
Рисунок 2.2 – Дроид Romeo
от компании Aldebaran Robotics
Рисунок 2.3 – Робот-помощник
в офисе EMIEW 2
13
Развитие производства сервисных роботов оказывает непосредственное
влияние на возможность практически
полной
замены
человеческой
деятельности в некоторых областях. В связи с этим, на сегодняшний день
представлены
различные
модели
роботов-парикмахеров,
барменов,
уборщиков и многих других роботов данной сферы деятельности. Компания
разработчик Karlsruhe Institute of Technologys представила миру роботабармена
ARMAR,
который
способен
приносить
еду
и
напитки,
соответствующие заказу гостя, при этом самостоятельно определять
количество содержимого в пакете и проводить анализ по определению его
веса, после чего наливать напиток в нужный вид ёмкости. В случае, когда
робот вылил всё содержимое из пакета, но его недостаточно для полного
заполнения ёмкости, он дольёт из другого пакета требуемый объём жидкости.
Также важной способностью, реализуемой роботом ARMAR, является
возможность работы с большим разнообразием продуктов, находящихся в
холодильнике [5].
Также разнообразные модели сервисных роботов нашли широкое
применение в сфере гостиничного бизнеса. Ярким представителем таких
роботов является робот-носильщик Yobot, задача которого главным образом
заключается в хранении багажа проживающих перед «check in» и после «check
out» в отеле Yotel (г. Нью-Йорк). Робот помещает багаж посетителей в
необходимую секции хранилища до тех пор, пока он не потребуется
хазяину[6].
Кроме вышеупомянутых сфер деятельности, роботы на сегодняшний
день активно применяются в важнейших сферах деятельности, как
исследование космоса и медицина. Разработчики Andalusian Institute of
Advanced
Automation
and
Robotics
представили
свою
разработку
механического ассистента хирурга Cisobot, который изображён на рисунке 2.4.
Разработанный
механический
ассистент
способен
подавать
врачу
необходимый инструмент в нужный момент времени, а также показывать
состояние оперируемой области. Cisobot незамедлительно реагирует на
14
голосовые команды со стороны человека, а также на выражение его лица и
движения рук. При применении подобных роботов в медицинских
учреждениях возможно решение проблемы, связанной с нехваткой персонала
или недостаточной квалификацией молодых врачей, а также сложностей,
связанных с длительным проведением операций. Несмотря на высокие
качественные характеристики, робот Cisobot очень компактен и прост в
использовании, благодаря чему становится возможным его использование не
только в крупных стационарных клиниках, но и, например, в полевых
госпиталях [7].
Рисунок 2.4 – Cisobot – механический ассистент хирурга
Робот Robonaut 2, разработанный компанией General Motors и
космическим
агентством
Америки
NASA,
стал
первым
роботом,
используемым в области космонавтики. На сегодняшний день основной
задачей робота является выполнение рутинной работы на международной
космической станции. Агентство NASA сообщило о том, что «R2 хорошо
проявил себя на испытаниях, использовав специальный датчик для измерения
воздуха в лаборатории МКС. Данная модель робота нашла применение в
«Проекте М», реализованном в 2013 году. Суть данного проекта заключалась
в осуществлении первой высадки на поверхность луны робота-гуманоида» [8].
15
Рисунок 2.5 – Robonaut 2 – робот-космонавт
Таким образом, на сегодняшний день различные модели роботов
активно взаимодействуют с людьми, используя при этом присущие им
преимущества, заключающиеся в планирование и выполнении задач.
Помимо сервисных роботов пользуются популярностью роботы
художники в большом разнообразии моделей. Ярким примером данного типа
роботов могут служить следующие: рисующий граффити робот Senseless
Drawing Bot (рисунок 2.6, а), авторами которого являются Kanno и Yamaguchi;
разработанный автором Eske Rex робот Drawing Machine, представлен на
рисунке 2.6 (б); разработанная Патриком Трессетом роборука Paul, которая
рисует портреты по изображениям, полученных с помощью камеры (рисунок
2.6, в). Разработка Бенджамина Гроссера, представленная на рисунке 2.6 (г)
является одной из самых ярких представителей концептуальных роботовхудожников.
Уникальностью
данного
робота
является
визуализация
услышанных звуков. Для создания композиции холст располагают между
двумя подносами с красками, под которым расположена механическая рука, а
отдельно выведенный микрофон служит средством управления процессом со
стороны человека. При достижении звуков мембраны микрофона робот
16
приступает к отображению услышанного: выбирает необходимые цвета
красок и наносит их на холст. Робот рисует по услышанным звукам (вне
зависимости от их типа), которые оказывают непосредственное влияние на
принятие решений. Данный робот способен не только реагировать на
посторонние звуки, но и на самого себя. Некоторые группы звуков не
воздействуют на робота, но отображаются в процессе нанесения красок на
холст. Данная концепция отображает то, что робот так же, как и человек,
может ориентироваться на предметы окружающей среды в процессе создания
картин.
а
б
в
г
Рисунок 2.6 – Роботы-художники:
а – Senseless Drawing Bot; б – Drawing Machine; в – Роборука Paul;
г – Робот Бенджамина Гроссера
17
В сфере творческой деятельности привлекло внимание создание
роботов-музыкантов. В качестве примера можно привести разработку от
компании Hiwin Technologies (рисунок 2.7), особенностью которой является
использование для игры на пианино десяти пальцев, а не одного, что
реализовано в большинстве моделей роботов-пианистов.
Рисунок 2.7 – Робот-пианист компании Hiwin Technologies
«Социальная робототехника непосредственно связана с различными
научными областями, такими как: нейронаука, инженерная и когнитивная
робототехника, психология, лингвистика, искусственный интеллект, многие
разделы социальных наук и философии. В связи с этим, данная область
занимается изучением широкого спектра проблем:
– создание различных моделей с реализацией интеллектуального
поведения, представления необходимых знаний для обучения социальных
роботов;
– вопросы, касающиеся эргономики и создания условий для адаптации
людей к взаимодействию с роботами;
– вопросы философии и методологии дизайна социальных роботов;
– изучение эффективности взаимодействия человека с роботом, а также
факторов, влияющих на это;
18
–
вопросы
этики
касательно
различных
областей
социальной
робототехники;
– возможности роботов в творческой сфере деятельности;
– проблемы, связанные с надёжностью и безопасностью сфер
робототехники;
– основные принципы при создании архитектуры программного
обеспечения;
–
системы,
оснащённые
мультимодальными
сенсорными
характеристиками;
– использование основных моделей поведения человека и животных;
– обоснование главных функций и задач, реализующихся роботом в
различных сферах деятельности» [9].
Результаты исследований представленной междисциплинарной области
должны производить определение, описание и уточнение поведенческих
моделей социальных роботов. Кроме этого, необходима реализация главных
функций, включая взаимодействие с человеком, его когнитивные и
аффективные компоненты, обучение и адаптацию в различных ситуациях,
формулировку этических принципов с учетом степени автономности
поведения роботов. В связи с этим, создание нового типа социо-гуманитарных
знаний и их применение являются необходимыми для решения подобного
рода задач.
Различные способы методой, касающихся социальной робототехники
активно формулируются в научном сообществе. Издательство Springer
занимается издательством журнала под названием «Журнал социальной
робототехники» (The Journal of Social Robotics) с 2009 г. «Публикуемые в нём
результаты
исследований
демонстрируют
спектр
конкретных
задач,
решаемых исследовательскими центрами и группами в разных странах. Так,
коллектив
немецких
невербальных
ученых
функций
изучает
коммуникации
координацию
для
вербальных
гуманоидного
и
робота,
19
взаимодействующего с человеком (на базе платформы Asimo от корпорации
Honda)» [10].
Таким образом, подход к исследованию и реализации различных сфер
социальной робототехники через культурные интерфейсы основывается на
утверждении, что любая технологическая система обретает антропологически
и культурно приемлемыми формами, благодаря которым становится
возможным эффективное управление над ними со стороны человека.
Примером может служить сохранение «естественным» образом страничного
интерфейса книжной культуры (экранов), оснащённых разнообразием
интерактивных функций в современных областях компьютерных технологий.
2.2 Роботы в образовании
«Внедрение роботов в образовательный процесс – сравнительно новый
способ обучения, позволяющий вовлечь в процесс инженерного творчества
детей, начиная с младшего школьного возраста. Данную форму обучения
можно широко использовать при организации как учебного процесса, так и
внеурочной деятельности» [11].
Использование роботов в качестве инструмента для образования
благотворно влияет на успеваемость учеников инженерно-технического
профиля, благодаря следующим дидактическим особенностям:
– использование различных сред управления роботами (Microsoft
Robotics Studio);
– использование сред программирования, которые осуществляют
управление конкретными роботами, например Parallax Boe-Bot, Lego Mind
Strorm)
– поддержка распространённых языков программирования, таких как
C++, Visual Basic, оказывающих практическое влияние на формирование
выбора будущей сферы деятельности для работы;
20
– предоставление возможности манипуляции как виртуальными, так и
реальными объектами со стороны учащихся на основе робототехнических
конструкторов, что оказывает непосредственное влияние на понимание
учебного материала, путём задействования различных каналов восприятия.
Качественное представление различных вариантов восприятия окружающих
систем осуществляется благодаря обработке информации с помощью
различного рода датчиков и их настройке;
– управление уже запрограммированными роботами, а также создание
окружающих его предметов позволяют реализовать виртуальные среды
программирования, примером которых может служить Visual Simulation
Environment.
«Таким образом, если в классе учащиеся с разными интересами
(компьютерная графика, дизайн, программирование), можно объединять их в
группы и разделять обязанности – кто-то программирует робота, кто-то
создает окружающую среду. Коллективная работа позволяет учащимся
получать навыки сотрудничества при разработке проекта, что особенно
актуально в настоящее время» [12].
Важно отметить, что перечисленные дидактические особенности
согласуются с положенным в основу образовательных стандартов второго
поколения системно-деятельностным подходом, «предполагающим переход:
– от изолированного от жизни изучения системы научных понятий,
составляющих содержание учебного предмета, к включению содержания
обучения в контекст решения учащимися жизненных задач;
– индивидуальной формы усвоения знаний к признанию решающей роли
учебного сотрудничества в достижении целей обучения» [13].
При внедрении роботов в образовательный процесс, становятся
одновременно возможными освоение, закрепление полученных знаний и
отработка навыков в областях физика, химия, математики, биологии,
информатики, технологии и т.д. «В свою очередь, формирование комплексных
знаний способствует развитию системности мышления, учит комплексно
21
подходить к решению реальных практических задач. Также важно отметить,
что робототехника в силу своей уникальной синтетической природы является
мощнейшим средством развития уникальных навыков и способностей ребенка
в различных областях технического творчества, а соответственно может
служить инструментом для профессиональной ориентации молодежи в
области инженерно-технического образования» [14].
Образовательная робототехника – это универсальный инструмент для
образования. Робототехника вписывается и в дополнительное образование, и
во внеурочную деятельность, и в преподавание предметов школьной
программы. Она подходит для всех возрастов – от дошкольников до студентов.
Причем
обучение
происходит с использованием
робототехнического
оборудования – электронных конструкторов. На данный момент в школах
используются два основных учебных конструктора – Lego и Arduino.
Конструктор Arduino менее распространен, так как его программирование
несколько сложнее. Lego же, напротив, имеет легкий для понимания
графический язык программирования. Разнообразие конструкторов Lego
(WeDo, Mindstorms EV3 и др.) дает возможность заниматься с учащимися
различного возраста и по таким направлениям, как конструирование,
программирование, моделирование физических процессов и явлений, а также
моделирование биологических объектов. Образовательная робототехника –
это новая, интересная и актуальная педагогическая технология, которая
находится на пересечении таких областей знания, как механика, электроника,
автоматика, конструирование и программирование.
22
2.2.1 Роботы LEGO
Цельная конструкция робота Lego (рисунок 2.8) представляет собой
совокупность используемых отдельных деталей конструктора. Данный вид
роботов отлично подходит для детального изучения основ робототехники,
реализовывать на практике сложные алгоритмы, поможет в рассмотрении
вопросов
связанных
с
запуском
процессов
управления,
а
также
производственных процессов.
Рисунок 2.8 – Робот Lego
«Детали Lego-роботов состоят в основном из пластика, а внутри
главного «мозга», или датчиков, находятся микросхемы, которые позволяют
роботу приводить в действие различные задачи, которые ему может задать
любой пользователь» [15]. Для того, чтобы вовлечь в рабочий процесс детей и
привлечь их внимание, эффективнее всего использовать понятные для детей
виды робототехнических платформ. В этом случае EV3 является несомненным
фаворитом, так как использовать данный набор, представляющий собой
обычный конструктор, намного удобней, в то время как Arduino требует
наличия определенных навыков в сборке и соблюдения техники безопасности.
При рассмотрении двух данных наборов можно заметить существенную
разницу в области программировании. Создание программы для Arduino
23
реализовываются на языке программирования C++, в то время как для
робототехнической
платформы
EV3
был
создан
графический
язык
программирования. Так как набор Lego направлен на более широкую детскую
аудиторию разного возраста, его использование не требует никаких базовых
знаний в сфере робототехники. Процесс программирования сводится к
воспроизведению блок-схемы
программы
в среде программирования
Mindstorm. На рисунке 2.9 представлены программы, фиксирующие показания
с ультразвуковых датчиков двух робототехнических платформ.
а
б
Рисунок 2.9 – Программы, фиксирующие показания с ультразвуковых
датчиков: а – для LEGO Mindstorms EV3; б – для Arduino
Исходя из данных, представленных на рисунке 2.9, можно прийти к
следующему заключению: программа, основанная на редакторе языка из
набора Lego EV3, гораздо проще и нагляднее для восприятия информации
детьми. «В сочетании с элементами конструктора процесс построения
различных роботов на базе одного комплекта становится значительно проще,
а за счёт использования графического языка программирования начинать
занятия можно с детьми младших классов. Еще одним достоинством является
тот факт, что данный набор соответствует современному уровню развития
техники и является значительно «мощнее» рассмотренного конкурента по
техническим
характеристикам.
Хотя
стоит
признать
определенную
24
ограниченность по перспективам использования комплектов на основе EV3»
[16].
Применение Lego-конструкторов в сфере образования мотивирует
обучающихся к изучению разного рода учебных дисциплин, таких как
математика, физика, информатика и даже искусство. Использование
педагогами в своей практике робототехники, может способствовать
осуществлению целого ряда образовательных целей:
−
развитие среди учащихся умения обобщать полученные знания,
анализировать, проводить синтез, сравнения, а также делать необходимые
выводы;
− развитие способности по применению полученных знанию в
нестандартных ситуациях и условиях;
−
развитие внимательности, наблюдательности, а также обучение
правильному расставлению приоритетов;
− обеспечить
условия
для
развития
исследовательских
и
познавательных способностей учащихся;
−
обеспечение всеми необходимыми условиями для понимания
учащихся алгоритма решения проблемных и исследовательских задач.
Занятия образовательной робототехникой на базе Lego Mindstorms
позволяет ученикам освоить элементы механики и конструирования, а также
получить базовые навыки алгоритмизации. Однако, занимаясь только на Lego,
остается неохваченными такие области знаний, как электроника и
схемотехника.
Аппаратно-программная
платформа
Arduino
отличным средством для освоения данной области знаний.
является
25
2.2.2 Роботы Arduino
Arduino
–
торговая
марка
аппаратно-программных
средств,
направленная на непрофессиональных пользователей для строения простых
систем автоматики и робототехники.
На платформе Arduino изучаются электронные компоненты, их работа
состоит в подключение и программирование. В среде Arduimo IDE
программирование происходит на языке C++. Посредством получения
базовых знаний по использованию электронных компонентов, обучаемые
могут осуществить творческие проекты, сложность которых ограничены лишь
воображением автора.
Arduino – это электронный конструктор и наиболее удобная платформа
быстрой разработки электронных устройств. Благодаря открытой архитектуре
и программному коду, данная платформа пользуется известностью из-за
своего
удобства
и
простоты
языка
программирования.
Устройство
программируется через USB без использования специальных устройств –
программаторов.
возможности
Отдельно
Arduino.
На
продаются
рисунке
наборы,
2.10
которые
представлен
расширяют
внешний
вид
микроконтроллера Arduino и модель робота на платформе Arduino.
Рисунок 2.10 – Конструктор Arduino
«Для программирования платформы Arduino используется Си-подобная
среда Arduino IDE. Язык среды Arduino IDE является разновидностью языка
программирования C/С++ и носит текстовый характер. Программы на языке
С++, применяемом на Arduino, весят несколько больше стандартных, это
26
связано с тем, что в среде Arduino IDE встроены некоторые библиотеки для
управления разнообразными датчиками» [17].
Для платформы Arduino помимо Си-подобной среды программирования
создано дополнительное программное обеспечение, для графического
программирования младшими подростками.
«Программное обеспечение для графического программирования на
платформе Arduino достаточно разнообразное: ArduBlock; FLProg; mBlock;
Scratch4Arduino; miniBloq; Modkit; MicroAmici; Visuino.
Плагин FLProg удобен в использовании, но не подойдет начинающим,
так как для сборки программы необходимо владеть знаниями из
схемотехники» [18].
«Visuino также не имеет яркой графической среды, но позволяет
сгенерировать код и открыть его Arduino IDE, где можно скомпилировать и
загрузить код в платформу. Visuino имеет удобную навигацию и
масштабирование для работы с большими проектами. На официальном сайте
среды представлены готовые уроки по использованию среды для различных
датчиков, которые можно подключать к Arduino» [19].
«Scratch4Arduino является измененной формой Scratch, которая
представляет просто аппаратную платформу Arduino. Программа дополнена
блоками для управления датчиками и приводами» [20]. Для игровых занятий
и создания анимации больше всего подходит яркая среда. Но частые проблемы
у большинства пользователей возникает с загрузкой программы на плату.
Аналогом
Scratch4Arduino
выступает
MBlock,
в
котором
есть
возможность генерировать код Arduino IDE, но для генерации необходимо
самостоятельно прошивать программу в среду Arduino IDE. «MBlock это
красочная среда, более подходящая для программирования роботов mBot
(проект MakerBlock), которая также умеет работать с Arduino. Минусом
является некоторая ограниченность используемых программ и функций и не
всегда корректный перевод» [21].
27
«Плагин Ardublock – это свободно распространяемый дополнительный
модуль, который является плагином Arduino IDE. Плагин написан на языке
Java и состоит из графических объектов. В результате компиляции собранная
программа переводится на язык среды Arduino IDE, что позволяет обеспечить
в дальнейшем переход с графического программирования к языковому» [22].
Начинающим пользователям применение блочной среды для понимания
структуры программы дается намного проще. Модули для библиотеки и
ArduBlock систематически обновляются, что позволяет пользователям
формировать
более
сложные
программы
без
применения
среды
программирования Arduino IDE.
На занятиях с применением Lego и Arduino робототехника раскрывается
с разных сторон. В случае Lego первично конструирование и механика,
мобильные роботы и общие навыки алгоритмизации при упрощенном
программировании. Arduino позволяет учащимся познакомиться с миром
электроники, понять принципы работы электронных компонентов, увидеть
множество различных датчиков и необычных для них устройств. «Проекты,
созданные на данной платформе, можно использовать дома по назначению
(например, автоматизация бытовых приборов), что является дополнительной
мотивацией для изучения. Занятия робототехникой на базе Arduino
способствуют развитию политехнических компетенций, необходимых в
современной профессиональной деятельности в сфере автоматизации и IT»
[23].
28
2.3 Автономный робот NAO
NAO – это автономный человекоподобный робот, разработанный
компанией Aldebaran Robotics с возможностью его программирования. «По
данным Aldebaran Robotics, робот NAO нашел применение в более чем 200
образовательных учреждениях по всему миру. Он применяется для
исследований в области робототехники и помогает учащимся в освоении
компьютерных и когнитивных наук, математики и физики, а также в области
взаимодействия робота и человека» [24]. Внешний вид робота представлен н
рисунке 2.11.
Рисунок 2.11 – Человекоподобный робот NAO
На сегодняшний день робот NAO является наиболее развитой
платформой среди роботов-гуманоидов, представленных на рынке. Данная
платформа оснащена устройством распознавания звуков и способностью в них
ориентироваться,
поддержанием
устройствами),
голосовыми
сети
Wi-fi
благодаря
динамиками,
(для
чему
инфракрасным
установления
робот
контакта
становится
портом
с
и
другими
качественным
интерактивным инструментом.
«Робот Nao – идеальный партнер для исследования и преподавания в
области робототехники и искусственного интеллекта. Его различные датчики,
29
25 степеней свободы, встроенный компьютер и графически оформленное
программное обеспечение делают робота уникальным инструментом для
исследований» [25].
Являясь
интерактивным,
интересным
и
забавным,
постоянно
развивающимся, NAO является надежной платформой для обучения учащихся
различных уровней.
NAO также позволяет преподавателям интегрировать в обучение работу
в команде, управление проектами, принятие решений, коммуникативные
навыки в стимулирующей обстановке. NAO – это гибкий инструмент для
развития междисциплинарных проектов.
2.3.1 Визуальная среда программирования Choregraphe
Платформа робота NAO оснащена пользовательской программной
Choregraphe с программируемыми модулями C++, кроме которого можно
использовать программирования Python или Urbi. «NAO поставляется с
полной документацией и множеством примеров кода программирования. Весь
код поведения робота является открытым, чтобы была возможность внести
свои изменения» [26]. На рисунке 2.12 представлен интерфейс приложения
Choreographe.
Для программирования робота NAO применяется программное
приложение Choregraphe, которое разработано фирмой Aldebaran Robotics.
Интерфейс программы
Choregraphe является
достаточно
простым в
понимании и быстром освоении элементов программирования функций
робота.
30
Рисунок 2.12 – Структура визуальной среды Choregraphe
2.3.2 Технические характеристики
Структура платформы социального робота NAO:
− «Корпус с 25 степенями свободы (DOF) c ключевыми элементами
робота – моторами и приводами (рисунок 2.13);
− система датчиков, состоящая из 2-ух камер, 4-ёх микрофонов; 2
инфракрасных приемопередатчиков, платы равновесия, состоящие из 2-ух
гироскопов и 1-ого акселерометра; 8 датчиков давления на ступнях, 9
тактильных датчиков, расположенных на руках и голове;
− устройства вербальной коммуникации с человеком такие, как
голосовой синтезатор, светодиоды, качественны е динамики;
− распознавание и произношение речи на 19 языках, в том числе и на
русском;
− процессор в голове робота Intel Atom 1.6 ГГц поддержкой фирменной
ОС NAOqi на ядре Linux, второй процессор ARM9 в груди;
− аккумулятор 27,6 Вт/ч, обеспечивающий роботу 1.5 часа автономной
работы» [27].
Структура платформы робота представлена на рисунке 2.14.
31
Рисунок 2.13 – Робот NAO и пересечения, составляющие 25 степеней
свободы (RHipYawPitch и LHipYawPitch связаны)
Рисунок 2.14 – Платформа NAO
«Технические характеристики робота NAO представлены в таблице 2.1»
[28].
32
Таблица 2.1 – Технические характеристики робота
Рост
Вес
Время автономной работы
Степени свободы
Процессор
Встроенная ОС
Совместимые ОС
Языки программирования
Зрение
Связь
58 см
4,3 кг
60 минут (активной работы), 90
минут (в обычном режиме)
от 21 до 25
Intel Atom @ 1.6 ГГц
Linux
Windows, Mac OS, Linux
С++, Python, Java, MATLAB, Urbi, C
Две камеры 1280х960
Ethernet, Wi-Fi
2.3.3 Движения робота
Робота NAO оснащён всенаправленной системой ходьбы. Благодаря
гироскопам и датчикам на ступнях робот понимает, как он идёт, и в каком
положении он находится.
NAO способен скорректировать движения, во
избежание падения при неровности пола или наличия препятствий. Также в
платформу встроен специальный «Менеджер падения»: когда робот
чувствует, что падает, он расслабляет все моторы, при этом подставляя руки
под голову, защищая её [29]. На рисунке 2.15 представлен внешний вид робота
в движении.
33
Рисунок 2.15 – Робот NAO в движении
Для координации движений робота используется специальный раздел
программы Choregraphe в 3D режиме. На рисунке 2.16 наглядно представлен
данный раздел программы.
Рисунок 2.16 – Координация движений робота в программе Choregraphe
34
2.3.4 Система технического зрения робота
Распознавание объектов и наблюдение за ними осуществляется
благодаря камерам NAO, с разрешением 960p и захватом изображений до 30
кадров в секунду. Встроенное зрение робота позволяет понимать, что именно
оказалось в поле зрения робота. В связи с этим в NAO уже встроены
алгоритмы распознавание объектов и лиц.
«Система технического зрения робота NAO позволяет:
−
фотографировать и отправлять изображения;
−
снимать видео;
−
различать цвета;
−
находить и распознавать лица и в режиме реального времени
передавать информацию на ПК или в сеть» [30];
−
идентифицировать ранее изученные объекты.
Система зрения НАО состоит из двух камер, расположенных на голове
робота (рисунок 2.17).
Рисунок 2.17 – Система технического зрения NAO
35
Камеры NAO обеспечивают разрешение изображения до 1280x960 при
30 кадров в секунду и используются для идентификации объектов,
находящихся в его поле зрения. Технические параметры камеры (модель
MT9M114) приведены в таблице 2.2. Также в ней представлены некоторые
параметры, позволяющие осуществлять калибровку камеры.
Таблица 2.2 – Технические параметры камеры робота
Параметр
Качество изображений
Разрешение
Формат данных
Область зрения
Фокусировка
Тип фокусировки
Размерность пикселей
Динамический диапазон
Коэффициент шума
Оптический формат данных
Плотность пикселей
Характеристики
1,2 MP
1280*960p
YUV (422 color space)
72,6ºDFOV (60,9º HFOV, 47,6º VFOV)
30cm ~ infinity
Fixed focus
1,9µm*1,9µm
70dB
37dB (max)
1/6 inch
1288*968
В настоящее время, в системе технического зрения робота, для захвата
более от 5 до 30 кадров в секунду с разрешением 1280x960 HD, используется
процессор ATOM. Цветовое пространство YUV намного удобнее, чем RGB,
так как оно обладает более качественными характеристиками [31].
Кроме этого, камера Nao может осуществлять алгоритм автоэкспозиции
и поддержку многих видов цветовых пространств.
Также существует
возможность управления камерами для вывода изображений различного
разрешения путем программирования.
Возможность программирования робота с помощью Python через NaoqiPython-интерфейс в удаленном ПК позволяет реализовать следующий
алгоритм:
Камера преобразует информацию об окружающей среде в изображение,
которое затем передается на персональный компьютер через Wi-Fi или
Ethernet. После этого на ПК запускается программа управления роботом и
алгоритм предварительной обработки изображений, после чего ПК передает
36
полученные изображения на производственную станцию. ПК выполняет
предварительную обработку изображения: устраняет шумы и неоднозначные
изображения. Затем, запустив процесс распознавания объектов в реальном
времени на производственной станции, можно получить запрос на
обнаружение объекта на изображении. В свою очередь, производственная
станция возвращает результат обнаружения, содержащий категорию объекта
и координаты на картинке.
Важная функция распознавания объектов в реальном времени – оценка
качества картинки на стороне ПК.
Более того, если изображение
неоднозначно или переэкспонированно, размытое изображение будет
регулироваться с помощью фильтра.
Модуль ALVisionRecognition, являющийся частью инфраструктуры
NAOqi, предназначен для распознавания ранее изученных объектов. Он
предоставляет функциональные возможности идентификации конкретных
объектов, которые можно внести вручную. На рисунке 2.18 представлена
структурная схема работы данного модуля.
37
Рисунок 2.18 – Рабочий процесс модуля ALVisionRecognition
2.3.5 Цветовое пространство YUV
YUV – цветовая модель, цвет в которой состоит из трёх компонент:
яркости (Y) и цветоразности (U и V), состоящих из синего и красного цвета.
Входные изображения с камеры NAO поступают в формате YUV.
Данная цветовая модель очень удобна для передачи для видеоданных, но при
передаче изображений имеет высокую световую чувствительность.
38
Создание таблицы цветов YUV возможно с помощью C++ в разделе
«Vision» в среде Choregraphe. Для дальнейшей работы таблица цветов может
быть изменена с помощью данного раздела. На рисунке 2.19 представлена
цветовая плоскость YUV.
Рисунок 2.19 – Цветовая плоскость U-V (при Y = 0,5)
Для осуществления распознавания объектов цветовой плоскости YUV в
реальном времени, алгоритм действий делится на две части: «Обучение» и
«Тестирование».
В период «Обучения» робот делает несколько фотографий объекта в
YUV, анализирует их признаки и составляет соответствующие гистограммы
для каждого цветового канала, которые после этого используется для
генерации вероятностных распределений и сохраняются в базе данных.
Для
«Тестирования»
порядок
действий
изначально
идентичен:
изображения и гистограммы создаются вышеупомянутым методом. После
этого гистограммы индивидуального цвета сопоставляются с базой данных.
Оптимальные совпадения для каждого канала затем объединяются по
принципу мажоритарного голосования [32]. В том случае, когда большинство
каналов согласовывают совпадение, изображение считается «правильным».
39
Существует три варианта согласования данных, при котором выбор
осуществляется одним из следующих вариантов: абсолютное совпадение (1);
совпадение, составляющее 50% (2); совпадение с множественным числом (в
пределах от 50-100%) (3).
В конечном итоге робот предоставляет заключение о том, что является
объектом распознавания. Алгоритмы действий, представленные на рисунках
2.20 и 2.21, описывают краткий процесс системы распознавания изображений.
Рисунок 2.20 – Блок-схема этапа «Обучение»
Рисунок 2.21 – Блок-схема этапа «Тестирование»
40
3 Постановка задачи
Главной задачей данной работы является разработка программного
обеспечения обучающих приложений с распознаванием изображений и
отладка их работы.
Также важной частью работы является подробное изучение принципа
работы сервоприводов и моторов робота, располагающихся в голове и руках,
с целью установления невербального тактильного общения с детьми. После
разработки приложений для социального робота необходимо провести
тестирование, в котором примут участие учащиеся начальных классов и
дошкольники, с целью выяснения и оценки качества проделанной работы.
Задачи:
−
изучение
структуры
визуальной
среды
программирования
Ghoregraphe;
−
разработка сценариев взаимодействия робот-ребёнок;
−
реализация алгоритма распознавания изображений;
−
внедрение анимации робота в разрабатываемые приложения;
−
проведение испытаний.
41
4 Практическая часть
4.1 Электронная образовательная платформа «Фотон»
В лаборатории робототехники и искусственного интеллекта была
разработана архитектура ЭОП «Фотон», структурная схема которой
представлена на рисунке 4.1. Разработанные обучающие приложения
являются неотъемлемой частью данной электронной образовательной
платформы.
Рисунок 4.1 – Структурная схема ЭОП «Фотон»
«Как представлено в структурной схеме, ЭОП «Фотон» обладает
следующими принципиальными отличиями от конкурентов:
1) робо-приложения
включают
в
себя
анимацию
робота,
осуществляющую сценарии взаимодействия ребёнок-робот;
2) наличие интерактива с использованием голосового ввода/вывода;
42
3) наличие интерактива с использованием устройств видеоввода;
4) наличие альтернативных способов взаимодействия с контентом,
оснащённых образовательными ресурсами и приложениями (нейроинтерфейс,
отслеживание взгляда, распознавание образов);
5) использование
в
качестве
электронного
образовательного
устройства человекоподобного робота, что увеличивает вовлеченность
учащегося в процесс обучения;
6) контент для ЭОР находится в облаке, что улучшает дистрибуцию
продуктов.
Рассмотрим представленные на схеме уровни ЭОП «Фотон»:
− электронные образовательные ресурсы — контент и приложения
ЭОП: программы, электронные книги, видео, RobotApp, WebAPP;
− облачное хранилище электронных образовательных ресурсов (ЭОР)
— место, предназначенное для хранения, каталогизации и обеспечения
доступа к ЭОР ресурсам из любой точки планеты по каналам сети Интернет.
Облачное хранилище включает в себя репозиторий ЭОР, базу данных для
каталогизации и поиска, веб-сервер, обеспечивающий доступ к ЭОР;
− электронные образовательные устройства (ЭОУ) — устройства,
предназначенные для отображения и воспроизведения ЭОР. В случае ЭОП
«Фотон» ЭОУ включают в себя человекоподобных социальных роботов,
помимо смартфонов, планшетов, ноутбуков и ПК;
− каналы взаимодействия с ЭОР — обеспечение получения и отправки
информации, управление воспроизведением: голосовым, тактильным, а также
через клавиатуру и мышь.
Пользователи (учитель, ученики, студент, методист) взаимодействуют с
электронно-образовательными
устройствами,
используя
три
взаимодействия: голосовой, тактильный и текстовый интерфейс» [33].
канала
43
4.2 Создание приложений в визуальной среде программирования
Choregraphe
РобоПриложение – программное обеспечение для робота, оформленное
в виде файла(ов) загружаемого в операционную систему робота, реализующее
выбранный сценарий человеко-машинного взаимодействия (робот-ребёнок).
РобоПриложение может включать в себя:
− диалог между роботом и ребенком: робот воспроизводит заранее
заданный текст голосом с помощью блока голосового синтеза, ждет
голосового ответа от ребёнка, преобразует полученный звуковой файл в
текстовое сообщение, которое затем обрабатывается ОС и приложением
робота;
− передача в робота информации через визуальные образы, так как
робот оборудован видеокамерой и функциями распознавания изображений
(контрастные объекты, форма изображений, лица);
− анимацию робота: движения конечностей, головы, различные
цветовые сигналы;
− обработку данных, поступающих с датчиков робота: тактильные
датчики, гироскопы, энкодеры приводов робота;
− взаимодействие с другими компьютерными устройствами по сети
WiFi.
Процесс разработки обучающих приложений включает в себя
следующие этапы:
1) выбор образовательной методики (литература или привлеченный
педагог);
2) разработка сценария взаимодействия робот-ребенок;
3) разработка приложения (программирование, создание анимаций
робота, интерфейс веб-приложения, ПО
веб-приложения, реализация
алгоритма распознавания изображений, составление диалогов взаимодействия
робот-ребенок);
44
4) наполнение БД контентом для приложения;
5) испытания и отладка в образовательном учреждении.
С помощью визуальной среды пограммирования Choregraphe были
разработаны обучающие приложения с распознаванием изображений и
приложения, дополненные активными движениями робота: «Обучение знакам
дорожного движения» «Обучение устному счету», «Зарядка».
Преимущественно все сценарии созданы для детей младшего школьного
возраста, в связи с этим робот уделят особое внимание похвале и
подбадриванию детей. После каждого правильного ответа NAO хвалит
ребёнка, сопровождая свои слова анимированными действиями. В случае, если
ребёнок ошибся, робот предлагает ещё немного подумать и попробовать
снова.
Меню с выбором разработанных приложений представлено на рисунке
4.2.
Рисунок 4.2 – Меню для запуска обучающих приложений
45
Реализация алгоритма распознавания изображений
Автономный робот NAO обладает двумя встроенными видеокамерами,
которые расположены на его голове и являются подсистемой технического
зрения робота. Робот может «следить» за движением людей, находящихся в
помещении, поворачивая при этом голову. Для обмена данных между роботом
и компьютером возможен благодаря реализации одного из представленных
способов:
1) С использованием сетевого кабеля
2) С использованием беспроводной сети Wi-fi.
Используя второй способ подключения, становится возможным
осуществление подключения одновременного доступа к NAO и запуска
программы, реализующей обработку информации, поступающей сенсоров
робота, с нескольких устройств.
Оптимальным
разрешением
получаемого
изображения
для
последующей его обработки и передачи данных для лучшего представления
окружающей обстановки робота, не должно превышать размер 320х240
пикселей. При увеличении разрешения происходит значительное уменьшение
скорости передачи данных. Данные, полученные с видеокамер робота,
обрабатываются не только на внешнем компьютере, но и на самом роботе.
Для реализации алгоритма распознавания изображений необходимо
было получить их с камер NAO, и визуализировать с помощью функций PIL
или PyQt. Далее осуществлялось распознавание изображений с помощью
функции ALVisionRecognition
[34].
Распознавание
изображений
производилось на основе сравнения с эталонным изображением, сохранённым
в памяти робота. Создание эталонных изображений, включающих несколько
последовательных действия, проводилось вручную.
При использовании модуля распознавания AlVisionRecognition робот
изучает изображения, объекты и картинки с помощью видеомонитора. Для
осуществления работы данного модуля необходимо выполнить следующие
шаги:
46
1) подключиться к роботу;
2) получить доступ к «Video monitor» – чтобы видеть то, что попадает
в поле зрения робота;
3) запустить команду «Learn» – для того, чтобы поместить объект в
желаемое положение относительно камеры робота, даётся 4 секунды, после
чего происходит захват изображения;
4) запустить команду «Draw» – на данном этапе следует нарисовать
контур объекта, сегмент за сегментом, чтобы отличить объект от фона;
5) проверить созданный объект;
6) экспортировать объект в базу данных.
После того, как база данных сформирована и импортирована в NAO,
эталонные изображения должны пройти проверку их распознавания. Как и в
других модулях извлечения, результаты распознавания объектов помещаются
в ALMemory. Доступ к веб-странице робота можно получить в браузере,
используя его IP и выбрав Advanced→Memory→PictureDetected; когда
происходит распознавание изображения, значение ALValue меняется.
1. Для создания снимка с камеры NAO необходимо открыть панель
Video monitor, благодаря чему становится возможным отображение
предметов, попадающих в поле зрения робота. Время снятия изображения
составляет 4 секунды, после чего изображение переключается на разрешение
QVGA (320×240) и захватывается, делая снимок (рисунок 4.3). За время снятия
изображения необходимо разместить объект распознавания верным образом,
исключающим тени, засветки, размытость и др.
47
Рисунок 4.3 – Пример снимка объекта в разделе Video monitor
2. Следующий этап представляет собой избавление от ненужные
объектов, которые прошли распознавание при создании снимка. Для этого
следует обрисовать контур необходимого объекта, исключая лишние детали и
не обрезая основные (рисунок 4.4). По завершению выделения необходимого
объекта, всплывет окно Object Tags.
Рисунок 4.4 – Пример создания необходимого объекта
48
3. В случае необходимости добавления нового объекта в базу данных
робота, следует воспользоваться окном Object Tags, позволяющим внести
информацию о изображении, объекте или человеке. Сообщение обратной
связи подтвердит, является ли "запоминание" успешным.
На рисунке 4.5 (а, б) представлен алгоритм распознавания изображений
в действии, на примере одного из разработанных приложений.
а
б
Рисунок 4.5(а, б) – Распознавание изображений на примере приложения
«Обучение правилам дорожного движения»
49
4.3 Разработанные приложения
«Обучение
знакам
дорожного
движения»
–
приложение
с
распознаванием изображений. Робот в интерактивной форме обучает детей
знакам дорожного движения. Дети показывают роботу карточки со знаками
ПДД (рисунок 4.6), он распознает их и рассказывает ребенку то, что они
означают.
Сценарий взаимодействия робот-ребёнок [35]:
1) приветствие (робот здоровается с ребёнком, предлагая в игровой
форме изучить некоторые знаки дорожного движения);
2) ребёнок показывает ребёнку карточку с изображением дорожного
знака;
3) робот
распознаёт
изображение,
и
читает
стихотворение,
соответствующее данному знаку. Одновременно с этим на экран выводится
распознанный знак дорожного движения со стихотворением для улучшения
зрительного понимания;
4) прощание
(после
завершения
обучающей
мини-игры
прощается с ребёнком).
Рисунок 4.6 – Карточки с изображением знаков ПДД
робот
50
Структура базы данных приложения включает в себя
road_signs
таблицу 4.1:
Таблица 4.1 – Структура таблицы «road_signs»
Имя поля
Тип данных
Прим
id
VARCHAR (24)
primary key Номер знака по ГОСТ ПДД
title
VARCHAR (200)
description
VARCHAR (1000)
img
VARCHAR (1000)
Таблица 4.2 – Пример заполнения таблицы «road_signs»
id
title
Description
img
1.17 Искусственная Говорит вам знак тревожно: Надо ехать 1.17.png
неровность осторожно, Чтобы ваш автомобиль Не
пришлось сдавать в утиль!
1.18 Выброс гравия Знак Выброс гравия. Предупреждает водителя 1.18.png
о том, что он подъезжает к участку дороги, где
возможен выброс гравия из-под колес впереди
следующих транспортных средств. Этот знак
очень часто устанавливают при проведении на
дороге ремонтных работ.
1.22 Искусственная Чтоб водитель знал заранее –Знак его 1.22.png
неровность предупреждает. Вдвое обостри внимание –
Пешеход не пострадает.
1.23
Осторожно
дети!
Дорожный знак осторожно дети относят к 1.23.png
предупреждающим
обозначениям,
и
устанавливать его необходимо там, где
существует
повышенная
вероятность
появления детей. Это, как правило, места на
дороге, недалеко от которых будут
располагаться детские учреждения, будь то
школы, детские сады, спортивные секции и
другие организации для детей и подростков.
Кроме этого, знак может быть установлен и в
других местах, где было замечено, что дети
часто пересекают проезжую часть, а наличие
пешеходного перехода на участке нет.
51
Окончание таблицы 4.2
id
2.5
title
Description
img
Движение без Ты, шофер, не торопись, Видишь знак, 2.5.png
остановки остановись! Прежде чем продолжить путь,
запрещено Осмотреться не забудь.
3.1
Въезд
запрещён
Знак водителей стращает, Въезд машинам 3.1.png
запрещает! Не пытайтесь сгоряча Ехать мимо
кирпича!
3.2
Движение
запрещено
Этот знак ну очень строгий, Коль стоит он на 3.2.png
дороге. Говорит он нам: Друзья, Ездить здесь
совсем нельзя!
ПО робота разработано в визуальной среде программирования
Choreographe (рисунок 4.7) с использованием внутренних вставок кода на
языке Python для обеспечения доступа к базе данных и пр. Созданный
интерфейс приложения представлен на рисунке 4.8 (а, б, в). Действующих код
приложения «Обучение знакам дорожного движения» представлен в
приложении А.
Рисунок 4.7 – ПО робота в визуальной среде Choregraphe
52
В приложении Б представлен действующий код страниц разработанного
веб-приложения.
Рисунок 4.8 (а, б, в) – Веб-интерфейс приложения
53
Приложения, дополненные анимацией робота
1. «Зарядка» – робот проводит лёгкие физминутки для снятия
напряжения детей младшего возраста, возникший после долгой работы за
партами. NAO предоставляет выбор физминуток, которые очень привлекают
внимание маленьких детей, тем самым помогая расслабиться. В ходе
выполнения сценария робот проговаривает стихотворение, сопровождая
каждую строчку соответствующим движением, которое должны повторять
дети.
Сценарий взаимодействия робот-ребёнок
1. Приветствие (робот здоровается с детьми, предлагая немного
отдохнуть и провести небольшую зарядку).
2. Робот предлагает для выбора несколько зарядок, ожидая ответа со
стороны детей.
3. Робот проводит зарядку, соответствующую выбору детей: читает
стихотворение и выполняет движения. Дети повторяют движения за роботом.
4. После завершения одной зарядки робот спрашивает, хотят ли дети
провести ещё одну. В случае «положительного» ответа – проводит новую
зарядку, соответствующую выбору детей, в случае «отрицательного» ответа –
завершает мини-игру.
5. Прощание (после завершения мини-игры робот прощается с детьми).
Разработанное
ПО
приложения
создано
в
визуальной
среде
программирования Choreographe (рисунок 4.9 а, б, в) без использования вебинтерфейса. В приложении В представлен код, написанный на языке
программирования Python.
54
в
Рисунок 4.9 (а, б, в) – ПО приложения «Зарядка»
55
2. «Обучение устному счёту» – робот в игровой форме предлагает детям
проверить свои базовые знания в области арифметики. В ходе «игры» NAO
предлагает посчитать некоторые элементы его строения и движения робота.
Все свои вопросы робот сопровождает активными движениями, для
наглядности и установления более близкого контакта с детьми.
Сценарий взаимодействия робот-ребёнок
1. Приветствие (робот здоровается с ребёнком, предлагая проверить
некоторые знания ребёнка в математике).
2. В случае положительного ответа со стороны ребёнка, робот начинает
мини-игру, предлагая посчитать, сколько у него рук, ног, количество
поворотов, наклонов головы и т.д.
3. Ребёнок отвечает на вопросы робота, в случае «правильного» ответа
получает похвалу и продолжает игру, в случае допущения «ошибки» робот
предлагает ему попробовать снова, подбадривая его.
4. Прощание
(после завершения
обучающей
мини-игры
робот
прощается с ребёнком).
Важной
частью
созданных
приложений
является
возможность
распознавания роботом различных ответов на один и тот же вопрос, что
представлено на рисунке 4.10.
Рисунок 4.10 – Скриншот приложения «Обучение устному счёту»
56
Данное
приложение
использует
малую
долю
интерактива.
Разработанное в среде Choregraphe программное обеспечение приложения с
использованием внутренних вставок кода на языке Python представлено на
рисунке 4.11.
Рисунок 4.11 – ПО приложения «Обучению устному счёту»
4.4 Испытания
С целью выяснения недостатков и оценки качества проделанной работы
апробация разработанного ПО производилась в полевых условиях на
некоторых мероприятиях:
− Российский национальный этап Международного чемпионата по
робототехнике RoboCup Russia Open 2019, г. Томск, апрель 2019: участие в
выставке, проведение экскурсий и демонстраций;
− МАОУ Гимназия №56 города Томск, май 2019 года: участие в уроке
3-го класса;
− МБОУ Кисловская СОШ Томского района, сентябрь 2019 года:
участие в открытии “Точки роста”;
57
− МБОУ Кисловская СОШ Томского района, сентябрь 2019 года:
проведение экскурсий и демонстрации робота для учеников 1-2-ых классов;
− Международная выставка “Китайская промышленная ярмарка China
International Industry Fair”, г. Шанхай, сентябрь 2019 года: участие в выставке
экспозиции Министерства науки и высшего образования РФ;
− Московский Международный форум инновационного развития
“Открытые инновации 2019”, г. Москва, сентябрь 2019: участие в выставке
экспозиции Министерства науки и высшего образования РФ
Российский национальный этап Международного чемпионата по
робототехнике RoboCup Russia Open 2019, г. Томск
Формат мероприятия: участие в выставке, проведение экскурсий и
демонстраций. В приложении Г приведены фотографии робота NAO с
участниками выставки RoboCup Russia Open 2019.
Дата проведения: 26-28 апреля 2019
Участники:
− организованные группы детей школьников возраста 12-14 лет;
− дети дошкольного и дошкольного возраста в сопровождении
родителей, бабушек и дедушек;
− студенты ВУЗов и ССУЗов Томской области;
− школьники и студенты – участники соревнований по робототехнике;
− педагоги и администрация школ Томской области;
− представители вузов, научных организаций и администраций
Томской области.
Общее количество участников апробации: более 1500 человек
Важно отметить, что активное участие в мини-играх принимали не
только дети, но и взрослые, а во время проверки разработанных приложений
данный проект вызвал большой интерес среди учеников младших классов и
учителей.
58
МАУО Гимназия №56 города Томск
Формат мероприятия: участие в уроке 3-его класса.
Дата проведения: 6 мая 2019, продолжительность – 1 час.
Процесс
проведения
апробации
разработанных
приложений
представлен в приложении Д.
Участники:
− ученики третьего класса, возраста 8-10 лет;
− педагог начального образования;
− завуч по начальной школе.
Количество участников апробации: 30 человек
Сценарий урока:
− до начала урока рабочая группа установила в классе начальной школы
необходимое оборудование и произвела настройку;
− завуч представила классу и педагогу рабочую группу и цель урока;
− педагог организовала 5 групп детей по 5-6 учащихся в группе и
разместила группы в разных частях класса;
− текущая группа пересаживалась за столы с роботом и ноутбуком для
проведения апробации;
− каждая группа использовала одно различное РобоПриложение;
− каждая группа общалась с роботом и РобоПриложением 8-10 минут;
− участниками рабочей группы проводилась видео и фотосъемка
Международная выставка «Китайская промышленная ярмарка
China International Industry Fair», г. Шанхай
Формат мероприятия: участие в выставке экспозиции Министерства
науки и высшего образования РФ (приложение Е)
Дата проведения: 20 сентября 2019
Участники:
− посетители выставки;
59
− представители Министерства науки и высшего образования РФ.
Количество участников апробации: более 3000 человек.
МБОУ Кисловская СОШ Томского района
Формат мероприятия: участие в открытии “Точки роста”, проведение
экскурсий и демонстрации робота для учеников первых и вторых классов
(приложение Ж).
Дата проведения: 24 сентября, 4 октября 2019.
Участники:
− ученики младшей школы 1 и 2 классы (возраст 7-8 лет);
− педагоги начального образования;
− учителя школ, представители администрации Томской области и
Томского района, делегация ФГАУ “Фонд новых форм развития образования”.
Количество участников апробации: более 160 человек.
Сценарий проведения испытаний:
− апробация проводилась в формате демонстрации для делегаций
официальных лиц и экскурсий учеников 1-2 классов;
− состав групп учеников до 10 детей;
− группу сопровождали педагоги начального образованияВ ходе
проверки приложений внимание детей было сконцентрировано на роботе.
Каждый из учащихся старался точно выполнить задания робота и дать
правильный ответ на поставленный вопрос. Также интерес детей привлёк
интерфейс, благодаря которому школьники могли не только увидеть
информацию, но и принять непосредственное участие в воспроизведении
приложений.
60
Московский Международный форум инновационного развития
«Открытые инновации 2019», г. Москва
Формат мероприятия: участие в выставке экспозиции Министерства
науки и высшего образования РФ (приложение И)
Дата проведения: 21-23 октября 2019
Участники:
− посетители
выставки,
представители
инновационной
промышленности и образования РФ;
− представители Министерства науки и высшего образования РФ
Количество участников апробации: более 1000 человек.
На испытаниях в полевых условиях разработанные обучающие
приложения, являющиеся составной частью электронной образовательной
платформы «Фотон», показали себя эффективно. Увеличение каналов
взаимодействия
с
ЭОУ,
реализация
распознавания
изображений,
использование анимации робота позволили разнообразить приложения и
сделать их интересными для взаимодействия с детьми.
61
5 Заключение
В ходе проделанной работы был проведён литературный обзор по теме
распознавания изображений автономным роботом NAO, благодаря чему были
разработаны обучающие приложения с данной функцией, а также
дополненные анимацией робота.
В
ходе
тестирования
на
выездных
мероприятиях
обучающих
приложений были выявлены некоторые недоработки, которые были
устранены при дальнейшей работе и проверке в лабораторных условиях.
Так как NAO обладает мощным образовательным потенциалом, его
применение в сфере образования затрагивает две важные области:
1) педагогика:
−
использование робота при обучении детей;
−
формат обучения: мини-игры с «живым» ассистентом;
2) электронное обучение:
− робот как интерфейс между ребенком и компьютером;
− большое число каналов взаимодействия, в том числе более
«человечных»;
− расширение возможностей обучения за счет разделения
робоприложения и контента (данные в облачной БД)
Преимуществом использования социального робота вместо компьютера
в образовании состоит в следующем:
1) взаимодействие с ребёнком осуществляется через несколько каналов
взаимодействия
(голосовой
интерфейс
(анализ/синтез),
распознавание
изображений, тактильные датчики, сенсорный экран, текстовый интерфейс);
2) робот NAO привлекает внимание детей своим внешним видом
(похож на ребёнка, игрушку; происходит «оживление» робота за счёт
использования движений);
62
3) процесс обучения проходит в формате мини-игр, осуществляется
общение голосом, робот «видит и узнаёт» картинки, ребёнка.
Обладая вышеупомянутыми характеристиками, разработанное ПО
обучающий приложений для социального робота позволит использовать его в
качестве
электронно-образовательного
устройства
в
образовательном
процессе соответствующих учреждений, в результате чего обучение будет
проходить в форме мини-игр.
63
Список использованных источников
1 Проказина И.Ю., Тертишная О.В., Павлова А.А., Шабалин И.Д.,
Полынцев Е.С. Разработка сценариев «робот-ребенок» для социального
робота // Сборник избранных статей научной сессии ТУСУРа по материалам
научно-технической конференции студентов, аспирантов и молодых ученых
«Научная сессия ТУСУР2019», Томск 22 – 24 мая 2019 г. – Томск: Из-во «ВСпектр», 2019. Ч.4 – С. 301-304.
2 Павлова А.А., Тертишная О.В., Шандаров Е.С. Детская развивающая
игра на платформе автономного робота NAO //Материалы III международной
конференции Когнитивная робототехника (21–23 ноября 2018 г.) / под ред.
В.И. Сырямкина. – Томск: Издательский Дом Томского государственного
университета, 2018. – С 52-53.
3 Павлова А.А., Тертишная О.В., Согомонянц А.А., Проказина И.Е.,
Шандаров Е.С. Разработка программного обеспечения социального робота
для
образовательных
учреждений
//Материалы
IV
международной
конференции Когнитивная робототехника (26 – 28 ноября 2019 г.) / под ред.
В.И. Сырямкина. – Томск: Издательский Дом Томского государственного
университета, 2019. – С 67-69.
4 Хозяйственный робот Luna обещает прорыв в сфере бытовой
техники
robotor
–
[Электронный
ресурс].
Режим
доступа:
http://robotor.ru/2011/05/13/luna-robot-helper/, свободный (дата обращения:
08.06.2020).
5 ARMAR Humanoid Robot For The Kitchen – [Электронный ресурс].
Режим доступа: http://www.technovelgy.com/ct/, свободный (дата обращения:
08.06.2020).
6 ABB robot Yobot in a New York Yotel – [Электронный ресурс]. Режим
доступа: http://www.abb.com/cawp/seitp202/,
09.06.2020).
свободный
(дата обращения:
64
7 A surgical robot – [Электронный ресурс]. Режим доступа:
http://www.knowledgeminer.net/tag/cisobot-surgeon,
свободный
(дата
обращения: 09.06.2020).
8 R2 Accomplishes Its First Work In Space – [Электронный ресурс].
Режим доступа: http://www.nasa.gov/mission_pages/station/main/robonaut.html,
свободный (дата обращения: 09.06.2020).
9 Галкин Д.В., Зильберман Н.Н. Социальная робототехника в
контексте гуманитарной информатики // Д.В. Галкин, Н.Н. Зильберман //
Ассоциация образовательных и научных учреждений «Сибирский открытий
университет». – Томск, 2012. – С. 66-72.
10 Salem M., Kopp S., Wachsmuth I. et al. Generation and Evaluation of
Communicative Robot Gesture // International Journal of Social Robotics. – 2012.
– Vol. 4, № 2. – Р. 201–217.
11 Ечмаева Г.А. Подготовка педагогических кадров в области
образовательной робототехники, 2-е издание // Современные проблемы науки
и образования // 2013.
12 Гребнева Д. М. Изучение элементов робототехники в базовом курсе
информатики
–
[Электронный
ресурс].
Режим
доступа:
http://
festival.1september.ru/articles/623491, свободный (дата обращения: 10.06.2020).
13 Асмолов А. Г. Формирование универсальных учебных действий в
основной школе: от действия к мысли. – М.: Просвещение, 2011. - 159 с
14 Толстова Н.А., Бондаренко Д.А., Ганьшин К.Ю. Образовательная
робототехника как составляющая инженерно-технического образования //
Н.А. Толстова, Д.А. Бондаренко, К.Ю. Ганьшин // Северо-Кавказский
федеральный университет. – Ставрополь, 2013. – С. 171-177.
15 История Lego – [Электронный ресурс]. Режим доступа: https://lego.ru/pages/lego-history.html, свободный (дата обращения 14.06.2020)
16 Шубович, В.Г. Подготовка и проведение соревнований по
робототехнике на базе микрокомпьютера LEGO EV3 // В.Г. Шубович, А.А.
Семенов, А.Н. Аленова // Материалы Международной заочной научно-
65
практической конференции «Образование и информационная культура:
теория и практика» / Под. ред. Ю.И. Титаренко. - Ульяновск, 2015. – С. 83-87.
17 Arduino для новичков и профессионалов – [Электронный ресурс].
Режим доступа: https://allarduino.ru/, свободный (дата обращения 15.06.2020).
18 FLProg
–
альтернативная
среда
программирования
Arduino.
Описание проекта: Хабрахабр – [Электронный ресурс]. Режим доступа:
https://habrahabr.ru/company/flprog/blog/242335/, свободный (дата обращения
15.06.2020).
19 Visuino: Wintervogel – [Электронный ресурс]. Режим доступа:
http://inoplk.ru/info/po/?tool=3, свободный (дата обращения 18.06.2020).
20 Официальный сайт S4A – [Электронный ресурс]. Режим доступа:
http://s4a.cat/, свободный (дата обращения 19.06.2020).
21 Polikar, R. (2006). Ensemble based systems in decision making. Circuits
and Systems Magazine, IEEE, 6 (3), P. 21 – 45.
22 Официальный сайт MakerBlock – [Электронный ресурс]. Режим
доступа: http://www.makeblock.com/, свободный (дата обращения 20.06.2020).
23 ArduBlock: Sparkfun – [Электронный ресурс]. Режим доступа:
https://learn.sparkfun.com/tutorials/alternative-arduino-interfaces/ardublock,
свободный (дата обращения 20.06.2020).
24 Робот Nao Next Gen – интеллектуал. Человекоподобные роботы –
[Электронный
ресурс].
Режим
доступа:
http://www.prorobot.ru/01/robot_naonext.php, свободный (дата обращения:
20.06.2020 г.)
25 Luis Cruz. Humanoid Robot Nao: Developing Behaviours for Soccer
Humanoid Robots // Cruz L. LAP Lambert Academic Publishing, 2013. – P. 112.
26 Первый
андроидный
самосовершенствованию»
–
робот
NAO
[Электронный
готов
ресурс].
к
общению
Режим
и
доступа:
https://motocarrello.ru/jelektrotehnologii/roboty/1886-robot-nao.html, свободный
(дата обращения: 20.06.2020 г.)
27 Erden, M. S. (2013). Emotional postures for the humanoid-robot NAO /
66
International journal of social robotics, 5(4). – P. 441–456.
28 Андроидные роботы NAO H25 EVOLUTION V5 – [Электронный
ресурс]. Режим доступа: http://www.robots-toys.ru/collection/komplekty-dlyauchenikov-starshey-shkoly-i-instituta/product/androidnye-roboty-nao-h25evolution-v5, свободный (дата обращения: 20.06.2020 г.)
29 David Gouaillier, Vincent Hugel, Pierre Blazevic Chris Kilner, Jer´ome
Monceaux, Pascal Lafourcade, Brice Marnier, Julien Serre, Bruno Maisonnier:
Mechatronic design of NAO humanoid // IEEE International Conference on
Robotics and Automation Kobe International Conference Center Kobe, Japan, May
12-17, 2009. – P. 197.
30 Bilge Mutlu, Christoph Bartneck, Jaap Ham, Vanessa Evers, Takayuki
Kanda (Eds.): Social Robotics // Springer //Third International Conference, ICSR
2011 Amsterdam, The Netherlands, November 24-25, 2011. -
P. 249
31 Liu, Q., Zhang, C., Song, Y., & Pang, B. (2018). Real-Time Object
Recognition Based on NAO Humanoid Robot. 2018 IEEE International Conference
on Internet of Things (iThings) and IEEE Green Computing and Communications
(GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE
Smart Data (SmartData). – P. 83-87.
32 Viola, P., & Jones, M. (2001). Robust real-time object detection.
International Journal of Computer Vision, 4. – P. 51-52.
33 Проказина И.Ю., Согомонянц А.А., Павлова А.А., Кодоров А.Е.,
Шандаров
Е.С.
Архитектура
комплекса
ПО
интеллектуальной
робототехнической системы обучения и развития ребенка // Материалы
докладов
XV
Международной
научно-практической
конференции
Электронные средства и системы управления: (20–22 ноября 2019 г.): в 2 ч. –
Ч. 2. – Томск: В-Спектр, 2019. – С. 111 – 113.
34 Зимина А.Н., Ример Д.И., Соколова Е.В., Шандаров Е.С., Шандарова
О.Е.
Антропоморфный
робот-помощник
воспитателя
дошкольного
учреждения // Электронные средства и системы управления. 2015. - № 1-2. - С.
108–113
67
35 Шандаров Е.С., Зимина А.Н., Ермакова П.С. Анализ поведения
робота-ассистента в рамках разработки сценариев взаимодействия робот –
ребенок // Гуманитарная информатика. 2014. - № 8. - С. 52-64.
68
Приложение А
(обязательное)
Скрипт приложения «Обучение знакам дорожного движения»
class MyClass(GeneratedClass):
def __init__(self):
GeneratedClass.__init__(self)
pass
def onLoad(self):
self.notSay = True
pass
def onUnload(self):
pass
def onInput_onStart(self, p):
#POLYNTSEV
def sendServer(message):
f = open('/var/www/data/road_signs/check.txt', 'w')
f.write(message)
f.close()
#POLYNTSEV
if p == '5.19':
result = 'Всем знакомые полоски, знают дети, знает взрослый. На ту сторону
ведёт пешеходный переход'
sendServer('5.19.1')
elif p == '3.10':
result = 'В дождь, и в ясную погоду, здесь не ходят пешеходы. Говорит им
знак одно: вам ходить запрещено!'
sendServer('3.10')
elif p == '4.4.1':
result = 'Велосипедная дорожка. Обгоняй Максим Серёжку! Вам никто не
помешает - этот знак все дети знают.'
sendServer('4.4.1')
elif p == '6.6':
result = 'С тротуара, вниз ведёт, под дорогу длинный вход. Нет ни двери,
ни вороот - то подземный переход'
sendServer('6.6')
elif p == '5.16':
result = 'Если ты собрался с другом, в зоопарк или в кино, подружиться
с этим знаком, вам придётся всё равно. Он домчит вас быстро, ловко, знак
автобусная остановка.'
sendServer('5.16')
elif p == '5.21':
result = 'Футбол - хорошая игра! Пусть каждый тренируется! На стадионах, во
дворах, но только не на улицах.'
sendServer('5.21')
elif p == 'ostzapr':
69
result = 'Остановка запрещена'
elif p == '4.5.1':
result = 'По пешеходной дорожке, шагают только ножки. Лишь в коляске,
малышам, можно ездить не спеша.'
sendServer('4.5.1')
elif p == '5.20':
result = 'Искусственная неровность или лежачий полицейский, этот знак
обозначает границы искусственной неровности, предназначенной для того, чтобы
заставить водителей понизить скорость'
sendServer('5.20')
elif p == '5.17':
result = 'В этом месте, пешеход, терпеливо транспорт ждёт, он пешком устал
шагать, хочет пассажиром стать'
sendServer('5.17')
elif p == '1.23':
result = 'Осторожно дети. Этот знак часто ставят возле школ для того, чтобы
водители снижали скорость и повысили внимание.'
sendServer('1.23')
elif p == '1.17':
result = ' Знак Искусственная неровность: Говорит вам знак тревожно:Надо
ехать осторожно, Чтобы ваш автомобиль Не пришлось сдавать в утиль! '
sendServer('1.17')
elif p == '1.22':
result = ' Знак Искусственная неровность: Чтоб водитель знал заранее –Знак
его предупреждает.Вдвое обостри внимание –Пешеход не пострадает. '
sendServer('1.22')
elif p == '3.2':
result = ' Знак Движение запрещено: Этот знак ну очень строгий, Коль стоит
он на дороге. Говорит он нам: Друзья,Ездить здесь совсем нельзя!'
sendServer('3.2')
elif p == '3.1':
result = ' Знак Въезд запрещён: Знак водителей стращает, Въезд машинам
запрещает! Не пытайтесь сгоряча Ехать мимо кирпича!'
sendServer('3.1')
elif p == '2.5':
result = ' Знак Движение без остановки запрещено: Ты, шофер, не торопись,
Видишь знак, остановись! Прежде чем продолжить путь, Осмотреться не забудь.'
sendServer('2.5')
elif p == '6.4':
result = ' Знак Техобслуживание: Ай-ай-ай! Какая жалость! Что-то вдруг у нас
сломалось. Знак нам этот говорит: Здесь машинный Айболит!'
sendServer('6.4')
elif p == '4.3':
result = ' Знак Круговое движение: Отчего бы это вдруг Стрелки дружно
встали в круг? И машины друг за другом Мчатся весело по кругу. Что такое, В самом
деле,Словно мы на карусели! Мы на площади с тобой, Здесь дороги нет прямой.'
sendServer('4.3')
elif p == '3.24':
70
result = 'Знак Ограничение максимальной скорости. Сообщает знак
бесстрастно: Ехать здесь быстрей опасно! Так что будьте вы добры Снизить
скорость до поры!'
sendServer('3.24')
elif p == '7.12':
result = 'Знак Пост дорожно-патрульной службы. Тот, что слишком быстро
мчится, Знака этого боится. А кто правила блюдет, Тот поддержку в нем найдет. '
sendServer('7.12')
elif p == '1.18':
result = 'Знак Выброс гравия. Предупреждает водителя о том, что он
подъезжает к участку дороги, где возможен выброс гравия из-под колес впереди
следующих транспортных средств. Этот знак очень часто устанавливают при
проведении на дороге ремонтных работ.'
sendServer('1.18')
elif p == '7.2':
result = 'Знак Больница: Если нужно вам лечиться, Знак подскажет, где
больница. Сто серьезных докторов Там вам скажут: Будь здоров!'
sendServer ('7.2')
elif p == '7.11':
result = 'Знак Место отдыха: Долго ехал ты в пути И устал в дороге. Здесь,
водитель, тормози, Отдохни немного.'
sendServer ('7.11')
elif p == '7.9':
result = 'Знак Гостиница или мотель: Если долгим был твой путь, Надо лечь и
отдохнуть. Этот знак нам говорит: Здесь гостиница стоит!'
sendServer ('7.9')
elif p == '7.7':
result = 'Знак Пункт питания: Коли вам нужна еда, То пожалуйте сюда. Эй,
шофер, внимание! Скоро пункт питания!'
sendServer ('7.7’)
elif p == '5.1':
result = 'Знак Автомагистраль: С ветерком и без печали Мчимся мы по
магистрали. Там, где этот знак стоит, Путь ничто не преградит!'
sendServer ('5.1')
elif p == '5.18':
result = 'Знак Место остановки такси: В этом месте пешеход Терпеливо
транспорт ждет. Он пешком устал шагать, Хочет пассажиром стать.'
sendServer ('5.18')
elif p == '4.2.1':
result = 'Знак Объезд препятствия справа: Говорит знак: Здесь преграда! И ее
объехать надо! Хочешь слева, хочешь справа. Вот такая вот забава!'
sendServer ('4.2.1')
elif p == '3.9':
result = 'Знак Движение на велосипедах запрещено: Строго знак на всех
глядит, Он нам строго запретит Ехать на велосипедах И их родичах – мопедах.'
sendServer ('3.9')
elif p == '3.3':
result = 'Знак Движение механических транспортных средств запрещено:
71
Если едешь просто так, То тебя не пустит знак. Запрещает он движенье Без особых
разрешений.'
sendServer ('3.3')
elif p == '4.1.4':
result = 'Знак Движение направо: Тем, кто повернут направо, Знак
зарукоплещет: Браво! Ну, а кто не повернет, Тех гаишник штрафанет.'
sendServer ('4.1.4')
elif p == '4.1.1':
result = 'Знак Движение прямо: Говорит нам знак упрямо: Поезжайте только
прямо!» Но себе не навредим, Если задний ход дадим.'
sendServer ('4.1.1')
elif p == '4.1.2':
result = 'Знак Движение прямо и направо: За дорогою следи — Отвлекла
реклама. Указатель впереди – Вправо или прямо.'
sendServer ('4.1.2')
elif p == '1.12':
result = 'Знак опасный поворот: Этот знак тревогу бьет – Вот опасный
поворот! Ехать здесь, конечно, можно, Только очень осторожно – Никого не
обгонять, Пассажиров не менять.'
sendServer ('1.12')
elif p == '2.1':
result = 'Знак Главная дорога: По дороге едешь главной. Порулишь сегодня
славно. Всех становишься главней, Когда едешь ты по ней.'
sendServer ('2.1')
elif p == '2.2':
result = 'Знак Конец главной дороги: Ехал раньше, как король, Но твоя
сменилась роль. Говорит знак этот строго: Уступай теперь дорогу!'
sendServer ('2.2')
elif p == '2.4':
result = 'Знак Уступи дорогу: Если видишь этот знак, Знай, что он не просто
так. Чтобы не было проблем, Уступи дорогу всем!'
sendServer ('2.4')
elif p == '1.27':
result = 'Знак Дикие животные: Бродят здесь посредь дороги: Лоси, волки,
носороги. Ты, водитель, не спеши, Пусть сперва пройдут ежи!'
sendServer ('1.27')
elif p == '1.26':
result = 'Знак Перегон скота: Сбавьте скорость, а иначе Врежетесь в бифштекс
ходячий. Ведь корова и коза Не нажмут на тормоза.'
sendServer ('1.26')
elif p == '7.3':
result = 'Знак Автозаправочная станция: Не доедешь без бензина До кафе и
магазина. Этот знак вам скажет звонко: Рядышком бензоколонка!'
sendServer ('7.3')
elif p == '1.11.1':
result = 'Знак Опасный поворот: Этот знак тревогу бьет – Вот опасный
поворот! Ехать здесь, конечно, можно, Только очень осторожно – Никого не
обгонять, Пассажиров не менять.'
72
sendServer ('1.11.1')
elif p == '1.8':
result = 'Знак Светофор: Должен каждый знать шофер, Что главней всех
светофор: Если смотрит красным глазом, Останавливайся сразу. Если вспыхнет
желтый глаз, Жди, он сменится сейчас. А зеленый глаз зажжет – Смело поезжай
вперед!'
sendServer ('1.8')
elif p == '5.3':
result = 'Знак Движение легковых автомобилей: Этот знак рекомендательный
– Он не строгий, но влиятельный. Если вам рекомендуют, Это точно не впустую.
Знак увидел — соблюдай, Закон дороги уважай.'
sendServer ('5.3')
elif p == '3.26':
result = 'Знак Подача звукового сигнала запрещена: Тишина, покой кругом,
Спальный тут микрорайон. Знак висит – гудеть нельзя, Отдыхает двор, друзья. Не
труби, спокойно едь, Можно только тихо петь.'
sendServer ('3.26')
elif p == '3.18.1':
result = 'Знак Поворот запрещен: Ты шофер, не пропусти Знак дорожный на
пути Поворот он запрещает И свернуть не разрешает.'
sendServer ('3.18.1')
elif p == '3.28':
result = 'Знак Стоянка запрещена: Тормозить здесь можно смело, Но нельзя
стоять без дела. Пассажиров ты сажай И скорее уезжай!'
sendServer ('3.28')
elif p == '7.1':
result = 'Знак Пункт первой медицинской помощи: Если кто сломает ногу,
Здесь врачи всегда помогут. Помощь первую окажут, Где лечиться дальше, скажут.'
sendServer ('7.1')
elif p == '7.10':
result = 'Знак Кемпинг: Любишь отдых на природе, Не на даче в огороде? Этот
знак расскажет кратко, Где тебе разбить палатку.'
sendServer ('7.10')
elif p == '1.28':
result = 'Знак Падение камней: Вот дорога, ты на ней Попадешь под град
камней. Здесь обвал всегда возможен, Будь предельно осторожен!'
sendServer ('1.28')
elif p == '7.8':
result = 'Знак Питьевая вода: Может приключиться с каждым, Что в дороге
мучит жажда. Там, где этот знак, всегда Ждет вас чистая вода.'
sendServer ('7.8')
elif p == '1.2':
result = 'Знак Железнодорожный переезд: Не один здесь знак, а много: Здесь
железная дорога! Рельсы, шпалы и пути – С электричкой не шути.'
sendServer ('1.2')
elif p == '1.1':
result = 'Знак Железнодорожный переезд со шлагбаумом: Вот так знак! Глазам
не верю: Для чего здесь батарея? Помогает ли движенью Паровое отопленье?!
73
Может быть, зимою вьюжной Здесь шоферам греться нужно? Почему же в летний
зной Знак не сняли с мостовой? Оказалось, этот знак Говорит шоферу так: Здесь
шлагбаум — переезд. Подожди — пройдет экспресс.'
sendServer ('1.1')
elif p == '1.16':
result = 'Знак Неровная дорога: Неровная дорога Подбросила немного.
Хорошо, что знак стоит – Тут шофер притормозит. Представляете, что будет, Кто
притормозить забудет.'
sendServer ('1.16')
elif p == '7.17':
result = 'Знак Бассейн или пляж: Знак у речки и пруда Говорит: Скорей сюда!
Это место для купанья, Для нырянья и плесканья!'
sendServer ('7.17')
elif p == '6.7':
result = 'Знак Надземный пешеходный переход: Этот знак ужасно прост – Он
через дорогу мост. По нему идут пешком, А под ним мчат с ветерком.'
sendServer ('6.7')
elif p == '1.15':
result = 'Знак Скользкая дорога: Говорит знак этот строго: Очень скользкая
дорога. Ты с дорогой не шути, Руль напрасно не крути!'
sendServer ('1.15')
elif p == '3.27':
result = 'Знак Остановка запрещена: Здесь машину не грузи, Не паркуй, не
тормози. Этот знак всем говорит: Тот не прав, кто здесь стоит!'
sendServer ('3.27')
elif p == '1.18':
result = 'Знак Остановка запрещена: Здесь машину не грузи, Не паркуй, не
тормози. Этот знак всем говорит: Тот не прав, кто здесь стоит!'
sendServer ('1.18')
elif p == '7.6':
result = 'Знак Телефон: Срочно надо позвонить. Посмотрите, знак висит. Он
поможет, знает он, Как найти вам телефон.'
sendServer ('7.6')
elif p == '1.10':
result = 'Знак Выезд на набережную: Эй, водитель, не гони, И на этот знак
взгляни, А не то наверняка Съедешь в воду с бережка.'
sendServer ('1.10')
elif p == '1.9':
result = 'Знак Разводной мост: Знак предупреждает: Ой! Впереди мост
разводной! Надо ехать осторожно, Ведь свалиться в речку можно!'
sendServer ('1.9')
elif p == '1.25':
result = 'Знак Дорожные работы: Знак «Дорожные работы». Чинит здесь
дорогу кто-то. Скорость сбавить нужно будет, Там ведь на дороге люди.'
sendServer ('1.25')
elif p == '2.7':
result = 'Знак Преимущество перед встречным движением: Хоть дорога и узка,
Цель твоя, шофер, близка. Знак кричит: Не надо грусти! Встречные тебя пропустят!'
74
sendServer ('2.7')
elif p == '2.6':
result = 'Знак Преимущество встречного движения: Слишком узкая дорога,
Так что потеснись немного. Знак кричит: Уйди с пути! Встречный транспорт
пропусти!'
sendServer ('2.6')
elif p == '7.18':
result = 'Знак Туалет: Даст в дороге знак совет, Где найти вам туалет. Коль в
пути воды напиться, Он вам точно пригодится.'
sendServer ('7.18')
elif p == '1.31':
result = 'Знак Тоннель: Знак гласит, что еле-еле Виден свет в конце туннеля.
На педаль не налегай, Лучше фары зажигай!'
sendServer ('1.31')
elif p == '3.20':
result = 'Знак Обгон запрещен: Знак любителей обгона Объявляет вне закона.
В этом месте, сразу ясно, Обгонять других опасно!'
sendServer ('3.20')
elif p == '2.3.1':
result = 'Знак Пересечение со второстепенной дорогой: Вам дорог пересеченье
Не доставит огорченья. Коль не нужно вам свернуть, Впереди уступят путь.'
sendServer ('2.3.1')
elif p == '1.30':
result = 'Знак Низко летящие самолеты: Сообщает знак о том, Что вблизи
аэродром. Коль услышишь шум ужасный, Знай, что это не опасно.'
sendServer ('1.30')
elif p == '3.7':
result = 'Знак Движение с прицепом запрещено: Грузовик с прицепом знак
Остановит только так, И с прицепом трактор тоже, А вот легковой не сможет.'
sendServer ('3.7')
elif p == '3.14':
result = 'Знак Ограничение ширины: Коль машина широка, Для ее наверняка
Запретит знак этот въезд И в тоннель, и в переезд.'
sendServer ('3.14')
elif p == '3.15':
result = 'Знак Ограничение длины: Длинному автомобилю Знаком ехать
запретили. Там, где он не развернется, Остальным страдать придется.'
sendServer ('3.15')
elif p == '3.13':
result = 'Знак Ограничение высоты: Если у машины рост, Выше, чем тоннель
иль мост, Знак напустит строгий вид – Въезд туда ей запретит.'
sendServer ('3.13')
elif p == '7.20':
result = 'Знак Ограничение высоты: Если у машины рост, Выше, чем тоннель
иль мост, Знак напустит строгий вид – Въезд туда ей запретит.'
sendServer ('7.20')
elif p == '1.21':
result = 'Знак Двустороннее движение: Знак взывает к уваженью К
75
двухстороннему движенью. Чтобы не приехать в ад, Перестройтесь в правый ряд.'
sendServer ('1.21')
elif p == '1.14':
result = 'Знак крутой подъём предупреждает о том, что впереди крутой
подъём.'
sendServer ('1.14')
elif p == '1.32':
result = 'Знак Затор: Говорит знак: Эй! Шофер! Впереди большой затор! Не
въезжай на перекресток, Если места там с наперсток!'
sendServer ('1.32')
elif p == '1.33':
result = 'Знак Прочие опасности: Знак, хоть и не вносит ясность, Говорит: Вас
ждет опасность! Ты водитель ведь не лось, Знак увидел, скорость сбрось!'
sendServer ('1.33')
elif p == '2.3.5':
result = 'Знак Примыкание второстепенной дорогой: предупреждает водителя
о том, что он приближается к перекрестку по главной дороге, а дорога слева является
второстепенной.'
sendServer ('2.3.5')
elif p == '1.5':
result = 'Знак Пересечение с трамвайной линией: Эй, водитель, не зевай!
Ходит впереди трамвай. Ты притормози немножко, Уступи ему дорожку.'
sendServer ('1.5')
elif p == '1.13':
result = 'Знак крутой спуск предупреждает о том, что впереди крутой спуск.'
sendServer ('1.13')
elif p == '1.7':
result = 'Знак Пересечение с круговым движением: Этот знак понять нам
просто – Скоро круглый перекресток. Так что придержи коней, Тот, кто в круге, тот
главней.'
sendServer ('1.7')
elif p == '3.4':
result = 'Знак Движение грузовых автомобилей запрещено: Вес в три с
половиной тонны Знак поставил вне закона. Если легче – проезжай, Тяжелей – назад
езжай.'
sendServer ('3.4')
elif p == '3.5':
result = 'Знак Движение мотоциклов запрещено: Знай, водитель, этот знак
Здесь стоит не просто так. Если ты не почтальон И не житель местный, Скажет
мотоциклу он: Ехать неуместно!'
sendServer ('3.5')
elif p == '3.6':
result = 'Знак Движение тракторов запрещено: Этот знак для тракторов
Неприятен будь здоров. Он без пропуска сюда Их не пустит никогда.'
sendServer ('3.6')
elif p == '3.8':
result = 'Знак Движение гужевых повозок запрещено: Только тех, кто здесь
живет, Не отправит знак в обход. Остальным повозкам он Говорит: Въезд запрещен!'
76
sendServer ('3.8')
elif p == '3.19':
result = 'Знак Разворот запрещен: Знак маневр нам запрещает, Грозно
штрафами стращает, Но не действует зато На маршрутные авто.'
sendServer ('3.19')
elif p == '1.24':
result = 'Знак Пересечение с велосипедной дорожкой: Впереди велосипеды
Поперек дороги едут. Вы главнее их, но всё же Знайте, их давить негоже.'
sendServer ('1.24')
elif p == '1.29':
result = 'Знак Боковой ветер: предупреждает, что впереди участок дороги, где
возможен сильный боковой ветер. Пренебрегать этим знаком не стоит, потому что
ветер может буквально сдуть автомобиль с дороги!'
sendServer ('1.29')
elif p == '1.18':
result = 'Знак Выброс гравия: предупреждает, что впереди участок дороги, на
котором возможен выброс гравия (щебня) из под колес автомобилей. Так что
необходимо сбросить скорость и увеличить дистанцию и боковой интервал, иначе
стекла и фары вашего авто могут пострадать от камней.'
sendServer ('1.18')
elif p == '1.19':
result = 'Знак Опасная обочина: предупреждает водителя о том, что съезд на
обочину на данном участке дороги может быть опасным.'
sendServer ('1.19')
elif p == '7.20':
result = 'Знак Огнетушитель: призван информировать участников движения о
месте расположения одноименного объекта, а также о расстоянии до него и
направлении движения к нему.'
sendServer ('7.20')
else:
result = 'Хм, этого я пока еще не знаю'
sendServer(0)
self.logger.info( result )
if self.notSay == True:
self.notSay = False
self.onStopped(result) #~ activate output of the box
pass
def onInput_onStop(self):
self.onUnload() #~ it is recommended to call onUnload of this box in a onStop
method, as the code written in onUnload is used to stop the box as well
pass
77
Приложение Б
(обязательное)
Скрипт веб-приложения «Обучение знакам дорожного движения»
<html>
<head>
<script src=../ajax.js></script>
<?php
$fp = fopen('../data/road_signs/check.txt', 'w+');
if ($fp){
$test = fwrite($fp, '0'); // Запись в файл
if ($test) {
//
echo 'Данные в файл успешно занесены.';
} else {
echo 'Ошибка при записи в файл.';
}
fclose($fp); //Закрытие файла
} else {
echo 'Не удалось открыть файл';
}
fclose($fp);
?>
<script>
var current_sign = 0;
function onLoad() {
if (req.status != 200) {
alert( req.status + ': ' + req.statusText );
alert('onLoad');
} else {
document.getElementById("content").innerHTML = req.responseText;
}
}
function onLoadCheck() {
if (req.status != 200) {
alert( req.status + ': ' + req.statusText );
alert('onLoadCheck');
} else {
if (req.responseText != current_sign) {
current_sign = req.responseText;
ajax('get_sign.php?sign=' + current_sign, 'GET', '', onLoad);
}
}
}
function checkNAO() {
ajax('check_nao.php', 'GET', '', onLoadCheck);
}
window.setInterval(checkNAO, 333);
</script>
<link rel=stylesheet type=text/css href=style.css>
78
<title>NAO Знаки дорожного движения</title>
</head>
<body>
<div id= "h1"> Знаки дорожного движения </div>
<h1></h1>
<div id="content"></div>
<div id ="start2" style="position: fixed; bottom: 50px; left: 100px;">
<a
href='../beh_control/set_beh.php?beh=Знаки_ПДД'><img
src='../data/road_signs/buttons/start_but.png' width="150"></a>
</div>
<div id ="stop2" style="position: fixed; bottom: 50px; left: 600px;">
<a
href='../beh_control/set_beh.php?beh=STOP'><img
src='../data/road_signs/buttons/stop_but.png' width="150"></a>
</div>
<div id ="back2" style="position: fixed; bottom: 50px; right: 100px;">
<a
href='../beh_control/set_beh.php?beh=STOP'
onclick="window.open('/menu/index.html')"><img src='../data/road_signs/buttons/back_but.png'
width="150"></a>
</div>
<div style="position: fixed; top: 30px; right: 30px;"><img src='/pdd/panel/img.jpg'
width="400">
</div>
</body>
</html>
79
Приложение В
(обязательное)
Скрипт приложения «Зарядка»
class MyClass(GeneratedClass):
def __init__(self):
GeneratedClass.__init__(self)
pass
def onLoad(self):
self.notSay = True
pass
def onUnload(self):
pass
def onInput_onStart(self, p):
#POLYNTSEV
def sendSign(sign_num):
import httplib
url = '/jerks/panel/action_page.php?jerks=' + sign_num
conn = httplib.HTTPConnection('nao.home', 80)
conn.connect()
conn.request('GET', url)
r2 = conn.getresponse()
conn.close()
if r2.status != 302:
print r2.status, r2.reason
return 0
else:
return 1
#POLYNTSEV
if (p):
result = 'Fish'
sendSign('J2');
else:
result = 'Попробуй еще раз'
sendSign(0)
self.logger.info( result )
if self.notSay == True:
self.notSay = False
self.onStopped(result) #~ activate output of the box
pass
def onInput_onStop(self):
self.onUnload() #~ it is recommended to call onUnload of this box in a onStop method, as
the code written in onUnload is used to stop the box as well
pass
80
Приложение Г
(обязательное)
Социальный робот на выставке RoboCup Russia Open 2019
Рисунок Г.1 – Социальный робот на выставке RoboCup Russia Open 2019 с
ребёнком дошкольного возраста
Рисунок Г.2 – Социальный робот на выставке RoboCup Russia Open 2019
81
Приложение Д
(обязательное)
Социальный робот-помощник на тестировании
в МАОУ СОШ №56
82
Приложение Е
(обязательное)
Робот NAO на китайской промышленной ярмарке China International
Industry Fair в г. Шанхай
83
Приложение Ж
(обязательное)
Испытания в Кисловской СОШ
84
Приложение З
(обязательное)
Демонстрация робота NAO на выставке «Открытые инновации 2019», г.
Москва
86
Приложение И
(справочное)
Публикации за период обучения
100
Приложение К
(справочное)
Дипломы за период обучения
Отзывы:
Авторизуйтесь, чтобы оставить отзыв