Русский   English
ДонНТУ   Портал магістрів

Зміст

Введення

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

Метою даної роботи є створення прототипу технічного зору для робота–сортувальника.

Для досягнення поставленої мети необхідно забезпечити вирішення таких завдань: аналіз і вибір апаратних і програмних засобів, вибір способу розв'язання оберненої задачі кінематики (ОЗК), а також безпосередньо її рішення, програмна реалізація алгоритму технічного зору.

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

Роботи-маніпулятори — це автоматичні або керовані оператором пристрої, що виконують заданий спектр операцій замість людини.

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

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

1. Вибір засобів і способів реалізації поставленого завдання

1.1 Вибір алгоритму

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

Як виконавчий пристрій маємо шестізвенний маніпулятор. Сортування буде проходити на плоскої нерухомої поверхні.

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

1.2 Вибір апаратних засобів

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

Кінематична схема робота сортувальника

Малюнок 1.1 – Кінематична схема робота сортувальника

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

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

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

Управління сервомоторами здійснюється регулюванням скважности сигналу широтно–імпульсної модуляції (ШІМ) [1].

Для потокової обробки зображення і розв'язання оберненої задачі кінематики не підійдуть звичні мікроконтролери. Ці завдання потребують суттєвої обчислювальної потужності. Тому в якості обчислювального пристрою в цій роботі використовується одноплатний комп'ютер Raspberry Pi 4. Його основні переваги: ??малий розмір, низьке енергоспоживання, повноцінна операційна система, вільне програмне забезпечення, низька ціна. Завдяки наявності апаратних портів введення-виведення він дозволяє програмувати реальні пристрої, фізичні системи і об'єкти [2].

На жаль, Raspberry Pi 4 має лише два апаратно–підтримуваних каналу ШІМ, а програмні рішення не забезпечать необхідну якість сигналу для управління сервомоторами. Дана проблема вирішується використанням зовнішнього модуля ШИМ. У даній роботі використовується модуль PCA9685, який також забезпечує гальванічну розв'язку. Це 16–ти канальний 12–розрядний контролер з настроюваної частотою ШІМ в межах від 24 до 1526 Гц. Для управління PCA9685 використовується шина I2C, на цій платі є дві групи роз'ємів для шини I2C з двох сторін. Це дозволяє підключати на одній шині кілька плат послідовно або підключати інші I2C пристрою [3].

Живлення контролера і виходів ШІМ каналів розділене і може бути від 3 до 5 В. Для ШІМ каналів допускається максимальна напруга 6 В.

1.3 Вибір програмних засобів

Для програмної реалізації алгоритмів технічного зору і розв'язання оберненої задачі кінематики була вибрана мова програмування Python і бібліотека комп'ютерного зору з відкритим вихідним кодом OpenCV. OpenCV може вільно використовуватися в академічних і комерційних цілях [4].

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

Для розв'язання оберненої задачі кінематики використовуються бібліотеки NumPy і SciPy. Бібліотека NumPy дозволяє полегшити матричні обчислення, таким чином, що аналогічний код на мові програмування C++ буде займати значно більше рядків, а значить буде менш читабельним. SciPy дозволяє вирішувати системи нелінійних рівнянь чисельним методом [5, 6].

Для формування сигналу ШІМ і підключенню до PCA9685 по I2C добре підійде бібліотека Adafruit CircuitPython ServoKit [7].

2. Моделювання об'єкта

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

Для моделювання розробляється прототипу використані бібліотека Simscape Multibody програмного пакету Matlab [8].

Для спрощення збірки робота в середовищі Matlab рекомендується або створювати деталі спочатку з урахуванням їх координат в просторі, або попередньо проводити збірку робота в обраній системі автоматизованого проектування (САПР). Тоді, під час імпорту деталей в Matlab, вони збережуть свої положення в просторі відносно початку координат (початок координат в середовищі Matlab буде відповідати початку координат САПР).

Бібліотека Simscape Multibody працює з двома типами файлів STL і STEP. У розділі Geometry блоку Solid імпортуємо деталь в Matlab (From File). Вказується тип, шлях до деталі (File name) або найменування файлу з деталлю, якщо він знаходиться в одній папці з моделлю.

Рекомендується використовувати деталі з розширенням STEP, так як цей тип даних має більшу кількість інформації про геометрію деталі, ніж STL. Це дає можливість автоматизувати розрахунок параметрів вкладки Inertia, використовуючи функцію Calculate from Geometry, а також істотно спрощує створення контактних точок з поверхнею. Розрахунок координат центру мас, моментів інерції по осях можна здійснити, поставивши або масу деталі, або її щільність, однак слід мати на увазі, що при цьому деталь приймається за однорідну, з рівномірним розподілом мас.

При виборі формату STL відсутня можливість автоматичного прорахунку. В цьому випадку необхідно або самостійно задавати параметри деталі (Custom), або прийняти масу деталі за елементарну точку (Point Mass).

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

Далі модель робота з'єднана з блоками конфігурації моделі. Серед них: Solver Configuration, який визначає параметри моделювання, World Frame, який визначає вихідні координати моделі і розташування їх у просторі, і Mechanism Configuration, в якому задається прискорення вільного падіння і його напрямок.

Потім реалізовано рух робота. Для цього були використані блоки Rigid Transform, Revolute Joint, Simulink-PS Converter.

Блок Rigid Transform призначений для перенесення (Translation) і обертання (Rotation) деталі шляхом перетворення координат.

Залежно від необхідного способу руху Matlab надає ряд стандартних блоків на вибір для їх моделювання. У цій роботі використаний блок Revolute Joint, який здійснює обертання деталі щодо осі Z в глобальних координатах (0; 0; 0), як показано на малюнку 2.1.

До поясненням роботи блоку Revolute Joint

Малюнок 2.1 – До поясненням роботи блоку Revolute Joint

З принципу роботи Revolute Joint: наводимо деталь до необхідних координатах за допомогою блоку Rigid Transform, потім послідовно включаємо блок Revolute Joint (DoF 5 T R на мал. 2.2), потім, використовуючи блок Rigid Transform, повертаємо деталь у вихідне положення.

Реалізація руху одного суглоба

Малюнок 2.2 – Реалізація руху одного суглоба

Для оцінки роботи моделі робота використані стандартні сигнали Simulink, які через блок Simulink–PS Converter подаються на вхід Revolute Joint, попередньо налаштувавши його для заданої мети. Існує можливість задавати закон зміни моменту (Torque) і безпосередньо руху (Motion), також існує можливість знімати автоматично прораховані в Matlab параметри з цього блоку. У даній роботі задається закон руху (Motion – Provided by Input), де момент прораховується автоматично.

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

Отриману модель можна використовувати для оцінки переміщень робота.

Результат моделювання в середовищі Matlab

Малюнок 2.3 – Результат моделювання в середовищі Matlab

(анімація: 10 кадрів, 6 циклів повторення, 188 кілобайт)

3. Рішення оберненої задачі кінематики

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

4. Використовувані засоби комп'ютерного зору для вирішення задачі сортування

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

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

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

Висновки

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

Перелік посилань

  1. Анучин А.С. Системы управления электроприводов/ Анучин А.С .: Издательский дом МЭИ, 2015. – 54 с.
  2. Raspberry Pi 4 Model B specifications [Электронный ресурс]. – Режим доступа: https://www.raspberrypi.org/....
  3. PCA9685 [Электронный ресурс]. – Режим доступа: https://micro-pi.ru/....
  4. OpenCV [Электронный ресурс]. – Режим доступа: https://opencv.org/about/.
  5. NumPy [Электронный ресурс]. – Режим доступа: https://numpy.org/.
  6. SciPy [Электронный ресурс]. – Режим доступа: https://www.scipy.org/.
  7. Adafruit CircuitPython [Электронный ресурс]. – Режим доступа: https://circuitpython.readthedocs.io/projects/servokit/en/latest/.
  8. Simulink. [Электронный ресурс]. – Режим доступа: https://matlab.ru/products/Simulink.