jueves, 24 de octubre de 2019

Programacion Textual

En la programación textual, las acciones que ha de realizar el brazo se especifican mediante las instrucciones de un lenguaje. En esta labor no participa la máquina (off-line). Las trayectorias del manipulador se calculan matemáticamente con gran precisión y se evita el posicionamiento a ojo, muy corriente en la programación gestual.
Los lenguajes de programación textual se encuadran en varios niveles, según se realice la descripción del trabajo del robot. Se relacionan a continuación, en orden creciente de complejidad:

1.    Lenguajes elementales, que controlan directamente el movimiento de las articulaciones del manipulador

2.    Lenguajes dirigidos a posicionar el elemento terminal del manipulador.

3.    Lenguajes orientados hacia el objeto sobre el que opera el sistema.

4.    Lenguajes enfocados a la tarea que realiza el robot.

En una aplicación tal como el ensamblaje de piezas, en la que se requiere una gran precisión, los posicionamientos seleccionados mediante la programación gestual no son suficientes, debiendo ser sustituidos por cálculos más perfectos y por una comunicación con el entorno que rodea al sistema.
En la programación textual, la posibilidad de edición es total. El robot debe intervenir, sólo, en la puesta a punto final.
Según las características del lenguaje, pueden confeccionarse programas de trabajo complejos, con inclusión de saltos condicionales, empleo de bases de datos, posibilidad de creación de módulos operativos intercambiables, capacidad de adaptación a las condiciones del mundo exterior, etc.


Dentro de la programación textual, existen dos grandes  grupos de características netamente diferentes:

Programación textual explícita

En la programación textual explícita, el programa consta de una secuencia de órdenes o instrucciones concretas, que van definiendo con rigor las operaciones necesarias para llevar a cabo la aplicación. Se puede decir que la programación explícita engloba a los lenguajes que definen los movimientos punto por punto, similares a los de la programación gestual, pero bajo la forma de un lenguaje formal. Con este tipo de programación, la labor del tratamiento de las situaciones anormales, colisiones, etc., queda a cargo del programador.

Dentro de la programación explícita, hay dos niveles:

Primer nivel
Los lenguajes del tipo cartesiano utilizan transformaciones homogéneas. Este hecho confiere "popularidad" al programa, independizando a la programación del modelo particular del robot, puesto que un programa confeccionado para uno, en coordenadas cartesianas, puede utilizarse en otro, con diferentes coordenadas, mediante el sistema de transformación correspondiente. Son lenguajes que se parecen al básico, sin poseer una unidad formal y careciendo de estructuras a nivel de datos y de control.Por el contrario, los lenguajes del tipo articular indican los incrementos angulares de las articulaciones. Aunque esta acción es bastante simple para motores de paso a paso y corriente continua, al no tener una referencia general de la posición de las articulaciones con relación al entorno, es difícil relacionar al sistema con piezas móviles, obstáculos, cámaras de TV, etc.
Los lenguajes correspondientes al nivel de movimientos elementales aventaja, principalmente, a los de punto a punto, en la posibilidad de realizar bifurcaciones simples y saltos a subrutinas, así como de tratar informaciones sensoriales.


Segundo nivel
Intenta introducir relaciones entre el objeto y el sistema del robot, para que los lenguajes se desarrollen sobre una estructura formal.
Se puede decir que los lenguajes correspondientes a este tipo de programación adoptan la filosofía del PASCAL. Describen objetos y transformaciones con objetos, disponiendo, muchos de ellos, de una estructura de datos arborescente.
El uso de lenguajes con programación explícita estructurada aumenta la comprensión del programa, reduce el tiempo de edición y simplifica las acciones encaminadas a la consecución de tareas determinadas.
En los lenguajes estructurados, es típico el empleo de las transformaciones de coordenadas, que exigen un cierto nivel de conocimientos. Por este motivo dichos lenguajes no son populares hoy en día.



Programación textual especificativa.

Se trata de una programación del tipo no procesal, en la que el usuario describe las especificaciones de los productos mediante una modelización, al igual que las tareas que hay que realizar sobre ellos.
El sistema informático para la programación textual especificativa ha de disponer del modelo del universo, o mundo donde se encuentra el robot. Este modelo será, normalmente, una base de datos más o menos compleja, según la clase de aplicación, pero que requiere siempre, computadoras potentes para el procesado de una abundante información.
El trabajo de la programación consistirá, simplemente, en la descripción de las tareas a realizar, lo que supone poder llevar a cabo trabajos complicados.
Actualmente, los modelos del universo son del tipo geométrico, no físico.
Dentro de la programación textual especificativa, hay dos clases, según que la orientación del modelo se refiera a los objetos a los objetivos.
Si el modelo se orienta al nivel de los objetos, el lenguaje trabaja con ellos y establece las relaciones entre ellos. La programación se realiza "off-line" y la conexión CAM es posible.
Dada la inevitable imprecisión de los cálculos del ordenador y de las medidas de las piezas, se precisa de una ejecución previa, para ajustar el programa al entorno del robot.
Los lenguajes con un modelo del universo orientado a los objetos son de alto nivel, permitiendo expresar las sentencias en un lenguaje similar al usado comúnmente.
Por otra parte, cuando el modelo se orienta hacia los objetivos, se define el producto final.
La creación de lenguajes de muy alto nivel transferirá una gran parte del trabajo de programación, desde el usuario hasta el sistema informático; éste resolverá la mayoría de los problemas, combinando la Automática y la Inteligencia Artificial.


Imagenes:shorturl.at/IKNSV
                  shorturl.at/kDI69
                  shorturl.at/biWX9

Programación Gestual

La programación gestual consiste en guiar el brazo del robot directamente a lo largo de la trayectoria que debe seguir. Los puntos del camino se graban en memoria y luego se repiten. Este tipo de programación, exige el empleo del manipulador en la fase de enseñanza, o sea, trabaja "on-line".

La programación gestual se subdivide en dos clases:

  • Programación por 
    aprendizaje directo

En el aprendizaje directo, el punto final del brazo se traslada con ayuda de un dispositivo especial colocado en su muñeca, o utilizando un brazo maestro o maniquí, sobre el que se efectúan los desplazamientos que, tras ser memorizados, serán repetidos por el manipulador.
La técnica de aprendizaje directo se utiliza, extensamente, en labores de pintura. El operario conduce la muñeca del manipulador o del brazo maestro, determinando los tramos a recorrer y aquellos en los que la pistola debe expulsar una cierta cantidad de pintura. Con esta programación, los operarios sin conocimientos de "software", pero con experiencia en el trabajo a desarrollar, pueden preparar los programas eficazmente.
La programación por aprendizaje directo tiene pocas posibilidades de edición, ya que, para generar una trayectoria continua, es preciso almacenar o definir una gran cantidad de puntos, cuya reducción origina discontinuidades. El "software" se organiza, aquí, en forma de intérprete.

  • Programación mediante un dispositivo de enseñanza.

La programación mediante un dispositivo de enseñanza, consiste en determinar las acciones y movimientos del brazo manipulador, a través de un elemento especial para este cometido. En este caso, las operaciones ordenadas se sincronizan para conformar el programa de trabajo.
El dispositivo de enseñanza suele estar constituido por botones, teclas, pulsadores, luces indicadoras, ejes giratorios o "joystick".
Dependiendo del algoritmo de control que se utilice, el robot pasa por los puntos finales de la trayectoria enseñada. Hay que tener en cuenta que los dispositivos de enseñanza modernos no sólo permiten controlar los movimientos de las articulaciones del manipulador, sino que pueden, también, generar funciones auxiliares, como:

Selección de velocidades
- Generación de retardos
- Señalización del estado de los sensores
- Borrado y modificación de los puntos de trabajo
- Funciones especiales

Al igual que con la programación directa, en la que se emplea un elemento de enseñanza, el usuario no necesita conocer ningún lenguaje de programación. Simplemente, debe habituarse al empleo de los elementos que constituyen el dispositivo de enseñanza. De esta forma, se pueden editar programas, aunque como es lógico, muy simples.
La estructura del "software" es del tipo intérprete; sin embargo, el sistema operativo que controla el procesador puede poseer rutinas específicas, que suponen la posibilidad de realizar operaciones muy eficientes.
Los lenguajes de programación gestual, además de necesitar al propio robot en la confección del programa, carecen de adaptabilidad en tiempo real con el entorno y no pueden tratar, con facilidad, interacciones de emergencia.

Imagen: shorturl.at/psDIR
              shorturl.at/uGY29
              shorturl.at/izEIV

Programacion usada en robotica

La programación empleada en robótica puede tener un carácter explícito, en el que el operador es el responsable de las acciones de control y de las instrucciones adecuadas que las implementan, o estar basada en la modelación del mundo exterior, cuando se describe la tarea y el entorno.
La programación explícita es la utilizada en las aplicaciones industriales y consta de dos técnicas fundamentales:



Tipos de programación:

Programación gestual

Programación textual
Resultado de imagen para programacion usada en robotica

Imagen: shorturl.at/mEU01
             shorturl.at/moLM0

Gobernabilidad

En las robots controlados por sistemas informáticos necesitan un medio para poder relacionarse, el lenguaje es el medio que utiliza el operador para gobernar su funcionamiento, ya que para su correcta adaptación con la tarea a realizar y la sencillez de manejo, son los factores determinantes del rendimiento obtenido en los robots industriales.
Hay tres maneras de comunicarse con un robot;

  • Reconocimiento de palabras separadas.

Estos sistemas pueden reconocer un conjunto de palabras concretas de un vocabulario muy limitado y en general exigen al usuario una pausa entre las palabras, aunque en la actualidad es posible reconocer las palabras separadas en tiempo real debido a los cada vez más rápidos componentes de las computadoras y algoritmos de procesamiento más eficientes, la utilidad del reconocimiento de palabras separadas para describir la tarea de un robot es bastante limitada.

  • Enseñanza y repetición.


La enseñanza y repetición, también conocido como guiado, es la solución más común utilizada en el presente para los robots industriales. Este método implica enseñar al robot dirigiéndole los movimientos que el usuario desea que realice. La enseñanza y repetición se lleva a cabo normalmente con los siguientes pasos: 
  • Dirigir al robot con un movimiento lento utilizando el control manual para realizar la tarea completa y grabando los ángulos del movimiento del robot en los lugares adecuados para que vuelva a repetir el movimiento 

  • Reproducir y repetir el movimiento enseñado 

  • Si el movimiento enseñado es correcto, entonces se hace funcionar al robot a la velocidad correcta en el modo repetitivo.

  • Guiar al robot en movimiento lento, puede ser en general llevado a cabo de varias maneras: usando un joystick, un conjunto de botones (uno para cada movimiento) o un sistema de manipulación maestro-esclavo.

  • Lenguajes de programación de alto nivel.
  •    

Los lenguajes de programación de alto nivel suministran una solución más general para resolver el problema de comunicación hombre-robot. En la década anterior, los robots fueron utilizados con éxito en áreas tales como soldadura por arco voltaico o pintura con spray utilizando el guiado. 
Estas tareas no requieren interacción entre el robot y su entorno y pueden ser programadas fácilmente por guiado. Sin embargo, la utilización de robots para llevar a cabo las tareas requieren técnicas de programación en lenguajes de alto nivel ya que el robot de la línea de producción suele confiar en la realimentación de los sensores y este tipo de interacción sólo puede solo puede ser mantenida por métodos de programación que contengan condiciones.

Resultado de imagen para Lenguajes de programación de alto nivel.

Imagen: shorturl.at/delKW
              http://www.measurecontrol.com/wp-content/uploads/2009/08/robot_ABB.jpg

miércoles, 23 de octubre de 2019

Autonomia de los robots

En la actualidad la Autonomía y la Robótica se consideran como la solución idónea para tareas 3D: «Dull, Difficult and Dangerous» (es decir tareas tediosas, difíciles y peligrosas) en el campo espacial. Los robots ya sustituyen a los astronautas en tareas que requieren mucho tiempo o que son repetitivas y que implican la manipulación de grandes masas con gran precisión. Incluso, el uso de robots podría permitir la realización de actividades no abordadas por seres humanos (mantenimiento de satélites, recogida de muestras en planetas, exploración espacial in-situ). En este contexto, la autonomía, entendida como la independencia del robot con respecto al control humano, es una característica clave de esos sistemas. El operador humano puede encontrarse a miles de kilómetros del sistema robótico y el robot debe poder reaccionar frente a un entorno hostil o en continuo cambio.
Partiendo de tecnologías espaciales de GNC, GMV está trasladando su conocimiento y experiencia a las áreas principales de la robótica (autonomía con utilización de técnicas de inteligencia artificial como planificación, programación y multiagentes, planificación de trayecto y control de las ruedas para navegación de rovers, manipulación y aprehensión con brazos robóticos, percepción del entorno por medio de láser, esterovisión y dispositivos de tiempo de vuelo)
Éstas son algunas de las capacidades actuales de GMV en el ámbito de la autonomía y la robótica:
  • Autonomía: técnicas de Inteligencia Artificial como las de planificación, programación y multiagentes. Dedica especial atención a los sistemas robóticos y satélites que requieran características cognitivas avanzadas al tiempo que genera software blindado de una forma automatizada (paradigma "correcto por construcción").
  • GMV ha desarrollado también, dentro de un proyecto de la ESA, un controlador autónomo de uso general (GOAC) como plataforma genérica aplicable a una amplia variedad de aplicaciones robóticas espaciales para la ESA. Esta plataforma espacial proporciona capacidades de Inteligencia Artificial basadas en el paradigma intercalado "ejecución con planificación", construida a partir del marco robótico GenoM mejorado con técnicas "correcto por construcción".
  • Diseño y construcción del rover: GMV ha desarrollado diversos rovers como plataformas de demostración o como aplicación de tecnologías robóticas:
    • MoonHound, en colaboración con el UPM-CAR (Centro para la Automatización y la Robótica).
    • EGP-Rover, rover autónomo de cuatro ruedas, con navegación basada en estereovisión para que sirva como plataforma de movilidad a TAS-I para el alojamiento de otros dos brazos robóticos y la demostración del concepto "centauro".
    • LRM rover, plataforma de 60 kilos para teleoperación sobre un escenario lunar.
    • Rover virtual del tipo Exomars que utiliza el simulador 3DROV como robot autónomo orientado a un objetivo.
  • Navegación robótica: la navegación robótica comienza con la percepción del entorno a través de sensores exterioceptivos (láser, estereovisión, tiempo de vuelo), modelización del entorno, localización utilizando técnicas de fusión de datos de sensores de navegación (IMU, giroscopio, inclinómetros) y control de movimiento mediante capacidades de planificación de trayectoria.
  • Manipulación robótica: control de brazos robóticos (KUKA, Mitsubishi) en condiciones de tiempo real, cinemática directa e inversa, planificación motora, captación de objetos, presentación visual (VS) y recogida de muestras

Arquitectura de los robots

ARQUITECTURAS DE LOS ROBOTS

La arquitectura, definida por el tipo de configuración general del robot, puede se metamórfica. El concepto de metamorfismo, de reciente aparición, se ha introducido para incrementar la flexibilidad funcional de un robot a través del cambio de su configuración por el propio robot. El metamorfismo admite diversos niveles, desde los más elementales -cambio de herramienta o de efector terminal-, hasta los más complejos como el cambio o alteración de algunos de sus elementos o subsistemas estructurales.
Los dispositivos y mecanismos que pueden agruparse bajo la denominación genérica del robot, tal como se ha indicado, son muy diversos y es por tanto difícil establecer una clasificación coherente de los mismos que resista un analisis critico y riguroso. La subdivisión de los robots, con base en su arquitectura, se hace en los siguientes grupos: Poliarticulados, Móviles, Androides, Zoomórficos e Híbridos.


Poliarticulados.-

Bajo este grupo están los robots de muy diversa forma y configuración cuya característica común es la de ser básicamente sedentarios -aunque excepcionalmente pueden ser guiados para efectuar desplazamientos limitados- y estar estructurados para mover sus elementos terminales en un determinado espacio de trabajo según uno o más sistemas de coordenadas y con un número limitado de grados de libertad". En este grupo se encuentran los manipuladores, los robots industriales, los robots cartesianos y algunos robots industriales y se emplean cuando es preciso abarcar una zona de trabajo relativamente amplia o alargada, actuar sobre objetos con un plano de simetría vertical o deducir el espacio ocupado en el suelo.


Móviles.-

Son robots con gran capacidad de desplazamiento, basada en carros o plataformas y dotada de un sistema locomotor de tipo rodante. Siguen su camino por telemando o guiándose por la información recibida de su entorno a través de sus sensores.
Las tortugas motorizadas diseñadas en los años cincuentas, fueron las precursoras y sirvieron de base a los estudios sobre inteligencia artificial desarrollados entre 1965 y 1973 en la Universidad de Stranford.
Estos robots aseguran el transporte de piezas de un punto a otro de una cadena de fabricación. Guiados mediante pistas materializadas a través de la radiación electromagnética de circuitos empotrados en el suelo, o a través de bandas detectadas fotoeléctricamente, pueden incluso llegar a sortear obstáculos y están dotados de un nivel relativamente elevado de inteligencia.




Androides.-

Son robots que intentan reproducir total o parcialmente la forma y el comportamiento cinemática del ser humano. Actualmente los androides son todavía dispositivos muy poco evolucionados y sin utilidad práctica, y destinados, fundamentalmente, al estudio y experimentación.

Uno de los aspectos más complejos de estos robots, y sobre el que se centra la mayoría de los trabajos, es el de la locomoción bípeda. En este caso, el principal problema es controlar dinámica y coordinadamente en el tiempo real el proceso y mantener simultáneamente el equilibrio del robot.


Zoomórficos.-

Los robots zoomórficos, que considerados en sentido no restrictivo podrían incluir también a los androides, constituyen una clase caracterizada principalmente por sus sistemas de locomoción que imitan a los diversos seres vivos.
A pesar de la disparidad morfológica de sus posibles sistemas de locomoción es conveniente agrupar a los robots zoomórficos en dos categorías principales: caminadores y no caminadores. El grupo de los robots zoomórficos no caminadores está muy poco evolucionado. Cabe destacar, entre otros, los experimentados efectuados en Japón basados en segmentos cilíndricos biselados acoplados axialmente entre si y dotados de un movimiento relativo de rotación. En cambio, los robots zoomórficos caminadores multipedos son muy numeroso y están siendo experimentados en diversos laboratorios con vistas al desarrollo posterior de verdaderos vehículos terrenos, piloteando o autónomos, capaces de evolucionar en superficies muy accidentadas. Las aplicaciones de estos robots serán interesantes en el campo de la exploración espacial y en el estudio de los volcanes.


Híbridos.-

Estos robots corresponden a aquellos de difícil clasificación cuya estructura se sitúa en combinación con alguna de las anteriores ya expuestas, bien sea por conjunción o por yuxtaposición. Por ejemplo, un dispositivo segmentado articulado y con ruedas, es al mismo tiempo uno de los atributos de los robots móviles y de los robots zoomórficos. De igual forma pueden considerarse híbridos algunos robots formados por la yuxtaposición de un cuerpo formado por un carro móvil y de un brazo semejante al de los robots industriales. En parecida situación se encuentran algunos robots antropomorfos y que no pueden clasificarse ni como móviles ni como androides, tal es el caso de los robots personales.








Fuente:http://informecatronica-robotica.blogspot.com/p/arquitecturas-de-los-robots.html


Sistemas Sensoriales

Los sensores son dispositivos físicos que miden cantidades físicas, tales como distancia, luz, sonido, olor, temperatura, etc. El objetivo de lossensores es permitir que los robots puedan recibir y percibir información desde el mundo que los rodea. Su función es similar a la de nuestros sentidos, con el cual logramos luego de un proceso poder interactuar con nuestro medio,
Desde los comienzos de la robótica, los robots han ido evolucionando en su nivel de complejidad, derivando de todo ello un proceso de clasificación de los mismos.
La clave de esta adaptación de los robots a un entorno y trabajos cambiantes la tiene la utilización de captadores en la estructura del robot y son precisamente todos estos captadores los que conforman el sistema sensorial del robot.
La evolución de la robótica está sujeta al desarrollo de nuevos captadores capaces de medir magnitudes que hasta ahora no somos capaces de cuantificar, y en la mejora de los sensores, siendo estos cada vez más precisos en sus medidas. Por ello, la investigación en el campo del desarrollo de sensores, es de vital importancia en el mundo de la robótica.
Los puntos más importantes en los sensores son:
  •      Campo de vista
  •       Rango de operación
  •       Exactitud y resolución
  •       Velocidad de muestreo
  •       Requerimientos computacionales
  •       Potencia, peso y tamaño
  •       Robustez
  •      Sensibilidad


Los sensores se clasifican en;



Sensores Internos


      Sensores de presencia
Este tipo de sensor es capaz de detectar la presencia de un objeto dentro de un radio de acción determinado. Esta detección puede hacerse con o sin contacto con el objeto. En el segundo caso se utilizan diferentes principios físicos para detectar la presencia, dando lugar a los diferentes tipos de sensores. En el caso de detección con contacto, se trata siempre de un interruptor, normalmente abierto o normalmente cerrado según interese, actuando mecánicamente a través de un vástago u otro dispositivo. Los detectores de presencia se utilizan en robótica principalmente como auxiliares de los detectores de posición, para indicar los límites de las articulaciones y permitir localizar la posición de referencia de cero de éstos en el caso de que sean incrementales.


      Sensores de posición
Para el control de posición angular se emplean fundamentalmente los denominados encoders y resolvers. Los potenciómetros dan bajas prestaciones por lo que no se emplean salvo en contadas ocasiones (robots educacionales, ejes de poca importancia).

      Sensores de Velocidad
La captación de la velocidad se hace necesaria para mejorar el comportamiento dinámico de los actuadores del robot. La información de la velocidad de movimiento de cada actuador se realimenta normalmente a un bucle de control analógico implementado en el propio accionador del elemento motor. No obstante, en las ocasiones en las que el sistema de control del robot lo exija, la velocidad de giro de cada actuador es llevada hasta la unidad de control del robot.



Sensores Externos


          Sensores de Presencia
Por el contrario, los sensores de proximidad suelen tener una salida binaria que indica la presencia de un objeto dentro de un intervalo de distancia especificado. En condiciones normales, los sensores de proximidad se utilizan en robótica para un trabajo en campo cercano en relación a agarrar o evitar un objeto.

·         Sensores inductivos
Los sensores basados en un cambio de inductancia debido a la presencia de un objeto metálico están entre los sensores de proximidad industriales de más frecuente uso.

·         Sensores capacitivos
Los sensores capacitivos son potencialmente capaces (con diversos grados de sensibilidad) de detectar todos los materiales sólidos y líquidos. Como su nombre indica, estos sensores están basados en la detección de un cambio en la capacidad inducido por una superficie que se lleva cerca del elemento sensor.

·         Sensores ópticos
Los sensores de proximidad ópticos son similares a los sensores ultrasónicos en el sentido de que detectan la proximidad de un objeto por su influencia sobre una onda propagadora que se desplaza desde un transmisor hasta un receptor.


         Sensores de Distancia
Un sensor de alcance mide la distancia desde un punto de referencia que suele estar en el propio sensor hasta objetos en el campo de operación del sensor. Los seres humanos estiman la distancia por medio de un procesamiento visual estereográfico. Los sensores de alcance se utilizan para la navegación de robots y para evitar obstáculos, para aplicaciones más detalladas en las que se desean las características de localización y forma en general de objetos en el espacio de trabajo de un robot.

        Sensores de contacto

Estos sensores se utilizan en robótica para obtener información asociada con el contacto entre una mano manipuladora y objetos en el espacio de trabajo.
Cualquier información puede utilizarse, por ejemplo, para la localización y el reconocimiento del objeto, así como para controlar la fuerza ejercida por un manipulador sobre un objeto dado.

·         Sensores binarios
Los sensores binarios son dispositivos de contacto tales como micro interruptores. En la disposición más simple, un conmutador está situado en la superficie interior de cada dedo de una mano de manipulación. Este tipo de detección es de utilidad para determinar si una pieza está presente entre los dedos.

·         Sensores analógicos
Un sensor de contacto analógico es un dispositivo cuya salida es proporcional a una fuerza local. El más simple de estos dispositivos está constituido por una varilla accionada por resorte que esta mecánicamente enlazada con un eje giratorio, de tal manera que el desplazamiento de la varilla debido a una fuerza lateral da lugar a una rotación proporcional del eje.
La rotación se mide luego, de manera continua, utilizando un potenciómetro, o de forma digital, con el uso de una rueda de código. El crecimiento de la constante del resorte proporciona la fuerza que corresponde a un desplazamiento dado.


Fuente:http://informecatronica-robotica.blogspot.com/p/sistemas-sensoriales.html