Jeg jobber med å finne hastighet og forskyvning fra en IMU-sensor (MPU9250). Jeg har et Navio2 RPi4-oppsett, som gir meg rådata (akselerasjon, Gyro, Magnetisk).
I henhold til min forskning kan dette gjøres på følgende måte;
-
Finne holdning fra rådataene. (Ved hjelp av quaternion-metoden eller transformasjonsmatrisen)
-
Når holdningsdataene er tilgjengelige, beregner du tyngdekraften som virker på akselerasjonsdataene og eliminerer tyngdekraften fra akselerasjon for å finne den lineære akselerasjonen
-
Integrer den beregnede lineære akselerasjonen for å finne hastighet og posisjon.
Etter trinnene ovenfor var jeg i stand til å beregne Holdning fra IMU-sensoren ved å følge eksemplet gitt av Navio2. Eksemplet bruker Quaternion-metoden (Mahony-filter) for å smelte rådataene og gi quaternionene.
Resultatet er bekreftet og fungerer perfekt. Nå må jeg gå til trinn 2, dvs. finne tyngdekraften som virker på akselerasjonen.
Ved å bruke kvaternjoner for å finne tyngdekraften:
gx = (2 * (q1 *) q3 - q0 * q2)); gy = (2 * (q0 * q1 + q2 * q3)); gz = ((q0 * q0) - (q1 * q1) - (q2 * q2) + (q3 * q3) );
Disse gravitasjonsverdiene trekkes fra akselerasjonsdataene for å finne den lineære akselerasjonen. Når den lineære akselerasjonen er tilgjengelig, gir hastighet og posisjon å integrere den med tiden. Implementeringen eksperimenteres ved å flytte IMU-sensoren til 100 cm. Imidlertid er ikke posisjonsutgangen som forventet. Enhetene til rådataene har blitt tatt vare på bare for å kontrollere sunnheten med implementeringen.
Jeg har flyttet for å konvertere kvartærene tilbake til rotasjonsmatrise og beregne hastighets- og posisjonsdata.
Spørsmålet mitt er hvordan vi finner tyngdekraften som virker på akselerasjonen ved hjelp av Rotasjonsmatrisen konvertert fra Quaternion.
Jeg ber samfunnet hjelpe meg med deres verdifulle innspill og referanser. .
Takk.