Spørsmål:
Finne hastighet og posisjon for liten avstand fra IMU-sensorer
TheLazy
2020-07-13 12:22:12 UTC
view on stackexchange narkive permalink

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;

  1. Finne holdning fra rådataene. (Ved hjelp av quaternion-metoden eller transformasjonsmatrisen)

  2. Når holdningsdataene er tilgjengelige, beregner du tyngdekraften som virker på akselerasjonsdataene og eliminerer tyngdekraften fra akselerasjon for å finne den lineære akselerasjonen

  3. 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.

Prøv kanskje å spørre dette i Electronics.SE hvis du ikke får svar her. Du trenger gyroskopdelen av denne sensoren i tillegg til akselerasjonsdataene. Deretter må du beregne din nåværende rotasjon i forhold til jordens gravitasjonsvektor, og så må du ta den bort fra din målte akselerasjon. Siden det ikke er noen måte å måle hastighet, posisjon eller nåværende rotasjon direkte, kan du bare anta at når den totale akselerasjonen er 9,81 +/- 2%, er den sannsynligvis fortsatt og vendt nedover, slik at du kan kalibrere den på den måten.
En svar:
Kenn Sebesta
2020-08-01 01:16:11 UTC
view on stackexchange narkive permalink

Dette er den best forbannede referansen på rotasjoner: Representerer holdning: Euler Angles, Unit Quaternions og Rotation av James Diebel fra Stanford University (datert 2006-10-20).

Du spesifiserte ikke, men du bruker nesten helt sikkert Tait-Bryan-konvensjonen - som først er kjeft, deretter tonehøyde, deretter rull - for rotasjonsakser. Du bruker muligens også NED til oversettelsesakser, men det er mindre klart.

Du kan se alle kartleggingen i kap. 5.6.1 i lenken ovenfor. Du kan sjekke at du har tilordnet kvadratene riktig til rotasjonsmatrisen. Det er veldig enkelt å rote til en tegnverdi. Vær spesielt oppmerksom på at det omvendte av en rotasjonsmatrise er dens transponere, så det er veldig enkelt å ha de riktige rotasjonsmatriksverdiene, men i den transponerte rekkefølgen.

For å komme til ditt spesifikke spørsmål, bruk eqn . 35 kan du se hvordan du kartlegger en treghetsrammeakselerasjon i kroppsrammen ved hjelp av rotasjonsmatrisen. Det er en enkel matrisemultiplikasjon, og i ditt tilfelle, og forutsatt at NED er, er vektoren z [0;0;9.805 ].

Til slutt, Jeg vil foreslå å få dette til å fungere i simulering først, før jeg prøver empirisk. Rotasjoner er vanskelige fordi de er så pedantiske, og det er lett å nærme seg dem bakover.

Her er [pdf-versjonen av papiret du siterte] (https://www.astro.rug.nl/software/kapteyn/_downloads/fa29752e4cd69adcfa2fc03b1c020f4e/attitude.pdf) fra University of Groningen.
Ser bra ut, selv om jeg foretrekker CiteSeer-lenken (som også har PDF) fordi jeg føler, uten empirisk bevis, at det er mer sannsynlig å være operativt om 10 eller 20 år.
Greit nok. Jeg har foreslått en redigering for å få lenken til å vise tittelen på papiret - bare i tilfelle CiteSeer også går ned!
Det er et flott tillegg, takk!


Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 4.0-lisensen den distribueres under.
Loading...