lunes, 17 de junio de 2013

Quinta practica - Segway

Esta practica se basa en el equilibrio dinámico, el robot en reposo estaría caído.
Un control PID tiene que regular el equilibrio  del robot .

PID

El PID que significa Proporcional, Integral, Derivado es un tipo de control de lazo cerrado, esto significa que actúa teniendo en cuenta el control(valor) de la salida.

La señal menos el valor de la salida generan un valor llamado  Error
este se calibra  operando con los distintos componentes del PID para general un nuevo valor de señal de entrada al sistema( en este caso los motores del robot).
para medir la salida como necesitamos un sensor rápido se usa el de infrarrojos.

----------------------------------------------------------------------------------------------------------------------------------

Soluciones que han ido surgiendo

-El algoritmo no tiene mucho problema en si mismo, como trabajamos con valores puntuales la integral se convierte en suma y  la derivada en restas.
Hay que encontrar el valor P que lo mantenga en equilibrio, y luego con I y D hacerlo mas robusto y duradero.

-El diseño de hardware tiene mas trabajo, se debe buscar un punto que tenga el centro de gravedad lo mas bajo posible y  centrado con  su base.
conviene que  el sensor de infrarrojos no este muy alto para reducir interferencias externas.  Y colocado en una posición que  una pequeña variación  del eje de gravedad sea captado rápidamente.

-Una idea para  ir calibrandolo es  considerar el problema como un péndulo invertido  y  tener una estimación  de  mas o menos donde podría estar el valor Proporcional. Cuando ya consiga estar estable ir metiendo valores un poco por tanteo  de I y D  y estudiar como se va comportando.
También es recomendable  que los ciclos/ segundo del programa sean altos para que pueda  captar las variaciones lo antes posible.

-Y bueno una vez hecho lo "científico" lo mas importante es tener suerte  para dar con unas contantes buenas,  que lo mantengan lo mas robusto posible y ya entra un poco en el área de arte y suerte.
Haciendo que sea la practica mas  desesperante porque es difícil controlar todas las condicione  al 100%; Un  cambio en la inclinación de la posición origen, un cambio en la posición de los motores, la carga de la batería, la luz ambiente,  el  contacto con el suelo, el viento, una mota de polvo, la holgura de las piezas, pueden hacer que no sea fácil encontrar las constantes idóneas.

-Para intentar mejorar la superficie de equilibrio le hice una umbralización  con zona estable para que no estuviese vibrando, equilibrio con variaciones pequeñas, zona sensible que es donde  la regulación es decisiva, y alarma que pertenece ya al campo  de no  recuperación, también tuve una versión que diferenciaba adelante de atrás ya que el robot no estaba del todo equilibrado.

----------------------------------------------------------------------------------------------------------------------------------

 Vídeo de su comportamiento

 

 ----------------------------------------------------------------------------------------------------------------------------------
Si hubiese tenido mas suerte con  esta practica, y un sensor giroscopio  me habría atrevido a intentar hacer un ball-bot  como el de este vídeo
manual de ensamblado

 

domingo, 16 de junio de 2013

OFF TOPIC

Experimentos con ROS

http://es.wikipedia.org/wiki/Sistema_Operativo_Rob%C3%B3tico

Java permite una cierta abstracción y portabilidad de programas entre distintos modelos de robots. Pero Lejos esta muy enfocado al NXT, La idea de ROS es que una implementación sea lo menos dependiente de la arquitectura del robot .
El traspaso de un algoritmo de un modelo de robot a otro no suponga empezar casi desde 0.
Instalarlo en linux no es demasiado difícil. lo malo es que necesitaba pisar el software  que interpreta java del NXT en el robot  y eso no lo he querido hacer .

esta es la pagina oficial: http://www.ros.org/wiki/
Tiene muchas librerías para distintos tipos de robots incluido el NXT.


Un poco de Visión Artificial

http://es.wikipedia.org/wiki/Visi%C3%B3n_artificial

Como cada día están mas metidas las cámaras en la robótica, me ha  pareció interesante profundizar un poco en el tema.
En sofware libre de lo mas importante es opencv
esta es la pagina oficial: http://opencv.willowgarage.com/wiki/
Lo bueno de opencv es que es compatible con ROS y  permite trabajar con filtros  y  bueno se puede trabajar sin necesidad de tener un robot físico, por lo que puedes separar la parte de procesamiento de imagen de la programación  del robot.


Andurino

Una paca madre muy simple, pero interesante para  hacer robots caseros
Ros cuenta con tutoriales para correr sobre este tipo de placas.

 

Realidad aumentada

 http://es.wikipedia.org/wiki/Realidad_aumentada

Muy relacionada con la visión artificial, y pudiendo dar mucho juego a las interfaces humano-maquinas, tenemos este área  dentro de la robótica.
En software libre de lo mas importante es  ARToolKit
esta es la pagina oficial:http://www.artoolworks.com/products/
Es también compatible con ROS



Y Bueno una cosa que me llama mucho la atención

Interfaz Cerebro Computadora

Ya están bastante  avanzadas las técnicas no invasivas para adquirir los impulsos neuronales, en la fotografía se esta controlando el iphone solo con la mente. A día de hoy ya hay juguetes que están explotando un poco la idea como Mind Flex 
 



 


Un proyecto interesante seria tener una interfaz neuronal  y un robot que realizasen algunas acciones sencillas, mostrando en una pantalla el entrono con elementos de realidad aumentada para aumentar sus funcionalidades.