Olá Wiscat, desculpa pela demora na resposta e no completar do meu post anterior.
Como já disseram algumas pessoas, realmente a robótica tem uma grande componente matemática.
Os braços robóticos são conjuntos de juntas de rotação e/ou translação interligadas por elos rígidos.
Resumidamente para cada junta existe um sistema referencial (coordenadas) e existe ainda um sistema referencial global para o robô (F0)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fhughjack.com%2Fnotes_mechanic%2Fimages%2Fspatial60.gif&hash=7cacad6e2bb55e4738e2766e2da89c4d47aab475)
.
Os sistemas de coordenadas são atribuidos recorrendo ao algoritmo de Denavit-Hartenberg:
Denavit-Hartenberg Reference Frame Layout (http://www.youtube.com/watch?v=rA9tm0gTln8#ws)
http://en.wikipedia.org/wiki/Denavit-Hartenberg_Parameters (http://en.wikipedia.org/wiki/Denavit-Hartenberg_Parameters)
Após termos definido os sistemas de coordenadas é necessário criar relações entre eles:
Estas relações são conseguidas através de matrizes de transformação como se mostra na figura seguinte:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Feddieoffermann.com%2Fblog%2Fwp-content%2Fuploads%2F2008%2F09%2F06_yrot.gif&hash=2d56a1e38239813c11d46a933ba516c77cc679e8)
Na matriz aparecem cos() e sin() que modelam as rotações, e na coluna à direita onde aparecem tres 0, deveria ser a origem do sistema referencial seguinte (translação). O XYZ são as coordenadas do sistema anterior, e o X' Y' e Z' são as coordenadas dos sistema anterior mas mapeadas no novo sistema de coordenadas.
Através destas transformações podemos ir mapeando os pontos de cada sistema de coordenadas no seu anterior começando no gripper e indo "descendo" até à base através de uma cadeia de multiplicação destas transformações.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fupload.wikimedia.org%2Fmath%2Fd%2F1%2Fc%2Fd1c08abc66c84ac43d49d1c71d9777c1.png&hash=a4d838939465eb0c77673743e1b337ab00c8b5b1)
Este processo é conhecido como Cinemática directa, e permite saber a posição do gripper no sistema referencial base (F0) se forem conhecido todos os angulos e deslocamentos das juntas.
http://en.wikipedia.org/wiki/Forward_kinematics (http://en.wikipedia.org/wiki/Forward_kinematics)
Esta informação é o ponto de partida para fazer outro tipo de cinemática chamada de cinemática inversa. Esta é mais importante porque permite calcular os angulos e deslocamentos que é necessário aplicar ás juntas para que o gripper fique no ponto XYZ desejado e com a orientação pretendida. Existem várias formas de conseguir o resultado, mas regra geral trata-se de um processo matemático onde se tentam criar equações matemáticas às custas de arcos de tangente que possibilitam o cálculo do angulo de junta.
O problema ainda não está totalmente resolvido, porque num braço robótico é preciso também controlar os binários de cada motor (junta) para controlar a força e aceleração, isto é conseguido através do cálculo de um jacobiano que é uma matriz de derivadas. É ainda necessário fazer o planeamento de trajectórias para obter movimentos suaves.
Tudo isto é um processo que envolve MUITA matemática.
Espero ter dado um contributo, e não ter cometido mtas gralhas :P ;D
Cumprimentos, Mauro.