IMU 6050 Imbardata (YAW)

Salve a tutti. Mi sto cimentando nel calcolo dei 3 angoli di ROLL, PITCH E YAW. Attualmente riesco a ottenere ROOL e PITCH con le seguenti formule:

pitch = 180 * atan (accelerationX/sqrt(accelerationY*accelerationY + accelerationZ*accelerationZ))/M_PI; roll = 180 * atan (accelerationY/sqrt(accelerationX*accelerationX + accelerationZ*accelerationZ))/M_PI;

ma se utilizzo questa formula per il Yaw vengono valori non corretti: yaw = 180 * atan (accelerationZ/sqrt(accelerationX*accelerationX + accelerationZ*accelerationZ))/M_PI;

mi sono documentato e con quella formula non si ottiene il Yaw ma l’angolo formato dall’asse Z, che sono 2 cose diverse. Qualcuno sa come calcolare l'angolo di Yaw utilizzando un IMU 6050? Grazie in anticipo

[u]ACCELEROMETRO + GIROSCOPIO[/u]

Se l'oggetto che stai usando è l'MPU 6050, accelerometro + giroscopio, trovi a questo link una guida in italiano su come ottenere lo YAW con programmi di Arduino già fatti:

http://www.giuseppecaccavale.it/arduino/roll-pitch-e-yaw-con-mpu6050-arduino/

[u]ACCELEROMETRO + MAGNETOMETRO[/u]

Da quel che ho letto su altri forum in rete, con un accelerometro (se è ciò che stai usando) puoi ricavare al massimo l'angolo di YAW relativo. Se vuoi calcolare l'angolo di YAW assoluto, devi utilizzare un magnetometro in abbinamento all'accelerometro.

Cenni di teoria: https://forum.sparkfun.com/viewtopic.php?t=28700

Formula per ottenere l'angolo di YAW da un magnetometro: https://sites.google.com/site/myimuestimationexperience/sensors/magnetometer

Nel caso volessi stabilizzare un drone ( anche approssimativamente) , posso usare il MPU-6050 dalla prima guida che mi hai inoltrato oppure devo usare per forza MPU 9250 con il magnetometro?

Oddio non essendomi mai interessato di droni e senza aver mai usato quei sensori, non posso darti un consiglio oggettivo. Da quel che ho capito leggendo un forum in inglese, il magnetometro è più preciso del giroscopio. Tutto dipende dal grado di precisione che vuoi ottenere per il calcolo dell'angolo di YAW. Io, da profano, ti direi di provare con il materiale che già hai. Puoi fare un circuito provvisorio, poi se il risultato non ti soddisfa acquisti l'altro sensore e fai le prove anche con quello.

mi sembra che qui usi solo l'MPU-6050 per tutto http://www.brokking.net/ymfc-al_main.html

Ho comprato un MPU 9250, e ho realizzato un programma che vi allego.
Come mi avete consigliato ho usato questa formula, utilizzando anche i valori del magnometro:

YAW = atan2 ((-YY * cos (Roll) + MyZ * sin (Roll)), (MyX * cos (Pitch) + MyY * sin (Pitch) * sin (Roll) + MyZ * sin (Pitch) * cos ( Roll)))

Ma il valore del YAW è ancora errato, sapete dirmi come risolvere questo problema? ho cercato anche su Internet dei programmi già fatti per il calcolo di ROLL PITCH E YAW, ma nessuno di essi funziona :frowning:
grazie

MPU9250_01.ino (3.16 KB)

scozza98: Ma il valore del YAW è ancora errato, sapete dirmi come risolvere questo problema?

Scusa ma nel primo link che ti hanno indicato leggo una cosa totalmente diversa da quella che stai cercando di fare.

Mi pare chiaro che il valore Yaw non si possa determinare con l'accelerometro ma solo col giroscopio (quindi un valore inerziale basato sulla sommatoria delle accelerazioni) o con magnetometro (direzione assoluta in base al campo magnetico terrestre). Leggi bene quella pagina, forse trovi spunti validi.

scozza98: Ho comprato un MPU 9250, e ho realizzato un programma che vi allego. Come mi avete consigliato ho usato questa formula, utilizzando anche i valori del magnometro:

YAW = atan2 ((-YY * cos (Roll) + MyZ * sin (Roll)), (MyX * cos (Pitch) + MyY * sin (Pitch) * sin (Roll) + MyZ * sin (Pitch) * cos ( Roll)))

Ma il valore del YAW è ancora errato, sapete dirmi come risolvere questo problema? ho cercato anche su Internet dei programmi già fatti per il calcolo di ROLL PITCH E YAW, ma nessuno di essi funziona :( grazie

Prova a dare un'occhiata a questa guida dedicata all'MPU 9250 e alle relative formule per il calcolo delle tre variabili da te citate:

https://create.arduino.cc/projecthub/30503/using-the-mpu9250-to-get-real-time-motion-data-08f011

Presta particolare attenzione alle calibrazioni da effettuare, che mi sembrano assai incasinate :D.