7/24/2019 SR T6 ProgramacinRobots
1/68
Tema 6. Programacin de Robots
Grado en Ingeniera Electrnica y Automtica Industrial
Rafael Barea / Elena Lpez
Curso 2012/13
Sistemas Robotizados
7/24/2019 SR T6 ProgramacinRobots
2/68
2Sistemas Robotizados. Programacin de Robots
ndice
1. Introduccin
2. Mtodos de programacin de robots3. Requerimientos de un sistema de programacin de robots
4. Lenguajes de programacin de robots
RAPID V+
5. Bibliografa
7/24/2019 SR T6 ProgramacinRobots
3/68
3Sistemas 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
7/24/2019 SR T6 ProgramacinRobots
4/68
4Sistemas Robotizados. Programacin de Robots
Mtodos de programacin.Programacin por guiado o aprendizaje
La programacin por guiado o aprendizaje consiste en hacer realizar al robot latarea a realizar (manualmente o mediante cualquier otro sistema) al mismotiempo que se registran las configuraciones adoptadas, para su posteriorrepeticin de manera automtica.
No existe lenguaje formal, hay gran dependencia de la estructura fsica delrobot 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)
7/24/2019 SR T6 ProgramacinRobots
5/68
5Sistemas 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 elrobot Guiado pasivo Directo:
El operador coge el extremo del robot y lo lleva a las posiciones deseadassiguiendo las trayectorias ms adecuadas
La unidad de control registra, de manera automtica, las seales de lossensores de posicin de las articulaciones en todos los puntos
Guiado pasivo por Maniqu
Se dispone de un doble del robot (idntica configuracin pero ms ligero yfcil de mover)
Guiado activo Cuando se utiliza el propio sistema de accionamiento delrobot, controlado desde un puesto de mando (consola, botonera o
joystick)
7/24/2019 SR T6 ProgramacinRobots
6/68
6Sistemas Robotizados. Programacin de Robots
Mtodos de programacin.Programacin por guiado o aprendizaje
Guiado pasivo Guiado activo
TeachPendantobotonera
7/24/2019 SR T6 ProgramacinRobots
7/68
7Sistemas 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 estado en que deben ir quedando losobjetos manipulados
Programacin a nivel Tarea objetivo o subobjetivo a conseguir
En el estado actual la programacin del robot se centra principalmente enla programacin a nivel Robot
AS (KAWASAKI)
KAREL (FANUC)
KRL (KUKA)
RAPID (ABB)
V+ (ADEPT)
VAL II (UNIMATION)
7/24/2019 SR T6 ProgramacinRobots
8/68
8Sistemas Robotizados. Programacin de Robots
Mtodos de programacin.Programacin Textual
Programacin a Nivel robot
La secuencia de configuraciones del robot es definida en un programacontiene 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 porguiado. 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 puedensuponer muchas lneas de cdigo
7/24/2019 SR T6 ProgramacinRobots
9/68
9Sistemas 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 lasinstrucciones se dan en funcin de los objetos a manejar.
Un planificador de la tarea se encargar de consultar una base de datos ygenerar las instrucciones a nivel de robot.
Lenguajes naturales: intento de minimizar las restricciones en lacomunicacin 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 sentenciaque especifica lo que debe hacer el robot en lugar de cmo debe hacerlo.
7/24/2019 SR T6 ProgramacinRobots
10/68
10Sistemas 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 elinterior del orificio de la pieza D.
Nivelrobot
NivelObjeto
NivelTarea
7/24/2019 SR T6 ProgramacinRobots
11/68
11Sistemas Robotizados. Programacin de Robots
Requerimientos de un sistema deprogramacin 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.
7/24/2019 SR T6 ProgramacinRobots
12/68
12Sistemas Robotizados. Programacin de Robots
Requerimientos de un sistema deprogramacin 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 elpuesto que en todo momento existe una interaccin con el entorno
Proceso continuo de prueba y error
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 Control simultneo y sincronizado de varios elementos (robot, sistemas de visin
o transporte, etc)
Disponibilidad de herramientas de ayuda a la programacin (simuladores)
7/24/2019 SR T6 ProgramacinRobots
13/68
13Sistemas Robotizados. Programacin de Robots
Requerimientos de un sistema deprogramacin 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.
7/24/2019 SR T6 ProgramacinRobots
14/68
14Sistemas Robotizados. Programacin de Robots
Requerimientos de un sistema deprogramacin 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:
mediante una n-upla (q1, ...qn)
Coordenadas cartesianas:
Posicin (px, py, pz) Orientacin
ngulos de Euler. Cuaternios.
Matriz noa
Matrices de transformacin homognea
7/24/2019 SR T6 ProgramacinRobots
15/68
15Sistemas Robotizados. Programacin de Robots
Requerimientos de un sistema deprogramacin 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.
7/24/2019 SR T6 ProgramacinRobots
16/68
16Sistemas Robotizados. Programacin de Robots
Requerimientos de un sistema deprogramacin de robots
Comunicaciones
Necesidad de comunicacin con otros robots o sistemas que participan enel 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 devas 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 deadaptacin a futuros estndares de comunicaciones.
7/24/2019 SR T6 ProgramacinRobots
17/68
17Sistemas Robotizados. Programacin de Robots
Requerimientos de un sistema deprogramacin 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
7/24/2019 SR T6 ProgramacinRobots
18/68
18Sistemas Robotizados. Programacin de Robots
Requerimientos de un sistema deprogramacin de robots
Flujo de ejecucin del programa
El lenguaje de programacin debe permitir especificar el flujo de ejecucinde 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
7/24/2019 SR T6 ProgramacinRobots
19/68
19Sistemas Robotizados. Programacin de Robots
Lenguajes de programacin de robots
RAPID (ABB) robots ABB
V+ (ADEPT) robots Staubli
VAL II (UNIMATION-staubli) AS (KAWASAKI)
KAREL (FANUC)
KRL (KUKA)
7/24/2019 SR T6 ProgramacinRobots
20/68
20Sistemas Robotizados. Programacin de Robots
Lenguaje de programacin RAPID
El lenguaje RAPID (Robotics Application Programming InteractiveDialogue) ha sido desarrollado por la empresa ABB (1994) para sunueva generacin de sistemas de control S4 y IRC5, lo que ha
supuesto un nuevo paso adelante en el desarrollo de herramientas deprogramacin para robots comerciales.
Muy similar a lenguajes de programacin de propsito general de altonivel (Basic, Pascal, C)
RAPID constituye un lenguaje de programacin textual de alto nivelque 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.
7/24/2019 SR T6 ProgramacinRobots
21/68
21Sistemas Robotizados. Programacin de Robots
Lenguaje de programacin RAPID
Un programa escrito en RAPID consiste en una serie de instruccionesque 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.
7/24/2019 SR T6 ProgramacinRobots
22/68
22Sistemas Robotizados. Programacin de Robots
Lenguaje de programacin RAPID
Los programas desarrollados en RAPID se denominan tareas eincluyen el programa con varios mdulos de sistema, mdulos quecontienen rutinas y datos de tipo general, etc.
El programa puede ser dividido en varios mdulos, y cada uno de esosmdulos puede contener submdulos de datos, rutinas de ejecucin,etc.
La definicin de mdulos se realizaespecificando su nombre y susatributos.
Es un lenguaje muy estructurado.
7/24/2019 SR T6 ProgramacinRobots
23/68
23Sistemas Robotizados. Programacin de Robots
Lenguaje de programacin RAPID
7/24/2019 SR T6 ProgramacinRobots
24/68
24Sistemas Robotizados. Programacin de Robots
Lenguaje de programacin RAPID
Existen tres tipos de rutinas o subprogramas diferentes:
Procedimiento:Se trata de una rutina que no devuelve ningn valor y seutiliza como si fuera una instruccin.
Funcin:Es una rutina que devuelve un dato especfico y se utiliza comouna expresin
Rutina TRAP:Son rutinas que se asocian a interrupciones y se ejecutancuando 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.
7/24/2019 SR T6 ProgramacinRobots
25/68
25Sistemas Robotizados. Programacin de Robots
Ejemplo de instruccin RAPID
MoveL p1, v100, z10, tool1;
instruccin parmetros
movimiento enlnea recta
puntode
destino
velocidad precisinherramienta definida
7/24/2019 SR T6 ProgramacinRobots
26/68
26Sistemas Robotizados. Programacin de Robots
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; es necesario especificar, adems del punto de destinop1, un punto de paso intermedio p0 que servir para definir la curvatura.
MoveJ p1, v100, z10, tool1;
7/24/2019 SR T6 ProgramacinRobots
27/68
27Sistemas Robotizados. Programacin de Robots
Instrucciones principales de RAPID II
PARMETROS DE LAS INSTRUCCIONES DE MOVIMIENTO:
Posiciones de destino p1 y p0:
Dato tipo RobTarget:especifica posicin y orientacin unvocamente.
Velocidad v100: Dato tipo SpeedData:indica velocidad deseada de traslacin y de rotacin.
Precisin z10: 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 ejercerpor los motores del robot
7/24/2019 SR T6 ProgramacinRobots
28/68
28Sistemas Robotizados. Programacin de Robots
Instrucciones principales de RAPID II
7/24/2019 SR T6 ProgramacinRobots
29/68
29Sistemas Robotizados. Programacin de Robots
Instrucciones principales de RAPID II
7/24/2019 SR T6 ProgramacinRobots
30/68
30Sistemas Robotizados. Programacin de Robots
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
7/24/2019 SR T6 ProgramacinRobots
31/68
31Sistemas Robotizados. Programacin de Robots
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 unaexpresin, 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)
7/24/2019 SR T6 ProgramacinRobots
32/68
32Sistemas Robotizados. Programacin de Robots
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 secumpla una cierta condicin.
GOTO: salto incondicional a una determinada instruccin.
IF ... THEN ... ELSE ... ENDIF: ejecuta un conjunto de instrucciones slosi se cumple una cierta condicin.
TEST/CASE: ejecuta unas u otras instrucciones en funcin del valor de undato (similar al switch/case del lenguaje C).
7/24/2019 SR T6 ProgramacinRobots
33/68
33Sistemas Robotizados. Programacin de Robots
Variables y expresiones en RAPID (I)
La variables y constantes en RAPID se denominan datos.
Definicin de un dato: alcance, persistenciay tipo:
Asignacin de valores a los datos: operador :=posicion_robot:= [0.0, 0.0, 0.0];
LOCAL VAR pos posicion_robot
alcancelocal persistenciavariable dato tipoposicin nombredato
7/24/2019 SR T6 ProgramacinRobots
34/68
34Sistemas Robotizados. Programacin de Robots
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.
7/24/2019 SR T6 ProgramacinRobots
35/68
35Sistemas Robotizados. Programacin de Robots
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 4valores numricos (Q1, Q2, Q3, Q4)
ConfData: configuracin del robot. Indica los cuadrantes en los que seencuentran los ejes 1, 4, 6 y 5 del robot. Vector de 4 valores numricos(conf1, conf2, conf3, conf4).
Variables y expresiones en RAPID (III)
7/24/2019 SR T6 ProgramacinRobots
36/68
36Sistemas Robotizados. Programacin de Robots
Variables y expresiones en RAPID (III)ConfData
ConfData: Se utiliza para resolver las ambigedadesque se producencuando una determinada posicin y orientacin es alcanzable con ms de unacombinacin de valores para las articulaciones.
7/24/2019 SR T6 ProgramacinRobots
37/68
37Sistemas Robotizados. Programacin de Robots
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).
i bl i ( )
7/24/2019 SR T6 ProgramacinRobots
38/68
38Sistemas Robotizados. Programacin de Robots
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 antesde 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.
Variables y expresiones en RAPID (V)
7/24/2019 SR T6 ProgramacinRobots
39/68
39Sistemas Robotizados. Programacin de Robots
Variables y expresiones en RAPID (V)ZoneData
ZoneData:
Variables y expresiones en RAPID (V)
7/24/2019 SR T6 ProgramacinRobots
40/68
40Sistemas Robotizados. Programacin de Robots
Variables y expresiones en RAPID (V)ZoneData
ZoneData Diferencia punto de paso / punto de paro
Variables y expresiones en RAPID (VI)
7/24/2019 SR T6 ProgramacinRobots
41/68
41Sistemas Robotizados. Programacin de Robots
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 laherramienta) como la carga (peso, centro de gravedad y momentos deinercia).
LoadData:pieza manipulada por el robot.
Se especifican el peso, el centro de gravedad y los momentos de inercia.
Resumen programacin RAPID (VI)
7/24/2019 SR T6 ProgramacinRobots
42/68
42Sistemas Robotizados. Programacin de Robots
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.
ConfL Monitoriza la configuracindurante movimiento lineal.
Decr Decrementa en 1.
EXIT Termina la ejecucin del programa.
FOR Repite un nmero de veces.
GOTO Ir a una nueva instruccin.
IF Si se cumple una condicin,entonces
Incr Incrementa en 1.
InvertDo Invierte el valor de una salidadigital.
MoveC Mueve el robot haciendo unmovimiento circular.
MoveJ Mueve el robot haciendo unmovimiento articular.
MoveL Mueve el robot haciendo unmovimiento lineal.
PulseDo Genera un pulso en una sealdigital.
Reset Resetea una salida digital.
RETURN Termina la ejecucin de una rutina.
Set Activa una salida digital.
SetDO Cambia el valor de una salidadigital.
Stop Para la ejecucin de un programa.
WaitDI Espera hasta que se active unaentrada digital.
WaitTime Espera un tiempo determinado.WaitUntil Espera una condicin.
WHILE Repetir mientras se cumpla unacondicin
Introduccin de programas en el robot
7/24/2019 SR T6 ProgramacinRobots
43/68
43Sistemas Robotizados. Programacin de Robots
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 deljoystick).
Se crea una instruccin de programa para cada posicin indicadamanualmente, 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 unprograma utilizando el lenguaje RAPID.
Ventajas: facilidad para introducir modificaciones o revisar.
Programacin desde la paleta (I)
7/24/2019 SR T6 ProgramacinRobots
44/68
44Sistemas Robotizados. Programacin de Robots
FlexPendant
Programacin desde la paleta (II)
7/24/2019 SR T6 ProgramacinRobots
45/68
45Sistemas Robotizados. Programacin de Robots
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 (mximosobre 3 de los ejes simultneamente).
Programacin desde la paleta (III)
7/24/2019 SR T6 ProgramacinRobots
46/68
46Sistemas Robotizados. Programacin de Robots
FlexPendant
FlexPendant ExplorerFlexPendant Ventana principal
Programacin desde la paleta (IV)
7/24/2019 SR T6 ProgramacinRobots
47/68
47Sistemas Robotizados. Programacin de Robots
FlexPendant
FlexPendant Editor de programas
Programacin desde PC
7/24/2019 SR T6 ProgramacinRobots
48/68
48Sistemas Robotizados. Programacin de Robots
Programacin desde PC
Cdigo del programa, siempre estructurado en mdulos:
%%%%Cabecera%%%%
MODULE MainModule
Definicin de variables
Definicin de rutinas
Programa principal
ENDMODULE
Ejemplo Programacin RAPID (I)
7/24/2019 SR T6 ProgramacinRobots
49/68
49Sistemas Robotizados. Programacin de Robots
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;
VAR num area;
PROC main()
length := 10;
width := 5;
area := length * width;
TPWrite "The area of the rectangle is " \Num:=area;
END PROC
ENDMODULE
Definicindevariables
Programaprincipal
Ejemplo Programacin RAPID (II)T d d
7/24/2019 SR T6 ProgramacinRobots
50/68
50Sistemas Robotizados. Programacin de Robots
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.
Ejemplo Programacin RAPID (III)Trazar un cuadrado
7/24/2019 SR T6 ProgramacinRobots
51/68
51Sistemas Robotizados. Programacin de Robots
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
Ejemplo Programacin RAPID (IV)Trazar un cuadrado con zonas de esquina
7/24/2019 SR T6 ProgramacinRobots
52/68
52Sistemas Robotizados. Programacin de Robots
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
Ejemplo Programacin RAPID (V)Trazar un cuadrado con zonas de esquina
7/24/2019 SR T6 ProgramacinRobots
53/68
53Sistemas Robotizados. Programacin de Robots
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
Trazar un cuadrado con zonas de esquina
Ejemplo Programacin RAPID (VI)Clula robotizada de inspeccin
7/24/2019 SR T6 ProgramacinRobots
54/68
54Sistemas Robotizados. Programacin de Robots
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 piezadefectuosa, para la cinta, retira la pieza defectuosa, vuelve a activar la cinta yvuelve a su posicin de reposo
Ejemplo Programacin RAPID (VII)Clula robotizada de inspeccin
7/24/2019 SR T6 ProgramacinRobots
55/68
55Sistemas Robotizados. Programacin de Robots
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
Ejemplo Programacin RAPID (VIII)Clula robotizada de inspeccin
7/24/2019 SR T6 ProgramacinRobots
56/68
56Sistemas Robotizados. Programacin de Robots
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 transportarPERS 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 recogerpieza
VAR robtarget conf_espera : = [[600,500,225],[1,0,0,0],[1,1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
Ejemplo Programacin RAPID (IX)Clula robotizada de inspeccin
7/24/2019 SR T6 ProgramacinRobots
57/68
57Sistemas Robotizados. Programacin de Robots
Clula robotizada de inspeccin
RUTINA DE CONTROL DE LA PINZA
PROC Coger()
Set pinza %Cerrar la pinza activando la seal digital pinzaWaitTime 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 segundosGripLoad LOAD0 %Sealar que no hay pieza cogida
ENDPROC
Ejemplo Programacin RAPID (X)Clula robotizada de inspeccin
7/24/2019 SR T6 ProgramacinRobots
58/68
58Sistemas Robotizados. Programacin de Robots
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 encoordenadas 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 precisinMOVEL*, V150, FINE, herramienta %Bajar con precisin mxima
Coger %Coger la pieza
MOVEL*, V200, z20, herramienta %Subir con la pieza cogidaENDPROC
Ejemplo Programacin RAPID (XI)Clula robotizada de inspeccin
7/24/2019 SR T6 ProgramacinRobots
59/68
59Sistemas Robotizados. Programacin de Robots
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
Ejemplo Programacin RAPID (XII)Clula robotizada de inspeccin
7/24/2019 SR T6 ProgramacinRobots
60/68
60Sistemas Robotizados. Programacin de Robots
p
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
Ejemplo Programacin RAPID (XIII)Clula robotizada de inspeccin
7/24/2019 SR T6 ProgramacinRobots
61/68
61Sistemas Robotizados. Programacin de Robots
p
PROGRAMA PRINCIPALRealizacin prctica de la aplicacin
PROC main()
Ir-position-espera; %Mover a posicin de esperaWHILE 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 esperaENDIF
ENDWHILE
ENDPROC C
Lenguaje de programacin V+
7/24/2019 SR T6 ProgramacinRobots
62/68
62Sistemas Robotizados. Programacin de Robots
V+ es un lenguaje de programacin textual de alto nivel, desarrolladoen 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)
Lenguaje de programacin V+
7/24/2019 SR T6 ProgramacinRobots
63/68
63Sistemas Robotizados. Programacin de Robots
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.
Ejemplo de instruccin V+
7/24/2019 SR T6 ProgramacinRobots
64/68
64Sistemas Robotizados. Programacin de Robots
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 recibiro devolver. Tiene el formato:
.PROGRAM nombre (lista de parmetros) El final del programa se indica con una lnea que contiene lainstruccin ".END.
Instrucciones de control V+
7/24/2019 SR T6 ProgramacinRobots
65/68
65Sistemas Robotizados. Programacin de Robots
Resumen de comandos V+ para lacomunicacin (RS232) con el brazo RX-60
7/24/2019 SR T6 ProgramacinRobots
66/68
66Sistemas Robotizados. Programacin de Robots
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 Permite definir un punto utilizando ngulos de articulacin {Jt1Jt6}.
speed %vel 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 driveeje,
grad,% vel
Desplaza el miembroeje el nmero de grados indicado en grad al porcentaje develocidad indicado envelreferido a la velocidad de sistema.
do move a Desplaza el brazo a la posicin indicada en el punto a, definido a travs decoordenadas de posicin/orientacin cartesianas
do move #a Desplaza el brazo a la posicin indicada en el punto #a, definido a travs de ngulosde articulacin.
panic Aborta el movimiento del brazo.
RX-60
7/24/2019 SR T6 ProgramacinRobots
67/68
67Sistemas Robotizados. Programacin de Robots
Bibliografa
7/24/2019 SR T6 ProgramacinRobots
68/68
68Sistemas Robotizados. Programacin de Robots
Barrientos, A., Pen, L. F., Balaguer, C., Aracil, R. Fundamentos deRobtica. 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 porComputador. Universidad Miguel Hernndez.
Manual de RAPID. ABB robotics. http://www.abb.com
Manual de V+. Staubli. http://www.staubli.com