Você provavelmente já ouviu falar de cinemática inversa. O IK é uma ferramenta popular no Unity e na computação gráfica, mas se esta é a primeira vez que você tenta criar ou usar um sistema de cinemática inversa, talvez queira mais detalhes. Vou explicar o que é IK, definir o vocabulário e revisar os usos. Qual é o vocabulário necessário para entender IK?
Antes de entrar no coração da IK, precisamos definir algum vocabulário relacionado à IK. IK é um método que é aplicado a um corpo articulado. O que é um corpo articulado?
Corpo Articulado
Um corpo articulado pode representar a maioria dos corpos animados, como seres humanos e animais com esqueletos. Simplificando, um corpo articulado é uma árvore de correntes interligadas. As correntes ligadas são constituídas por juntas e elos, onde um elo é um cilindro rígido.
Tipos de juntas
Quanto às juntas, existem dois tipos. O primeiro tipo de junta é uma junta de revolução. Ele está conectado a um link que gira em torno dele.
Uma junta de revolução é muito parecida com o pino central de um relógio - com um ponteiro de relógio como um link.
Uma junção prismática é uma junção de forma que o link conectado se converta da junção para estender / encurtar o link.
Uma articulação prismática funciona como estender / retrair o comprimento da alça retrátil na sua bagagem. Se você olhar atentamente, uma alça de bagagem retrátil possui 4 juntas prismáticas. 2 juntas prismáticas até a metade da alça e outras 2 juntas prismáticas até a alça na parte superior da bagagem.
Se você está confuso com juntas prismáticas, não se preocupe. Eles não são usados com frequência na cinemática inversa e, como você pode perceber, nenhum ser humano tem articulações prismáticas - apenas articulações revolutivas.
Estrutura hierárquica
Um corpo articulado tem uma articulação radicular. A articulação da raiz é a base da estrutura. A articulação da raiz de um humanóide é geralmente o centro dos quadris. O corpo articulado é formado a partir de uma árvore de articulações e elos, começando na articulação radicular. Uma nova junta e link é semelhante a um novo galho em uma árvore. Um link / junta interno é um link / junta que está mais próximo da junta raiz dentro da hierarquia da árvore do corpo articulado, no que se refere a determinada junta / link. Um link / junta externo é um link / junta mais distante da junta raiz dentro da hierarquia da árvore do corpo articulado.
Efeito Final
Um efetor final é uma posição na posição mais externa do link mais externo. É o fim livre da cadeia de juntas e elos alternados. O efetor final não é uma junta. O efetor final é apenas a posição no final de um corpo articulado. Um corpo articulado pode ter vários efetores finais, assim como uma árvore binária pode ter várias folhas.
O End Effector é descrito como um círculo verde aqui.
Articulações e Poses
Uma articulação é uma rotação / translação de uma junta que move um link conectado. Por outro lado, uma pose é um conjunto de articulações articulares que resulta no posicionamento do corpo articulado. Em outras palavras, a pose é um valor vetorial em vez de um valor escalar.
O que é cinemática direta?
Antes de podermos entender o que é a cinemática inversa, precisamos descobrir o que é a cinemática direta. A função / algoritmo Forward Kinematics faz uma pose como entrada e calcula a posição do efetor final como saída. A cinemática direta é a função inversa da cinemática inversa. Com a cinemática direta, é necessário definir toda a pose de um corpo articulado para fornecer à função / algoritmo a entrada da pose. Isso significa que você precisa definir a articulação de cada articulação no corpo articulado. Isso pode ser bom se você tiver um número baixo de articulações, mas com um número alto de articulações, isso tende a ser entediante.
O que é cinemática inversa?
Agora, imagine se você gostaria que o efetor final do seu corpo articulado atingisse uma determinada posição-alvo. Isso significa que você conhece a posição efetiva final que gostaria de atingir, mas não sabe qual é a pose do corpo articulado para que o efetivo final atinja essa posição alvo. É aqui que a cinemática inversa brilha!
Cinemática Inversa é a função / algoritmo inverso da Cinemática Avançada. A função / algoritmo Forward Kinematics assume uma posição de destino como entrada e calcula a pose necessária para que o efetor final alcance a posição de destino - a pose é a saída.
Como você pode ver, a entrada e a saída são alternadas entre FK e IK. Com a cinemática inversa, você não precisa definir toda a pose de um corpo articulado - isso é calculado pelo algoritmo IK. Com o IK, você só precisa definir uma posição como entrada.
A cinemática inversa faz todo o trabalho computacional desafiador de calcular qual é a pose. No Estado Antes, existe um corpo articulado com alguma pose conhecida. Ele define uma posição de destino para o efetor final tentar alcançar. Uma vez que o algoritmo IK é aplicado ao corpo articulado, chegamos ao estado posterior. O estado posterior mostra que uma nova pose foi calculada, de modo que o efetor final esteja agora na posição de destino.
Quais são os usos do IK?
Nesse ponto, sabemos que a IK é aplicada a um corpo articulado, sabemos do que é formado um corpo articulado e sabemos a diferença entre IK e FK. Até agora, temos uma boa visão geral do IK, mas vamos encerrá-lo com alguns bons casos de uso do IK. O IK pode ser usado para um braço humanóide alcançar um objeto / alvo, como vimos. O IK também pode ser usado para pisar nos pés, de modo que dizemos ao pé onde pisar e o IK descobre como configurar as articulações das pernas. O IK geralmente não é usado como uma animação em si (alcançando um objeto), mas mais como uma ferramenta de animação. Portanto, se você estiver implementando um ciclo de caminhada, poderá posicionar alguns dos quadros principais usando a ferramenta IK.
Outro ponto importante sobre a IK é que seu objetivo / objetivo não se limita apenas à posição - seu objetivo pode ser definido como uma rotação. Por exemplo, se seus pés precisarem girar com base em terrenos irregulares, sua meta de rotação IK poderá ser definida com base no normal do piso. Dessa forma, seus pés estão inclinados ao longo do chão, como quando você está subindo uma inclinação. Observe que você também pode usar o IK para fazer com que sua cabeça (ou até olhos) olhe em uma determinada direção. Se você deseja que sua cabeça siga um objeto, use IK para que ela siga o objeto.