ДонНТУ   Портал магистров

Реферат по теме выпускной работы

Содержание

Введение

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

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

1. Актуальность темы

Новизна магистерской работы заключается в использовании оптического потока, получаемого от камеры Fire-i и подаваемой на роботизированную руку. Компенсация между движениями манипулятора и предметом будет осуществляться с помощью нейронной сети с обратным распространением ошибки.

2. Описание робота Katana

Объектом управления является робот – манипулятор Katana 200 (Neuronics)

Робот – манипулятор Katana 200

Рисунок 1 – Робот – манипулятор Katana 200

Интерфейс Katana (KNI) является свободной библиотекой программного обеспечения для управления роботом Katana. Написан на С++ и структурирован таким образом, что возможно легко перенести на другие языки и системы. Код является независимым от используемой платформы и может использоваться как на Windows, с компиляторами C++ так и на Linux также с помощью компиляторов . KNI упрощает базовые слои, что позволяет написать в разных приложениях программу для Katana, не вдаваясь в подробности работы системы. Установление соединения и инициализации робота осуществляется с помощью вызова некоторых функций. Протокол для управления роботом с помощью компьютера является полностью абстрактным. KNI включает в себя реализацию кинематики роботов, процедуры расчета траектории всех звеньев и позволяет контролировать все оси, которые движутся синхронно в пространстве. Полностью открытый исходный код делает его идеальным для научно–исследовательской деятельности и образования, так как есть возможность осуществлять по желанию различные модификации и адаптацию.[8]

Ниже представлены основные используемые библиотеки и функции:
  1. #include <katana.h> – интерфейс для Katana;
  2. Katana () – конструктор;
  3. ˜Katana () – деструктор;
  4. int terminate () – прекращение работы всех осей манипулятора;
  5. int calibrate(int axis, bool force) – калибровка манипулятора;
  6. int init () – инициализация обмена информацией между роботом и оператором;
  7. int MotorOff (int axis) – выключатель двигателя одной из осей;
  8. int MoveHome () – возвращение робота в начальное положение;
  9. int SetVel () – задание скорости;
  10. int SetAcc () – задание ускорения;
  11. void KNI::KatanaKinematics6M90T::DK – расчет реального положения схвата робота в декартовой системе координат, используя значения энкодеров;
  12. void KNI::KatanaKinematics6M90T::IK – расчет значений энкодеров, для перемещения робота в нужную точку в декартовой системе координат.

3. Определение оптического потока

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

Оптический поток – это рисунок видимого движения объектов, поверхностей или краев сцены, получаемый в результате перемещения наблюдателя (глаз или камеры) относительно сцены.[1]

Оптический поток – движение отдельных пикселей видеоряда.

Но для математического описания оптического потока рассмотрим понятие векторного поля.

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

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

Уравнение для пикселя (x,y,t) с интенсивностью I в двухмерном оптическом потоке может иметь вид [2]:

Учитывая, что перемещения малы, используем ряд Тейлора:

Из этих равенств следует:

или

В итоге получаем:

Vx и Vy-скорость изменения оптического потока по соответсвующим координатам.

Существуют 2 основных алгоритма для определения оптического потока:

  1. Хорна – Шунка;
  2. Лукаса – Канаде.

Алгоритм Хорна – Шунка предполагает плавность потока по всему изображению. Таким образом, он пытается свести к минимуму искажения в потоке и представляет решения, которые вводят большие плавности. Недостатком алгоритма является достаточно большие шумы из–за высокой плотности потока.

Алгоритм Лукаса – Канаде основан на предположении, что в локальной окрестности каждого пикселя значение оптического потока одинаково, таким образом можно записать основное уравнение оптического потока для всех пикселей окрестности и решить полученную систему уравнений методом наименьших квадратов.

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

4. Описание камеры Fire–i

В данной работе оптический поток может быть получен с помощью цифровой камеры Fire–i.

цифровая камера Fire–i

Рисунок 2 – цифровая камера Fire–i

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

  1. возможность использовать несколько камер и отображать изображение одновременно на одном компьютере;
  2. фото обмен между несколькими ПК;
  3. несжатое VGA изображение до 30 кадров в секунду;
  4. хранение в любом формате кодирования;
  5. низкое энергопотребление;
  6. диафрагма (F 2.0), элементы из стекла, 4,3 мм фокусное расстояние объектива;
  7. два порта FireWire 400 Мб;
  8. разрешение видео 640x480.

5. Модель определения оптического потока

Приложение Simulink/Matlab, имеет библиотеку Video and Image Processing Blockset, в которой уже реализованы оба вышеупомянутых алгоритма определения оптического потока. На основе этой библиотеки была создана следующая модель.[4]

Модель определения оптического потока в Simulink/Matlab

Рисунок 3 – Модель определения оптического потока в Simulink/Matlab

В качестве видеоряда использовалось видео высокого разрешения fullHD, для более точного определения оптического потока. Ниже представлены фрагменты этого видеоряда.

Интерполяция кадров для нахождения оптического потока

Рисунок 4 – Интерполяция кадров для нахождения оптического потока

Ниже приведены результаты работы обоих методов.

Векторное поле оптического потока(метод Хорна – Шунка)

Рисунок 5 – Векторное поле оптического потока(метод Хорна – Шунка)

Векторное поле оптического потока(метод Лукаса – Канаде)

Рисунок 6 – Векторное поле оптического потока(метод Лукаса – Канаде)

Из изображений видно что алгоритм Хорна – Шунка выдает лучшую детализацию, благодаря тому что просчитывает оптический потоок попиксельно, но вместе с тем выдает и шумы. Недостаток метода – состоит в громоздкости вычислений. Метод Лукаса – Канаде дает меньше шумов, но он не может использоваться в высокоточных системах. Недостаток метода заключается в том, что он не может рассчитать оптический поток в однородной среде[7].

6. Нейронная сеть

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

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

Нейронная сеть

Анимация: 6 кадров, длительность каждого кадра - 80 мс, 56 Кб

Структура нейрона

Рисунок 7 – Структура нейрона

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

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

Выводы и планы на будущее

На данном этапе, рассмотрены и исследованы: объект управления, датчик камера Fire–i, алгоритмы определения оптического потока, выбран тип используемой нейронной сети и собран стенд для исследований, поэтому основной задачей исследования является:

Стенд для исследований

Рисунок 8 – Стенд для исследований

  1. Расчет оптического потока в режиме реального времени;
  2. Задание всех необходимых связей между роботом и камерой;
  3. Создание контроллера на базе нейронной сети;
  4. Экспериментальные исследования с роботом.

Список источников

  1. Fleet D.J. , Weiss Y., Toptical Flow Estimation

  2. Horn K.P., Rhunck B. G., Determining Optical Flow, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, MA 02139, U.S.A.

  3. Fire-i Digital Camera Specifications Fire-i Digital Camera

  4. Computer Vision System Toolbox Object Detection, Motion Estimation, and Tracking

  5. Tadeusiewcz R. "Sieci neuronowe", Principles of training multi-layer neural network using backpropagation, Krakow 1992

  6. Fahlman S.E., An Empirical Study of Learning Speed in Back-Propagation Networks

  7. Bouguet J.-Y., Pyramidal Implementation of the Lucas Kanade Feature Tracker Description of the algorithm

  8. Рябченко В.В., Дацун Н.Н.  Использование моделирующей среды для создания программного обеспечения программно-аппаратного комплекса управления роботом-манипулятором семейства Katana фирмы Neuronics AG, Наукові праці Донецького національного технічного університету 14 (188), 2011. – 335 – 339

  9. Hasnain S. K., Gaussier P., Mostafaoui G., A synchrony based approach for human robot interaction. Paper accepted in Postgraduate Conference on Robotics and Development of Cognition (RobotDoC-PhD) organized as a satellite event of the 22nd International Conference on Artificial Neural Networks ICANN 2012. Lausanne, Switzerland, 10–12 September, 2012