Fundamentos da Robótica Ênio Prates Vasconcelos Filho 07/60161 FPGA-Implementation of Inverse Kinematics and Servo Controller for Robot Manipulator Fundamentos da Robótica Ênio Prates Vasconcelos Filho 07/60161
Autores Ying-Shieh Kung, IEEE Member; Kuan-Hsuan Tseng Chia-Sheng Chen Hau-Zen An-Peng Wang
Publicado Artigo publicado em “Proceedings of the 2006 IEEE”. International Conference on Robotics and Biomimetics. Dezembro 17-20, 2006, Kumming, China.
Resumo Implementação, em FPGA, da cinemática inversa e do servo-controlador para um manipulador Robótico; Redução do uso de unidades lógicas da FPGA pela implementação de uma FSM para cálculo da cinemática inversa; Resultados experimentais;
Introdução Controle de robôs é, atualmente, um grande foco de pesquisas; Existem várias implementações, visando otimizar o processo: Controle distribuído de movimento em micro controladores; Controle baseado em lógica Fuzzy em FPGA; Associações de DSP e FPGA;
Inovação Implementação de cálculos complexos na FPGA, como a cinemática inversa; Redução de utilização da FPGA, sem perda de performance do sistema;
FPGA A FPGA Stratix II é o centro do sistema robótico proposto. Fabricante: Altera; 60440 ULs; 492 pinos de I/O; 36 blocos de DSP; 2544192 bits de RAM Microprocessador NIOS II de 32 Bits; 16 Mb de Memória Flash e de SDRAM; 1 Mb de SRAM;
Modelo matemático do sistema A equação dinâmica de um robô de n juntas é dada por: Já a dinâmica de motores DC é dada por: Onde: M(q) é a matriz inercial; Vm(q,q) é o vetor de Coriolis; G(q) é o vetor da gravidade; F(q) é o vetor de atrito;
Modelo matemático do sistema(2) Através de manipulações, temos: Onde TL é uma força externa ou influência de outros movimentos. Fazendo a transmissão ter uma valor pequeno, o sistema de controle P para posição e PI para velocidade pode ser representado por:
Cinemática inversa para um manipulador Robótico Sistema de coordenadas do robô, utilizando DH; Parâmetros da Cinemática
Cinemática Inversa Cinemática Direta Coordenadas de Juntas: θ i,di Coordenadas Cartesianas: x,y,z,roll,pitch,yaw Cinemática Inversa A cinemática inversa nem sempre é facilmente obtenível;
Cinemática Inversa (2) Passo 1: θ1= θ5=atan2[y,x]; Passo 2: b=±sqrt(x²+y²); Passo 3: θ3=acos((b²+(d1-d5-z)²-(a2)²-(a3)²)/(2.a2.a3)); Passo 4: s2=(a2+a3.c3)(d1-d5-z)-a3.b.s3; Passo 5: c2=(a2+a3.c3)b+a3.s3(d1-d5-z); Passo 6: θ2=atan2(s2,c2); Passo 7: θ4=-θ2-θ3;
Projetando os Circuitos Arquitetura implementada na FPGA
Projetando os Circuitos(2) Na implementação do calculo da cinemática inversa, foi utilizada uma FSM de 42 estados, ao invés de computação paralela; Recurso Tempo FPGA 840ns Software em C dentro do NIOS 5.6ms
Projetando os Circuitos(3) Também foi utilizada uma FSM para o servo controlador;
Projetando os Circuitos(4)
Projetando os Circuitos(5) PWM – 18kHz
Uso da FPGA
Experimentos e Resultados Foi implementado o sistema sobre o robô micro-articulado Mitsubishi Movemaster RV-M1.
Experimentos e Resultados (2)
Experimentos e Resultados (3)
Simulações Foram realizadas duas simulações a partir dos sistemas propostos no artigo. As simulações foram feitas através da ferramenta Simulink, do Matlab; A primeira refere-se ao sistema completo; A segunda refere-se ao calculo da cinemática inversa;
Simulações
Simulações
Conclusões O artigo busca mostrar a viabilidade e eficiência de se implementar o calculo da cinemática inversa e o sistema de controle do manipulador robótico na FPGA; Tal intuito não pode ser verificado em função da não implementação na FPGA; Contudo, pelas simulações realizadas em Simulink, fica demonstrada a veracidade das equações propostas;
Conclusões A idéia é bastante interessante, uma vez que um dos grandes gargalos para a exatidão do movimento de um manipulador robótico encontra-se no tempo de computação de sua nova posição, bem como para alcançar sua velocidade determinada;
Fim!