Invers kinematics ( invers kinematic animation , engelsk inverse kinematics , IK) er processen med at bestemme parametrene for forbundne bevægelige objekter (for eksempel et kinematisk par eller en kinematisk kæde ) for at opnå den nødvendige position, orientering og placering af disse objekter. Invers kinematik er form bevægelsesplanlægning Invers kinematik bruges aktivt i robotteknologi , tredimensionel computeranimation og i udviklingen af computerspil . Det bruges hovedsageligt i de situationer, hvor det er nødvendigt at placere de bevægelige led på en genstand nøjagtigt i forhold til andre objekter i miljøet. Den inverse kinematikalgoritme er det modsatte af den fremadrettede kinematikalgoritme .
Invers kinematik, som direkte , anvendes på modeller af alle karakterer eller objekter, der er skabt ved hjælp af skeletanimation . Essensen af skeletanimation er, at et objekt består af et sæt solide segmenter (komponenter) forbundet med led ( engelsk joint ). I dette tilfælde kan segmenterne kombineres til kinematiske par , som igen kombineres til kinematiske kæder . Disse segmenter danner hierarkiske kæder, der har "øvre" og "nedre" niveauer. Segmenter (komponenter) af de øvre niveauer kaldes forfaderkomponenter (eller overordnede segmenter), og komponenter på lavere niveau kaldes underordnede komponenter (eller underordnede segmenter). For eksempel, hvis vi betragter en menneskelig hånd, så vil skulderleddet være det højeste niveau, og fingerspidsen vil være det laveste, det vil sige efterkommerkomponenten til skulderleddet. Albueleddet er inde i kæden, det vil have både forældre (skulder) og børn (håndled, fingre) segmenter. [en]
Den største forskel mellem direkte kinematik og omvendt kinematik er, at med direkte kinematik transmitteres enhver handling langs en hierarkisk kæde fra top til bund. For eksempel, når hofteleddet bevæger sig, bevæger alle efterkommere sig, det vil sige knæleddet og alle de øvrige. Invers kinematik bruger et princip, der er diametralt modsat det direkte princip - flytning af underordnede komponenter fører til en ændring i positionen af forfaderkomponenterne, det vil sige, at algoritmen beregner positionen og orienteringen af forfaderkomponenterne baseret på positionen og orienteringen af børnekomponenterne. [en]
I invers kinematik kaldes et underordnet segment (underordnet komponent), der forårsager en ændring i position og orientering af andre objekter og er placeret i midten af en separat hierarkisk kæde af segmenter, en effektor [ 1 ] . Hvis effektoren er det endelige objekt i denne hierarkiske kæde, så kaldes den den endelige effektor ( eng. end effector ). Det er gennem effektoren, at hele den hierarkiske kæde manipuleres. Ændring af positionen og/eller orienteringen af sluteffektoren fører til en ændring i positionen og/eller orienteringen af alle segmenter af den hierarkiske kæde i henhold til lovene for invers kinematik. Ændring af positionen og/eller orienteringen af en simpel (ikke endelig) effektor fører til, at positionen af objekter under den i hierarkiet ændres i henhold til lovene for direkte kinematik, og objekter med et højere hierarki - ifølge lovene i omvendt kinematik.
Nøglen til vellykket implementering af invers kinematik er animation indenfor begrænsninger ( engelsk constraints ): karaktermodellens lemmer skal opføre sig inden for rimelige antropomorfe grænser. Det samme gælder for robot-enheder, som har fysiske begrænsninger, såsom det miljø, de opererer i, begrænsninger for bevægelsen af deres led og begrænsede fysiske belastninger og hastigheder, som de er i stand til at arbejde med. [en]
Invers kinematik er et værktøj, der ofte bruges af 3D -kunstnere . Det er lettere for kunstneren at udtrykke den ønskede rumlige handling end direkte at manipulere artikulationsvinklerne. For eksempel giver omvendt kinematik kunstneren mulighed for at flytte armen på en 3D-humanoid karaktermodel til en ønsket position og orientering. Samtidig vælger algoritmen selv, og ikke kunstneren, de korrekte vinkler på håndleddet, albuen og skulderleddet.
For eksempel, hvis en person ønsker at tage fat i et dørhåndtag med sin hånd, så skal hans hjerne foretage de nødvendige beregninger for korrekt at placere personens arm og torso. Hovedmålet er at bevæge hånden, men mange komplekse flerledsled skal bruges for at få hånden til det ønskede objekt. En lignende proces forekommer i teknologiske anvendelser - for at opnå det ønskede mål skal de matematiske beregninger af invers kinematik udføres for at placere lemmerne på den korrekte måde. Et eksempel, hvor der ofte er behov for inverse kinematikberegninger, er inden for robotteknologi. For eksempel ønsker en robotoperatør at placere et eller andet objekt ved hjælp af en manipulator , men han ønsker selvfølgelig ikke at kontrollere hvert led i manipulatoren separat.
Andre applikationer, hvor der bruges invers kinematik, er computergrafik og animation . For eksempel ønsker animatorer at styre en computergenereret humanoid karaktermodel, men det er meget svært at animere individuelle led. Løsningen er at simulere de virtuelle led i en "dukkedukke" og lade animatoren bevæge dukkens arme, ben og torso, og computeren ved hjælp af omvendt kinematik vil automatisk generere de nødvendige lemmerpositioner for at opnå resultatet.
Invers kinematik bruges ofte i computerspil til at animere humanoide karakterer. Dybest set bruges omvendt kinematik til at skabe animation af benene på modeller af en humanoid skabning eller en person. For eksempel er det ret nemt at skabe en animation af bevægelse (gang, løb) af en person eller et landdyr, hvis han bevæger sig på et fladt plan. Men hvis terrænet er ujævnt (ujævnt, ujævnt, robust eller bjergrigt), så er det en praktisk talt umulig opgave at skabe nøjagtige gå-animationer. Animationen af benene vil ikke svare til overfladerelieffet, hvilket vil manifestere sig i sådanne effekter som at benene glider på overfladen og unøjagtig placering af benene i forhold til det (foden vil "synke" ned i overfladen eller "ikke" nå det). Det er til den kvalitative og effektive løsning af disse problemer, at invers kinematik bruges. [en]
Andre applikationer, der bruger omvendt kinematik, omfatter interaktiv manipulation, animationskontrol og kollisionsundgåelse .