stringtranslate.com

Software de robot

El software de un robot es el conjunto de comandos o instrucciones codificadas que le indican a un dispositivo mecánico y a un sistema electrónico, conocidos en conjunto como robot , qué tareas debe realizar. El software de un robot se utiliza para realizar tareas autónomas. Se han propuesto muchos sistemas y marcos de software para facilitar la programación de robots.

Algunos programas de robótica tienen como objetivo desarrollar dispositivos mecánicos inteligentes. Las tareas más comunes incluyen bucles de retroalimentación , control , búsqueda de rutas , filtrado de datos, localización y compartición de datos .

Introducción

Si bien se trata de un tipo específico de software, sigue siendo bastante diverso. Cada fabricante tiene su propio software para robots. Si bien la gran mayoría del software se centra en la manipulación de datos y en ver el resultado en la pantalla, el software para robots se utiliza para manipular objetos o herramientas en el mundo real.

Software de robots industriales

El software para robots industriales consta de objetos de datos y listas de instrucciones, conocidas como flujo de programa (lista de instrucciones). Por ejemplo,

Ir a Jig1

Es una instrucción para que el robot vaya a los datos posicionales denominados Jig1. Por supuesto, los programas también pueden contener datos implícitos, por ejemplo

Dígale al eje 1 que se mueva 30 grados.

Los datos y el programa suelen residir en secciones separadas de la memoria del controlador del robot. Se pueden cambiar los datos sin cambiar el programa y viceversa. Por ejemplo, se puede escribir un programa diferente utilizando el mismo Jig1 o se puede ajustar la posición de Jig1 sin cambiar los programas que lo utilizan.

Ejemplos de lenguajes de programación para robots industriales

Debido a la naturaleza altamente patentada del software de los robots , la mayoría de los fabricantes de hardware de robots también proporcionan su propio software. Si bien esto no es inusual en otros sistemas de control automatizado , la falta de estandarización de los métodos de programación para robots plantea ciertos desafíos. Por ejemplo, hay más de 30 fabricantes diferentes de robots industriales , por lo que también se requieren 30 lenguajes de programación de robots diferentes. Hay suficientes similitudes entre los diferentes robots como para que sea posible obtener una comprensión amplia de la programación de robots sin tener que aprender el lenguaje propietario de cada fabricante. [1]

Un método para controlar robots de varios fabricantes es utilizar un postprocesador y un software de programación fuera de línea (robótica) . Con este método, es posible manejar un lenguaje de programación de robots específico de la marca a partir de un lenguaje de programación universal, como Python (lenguaje de programación) . [2] Sin embargo, compilar y cargar un código fuera de línea fijo a un controlador de robot no permite que el sistema robótico esté al tanto del estado, por lo que no puede adaptar su movimiento y recuperarse a medida que cambia el entorno. Actualmente, es posible realizar un control adaptativo unificado en tiempo real para cualquier robot con algunas herramientas de terceros diferentes.

A continuación se muestran algunos ejemplos de lenguajes de programación de robots publicados.

Tarea en lenguaje sencillo:

Muévete a P1 (una posición segura general)Pasar a P2 (una aproximación a P3)Mover a P3 (una posición para recoger el objeto)Pinza cerradaPasar a P4 (una aproximación a P5)Mover a P5 (una posición para colocar el objeto)Pinza abiertaPasar a P1 y terminar

VAL fue uno de los primeros "lenguajes" de robots y se utilizó en los robots Unimate . [3] Otros fabricantes, entre ellos Adept Technology , han utilizado variantes de VAL . Stäubli utiliza actualmente VAL3.

Programa de ejemplo:

PROGRAMA DE RECOGIDA 1. MOVER P1 2. MOVER P2 3. MOVER P3 4. CIERRE 0,00 5. MOVER P4 6. MOVER P5 7. ABRIR 0,00 8. MOVER P1.FIN

Ejemplo de programa VAL3 de Stäubli:

comenzar movej(p1,tGripper,mNomSpeed) movej(appro(p3,trAppro),tGripper,mNomSpeed) movel(p3,tGripper,mNomSpeed) cerrar(tGripper) movej(appro(p5,trAppro),tGripper,mNomSpeed) movel(p5,tGripper,mNomSpeed) abierto(tGripper) movej(p1,tGripper,mNomSpeed)fin

trAppro es una variable de transformación cartesiana. Si la utilizamos con el comando appro, no necesitamos enseñarle a P2 el punto P4, sino que transformamos dinámicamente una aproximación a la posición de selección y ubicación para la generación de trayectoria.

Epson RC+ (ejemplo de una aspiradora)

Función PickPlace Salto P1 Salto P2 Salto P3 Al vacío Espera .1 Salto P4 Salto P5 Fuera de vacío Espera .1 Salto P1Defenderse

ROBOFORTH (un lenguaje basado en FORTH ).

: RECOGER LUGAR P1 P3 AGARRE RETIRAR P5 DESAGÜE RETIRAR P1 ;     

(Con Roboforth puedes especificar posiciones de aproximación para lugares de modo que no necesites P2 y P4).

Claramente, el robot no debe continuar con el siguiente movimiento hasta que la pinza esté completamente cerrada. La confirmación o el tiempo permitido están implícitos en los ejemplos anteriores de CLOSEI y GRIP, mientras que el comando de encendido del vacío requiere un retraso de tiempo para garantizar una succión satisfactoria.

Otros lenguajes de programación de robots

Lenguaje de programación visual

El lenguaje de programación LEGO Mindstorms EV3 es un lenguaje sencillo con el que los usuarios pueden interactuar. Es una interfaz gráfica de usuario (GUI) escrita con LabVIEW . El enfoque es comenzar con el programa en lugar de con los datos. El programa se construye arrastrando íconos al área del programa y agregando o insertando en la secuencia. Para cada ícono, se especifican los parámetros (datos). Por ejemplo, para el ícono de accionamiento del motor, se especifican qué motores se mueven y cuánto se mueven. Cuando se escribe el programa, se descarga en el "bloque" Lego NXT (microcontrolador) para probarlo.

Lenguajes de script

Un lenguaje de script es un lenguaje de programación de alto nivel que se utiliza para controlar la aplicación de software y se interpreta en tiempo real o se "traduce sobre la marcha", en lugar de compilarse con antelación. Un lenguaje de script puede ser un lenguaje de programación de propósito general o puede estar limitado a funciones específicas que se utilizan para aumentar la ejecución de una aplicación o un programa del sistema. Algunos lenguajes de script, como RoboLogix , tienen objetos de datos que residen en registros y el flujo del programa representa la lista de instrucciones, o conjunto de instrucciones , que se utiliza para programar el robot.

Los lenguajes de programación están generalmente diseñados para construir estructuras de datos y algoritmos desde cero, mientras que los lenguajes de scripting están pensados ​​más para conectar o “pegar” componentes e instrucciones. En consecuencia, el conjunto de instrucciones del lenguaje de scripting suele ser una lista simplificada de comandos de programa que se utilizan para simplificar el proceso de programación y permitir un rápido desarrollo de aplicaciones.

Lenguajes paralelos

Cabe mencionar otro enfoque interesante. Todas las aplicaciones robóticas necesitan paralelismo y programación basada en eventos. El paralelismo es cuando el robot hace dos o más cosas al mismo tiempo. Esto requiere hardware y software adecuados. La mayoría de los lenguajes de programación se basan en subprocesos o clases de abstracción complejas para gestionar el paralelismo y la complejidad que conlleva, como el acceso simultáneo a recursos compartidos. URBI proporciona un mayor nivel de abstracción al integrar el paralelismo y los eventos en el núcleo de la semántica del lenguaje.

 siempre que ( cara . visible )  {  headPan . val  +=  cámara . xfov  *  cara . x  &  headTilt . val  +=  cámara . yfov  *  cara . y  }

El código anterior moverá los motores headPany headTilten paralelo para hacer que la cabeza del robot siga el rostro humano visible en el video tomado por su cámara cada vez que el robot vea un rostro.

Software de aplicación de robots

Independientemente del lenguaje que se utilice, el resultado del software de robots es la creación de aplicaciones robóticas que ayudan o entretienen a las personas. Las aplicaciones incluyen software de comando y control y de asignación de tareas. El software de comando y control incluye GUI de control de robots para robots teleoperados, software de comando de apuntar y hacer clic para robots autónomos y software de programación para robots móviles en fábricas. El software de asignación de tareas incluye interfaces simples de arrastrar y soltar para configurar rutas de entrega, patrullas de seguridad y recorridos para visitantes; también incluye programas personalizados escritos para implementar aplicaciones específicas. El software de aplicación de robots de propósito general se implementa en plataformas robóticas ampliamente distribuidas.

Consideraciones de seguridad

Los errores de programación representan un serio problema de seguridad, en particular en los robots industriales de gran tamaño. La potencia y el tamaño de los robots industriales hacen que puedan causar lesiones graves si se programan incorrectamente o se utilizan de forma insegura. Debido a la masa y las altas velocidades de los robots industriales, siempre es peligroso que un humano permanezca en el área de trabajo del robot durante el funcionamiento automático. El sistema puede comenzar a moverse en momentos inesperados y un humano no podrá reaccionar con la suficiente rapidez en muchas situaciones, incluso si está preparado para hacerlo. Por lo tanto, incluso si el software está libre de errores de programación, se debe tener mucho cuidado para que un robot industrial sea seguro para los trabajadores humanos o la interacción humana, como la carga o descarga de piezas, la eliminación de un atasco de piezas o la realización de tareas de mantenimiento. El libro ANSI/RIA R15.06-1999 American National Standard for Industrial Robots and Robot Systems - Safety Requirements (revisión de ANSI/R15.06-1992) de la Asociación de Industrias Robóticas es el estándar aceptado sobre seguridad de los robots. Esto incluye pautas tanto para el diseño de robots industriales como para la implementación o integración y el uso de robots industriales en la planta de producción. Se cubren numerosos conceptos de seguridad, como controladores de seguridad, velocidad máxima durante un modo de aprendizaje y uso de barreras físicas.

Véase también

Referencias

  1. ^ "El futuro de la programación de robots fuera de línea". Blog de CoRo . 25 de octubre de 2015. Consultado el 3 de enero de 2017 .
  2. ^ RoboDK. "Programación sin conexión - RoboDK". www.robodk.com . Consultado el 3 de enero de 2017 .
  3. ^ O. Nnaji, Bartholomew (1993). Teoría del ensamblaje y programación automática de robots (edición de 1993). Springer. pág. 5. ISBN 978-0412393105. Recuperado el 8 de febrero de 2015 .
  4. ^ "Lenguajes de programación de robots". Fabryka robotów . Consultado el 8 de febrero de 2015 .

Enlaces externos