El software de robot es el conjunto de comandos o instrucciones codificados que le indican a un dispositivo mecánico y a un sistema electrónico, conocidos en conjunto como robot , qué tareas realizar. El software del 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 robots tienen como objetivo desarrollar dispositivos mecánicos inteligentes. Las tareas comunes incluyen bucles de retroalimentación , control , búsqueda de rutas , filtrado de datos, localización y uso compartido de datos .
Introducción
Si bien es un tipo específico de software, sigue siendo bastante diverso. Cada fabricante tiene su propio software de robot. Si bien la gran mayoría del software se trata de la manipulación de datos y ver el resultado en la pantalla, el software de robot es para la manipulación de objetos o herramientas en el mundo real.
Software de robot industrial
El software para robots industriales consta de objetos de datos y listas de instrucciones, conocido como flujo de programa (lista de instrucciones). Por ejemplo,
Ir a Jig1
es una instrucción para que el robot vaya a los datos de posición denominados Jig1. Por supuesto, los programas también pueden contener datos implícitos, por ejemplo
Indique al eje 1 que se mueva 30 grados.
Los datos y el programa normalmente residen 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 usando el mismo Jig1 o se puede ajustar la posición de Jig1 sin cambiar los programas que lo usan.
Ejemplos de lenguajes de programación para robots industriales
Debido a la naturaleza altamente patentada del software de robot , la mayoría de los fabricantes de hardware de robot también proporcionan su propio software. Si bien esto no es inusual en otros sistemas de control automatizados , 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. Existen suficientes similitudes entre los diferentes robots que es 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 software de posprocesador y programación fuera de línea (robótica) . Con este método, es posible manejar un lenguaje de programación de robot específico de una marca desde un lenguaje de programación universal, como Python (lenguaje de programación) . [2] sin embargo, compilar y cargar código fijo fuera de línea a un controlador de robot no permite que el sistema robótico sea consciente del estado, por lo que no puede adaptar su movimiento y recuperarse a medida que cambia el entorno. El control adaptativo unificado en tiempo real para cualquier robot es posible actualmente con algunas herramientas de terceros diferentes.
A continuación se muestran algunos ejemplos de lenguajes de programación de robots publicados.
Tarea en inglés sencillo:
Mover a P1 (una posición segura general)Mover a P2 (una aproximación a P3)Mover a P3 (una posición para elegir el objeto)Cerrar pinzaMover a P4 (una aproximación a P5)Mover a P5 (una posición para colocar el objeto)Pinza abiertaMover a P1 y terminar
VAL fue uno de los primeros 'lenguajes' de robots y se utilizó en robots Unimate . [3] Otros fabricantes, incluida Adept Technology, han utilizado variantes de VAL . Stäubli actualmente usa VAL3.
Programa de ejemplo:
LUGAR DE RECOGIDA DEL PROGRAMA 1. MOVER P1 2. MOVER P2 3. MOVER P3 4. CERRARI 0.00 5. MOVER P4 6. MOVER P5 7. OPENI 0.00 8. MOVER P1.FINAL
Ejemplo de programa Stäubli VAL3:
empezar movej (p1, tGripper, mNomSpeed) movej (apro (p3, trAppro), tGripper, mNomSpeed) movel (p3, tGripper, mNomSpeed) cerrar (tGripper) movej (apro (p5, trAppro), tGripper, mNomSpeed) movel (p5, tGripper, mNomSpeed) abierto (tGripper) movej (p1, tGripper, mNomSpeed)final
trAppro es una variable de transformación cartesiana. Si usamos in con el comando Appro, no necesitamos enseñar P2 land P4 point, pero transformamos dinámicamente una aproximación a la posición de pick and place para la generación de trayectorias.
Epson RC + (ejemplo de una aspiradora)
Función PickPlace Saltar P1 Saltar P2 Saltar P3 Al vacío Espere .1 Saltar P4 Saltar P5 Fuera de vacío Espere .1 Saltar P1Defenderse
ROBOFORTH (un lenguaje basado en FORTH ).
: PICKPLACE P1 P3 GRIP RETIRAR P5 UNGRIP RETIRAR P1 ;
(Con Roboforth puede especificar posiciones de aproximación para lugares, por lo que no necesita P2 y P4).
Claramente, el robot no debe continuar el siguiente movimiento hasta que la pinza esté completamente cerrada. La confirmación o el tiempo permitido está implícito en los ejemplos anteriores de CLOSEI y GRIP, mientras que el comando de vacío requiere una demora 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 simple para que sus usuarios interactúen. Es una interfaz gráfica de usuario (GUI) escrita con LabVIEW . El enfoque es comenzar con el programa en lugar de los datos. El programa se construye arrastrando iconos al área del programa y agregando o insertando en la secuencia. Para cada icono, especifique los parámetros (datos). Por ejemplo, para el icono de accionamiento del motor, especifique qué motores y cuánto se mueven. Cuando se escribe el programa, se descarga en el 'ladrillo' (microcontrolador) de Lego NXT para probarlo.
Lenguajes de secuencias de comandos
Un lenguaje de secuencias de comandos 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 "traducido sobre la marcha", en lugar de compilarse por adelantado. Un lenguaje de secuencias de comandos puede ser un lenguaje de programación de propósito general o puede estar limitado a funciones específicas utilizadas para aumentar la ejecución de una aplicación o programa del sistema. Algunos lenguajes de secuencias de comandos, 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.
Marca de robot | Nombre del lenguaje |
---|---|
TEJIDO | RÁPIDO |
Comau | PDL2 |
Fanuc | Karel |
Kawasaki | COMO |
Kuka | KRL |
Stäubli | VAL3 |
Yaskawa | Informar |
Los lenguajes de programación generalmente están 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 secuencias de comandos suele ser una lista simplificada de comandos de programa que se utilizan para simplificar el proceso de programación y proporcionar un desarrollo rápido de la aplicación.
Idiomas paralelos
Otro enfoque interesante es digno de mención. Todas las aplicaciones robóticas necesitan paralelismo y programación basada en eventos. El paralelismo es donde 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 manejar el paralelismo y la complejidad que conlleva, como el acceso concurrente a recursos compartidos. URBI proporciona un mayor nivel de abstracción al integrar paralelismo y 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 headPan
y headTilt
en 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 ve un rostro.
Software de aplicación de robot
Independientemente del idioma que se utilice, el resultado final del software de robot es crear aplicaciones robóticas que ayudan o entretienen a las personas. Las aplicaciones incluyen software de comando y control y tareas. El software de comando y control incluye GUI de control de robot 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 tareas incluye interfaces simples de arrastrar y soltar para configurar rutas de entrega, patrullas de seguridad y recorridos de visitantes; también incluye programas personalizados escritos para implementar aplicaciones específicas. El software de aplicación de robot de propósito general se implementa en plataformas robóticas ampliamente distribuidas.
Consideraciones de seguridad
Los errores de programación representan una seria consideración de seguridad, particularmente en los grandes robots industriales. La potencia y el tamaño de los robots industriales significan que pueden causar lesiones graves si se programan incorrectamente o se usan de manera insegura. Debido a la masa y las altas velocidades de los robots industriales, siempre es peligroso para un ser humano permanecer 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 lo suficientemente rápido en muchas situaciones, incluso si está preparado para hacerlo. Por lo tanto, incluso si el software no tiene errores de programación, se debe tener mucho cuidado para hacer que un robot industrial sea seguro para los trabajadores humanos o la interacción humana, como cargar o descargar piezas, eliminar un atasco de piezas o realizar el 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 Robotic Industries Association es el estándar aceptado sobre seguridad de robots. Esto incluye pautas tanto para el diseño de robots industriales como para la implementación o integración y uso de robots industriales en la fábrica. Se cubren numerosos conceptos de seguridad, como controladores de seguridad, velocidad máxima durante un modo de aprendizaje y uso de barreras físicas.
Ver también
- Robótica basada en el comportamiento y arquitectura de subsunción
- Robótica del desarrollo
- Robótica epigenética
- Robótica evolutiva
- Robot industrial
- Robótica cognitiva
- Control de robot
- RoboLogix
- Planificación y programación automatizadas
- Cibernética
- Inteligencia artificial
- Suite de robótica
- Telerobótica / Telepresencia
- Software de automatización robótica
- Plataformas robóticas Swarm
Referencias
- ^ "El futuro de la programación fuera de línea de robots" . Blog de CoRo . 2015-10-25 . Consultado el 3 de enero de 2017 .
- ^ RoboDK. "Programación sin conexión - RoboDK" . www.robodk.com . Consultado el 3 de enero de 2017 .
- ^ O. Nnaji, Bartholomew (1993). Teoría del ensamblaje y programación automáticos de robots (ed. 1993). Saltador. pag. 5. ISBN 978-0412393105. Consultado el 8 de febrero de 2015 .
- ^ "Lenguajes de programación de robots" . Fabryka robotów . Consultado el 8 de febrero de 2015 .
enlaces externos
- Una revisión de las plataformas de software de robótica en archive.today (archivado el 27 de enero de 2013) Dispositivos Linux.
- ANSI / RIA R15.06-1999 Estándar nacional estadounidense para robots industriales y sistemas de robots - Requisitos de seguridad (revisión de ANSI / RIA R15.06-1992)