36
Implementación FPGA para Manipuladores robóticos y compiladores GNU de programas. Ing. Eduardo Damián Granzella Ing. Christian R. Gutierrez. Universidad Tecnológica Nacional Facultad Regional Buenos Aires SASE-2013

Implementación FPGA para Manipuladores robóticos y compiladores GNU de programas

Embed Size (px)

DESCRIPTION

Ing. Eduardo Damián Granzella Ing. Christian R. Gutierrez. Universidad Tecnológica Nacional Facultad Regional Buenos Aires SASE-2013. Implementación FPGA para Manipuladores robóticos y compiladores GNU de programas. Temario. - PowerPoint PPT Presentation

Citation preview

Implementación FPGA para Manipuladores robóticos y compiladores GNU de programas.

Ing. Eduardo Damián Granzella

Ing. Christian R. Gutierrez.

Universidad Tecnológica NacionalFacultad Regional Buenos Aires

SASE-2013

Implementación FPGA y Compiladores en manipuladores Robóticos 2H.Giannetta

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.

Implementación FPGA y Compiladores en manipuladores Robóticos 3H.Giannetta

Ejemplos de robots Industriales

Implementación FPGA y Compiladores en manipuladores Robóticos 4H.Giannetta

Robots Móviles

Implementación FPGA y Compiladores en manipuladores Robóticos 5H.Giannetta

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 .

Implementación FPGA y Compiladores en manipuladores Robóticos 6H.Giannetta

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, ρ, θ, φ)

Cuantos grados de movilidad tiene un cuerpo rígido en el plano?

3 (x, y, θ)

Implementación FPGA y Compiladores en manipuladores Robóticos 7H.Giannetta

Grados de Libertad

[§26]

Implementación FPGA y Compiladores en manipuladores Robóticos 8H.Giannetta

Esquema general de un robot

Implementación FPGA y Compiladores en manipuladores Robóticos 9H.Giannetta

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.

Principio de Func. Estructura Cinemática Espacio de trabajo Foto

Implementación FPGA y Compiladores en manipuladores Robóticos 10H.Giannetta

Arquitecturas de robots Industriales

Robots Articulados [§IFR]

Robot cuyo brazo tiene al menos tres articulaciones de rotación.

Principio de Func. Estructura Cinemática Espacio de trabajo Foto

Implementación FPGA y Compiladores en manipuladores Robóticos 11H.Giannetta

Arquitecturas de robots Industriales

Robots Paralelo [§IFR]

Cuyos brazos robot poseen concurrencia de articulaciones prismáticas o rotativas .

Principio de Func. Estructura Cinemática Espacio de trabajo Foto

Implementación FPGA y Compiladores en manipuladores Robóticos 12H.Giannetta

Actuadores Eléctricos

Motor BrushlessLos 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.

Implementación FPGA y Compiladores en manipuladores Robóticos 13H.Giannetta

Actuadores Eléctricos

Motor Paso a PasoEn 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.

Implementación FPGA y Compiladores en manipuladores Robóticos 14H.Giannetta

Compiladores

DESARROLLO DEL LENGUAJE DE PROGRAMACIÓN, COMPILADOR Y SIMULADOR ASOCIADO

PARA ROBOT TIPO SCARA

Robot tipo SCARA de 3 grados de libertad

Implementación FPGA y Compiladores en manipuladores Robóticos 15H.Giannetta

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)

Implementación FPGA y Compiladores en manipuladores Robóticos 16H.Giannetta

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.

Implementación FPGA y Compiladores en manipuladores Robóticos 17H.Giannetta

Robot SCARA

Selective Compliant Assembly Robot Arm

Manipulador de 3 grados de libertad

2 articulaciones rotativas1 actuador lineal q2

q3

q1

L1 L2

Implementación FPGA y Compiladores en manipuladores Robóticos 18H.Giannetta

Espacio de trabajo

Configuración “brazo derecho”

x

y

q1

q2

(x,y)

L1

L2

Implementación FPGA y Compiladores en manipuladores Robóticos 19H.Giannetta

Espacio de trabajo

Configuración “brazo Izquierdo”

x

y L1

L2

q1

q2

(x,y)

Implementación FPGA y Compiladores en manipuladores Robóticos 20H.Giannetta

Espacio de trabajo alcanzable

Usando ambas configuraciones

x

y

q1

q2 > 0

(x,y)

L1

L2

q2 < 0

Implementación FPGA y Compiladores en manipuladores Robóticos 21H.Giannetta

CompiladorTraduce 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

robcompPrograma en Lenguaje RT dq123

Consignas de velocidad de cada articulación

Al controlador

Implementación FPGA y Compiladores en manipuladores Robóticos 22H.Giannetta

Funciones Generales

Firmware + VHDL

PC Linux o Windows

ProgramaRT

Compilador RT

xyz

q123

dq123

do

ProgramadorGráfico o

Editor de texto

OK?

Para visualización o simulación(Matlab, gnuplot,

Programador Gráfico)

Datos para PWM y salidas

dq123

NOSI

dq2

dq3

DO byte

dq1 M1Controlador PWM 1

M2Controlador PWM 2

M3Controlador PWM 3

DODriver Salidas

Config.

Sincronismocon

Clock

Implementación FPGA y Compiladores en manipuladores Robóticos 23H.Giannetta

Funciones del compilador

Generación de Trayectorias

Código fuente

CalculosCinematica Inversa

VerificaciónLimites Velocidad

Verificación Espacio Alcanzable

q123

xyz

dq123

d ϕdx

Implementación FPGA y Compiladores en manipuladores Robóticos 24H.Giannetta

Compilador - Diagrama en Bloques

Visualización y simulación

dq123

doq123xyz

Programa RT

Config Inicialización

Analizador léxico (Scanner)

Analizador sintáctico / semántico (Parser)

Generación de trayectorias

Cálculos cinemáticos

Cálculos dinámicos

Manejo de salidas digitales

Ejecución de las órdenes programadas

en lenguaje RT

Verificación de límitesGeneración de

archivos de salida

Implementación FPGA y Compiladores en manipuladores Robóticos 25H.Giannetta

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.omain.o

y.tab.o

Makefile

make

cineinv.cgentray.cmain.crobcomp.l robcomp.y

Implementación FPGA y Compiladores en manipuladores Robóticos 26H.Giannetta

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

23

4

0000

1

23

1

2

33

2

1

Implementación FPGA y Compiladores en manipuladores Robóticos 27H.Giannetta

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

Implementación FPGA y Compiladores en manipuladores Robóticos 28H.Giannetta

Lenguaje RT – Características2 tipos de perfiles de velocidad:

Perfil trapezoidal

Perfil cicloidal Perfil trapezoidal Perfil cicloidal

Pos

ició

nV

eloc

idad

Ace

lera

ción

[°/s]

[°/s2]

[°]

t [s]

t [s]

t [s]

Implementación FPGA y Compiladores en manipuladores Robóticos 29H.Giannetta

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

Implementación FPGA y Compiladores en manipuladores Robóticos 30H.Giannetta

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

Implementación FPGA y Compiladores en manipuladores Robóticos 31H.Giannetta

Controlador - Diagrama en Bloques

Clock Sinc

DO byte

dq3

dq2

dq1

dq123

Driver q1

Driver q2

Driver q3

Driver DO

M1

M2

M3

DO

Implementación FPGA y Compiladores en manipuladores Robóticos 32H.Giannetta

Driver en VHDL - Esquemático

Puente H

M

PWM1

Clock PWM

Divisor de clock

Secuenciador de Reset

tr1

tr2

tr3

tr4

tr5

tr6

PWM2

PWM3

PWM4

PWM5

PWM6

Rotor Sensor

Valor fijo: 255

Speed setpoint

Motor brushless

Implementación FPGA y Compiladores en manipuladores Robóticos 33H.Giannetta

mover 60 0 0mover 60 0 30linea 40 0 30 s100linea 40 20 30 s100linea 40 -20 30 s100linea 40 0 30 s100linea 20 0 30 s100linea 20 0 0 s100mover 20 20 0mover 20 20 30circ 40 0 30 60 20 30 s100mover 60 20 0 c0mover 60 -20 0mover 60 -20 30 circ 40 0 30 20 -20 30 s100Mover 20 -20 0fin

Implementación FPGA y Compiladores en manipuladores Robóticos 35H.Giannetta

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

Implementación FPGA y Compiladores en manipuladores Robóticos 36H.Giannetta

Preguntas?

Implementación FPGA y Compiladores en manipuladores Robóticos 37H.Giannetta

GRACIAS !