27
UNIVERSIDAD TECNOLÓGICA BOLIVIANA CARRERA DE INGENIERÍA ELECTRÓNICA PROGRAMACION DE ROBOTS UNIVERSITARIOS: AHDEMAR WILMER ZEGARRA FLORES RAUL CONDORI YUCRA JUAN CARLOS GUTIERREZ CONDORI DANIEL MAMANI QUISPE YANNICK EVAL BERRIOS MARQUEZ DOCENTE: ING. FELIX PINTO MACEDO

Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

Embed Size (px)

Citation preview

Page 1: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

UNIVERSIDAD TECNOLÓGICA BOLIVIANACARRERA DE INGENIERÍA ELECTRÓNICA

PROGRAMACION DE ROBOTS

UNIVERSITARIOS:

AHDEMAR WILMER ZEGARRA FLORESRAUL CONDORI YUCRA JUAN CARLOS GUTIERREZ CONDORIDANIEL MAMANI QUISPEYANNICK EVAL BERRIOS MARQUEZ

DOCENTE:ING. FELIX PINTO MACEDO

LA PAZ – BOLIVIA

2014

Page 2: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

PROGRAMACIÓN DE ROBOTS

Un robot industrial es básicamente un manipulador multifuncional reprogramable, lo cual permite su adaptación de manera rápida y económica a diferentes aplicaciones. 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.

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 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.

 MÉTODOS DE PROGRAMACIÓN

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 (Finkel-74).

Existen varios criterios para clasificar los métodos de programación. Algunos lo hacen según la potencia del método, y otras lo hacen según el sistema utilizado para indicar la secuencia de acciones a realizar, éste último es el más ilustrativo al momento de dar a conocer las alternativas existentes para programar un robot.

1

Page 3: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

 Según este último criterio, un robot puede ser programado por:

1. Programación por guiado.

2. Programación Textual.

1. Programación por Guiado

La programación por guiado o aprendizaje consiste en hacer realizar al robot, o a una maqueta del mismo, la tarea, registrando las configuraciones adoptadas para su posterior repetición en forma automática.

Para guiar al robot por los puntos deseados se utilizan distintas soluciones:

 1.1 Guiado Pasivo: Si los actuadores del robot están desconectados y el programador aporta en forma directa la energía para mover el robot, se habla de un guiado pasivo.

 Existe el guiado pasivo directo y el guiado pasivo por maniquí.

 Guiado Pasivo Directo: En este caso, el programador puede tomar el extremo del robot y llevarlo hasta los puntos deseados a través de las trayectorias más adecuadas. La unidad de control del robot registra de manera automática la señal de los sensores de posición de las articulaciones en todos los puntos recorridos. Un ejemplo es el caso de los robots de pintura de la firma Gaiotto, los cuales fueron programados con este procedimiento.

Guiado Pasivo por Maniquí: La dificultad física de mover toda la estructura del robot se resuelve a través de este procedimiento. En este caso se dispone de un doble del robot, mientras que éste permanece fuera de línea. El doble posee una configuración idéntica que el robot real, pero es mucho más ligero y fácil de mover. La programación se realiza llevando de la mano a este doble, mientras que la unidad de control muestrea y almacena con cierta frecuencia los valores que toman los sensores de posición de las articulaciones, para su posterior repetición por el robot. Un ejemplo es el caso de los robots de pintura fabricados por Nordson, los cuales son programados utilizando este procedimiento.

1.2 Guiado activo: Esta posibilidad permite emplear el propio sistema de accionamiento del robot, controlado desde una botonera o bastón de mando (conocido como joystick) para que sea éste el que mueva sus articulaciones.

2

Page 4: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

Ejemplos de este tipo se encuentran en los robots de ABB (ARLA) o en los Cincinnati Milacron (T3).

Atendiendo a la potencia del sistema, se habla de guiado básico y guiado extendido.

 

Guiado Básico: El robot es guiado por los puntos por los cuales se desea que pase durante la fase de ejecución automática del programa. Durante ésta, la unidad de control interpola dichos puntos según determinadas trayectorias. Muchas veces no es posible incluir ningún tipo de estructuras de control dentro del programa, por lo que los puntos son recorridos siempre secuencialmente, en el mismo orden que se programaron. Un ejemplo de este tipo de programación es la utilizada en casi todos lo robots de pintura, donde la unidad de control muestrea automáticamente los puntos recorridos por el robot con una frecuencia muy alta.

Guiado Extendido: Permite especificar, junto a los puntos por los que deberá pasar el robot, datos relativos a la velocidad, tipo de trayectoria, precisión con la que se quiere alcanzar los puntos, control del flujo del programa, atención a entradas/salidas binarias, etc. En este caso, el método guiado de utilizado es el de la botonera o joystick. El guiado por extendido aumenta la potencia del sistema de programación.

Los métodos por guiado son muy útiles y presentan ventajas, como que son fáciles de aprender y requieren de un espacio de memoria relativamente pequeño para almacenar la información. Sin embargo, también presenta inconvenientes como la necesidad de utilizar al propio robot y su entorno para realizar la programación, lo que obliga a sacar al robot de la línea de producción e interrumpir ésta. También está la inexistencia de una documentación del programa y la dificultad de realizar modificaciones en el mismo.

 2. Programación textual

Este método de programación permite indicar la tarea al robot a través de un lenguaje de programación específico. Un programa se entiende como una serie de órdenes que son editadas y posteriormente ejecutadas, por lo tanto, existe un texto para el programa.

La programación textual se puede clasificar en tres niveles:

 2.1 Nivel robot, si las órdenes se refieren a los movimientos a realizar por el robot.

3

Page 5: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

2.2 nivel objeto, si las órdenes se refieren al estado en que deben ir quedando los objetos.

2.3 nivel tarea, si las órdenes se refieren al objetivo a conseguir.

 

Actualmente, la programación de robots se queda en el primero de ellos, existiendo una gran cantidad de lenguajes de programación textual, entre los que destacan por orden cronológico los siguientes:

 

AL (Universidad de Stanford - 1974) AML (IBM - 1979) LM (Universidad de Grenoble - 1981) VAL II (ADEPT – 1989) RAPID ( ABB – 1994)

A nivel objeto, se han realizado diversos intentos para poder desarrollarlos, pero las dificultades que se han encontrado han impedido una implementación eficiente. Entre ellos destacan los siguientes ejemplos:

LAMA (MIT – 1976) AUTOPASS ( IBM – 1977) RAPT ( Universidad de Edimburgo- 1978)

Ejemplo: Se pretende situar la pieza A, sobre la que se apoya la pieza B, en el interior del orificio de la pieza D. A continuación se presentará la programa en los tres niveles de manera simple y utilizando lenguajes hipotéticos.

2.1 Nivel Robot: Se debe especificar cada uno de los movimientos que ha de realizar el robot, como velocidad, direcciones de aproximación y salida, apertura y cierre de la pinza, etc. También es necesario descomponer la tarea global en varias subtareas.

Ejemplo: Quitar B de A (poniendo B sobre C), introducir A en D, etc. Considerando el ejemplo planteado anteriormente la operación que consiste en colocar B sobre C, tendría el siguiente aspecto:

Mover_a P1 via P2 ; Situarse en un punto sobre la pieza BVel = 0.2 * VELMAX ; Reducir la velocidadPinza = ABRIR ; Abrir la pinzaPrec = ALTA ; Aumentar la precisión

4

Page 6: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

Mover_recta_a P3 ; Descender verticalmente en línea rectaPinza = CERRAR ; Cerrar la pinza para coger la pieza BEspera= 0.5 ; Esperar para garantizar cierre de pinzaMover_recta_a P1 ; Ascender verticalmente en longa rectaPrec = MEDIA ; Decrementar la precisiónVel = VELMAX ; Aumentar la velocidadmover_a P4 via P2 ; Situarse sobre la pieza CPrec = ALTA ; Aumentar la precisiónVel = 0.2 * VELMAX ; Reducir velocidadMover_recta_a P5 ; Descender verticalmente en línea rectaPinza = ABRIR ; Abrir pinza

2.2Nivel Objeto: Disminuye la complejidad del programa. La programación se realiza de manera más cómoda, ya que las instrucciones se dan en función de los objetos a manejar. Una planificación de la tarea se encargará de consultar una base de datos y generar las instrucciones a nivel de robot.

 Situar B sobre C haciendo coincidir

LADO_B1 con LADO_C1 y LADO_B2 con LADO_C2 ;

Situar A dentro D haciendo coincidir

EJE_A con EJE_HUECO_ y BASE_A con BASE_D ;

 

2.3 Nivel Tarea: El programa se reduce a una única sentencia, ya que, se especifica qué es lo que debe hacer el robot en lugar de cómo debe hacerlo.

Ensamblar A con D

Cabe destacar, que los sistemas de programación de robots tienden a combinar con mayor frecuencia los dos modos básicos (guiado y textual), permitiendo desarrollar el programa mediante la escritura de las instrucciones y utilizando la posibilidad de guiado en línea en aquellos momentos en que sea necesario. Sistemas como RAPID de ABB, VAL II de Staubli y V+ de Adept Technology son ejemplos de esta ambivalencia.

REQUERIMIENTOS DE UN SISTEMA DE PROGRAMACIÓN DE ROBOTS

A pesar de la falta de normalización entre los métodos de programación de robots

existentes, las necesidades comunes han originado un cierto paralelismo y afinidad

5

Page 7: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

entre casi todos ellos. Esta circunstancia permite establecer una serie de

características generales que se manifiestan en los elementos de programación que

contienen. Tradicionalmente los requerimientos generales que se vienen

estableciendo para un sistema de programación de robots son los siguientes:

Entorno de programación.

Modelado del entorno.

Tipo de datos.

Manejo de entradas/salidas (digital y analógica).

Control de movimiento.

Control del flujo de ejecución del programa.

Cada sistema de programación de robots da respuesta a estos requerimientos en

mayor o menor grado. Así, mientras algunos no contemplan modelo alguno del

entorno, otros basan totalmente su modo de funcionamiento en la existencia y

mantenimiento de un detallado modelo geométrico.

Se realiza a continuación una descripción de estos requerimientos, prestando mayor

atención a los que se consideran más frecuentes.

8.2.1. Entorno de programación

Como en cualquier lenguaje de programación convencional, es de gran importancia,

para conseguir un aumento considerable de productividad de la programación, el

contar con un entorno de programación adecuado a las necesidades.

Programar las acciones de un manipulador es complicado en el sentido de que en

todo momento existe una interacción con el entorno, tratándose de un proceso

continuo de prueba y error. Esta es la principal causa que lleva a que !a mayoría de

los sistemas de programación de robots sean de tipo interpretado, pudiéndose

realizar un seguimiento paso a paso de lo programado en cada momento. Se evita

así el tedioso ciclo de editar-compilar-ejecutar muy costoso en tiempo.

6

Page 8: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

Es pues importante y de desear que un sistema de programación de robots presente

una buena capacidad de depuración y de ejecución paso a paso, teniendo

especialmente en cuenta la interacción en tiempo real que existe entre los distintos

equipos de la célula con el controlador del robot. También es aconsejable la

existencia de una buena monitorización continua del desarrollo del programa.

Algunos de los sistemas de programación actuales se soportan sobre sistemas

operativos multitarea, permitiendo el control simultáneo y sincronizado de varios

robots o del robot con otros sistemas (visión, transportes, etc.).

8.2.2. Modelado del entorno

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.

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 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 del otro y viceversa) o tener una dependencia

de unión no rígida (el movimiento de uno implica el del 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 una estructura arborescente, simplificando

notablemente la tarea del programador.

8.2.3. Tipos de datos

7

Page 9: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

Un sistema de programación de robots cuenta, además de con los tipos de datos

convencionales (enteros, reales, booleanos, etc.) con otros específicamente

destinados a definir las operaciones de interacción con el entorno, como son, por

ejemplo, los que especifican la posición y orientación de los puntos y objetos a los

que debe acceder el robot. Como ya se vio en el Capítulo 3, correspondiente a

herrramientas matemáticas, la posición y orientación espacial de un objeto puede ser

especificada de diversas formas.

Utilizando coordenadas articulares o del robot: mediante una n-upla (q 1...qn)> donde n

es es número de grados de libertad del robot, que indica los valores articulares que

debe tomar el robot para posicionar y orientar su extremo como el objeto en cuestión.

Utilizando coordenadas cartesianas o del usuario: en este caso, una vez asociado un

sistema de referencia de coordenadas {S1} al objeto, su posición se describe por las

coordenadas cartesianas del origen de {S1}, (px, py, pz mientras que la orientación

admite diferentes tipos de representación:

La representación conjunta de posición y orientación del extremo del robot se

consigue agrupando las tres coordenadas de posición con alguno de los métodos de

representación de la orientación. Los diferentes sistemas de programación existentes

emplean una o varias de estas representaciones

MANEJOS DE ENTRADAS Y SALIDASLa comunicación del robot con otra maquinas o procesos que cooperan con él, es fundamental para conseguir su integración y sincronización en los procesos de fabricación. Todo esto es gracias a las señales binarias de entradas y salidas, mediante ello el robot puede tomar acciones de reacción y manipulación.

SISTEMAS AUTOMÁTICOSAlgunos sistemas incluyen la posibilidad de comenzar automáticamente su siglo de trabajo cuando le llega una señal binaria.

8

Page 10: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

DESARROLLO GRACIAS A UN SENSOR

La integración de sensores, incorporados la información de estos al desarrollado de la tarea. Los sensores permiten realizar determinadas aplicaciones en un entorno. La información que son introducidas o capturas por los sensores se lo puede utilizar en la programación de robot en diversas formas:

Ejemplos: modificar la trayectoria

9

Page 11: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

CONTROL DE MOVIMIENTO DEL ROBOT

Un método de robot debe incluir la posibilidad de especificas el movimiento del robot. Además del punto de destino, puede ser necesario especificas el tipo de trayectoria especial que debe ser realizada, la velocidad depende al recorrido. Incluso el robot puede ejercer un movimiento en cualquier caso o debe estar condicionado a algún tipo de circunstancias por ejemplo de un censor. En ocasiones el movimiento del robot en su entorno con obstáculos obliga a la utilización de una trayectoria en línea recta, para así que el robot no colisione con ninguno de ellos.

ROBOT INDUSTRIAL

ROBOT ABB:

10

Page 12: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

ABB ( Asea Brown Boveri) es una corporación multinacional, cuya sede central queda en Zürich, Suiza y cuyos mayores negocios son los de tecnologías en generación de energía eléctrica y en automatización industrial. ABB opera en más de cien países y emplea a más de 124.000 personas.El tipo de programación que utilizan estos robots son:RAPID:(Roboties Application Programming Iterative dialogue)Muy similar a lenguaje de programación de alto nivel (Basic, Pascal, C)

Acá podemos mencionar algunas instrucciones de RAPID:

11

Page 13: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

INSTRUCCIÓN DE MOVIMIENTOS:Para mover el robot existen tres instrucciones:

MoveJ Punto, Velocidad, Zona, HerramientaSe mueve el robot hacia un punto usando coordenadas articulares.Cuando no tiene que seguir ninguna trayectoria determinada.

MoveL Punto, Velocidad, Zona, HerramientaSe mueve el robot hacia un punto usando la línea recta.

12

Page 14: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

MoveC Punto_Circulo, Punto_Destino, Velocidad, Zona, Herramienta;Se mueve el extremo del robot hacia el punto de destino pasando por elpunto del circulo trazando un arco de circunferencia.

Como ejemplo podemos mencionar el siguiente gráfico.:

Ejemplo 1.

Realizar un programa que active 4 sensores, realizar los movimientos en el orden que se muestra en la figura de tal modo que el movimiento de un punto a otro se realice de forma que la herramienta no cambie de orientación. A continuación se dan los puntos que se tienen que activar así como sus respectivas coordenadas, todas ellas referenciadas sobre plano10 o p10:

Pasos

Puntos Coordenada X Coordenada Y Coordenada Z

1 Punto 1 0 0 02 Punto 5 520 80 03 Punto10 495 450 04 Punto 15 425 800 0

Nota: Es importante saber que El punto 10, se encuentra 5 cm/s (50 mm/s) por encima del sensor 1, por lo tanto, para activar la señal tendremos que bajar (-) 50 mm/s (MoveJ Offs (p10, 0,0,-50),fine, tool0;) Cuando se haya activado el punto tendremos que volver a subir los 5 cm/s para no colisionar.

El plano de los sensores es el siguiente:

13

Page 15: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

Figura: Plano de sensor ejemplo 1.

MoveC : Este movimiento tiene la característica principal de que desplaza el

punto central de herramienta en forma circular desde su ubicación hasta el

destino solicitado, esta instrucción permite que la herramienta no pierda su

sentido de orientación. En la siguiente grafica veremos cómo se realiza el

movimiento.

5

PLANO DE TRABAJO

13

12

ABB

14

11

16

15

8

10

97

6

4

3

2

1

14

Page 16: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

Figura Movimiento circular.

Al utilizar el MoveC desde el punto origen se producirá un movimiento circular hacia el punto destino como se ve en el trayecto de la figura anterior. Formado un semicírculo entre punto origen y destino. La instrucción se usa de la siguiente manera:

MoveC p1, p2, v100, z30, tool1De esta forma tenemos que la herramienta se mueve en círculo hacia la posición p2, con sus respectivos datos de velocidad y de zona dados por v100 y z30. Se debe tener en cuenta que el circulo se define a partir de la posición inicial, el punto intermedio p1 y del punto destino p2.

LENGUAJE C.//PROGRAMACION PARA MANEJAR 5 SERVOS

#include <Servo.h> // librería Servo servo1; // crear objeto servo para controlar un servoServo servo2;Servo servo3;Servo servo4;Servo servo5;//VARIABLES DE COMUNICACION SERIALint a=90,b=90,c=90,d=90,e=90;char serialdata[100];

Punto Destino

Punto: Origen

15

Page 17: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

void setup(){ Serial.begin(57600); //velocidad bps (baudios) servo1.attach(4,500,2400); // servo1 azul pinza servo2.attach(5,500,2400); // servo2 HS-311 muñeca servo3.attach(6,500,2400); // servo3 HS-311antebrazo servo4.attach(7,500,2400); // servo4 MG995 brazo servo5.attach(8,500,2400); // servo5 HS-311base} void loop() { while (Serial.available() > 0) { Serial.readBytesUntil(';', serialdata,15); a = memcmp ( serialdata,"",1);//valor int a memset (serialdata,'a',1); //agregar la letra a b = memcmp ( serialdata,"a",2); //valor int b despues del la letra a memset (serialdata,'b',2); //agregar b c = memcmp ( serialdata,"bb",3); //valor c despues de bb memset (serialdata,'c',3); d = memcmp ( serialdata,"ccc",4); memset (serialdata,'d',4); e = memcmp ( serialdata,"dddd",5); } servo1.write(a); //servo1 ajusta la posición del servo según el valor de escala servo2.write(b); //servo2 servo3.write(c); //servo3 servo4.write(d); //servo4 servo5.write(e); //servo5 delay(15); }

CONTROL DEL FLUJO EJECUCIÓN DEL PROGRAMA

Al igual que en cualquier lenguaje de programación de propósitos general, un lenguaje de programación de robot ha de permitir al programador especificar de alguna manera un flujo de ejecución de operaciones.

16

Page 18: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

Lenguajes de programación de robotsLa mayoría de los lenguajes de programación para robots consiste en una serie de instrucciones o comandos codificados que le indican a los sistemas mecánicos y electrónicos que acción llevar a cabo, estas instrucciones permiten automatizar tareas, debido a esto se han creado muchos sistemas de programación e interfaces que ayudan a que la tarea de programación sea más sencilla.En los lenguajes de programación de robots se emplean técnicas de flujo de datos por la mayoría de los fabricantes, que se basan en el concepto de que si una variable cambia, todas las variables que dependen de esta, deberían cambiar también. A esto se denomina programación de flujo de datos y es modelado como una secuencia de funciones.Debido a que cada fabricante de robots utiliza su propio entorno y lenguaje de programación, no existe un lenguaje único para todos los robots si bien se han hecho grandes avances mediante el uso de software libre, en general y debido a la alta naturaleza propietaria del software de robots, no existe un estándar definido si bien hay bastantes similitudes entre varios lenguajes de programación.A continuación se mencionan algunos lenguajes de programación utilizados en robots de amplio uso.

VALVariable Assembly Languaje – Es un lenguaje de programación de robots adoptado originalmente para su uso con robots de UNIMATION, y actualmente con Adept Technology, Stäubli que utiliza VAL3. Consiste en una

serie de comandos con palabras fáciles de entender, es también un sistema en tiempo real que permite calcular trayectorias y realizar movimientos rápidamente, una característica conveniente de VAL es su habilidad para utilizar librerías y rutinas predefinidas para producir rápidamente programas complejos con menor esfuerzo.VAL está formado por módulos

- Monitor: es el programa administrativo que controla toda la operación del sistema, recibe los comandos dados por los programas escritos por el usuario e inicia las respuestas apropiadas para dirigir el robot.

- Editor: es un editor de comandos en formato de texto y permite introducir los comandos al sistema.

- Location: Es una herramienta de programación de indica la posición de un objeto en el espacio, durante la ejecución del programa.

El siguiente es un programa de ejemplo hecho en VAL para efectuar un movimiento de agarre y posicionamiento (Pick & Place)

- PROGRAM PICKPLACE- 1. MOVE P1- 2. MOVE P2- 3. MOVE P3- 4. CLOSEI 0.00- 5. MOVE P4

17

Page 19: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

- 6. MOVE P5- 7. OPENI 0.00- 8. MOVE P1- .END

18

Page 20: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

RAPIDRobotics Application Programming Interactive Dialogue, es un lenguaje de programación desarrollado por la empresa ABB, un programa desarrollado en este lenguaje consiste en una rutina principal llamada MAIN, un conjunto de varias subrutinas que ayudan a reducir el tamaño del programa dividiéndolo en partes más pequeñas y los datos del programa, que definen posiciones, coordenadas, etc.Los datos son representados de la siguiente manera

- Constantes (CONS), que indican datos de valor fijo que no pueden cambiar- Variables (VAR), son datos cuyo valor puede ser cambiado en cualquier

momento- Persistentes (PERS), son datos que cambian durante la ejecución del

programa pero son mantenidos hasta la próxima ejecución- Atómicos, almacenan un dato, pero que no puede dividirse en otros más

sencillos, dentro de estos se encuentran:o num: Para almacenar valores numéricos, sean en teros o reales.o bool: Designan valores lógicos de TRUE o FALSEo string: Almacenan cadenas de caracteres, hasta un máximo de 80o pos: Representan posiciones (en milímetros) en X. Y, Zo orient: Es un dato tipo registro que almacena la orientación de un

elementoo pose: Sirve para cambiar de un sistema de coordenadas a otro, está

compuesto por un tipo de datos pos y otro oriento confdata: Permite definir las configuraciones de los ejes de los

robots- Registros, almacenan más de un tipo de dato a la vez, son similares a las

estructuras (struct) en lenguaje C.

La siguiente es una lista de las palabras reservadas para este lenguaje

El siguiente es un ejemplo de un programa hecho en RAPID:

19

Page 21: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

V+Es un lenguaje de programación para robots, desarrollado en 1989 por Adept Technology para permitir la programación de tareas complejas en robots mediante un lenguaje sencillo.Un programa en V+ consiste en una serie de líneas o STEP que se interpretan como instrucción del programa. El inicio

de un programa es marcado por la instrucción .PROGRAM y el final con la instrucción .END Una importante característica de V+ consiste en que permite la ejecución de múltiples tareas (hasta 7) siendo la número 0 la de mayor prioridad, se pueden también efectuar llamadas asíncronas a subrutinas, las cuales no detienen el flujo del programa en comparación de una llamada CALL. En V+ se pueden utilizar variables con tres tipos de acceso definidos:

- Globales: Todos los programas tienen acceso a la variable- Locales: Una variable es local al declararla con la instrucción LOCAL y solo

es visible para el programa que la creo.- Automáticas: Son creadas por la instrucción AUTO y según se use la

variable es designada como local o global.

OROCOSOpen Robot Control SoftwareEs un proyecto de software abierto que provee un framework para el control en tiempo real de brazos robóticos y máquinas herramientas fue desarrollado inicialmente en 2000 como una

20

Page 22: Web viewuniversidad tecnolÓgica boliviana. carrera de ingenierÍa electrÓnica. programacion de robots. universitarios: ahdemar wilmer zegarra flores. raul condori yucra

idea de Herman Bruyninckx, motivado por más de dos décadas de inconvenientes de trabajo con software comercial de los cuales no tenía acceso a las capas más profundas de control de hardware. Actualmente este proyecto es apoyado por la Comisión Europea y varias empresas alrededor del mundo.OROCOS está compuesto de una seria de librerías como la KDL (Kinematics and Dynamics Library) la cual sirve para el desarrollo, modelado y computación de cadenas cinemáticas empleadas en robots. BFL (Bayesian Filtering Library) la que provee los medios para el procesamiento de información y algoritmos utilizados en la determinación de trayectorias y posicionamiento de un robot.Se puede obtener más información de este proyecto además de descargas del código fuente y documentación, en la siguiente dirección: http://www.orocos.org

21