RobóticaSuBiré_Sec2

Page 1

Manual de Robótica 2 para secundaria Robots NXT y NAO Ing. Jesús Brito


2


Índice

1. Introducción ......................................................................... 4 2. Robot NXT ............................................................................ 5

2.1 Aspectos básicos sobre NXT y MINDSTORMS .............................................................................. 6 2.2 Secuencias paralelas ............................................................................................................................. 15 2.3 Concentradores de datos, tipos datos y creación de cables de datos .............................. 17 2.4 Actividades ................................................................................................................................................ 22

3. Robot NAO .......................................................................... 27

3.1 Aspectos básicos sobre NAO y Choregraphe .............................................................................. 28 3.2 Interactuando con el robot ................................................................................................................ 35 3.3 Agrupación de cajas de comportamiento .................................................................................... 40 3.4 Actividades ................................................................................................................................................ 43

4. Apéndice ............................................................................. 47

4.1 Diagrama de Flujo .................................................................................................................................. 47 4.2 Visión artificial ........................................................................................................................................ 50

3


1. Introducción En la robótica la interacción humano-­‐robot es parte esencial. Por lo cual el trabajo en esté curso centrará su atención en lograr interactuar con el robot. Para lo cual conoceremos nuevas herramientas del los software. Algunos científicos aseguran que, en la mediad en que la interacción sea cada vez más real, podremos hablar de una verdadera inteligencia artificial. Alan Turín, científico del siglo XIX, planteo que se podría hablar de una verdadera inteligencia artificial cuando, al poner a una persona en un cuarto, y a un ordenador en otro, una segunda persona interactúe por medio de algún medio de comunicación realizando preguntas a ambos, y no logre identificar quien es quien. Esto, según Alan, tendría que haber sido posible en 50 años, sin embargo, la realidad es que, a más de 50 años, aun es posible identificar quien es quien. Sin embargo, la interacción tiene muchas formas de manifestarse, las más importantes hoy en día, son la visual y la audio parlante. Donde se vuelve posible la conversación y el reconocimiento. La sensación de inteligencia en el robot, se ve potencializada, por ejemplo, cuando un robot es capaz de seguirte o de recocer tu voz. Ambas, serán nuestro campo de trabajo con el robot NAO, mientras con el NXT desarrollaremos nuestra habilidad en programación para hacer que el NXT realice tareas más complejas, a las vistas en el curso anterior, y obtener mayor, información por parte del robot, para conocer lo que está pasando durante el proceso.

4


2. Robot NXT

5


2.1 Aspectos básicos sobre NXT y MINDSTORMS

A continuación se presentarán los puntos más importantes a recordad, sobre el robot y el software, vistos en el curso anterior. El cerebro El ladrillo NXT es el cerebro del robot. En la parte superior posee tres puertos de salida con etiquetas A, B y C para motores o lámparas y un puerto USB para al NXT con la computadora. En la parte inferior cuenta con cuatro puertos de entrada con etiquetas 1, 2, 3 y 4 para conectar sensores.

Los sentidos: El sensor táctil es un interruptor que puede presionarse o liberarse.

6


El sensor acústico detecta el nivel de decibeles: la suavidad o intensidad de un sonido.

El Sensor fotosensible le permite al robot distinguir entre luminosidad y oscuridad.

El sensor ultrasónico le permite al robot ver y reconocer objetos, evitar obstáculos, medir distancias y detectar movimiento.

7


Los servomotores Los tres servomotores interactivos le proporcionan al robot la capacidad de moverse.

Todos los servomotores interactivos disponen de un sensor de rotación integrado. El sensor de rotación integrado mide las rotaciones del motor en grados (precisión de +/-­‐ un grado) o en rotaciones completas.

8


9


El software Vista general y secciones de la interfaz gráfica: 1. Robot Educador 2. Mi portal 3. Barra de herramientas 4. Zona de trabajo 5. Ventana Ayuda contextual 6. Mapa de Zona de trabajo 7. Paleta de programación 8. Panel de configuración 9. Controlador 10. Ventana de Trabajo

10


Bloques de programación La programación del NXT se realiza mediante bloques. Estos bloques son instrucciones que indican al robot que hacer. Los bloques están agrupados según la instrucción que indican al robot. Los grupos son: de acción, de sensores, de flujo, de datos y avanzados.

Para hacer uso de cualquiera de los bloques es necesario dar clic al ícono, arrastrarlo hasta el área de trabajo y colocarlo en la viga de secuencia como se muestra en el ejemplo:

Es importante mencionar que el primer bloque del programa debe de ser colocado en el recuadro de Inicio presente en el área de trabajo.

11


Cada bloque de programación cuenta con un panel de configuración en el que puede ajustarse la configuración, modificando los parámetros, del bloque seleccionado.

En la intimidad de los Bloques más usuales. Existen tres bloques de programación que son los más usuales. Bloque DESPLAZAR: Este bloque ubicado en el grupo de bloques llamado Acción, nos permite, controlar de uno a tres servomotores simultáneamente, determinar que motores usar, variar la potencia, la duración y la dirección de giro de los servomotores. Además, si se controlan solo dos, se puede variar la dirección del robot con el parámetro volante. En sus íconos, podemos encontrar reflejado, cada uno de los estados de sus parámetros.

12

Las letras nos indican los puertos habilitados, La primera flecha nos indica la dirección de giro, hacia donde avanza el robot . El siguiente ícono, semejante a un abanico, nos indica la potencia. El tercer ícono, en este caso una flecha curva, nos indica la duración de giro.


Bloque BUCLE: Este bloque se encuentra ubicado en el grupo de bloques llamado FLUJO. Es muy útil cuando necesitamos que una parte del programa o todo el programa se repita. En su panel de control podemos establecer cuantas veces o durante cuanto tiempo o mientras que un sensor se active, se repite la secuencia.

El bloque nos presenta dos íconos, con los cuales nos muestra el estado de cada uno de sus parámetros. El primero, presente en la parte inferior de la barra lateral derecha, nos dice cuantas veces será repetida la secuencia. El segundo, es solo visible, si se selección en el parámetro de control la opción de sensor. Bloque BIFURCACIÓN: Este bloque, ubicado en el grupo de bloques llamado FLUJO, sirve para establecer dos condiciones y dos secuencias, una para cada condición. Que se ejecutarán al cumplirse alguna condición establecidas por el sensor.

13


El controlador Una vez creado un programa haciendo uso de los bloques y conectado el NXT a la computadora a través del cable USB o vía Bluetooth, es el controlador, el encargado de establecer la comunicación desde la computadora hacia el ladrillo del NXT.

14


2.2 Secuencias paralelas

Como vimos en el curso anterior, la viga de secuencia, controla el flujo del programa. Indicando la secuencia en la que los bloques de programación se ejecutarán.

En este caso, primero se ejecutará DESPLAZAR y después el bloque SONIDO. Algunas veces será necesario ejecutar tareas simultáneamente. Para hacer esto, necesario tener otra viga de secuencia que sea paralela a la viga de secuencia principal. Esto quiere decir, que valla a la par en tiempos con la viga de secuencia principal. Para crear vigas de secuencia adicionales se puede utilizar el “punto de partida” o cualquier parte de la viga de secuencia principal. Por ejemplo, puedes hacer que la viga de secuencia principal del programa controle el desplazamiento del robot hacia adelante y que la viga de secuencia secundaria controle un brazo robótico colocado encima del robot.

15


Para crear una viga de secuencia paralela, coloca el puntero encima del punto de partida (o del cabo del cable), da clic, y manteniéndolo presionado mientras mueves el mouse hacia arriba o hacia abajo. De este modo obtendrás una viga de secuencia que puede conectarse a los bloques de programación. Al descargar y ejecutar el programa, los bloques de las dos vigas de secuencia se ejecutarán en paralelo. Puede utilizar cables de datos para que los bloques de las dos secuencias se comuniquen entre ellos.

Para crear una viga de secuencia nueva más adelante en el programa (es decir, que no empiece en el punto de partida). Mantén presionada la tecla Más y moviendo el puntero del mouse hacia arriba o hacia abajo desde una posición de la viga de secuencia principal, aparecerá otra viga de secuencia paralela.

Esto último, es muy útil cuando deseamos ejecutar a la par dos secuencias donde sus inicios no está donde mismo. 16


2.3 Concentradores de datos, tipos datos y creación de cables de datos

El concentrador de datos es una pestaña que se encuentra localizada en la esquina inferior izquierda de prácticamente todos los bloques de programación. Este concentrador de datos proporciona información generada por el bloque. La información se envía en forma de datos numéricos, lógicos y textuales. Los cables de datos transportan está información entre bloques de programación. Muchos bloques necesitan tener un cable de datos conectado para poder funcionar. Con estos cables podemos realizar variaciones a los parámetros que poseen los bloques. Un ejemplo puede ser el bloque DESPLAZAR. En él, podemos variar sus parámetros de potencia o duración. Cada cable de datos transporta un tipo de datos específicos, por lo cual, solo se puede conectar a una toma del mismo tipo de dato del concentrador de datos de otro bloque. Los cables de datos se identifican con colores específicos: • Los cables que transportan datos numéricos son de color amarillo. • Los cables que transportan datos lógicos (verdadero/falso) son de color verde. • Los cables que transportan datos textuales son de color naranja. Creación de cables de datos Un cable de datos se crea "sacándolo" del concentrador de datos de un bloque. Para abrir el concentrador de datos de un bloque, haz clic en la pestaña de la esquina inferior izquierda del bloque, una vez colocado en la zona de trabajo. Posteriormente pasa el cursor sobre el conector que se desea utilizar. La forma del cursor cambiará. En ese momento se da clic y se arrastra hacia la derecha, desenrollándose un cable de datos que se puede conectar a una toma del concentrador de datos de otro bloque. Para eliminar el cable basta con dar clic en el conector de la derecha.

17


Cables de datos averiados y valores no comprendidos Si un cable se conecta a una toma de un tipo distinto, el cable se tornara de color gris y se “interrumpe”, si se conecta correctamente se tornara del color correspondiente al dato.

Si un programa contiene cables grises, el programa no será posible descargar el programa al robot. Por otra parte si el dato transmitido por el cable es un valor no comprendido en el intervalo posible de la toma a la que está conectado, el bloque ignorará el valor o lo cambiará por una valor comprendido en el intervalo de la toma.

18


Un ejemplo son las tomas que admiten intervalos de entrada entre 0-­‐100, la toma forzará la entrada que no se encuentre dentro de su intervalo de manera que quede comprendida en él. Como ocurre con el caso mencionado de la potencia de un bloque DESPLAZAR, donde, si el valor de entrada es 150, el bloque lo cambiará por 100, que es el valor máximo permitido. Programa ejemplo “Visualización de Texto: Programa que muestre en la pantalla, mediante el sensor ultrasónico, la distancia a la que se encuentra el robot de un objeto. Como se muestra en al imagen a continuación:

*Nota: La onda que se muestra saliendo del sonar del robot, es solo una ejemplificación gráfica de cómo ocurre en la realidad.

19


Programación:

El sonar detecta la distancia a la que se encuentra el objeto. A través de un cable de dato la distancia se manda al bloque “NÚMERO A TEXTO” que lo convierte en texto. Mediante otro cable de dato se envía ya como texto al bloque “TEXTO” el cual agrega al texto recibido la contracción “cm”. Finalmente con otro cable de texto se manda al bloque “DISPLAY” que visualiza el texto en la pantalla.

Cabe mencionar que, al principio, el primer cable de dato era de color amarillo porque el dato era numérico (indicaba la distancia). Al pasar por el bloque “NÚMERO A TEXTO”, este se convierte en texto y es por eso que el cable de dato que sale de el bloque es de color naranja, al igual que el que sale de el bloque “TEXTO”. Tablas de Concentradores de Datos Cada bloque cuenta con un archivo de Ayuda, al cual se puede acceder dando clic en “Más Ayuda” en la sección de Ventana Ayuda Contextual. Ubicada en la esquina inferior derecha de la interfaz gráfica. Solo es necesario contar con una conexión a internet. Este archivo de ayuda cuenta con una tabla donde se pueden observar las diferentes características de las tomas del concentrador de datos del bloque.

20


Ejemplo Tabla del bloque DESPLAZAR:

Los íconos nos muestran si la toma contiene entrada y salida, con lo cual quiere decir que puede recibir algún dato para ser modificado el parámetro o solo enviar el valor del parámetro. Por otra parte, se nos muestra el tipo de dato que puede ser recibido, y en algunos casos, el tipo de dato que puede ser enviado. Si alguna vez se presenta alguna duda o un erro que no se logra resolver, consultar la Tabla de datos puede ayudar a descartar malas conexiones.

21


2.4 Actividades

ACT#1

“INTERFAZ DE USUARIO”

Saber para que se sirve cada parte de la interfaz de usuario, nos ayudar a realizar una buena programación. INSTRUCCIONES: En base al pdf que te ha proporcionado tu maestro, enlista y explica cada una de las secciones de la interfaz de usuario antes mencionadas.

22


23


ACT#2

“CONCENTRADOR DE DATOS” Conocer que datos puede recibir o proporcionar cada bloque es algo que nos ayudará a una programación cada vez más compleja. Con lo cual podremos resolver o realizar tareas más desafiantes. INSTRUCCIONES: Selecciona 5 bloques, cada uno de diferente grupo de bloques. Realiza un dibujo sobre cada uno donde se muestre su concentrador de datos. Posteriormente indica que tipo de dato recibe o envía cada toma. Pues ayudarte de la taba de datos de cada uno de los bloques. (Adecúate al espacio proporcionado)

24


25


ACT#3

“ANALIZANDO” Es importante poder reconocer que es lo que hace un programa. Ello nos puede ayudar a saber detectar posibles errores antes de ejecutar el programa y corregirlos. O también nos puede ayudar a exigir de mejor manera el programa. INSTRUCCIONES: Ve la imagen que a continuación se te presenta. La imagen es de un programa que se mostro como ejemplo anteriormente, con un pequeña variación. Escribe el nombre de el o los bloques que se agregaron al programa original y describe que es lo que realizara el programa a causa de los cambios.

Programa:

Descripción:

26


3. Robot NAO

27


3.1 Aspectos básicos sobre NAO y Choregraphe

A continuación se presentarán los puntos más importantes a recordad, sobre el robot y el software, vistos en el curso anterior. Especificaciones técnicas del Robot

Sensores:

4 micrófonos en la cabeza.

2 cámaras frontales.

2 infrarrojos (IR), en la parte frontal.

Sonar frontal con 2 emisores y 2 receptores. 12 de contacto: 1 en ambos pies, 3 en ambas manos, uno frontal, 3 en la cabeza. 2 girómetros 1 acelerómetro 36 Encoders 4 de fuerza resistivo en cada pie.

Con todo esto, nuestro robot puede “ver” a través de las cámaras, “escucha” por medio de los micrófonos y “habla” gracias a las bocinas.

El software La programación se realiza a través de un software llamado Choregraphe. El cual es un software que permite varios tipos de programación; desde una muy sencilla(iconográfica) mediante el uso de las box behavior. La interfaz grafica del programa, que es lo que vemos en la pantalla, resulta muy amigable e intuitiva, ya que los nombres que tienen cada sección o los elementos de programación, junto con los dibujos, son increíblemente descriptibles. A continuación, un ejemplo de la visualización más común del programa donde se encuentran habilitadas las visualizaciones “Box libreries”, “Behavior manager”, “Video monitor” y “Robot view” (acomodo de arriba a abajo y de izquierda a derecha):

28


Las Cajas de comportamiento (Box behavior) Las cajas de comportamiento, o también llamadas box behavior, son los elementos de programación con los que cuenta el Choregraphe. Estas cajas pueden ser de diferentes tipos de acciones en el robot: movimiento, sensado, reconocimiento visual, auditivo, control, comunicación, etc. Dichas cajas se encuentran o se localizan en las librerías, donde las carpetas contenedoras tienen nombres que hace referencia al tipo de cajas que contienen. Para hace uso de cualquiera de las cajas, basta con ingresar a la carpeta dando doble clik con el botón derecho y seleccionar el nombre de la caja que deseamos, y arrastrar la selección hecha hasta el área de trabajo.

29


Una vez arrastrada la selección al área de trabajo, basta con soltar para que aparezca la caja seleccionada.

Además, si prestamos atención, podremos ver que debajo de la librería de las cajas nos aparece un pequeño recuadro donde se nos da una pequeña explicación sobre la caja; qué hace y cómo funciona. Si deseamos saber un poco más, basta con colocar el cursor sobre la caja de comportamiento, dejarlo un instante e 30


inmediatamente después aparece un recuadro amarillo con una explicación más amplia sobre como utilizarla.

En la mayoría de las caja de comportamiento, vamos a encontrar que parte de su estructura gráfica la componen unos pequeños cuadros en ambos costados. Estos cuadros reciben el nombre de entradas y salidas (entradas los cuadros del lado izquierdo y salidas los del lado derecho).

Las entradas tienen la función de ser las que reciben la señal que necesita la caja de comportamiento, para ejecutar la acción. Si no recibe tal señal, la caja no realiza la acción que le es propia; sentarse, hablar, reconocer objetos, comparar, etc. Las salidas, por su parte, son las que envían las señales del resultado obtenido, por el robot, de la acción indicada por la caja. Señales que posteriormente, otra u otras cajas necesitarán recibir para comenzar.

31


Ahora bien, existen cuatro tipos de señales: dynamic, “bang”, number y string. Que son iguales para las entradas y salidas. Los nombres que reciben las señales están definidos por su contenido. Una señal de tipo number es aquella que contiene números, valores. Una de tipo string contiene cadenas de caracteres (frase). De tipo bang no contiene información, sino solo un pulso, y una de tipo dynamic es aquella que puede contener cualquiera de los otros tres tipos. Las señales, viajan a través de un conductor, que en apariencia, tiene la forma de ser un cable que conecta las salidas con las entradas.

El conector se obtiene dando clic en la salida a conectar y arrastrar el cursor hasta la entrada deseada.

32


Saber que función realiza cada entrada o cada salida, es solo cuestión de colocar el cursor sobre la entrada o salida deseada, dejar que aparezca un recuadro con información exacta, y leer lo que dice en la parte de TOOLTIP.

Básicamente, la programación, consisten en la buena selección de las cajas de comportamiento, el orden de conexión ente ellas y utilizar las entradas y salidas correctas. Los tipos de cajas de comportamiento Algunos de los tipos de cajas que más utilizaremos en el curso serán los siguientes: audio, flow control, motion, sensing, trackers y vision. En las cajas de las carpetas de audio, tenemos dos tipos de cajas: las que indican al robot alguna acción a realizar (decir algún texto, preguntar, localizar algún sonido, etc.) y las que modifican algún parámetro del robot (volumen, idioma). En las primeras, las cajas cuentan con dos entradas, una para iniciar y otra para finalizar el comportamiento. Las segundas cuentan con una sola entrada, que automáticamente realiza la variación del parámetro. Las salidas en todas ellas son muy variadas en cantidad y en tipo. Algunas solo indican que se realizo la variación del parámetro y otras mandan una cadena de caracteres, valores, indicación de fin, etc. En el caso de las cajas contenidas en la carpeta flow control, no podemos hablar de una generalidad. En ellas encontramos de una a dos entradas. Las que cuentan con una entrada, están para recibir en ella un valor, una cadena de caracteres y/o una señal de disparo. Casi todas las que cuentan con dos, son para iniciar o para la acción. Sus salidas, al igual que en el caso de las contenidas en la carpeta de audio, son muy variadas. Las entradas en las cajas de la carpeta de motion, que en general son dos para aquellas que generan movimiento, tienen la finalidad de iniciar o detener dicho

33


movimiento. Las salidas por su parte, que para las mismas cajas también son dos, tienen la finalidad de indicar si se logro realizar dicho movimiento (pararse, sentarse, caminar, etc.) o si fue detenido, y si no fue posible realizarlo después de un número de intentos establecido. Aquellas cajas que solo son para modificar la rigidez o evitar la colisión, solo cuentan con una entrada y una salida; la entrada para iniciar y la salida para indicar que ya se realiza. En sensing, la mayoría de las cajas tienen dos entradas, que al igual, sirven para iniciar o detener la acción indicada. Sus salidas en cambio, una es para indicar si se ha detenido la acción, las otras, que en cantidad pueden variar, son para indicar valores, condiciones o que sensor a sido estimulado. Las cajas de Tracker, cuentan con entradas y salidas de inicio y fin de la acción o comportamiento, y salidas para indicar que se ha detenido. Y otras, para indicar que está sucediendo durante la acción o comportamiento. Y la carpeta de visión cuenta con cajas que tienen dos o una entradas. Algunas son la pareja de inicio y fin del comportamiento y otras solo activan la acción. Las salidas indican que se ha realizado o se realiza la acción y las otras el fin y el estado de la acción. Lo que nunca debes olvidar antes, durante y después de programar El siguiente listado son aspectos importantes a recordar siempre que programes al NAO: 1.-­‐ Entradas y Salidas: verifica cual es la función que desempeña cada entrada y salida antas de conectar. El éxito de tu programa depende, en mucho, de que todo este bien conectado. 2.-­‐ Posición segura: posición estable que tendrá el robot, al inicio y al final, de cada programa. En nuestro caso la posición será sentado. 3.-­‐ Habilitación de servos: Habilita los servomotores antes, y solo antes, de cargar el programa en el controlador. 4.-­‐ Deshabilitación de servos: Al concluir un programa en el robot, siempre deshabilita los servos del NAO. 5.-­‐ Conexión con Computadora-­‐NAO: antes de comenzar a programar, verifica que la conexión existe. La mejor comprobación es viendo que el robot virtual y el real tienen los mismos colores y la misma posición. 6.-­‐ Si no responde el robot: antes de modificar cualquier parte de tu programa, o de reiniciar el robot, comprueba los puntos 2 y 4.

34


3.2 Interactuando con el robot

Parte esencial que hace a un dispositivo ser llamado robot, es la interacción, ya sea visual o auditiva. Esto significa, que el robot sea capaz de guardar imágenes de objetos, reconocerlos posteriormente y decir lo que es. Y que sea posible mantener una conversación fluida con él a través del reconocimiento de voz. En este casó, el NAO tiene la capacidad visual de guardar en su memoria, no solo una gran cantidad de imágenes de objetos y reconocerlos posteriormente, sino que de igual manera puede hacerlo con rostros. Las cajas de comportamiento que sirven a estos propósitos son:

Su capacidad auditiva le permite desde localizar en el espacio, la fuente donde se ha generado un ruido y seguirlo con su cabeza, identificar una voz y mantener una conversación. Las cajas que nos permiten realizar esto son:

35


Reconocimiento visual El primer paso a seguir es para lograr que el robot reconozca un rostro, es el de guardar la imagen del rostro en su memoria. A este proceso se le conoce como aprender y se realiza de la siguiente manera. 1. Habilita la visualización “Video monitor” que se encuentra en el menú View:

2. Coloca en el área de trabajo la caja Learn Face, da clik en el botón play y un doble clik en la entrada de la caja, para ingresar el nombre correspondiente al rostro:

36


Inmediatamente después los ojos del robot se tornarán en color rojo y debe de ser colocado el rostro de la persona delante de las cámaras del robot. Posteriormente los ojos del robot se pondrán de color verde cuando se grabe el rostro. Ahora que se ha guardado la imagen, se puede hacer que el robot lo reconozca y diga quien es. Para ello, colocamos la caja Face Reco y la conectamos a una caja de Say Text.

La caja Say Text se encuentra dentro de la caja Say. En el caso de objetos o lugares, el proceso de aprendizaje se realiza mediante el botón Learn que se encuentra en la visualización “Video monito”.

37


Una ves puesto el objeto delante de la cámara del robot, damos clic y guardamos la imagen. Para reconocer el objeto, utilizamos la caja Vision Reco. en vez de Face Reco.

Al ser reconocido, aparece un cuadro de dialogo donde colocamos el nombre del objeto o lugar. Es importante establecer una forma de escribir los nombres de los objetos o rostros, ya que tendremos que hacer uso de ellos más adelante y si no recordamos la forma en que se escribieron, no podremos utilizarlos correctamente. Reconocimiento auditivo En este punto, nos centraremos en poder tener una conversación con el robot. Donde el robot nos haga alguna pregunta y nosotros demos una respuesta que genere alguna acción. Para lograr esto, colocamos la caja Choice en el área de trabajo:

38


Damos doble clik en la caja para poner la pregunta que deseamos que realice, el idioma a utilizar y las respuestas posibles que podemos darle:

Una vez realizado esto, la caja nos dará, como salida, la palabra reconocida, con lo cual podemos realizar una comparación para ver que acción realizar. Para ello utilizaremos la casa “Switch Case”, la cual será conectada a la caja “Choice”.

En la caja “Swhitch Case” colocaremos las palabras que puede identificar el robot a través de la casa Choice. Las actividades a realizar se conectarán a las salidas de la caja Switch Case.

39


3.3 Agrupación de cajas de comportamiento

El Choregraphe nos ofrece la posibilidad de crear nuevas cajas de comportamiento. Estas cajas se crean a partir de cajas de comportamiento que realizan una acción en conjunto. Por ejemplo, podemos crear una caja de comportamiento que al reconocer un rostro y lo salude por su nombre. Con lo cual podemos reutilizar más adelante el mismo comportamiento en otros programas. El proceso es muy sencillo, basta con seleccionar las cajas que en conjunto realizan el comportamiento como el antes mencionado, y dar clic con el botón derecho y seleccionar convertir a caja. A esta nueva caja tendremos que asignarle un nombre, de preferencia que sirva de referencia a lo que realiza, una descripción a la caja y una imagen. Este cualidad del programa es muy practica, ya que, nos permite pasar de esto:

Donde comienza a ser un problema entender como están conectadas e intentar crecer el programa, de ser necesario, parecería imposible.

40


A esto:

Donde es más sencillo entender que está pasando e inclusive crecer el programa. Ejemplo: Selecciona las cajas de comportamiento, da clic con el botón derecho y selecciona la opción “Convert to Box”, como se muestra en la imagen.

41


42

Asigna el nombre de la caja, escribe una pequeña descripción y asigna una imagen a la caja:


3.4 Actividades

ACT#1

“TOOLTIP”

Cada entrada y cada salida de las cajas de comportamiento cumplen con una función especifica. Saber cual es resulta básico para una buena programación. INSTRUCCIONES: Selecciona 5 cajas de comportamiento. Cada caja de comportamiento debe pertenecer una carpeta distinta. Realiza un dibujo claro y señala, en cada entrada y salida, cual es su función. Aprovecha el espacio. No amontones o encimes.

43


44


ACT#2

“BOX BEHAVIOR”

Ocho han sido las cajas de comportamiento que hemos presentado, como las útiles para la interacción con el robot. Conocer como funcionan nos proporcionan la posibilidad de crear programas con una muy buena interacción.

INSTRUCCIONES: Realiza un dibujo de cada una de ellas en el siguiente espacio y escribe una buena explicación de cómo se utiliza.

45


46


4. Apéndice

4.1 Diagrama de Flujo

Un Diagrama de Flujo representa la esquematización gráfica de un algoritmo, el cual muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. Su correcta construcción es sumamente importante porque, a partir del mismo se escribe un programa en algún Lenguaje de Programación. Si el Diagrama de Flujo está completo y correcto el paso del mismo a un Lenguaje de Programación es relativamente simple y directo. Es importante resaltar que el Diagrama de Flujo muestra lugares de origen y destino de los datos, transformaciones a las que son sometidos los datos, lugares en los que se almacenan los datos dentro del sistema, los canales por donde circulan los datos. Además de esto podemos decir que este es una representación reticular de un sistema, el cual lo contempla en términos de sus componentes indicando el enlace entre los mismos. Un diagrama de flujo consta de un conjunto de símbolos con diferentes significados susceptibles de ser conectados entre si. En todo diagrama de flujo podemos encontrar los siguientes elementos: a) Inicio de proceso. b) Especificación de la alimentación de datos para efectuar el proceso. c) Acciones aplicables a los datos. d) Obtención de resultados. e) Fin del proceso. Para cada una de estas actividades existen símbolos específicos que denotan los elementos o acciones que se tomarán en el proceso. Nota: Éstos han sido normalizados por el Instituto Norteamericano de Normalización (ANSI).

47


Símbolos

48


Reglas Básicas 1. Todos los símbolos han de estar conectados. 2. A un símbolo de proceso pueden llegarle varias líneas 3. A un símbolo de decisión pueden llegarle varias líneas, pero sólo saldrán dos. 4. A un símbolo de inicio nunca le llegan líneas. 5. De un símbolo de fin no parte ninguna línea. Diagrama de flujo Genérico

49


4.2 Visión artificial

Conceptos generales Se puede definir la “Visión Artificial” como un campo de la “Inteligencia Artificial” que, mediante la utilización de las técnicas adecuadas, permite la obtención, procesamiento y análisis de cualquier tipo de información especial obtenida a través de imágenes digitales. La visión artificial la componen un conjunto de procesos destinados a realizar el análisis de imágenes. Estos procesos son: captación de imágenes, memorización de la información, procesado e interpretación de los resultados. La función de una cámara es capturar la imagen proyectada en el sensor, vía las ópticas, para poder transferirla a un sistema electrónico. Las cámaras utilizadas en visión artificial requieren de una serie de características que permitan el control del disparo de la cámara para capturar piezas que pasan por delante de ella en la posición requerida. Son mas sofisticadas que las cámaras convencionales, ya que tienen que poder realizar un control completo de: tiempos, señales, velocidad de obturación, sensibilidad, etc. Se clasifican en función de: La tecnología del elemento sensor. • Cámaras de tubo. Se basan en la utilización de un material fotosensible que capta la imagen, siendo leída por un haz de electrones. • Cámaras de estado sólido CCD (Charge – Coupled – Device). Se basan en materiales semiconductores fotosensibles para cuya lectura no es necesario un barrido electrónico (mas pequeñas que las de tubo) La disposición física. • Cámaras lineales. Se basan en un sensor CCD lineal • Cámaras matriciales. Se basan en un sensor CCD matricial, lo que permite el análisis de imágenes bidimensionales. Hay una cámara específica para cada aplicación, color, monocromo, alta definición, alta sensibilidad, alta velocidad, infrarrojas, etc. A continuación una breve explicación del funcionamiento de las camas mencionadas:

50


Cámaras lineales. Construyen la imagen línea a línea realizando un barrido del objeto junto con un desplazamiento longitudinal del mismo. Obtención de la imagen mediante barridos sucesivos.

Cámaras matriciales. El sensor cubre un área que está formada por una matriz de pixeles. Los sensores de las cámaras modernas son todos de tecnología CCD formados por miles de diodos fotosensibles posicionados de forma muy precisa en la matriz.

51


Con la visión artificial se pueden: • Automatizar tareas repetitivas de inspección realizadas por operadores. • Realizar controles de calidad de productos que no era posible verificar por métodos tradicionales. • Realizar inspecciones de objetos sin contacto físico. • Realizar la inspección del 100% de la producción (calidad total) a gran velocidad. • Reducir el tiempo de ciclo en procesos automatizados. • Realizar inspecciones en procesos donde existe diversidad de piezas con cambios frecuentes de producción. Las principales aplicaciones de la visión artificial en la industria actual son: • Identificación e inspección de objetos. • Determinación de la posición de los objetos en el espacio. • Establecimiento de relaciones espaciales entre varios objetos (guiado de robots) • Determinación de las coordenadas importantes de un objeto. • Realización de mediciones angulares. • Mediciones tridimensionales.

52


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.