lunes, 30 de mayo de 2022

Programación de Robots Industriales. Parte 2.

 Entorno de programación

La programación de un sistema robótico requiere la definición de un entorno de programación soportado por lenguajes adecuados, lo que permite al operador impartir las instrucciones de la tarea que el robot debe ejecutar. El entorno de programación tiene encomendada no solo la función de traducir los comandos mediante un lenguaje adecuado, sino también la función de comprobar la correcta ejecución de una tarea que está siendo ejecutada por el robot. Por tanto, los entornos de programación de robots, además de tener algunas características en común con los entornos de programación de computadoras, presentan una serie de cuestiones relacionadas con la observación de que la ejecución de programas produce efectos en el mundo físico. En otras palabras, incluso si se dispone de una descripción muy precisa de la realidad física en el entorno de programación, inevitablemente se producirán una serie de situaciones que no han sido predichas o no pueden predecirse.

Como consecuencia, un entorno de programación de robots debe estar dotado de las siguientes características:
  • sistema operativo en tiempo real,
  • modelado del mundo,
  • control de movimiento,
  • lectura de datos sensoriales,
  • interacción con el sistema físico,
  • capacidad de detección de errores,
  • recuperación de las funciones operativas correctas,
  • estructura lingüística específica.
Por lo tanto, los requisitos de un entorno de programación pueden provenir naturalmente de la articulación en modelos, del modelo de referencia anterior de arquitectura funcional. Dicho entorno estará claramente condicionado por el nivel de la arquitectura en el que se permite el acceso del operador. A continuación, se presentan los requisitos impuestos al entorno de programación por las funciones que caracterizan respectivamente los módulos sensoriales, de modelado y de decisión, con referencia a los niveles jerárquicos de la arquitectura funcional.

El manejo de datos sensoriales es el factor determinante que califica un entorno de programación. En el nivel del servo, se requiere el acondicionamiento de datos sensoriales propioceptivos en tiempo real. En el nivel primitivo, los datos sensoriales deben expresarse en los marcos de referencia relevantes. En el nivel de la acción, las características geométricas de los objetos interesados en la acción deben extraerse mediante datos sensoriales de alto nivel. A nivel de tarea, se requieren herramientas que permitan el reconocimiento de los objetos presentes en la escena.

La propiocepción es la capacidad que tiene nuestro cerebro de saber la posición exacta de todas las partes de nuestro cuerpo en cada momento. Dicho de otra manera, a nuestro cerebro le llegan diferentes ordenes desde las articulaciones y los músculos de la posición exacta de los mismos. De esta manera, en el sistema propioceptivo se “procesan” todas estas órdenes y se puede saber en qué posición exacta se encuentra nuestro cuerpo en cada momento.

La capacidad de consultar modelos de conocimiento es un soporte para un entorno de programación. En el nivel del servo, el cálculo numérico en línea de los modelos utilizados por los algoritmos de control debe realizarse sobre la base de datos sensoriales. En el nivel primitivo, deben operarse transformaciones de coordenadas. A nivel de acción, es fundamental contar con herramientas que permitan la simulación del sistema y el modelado CAD de objetos elementales. A nivel de tareas, el entorno de programación debe asumir las funciones de un sistema experto.

Las funciones de decisión juegan un papel fundamental en un entorno de programación, ya que permiten la definición de los diagramas de flujo. En el nivel del servo, se requiere capacidad de cálculo en línea para generar las señales de activación del sistema mecánico. En el nivel primitivo, el condicionamiento lógico debe estar presente. En el nivel de acción, las opciones de sincronización de procesos deben estar disponibles para implementar bucles anidados, cálculo paralelo y sistema de interrupciones. A nivel de tarea, el entorno de programación debe permitir la gestión de procesos concurrentes, y debe estar dotado de herramientas para probar, localizar y eliminar errores de un programa (depuradores) a un alto nivel interactivo.

La evolución de los entornos de programación ha estado condicionada por el desarrollo tecnológico de la informática. Un análisis de esta evolución lleva a encontrar tres generaciones de entornos con respecto a sus características funcionales, a saber, enseñanza-mostrando, programación orientada a robots y programación orientada a objetos. En la evolución de los entornos, la próxima generación suele incorporar las características funcionales de la generación anterior.

Esta clasificación se refiere a las características del entorno de programación relativas a la interfaz del operador y, por lo tanto, tiene una correspondencia directa con los niveles jerárquicos del modelo de referencia de la arquitectura funcional. Las funciones asociadas con el nivel de servo conducen a comprender que un problema de entorno de programación realmente no existe para el operador. De hecho, la programación de bajo nivel se refiere al uso de lenguajes de programación tradicionales (Ensamblador, C) para el desarrollo de sistemas en tiempo real. El operador solo tiene la posibilidad de intervenir mediante la activación de un comando simple (punto a punto, reinicio), lectura de datos sensoriales propioceptivos y capacidad de edición limitada.


Figura 1. Entorno de programación de CIROS Robotics V5.0.

Elementos básicos en la programación de robots

La ventaja más grande en la aplicación de robots industriales es su flexibilidad, su habilidad de reprogramación para nuevas producciones y su gran rango de movimientos. Sin embargo, un obstáculo mayor en el uso de manipuladores como máquinas de ensamble universales es la falta de una comunicación adecuada y eficiente entre el usuario y el sistema robótico, de tal modo que el usuario pueda dirigir el manipulador para realizar una determinada tarea. La utilización de la flexibilidad del robot presupone la programación efectiva. 
El sistema de cómputo que controla al manipulador tiene que estar programado para enseñar al robot la secuencia particular de movimientos y otras acciones que tengan que ejecutarse con el fin de lograr su tarea. 
La programación de un robot se puede definir como el proceso mediante el cual se le indica a éste la secuencia de acciones que deberá llevar a cabo durante la realización de su tarea. Estas acciones consisten generalmente en moverse a puntos predefinidos y manipular objetos del entorno.

Objetivo: realizar una tarea, mediante una secuencia de acciones.
  • Movimiento a puntos predefinidos en el espacio de trabajo.
  • Manipulación de objetos.
  • Seguimiento de trayectorias en el espacio. Líneas rectas.
  • Interacción con el entorno. Sincronización con autómatas, máquinas herramienta, cintas transportadoras, etc.
Generalmente, lo que se necesita es situar su punto terminal en una localización determinada del espacio, haciendo además que la dirección de aproximación a la misma esté también definida. Normalmente, es necesario diseñar y programar trayectorias, rectas o curvas arbitrarias en el espacio cartesiano, para lo cual es importante conocer la relación entre la trayectoria cartesiana del punto terminal y la de las articulaciones. 

En el diseño de las trayectorias hay que tener en cuenta factores como:
  • Posibles colisiones con el entorno
  • Si es necesario mantener fija la orientación del extremo
  • La utilización de aceleraciones moderadas, de forma que se eviten fuerzas de inercia elevadas que resulten inadecuadas para los motores.
  • Posibles puntos en los cuales el robot puede ganar o perder Grados de Libertad
Existen determinadas circunstancias que hacen que los lenguajes de programación de robots resulten relativamente diferentes al resto:
  • El entorno en el que actúa el robot no puede describirse normalmente en términos puramente cuantitativos.
  • Se necesitan incluir condiciones no usuales, prevención de colisiones o puntos singulares.
  • Ciertas informaciones de los sensores del sistema pueden ser no solo difíciles de procesar en tiempo real, sino también ambiguas.
Durante la ejecución de un programa se interacciona con la memoria del sistema, leyendo y actualizando el contenido de las variables utilizadas en el programa:
  • Con el sistema de control cinemático y dinámico del robot, encargados de dar la señal de mando a los accionamientos del robot a partir de las especificaciones del movimiento que se les proporciona.
  • Con las entradas-salidas del sistema, logrando la sincronización del robot con el resto de las máquinas y elementos que componen su entorno.
Por lo tanto, el sistema de programación es la herramienta con la cual el usuario puede acceder a las diversas prestaciones del robot.

Programar un robot consiste en indicar, paso por paso, las diferentes acciones (moverse a un punto, abrir o cerrar la pinza, etc.) que éste deberá realizar durante su funcionamiento, la flexibilidad en la aplicación del robot y, por lo tanto, su utilidad van a depender en gran parte de las características de su sistema de programación.

Actualmente no existe normalización en relación a los procedimientos de programación de robots, cada  fabricante desarrolla su método particular, el cual es válido solamente para sus propios robots. Sin embargo, algunos han servido de modelo para el desarrollo de otros, por ejemplo: el lenguaje AL de la Universidad de Stanford.

Bibliografía: 

Siciliano, Bruno & otros. (2010). Robotics. Modelling, Planning and Control. Capítulo 6. Inglaterra: Springer-Verlag London Limited.






No hay comentarios:

Publicar un comentario