Pređi na sadržaj

Inverzna kinematika

S Vikipedije, slobodne enciklopedije
Napredna naspram inverzne kinematike

U kompjuterskoj animaciji i robotici, inverzna kinematika je matematički proces izračunavanja varijabilnih parametara zglobova potrebnih za postavljanje kraja kinematičkog lanca, kao što je robot manipulator ili skelet lika animacije, u datu poziciju i orijentaciju u odnosu na početak lanaca. S obzirom na parametre zgloba, položaj i orijentacija kraja lanca, npr. ruke lika ili robota, obično se mogu izračunati direktno korišćenjem višestrukih primena trigonometrijskih formula, procesa poznatog kao Direktna kinematika . Međutim, obrnuta operacija je, generalno, mnogo izazovnija. [1]

Inverzna kinematika se takođe koristi za vraćanje kretanja objekta u svetu iz nekih drugih podataka, kao što je film tih kretanja, ili film o svetu kako ga vidi kamera koja sama pravi te pokrete. Ovo se dešava, na primer, kada snimljeni pokreti ljudskog glumca treba da budu duplirani animiranim likom .

Robotika

[uredi | uredi izvor]

U robotici, inverzna kinematika koristi kinematičke jednačine za određivanje parametara zgloba koji obezbeđuju željenu konfiguraciju (položaj i rotaciju) za svaki krajnji efektor robota. [2] Određivanje kretanja robota tako da se njegovi krajnji efekti pomeraju od početne konfiguracije do željene konfiguracije poznato je kao planiranje kretanja. Inverzna kinematika transformiše plan kretanja u zajedničke trajektorije pokretača za robota. Slične formule određuju položaj skeleta animiranog lika koji treba da se kreće na određeni način u filmu, ili vozila kao što je automobil ili čamac koji sadrži kameru koja snima scenu filma. Jednom kada su kretanja vozila poznata, mogu se koristiti za određivanje tačke gledišta koja se stalno menja za kompjuterski generisane slike objekata u pejzažu, kao što su zgrade, tako da se ovi objekti menjaju u perspektivi dok sami ne izgledaju da se kreću kao vozilo kamera prolazi pored njih.

Kretanje kinematičkog lanca, bilo da je u pitanju robot ili animirani lik, modelirano je kinematičkim jednačinama lanca. Ove jednačine definišu konfiguraciju lanca u smislu njegovih zajedničkih parametara. Direktna kinematika koristi parametre zgloba za izračunavanje konfiguracije lanca, a inverzna kinematika obrće ovaj proračun da bi odredila parametre zgloba koji postižu željenu konfiguraciju. [3] [4] [5]

Kinematička analiza

[uredi | uredi izvor]
Model ljudskog skeleta kao kinematičkog lanca omogućava pozicioniranje korišćenjem inverzne kinematike.

Kinematička analiza je jedan od prvih koraka u dizajnu većine industrijskih robota. Kinematička analiza omogućava dizajneru da dobije informacije o položaju svake komponente unutar mehaničkog sistema. Ove informacije su neophodne za naknadnu dinamičku analizu zajedno sa kontrolnim putanjama.

Inverzna kinematika je primer kinematičke analize ograničenog sistema krutih tela, ili kinematičkog lanca . Kinematske jednačine robota mogu se koristiti za definisanje jednačina petlje složenog zglobnog sistema. Ove jednačine petlje su nelinearna ograničenja konfiguracionih parametara sistema. Nezavisni parametri u ovim jednačinama poznati su kao stepeni slobode sistema.

Dok postoje analitička rešenja problema inverzne kinematike za širok spektar kinematičkih lanaca, kompjutersko modeliranje i alati za animaciju često koriste Njutnov metod za rešavanje nelinearnih kinematičkih jednačina.

Druge primene inverznih kinematičkih algoritama uključuju interaktivnu manipulaciju, kontrolu animacije i izbegavanje sudara .

Inverzna kinematika i 3D animacija

[uredi | uredi izvor]

Inverzna kinematika je važna za programiranje igara i 3D animaciju, gde se koristi za fizičko povezivanje likova igre sa svetom, kao što je stopala koja čvrsto slete na teren.[6] Animirana figura je modelovana skeletom krutih segmenata povezanih zglobovima, koji se naziva kinematički lanac . Kinematičke jednačine figure definišu odnos između spojnih uglova figure i njene poze ili konfiguracije. Problem direktne kinematičke animacije koristi kinematičke jednačine za određivanje poze s obzirom na uglove zgloba. Inverzni kinematički problem izračunava zglobne uglove za željenu pozu figure.

Kompjuterskim dizajnerima, umetnicima i animatorima je često lakše da definišu prostornu konfiguraciju sklopa ili figure pokretnim delovima, ili rukama i nogama, umesto da direktno manipulišu uglovima zglobova. Zbog toga se inverzna kinematika koristi u kompjuterskim sistemima projektovanja za animiranje sklopova i od strane kompjuterski zasnovanih umetnika i animatora za pozicioniranje figura i likova.

Sklop je modeliran kao krute veze povezane spojevima koji su definisani kao spojevi ili geometrijska ograničenja. Pomeranje jednog elementa zahteva izračunavanje uglova spoja za druge elemente da bi se održala ograničenja zgloba. Na primer, inverzna kinematika omogućava umetniku da pomeri ruku 3D ljudskog modela u željenu poziciju i orijentaciju i da algoritam odabere odgovarajuće uglove zglobova zgloba, lakta i ramena. Uspešna primena kompjuterske animacije obično takođe zahteva da se figura kreće u razumnim antropomorfnim granicama.

Metoda poređenja i napred i inverzne kinematike za animaciju lika može se definisati prednostima koje su svojstvene svakom od njih. Na primer, blokiranje animacije gde se koriste veliki lukovi kretanja je često korisnije u kinematici napred. Međutim, delikatnija animacija i pozicioniranje ciljnog krajnjeg efektora u odnosu na druge modele mogu biti lakši korišćenjem obrnute kinematike. Moderni digitalni paketi za kreiranje (DCC) nude metode za primenu i direktne i inverzne kinematike na modele.

Analitička rešenja inverzne kinematike

[uredi | uredi izvor]

U nekim, ali ne u svim slučajevima, postoje analitička rešenja za inverzne kinematičke probleme. Jedan takav primer je za 6-DoF robota (na primer, 6 obrtnih zglobova) koji se kreće u 3D prostoru (sa 3 stepena slobode položaja i 3 stepena slobode rotacije). Ako stepeni slobode robota premašuju stepene slobode krajnjeg efektora, na primer kod robota od 7 DoF sa 7 obrtnih zglobova, onda postoji beskonačno mnogo rešenja za IK problem, a analitičko rešenje ne postoji. Daljnjim proširenjem ovog primera, moguće je popraviti jedan spoj i analitički rešiti druge spojeve, ali možda bolje rešenje nude numeričke metode (sledeći odeljak), koje umesto toga mogu optimizovati rešenje prema dodatnim preferencijama (troškovi u problemu optimizacije).

Analitičko rešenje problema inverzne kinematike je izraz zatvorenog oblika koji uzima pozu krajnjeg efektora kao ulaz i daje pozicije zglobova kao izlaz, . Rešavači analitičke inverzne kinematike mogu biti znatno brži od numeričkih rešavača i daju više od jednog rešenja, ali samo konačan broj rešenja, za datu pozu krajnjeg efektora.

Program otvorenog koda IKFast može da reši kompletna analitička rešenja najčešćih robotskih manipulatora i generiše C++ kod za njih. Generisani rešavači pokrivaju većinu degenerisanih slučajeva i mogu dati rešenje na novijim računarima za nekoliko mikrosekundi.  Jedan problem sa ovim rešavačima je taj što se zna da oni ne moraju nužno da daju lokalno glatka rešenja između dve susedne konfiguracije, što može izazvati nestabilnost ako su potrebna iterativna rešenja inverzne kinematike, kao što je ako se IK rešava unutar kontrolne petlje visoke brzine .

Numerička rešenja IK zadataka

[uredi | uredi izvor]

Postoji mnogo metoda modeliranja i rešavanja inverznih kinematičkih problema. Najfleksibilniji od ovih metoda se obično oslanjaju na iterativnu optimizaciju da bi se pronašlo približno rešenje, zbog teškoće invertovanja jednačine kinematike unapred i mogućnosti praznog prostora za rešenje. Osnovna ideja iza nekoliko od ovih metoda je da se modeluje jednačina direktne kinematike koristeći proširenje Tejlorovog niza, koje može biti jednostavnije za invertovanje i rešavanje od originalnog sistema.

Jakobijanska inverzna tehnika

[uredi | uredi izvor]

Jakobijanska inverzna tehnika je jednostavan, ali efikasan način implementacije inverzne kinematike. Neka bude promenljive koje upravljaju jednačinom direktne kinematike, odnosno funkcijom položaja. Ove varijable mogu biti zglobni uglovi, dužine ili druge proizvoljne realne vrednosti. Ako IK sistem živi u 3-dimenzionalnom prostoru, funkcija položaja se može posmatrati kao mapiranje . Dozvoliti dati početnu poziciju sistema, i

,

biti ciljna pozicija sistema. Jakobijanska inverzna tehnika iterativno izračunava procenu od što minimizira grešku koju daje .

Za male -vektora, serijsko proširenje funkcije položaja daje

, gde je (3 × m) Jakobijanska matrica funkcije položaja na .

Imajte na umu da (i, k)-ti unos Jakobijanske matrice može da se aproksimira numerički

, gde daje i-tu komponentu funkcije položaja, je jednostavno sa malom deltom dodatom njenoj k-toj komponenti, i je relativno mala pozitivna vrednost.

Uzimanje Mure-Penrose pseudoinverni Jakobijan (izračunato korišćenjem dekompozicije singularne vrednosti) i preuređivanje pojmova rezultira

, gde: .

Primena inverzne Jakobijanove metode jednom će rezultirati veoma grubom procenom željenog -vektor. Da bi se ovo skaliralo, trebalo bi koristiti pretragu linija na prihvatljivu vrednost. Procena za može se poboljšati pomoću sledećeg algoritma (poznatog kao Njutn-Rafsonov metod):

Jednom neki -vektor je uzrokovao da greška padne blizu nule, algoritam bi trebalo da se završi. Prijavljeno je da postojeće metode zasnovane na Hesijanovoj matrici sistema konvergiraju željenom vrednosti koje koriste manje iteracija, međutim, u nekim slučajevima više računarskih resursa.

Heurističke metode

[uredi | uredi izvor]

Problem inverzne kinematike se takođe može aproksimirati korišćenjem heurističkih metoda. Ove metode izvode jednostavne, iterativne operacije da bi postepeno dovele do aproksimacije rešenja. Heuristički algoritmi imaju niske računske troškove (vrlo brzo vraćaju konačnu pozu) i obično podržavaju ograničenja zglobova. Najpopularniji heuristički algoritmi su ciklično koordinatno spuštanje (CCD) [7][8]

Vidi još

[uredi | uredi izvor]

Reference

[uredi | uredi izvor]
  1. ^ Donald L. Pieper, The kinematics of manipulators under computer control Arhivirano na sajtu Wayback Machine (30. oktobar 2017). PhD thesis, Stanford University, Department of Mechanical Engineering, October 24, 1968.
  2. ^ Paul, Richard (1981). Robot manipulators: mathematics, programming, and control : the computer control of robot manipulators. MIT Press, Cambridge, MA. ISBN 978-0-262-16082-7. 
  3. ^ J. M. McCarthy, 1990, Introduction to Theoretical Kinematics, MIT Press, Cambridge, MA.
  4. ^ J. J. Uicker, G. R. Pennock, and J. E. Shigley, 2003, Theory of Machines and Mechanisms, Oxford University Press, New York.
  5. ^ J. M. McCarthy and G. S. Soh, 2010, Geometric Design of Linkages, Springer, New York.
  6. ^ A. Aristidou, J. Lasenby, Y. Chrysanthou, A. Shamir (2018). „Inverse Kinematics Techniques in Computer Graphics: A Survey”. Computer Graphics Forum. 37 (6): 35—58. doi:10.1111/cgf.13310. 
  7. ^ D. G. Luenberger. 1989. Linear and Nonlinear Programming. Addison Wesley.
  8. ^ Aristidou, and J. Lasenby (2011). „FABRIK: A fast, iterative solver for the inverse kinematics problem”. Graph. Models. 73 (5): 243—260. doi:10.1016/j.gmod.2011.05.003. 

Spoljašnje veze

[uredi | uredi izvor]