sábado, 22 de noviembre de 2014

Programación de robots III

El modelo del entorno es la representación que tiene el robot de los objetos con los que interacciona. Normalmente este modelo se limita a características geométricas: posición y orientación de los objetos, y en ocasiones a su forma, dimensiones, peso, etc.

Programación de robots.
Opportunity NASA.



Para definir la posición y orientación de los objetos del modelo, lo más frecuente es asignar a cada objeto de manera solidaria un sistema de referencia, de manera que la posición y orientación de este sistema referidos a un sistema base, normalmente denominado sistema del mundo, definen de manera única a las del objeto.

Algunos modelos del entorno permiten establecer relaciones entre objetos. Estas establecen la posible unión física entre los objetos. Dos objetos pueden ser independientes (el movimiento de uno no afecta al otro) , tener dependencia de unión rígida (el movimiento de uno implica el movimiento del otro y viceversa) o tener una dependencia de unión no rígida (el movimiento de uno implica el de otro pero no al revés). Este modelo relacional, una vez definido es actualizado de manera automática durante la ejecución del programa mediante la estructura arborescente simplificando notablemente la tarea del programador.

Control del movimiento del robot


Indudablemente, un método de programación de robots debe incluir la posibilidad de especificar el movimiento del robot. Además del punto de destino, puede ser necesario especificar el tipo de trayectoria espacial que debe ser realizada, la velocidad media del recorrido o la precisión con que se debe alcanzar el punto de destino. Incluso en ocasiones puede ser necesario indicar si el movimiento debe realizarse en cualquier caso o debe estar condicionado a algún tipo de circunstancia, procedente, por ejemplo de la medida proporcionada por un sensor.

Las trayectorias de un robot pueden ser punto a punto, coordinadas o trayectoria continua, englobando este último caso la línea recta, interpolación circular y otras.
En cuanto a la especificación de la velocidad, suele ser frecuente indicarla en la en la propia instrucción de movimiento como tanto por ciento de una velocidad base definida aparte. De este modo se facilita la alteración de la velocidad de todo tipo de programa o de una parte de él sustituyendo una única instrucción.

En muchas ocasiones, el movimiento del robot en un entorno con obstáculos obliga a la utilización de una trayectoria en línea recta, para así asegurar que el robot no colisione con ninguno de ellos. No obstante, muchos sistemas de programación disponen de los denominados puntos de paso o via points, para resolver este tipo de situaciones. El modo en que una determinada configuración (posición y orientación) se define como punto de paso, está relacionado con la especificación de la precisión con que se desea que el robot alcance dicho punto.

El control (cinemático-dinámico) del robot, recibe las referencias de posición procedentes del programa, no admitiendo una nueva referencia hasta que el extremo del robot no alcanza la referencia en vigor con la precisión indicada. De este modo, si la precisión con la que se desea alcanzar una determinada configuración se define como baja, el extremo del robot se encaminará hacia la configuración siguiente sin haber llegado a la anterior y sin tener que disminuir apenas su velocidad a costa de perder una precisión innecesaria en esos puntos de paso.

Se ha de tener en cuenta también la posibilidad de que el robot al recorrer la trayectoria generada tenga que pasar por un punto singular, ya sea porque los valores de sus ejes no estén definidos  de forma biunívoca o porque alguno de ellos deba alcanzar una velocidad excesiva para mantener la posición, orientación y velocidad deseadas en el extremo. Algunos sistemas permiten especificar qué tipo de interpolación se debe utilizar de forma general durante la ejecución de una trayectoria cuando se ha de pasar por estos puntos singulares.
La consideración de las señales captadas por los sensores de la especificación de los movimientos del robot, puede hacerse a varios niveles. Una primera posibilidad responde a la interrupción del movimiento del robot por verificarse algún tipo de condición externa programada. Esta posibilidad se suele denominar movimiento protegido o monitorizado (guarded motions).

La segunda alternativa implica la modificación del movimiento, en cuanto a la situación de destino o velocidad, según la información captada del entorno. De este modo el movimiento  del extremo del robot queda alterado, adaptándose a las necesidades de un entorno cambiante o parcialmente indeterminado. Estos movimientos se conocen como acomodaticios (compliant motions). En la práctica los movimientos  monitorizados se implementan mediante el uso de interrupciones, mientras que los acomodaticios se realizan mediante el uso de funciones especiales.

Control de flujo de ejecución de un programa


Al igual que cualquier lenguaje de programación de propósito general, un lenguaje de programación de robots ha de permitir al programador especificar de alguna manera un flujo de ejecución de operaciones. Se emplean para ello las estructuras habituales de bucles (for, repeat, while, etc). También es de especial importancia la capacidad de procesamiento en paralelo, tanto para el control de varios robots trabajando conjuntamente bajo las órdenes de un solo programa, como para el control de un único robot en una celda de trabajo cuyos equipos se encuentran igualmente bajo el control del programa robot. Se emplean para ello señales de sincronismo basadas en semáforos y ejecución de tareas en paralelo.

Es importante para la mayoría de las aplicaciones el tener un control de instrucciones mediante las que  distintos equipos en funcionamiento puedan interaccionar con el robot. Se debe poder fijar la prioridad en el tratamiento de las mismas, así como activarlas y desactivarlas durante la ejecución de diversas fases del programa.

No hay comentarios:

Publicar un comentario