martes, 10 de septiembre de 2013

Conceptos básicos de robótica

En esta entrada se describen algunos conceptos fundamentales de robótica aplicados al EV3.

Hay diferentes enfoques para explicar el concepto de robot, por ejemplo, en la wikipedia leemos que:

Un robot es una entidad virtual o mecánica artificial. En la práctica, esto es por lo general un sistema electromecánico que, por su apariencia o sus movimientos, ofrece la sensación de tener un propósito propio. La independencia creada en sus movimientos hace que sus acciones sean la razón de un estudio razonable y profundo en el área de la ciencia y tecnología. La palabra robot puede referirse tanto a mecanismos físicos como a sistemas virtuales de software, aunque suele aludirse a los segundos con el término de bots.
Yo voy a dar otra explicación que creo que será más útil para hacerse una idea general de cómo son los robots de lego. Y lo voy a hacer tomando como punto de partida la definición de un Agente en el ámbito de las ciencias de computación [wikipedia: Agente_inteligente]

Un agente inteligente, es una entidad capaz de percibir su entorno, procesar tales percepciones y responder o actuar en su entorno de manera racional, es decir, de manera correcta y tendiendo a maximizar un resultado esperado. Es capaz de percibir su ambiente con la ayuda de sensores y actuar en ese medio utilizando actuadores (elementos que reaccionan a un estímulo realizando una acción).
En realidad, en la definición anterior podemos eliminar el término inteligente, y nos quedaría que una agente es una entidad capaz de percibir su entorno y actual en él. Un agente puede ser simplemente un programa de ordenador que recibe cierta información (percibe) y actúa (realiza acciones).

Pues bien, un robot es un agente situado en un entorno físico (o virtual) [wikipedia: Agente situado]. No es necesario ser inteligente o mostrar conductas racionales para ser un robot. Es por ejemplo el caso de los robots industriales, que se dedican a repetir las mismas acciones una y otra vez. Diferentes definiciones de agente ponen el énfasis en diferentes aspectos, como puede ser la capacidad de comunicarse con otros agentes, o la capacidad de tomar decisiones de forma autónoma, sin control directo del usuario.

Pues bien, cualquier robot Lego se ajusta a esa definición de agente situado, pues consta de una serie de sensores (de luz, contacto, etc.), una serie de actuadores (motores), y un centro de control (el ladrillo principal) que recibe información de los sensores y genera acciones. Dependiendo de la programación que hagamos del centro de control , la conducta de nuestro robot será repetitiva y mecánica (realizar ciertas acciones de forma prefijada), o flexible y adaptativa, capaz de adaptarse a los cambios en el entorno y enfrentarse a situaciones nuevas. 

Veamos los componentes centrales para construir un robot con Lego Mindstorms.

Arquitectura y componentes principales


La imagen superior muestra de arriba abajo y de izquierda a derecha, los componentes principales que conforman la arquitectura EV3: 
  • 2 x Motor grande (Servomotor)
  • Motor mediano (Motor lineal)
  • Ladrillo EV3
  • Sensor de contacto
  • Sensor de luz
  • Sensor de infrarrojos
  • Mando de control remoto

Ladrillo controlador (y fuente de alimentación)


El componente fundamental, y el que más cambios ha experimentado con respecto a la versión previa de Mindstorms, es el Ladrillo EV3, el cual tiene una doble función: controlador y fuente de alimentación.

El controlador es el elemento encargado de recibir la información procedente de los sensores, tomar decisiones (prefijadas o dependientes de la información obtenida por los sensores) y dar órdenes a los actuadores (como poner en marcha un motor)
Para su función de controlador, el nuevo ladrillo EV3 dispone de 4 conectores de entrada (para los sensores) y 4 conectores de salida (para los actuadores).

Además de controlador y fuente de alimentación, el propio ladrillo incluye elementos de entrada y salida que podemos considerar como sensores (entradas) y actuadores (salidas), los cuales describiremos más adelante.


Las 4 entradas, numeradas del 1 al 4, se sitúan en la parte anterior del ladrillo, y las 4 salidas, identificadas por las letras A a D, se sitúan en la parte posterior del ladrillo. En la parte posterior, además de las salidas encontramos el conector mini USB para conectarlo al PC.



En la parte inferior del ladrillo se alojan 6 pilas AA, a las cuales se accede mediante una práctica tapa sin tornillos. En un lateral encontramos una ranura para introducir una tarjeta micro-SD y un conector USB host, que nos permitirá conectar memorias USB.

Sensores

En el set 31313 encontramos 3 sensores, que de izquierda a derecha son:
  • El sensor de contacto, encargado de detectar presión, típicamente para detectar colisiones, aunque con otros usos.
  • El sensor de luz, con tres modos de funcionamiento: 
    • Medidor de luz reflejada
    • Medidor de luz ambiente
    • Detector de color (distingue 7 colores básicos)
  • El sensor de infrarrojos, con3 modos de funcionamiento
    • Modo proximidad: se utiliza para detectar la distancia
    • Modo baliza: se utiliza para detectar una fuente de infrarrojos, y puede obtener dirección y distancia a esa fuente.
    • Modo remoto: se utiliza para recibir órdenes de un control remoto.

Actuadores

Dentro de los actuadores encontramos 2 grupos:  los periféricos de entrada/salida incluidos en el ladrillo controlador (botones, luz led, pantalla y altavoz); y los motores. Dedicaremos otra entrada a los periféricos incluidos en el propio ladrillo. De momento basta con comentar que de momento los actuadores externos se limitan a 2 tipos de motores.
  • Motor lineal (en inglés se suelen conocer como DC motor, término equivalente a motor de corriente continua, como también se pueden denominar). Son motores que al recibir una corriente eléctrica la convierten en un movimiento rotatorio continuo, es decir, que giran y giran sin parar hasta que dejan de recibir electricidad.
  • Servomotor: es un dispositivo similar a un motor lineal  que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición. Esta característica los hace más adecuados que los motores lineales para tareas de precisión en las cuales es importante contar el número de rotaciones del motor.
El motor mediano (en el centro en la imagen) pertenece al primer tipo, mientras que los motores grandes pertenecen al segundo tipo.
Imagino que también se podrán utilizar los motores de la serie Power Functions, aunque será necesario adaptarlos de alguna manera, ya que usan conectores diferentes.

Conectores

Por último, el set incluye 7 cables de conexión en 3 tamaños distintos (hay 3 cortos, 3 medianos y 1 cable largo), más un cable USB (no se muestra en la imagen)

Y ahora qué?

Para construir un robot cualquiera se necesita, como mínimo, el ladrillo o bloque EV3 y algún elemento de entra y/o salida. Estrictamente hablando, el propio ladrillo EV3 contiene entradas y salidas, pero en ese caso sería más correcto hablar de computador que de robot, pues la capacidad de interaccionar con el entorno se limita a interaccionar con una persona. En cierta manera, un robot es un computador con una serie de periféricos que le permiten interaccionar físicamente con el mundo, más allá de los periféricos habituales (pantalla, teclado, escáner e impresora) usados para interaccionar con personas.

En la próxima entrada describiremos la programación del único robot incluido en las instrucciones que acompañan al Set 31313: el TRACK3R.


No hay comentarios:

Publicar un comentario