Implementación FPGA para manipuladores robóticos y compiladores GNU de programas
Enviado por Pablo Turmero
1 Temario Introducción a la Cinemática y Dinámica de los manipuladores robóticos. Implementación en FPGA del control del robot. Introducción y desarrollo de compiladores GNU para robots de N grados de libertad configurables.
2 Ejemplos de robots Industriales
3 Robots Móviles
4 Estructura mecánica del manipulado Mecánicamente, un robot está formado por una serie de elementos o eslabones unidos mediante articulaciones que permiten un movimiento relativo entre cada dos eslabones consecutivos. La constitución física de la mayor parte de los robots industriales guarda cierta similitud con la anatomía del brazo humano, por lo que en ocasiones, para hacer referencia a los distintos elementos que componen el robot, se usan términos como cuerpo, brazo, codo y muñeca. El movimiento de cada articulación puede ser de : Desplazamiento Giro Combinación de ambos. De este modo son posibles los seis tipos diferentes de articulaciones .
5 Geometrías de manipuladores robóticos Para lograr un posicionamiento en el espacio es necesario poder controlar 3 ejes de posición y 3 ejes de rotación 6 (x, y, z, ?, ?, f) Cuantos grados de movilidad tiene un cuerpo rígido en el plano? 3 (x, y, ?)
6 Grados de Libertad [§26]
7 Esquema general de un robot
8 Arquitecturas de robots Industriales Robots SCARA (Selective compliant assembly robot arm)) [§IFR] Robot que tiene dos articulaciones de rotación para proporcionar una situación de conformidad en el plano.
9 Arquitecturas de robots Industriales Robots Articulados [§IFR] Robot cuyo brazo tiene al menos tres articulaciones de rotación.
10 Arquitecturas de robots Industriales Robots Paralelo [§IFR] Cuyos brazos robot poseen concurrencia de articulaciones prismáticas o rotativas .
11 Actuadores Eléctricos Motor Brushless Los motores DC brushless son otro tipo de servomotor en que la retroalimentación es necesaria. Al contrario de los motores DC , estos realizan la conmutacion de las bobinas electronicamente, de modo que la mecánica colector y cepillos ya no son necesarios .. Motores brushless DC se utilizan comúnmente en aplicaciones de robótica a causa de su alta capacidad de velocidad, alta eficiencia y bajo mantenimiento A su vez son capaces de obtener una mayor velocidades, debido a la eliminación de la mecánica colector. Son más eficientes porque el calor de los bobinados del estator puede ser disipado con mayor rapidez a través del casco de motor. Por último, requieren menos mantenimiento porque no tienen cepillos que requieren reemplazo periódico. Sin embargo, el coste total del sistema para motores brushless es superior a la de los motores DC cepillo debido a la complejidad de conmutación electrónica.
12 Actuadores Eléctricos Motor Paso a Paso En los últimos años se han mejorado notablemente sus características técnicas, especialmente en lo relativo a su control, lo que ha permitido fabricar motores paso a paso capaces de desarrollar pares suficientes en pequeños pasos para su uso como accionamientos industriales. Existen tres tipos de motores paso a paso : De imanes permanentes. De reluctancia variable. Híbridos.
13 Compiladores DESARROLLO DEL LENGUAJE DE PROGRAMACIÓN, COMPILADOR Y SIMULADOR ASOCIADO PARA ROBOT TIPO SCARA Robot tipo SCARA de 3 grados de libertad
14 Introducción : Desarrollo de un compilador del Lenguaje RT (Robot Tecnológico) Características del Lenguaje RT Controlador embebido Programador gráfico o HMI (Interfaz hombre-máquina)
15 Ventajas Comparativas Programado en software libre puede ser ejecutado tanto en Linux como en Microsoft Windows. No requiere el pago de licencias de uso por estar programado bajo licencia GPL (GNU General Public Licence). El compilador es escalable y de código abierto. Permite: Agregar nuevas funciones. Adaptarlo a cualquier otro manipulador. Modificar el programa según necesidades. Adaptar o traducir las instrucciones.
16 Robot SCARA Selective Compliant Assembly Robot Arm Manipulador de 3 grados de libertad 2 articulaciones rotativas 1 actuador lineal
17 Espacio de trabajo Configuración “brazo derecho”
18 Espacio de trabajo Configuración “brazo Izquierdo”
19 Espacio de trabajo alcanzable Usando ambas configuraciones
20 Compilador Traduce un programa escrito en un lenguaje determinado a otro lenguaje, creando un programa equivalente que pueda ser interpretado por la máquina. Compilador Programa ejecutable (robcomp) Código fuente robcomp Programa en Lenguaje RT dq123 Consignas de velocidad de cada articulación ? Al controlador
21 Funciones Generales Firmware + VHDL PC Linux o Windows Programa RT Compilador RT xyz q123 dq123 do Programador Gráfico o Editor de texto OK? Para visualización o simulación (Matlab, gnuplot, Programador Gráfico) Datos para PWM y salidas dq123 NO SI dq2 dq3 DO byte dq1 M1 Controlador PWM 1 M2 Controlador PWM 2 M3 Controlador PWM 3 DO Driver Salidas Config. Sincronismo con Clock
22 Funciones del compilador Generación de Trayectorias Código fuente Calculos Cinematica Inversa Verificación Limites Velocidad Verificación Espacio Alcanzable q123 xyz dq123
23 Compilador – Diagrama en Bloques Visualización y simulación
24 Proceso de build del compilador flex gcc -o bison robcomp.h lex.yy.c y.tab.h y.tab.c lex.yy.o cineinv.o gcc -o gcc -o gcc -o gcc robcomp gcc -o gentray.o main.o y.tab.o Makefile make cineinv.c gentray.c main.c robcomp.l robcomp.y
25 Lenguaje RT – Características 4 tipos de movimientos: Movimiento articular (q1 q2 q3) Movimiento rápido sin trayectoria definida En línea recta En trayectoria circular 1 2 3 4 0 0 0 0 1 2 3 1 2 3 3 2 1
26 Lenguaje RT – Características Trabajo con puntos predefinidos: Posición cartesiana (x y z) Posición articular (q1 q2 q3) Visualización y modificación de variables Salidas digitales Manejo de esperas Soporte para comentarios
27 Lenguaje RT – Características 2 tipos de perfiles de velocidad: Perfil trapezoidal Perfil cicloidal Perfil trapezoidal Perfil cicloidal (Gp:) Posición (Gp:) Velocidad (Gp:) Aceleración (Gp:) [°/s] (Gp:) [°/s2] (Gp:) [°] (Gp:) t [s] (Gp:) t [s] (Gp:) t [s]
28 Lenguaje RT – Características Sistemas de coordenadas Offset general (xOffset yOffset zOffset) Coordenadas: Absolutas (x y z) Relativas (xr yr zr) y x x0 y0 xr yr xactual yactual yOffset xOffset
29 Lenguaje RT – Características Trabajo con puntos predefinidos: Posición cartesiana (x y z) Posición articular (q1 q2 q3) Visualización y modificación de variables Salidas digitales Manejo de esperas Soporte para comentarios
30 Controlador – Diagrama en Bloques
31 Driver en VHDL – Esquemático Motor brushless
32 mover 60 0 0 mover 60 0 30 linea 40 0 30 s100 linea 40 20 30 s100 linea 40 -20 30 s100 linea 40 0 30 s100 linea 20 0 30 s100 linea 20 0 0 s100 mover 20 20 0 mover 20 20 30 circ 40 0 30 60 20 30 s100 mover 60 20 0 c0 mover 60 -20 0 mover 60 -20 30 circ 40 0 30 20 -20 30 s100 Mover 20 -20 0 fin
33 Compilador Grafico
34 Caractesticas del compilador 4 tipos de movimientos: Movimiento rápido sin trayectoria definida Movimiento articular En línea recta En trayectoria circular 3 tipos de perfiles de velocidad: MRU (solo para simulación) Perfil trapezoidal Perfil sigmoidal Visualización y modificación de variables Soporta comentarios 3 posicionamientos posibles: Absoluto Relativo Con offset arbitrario Puntos predefinidos: Punto cartesiano Posición articular