Autor Tema: Magnetometro - UAV's  (Leído 20482 veces)

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

Desconectado Alfrematico

  • PIC10
  • *
  • Mensajes: 9
Re:Magnetometro - UAV's
« Respuesta #30 en: 28 de Enero de 2016, 20:33:10 »
Saludos

tengo un problema con mi magnetometro HMC5883L de nuevo...

con el calculo del heading=(y/x), me grafica valores de 0 a 360 grados, sin embargo, hay angulos o saltos de angulos

por ejemplo de 0 a 40 grados todo perfecto, pero despues pega un salto brusco a 130 grados y sigue bien hasta otro angulo, en general los saltos son como de 40 grados. en internet no encuentro causas o soluciones a este problema

tengo mi magnetometro montado en mi cuadricoptero

-¿podrian los motores, la IMU, la targeta, etc... causar interferencia en el magnetometro?

leyendo este post me di cuenta de que podia estar haciendo la calibración mal en X y Y, mañana la hago de nuevo y comento

dejo este mensaje por si alguien ha tenido un problema similar... no quisiera saber que mi magnetometro esta defectuoso

Gracias

Edit: el angulo del yaw se determina solo con el magnetometro? o deberé fusionarlo con el acelerometro o giroscopio??

en este tema no he leido mucho, les agradeceria la información
« Última modificación: 28 de Enero de 2016, 20:35:11 por Alfrematico »

Desconectado elgarbe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2177
Re:Magnetometro - UAV's
« Respuesta #31 en: 01 de Febrero de 2016, 06:34:00 »
Tendrías que poner todo el código para ver si encontramos el error.

La correccion de YAW se utiliza los datos del giróscopo, los cuales se corrigen con el magnetómetro (se le elimina la deriva del giróscopo).

Saludos
-
Leonardo Garberoglio

Desconectado Alfrematico

  • PIC10
  • *
  • Mensajes: 9
Re:Magnetometro - UAV's
« Respuesta #32 en: 02 de Febrero de 2016, 03:38:40 »
Seguro, es un modelo de simulink por lo que es logica de bloques, pero es muy facil de entender

[img=http://s21.postimg.org/e3somkbr7/image.jpg]

[img=http://s21.postimg.org/i98n5lfur/image.jpg]

si alguien tiene simulink dejo el archivo adjunto

bueno resumiendo, la primera imagen recibo los datos y junto los H con los L, segun ek datasheet, se reciben XH, XL, ZH, HL, YH, YL. con esto corro 8 posiciones y los junto (esto mismo hago con la mpu6050 y me funciona para obtener los datos del acelerometro y el giroscopio) luego multiplico por la escala a la que está configurada que enste caso es 4.35 la mas alta de 8 gaus (intenté con la todas las escalas y obtengo el mismo resultado, se pierden angulos)... despues se le suma el offset:

quizá lo este sacando mal

con la escala mas baja giro mi cuadricoptero en el eje Z y le doy varias vueltas (360 grados) teniendo cuidado de que esté bien horizontal el cuadricoptero, con una gui registro el valor mas pequeño y el mas grande en el eje X y Y

masomenos me dieron algo como Xmin=-400 xmax=100 Ymin=-400 ymax=100 (masomenos, no tengo ahora mismo el offset que hallé)

con eso asumo que a cada eje le debo sumar 150 a lo que mida despues del escalado para que quede xmin=-250 y xmax=250 y lo mismo con el Y, que seria un circulo centrado en el origen verdad????

despues pasan por la funciona atan2(B/A) que seria atan2(Y/X), le resto -0.105 que es la supuesta declinacion magnetica que depende de mi ubicacione geografica, busque mi coordenadas como me aconsejaron aca en este mismo post y da -0.105 radianes

luego pasa por el arreglo que vi en este mismo post

si el resultado es <0

heading=heading+2*pi

si el resultado es >2*pi

heading=heading-2*pi

si el resultado es >0

dejarlo pasar

Agradesco la ayuda

* Modelo_Brujula_04.zip
(120.97 kB - descargado 103 veces)