miércoles, noviembre 22, 2006

Datos en tiempo real

Continuamos probando Kalman y tratando de encontrar bugs que hacen que el funcionamiento no sea el esperado.
A fin de poder visualizar los datos de los sensores en tiempo real, Rodrigo implementó una ventana (función window de C) que nos permite visualizar en pantalla las coordenadas de la posición, las velocidades angulares, los ángulos de Euler, las aceleraciones y las velocidades lineales. Antes lo que hacíamos era loguear estos datos cada cierto delta_t en un archivo txt y luego mirar el archivo analizando la secuencia de datos registrados.
Luego de contar con esta herramienta pudimos determinar que tenemos un problema no menor con la salida de los gyros. Cuando rotamos noventa grados la IMU (Inercial Measure Unit) según uno de sus ejes (X,Y o Z) éste debería tomar el valor 90 grados y en pantalla el valor mostrado es 20 grados. Lo bueno es que este comportamiento no depende del ángulo de giro. Al parecer es un problema de escala. Hoy vamos a chequear por que sucede esto.
Hay que tener presente que estos ángulos influyen en los valores de las aceleraciones ya que cuando el eje Z no concide con el vector de gravedad la misma debe proyectarse en cada eje. Luego las aceleraciones influyen en el cálculo de la velocidad y en la posición, por tanto es muy importante que los valores de los ángulos estén correctos.