# Cinemática Inversa

A cinemática inversa (IK), determina os valores de coordenadas articulares se conhecida a localização do extremo do membro.

## Física

Cinemática é a descrição formal do movimento. Um dos objetivos da mecânica rudimentar é identificar as forças em um objeto e então aplicar a cinemática para determinar o movimento do objeto. Idealmente, a posição do objeto pode ser determinada a qualquer instante. Para um objeto extenso, junto com a cinemática linear, movimento de rotação pode ser aplicado para alcançar o mesmo objetivo: Identificar as forças, desenvolver equações de movimento, determinar a posição do centro de massa e a orientação do objeto a todos os instantes.

## Robótica e Animação 3D

Cinemática inversa é o processo de determinação dos parâmetros de uma junta em um objeto flexível, de forma a alcançar o posicionamento adequado. Cinemática inversa é um tipo de programação de movimentos, sendo também relevante para a programação de jogos e animação em 3D, nos quais uma aplicação comum é certificar que os personagens se conectem fisicamente com o ambiente, por exemplo, que seus pés estejam na superfície do terreno.
Uma figura articulada consiste de um grupo de segmentos rígidos unidos por juntas. Nelas, ângulos variáveis geram um número indefinido de configurações. A solução para o problema da cinemática direta, levando-se em conta esses ângulos, é o posicionamento da figura. A solução para o mais complicado "problema de cinemática inversa" é encontrar os ângulos corretos, dada a configuração desejada da figura. Em geral, não há solução analítica para o problema da cinemática inversa. Entretanto, ele pode ser resolvido por meio de técnicas de programação não linear.
A cinemática inversa é uma ferramenta freqüentemente empregada por artistas de 3D. É no geral mais fácil para um artista expressar a aparência espacial desejada do que manipular diretamente ângulos nas juntas. Por exemplo, a cinemática inversa permite que um artista manipule uma mão em 3D de um modelo humano a posição e orientação desejadas, e deixar que um algoritmo selecione os ângulos apropriados de punho, cotovelo e ombro.
Por exemplo, quando alguém quer alcançar uma maçaneta, o cérebro deve fazer o cálculo necessário para posicionar os membros e o tronco de maneira que a mão se localize próxima à porta. O objetivo principal é mover a mão, mas muitas articulações complexas de várias juntas deve ocorrer para que a mão chegue ao local desejado. De maneira similar a muitas aplicações técnológicas, a cálculos matemáticos de cinemática inversa devem ser realizados para articular membros da forma correta para alcançar os objetivos desejados. Um exemplo no qual o uso de cáculos de cinemática inversa é essencial é na robótica, quando um operador deseja posicionar uma ferramenta usando um braço robotizado, mas certamente não quer manipular individualmente cada junta do mesmo. Outras aplicações incluem animação computadorizada, quando os animadores desejam manipular um personagem gerado por computador, mas descobrem ser muito difícil animar as juntas individuais. A solução é modelá-las em um boneco que permita que o animador mova as mãos, pés e tronco, enquanto um computador gera as posições de membro necessárias para essas posições, usando cinemática inversa.
A chave para a implantação bem sucedida de cinemática inversa é animação dentro de limites: os membros dos personagens de computador devem se movimentar dentro de limites antropomórficos razoáveis. De maneira similar, os equipamentos robóticos tem algumas limitações, como o ambiente em que operam, as limitações de articulação de que suas juntas são capazes, e o número finito de cargas e velocidades com as quais são capazes de operar.
O programa ikfast pode resolver nas soluções analíticas para os manipuladores de robôs mais comuns e gerar códigos C++ para eles. As soluções geradas cobrem boa parte dos casos e levam microsegundos nos computadores mais recentes.