Vous êtes sur la page 1sur 43

Robtica 2

Programacin de
Robots
Programacin del Robot

ndice
1.

Mtodos de Programacin de robots


1. Clasificacin segn el procedimiento
2. Programacin por guiado
3. Programacin textual

2.
3.
4.

Requerimientos de un sistema de
programacin
Estandarizacin
Ejemplo de programacin

Programacin del Robot

Programacin de robots
Objetivo: indicar la secuencia de acciones a realizar durante
una tarea
Movimiento a puntos predefinidos
Manipulacin de objetos
Interaccin/sincronizacin con el entorno

Partes del robot involucradas en la ejecucin de un


programa
Memoria
Sistema de control cinemtico/dinmico
E/S

Programacin del Robot

Mtodos de programacin
de robots
Falta de normalizacin
No obstante hay orgenes y patrones comunes que
dan lugar a cierta semejanza
AL (Algol Like) Univ. Stanford 1974
Existen ciertos intentos de normalizacin
IRL (Norma DIN-96 )
Criterios de Clasificacin
Procedimiento utilizado
Potencia del sistema

Programacin del Robot

Mtodos de programacin de
un robot
Programacin por guiado o aprendizaje
Pasivo
directo
por maniqu

Activo
Programacin textual
Nivel robot
Nivel objeto
Nivel tarea
Es frecuente la utilizacin conjunta de programacin por
guiado y textual
Programacin del Robot

Programacin por guiado o


aprendizaje
Consiste en hacer
realizar al robot, o a una
maqueta del mismo, la
tarea (llevndolo
manualmente por
ejemplo) al tiempo que
se registran las
configuraciones
adoptadas, para su
posterior repeticin de
manera automtica.
Programacin del Robot

Robots de pintura Gaiotto de


programacin mediante guiado
6

Programacin por guiado


Pasivo
El programador debe aportar directamente la energa para mover
el robot. El registro de las configuraciones que adopta el robot es
continuo (La unidad de control muestrea y graba
automticamente las posiciones de las articulaciones a una
frecuencia elevada)
Directo: Se toma del extremo al robot y se le lleva por la trayectoria. La
unidad de control del robot registra automticamente la medida de los
sensores de posicin de las articulaciones
Maniqu: El robot permanece fuera de lnea y se utiliza un doble de ste
(maniqu) con la misma configuracin cinemtica pero ms ligero y fcil
de mover. La unidad de control muestrea y almacena, los valores que
toman los sensores de posicin del maniqu para su posterior repeticin
por el robot.

Programacin del Robot

Clasificacin de la
programacin por guiado:
Guiado Activo

Para mover el robot se utiliza el sistema de


accionamiento del robot a travs de una botonera o
Joystick.
La unidad de control registra nicamente las
configuraciones del robot que el programador indique
expresamente.
El movimiento que ha llevado el robot hasta alcanzar la configuracin
final es irrelevante, siendo necesario incorporar datos que definan la
trayectoria del robot
Posibilidad de incluir instrucciones de control del flujo del programa
(saltos, repeticin de movimientos), atencin a entradas/salidas
binarias, etc.
Posibilidades de guiado segn diferentes sistemas de coordenadas
(articular o cartesiano)
Programacin del Robot

Paleta de programacin por


guiado activo

Programacin del Robot

Ventajas e inconvenientes de
la programacin por guiado

Ventajas
Son los ms adecuados para programar determinadas tareas (p.e.:pintura).
No precisan disponer de las coordenadas de los elementos relevantes del entorno de
trabajo
No se producen errores de posicionamiento por una incorrecta calibracin del robot o su
entorno
No se precisa de las funciones del modelado y control cinemtico (en particular en el
Guiado Directo), desapareciendo los problemas asociados (existencia de soluciones
mltiples y puntos singulares).

Inconvenientes
Necesidad de utilizar al propio robot y su entorno para realizar la programacin,
obligando a sacar al robot de la lnea de produccin e interrumpiendo sta.
Dificultad de documentar el programa.
Dificultad de realizar modificaciones en el programa (particularmente en el Guiado
Directo)
Dificultad en la depuracin y puesta a punto de las aplicaciones.

Programacin del Robot

10

Programacin textual
La tarea queda especificada mediante una serie
de instrucciones textuales (Lenguaje formal)
Similar a un programa informtico
El texto del programa es editado en un sistema
informtico, que puede ser independiente del
robot, no precisando la presencia de ste
durante la fase de desarrollo del programa
(programacin fuera de lnea).
Diferentes sintaxis, con mayor o menor grado
de abstraccin
Programacin del Robot

11

Niveles de programacin
textual
Nivel robot (movimientos a realizar por el robot)

AS
KAREL
KRL
RAPID
V+
VAL II

(KAWASAKI)
(FANUC)
(KUKA)
(ABB)
(ADEPT)
(UNIMATION).

Nivel objeto (estado en que quedan los objetos)


LAMA
AUTOPASS
RAPT

(MIT - 1976).
(IBM - 1977).
(Universidad de Edimburgo - 1978).

Nivel tarea (objetivo o sub-objetivo a conseguir)


Programacin del Robot

12

Ejemplo de tarea de
programacin
Se pretende situar la pieza A, sobre la que se apoya la
pieza B, en el interior del orificio de la pieza D.

Programacin del Robot

13

Programacin a nivel robot.


Operacin de colocar B sobre C
Mover_a P1 via P2
Vel = 0.2 * VELMAX
Pinza = ABRIR
Prec = ALTA
Mover_recta_a P3
Pinza = CERRAR
Espera= 0.5
Mover_recta_a P1
Prec = MEDIA
Vel = VELMAX
Mover_a P4 via P2
Prec = ALTA
Vel = 0.2 * VELMAX
Mover_recta_a P5
Pinza = ABRIR
Programacin del Robot

; Situarse en un punto sobre la pieza B


; Reducir la velocidad
; Abrir la pinza
; Aumentar la precisin
; Descender verticalmente en lnea recta
; Cerrar la pinza para coger la pieza B
; Esperar para garantizar cierre de pinza
; Ascender verticalmente en lnea recta
; Decrementar la precisin
; Aumentar la velocidad
; Situarse sobre la pieza C
; Aumentar la precisin
; Reducir velocidad
; Descender verticalmente en lnea recta
; Abrir pinza

14

Programacin a nivel objeto


Situar B sobre C haciendo coincidir
LADO_B1 con LADO_C1 y LADO_B2 con LADO_C2 ;
Situar A dentro D haciendo coincidir
EJE_A con EJE_HUECO_D y BASE_A con BASE_D ;

Disminuye la complejidad del programa.


La programacin se realiza de manera ms cmoda.
Un planificador de la tarea se encargar de consultar una
base de datos y generar las instrucciones a nivel de robot.

Programacin del Robot

15

Programacin a nivel tarea


Ensamblar A con D

El programa se reduce a una nica sentencia ya que


se especifica qu es lo que debe hacer el robot en
lugar de cmo debe hacerlo.
Programacin del Robot

16

Programacin hbrida
(guiado+textual)
En la prctica actual, se utilizan ambos mtodos de
manera combinada, permitindose desarrollar el
programa mediante la escritura de las instrucciones
(textual) y utilizando la posibilidad de guiado en
lnea para adquirir los puntos del entorno.
Los puntos se definen por guiado y se edita el
programa.
Sistemas como RAPID de ABB, VAL II de Stabli y
V+ de Adept Technology son ejemplos de este modo
de programacin.
Programacin del Robot

17

Resumen modos de
programacin de un robot
Programacin de robots
Conjunto de instrucciones de
movimiento y funciones
auxiliares que definen el
trabajo a realizar por el robot

Aprendizaje

Textual

Se hace que el robot (o una


maqueta del mismo ), realice
una vez la tarea , al tiempo
que se registran las
configuraciones adoptadas

La tarea del robot de expresa


mediante una serie de
instrucciones escritas en un
lenguaje formal

Pasivo

Activo
El robot se mueve utilizando
sus propios actuadores , en
funcin de lsa rdenes dadas
por el usuario desde el panel
de programacin .

Los actuadores del robot


estn sin energa

Directo
S
Se mueve directamente
al
robot, venciendo la
resistencia de sus sistemas
de transmisin y su peso

Robot

Las instrucciones hacen


referencia directa a las
acciones del robot

Objeto
Las instrucciones hacen
referencia al modo en que
deben quedar los objetos
manipulados por el robot

Tarea

Las instrucciones hacen


referencia a la tarea u
objetivo final a conseguir

Maniqu
Se utiliza una estructura
M
ligera con la misma
cinemtica que el robot ,
registrndose sus
movimientos .

Programacin del Robot

18

Requerimientos de un sistema
de programacin de robots
Cada fabricante de robot ha desarrollado su propio
modo de programacin, pero las necesidades
comunes en todos ellos han originado un cierto
paralelismo y afinidad

Entorno de desarrollo.
Modelado del entorno.
Tipo de datos.
Manejo de entradas/salidas (digital y analgica).
Comunicaciones.
Control de movimiento.
Control del flujo de ejecucin del programa.
Programacin del Robot

19

Entorno de desarrollo
Importante para incrementar la productividad
Complejidad debido a la interaccin con el entorno
(procedimiento de prueba-error)
Permite mover al robot en lnea en coordenadas
articulares, del mundo y de la herramienta
Mayora de lenguajes interpretados
Capacidad de depuracin y ejecucin paso a paso
Capacidad de monitorizacin
En la actualidad se utilizan sistemas multitarea que
permiten control simultneo y sincronizado de
varios elementos (robots, sistemas de visin o
transporte)
Programacin del Robot

20

Modelado del entorno.


Modelo relacional
Modelo del entorno: Representacin de los
objetos con los que interacciona. (localizacin,
dimensiones, peso, etc.)
Localizacin definida mediante un sistema de
referencia asociado al objeto.
En ocasiones se permite establecer relaciones
de unin entre objetos (representada mediante
una estructura arborescente).

No

Objetos independientes: el movimiento de


uno no afecta al otro
Objetos con unin rgida: el movimiento de
uno implica el del otro y viceversa
Objetos con unin no rgida: el movimiento
de uno implica el del otro, pero no al revs.
Las relaciones pueden ser actualizadas por el
programador (haciendo uso de composicin
de transformaciones) o automticamente. Asi
s consigue un mayor grado de abstraccin
en la escritura del programa
Programacin del Robot

21

Tipos de datos
Tipos convencionales (enteros, reales, booleanos)
Especificacin de la localizacin (posicin y orientacin)
Coordenadas articulares (q1,, qn)
Coordenadas cartesianas
Posicin (px, py, pz)
Orientacin
ngulos de Euler
Cuaternios
Matriz de cosenos directores
Matrices de transformacin homogneas
Programacin del Robot

22

Manejo de entradas/salidas
Nivel ms sencillo de comunicacin con otras mquinas o procesos
que cooperan con el robot.
Habitualmente digitales
Objetivo: integracin y sincronizacin con el proceso
Modos:
Activacin o desactivacin de salidas. Control del flujo del programa en
funcin de las entradas
Tratamiento de interrupciones: Ante la seal se ejecuta la rutina de
interrupcin. La interrupcin del flujo normal del programa. puede realizarse
inmediatamente (incluso en mitad del movimiento del robot), cuando
finaliza la ejecucin de la instruccin en curso (al finalizar el movimiento), o
cuando finaliza el ciclo de trabajo fijado por el programa (al finalizar la
secuencia).
Integracin de sensores (digitales o analgicos):

Modificacin de la trayectoria
Eleccin entre alternativas
Obtencin de identidad, posicin y caractersticas de objetos
Cumplimiento de restricciones externas

Programacin del Robot

23

Comunicaciones
Comunicacin con otros robots, mquinas equivalentes o sistemas
informticos responsables de la planificacin y gestin de la produccin.
Permite:
La adaptacin de los movimientos del robot a situaciones cambiantes
en la lnea
La carga o actualizacin del programa del robot en funcin de nuevas
ordenes de produccin
La monitorizacin o supervisin del estado de la clula
El control del estado de la produccin.
Modos de comunicacin acordes con el estado actual de la tecnolga:
(RS232, Devicenet, CanBus, Profibus, Ethernet, etc.).
En caso de necesidad se puede recurrir a las entradas/salidas digitales
(solucin de compromiso)
Uso de controladores abiertos bajo buses y S.O. estndares permite una
gran flexibilidad de adaptacin a futuros estndares de comunicaciones.

Programacin del Robot

24

Control de movimiento
Posibilidad de especificacin de:

Punto de destino
Tipo de trayectoria (Punto a punto, trayectoria continua)
Velocidad y aceleracin medias del recorrido
Precisin de alcance del punto de destino (via points)
Movimientos condicionados (medida de sensores)
Movimiento protegido (guarded motion):
interrupcin del movimiento

Movimiento acomodaticio (compliant motion): modificacin


del movimiento (Sensores de Fuerza, Seguimiento cordn,
Localizacin de piezas por visin)

Programacin del Robot

25

Puntos de paso o via points

Programacin del Robot

26

Movimiento monitorizado o
protegido
Interrupcin del movimiento del robot por verificarse algn
tipo de condicin externa programada.
Moverse a P1, hasta que D=1
(o tambin)
Moverse a P1
Si D=1 entonces PARAR

P1

Z?
Programacin del Robot

27

Movimiento acomodaticio
El movimiento (trayectoria, velocidad
o destino) se ve modificado por la
medida de un sensor.
Seguimiento de cordn de
soldadura
Ensamblado mediante sensor de
fuerza
Destino y trayectoria fijado por
sistema de visin

Programacin del Robot

28

Control de flujo de ejecucin


del programa
Empleo de bucles for, repeat, while,
Empleo de condiciones if, then,
Capacidad de procesamiento en paralelo
Control de varios robots bajo un slo programa
Control de un robot en una clula integrada

Utilizacin de seales de sincronismo (semforos)


Tratamiento de interrupciones/errores
Establecimiento de prioridades

Programacin del Robot

29

Estandarizacin
Varios intentos sin el suficiente xito
IRL (Industrial Robot Language)
Norma DIN (DIN-66312 Industrial Robot Language (IRL).
Septiembre 1996)
En su definicin se consider el ISO/TR Manipulating
industrial Robot. Intermediate Code for Roobts (anulado en
el 2004)
Asumido por algunos robots como opcin (Festo)
Concepto de cdigo intermedio

Programacin del Robot

30

Concepto de cdigo intermedio


N lenguajes M robots 
1 cdigo
intermedio
NxM traductores
 N+M traductores

Programacin del Robot

31

Ejemplo programa IRL


PROGRAM ejemploIRL
VAR
INPUT BOOL:
OUTPUT BOOL:

pieza at 1; {entrada digital que indica la presencia de pieza}


repetir at 2; {entrada digital que indica el deseo de repetir la accin}
electrm at 1; {salida digital que activa el electroimn del efector final}

BEGIN
IF NOT pieza THEN HALT; ENDIF;
R_ACC:= 300.0;
R_SPEED:= 100.0;
Bucle:
MOVE LIN p_sb_pieza;
MOVE LIN p_pieza;
electrm:=TRUE;

{movimento en lnea recta a punto sobre pieza}


{movimento en lnea recta a punto recogida pieza}
{activa el electroimn del efector para coger la pieza}

MOVE LIN p_sb_pieza;


MOVE LIN p_intermedio;
MOVE LIN p_destino;
electrm:=FALSE;
MOVE LIN p_intermedio;

{movimento en lnea recta a punto sobre pieza}


{movimento en lnea recta a punto intermedio}
{movimento en lnea recta hasta situarse sobre destino}
{desactiva el electroimn del efector para dejar la pieza}
{regresa al punto intermedio }

{especifica la aceleracin}
{especifica la velocidad}

IF repetir = TRUE THEN GOTO bucle; ENDIF; {Repetir  coger nueva pieza?}
MOVE LIN home;
HALT;

{Fin de tarea. Se retorna a la posicin de reposo}


{Para la ejecucin del programa}

END PROGRAM

Programacin del Robot

32

Ejemplo de programacin
Clula de verificacin y empaquetado
de componentes.
Los componentes llegan a la clula
a travs de un alimentador, de
donde el robot ha de cogerlos y
realizar un test especfico de
validacin sobre ellos.
Si el test resulta positivo, se coloca
el componente en el primer agujero
libre del pallet de 3x5 situado en una
cinta de transporte contigua. Esta
cinta se mueve mediante un motor
controlado por el propio robot.
Si el test resultase negativo
(componente defectuoso), se
colocar el componente en una caja
de componentes desechados.

Programacin del Robot

33

Ejemplo de programacin
Seales de Entrada-Salida
Entradas digitales :

Ea : Indica si hay componente en el alimentador.


Eh : Indica la existencia de componente en la herramienta (pinza).
Et : Indica si el test ha resultado positivo.
Ep : Indica si el pallet est disponible.

Salidas digitales:

Sn : Alarma que indica la necesidad de un nuevo componente.


Sh : Alarma que indica que no hay componente en la pinza.
Sm: Seal de control del motor de la cinta de transporte.
St : Seal de activacin del test.

Programacin del Robot

34

Ejemplo de programacin
Instrucciones bsicas
Nom.

Parmetros

Descripcin

Ejemplo

POS$

Variable posicin (x,y)

POS$ Pa

SBR
BUC
REP
OPE
SAL*
SAL
EST
GPZ
ESE
RET
VEL
MON

N1 Subrutina
N1rep.,identificador
Identificador de bucle
Var,Operacion,Var
N1 de lnea, condicin
N1 de lnea
Valor numrico
Variable orientacin
Id. Entrada = valor
tipo y velocidad
Id entrada = valor, lnea de
salto, tiempo de espera
Id.variable = posicin
Id.variable = orientacin
Id.Salida = valor,tiempo

Posiciona el extremo del robot en la posicin


especificada.
Llamada a una subrutina.

VAR
VARa
SUB
BAJ
SLD

Programacin del Robot

Bucle de repeticin.
Fin de bucle.
Realizacin de una operacin entre variables.
Salto condicional.
Salto incondicional.
Esperar un tiempo en segundos.
Girar pinza a una orient.
Esperar entrada.
Retorno de subrutina.
Asignar velocidad.
Monitoriza el valor de una seal un tiempo, si
la seal toma el valor indicado salta a lnea.
Definicin de var. de posicin.
Definicin de var. de orientacin.
Subir la pinza.
Bajar la pinza.
Activar salida durante un tiempo.
Por defecto es siempre.

SBR 300
BUC 5, 1
REP 1
OPE Pv=Pa+Pi
SAL* 100, Ea=1
SAL 104
EST 2
GPZ Oa
ESE Ea=1
RET
VEL a=2000
MON Ea=1,506,30
VARPa= 100,100
VARa Op = 100
SUB
BAJ
SLD Sn=1,10

35

Ejemplo de programacin
Macroinstrucciones
MAC COG
PINZA = ABRIR
BAJ
EST 0.5
PINZA = CERRAR
SUBIR
END MAC

; Definicin de la macroinstruccin COGER

MAC DEJ
BAJ
PINZA = ABRIR
EST 0.5
SUB
PINZA = CERRAR
END MAC

; Definicin de la macroinstruccin DEJAR

Programacin del Robot

36

Ejemplo de programacin
Inicializacin de variables
Se definen velocidad lineal y angular del efector final y variables con posiciones y
orientaciones a utilizar durante el desarrollo de la aplicacin.
1 VEL =2000
2 VELa =100
3 VAR Pa = -450,275
4 VAR Pt = 0,450
5 VAR Pi = 330,-30
6 VAR Pd = -250,450
7 VAR Pv = 330,-30
8 VAR Pf = 330,-30
10 VAR Ic = 80, 0
11 VAR If = 0, 80
12 VARa Op = 100
13 VARa Oa = 0
16 VARa Ot = 50

Programacin del Robot

; Velocidad base de posicionamiento


; Velocidad de giro de la pinza
; Posicin del alimentador
; Posicin del dispositivo de test
; Posicin de comienzo del pallet
; Pos. almacn de comp. defectuosos
; Pos. pallet libre y auxiliar
; Pos. de la fila libre
; Incremento de columna
; Incremento de fila
; Orientacin del comp. en pallet
; Orientacin del comp. en alimentacin
; Orientacin de dispositivo de test

37

Ejemplo de programacin
Proceso de llenado de pallet
Se pide un nuevo pallet, se recoger el componente, se realiza el test.
Si el test resulta positivo, se coloca el componente en el pallet y se actualiza la variable de primera posicin
libre
Si el test es negativo, se desecha el componente y se deja en la zona de componentes defectuosos.
Si desaparece el pallet durante el llenado, se pedir un nuevo pallet y se reiniciar el proceso.
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117

SBR 300
BUC 5,filas
OPE Pv=Pf
BUC 3,columnas
SAL* 100,Ep=0
SBR 500
SBR 600
SAL* 110,Et=1
SBR 700
SAL 104
SLD St=0
SUB
SBR 400
OPE Pv=Pv+Ic
REP columnas
OPE Pf=Pf+If
REP filas
SAL 100

Programacin del Robot

; Solicita pallet nuevo


; Bucle de indexacin de filas
; Comienzo de fila
; Bucle de indexacin de columnas
; No hay pallet; comenzar proceso
; Tomar componente del alimentador
; Realizar test
; Componente vlido. Situarle en pallet
; Componente defectuoso. Rechazarle
; Coger un nuevo componente
; Test pasado, desactivar test y sacar
; componente del dispositivo de test
; Colocar componente en pallet
; Incrementar posicin de columna
; fin de indexacin de columnas
; Incrementar fila
; Fin indexacin filas, pallet lleno

38

Ejemplo de programacin
Subrutina de nuevo pallet
Verificacin de que el pallet nuevo est posicionado en la
posicin de llenado, inicializando las variables Pv y Pf a la
primera posicin del pallet (Activacin de la salida que controla
el motor de movimiento de la cinta).
300
301
302
303
304
305
306

OPE
OPE
SLD
EST
ESE
SLD
RET

Pv=Pi
Pf=Pi
Sm=1
2
Ep=1
Sm=0

Programacin del Robot

; Inicializacin de Pv
; Inicializacin de Pf
; Pedir nuevo ballet. Activar cinta
; Tiempo de evacuacin pallet anterior
; Espera llegada de pallet nuevo
; Parar cinta
; Fin de nuevo pallet
39

Ejemplo de programacin
Subrutina de colocar en pallet
Colocar un componente en la primera posicin libre en
el pallet.
400 POS$ Pv
401 GPZ Op
402 DEJ
403 RET

Programacin del Robot

; Ir a posicin libre en pallet


; Con la correcta orientacin
;
; fin de colocar en pallet

40

Ejemplo de programacin
Subrutina colocar componente
Espera un mximo de 30 segundos la llegada de un componente al alimentador.
Si no llega, emite una alarma durante 10 segundos y lo vuelve a intentar.
Si llega, lo recoge, verificando que est en la pinza del robot.
Si no est (por ejemplo, porque ha resbalado) emite una alarma y trata de realizar la operacin
de nuevo.

500
501
502
503
504
505
506
507
508
510
511

POS$ Pa
GPZ Oa
MON Ea=1,506,30
EST 30
SLD Sn=1,10
SAL 502
COG
SAL* 510,Eh=0
RET
SLD Sh=1,5
SAL 500

Programacin del Robot

; Posicionarse sobre el alimentador


; Orientndose correctamente
; Monitoriza entrada 1 durante 30s mx.
; Espera de 30 segundos
; Si no llega componente en 30s
; Alarma (Sn) durante 10s y repite accin
; Llega componente, cogerlo.
; Verificar que componente ha sido cogido
; Fin de tomar componente
; Fallo al coger el componente
; Emitir alarma(Sh)durante 5s. Reintentar

41

Ejemplo de programacin
Subrutina de test
Coloca el componente en el dispositivo de test y lo
activa.
600
601
602
603
604

POS$ Pt
GPZ Ot
BAJ
SLD St=1
RET

Programacin del Robot

; Posicionarse sobre dispositivo de test


; orientarse correctamente
; Introducir componente en dispositivo
; Activar test
; Fin de test

42

Ejemplo de programacin
Subrutina de rechazo componente
Rechaza los componentes que no pasan el test y los
deja en el almacn de componentes defectuosos.
700
701
702
703
705

SLD St=0
SUB
POS$ Pd
DEJ
RET

Programacin del Robot

; Componente defectuoso
; Sacarlo del dispositivo de test
; Posicionar en almacn defectuosos
; Dejar componente
; Fin de rechazar componente

43

Vous aimerez peut-être aussi