Разработка коллаборативного автономного робота экскурсовода

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

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

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

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

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

1

Федеральное государственное автономное образовательное учреждение высшего образования

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»

Выпускная квалификационная работа

Разработка коллаборативного автономного робота экскурсовода

Выполнила:

В.А. Арцыбашева

Москва 2019

Аннотация

Целью данной выпускной квалификационной работы является разработка прототипа коллаборативного автономного робота экскурсовода (далее Робот) для применения в обучении.

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

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

Объем отчета по выпускной квалификационной работе, не включая приложения составляет - 62 страницы. Количество таблиц в работе - 2, иллюстраций - 13, использованных источников - 27.

The purpose of this final qualifying work is a prototype of a collaborative autonomous robot guide (hereinafter referred to as the Robot) for use in educational purposes.

To achieve this goal, the development process is divided into two main parts: the server part and the robotic part. The server part serves as the interface of interaction between the operator and the robotic part. On the server side, the operator creates a task that is added to the queue for execution, after which it is transferred to the robotized part for direct execution. The robot starts its movement from the current location to the destination, avoiding collisions with static and dynamic objects.

As part of the work, an analysis of existing modern analogues and their main functional characteristics was carried out, which revealed the main advantages and disadvantages of existing solutions. Based on the analysis, a prototype of the robot was designed and assembled.

The volume of the report on final qualifying work, not including the annex, is - 62 pages. The number of tables in the work - 2, illustrations - 13, sources of literature - 27.

Содержание

Введение

1. Обзор и анализ предметной области

1.1 Анализ существующих роботизированных систем

1.2 Анализ примеров глобального позиционирования роботов

1.3 Анализ подходов к проектированию модуля объезда препятствий

1.4 Анализ алгоритмов объезда препятствий

2. Разработка прототипа робототехнической платформы

2.1 Моделирование корпуса

2.2 Создание корпуса и колесной платформы

2.3 Проектирование и подключение электромеханического оборудования

3. Разработка программного обеспечения Робота

3.1 Обоснование выбора элементной базы объекта разработки и языков программирования

3.2 Настройка и подключение плат

3.3 Модуль управления моторами

3.4 Модуль управления ультразвуковыми датчиками

3.5 Модуль построения карты

3.6 Модуль управления роботом

3.7 Модуль объезда препятствий с построением карты локальных препятствий

3.8 Модуль взаимодействия с посетителем

3.9 Модуль распознавания лиц

4. Тестирование аппаратно-программных модулей и анализ полученных результатов

4.1 Тестирование модуля управления ультразвуковыми датчиками

4.2 Тестирование модуля управления моторами

4.3 Тестирование модуля построения карты

4.4 Тестирование модуля объезда препятствий

4.5 Тестирование модуля распознавания лиц

4.6 Тестирование взаимодействия всех компонентов Робота

Заключение

Список литературы

Введение

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

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

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

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

Для реализации поставленной цели потребовалось выполнить следующие задачи:

1. Обзор существующих роботизированных систем, их изучение и сравнение.

2. Подбор компонентов, разработка конструкции роботизированного устройства и его сборка.

3. Разработка программного обеспечения на языке высокого уровня и на HDL языке Verilog для управления роботом.

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

5. Создание серверной части и Web_интерфейса модуля построения карты и управления роботом;

6. Реализация алгоритмов распознавания образов:

a. потоковой передачи видео с веб-камеры на сервер для обработки;

b. синтеза речи и взаимодействия с посетителями.

7. Тестирование совместной работы аппаратно-программных частей разработанного устройства и анализ полученных результатов.

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

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

1. Обзор и анализ предметной области

1.1 Анализ существующих роботизированных систем

Современные тенденции в интеграции роботизированных систем в сферу услуг направлены на создание роботов разных типов:

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

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

3. Коллаборативные - автоматические роботы, которые могут работать совместно с человеком для создания или производства различных продуктов и услуг.

В одной из передовых стран по разработке и внедрению роботизированных систем - Японии, несколько лет назад открылся отель, где большая часть персонала является роботами [5]. Те же немногие живые люди, которые присутствуют там, постепенно вытесняются новыми, более совершенными версиями роботов. Основным преимуществом данного отеля стали: его круглосуточная работа без выходных и квалификация роботизированного персонала. На ресепшене постояльцев встречают роботы, которые в рамках своей программы свободно говорят на четырех языках. Используемый набор языков при необходимости легко расширяется обновлением программного обеспечения в короткие сроки.

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

В тоже время в лондонской галерее в Tate и в музее Daegu National Museum в Южной Корее коллаборативные роботы собирают группы экскурсантов и проводят их по постоянной экспозиции [7]. Наиболее актуальными представителями современных роботизированных систем в области проведения экскурсий являются: Sonar Qui, Rackham и WOZ.

Робот Sonar Qui может быть использован в закрытых помещениях для проведения мероприятий. Для перемещения внутри предоставленного пространства робот использует установленный сонар и технологию sonar quick mapping [8]. С помощью сонаров Sonar Qui объезжает препятствия, а технология sonar quick mapping помогает составить карту помещения. На основе полученной карты он может строить маршрут из одной точки в другую. При этом в платформе присутствует распознавание лиц для лучшего взаимодействия с человеком.

Робот Rackham [2] в настоящее время является третьим по счету прототипом данной линейки разработок. В текущей итерации он умеет взаимодействовать с человеком, основываясь на технологии распознавания лиц. Также для перемещения ему загружают карту перед запуском в новом помещении.

Робот WOZ [9] используется в торговых центрах. Он не способен самостоятельно перемещаться между различными точками здания. Доступное для самостоятельных действий пространство представляет собой квадрат примерно 2х2 метра и ограничено специальными метками. Для взаимодействия с человеком робот также, как и предыдущие, использует распознавание лиц, однако при работе его постоянно контролирует оператор, во избежание ложных срабатываний.

Таблица Сравнительный анализ прототипов

Функционал

Название роботизированной платформы

Sonar Qui

Rackham

WOZ

Объезд препятствий

Да

Да

Нет

Предзагрузка карты

Нет

Да

Нет

Управление оператором

Нет

Нет

Да

Распознавание лиц

Да

Да

Да

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

1.2 Анализ примеров глобального позиционирования роботов

Существует много подходов для реализации алгоритмов планирования маршрута перемещения робота между двумя точками, например, Yu-Cheol Lee и др. [8] фокусируется на построении карты помещения для мобильного автономного робота с использованием сонара. Излучатель генерирует сигнал, определенной частоты. После приема отраженного сигнала вычисляется время, за которое сигнал проделал путь до препятствия и обратно. Робот самостоятельно перемещается по новому помещению и составляет карту с помощью алгоритма «Сell conjunction filter» (CCF). Фильтр CCF предусматривает возможность появления непостоянных движущихся объектов во время сканирования, которые вносят искажения в построенную карту. Алгоритм ССF использует Байесовскую теорию условной вероятности для обобщения полученных значений и снижает влияние незначительных искажений при построении карты. Данный подход к построению карты имеет ряд недостатков: робот не может достичь некоторых частей помещения при сложной планировке; сканирование возможно при минимальном количестве людей в помещении; требуется время для полного сканирования нового помещения перед началом работы. Данный алгоритм построения карты помещения возможно применять для сбора дополнительной информации о текущем состоянии помещения для уменьшения вероятности столкновения с каким-либо объектом.

В работе [10] описывается роботизированная колесная платформа, которая осуществляет перемещение по карте, построенной с помощью алгоритма первичного знакомства с помещением. С помощью дальномеров робот обходит незнакомое помещение и формирует карту препятствий. Карта сохраняется в виде отдельных файлов, каждый из которых хранит в себе информацию определенной части помещения заданного размера (25 см^2). Алгоритм построения карты, имеет ряд недостатков, как и в работе [3]. Сама же система хранения карты в виде небольших участков является удачным решением. Использование данного подхода позволяет осуществлять глобальное позиционирование робота в помещении любого размера, не подгружая в оперативную память информацию обо всем окружении за один раз.

Aurelie Clodic и другие [2] описывают навигационные методы, примененные в интерактивном роботе гиде. В отличие от рассмотренных примеров выше, авторы предлагают использовать для перемещения робота по помещению заранее подготовленную карту. На карте предлагается использовать систему обозначений контрольных точек. С помощью такого подхода, реализованного в специальном модуле, можно дополнительно уточнять текущее местоположение робота, чтобы нивелировать погрешность датчиков самого робота. Эти модули локального позиционирования, основанные на алгоритме SLAM. Все это объединяется в единую систему, которая управляет перемещением робота по заданному маршруту. Авторами статьи введено понятие «целевых зон», информация о которых передается в алгоритм VSTP (Very Simple Trajectory Planner), который выполняет построение маршрута от одной целевой зоны к другой. Траектория базируется на основе оптимизированного алгебраического графа видимости с хеш-таблицами, что позволяет на базовом уровне управлять перемещениями робота. Тем не менее данный подход не предоставляет возможности для более тонкого управления роботом, что может привести к переполнению карты «целевыми зонами» и снижению скорости построения маршрута.

Авторы статьи [10] описывают модуль построения маршрута с помощью алгоритма Ли [11]. Данный подход чаще всего применяется для поиска кратчайшего пути на планарном графе. В дополнение к алгоритму поиска маршрута в графе используется выбор окрестности Мура вокруг точки на карте, что позволяет реализовать дополнительную проверку на ширину пути. Использование данной модификации алгоритма позволило сделать размер клеток на карте более пластичным и независимым от размеров самого робота.

1.3 Анализ подходов к проектированию модуля объезда препятствий

Кроме задач позиционирования необходимо так же необходим отдельный модуль объезда динамических препятствий. Так в работе [12] представлен робот-гид, который использует технику обработки Kinect. Этот метод позволяет следить за туристами, чтобы избежать возникновения неожиданных препятствий. Робот предоставляет информацию о экспонатах, как только получает от посетителя команду. Если человек находится на расстоянии не менее 1,2 метра от Kinect, робот останавливается и едет на точку подзарядки. Недостатком данного метода является то, что датчик Kinect слишком дорог.

Развитием данного подхода является альтернативный способ навигации в пространстве, предложенный в работе [13]. Авторы предлагают совместить приложение для смартфона и робототехническую платформу. Приложение запрограммировано на распознавание QR-кодов и формы круга, которое дешевле, чем теги Kinect и RFID. Эти предметы прикреплены к стенам в комнатах на уровне датчиков робота, чтобы облегчить его позиционирование. Кроме того, робот-гид оснащен четырьмя ультразвуковыми датчиками дальности, которые запрограммированы на измерение расстояния до препятствия, предотвращая столкновения с объектами. Использование QR-кода для локализации в помещении может иметь некоторые недостатки, которые приводят к некорректной работе программы. Например, скорость распознавания считывателя QR-кода зависит от скорости робота-гида. Если скорость выше, чем должна быть, QR-код может быть пропущен.

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

Идеи работы [14] получили развитие в работе [15], где представлено более глубокое понимание проблемы навигации в динамических средах за счет реализации модуля предотвращения столкновений. Существуют два основных ограничения при движении в помещении: неспособность справляться с невидимыми препятствиями и неспособность учитывать динамику движения не статичных объектов. Эти проблемы могут быть решены в таких локациях, как музеи. Авторы предлагают использовать метод, основанный на алгоритме динамического окна (µDWA). Основная идея данного алгоритма состоит в том, что осуществляется выбор управления в пространстве скоростей робота. Это пространство формируется из поступательных и вращательных скоростей. Следовательно, проблема предотвращения столкновения может быть устранена путем выбора подходящих скоростей для движения и вращения. К сожалению, этот алгоритм подходит не для всех прототипов и зависит от оборудования, которое используется в разработке.

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

1.4 Анализ алгоритмов объезда препятствий

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

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

Методики и технологии для решения поставленной задачи получили название SLAM (Simultaneous Localization And Mapping) [16]. На данный момент существует достаточно большое количество реализаций и подходов, опирающихся на аппаратные и программные возможности платформ. Например, DP-SLAM и Grid Maps.

DP-SLAM использует показания лазерного дальномера и фильтр частиц для хранения гипотез о положении робота и конфигурации окружающей его среды [17]. Фильтр частиц (последовательный метод Монте-Карло) -- рекурсивный алгоритм для численного решения проблем оценивания (фильтрации, сглаживания), особенно для нелинейных случаев. Метод заключается в том, что в фильтре поддерживается множество гипотез о текущем положении робота. В начальный момент генерируется случайный набор гипотез. В ходе работы алгоритма некоторые из них будут отсеиваться из-за несоответствия вторичным признакам системы, которые могут быть измерены более точно. После завершения цикла сканирования выбирается наиболее вероятная из оставшихся в фильтре гипотез - она будет искомой картой, на которой к тому же будет отмечена траектория движения исполнителя.

Алгоритм Grid Maps относится к семейству компьютерных алгоритмов SLAM. Основная идея алгоритма Grid Maps заключается в представление выделенного пространства в виде равномерно распределенного поля двоичных величин, каждая из которых представляет наличие препятствия в этом месте пространстве: 0 - нет препятствия, 1 - есть препятствие. Данный подход к решению задачи передвижения в помещении будет не так чувствителен к погрешностям измерений, как DP-SLAM, и довольно прост в реализации.

На базе вышеприведенного анализа для реализации модуля объезда препятствий был выбран алгоритм VLSI, который включает в себя основные идеи DP-SLAM и Grid Maps [18]. Алгоритм предназначен для исследований пространства и определения ориентиров в изменчивой среде, где геометрия объектов или траектории их движения априори неизвестны. Техника VLSI алгоритма основана на предположении о сетке из G узлов в пространстве исследования, где G определяется с помощью размеров комнаты и размера шага самого роботизированного прототипа. Не все узлы G могут быть доступны: некоторые могут быть заняты статическим или динамическим препятствием. Для того, чтобы робот мог двигаться, предполагается, что существует связанный набор свободных узлов (не занятых статическим или динамическим препятствием), и робот может идентифицировать их на основе показаний датчиков и двигаться от одного такого узла к следующему. Идентифицированные узлы помечаются символом 0, а недоступные для робота - 1. Любой недоступный узел может быть занят статическими либо динамическими препятствиями, или некоторое статическое препятствие, занимающее, например, диагональный узел, может мешать достижению узла. Все это может приводить к возникновению карты, в которой есть либо нет путей между некоторыми узлами.

2. Разработка прототипа робототехнической платформы

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

2.1 Моделирование корпуса

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

В соответствии с этим прототип платформы автономного робота экскурсовода отвечает следующим требованиям:

- размеры платформы - 45х45х77 см (ширина/глубина/высота);

- форма корпуса - параллелепипед со скругленными углами, во избежание травмирования людей;

- диаметр основных колес 125 мм и клиренс, обеспечивающий безопасное прохождения небольших порогов в помещении;

- способность выдерживать значительный вес;

- наличие свободной часть корпуса, отведенной под аккумуляторы для моторов, драйвер двигателя, платы управления и внешнюю периферию;

- возможность дальнейшего развития.

Модель корпуса колесной платформы спроектирована в среде Зд моделирования ADEM в соответствии с вышеперечисленными требованиями (рисунок 1,2). На базе данной колесной платформы стоится верхняя часть корпуса прототипа.

Рисунок 1 – Модель корпуса колесной платформы вид сбоку (а) и вид сверху (б).

Рисунок 2 – Модель корпуса колесной платформы вид спереди (а) и изометрия (б).

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

2.2 Создание корпуса и колесной платформы

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

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

Рисунок 3 – Форма колесной платформа (а) и сама колесная платформа (б).

После полного высыхания корпуса, он снимается с формы и отшлифовывается, после чего красится в темно-синий цвет снаружи и черный внутри.

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

Рисунок 4 – Кардан в разборе (а) и собранный кардан (б).

В центре арок корпуса просверливаются отверстия, куда вставляются оси вращения колес, на которые нанизываются подшипники и закрепляются карданы. После чего конструкции, установленные в корпус, закрепляются к корпусу железными стяжками (рисунок 5а). Затем моторы подсоединяются к карданам и тоже были закрепляются к корпусу стяжками (рисунок 5б). Далее для выравнивания платформы в специально подготовленные углубление подсоединяются мнимые колеса.

Рисунок 5 – Протитотип корпуса с колесами (а) и моторами (б).

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

Рисунок 6 – Корпус колесной платформы с мотажным креплением (а) и платами (б).

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

Рисунок 7 – Верхняя часть корпуса (а) с дополнительной полкой (б).

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

2.3 Проектирование и подключение электромеханического оборудования

Общая схема подключения компонентов роботизированной системы приведена на блок схеме (рисунок 8).

Рисунок 8 – Общая схема подключения электромеханического оборудования.

Рассмотрим подробнее каждый из компонентов роботизированной системы:

1. Плата FPGA.

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

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

В качестве основной платы для реализации роботизированной системы выбрана DE10-Nano компании Terasic. Terasic DE10-Nano представляет собой недорогой комплект, в состав которого входит широкий набор периферийных устройств и интерфейсов для производителей и разработчиков [22]. Расширительные разъемы и интерфейс для подсоединения Arduino подходят для добавления датчиков с цифровыми, последовательными и аналоговыми интерфейсами. К отличительным свойствам комплекта относится процессор Intel Cyclone FPGA, который объединяет в себе систему двухъядерного процессора ARM Cortex-A9 и программируемый массив FPGA на одной интегрированной микросхеме.

Для подключения внешней периферии задействованы расширительные гребни пинов, расположенные на плате. GPIO 0(JP1) для подключения драйверов двигателя и GPIO 1(JP7) для ультразвуковых датчиков по 40 пинов на каждом из них. Где два пина это логический нуль и два логические единицы на 3,3 В и 5 В.

2. Ультразвуковые датчики.

В проекте используются ультразвуковые датчики HC-SR04. Работа выбранного датчика основана на принципе эхолокации. Он испускает звуковые импульсы определенной частоты в пространство и в течение установленного промежутка времени принимает отраженный от препятствия сигнал. По времени задержки между излучением звукового импульса и получением отраженного сигнала определяется расстояние до объекта [23].

Диапазон измерения расстояния дальномера HC-SR04 - до 4 метров с разрешением 0,3 см. Угол наблюдения - 30°, эффективный угол - 15°. Ток потребления в режиме ожидания 2 мА, при работе - 15 мА. Следовательно, принято решение, в передней части корпуса разместить пять ультразвуковых датчиков - три снизу, два сверху. А в остальных частях по три датчика - два снизу, один сверху. Датчики располагаются равноудаленно друг от друга для охвата большей территории вокруг роботизированной платформы.

На ультразвуковом датчике присутствуют четыре пина для подключения: земля, питание на 5 В, порт TRIG и порт ECHO.

Так как для роботизированной платформы нужно 14 датчиков, принято решение с целью обеспечения наилучшего контакта не использовать макетную плату, а спаять шины электропитания: земля и питание (+5 В).

Порты TRIG и ECHO подключаются к плате De10-nano попарно друг за другом, для упрощения обмена данными с платой. Как выявлено, плата De10-nano не воспринимает поступающий сигнал от датчика величиной в 5 В, поэтому порт ECHO датчика подсоединен к плате через резистор сопротивлением 120 Ом, мощностью 0.5 Ватт, обеспечивающий падение напряжения на 1.7 В.

На первоначальном этапе реализации выявлено что, плата De10-nano во время работы программы в случайный момент времени перезагружается, по причине перезагрузки Linux системы. Проанализировано что, Linux обращается к несуществующему участку памяти и после неудачи перезагружается, а следом за собой перезагружает FPGA. Данная проблема решена с помощью поднятия HPS и прописывания логики работы ультразвукового датчика.

3. Драйвер двигателя.

В проекте используются два драйвера двигателя коллекторного мотора BTS7960 большой мощности, по одному на каждый мотор. Драйвер мотора BTS7960 позволяет управлять одним коллекторным двигателем, рассчитанным на напряжение от 5,5 В до 27,5 В и постоянного тока до 10 А, для долговременной работы. С помощью драйвера BTS7960 можно управлять скоростью двигателя, направлением его движения, выполнять торможение и контролировать нагрузку которую испытывает двигатель.

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

1) Клеммы двигателя подключаются к выводам «M+», «M-» драйвера, с которых будут поступать управляющие сигналы.

2) Необходимое напряжение питания двигателя подается на выводы «S+», «S-» драйвера.

3) Напряжение питания логической части подается с платы De10-nano на выводы «Vcc» - 5 В и «GND» драйвера.

4) Выводы драйвера «L_EN» и «R_EN», отвечающие за разрешение работы левого и правого плеча, подключаются к логическому питанию и не участвуют в управлении.

5) Выводы драйвера «L_ PWM» и «R_ PWM», отвечающие за установку потенциала на выходе правого и левого плеча, подключаются к пинам платы De10-nano.

4. Мотор.

В проекте используются два мотора-редуктора серии IG-42GM 01 type, где передаточное число равно 1/24. Напряжение питания данных моторов равно 12 В при продолжительном режиме работы. Крутящий момент данных моторов равен 10 кг*см, а скорость - 325 об/мин. Моторы подключаются к драйверу двигателя с помощью проводов со специальными клеммами на концах.

5. Питание на моторы.

В качестве питания на моторы в проекте используется аккумулятор FB 7.2-12 Alfa (Alarm Force). Рабочее напряжение данного аккумулятора равно 12 В, поэтому он напрямую подключается к драйверу через выключатель, чтобы была возможность прекращения подачи питания на моторы.

6. Cubieboard4

Cubieboard4 - одноплатный компьютер четвертого поколения от фирмы Cubietech Limited [24]. Современная модель построена на базе 8-ми ядерного A15/A7 big.LITTLE процессора Allwinner A80, работающего с частотой 2ГГц и 64-ядерного PowerVR G6230 графического процессора. Cubieboard4 оснащен всеми стандартными интерфейсами и модулями беспроводной связи, такие как: HDMI, VGA, 10M/100M/1G Ethernet, 4 х USB 2.0, 1 х USB 3.0 OTG, аудио выход, вход для микрофона, двух диапазонный Wi-Fi и Bluetooth 4.0, ИК-приемник, слот для micro SD карт. На данной плате есть возможность поднятия Linux системы.

Взаимодействие плат Cubieboard4 и De10-nano происходит посредством Ethernet кабеля.

7. Веб камера.

В качестве веб камеры в проекте используется A4Tech PK-910H. Камера оснащена матрицей на 2 Мп, разрешение видео составляет 1920x1080. Максимальная частота кадров при записи равна 30 в секунду. Присутствует автоматическая фокусировка, обеспечивающая дополнительное удобство при использовании.

Данная веб камера подсоединяются к плате Cubieboard 4 через USB разъем.

8. Микрофон.

В качестве микрофона в проекте используется стерео микрофон Andrea Electronics Array2-SNA SoundMAX SUPERBEAM с разъемом 3,5 мм. Стереоэффект Array2-SNA, создаваемый двумя микрофонами, повышает разборчивость речи говорящего в условиях шумного помещения. Array2-SNA применяться почти с любыми звуковыми картами, имеющими вход стерео микрофона.

Данный микрофон подсоединяется к плате Cubieboard 4 через разъем MIC.

9. Динамики.

В качестве динамиков в проекте используются компьютерные колонки Defender SPK-35. Данные компьютерные колонки питаются от порта USB и не требуют дополнительного блока питания. При этом присутствует возможность управления уровнем громкости воспроизводимого звука с помощью регулятора громкости на кабеле.

Данные динамики подсоединяются к плате Cubieboard4 через разъем EARPHONE.

10. Экран.

В качестве экрана в проекте используется Монитор Dell UltraSharp P2415Q. Благодаря разрешению экрана 3840х2160 возможен просмотр медиафайлов с четким изображением. Профессиональная IPS-матрица со временем отклика 6 мс обеспечивает высококачественную цветопередачу. Широкий угол обзора позволяет смотреть на монитор со стороны, не наблюдая искажений на экране.

Данный экран подсоединяются к плате Cubieboard4 через разъем HDMI.

11. Батарейный блок.

В качестве питания на платы в проекте тоже используется аккумулятор FB 7.2-12 Alfa (Alarm Force). Так как рабочее напряжение данного аккумулятора равно 12 В, а рабочее напряжение плат равно 5 В, он подключается к ним не напрямую. Аккумулятор сначала подключатся к выключателю, чтобы была возможность прекращения подачи питания на платы, после к понижающему преобразователю DC-DC на XL4015, который преобразует входное напряжение в 12 В в выходное напряжение в 5.1 В, и только потом подается на питание плат.

Реализация подключения электромеханического оборудования представлена на рисунке 9.

Рисунок 9 – Итоговый вид подключения электромеханического оборудования.

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

3. Разработка программного обеспечения Робота

3.1 Обоснование выбора элементной базы объекта разработки и языков программирования

Аппаратная процессорная система (HPS) платы Terasic DE10-Nano состоит из центрального процессора, периферийных устройств, интерфейсов, встроенной в микросхему памяти и создана в виде единой микросхемы. Другими словами, аппаратные средства этой системы не могут быть видоизменены, подобно другим процессорам Intel. Действия процессора управляются использующим его программным обеспечением.

Массив FPGA, в свою очередь, является "программируемым" аппаратным обеспечением, работа которого меняется после записи в него программируемого файла, подобно тому, как память меняется после записи данных. Аналогично ОЗУ функциональность массивов FPGA может быть изменена снова и снова.

Фактически, FPGA содержит специальную память, которая управляет аппаратными компоновочными блоками внутри FPGA. Эти компоновочные блоки состоят из таблиц поиска, множителей, встраиваемой памяти, ресурсов маршрутизации, PLL и системы ввода/вывода. Разработчики FPGA могут создавать специальные проекты с использованием описательных аппаратных языков (HDL), таких как Verilog или Verilog HDL. Программное обеспечение Intel Quartus преобразует эти HDL-файлы дизайна в программируемый файл, который конфигурирует компоновочные блоки FPGA для дальнейшей реализации поставленных задач.

Поскольку решение SOC FPGA ALTERA содержит аппаратную процессорную систему на базе ядер ARM Cortex-A9 и современный массив логики (20-28 нм, семейства Cyclone-5/Arria-5/Arria-10 емкостью от 25 до 460), то используется две среды с соблюдением основных маршрутов разработки для процессора и ПЛИС -- это пакет Intel Quartus для ПЛИС и пакет SoC Embedded Command Shell.

Помимо достаточно очевидных преимуществ интеграции аппаратной процессорной системы и ПЛИС, таких как высокая скорость обмена данными до 125 Гбит/с, меньший форм-фактор, потребление, пониженное потребление и упрощенная система питания, решение может привлекать внимание как некая точка входа в освоение новой технологии для специалистов, работающих с АРМ и интересующихся ПЛИС, и наоборот -- работающих с ПЛИС, но интересующихся процессорами АРМ.

Основной идеей Altera является условное разделение поля деятельности разработчика аппаратных средств и программиста. Для реализации данной идеи в процессе проектирования создается механизм перехода от аппаратной разработки в пакете Quartus к разработке ПО через генерацию файлов перехода, которые будут созданы Qsys/Quartus и скомпилированы в SoC EDs.

Для компиляции проекта в среде SoC EDs пишется управляющую программу и makefile на языке программирования C.

Как было отмечено ранее для программирования ПЛИС в основном используют программное обеспечение Intel Quartus, поэтому для проекта было принято решение использовать именно его, а в качестве языка программирования - Verilog.

Verilog - это язык описания аппаратуры, используемый для разработки и моделирования электронных систем [25]. Этот язык (также известный как Verilog HDL) позволяет осуществить проектирование, верификацию и реализацию аналоговых, цифровых и смешанных электронных систем на различных уровнях абстракции.

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

Интересной особенностью Verilog является наличие стандарта PLI (Program Language Interface), который позволяет включать функции, написанные пользователем (например, на С), в код симулятора.

Однако выбранная плата Terasic DE10-Nano отвечает не всем требованиям проекта, а именно в ней отсутствуют встроенный Wi-Fi модуль и модуль для записи и воспроизведения звука. Поэтому была выбрана дополнительная плата Cubieboard4 с соответствующим функционалом.

Для написания основных скриптов в Linux системе был выбран язык программирования Python с включением скомпилированных скриптов на языке С.

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

3.2 Настройка и подключение плат

На начальном этапе на плату De10-nano на HPS-ядро устанавливается Linux. В систему монтируется виртуальная память, которая позволяет настроить FPGA-HPS bridge и HPS-FPG bridge. Для управления памятью (чтением и записи из нее) используется скрипт на языке программирования C с подключенными библиотеками, предоставленными компанией Terasiс - hwlib, в которых указаны статические переменные и структуры данных для взаимодействия с выделенной памятью.

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

Для работы разработанных модулей требуется поставить на Linux дистрибутив, поднятый на de10-nano, Python 3, так как по умолчанию на нем установлен Python версии 2.7. Для установки предполагается использовать менеджер пакетов в данном дистрибутиве, основанном на Debian - opkg. Но в ходе работы с пакетным менеджером обнаружено, что структура хранения данных для обновления информации о путях расположения устанавливаемых пакетов изменена с момента создания дистрибутива, что приводит к ошибкам при установке пакетов. Никакой информации о внесенных изменениях в структуры на официальных источниках не найдено. В частности, из-за внесенных изменений команда «opkg update» завершается с ошибкой без возможности обновить все необходимые данные, из-за чего, не находит путь до пакета для установки Python 3. Для решения данной проблемы скачиваются исходники Python с официального сайта и самостоятельно собираются на Linux-системе на плате De10-nano. После сборки пакета, на интерпретатор устанавливаются дополнительные библиотеки, в частности: requests - для отправки запросов на сервер, cython - для использования скомпилированных C-скриптов в качестве библиотеки и flask - для получения управляющих команд.

Для использования C-скрипта, управляющего данными в примонтированной памяти, задействован язык программирования Cython, упрощающий написание модулей С/С++ кода для Python.

Для взаимодействия между собой две платы под управлением Linux - De10-nano и Cubieboard4 соединяются Ethernet кабелем. Для реализации возможности общения между двумя платами, им назначены статические IP в одном адресном пространстве. В процессе эксплуатации и тестирования данной связки была выявлена проблема: при выключении компьютера и отсоединении/присоединении кабеля Ethernet., Cubieboard4 сбрасывает настройки IP для сетевой карты, относящейся к Ethernet. Для нивелирования данного ошибки написан bash скрипт, который присваивает указанный IP адрес при запуске. И, в последствии, данный bash-скрипт добавлен в автозапуск системы.

На De10-nano необходим доступ в интернет, чтобы, напрямую обращаться к главному серверу и получать управляющие данные, такие как, новый маршрут и т.д. Поэтому создается bridge между de10-nano и cubieboard4. Для этого ввидится следующая последовательность команд:

1) sysctl net.ipv4.ip_forward=1 - команда для включения пересылки пакетов;

2) Установка пакета iptables. Это не составляет труда, поскольку, в отличие от de10-nano, в дистрибутиве для cubieboard4 пакетный менеджер работает корректно;

3) Настройка NAT - механизм для преобразования IP-адреса транзитных пакетов в модели передачи данных TCP/IP:

a. iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE - замена адреса на адрес машины, которая выполняет маскировку пакета;

b. iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT - разрешение на установку нового состояния пакета;

c. iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT - дается разрешение на прохождение всех пакетов, не используемых хостом.

3.3 Модуль управления моторами

Моторы подключены через драйвер двигателя и управляются с помощью программного обеспечения, написанного в среде программирования Intel Quartus на языке Verilog, а также на языке программирования высокого уровня Python.

Для реализации логики работы колесной платформы и ее взаимодействия с остальными модулями через интернет поднято HPS ядро на плате De10-nano. Общение между блоками HPS и FPGA реализовано посредством логических мостов как показано на рисунке 10.

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

Рисунок 10 – Настройка подключение в Qsys.

Для создания модуля, вызываемого внутри скрипта на Python, необходимо скомпилировать написанный модуль на С, с помощью набора компиляторов gcc. На этапе компиляции в команду передаются флаги, подключающие дополнительные библиотеки, предоставленные компанией Terasiс:

"-I hwlib/include/ -I hwlib/include/soc_cv_av -D soc_cv_av".

После компиляции, созданный файл запаковывается в архив-библиотеку:

"ar rcs libmain.a main.o".

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

"-fPIC".

Далее создается файл с расширением ".h", в котором объявляются используемые функции из скомпилированного C-файла. Затем, необходимо создать файл для cython с расширением ".pyx", в котором с помощью специального синтаксиса импортируются модули из ".h"-файла, объявляется отлов ошибок при выполнении C-скрипта при необходимости, и пробрасывание их в Python. А также создаются функции, которые уже вызываются в Python для использования конкретных c-скриптов.

Для реализации библиотеки на Python создается файл setup.py, в котором указываются все необходимые для финальной сборки файлы.

Различается несколько вариантов реализованных движений:

- движение вперед и назад на заданное расстояние;

- поворот на заданный угол по часовой или против часовой стрелки;

- остановка на заданный интервал времени.

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

3.4 Модуль управления ультразвуковыми датчиками

Программный модуль, написанный для FPGA на Verilog, получает данные со всех датчиков, расположенных по периметру робота. Считывает несколько значений с каждого датчика за определенный интервал времени. Затем они усредняются для каждого датчика, и полученные значения сверяются с пороговым, для определения наличия/отсутствия препятствий. Значения усредняются, чтобы нивелировать влияние выбросов при измерении расстояния до объекта. Полученная информация по каждому датчику группируется для каждой стороны робота и записывается в 4-х битный массив, который считывается в программном модуле HPS. Таким образом, при необходимости, скрипт обращается к массиву данных и получает актуальную информацию о наличии или отсутствии препятствий с каждой из четырех сторон.

Считывание значения из памяти в Python-скрипте на HPS происходит аналогично записи с помощью скрипта, написанного на языке C, и его вызова с помощью Cython. Порядок действий для внедрения модуля в python-скрипт аналогичен описанному в разделе Модуль управления моторами.

...

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

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