Програмування роботів. Розробка робототехніки

Програмування роботів. Розробка робототехніки

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

Залізні люди Анрі Дро

Ще в міфах Стародавньої Греції згадувалися механічні раби, створені Гефестом для виконання важких і одноманітних робіт. А першим винахідником і розробником людиноподібного робота став легендарний Леонардо да Вінчі. До наших днів збереглися детальні креслення італійського генія, що описують механічного лицаря, здатного імітувати людські рухи руками, ногами, головою.


Створенню перших автоматичних механізмів з програмним управлінням поклали початок в кінці століття європейські годинникові майстри. Найбільш досягли успіху на цьому терені швейцарські фахівці батько і син П 'єр-Жак і Анрі Дро. Ними створена ціла серія людиноподібних роботів ("" пишучий хлопчик "", "" рисувальник "", "" музикантша "") в основі управління якими лежали годинникові механізми. Саме на честь Анрі Дро надалі всі програмовані людиноподібні автомати стали називати "" андроїдами "".

Витоки програмування

Основи програмування промислових роботів були закладені на зорі XIX століття у Франції. Тут же і були розроблені перші програми для автоматичних текстильних верстатів (прядильних і ткацьких). Стрімко зростаюча армія Наполеона гостро потребувала обмундирування і, отже, тканин. Винахідник з Ліона Жозеф Жаккар запропонував спосіб швидкого переналаштування ткацького верстата для виробництва різних видів продукції. Нерідко ця процедура вимагала величезної кількості часу, колосальних зусиль і уваги цілого колективу. Суть нововведення зводилася до використання картонних карток з перфорованими отворами. Голки, потрапляючи в просічені місця, необхідним чином зміщували нитки. Зміна карт швидко проводилася оператором верстата: нова перфокарта - нова програма - новий тип тканини або візерунка. Французька розробка стала прообразом сучасних автоматизованих комплексів, роботів з можливістю програмування.

Ідею, запропоновану Жаккаром, із захопленням використовували у своїх автоматичних пристроях багато винахідників:

  • Начальник статистичного управління С.М. Корсаков (Росія, 1832 р.) - в механізмі для порівнювання та аналізу ідей.
  • Математик Чарльз Беббідж (Англія, 1834 р.) - в аналітичній машині для вирішення широкого кола математичних завдань.
  • Інженер Герман Холлеріт (США, 1890 р.) - у пристрої для зберігання і обробки статистичних даних (табуляторі). Для нотатки: у 1911 році компанія. Холлеріта отримала назву IBM (International Business Machines).

Перфокарти були основними носіями інформації аж до 60-х років минулого століття.

Що таке робот?

Своєю назвою інтелектуальні машини зобов 'язані чеському драматургу Карелу Чапеку. У п 'єсі "R.U^". ", що побачила світ у 1920 році, письменник назвав роботом штучну людину, створену для важких і небезпечних ділянок виробництва (robota (чеськ.) - каторга). А що відрізняє робота від механізмів і автоматичних пристроїв? На відміну від останніх, робот не тільки виконує певні дії, сліпо дотримуючись закладеного алгоритму, але і здатний більш тісно взаємодіяти з навколишнім середовищем і людиною (оператором), адаптувати свої функції при зміні зовнішніх сигналів і умов.

Прийнято вважати, що перший діючий робот був сконструйований і реалізований в 1928 році американським інженером Р. Уенслі. Людиноподібний "" залізний інтелектуал "" отримав ім 'я Герберт Телевокс. На лаври піонерів претендують також вчений-біолог Макото Нісімура (Японія, 1929 р.) і англійський військовослужбовець Вільям Річардс (1928 р.). Створені винахідниками антропоморфні механізми мали схожий функціонал: здатні були рухати кінцівками і головою, виконувати голосові і звукові команди, відповідати на прості питання. Основним призначенням пристроїв була демонстрація науково-технічних досягнень. Черговий виток у розвитку технологій дозволив незабаром створити і перших індустріальних роботів.


Покоління за поколінням

Розробка робототехніки являє собою безперервний, поступальний процес. До теперішнього моменту сформувалися три яскраво виражених покоління "" розумних "" машин. Кожне характеризується певними показниками і сферами застосування.

Перше покоління роботів створювалося для вузького виду діяльності. Машини здатні виконувати тільки певну запрограмовану послідовність операцій. Пристрої управління роботами, схемотехніка і програмування практично виключають автономне функціонування і вимагають створення спеціального технологічного простору з необхідним додатковим обладнанням та інформаційно-вимірювальними системами.

Машини другого покоління називають відчутими, або адаптивними. Програмування роботів здійснюється з урахуванням великого набору зовнішніх і внутрішніх сенсорів. На основі аналізу інформації, що надходить з датчиків, виробляються необхідні керуючі впливи.

І нарешті, третє покоління - інтелектуальні роботи, які здатні:

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

В основі штучного інтелекту лежить алгоритмічне та програмне забезпечення.

Загальна класифікація

На будь-якій представницькій сучасній виставці роботів різноманіття "" розумних "" машин здатне вразити не тільки простих обивателів, а й фахівців. А які бувають роботи? Найбільш загальну і змістовну класифікацію запропонував радянський вчений А.Є. Кобринський.

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


За типом управління можна виділити біотехнічні (копіюючі, командні, кіборги, інтерактивні та автоматичні), за принципом - жорстко програмовані, адаптивні і гнучко програмовані. Бурхливий розвиток сучасної мікропроцесорної техніки надає розробникам практично безмежні можливості при проектуванні інтелектуальних машин. Але відмінне схемне і конструктивне рішення слугуватиме лише дорогою оболонкою без відповідного програмного та алгоритмічного забезпечення.

Засади програмування роботів

Щоб кремній мікропроцесора зміг взяти на себе функції мозку робота, необхідно "" залити "" в кристал відповідну програму. Звичайна людська мова не здатна забезпечити чітку формалізацію завдань, точність і надійність їх логічної оцінки. Тому необхідна інформація подається в певному вигляді за допомогою мов програмування роботів.

Відповідно до вирішуваних завдань управління виділяють чотири рівні такої спеціально створеної мови:

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

Робототехніки прагнуть звести програмування роботів до спілкування з ними мовами вищого рівня. В ідеалі оператор ставить завдання: "" Зробити збірку двигуна внутрішнього згоряння автомобіля "" і очікує від робота повного виконання завдання.

Мовні нюанси

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


Найбільш поширені роботоорієнтовані мови - AML і AL. Перший розроблений фірмою IBM тільки для управління інтелектуальними механізмами власного виробництва. Другий - продукт фахівців Стенфордського університету (США) - активно розвивається і справляє істотний вплив на формування нових мов цього класу. Професіонал легко розгледить в мові характерні риси Паскаля і Алгола. Всі мови, орієнтовані на роботів, описують алгоритм, як послідовність дій "" розумного "" механізму. У зв 'язку з цим програма часто виходить дуже громіздкою і незручною в практичній реалізації.

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

Навчання роботів

Будь-який сучасний робот являє собою навчальну та адаптивну систему. Вся необхідна інформація, що включає знання і вміння, передається їй у процесі навчання. Це здійснюється, як безпосереднім занесенням в пам 'ять процесора відповідних даних (детальне програмування - семплінг), так і з використанням сенсорів робота (методом наочної демонстрації) - всі рухи і переміщення механізмів робота заносяться в пам' ять і потім відтворюються в робочому циклі. Навчаючись, система перебудовує свої параметри і структуру, формує інформаційну модель зовнішнього світу. Це і є основна відмінність роботів від автоматизованих ліній, промислових автоматів з жорсткою структурою та інших традиційних засобів автоматизації. Перелічені методи навчання мають суттєві недоліки. Наприклад, при семплінгу переналаштування вимагає певного часу і праці кваліфікованого фахівця.

Досить перспективною виглядає програма для програмування роботів, представлена розробниками Лабораторії інформаційних технологій при Массачусетському технологічному інституті (CSAIL MIT) на міжнародній конференції промислової автоматизації і робототехніки ICRA-2017 (Сінгапур). Створена ними платформа C-LEARN володіє достоїнствами обох методів. Вона надає роботу бібліотеку елементарних рухів із заданими обмеженнями (наприклад, зусилля хвата для маніпулятора відповідно до форми і жорсткості деталі). У той же час, оператор демонструє роботу ключові рухи в тривимірному інтерфейсі. Система, виходячи з поставленого завдання, формує послідовність операцій для виконання робочого циклу. C-LEARN дозволяє переписати існуючу програму для робота іншої конструкції. Оператору при цьому не потрібні поглиблені знання в галузі програмування.

Робототехніка і штучний інтелект

Фахівці Оксфордського університету попереджають, що в найближчі два десятиліття машинні технології замінять більше половини сьогоднішніх робочих місць Дійсно, роботи давно вже працюють не тільки на небезпечних і важких ділянках. Наприклад, програмування торгових роботів значно потіснило брокерів-людей на світових біржах. Кілька слів про штучний інтелект.


У уявленні обивателя це антропоморфний робот, здатний замінити людину в багатьох сферах життя. Частково так і є, але більшою мірою штучний інтелект - це самостійна галузь науки і технології, за допомогою комп 'ютерних програм, що моделює мислення "" Homo sapiens "", роботу його мозку. На сьогоднішньому етапі розвитку ШІ більше допомагає людям, розважає їх. Але, за прогнозами експертів, подальший прогрес в області робототехніки і штучного інтелекту може поставити перед людством цілий ряд морально-етичних і юридичних питань.

Цього року на виставці роботів у Женеві найдосконаліший андроїд Софія заявила, що вчиться бути людиною. У жовтні Софія вперше в історії штучного інтелекту була визнана громадянкою Саудівської Аравії з повноцінними правами. Перша ластівка?

Основні тенденції робототехніки

У 2017 році фахівці цифрової індустрії відзначили кілька видатних рішень у галузі технологій віртуальної реальності. Не залишилася осторонь і робототехніка. Дуже перспективним виглядає напрямок вдосконалююче управління складним робомеханізмом через віртуальний шолом (VR). Експерти пророкують затребуваність такої технології в бізнесі та промисловості. Ймовірні скрипти використання:

  • Управління безпілотною технікою (складськими навантажувачами і маніпуляторами, дронами, трейлерами),
  • Проведення медичних досліджень та хірургічних операцій,
  • Освоєння важкодоступних об 'єктів і областей (дно океану, полярні області). Крім того, програмування роботів дозволяє їм здійснювати і автономну роботу.

Ще один популярний тренд - connected car. Зовсім недавно представники гіганта Apple заявили про старт розробок власного "безпілотника" ". Все більше фірм висловлюють свою зацікавленість у створенні машин, здатних самостійно переміщатися по пересічних трасах, зберігаючи вантажі та обладнання.

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


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