Файл: Решение данных задач поможет в дальнейшем перейти к началу тестирования лабораторного образца сначала в лабораторных, а потом и реальных условиях, провести анализ ошибок,.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.10.2023
Просмотров: 128
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Содержание
Введение 1
Основная часть 2
Разработка пространственно-временного анализа отраженного лазерного сигнала в воде 2
Разработка программ на основе разработанных алгоритмов для микроконтроллеров и ПЛИС. 5
Тестирование и отладка программ. 6
Разработка лабораторного образца интеллектуальной системы технического зрения для автономных необитаемых подводных аппаратов. 10
Разработка процедур калибровки. 14
Заключение 15
Список используемой литературы 16
Введение
Целями данного этапа НИОКР является практическая реализация полученных данных в первом этапе НИОКР, проектирование модулей для проведения испытаний, а также разработка алгоритмов обработки данных для этих модулей. Для достижения поставленных необходимо решить следующие задачи:
-
Разработка пространственно-временного анализа отраженного лазерного сигнала в воде -
Разработка программ на основе разработанных алгоритмов для микроконтроллеров и ПЛИС. -
Тестирование и отладка программ. -
Разработка процедур калибровки. -
Разработка лабораторного образца интеллектуальной системы технического зрения для автономных необитаемых подводных аппаратов.
Решение данных задач поможет в дальнейшем перейти к началу тестирования лабораторного образца сначала в лабораторных, а потом и реальных условиях, провести анализ ошибок, поможет определить возможные улучшения, что, в конечном счете, приведет к пониманию конечного вида готовой системы.
Основная часть
Разработка пространственно-временного анализа отраженного лазерного сигнала в воде
Распределение интенсивности изображения отраженного лазерного сигнала на фотосенсоре обычно имеет гауссову форму. Для определения точного положения импульса необходимо вычислить его центр, используя один из описанных способов. Если искажения формы импульса, вызванные неравномерной отражающей способностью поверхности или отражением от краев, острых, граней, ступенек, существенны, то все способы будет давать периодическую погрешность, которую нельзя исключить при анализе одного снятого изображения регистрирующим сенсором. Так как в этом методе происходит прямой поиск центра по выбранному направлению обособленного двумерного изображения, снятого видеокамерой, то такой метод является методом исключительно пространственной обработки.
Однако, при изменении интенсивности точек лазера на поверхности объекта, происходит и изменение интенсивности при перемещения лазерного луча, т.е. происходит изменение и в пространстве, и во времени. Если задать конкретные условие на скорость и направление перемещения лазера, то график зависимости освещенности точки А плоскости фотосенсора от времени будет аналогично представлять собой гауссово распределение. Рассматривая эту временную, а не пространственную зависимость, можно, в большом количестве сложных ситуаций, восстановить всю форму распределения, а также повысить точность измерений объектов не сложной формы и с равномерным окрасом. Это очень актуально в подводных условиях, где происходят большие искажение формы гауссова импульса.
Принцип данного алгоритма показан на рисунке 1. Здесь схематически отображен пространственно-временной диапазон данных, полученных при сканировании в координатах (l, х, t), где l – интенсивность отраженной от плоскости точки на фотосенсоре, х – горизонтальная ось данной плоскости, а t – время. В координатах (I, t) на срезе изображены графики интенсивности импульса в случае потери части импульса если он попадании на края объекта.
Рис.1. Формы временных срезов лазерного импульса, регистрируемого фотосенсором на острых краях объектов при его перемещении во время сканирования.
Очевидно, что при перемещении импульса к краю объекта его форма значительно искажается, и классические алгоритмы поиска центроиды импульса в пространственной плоскости будут давать ошибочный результат. Например, на правой части рисунка 1 показан пример такого ошибочного определения центра распределения импульса в пространственных координатах (I, х). В момент времени t = tk реальный максимум импульса расположен в точке xm, но из-за утери части информации полученный максимум будет найден в точке x’m, что приведет к ошибке в определении координат на величину .
Если при построении графика измерения интенсивности в фиксированной точке x0 от времени, то на рисунке 1 (кривая A) видно, что в плоскости (I
, t) этот график будет иметь полную форму гауссова распределения (кривая В). В результате, переход к пространственного-временному от простого пространственного анализа дает возможность восстановить форму отраженного импульса если потерялась часть информации на краях объекта. Тек же метод будет работать и в других похожих случаях, в том числе при резком изменении отражательной способности поверхности в зоне сканирования.
Основную идею данного метода предложили М. Левоем и Б. Крулессом в 1995 г. для моноблочной системы сканера Cyberware, имеющий четко определенные параметры внешней и внутренней калибровки. Поэтому одним из главных ограничений метода пространственно-временной обработки является требование однозначного задания положения лазера путем задания только единственного параметра. При равномерном перемещении лазерного луча с единственной степенью свободы в качестве такого параметры выступает время (т.е. номер) анализируемого кадра. В качестве такого параметры так же может выступать сигнал обратной связи угла поворота зеркала в системе позиционирования лазерного луча. Однако в разрабатываемой системе лазерной триангуляции текущее положение лазерной плоскости однозначно задаются шестью параметрами внешней калибровки (в каноническом задании это три угла наклона нормали к лазерной плоскости и три координаты точки, через которую проходит плоскость), и напрямую данный метод в рассматриваемой системе не применим. Поэтому для применения метода пространственно-временной обработки в системе подводного зрения необходимо реализовать процедуру однозначной параметризации положения лазерной плоскости путем задания только одного параметра. Для решения этой проблемы предлагается использовать данные внешней калибровки с интегрированной стереофотограмметрической системы, которая осуществляет калибровку в режиме реального времени с помощью анализа характеристических точках на последовательностях двумерных изображений.
Недостатком метода является относительная сложность реализации и увеличение времени на обработку, т.к. данный метод предполагает анализ не одного кадра для принятия решения о положении центроиды, а последовательностью кадров разнесенных по времени сканирования.
Разработка программ на основе разработанных алгоритмов для микроконтроллеров и ПЛИС.
На основе полученных данных, а также разработанных алгоритмов и спроектированных электрических плат за первый этап НИОКР, были получены условия, необходимые для разработки программ для микроконтроллеров и микросхем плис. Первым делом, был продуман алгоритм работы системы, вследствие чего посвилась следующая блоксхема.
Рис.2. Блоксхема алгоритма работы системы
Чтобы сканер работал корректно и точно после изготовления необходимо провести процедуру калибровки. Данная процедура осуществляется по шаблону, перед датчиком ставится плоский объект на заданном расстоянии. Данные, полученные с сенсора сопоставляются с заданным расстоянием и вносятся в калибровочную таблицу, это процедура повторяется несколько раз с разными расстояниями на всем диапазоне (в среднем около 30 раз). Затем данная таблица прописывается в программу сканера. При сканировании происходит обращение к этой таблице для получения расстояния по оси z при получении данных с сенсора в пикселях.
Полученные данные о расстоянии до объекта по оси z передаются с микросхемы плис по параллельной шине в микроконтроллер. Полученные данные привязываются к координатам по осям y и x. Т.к. координаты по осям у и х сканер задает сам с помощью механики, в итоге мы получаем координату точки, лежащую на поверхности объекта по трем осям. Пройдясь по поверхности объекта, сканер получает координаты облака точек, по которым, в дальнейшем, строится 3д модель.
Тестирование и отладка программ.
Для реализации алгоритма работы сканера необходимо написать программу для микросхемы плис, микроконтроллера и для компьютера.
Подобные сенсоры должны работать на больших скоростях для этого необходимо обрабатывать большие объемы данных, полученных с сенсора. Для этого наилучшим образом подходит микросхема ПЛИС. Программа писалась в программе Quartus II и включает в себя несколько модулей: модуль общения с сенсором, модуль приема данных с сенсора и нахождения центроиды, модуль управления модуляцией лазера, модуль общения с микроконтроллером и модуль передачи данных на микроконтроллер.
Модуль общения с сенсором осуществляет его предварительную настройку и запускает считывание, также, он управляет тактирование микросхемы ацп и сенсора. Данный модуль работает на частоте 100 МГц. Частоту тактирования сенсора и ацп можно менять, максимальная частота тактирования сенсора 30 МГц, при 1 такте считывается 1 пиксель. При максимальной частоте сенсор способен выдавать до 25 тыс. кадров в секунду, однако это при экспозиции 7,5 микросекунды, при этом лазерной точки на объекте почти не видно. Нормальные кадры получаются при 15 тыс. кадров/с при этом мы получаем 15 тыс. координат точек в секунду (сканирование больше 1м
2 при точности 1 мм.).
assign adc elk = a elk; assign elis elk = 1 elk;
assign front start = (prev start == 0} && (start == 1)
assign spad = (prev adc elk == 0} && (adc elk == 1) ? 1 : 0 assign front DV = (prev DV == 1) && (DV == 0} 7 1 : 0;
Рис.3. Часть кода модуля общения с сенсором
if (frone_seare == 1 ) begin
// модуль занят
// busy <= 1;
sep <= 1;
end
case (sep)
1: begin
step <= 1; busy <= 1;
if ((coune_l == 6000) && (step == 1)) begin coune_l <= 0; sep <= 2; end else begin
she <= 0; //1
rs <= 0; //1
coune_l <= coune_l +1;
end
end
2: begin
seep <= 2;
if ((coune_exp == 2000 + EXP) && (seep == 2)) begin coune_exp <= 0; sep <= 3; laser <= 1; end else begin laser <= 0;
rs <= 1; //О начало экспозиции
coune_exp <= coune_exp +1;