�� ������������ �������� �� �� ��������
������������ ��������� ������ ������� �������� ������� ������� ����� �������� ���� ��� ����� �������
������� ��� ������� ����� �����
�������� ����������� ��� ������� � �� ������������
����������� �������� ����� ���� ����� �������� �� �������� ����������� � ������ ���������� �� ����������� � ����������� ���������� ��������� ����
�� ������������ �������� �� �� ��������
A Dios, por el bienestar saludable, físico y espiritual que nos brinda cada día. A nuestros padres, en son de agradecimiento por su apoyo sin condición, amor y esfuerzo en nuestra
formación
personal
y
profesional. A nuestro docentes, por su tiempo en brindarnos su guía y sabiduría para desarrollar el presente trabajo.
������ �
�� ������������ �������� �� �� �������� ��������� Índice de Ilustraciones �������������������������������������������������������������������������������������������������������������������������������������������������������
�
Introducción ....................................................................................................................................................................... 5 Objetivos generales��������������������������������������������������������������������������������������������������������������������������������������������������������
�
Objetivos específicos �����������������������������������������������������������������������������������������������������������������������������������������������������
�
Organización de la monografía �������������������������������������������������������������������������������������������������������������������������������������� � CAPÍTULO I: Introducción a las Computadoras Computadoras y a la Programación. .................................... .................. ................................... ................................... ....................... ..... 7 1.1.
Introducción: ������������������������������������������������������������������������������������������������������������������������������������������������������
�
1.2.
Computadora: ����������������������������������������������������������������������������������������������������������������������������������������������������
�
1.1.1.
Origen de las computadoras. ���������������������������������������������������������������������������������������������������������������������� �
1.1.2.
Definición de computadora. ����������������������������������������������������������������������������������������������������������������������� �
1.1.3.
Componentes principales de la computadora. ������������������������������������������������������������������������������������������� �
1.3.
Software (Programas): ���������������������������������������������������������������������������������������������������������������������������������������
1.4.
Lenguajes de programación: ������������������������������������������������������������������������������������������������������������������������������ �
1.7.
Etapas en el desarrollo de un software: �����������������������������������������������������������������������������������������������������������
�
��
CAPÍTULO II: Introducción a la Robótica ..................................................................................................................... 12 1.1.
Los orígenes y significados de la palabra robot ����������������������������������������������������������������������������������������������� ��
1.2.
Historia de los robots ���������������������������������������������������������������������������������������������������������������������������������������
1.3.
Clasificación de los robots ������������������������������������������������������������������������������������������������������������������������������� ��
1.4.
Características de los robots ����������������������������������������������������������������������������������������������������������������������������
��
��
CAPÍTULO III: Programación en la Robótica ................................................................................................................ 20 2.1.
Comunicación con los robots���������������������������������������������������������������������������������������������������������������������������
2.2.
Programación on-line frente a programación off-line ������������������������������������������������������������������������������������� ��
2.3.
Clasificación de la programación usada en la robótica������������������ �������������������� ������������� �������������������� ������������� ��
��
2.8.1.
Programación Gestual o Directa (Guiado): ��������������������������������������������������������������������������������������������� ��
2.8.1.
Programación Textual:�����������������������������������������������������������������������������������������������������������������������������
��
Referencia ��������������������������������������������������������������������������������������������������������������������������������������������������������������������
��
Bibliografía ������������������������������������������������������������������������������������������������������������������������������������������������������������������
��
������ �
�� ������������ �������� �� �� �������� Índice de Ilustraciones Ilustraciones Ilustración 1.Ejemplo de robot poliarticulado. ................................................... ............................................ 15 Ilustración 2.Ejemplo de robots móviles. .............................................................................. .......................... 15 Ilustración 3.Ejemplo de robots androides. andro ides. .......................................................................... .......................... 16 Ilustración 4.Ejemplo de robots zoomórficos. zoomór ficos. ..................................................... ................................................................................................. ............................................ 16 Ilustración 5.Ejemplo de robots híbridos. híbridos . ................................................. ...................................................... 17 Ilustración 6. Robots industriales. .................................................... ............................................................................................................ ............................................................... ....... 17 Ilustración 7.Robots de seguridad. ................................................... ........................................................ ............................................................... ....... 18 Ilustración 8.Robots de servicio. ........................................................................ ............................................. 18
������ �
�� ������������ �������� �� �� �������� Introducción Siempre ha habido trabajos que a las personas no les gusta hacer, sea ya por ser aburrido o por ser peligroso. La solución más práctica era obligar o pagar a alguien para que hiciera el trabajo. Es por esto que se han creado los robots, ahora los robots son ideales para trabajos que requieren movimientos repetitivos y precisos. Sin embargo, los robots no han sido creados solo para trabajar, también han sido creados para la diversión. El presente trabajo es una monografía de la programación aplicada a la robótica, este es nuestro primer proyecto y pertenece a la asignatura de Metodología del Estudio y la Comunicación. Nos dimos la tarea de buscar, leer y seleccionar la mejor información acerca del tema mencionado anteriormente. En el índice encontraras los subtemas en los que está dividido el tema, en primer lugar encontrarás la introducción a la programación, seguida por la introducción a la robótica y por último trataremos la programación aplicada a la robótica. Esperamos que esta monografía que tienes en tus manos sea de tu agrado y que aprendas más acerca de la programación aplicada a la robótica.
Objetivos generales Conocer los inicios de la robótica, los acontecimientos más importantes en el desarrollo de dicha área del conocimiento, saber las diferentes ramas donde encuentra cabida la utilización de los robots, poniendo especial atención en los robots utilizados de manufactura. Adquirir conocimientos tantos de los subsistemas que forman un robot y de los elementos de que está compuesto; de las diferentes configuraciones que existe y los lenguajes utilizados en la programación de diferentes robots. ������ �
�� ������������ �������� �� �� �������� Objetivos específicos Un aspecto importante es conocer los subsistemas y elementos constituidos de un robot, así como su funcionamiento y las diferentes configuraciones morfológicas existentes. Especialmente es importante conocer la clasificación de los robots y la evolución de dicho tema. Otro aspecto importante es el conocimiento de los diferentes lenguajes de programación utilizados en los robots.
Organización de la monografía El presente trabajo está organizado de la siguiente manera: Capítulo I: El primer capítulo tiene el nombre de “Introducción”, en donde se inicia inicia con un pequeño preámbulo, se plantea el objetivo general de la monografía, los objetivos específicos y finalmente la organización del trabajo. Capítulo II: El segundo capítulo lleva por nombre “Introducción a la programación”, comienza con un poco de historia de la programación, donde se mencionan acontecimientos importantes en el desarrollo de esta área. Capítulo III: Este capítulo tiene por título “Introducción a la robótica”, e inicia con un prólogo a la robótica, donde sobresalen sus acontecimientos desde sus inicios hasta nuestros días; posteriormente se describe brevemente la aplicación de la robótica en diferentes campos. Capítulo IV: Este capítulo lleva por nombre “Programación en la robótica”, en él se escribe una introducción como es la comunicación, los diferentes niveles de programación para los robots.
������ �
�� ������������ �������� �� �� �������� CAPÍTULO I: Introducción a las Computadoras y a la Programación. 1.1.
Introducción: Las computadoras electrónicas modernas son uno de los productos más importantes del siglo XXI ya que se han convertido en un dispositivo esencial en la vida diaria de las personas. El papel de los programas de computadoras es fundamental; sin una lista de instrucciones a seguir, la computadora sería virtualmente inútil.
1.2.
Computadora: 1.1.1.
Origen de las computadoras. La primera computadora digital que reseña la historia de la informática, fue diseñada a finales de la década de los treinta por el Dr. John Atanasoff y el estudiante de postgrado Clifford Berry en la Universidad de Iowa. Diseñaron la computadora para realizar cálculos matemáticos en física nuclear. Sin embargo la primera computadora electrónica digital de aplicaciones o propósitos general se llamaba ENIAC y se terminó en 1946 en la Universidad de Pennsylvania, fue financiada por el Ejército de EE.UU. (U.S. Army). Se utilizaba esencialmente para predicciones de tiempo, cálculo de tablas balísticas, cálculos de energía atómica. Sus diseñadores fueron J. Prespert Eckert y John Maucheley. En el mismo año de 1946, el Dr. John Von Neumann de Princeton University propuso el concepto de computadora con programa almacenado que consistía en un programa cuyas instrucciones se almacenaban en la memoria de la computadora. Von Neumann descubrió que era posible que los programas se almacenaran en la memoria de la computadora. Neumann diseñó una computadora basada en esta idea. Su diseño ha constituido el nacimiento de la computación moderna.
������ �
�� ������������ �������� �� �� �������� 1.1.2.
Definición de computadora. El diccionario de la Real Academia acepta, indistintamente, los términos sinónimos: computador, computadora y ordenador. Entre las diferentes acepciones define computador electrónico como: “Máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos de tratamiento de la información, capaz de resolver problemas matemáticos y lógicos mediante la utilización automática de programas informáticos”.
1.1.3.
Componentes principales de la computadora. •
Los dispositivos de entrada, sirven para introducir datos en la computadora, ejemplo: teclado, mouse, lápices ópticos, palancas de mando, escáneres, micrófonos, etc.
•
Los dispositivos de salida, permiten representar los resultados del proceso de datos, ejemplo: trazadores gráficos (plotters), altavoz, proyector, pantalla, etc.
•
Unidad central de proceso (UPC, CPU) o procesador, Está compuesto por UAL(Unidad Aritmético y Lógica) y la UC(Unidad de control) .
La Unidad Aritmético y Lógica (UAL), es un dispositivo encargado de realizar operaciones matemático lógicas.
La Unidad de control (UC), es un dispositivo encargado de transportar y controlar la información de la memoria UAL.
•
La memoria principal, almacena los datos de entrada, programas que se han de ejecutar y resultados. Existen dos tipos de memoria principal:
La memoria RAM, almacena de modo temporal información.
La Unidad de control (UC), almacena información de modo permanente.
Joyanes Aguilar, L. (2008) Fundamentos de programación. Algoritmos, estructura de datos y objetos. Madrid: McGRAW-HILL/Interamericana de España, S.A.U. ������ �
�� ������������ �������� �� �� �������� 1.3.
Software (Programas): El software de una computadora es un conjunto de instrucciones de programa detalladas que controlan y coordinan los componentes hardware de una computadora. Las operaciones que debe realizar el hardware son especificadas por una lista de operaciones llamadas programas o software. Un programa es la expresión de uno o más algoritmos escritos en un lenguaje de programación. Un algoritmo es, sencillamente, una secuencia de pasos finita orientada a la consecución de un objetivo y La CPU, el cerebro del ordenador, es capaz de ejecutar acciones especificadas mediante secuencias de instrucciones. Una instrucción describe una acción muy simple. Las instrucciones se representan mediante combinaciones particulares de unos y ceros (valores binarios) y, por tanto, se pueden almacenar en la memoria. Combinando inteligentemente las instrucciones en una secuencia podemos hacer que la CPU ejecute cálculos más complejos. Una secuencia de instrucciones es un programa.
1.4.
Lenguajes de programación: Las secuencias de instrucciones que el ordenador puede ejecutar reciben el nombre de programas en código de máquina, porque el lenguaje de programación en el que están expresadas recibe el nombre de código de máquina. Un lenguaje de programación es cualquier sistema de notación que permite expresar programas.
Código maquina El código de maquina codifica las secuencias de instrucciones como sucesiones de unos y ceros que siguen ciertas reglas. La CPU es un ingenioso sistema de circuitos electrónicos capaz de interpretar el significado de cada una de esas secuencias de bits y llevar a cabo las acciones que codifican. Marzal, A. & García I. (2003), Introducción a la programación con Python , 1 capítulo. ������ �
�� ������������ �������� �� �� ��������
Lenguaje ensamblador En los primeros tiempos de la informática los programas se introducían en el ordenador directamente en código de máquina, indicando uno por uno el valor de los bits de cada una de las posiciones de memoria. El ensamblador es un programa traductor que lee el contenido de las direcciones de memoria en las que hemos almacenado códigos mnemotécnicos y escribe en otras posiciones de memoria sus instrucciones asociadas en código de máquina. El repertorio de códigos mnemotécnicos traducible a código de máquina y las reglas que permiten combinarlos, expresar direcciones, codificar valores numéricos, etc., recibe el nombre de lenguaje ensamblador.
1.5.
Composición de los lenguajes de programación: Sintaxis: Es forma visible de un lenguaje de programación, los símbolos que forman el lenguaje y las
reglas para combinarlos. Suele describirse mediante una gran ática. Semántica: Las reglas que determina el significado de los programas constituyen la semántica de los
lenguajes de programación.
1.6.
Traductores de lenguajes de programación: Los lenguajes de alto nivel se traducen automáticamente a código de máquina, pero existen dos tipos diferentes de traductores:
Un compilador: Lee
completamente un programa en un lenguaje de alto nivel y lo traduce
en su integridad a un programa de código de maquina equivalente.
Un intérprete: Actúa
de un modo distinto: lee un programa escrito en un lenguaje de alto
nivel instrucción a instrucción y, para cada una de ellas, efectúa una traducción a las instrucciones de código de maquina equivalentes y las ejecuta inmediatamente. Marzal, A. & García I. (2003), Introducción a la programación con Python , 1 capítulo. ������ ��
�� ������������ �������� �� �� �������� Por regla general, los intérpretes ejecutaran los programas más lentamente, pues al tiempo de ejecución del código de maquina se suma el que consume la traducción simultánea. Además, un compilador puede examinar el programa de alto nivel abarcando más de una instrucción cada vez, por lo que es capaz de producir mejores traducciones. Pero, por regla general, los intérpretes permiten una mayor flexibilidad que los compiladores y ciertos lenguajes de programación de alto nivel han sido diseñados para explotar esa mayor flexibilidad. Aunque nada impide que compilemos o interpretemos cualquier lenguaje de programación, ciertos lenguajes se consideran apropiados para que la traducción se lleve a cabo con un compilador y otros no. Es más apropiado hablar, pues, de lenguajes de programación típicamente interpretados y lenguajes de programación típicamente compilados.
1.7.
Etapas en el desarrollo de un software: Para crear correctamente software es necesario pasar por las distintas etapas en el desarrollo del software. Las cuales son: a)
Especificación: Definición precisa del problema.
b)
Diseño: Elección de una solución y división del problema en partes.
c)
Implementación: Escritura de la solución en un lenguaje de programación.
d)
Validación: Prueba de que el programa es correcto respecto a la especificación.
e)
Mantenimiento: Corrección de errores y adaptación a nuevos requisitos.
Marzal, A. & García I. (2003), Introducción a la programación con Python , 1 capítulo. ������ ��
�� ������������ �������� �� �� �������� CAPÍTULO II: Introducción a la Robótica 1.1.
Los orígenes y significados de la palabra robot La primera vez que se hablo de estos seres, utilizando el término por el que es hoy mundialmente conocido, robot, fue en 1923 por el escritor Karel Capek en su comedia R.U.R..("Rossum’s Universal Robots"), palabra que proviene del término checo robotnik que significa “siervo”. Hoy la palabra robot tiene diferentes significados: •
El significado de la palabra Robot por el Institute of América: "un manipulador multifuncional y reprogramable, diseñado para mover materiales, piezas, herramientas o dispositivos especiales, mediante movimientos programables y variables que permitan llevar a cabo diversas tareas". (Angulo, 2000)
•
El significado de la palabra Robot por Oxford English dictionary: "un aparato mecánico que se parece y hace el trabajo de un ser humano". (Coiffet, 1986)
•
El concepto de Robot inteligente incluye la capacidad de recibir instrucciones de alto nivel expresadas como "comandos" para realizar una tarea general, trasladando dichas instrucciones a un conjunto de acciones que deben ejecutarse para llevar a cabo dicha tarea. Será consciente de su entorno y capaz de tomar decisiones acerca de sus acciones basadas, en parte, en la interpretación de dicho entorno.
Yebra Pérez, J. & Lagos Fernández, N. (2002). Politécnica de Cataluña)
El lenguaje V+. (Tesis de Maestría, Universidad
������ ��
�� ������������ �������� �� �� �������� 1.2. Historia de los robots Desde siempre, las personas han querido desarrollar seres animados con diferentes fines. Este deseo de dar vida, conjugado con el progreso mecánico, científico, tecnológico y electrónico a lo largo de la historia, dio lugar a la creación de los autómatas, máquinas que imitan la figura y los movimientos de un ser animado, antecedente directo de los robots. Los primeros autómatas se remontan a la Antigüedad: egipcios y griegos fueron pioneros en el desarrollo de la mecánica y la ingeniería. Conocían y utilizaban a la perfección principios mecánicos como la rueda, el eje, la cuña, la palanca, el engranaje, la rosca y la polea, elementos que constituyen la base de muchos mecanismos empleados en la actualidad. Tenían también un profundo conocimiento de hidráulica y neumática, que usaban para dar movimiento a algunas estatuas. En el siglo I d. C., Herón de Alejandría escribió el primer tratado de robótica, Los autómatas, y creó los primeros autómatas: el teodolito, un aparato que medía ángulos, distancias y desniveles, y el odómetro, que medía distancias recorridas.
Siguen Los Inventos Durante la Edad Media, dos personajes se destacaron por sus invenciones. Alberto Magno (1206-1280) creó un autómata de hierro que le servía como mayordomo –podía caminar, abrir puertas y comunicarse con los invitados–, y una cabeza parlante que predecía el futuro. AlJazari, uno de los más grandes ingenieros de la historia, inventó un reloj elefante, con seres humanos y animales mecánicos. El Renacimiento fue un período rico en pensadores e invenciones. El enorme interés por la investigación en el campo de las ciencias que explican al mundo y al ser humano impulsó el desarrollo de espectaculares maquinarias.
Matías, R.C.,(2012). Robótica: Entra al mundo de la inteligencia artificial . Revista Educar S.E, 8-10. ������ ��
�� ������������ �������� �� �� �������� * Leonardo Da Vinci (1452-1519), Quizás el más grande inventor de todos los tiempos, creó, entre otras, la máquina de volar.
*
El matemático y filósofo Blaise Pascal (1623-1662), Un destacado representante del racionalismo, inventó la primera máquina de calcular.
Durante la misma época, la corriente de pensamiento de René Descartes (1596-1650) se sostuvo en el postulado de que todo se explica a través de las matemáticas. También tomó al ser humano como referente y antecesor primero de toda maquinaria. Por su parte, el ingeniero e inventor Jacques de Vaucanson (1709-1782) creó un pato artificial que movía las alas y realizaba el proceso digestivo completo, y dos músicos autómatas: El flautista y El tamborilero , que podían tocar un amplio repertorio musical.
Tecnología Para Todos Hasta el siglo XVIII, se había instalado cierto optimismo respecto del bienestar y progreso socioeconómicos que el desarrollo de las maquinarias traería aparejado. Sin embargo, a partir de la Revolución Industrial, los aspectos positivos asociados a este paradigma comienzan a ser cuestionados: las máquinas empiezan a reemplazar –y ya no tanto a aliviar– la mano de obra. También el medioambiente se ve notablemente perjudicado, pues este nuevo modelo económico requiere de la explotación de recursos naturales para sostenerse. En 1929, con la crisis mundial derivada de la caída de Wall Street, la sociedad se vuelve pesimista y es cada vez más crítica respecto del avance tecnológico y el sistema industrial. Además, la Primera y la Segunda Guerra Mundial ponen de manifiesto el carácter destructivo que se da al uso de la tecnología.
Matías, R.C.,(2012). Robótica: Entra al mundo de la inteligencia artificial . Revista Educar S.E, 8-10. ������ ��
�� ������������ �������� �� �� �������� 1.3. Clasificación de los robots
En base a su arquitectura. Se pueden dividir en:
Poliarticulados: Son sedentarios y están estructurados para mover sus elementos terminales en un determinado espacio de trabajo con un número limitado de grados de libertad (manipuladores y algunos robots industriales).
����������� 1.������� �� ����� ��������������. ������� �����, �. (�01�).
������������ � �� ���������
(����������� �� ������, ������) ���������� ��� �����//�������.�����.���.��/��������/�������� /��������������������.���
Móviles: Cuentan con gran capacidad de desplazamiento, basados en carros o plataformas y dotados 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.
����������� �.������� �� ������ �������. ������� �����, �. (�01�). ������������ ��������� (�����������
� ��
�� ������, ������)
���������� ��� �����//�������.�����.���.��/��������/�������� /��������������������.���
Barea, R. (2013). Introducción a la Robótica. (Universidad de Alcalá, Madrid) ������ ��
�� ������������ �������� �� �� �������� Androides: Intentan reproducir total o parcialmente la forma y el comportamiento cinemático del ser humano. Uno de los aspectos más complejos de estos robots es la locomoción bípeda (controlar dinámicamente el movimiento y mantener el equilibrio del robot).
����������� �.������� �� ������ ���������. ������������, �. (�01�). ������������ � ��������� (�����������
��
�� ������, ������)
���������� �� �����//�������.�����.���.��/��������/�������� /��������������������.���
Zoomórficos: Imitan los sistemas de locomoción de los diversos seres vivos. No caminadores: Basados en segmentos cilíndricos biselados acoplados axialmente entre sí y dotados de un movimiento relativo de rotación. Caminadores: Multípedos capaces de evolucionar en superficies muy accidentadas.
����������� �.������� �� ������ �����������. ������� �����, �. (�01�). ������������ � �� ��������� (�����������
�� ������, ������)
���������� �� �����//�������.�����.���.��/��������/�������� /��������������������.���
Barea, R. (2013). Introducción a la Robótica. (Universidad de Alcalá, Madrid) ������ ��
�� ������������ �������� �� �� �������� Híbridos: Aquellos de difícil clasificación cuya estructura se sitúa en combinación con alguna de las anteriores (un carro móvil con un brazo, robot personal antropomorfo, etc).
����������� �.������� �� ������ ��������. ������� �����, �. (�01�). ������������ ��������� (�����������
� ��
�� ������, ������)
���������� �� �����//�������.�����.���.��/��������/������� �/��������������������.���
En base a su aplicación : Se pueden dividir en: •
Industriales: Son artilugios mecánicos y electrónicos destinados a realizar de forma automática determinados procesos de fabricación o manipulación.
����������� �. ������ ������������. ������� �����, �. (�01�). ������������ ��������� (�����������
� ��
�� ������, ������)
���������� �� �����//�������.�����.���.��/��������/�������� /��������������������.���
Barea, R. (2013). Introducción a la Robótica. (Universidad de Alcalá, Madrid) ������ ��
�� ������������ �������� �� �� �������� •
Seguridad y espacio: Relativos al uso de robots en tierra, mar y aire en misiones de seguridad civil o militar así como su uso en misiones espaciales.
����������� �.������ �� ���������. ������� �����, �. (�01�). ������������ ��������� (�����������
� ��
�� ������, ������)
���������� ��� �����//�������.�����.���.��/��������/�������� /��������������������.���
•
De servicios: Sistemas aplicados en los dominios de la vida: entornos domésticos y de ocio, en salud y rehabilitación, en servicios profesionales y en ambientes peligrosos; que reproducen acciones de ayuda a los humanos.
����������� �.������ �� ��������. ������� �����, �. (�01�). ������������ � �� ��������� (����������� �� ������, ������) ���������� ��� �����//�������.�����.���.��/��������/�������� /��������������������.���
En base a su evolución: •
1º Generación: Sistema de control basado en “paradas fijas” mecánicamente (mecanismos de relojería que mueven las cajas musicales o los juguetes de cuerda).
•
2º Generación: El movimiento se controla a través de una secuencia numérica almacenada en disco o cinta magnética (industria automotriz). Barea, R. (2013). Introducción a la Robótica. (Universidad de Alcalá, Madrid) ������ ��
�� ������������ �������� �� �� �������� •
3º Generación: Utilizan las computadoras para su control y tienen cierta percepción de su entorno a través del uso de sensores. Con esta generación se inicia la era de los robots inteligentes y aparecen los lenguajes de programación.
•
4º Generación: Robots altamente inteligentes con más y mejores extensiones sensoriales, para entender sus acciones y captar el mundo que los rodea. Incorporan conceptos “modélicos” de conducta.
•
5º Generación: Actualmente se encuentran en desarrollo. Basarán su acción principalmente en modelos conductuales establecidos.
1.4.
Características de los robots Las características más importantes de los robots son: •
Versatilidad: Es la posibilidad de ejecutar diversas tareas, o la misma tarea, de formas diversas. Estos robots deben tener una estructura mecánica de geometría variable.
•
Autoadaptibilidad: De los robots es la posibilidad, de estos, por alcanzar el objetivo que se le ha fijado (ejecutar su tarea), a pesar de las perturbaciones imprevistas del entorno a lo largo de la ejecución de su tarea. Esto supone que el robot sea consciente de su entorno y, por lo tanto, posea sentidos artificiales (sensores).
Barea, R. (2013). Introducción a la Robótica. (Universidad de Alcalá, Madrid) ������ ��
�� ������������ �������� �� �� �������� CAPÍTULO III: Programación en la Robótica 2.1.
Comunicación con los robots La comunicación con los robots no sólo se basa en la programación de éste, también hay comunicación entre los distintos periféricos del robot industrial, y cada vez estos periféricos son mayores en cuanto a número. Los protocolos de comunicación utilizados por los sistemas automatizados suelen ser numerosos para así ajustarse a las posibles necesidades del usuario. En la ilustración inferior, se puede observar la multitud de periféricos instalables en un sistema de KUKA, y las posibles comunicaciones contempladas. El lenguaje es el medio que utiliza el hombre para gobernar las máquinas controladas por sistemas informáticos, de manera, que su correcta adaptación con la tarea a realizar y sencillez de manejo, son factores determinantes del rendimiento obtenido en los robots industriales. Hay tres maneras generales de comunicarse con un robot que son: reconocimiento de voz, enseñanza y repetición y lenguajes de programación de alto nivel. Los sistemas de reconocimiento de voz con la tecnología actual, son bastante primitivos. Estos sistemas pueden reconocer un conjunto de palabras concretas de un vocabulario 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 que cada vez los PC’s son más rápidos y eficientes. La utilidad del reconocimiento de palabras separadas para describir la tarea de un robot es bastante limitada. Así mismo, pueden confundirse los ruidos ambientales con la voz.
La enseñanza y repetición, también conocido como guiado, es la solución más utilizada en la actualidad en los robots industriales. Este método consiste en guiar al robot (enseñar), dirigiéndole los movimientos que el usuario desea que realice. Yebra Pérez, J. & Lagos Fernández, N. (2002). El lenguaje V+ . (Tesis de Maestría, Universidad Politécnica de Cataluña) ������ ��
�� ������������ �������� �� �� �������� La enseñanza y repetición se lleva a cabo, normalmente, con los siguientes pasos: 1. Dirigiendo 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. 2. Reproduciendo y repitiendo el movimiento enseñado. 3. Si el movimiento enseñado es correcto, entonces se hace funcionar al robot a la velocidad correcta, en modo repetitivo. Podemos guiar al robot en movimientos lentos 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ó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, requiere 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. Este tipo de interacción sólo puede ser mantenida por métodos de programación que contengan condiciones. Los lenguajes clásicos empleados en informática, como el FORTRAN, BASIC, PASCAL, C, etc., no disponen de las instrucciones y comandos específicos que necesitan los robots, para aproximarse a su configuración y a los trabajos que han de realizar. Esta circunstancia, ha obligado a los constructores de robots e investigadores a diseñar lenguajes propios de robótica.
Yebra Pérez, J. & Lagos Fernández, N. (2002). El lenguaje V+. (Tesis de Maestría, Universidad Politécnica de Cataluña) ������ ��
�� ������������ �������� �� �� �������� El problema, es que los lenguajes desarrollados hasta el momento, se han dirigido a un determinado modelo de controladora de robot, lo que ha impedido la aparición de lenguajes estándar y transportables entre máquinas, es decir, de carácter universal. La estructura del sistema informático del robot varía notablemente, según el nivel y complejidad del lenguaje y de la base de datos requerida.
2.2.
Programación on-line frente a programación off-line Un robot es programado on-line cuando se hace uso del propio robot para llevar a cabo el desarrollo del programa, ya que es necesario que durante el tiempo de desarrollo del programa, se disponga del robot físicamente para programar correctamente las trayectorias. La programación on-line emplea la metodología “Teach-In”, en la cual, los puntos por donde debe desplazarse el robot, se van introduciendo tras mover a éste con la ayuda de un panel de control; la segunda se distingue porque el robot es movido manualmente. En todo instante, el programador debe de estar cerca del área de movimiento del robot. Para evitar la programación on-line se tiende más a utilizar la denominada programación off-line, la cual permite desarrollar los programas sin necesidad de disponer del robot, esta programación se realiza utilizando paquetes de software que permiten simular los movimientos del robot. Sin embargo hay inconveniente de programación off-line relacionados con el hecho de no disponer del robot físicamente, por lo tanto es necesario corregir los pequeños errores que se puedan producir cuando se lleve a la práctica. Dentro de la programación on-line se puede llevar a cabo una clasificación en distintas metodologías: •
Programación Interactiva: Está basada en un diálogo establecido entre el robot y el programador a través de un ordenador.
Yebra Pérez, J. & Lagos Fernández, N. (2002). Politécnica de Cataluña)
El lenguaje V+. (Tesis de Maestría, Universidad
������ ��
�� ������������ �������� �� �� �������� •
Programación Explicita: Está orientada a movimientos. Para la utilización de este tipo, es necesaria la utilización de un software específico de simulación.
•
Programación Implícita: Está orientada a objeto. Las entradas del programa se efectúan a través de un ordenador, utilizando un editor de texto, generalmente con un editor de texto específico del fabricante del robot, que lleva incorporado un comprobador de sintaxis.
2.3.
Clasificación de la programación usada en la robótica 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 y el propio sistema toma las decisiones. La programación explícita es la más utilizada en las aplicaciones industriales y consta de dos técnicas fundamentales: 2.8.1. Programación Gestual o Directa (Guiado): 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". En este tipo de programación, el propio brazo interviene en el trazado del camino y en las acciones a desarrollar en la tarea de la aplicación. Esta característica determina la programación "on-line". 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. La programación gestual se subdivide en dos clases:
Yebra Pérez, J. & Lagos Fernández, N. (2002). Politécnica de Cataluña)
El lenguaje V+. (Tesis de Maestría, Universidad
������ ��
�� ������������ �������� �� �� �������� •
Programación por aprendizaje directo: 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.
•
Programación mediante un dispositivo de enseñanza (botonera): 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.
Yebra Pérez, J. & Lagos Fernández, N. (2002). Politécnica de Cataluña)
El lenguaje V+. (Tesis de Maestría, Universidad
������ ��
�� ������������ �������� �� �� �������� - 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. 2.8.1. Programación Textual: En la programación textual, las acciones que ha de realizar el brazo se especifican mediante el programa, que consta de un texto de instrucciones o sentencias (en un lenguaje determinado), cuya confección no requiere de la intervención del robot; es decir, se efectúan "off-line". Así mismo, con este tipo de programación, el operador no define, prácticamente, las acciones del brazo manipulado, sino que se calculan, en el programa, mediante el empleo de las instrucciones textuales adecuadas. 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. En esta labor no participa la máquina (off-line).
Yebra Pérez, J. & Lagos Fernández, N. (2002). Politécnica de Cataluña)
El lenguaje V+. (Tesis de Maestría, Universidad
������ ��
�� ������������ �������� �� �� �������� Los lenguajes de programación textual se encuadran en varios niveles, según se realice la descripción del trabajo del robot. Estos son los lenguajes de programación por orden creciente de complejidad: •
Lenguajes elementales, que controlan directamente el movimiento de las articulaciones del manipulador.
•
Lenguajes dirigidos a posicionar el elemento terminal del manipulador.
•
Lenguajes orientados hacia el objeto sobre el que opera el sistema.
•
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:
Yebra Pérez, J. & Lagos Fernández, N. (2002). Politécnica de Cataluña)
El lenguaje V+. (Tesis de Maestría, Universidad
������ ��
�� ������������ �������� �� �� �������� - 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.
Yebra Pérez, J. & Lagos Fernández, N. (2002). Politécnica de Cataluña)
El lenguaje V+. (Tesis de Maestría, Universidad
������ ��
�� ������������ �������� �� �� ��������
Referencia Barea, R. (2013). Introducción a la Robótica. (Universidad de Alcalá, Madrid) http://virtual.itspa.edu.mx/Robotica/archivos/IntroduccionRobotica.pdf
Joyanes Aguilar, L. (2008) Fundamentos de programación. Algoritmos, estructura de datos y objetos. Madrid: McGRAW-HILL/Interamericana de españa, S.A.U.
Marzal, A. & García I. (2003), Introducción a la programación con Python , 1 capítulo.
Matías, R.C.,(2012). Robótica: Entra al mundo de la inteligencia artificial . Revista Educ.arS.E, 8-10.
Yebra Pérez, J. & Lagos Fernández, N. (2002). Politécnica de Cataluña)
El lenguaje V+. (Tesis de Maestría, Universidad
http://ocw.upc.edu/sites/default/files/materials/15012628/40469-3452.pdf
������ ��
�� ������������ �������� �� �� ��������
Bibliografía Albea Sánchez, C. (2004). Estudio Técnico y de Vialidad de la Programación off-line de robots. (Universidad de Sevilla, Sevilla)
Barea, R. (2013). Introducción a la Robótica. (Universidad de Alcalá, Madrid) http://virtual.itspa.edu.mx/Robotica/archivos/IntroduccionRobotica.pdf
Joyanes Aguilar, L. (2008) Fundamentos de Programación. Algoritmos, estructura de datos y objetos. Madrid: McGRAW-HILL/Interamericana de España, S.A.U.
Mancino C., Notti M., Amadio G. (2009). Introducción a la programación .
Marzal, A. & García I. (2003), Introducción a la programación con Python , 1 capítulo.
Matías, R.C.,(2012). Robótica: Entra al mundo de la inteligencia artificial . Revista Educ.arS.E, 8-10.
Rosado Muñoz, A., Muñoz Marí, J. & Magdalena Benedito R. (2008). Herramienta e-learning para la programación de robots mediante entorno web. Revista d'innovació educativa, 45-48.
Yebra Pérez, J. & Lagos Fernández, N. (2002). Politécnica de Cataluña)
El lenguaje V+. (Tesis de Maestría, Universidad
http://ocw.upc.edu/sites/default/files/materials/15012628/40469-3452.pdf
������ ��