1. Прелюдія
LinuxCNC підтримує низку кінематичних модулів, включаючи один, який підтримує узагальнений набір послідовної кінематики, що зазвичай визначається за допомогою параметрів Денавіта-Хартенберга.
У цьому документі показано метод налаштування DH-параметрів для Mitsubishi RV-6SDL у LinuxCNC з використанням кінематики «genserkins».
|
Note
|
Цей документ не охоплює створення моделі «vismach», яка, хоча і є безперечно дуже корисною, вимагає настільки ж ретельного моделювання, якщо вона має відповідати моделі «genserkins», виведеній у цьому документі. |
|
Note
|
Можливі помилки та/або недоліки – використовуйте на свій страх і ризик! |
2. Загальне
З поширенням промислових роботів зростає інтерес до управління вживаними роботами за допомогою LinuxCNC. Поширеним типом роботів, що використовуються в промисловості та виробництві, є «послідовний маніпулятор», спроектований як серія моторизованих шарнірів, з’єднаних жорсткими ланками. Послідовні роботи часто мають шість шарнірів, необхідних для шести ступенів свободи, потрібних як для позиціонування (XYZ), так і для орієнтації (ABC або крен, рискання) об’єкта в просторі. Часто ці роботи мають конструкцію руки, яка простягається від основи до кінцевого виконавчого механізму.
Управління таким серійним роботом вимагає обчислення положення та орієнтації кінцевого виконавчого механізму відносно опорної системи координат, коли кути згину суглобів відомі (пряма кінематика), а також більш складного зворотного обчислення необхідних кутів згину суглобів для заданого положення та орієнтації кінцевого виконавчого механізму відносно опорної системи координат (обернена кінематика). Стандартними математичними інструментами, що використовуються для цих розрахунків, є матриці, які в основному являють собою таблиці параметрів і формул, що полегшують обробку обертань і перетворень, які використовуються в розрахунках прямої та зворотної кінематики.
Детальне знання математики не є необхідним для серійного робота, оскільки LinuxCNC надає кінематичний модуль, який реалізує алгоритм під назвою «genserkins» для обчислення прямої та оберненої кінематики для загального серійного робота. Для управління конкретним серійним роботом «genserkins» необхідно надати дані, щоб він міг побудувати математичну модель механічної структури робота і, таким чином, виконати обчислення.
Необхідні дані повинні бути в стандартизованій формі, яка була введена Жаком Денавітом і Річардом Хартенбергом ще в п’ятдесятих роках і називається DH-параметрами. Денавіт і Хартенберг використовували чотири параметри для опису того, як один суглоб пов’язаний з наступним. Ці параметри описують в основному два обертання («альфа» і «тета») і два перенесення («а» і «d»).
3. Змінені DH-параметри
Як це часто буває, цей «стандарт» був модифікований іншими авторами, які ввели «модифіковані параметри DH», і потрібно бути дуже обережним, оскільки «genserkins» використовує «модифіковані параметри DH», як описано в публікації «Вступ до робототехніки, механіки та управління» Джона Дж. Крейга. Зверніть увагу, що про «параметри DH» можна знайти багато інформації, але автори рідко вказують, яка саме конвенція використовується. Крім того, деякі люди вважають за необхідне змінити параметр з «a» на «r», що ще більше ускладнює ситуацію. Цей документ дотримується конвенції, викладеної у вищезгаданій публікації Крейга, з тією різницею, що нумерація суглобів і параметрів починається з цифри «0», щоб відповідати «genserkins» і його контактам HAL.
Стандартні та модифіковані параметри DH складаються з чотирьох числових значень для кожного суглоба («a», «d», «alpha» та «theta»), які описують, як система координат (CS), що знаходиться в одному суглобі, повинна бути переміщена та обертана, щоб вирівнятися з наступним суглобом. Вирівнювання означає, що вісь Z нашої CS збігається з віссю обертання суглоба і вказує в позитивному напрямку таким чином, що, використовуючи правило правої руки, коли великий палець вказує в позитивному напрямку осі Z, пальці вказують в позитивному напрямку обертання суглоба. Стає зрозуміло, що для цього необхідно визначити позитивні напрямки всіх суглобів, перш ніж починати виводити параметри!
Різниця між «стандартними» та «модифікованими» позначеннями полягає в тому, як параметри розподіляються між посиланнями. Використання «стандартних» параметрів DH у «genserkins» не дасть правильної математичної моделі.
4. Модифіковані DH-параметри, що використовуються в "genserkins"
Зверніть увагу, що «genserkins» не обробляє зміщення до значень тета — тета є змінною суглоба, яка контролюється LinuxCNC. Коли CS вирівняно з суглобом, обертання навколо його осі Z ідентичне обертанню, яке LinuxCNC командує цьому суглобу. Це унеможливлює довільне визначення положення 0° суглобів наших роботів.
Три налаштовувані параметри:
-
alpha : додатне або від’ємне обертання (у радіанах) навколо осі X "поточної системи координат"
-
a : додатна відстань вздовж осі X між двома осями з’єднання, задана в «машинних одиницях» (мм або дюймах), визначених у системному INI-файлі.
-
d: додатна або від’ємна довжина вздовж Z (також у «машинних одиницях»)
Набори параметрів завжди виводяться в одному і тому ж порядку, а набір завершується встановленням параметра d. Це не залишає вісь Z нашої CS вирівняною з наступним з’єднанням! Це може здатися заплутаним, але дотримання цього правила дасть робочий набір параметрів. Після встановлення параметра d вісь X нашої CS повинна вказувати на вісь наступного з’єднання.
5. Нумерація суглобів та параметрів
Перший шарнір в LinuxCNC - це joint-0 (оскільки в програмному забезпеченні нумерація починається з 0), тоді як у більшості публікацій нумерація починається з цифри «1». Це стосується також усіх параметрів. Тобто нумерація починається з a-0, alpha-0, d-0 і закінчується a-5, alpha-5 і d-5. Майте це на увазі, коли слідуєте публікації для налаштування параметрів «genserkins».
6. Як почати
Домовленість полягає в тому, щоб почати з розміщення опорної комп’ютерної точки (CS) в основі робота так, щоб її вісь Z збігалася з віссю першого суглоба, а вісь X була спрямована в бік осі наступного суглоба.
Це також призведе до того, що значення DRO в LinuxCNC будуть посилатися на цю точку. Після цього a-0 і alpha-0 встановлюються на 0. У вищезгаданій публікації (Крейг) також встановлюється d-0 на 0, що викликає плутанину, коли для отримання опорної CS внизу основи необхідне зміщення. Встановлення d-0 = на зміщення дає правильні результати. Таким чином, перший набір параметрів становить alpha-0 = 0, a-0 = 0, d0 = зміщення, а вісь X CS вказує на вісь наступного з’єднання (joint-1).
Виведення чистого набору (альфа-1, a-1, d-1) відбувається далі — завжди використовуючи ту саму послідовність аж до шостого набору (альфа-5, a-5, d-5).
Таким чином, TCP-CS кінцевого ефектора знаходиться в центрі фланця руки.
7. Особливі випадки
Якщо наступна вісь суглоба паралельна попередній, то можна довільно вибрати значення для d-параметра, але немає сенсу встановлювати його, відмінне від 0.
8. Детальний приклад (RV-6SL)
Нижче описано метод отримання необхідних «модифікованих параметрів DH» для Mitsubishi RV-6SDL та спосіб налаштування параметрів у файлі HAL для використання з кінематикою «genserkins» у LinuxCNC. Необхідні розміри найкраще брати з креслення, наданого виробником робота.
9. Кредити
Дякуємо користувачеві Aciera за весь текст та графіку для робота RV-6SL!