Laveffekt IMU for Tingenes Internett applikasjoner

Prisen for beste masteroppgave innen mikro- elektronikkonstruksjon ved Institutt for elektroniske systemer (IES), NTNU gikk i år til Erlend Hestnes. Her er hans beskrivelse av vinneroppgaven.

Publisert Sist oppdatert

Denne artikkelen er 2 år eller eldre

 Å bestemme hvordan en gjenstand beveger seg er av stor interesse for Tingenes Internett (IoT) applikasjoner. For dagens innvevde systemer er det vanlig å bruke en treghets måleenhet (IMU) for slike formål. En IMU er en sensorpakke som vanligvis består av et akselerometer og et gyroskop. Introduksjonen av mikromaskinerte-elektromekaniske komponenter (MEMS) har gjort det mulig for IMUer å gjennomgå en miniatyrisering og en signifikant kostnadsreduksjon. Fremdeles er det likevel et problem med effektforbruk for slike enheter. Mens akselerometer er i stand til å operere i mikrowattområdet, så bruker gyroskop gjerne noen milliwatt. Flere publikasjoner har vist at det er mulig å konstruere en gyroskopfri IMU (GF-IMU) ved å bruke en kombinasjon av flere akselerometre montert i en kubekonfigurasjon. De fleste GF-IMU løsningene som finnes i dag er likevel upraktiske med hensyn på antall sensormoduler som må til, og selve størrelsen på kuben.

I min masteroppgave [1] valgte jeg å se nærmere på en GF-IMU løsning som jeg fant i en IEEE publikasjon ved navn EcoIMU [2]. Der ble det presentert en praktisk løsning av hvordan en kunne konstruere en GF-IMU ved bruk av kun to tre-akse akselerometer. Forfatterne av denne publikasjonen hevdet å kunne bruke systemet sitt til å gi nøyaktig data på både forflytning og rotasjon, og hevdet videre at systemet var godt nok til å kunne brukes for bestikkregning (dead reckoning). Resultatene deres så meget interessante ut og jeg valgte derfor å se nærmere på denne implementasjonen. Oppgaven ble utført i samarbeid med Disruptive Technologies AS, et norsk oppstartselskap som lager små og strømgjerrige alt-i-ett sensorløsninger for IoT-applikasjoner.

EcoIMU – Teori

 

Figur 1: EcoIMU kubekonfigurasjon

Teorien bak EcoIMU baserer seg på at en plasserer et tre-akse akselerometer i to vilkårlige hjørner på en kube som er lokalisert diagonalt fra hverandre (se Figur 1). De respektive akselerometrene a1 og a2 vil da måle en akselerasjon som består av en forflyttningskomponent (a‾) og en rotasjonskomponent (ad).

 

Likning 1

Videre kan en si at kubens midtpunkt ikke opplever noen akselerasjon som følge av rotasjon, da denne vil være gitt av gjennomsnittet av a1 og a2. Kubens midtpunkt vil derfor kun oppleve akselerasjon fra forflyttning (se likning 2).

 

Likning 2

Videre hevdes det at vinkelakslerasjon om X, Y og Z-aksen kan finnes ved å respektivt lage en tenkt, omsluttende sylinder rundt kubens sider i projeksjonsplanet XY, YZ og XZ. Figur 2 viser et eksempel for dette i XZ-planet. Her kan en se at akselerometerets Z-akse blir dekomponert for å finne den tangentielle akselerasjonsvektoren  som legger seg langs XZ-planet sin omsluttede sylinder (grønn).

 

Figur 2: Omsluttende sylinder for XZ-projeksjonsplanet

at kan videre brukes til å finne projeksjonens vinkelakslerasjon (α) ved å dele på sylinderens radius. Dette kan en videre gjøre for hver av kubeprojeksjonene XY, YZ og XZ. Dermed står en igjen med uttrykk både for kubens forflyttningsakselerasjon og rotasjonsakselerasjon.

 

Likning 3

 

Likning 4

Ved integrasjon kan en finne vinkelhastighet (deg/s), og en har dermed kommet fram til samme dataenhet som MEMS gyroskop produserer. Vinkelhastighet kan integreres enda en gang for å finne rotasjon (deg).

Metode
I min masteroppgave valgte jeg å undersøke tre forskningsspørsmål knyttet til EcoIMU implementasjonen.

  1. Hva er forholdet mellom kubegeometri og parameterne effekt og nøyaktighet i en GF-IMU konfigurasjon?
  2. Hvor nøyaktig og hvor energieffektiv er en GF-IMU sammenlignet med en ordinær gyroskopbasert løsning?
  3. Kan en GF-IMU løsning bli brukt for praktiske IoT applikasjoner?

Det første spørsmålet ble besvart ved å lage en Matlab modell som kunne teste hvordan ulike kubegeometrier påvirket EcoIMU likningene. Av hensyn på plassbegrensninger så blir ikke dette beskrevet nærmere her.

Det andre forskningsspørsmålet ble besvart ved å konstruere et testoppsett (se Figur 4). Dette bestod av tre IMUer av typen MPU-6500. Dette er en vanlig alt-i-ett modul som inkluderer både et tre-akse akselerometer og et tre-akse gyroskop. To av modulene ble plassert i hvert sitt hjørne av en kube (se Figur 3) mens den tredje modulen ble plassert i midten. De to hjørneplasserte modulene ble konfigurert til kun å bruke akselerometer, mens den midterste modulen satt til å bruke gyroskop. Data fra sentergyroskopet ble dermed en referanse på det utregnede vinkelhastighetsestimatet fra de to hjørnemodulene. Et utviklingskort med en Cortex M4 mikrokontroller ble brukt til å lese ut og prosessere data fra alle MPU-6500 modulene og deretter videreformidle dette serielt til en datamaskin. Et Matlab script ble brukt til å plotte data fra utviklingskortet i sanntid. Programvaren på mikrokontrolleren ble optimalisert for å bruke lite strøm. Dette ble blant annet gjort ved å konfigurere MPU-6500 modulene til å vekke mikrokontrolleren når data var klar til utlesning, slik at den kunne sove så mye som mulig.

 

 

Resultat – Nøyaktighet
Resultatene fra testoppsettet ble produsert ved å holde brettet i luften og rotere det 90 grader frem og tilbake om sine respektive testakser. Målet med den første testen var å undersøke hvor godt det utregnede vinkelhastighetsestimatet fra hjørneakselerometrene fulgte data fra sentergyroskopet. Figur 5 viser vinkelhastighet (deg/s) om Z-aksen fra sentergyroskopet (grønn) og fra de to hjørneakselerometrene ved bruk av EcoIMU likningene (rød). En kan her se at estimatet gjør en helt grei jobb med å følge data fra gyroskopet. For å få kvantiserbare data på hvor stor feilen mellom de to grafene var ble det også regnet ut en MSE (Mean squared error) verdi mellom dem. Det ble gjort fire målinger for hver akse, og den gjennomsnittlige MSE ble regnet ut (se rad EcoIMU i Tabell 1).

 

Figur 3: Kubekonfigurasjon

 

Figur 4: GF-IMU testoppsett

Under de reelle målingene dukket det i midlertidig opp et problem. Det lot seg lett å verifisere at EcoIMU likningene kunne brukes til å regne ut vinkelhastighet rundt bestemte akser hver for seg med ok nøyaktighet. Derimot så det ut til å være en avhengighet mellom hvordan vinkelhastighet ble regnet ut. Når en f.eks. roterte brettet om Z-aksen, så fikk en også et utslag på vinkelhastigheten rundt Y-aksen. Den observerte avhengigheten var ikke beskrevet i EcoIMU publikasjonen noe sted, men en analyse avslørte likevel denne ganske raskt. Dette problemet er beskrevet i god detalj i oppgaven min for de som ønsker å lese mer om det.

Siden utregning av vinkelhastighet rundt alle akser samtidig var utelukket, ble det heller valgt å fokusere på hvor nøyaktig en kunne klare å regne ut vinkelhastighet rundt én av aksene. Et nytt sett av likninger ble utviklet, optimalisert for å finne vinkelhastighet rundt én bestemt akse. I stedet for å bruke én tangentiell akselerasjonsvektor per kubeprojeksjon, ble det gjort et forsøk på å bruke gjennomsnittet av de to som var tilstede for hvert plan.

Figur 5: Vinkelhastighet rundt Z-aksen med EcoIMU likninger

En ny gjennomkjøring av rotasjonstesten viste at dette produsere et mye bedre estimat for vinkelhastighet om X, Y og Z-aksen hver for seg (se Figur 6). Tabell 1 viser også prosentvis reduksjon av feilen mellom de originale EcoIMU likningene og nye likningene.

Tabell 1: Prosentvis reduksjon i MSE feil ved bruk av de ny likningene (klikk for større bilde)\n

 

Videre ble det undersøkt hvor nøyaktig en kunne klare å gi et vinkelestimat ved bruk av de nye likningene. Dette ble gjort ved å integrere opp vinkelhastigheten. En utfordring med dette er at en utfører en dobbel integrasjon av de opprinnelige dataene. En vil dermed få med seg en feil som vil vokse kvadratisk over tid, noe som vil medføre at vinkelestimatet raskt vil drifte vekk. Resultatene fra denne testen (se Figur 7) viste imidlertid at det var mulig å utføre et par rotasjoner før vinkelestimatet begynte å drifte.

 

Resultat – Strømforbruk
Programvaren på mikrokontrolleren ble laget for enkelt å kunne teste ulik samplingsfrekvens på akselerometrene. Her er det viktig å merke seg at en reduksjon av denne verdien er et kompromiss mellom lavere effektforbruk og tap av presisjon i estimatet. Tabell 2 viser målingene som ble gjort av strømforbruket. En kan se at selv ved en samplingsfrekvens på 125Hz er strømforbruket til GF-IMU løsningen 73.8% mindre sammenlignet med en gyroskopbasert IMU.

Figur 6: Vinkelhastighet rundt Z-aksen med nye likninger

 

Applikasjoner
Vi har sett at en GF-IMU løsning basert på to tre-akse akselerometer ikke kan brukes på samme måte som en fullverdig gyroskopbasert IMU, da systemet ikke kan gi ut vinkelhastighet om alle de tre aksene samtidig. En GF-IMU er også mer utsatt for drift og kan derfor bare være presis nok over korte tidsrom. På den andre siden har vi også sett at en GF-IMU kan bruke mye mindre strøm enn en konvensjonell IMU. Applikasjonsområdet for de to løsningene er derfor ulike. Et eksempel på en GF-IMU applikasjon som kan operere med de nevnte begrensningene er gest-deteksjon. Å kunne vite om man snur en gjenstand 90 grader med eller mot klokka for eksempel. Da trengs kun rotasjon rundt én akse og ok presisjon over et kort tidsrom før en eventuelt velger å nullstille initialbetingelsene.

Figur 7: Vinkelestimat om Z-aksen

Uansett bruksområde så er det ingen tvil om at en GF-IMU basert på to tre-akse akselerometer er en spennende løsning med et stort potensiale for IoT applikasjoner. En skal derfor ikke utelukke at fremtidige sensorer fra Disruptive Technologies AS kommer med en løsning basert noe av det som er presentert i denne oppgaven.

Referanser:
[1] E. Hestnes – ”Low Power Inertial Measurement Unit for Internet of Things Applications”, 2016. Side: https://brage.bibsys.no/xmlui/handle/11250/2405959

Tabell 2: Strømforbruk over ulik samplingsfrekvens.

[2] Y. L. Tsai, T. T. Tu, og P. H. Chou, “EcoIMU - A compact, wireless, gyro-free inertial measurement unit based on two triaxial accelerometers,” in Information Processing in Sensor Networks (IPSN), 2011 10th International Conference on, April 2011, pp. 133–134.

Powered by Labrador CMS