Файл: Основная образовательная программа cb. 17. 5005. 1 Прикладная математика, фундаментальная информатика и программирование Профиль Компьютерные технологии и системы.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.11.2023
Просмотров: 32
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Санкт–Петербургский государственный университет
Радева Анастасия Александровна
Выпускная квалификационная работа
Система управления мобильным роботом
Уровень образования: бакалавриат
Направление 01.03.02 «Прикладная математика и информатика»
Основная образовательная программа CB.17.5005.1 «Прикладная математика, фундаментальная информатика и программирование»
Профиль «Компьютерные технологии и системы»
Научный руководитель: доцент,
кафедра компьютерных технологий и систем, к. ф.- м. н.
Коровкин Максим Васильевич
Рецензент:
Семакова Анна Анатольевна
Санкт-Петербург
2021 г.
Содержание
Введение
3
Постановка задачи
5
Обзор литературы
6
Глава 1. Среда симуляции
7 1.1. PhysX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
Глава 2. Модель двухколесного робота с дифференциальным при-
водом
9 2.1. Двухколесный робот с дифференциальным приводом . . . .
9 2.2. Кинематическая модель . . . . . . . . . . . . . . . . . . . . . 10 2.3. Динамическая модель . . . . . . . . . . . . . . . . . . . . . . 12
Глава 3. Идентификация динамической модели
. . . . . . . . . . . 15 3.1. Задание модели в Unity . . . . . . . . . . . . . . . . . . . . . 16
Глава 4. Позиционирование робота
. . . . . . . . . . . . . . . . . . . 19
Глава 5. Система управления роботом
. . . . . . . . . . . . . . . . . 21 5.1. Комплекс связи с внешней программой . . . . . . . . . . . . 21 5.2. Обратная связь по изображению . . . . . . . . . . . . . . . . 23 5.3. Отработка траектории движения робота . . . . . . . . . . . 27
Глава 6. Эксперименты
. . . . . . . . . . . . . . . . . . . . . . . . . . 29
Выводы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Заключение
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Список литературы
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2
Введение
В современном мире процесс автоматизации проникает во многие от- расли жизни: собираются транспортные средства на производствах, предо- ставляются различные услуги доставки мобильными роботами в кафе и оте- лях. Мобильные роботы обеспечивают высокую производительность работы различных предприятий как промышленных, так и сферы услуг. Нет необ- ходимости переживать об организации труда и ошибках, связанных с че- ловеческим фактором. Для развития процесса автоматизации необходимо всестороннее исследование возможности управления мобильным роботом,
используя современные передовые способы разработки роботов. Одной из первоочередных задач является задача отработки движения робота по задан- ной траектории с помощью управления значениями на моторах колес. Такое движение часто используется в сельскохозяйственной промышленности ро- ботами, использующими GPS-навигацию, а также роботами-экскурсоводами или уже многим знакомыми роботами-пылесосами.
Работа с физическим прототипом робота может осложняться большой стоимостью его составных частей и исследовательского оборудования. Кро- ме того, существует риск неудачных и травмирующих экспериментов, кото- рые могут привести к поломке оборудования. Симуляция позволяет решать проблемы безопасности, позволяя предотвратить опасные для целостности и работоспособности робота ситуации, а также симуляция существенно эконо- мит время исследования в случае необходимости многократного повторения экспериментов, используя возможности одновременного запуска различных ситуаций, необходимых, например, для обучения нейронных сетей.
Благодаря продвинутым технологиям средств симуляции можно воссо- здать разнообразные поверхности, наделяя их необходимыми физическими свойствами, симулируя сопротивление и силу трения.
Некоторые исследователи считают, что работа в симуляции — это слиш- ком сложно и трудоемко [6]. Однако в действительности современные плат- формы имеют большой спектр возможностей, что позволяет реализовать все необходимое для решения поставленных задач без особых ограничений и усилий.
3
Учитывая развитие, которое получили различные движки симуляции за последнее время, актуальной становится задача исследования возможности использования средств симуляции для разработки систем управления мо- бильными роботами. В настоящее время доступно не так много бесплатных сред симуляции для эффективного проведения экспериментов по управле- нию транспортными средствами. В данной работе рассматривается платфор- ма Unity3D, являющаяся общедоступной средой разработки, имеет неплохую документацию и широко используется для решения различных задач. Несмот- ря на основное направление применения данной платформы в качестве среды для разработки компьютерных игр, что влечет за собой разносторонние упро- щения и оптимизации процессов вычисления, Unity поддерживает PhysX SDK
4, благодаря чему его можно использовать в качестве физического движка,
для чего создано множество дополнительных возможностей описания взаимо- действия объектов окружающей среды и транспортных средств с физической точки зрения.
4
Постановка задачи
Целью данной работы является разработка полной системы управления мобильным роботом для преследования заданного движущегося объекта в среде симуляции. На основе реализованной системы в дальнейшем планиру- ется перейти к взаимодействию с реальным физическим прототипом робота.
Для достижения этой цели были поставлены следующие задачи:
• реализовать симуляционную модель движения двухколесного робота с дифференциальным приводом в среде Unity;
• построить динамическую и кинематическую модели робота;
• синтезировать регулятор для движения по заданной траектории;
• реализовать коммуникацию модели в Unity с внешней программой для передачи изображения с виртуальной камеры для последующего рас- познавания объектов симуляции и вычисления необходимых скоростей для передачи их роботу;
• реализовать внешнюю управляющую программу, принимающую через компьютерную сеть изображение с виртуальной камеры, распознающую робота и объект преследования, а также способную передавать желае- мые скорости для отработки роботом;
• синтезировать регулятор для преследования цели во внешней програм- ме;
• продемонстрировать работоспособность на примере нескольких симу- ляционных экспериментов.
5
Обзор литературы
В статье [3] представляется математическая модель унициклического робота с явным учетом его динамики для формулирования стратегий управле- ния движением для отслеживания траектории. Рассмотрены два метода когда транспортное средство должно отслеживать параметризованный по времени эталонный путь (набор положений), и следования пути, в котором цель состо- ит в том, чтобы направить транспортное средство на свой путь с эталонной скоростью. На её основе была описана динамическая модель унициклического робота в данной работе, кроме того также исследуются отработка движения по траектории, без каких-либо ограничений на скорости.
На данный момент существует множество методов для контроля движе- ния робота, в том числе и для задачи позиционирования, что хорошо описано в данной книге [4]. Здесь так же приведен необходимый код для разработки в системе Matlab и Simulink. В данной работе будут рассмотрены один из методов данной книги и метод управления с обратной связью по состоянию из статьи [9] для сравнения, все эксперименты будут проводиться в среде симуляции Unity в качестве исследования.
Одной из довольно популярных тем в разработке роботов с распознава- нием изображения является автономный футбол роботов. Например, в статье
[2] используют цветные макеры, закрепленные на роботах, но в данном ме- тоде имеются недостатки из-за проблем с калибровкой цвета. Обнаружение объектов по ArUco-маркерам позволяет избежать необходимость калибровки цвета, что делает решение задачи ориентации объектов в пространстве более надежным и стабильным [1].
Таким образом, можно заметить что в сфере робототехники изучено и проведено много экспериментов, но многие из них не образуют цельную систему, состоящую из нескольких компонентов: симуляции, внешнего регу- лятора, различные виды управления и компьютерного зрения, которые можно изучать и развивать во многих направлениях.
6
Глава 1. Среда симуляции
Каждая среда симуляции определяет свои правила работы с объектами,
правила задания роботов, а также возможности создания окружающей среды и других необходимых объектов. Представляет интерес реализация симуля- ции робота в нетипичных для данных задач средах разработки, таких как
Gazebo или Matlab, так как они развиваются в направлении симуляции и на- вигации, но редко изучаются специалистами робототехники. Именно поэтому было решено обратить внимание на использование графических и физических движков, таких как Unity и Unreal Engine.
Unity и Unreal Engine в первую очередь бесплатные и открытые для персонального использования программы разработки, дающие возможность работать с 3D графикой высокого уровня. Они предоставляют открытый до- ступ к исходному коду, что помогает более тщательно разобрать каждый этап симуляции движения. Среда разработки и симуляции может представлять из себя тестовую среду, являющуюся «цифровым двойником» реального окру- жения, которая позволила бы тестировать и экспериментировать в любом масштабе. В дополнение к этому есть возможность немедленной модифика- ции виртуализированного оборудования, что позволяет сделать его надежным
(или ненадежным), насколько это необходимо.
Существуют огромные библиотеки предметов окружения и средства для предельно точной визуализации объектов, что очень важно для различ- ных оптических систем связанных с роботом, получающих информацию с картинки. Unity имеет обширные настройки камеры, что позволяет симули- ровать разные виды оптических шумов и искажений.
Unity, кроме того, обладает большим потенциалом к расширению и готовности к адаптации в стремительно меняющихся условиях, благодаря мощной системе программирования на C#, богатым API и документации.
Благодаря интуитивно понятному интерфейсу и инструментам Unity, раз- работка рабочего прототипа проходит без необходимости тратить время на низкоуровневое программирование.
7
1.1
PhysX
Физика и физическое движение поддерживается в Unity с помощью кросспалтформенного физического движка PhysX от Nvidia, предоставляю- щего большой набор функций для симуляции. PhysX 4.0 обеспечивает высо- кое качество моделирования на уровне производительности моделирования игр. Он поддерживает динамику твердого тела, динамику мягкого тела (на- пример, моделирование ткани, включая разрыв и сжатую ткань), тряпичные куклы и контроллеры персонажей, динамику транспортных средств, модели- рование частиц и объемной жидкости. Ключевой особенностью также явля- ется открытость источников кода данного движка.
PhysX используют и такие среды симуляции как Microsoft Robotics
Studio,Unreal Engine, пакеты 3D разработки Autodesk, а также недавно создан- ная среда разработки Nvidia Omniverse также симулирует движение твёрдых тел на основе поддержки PhysX и другие. Поэтому можно сказать, что Unity является не более чем удобным интерфейсом для взаимодействия с PhysX
и не накладывает никаких ограничений на симуляцию движения мобильного робота по сравнению с другими схожими инструментами разработки роботов.
8
Глава 2. Модель двухколесного робота с дифференциаль-
ным приводом
Модель — это своего рода некоторая форма отражения действительно- сти. В математической среде обычно под моделью понимается набор формул,
описывающий физические свойства, которые или выводятся в процессе на- блюдения за моделируемым объектом или системой, или уже выведены для изучения поведения модели в реальной среде.
Далее будем рассматривать предметно-физическое моделирование, что означает сходство физических свойств нашей модели робота с реальным объ- ектом. Кроме того, рассматриваемая модель копирует не только свойства робота, но и отображает его действительный размер в формате 3D-объекта.
2.1
Двухколесный робот с дифференциальным приводом
Колесо является безусловно самым популярным механизмом передви- жения в мобильной робототехнике и в искусственных транспортных сред- ствах в целом. Одним из плюсов колесного робота в том, что баланс обычно не является проблемой для исследования в конструкциях колесных роботов,
потому что колесные роботы почти всегда спроектированы так, что все коле- са находятся в контакте с землей. Таким образом, трех колес достаточно для обеспечения стабильного баланса [8].
Существует четыре основных класса колес, они сильно различаются по своим кинематическим свойствам, и, следовательно, выбор типа колеса оказывает большое влияние на общую кинематику мобильного робота. Уни- циклические роботы широко используются в робототехнике, поскольку их движение легко программировать и ими можно хорошо управлять. Практи- чески все потребительские роботы на рынке сегодня используют дифферен- циальное рулевое управление в первую очередь из-за его низкой стоимости и простоты. Унициклический робот — это мобильный робот, движение ко- торого основано на двух отдельно приводимых колесах, расположенных по обе стороны от корпуса робота. Он может менять свое направление, изменяя относительную скорость вращения своих колес, и, следовательно, не требует дополнительного рулевого движения, имеет радиус поворота, сравнимый с
9
размером робота и высокую маневренность. Учитывая популярность таких роботов в индустрии и относительную простоту кинематической модели, в этой работе используется модель данного типа.
Рассматриваемый робот оснащён двумя колесами, имеющими одну сте- пень свободы и собственный дифференциальный привод, с третьей точкой контакта для опоры. В мобильном роботе с дифференциальным приводом два двигателя, прикрепленных к двум колесам, которые должны приводиться в движение по одному и тому же профилю скорости.
2.2
Кинематическая модель
На протяжении всего описания будем представлять робота как твердое тело на колесах, движущееся в горизонтальной плоскости. Чтобы указать положение робота на плоскости, установим связь между глобальной системой отсчета плоскости и локальной системой отсчета робота, как показано на рисунке 1.
Рис. 1:
Глобальные и локальные оси координат робота [8]
Оси X
I
и Y
I
определяют произвольный инерциальный базис на плоско- сти как глобальную систему отсчета от некоторой точки отсчета (например,
10
Рассматриваемый робот оснащён двумя колесами, имеющими одну сте- пень свободы и собственный дифференциальный привод, с третьей точкой контакта для опоры. В мобильном роботе с дифференциальным приводом два двигателя, прикрепленных к двум колесам, которые должны приводиться в движение по одному и тому же профилю скорости.
2.2
Кинематическая модель
На протяжении всего описания будем представлять робота как твердое тело на колесах, движущееся в горизонтальной плоскости. Чтобы указать положение робота на плоскости, установим связь между глобальной системой отсчета плоскости и локальной системой отсчета робота, как показано на рисунке 1.
Рис. 1:
Глобальные и локальные оси координат робота [8]
Оси X
I
и Y
I
определяют произвольный инерциальный базис на плоско- сти как глобальную систему отсчета от некоторой точки отсчета (например,
10
от центра камеры) O: X
I
,Y
I
. Чтобы указать положение робота, выбираем точку P посередине между колесами робота в качестве контрольной точки своего положения. Базис X
R
,Y
R
определяет две оси относительно P и, та- ким образом, является локальной системой координат робота. Положение P
в глобальной системе отсчета задается координатами x и y, а угол между глобальной и локальной системами отсчета определяется как θ.
Положение робота можно описать как вектор с этими тремя элемента- ми (1). Индекс I, используется чтобы указать положение робота в глобальной системе отсчета:
ξ
I
=
x y
θ
(1)
Чтобы описать движение робота в его локальной системе отсчета, необ- ходимо будет повернуть глобальную систему координат относительно локаль- ной системы отсчёта.
Данное отображение является функцией, которая задаёт текущую по- зицию робота. Это отображение выполняется с использованием матрицы по- ворота (2):
R(θ) =
cosθ
sinθ 0
−sinθ cosθ 0 0
0 1
(2)
Эта матрица может использоваться для отображения движения в гло- бальной системе отсчета X
I
,Y
I
на движение в локальной системе отсчета
X
R
,Y
R
. Эта операция обозначается через R(θ) ˙ξ
I
. Поэтому вычисление этой операции зависит от значения θ:
˙
ξ
R
= R(θ) ˙
ξ
I
,
(3)
где ˙ξ — вектор скоростей для соответствующих компонент.
В простейших случаях отображения, описываемого последним уравне- нием (3), достаточно для формулы, которая отражает кинематику мобильного
11
I
,Y
I
. Чтобы указать положение робота, выбираем точку P посередине между колесами робота в качестве контрольной точки своего положения. Базис X
R
,Y
R
определяет две оси относительно P и, та- ким образом, является локальной системой координат робота. Положение P
в глобальной системе отсчета задается координатами x и y, а угол между глобальной и локальной системами отсчета определяется как θ.
Положение робота можно описать как вектор с этими тремя элемента- ми (1). Индекс I, используется чтобы указать положение робота в глобальной системе отсчета:
ξ
I
=
x y
θ
(1)
Чтобы описать движение робота в его локальной системе отсчета, необ- ходимо будет повернуть глобальную систему координат относительно локаль- ной системы отсчёта.
Данное отображение является функцией, которая задаёт текущую по- зицию робота. Это отображение выполняется с использованием матрицы по- ворота (2):
R(θ) =
cosθ
sinθ 0
−sinθ cosθ 0 0
0 1
(2)
Эта матрица может использоваться для отображения движения в гло- бальной системе отсчета X
I
,Y
I
на движение в локальной системе отсчета
X
R
,Y
R
. Эта операция обозначается через R(θ) ˙ξ
I
. Поэтому вычисление этой операции зависит от значения θ:
˙
ξ
R
= R(θ) ˙
ξ
I
,
(3)
где ˙ξ — вектор скоростей для соответствующих компонент.
В простейших случаях отображения, описываемого последним уравне- нием (3), достаточно для формулы, которая отражает кинематику мобильного
11
робота.
Если рассматривать соотношение между скоростями подаваемыми ро- боту и скоростями каждого из колес, можно записать:
V
L
= rω
L
,
V
R
= rω
R
,
где r — радиус колеса, L — расстояние между колёсами.
ω =
V
R
− V
L
L
,
v =
V
R
+ V
L
2
,
Тогда кинематическая модель соответственно переписывается:
˙x
˙
y
˙
θ
=
cosθ 0
sinθ 0 0
1
"
v
ω
#
Кинематическая модель унициклического робота в основном связана с гео- метрическим описанием траекторий, по которым движется робот, без учета сил. Следовательно, могут произойти существенные ошибки при модели- ровании или тестировании реального прототипа. Поэтому необходимо рас- смотреть динамическую модель, которая позволяет учитывать физические ограничения робота или сил.
2.3
Динамическая модель
Согласно второму закону Ньютона, упрощенная поступательная и вра- щательная динамика двухколесного робота описывается следующими фор- мулами
M ˙v = F − B
v v
J ˙
w = T − B
w w,
где M - масса робота, J - момент инерции, F - силы, приложенные к системе,
T
- сила трения, B
v
- коэффициент трения поступательного движения, а
12
Если рассматривать соотношение между скоростями подаваемыми ро- боту и скоростями каждого из колес, можно записать:
V
L
= rω
L
,
V
R
= rω
R
,
где r — радиус колеса, L — расстояние между колёсами.
ω =
V
R
− V
L
L
,
v =
V
R
+ V
L
2
,
Тогда кинематическая модель соответственно переписывается:
˙x
˙
y
˙
θ
=
cosθ 0
sinθ 0 0
1
"
v
ω
#
Кинематическая модель унициклического робота в основном связана с гео- метрическим описанием траекторий, по которым движется робот, без учета сил. Следовательно, могут произойти существенные ошибки при модели- ровании или тестировании реального прототипа. Поэтому необходимо рас- смотреть динамическую модель, которая позволяет учитывать физические ограничения робота или сил.
2.3
Динамическая модель
Согласно второму закону Ньютона, упрощенная поступательная и вра- щательная динамика двухколесного робота описывается следующими фор- мулами
M ˙v = F − B
v v
J ˙
w = T − B
w w,
где M - масса робота, J - момент инерции, F - силы, приложенные к системе,
T
- сила трения, B
v
- коэффициент трения поступательного движения, а
12