Olá pessoal, to precisando de ajuda na formulas de cinematica inversa para um robo quadrupede, ja pesquisei em diversos foruns e sites (inclusive aqui no lab), porem encontrei formulas semelhantes, com pequenas variaveis diferentes que resultam em valores muito distintos. O pior é que em ambos os casos os valores dos angulos sao (acredito eu) absurdos, como é o caso do angulo entre a coxa o femur, que em alguns casos passou de 180 graus. Alguem com conhecimento sobre isso poderia dizer quais sao as formulas certas para isso, e se possivel caso tenha já feito esses calculos dar um exemplo com valores reais, desde o comprimento da coxa, tibia, femur.  

E outra duvida, os calculos sao para descobrir os angulos de cada junta, porem elas seriam diferentes em cada perna do robo ao longo da caminhada, alguem poderia explicar de que maneira poderia ser feita essa movimentação.

 

Esses sao os principais sites que compreendi sobre o assunto:

http://blog.oscarliang.net/inverse-kinematics-and-trigonometry-basics/ 

http://freespace.virgin.net/hugo.elias/models/m_ik.htm

http://freespace.virgin.net/hugo.elias/models/m_ik2.htm

http://blog.oscarliang.net/quadruped-robot-gait-study/

http://blog.oscarliang.net/inverse-kinematics-implementation-hexapo...

Desculpe por tantas perguntas mas é porque já rodei o google e tenho algumas formulas porem nao funcionam. Desde já agradeço.

Exibições: 1644

Responder esta

Respostas a este tópico

Veja que cinemática bem aplicada:

Obrigado José, muito bom o video.Quem dera um dia fazer um desses.

A principal diferença entra códigos de cinemática está relacionada com a estrutura do robô, principalmente a orientação dos motores.

Qual o seu interesse/necessidade em controlar o robô por cinemática inversa (motivo)?

Pois eh, pensei o mesmo...

O drama que a cinematica inversa resolve, no meu entender, seria escolher o melhor conjunto de movimentos para ir de um ponto a outro, caso tenhamos mais de uma opcao.

Mas um quadrupede com coxa e joelho só teria uma combinaçao possivel (ou duas, mas a outra implicaria em quebrar o joelho).

Acredito que se vc equacionar o movimento que a ponta da perna precisa fazer, que seria um circulo achatado com a base reta:

Um for para o angulo, 

   - Seno e coseno geram os pontos, com um fato 0,8 por ex aplicado no eixo Y faria ficar achatada. Se vc colocar um if para limitar a parte de baixo vc achata.

   Aih teria os pontos no espaço onde quer que a perna chegue.

   Se medir a distancia entre o femur e esse ponto tem uma lateral de um triangulo. O angulo dessa lateral até o horizonte sai por atan.

   A coxa e a canela fazem as 2 outras laterais desse triangulo.

   Usando trigonometria, já que vc sabe o tamanho dos 3 lados do triangulo é fácil sabe seus ângulos.

   Sai por: c2=a2+b2-2abCosC

   Vc tem a, b, c... Só calcular o C.

Veja se é isso.

Então Eduardo, eu até achei o que vc esta dizendo, porem esses calculos nao havia entendido como utilizar, e como tirei do mesmo site das formulas para calcular os angulos de beta, alpha e gama nos mesmo nao encontrei relaçao, na qual fosse necessario calcula-los. Segue abaixo os desenhos e as formulas que utilizei, tirados do site:http://blog.oscarliang.net/inverse-kinematics-and-trigonometry-basics/

E se por acaso vc tiver outras formulas e queira compartilhar, a vontade. Valeu. 

Anexos

Acho que vc nao precisa de mais equacões.. So aplicar essas, conforme seu projeto. Melhor que tentar achar uma pronta.

Diga se seu caso eh esse:

Onde vc teria 2 motores e deseja um movimento similar ao da linha cinza ? Com uma perna de 2 partes ? 

Chamei de perna virtual o ponto que vai da bacia até o calcanhar.

Os pontos a percorrer saem daquele for() de 360 graus, calculando o x e o y de cada posicao por seno e cosseno, dando um ganho menor no y para achatar.

Com esses pontos x e y (dentro do loop) vc calcula o angulo da perna virtual (cinza) com atan(). 

O tamanho da perna virtual nada mais é que a distancia entre o ponto XY calculado e a bacia.  Essa distancia sai subtraindo as coordenadas X da origem com o x da ponta e y da origem com y da ponta. Para virar um numero só é preciso usar pitagoras (esses sao os catetos, vc precisa da hipotenusa).

Aih vc ja tem o angulo e o tamanho da perna virtual.

Para saber como fazer essa perna com 2 subpernas considere o triangulo formado entre as 2 subpernas e a perna virtual. Vc conhece os 3 lados, pode calcular cada um dos 3 angulos pela equaçao que comentei:

c2=a2+b2-2abCosC (use as 3 se precisar para ter os 3 angulos.

Um angulo já eh o do motor do joelho.

O angulo para o motor que fica na bacia é o angulo da perna virtual menos o angulo da ponta superior do triangulo...

Veja se deu pra captar minha ideia. 

Grande Eduardo, realmente nao tinha percebido a movimentação da perna em um circulo com a base reta, e vendo pelo lado da perna virtual realmente so precisa dessa formula, e estava analisando que no final chega aos mesmos resultados das demais formula s que postei, porem de forma mais facil. Vou analisar isso em meu projeto e fazer umas contas dai o resultado eu comento aqui.  Muito obrigado, agora acho que consigo me achar nesses angulos. Valeu. 

Pois é Jonatas, a principio estava imaginando em fazer o robo andar testando que angulo cada servo tem que ter para gerar um passo, depois repetir nas demais pernas e colocar isso num loop. Porem analisando mais a fundo testando servo por servo até é possivel mas dificilmente o resultado sera tao bom quanto calculado. Além disso a estrutura que idealizei é meio que uma copia de outros projetos na net, inclusive todos trabalhavam por calculos de cinematica, tendo copia-los nisso nao fui muito feliz já que nenhum calculo batia. Agora tambem tive que reestruturar o corpo pois tambem tive problemas com os calculos de torque para servos, entao preferi colocar alguns mais potentes mesmo pesando mais.

O robo que pretendo fazer na verdade era uma ideia de TCC para meu curso tecnico porem nao pude realiza-lo, então pretendo construi-lo agora que já terminei o curso. 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço