Matematički model inverzne kinematike




matematika illustracija

Pretpostavimo da imamo niz od n zglobova u manipulatoru. Svaki zglob ima svoj lokalni koordinatni sistem. Veza između koordinatnih sistema dva susjedna zgloba je transformacija sastavljena od rotacije i translacije. Rotacija R(Θi) je rotacija za kut Θi oko osi rotacije zgloba i, a translacija T(xi, yi, zi) translacija do zgloba i od ishodišta zgloba i-1. Ukupna transformacija Mi je:

Mi =T(xi, yi, zi) R(Θi).

Za cijeli lanac od n zglobova transformacije se akumuliraju:

M=M1 M2 M3 (…) Mn

Zadamo li vektor poznatih nam varijabli zglobova q, unaprijednom kinematikom možemo izračunati vektor položaja i smjera x krajnje tačke manipulatora jednostavnim množenjem matrica, i to zapisati na slijedeći način:

x=f(q)

No, ukoliko nam je poznat položaj i smjer x krajnje tačke, a tražimo vektor varijabli zglobova q, dolazimo do problema inverzne kinematike:

q=f-1(x)

Funkcija f nije linearna, i uz to za određeni x može biti beskonačno mnogo rješenja q. Zato je jedan od pristupa linearizirati tu funkciju oko trenutne konfiguracije manipulatora, odnosno napisati ju u slijedećem obliku:

x'= J(q)q'

Ovaj izraz daje ovisnost brzina zglobova i brzine krajnje tačke manipulatora. Ovisnost je dana Jakobijevom matricom:

x=f(q)

Jakobijeva matrica preslikava promjene u varijabli zgloba q u promjene u položaju i smjeru krajnje tačke x. Matrica J je dimenzija m×n, gdje je n broj varijabli zglobova (odnosno broj zglobova u manipulatoru) a m dimenzija vektora x krajnje tačke, i obično je 3 za samo probleme položaja, ili 6 za složenije probleme položaja i orijentacije krajnje tačke.

Da bismo riješili problem inverzne kinematike, moramo izračunati:

J=Δf/Δq

Odnosno, problem se svodi na invertiranje Jakobijeve matrice. Kada bismo znali matricu inverznu Jakobijevoj, mogli bismo, u svakoj iteraciji, izračunati smjer odnosno brzinu gibanja krajnje tačke manipulatora, zatim iz nje pomoću inverzne Jakobijeve matrice dobiti brzine zglobova te numeričkom integracijom dobiti novi vektor stanja q. Procedura se ponavlja sve dok ne dođemo do željenog krajnjeg položaja, a kako linearizacija funkcije f vrijedi samo za male pomake, u svakom koraku je potrebno ponovo izračunati Jakobijevu matricu i njoj inverznu matricu.

q' = J- 1 (q)x'

Ovakav pristup nam donosi mnogo problema. Za početak, Jakobijeva matrica mora imati inverznu matricu. Iz toga slijedi da mora biti kvadratna i da ne smije biti singularna. Problem dimezionalnosti se da riješiti metodama računanja pseudo-inverzne matrice, no još uvijek ostaju singulariteti. Jakobijeva matrica će biti singularna kada je manipulator u singularnom položaju, to jest kada su svi zglobovi orijentirani u istom smjeru, odnosno kada je manipulator ‘ispružen’. Tada se u Jakobijevoj matrici javlja red nula. Metoda računanja pseudo-inverza će i ovdje dati rješenje, no promjene elemenata matrice u blizini singulariteta neće biti kontinuirane, brzine će postati vrlo velike i manipulator će se, zbog velikih brzina, neprirodno ‘trzati’.

Još jedan problem, i to bitan, je što računanje inverzne kinematike mora biti brzo. sistem koji će prikazivati model čovjeka mora moći izračunati položaje barem 4 manipulatora (2 ruke i 2 noge) 25 puta u sekundi (koliko je donja granica animacije), te uz to još i računati i ostale simulirane elemente, i također i prikazati scenu. Ne smijemo dozvoliti da inverzna kinematika predstavlja prevelike zahtjeve na procesorsko vrijeme, jer će inverzna kinematika biti samo jedna od osnovnih funkcija modela, a ne njegova svrha. Zato je neprikladno odabrati pristup u kojem se iterativno računaju derivacije i inverzi velikih matrica, jer su to vremenski zahtjevne operacije