Itcs - фабрика сучасного програмування

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

Itcs - фабрика сучасного програмування

Без ПО будь-який сучасний робот - це купа металобрухту, і зараз є велика різниця між поняттями «чим оснащений» і «що може». Довгі роки софт для роботів писався в рамках окремих додатків, були і варіанти готових програмних комплексів, але рідко хто замислювався про створення окремої повноцінної спеціалізованої операційної системи. Разом з тим необхідність в такий є, і її можна позначити такими впливають факторами як модульність програмних додатків, що відповідають за виконання певних операцій, і необхідність швидкого підключення / реалізації нових можливостей.

Саме з таких міркувань створювалася ROS. На даний момент вона складається з двох основних частин: безпосередньо ядра і додаткових наборів програмних засобів (бібліотек, драйверів, готових рішень).

Що ж таке ROS?

ROS не слід сприймати як операційну систему «під один проект», хоча PR2 сьогодні є її локомотивом. На базі Robot Operating System зараз функціонує кілька десятків різних комерційних і експериментальних моделей, і цей список постійно розширюється.

Itcs - фабрика сучасного програмування

Безліч роботів базується зараз на ROS

В принципі, роботоделам нічого більшого насправді і не потрібно: ROS забезпечує необхідний рівень абстрагування від «заліза», з підтримкою великої кількості сучасного обладнання на рівні драйверів і бібліотек, має в своєму арсеналі базові рішення в області комунікацій і обміну повідомленнями. При цьому сам проект є open source (ліцензія BSD), до його розробки зараз підключено досить серйозне співтовариство, в якому присутні представники великих вузів і виробників електронної техніки.

Ядро ROS без особливих проблем встановлюється на Ubuntu, в експериментальному режимі також підтримуються OS X, Arch, Fedora, Gentoo, OpenSUSE, Slackware, Debian, і частковий функціонал може бути доступний при установці на Windows і FreeBSD.

ROS базується на коді, написаному на С ++ (модифікація roscpp), незначні доповнення в рамках packages можна писати і на Python (модифікація rospy). Для прикладу скажемо, що на С ++ є програмування обміну повідомленнями, їх фільтрації, драйверів джойстика, камер, лазерних датчиків, звуку, алгоритмічних фільтрів обробки даних, 3D-аналізу і комп'ютерного бачення (OpenCV), системи прийняття рішень і так далі. На Python ви отримуєте доступ до набагато меншого функціоналу, але в цілому, управління можна побудувати і на базі цієї мови. У великій кількості документації на сайті www.ros.org ви часто можете знайти приклади листингов відразу на С ++ і Python. На останньому найчастіше реалізуються клієнтські API. При цьому спочатку може здатися, що той же робот PR2 програмується тільки на «двох плюсах», проте, якщо копнути бібліотеки, можна помітити, що деякі з них написані на Python. В цілому, для роботи з ROS потрібно знати дві мови.

Додаткові програмні засоби ROS

Як вже було сказано вище, операційна система ROS складається з ключового ядра і додаткових програмних засобів. Давайте розглянемо останні більш докладно. Справа в тому, що тут зібрано все найкраще з того, що є і використовується в робототехніці. Отже, в першу чергу це комплект ROS-PKG, в якому містяться різні бібліотеки, драйвера, а також програмні додатки, в основному від сторонніх розробників, і в рамках цих реалізацій можна знайти алгоритми виконання тих чи інших прикладних задач.

Спеціально для робота Willow Garage PR2 є додатковий набір програмних засобів WG-ROS-PKG.

Що стосується самих датчиків і обладнання, то в рамках додаткових колекцій підтримується весь сучасний спектр:

Комунікації з пристроєм передбачається декількох типів, найбільш стандартний варіант реалізований в бібліотеці actionlib, яка передбачає стандартну клієнт-серверну архітектуру.

Крім усього іншого окремої колекцією йде реалізація робовіденія на базі OpenCV (Open Source Computer Vision Library), на якій варто зупинитися більш докладно.

Які завдання актуальні зараз?

PR2 розрахований як багатофункціональний робот, по суті, він може виконувати будь-які завдання, які йому запрограмують: від гри в шахи до сортування рушників. Потрібно сказати, що коштує він дорого - $ 400 тис. І, звичайно, дозволити собі таку дорогу іграшку можуть далеко не всі.

Itcs - фабрика сучасного програмування

Але є одна ніша, в якій PR2 особливо актуальний - освітні установи. Адже, одне питання - вивчати програмування сучасних роботів в теорії, а інший - на практиці. Тому компанія Willow Garage зараз активізувалася в цьому сегменті, причому представила 11 навчальним закладам своїх роботів безкоштовно. Плюс до цього, досить великі надії покладаються на співтовариство, якому надається можливість дистанційного програмування PR2. На сайті компанії можна знайти всі вихідні коди з поясненнями, а також взяти участь в періодично проводяться змаганнях. В цілому, потрібно зазначити, що всі ключові напрацювання в PR2 багато в чому є результатами конкурсів, проведених компанією розробників.

Один з останніх проводився навесні цього року, і називався він Perception Challenge, тобто був присвячений пізнанню. Учасникам давалося в цілому 35 предметів, а точніше, їх опису (розміри) і фотографії. В якості таких об'єктів виступали звичайні речі, такі як консервні банки з продуктами, пакети молока і т.п. На базі цього потрібно було написати програму, здатну навчити робота:

  • Розпізнаванню одного об'єкта в різних положеннях.
  • Розпізнаванню безлічі об'єктів в різних положеннях.
  • Розпізнаванню і ідентифікації (впізнавання) об'єкта в різних положеннях.
  • Розпізнаванню і ідентифікації (впізнавання) безлічі об'єктів в різних положеннях.

В ході проведення змагань крім 35 початкових об'єктів, організатори додавали 15 нових. Цим самим підкреслювалася можливість динамічного навчання робота «на льоту». Приз за перше місце становив $ 7 тис.

Itcs - фабрика сучасного програмування

Комп'ютерне зір PR2

Серед інших напрямків розвитку досліджень в рамках PR2 варто виділити чотири-п'ять основних, про які ми розповімо окремо.