SR T6 ProgramaciónRobots

download SR T6 ProgramaciónRobots

of 68

Transcript of SR T6 ProgramaciónRobots

  • 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