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

Реферат за темою випускної роботи

Зміст

Вступ

В даний момент розвиток робототехніки є дуже перспективною галуззю промисловості. Роботи виконують безліч функцій як у промисловості, так і в повсякденному житті людей. Існує безліч способів взаємодії людини з роботом. У зв'язку з бурхливим розвитком фото і відео індустрії стало можливим застосування різних пристроїв захвату відео в робототехніці, а швидкісні послідовні з'єднання дозволяють використовувати відеопристрої для роботи в режимі реального часу. Цей напрямок є одним з найбільш цікавих.

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

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 – KatanaKinematics6M90T :: DK-розрахунок реального положення схвата робота в декартовій системі координат, використовуючи значення енкодерів;
  12. void KNI::KatanaKinematics6M90T::IK – розрахунок значень енкодерів, для переміщення робота в потрібну точку в декартовій системі координат.

3. Визначення оптичного потоку

Різні джерела, що мають інформацію про оптичні потоки, прагнуть дати своє визначення цьому об'єкту. Ось деякі з них:

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

Оптичний потік – рух окремих пікселів відеоряду.

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

Векторне поле є двовимірна матриця двокомпонентних векторів. Їх можна використовувати для перетворення зображень, в ході якого кожен вектор відображає спрямованість і інтенсивність локальної геометричній деформації. Елементи векторного поля можна подати як своєрідні символи операторів присвоювання: в кожному випадку роль змінюваної змінної грає піксель, розташований на початку вектора, а присвоюється йому значенням є колір фрагмента початкового зображення, на який вказує вектор, протилежний даному.

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

Рівняння для пікселя з інтенсивністю в двомірному оптичному потоці може мати вигляд [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].

Посилаючись на анімацію і рисунок 6, мережа працює наступним чином: кожен нейрон отримує сигнал від нейронів попереднього шару, і кожен з цих сигналів множиться на окремі вагові значення. Зважені входи підсумовуються і передаються через граничну функцію, яка масштабує вихід з фіксованим діапазоном значень. Вихід обмежувача потім транслюється на всі нейрони наступного шару. Тому, щоб використовувати мережу, необхідно вирішити проблему, застосування вхідних значень на входах першого шару, щоб сигнали поширювалися по мережі, і вважалися вихідні значення.

Нейронна мережа

Анімация: 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