Файл: Основная образовательная программа cb. 17. 5005. 1 Прикладная математика, фундаментальная информатика и программирование Профиль Компьютерные технологии и системы.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.11.2023

Просмотров: 34

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
тификаторами 0 и 1 соответственно, сгенерированные из словаря Dictionary
4x4(50), размер маркера 4x4 состоит из 16 бит.
Рис. 7:
ArUco маркеры id = 0 и id = 1 [8]
Во внешний программный комплекс поступает поток изображений, ко- торые можно автоматически расшифровывать и выводить на экран, далее с помощью метода detectMarkers из класса aruco [11] происходит распознава- ние маркеров. Входными параметрами метода является изображение, словарь,
с помощью которого были сгенерированы маркеры на изображении и набор параметров, в данном случае используется стандартный набор параметров предлагаемых классом.
Процесс обнаружения маркера состоит из двух основных этапов: обна- ружение кандидатов в маркеры и их проверка. На этом этапе изображение анализируется, чтобы найти квадратные формы, которые могут быть марке- рами. Вторым этапом является определение, действительно ли они являются маркерами, путем анализа их внутренней кодификации.
Метод возвращает координаты четырёх углов по часовой стрелке в си- стемы координат изображения, начиная с левого верхнего для каждого об- наруженного маркера, id найденных маркеров, а также координаты четырех углов отклонённых кандидатов. Далее по этим данным на изображении об- водятся зеленой линией распознанные маркеры и подписывается идентифи- катор, для прямого отслеживания моментов обнаружения и проблем из-за которых происходит потеря маркеров.
24

Для решения задачи позиционирования по изображению необходимо совершить перевод объекта цели в локальную систему координат робота, и получить угол поворота относительно новой системы координат. Переход к новой системе координат осуществлялся последовательно: переносом и по- воротом системы координат. Реализация этих действий требует понимания вектора направления, и соответствующего поворота локальной системы ко- ординат относительно глобальной. Ниже на изображении наглядно показана связь систем координат камеры, изображения и мировой системы координат.
Рис. 8:
Связь систем координат [12]
Модуль aruco предоставляет метод estimatePoseSingleMarkers для оцен- ки положений всех обнаруженных маркеров в системе координат камеры.
Принимая в качестве входных параметров углы маркеров, реальные разме- ры маркера, вектор коэффициентов искажения, а также параметры камеры,
такие как матрицу калибровки камеры, состоящую из значений фокусных расстояний f x
и f y
, если пиксели в датчике изображения квадратные, то они будут равны, и координат оптического центра камеры (c x
, c y
)
25


A =



f x
0
c x
0
f y
c y
0 0
1



Данную матрицу и вектор коэффициентов искажения можно получить в ходе калибровки камеры с помощью OpenCv. Это означает, что будет по- лучена вся информация о камере, необходимая для определения точной вза- имосвязи между трехмерной точкой в реальном мире и ее соответствующей двухмерной проекцией (пикселем) на изображении, полученном этой отка- либрованной камерой.
Калибровку камеры можно проводить несколькими способами, одним из которых является калибровка по шахматной доске, так как клетки доски легко различимы на изображении, а углы клеток удобно использовать для локализации, поскольку они имеют четкие границы.
В среде симуляции было размещено изображение шахматной доски на плоскости, далее были созданы изображения, использующиеся в качестве снимки камеры с разных ракурсов. Таким образом есть доска с известными нам размерами и координатами, теперь можно провести обнаружение углов шахматной доски с помощью встроенной функции OpenCv, которая вернет координаты четырех углов. После чего их можно уточнить и следующим шагом калибровки необходимо передать положения углов в мировых коорди- натах и в координатах изображения в метод calibrateCamera.
Рис. 9:
Откалиброванные изображения шахматной доски 9x9 и ориентации осей маркеров
Вычислив все необходимые данные, можно воспользоваться методом для получения положения маркеров, который вернет нам векторы поворота
26
локальной оси координат относительно камеры, связанной с маркером, где ось x указывает на правую сторону маркера, ось y указывает в верх маркера,
а ось z направлена от плоскости маркера, как показано на изображении 9, а также векторы смещения для каждого маркера относительно камеры.
Завершающим этапом является перенос и поворот систем координат объектов в локальную систему координат робота, после чего можно передать новые координаты цели в регулятор, описываемый формулами (6) и (8).
Исходный код всех реализованных программ можно посмотреть на сай- те [13].
5.3
Отработка траектории движения робота
Отработка траектории движении робота осуществляется посредством работы программного комплекса в среде симуляции. Координаты цели пози- ционирования, преследуемой роботом, при достаточно малом перемещении за достаточно малое время могут описывать необходимую траекторию дви- жения робота.
Таким образом для формирования набора точек в симуляции существу- ет возможность первой итерацией построить траекторию движения посред- ством перемещения преследуемого объекта «куб», параллельно осуществляя запись его координат и момента времени перемещения отсчитываемого от момента запуска.
Второй итерацией является непосредственное чтение кортежа данных из сформированного в первой итерации или любым другим путем файла,
отслеживание момента времени смены позиции и перемещение в необходи- мую точку, тем самым формируя траекторию, которой будет придерживаться робот во время движения.
Данный метод также применяется в следующей главе для проведения набора экспериментов с единой отслеживаемой траекторией.
Таким образом отработка траектории движения и задачи позициониро- вания на данный момент может осуществляться тремя основными способами:
• в среде симуляции напрямую, вручную определяя положение цели, пе- ретаскивая «куб»;
27


• в среде симуляции с помощью чтения набора координат из файла;
• во внешней программе по распознаванию изображения (так же, пере- таскивая "куб либо перемещая куб по траектории из файла).
Также для первых двух способов можно использовать два описанных выше управления (6)-(8) и (9). Во внешней программе управление осуществляется по формулам (6), (8).
28

1   2   3

Глава 6. Эксперименты
Для того, чтобы проверить корректность реализованного позициони- рования в среде моделирования был реализован следующий сценарий. При инициализации симуляции создается объект «Куб», который можно перетас- кивать во время исполнения с помощью курсора. Координаты этого объекта являются координатами цели в задаче позиционирования. Таким образом,
задача робота — строго следовать за перемещением куба. Для проведения более честных экспериментов, траектория цели всегда считывается из одного и того же файла, соответственно цель передвигается всегда на одни и те же промежутки за одно и то же время. Также для некоторой численной оцен- ки были посчитана метрика l
2
, показывающая общее среднее отклонение от целевой траектории и вычисляемая по формуле:
v u
u t
1 2n n
X
i=1
(x

i
− x i
)
2
+ (y

i
− y i
)
2
,
где n — количество точек каждой траектории, (x

,y

)
— координаты цели,
(x,y)
— координаты робота.
На каждом из набора графиков синим обозначается траектория цели,
оранжевым — робота. Зелеными и красными точками указаны начало и ко- нец соответственно каждой траектории движения. Для каждого эксперимента представлены три графика: график траекторий, описываемый набором точек
(x,y)
, графики зависимости координат от времени x(t) и y(t), для более по- дробного анализа.
Рассмотрим для начала сравнение управления (9) с разными коэффици- ентами, находящееся полностью на стороне среды симуляции, что облегчает получение текущих скоростей для формулы.
Как видно из рисунков (10) и (11), недостаточно большое значение ко- эффициентов в матрице, связанной с текущими скоростями, приводит к низ- ко набираемой скорости и невысокой маневренности, из-за чего происходит большое отклонение от траектории, о чем также свидетельствуют значения метрик равные 0.87 и 0.65 соответственно.
29

Рис. 10:
Графики траекторий, x(t), y(t) для регулятора с обратной связью по состоянию (9).
K
v
= diag(20,20)
, K
p
= diag(18,18,18)
Рис. 11:
Графики траекторий, x(t), y(t) для регулятора с обратной связью по состоянию (9).
K
v
= diag(40,40)
, K
p
= diag(42,42,42)
Рис. 12:
Графики траекторий, x(t), y(t) для регулятора с обратной связью по состоянию (9).
K
v
= diag(40, 40)
, K
p
= diag(45, 45, 45)
В то же время отклонение уменьшается до 0.6, при уменьшении влияний текущих скоростей, зависящее от матрицы K
v
, при увеличении значений матрицы K
p
, что оказывает влияние на оценку расстояния до цели.
Рассмотрим далее сравнение управления линейными и угловыми скоро- стями, пропорциональными расстоянию до цели (6), (8). Данное управление показывает более удачные результаты при различных изменениях коэффици- ентов. Кроме того оно же используется для контроля робота по распознан- ному изображению, так как не требует вычисления текущих скоростей по изображению, которые могут искажаться в зависимости как от качества ви-
30

деооборудования, так и от погрешностей в данных, которые могут возникать из-за потери распознавания.
Проведем анализ данного регулятора в сравнении как с данными управ- ления прямиком из среды симуляции, так и с управлением осуществляемым по изображению.
Рис. 13:
Графики траекторий, x(t), y(t) для пропорционального регулятора (6),
(8)реализованного в среде симуляции Unity. k h
= 4
, k v
= 0.5
Рис. 14:
Графики траекторий, x(t), y(t) для пропорционального регулятора (6), (8) реализо- ванного во внешней программе. k h
= 4
, k v
= 0.5
Обращая внимание на рисунки (13), (15) ,(17) можно заметить, что небольшой коэффициент при угловой скорости по сравнению с коэффици- ентом у линейной скорости приводит к низкой маневренности робота, что также подтверждается самым большим значением метрики среди выборки данного управления: 1.07. Немного лучше становится при уменьшении ско- рости и увеличении параметра при угловой скорости, что можно заметить на изображении (15), робот набирает скорость медленнее и успевает аккуратнее поворачивать, благодаря чему отклонение от траектории становится меньше:
0.8. Самый лучший результат для данного метода управления среди прове- денных экспериментов равный 0.58 достигается благодаря как увеличению коэффициента k h
= 4,5
при линейной скорости, так и увеличению коэффи- циента k v
= 1
при угловой скорости, таким образом робот хорошо набирает
31
скорость, не отставая далеко от робота и соответственно благодаря этому также хорошо поворачивает.
Рис. 15:
Графики траекторий, x(t), y(t) для пропорционального регулятора (6), (8) реализо- ванного в среде симуляции Unity. k h
= 3.5
, k v
= 0.7
Рис. 16:
Графики траекторий, x(t), y(t) для пропорционального регулятора (6), (8) реализо- ванного во внешней программе. k h
= 3.5
, k v
= 0.7
Рассматривая графики связанные с внешним регулятором стоит обра- тить внимание на некоторые отклонения, обусловленные различными при- чинами. На изображениях (16), (14) построенных по данным управления во внешней программе можно заметить большое начальное отклонение от траектории, связанно с задержкой запуска внешней программы и отправки управления, в то время как цель уже успевает переместиться. На изображе- нии (18) данное отставание нивелируется быстрым набором скорости. Также на изображениях (16), (18) можно наблюдать небольшие всплески, возник- шие из-за того, что при достижении роботом цели, маркеры иногда могут пересекаться и программа утратит возможность распознать маркер робота, в таком случае на робота отправляется последняя вычисленная скорость. Когда цель меняет местоположение, снова происходит обнаружение всех маркеров и робот возвращается на необходимую траекторию. Кроме того, можно за- метить, что траектория робота, регулируемого внешним управлением, явля- ется менее гладкой, что, очевидно, можно объяснить постоянными поиском
32