Инверзна кинематика

С Википедије, слободне енциклопедије
Напредна наспрам инверзне кинематике

У компјутерској анимацији и роботици, инверзна кинематика је математички процес израчунавања варијабилних параметара зглобова потребних за постављање краја кинематичког ланца, као што је робот манипулатор или скелет лика анимације, у дату позицију и оријентацију у односу на почетак ланаца. С обзиром на параметре зглоба, положај и оријентација краја ланца, нпр. руке лика или робота, обично се могу израчунати директно коришћењем вишеструких примена тригонометријских формула, процеса познатог као Директна кинематика . Међутим, обрнута операција је, генерално, много изазовнија. [1]

Инверзна кинематика се такође користи за враћање кретања објекта у свету из неких других података, као што је филм тих кретања, или филм о свету како га види камера која сама прави те покрете. Ово се дешава, на пример, када снимљени покрети људског глумца треба да буду дуплирани анимираним ликом .

Роботика[уреди | уреди извор]

У роботици, инверзна кинематика користи кинематичке једначине за одређивање параметара зглоба који обезбеђују жељену конфигурацију (положај и ротацију) за сваки крајњи ефектор робота. [2] Одређивање кретања робота тако да се његови крајњи ефекти померају од почетне конфигурације до жељене конфигурације познато је као планирање кретања. Инверзна кинематика трансформише план кретања у заједничке трајекторије покретача за робота. Сличне формуле одређују положај скелета анимираног лика који треба да се креће на одређени начин у филму, или возила као што је аутомобил или чамац који садржи камеру која снима сцену филма. Једном када су кретања возила позната, могу се користити за одређивање тачке гледишта која се стално мења за компјутерски генерисане слике објеката у пејзажу, као што су зграде, тако да се ови објекти мењају у перспективи док сами не изгледају да се крећу као возило камера пролази поред њих.

Кретање кинематичког ланца, било да је у питању робот или анимирани лик, моделирано је кинематичким једначинама ланца. Ове једначине дефинишу конфигурацију ланца у смислу његових заједничких параметара. Директна кинематика користи параметре зглоба за израчунавање конфигурације ланца, а инверзна кинематика обрће овај прорачун да би одредила параметре зглоба који постижу жељену конфигурацију. [3] [4] [5]

Кинематичка анализа[уреди | уреди извор]

Модел људског скелета као кинематичког ланца омогућава позиционирање коришћењем инверзне кинематике.

Кинематичка анализа је један од првих корака у дизајну већине индустријских робота. Кинематичка анализа омогућава дизајнеру да добије информације о положају сваке компоненте унутар механичког система. Ове информације су неопходне за накнадну динамичку анализу заједно са контролним путањама.

Инверзна кинематика је пример кинематичке анализе ограниченог система крутих тела, или кинематичког ланца . Кинематске једначине робота могу се користити за дефинисање једначина петље сложеног зглобног система. Ове једначине петље су нелинеарна ограничења конфигурационих параметара система. Независни параметри у овим једначинама познати су као степени слободе система.

Док постоје аналитичка решења проблема инверзне кинематике за широк спектар кинематичких ланаца, компјутерско моделирање и алати за анимацију често користе Њутнов метод за решавање нелинеарних кинематичких једначина.

Друге примене инверзних кинематичких алгоритама укључују интерактивну манипулацију, контролу анимације и избегавање судара .

Инверзна кинематика и 3Д анимација[уреди | уреди извор]

Инверзна кинематика је важна за програмирање игара и 3Д анимацију, где се користи за физичко повезивање ликова игре са светом, као што је стопала која чврсто слете на терен.[6] Анимирана фигура је моделована скелетом крутих сегмената повезаних зглобовима, који се назива кинематички ланац . Кинематичке једначине фигуре дефинишу однос између спојних углова фигуре и њене позе или конфигурације. Проблем директне кинематичке анимације користи кинематичке једначине за одређивање позе с обзиром на углове зглоба. Инверзни кинематички проблем израчунава зглобне углове за жељену позу фигуре.

Компјутерским дизајнерима, уметницима и аниматорима је често лакше да дефинишу просторну конфигурацију склопа или фигуре покретним деловима, или рукама и ногама, уместо да директно манипулишу угловима зглобова. Због тога се инверзна кинематика користи у компјутерским системима пројектовања за анимирање склопова и од стране компјутерски заснованих уметника и аниматора за позиционирање фигура и ликова.

Склоп је моделиран као круте везе повезане спојевима који су дефинисани као спојеви или геометријска ограничења. Померање једног елемента захтева израчунавање углова споја за друге елементе да би се одржала ограничења зглоба. На пример, инверзна кинематика омогућава уметнику да помери руку 3Д људског модела у жељену позицију и оријентацију и да алгоритам одабере одговарајуће углове зглобова зглоба, лакта и рамена. Успешна примена компјутерске анимације обично такође захтева да се фигура креће у разумним антропоморфним границама.

Метода поређења и напред и инверзне кинематике за анимацију лика може се дефинисати предностима које су својствене сваком од њих. На пример, блокирање анимације где се користе велики лукови кретања је често корисније у кинематици напред. Међутим, деликатнија анимација и позиционирање циљног крајњег ефектора у односу на друге моделе могу бити лакши коришћењем обрнуте кинематике. Модерни дигитални пакети за креирање (ДЦЦ) нуде методе за примену и директне и инверзне кинематике на моделе.

Аналитичка решења инверзне кинематике[уреди | уреди извор]

У неким, али не у свим случајевима, постоје аналитичка решења за инверзне кинематичке проблеме. Један такав пример је за 6-ДоФ робота (на пример, 6 обртних зглобова) који се креће у 3Д простору (са 3 степена слободе положаја и 3 степена слободе ротације). Ако степени слободе робота премашују степене слободе крајњег ефектора, на пример код робота од 7 ДоФ са 7 обртних зглобова, онда постоји бесконачно много решења за ИК проблем, а аналитичко решење не постоји. Даљњим проширењем овог примера, могуће је поправити један спој и аналитички решити друге спојеве, али можда боље решење нуде нумеричке методе (следећи одељак), које уместо тога могу оптимизовати решење према додатним преференцијама (трошкови у проблему оптимизације).

Аналитичко решење проблема инверзне кинематике је израз затвореног облика који узима позу крајњег ефектора као улаз и даје позиције зглобова као излаз, . Решавачи аналитичке инверзне кинематике могу бити знатно бржи од нумеричких решавача и дају више од једног решења, али само коначан број решења, за дату позу крајњег ефектора.

Програм отвореног кода ИКФаст може да реши комплетна аналитичка решења најчешћих роботских манипулатора и генерише Ц++ код за њих. Генерисани решавачи покривају већину дегенерисаних случајева и могу дати решење на новијим рачунарима за неколико микросекунди.  Један проблем са овим решавачима је тај што се зна да они не морају нужно да дају локално глатка решења између две суседне конфигурације, што може изазвати нестабилност ако су потребна итеративна решења инверзне кинематике, као што је ако се ИК решава унутар контролне петље високе брзине .

Нумеричка решења ИК задатака[уреди | уреди извор]

Постоји много метода моделирања и решавања инверзних кинематичких проблема. Најфлексибилнији од ових метода се обично ослањају на итеративну оптимизацију да би се пронашло приближно решење, због тешкоће инвертовања једначине кинематике унапред и могућности празног простора за решење. Основна идеја иза неколико од ових метода је да се моделује једначина директне кинематике користећи проширење Тејлоровог низа, које може бити једноставније за инвертовање и решавање од оригиналног система.

Јакобијанска инверзна техника[уреди | уреди извор]

Јакобијанска инверзна техника је једноставан, али ефикасан начин имплементације инверзне кинематике. Нека буде променљиве које управљају једначином директне кинематике, односно функцијом положаја. Ове варијабле могу бити зглобни углови, дужине или друге произвољне реалне вредности. Ако ИК систем живи у 3-димензионалном простору, функција положаја се може посматрати као мапирање . Дозволити дати почетну позицију система, и

,

бити циљна позиција система. Јакобијанска инверзна техника итеративно израчунава процену од што минимизира грешку коју даје .

За мале -вектора, серијско проширење функције положаја даје

, где је (3 × м) Јакобијанска матрица функције положаја на .

Имајте на уму да (и, к)-ти унос Јакобијанске матрице може да се апроксимира нумерички

, где даје и-ту компоненту функције положаја, је једноставно са малом делтом додатом њеној к-тој компоненти, и је релативно мала позитивна вредност.

Узимање Муре-Пенросе псеудоинверни Јакобијан (израчунато коришћењем декомпозиције сингуларне вредности) и преуређивање појмова резултира

, где: .

Примена инверзне Јакобијанове методе једном ће резултирати веома грубом проценом жељеног -вектор. Да би се ово скалирало, требало би користити претрагу линија на прихватљиву вредност. Процена за може се побољшати помоћу следећег алгоритма (познатог као Њутн-Рафсонов метод):

Једном неки -вектор је узроковао да грешка падне близу нуле, алгоритам би требало да се заврши. Пријављено је да постојеће методе засноване на Хесијановој матрици система конвергирају жељеном вредности које користе мање итерација, међутим, у неким случајевима више рачунарских ресурса.

Хеуристичке методе[уреди | уреди извор]

Проблем инверзне кинематике се такође може апроксимирати коришћењем хеуристичких метода. Ове методе изводе једноставне, итеративне операције да би постепено довеле до апроксимације решења. Хеуристички алгоритми имају ниске рачунске трошкове (врло брзо враћају коначну позу) и обично подржавају ограничења зглобова. Најпопуларнији хеуристички алгоритми су циклично координатно спуштање (ЦЦД) [7][8]

Види још[уреди | уреди извор]

Референце[уреди | уреди извор]

  1. ^ Donald L. Pieper, The kinematics of manipulators under computer control Архивирано на сајту Wayback Machine (30. октобар 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. 

Спољашње везе[уреди | уреди извор]