Autor Tema: Giroscopo L3G4200D muy ruidoso?  (Leído 2341 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Giroscopo L3G4200D muy ruidoso?
« en: 29 de Diciembre de 2013, 21:22:51 »
Hola, estaba avanzando con la imu GY-80 para obtener la matriz DCM con dichos sensores, pero tuve que retroceder devido a que la misma parecía tener mucha deriva.... entonces empecé a revisar los sensores y me parece que my giróscopo es muy "ruidoso". Estuve leyendo en la web que muchos tienen problemas con dicho gyro, pero me parece que yo no lo debo estar configurando del todo bien, porque obtengo mucho ruido.

Mi código de inicializacion lo obtuve de: http://forum.arduino.cc/index.php?PHPSESSID=6rq9bl4ao92vjvb44mk4r13vu5&topic=183407.msg1363309#msg1363309

y es el siguiente:
Código: [Seleccionar]
void L3G4200D_init(){

// L3G4200D_write(L3G4200D_CTRL_REG1, 0b00011111); // 100Hz, 12.5 CO, all axis enable
// L3G4200D_write(L3G4200D_CTRL_REG1, 0b01001111); // 200Hz, 12.5 CO, all axis enable
// L3G4200D_write(L3G4200D_CTRL_REG4, 0x10); // 0x00 250 dps, 0x10 500 dps, 0x20 2000dps
// L3G4200D_write(L3G4200D_CTRL_REG4, 0x20); // 0x00 250 dps, 0x10 500 dps, 0x20 2000dps


L3G4200D_write(L3G4200D_CTRL_REG2, 0b00011001); //
L3G4200D_write(L3G4200D_CTRL_REG3, 0x00); //
L3G4200D_write(L3G4200D_CTRL_REG4, 0b10110000); // 0x00 250 dps, 0x10 500 dps, 0x20 2000dps
L3G4200D_write(L3G4200D_CTRL_REG5, 0b00010011); //
L3G4200D_write(L3G4200D_CTRL_REG1, 0x0F); // 100Hz, 12.5 CO, all axis enable
}

Luego para medir el ruido uso este código:

Código: [Seleccionar]
void L3G4200D_GetBiass(void){

int i;
for (i = 0; i < 600; i += 1) {
L3G4200D_read_data();
config.gyroOffs[0] += gyro_X;
config.gyroOffs[1] += gyro_Y;
config.gyroOffs[2] += gyro_Z;
delay_ms(1);
}
for (i = 0; i < 3; i++) {
config.gyroOffs[i] /= 600;
}
for (i = 0; i < 600; i += 1) {
L3G4200D_read_data();
if(((double)gyro_X - config.gyroOffs[0])>noise[0]){
noise[0]= (double)gyro_X - config.gyroOffs[0];
}else if(((double)gyro_X - config.gyroOffs[0]) < -noise[0]){
noise[0]= -((double)gyro_X - config.gyroOffs[0]);
}
if(((double)gyro_Y - config.gyroOffs[1])>noise[1]){
noise[1]= (double)gyro_Y - config.gyroOffs[1];
}else if(((double)gyro_Y - config.gyroOffs[1]) < -noise[1]){
noise[1]= -((double)gyro_Y - config.gyroOffs[1]);
}
if(((double)gyro_Z - config.gyroOffs[2])>noise[2]){
noise[2]= (double)gyro_Z - config.gyroOffs[2];
}else if(((double)gyro_Z - config.gyroOffs[2]) < -noise[2]){
noise[2]= -((double)gyro_Z - config.gyroOffs[2]);
}
delay_ms(1);
}
// for (i = 0; i < 3; i++) {
// noise[i] /= 600;
// }
}

Está medio mal escrito, porque lo hice medio apurado. Básicamente, primero obtengo el Offset del sensor promediando 600 muestras. Luego hago otras 600 mediciones, a las que le resto el offset y voy grabando el mayor de ellos. De esa forma obtengo "la desviacion" más grande del 0... eso lo vi en alguna de las tantas páginas que vi.... el tema es que obtengo estos resultados:
Offset X=4.1067
Offset Y=-9.0033
Offest Z=-17.0917

Noise X=5.8933
Noise Y=3.0033
Noise Z=2.9083

en el caso del eje X 6 dps representan el 0,3% (de 2000 dps que tengo a fondo de escala).
El tema es saber si esa desviacion es normal o no. Si alguien uso este sensor y puede decirme si obtiene mejores resultados. a que yo, usando el sensor en esas condiciones, integrando la velocidad angular medida con un tiempo de muestre de 28mseg, obtengo una deriva de varios grados por minuto.... lo que no puedo saber es si es común o no.
He visto proyectos que funcionan sin problemas con este gyro y he leido muchas páginas donde se quejan del ruido de este sensor..... alguien sabe algo al respecto, alguien probo algun otro sensor para comparar?

Saludos y gracias!
-
Leonardo Garberoglio

Desconectado PCCM

  • PIC16
  • ***
  • Mensajes: 109
Re: Giroscopo L3G4200D muy ruidoso?
« Respuesta #1 en: 29 de Diciembre de 2013, 22:29:36 »
Debe ser por la sensibilidad que lo configuras(2000 dps).
Utilizo el mpu 6050 a 500  dps, las bias estáticas son:

bias_x=-4.832;
bias_y=1.132;
bias_z=1.377;

y el ruido que hallas, para los 3 ejes es menor a 0.3.

Una ves lo probé a su maxima sensibilidad(2000 dps) y era muy ruidosa, por eso lo bajé.

Lo de la deriva de varios grados por minuto está bien(sin hacer un filtro de ventana, ya que he visto en algunas paginas que colocan tal filtro para que el ruido no afecte cuando está estatico, lo cual pierdes datos), no he visto un gyro de tecnología MENS que trabaje solo, siempre va acompañado de otro sensor para corregir su deriva(como el acelerometro).

Generalmente la calibración del gyro son 3: por bias estáticas, por factor escala y por ruido(factor de linealizacion, de alineacion, etc), pero las más considerables son por bías estáticas y factor escala.

las bias ya lo hallaste, el factor escala se halla colocando tu gyro sobre una plataforma en movimiento(muy lento),  teniendo topes de 0 y 90 grados, una ves girado tal angulo, ves la lectura del gyro, si obtuviste con el gyro 85 grados, entonces tu factor escala será 90/85=1.06;


Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Giroscopo L3G4200D muy ruidoso?
« Respuesta #2 en: 29 de Diciembre de 2013, 23:23:33 »
muchas gracias por la respuesta!!! me estaba costando bastante encontrar gente en español que haya probado esas cosas. voy a probar de bajar la sensivilidad y comento.

lo de la deriva sabia que van acompañados de acelerómetros, pero he leido aplicaciones donde obtenian derivas mucho menores.

en mi caso estoy armando la DCM por ahora solo con giroscopo, ya tengo listo para agregar acelerometro y estoy empezando a jugar con el magnetometro para integrar los tres.

has utilizado alguna aplicacion con dcm? creo que he leido post tuyos en cuanto a quaterniones....

lo que note cuando arme la dcm con gyro y accel es que solo la fila Z (ultima fila) se mantneia estable. las otras dos tenian mucha deriva devido al gyroscopo. mi duda es si de esa forma podria obtener igual los angulos de roll y pitch kdescartando el yaw.

saludos y gracias por la ayuda!

pd tengo un mpu6050 y un 9150 esperando a ser probados. de casualidad tenes esquematicos y diseño de pcb para ellos?
-
Leonardo Garberoglio

Desconectado PCCM

  • PIC16
  • ***
  • Mensajes: 109
Re: Giroscopo L3G4200D muy ruidoso?
« Respuesta #3 en: 31 de Diciembre de 2013, 01:13:42 »
Claro, las derivas serán mucho menores si se realiza una buena calibración, pero ni así, la ves pasada pregunté sobre el gyro adis16266 de analog device sobre el comportamiento del gyro y me dijieron que así lo calibres bien, tendrá un error de +-16 grados en 2 minutos aprox.(en estático).

he utilizado la DCM para calcular las velocidades de un avión en el eje de la tierra, todo claro en un simulador, ya que por ahora no tengo como probarlo en real.
Si descartas el Yaw, igualmente podrías hallar los otros dos ángulos, pero considerando que no muevas la guiñada(osea tomando Yaw=0);

Debido a la dificultad para soldar esos sensores(se me quemaban demasiado), opté por comprar los sensores con plaquita. igualmente estoy por obtener un horno de soldadura donde te realiza la curva de temperatura para soldarlo correctamente.

Si pudieras postear más adelante tus resultados en cuando a presición, pruebas en movimiento, etc. sería muy interesante.
saludos.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: Giroscopo L3G4200D muy ruidoso?
« Respuesta #4 en: 31 de Diciembre de 2013, 07:54:07 »
Ok, no hay problema, a medida vaya avanzando puedo ir publicando resultados.

En cuanto al giróscopo estoy viendo de implementar un threshold en 2 o 3 sigma (desviacion estándar).
Básicamente tomo 600 muestras separadas 1ms y calculo el offset (la media). Luego tomo otras 600 muestras y calculo el sigma. Los valores que estoy obteniendo son:

Acelerometro ADXL345 y Giroscopo L3G4200D
4.2600   -9.0567   -17.1950   1.6532   1.2564   1.5661

Acelerometro ADXL345 y Giroscopo L3G4200D
5.7517   -8.5733   -16.1900   2.7663   1.6563   1.3489

Acelerometro ADXL345 y Giroscopo L3G4200D
4.7367   -7.9067   -16.2100   2.5645   1.3404   1.2402

Acelerometro ADXL345 y Giroscopo L3G4200D
5.7150   -8.3000   -16.0467   1.9422   1.2892   1.5570

Acelerometro ADXL345 y Giroscopo L3G4200D
5.2433   -8.2783   -16.2433   2.8104   1.5344   1.1312

Acelerometro ADXL345 y Giroscopo L3G4200D
5.8933   -8.6017   -15.9950   2.4251   1.2425   1.7076

los primeros 3 valores son el offset y luego tengo el sigma. Esos datos están en RAW, o sea falta escalar (multiplicar por 0.07) para que de en dps. Viendolo de esta forma no parece ser tan ruidoso (0,17 dps en el eje X).
Probe despues integrar esas velocidades y calcular ángulos y obtengo una deriba de mas o menos 1° cada 50 segundos. Esto es sin implementar el threshold.

Lo que tengo que revisar ahora es porque en la aplicacion de la DCM me parece que la deriva es mucho más grande...
Tengo tambien un mpu6050 y estoy tratando de armarme esta IMU: http://www.varesano.net/projects/hardware/FreeIMU.

con la mpu9150 no tengo tiempo de hacer el diseño de la placa, pero si consgo algún proyecto potable, puedo hacerme el impreso y armar la placa sin problema para su testeo...

Bueno, estamos hablando. Saludos!
-
Leonardo Garberoglio

Desconectado PCCM

  • PIC16
  • ***
  • Mensajes: 109
Re: Giroscopo L3G4200D muy ruidoso?
« Respuesta #5 en: 04 de Enero de 2014, 02:01:05 »
Has probado "girando" tu gyro, para ver cuanta deriva produce después de cierto tiempo en movimiento, pero girando ángulos de hasta 90 grados y me parece excelente lo de 1 grado en 50 segundos.

Lo de la DCM se supone que la deriva será mas grande porque depende de los demás ángulos. o la deriva que hablas es muy exagerada.
El mpu9150 no te lo recomiendo ya que cuando probé su magnetómetro tenia una desviación de 2 grados. No se si habrá sido por una mala configuración pero me quedo con el HMC5883L.





 

anything