Top Banner
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA PROGRAMA DE INGENIERÍA Y TECNOLOGÍA EN ELECTRÓNICA CURSO: ROBOTICA 299011_26 PRESENTADO POR: TUTORA SANDRA ISABEL VARGAS L ACTIVIDAD 14 COLABORATIVO 3 Cartagena 27Mayo 2013
38

borrador 26_trabajo3

Jan 22, 2016

Download

Documents

tecno82
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: borrador 26_trabajo3

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA

ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA

PROGRAMA DE INGENIERÍA Y TECNOLOGÍA EN ELECTRÓNICA

CURSO:

ROBOTICA

299011_26

PRESENTADO POR:

TUTORA

SANDRA ISABEL VARGAS L

ACTIVIDAD 14

COLABORATIVO 3

Cartagena 27Mayo 2013

Page 2: borrador 26_trabajo3

INTRODUCCION

Este documento tiene como objeto principal responder un cuestionario relacionado con un documento en el que se trata del tema de programación de robots industriales, y también el experimentar la programación de un robot por medio de un simulador.En las máquinas controladas por sistemas informáticos, el lenguaje es el medio que utiliza el hombre para gobernar su funcionamiento, por lo que su correcta adaptación con la tarea a realizar y la sencillez de manejo, son factores determinantes del rendimiento obtenido en los robots industriales. Hay varias maneras de comunicarse con un robot, y tres soluciones generales para lograrlo, que son reconocimiento de palabras separadas, enseñanza y repetición y lenguajes de programación de alto nivel. Los sistemas de reconocimiento de la voz en la tecnología moderna son bastante primitivos y suelen depender de quien habla. 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. 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. 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. Los lenguajes de programación de alto nivel suministran una solución más general para resolver el problema de comunicaciónhombre-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 (Engelberger [1980]). 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 ciertos métodos de programación.

Page 3: borrador 26_trabajo3

FASE1

1 ¿Cuál es el título del artículo? Off-Line Robot Programming Framework

2 ¿Cuáles siglas son usadas a lo largo del artículo? Identifíquelas y organícelas amanera de glosario.

(TMQ) After the Total Management Quality (TP), The teach pendant (PC) personal computer (OODP) Ontario Organizational Development Program RAM .Random memory. (OOP) Object-oriented programming ABB (acrónimo de Asea Brown Boveri) WinOLPC-(Software de simulación robótica) Cosirop(Mitsubishi) J2EE: Java 2 EnterprizeEdition (Java 2 Edición Empresa) UCSAL DP: DesignPattern (Patrones de Diseño) TM: TemplateMethod (Plantilla de forma)

3 ¿Lo considera pertinente al contenido del curso? Explique.

Me parece que si porque el tema central es la programación de robots industriales lo cual se ajusta a la materia de robótica que está enfocada a robots industriales. El trabajo de programación de robots industriales está enfocado a especialistas en robótica. Esta tarea se ha tornado más difícil porque hay muchos fabricantes de robots con diferentes lenguajes de programación y diferentes ambientes, entonces. Es de suma importancia conocer los aspectos mencionados en el informe porque podría ser útil para nuestra carrera profesional. Es pertinente teniendo en cuenta que parte esencial de un robot es la forma cómo se da las instrucciones para que ejecute sus movimientos con precisión de acuerdo a las tareas programadas.

4 ¿Cuál es el problema o problemas que se pretenden resolver con la propuesta del artículo? Explique.

El problema principal gira en torno a la programación de los robots industriales y a sus diferentes lenguajes de programación, los cuales resultan un tanto complejo y demorados para los programadores. Se investiga sobre una posible solución tomando como herramienta las características intrínsecas del PC, a través de una aplicación de software que conoce los lenguajes de

Page 4: borrador 26_trabajo3

programación de robots, utilizando un protocolo de comunicación para interactuar con el robot controlador lo cual hace posible desarrollar una programación off-line.Esta investigación pretende demostrar que la integración de fabricación de células se puede acelerar, la comunicación entre diferentes plataformas de los robots se puede optimizar los costes y con gente especializada puede ser reducido. En realidad, la programación del robot sigue siendo un trabajo duro (ABN, 1998). Algunas causas son: la dificultad de los recursos disponibles equipo de reserva para mejorarlo, la manipulación compleja, y el enfoque tecnológico exigido para aprender.

5 ¿Cuáles métodos se plantean para resolver el problema o problemas?

DESIGN PATTERNS - DPFACTORYSINGLETON:FACADEMEMENTOCOMMAND:TEMPLATE METHOD-TM:

6 ¿En qué consiste cada método? Use texto, gráficos, mapas, fotografías etc.

DESIGN PATTERNS – DP: DPes unmecanismo de altonivel que relaciona lasmejoresprácticasprogramadores (experiencias exitosas) a resolver losproblemas delos proyectos de softwarecomunes.Lasasociaciones de desarrollo(Helm, 1995)

FACTORY: Centraliza la creación de objetos con el cambio de alta probabilidad en una sola clase.

SINGLETON: Prohíbe la duplicación de los objetos en la memoria RAM. Fueidealizado, ya que durante la ejecución del programa se vuelven a crear muchos objetos sin necesidades reales.

Page 5: borrador 26_trabajo3

FACADE: desacoplar la interfaz de usuario y las clases de negocios, a través de un punto predeterminado de entrada de datos. el significadopuede entenderse como "consenso".

MEMENTO: Almacena las interacciones recientes de memoria con el software, haciendo posible resarcirse de las operaciones efectuadas; puede ser entendida como "Deshacer".

Page 6: borrador 26_trabajo3

COMMAND: Genera la interfaz de comando de las acciones de desvinculación causando eventos.PatrónCommand es necesario porque el usuario es obligado a ejecutar las funcionalidades del sistema a través de interfaz de entrada de datos objetos (Menú, Button, Check Box,).

TEMPLATE METHOD-TM: ayuda a definir un algoritmo esqueleto. Este esqueleto se utilizará para especializarse en subclases que heredan el resumen objeto modelo común.

7 Si lo hay ¿Cuál es el método usado para la evaluación de resultados, y en qué consiste?

EL método para evaluar los resultados fue probar con 2 robots diferentes programados utilizando el código descrito en la investigación, pretendiendo explicar la experiencia y la utilidad del software. Consiste en escribir las siglas UCSAL en un tablero blanco con los robots, idealizado la secuencia de movimientos para escribir las siglas UCSAL en la pizarra con un lápiz se quejó por el manipulador. Para hacer la letra"U" se requiere un movimiento circular, a la "C", otro movimiento circular, la "S" dos movimientos circulares, en la letra "A" movimientos lineales y la "L" dos movimientos lineales.

Page 7: borrador 26_trabajo3

Más allá de ser necesario un tipo de movimiento para cada desplazamiento, el conjunto nombres de punto, la velocidad y precisión. También es necesario un conjunto de puntos de salida de la tarjeta en blanco entre los caracteres de la escritura, para definir el ángulo de ataque del lápiz. Las coordenadas se aplicaron mediante la enseñanza, utilizando la palancad e mando vinculada al controlador del robot para establecer las coordenadas xyz.

8 Según el autor del artículo ¿los resultados obtenidos son satisfactorios? Explique.

Si son satisfactorios por que la investigación del autor arrojo como resultado el desarrollo de un software portable, capaz de escribir programas para robots industriales en lenguajes de diferentes fabricantes. Además se hace posible la implementaciónposterior para agregar sensores y técnicas de inteligencia artificial para actualizar la zona de aplicación de software desarrollado. Según el autor, el experimento fue un éxito. La creación de un programa intermedio, mediante la enseñanza utilizando Robot y entradas de coordenadas. El robot fue capaz de escribir la sigla UCSAL con ABB y golems de Mitsubishi. La transferencia de archivos de programas del robot, en momento presente se hace con disco flexible. El resultado del experimento ha sido un completo éxito. Gracias a los métodos que se acaban de aplicar, se podrán incorporar en adiciones futuras del programa, sensores e inteligencia artificial, y realizando algunos cambios, crear sistemas para facilitar migración de programas entre robots.

9 ¿Qué restricciones encuentra para la implementación de los métodos planteados en elartículo?

FACTORY: Se presenta un problema de la fuente es: si se modifica el método de firma en una clase específica, será necesario, cambie todas las instancias directas para la clase, llegando a ser ardua y compleja labor, teniendo en cuenta que este objeto se está ejemplificado por muchas clases. La solución propuesta fue desarrollar una clase de solución centralizada, responsable de crear y devolver referencias de instancia de todos los objetos llamados.

MEMENTO: El problema detectado es: ¿cómo almacenar las estructuras de trabajo? La solución propuesta fue almacenar el estado de los objetos en una lista, para restaurar si es necesario. Así, el usuario puede deshacer pasos ejecutados si es necesario. El objetivo principal de este modelo es la creación de una interfaz fácil de usar. La estrategia consiste en crear una colección que memorizar los pasos de los usuarios, la definición de una estructura que almacena y recuperar los atributos de los objetos, por lo que persiste en la memoria.

10 ¿Qué otras soluciones plantearía usted a los problemas que pretende resolver el autor?

Pues creo que la unificación de un protocolo y del desarrollo de una plataforma estandarizada tanto de software como de hardware que permita a todos los programadores hablar el mismo lenguaje y poseer herramientas de fácil acceso, manipulación y control.

Page 8: borrador 26_trabajo3

El desarrollo de esta herramienta puede permitir el descubrimiento de más funcionalidades en un robot que es programado mediante este sistema.

FASE 2. SIMULACIÓN

2.1 Descargar el simulador SIMUROB que se encuentra en el link de MATERIAL DEAPOYO A LA FORMACIÓN del curso dentro del área de CONTENIDOS. El archivo quedescargarán no requiere de instalación simplemente se da doble clic encima y comienza a funcionar (es un ejecutable) se debe usar Windows XP o Windows 7 home Premium.Nota: Si usted no tiene disponible ninguno de los sistemas operativos anteriores, puede usar la máquina virtual de Windows XP, o simplemente destinar dos horas de trabajo en un computador que lo tenga disponible, tomar los pantallazos solicitados y guardar el archivo, claro está que debe leer el manual de funcionamiento previamente.

2.2 Descargar el manual de usuario (también en material de apoyo), leerlo y probar las diferentes características del programa.

2.3 OPCIONAL: Descargar y probar un programa de ejemplo (soldadura1.PRG) que también lo encontrará en el material de apoyo, los pasos para probarlo los encontrará en el manual de usuario.

2.4 Tomar pantallazos del trabajo realizado con SIMUROB hasta el momento y compartirlos con sus compañeros en el foro subiendo un archivo llamado así, fase24sunombreapellido.doc,por ejemplo para mí sería fase24freddyvalderrama.doc. Comente allí también sobre posibles fallos o bondades del software.

Probando el ejemplo de soldadura 1.rpg

Page 9: borrador 26_trabajo3

Aquí estamos probando la consola de simurob la cual permite programar movimientos simulando un joystick de una consola que gobierna el IRB-1400

Page 10: borrador 26_trabajo3

En la sección de Manipulación podemos añadir herramientas como una pistola de soldadura y pinzas.

Page 11: borrador 26_trabajo3
Page 12: borrador 26_trabajo3

2.5 Investigar sobre el lenguaje de programación RAPID y compartir la documentación en el FORO respectivo. Por ejemplo si encuentran un documento .PDF o .PPT lo suben en el foro para compartirlo con sus compañeros, subiendo un archivo llamado asífase25sunombre.doc,por ejemplo para mí sería fase25freddyvalderrama.doc

1 Conceptos básicos de RAPID

Acerca de RAPID

Qué es RAPID

Si quiere que un ordenador haga algo, necesita un programa. RAPID es un lenguaje de programación que permite escribir tal programa.El lenguaje nativo de los ordenadores se compone exclusivamente de ceros y unos. Se trata de algo prácticamente imposible de comprender para las personas. Por tanto, se enseña a los ordenadores a comprender un lenguaje relativamente fácil de comprender: un lenguaje de programación de alto nivel. RAPID es un lenguaje de programación de alto nivel. Utiliza algunas palabras en inglés (como IF y FOR) para hacerlo comprensible para las personas.

Page 13: borrador 26_trabajo3

Ejemplo de programa simple de RAPIDVeamos un ejemplo simple para ver qué aspecto puede tener un programa de RAPID:MODULE MainModuleVAR num length;VAR num width;VAR num area;PROC main()length := 10;width := 5;area := length * width;TPWrite "The area of the rectangle is " \Num:=area;END PROCENDMODULEEste programa calculará el área de un rectángulo y la escribirá en el FlexPendant:The area of the rectangle is 50

Datos de RAPID

Variables

Tipos de datos

RAPID cuenta con muchos tipos de datos diferentes. De momento, nos centraremos en los tres tipos de datos generales:Todos los demás tipos de datos se basan en estos tres. Comprendiendo estos tipos, la forma de realizar operaciones con ellos y cómo pueden ser combinados para formar tipos de datos complejos, podrá comprender fácilmente todos los tipos de datos.Características de las variablesLas variables con tienen valores de datos. Al detener el programa y volverlo a poner en marcha, la variable conserva su valor, pero si se mueve el puntero de programa a Main el valor del dato de la variable se pierde.

Declaración de una variable

La declaración de una variable es la forma de definir un nombre de variable y determina el tipo de dato que debe tener. Las variables se declaran con la palabra clave VAR, siguiendo la sintaxis:VAR datatypeidentifier;EjemploVAR numlength;VAR string name;VAR bool finished;

Asignación de valores

La asignación de un valor a una variable se hace con la instrucción :=length := 10;

Page 14: borrador 26_trabajo3

name := "John"finished := TRUE;

Recuerde que:= no es un signo de igual que. Significa la asignación de la expresión que aparece a su derecha de la variable que aparece a la izquierda. Sólo puede indicarse una únicavariable a la izquierda de :=Por ejemplo, lo siguiente es un código de RAPID correcto que da como resultado que reg1tenga el valor 3:reg1 := 2;reg1 := reg1 + 1;La asignación puede hacerse al mismo tiempo que la declaración de la variable:VAR num length := 10;VAR string name := "John";VAR bool finished := TRUE;

Variables persistentes

Qué es una variable persistente

Las variables persistentes son básicamente iguales a una variable normal, pero con una diferencia importante. La variable persistente recuerda el último valor que se le haya asignado, incluso si el programa es detenido y puesto en marcha de nuevo desde el principio.

Declaración de una variable persistente

Las variables persistentes se declaran con la palabra clave PERS. En el momento de la declaración es necesario indicar un valor inicial.PERS numnbr := 1;PERS string string1 := "Hello";EjemploConsidere el ejemplo de código siguiente:PERS numnbr := 1;PROC main()nbr := 2;ENDPROCSi se ejecuta este programa, el valor inicial cambia a 2. La próxima vez que se ejecute elprograma, el código del programa tendrá el aspecto siguiente:PERS numnbr := 2;PROC main()nbr := 2;ENDPROC

Page 15: borrador 26_trabajo3

Constantes

¿Qué es una constante?Las constantes contienen valores, como cualquier variable, pero el valor se asigna siempre en el momento de la declaración y posteriormente no es posible cambiar el valor en ningún caso.La constante puede usarse en el programa de la misma forma que una variable, si bien no se permite asignarle un nuevo valor.

Declaración de constantes

La constante se declara con la palabra clave CONST seguida del tipo de dato, el identificadory la asignación de un valor.CONST num gravity := 9.81;CONST string greating := "Hello"

¿Por qué usar constantes?

Al usar una constante en lugar de una variable, puede asegurarse de que el valor no sea cambiado en alguna parte del programa.El uso de una constante en lugar de escribir el valor directamente en el programa es más adecuado si necesita actualizar el programa con otro valor de la constante. A partir de ese momento, sólo tiene que cambiarlo en un lugar y tener la garantía de que no ha olvidado ninguna aparición del valor.

Operadores

Operadores numéricos

Estos operadores operan con el tipo de datos num y devuelven el tipo de datos num. Es decir, en los ejemplos siguientes, las variables reg1, reg2 y reg3 son del tipo de dato num.

Operadores relacionales

Estos operadores devuelven el tipo de dato bool. En los ejemplos, reg1 y reg2 son del tipo de dato num mientras que flag1 es del tipo bool. Los operadores lógicos se usan con frecuencia junto con la instrucción IF. Para ver ejemplosDe código, consulte

Operador de cadena

Operador Descripción Ejemplo

+ Suma reg1 := reg2 + reg3;- RestaMenos unarioreg1 := reg2 - reg3;

Page 16: borrador 26_trabajo3

reg1 := -reg2;* Multiplicación reg1 := reg2 * reg3;/ División reg1 := reg2 / reg3;

Operador Descripción Ejemplo

= igual a flag1 := reg1 = reg2;flag1 es TRUE si reg1 es igual a reg2< menor que flag1 := reg1 < reg2;flag1 es TRUE si reg1 es menor que reg2> mayor que flag1 := reg1 > reg2;flag1 es TRUE si reg1 es mayor que reg2<= menor que o igual a flag1 := reg1 <= reg2;flag1 es TRUE si reg1 es menor que o igual areg2>= mayor que o igual a flag1 := reg1 >= reg2;flag1 es TRUE si reg1 es mayor que o igual areg2<> distinto de flag1 := reg1 <> reg2;flag1 es TRUE si reg1 es distinto de reg2Operador Descripción Ejemplo+ Concatenación de cadenas VAR stringfirstname := "John";VAR string lastname := "Smith";VAR string fullname;fullname := firstname + " " +lastname;La variable fullname contendrá la cadena"John Smith".

Control del flujo del programa

IF THEN

Acerca del flujo del programa

Los ejemplos de programa que hemos visto hasta ahora se ejecutan secuencialmente, de arriba abajo. En los programas más complejos, es posible que deseemos controlar qué código se ejecuta, en qué orden y cuántas veces. En primer lugar echaremos un vistazo a cómo crear las condiciones necesarias para determinar si una secuencia de programa debe ejecutarse o no.

IF La instrucción IF puede usarse cuando un conjunto de sentencias sólo debe ejecutarse si secumple una condición determinada.Si la condición lógica de la sentencia IF se cumple, el código de programa situado entre las palabras clave THEN y ENDIF se ejecuta. Si la condición no se cumple, ese código no se ejecuta y la ejecución continúa después de ENDIF.Ejemplo

Page 17: borrador 26_trabajo3

En este ejemplo, la cadena string1 se escribe en el FlexPendant si no es una cadena vacía. Si string1 es una cadena vacía, es decir, no contiene ningún carácter, no se realiza ningunaacción.

VAR string string1 := "Hello";IF string1 <> "" THENTPWrite string1;ENDIF

ELSE

Una sentencia IF también puede contener código de programa para su ejecución si la condición no se cumple.Si la condición lógica de la sentencia IF se cumple, el código de programa situado entre las palabras clave THEN y ELSE se ejecuta. Si la condición no se cumple, el código situado entre las palabras clave ELSE y ENDIF se ejecuta.Ejemplo En este ejemplo, la cadena string1 se escribe en el FlexPendant si no es una cadena vacía.Si string1 es una cadena vacía, se escribe el texto "Thestringisempty".VAR string string1 := "Hello";IF string1 <> "" THENTPWrite string1;ELSETPWrite "The string is empty";ENDIF

ELSEIF

En ocasiones existen más de dos secuencias de programa alternativas. En este caso, puede usar ELSEIF para crear distintas alternativas.EjemploEn este ejemplo se escriben textos diferentes en función del valor de la variable time.VAR num time := 38.7;IF time < 40 THENTPWrite "Part produced at fast rate";ELSEIF time < 60 THENTPWrite "Part produced at average rate";ELSETPWrite "Part produced at slow rate";ENDIFObserve que, dado que la primera condición se cumple, se escribe el primer texto. Los otrosdos textos no se escribirán (aunque es cierto que time tiene un valor inferior a 60).

Bucle FOR

Repetición de una secuencia de código

Page 18: borrador 26_trabajo3

Otra forma de controlar el flujo del programa es repetir una secuencia de código del programaun número determinado de veces.

Cómo funciona el bucle FOR

El código siguiente repetirá 5 veces la escritura de "Hola":FOR i FROM 1 TO 5 DOTPWrite "Hello";ENDFORLa sintaxis de la sentencia FOR es la siguiente:FOR contador FROM valorinicialTO valorfinalDOcódigo de programa a repetirENDFOR

El valor del contador no tiene por qué declararse, pero actúa como una variable numérica dentro del bucle FOR. La primera vez que se ejecuta el código, el contador tiene el valor especificado por valorinicial. A continuación, el valor del contador se incrementa en 1 cada vez que se ejecuta el código. La última vez que se ejecuta el código es cuando el valor de contador iguala a valorfinal. A continuación, la ejecución continúa con el código de programa que aparezca a continuación de ENDFOR.

Utilización del valor del contador

El valor del contador puede usarse en el bucle FOR.Por ejemplo, el cálculo de la suma de todos los números de 1 a 50 (1+2+3+...+49+50) puedeprogramarse de la forma siguiente:VAR num sum := 0;FOR i FROM 1 TO 50 DOsum := sum + i;ENDFORNo se permite asignar un valor para el contador dentro del bucle FOR.

Bucle WHILE

Repetición con una condición

La repetición de una secuencia de código puede combinarse con la ejecución condicional de la secuencia de código. Con el bucle WHILE, el programa seguirá ejecutando la secuencia de código siempre y cuando se cumpla la condición.

Sintaxis de WHILE

La sintaxis del bucle WHILE es la siguiente:WHILE condición DOcódigo de programa a repetirENDWHILE

Page 19: borrador 26_trabajo3

Si la condición no se cumple desde el principio, la secuencia de código no llega a ejecutarse nunca. Si la condición se cumple, la secuencia de código se ejecuta repetidamente hasta que la condición deja de cumplirse.

EjemploEl código de programa siguiente suma números (1+2+3+...) hasta que la suma llegue a 100.VAR num sum := 0;VAR num i := 0;WHILE sum <= 100 DOi := i + 1;sum := sum + i;ENDWHILE

No cree bucles eternos o pesados sin una instrucción wait.Si la condición nunca deja de cumplirse, el bucle continuará constantemente y consumirá enormes cantidades de potencia del ordenador. La escritura de un bucle eterno está permitida,pero en ese caso debe contener alguna instrucción de espera que permita al ordenador realizar otras tareas entretanto.Los bucles pesados (con gran cantidad de cálculos y escrituras en el FlexPendant, sin instrucciones de movimiento) pueden requerir alguna instrucción de espera incluso si existe un número limitado de bucles.

WHILE TRUE DO! Some code! Wait instruction that waits for 1 secondWaitTime 1;ENDWHILERecuerde que las instrucciones de movimiento funcionan como instrucciones de espera, dado que la ejecución no continúa hasta que el robot ha alcanzado su objetivo.

Page 20: borrador 26_trabajo3

Reglas y recomendacionesdesintaxisdeRAPID

Sistemade coordenadas de la base

Laposicióndedestinodeunainstruccióndemovimientosedefineenformadecoordenadas

deunsistemadecoordenadas.Sinoseespecificaningúnsistemadecoordenadas,laposición

seindicadeformarelativaalsistemadecoordenadasdelabasedelrobot(tambiénconocido

comobasede coordenadasde labase).El sistemadecoordenadasdelabasetienesu origen

enlabasedel Robot.

Page 21: borrador 26_trabajo3

Sistemasde coordenadaspersonalizados

Esposibledefiniryutilizarotrosistemadecoordenadasconlasinstruccionesdemovimiento.

Elsistemadecoordenadasquelainstruccióndemovimientodebeutilizarseespecificacon

elargumento opcional\WObj.

MoveLp10,v1000,z50,tool0\WObj:=wobj1;Paraobtenermásinformaciónacercadecómodefinirunsistemadecoordenadas,consulteel

Manualdereferencia técnica- RAPIDInstrucciones,funcionesy tiposde datos,sección Tipos

dedatos ywobjdata.

Paraobtenermásinformaciónacercadelossistemasdecoordenadas,consulteelManualde referencia técnica -DescripcióngeneraldeRAPID, secciónSistemasdecoordenadas.

Evitelas instrucciones de espera o los cálculos pesadosa continuaciónde las zonas de

esquina

Elcontroladordelrobotpuedecalcularelmovimientodelrobotenlastrayectoriasdeesquina

inclusosihayinstruccionesentrelasinstruccionesdemovimiento.Sinembargo,sihayuna

instruccióndeespera acontinuacióndeunainstrucción demovimientoconunazonade

esquina,elrobotnoserácapazdegestionarlo.Utilicefineenlainstruccióndemovimiento antes

deunainstruccióndeespera.

También existeunalimitaciónencuantoalnúmero (ylacomplejidad)deloscálculosque puede realizarel controladorderobotentre lasinstruccionesdemovimientoconzonasde esquina.Estoconstituyeprincipalmenteun problemaalllamaraprocedimientosa continuación deunainstrucción de movimiento conunazonadeesquina.

2.6 Usar SIMUROB para crear un algoritmo que permita desplazar el EFECTOR FINAL del robot desde la posición inicial (en la que aparece al abrir el simulador) hasta la posición (x=-80, y=20, z=2.5*número del grupo) en la cual la pinza del robot deberá recoger un objeto y lo llevará (x=100, y=50, z=0). Para esto se sugiere usar el JOYSTICK de la forma en que se indica en el manual de usuario y colocar un objeto como referencia en la posición final.

(x=-80, y=20, z=2.5*26=65) Abrimos el SIMUROB y dejamos la posición inicial del robot como esta, luego Insertamos un prisma y colocamos las coordenadas donde debe quedar situado. x=-80, y=20, z=65

Page 22: borrador 26_trabajo3

Referencia posición inicial

Ahora debemos lograr que el efector se desplace desde su posición inicial hasta la ubicación del prisma, lo tome y lo desplace hasta la posición (x=100, y=50, z=0). Abrimos la consola y presionamos el icono de movimiento para activar el joystick

Page 23: borrador 26_trabajo3

Luego vamos a la opción de programación para poder realizar el movimiento del efector hasta el prisma y tomarlo

Page 24: borrador 26_trabajo3

Referencia Posición final

Efector posicionado en ubicación final

Page 25: borrador 26_trabajo3

Robot tomando el prisma

2.7 Grabar el programa como nombreapellido.PRG, (por ejemplo mi programa sería freddyvalderrama.PRG ) para esto las indicaciones también están en el manual de usuario.(Se incluye el programa)

Page 26: borrador 26_trabajo3

%%%

VERSION:1

LANGUAGE:ENGLISH

%%%

MODULE SIMUROB

PROC main()

MoveAbsJ [[162,-52,-19,0,18,-3],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[189,-51,-19,-8,17,5],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[163,-28,58,-1,-60,-3],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[153,-22,63,0,-66,-6],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[166,-1,55,6,-78,10],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[166,0,55,6,-78,10],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[166,0,55,6,-78,10],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

Reset pinza;

MoveAbsJ [[167,3,55,7,-78,9],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[167,3,55,7,-78,9],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[166,3,55,7,-78,9],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[20,37,49,70,45,104],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[19,41,46,67,47,106],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[16,-184,0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[24,-184,0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[28,-184,0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[28,-184,0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[25,-184,0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

Set pinza;

MoveAbsJ [[0,-50,-13,-22,43,-13],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

MoveAbsJ [[0,18,0,-26,32,-7],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v50,z30,tool0;

Page 27: borrador 26_trabajo3

ENDPROC

ENDMODULE

ENDPROC

ENDMODULE

Page 28: borrador 26_trabajo3

CONCLUSIONES

-Los lenguajes de programación de alto nivel suministran una solución más general para resolver el problema de comunicaciónhombre-robot.

-Un robot industrial es básicamente un manipulador multifuncionalreprogramable, 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.

-Se logró cumplir con todos los objetivos propuestos y socializar entre todos los compañeros del aula virtual.

Page 29: borrador 26_trabajo3

BIBLIOGRAFIA

FREDDY F. VALDERRAMA GUTIE´RREZ (Director Nacional)ALFREDO L´OPEZAcreditador- CEAD DUITAMAFebrero, (2010) Módulo de Robótica -299011

ABB AB Robotics Products SE-721 68 Vasteras Suecia (2007) introducción a rapid disponible en URL: www.uc3m.es/portal/page/portal/dpto_ing_sistemas.../ rapid .pdf