martes, 16 de marzo de 2010

ELECTRÓNICA (parte 2)

Sensores de Distancia

Los sensores de Distancia, son aparatos capaces de determinar la distancia existente entre ellos y un objeto que se encuentre en su “visión”. Esta característica puede ser necesaria para nosotros si queremos que nuestro robot sea autónomo. Con sensores de distancia, podremos conseguir que el robot luche de manera autónoma o suba escaleras por poner dos ejemplos.
En un combate, el robot necesita saber dónde se encuentra exactamente el contrincante. Veamos cómo funcionan los dos sensores de distancia típicos.

  • Sensor de Infrarrojos
El sensor de infrarrojos, emite un “rayo”, como el de los punteros láseres pero no visible por el ojo humano, que al encontrar un objeto en su trayectoria es reflejado. Según la intensidad con lo que vuelva el rayo se sabe la distancia existente al objeto. Es una medida precisa en cuanto a rango de acción, ya que medimos la distancia existente sólo hasta el objeto que tenemos justo delante en línea recta.

  • Sensor de Ultrasonidos

Por el contrario, el sensor de ultrasonidos emite un tren de pulsos ultrasónicos, éstos funcionan exactamente igual que lo haría un radar. El tren de pulsos sale y se dispersa, menor precisión. El tiempo que tarde el eco de nuestro tren de pulsos en volver indicará la distancia al objeto, pero a diferencia del sensor infrarrojos, al dispersarse el tren de pulsos esto provoca que no sólo se detecte el objeto que tengamos justo enfrente, sino que podemos recibir el eco de objetos que están más cerca pero fuera de nuestra trayectoria, generando continuos errores de aproximación.

  • Conclusiones
Con dichas características, sería lógico pensar que el sensor de infrarrojos es lo que necesitamos para detectar el contrincante, nada más lejos de la realidad. Es precisamente el error del sensor de ultrasonidos lo que nos servirá para saber dónde está el contrincante con mucha mayor precisión y velocidad que lo haríamos con un sensor de infrarrojos. ¿Cómo es posible?

Para conseguir dar la vuelta a la tortilla, necesitamos disponer de dos sensores de ultrasonidos. Los dos sensores lanzaran un tren de pulsos y recibirán la distancia al objeto, pero gracias a su gran rango de dispersión, los dos sensores detectarán al objetivo, y no sólo el que lo tiene justo en frente, con lo que por un simple cálculo de triangulación, se detecta automáticamente dónde se encuentra exactamente el contrincante. Además, el disponer de un gran campo de dispersión supondrá “barrer” más espacio en menor tiempo.


Para pruebas que requieran de mucha precisión, por ejemplo en la detección de escaleras, el sensor de distancia a utilizar es el infrarrojos, ya que la dispersión que utilizábamos para detectar el contrincante, a la hora de detectar escaleras, nos puede dar falsos positivos (al detectar por ejemplo, la escalera antes de tiempo, u otra escalera en posibles ecos).

Teniendo todo esto en mente, se ha decidido utilizar en el DY-BOTI para el combate, dos sensores ultrasónicos, en concreto el modelo SRF05 que posee un rango de acción de 4 metros y para la prueba de subir escaleras, se ha decidido utilizar un sensor de infrarrojos, concretamente el modelo GP2D12 con un rango de acción de 80 centímetros. Para el DY-BOTII se ha decidido no utilizar ésta clase de sensores y equiparlo con una CMUCamp3, con la que con complejos algoritmos podremos conseguir que el robot juegue a fútbol.


miércoles, 30 de diciembre de 2009

ELECTRÓNICA (parte 1)

Sensores de Caída

El robot debe de ser capaz de levantarse cuando está radiocontrolado como cuando está en modo autónomo. De hecho, en varias competiciones, a pesar de que el robot esté radiocontrolado, obligan a que la detección de la caída y la decisión de levantarse sea de manera autónoma.

Dentro de la categoría de "sensores de caída", se han incluido sensores avanzados que son capaces de realizar funciones más complejas que la "simple" detección de caídas, pero se ha considerado oportuno introducirlos aquí ya que además de detectar la caída, se utilizan para evitar dicha caída.

Existen tres tipos de sensores destinados a detectar una caída (entre otras cosas):
- Sensor de Inclinación
- Acelerómetro
- Giroscopio

  • Sensor de inclinación
Estos dispositivos funcionan de forma muy sencilla. Están compuestos por un cilindro, en el que en su interior hay una pelota, como un nivel. Dichos dispositivos son muy pequeños y baratos, no costando más de 5 euros. Tan sólo hay que montarlos con la inclinación que se desea detectar, cuando el robot supere dicha inclinación, la pelotita se moverá y generará un corto entre las dos patas del dispositivo.

Generalmente, una pata se conecta a tierra y otra a una pata del microcontrolador que se utilice en configuración Pull-up, con lo que el microcontrolador detectará un '1' siempre y cuando el robot no esté caído y por tanto el sensor no genere un cortocircuito para llevar la señal a '0'.

  • Acelerómetro
Este dispositivo es capaz de medir la aceleración existente según un eje, dos o tres. Suelen ser de tamaño también reducido aunque rondan los 30 euros de precio dependiendo de su complejidad y precisión.

Para su funcionamiento básico se suelen colocar de tal forma que cuando el robot esté erguido esté paralelo al suelo, con lo que no detectará aceleración alguna. Al caerse el robot, el acelerómetro detectará la propia aceleración de la gravedad y por lo tanto sabremos que el robot se ha caído.

Uno de los principales problemas que presenta dicho dispositivo es que genera continuos falsos positivos cuando el robot está andando de manera natural o realizando un movimiento brusco, con lo que hay que tener cierto código de control para evitar que el robot se levante cuando ya está erguido.

Además de detectar una posible caída, el lector ha podido darse cuenta rápidamente que podrían detectar un golpe del contrincante, por ejemplo, e intentar que el robot no se caiga ante el golpe.

  • Giroscopio
El giroscopio es de los tres el dispositivo más complejo. De tamaño igual al acelerómetro, es capaz de indicar la inclinación que el robot posee respecto a un eje o dos independientemente de golpes, aceleraciones o cualquier otro tipo de movimiento que pudiera provocar un falso positivo.Es un sensor relativamente caro ya que cuesta más de 50 euros, pero por contra nos brinda total precisión y control sobre la inclinación de nuestro robot. Es también utilizado para contrarrestar las diferentes inclinaciones y desvíos de la vertical que el robot experimenta mientras anda, por ejemplo.

Su función es complementaria al que realiza el acelerómetro, por lo que no es raro verlo funcionando a la vez que este.

  • Resumen
Existen tres sensores típicos capaces de detectar una caída e incluso de evitarla: sensor de inclinación, acelerómetro y giroscopio. El sensor de inclinación no es más que un simple nivel mecánico que detecta cuando el robot a superado cierta inclinación. El acelerómetro mide la aceleración existente en hasta tres ejes, siendo utilizado además para detectar golpes o empujones bruscos. El giroscopio, mide la desviación existente de hasta en tres ejes, siendo perfecto compañero del acelerómetro y contrarrestando pequeñas desviaciones de la vertical que tenga el robot a lo largo del movimiento normal.

  • Conclusiones
Con DY-BOTI predominó el precio y sencillez sobre todas las demás puntos, con lo que se escogió el sensor de inclinación. Sencillo, barato y eficaz. Con DY-BOTII no me conformo con detectar una caída, sino en evitarla a toda costa mediante complejos algoritmos si fuera necesario. Es por eso por lo que se ha decidido "equipar" a DY-BOTII con un acelerómetro de 3 ejes (ADXL335) acompañado de un completo giroscopio de 2 ejes (Dual Axis IDG300).

domingo, 6 de septiembre de 2009

Servomotores: Definición, Características y Elección

Servomotores

Antes de nada, hay que decir que se parte de un presupuesto inicial de 3.000 euros, aproximadamente es lo gastado en DY-BOT, pero con la salvedad que ahora compraremos exactamente lo que necesitamos a la primera, y no daremos rodeos ni gastaremos cientos de euros en servomotores inútiles...

La mayor parte del presupuesto irá destinado precisamente a la compra de los servomotores (algo más de 2000 euros). Pero antes de continuar, ¿qué son los servomotores y por qué se va a gastar semejante cantidad de dinero en un componente?


  • Definición

Los servomotores, son motores especiales que por norma no son de rotación continua, o sea, que a diferencia de los motores normales que giran continuamente, los servomotores mantienen una posición determinada indicada por el usuario mediante un pulso PWM. Un servomotor por norma general sólo gira 180 grados, pero como se ha indicado, tienen una característica especial, y es la de mantener dicha posición. Es por esto por lo que se utilizan para realizar la función que los músculos tienen en las personas. Internamente, están formados por un motor de rotación continua, una reductora (engranajes que aumentan la fuerza pero disminuyen la velocidad angular, la de giro) y electrónica necesaria de control.


  • Señal PWM

Los servomotores utilizan tres cables, uno de alimentación (de 4,8 a 7,2V por norma), otro para tierra (GND), y por último uno para la señal PWM. Una señal PWM (pulse width modulation en inglés) es un tren de pulsos en el que envía un pulso cada X segundos, y la duración de dicho pulso indicará, en nuestro caso, la posición que el servomotor debe establecer.

Una señal de PWM estándar para el control de servomotores es de 50Hz, o sea, un pulso cada 20ms (t_entre_pulsos), donde además, el ancho de dicho pulso puede variar entre 0,5 y 2,5 milisegundos (t_ancho_pulso).


  • Tipos de servomotor

Existen aproximadamente 3 tipos diferentes de servomotores según la tecnología utilizada. Los primeros servomotores, primera generación, eran servomotores analógicos. Dichos servomotores reciben la señal PWM que directamente es “leída”, comparada con un potenciómetro, resistencia variable unido al eje del servomotor que varía según la posición de éste, y se indica (se alimenta) al motor de rotación continua si debe moverse hacia delante, hacia atrás o no moverse.

Posteriormente aparecieron los servomotores digitales. Éstos servomotores son mucho más precisos y de reacciones más rápidas que los de primera generación, los analógicos. Los servomotores digitales básicamente introducen una pre-etapa al tratamiento de la señal. Esta pre-etapa consiste en analizar y reconstruir la señal PWM que le llega, y una vez limpia y perfecta, es introducida en la etapa analógica. Además, suelen añadir diversos trucos como multiplicar por 5 la frecuencia de la señal PWM para que el movimiento del servomotor sea más preciso y fluido.

Por último, aparecieron los servomotores de tercera generación, los servomotores serie. Se denominan servomotores serie porque su control ya no se realiza con una señal PWM, sino que se hace por el puerto serie. Los servomotores serie permiten el control de los servomotores mucho más preciso y rápido, ya que en las anteriores generaciones, al menos se debía esperar 20ms para notificar un cambio en la posición del servomotor. Por otro lado el cableado es mucho más sencillo y corto, ya que se conectan los servomotores uno detrás de otro y el microcontrolador tan sólo debe tener una única salida (aunque ésta se suele duplicar) evitando así tener decenas de pines dedicados para el control de los servomotores.

Finalmente se añaden características especiales tanto a los servomotores digitales como la los serie, permitiendo programarles el centro, ángulos máximos de giro, y comunicación en dos direcciones donde el servomotor puede devolver información de su posición, consumo, temperatura… En los de segunda generación, ésta información se manda en el tiempo de inactividad que se produce entre pulso y pulso de la señal PWM.


  • Materiales – reductora

La reductora son una serie de piñones que consiguen transformar la velocidad del motor en potencia. Son los que transportan la potencia del motor y resisten los golpes y aceleraciones del eje del servomotor.

Este juego de engranajes son de vital importancia, por la labor que realizan. Existen al menos 4 materiales diferentes, que ordenados del más débil al más fuerte son:

Nylon, Karbonite, Metal y Titanio.

El Nylon es una especie de plástico, sin duda alguna es el más débil y con el tiempo el rozamiento del engranaje generará “holguras” que repercutirán negativamente en su funcionamiento. Éste tipo de engranajes se suelen utilizar en servomotores de menos de 10Kg/cm abaratando y aligerando los servomotores.

El Metal es un compuesto 10 veces más fuerte que el Nylon. Es utilizado para servomotores de gran “torque” (fuerza realizada en Kg/cm) de hasta 20Kg/cm. Su desventaja es que además de ser más pesado que el Nylon, tiene un enorme desgaste por rozamiento en el funcionamiento normal del servomotor.

La Karbonite, es un compuesto de reciente utilización. Es 4 veces más fuerte que el Nylon, pero sobre todo tiene un desgaste muy reducido por el rozamiento, aunque es un material más caro que el Nylon y el Metal. Puede usarse en conjunto con el Titanio en los primeros engranajes (los que requieren menos fuerza) siendo posible verlos en servomotores de hasta 30Kg/cm (en compañía del Titanio).

El Titanio es el material que sin duda alguna recoge lo mejor de todos los anteriores materiales. Es ligero y aún así 48 veces más fuerte que el Nylon y además tiene un desgaste bajísimo al rozamiento. Por el contrario, es el material más caro. Puede verse en servomotores de hasta 100Kg/cm o incluso más.


  • Resumen

Los servomotores son motores especiales que son capaces de fijar y mantener una posición. Son utilizados como “músculos” en los robots debido a ésta característica, y es por tanto uno de los elementos más importantes del robot, tanto en número como en precio.

Existen servomotores analógicos, digitales y serie según su control. Internamente están construidos en diferentes materiales (engranajes) que van desde los baratos y “antiguos” Nylon y Metal hasta los caros y modernos Karbonite y Titanio.

La fuerza de un servomotor puede oscilar entre escasos gramos por centímetro (fuerza que realiza a un centímetro del eje) a decenas de kilogramos por centímetro.

  • Conclusión, ¿qué comprar?

Para construir el DY-BOT se pensó que era necesaria fuerza y precisión electrónica, es por esto por lo que se compraron los servomotores DYS-0120, los cuales son servomotores digitales metálicos (engranajes de metal) de 13Kg/cm. El problema estuvo en que DY-BOT llegó a pesar 2.530 gramos en la CampusParty. Teniendo en cuenta que los servomotores ejercían una fuerza de 13Kg/cm y que la pierna podía hacer palanca de hasta 8cm en condiciones normales, la fuerza se ve reducida a 1,625 Kg, inferior al peso del robot. Esto suponía un desgaste terrible de los servomotores, con lo que en su etapa final las holguras que tenían los servomotores DYS eran terribles. Eso sí, costaron 15 euros cada servomotor, y con un total de 22 servomotores se gastó sólo 330 euros, servomotores ideales para empezar sin duda alguna.

Para DY-BOTII se decidió "romper el cerdito" y comprar lo mejor a precio "barato". Existen 4 fabricantes importantes y de reputación: Robotics, Futaba, Kondo y Hitec.

Los servomotores Robotis (Koreanos) no siguen el estándar en cuanto a tamaño e incluso voltajes, si ésto no te importa, son los mejores servomotores del mercado sin duda alguna.

Los servomotores Futaba (Japoneses) sí siguen el estándar pero son servomotores terriblemente caros, (duplican o triplican los de la competencia), por lo que son descartados casi de salida.

Los servomotores Kondo (Japoneses) también siguen el estándar en tamaño, no así en voltajes, aunque eso es fácil de solventar tampoco siguen un estándar definido para el propio control serie de sus servomotores, hecho que te dificultará su control y manejo si no se usa electrónica de la propia Kondo. Desgraciadamente, a igual prestaciones, son casi el doble de caros que la competencia.

Para finalizar los servomotores Hitec (Koreanos) siguen el estándar tanto en tamaño como en voltajes, y además son los más baratos. Tienen servomotores con engranajes de Titanio, 30Kg/cm y permiten programarles tanto centro, máximos laterales y comportamiento (curvas de aceleración y precisión).


El modelo escogido es el 5990TG el cual se puede conseguir por unos 85 euros buscando bien (yo los conseguí a 75...), teniendo en cuenta que compré 25 para el robot y 3 de repuesto (siempre hay que comprar de repuesto) me salió a: 2.100 euros clavados. Fue comprado también por cuestiones mecánicas, como la de disponer de "doble eje", pero eso se verá más adelante.

lunes, 24 de agosto de 2009

Final y Comienzo de DY-BOT

No ha pasado ni dos semanas desde que conseguí ganar la Campus-Party de Valencia con mi DY-BOT. La lucha fue dura e intensa, pero al final consiguió sobreponerse al resto de rivales. Desgraciadamente, lo que los contrincantes robóticos no consiguieron en varios años, un humano torpe consiguió en escasos segundos, y es que nada más terminar la competición, un desafortunado enganchón tiró a DY-BOT de la mesa y literalmente lo partió en dos… Los daños ocasionados era cuantiosos y muy graves, no se pudo hacer nada por él.



DY-BOT murió en gloria…





Pero la muerte de DY-BOT no es la muerte de mi proyecto, el cual sigue con aires renovados. Es por eso que a continuación se narrará la construcción de DY-BOTII en vez de la de DY-BOT. DY-BOTII será un modelo muchísimo más avanzado con mejor estructura mecánica, electrónica y de programación en el que se intentarán corregir todas las carencias y errores cometidos sobre DY-BOT.

martes, 9 de junio de 2009

El final de un principio

Es Junio del 2009, estoy feliz ya que a pesar de la crisis tengo un trabajo a dónde agarrarme y en Julio presento mi proyecto de fin de carrera. Parecía que iba a ser un día como cualquier otro, pero varios amigos míos consiguieron chafarme el día por e-mail e incluso mi jefe por teléfono!! Un mismo argumento se repetía: "He leído una noticia que no me la puedo creer, pensaba que hablaba sobre ti, pero rápidamente me di cuenta que no era sobre ti. Acaban de otorgar a una chica el premio al mejor proyecto de fin de carrera"...

Todo empezó hace 2 años, cuando empecé a pensar en el proyecto de fin de carrera, una vez ya estaba cerca de terminar la carrera técnica de Telemática. Pensando en mis preferencias y gustos decidí entrar en el departamento de electrónica, ya que es ésta rama la que me apasiona, pero para mi desgracia el proyecto que me fue asignado fue uno en el que la electrónica ni se olía y tan sólo había que "picar código". ¡No entré en el área de electrónica de la universidad para acabar picando código!

Han pasado varios meses, me encuentro sin proyecto pero con muchas ganas de hacer algo importante. Un día cualquiera, navegando por un conocido portal de vídeos, encontré unos vídeos de unos curiosos robots japoneses, estilo Asimo, participando en la famosa competición Robo-One. Ávido de tener un proyecto, pensé que realizar un robot humanoide podría ser un muy buen proyecto de fin de carrera y, a pesar de que no tenía nada que ver con mi carrera ni conocimientos al respecto, ¡por fin había encontrado lo que buscaba!

No tardé en notificar al departamento de electrónica mi deseo de hacer dicho proyecto. La respuesta del departamento fue, cuanto menos, chocante: "Nosotros no vamos a realizar dicho proyecto, pero puede que en el departamento de automática encuentres alguien que te pueda ayudar." Y con un inexpresivo "suerte" fui desterrado del departamento de electrónica.

Siguiendo el consejo de mi ya ex-tutor de proyectos, me puse en contacto con el departamento de automática, los cuales rápidamente me respondieron de manera positiva, a pesar de que es un departamento en teoría sólo para carreras superiores, con lo que por fin tenía tanto proyecto, como tutor del mismo.

La primera reunión no fue desde luego lo que esperaba, lleno de ambiciones e ilusiones, lo primero que me ofrecieron fue programar un robot ya comprado, montado, y en gran parte programado por el fabricante. Dicho robot era el robonova, el cual fue diseñado y creado por Hitec para personas con conocimientos nulos tanto en programación como en robótica. Es un robot con enormes carencias tanto mecánicas, electrónicas como de programación, por no decir que tiraría el diseño y montaje de mi proyecto por la borda de un plumazo. ¡No estaba satisfecho! Así que sutilmente decliné la oferta haciendo hincapié en que mi proyecto era mucho más ambicioso.

A continuación les tuve que explicar cómo tenía pensado realizar dicho proyecto si no iba a comprar uno ya hecho. Sorprendido me quedé al darme cuenta que con sólo unas pocas semanas de investigación mis conocimientos sobre el tema eran ampliamente superiores a los que el departamento podría ofrecerme, eso, unido a que de ningún modo recibiría ayuda económica de la universidad y que me obligaban a estar presente determinadas horas para poder controlarme, me hizo presagiar lo peor, y tras varios desplantes por parte del departamento decidí realizar el proyecto yo sólo, ya que la universidad ni sabía, ni tenía media intención de ayudar o colaborar en dicho proyecto.

Estamos a mediados del 2009, y lo que hace dos años era un sueño ahora es real, tras muchísimo esfuerzo y una inversión cercana a 3.000 euros, puedo decir, y todo el mundo que lo conoce dice, que ahora mismo tengo el mejor proyecto que una persona haya presentado en varios años. Tras éstos dos años he aprendido a base de golpes cómo importar, he aprendido un ingente cúmulo de conocimientos en el área de la robótica, de lo que más orgulloso estoy, y hasta los más turbios entresijos del politiqueo que se cuece en nuestra sociedad vaya donde se vaya, y las universidades no son precisamente una excepción.

Acaban de otorgar el premio al mejor proyecto de fin de carrera acompañado de cuantía económica, al proyecto que en un pasado descarté por ser demasiado simple. Por momentos pienso que debería de haber aceptado dicho proyecto y ahora, además de no haberme gastado un mísero euro tendría el reconocimiento que por no merecer, no sienta peor. Pero tras varios auto-sopapos vuelvo a la realidad, contaré mi historia, ya que aunque no tenga reconocimiento alguno por parte de la universidad puedo servir de ejemplo para que alguna persona opte por el camino difícil y no por el fácil que es lo que se enseña en nuestros días.

Empieza la narración de mis "aventuras", aunque para los ávidos de conocimiento espero quedar a la altura, ya que éste blog intentaré enmarcarlo dentro de los técnicos, tratándose y enseñándose las diferentes soluciones dadas a todas y cada una de las dudas que a un robotero le asaltan nada más empezar un proyecto de dicha índole.