А. Жуковський, С. Усилін, В. Постніков Сьогодні ми хочемо розповісти про новий проект, який розпочався трохи більше року тому на кафедрі когнітивні технології МРТ.
Він складається з створення системи машинного бачення, робота – автомобіль (рис. 1), який в режимі реального часу повинен обробляти відео потік, розпізнати навколишню сцену, виявити об'єкти і сформувати контрольний ефект, спрямований на вирішення завдання.
Рис. 1 час У той же час ми не спробували повністю відтворити реальні умови дорожньої сцени, усуваючи всі шармії малорозмірного моделювання.
Для стартерів ми бажали виготовляти основні архітектурні компоненти системи (відеопотоку та розподіленої бази обробки на поєднанні мінікомп'ютерів та відеокамер, як прототип системи-on-a-Chip (SoC), потенційно підходить для вирішення більш складних завдань.
Ми навчимося роботів переміщати передпокій і виявляти прості предмети, як апельсиновий конус. Запобігти йому на об'єкт і зупинитись. А потім ми вирішили грати з м'ячем. У поточній версії, якщо м'яч має вигляд камери, робот виявляє м'яч, прискорює і відштовхує його з бампером. Якщо м'яч залишає поле зору камери, робот починає шукати його.
Відео знято під час доповіді на осінній конференції молодих вчених МРТ,
Права в коридорі головного корпусу Тепер ми викладаємо роботу, щоб пройти «змійку» на деякий час. Ця вправа дозволяє оцінити якість системи управління і її прогрес від версії до версії. Порівняти якість ручного контролю за участю людини.
Спочатку, наш робот, що міститься тільки на комп'ютері, камерою і, власне, шасі. Ця модель спорту SUV Traxxas Slash 2wd виконана в співвідношенні 1:10. (Фігура 2, Рис. 3)
Рис. 2 Traxxxas Slash 2wd Контролер шасі на основі нано Arduino, але насправді використовується тільки мікроконтролер ATMega32.
Трохи пізніше ми додали передній сонар до схеми, щоб контролювати відстань до перешкод – в інших словах, щоб робот не змащувався в кути і стіни.
Рис. 3 Traxxxas Slash 2wd Якщо в першому варіанті робота потокового відео через HTTP назад і формування сигналів керування проводилося на робочому столі, то в поточній версії 2.0 (представлено на відео) весь цикл закритий на борту, а основне навантаження на обробку відео впав на мінікомп'ютер Odroid U2. (рис 4 -1)
Крім комп'ютера, апаратна версія 2.0 включає:
- пристрій керування роботами (рис. 4-2);
- Відеокамери Logitech HD Pro C920/Genius WideCam 1050 (може бути використана практично довільна веб-камера) (рис 4-3);
- Wi-Fi адаптер ASUS USB-N10 (рис. 4-4);
- USB концентратор (Figure 4)
- сонар LV-MAXSONAR-EZ2 (рис 4-6)
р.
Рис. 4 Функції пристрою керування роботів включають:
- впровадження контрольних комп'ютерних команд:
- формування сигналів ПВМ,
- Управління зовнішнім навантаженням (7 каналів)
- обробка датчиків:
- сонар (8 каналів),
- Датчик залу,
- датчик напруги акумулятора (ADC);
- захист роботи:
- екстрена зупинка на передній синарі,
- припиняється, коли сигнал керування втрачається.
Рис. 5 робот обладнання Схема В даний час є збірна версія 3. В ній система захоплення відео потоку буде включати два професійні відеокамери IDS, відеосигнал з яких (в тому числі виявлення об'єктів) буде оброблятися на окремих мінікомп'ютерах, в свою чергу, підключених до центрального мінікомп'ютера, який виробляє остаточне розпізнавання сцени і розвиток керуючих дій.
Також планується поставити кілька синів по всьому периметру роботи, щоб більш повністю представити навколишнє середовище для вирішення проблем паркування.
Далі ми плануємо досить багато поліпшень, наприклад, ми хочемо повісити освітлювальну техніку на роботі, схожу на реальні автомобілі, для яких деякі деталі друкуються на принтері 3D. Це необхідно для моделювання руху за автомобіль передньою опорою на певну відстань ( випадок руху в щільний струмок або джем руху).
Перший ліричний відступ. До речі, якщо ви робите щось, як це, ми відразу попереджаємо про використання китайських аналогів - перша версія моторного контролера була зроблена на ній, що призвело до декількох тижнів пошуку причини дивної поведінки двигуна - виявилося, що мікроконтролер від "анлогу" закривав в рази деякі входи до виходу. Ми можемо бути так щасливими, але з оригінальним Arduino, ми не бачили ніяких проблем.
Другий ліричний відступ. Перед створенням шасі контролер виявилося, що він не був відомий як і чим контролювати. Відсутність офіційної документації на контрольні сигнали компонентів шасі давало підставу згадати лабораторії фізики і прокопувати через несцилограф. В результаті виходить, що там використовується модуляція імпульсу. Немає нічого складного.
Третій ліричний відступ. Десь між відкриттям проблеми і складанням нового контролера, було прийнято рішення відмовитися від монтажної плати, на якій було зібрано перший контролер, а отже, метод «ірон-принтер» проводилося з мотелів. В кінці вийшов дуже акуратний і великий.
Алгоритм поведінки роботи для фасування кульки представлений схематично на малюнку нижче. Здавалося б, нічого незрозумілого про нього. Я повинен сказати кілька слів про алгоритм. Це практика ситуації, коли м'яч виходить з погляду роботи. По суті, вона має тільки 4 можливості для повороту: вперед вправо, вперед зліва і назад вліво. Робот пам'ятає, де він останній бачив м'яч і перетворюється в цьому напрямку в повній аналогії з футболістом, з якого поля зору м'яч зникне. Він хоче перевернутися до сторони, де м'яч пішов.
Щоб повернути, ми використовуємо алгоритм “зірки”: наприклад, ми йдемо спочатку до правого і вперед, потім зліва і назад, ми отримуємо такі дуги, опуклими до загальної центральної точки. Цей маневр нагадує поворот в обмеженому просторі, відомий багатьма з екзамену в ДАІ (рис. 6).
Рис. 6 Якщо є відмерла торцева ситуація, пов'язана з тим, що робот застрягає, наприклад, чіпляючи на ногу крісла, програма керування визначає цю ситуацію, невідповідністю швидкості двигуна та кута коліс. У цьому випадку робот намагається повернутися назад, зробити маневр на "зірці" і продовжувати рухатися до мети.
Четвертий ліричний відступ. Під час підготовки до конференції молодих вчених МРТ було збільшено параметр прискорення для підвищення сприйняття глядача. В результаті робота почала худнути частіше на перешкоди, так як схема виявлення справи «протіння» перестала працювати адекватно – колеса почали ковтнути. Крім того, на більшій швидкості робот почав пропустити м'яч частіше (це видно в першому відео). Тому нам довелося вирішити проблему оптимального балансування між швидкістю обробки відео, переміщенням роботи та прийняттям рішень. З точки зору складності вона нагадувала про те, що використовується в старому радянському автомобілі з ручною коробкою, такими як «Москвич» або «Жигуля», кожен з яких мав власний регульований зчеплення і запалювання. Будь-який, хто досвідчений це розуміє, що він займає деякий час для регулювання балансу між зчепленням і газовим педаль, щоб автомобіль прискорився плавно.
Рис. 7 Поведінковий алгоритм роботи з фасування кульки У третьому варіанті роботи (це майже зібрано), ми переключили для використання відеокамери «професійної» та лінзи.
Рис. 8 Паралельно проводяться експерименти для установки камер на стійках, які монтуються на рейки повнорозмірного автомобіля (рис. 8). Це дозволить вам відтворити справжню геометрію та умови дорожньої сцени.
Ми плануємо розповісти більше про нову версію роботи в наступній статті.
Джерело: habrahabr.ru/company/cognitive/blog/226417/