40

Lenguajes basicos para robots

Embed Size (px)

Citation preview

Page 1: Lenguajes basicos para robots
Page 2: Lenguajes basicos para robots
Page 3: Lenguajes basicos para robots

¿QUE ES UN LENJUAJE DE PROGRAMACION?

Un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como las computadoras.

http://es.kioskea.net/contents/304-lenguajes-de-programacion

Un lenguaje de programación" es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo.

Page 4: Lenguajes basicos para robots

CARACTERISTICAS:

• Legibilidad: consiste en si el lenguaje tiene una sintaxis sencilla, fáciles de leer y fáciles de compilar

• Ortogonalidad: permite combinar en una sola instrucción diversas características del lenguaje, de esta manera se consiguen programas más cortos y más compactos.

• Naturalidad para la aplicación: consiste en el lenguaje proporcione herramientas adecuadas para el fin para el que está pensado.

• Soporte a la abstracción: Solucionar tipos de problemas y no problemas concretos. Debe permitir que el programador pueda crear funciones y procedimientos.

• Entorno de programación: Los lenguajes han de ir acompañados de un entorno donde programar.

• Portabilidad de los programas: Es un lenguaje que permite crear programas que funcionen en cualquier maquina pertenezca a la plataforma que quiera, distinto fabricante, etc.

Page 5: Lenguajes basicos para robots

TENDENCIAS:

El "diseñador del lenguaje" es también un término algo nebuloso. Algunos lenguajes (como APL y LISP) fueron diseñados por una sola persona con un concepto único, mientras que otros (FORTRAN y COBOL) son el producto de desarrollo de varios años realizados por comités de diseño de lenguajes.

Los "Lenguajes Ensambladores" y los "Lenguajes Maquina" son dependientes de la máquina. Cada tipo de máquina, tal como VAX de digital, tiene su propio lenguaje maquina distinto y su lenguaje ensamblador asociado.

El lenguaje Ensamblador es simplemente una representación simbólica del lenguaje maquina asociado, lo cual permite una programación menos tediosa que con el anterior. Sin embargo, es necesario un conocimiento de la arquitectura mecánica subyacente para realizar una programación efectiva en cualquiera de estos niveles lenguajes.

Page 6: Lenguajes basicos para robots

Los lenguajes de " Alto Nivel" son los más utilizados como lenguaje de programación. Aunque no son fundamentalmente declarativos, estos lenguajes permiten que los algoritmos se expresen en un nivel y estilo de escritura fácilmente legible y comprensible por otros programadores. Además, los lenguajes de alto nivel tienen normalmente las características de " Transportabilidad".

Están implementadas sobre varias máquinas de forma que un programa puede ser fácilmente " Transportado " (Transferido) de una maquina a otra sin una revisión sustancial. En ese sentido se llama "Independientes de la maquina".

Ejemplos de estos lenguajes de alto nivel son PASCAL, APL y FORTRAN (para aplicaciones científicas), COBOL (para aplicaciones de procesamiento de datos), SNOBOL (para aplicaciones de procesamiento de textos), LISP y PROLOG (para aplicaciones de inteligencia artificial), C y ADA (para aplicaciones de programación de sistemas) y PL/I (para aplicaciones de propósitos generales).

Page 7: Lenguajes basicos para robots

TENDENCIAS ACTUALES:

•Aumentar el soporte para la programación funcional en lenguajes importantes utilizados comercialmente, incluida la programación funcional pura para hacer el código más fácil de razonar y de paralelizar (tanto en macro como en micro-niveles).

• Construir lenguajes para apoyar la programación concurrente y distribuida.

•Mecanismos para añadir al lenguaje verificación en cuanto a seguridad y confiabilidad: chequeo sintáctico extendido, control de flujo de información, seguridad de hilos

• Mecanismos alternativos de modularidad: mixins, delegados, aspectos

• Desarrollo de software orientado a componentes.

Page 8: Lenguajes basicos para robots

Mayor énfasis en cuanto a distribución y movilidad.

Integración con bases de datos, incluyendo XML y bases de datos relacionales.

Programación Orientada a Aspectos (AOP)

Lenguajes que soporten programar sobre los procesadores de la GPU en paralelo, como OpenCL.

Page 9: Lenguajes basicos para robots

CLASIFICACION DE LOS LENGUAJES DE PROGRAMACION:

SEGÚN NIVEL DE ANSTRACCION:

Los lenguajes de bajo nivel:Son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel es, por excelencia, el código máquina.

Los lenguajes de medio nivel:Hay lenguajes de programación que son considerados por algunos expertos como lenguajes de medio nivel (como es el caso del lenguaje C) al tener ciertas características que los acercan a los lenguajes de bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano y, por tanto, de alto nivel.

Los lenguajes de alto nivel:Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés.En BASIC, el lenguaje de alto nivel más conocido, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10.

Page 10: Lenguajes basicos para robots

SEGÚN PARADIGMA:

Paradigma imperativo:Describe la programación como una secuencia instrucciones o comandos que cambian el estado de un programa. El código máquina en general está basado en el paradigma imperativo. Su contrario es el paradigma declarativo. En este paradigma se incluye el paradigma procedimental (procedural) entre

otros.

Page 11: Lenguajes basicos para robots

Paradigma declarativo:No se basa en el cómo se hace algo ,sino que describe cómo es algo. En otras palabras, se enfoca en describir las propiedades de la solución buscada, dejando indeterminado el algoritmo (conjunto de instrucciones) usado para encontrar esa solución. Es más complicado de implementar que el paradigma imperativo, tiene desventajas en la eficiencia, pero ventajas en la solución de determinados problemas.

Paradigma estructurado:La programación estructurada se basa en una metodología de desarrollo de programas llamada refinamientos sucesivos: Se plantea una operación como un todo y se divide en segmentos más sencillos o de menor complejidad. Una vez terminado todos los segmentos del programa, se procede a unificar las aplicaciones realizadas por el pool de programadores.

Page 12: Lenguajes basicos para robots

Paradigma orientado a objetos:La programación orientada a objetos, intenta simular el mundo real a través del significado de objetos que contiene características y funciones. Los lenguajes orientados a objetos se clasifican como lenguajes de quinta generación.

Paradigma funcional:Este paradigma concibe a la computación como la evaluación de funciones matemáticas y evita declarar y cambiar datos. Hace hincapié en la aplicación de las funciones y composición entre ellas, más que en los cambios de estados y la ejecución secuencial de comandos. Permite resolver ciertos problemas de forma elegante y los lenguajes puramente funcionales evitan los efectos secundarios comunes en otro tipo de programaciones

Page 13: Lenguajes basicos para robots

Paradigma lógico:Se basa en la definición de reglas lógicas para luego, a través de un motor de inferencias lógicas, responder preguntas planteadas al sistema y así resolver los problemas.

CLASIFICACIÓN SEGÚN LA FORMA DE EJECUCIÓN:

Lenguaje compilados:Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).

Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código.

Page 14: Lenguajes basicos para robots

Lenguaje interpretados:Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar.

Page 15: Lenguajes basicos para robots

Lenguaje Principal área de aplicación Compilado/interpretado

ADA Tiempo real Lenguaje compilado

BASIC Programación para fines educativos Lenguaje interpretado

C Programación de sistema Lenguaje compilado

C++ Programación de sistema orientado a objeto

Lenguaje compilado

Cobol Administración Lenguaje compilado

Fortran Cálculo Lenguaje compilado

Java Programación orientada a Internet Lenguaje intermediario

MATLAB Cálculos matemáticos Lenguaje interpretado

Cálculos matemáticos Cálculos matemáticos Lenguaje interpretado

LISP Inteligencia artificial Lenguaje intermediario

Pascal Educación Lenguaje compilado

PHP Desarrollo de sitios web dinámicos Lenguaje interpretado

Inteligencia artificial Inteligencia artificial Lenguaje interpretado

Perl Procesamiento de cadenas de caracteres

Lenguaje interpretado

A continuación, encontrará una breve lista de los lenguajes de programación actuales:

Page 16: Lenguajes basicos para robots

LENGUAJE AL

Page 17: Lenguajes basicos para robots

El nombre significa Lenguaje para brazos (Arm Language) y

es de alto nivel, también desarrollado por el Centro de

Estudios en Robótica de la Universidad de Stanford. Es

utilizado en investigación, especialmente en humanoides

donde se requiere coordinación entre ambos brazos.

Lenguaje: AL • Trata de proporcionar definiciones acerca de los movimientos relacionados con los elementos sobre los que el brazo trabaja. Fue diseñado por el laboratorio de Inteligencia Artificial de la Universidad de Stanford, con estructuras de bloques y de control similares al ALGOL, lenguaje en el que se escribió. Está dedicado al manipulador de Stanford, utilizando como procesadores centrales, a un PDP 11/45 y un PDP KL-10.

http://es.slideshare.net/Slodnulius/lenguajes-de-programacin-en-la-robotica

Page 18: Lenguajes basicos para robots

Un sencillo ejemplo, de carácter didáctico, utilizando el lenguaje AL, puede mostrar el interés del control estructurado. Partiendo de la definición de unos objetos, se puede lograr una estructura superior que los relacione.

Supongamos que se dispone de los objetos 01 y 02, y se intenta colocar al primero encima del segundo. En la siguiente figura se muestra la configuración del sistema de este ejemplo.

Page 19: Lenguajes basicos para robots

Con referencia en la figura, 01T y 01B señalan, respectivamente, la parte superior e inferior del objeto 01, mientras que 01AS indica su posición de asimiento. Las partes del objeto 02 se denominan de la misma forma.

Un programa "orientativo", en AL, que coloque 01 sobre 02, podría ser:

MOVE ARM TO 01AS El brazo se desplaza hasta la posición de asimiento de 01.

GRASP Aprehende a 01.

AFFIX 01B TO ARM Fija el sistema de coordenadas de 01 con el de la pinza del brazo.

MOVE 01B TO 02T Mueve la parte inferior de 01 hasta la parte superior de 02.

RELEASE Suelta 01 sobre 02.

UNIFIX 01 Destruye la relación entre el sistema de coordenadas delbrazo y 01.

Page 20: Lenguajes basicos para robots

Con excepción de HELP, todos los lenguajes de este grupo están provistos de estructuras de datos del tipo complejo. Así, el AL utiliza vectores, posiciones y transformaciones; el PAL usa, fundamentalmente, transformaciones y el MAPLE permite la definición de puntos, líneas, planos y posiciones.

Sólo el PAL, y el HELP carecen de capacidad de adaptación sensorial. Los lenguajes AL, MAPLE y MCL, tienen comandos para el control de la sensibilidad del tacto de los dedos (fuerza, movimiento, proximidad, etc.). Además, el MCL posee comandos de visión para identificar e inspeccionar objetos.

http://www.monografias.com/trabajos3/progrob/progrob.shtml#ixzz3TrWAKL3L

Page 21: Lenguajes basicos para robots
Page 22: Lenguajes basicos para robots

Es un lenguaje de programación de alto nivel

desarrollado por Unimation Inc. para sus robots Unimate

y Puma. Es una extensión del BASIC. El sistema

operativo de VAL soporta la programación fuera de línea

y durante la operación, y puede comunicarse con

sensores táctiles y visuales. Está siendo utilizado por el

programa PUMA de General Motors, que consiste en la

robotización completa de una planta de producción de

automotores, la primera realizada en los Estados Unidos

de Norteamérica.

Robótica Industrial CAPITULO 5: PROGRAMACIÓN DE ROBOTS 2005

Page 23: Lenguajes basicos para robots

El VAL (Victor’s Assembly Language, después VistorScheiman), fue el primer lenguaje para robots comercialmentedisponible, que tiene parte de los conceptos del WAVE y del AL.VAL fue introducido en 1979 por Unimation, Inc. Para su seriede robots PUMA. Este lenguaje forma parte de la primerageneración de lenguajes de programación de robots.

Page 24: Lenguajes basicos para robots

El VAL (y los lenguajes de la primera generación) tiene limitaciones como la incapacidad para realizar cálculos aritméticos complejos para su uso durante la ejecución del programa, la incapacidad para hacer uso de sensores complejos y de los datos de los sensores y la capacidad limitada para comunicarse con otras computadoras. Tampoco pueden ampliarse para posibles mejoras futuras.

http://ocw.upc.edu/sites/default/files/materials/15012628/40469-3452.pdf

Page 25: Lenguajes basicos para robots

El breve programa que sigue es correspondiente a un operador de tomar y ubicar:

PROGRAM PICKPLACE1. MOVE P12. MOVE P23. SPEED 254. MOVE P35. CLOSEI 0.005. MOVE P37. MOVE P58. MOVE P69. SPEED 20

10. OPENI 0.00.END

Page 26: Lenguajes basicos para robots

Lenguaje de programación Gestual Punto A Punto

Page 27: Lenguajes basicos para robots

Robótica: Control, Detección, Visión e Inteligencia. K.S. FU, R.C González, C.S.G. LEE. McGraw Hill

Los lenguajes más conocidos en programacióngestual punto a punto son el FUNKY, creado porIBM para uno de sus robots, y el T3, original deCINCINNATI MILACROM para su robot T3.

En el lenguaje FUNKY se usa un mando del tipo"joystick" para el control de los movimientos,mientras que el T3 dispone de un dispositivo deenseñanza ("teach pendant").

Lenguaje de programación FUNKY

Page 28: Lenguajes basicos para robots

Robótica: Control, Detección, Visión e Inteligencia. K.S. FU, R.C González, C.S.G. LEE. McGraw Hill

Como en un grabador de cassettes, y en los doslenguajes mencionados, los movimientos puedentener lugar en sistemas de coordenadascartesianas, cilíndricas o de unión, siendo posibleinsertar y borrar las instrucciones que se desee.Es posible, también, implementar funcionesrelacionadas con sensores externos, así comorevisar el programa paso a paso, hacia delante yhacia atrás.

El lenguaje FUNKY dispone de un comandoespecial para centrar a la pinza sobre el objeto.

Page 29: Lenguajes basicos para robots

Lenguajes dedicados a la programación estructurada

Page 30: Lenguajes basicos para robots

Robótica: Control, Detección, Visión e Inteligencia. K.S. FU, R.C González, C.S.G. LEE. McGraw Hill

Desarrollado por la Universidad de Purdure parael manipulador de Stanford, es un intérpreteescrito en FORTRAN y Ensamblador, capaz deaceptar sensores de fuerza y de visión.Cada una de sus instrucciones, para mover elbrazo del robot en coordenadas cartesianas, esprocesada para que satisfaga la ecuación delprocesamiento. Como CPU, usan un PDP 11/70.

Lenguaje de programación PAL

Page 31: Lenguajes basicos para robots

Robótica: Control, Detección, Visión e Inteligencia. K.S. FU, R.C González, C.S.G. LEE. McGraw Hill

Lo creó la compañía MC DONALL DOUGLAS, como ampliación de sulenguaje de control numérico APT. Es un lenguaje compilable que se puedeconsiderar apto para la programación de robots "off-line".

Lenguaje de programación MCL

Page 32: Lenguajes basicos para robots

Robótica: Control, Detección, Visión e Inteligencia. K.S. FU, R.C González, C.S.G. LEE. McGraw Hill

Procede del Politécnico de Milán, al igual que el MAL, al que incorporaelementos de programación estructurada que lo potencian notablemente. Seaplica, también, al robot SIGMA.

Lenguaje de programación MAL EXTENDIDO

Page 33: Lenguajes basicos para robots

Lenguajes de programación específica a

nivel objeto

Page 34: Lenguajes basicos para robots

Robótica: Control, Detección, Visión e Inteligencia. K.S. FU, R.C González, C.S.G. LEE. McGraw Hill

El lenguaje RAPT fue creado en laUniversidad de Edimburgo,departamento de Inteligencia Artificial;está orientado, en especial, alensamblaje de piezas. Destinado alrobot FREDY, utiliza, como procesadorcentral, a un PDP 10.

Es un intérprete y está escrito enlenguaje APT.

Lenguaje de programación RAPT

Page 35: Lenguajes basicos para robots

Robótica: Control, Detección, Visión e Inteligencia. K.S. FU, R.C González, C.S.G. LEE. McGraw Hill

Su filosofía se basa en definir unaserie de planos, cilindros yesferas, que dan lugar a otroscuerpos derivados. Para modelar aun cuerpo, se confecciona unabiblioteca con sus rasgos másrepresentativos.

Seguidamente, se define losmovimientos que ligan a loscuerpos a ensamblar (alinearplanos, encajar cilindros, etc.).

Lenguaje de programación RAPT

Page 36: Lenguajes basicos para robots

Robótica: Control, Detección, Visión e Inteligencia. K.S. FU, R.C González, C.S.G. LEE. McGraw Hill

Creado por IBM para el ensamblaje de piezas; utiliza instrucciones, muycomunes, en el idioma inglés. Precisa de un ordenador de varios Megabytesde capacidad de memoria y, además de indicar, como el RAPT, puntosespecíficos, prevé también, colisiones y genera acciones a partir de lassituaciones reales.

El AUTOPASS realiza todos sus cálculos sobre una base de datos, que definea los objetos como poliedros de un máximo de 20,000 caras. Está escrito enPL/1 y es intérprete y compilable.

Lenguaje de programación AUTOPASS

Page 37: Lenguajes basicos para robots

Robótica: Control, Detección, Visión e Inteligencia. K.S. FU, R.C González, C.S.G. LEE. McGraw Hill

Procede del laboratorio de Inteligencia Artificial delMIT, para el robot SILVER, orientándose hacia elajuste de conjuntos mecánicos.

Aporta más inteligencia que el AUTOPASS y permiteuna buena adaptación al entorno.

Lenguaje de programación LAMA

Page 38: Lenguajes basicos para robots

Robótica: Control, Detección, Visión e Inteligencia. K.S. FU, R.C González, C.S.G. LEE. McGraw Hill

La operatividad del LAMA se basa en tres funcionesprincipales:

1. Creación de la función de trabajo. Operacióninteligente.

2. Generación de la función de manipulación.

3. Interpretación y desarrollo, de una formainteractiva, de una estrategia de realimentaciónpara la adaptación al entorno de trabajo.

Lenguaje de programación LAMA

Page 39: Lenguajes basicos para robots

Lenguaje de programación Python

Page 40: Lenguajes basicos para robots

Javier Díaz (2012). Manual de programación con robots para la escuela. Recuperado de:http://robots.linti.unlp.edu.ar/uploads/docs/manual_de_programacion_con_robots_para_la_escuela.pdf

Python es un lenguaje interpretado, lo que simplifica el proceso deprogramación y uso por parte de personas con escasa experiencia y loconvierte en un lenguaje utilizado de manera extensa para la iniciación a laprogramación.Además, Python provee una gran biblioteca de módulos que puedenutilizarse para hacer toda clase de tareas que abarcan desde programaciónweb a manejo de gráficos y, dado que soporta tanto programaciónprocedural como orientada a objetos sirve como base para introducirconceptos importantes de informática como por ejemplo abstracciónprocedural, estructuras de datos, y programación orientada a objetos, queson aplicables a otros lenguajes como Java o C++.