You are on page 1of 72

1

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ
УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ

КОНСПЕКТ ЛЕКЦІЙ
З дисципліни «Програмування пристроїв керування роботами»
для студентів усіх форм навчання
спеціальності 174 Автоматизація, комп’ютерно-інтегровані технології та
робототехніка
спеціалізації «Комп’ютеризовані та робототехнічні системи»

Електронне видання

ЗАТВЕРДЖЕНО
кафедрою КІТАМ
Протокол № 1
від 28 серпня 2023

Харків 2023

1
2

Конспект лекцiй з дисципліни «Програмування пристроїв керування


роботами» для студентів спеціальності 151 «Автоматизація та комп’ютерно-
інтегровані технології» спеціалізації «Комп’ютеризовані та робототехнічні
системи» [Електронне видання] / Упоряд.: Максимова С.С. − Харкiв: ХНУРЕ,
2023. – 86 с.

Упорядник С.С. Максимова

Рецензент: А.М. Синотін, докт. техн. наук, проф. каф. КІТАМ.

2
3

ЗМІСТ

Вступ 4
1 Введення в робототехніку та програмування роботів 5

2 Архітектура системи керування роботами 10

3 Мови програмування для роботів 18

4 Алгоритми робототехніки 22

5 Програмування роботів з використанням ROS 27

6 Віддалене керування роботами та IoT 34

7 Віртуальні середовища та симуляція роботів 52


8 Системи відслідковування та контролю роботів 58
9 Взаємодія роботів з навколишнім середовищем 65
10 Мобільні роботи серії Robotino: апаратне та програмне забезпечення 70
11 Мобільні роботи серії Robotino: розробка програмного забезпечення 72

12 Системи комп’ютерного зору та їх використання у мобільних 79


платформах різного призначення
Перелік посилань 83

3
4

ВСТУП

Масове застосування гнучких інтегрованих систем стає ефективним лише тоді,


якщо, поряд з вимогами суспільства до їх використання, рівень і культура
виробництва досягають певної високої якості. Комерційно вигідні розробка,
впровадження та експлуатація гнучких інтегрованих систем та роботів
залишаються достатньо дорогими і можливі далеко не на кожному підприємстві
у будь-якій країні. Нещодавні події на японській АЕС «Фукусіма», аварії на
нафтовій платформі у Мексиканській затоці, інших об’єктах показали, що
навіть у найрозвинутіших країнах світу рівень розвитку робототехніки не
відповідає сучасним потребам використання технічних пристроїв в умовах,
небезпечних для людини. З моменту Чорнобильської катастрофи робототехніка
просунулася ненабагато вперед і відсутність належного її технічного і
інформаційного забезпечення викликає необхідність використання людських
ресурсів під час виконання досить простих завдань (наприклад, розвідка,
виконання транспортних операцій, очищення території від радіоактивного
бруду) [1-9]. Таким чином, рівень технічного, технологічного та інформаційного
забезпечення сучасних гнучких інтегрованих робототехнічних систем є
невідповідним викликам суспільства і вимагає підвищеної уваги з боку
теоретиків та практиків. Вказане робить дослідження в даній галузі одними з
найбільш перспективних у сучасній науці та технологіях.
Функціонування роботизованого обладнання ГІРС в реальних умовах стика-
ється з впливом зовнішніх чинників, пов’язаних з типом завдань, які ставляться
перед роботами. Здебільшого до них належать завдання маніпуляції та
транспортування або їх об’єднання. При цьому суттєво підвищується роль
пристроїв керування роботами, які забезпечують формування керуючих
сигналів двигунів роботів, отримують інформацію від сенсорної системи
робота, забезпечують зв’язок робота з іншими пристроями ГІРС. Тому виникає
питання про розробку програмних засобів пристроїв керування роботами.

4
1. ВВЕДЕННЯ В РОБОТОТЕХНІКУ ТА ПРОГРАМУВАННЯ

1.1 Визначення робототехніки та її значення.


1.2 Огляд типів роботів та їх застосувань.
1.3 Огляд апаратного та програмного забезпечення роботів.

1.1 Визначення робототехніки та її значення.


Робототехніка - це галузь науки і техніки, яка займається створенням, розвитком
та застосуванням роботів. Роботи - це механічні, електронні або програмовані
пристрої, які можуть виконувати різноманітні завдання. Важливим аспектом
робототехніки є розробка алгоритмів та програмного забезпечення для керування
роботами.
Значення робототехніки полягає в тому, що вона революціонізує багато сфер
життя, забезпечуючи можливість автоматизації виробництва, використання роботів у
медицині для виконання складних операцій, у сфері обслуговування клієнтів,
рятувальних операціях та інших галузях. Робототехніка допомагає підвищити
продуктивність, забезпечити точність та безпеку виконання завдань, а також
вирішувати завдання, які важко або небезпечно виконувати для людини.
Робототехніка залишається надзвичайно актуальною і важливою галуззю науки
і технології в сучасному світі. Ось декілька причин, чому робототехніка є актуальною:
– Автоматизація виробництва: Робототехніка дозволяє автоматизувати рутинні
завдання виробництва, підвищуючи продуктивність і знижуючи витрати. Це особливо
важливо в епоху глобальної конкуренції.
– Підвищення якості: Роботи володіють високою точністю та повторюваністю,
що допомагає поліпшити якість виробництва та послуг.
– Безпека: Роботи можуть бути використані для виконання завдань в
небезпечних умовах, зменшуючи ризик для людей, наприклад, при рятувальних
операціях або дослідженні вулканів чи океанів.
– Медицина: Робототехніка дозволяє виконувати складні хірургічні операції з
високою точністю і мінімізацією травм для пацієнтів.
6

– Економія ресурсів: Роботи можуть бути використані для оптимізації


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

1.2 Огляд типів роботів та їх застосувань.


Роботи мають широкий спектр типів та застосувань в різних галузях. Ось огляд
деяких типів роботів та їх можливих застосувань:
1) Промислові роботи:
a) Застосування в автоматизованих виробництвах для збільшення
продуктивності та якості виробництва.
b) Зварювальні роботи, роботи для виготовлення автомобілів, обробки
матеріалів тощо.
Промислові роботи - це роботи, які спеціалізуються на автоматизації
виробничих процесів у промисловості. Вони грають важливу роль у виробництві та
мають ряд характеристик та застосувань:
– Автоматизація виробництва: Промислові роботи використовуються для
виконання рутинних завдань, таких як зварювання, фарбування, монтаж, обробка
матеріалів і т. д. Це допомагає підвищити продуктивність та якість виробництва.
– Точність та повторюваність: Роботи володіють високою точністю та
можуть повторювати однакові операції без втрати якості, що робить їх ідеальними для

6
7

завдань, де необхідна однакова якість на всіх етапах виробництва.


– Зменшення ризику для людей: Використання роботів у небезпечних
умовах, таких як робота з отруйними речовинами або в умовах високої температури,
дозволяє знизити ризик для робочої сили.
– Флексібільність: Деякі промислові роботи можуть бути програмовані для
виконання різних завдань, що робить їх універсальними у виробничому процесі.
– Взаємодія з іншими системами: Роботи можуть бути інтегровані з іншими
автоматизованими системами, такими як конвеєри, системи контролю якості і т. д.,
для покращення виробничих процесів.
– Економія часу і ресурсів: Роботи можуть працювати без перерви, не
відчуваючи втоми, що дозволяє оптимізувати виробничі процеси і зменшити витрати
на робочу силу.
Промислові роботи використовуються в різних галузях, включаючи
автомобільну промисловість, електроніку, харчову промисловість, фармацію,
металообробку та багато інших. Вони є важливим елементом сучасного виробництва,
що дозволяє підвищити продуктивність і ефективність виробничих процесів.
2) Медичні роботи:
a) Хірургічні роботи для виконання складних операцій з високою точністю
та мінімізацією пошкоджень тканин.
b) Роботи для доставки медичних препаратів або обладнання в лікарнях.
3) Самохідні автомобілі:
a) Автомобілі з автопілотом для безпечної та ефективної автоматизованої
їзди.
b) Доставка товарів та пасажирський транспорт.
4) Роботи-дослідники:
a) Дослідницькі роботи, які досліджують важкодоступні або небезпечні
місця, наприклад, на дно океану чи в зону радіаційної забрудненості.
5) Роботи-компаньйони:
a) Роботи-компаньйони для старших людей або осіб з обмеженими
можливостями, щоб надавати підтримку та компанію.

7
8

6) Військові роботи:
a) Використовуються для розвідки, рятувальних операцій, патрулювання та
навіть бойових завдань.
7) Роботи в сільському господарстві:
a) Автономні роботи для поливу, врожаювання, розпушування ґрунту тощо.
8) Роботи для обслуговування клієнтів:
a) Роботи-офіціанти в ресторанах, роботи-консультанти в магазинах, роботи
для обслуговування клієнтів у готелях.
Це лише декілька прикладів. Робототехніка постійно розвивається, і роботи
знаходять нові застосування у різних сферах життя, сприяючи автоматизації та
покращенню нашого способу існування.

1.3 Огляд апаратного та програмного забезпечення роботів.


1) Апаратне забезпечення роботів:
a) Сенсори: Роботи можуть бути обладнані різними типами сенсорів, такими
як камери, лідари, ультразвукові сенсори, датчики тиску та інші. Вони допомагають
роботам збирати інформацію з навколишнього середовища.
b) Актуатори: Це механізми, які дозволяють роботам виконувати фізичні дії.
До актуаторів входять мотори, гідравлічні циліндри, пневматичні системи та інші
пристрої для руху та маніпуляцій.
c) Процесори та мікроконтролери: Роботи оснащуються обчислювальною
технікою для обробки інформації та прийняття рішень.
d) Живлення: Роботи можуть використовувати різні джерела живлення, такі
як акумулятори, кабелі для підзарядки або пальне, в залежності від їхнього
призначення та типу.
2) Програмне забезпечення роботів:
a) Операційні системи: Роботи можуть працювати на спеціалізованих
операційних системах, які дозволяють керувати роботами та взаємодіяти з ними.
b) Алгоритми та штучний інтелект: Використовуються для прийняття рішень
та навчання роботів виконувати завдання. Це включає в себе машинне навчання,

8
9

нейронні мережі та інші методи.


c) Керування та програмування: Роботи можуть бути програмовані для
виконання конкретних завдань або взаємодії з навколишнім середовищем. Це може
включати в себе текстові, графічні або блокові мови програмування.
d) Взаємодія з користувачем: Роботи можуть мати інтерфейси для взаємодії з
операторами або користувачами через голосові команди, сенсорний екран або інші
методи.
Апаратне та програмне забезпечення спільно дозволяють роботам взаємодіяти з
навколишнім середовищем, приймати рішення та виконувати завдання у різних
галузях, включаючи виробництво, медицину, науку та інші сфери.

9
10

2. АРХІТЕКТУРА СИСТЕМИ КЕРУВАННЯ РОБОТАМИ

2.1 Компоненти системи керування (датчики, актуатори, контролери).


2.2 Взаємодія між апаратним та програмним забезпеченням.
2.3 Принципи архітектури робота.

2.1 Компоненти системи керування (датчики, актуатори, контролери).


Архітектура системи керування роботами є важливим аспектом розробки
робототехнічних систем і визначає структуру та організацію компонентів, які
взаємодіють для керування роботами. Така система включає в себе апаратну та
програмну складові. Ось основні аспекти архітектури системи керування роботами:
1. Сенсори і датчики: Сенсори та датчики використовуються для збору
інформації про навколишнє середовище робота. Це можуть бути камери, лідари,
ультразвукові датчики, гіроскопи, акселерометри, та інші. Архітектура повинна
включати в себе інтерфейси для зчитування та обробки даних з цих сенсорів.
2. Керуючий блок (контролер): Керуючий блок або контролер є "мозком"
робота і відповідає за обробку інформації від сенсорів і видачу керуючих команд
актуаторам. Це може бути мікроконтролер, комп'ютер або спеціалізована платформа.
3. Актуатори: Актуатори виконують команди, що надходять від контролера,
для здійснення рухів або дій. Приклади актуаторів включають колеса для
переміщення, руки для маніпуляції предметами, сегменти для руху та інші механізми.
4. Програмне забезпечення керування: Це програми та алгоритми, які
визначають поведінку робота. Вони включають в себе алгоритми для навігації,
визначення шляху, взаємодії з оточуючим середовищем, обробки об'єктів тощо.
Програмне забезпечення також може включати систему управління завданнями та
обробки даних.
5. Керування комунікацією: Роботи можуть взаємодіяти з іншими
системами, роботами або користувачами через мережеві з'єднання. Архітектура
повинна включати в себе засоби для комунікації та передачі даних.
6. Модульність і розширюваність: Система керування повинна бути

10
11

модульною, що дозволяє легко додавати або заміняти компоненти для розширення


функціональності або вдосконалення робота.
7. Безпека та надійність: Архітектура повинна враховувати аспекти безпеки
та надійності, особливо якщо робот взаємодіє з людьми або виконує завдання у
критичних областях.
8. Інтерфейс користувача: Для роботів, які взаємодіють з людьми,
архітектура повинна містити інтерфейс користувача, який дозволяє операторам
взаємодіяти з роботом і встановлювати параметри робота.
Загальна архітектура системи керування роботами може бути різною в
залежності від конкретного типу робота і його завдань. Проте дотримання основних
принципів архітектури допомагає створити ефективну та функціональну систему
керування роботами.
Система керування (СК) - це комплексний набір обладнання і програмного
забезпечення, який використовується для керування різними процесами та
пристроями в реальному часі. Основні компоненти системи керування включають
датчики, актуатори та контролери. Давайте розглянемо кожен із них більш докладно:
1) Датчики (сенсори) призначені для збору інформації з фізичного оточення
або системи. Вони можуть вимірювати різні параметри, такі як температура,
вологість, тиск, швидкість, рівень, світло, звук і багато інших. Датчики перетворюють
цю інформацію в електричні сигнали або цифрові дані, які можуть бути оброблені
контролером.
2) Контролери (також відомі як контролери керування або мікроконтролери)
- це обчислювальні пристрої, які використовуються для обробки інформації,
отриманої від датчиків, і вироблення відповідних керуючих сигналів для актуаторів.
Контролери можуть бути програмовані для виконання конкретних завдань і реагувати
на різні ситуації в реальному часі. Вони зазвичай містять центральний процесор
(CPU), пам'ять і різні порти вводу-виводу (I/O) для підключення до датчиків і
актуаторів.
3) Актуатори призначені для впливу на фізичний світ або систему на основі
керуючих сигналів, які генеруються контролером. Вони перетворюють електричні або

11
12

механічні сигнали в корисні дії або рухи. Приклади актуаторів включають


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

2.2 Взаємодія між апаратним та програмним забезпеченням.


Взаємодія між апаратним та програмним забезпеченням в роботах відіграє
ключову роль у функціонуванні та керуванні роботами. Роботи, незалежно від їхнього
призначення і завдань, мають апаратну складову (фізичне обладнання, сенсори,
актуатори і так далі) і програмну складову (код, алгоритми, операційну систему і так
далі). Ось як вони взаємодіють:
1) Сприйняття інформації:
a) Сенсори, які входять в апаратну складову робота, сприймають
інформацію з оточення, таку як відстань, температура, світло, звук, об'єкти тощо.
b) Програмне забезпечення обробляє сигнали, отримані від сенсорів,
перетворюючи їх у корисну інформацію, яку робот може розуміти і використовувати
для прийняття рішень.
2) Обробка і прийняття рішень:
a) На основі інформації, яку надають сенсори, програмне забезпечення
виконує аналіз та приймає рішення щодо того, які дії потрібно виконати. Ця частина
включає в себе розпізнавання об'єктів, навігацію, планування шляху, контроль руху і
багато іншого.
3) Керування актуаторами:
a) Програмне забезпечення генерує команди для актуаторів, які включають в

12
13

себе рухові команди або інші дії, необхідні для виконання завдань робота.
b) Актуатори відповідають на ці команди, виконуючи відповідні рухи або
дії. Ця фаза взаємодії включає в себе керування моторами, затворами, схватами,
камерами, світлодіодами і багато іншого обладнання.
4) Зворотний зв'язок:
a) Робот може також використовувати сенсори для отримання інформації
про результати своїх дій.
b) Програмне забезпечення аналізує цю інформацію, щоб визначити, чи були
досягнуті поставлені завдання, і в разі необхідності коригує план або дії робота.
5) Керування інтерфейсом:
a) Роботи можуть мати інтерфейси для взаємодії з людьми або іншими
системами. Програмне забезпечення реалізує ці інтерфейси, дозволяючи
користувачам або іншим системам взаємодіяти з роботом.
Цей процес взаємодії між апаратним і програмним забезпеченням робота
дозволяє йому виконувати різноманітні завдання, включаючи роботи в
автоматизованих виробництвах, медицинських роботів, автономних автомобілів,
роботів для досліджень у важкодоступних місцях та багато інших сферах.

2.3 Принципи архітектури робота.


Архітектура робота визначає структуру, організацію та взаємодію компонентів
апаратного та програмного забезпечення робота. Це важливий аспект в розробці
роботів, оскільки він визначає, як різні частини системи будуть співпрацювати для
досягнення поставлених цілей. Ось декілька ключових принципів архітектури робота:
1) Модульність:
a) Роботична система повинна бути розділена на модулі, які виконують
конкретні функції або завдання. Кожен модуль повинен бути самодостатнім і здатним
взаємодіяти з іншими модулями через чітко визначені інтерфейси. Це дозволяє
полегшити розробку, тестування та обслуговування робота.
2) Розподілена архітектура:
a) Робот може включати в себе різні компоненти, які можуть фізично

13
14

знаходитися на різних частинах робота або навіть взаємодіяти з різними роботами.


Розподілена архітектура дозволяє оптимізувати використання ресурсів та полегшує
масштабування системи.
3) Забезпечення надійності та безпеки:
a) Роботи, особливо ті, які взаємодіють з людьми або операційними
системами, повинні мати високий рівень надійності і безпеки. Архітектура повинна
враховувати можливі ризики і забезпечувати заходи для захисту від небажаних
ситуацій та відмов.
4) Відкритість і стандарти:
a) Використання стандартів і відкритих інтерфейсів дозволяє робити систему
більш сумісною та розширюваною. Це дозволяє інтегрувати різні компоненти та
модулі в роботах, а також співпрацювати зі сторонніми розробниками.
5) Адаптивність та розширюваність:
a) Архітектура повинна бути здатною адаптуватися до змінних умов і
завдань. Роботи повинні бути легко розширюваними для додавання нових функцій
або модулів в майбутньому.
6) Ефективність:
a) Розробники повинні враховувати обмежені ресурси робота, такі як
обчислювальна потужність, енергоспоживання та обсяг пам'яті. Архітектура повинна
бути оптимізованою для ефективного використання цих ресурсів.
7) Легкість тестування і супроводу:
a) Архітектура повинна спрощувати процеси тестування, налагодження та
супроводу робота. Це допомагає виявляти та виправляти помилки та забезпечувати
стабільну роботу системи.
Дотримання цих принципів допомагає створювати ефективні, надійні та
функціональні роботи, які відповідають поставленим завданням і вимогам
користувачів.

14
15

3. МОВИ ПРОГРАМУВАННЯ ДЛЯ РОБОТІВ

3.1 Вибір мови програмування для роботів (наприклад, C++, Python, ROS).
3.2 Основи програмування руху та навігації роботів.
3.3 Робота із сенсорами та обробка даних.

3.1 Вибір мови програмування для роботів (наприклад, C++, Python, ROS).
Програмування роботів є важливою складовою робототехніки та автоматизації.
Існує багато різних мов програмування та середовищ для роботів, в залежності від
конкретних завдань та платформи робота. Ось кілька з найпопулярніших мов та
середовищ програмування для роботів:
1. Python є однією з найпопулярніших мов програмування для роботів
завдяки своєму простому синтаксису та великій кількості бібліотек для робототехніки.
Ви можете використовувати бібліотеки, такі як ROS (Robot Operating System), для
створення програм для керування роботами.
2. C/C++ ці мови мають високу швидкодію та зазвичай використовуються
для програмування вбудованих систем і роботів, які вимагають точного керування
апаратними ресурсами.
3. Java може бути використана для програмування роботів, особливо в тих
випадках, коли вам потрібна багатоплатформна сумісність. Деякі роботи, такі як ті, які
використовують платформу Android, також використовують Java.
4. Blockly та Scratch ці мови програмування спрощують процес навчання
програмуванню, особливо для дітей. Вони дозволяють створювати програми для
роботів шляхом перетягування та викидання блоків.
5. LabVIEW часто використовується в інженерних та наукових дослідженнях
для програмування роботів та автоматизації.
6. MATLAB використовується для моделювання та керування роботами,
особливо у випадках, коли потрібен аналіз даних та обробка сигналів.
7. Robot Framework це середовище та мова для автоматизації тестування
роботів та інших систем.

15
16

8. ROS (Robot Operating System) – це відкрита платформа для робототехніки,


яка надає набір інструментів і бібліотек для розробки програм для роботів на базі
Linux.
Вибір мови програмування залежить від вашого досвіду, типу робота, яким ви
керуєте, і ваших конкретних завдань. Роботи можуть бути програмовані для
виконання різних завдань, від маніпулювання об'єктами до навігації в просторі та
взаємодії з людьми. Важливо зазначити, що більшість роботів вимагають знань не
лише в програмуванні, але і в робототехніці, механіці та електроніці для повного
розуміння та керування ними.
Вибір мови програмування для роботів залежить від конкретного завдання, типу
робота, рівня досвіду розробника та інших факторів. Ось деякі принципи, які можуть
допомогти вибрати правильну мову програмування для проекту:
1. Тип робота: Різні типи роботів можуть вимагати різних мов програмування.
Наприклад, роботи з мікроконтролерами, які використовуються у вбудованих
системах, часто програмуються мовами, такими як C/C++. Роботи з великим обсягом
обчислень та відкритим програмним забезпеченням можуть бути програмовані на
Python або ROS.
2. Досвід програмування: Якщо вже є досвід програмування в певній мові,
доцільно вибрати знайому мову, щоб швидше розпочати роботу.
3. Екосистема і підтримка: Необхідно переконатися, що для обраної мови є
відповідні інструменти, бібліотеки та спільнота. Це допоможе спростити розробку та
вирішення можливих проблем.
4. Вимоги до продуктивності: Якщо робот потребує високої продуктивності
(наприклад, в робототехніці для виробництва), то може бути потрібно
використовувати мови, такі як C/C++, що мають менші накладні витрати.
5. Платформа та апаратна підтримка: Необхідно переконатися, що обрана мова
підтримується на конкретній робототехнічній платформі та апаратному обладнанні.
6. Завдання та функціональність: Необхідно проаналізувати, які конкретні
завдання потрібно вирішити та які функціональні можливості вимагаються від мови
програмування.

16
17

7. Спільнота та ресурси: Доцільно розглянути наявність онлайн-спільнот та


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

3.2 Основи програмування руху та навігації роботів.


Програмування руху та навігація роботів – це важлива частина робототехніки.
Це означає створення програм, які дозволяють роботам переміщуватися в просторі,
уникати перешкод та виконувати завдання. Ось деякі основні концепції та підходи до
програмування руху та навігації роботів:
1. Кінематика робота визначає, які види рухів можливі для робота та як вони
контролюються. Вона включає в себе рухи ланцюга зв'язків робота та обчислення
його положення та орієнтації.
2. Системи координат: важливо мати систему координат, яка описує простір, в
якому рухається робот. Робот може мати власну систему координат, і розробник
повинен вміти переводити координати між різними системами.
3. Управління рухом: можна використовувати різні методи для управління
рухом робота, такі як пропорційний-інтегрально-диференційний (ПІД) регулятори,
відомі як PID-контролери, або методи штучного інтелекту, такі як алгоритми навчання
з підсиленням.
4. Сенсори і відомості про навколишнє середовище: роботи зазвичай
використовують різноманітні сенсори, такі як лазерні дальномери, камери, гіроскопи
та акселерометри, для збору інформації про навколишнє середовище. Ця інформація
використовується для навігації та уникнення перешкод.
5. Алгоритми навігації: існують різні алгоритми навігації, такі як алгоритми
потенційних полів, алгоритми SLAM (Simultaneous Localization and Mapping) та інші.
Вони дозволяють роботу планувати свій шлях та визначати своє положення в
просторі.

17
18

6. Уникнення перешкод: для того, щоб робот уникав перешкод, потрібно


використовувати алгоритми обнаруження перешкод та прийняття рішень щодо обходу
або уникнення їх.
7. Керування моторами та платформою: роботи зазвичай мають рухомі
актуатори, такі як мотори, розробникові необхідно знати, як керувати ними для
досягнення потрібного руху та орієнтації.
8. Тестування та налагодження: після написання програм для руху та навігації
важливо провести тестування та налагодження, щоб переконатися, що робот
правильно виконує завдання.
Це лише загальні концепції. Конкретний підхід до програмування руху та
навігації робота буде залежати від конкретного робота, його сенсорів, завдань та
середовища, в якому він працює.

3.3 Робота із сенсорами та обробка даних.


Роботи взаємодіють із навколишнім середовищем за допомогою різних типів
сенсорів. Ось деякі основні кроки і підходи до роботи із сенсорами та обробки даних
на прикладі робототехніки:
1. Вибір сенсорів: необхідно визначити, які сенсори будуть потрібні для
конкретного проєкту. Наприклад, це можуть бути камери, лазерні дальномери,
гіроскопи, акселерометри, датчики тиску, сенсори касання та інші.
2. Підключення сенсорів: наступним кроком треба підключити сенсори до
робота та налаштувати їх для збору даних. Доцільно використовуватт спеціалізовані
драйвери або бібліотеки для зручності.
3. Збір даних: програмне отримання даних з сенсорів. Це може включати
зчитування значень з аналогових або цифрових портів, опитування сенсорів по мережі
або інші методи відповідно до специфікацій сенсорів.
4. Фільтрація та обробка даних: дані, які отримуються від сенсорів, часто
потребують фільтрації та обробки, щоб видалити шум та покращити якість
інформації. Для цього можна використовувати алгоритми фільтрації, такі як фільтр
Калмана або фільтр оптимальної обробки.

18
19

5. Калібрування: в деяких випадках сенсори потребують калібрування для


точного вимірювання. Калібрування допомагає виправити помилки та забезпечити
правильність даних.
6. Обробка зображень: якщо використовуються камери, необхідно буде
обролювати зображення певними чином. Це може включати в себе виявлення об'єктів,
розпізнавання облич, слідування рухомих об'єктів і т. д.
7. Аналіз та прийняття рішень: на основі даних, отриманих з сенсорів, можна
розробити алгоритми аналізу та прийняття рішень, які допомагають роботу
взаємодіяти з навколишнім середовищем, виявляти перешкоди, планувати маршрути і
багато іншого.
8. Візуалізація даних: зручно візуалізувати дані для налагодження та
відлагодження системи. Графічні інтерфейси або консольні інструменти можуть
допомогти бачити та аналізувати дані з сенсорів.
9. Зберігання даних: важливі дані необхідно зберігати у відповідних
форматах та налагоджувати систему реєстрації даних для аналізу та налагодження
після експерименту.
10. Захист даних і приватність: завжди необхідно дотримуватися правил
захисту даних і приватності, особливо якщо робот збирає важливу інформацію.
Робота із сенсорами та обробка даних є важливою частиною робототехніки,
оскільки дозволяє роботу сприймати своє оточення і взаємодіяти з ним ефективно.

19
20

4. АЛГОРИТМИ РОБОТОТЕХНІКИ

4.1 Основи розробки алгоритмів для роботів.


4.2 Використання інтелектуальних систем керування (штучний інтелект,
нейронні мережі).
4.3 Проблеми розрахунку шляху та відстеження об'єктів.

4.1 Основи розробки алгоритмів для роботів.


Алгоритми в робототехніці грають важливу роль у керуванні роботами і
виконанні різних завдань. Вони дозволяють роботам приймати рішення, навігувати в
середовищі, взаємодіяти з навколишнім світом і виконувати різні дії. В основі
робототехнічних алгоритмів лежать різні методи і технології, зазвичай
використовуються такі елементи:
1. Сенсори і сприймання інформації: Багато роботів обладнані різними
сенсорами, такими як камери, лазерні сканери, гіроскопи, акселерометри, датчики
відстані і т. д. Алгоритми сприймання і обробки цієї інформації допомагають роботам
розуміти своє оточення.
2. Навігація: Роботи можуть використовувати алгоритми для планування
шляху і навігації в незнайомих середовищах. Це може включати в себе алгоритми
картографування, локалізації і керування.
3. Керування: Роботи потребують алгоритмів для керування своїми рухами і
виконання завдань. Це може бути стандартними алгоритмами керування рухом,
такими як PID-регулятори, або більш складними алгоритмами машинного навчання,
наприклад, нейронними мережами.
4. Взаємодія з оточенням: Роботи також використовують алгоритми для
взаємодії з об'єктами і іншими роботами. Це може включати в себе алгоритми
розпізнавання об'єктів, обробки голосу, обробки тексту і т. д.
5. Машинне навчання і штучний інтелект: Деякі роботи використовують
методи машинного навчання і штучного інтелекту для вирішення складних завдань,
таких як визнання образів, розпізнавання мови, прийняття рішень і навіть

20
21

самонавчання.
6. Відмовостійкість і безпека: Важливо також враховувати можливі відмови
і забезпечувати безпеку робота і його оточення за допомогою алгоритмів
резервування та інших методів.
7. Комунікація: Роботи можуть взаємодіяти з іншими роботами або з
операторами через різні засоби комунікації, і це вимагає розробки алгоритмів передачі
і обробки інформації.
8. Завдання і планування: Робототехнічні алгоритми також включають
алгоритми планування і виконання завдань, які допомагають роботам розуміти, як
виконувати послідовність дій для досягнення певної мети.
Залежно від конкретного завдання і типу робота, використовуються різні
алгоритми і підходи. Розробка робототехнічних алгоритмів є складним завданням, яке
вимагає розуміння фізичних і програмних аспектів робота, а також математичних та
комп'ютерних методів.
Розробка алгоритмів для роботів - це важливий крок у створенні роботів, які
можуть виконувати різні завдання. Ось основні кроки та принципи розробки
алгоритмів для роботів:
1) Аналіз завдання:
a) Аналіз завдання, яке робот повинен виконувати. Визначення, які операції
та функціональність потрібні для реалізації.
2) Збір інформації:
a) Необхідно дослідити об'єкт робота та його оточення. Визначення, які
датчики і сенсори можуть бути використані для збору інформації про навколишнє
середовище.
3) Планування алгоритму:
a) Розробка плану алгоритму, який буде визначати послідовність дій робота
для вирішення завдання. Включення усіх можливих варіантів та умов.
4) Проектування алгоритму:
a) Розробіть алгоритм на основі плану, визначивши кожен крок роботи.
Використовуйте структури даних і алгоритми, які найкраще підходять для задачі.

21
22

5) Імплементація алгоритму:
a) Запис програмного коду, який реалізує алгоритм на обраній платформі
робота. Необхідно використовувати мову програмування та інструменти, які
підходять для конкретного завдання.
6) Тестування та налагодження:
a) Тестування алгоритму на роботі. Виявлення помилок і недоліків та
виправте їх. Внесення змін в алгоритм за потреби.
7) Оптимізація:
a) Покращення алгоритм для підвищення продуктивності та точності робота.
Необхідно враховувати обмеження обчислювальних ресурсів та енергоспоживання.
8) Забезпечення безпеки:
a) Розгляд питання безпеки в процесі розробки алгоритму. Робот має не
завдати шкоди навколишньому середовищу або людям.
9) Документація:
a) Документування алгоритму, включаючи коментарі в коді, опис
інтерфейсів та робочих процесів. Це допоможе іншим розробникам розуміти та
редагувати код.
10) Постійне вдосконалення:
a) Роботи зазвичай потребують постійного удосконалення та апгрейдів
алгоритмів для адаптації до нових завдань та оточення.
Розробка алгоритмів для роботів - це ітеративний процес, який вимагає великої
уваги до деталей і вміння вирішувати технічні та інженерні завдання. Успіх залежить
від ретельного аналізу завдання та вміння розробника раціонально використовувати
ресурси та оптимізувати алгоритми для досягнення бажаних результатів.

4.2 Використання інтелектуальних систем керування (штучний інтелект,


нейронні мережі).
Використання інтелектуальних систем керування, таких як штучний інтелект
(ШІ) і нейронні мережі, в робототехніці і автономних системах дозволяє роботам
приймати більш складні рішення, адаптуватися до змінних умов і вирішувати

22
23

завдання, які раніше були важкі або навіть неможливі для виконання. Ось деякі
способи використання ШІ та нейронних мереж в робототехніці:
1) Навігація і автономна навігація:
a) Використання нейронних мереж для обробки даних з камер, лідарів та
інших сенсорів для створення мап та планування оптимального маршруту.
b) Застосування алгоритмів машинного навчання для розпізнавання об'єктів
та визначення відстаней, що допомагає у уникненні перешкод.
2) Взаємодія з людьми:
a) Реалізація голосових асистентів для комунікації з користувачами.
b) Використання комп'ютерного зору та обробки мови для взаємодії з
людьми через жести, мову тіла та голосові команди.
3) Маніпуляція і робот-маніпулятори:
a) Навчання нейронних мереж керувати рухом маніпулятора, щоб
виконувати завдання, такі як збирання чи складання складних конструкцій.
b) Використання сенсорів силі для регулювання сил, які робот накладає на
об'єкти під час маніпуляції.
4) Самонавчання:
a) Застосування підсилених навчальних алгоритмів для того, щоб роботи
могли навчитися покращувати свої навички та приймати рішення на основі досвіду.
5) Планування шляху:
a) Використання алгоритмів машинного навчання для покращення
алгоритмів планування шляху, щоб роботи могли оптимально рухатися в складних
середовищах.
6) Вирішення складних завдань:
a) Використання глибокого навчання для вирішення складних завдань, таких
як розпізнавання об'єктів на зображеннях, аналіз тексту або прогнозування подій.
7) Оптимізація систем керування:
a) Використання ШІ для оптимізації систем керування роботами, щоб
підвищити ефективність та точність їх роботи.
8) Адаптація до змінних умов:

23
24

a) Використання алгоритмів машинного навчання для адаптації робота до


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

4.3 Проблеми розрахунку шляху та відстеження об'єктів.


Проблеми розрахунку шляху та відстеження об'єктів є ключовими аспектами
для роботів та систем автоматизації. Ось деякі з основних проблем та викликів, які
виникають у цих областях:
Проблеми в розрахунку траєкторії руху:
1. Уникнення перешкод: Роботам потрібно здати вміння знаходити шляхи,
які уникнуть перешкод та інших небезпечних ситуацій.
2. Оптимізація маршруту: Важливо планувати маршрути так, щоб роботи
дісталися до свого призначення за найкоротшим часом або з найменшими витратами.
3. Динамічна навігація: Зміна оточення та переміщення об'єктів може
ускладнити прокладання шляху. Роботи повинні бути здатні виправляти свій маршрут
у реальному часі.
4. Забезпечення безпеки: Роботи повинні уникати виходу за межі безпечних
зон і здійснювати безпечні рухи, щоб не завдати шкоди оточуючим.
Проблеми у відстеженні об'єктів:
1. Визначення об'єкту: Роботи повинні точно розпізнавати і ідентифікувати
об'єкти, які вони повинні відстежувати, включаючи їхню позицію та орієнтацію.
2. Відстеження в реальному часі: Відстеження об'єктів може бути складним
завданням в реальному часі, особливо коли об'єкти рухаються швидко або змінюють
траєкторію.
3. Переривчастий контакт: Іноді об'єкти можуть виходити з області
видимості або переривати контакт із сенсорами, що ускладнює їхнє відслідковування.
4. Багатооб'єктне відстеження: Роботи можуть мати справу з багатьма

24
25

об'єктами одночасно, і це може викликати конфлікти та колізії у відстеженні.


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

25
26

5. ПРОГРАМУВАННЯ РОБОТІВ З ВИКОРИСТАННЯМ ROS

5.1 Введення до ROS (Robot Operating System).


5.2 Організація вузлів та комунікація між ними.
5.3 Розробка пакетів та взаємодія з роботами за допомогою ROS.

5.1 Введення до ROS (Robot Operating System).


Robot Operating System, або ROS, є популярною відкритою платформою для
розробки програмного забезпечення для роботів. Незважаючи на назву, ROS - це не
операційна система в традиційному розумінні, але набір інструментів, бібліотек і
стандартів для спрощення розробки та управління роботами. Ось деякі ключові
аспекти та концепції ROS:
1. Відкрита платформа: ROS - це відкрита та спільнотно розроблювана
платформа, що означає, що ви можете безкоштовно користуватися, модифікувати і
спільно вдосконалювати її.
2. Модульність: ROS розбитий на модулі, відомі як "пакети". Кожен пакет
містить в собі певний функціонал, і ви можете легко комбінувати ці пакети для
створення комплексних роботів.
3. Взаємодія через повідомлення: Однією з основних концепцій ROS є
взаємодія між роботами та компонентами через обмін повідомленнями. Це дозволяє
різним частинам робота спілкуватися між собою асинхронно.
4. ROS Master: ROS Master - це централізований сервер, який допомагає
вузлам ROS знаходити одне одного та спілкуватися.
5. Вузли та топіки: Вузли - це програми, які виконують певні завдання на
роботі. Вони можуть публікувати або передавати повідомлення через топіки, що
дозволяє їм обмінюватися інформацією.
6. Сервіси та діагностика: ROS також надає можливості для виклику сервісів
та використання інструментів для діагностики робота.
7. Засоби візуалізації та симуляції: ROS має інструменти, такі як RViz і
Gazebo, для візуалізації та симуляції роботів, що сприяє розробці та налагодженню

26
27

програмного забезпечення.
8. Підтримка різних мов програмування: ROS підтримує кілька мов
програмування, зокрема Python та C++, що дозволяє розробникам використовувати
мову, з якою вони зручніше працювати.
ROS дозволяє розробникам створювати різноманітні робототехнічні застосунки,
від простих маніпуляторів до складних автономних автомобілів і дронів. Це
платформа з великою спільнотою користувачів і безліччю ресурсів для навчання та
розробки.
Ось основні кроки та підходи до програмування роботів з використанням ROS:
1. Встановлення ROS: ROS підтримує різні версії Linux, включаючи Ubuntu.
Потрібно встановити ROS-пакунки та налаштувати робоче середовище.
2. Створення робота: Необхідно визначите фізичний робот або симуляційну
модель робота, з яким планується робота. Для цього можна використовувати такі
платформи, як ROS Gazebo або підтримувані робототехнічні платформи, наприклад,
TurtleBot або PR2.
3. Створення пакетів ROS: ROS організований на основі пакетів. Необхідно
створити новий пакет для проекту, використовуючи команду catkin_create_pkg. Далі
треба визначити залежності та налаштування пакету у файлі CMakeLists.txt.
4. Розробка вузлів ROS: Вузли ROS - це програми, які виконують певні
завдання. Можна розробляти власні вузли на мовах програмування, таких як Python
або C++. Кожен вузол може публікувати, передавати або слухати повідомлення через
ROS топіки.
5. Використання ROS бібліотек: ROS надає багато готових бібліотек та
інструментів для роботи з різними аспектами роботи, включаючи кінематику,
навігацію, візуалізацію тощо. Доцільно використовувати ці бібліотеки, щоб спростити
програмування вашого робота.
6. Керування роботом: Для керування роботом або симуляційною моделлю
використовуються команди ROS. Можна відправляти команди для переміщення,
збору даних, взаємодії з датчиками та багато іншого.
7. Візуалізація та налагодження: ROS має інструменти для візуалізації та

27
28

налагодження робота. Можна використовувати інструменти, такі як RViz, для


відображення даних з робота та налагодження системи.
8. Розробка алгоритмів: Алгоритми для робота можливо, використовуючи
можливості ROS та бібліотеки. Це може бути алгоритм навігації, обробки візуальної
інформації або інші завдання.
9. Тестування та налагодження: Після розробки програмного забезпечення
проводиться тестування та налагодження, використовуючи різні інструменти ROS для
відстеження і вирішення проблем.
10. Розгортання на роботі: Після успішного програмування робота треба
розгорнути програмне забезпечення на реальному роботі або симуляційній моделі, в
залежності від використовуваного середовища.
Це загальна структура програмування роботів з використанням ROS. Конкретні
кроки та підходи можуть різнитися в залежності від вашого конкретного проекту та
робототехнічної платформи.

5.2 Організація вузлів та комунікація між ними.


Один з ключових аспектів ROS – це організація програмного забезпечення у
вузли (nodes) та комунікація між ними. Вузли – це окремі програми або процеси, які
виконують певні завдання, і вони можуть спілкуватися один з одним через різні
механізми ROS. Розглянемо у цьому процесі більше деталей:
1. Створення вузлів: Кожен вузол – це окрема програма або скрипт,
написаний на мовах програмування, таких як Python або C++. Можна створювати
стільки вузлів, скільки потрібно для проєкту. Для створення вузла використовуються
бібліотеки та інструменти, які надає ROS.
2. Публікація і підписка на топіки (Publishing and Subscribing to Topics):
Вузли можуть публікувати дані на певному топіку (topic) або підписуватися на топік,
щоб отримувати дані з нього. Топік – це спосіб обміну даними між вузлами.
Наприклад, один вузол може публікувати дані про відстань, а інший може підписатися
на цей топік, щоб отримувати ці дані. Приклад створення топіка в Python з
використанням бібліотеки rospy:

28
29

import rospy
from std_msgs.msg import String

#Ініціалізація вузла
rospy.init_node('my_node')

#Створення топіка
pub = rospy.Publisher('my_topic', String, queue_size=10)

#Публікація даних на топік


pub.publish("Hello, ROS!")

Інший вузол може підписатися на той самий топік, щоб отримувати дані.

3. Виклик сервісів (Calling Services): Крім обміну даними через топіки, вузли
можуть викликати сервіси (services) для виконання певних операцій або отримання
інформації з інших вузлів. Це використовується для синхронного обміну даними.
4. Параметри (Parameters): ROS дозволяє зберігати параметри вузла, які
можна змінювати без перекомпіляції програмного забезпечення. Це зручно для
налаштування параметрів вузлів.
5. Взаємодія через ROS Master: ROS Master - це централізований сервер,
який допомагає вузлам ROS знаходити одне одного та спілкуватися. Кожен вузол
реєструється в ROS Master, щоб інші вузли могли знайти його.
6. Віддалений виклик сервісів (Remote Service Calls): Вузли можуть
викликати сервіси на інших роботах або комп'ютерах, що дозволяє взаємодіяти з
роботами, які знаходяться в інших місцях.
7. Візуалізація та налагодження: Можна використовувати інструменти, такі
як RViz, для візуалізації вузлів і їх взаємодії, що допомагає налагоджувати та
«розуміти» робота.

29
30

8. Створення графу вузлів: Програма може складатися з багатьох вузлів, які


співпрацюють один з одним. Граф вузлів допомагає визначити, як вони пов'язані та як
обмінюються даними.

5.3 Розробка пакетів та взаємодія з роботами за допомогою ROS.


Розробка пакетів та взаємодія з роботами за допомогою Robot Operating System
(ROS) - це ключова частина робототехнічних проектів. Пакети - це спосіб організації
та підтримки вашого програмного забезпечення в ROS. Ось кроки для розробки
пакетів та їх взаємодії з роботами:
1. Створення нового ROS пакета: Перший крок - це створення нового пакета
ROS для вашого проекту. Треба використовувати команду catkin_create_pkg, якщо
використовується Catkin (стандартна система збірки для ROS), або colcon для ROS 2:

catkin_create_pkg my_package rospy std_msgs

У цьому прикладі створюється пакет з ім'ям my_package, який використовує


бібліотеку rospy і пакет std_msgs.
2. Створення вузлів та функціоналу: Розробка вузлів і функціоналу в рамках
пакету відповідно до потреб проекту.
3. Взаємодія із роботом: Для взаємодії з роботом може знадобитися знання
його апаратного та програмного забезпечення. Це може включати в себе встановлення
водійського програмного забезпечення, обробку даних з датчиків, керування рухом,
виклик сервісів для керування функціональністю робота і т. д.
4. Взаємодія із симуляцією (за потреби): Важливим етапом може бути
взаємодія з симуляційною системою, такою як Gazebo. Це дозволяє тестувати та
налагоджувати програмне забезпечення на роботах у віртуальному середовищі перед
реальними експериментами.
5. Налаштування параметрів: ROS дозволяє встановлювати параметри для
пакету, що дозволяє змінювати налаштування програмного забезпечення без зміни
коду. Це корисно для налаштування робота для різних завдань.

30
31

6. Використання системи збірки: ROS використовує систему збірки для


компіляції та будівництва пакетів. Використовуються команди catkin_make (для ROS)
або colcon (для ROS 2), щоб зібрати пакети.
7. Тестування та налагодження: як в симуляційному середовищі, так і на
реальному роботі. Використовуються інструменти, такі як RViz, Gazebo, а також
власні засоби для відлагодження.
8. Розгортання на роботі: Після вдалого розроблення та налагодження вашого
програмного забезпечення його розгортають на реальному роботі та перевіряють його
в реальних умовах.
9. Спілкування з іншими пакетами: Зазвичай, пакет взаємодіє з іншими
пакетами для спільної роботи на роботах. Можна підписуватися на топіки, викликати
сервіси або користуватися параметрами інших пакетів.
Розробка програмного забезпечення для робота за допомогою ROS – це процес,
що вимагає спеціалізованих знань та досвіду. Багато документації та ресурсів
доступні на офіційному веб-сайті ROS та в його спільноті для навчання та вирішення
конкретних завдань.

31
32

6. ВІДДАЛЕНЕ КЕРУВАННЯ РОБОТАМИ ТА IOT

6.1 Використання Інтернету речей (IoT) для керування роботами.


6.2 Передача даних та керування через мережу.
6.3 Забезпечення безпеки та конфіденційності даних.

6.1 Використання Інтернету речей (IoT) для керування роботами.


Віддалене керування роботами та Інтернетом речей (IoT) є актуальною темою в
сучасному світі, оскільки це відкриває безліч можливостей у різних галузях,
включаючи виробництво, транспорт, охорону здоров'я, будівництво та багато інших.
Ось деякі ключові аспекти віддаленого керування роботами та IoT:
1. Збір та передача даних: Велика кількість датчиків, розміщених на різних
об'єктах (наприклад, в промислових машинах або в будинках), збирають різні дані,
такі як температура, вологість, тиск, рівень пального тощо. Ці дані передаються через
мережу IoT для подальшого аналізу та моніторингу.
2. Віддалене керування роботами: Роботи та машини можуть бути обладнані
засобами для віддаленого керування. Це дозволяє операторам з інших локацій
взаємодіяти з роботами, керувати їх рухом та функціями, а також спостерігати за їх
станом.
3. Автоматизація і управління процесами: IoT дозволяє автоматизувати
багато процесів на основі даних, зібраних з датчиків. Наприклад, виробничі лінії
можуть самостійно реагувати на зміни в умовах виробництва, оптимізуючи
виробництво.
4. Моніторинг та діагностика: Завдяки IoT, можливий постійний моніторинг
стану об'єктів і машин. Це дозволяє вчасно виявляти проблеми та проводити
попередній аналіз перед виникненням серйозних поломок.
5. Ефективне використання ресурсів: Завдяки віддаленому керуванню
роботами та IoT, можливо оптимізувати використання ресурсів, таких як енергія,
пальне, сировина тощо.
6. Забезпечення безпеки: IoT може бути використаний для забезпечення

32
33

безпеки, наприклад, віддалений моніторинг системи безпеки в будинку або віддалене


керування дронами для виконання рятувальних операцій.
7. Смарт-сіті та розумна інфраструктура: IoT також застосовується для
створення розумних міст та інфраструктури, що дозволяє керувати освітленням,
транспортом, водопостачанням та іншими муніципальними послугами більш
ефективно та екологічно.
Важливо пам'ятати, що разом із великими можливостями віддаленого керування
роботами та IoT приходять і питання щодо безпеки даних, приватності і захисту від
кіберзагроз. Забезпечення цих аспектів є критичним для успішної реалізації таких т
технологій.
Використання Інтернету речей (IoT) для керування роботами відкриває широкі
можливості для покращення автоматизації та ефективності у різних галузях. Ось деякі
способи, які дозволяють впровадження IoT для керування роботами:
1. Збір та передача даних: Роботи можуть бути обладнані сенсорами та
датчиками, які збирають дані про їх стан та оточуюче середовище. Ці дані можуть
бути відправлені в хмарний сервіс або на локальний сервер для подальшого аналізу.
2. Віддалене моніторинг і діагностика: IoT дозволяє операторам в реальному
часі спостерігати за роботами через веб-інтерфейс або мобільний додаток. Вони
можуть перевіряти стан роботів, отримувати сповіщення про можливі проблеми і
вживати заходів для їх усунення.
3. Віддалене керування: Оператори можуть віддалено керувати роботами,
відправляючи команди через мережу IoT. Це може включати керування рухом,
активування спеціальних функцій та виконання завдань.
4. Автоматичні реакції на умови: За допомогою IoT можна налаштувати
системи автоматичних реакцій роботів на зміни в оточуючому середовищі.
Наприклад, роботи можуть реагувати на зміну температури або вологості,
переключаючися в режим економії енергії або виконуючи інші дії.
5. Оптимізація робочих процесів: Збираючи дані про продуктивність та стан
роботів, компанії можуть аналізувати ці дані, щоб вдосконалити робочі процеси та
підвищити ефективність виробництва.

33
34

6. Прогнозування обслуговування та попередження поломок: За допомогою


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

6.2 Передача даних та керування через мережу.


Передача даних та керування через мережу є ключовими аспектами в сучасних
технологічних системах, включаючи Інтернет речей (IoT) і керування роботами. Ось
деякі основні принципи та методи передачі даних та керування:
1. Протоколи передачі даних: Для передачі даних через мережу
використовуються різні протоколи, такі як HTTP, MQTT, CoAP, WebSocket і інші.
Вибір протоколу залежить від конкретних вимог системи і типу даних, які потрібно
передавати.
2. Сервери та клієнти: У багатьох випадках мережева архітектура передбачає
наявність серверів і клієнтів. Сервери приймають запити і виконують дії або надають
інформацію, тоді як клієнти генерують запити і отримують відповіді від серверів.
3. RESTful API: Використання архітектурного стилю REST (Representational
State Transfer) дозволяє створювати прості та легкі у використанні API для передачі
даних і керування. REST використовує HTTP методи (GET, POST, PUT, DELETE) для
взаємодії з ресурсами на сервері.

34
35

4. MQTT (Message Queuing Telemetry Transport): MQTT є легковаговим


протоколом для передачі повідомлень між пристроями в реальному часі. Він часто
використовується в системах IoT для взаємодії між датчиками, пристроями та
серверами.
5. WebSocket: WebSocket - це протокол для забезпечення двостороннього
зв'язку між клієнтом і сервером через одне з'єднання TCP. Він часто використовується
для інтерактивних застосунків, де потрібно відразу отримувати та надсилати дані.
6. Захист даних: Для забезпечення конфіденційності і цілісності даних під
час їх передачі через мережу використовуються різні методи шифрування та
автентифікації. SSL/TLS є загально визнаним протоколом для захисту даних.
7. Керування доступом і автентифікація: Для забезпечення безпеки
мережевої взаємодії реалізують системи керування доступом і автентифікації. Кожен
користувач або пристрій повинен бути автентифікований, і йому надається
відповідний рівень доступу.
8. Віддалене керування: Для керування роботами віддалено оператори або
системи керування надсилають команди через мережу. Ці команди передаються
роботу через мережеве з'єднання і виконуються на ньому.
Завдяки цим методам і технологіям передачі даних та керування, можна
впроваджувати складні системи IoT та керування роботами, які забезпечують зв'язок,
моніторинг, управління і обробку даних в реальному часі. Однак важливо враховувати
безпеку та пропускну здатність мережі при розробці таких систем.

6.3 Забезпечення безпеки та конфіденційності даних.


Забезпечення безпеки та конфіденційності даних є критичними аспектами у
використанні Інтернету речей (IoT) для керування роботами і передачі даних через
мережу. Нижче наведено основні принципи та методи для забезпечення цих аспектів:
1. Шифрування даних: Використання шифрування для захисту даних під час
їх передачу через мережу. Протоколи, такі як SSL/TLS, забезпечують захист даних від
прослуховування та змін.
2. Аутентифікація і авторизація: Вимога аутентифікації користувачів і

35
36

пристроїв перед наданням доступу до системи. Після аутентифікації користувачі


повинні мати обмежені права доступу (авторизацію) до даних і функцій системи.
3. Захист від кібератак: Системи повинні бути захищені від різних видів
кібератак, таких як вторгнення, викиди послуг, перехоплення даних тощо.
Використовуйте механізми виявлення та запобігання вторгнень (IDS/IPS), файрволи і
інші заходи безпеки.
4. Постійне оновлення і патчі: Періодичне оновлення програмного
забезпечення пристроїв і систем для усунення відомих вразливостей. Важливо
слідкувати за виходом патчів безпеки і вчасно їх встановлювати.
5. Моніторинг і реагування на загрози: Створення системи моніторингу, які
відстежують незвичайну активність або потенційні загрози в мережі. Вчасне
реагування на сповіщення та вживання заходів для захисту.
6. Фізична безпека: Захист фізичного доступу до пристроїв і обладнання, що
використовуються для IoT і керування роботами. Недоступність для несанкціонованих
осіб може запобігти фізичним атакам.
7. Ізоляція даних: Ізоляція даних, які вважаються конфіденційними або
критичними, від інших даних та систем. Це допомогає запобігти розповсюдженню
зловмисних програм та вразливостей.
8. Навчання і освіта: Навчання персоналу, користувачів і операторів про
системи безпеки, процедури і правила. Свідомість щодо безпеки є важливою
частиною захисту системи.
9. Захист від IoT-специфічних загроз: IoT-пристрої можуть бути особливо
уразливими до кіберзагроз, тому важливо враховувати їхню безпеку вже на етапі
розробки, включаючи вбудовані механізми шифрування, обмеження доступу та
оновлення ПЗ.
10. Захист ідентифікаційних даних: Особливу увагу слід приділити захисту
особистих даних користувачів, які можуть бути зібрані системою IoT.
Забезпечення безпеки та конфіденційності даних в системах передачі даних та
керування - це постійний процес, який вимагає систематичного аналізу, оновлення та
вдосконалення заходів безпеки. Успішна реалізація цих заходів допоможе запобігти

36
37

кіберзагрозам і зберегти інформацію в конфіденційності.

37
38

7. ВІРТУАЛЬНІ СЕРЕДОВИЩА ТА СИМУЛЯЦІЯ РОБОТІВ

7.1 Симуляція роботів у віртуальних середовищах.


7.2 Використання симуляції для тестування та розробки.
7.3 Візуалізація та аналіз результатів симуляцій.

7.1 Симуляція роботів у віртуальних середовищах.


Віртуальні середовища та симуляція роботів є важливими компонентами
сучасних досліджень і розвитку робототехніки та штучного інтелекту. Вони
дозволяють інженерам, розробникам та дослідникам тестувати та навчати роботів в
умовах, які не завжди доступні або безпечні в реальному світі. Ключові аспекти
віртуальних середовищ і симуляції роботів:
1. Віртуальні середовища: Це комп'ютерні створення, які імітують реальні або
умовно реальні обстановки, де роботи можуть діяти. Вони можуть бути
візуальною симуляцією, 3D-моделями або навіть абстрактними середовищами.
2. Симуляція фізичних властивостей: У віртуальних середовищах можуть бути
враховані фізичні властивості, такі як гравітація, тертя, аеродинаміка,
деформація матеріалів тощо. Це дозволяє реалістично моделювати рух і
взаємодію роботів з оточенням.
3. Навчання і розвиток навичок: Роботи можуть бути навчені віртуально в різних
завданнях, від навчання ходьби до оптимізації керування в умовах обмежень чи
небезпеки. Це робить можливим швидкий та безпечний процес навчання.
4. Тестування та відладка: Розробники можуть використовувати віртуальні
середовища для тестування роботів та відладки програмного забезпечення без
ризику пошкодження апаратної частини чи навколишнього середовища.
5. Оцінка продуктивності та аналіз результатів: Віртуальні середовища
дозволяють зібрати дані про продуктивність роботів, їх поведінку та взаємодію з
навколишнім середовищем. Це допомагає в розробці та покращенні алгоритмів
управління.
6. Застосування в інших галузях: Віртуальні середовища та симуляція роботів

38
39

також знайшли застосування в інших галузях, наприклад, в медицині для


тренування хірургів, в автомобільній промисловості для розробки автономних
автомобілів, а також в освіті для навчання студентів робототехніці.
У результаті віртуальні середовища та симуляція роботів допомагають
зменшити витрати на розробку та тестування роботів, поліпшують їх продуктивність і
безпеку, а також сприяють швидкому розвитку робототехніки та автономних систем.
Симуляція роботів у віртуальних середовищах - це процес створення імітації
роботів та їхньої взаємодії з оточенням у комп'ютерному середовищі. Цей підхід має
декілька важливих переваг:
1. Безпека: Віртуальні середовища дозволяють тестувати та навчати роботів в
умовах, які можуть бути небезпечними для життя та здоров'я людини або
навколишнього середовища. Наприклад, роботи можуть бути навчені робити
завдання в умовах ядерної аварії або космічного простору без реальних ризиків.
2. Ефективність: Віртуальна симуляція дозволяє виконувати тести та
експерименти значно швидше, ніж в реальному світі. Це полегшує процес
розробки та навчання роботів.
3. Контроль над середовищем: Ви можете створити будь-які умови для тестування,
включаючи різні погодні умови, атмосферний тиск, екстремальні ситуації тощо,
і легко маніпулювати цими параметрами для тестування робота в різних умовах.
4. Ефективність витрат: За винятком ініційальних витрат на створення
віртуального середовища, вартість симуляції зазвичай значно менше, ніж
вартість реальних експериментів або навчання на роботах.
5. Покращення алгоритмів управління: Віртуальна симуляція дозволяє інженерам
налагоджувати та оптимізовувати алгоритми управління роботами без фізичної
реалізації. Це полегшує вдосконалення роботів перед їхньою реальною
реалізацією.
6. Навчання: Віртуальні середовища є ідеальними для навчання операторів роботів
та розробників програмного забезпечення для них. Вони можуть вчитися
керувати роботами та вирішувати завдання в реальності, схожій на реальну, але
без реальних ризиків.

39
40

У сучасній робототехніці симуляція роботів у віртуальних середовищах стала


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

7.2 Використання симуляції для тестування та розробки.


Використання симуляції для тестування та розробки роботів має багато переваг
і може бути важливою складовою процесу створення та вдосконалення
робототехнічних систем. Ось деякі з них:
1. Безпека: Симуляція дозволяє тестувати роботів в умовах, які можуть бути
небезпечними для життя та здоров'я людини або для самого робота. Наприклад,
можна тестувати автономних робочих машини в умовах екстремальної погоди,
аварійних ситуацій або навіть в бойових умовах, не ставлячи під загрозу життя
реальних операторів.
2. Відладка і вдосконалення: Симуляція дозволяє інженерам відлагоджувати та
вдосконалювати алгоритми управління та програмне забезпечення роботів без
необхідності фізичної реалізації. Це значно економить час і ресурси.
3. Варіабельність умов: У симуляції можна створити різні сценарії та умови для
тестування, включаючи різні погодні умови, різні властивості поверхні,
атмосферний тиск тощо. Це дозволяє роботам адаптуватися до різних ситуацій.
4. Швидкість тестування: Віртуальна симуляція дозволяє виконувати тести та
експерименти значно швидше, ніж в реальному світі. Можна виконувати багато
ітерацій та змінювати параметри для оцінки різних рішень.
5. Складні сценарії: Можна створювати складні сценарії та завдання для роботів,
які можуть бути важкими або навіть неможливими для відтворення в реальному
світі. Це допомагає перевірити межі функціональності робота та вдосконалити
його реакцію на складні ситуації.
6. Вартість: За винятком ініційних витрат на створення віртуального середовища,
вартість симуляції зазвичай значно менше, ніж вартість реальних експериментів
або навчання на роботах.

40
41

7. Розвиток інтелектуальних систем: Симуляція дозволяє навчати роботів великою


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

7.3 Візуалізація та аналіз результатів симуляцій.


Візуалізація та аналіз результатів симуляцій є важливими кроками у
використанні симуляцій для розробки роботів і систем штучного інтелекту. Ці
процеси допомагають інженерам і дослідникам зрозуміти, оцінити та вдосконалити
робототехнічні рішення. Ось декілька аспектів візуалізації та аналізу результатів
симуляцій:
1. Візуалізація середовища і робота: Важливо мати змогу відображати віртуальне
середовище, включаючи об'єкти, з якими взаємодіє робот, і самого робота.
Графічна візуалізація може включати 3D-моделі, графіки, анімації та інші
візуальні елементи для створення зрозумілого та інформативного зображення.
2. Відображення даних: Під час симуляції збираються різні дані, такі як позиція
робота, швидкість, стан сенсорів, результати взаємодії з оточенням і багато
іншого. Ці дані можуть бути візуалізовані у вигляді графіків, діаграм, графіків
розвитку та інших графічних представлень.
3. Аналіз результатів: Після завершення симуляції важливо аналізувати отримані
дані для виявлення зразків, визначення проблем, визначення ефективності
алгоритмів та прийняття рішень. Аналітичні інструменти можуть
використовуватися для обробки даних та виконання різних статистичних
обчислень.
4. Кореляція з реальним світом: Важливо аналізувати, наскільки симуляція
відображає реальний світ. Це включає порівняння результатів симуляції з
експериментальними даними з реального середовища або робототехнічних
систем.

41
42

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


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

42
43

8. СИСТЕМИ ВІДСЛІДКОВУВАННЯ ТА КОНТРОЛЮ РОБОТІВ

8.1 Використання систем відслідковування та контролю (SLAM, GPS).


8.2 Робота з картами та локалізація.
8.3 Автономне переміщення роботів.

8.1 Використання систем відслідковування та контролю (SLAM, GPS).


Системи відслідковування та контролю роботів є важливою складовою у сфері
автоматизації та управління роботами в різних сферах, включаючи виробництво,
логістику, медицину та інше. Ці системи допомагають контролювати та координувати
дії роботів, забезпечуючи їх ефективну та безпечну роботу. Основними функціями
таких систем є:
1. Відслідковування положення і руху: Системи відслідковування можуть
використовувати різні технології, такі як GPS, візуальне відслідковування або датчики
на роботах, щоб точно визначити їхнє положення і відслідковувати їхній рух.
2. Керування місцезнаходженням: Системи можуть надавати можливість
керувати місцезнаходженням роботів, встановлюючи точні координати, де роботи
повинні працювати, і забороняючи їм входити в певні зони.
3. Моніторинг робочих параметрів: Системи контролю можуть слідкувати за
параметрами роботів, такими як стан батареї, температура, тиск, вологість і інші, для
запобігання несправностей та підтримки ефективної роботи.
4. Планування маршруту і задач: Системи можуть розробляти оптимальні
маршрути для роботів, а також розподіляти задачі між ними, забезпечуючи
раціональне використання ресурсів і часу.
5. Автоматичне керування: У деяких випадках, системи можуть надавати
автоматичне керування роботами, включаючи автономні роботи, які можуть приймати
рішення на основі власних сенсорів і алгоритмів.
6. Безпека: Системи контролю також відповідають за безпеку роботів і
оточуючих. Вони можуть реагувати на небезпеку або несправності, призначаючи
роботам надійні дії або автоматично вимикаючи їх.

43
44

7. Збір і аналіз даних: Системи можуть збирати велику кількість даних про
роботів і їхню роботу.
Системи відслідковування та контролю, такі як SLAM (Simultaneous Localization
and Mapping) і GPS (Global Positioning System), відіграють критичну роль в
робототехніці для навігації і керування рухом роботів. Ось деякі способи їх
використання:
1. Навігація мобільних роботів: Мобільні роботи використовують системи
SLAM для створення карт місцевості та визначення свого місцезнаходження у
реальному часі. Вони можуть використовувати датчики, такі як лазерні датчики та
камери, для зібрання інформації про навколишнє середовище і використовувати її для
навігації в невідомому просторі.
2. Автономні автомобілі: Системи SLAM і GPS є ключовими для
автономних автомобілів. GPS використовується для грубого визначення
місцезнаходження автомобіля на карті, а системи SLAM допомагають автомобілю
визначити своє точне положення та створити докладну 3D-карту доріг і оточення. Це
дозволяє автомобілю самостійно навігувати по дорозі.
3. Дрони: Дрони використовують системи SLAM та GPS для створення карт
навколишнього середовища, визначення свого місцезнаходження і виконання завдань
в режимі реального часу. Вони можуть використовувати GPS для глобальної навігації
і SLAM для локальної навігації.
4. Роботи в медицині: Медичні роботи, такі як хірургічні роботи та роботи
для доставки ліків, можуть використовувати системи SLAM для навігації внутрішніми
просторами лікарень і визначення свого положення в операційній кімнаті або інших
областях.
5. Агророботи: Сільськогосподарські роботи використовують GPS для
навігації на полях та грунтових дорогах і можуть використовувати SLAM для точного
мапування поля і визначення місця для посадки або збирання врожаю.
6. Робототехніка в виробництві: Виробничі роботи можуть використовувати
SLAM для навігації по заводах і складах, уникання перешкод і виконання завдань у
виробничих об'єктах.

44
45

Ці системи допомагають роботам функціонувати автономно, надаючи їм


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

8.2 Робота з картами та локалізація.


Робота з картами та локалізація (часто відома як SLAM - Simultaneous
Localization and Mapping) є критичними аспектами для багатьох роботів, особливо для
автономних систем. Давайте розглянемо ці концепції більш детально:
1. Локалізація (Localization): Це процес визначення місцезнаходження робота
відносно об'єктів або середовища. Для досягнення точної локалізації роботи
використовуються різні сенсори і методи. Деякі з них включають:
– GPS: Для грубого визначення глобальної позиції робота на Землі.
– Лазерні датчики: Визначення відстаней до об'єктів у навколишньому
просторі.
– Камери і візуальне відслідковування: Використовуються для визначення
положення на основі розпізнавання об'єктів або особливостей відображення.
2. Мапування (Mapping): Це процес створення карти навколишнього
середовища або простору, в якому рухається робот. Іншими словами, це побудова
внутрішнього представлення середовища для робота. Методи мапування включають:
– SLAM (Simultaneous Localization and Mapping): Цей метод
використовується для створення та поновлення мапи одночасно з локалізацією робота.
Робот спостерігає своє оточення і використовує цю інформацію для побудови карти та
визначення свого місця на цій карті.
3. Об'єднання локалізації та мапування: Поєднання цих процесів допомагає
роботам рухатися в невідомих або змінних середовищах. Робот постійно оновлює
свою карту, враховуючи нові дані з сенсорів, і визначає своє місцезнаходження на цій
карті.
4. Використання результатів: Інформація, отримана під час локалізації та
мапування, може бути використана для навігації робота, планування оптимального
маршруту, уникання перешкод та виконання завдань відповідно до програми.

45
46

Приклади роботів, які використовують ці концепції, включають автономні


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

8.3 Автономне переміщення роботів.


Автономне переміщення роботів є ключовою функцією для багатьох
застосувань, де роботи повинні оптимально рухатися в навколишньому середовищі
без постійного керування оператором. Для забезпечення автономного переміщення
роботи використовують різні технології та методи:
1. Сенсори та перцепція: Роботи оснащуються різними типами сенсорів,
такими як лазерні датчики, камери, ультразвукові сенсори, гіроскопи, акселерометри і
інші. Ці сенсори допомагають роботам отримувати інформацію про навколишнє
середовище, таку як перешкоди, стіни, дороги, люди та інші об'єкти.
2. Локалізація: Для визначення свого точного місцезнаходження на карті або
в середовищі роботи використовують методи локалізації. Це може бути виконано за
допомогою GPS (у відкритому просторі) або систем SLAM (в закритих або невідомих
середовищах).
3. Планування маршруту: Роботи використовують алгоритми планування
маршруту для визначення оптимального шляху до пункту призначення, уникнення
перешкод та врахування обмежень, таких як мінімальний радіус обертання.
4. Керування рухом: Роботи мають системи керування рухом, які
обробляють інформацію з сенсорів та виконують відповідні команди для актуаторів,
таких як колеса, мотори або лопатки.
5. Взаємодія з оточенням: Роботи повинні бути здатні взаємодіяти з
навколишнім середовищем. Це включає в себе розпізнавання та уникнення перешкод,
взаємодію з іншими об'єктами (наприклад, іншими роботами або людьми) і
дотримання правил безпеки.
6. Самокалібрування і навчання: Деякі роботи можуть автоматично

46
47

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

47
48

9. ВЗАЄМОДІЯ РОБОТІВ З НАВКОЛИШНІМ СЕРЕДОВИЩЕМ

9.1 Роботи у виробництві та автоматизація завдань.


9.2 Використання роботів у медицині, дослідженнях та інших галузях.
9.3 Інтерактивні роботи та робототехніка в побуті.

9.1 Роботи у виробництві та автоматизація завдань.


Взаємодія роботів з навколишнім середовищем відіграє важливу роль у різних
галузях, включаючи робототехніку, індустрію, транспорт, сферу обслуговування та
інші. Ця взаємодія може бути фізичною, інформаційною та соціальною, і вона
зазвичай вимагає розробки спеціальних систем та алгоритмів.
Основні аспекти взаємодії роботів з навколишнім середовищем включають:
1. Датчики: Роботи використовують різноманітні сенсори, такі як камери,
лідари, акселерометри, гіроскопи, термометри, акустичні датчики та інші, для
сприйняття інформації про своє навколишнє середовище. Ця інформація може бути
використана для навігації, розпізнавання об'єктів, вимірювання параметрів оточення
тощо.
2. Актуатори: Роботи мають рухомі механізми, які використовуються для
взаємодії з навколишнім середовищем. Це можуть бути колеса, кінцеві ефектори,
маніпулятори, які використовуються для виконання завдань у фізичному просторі.
3. Обчислювальна система: Роботи обладнані обчислювальними
системами, такими як мікроконтролери або комп'ютери, які аналізують інформацію
від сенсорів та виконують необхідні обчислення та управління діями робота.
4. Алгоритми і програмне забезпечення: Роботи використовують
спеціальні алгоритми та програмне забезпечення для прийняття рішень та виконання
завдань у взаємодії з навколишнім середовищем. Це можуть бути алгоритми для
навігації, машинного навчання для розпізнавання об'єктів, планування маршруту та
інші.
5. Взаємодія з користувачами та іншими роботами: Роботи можуть
взаємодіяти з людьми та іншими роботами через різні інтерфейси, такі як голосові

48
49

команди, сенсорні панелі, текстові повідомлення, мережі зв'язку тощо.


6. Екологічні впливи: Важливо враховувати екологічні аспекти взаємодії
роботів з навколишнім середовищем, особливо у сферах, де використовуються великі
кількості роботів або автоматизовані системи. Забезпечення ефективного
використання ресурсів та мінімізація негативного впливу на природу стає важливим
завданням.
Взаємодія роботів з навколишнім середовищем є ключовою для багатьох
сучасних технологічних розвідок і має потенціал змінювати наш спосіб життя та
працювати у різних галузях, забезпечуючи покращення ефективності та безпеки
різних процесів.
Роботи у виробництві та автоматизація завдань грають важливу роль у сучасній
промисловості і мають численні переваги. Автоматизація завдань у виробництві
використовує різні типи роботів і автоматизованих систем для виконання фізичних та
інформаційних завдань. Ось деякі з основних переваг цього підходу:
1. Підвищена продуктивність: Роботи можуть працювати безперервно та
високо ефективно, не відчуваючи втоми. Вони можуть виконувати завдання швидше і
точніше, ніж люди, що призводить до збільшення виробничої потужності.
2. Підвищена безпека: Роботи можуть брати на себе небезпечні або рутинні
завдання, які можуть бути шкідливими для здоров'я людини. Це дозволяє зменшити
ризик професійних травм та випадкових подій на виробництві.
3. Покращення якості: Роботи можуть виконувати завдання з високою
точністю та однаковістю, що допомагає покращити якість виробів і послуг.
4. Економія витрат: В інвестицію в автоматизацію можна вважати
зменшення витрат на оплату праці, а також зменшення відходів матеріалів та
збільшення використання ресурсів.
5. Підвищення гнучкості: Автоматизація дозволяє швидко змінювати
параметри та налаштування виробництва, щоб відповідати змінним потребам ринку.
6. Покращення управління: Системи автоматизації можуть забезпечувати
збір та аналіз даних, що допомагає управлінцям приймати більш обґрунтовані
рішення щодо виробництва.

49
50

7. 24/7 операції: Роботи можуть працювати цілодобово без необхідності


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

9.2 Використання роботів у медицині, дослідженнях та інших галузях.


Використання роботів у медицині, дослідженнях та інших галузях відкриває
безліч можливостей для покращення діагностики, лікування, досліджень та
виробництва. Ось кілька прикладів:
1) Медицина:
a) Хірургія: Хірургічні роботи, такі як Da Vinci Surgical System, дозволяють
лікарям виконувати складні операції з високою точністю та мінімізувати травму для
пацієнта.
b) Телемедицина: Роботи можуть використовуватися для допомоги в
дистанційних консультаціях, передачі медичних знань і віддаленого нагляду за
пацієнтами.
c) Реабілітація: Роботи можуть допомагати пацієнтам з реабілітації після
травм або операцій, надаючи підтримку та виконуючи вправи для відновлення
функцій.
2) Дослідження:
a) Лабораторні роботи: Роботи використовуються для виконання рутинних
досліджень, збірки та обробки проб, що допомагає вченим прискорити науковий
процес.

50
51

b) Експерименти в умовах високого ризику: Роботи можуть бути


використані для виконання дослідів в умовах, небезпечних для людини, наприклад,
дослідження під водою чи в областях із високим рівнем радіації.
3) Промисловість:
a) Виробництво: Роботи виготовляють автомобілі, електроніку, продукти
харчування та інші товари з високою ефективністю та якістю.
b) Складське господарство: Автономні роботи використовуються для
переміщення товарів в складах та логістичних центрах.
4) Освіта:
a) Роботика в навчанні: Роботи можуть бути використані для навчання
студентів програмуванню, інженерії та робототехніці.
5) Космос: Роботи використовуються для дослідження космосу, включаючи
відправлення роботів на інші планети та вивчення космічних об'єктів.
6) Авіація та авіаційна промисловість: Роботи використовуються для
виробництва, тестування та обслуговування літальних апаратів.
7) Екологія: Роботи використовуються для моніторингу довкілля, виявлення
забруднень та допомоги відновленню екосистем.
Використання роботів в цих галузях дозволяє покращити ефективність та
безпеку процесів, розширює можливості дослідження та дозволяє вирішувати
завдання, які раніше були складними або небезпечними для людини. Однак разом з
перевагами використання роботів ідуть виклики, пов'язані з етикою, безпекою та
регулюванням, які потребують уважного розгляду.

9.3 Інтерактивні роботи та робототехніка в побуті.


Інтерактивні роботи та робототехніка в побуті стають все більш поширеними та
інтегрованими в наше повсякденне життя. Ці технології пропонують різноманітні
можливості для спрощення рутинних завдань, розваги та покращення якості життя.
Ось кілька прикладів їх використання:
1. Побутова автоматизація:
 Розумний будинок: Робототехніка дозволяє автоматизувати освітлення,

51
52

клімат-контроль, безпеку та інші системи в будинку. Це дозволяє зменшити витрати


енергії та зробити життя більш комфортним.
 Розумні прилади: Прилади, такі як холодильники, пральні машини та
пилососи, можуть бути обладнані технологією IoT (Інтернет речей) і керуватися з
мобільного пристрою.
2. Розваги та освіта:
 Розважальні роботи: Інтерактивні роботи, такі як роботи-товариші для
дітей або роботи-компаньйони для дорослих, допомагають забезпечити розвагу та
розвагу.
 Роботи для навчання: Роботи можуть бути використані для навчання
програмування, математики та наукових концепцій дітей та дорослих.
3. Охорона здоров'я:
 Медичні роботи: Деякі роботи можуть надавати медичну допомогу,
наприклад, нагадувати пацієнтам про прийом ліків, вимірювати вітальні показники та
надавати догляд.
4. Доставка та логістика:
 Доставка роботами: Деякі компанії використовують роботів для
автоматизованої доставки продуктів, товарів та послуг.
5. Комунікація та соціальна взаємодія:
 Соціальні роботи: Деякі інтерактивні роботи створені з метою взаємодії з
людьми, надаючи супутництво, службу допомоги або підтримку для одиноких людей.
6. Громадські послуги:
 Роботи-консультанти: Роботи можуть використовуватися в громадських
органах для надання інформації та консультацій громадянам.
7. Спорт та фітнес:
 Тренери-роботи: Роботи можуть служити як тренери у спортивних залах,
надаючи вправи та моніторячи прогрес користувачів.
Інтерактивні роботи та робототехніка в побуті продовжують розвиватися, і їх
можливості зростають з кожним роком. Однак важливо розуміти потенційні виклики,
такі як приватність та безпека даних, та впроваджувати ці технології з розумінням їх

52
53

обмежень і можливостей.

53
54

10. МОБІЛЬНІ РОБОТИ СЕРІЇ ROBOTINO: АПАРАТНЕ ТА


ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ.

Robotino - це мобільний робот, який пересувається на трьох роликових колесах


типу "omni wheel" ("omnidirectional" - всенаправленний). У рух, робота призводять три
двигуни постійного струму, осі яких розташовані під кутом 120 градусів один до
одного. Завдяки такій конструкції робот може переміщатися в усіх напрямках, а так
само повертатися навколо своєї осі.
Так як Robotino призначається, головним чином, для навчання, то він
виконаний модульно; всі технічні компоненти (електроприводи, датчики, камера),
можна відключити від робота і вивчити окремо.

Рисунок 10.1 – Вигляд робота Robotino Знайомство з пристроєм і


програмуванням мобільного робота
Корпус робота - сталевий корпус з бампером, забезпечує легкий доступ до
батарей, двигунів і портам робота.
Підсистема живлення - дві акумуляторні батареї (12V / 5Ah кислотно-свинцю
(lead-acid) або 12V / 9Ah NiMH), що дозволяють роботу працювати в автономній
режимі кілька годин.
Рухова підсистема - три двигуни постійного струму, редуктор і ремінна

54
55

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


стабілізації швидкостей обертання валів двигунів робота, використовуються
вбудовані ПІД-регулятори з попередньо встановленими коефіцієнтами.
Підсистема одометра - інкрементні енкодери на валах двигунів.
Підсистема вводу / виводу - плата, виконує комунікаційну зв'язок між
комп'ютером робота і його датчиками, двигунами і інтерфейсом вводу / виводу.
Підсистема бездротового зв'язку із зовнішнім керуючим комп'ютером (Wi-Fi точка
доступу).
Бортовий обчислювач - одноплатний промисловий комп'ютер формату PC / 104
+ (має шини ISA і PCI) з процесором на 300 МГц. Як пам'яті, використовується
карта Compact Flash (1024 MB), на яку встановлена вбудована версія операційної
системи Linux.
Різні датчики робота - 9 інфрачервоних датчиків відстані (на бампері), USB web-
камера.

Рисунок 10.2 – Robotino з підключеними компонентами

Управляти роботом можна як за допомогою програм, записаних в пам'ять

55
56

робота, так і дистанційно - за допомогою бездротової технології Wireless LAN


(WLAN).Крім того, можливо автономне програмування робота, через
підключення до нього монітор і клавіатуру
У комплекті з роботом йдуть програми Robotino View і Robotino Sim
призначені для інтерактивного графічного програмування робота.

Рисунок 10.3 – Вигляд системи програмування Robotino View

56
57

Рисунок 10.4 – Вигляд програмних блоків Robotino View

Robotino View, дозволяє переглянути стан керуючих сигналів робота і його


датчиків. Робот може бути запрограмований в графічному режимі – простим
вибором необхідних функціональних блоків з наявного списку і їх подальшим
комбінуванням і налаштуванням (візуальне програмування).
Програмне забезпечення робота можна розділити на дві частини: внутрішнє
програмне забезпечення і зовнішнє. Внутрішньо програмне забезпечення (ПО) робота
- це його операційна система (Linux), яка здійснює взаємодію програмного і
апаратного забезпечення робота, обробку внутрішніх команд і обмін даними з
зовнішнім керуючим комп'ютером. До внутрішнього ПО робота можна віднести
програми, що зберігаються у власній пам'яті робота для його автономного управління.
Зовнішнє програмне забезпечення - це програми, що реалізують зв'язок і обмін
даними з Robotino. Це можуть бути: програми, написані на мовах програмування
високого рівня (С, C ++, Java); середовища програмування і візуального проектування:
Matlab, Simulink, Labview, ROS, Microsoft Robotics Developer Studio (для них є
спеціальна бібліотека для управління роботом) вівторок візуального проектування
Robotino View.
У разі, якщо немає можливості провести роботу зі справжніми роботом,
пропонується програма Robotino Sim, яка візуалізує програмний код, відображає рух
робота.
У лабораторії автоматизації кафедри був виконаний ряд алгоритмів по
програмуванні мобільного робота Robotino як на платформі RobotinoView так і на
реальному роботі. В ході ознайомлення зрозуміло, що подібні робототехнічні
системи мають широкий спектр можливостей, а блочне програмування робить процес
простим, зрозумілим і цікавим. Наведемо кілька прикладів таких алгоритмів.
Одним з комплектуючих Robotino є джойстик. Для його використання нам
необхідно призначити певним кнопок джойстика певні дії робота. Найпростіший
варіант - рух по одній осі.

57
58

Рисунок 10.5 – Приклад програмування джойстика

Для забезпечення руху робота в прямому (кнопка 2) і назад (кнопка 1) по


координатної осі Х, можливо рішення (задавати рух в зворотному напрямку)
представлено на малюнку 15.7, де сигнал від кнопки 1 множиться на значення заданої
константи (-1).
Якщо ж нам необхідно рух робота за певними координатами, ми можемо
скористатися блоками одометра. Суть полягає в завданні конкретних координат, на
які робот зміститься щодо початкового положення.
Даний алгоритм описує тільки 1 переміщення. Для послідовного переміщення
в різні координати необхідно створити кілька підпрограм. Всі підпрограми є
подібними, різниця тільки в завданні координат і контролі зв’язку змінних, тобто
беручи цю програму за зразок можна задати будь-яку просту траєкторію руху робота.
У кожній наступній подпрограммі зв'язуча змінна обнуляється.

58
59

Рисунок 10.6 – Приклад прогрмування одометрії

11 МОБІЛЬНІ РОБОТИ СЕРІЇ ROBOTINO: РОЗРОБКА


ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

Особливістю управління програмно-аппартного комплексом Robotino


полягає в його універсальності. Його програмувати можна як в візуальної середовищі
розробки «Robotino View » , так і при по мощі великого кількості бібліотек. Такі
бібліотеки є практично для всіх популярних мов програмування [3]. Компанія «Festo-
Didactic » надає продукт для візуальної симуляції роботи робота Robotino. В вільному
доступі є одна стандартна сцена, на якій можна проводити випробування [3].
Особливостй управління програмно аппартного комплексом Robotino
полягає в його універсальності. Його програмувати можна як в візуальної
середовищі розробки «Robotino View» так і при по мощі великого кількості бібліотек.
Такі бібліотеки є практично для всіх популярних мов програмування [3]. Компанія
«Festo - Didactic » надає продукт для візуальної симуляції роботи робота Robotino. В
вільному доступі є одна стандартна сцена, на якій можна проводити випробування [3].
Етапи проведення досліджень:
1. аналіз алгоритму JPS;
59
60

2. модифікація алгоритму JPS;


3. аналіз ПО робота;
4. програмування модифікованого алгоритму.
Розглянемо алгоритм JPS [5]. Даний алгоритм - поліпшення алгоритму
пошуку шляху А*. Він поліпшується за рахунок «перескокування» тих позицій,
які повинні бути переглянуті. Також слід зазначити, що алгоритм JPS не вимагає
додаткової обробки і витрат пам'яті [5]. Розглянемо рішення, яке дає цей алгоритм
(рис. 16.1 а).
Як видно з рисунка 11.1 а, шукається оптимальний шлях з точки SP1 в точку DP
1. Сірим кольором показані стрибкові точки. алгоритм JPS дозволяє знаходити
рішення тільки для матеріальної точки. Для Robotino цей алгоритм

Рисунок 11.1 – Розвязок елементов JPS його модифікація

Модифікація алгоритму JPS полягає в тому, що аналізуються всі діагональні


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

60
61

Рисунок 11.2 – Вигляд інформації лічильника

12. СИСТЕМИ КОМП’ЮТЕРНОГО ЗОРУ ТА ЇХ ВИКОРИСТАННЯ У МОБІЛЬНИХ


ПЛАТФОРМАХ РІЗНОГО ПРИЗНАЧЕННЯ

12.1 Загальна інформація про сучасні СК мобільних платформ

Побудова систем управління мобільними роботами є актуальною проблемою


сьогодення. Рішення у цій області можуть бути застосовані у найрізноманітніших
ситуаціях – замінити людину при спостереженні, на виробництві, при дослідженні
середовища в умовах, небезпечних для людини. Методи та техніки з області
комп’ютерного зору є невід’ємною частиною при дослідженні цієї проблематики.
Наприклад, у лабораторії комп’ютерного зору при університеті Токіо був розроблений
робот, що відтворює процедуру малювання за допомогою пальців рук та стерео-зору х
[17]. Цією ж групою був розроблений танцюючий робот-гуманоїд, у якому була
реалізована парадигма навчання за спостереженням. Згідно з нею робот спостерігає за
рухами людини, розпізнає їх і транслює у команди для робота.
61
62

Групою LIS при MIT було розроблено ряд алгоритмів планування маніпуляцій
для робота, що пересуває об’єкти. На вході описаних алгоритмів пла нування є набір
об’єктів, множина можливих дій для пересування, початкова конфігурація
розташування об’єктів та кінцева.
Алгоритм планування має сформувати оптимальну послідовність дій для
переходу з початкової конфігурації у кінцеву [17]. Ці алгоритми були перевірені на
роботі Willow Garage PR2 з наступним набором дій:
- переміщення робота;
- перенесення об’єкта;
- pick – робот хапає об’єкт та піднімає його;
- push – робот штовхає об’єкт
В університеті Берклі розробили ряд методів визначення форми об’єктів у сцені
на основі одного зображення, а також за допомогою RGB-D зображень.
Також у США розробляються автономні мобільні системи (CAST, AMAS), які
забезпечують повну автономність руху колони автомобілів [3]. Технології CAST
передбачають поступове зменшення ролі водія при пересуванні автомобіля з метою
зменшення кількості аварій на дорозі. Система забезпечує просте і швидке
переключання між режимами ручного та автоматичного керування автомобілем. У
режимі автоматичного керування система підтримує задану відстань між
автомобілями та автоматично обирає швидкість.
Системи AMAS розробляються для різноманітних сценаріїв руху автомобілів
автомагістралями. Також передбачається, що з доданням певної кількості датчиків
автомобілі зможуть автоматично виконувати очищення дороги від снігу. До складу
системи AMAS входять:
- система зору;
- навігаційна система;
- система роботи с радаром та лідаром;
- засоби радіокомунікації;

62
63

- велика кількість датчиків, що залежать від платформи та забезпечують


безпосереднє контролювання руху автомобіля.
Програмне забезпечення такої системи виконує планування маршруту, дозволяє
обирати кінцевий пункт прямування, проводить діагностику та прогно зування
безпечності руху. Були проведені випробування, що підтвердили здатність AMAS
працювати в умовах населених пунктів. Автомобілі без водія змогли дістатися
визначеного кінцевого пункту, враховуючи смуги зустрічного руху та дорожні
розв’язки, уникнувши зіткнення з пішоходами, іншими автомо- білями та нерухомими
об’єктами.
Лабораторія Google X розробляє безпілотний автомобіль, який часто називають
гугломобіль [17]. Джерела інформації для системи управління рухом безпілотного
автомобіля:
- сервіс Google Street View;
- відеокамера;
- радар у передній частині автомобіля;
- датчик LIDAR, встановлений на даху автомобіля;
- датчик, що дозволяє встановити положення автомобіля на карті,
підключений до одного з задніх коліс.
Перевірка роботи системи в реальних умовах була проведена у 2010 році, при
цьому автомобіль самостійно без участі людини проїхав 1600 км, а з частковим
втручанням людини – 225 308 км. Під час тестування сталося одне ДТП,
спричинене тим, що інший автомобіль врізався у гугломобіль, який зупи- нився на
світлофорі. Розробники запевняють, що їх система може знизити кількість ДТП на
дорогах, оптимізувати використання палива та доріг. Інжене- ри наполягають, що
робот є кращим водієм, завдяки вищій швидкості реакції, можливості сприйняти
більшу кількість візуальної інформації. Робот не від- волікається, не стомлюється, не
може заснути за кермом. У будь-який момент часу людина у автомобілі може взяти
на себе контроль за рухом автомобі-
ля виконавши одну з наступних дій:
- натиснути червону кнопку;

63
64

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

12.2 Опис СК із системою комп’ютерного зору

Універсальна система управління мобільного робта має забезпечувати


управління кількома системами. Розглянемо узагальнену модель об’єкту управління, у
якого є наступні органи управління:
- кермо повороту;
- кермо висоти/глибини;
- управління креном;
- регулятор потужності двигуна;
- система гальмування.
В залежності від особливостей реалізації певні органи керування можуть не
використовуватися. Наприклад, якщо об’єкт управління – літак, то він має органи
управління висотою та креном, а якщо розглядається автомобіль – то у ньому вони
відсутні.

64
65

Кожному органу управління ставимо у відповідність змінну, яка


характеризуватиме величину зміни відповідного параметра органу управління. Таким
чином для системи управління, що розглядається, можна виділити наступні змінні:
- x1 – кут повороту керма повороту;
- х2 – кут повороту керма висоти/глибини;
- х3 – кут повороту органу управління креном;
- х4 – потужність двигуна, Вт;
- х5 – величина тиску на гальмівні колодки, Па.
Крім органів управління система управління має датчики, що надають
інформацію про оточуюче середовище.
Приклади датчиків:
- відеокамера;
- система глобального позиціонування;
- альтиметр (визначення висоти польоту);
- датчик вимірювання кута керма повороту;
- тахометр (визначення кількості оборотів двигуна);
- датчик гальмівного посилення;
- глибиномір.
Таким чином узагальнена модель управління мобільним роботом має 5
органів управління та n датчиків, які використовуються в залежності від ситуації.
Запропонована система управління може бути адаптована для
керування будь-яким мобільним роботом шляхом заміни модуля формування сигналів
для органів управління мобільним роботом.
У системі, що розглядається [17], мобільний робот оснащений наступними
датчиками: дві відеокамери; датчик системи глобального позиціонування (GPS).
Пересування мобільного робота забезпечується за допомогою двигуна та двох
пар коліс. Для зміни швидкості руху регулюється потужність роботи

65
66

двигуна. Для управління рухом такого робота достатньо, щоб система


технічного зору формувала наступні сигнали управління:
- потужність роботи двигуна;
- кут повороту керма.
Для виконання повороту необхідно заблокувати ліву або праву пару коліс на
певний інтервал часу. Тому змінну для управління кутом повороту можна
транслювати у наступні сигнали управління:
- час блокування лівої пари коліс;
- час блокування правої пари коліс.
При побудові системи аналізу сцени був використаний принцип самонавчання
в процесі роботи. Через визначені проміжки часу система отримує нові зображення
від відеокамер. Відразу після початку роботи системи починається накопичення
певної кількості N кадрів для того, щоб сформувати перше представлення сцени.
Після того, як вони були отримані, проводиться їх аналіз з метою визначення
рухомих та нерухомих об’єктів в межах сцени. Далі проводиться аналіз сцени з метою
визначення областей, де рух можливий, та де рух неможливий. На основі цієї
інформації визначається траєкторія, за якою починає рухатися мобільний робот. В
процесі руху постійно відбувається звіряння правильності руху за траєкторією
допомогою системи глобального позиціонування. З кожним новим кадром
відбувається повторний аналіз сцени. Для рухомих об’єктів проводиться аналіз та
прогнозування траєкторії, прогнозуються можливі зіткнення мобільного робота з
ними і на основі правил поведінки траєкторія корегується.
Запропонована модель системи технічного зору для аналізу сцени (рис. 11.1)
включає в себе наступні бази даних (БД) [17]:
- БД «знайомих» об’єктів;
- БД з правилами поведінки;
- БД з обмеженнями руху.
Вказані БД можуть змінюватися в процесі роботи, оскільки система постійно
навчається.

66
67

Рисунок 12.1 – Структурна модель системи керування мобільним роботом [17]

Кожен кадр, отриманий від відеокамер, проходить попередню обробку за


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

67
68

має уникнути зіткнення з ним, то траєкторія має бути скорегована для


виконання цього правила. Також необхідно скоригувати траєкторію, якщо контролер
правильності руху за заданою траєкторією визначив відхилення від неї. Після того, як
траєкторія руху мобільного робота була визначена, вона передається: контролеру
правильності руху за обраною траєкторією; модулю формування сигналів для органів
управління мобільним роботом. Однією з основних проблем при реалізації
розглянутої системи є вибір методів та алгоритмів аналізу сцени, які можуть
ефективно працювати в режимі реального часу [17].

ПЕРЕЛІК ПОСИЛАНЬ
1. Кошель С., Ковальов Ю., Манойленко О. Проектування промислових роботів
та маніпуляторів – Центр навчальної літератури, 2019. – 256с.
2. Маттес Е. Пришвидшений курс Python. – Видавництво Старого Лева, 2019. –
600с.
3. Lentin J. Learning Robotics using Python. – Packt Publishing, 2018 – 280 p.
4. Дмитрів В., Ланець О. Динаміка і точність роботів. – Львівська політехніка,
2021. – 327с.
5. Saeed B. Niku Introduction to Robotics. – Wiley, 2019.
6. Staple Danny The device and programming of autonomous robots. Projects in
Python and Raspberry Pi. – DMK Press, 2022. – 520 p/
7. Джеремі Блум. Вивчаємо Arduino. Інструменти та методи технічної магії. –
СПб: bhv.–2020.–529 с.
8. Адріан Келер, Гері Бредскі. Learning OpenCV 3. – ДМК. – 2018. – 826 с.
9. Васильєв О. Програмування мовою Python. – Навчальна книга – Богдан, 2019.
– 504с.
10. Васильєв О. Програмування в Python. Теорія і практика – Ліра-К, 2023. –
462с.
11. Anil Mahtani, Luis Sanchez, Enrique Fernandez, Aaron Martinez, Lentin Joseph
ROS Programming: Building Powerful Robots. – Packt Publishing, 2018. – 1233p.

68
69

12. Ramkumar Gandhinathan, Lentin Joseph. ROS Robotics Projects: Build and
control robots powered by the Robot Operating System, machine learning, and virtual
reality, 2nd Edition. – Packt Publishing, 2019. – 456 p.

Цимбал О.М. Технології програмування: Visual C++. – Харків: ХНУРЕ.– 2004.–


336 с.
2. Форсайт Д., Понс Ж. Компьютерное зрение: современный подход. – М.: Изд.
дом «Вильямс», 2004. – 928 с.
3. Рассел С., Норвиг П. Искусственный интеллект: современный подход. –М.:
Изд. дом «Вильямс», 2006. – 1408 с.
4. Джеремі Блум. Вивчаємо Arduino. Інструменти та методи технічної магії. –
СПб: bhv.–2020.–529 с.
5. Адріан Келер, Гері Бредскі. Learning OpenCV 3. – ДМК. – 2018. – 826 с.
6. Фу, К. Робототехника [Текст] / К. Фу, Р. Гонсалес, К. Ли. – М.: Мир, 1989. – 624
с.
7. Накано, Э. Введение в робототехнику [Текст] / Э. Накано. – М.: Мир, 1988. –
334 с.
8. Веселовська, Н.Р. Перспективи розвитку гнучких комп’ютерно-інтегрованих
виробничих систем [Електронний ресурс] / Н.Р.Веселовська, В.Б.Струтинський,
О.В.Зелінська // Наукові нотатки. Електронний журнал – 2009. – Вип.. 25, т. 1. Режим
доступу: http://archive.nbuv.gov.ua/portal/natural/nn/ 2002_2009/statti/vup25/25-1/11.pdf.
9. Пальчевський Б.О. Технологічні основи гнучкого автоматизованого
виробництва [Текст] / Б.О. Пальчевський. – Львів, Світ, 1994. – 208 с.

69
70

10. https://keddr.com/2017/09/shho-take-arduino-i-chomu-tse-idealniy-start-dlya-
maybutnogo-rozrobnika-avtomatizovanih-sistem.
11. Lego MindStorms. Керівництво користувача.
12. Д.А. Корнєєв. Розробка програмного забезпечення для управління /
Колісним роботом з використанням нечіткої логіки [Текст] / Д.А. Корнєєв, О.В.
Шматко. Системи обробки інформації, 2016, випуск 4 (141), с. 45-49.
13. О.В. Ліпанов. Перспективи розвитку роботизованих систем військового
призначення [Текст] / О.В. Ліпанов, М.В. Фесенко. Системи обробки інформації, 2014,
випуск 5 (121), с. 70-73.
14. Д.П. Кучеров. Перспективи розвитку роботизованих систем військового
призначення [Текст] / Д.П. Кучеров, З.М. Копилова, Ю.В. М`якухін. Системи
озброєння і військова техніка, 2007, випуск 1(9), с. 44-46.
15. . Zhang and Z. Zhang, "A survey of recent advances in face detection," in
Technical report MSR-TR-2010-66, 2010.
16. P. Viola and M. Jones, "Rapid object detection using a boosted cascade of
simple features," in CVPR, 2001.
17. J. Cho, B. Benson, S. Mirzaei, and R. Kastner, "Parallelized architecture of
multiple classifiers for face detection," in ASAP, 2009.
18. M. Hiromoto, H. Sugano, and R. Miyamoto, "Partially parallel architecture for
Adaboost-based detection with haar- like features," IEEE Trans. Circuits Syst. Video
Technol., Vol. 19, pp. 41-52, 2009.
19. B. Brousseau and J. Rose, "An energy-efficient, fast FPGA hardware
architecture for OpenCV-compatible object detection," in FPT, 2012.
20. D. Hefenbrock, J. Oberg, N. Thanh, R. Kastner, and S. Baden, "Accelerating
Viola-Jones face detection to FPGA- level using GPUs," in FCCM, 2010.
21. D. Oro, C. Fern'andez, JR Saeta, X. Martorell, and J. Hernando, "Real-time
GPU-based face detection in HD video sequences," in ICCV Workshops, 2011.
22. SC Tek and M. Gokmen, "GPU accelerated real-time object detection on high
resolution videos using modified census transform," in VISAPP, 2012.

70
71

23. L. Acasandrei and A. Barriga, "Accelerating Viola-Jones face detection for embedded
and SoC environments," in ICDSC, 2011.
24. C. Lampert, M. Blaschko, and T. Hofmann, "Beyond sliding windows: object
localization by efficient subwindow search," in CVPR, 2008.
25. NJ Butko and JR Movellan, "Optimal scanning for faster objectdetection," in
CVPR, 2009.
26. VB Subburaman and S. Marcel, "Alternative search techniques for face
detection using location estimation and binary features," Comput. Vision Image
Understanding, vol. 117, no. 5, pp. 551-570, 2013.
27. V. Jain and E. Learned-Miller, "FDDB: A benchmark for face detection in
unconstrained settings," University of Massachusetts, Amherst, Tech. Rep. UM-CS-2010-
009, 2010.
28. G. Bradski, "The OpenCV Library," Dr. Dobb's J. Softw. Tools, 2000.
29. H. Rowley, S. Baluja, and T. Kanade, "Neural network-based face detection,"
IEEE Trans. Pattern Anal. Mach. Intell, vol. 20, pp. 23-38, 1998.
30. M. Everingham, LJV Gool, CKI Williams, JM Winn, and A. Zisserman, "The
pascal visual object classes (VOC) challenge," Int. J. Comput. Vision, vol. 88, no. 2, pp.
303-338, 2010.
31. M. Geilen, T. Basten, BD Theelen, and R. Otten, "An algebra of pareto points,"
Fundam. Inform., Vol. 78, no. 1, pp. 35-74, 2007.
32. C. Goutte and 'E. Gaussier, "A probabilistic interpretation of precision, recall
and f-score, with implication for evaluation," in ECIR, 2005

71
1

КОНСПЕКТ ЛЕКЦІЙ

з дисципліни

«Програмування пристроїв керування робщтів»

для студентів спеціальності


151 «Автоматизація та комп’ютерно-інтегровані технології»
спеціалізації «Комп’ютеризовані та робото технічні системи»

Упорядник: МАКСИМОВА Світлана Святославівна

Відповідальний випусковий І.Ш. Невлюдов

Авторська редакція

дисципліни «Програмування пристроїв керування роботами»

You might also like