parte 1 - Simposio Argentino de Sistemas Embebidos (SASE)

Download Report

Transcript parte 1 - Simposio Argentino de Sistemas Embebidos (SASE)

Universidad Tecnológica Nacional
Facultad Regional Buenos Aires
SASE-2013
Implementación FPGA para
Manipuladores robóticos y
compiladores GNU de
programas.
Ing. Eduardo Damián Granzella
Ing. Christian R. Gutierrez.
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.
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
2
Ejemplos de robots Industriales
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
3
Robots Móviles
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
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 .
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
5
Geometrías de manipuladores robóticos
Cuantos grados de movilidad tiene un
cuerpo rígido en el plano?
3 (x, y, θ)
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, ρ, θ, φ)
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
6
Grados de Libertad
[§26]
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
7
Esquema general de un robot
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
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.
Principio de Func.
H.Giannetta
Estructura Cinemática
Espacio de trabajo
Foto
Implementación FPGA y Compiladores en manipuladores Robóticos
9
Arquitecturas de robots Industriales
Robots Articulados [§IFR]
Robot cuyo brazo tiene al menos tres articulaciones de rotación.
Principio de Func.
H.Giannetta
Estructura Cinemática
Espacio de trabajo
Foto
Implementación FPGA y Compiladores en manipuladores Robóticos
10
Arquitecturas de robots Industriales
Robots Paralelo [§IFR]
Cuyos brazos robot poseen concurrencia de articulaciones prismáticas o rotativas .
Principio de Func.
H.Giannetta
Estructura Cinemática
Espacio de trabajo
Foto
Implementación FPGA y Compiladores en manipuladores Robóticos
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.
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
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.
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
13
Compiladores
DESARROLLO DEL LENGUAJE DE PROGRAMACIÓN,
COMPILADOR Y SIMULADOR ASOCIADO
PARA ROBOT TIPO SCARA
Robot tipo SCARA de 3 grados de libertad
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
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)
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
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.
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
16
Robot SCARA
Selective Compliant Assembly Robot Arm
Manipulador de 3 grados de libertad
2 articulaciones rotativas
1 actuador lineal
q1
L1
H.Giannetta
q2
L2
Implementación FPGA y Compiladores en manipuladores Robóticos
q3
17
Espacio de trabajo
Configuración “brazo derecho”
(x,y)
q2
y
L2
L1
q1
x
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
18
Espacio de trabajo
Configuración “brazo Izquierdo”
q2
(x,y)
y
L2
L1
q1
x
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
19
Espacio de trabajo alcanzable
Usando ambas configuraciones
q2 < 0
(x,y)
q2 > 0
y
L2
L1
q1
x
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
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.
Código fuente
Compilador
Programa
ejecutable
(robcomp)
Programa en
Lenguaje RT
robcomp
dq123
Consignas de velocidad de
cada articulación
 Al controlador
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
21
Funciones Generales
PC Linux o Windows
xyz
Programador
Gráfico o
Editor de texto
Programa
RT
q123
do
Config.
Para
visualización
o simulación
(Matlab, gnuplot,
Programador
Gráfico)
NO
Compilador
RT
OK?
SI
dq123
Datos para PWM y salidas
Firmware + VHDL
dq1
dq123
dq2
dq3
DO byte
H.Giannetta
Sincronismo
con
Clock
Controlador PWM 1
M1
Controlador PWM 2
M2
Controlador PWM 3
M3
Driver Salidas
Implementación FPGA y Compiladores en manipuladores Robóticos
DO
22
Funciones del compilador
Código fuente
Generación
de Trayectorias
xyz
Verificación
Espacio Alcanzable
Calculos
Cinematica Inversa
q123
dϕ
dx
Verificación
Limites Velocidad
H.Giannetta
dq123
Implementación FPGA y Compiladores en manipuladores Robóticos
23
Compilador - Diagrama en Bloques
Config
Inicialización
Analizador léxico
(Scanner)
Cálculos
cinemáticos
Cálculos
dinámicos
Analizador sintáctico /
semántico (Parser)
Programa
RT
Generación de
trayectorias
Ejecución de las
órdenes programadas
en lenguaje RT
Manejo de
salidas digitales
Generación de
archivos de salida
Verificación de límites
xyz
q123
dq123
do
Visualización y simulación
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
24
Proceso de build del compilador
robcomp.l
robcomp.y
bison
y.tab.h
main.c
gentray.c
cineinv.c
gcc -o
gcc -o
gcc -o
y.tab.c
Makefile
main.o
flex
gcc -o
lex.yy.c
y.tab.o
gcc -o
lex.yy.o
H.Giannetta
robcomp.h
gentray.o
cineinv.o
make
gcc
robcomp
Implementación FPGA y Compiladores en manipuladores Robóticos
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
3
H.Giannetta
1
3
2
2
2
0
1
3
0
0
Implementación FPGA y Compiladores en manipuladores Robóticos
3
2
4
1
0
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
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
27
Lenguaje RT – Características
2 tipos de perfiles de velocidad:
Perfil trapezoidal

Perfil cicloidal
Posición

Perfil trapezoidal
Perfil cicloidal
[°]
Velocidad
t [s]
[°/s]
Aceleración
t [s]
H.Giannetta
[°/s2]
t [s]
Implementación FPGA y Compiladores en manipuladores Robóticos
28
Lenguaje RT – Características
Sistemas de coordenadas
Offset general (xOffset yOffset zOffset) y
y
actual
Coordenadas:

Absolutas (x y z)

Relativas (xr yr zr)
xr
y0
yOffset
xactual x
xOffset
H.Giannetta
yr
Implementación FPGA y Compiladores en manipuladores Robóticos
x0
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
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
30
Controlador - Diagrama en Bloques
dq1
dq2
dq123
dq3
DO byte
H.Giannetta
Clock
Sinc
Driver q1
M1
Driver q2
M2
Driver q3
M3
Driver DO
DO
Implementación FPGA y Compiladores en manipuladores Robóticos
31
Driver en VHDL - Esquemático
Divisor
de clock
Secuenciador
de Reset
Valor fijo: 255
Rotor Sensor
Clock
PWM
PWM1
PWM2
PWM3
PWM4
Speed
setpoint
PWM5
PWM6
H.Giannetta
M
Motor
brushless
tr1
tr2
tr3
tr4
Puente
H
tr5
tr6
Implementación FPGA y Compiladores en manipuladores Robóticos
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
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
33
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
H.Giannetta




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
35
Preguntas?
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
36
GRACIAS !
H.Giannetta
Implementación FPGA y Compiladores en manipuladores Robóticos
37