Está en la página 1de 68

Grado en Ingeniera Electrnica y Automtica Industrial

Sistemas Robotizados

Tema 6. Programacin de Robots


Rafael Barea / Elena Lpez
Curso 2012/13

ndice

1. Introduccin
2. Mtodos de programacin de robots
3. Requerimientos de un sistema de programacin de robots
4. Lenguajes de programacin de robots
RAPID
V+

5. Bibliografa

Sistemas Robotizados. Programacin de Robots

Introduccin

Robot industrial manipulador multifuncional reprogramable

La capacidad de reprogramacin permite su adaptacin, de manera


rpida y econmica, a diferentes aplicaciones

La programacin del robot consiste en definir la secuencia de


acciones que debe llevar a cabo un robot para realizar una tarea

Diferentes mtodos de programacin:

Programacin por guiado o aprendizaje

Programacin textual

Diferentes lenguajes de programacin

Sistemas Robotizados. Programacin de Robots

Mtodos de programacin.
Programacin por guiado o aprendizaje

La programacin por guiado o aprendizaje consiste en hacer realizar al robot la


tarea a realizar (manualmente o mediante cualquier otro sistema) al mismo
tiempo que se registran las configuraciones adoptadas, para su posterior
repeticin de manera automtica.

No existe lenguaje formal, hay gran dependencia de la estructura fsica del


robot y la programacin

Ventajas:

Fciles de programar. Operador sin experiencia puede realizar un programa

No se precisan las coordenadas de los elementos del sistema

No errores de posicionamiento debidos a incorrecta calibracin del sistema

Inconvenientes:

Sin relacin sensorial con el medio

Mientras se programa el robot, hay que sacarlo de la lnea de produccin

Inexistencia de documentacin del programa

Dificultad para realizar modificaciones en el programa (programa no modificable)


Sistemas Robotizados. Programacin de Robots

Mtodos de programacin.
Programacin por guiado o aprendizaje
Clasificacin

Segn cmo se gua al robot por los puntos de paso de la trayectoria:


Guiado pasivo cuando operador con sus propias manos posiciona el
robot

Guiado pasivo Directo:


9 El operador coge el extremo del robot y lo lleva a las posiciones deseadas
siguiendo las trayectorias ms adecuadas
9 La unidad de control registra, de manera automtica, las seales de los
sensores de posicin de las articulaciones en todos los puntos

Guiado pasivo por Maniqu


9 Se dispone de un doble del robot (idntica configuracin pero ms ligero y
fcil de mover)

Guiado activo Cuando se utiliza el propio sistema de accionamiento del


robot, controlado desde un puesto de mando (consola, botonera o
joystick)

Sistemas Robotizados. Programacin de Robots

Mtodos de programacin.
Programacin por guiado o aprendizaje
Guiado activo

Guiado pasivo

TeachPendantobotonera

Sistemas Robotizados. Programacin de Robots

Mtodos de programacin.
Programacin Textual

La tarea se indica al robot mediante un lenguaje de programacin.

Clasificacin

Programacin a nivel Robot movimientos a realizar por el robot

Programacin a nivel Objeto

Programacin a nivel Tarea objetivo o subobjetivo a conseguir

estado en que deben ir quedando los


objetos manipulados

En el estado actual la programacin del robot se centra principalmente en


la programacin a nivel Robot
9

AS (KAWASAKI)

KAREL (FANUC)

KRL (KUKA)

RAPID (ABB)

V+ (ADEPT)

VAL II (UNIMATION)
Sistemas Robotizados. Programacin de Robots

Mtodos de programacin.
Programacin Textual
Programacin a Nivel robot

La secuencia de configuraciones del robot es definida en un programa


contiene sentencias de especificacin de movimiento y relativas al
entorno

Necesario especificar cada uno de los movimientos que ha de realizar


el robot, as como la velocidad, direcciones de aproximacin y salida,
apertura y cierre de la pinza

Se establece la secuencia por programa y ciertas posiciones por


guiado. Descomposicin de la tarea global en varias subtareas

Ventajas: sincronizacin, flujo de control, programacin modular:


control de proceso + control de robot

Inconvenientes: usuario = buen programador, tareas simples pueden


suponer muchas lneas de cdigo
Sistemas Robotizados. Programacin de Robots

Mtodos de programacin.
Programacin Textual
Programacin a Nivel Objeto

Disminuye la complejidad del programa.

La programacin se realiza de manera mas cmoda, ya que las


instrucciones se dan en funcin de los objetos a manejar.

Un planificador de la tarea se encargar de consultar una base de datos y


generar las instrucciones a nivel de robot.

Lenguajes naturales: intento de minimizar las restricciones en la


comunicacin hombre-mquina

Programacin a Nivel Tarea

En centros de investigacin, no ha llegado a la industria

Lenguaje de muy alto nivel, el programa se reduce a una nica sentencia


que especifica lo que debe hacer el robot en lugar de cmo debe hacerlo.
Sistemas Robotizados. Programacin de Robots

Mtodos de programacin.
Programacin Textual

Ejemplo: Se pretende situar la pieza A,


sobre la que se apoya la pieza B, en el
interior del orificio de la pieza D.

NivelObjeto

Nivelrobot

NivelTarea
Sistemas Robotizados. Programacin de Robots

10

Requerimientos de un sistema de
programacin de robots

Requerimientos generales:

Entorno de programacin.

Modelado del entorno.

Tipo de datos.

Manejo de entradas/salidas (digital y analgica).

Comunicaciones.

Control de movimiento.

Control del flujo de ejecucin del programa.

Sistemas Robotizados. Programacin de Robots

11

Requerimientos de un sistema de
programacin de robots

Entorno de programacin - desarrollo

Es necesario un entorno de desarrollo adecuado a las necesidades


Aumento considerable de productividad de la programacin

Programar las acciones de un manipulador proceso complicado en el


puesto que en todo momento existe una interaccin con el entorno

La mayora de los sistemas de programacin son de tipo interpretado

Capacidad de depuracin y ejecucin paso a paso.

Se evita el ciclo de editar-compilar-ejecutar muy costoso en tiempo.

Capacidad de monitorizacin continua

Sistemas operativos multitarea

Proceso continuo de prueba y error

Control simultneo y sincronizado de varios elementos (robot, sistemas de visin


o transporte, etc)

Disponibilidad de herramientas de ayuda a la programacin (simuladores)


Sistemas Robotizados. Programacin de Robots

12

Requerimientos de un sistema de
programacin de robots

Modelado del entorno

Representacin que tiene el robot de los objetos con los que interacciona.

Caracteristicas geomtricas: posicin y orientacin, forma, dimensiones,


peso, etc.

Sistemas Robotizados. Programacin de Robots

13

Requerimientos de un sistema de
programacin de robots

Tipos de datos

Datos convencionales (enteros, reales, booleanos, etc.)

Datos especficos para definir operaciones de interaccin con el entorno


Posicin y orientacin:

Coordenadas articulares:
9 mediante una n-upla (q1, ...qn)

Coordenadas cartesianas:
9 Posicin (px, py, pz)
9 Orientacin

ngulos de Euler.
Cuaternios.
Matriz noa

9 Matrices de transformacin homognea

Sistemas Robotizados. Programacin de Robots

14

Requerimientos de un sistema de
programacin de robots

Entradas/salidas

Objetivo: Integracin y sincronizacin

Cmo se consigue?

Mediante seales binarias de entrada y salida Nivel sencillo

Mediante seales analgicas o digitales

Integracin de sensores

Incorporacin de informacin a la ejecucin de la tarea

Modificar la trayectoria.

Elegir entre diversas alternativas.

Obtener la identidad y posicin de objetos y sus caractersticas.

Cumplir con restricciones externas.

Sistemas Robotizados. Programacin de Robots

15

Requerimientos de un sistema de
programacin de robots

Comunicaciones
Necesidad de comunicacin con otros robots o sistemas que participan en
el proceso productivo. Esta comunicacin permite entre otras cosas:

Adaptacin de los movimientos del robot a situaciones cambiantes en la lnea

Carga o actualizacin del programa

Monitorizacin o supervisin del estado de la clula.

El control del estado de la produccin.

La mayor parte de los robots industriales de nueva generacin disponen de


vas de comunicacin basadas en estndares (RS232, Devicenet, CanBus,
Profibus, Ethernet, etc.).

Algunos fabricantes basan su sistema de control en una arquitectura de


tipo PC Industrial (KUKA-ABB). Esto permite una gran flexibilidad de
adaptacin a futuros estndares de comunicaciones.

Sistemas Robotizados. Programacin de Robots

16

Requerimientos de un sistema de
programacin de robots

Control de movimiento

Posibilidad de especificar el movimiento del robot

Punto de destino

Tipo de trayectoria (punto a punto, continua, etc)

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 acomodativo (compliant motion) modificacin del movimiento


Sistemas Robotizados. Programacin de Robots

17

Requerimientos de un sistema de
programacin de robots

Flujo de ejecucin del programa

El lenguaje de programacin debe permitir especificar el flujo de ejecucin


de las operaciones

Estructuras habituales de bucles (for, repeat, while, etc.)

Empleo de condiciones if, then

Capacidad de procesamiento en paralelo

Control de varios robots trabajando conjuntamente

Utilizacin de seales de sincronismo

Tratamiento de interrupciones/errores

Fijacin de prioridades

Sistemas Robotizados. Programacin de Robots

18

Lenguajes de programacin de robots

RAPID (ABB) robots ABB

V+ (ADEPT) robots Staubli

VAL II (UNIMATION-staubli)

AS (KAWASAKI)

KAREL (FANUC)

KRL (KUKA)

Sistemas Robotizados. Programacin de Robots

19

Lenguaje de programacin RAPID

El lenguaje RAPID (Robotics Application Programming Interactive


Dialogue) ha sido desarrollado por la empresa ABB (1994) para su
nueva generacin de sistemas de control S4 y IRC5, lo que ha
supuesto un nuevo paso adelante en el desarrollo de herramientas de
programacin para robots comerciales.

Muy similar a lenguajes de programacin de propsito general de alto


nivel (Basic, Pascal, C)

RAPID constituye un lenguaje de programacin textual de alto nivel


que incluye algunas caractersticas importantes:

Utilizacin de funciones y procedimientos

Posibilidad de usar rutinas parametrizables

Estructura completamente modular del programa

Posibilidad de declarar rutinas y datos como locales o globales.

Sistemas Robotizados. Programacin de Robots

20

Lenguaje de programacin RAPID

Un programa escrito en RAPID consiste en una serie de instrucciones


que describen el trabajo del robot.

Cada instruccin tiene asociada una serie de parmetros que definen


de forma completa la accin a realizar.

Estos parmetros especficos a cada instruccin pueden ser:

valores numricos

referencias a un dato

expresiones de datos

llamadas a unas funciones

cadenas de caracteres

etc.

Sistemas Robotizados. Programacin de Robots

21

Lenguaje de programacin RAPID

Los programas desarrollados en RAPID se denominan tareas e


incluyen el programa con varios mdulos de sistema, mdulos que
contienen rutinas y datos de tipo general, etc.

El programa puede ser dividido en varios mdulos, y cada uno de esos


mdulos puede contener submdulos de datos, rutinas de ejecucin,
etc.

La definicin de mdulos se realiza


especificando su nombre y sus
atributos.

Es un lenguaje muy estructurado.

Sistemas Robotizados. Programacin de Robots

22

Lenguaje de programacin RAPID

Sistemas Robotizados. Programacin de Robots

23

Lenguaje de programacin RAPID

Existen tres tipos de rutinas o subprogramas diferentes:

Procedimiento: Se trata de una rutina que no devuelve ningn valor y se


utiliza como si fuera una instruccin.

Funcin: Es una rutina que devuelve un dato especfico y se utiliza como


una expresin

Rutina TRAP: Son rutinas que se asocian a interrupciones y se ejecutan


cuando son activadas. No pueden llamarse de forma explcita.

Parmetros de las instrucciones: numricos, referencias o expresiones.

Para cada dato se define:

mbito de utilizacin o alcance: local o global

Persistencia: variable, constante o persistente.

Sistemas Robotizados. Programacin de Robots

24

Ejemplo de instruccin RAPID

instruccin

parmetros

MoveL p1, v100, z10, tool1;


movimiento en
lnea recta

punto
de velocidad
destino

herramienta definida
precisin

Sistemas Robotizados. Programacin de Robots

25

Instrucciones principales de RAPID I


INSTRUCCIONES DE MOVIMIENTO

MoveL: desplazamiento hasta el punto en lnea recta.

MoveC: desplazamiento describiendo un crculo.

MoveJ: desplazamiento rpido, sin garantizar la trayectoria seguida


(sin coordinacin de velocidad entre los ejes del robot).

Ejemplos:

MoveL p1, v100, z10, tool1;

MoveC p0, p1, v100, z10, tool1;

MoveJ p1, v100, z10, tool1;

es necesario especificar, adems del punto de destino


p1, un punto de paso intermedio p0 que servir para definir la curvatura.

Sistemas Robotizados. Programacin de Robots

26

Instrucciones principales de RAPID II


PARMETROS DE LAS INSTRUCCIONES DE MOVIMIENTO:

Posiciones de destino p1 y p0:

Velocidad v100:

Dato tipo SpeedData:indica velocidad deseada de traslacin y de rotacin.

Precisin z10:

Dato tipo RobTarget:especifica posicin y orientacin unvocamente.

Dato tipo ZoneData: indica la precisin con la que hay que alcanzar la posicin
solicitada antes de continuar el movimiento hasta la posicin siguiente.

Herramienta tool1:

Dato tipo ToolData: describe la herramienta acoplada al robot: dimensiones para


calcular trayectorias y el peso y centro de gravedad para adecuar los pares a ejercer
por los motores del robot
Sistemas Robotizados. Programacin de Robots

27

Instrucciones principales de RAPID II

Sistemas Robotizados. Programacin de Robots

28

Instrucciones principales de RAPID II

Sistemas Robotizados. Programacin de Robots

29

Instrucciones principales de RAPID III


INSTRUCCIONES DE MANEJO DE E/S

Set: fija el valor de una salida digital a 1.

Reset: fija el valor de una salida digital a 0.

SetDO: fija una salida digital a un valor simblico (on/off, etc).

SetAO: fija el valor de una salida analgica.

WaitDI: espera hasta que una entrada tome un valor determinado

Posibles utilizaciones de las seales de E/S:

Comandar la vlvula neumtica que gobierna la pinza

Detener o poner en marcha una cinta transportadora

Saber si hay una pieza lista para ser procesada por el robot

etc
Sistemas Robotizados. Programacin de Robots

30

Instrucciones principales de RAPID IV


Ejemplos:

Set out1 (fija el valor de la salida out1 a uno)

Reset out3 (fija el valor de la salida out3 a cero)

SetDO pinza, off (fija el valor de la salida pinza a off abre la pinza)

SetAO out5, 4.3(fija la salida analgica out5 a 4.3) (ojo: ni V ni A)

WaitDi pieza, 1 (espera hasta que la entrada pieza tome el valor 1)

Tambin es posible utilizar el valor de las entradas dentro de una


expresin, como si se fueran variables:

IF pieza=1 THEN... (una entrada digital controla el flujo de programa)

IF par>1.5 THEN... (idem con entrada analgica) (control esfuerzos)

Sistemas Robotizados. Programacin de Robots

31

Instrucciones principales de RAPID V


INSTRUCCIONES DE CONTROL DE FLUJO DE EJECUCIN
Las habituales en lenguajes de programacin de alto nivel:

FOR ... ENDFOR: repite una seccin del programa un nmero fijo de veces.

WHILE ... ENDWHILE: repite una seccin del programa mientras se

GOTO: salto incondicional a una determinada instruccin.

IF ... THEN ... ELSE ... ENDIF: ejecuta un conjunto de instrucciones slo

cumpla una cierta condicin.

si se cumple una cierta condicin.

TEST/CASE: ejecuta unas u otras instrucciones en funcin del valor de un


dato (similar al switch/case del lenguaje C).

Sistemas Robotizados. Programacin de Robots

32

Variables y expresiones en RAPID (I)

La variables y constantes en RAPID se denominan datos.

Definicin de un dato: alcance, persistencia y tipo:

LOCAL VAR pos posicion_robot


alcance
local

persistencia dato tipo


variable
posicin

Asignacin de valores a los datos:

nombre
dato

operador :=

posicion_robot:= [0.0, 0.0, 0.0];

Sistemas Robotizados. Programacin de Robots

33

Variables y expresiones en RAPID (II)

Posibles mbitos para un dato:

LOCAL: slo accesible desde la rutina o mdulo donde se declara

GLOBAL: accesible desde otras rutinas o mdulos.

Posibles persistencias para un dato:

VAR: dato variable. Su valor puede ser modificado en el programa.

CONST: dato constante. No permite ser modificado.

PERS: dato persistente. Si se modifica en el programa permanece


modificado para nuevas ejecuciones del mismo.

Sistemas Robotizados. Programacin de Robots

34

Variables y expresiones en RAPID (III)


TIPOS DE DATOS BSICOS

Num: dato numrico (entero o real).

Bool: valor lgico (TRUE o FALSE).

String: cadena de caracteres.

TIPOS DE DATOS PROPIOS DEL MANEJO DEL ROBOT

Pos: posicin cartesiana (vector de 3 valores numricos X, Y, Z)

Orient: orientacin expresada mediante un cuaternio(vector de 4


valores numricos (Q1, Q2, Q3, Q4)

ConfData: configuracin del robot. Indica los cuadrantes en los que se


encuentran los ejes 1, 4, 6 y 5 del robot. Vector de 4 valores numricos
(conf1, conf2, conf3, conf4).
Sistemas Robotizados. Programacin de Robots

35

Variables y expresiones en RAPID (III)


ConfData

ConfData: Se utiliza para resolver las ambigedades que se producen

cuando una determinada posicin y orientacin es alcanzable con ms de una


combinacin de valores para las articulaciones.

Sistemas Robotizados. Programacin de Robots

36

Variables y expresiones en RAPID (IV)


TIPOS DE DATOS PROPIOS DEL MANEJO DEL ROBOT (cont)

ExtJoint: posicin de los ejes externos. Vector de 6 valores numricos


(eje1 a eje6).

RobTarget: indica un objetivo a alcanzar por el robot. Esto es:

una posicin (expresada como un dato pos: X, Y, Z).

una orientacin (dato orient: Q1, Q2, Q3, Q4).

una configuracin (dato confdata: conf1, conf2, conf3, conf4).

una posicin de los ejes externos (dato extjoint: eje1 a eje6).

Sistemas Robotizados. Programacin de Robots

37

Variables y expresiones en RAPID (V)


TIPOS DE DATOS PROPIOS DEL MANEJO DEL ROBOT (cont)

SpeedData: velocidad para los movimientos.

Existen valores predefinidos: v100, v200, v1000, ....

El valor indica velocidad de traslacin en mm/s;

Tambin se especifica la vel. de rotacin.

ZoneData: precisin con la que se debe alcanzar una posicin antes


de que el robot pueda dirigirse hacia la posicin siguiente.

Existen valores predefinidos: z10, z20, z50, fine, ...

El valor indica la mxima diferencia en mm. respecto del punto solicitado.

Se especifican ms parmetros: orientaciones, ejes externos, ....

Tambin se distingue entre puntos de paso y puntos de paro.


Sistemas Robotizados. Programacin de Robots

38

Variables y expresiones en RAPID (V)


ZoneData

ZoneData:

Sistemas Robotizados. Programacin de Robots

39

Variables y expresiones en RAPID (V)


ZoneData

ZoneData Diferencia punto de paso / punto de paro

Sistemas Robotizados. Programacin de Robots

40

Variables y expresiones en RAPID (VI)


TIPOS DE DATOS PROPIOS DEL MANEJO DEL ROBOT (cont)

ToolData: herramienta utilizada por el robot.

Se especifica tanto la geometra (sistema de coordenadas de la


herramienta) como la carga (peso, centro de gravedad y momentos de
inercia).

LoadData: pieza manipulada por el robot.

Se especifican el peso, el centro de gravedad y los momentos de inercia.

Sistemas Robotizados. Programacin de Robots

41

Resumen programacin RAPID (VI)


:=

Asigna un valor.

Abs()

Obtiene el valor absoluto.

AccSet

Reduce la aceleracin

Add

Suma un valor numrico.

Clear

Borra un valor.

ConfJ

Controla la configuracin durante


movimiento articular.

MoveJ

Mueve el robot haciendo un


movimiento articular.

MoveL

Mueve el robot haciendo un


movimiento lineal.

PulseDo

Genera un pulso en una seal


digital.

Reset

Resetea una salida digital.

ConfL

Monitoriza la configuracin
durante movimiento lineal.

RETURN

Termina la ejecucin de una rutina.

Decr

Decrementa en 1.

Set

Activa una salida digital.

EXIT

Termina la ejecucin del programa.

SetDO

Cambia el valor de una salida


digital.

FOR

Repite un nmero de veces.

Stop

Para la ejecucin de un programa.

GOTO

Ir a una nueva instruccin.

WaitDI

IF

Si se cumple una condicin,


entonces

Espera hasta que se active una


entrada digital.

WaitTime

Espera un tiempo determinado.

WaitUntil

Espera una condicin.

WHILE

Repetir mientras se cumpla una


condicin

Incr

Incrementa en 1.

InvertDo

Invierte el valor de una salida


digital.

MoveC

Mueve el robot haciendo un


movimiento circular.
Sistemas Robotizados. Programacin de Robots

42

Introduccin de programas en el robot

Existen dos posibilidades

Programacin desde la paleta de programacin.

Se lleva al robot a las posiciones deseadas manualmente (haciendo uso del


joystick).

Se crea una instruccin de programa para cada posicin indicada


manualmente, especificando velocidad, precisin, etc.

Se aaden las instrucciones necesarias: control de E/S, etc.

Ventajas: no requiere ningn clculo, pocas posibilidades de error.

Escritura del programa en PC y transferencia al robot

Las posiciones se calculan analticamente; con estos datos se escribe un


programa utilizando el lenguaje RAPID.

Ventajas: facilidad para introducir modificaciones o revisar.


Sistemas Robotizados. Programacin de Robots

43

Programacin desde la paleta (I)


FlexPendant

Sistemas Robotizados. Programacin de Robots

44

Programacin desde la paleta (II)


FlexPendant

Varias posibilidades para mover el robot con el joystick:


Introduciendo traslaciones a lo largo de 3 ejes y giros sobre 3 ejes
(cada eje se maneja con un grado de libertad del joystick).

respecto del sistema de coordenadas de la base del robot.

respecto del sistema de coordenadas de la herramienta u otro.

Actuando directamente sobre las articulaciones del robot (mximo


sobre 3 de los ejes simultneamente).

Sistemas Robotizados. Programacin de Robots

45

Programacin desde la paleta (III)


FlexPendant
FlexPendant Ventana principal

FlexPendant Explorer

Sistemas Robotizados. Programacin de Robots

46

Programacin desde la paleta (IV)


FlexPendant
FlexPendant Editor de programas

Sistemas Robotizados. Programacin de Robots

47

Programacin desde PC

Cdigo del programa, siempre estructurado en mdulos:


%%%%Cabecera%%%%

MODULE MainModule
Definicin de variables
Definicin de rutinas
Programa principal

ENDMODULE

Sistemas Robotizados. Programacin de Robots

48

Ejemplo Programacin RAPID (I)


Ejemplo 1. Calcular el rea de un rectngulo y escribirla en el FlexPendant
MODULE MainModule
VAR num length;
VAR num width;

Definicindevariables

VAR num area;


PROC main()
length := 10;
width := 5;
area := length * width;

Programaprincipal

TPWrite "The area of the rectangle is " \Num:=area;


END PROC

ENDMODULE
Sistemas Robotizados. Programacin de Robots

49

Ejemplo Programacin RAPID (II)


Trazar un cuadrado
Ejemplo 2. Trazar un cuadrado (Ejemplos con MoveL)

Un robot sostiene un rotulador sobre un papel colocado sobre una mesa.


Queremos que el robot baje la punta del rotulador para colocarla en el papel y
que a continuacin trace un cuadrado.

Sistemas Robotizados. Programacin de Robots

50

Ejemplo Programacin RAPID (III)


Trazar un cuadrado
PERS tooldata tPen := [ TRUE, [[200, 0, 30], [1, 0, 0 ,0]], [0.8,[62, 0, 17], [1, 0, 0, 0], 0, 0, 0]];
CONST robtarget p10 := [ [600, -100, 800], [0.707170, 0, 0.707170,0], [0, 0, 0, 0], [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9] ];
CONST robtarget p20 := [ [600, 100, 800], [0.707170, 0, 0.707170,0], [0, 0, 0, 0], [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9] ];
CONST robtarget p30 := [ [800, 100, 800], [0.707170, 0, 0.707170,0], [0, 0, 0, 0], [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9] ];
CONST robtarget p40 := [ [800, -100, 800], [0.707170, 0, 0.707170,0], [0, 0, 0, 0], [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9] ];

PROC main()
MoveL p10, v200, fine, tPen;
MoveL p20, v200, fine, tPen;
MoveL p30, v200, fine, tPen;
MoveL p40, v200, fine, tPen;
MoveL p10, v200, fine, tPen;
ENDPROC
Sistemas Robotizados. Programacin de Robots

51

Ejemplo Programacin RAPID (IV)


Trazar un cuadrado con zonas de esquina
Ejemplo 3. Trazar un cuadrado con zonas de esquina

Pintar un cuadrado con una zona de esquina de 20mm y otra de 50mm

Sistemas Robotizados. Programacin de Robots

52

Ejemplo Programacin RAPID (V)


Trazar un cuadrado con zonas de esquina
PERS tooldata tPen := [ TRUE, [[200, 0, 30], [1, 0, 0 ,0]], [0.8,[62, 0, 17], [1, 0, 0, 0], 0, 0, 0]];
CONST robtarget p10 := [ [600, -100, 800], [0.707170, 0, 0.707170,0], [0, 0, 0, 0], [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9] ];
CONST robtarget p20 := [ [600, 100, 800], [0.707170, 0, 0.707170,0], [0, 0, 0, 0], [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9] ];
CONST robtarget p30 := [ [800, 100, 800], [0.707170, 0, 0.707170,0], [0, 0, 0, 0], [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9] ];
CONST robtarget p40 := [ [800, -100, 800], [0.707170, 0, 0.707170,0], [0, 0, 0, 0], [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9] ];

PROC main()
MoveL p10, v200, fine, tPen;
MoveL p20, v200, z20, tPen;
MoveL p30, v200, fine, tPen;
MoveL p40, v200, z50, tPen;
MoveL p10, v200, fine, tPen;
ENDPROC
Sistemas Robotizados. Programacin de Robots

53

Ejemplo Programacin RAPID (VI)


Clula robotizada de inspeccin

El robot retira de una cinta transportadora aquellas piezas defectuosas

Procedimiento: El robot se encuentra en espera hasta la llegada de una pieza


defectuosa, para la cinta, retira la pieza defectuosa, vuelve a activar la cinta y
vuelve a su posicin de reposo

Sistemas Robotizados. Programacin de Robots

54

Ejemplo Programacin RAPID (VII)


Clula robotizada de inspeccin

Estructura del programa:

Definicin de variables

Rutinas de control de la pinza

Rutina de coger la pieza de la cinta

Rutina de dejar la pieza

Rutina de ir a la posicin de reposo

Programa principal

Sistemas Robotizados. Programacin de Robots

55

Ejemplo Programacin RAPID (VIII)


Clula robotizada de inspeccin
DEFINICIN DE VARIABLES
%Definir de la pinza
PERS tooldata herramienta : = [FALSE,[[97,0,223] ,[0.924,0,0.383,0]],[5,[23,0,75],[1,0,0,0],0,0,0]]
%Definir la carga a transportar
PERS loaddata carga : = [5,[50,0,50] ,[1,0,0,0] ,0,0,0];
%Definir entradas y salidas digitales
VAR signaldo pinza

%seal de activacin de pinza

VAR signaldo activar-cinta

%seal de activacin de cinta

VAR signaldi pieza-defectuosa

%seal de pieza defectuosa

VAR signaldi terminar

%seal de terminar programa

%Definir la configuracin inicial en la que el robot espera la seal de recoger


pieza
VAR robtarget conf_espera : = [[600,500,225],[1,0,0,0],[1,1,0,0],[9E9,9E9,
9E9,9E9,9E9,9E9]];

Sistemas Robotizados. Programacin de Robots

56

Ejemplo Programacin RAPID (IX)


Clula robotizada de inspeccin
RUTINA DE CONTROL DE LA PINZA
PROC Coger()
Set pinza

%Cerrar la pinza activando la seal digital pinza

WaitTime 0.3

%Esperar 0.3 segundos

GripLoad carga

%Sealar que la pieza est cogida

ENDPROC
PROC Dejar()
Reset pinza

%Abrir la pinza

WaitTime 0.3

%Esperar 0.3 segundos

GripLoad LOAD0

%Sealar que no hay pieza cogida

ENDPROC
Sistemas Robotizados. Programacin de Robots

57

Ejemplo Programacin RAPID (X)


Clula robotizada de inspeccin
RUTINA DE COGER LA PIEZA DE LA CINTA
Se coge una pieza de la cinta transportadora. Primero se realiza una aproximacin en
coordenadas angulares, movimiento coordinado en articulares (trayectoria isocrona),
para ms tarde acercarse en lnea recta y con precisin a coger la pieza.

PROC Coger-pieza()
MOVEJ*, VMAX, z60, herramienta

%Mov. en articulares con poca precisin

MOVEL*, V500, z20, herramienta

%Mov. lnea recta con precisin

MOVEL*, V150, FINE, herramienta

%Bajar con precisin mxima

Coger

%Coger la pieza

MOVEL*, V200, z20, herramienta

%Subir con la pieza cogida

ENDPROC

Sistemas Robotizados. Programacin de Robots

58

Ejemplo Programacin RAPID (XI)


Clula robotizada de inspeccin
RUTINA DE DEJAR LA PIEZA
El robot deja la pieza en la caja de piezas defectuosas.

PROC Dejarpieza()
MOVEJ*, VMAX, z30, herramienta

%Mover hacia la caja de piezas malas

MOVEJ*, V300,z30, herramienta


Dejar

%Dejar la pieza.

ENDPROC

Sistemas Robotizados. Programacin de Robots

59

Ejemplo Programacin RAPID (XII)


Clula robotizada de inspeccin
RUTINA DE IR A LA POSICIN DE ESPERA
El robot se desplaza hasta la posicin de espera.

PROC Ir-position-espera()
MoveJ conf-espera, VMAX, z30, herramienta %Mover a la posicin inicial

ENDPROC

Sistemas Robotizados. Programacin de Robots

60

Ejemplo Programacin RAPID (XIII)


Clula robotizada de inspeccin
PROGRAMA PRINCIPAL
Realizacin prctica de la aplicacin

PROC main()
Ir-position-espera;

%Mover a posicin de espera

WHILE DInput(terminar) = 0 DO

% Esperar seal de terminar

IF DInput(pieza-defectuosa) = 1 THEN %Esperar seal de pieza defectuosa


SetDO activar-cinta,0;

%Parar cinta

Coger-pieza

%Coger la pieza

SetDO activar-cinta, 1 ;

%Activar seal de cinta

Dejar-pieza

%Dejar la pieza

Ir-position-espera

%Ir a posicin de espera

ENDIF
ENDWHILE
ENDPROC C
Sistemas Robotizados. Programacin de Robots

61

Lenguaje de programacin V+

V+ es un lenguaje de programacin textual de alto nivel, desarrollado


en 1989 por Adept Technology.

Es una evolucin del VAL II.

Actualmente, se utiliza en los robots Adept y en algunos robots Staubli


(RX 60, RX 90)

Sistemas Robotizados. Programacin de Robots

62

Lenguaje de programacin V+

Aportaciones importantes de V+:

Claridad: Diseo ordenado y coherente del programa

Fiabilidad: Sobre todo en sistemas que deban responder a situaciones


imprevistas.

Adaptabilidad : Los programas permiten modificaciones, mejoras y


ampliaciones

Transportabilidad: Los programas se pueden desarrollar en un PC y ser


posteriormente introducidos en el controlador.

Sistemas Robotizados. Programacin de Robots

63

Ejemplo de instruccin V+

Un programa en V+ consiste en un conjunto de instrucciones.

Cada lnea o step se interpreta como una instruccin del programa.

El formato general de cada linea es:


nmero-lnea etiqueta instruccin ;comentario

La primera lnea de un programa en V+ es la instruccin ".PROGRAM,


seguida del nombre del programa y de los parmetros que deba recibir
o devolver. Tiene el formato:
.PROGRAM nombre (lista de parmetros)

El final del programa se indica con una lnea que contiene la


instruccin ".END.

Sistemas Robotizados. Programacin de Robots

64

Instrucciones de control V+

Sistemas Robotizados. Programacin de Robots

65

Resumen de comandos V+ para la


comunicacin (RS232) con el brazo RX-60
Comando

Accin

enable power

Habilita el brazo para ser usado. Hay que pulsar botn de encendido.

disable power

Deshabilita el brazo.

where

Permite conocer la posicin del brazo.

point a

Permite definir un punto utilizando coordenadas de orientacin/posicin cartesianas


{x,y,z,yaw,pitch,roll}.

point #a
speed %vel

Permite definir un punto utilizando ngulos de articulacin {Jt1Jt6}.


Permite definir la velocidad de sistema como porcentaje de la velocidad mxima

do ready

Desplaza cada miembro del brazo a su posicin de reposo.

do drive
eje,Ugrad,

Desplaza el miembro eje el nmero de grados indicado en grad al porcentaje de


velocidad indicado en vel referido a la velocidad de sistema.

% vel

do move a

Desplaza el brazo a la posicin indicada en el punto a, definido a travs de


coordenadas de posicin/orientacin cartesianas

do move #a

Desplaza el brazo a la posicin indicada en el punto #a, definido a travs de ngulos


de articulacin.

panic

Aborta el movimiento del brazo.

Sistemas Robotizados. Programacin de Robots

66

RX-60

Sistemas Robotizados. Programacin de Robots

67

Bibliografa
Barrientos, A., Pen, L. F., Balaguer, C., Aracil, R. Fundamentos de
Robtica. McGraw-Hill. 1997.
Fu, K. S., Gonzlez, R. C., Lee, C. S. G. Robtica: Control,
Deteccin, Visin e Inteligencia. McGraw-Hill. 1988.
CONTROL DE ROBOTS Y SISTEMAS SENSORIALES
Jos Mara Sabater. Programacin de robots. Robtica y Visin por
Computador. Universidad Miguel Hernndez.
Manual de RAPID. ABB robotics. http://www.abb.com
Manual de V+. Staubli. http://www.staubli.com

Sistemas Robotizados. Programacin de Robots

68

También podría gustarte