Обчислення матриці Якобіа для зворотної кінематики


19

Обчислюючи матрицю Якобіана для розв'язання аналітичної інверсної кінематики, я читав з багатьох місць, що міг би використовувати цю формулу для створення кожного зі стовпців спілки в якобіанській матриці:

Ji=eϕi=[[ai×(eposri)]T[ai]T]

Таким, що - вісь обертання у світовому просторі, - точка зведення в світовому просторі, а - положення кінцевого ефектора у світовому просторі.arepos

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

введіть тут опис зображення

є DOF обертання, то є кінцевий ефектор, то є метою кінцевого ефектора, в , і є суглоби.θegP1P2P3

По-перше, якщо я повинен був обчислити матрицю Якобіана на основі формули, наведеної вище для діаграми, я отримаю щось подібне:

J=[((0,0,1)×e)x((0,0,1)×(eP1))x((0,0,1)×(eP2))x((0,0,1)×e)y((0,0,1)×(eP1))y((0,0,1)×(eP2))y((0,0,1)×e)z((0,0,1)×(eP1))z((0,0,1)×(eP2))z000000111]

При цьому передбачається, що всі осі обертання дорівнюють і всі вони мають лише один обертовий DOF. Отже, я вважаю, що кожен стовпець призначений для одного DOF, у цьому випадку .(0,0,1)θ#

Тепер ось проблема: Що робити, якщо всі суглоби мають 6 ДОФ? Скажіть, для кожного суглоба у мене є обертові DOF у всіх осях, , та , а також поступальні DOF у всіх осях, , та .θxθyθztxtytz

Щоб зробити моє запитання зрозумілішим, припустімо, якби я «насильно» застосував вищезазначену формулу до всіх ДОФ всіх суглобів, я, мабуть, отримаю матрицю якобіана таким:

введіть тут опис зображення

(натисніть для повного розміру)

Але це неймовірно дивно, тому що всі 6 стовпців DOF для кожного суглоба повторюють одне і те ж.

Як я можу використовувати ту саму формулу для побудови матриці Якобіа з усіма DOF? Як би виглядала матриця Якобії в цьому випадку?


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

Я думаю, що ваша помилка полягає в тому, що ви не змінили "для кожного DOF", тому вони виглядають однаково.

Відповіді:


11

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

Але дозвольте запропонувати більш простий підхід до якобійців у контексті довільно багатьох DOF: В основному, якобійський говорить вам, наскільки далеко рухається кожен суглоб, якщо ви рухаєте рамку кінцевого ефектора в якомусь довільному обраному напрямку. Нехай бути прямий кінематики, де θ = [ & thetas 1 , . . . , θ n ] - стики, f pos - позиційна частина передньої кінематики і f гниль обертової частини. Тоді ви можете отримати якобійський, диференціюючи пряму кінематику щодо спільних змінних: J =f(θ)θ=[θ1,...,θn]fposfrot - якобійський ваш маніпулятор. Інвертування це дасть вам зворотну кінематику з відповідністюшвидкостям. Він все ще може бути корисним, якщо ви хочете знати, наскільки далеко повинен просуватися кожен суглоб, якщо ви хочете перемістити свій кінцевий ефектор на деякуневеликукількістьΔxу будь-якому напрямку (тому що на рівні позиції це фактично буде лінеаризацією): Δθ=J-1Δx

J=fθ=[fposθ1,fposθ2...,fposθnfrotθ1,frotθ2...,frotθn]
Δx
Δθ=J1Δx

Сподіваюся, що це допомагає.


Дякуємо за відповідь! Але це означатиме, що мені доведеться чисельно обчислювати значення? Насправді я бачив цей аналітичний приклад із graphics.cs.cmu.edu/nsp/course/15-464/Fall09/handouts/IK.pdf зі Slide 19 та graphics.ucsd.edu/courses/cse169_w05/CSE169_13.ppt на слайді 78. З слайдів видно, що мені, можливо, не доведеться перебирати числові методи. У ситуаціях, коли я не маю фактичних функцій для розмежування, я можу використовувати цю формулу. Але проблема полягає в тому, що трапляється, коли у мене більше DOF для кожного суглоба.
ксенон

Якщо я правильно розумію слайди, ви б вирішили випадок довільних багатьох (обертових) DOF, визначаючи вектори для кожного з цих з'єднань, де P i - положення суглоба. Отже, якщо у вас, скажімо, 46 стиків, ви дійсно отримали б якобіанець із 46 стовпцями та 6 рядками (або 3, якщо нехтувати орієнтацією кінцевого ефектора). Короткий короткий опис: ви можете застосувати цю формулу для будь-якої кількості стиків і не потрібно "комбінувати" її з іншими стиками. (eiPi)Pi
Даніель Ебертс

Але що станеться, якщо в стику є багато DOF, таких як , θ y , θ z і поступальні DOF, такі як t x , t y , t z ? Зараз у кожному суглобі є 6 DOF. З мого розуміння того, як матриця Якобіа працює для IK, перші 6 стовпців будуть похідними кінцевого ефектора стосовно 6 різних DOF, а ці перші 6 стовпців повинні описувати перший з'єднання. Наступні наступні 6 стовпців описують другий шарнірно щодо 6 DOF і так далі. Використання рівняння ( e i - P i )θxθyθztxtytz(eiPi)Чи означає це, що 6 стовпців кожного суглоба автоматично упаковуються в один стовпчик?
ксенон

3
А, бачу. Ні, у цьому випадку формула не працюватиме, оскільки вона була розроблена для обертових з'єднань з однією віссю обертання. Якщо ви хочете лікувати, наприклад, сферичні суглоби, вам знадобиться або інша формула, яка стосується конкретного типу суглоба, або вам потрібна закрита форма передової кінематики робота. Якщо у вас це є, ви можете розмежувати його на суглоби і отримати якобіан. θ
Даніель Ебертс

Спасибі! :) Цікаво, хоча слайд 58 у graphics.ucsd.edu/courses/cse169_w05/CSE169_13.ppt натякає, що можна використовувати формулу для обертових з'єднань з 3 DOF? Що означає, якщо суглоб не має поступальних DOF і має чисто 3 обертових DOF, це все-таки можливо? Хоча я не впевнений, чому потрібно множитися на різні обертання, щоб отримати різні DOF. (1,0,0,0)
ксенон

2

Ваша формула для шва 6 dof передбачає, що всі 6 стиків мають вісь у світовій рамці і що всі шви є перекрученими. Оскільки 6 швів, таким чином, однакові, то і їхні стовпчики у якобіанців також однакові.(0,0,1)

Припустимо, спочатку припустимо, що у стику є вісь, проходить через точку r . Нехай e - позиція кінцевого ефектора. Координати a , r та e вказані у світовому кадрі та оновлюються під час переміщення робота. Вісь а має довжину 1 .arearea1

Якщо суглоб є революційним, стовп якобіанського для суглоба є

Jθ(a,r)=[a×(er)a]

Якщо суглоб призматичний, стовпчик є

Jp(a)=[a0]

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

J=[Jp(ax)Jp(ay)Jp(az)Jθ(ax,r)Jθ(ay,r)Jθ(az,r)]

Осей , а у і г залежить від прямої кінематики робота. Для ілюстрації, нехай перетворення k- го суглоба у світовому кадрі задається формулоюaxayazk

Fk=i=1kLiTi

де перетворення є константами, а перетворення T i залежать від спільних змінних. Нехай R c ( q ) і P c ( q ) - це перетворення, які обертаються і переводяться q на осі координат, названих c (або x , y , z ).LiTiRc(q)Pc(q)qcxyz

Нехай - зміщення, обчислене за допомогою якобіанців, для i- го суглоба. Нехай Δ T = P x ( Δ p x ) P y ( Δ p y ) P z ( Δ p zΔq=(Δpx,Δpy,Δpz,Δθx,Δθy,Δθz)i і оновити локальне перетворення суглоба шляхом:ΔT=Px(Δpx)Py(Δpy)Pz(Δpz)Rx(Δθx)Ry(Δθy)Rz(Δθz)

TiTiΔT

У такій постановці прямий кінематики, осі , а у і а г стику я точно стовпці матриці обертання F я . Також положення r є вектором трансляції F i .axayaziFirFi


0

Наскільки я розумію ваше запитання про те, що вам потрібна матриця якобіан для шва 6 DOF.

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

Що стосується сферичного суглоба, він може бути перетворений в 3 обертового з'єднання з трьома взаємно перпендикулярними віссю. Отже, тепер ви спростили сферичний суглоб.

Переміщення вперед до матриці Якобії. Він містить 6 рядів. Перші 3 ряди представляють орієнтацію, а останні 3 ряди - вказану позицію з посиланням на конкретну систему координат. Кожен стовпець у матриці вказує на один стик. Таким чином, кількість з'єднань / DOF у вас є однаковим стовпчиком числа, який ви маєте в матриці Якобіа.

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

В ідеалі 6 роботів DOF з 6 спільними сумісними роботами для більшості справжніх проблем. Але, відповідно до вашого питання, ви розглянули 6 спільних роботів, кожен з яких має 3 DOF, що складає 18 DOF-роботів. Це дасть надлишковий DOF (тобто 18-6 = 12 зайвих DOF). Отже, щоб дістатись до кінцевого ефекту робота до будь-якого місця з будь-якою орієнтацією, у вас буде нескінченно різні рішення (рішення означає обертання кожного суглоба). Тому для вирішення подібної задачі оберненої кінематики вам знадобиться ітераційний метод зворотної кінематики.

Сподіваюся, я відповів на ваше запитання чіткіше. Щоб вивчити основні робототехніки, ви можете звернутися до Джона Дж. Крейга - Введення в механіку робототехніки та управління -Pearson Education, Inc.

З повагою, Манан Каласарія

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.