Skip to main content

Gépi tanulásra alkalmas tehetetlenségi jeladók

Megjelent: 2019. július 04.

digi key lidA tehetetlenségi jeladók (inertial measurement unit, IMU) széles körben elterjedtek a gyorsulásmérők, giroszkópok és más érzékelők folyamatos jelű, több tengely menti és körüli jeladóiként. Mivel a sok szabadságfok mindegyike szolgáltat adatot, az eszközökről származó egyesített adatfolyamok ébren tarthatják a rendszer jelfeldolgozó egységeit, és folyamatosan igénybe vehetik azokat a tehetetlenségi jeladók jeleiből nyert nyers adatok szűrésére, hogy kivonják ezekből a hasznos kézmozdulat- és rendszerhelyzetadatokat. A tervezőknek egy olyan módszerre van szükségük, amellyel tehermentesíthetik a fő adatfeldolgozó egységet ettől a szűrési funkciótól. A megoldást a gépi tanulás jelentheti.

 

A tehetetlenségi jeladók gyors áttekintése

A tehetetlenségi jeladók számos mozgásérzékelőt egyesítenek egy készülékben, és nagyon pontos helyzetadatokat tudnak szolgáltatni. Számos feladatra lehet használni őket a fogyasztói elektronikától (mobiltelefonok) a gyógyászati (képalkotás), ipari (robotika) és katonai célú (fejhelyzetkövetés) felhasználási területekig. A tehetetlenségi jeladók reagálnak az érzékelő mozgására, és az alábbi mozgásérzékelő-típusokból tartalmaznak egyet vagy többet:

  • A szöghelyzetváltozást (általában fok/másodpercben (°/s)) mérő giroszkópérzékelők. A szögsebesség idő szerinti integrálja a mért szögelfordulást adja, amely az irányváltozás követésére használható. A giroszkópok a nehézségi erőtől függetlenül követik a relatív elmozdulást, ezért az érzékelők alaphibájából vagy az integrálásból eredő hibák helyzeteltérést eredményeznek, amelynek „elsodródás” (drift) a neve, és amelyet szoftveresen helyesbíteni lehet.

  • A gyorsulásmérők az egyenes vonalú gyorsulást, beleértve a készülék mozgásából adódó komponenseket és a nehézségi erő okozta gyorsulást mérik. A gyorsulás mértékegysége a g, ahol 1 g = a Föld tömegvonzása okozta nehézségi gyorsulás = 9,8 m/s2. A gyorsulásmérők lehetnek egy-, két- vagy háromtengelyűek, ami egy X, Y és Z tengellyel rendelkező koordinátarendszert határoz meg.

  • A mágneses érzékelők, illetve a magnetométerek a mágneses térerőt mérik, általában mikrotesla (µT) vagy gauss (100 µT = 1 gauss) mértékegységben. A mobileszköz-elektronikában legelterjedtebben használt mágneses érzékelő a Hall-effektust használó háromtengelyű magnetométer. A Föld érzékelt mágneses mezejének szögét kiszámítva, és ezt egy gyorsulásmérő által mért nehézségi gyorsulással összehasonlítva nagy pontossággal meghatározható a készülék iránya a mágneses északhoz képest.

A tehetetlenségi jeladókkal való mozgáskövetés jelegyesítőt használva ad egyetlen, nagy pontosságú becslést a készülék ismert kezdőponthoz és kezdeti térbeli helyzethez (tájoláshoz) viszonyított térbeli helyzetére vonatkozóan. A jelegyesítő általában olyan szoftvert használ, amely a tehetetlenségi jeladó gyártója vagy a készülék fejlesztője által kidolgozott bonyolult matematikai algoritmusok alapján egyesíti a tehetetlenségi jeladók különféle mozgásérzékelőinek jeleit.
A jelegyesítővel végzett helyzetszámítások az alábbi jelek előállítására alkalmasak:

  • Nehézségi gyorsulás – kifejezetten a Föld tömegvonzása, amely nem tartalmazza a készülék mozgása miatt fellépő gyorsulásokat. Amikor a tehetetlenségi jeladó mozdulatlan, a gyorsulásmérők a nehézségigyorsulás-vektort mérik. Amikor a tehetetlenségi jeladó mozgásban van, a nehézségi gyorsulás méréséhez egy gyorsulásmérő és egy giroszkóp adatainak egyesítésére, és a mozgás okozta gyorsulás ebből való kivonására van szükség.

  • Lineáris gyorsulás – a készülék gyorsulásmérővel mért gyorsulása, amelyből szoftver használatával kivonják a nehézségigyorsulás-vektort. A tehetetlenségi jeladók lineáris (egyenes vonalú) gyorsulásjele a három dimenziós térben való elmozdulás mérésére használható.

  • Tájolás (térbeli helyzet) – az Euler-szögek készlete, amelyet a legyezés (irányszög), a bólintás és a dőlés alkot, szögfokban (°) mérve.

  • Elfordulásvektor – a gyorsulásmérő, a giroszkóp és a magnetométer jeleinek egyesítéséből származtatott adat. Az elfordulásvektor elfordulási szöget jelent egy adott tengely körül.

 

A tehetetlenségi jeladók hibaforrásai

A giroszkópok a szögsebesség-változás révén érzékelik a térbeli helyzetet, de idővel hajlamosak a driftre, mert csak a változásokat érzékelik, és nincs rögzített referenciakeretük. A gyorsulásmérő adatait a giroszkóp adataihoz hozzáadva a szoftver a még pontosabb helyzetbecslés érdekében képes minimálisra csökkenteni a giroszkóp alaphibájának hatását. A gyorsulásmérők a nehézségi gyorsuláshoz képest érzékelik az irányváltozásokat, és ez az adat felhasználható a giroszkóp tájolásának (térbeli helyzetének) beállításához.
A gyorsulásmérők a dinamikus számításokban kevésbé pontosak, mint a statikusakban. A giroszkópok akkor érzékelik pontosabban a térbeli helyzetet, ha a rendszer már mozgásban van.
A gyorsulásmérők gyorsan reagálnak, emiatt a gyorsulásmérők jelfluktuációja és zaja halmozott hibát okoz, ha egyedül ezt az adatot használják fel. Ezenkívül a gyorsulásmérők a külső erők, például a nehézségi erő hatására hajlamosak torzítani a gyorsulásértékeket, amelyek szintén zajként halmozódnak a rendszerben. Ennek az adatnak a szűrése javítja a pontosságot.
A giroszkóp rövidtávú pontosságát a gyorsulásmérő hosszútávú pontosságával kombinálva a térbeli helyzet pontosabb értékét kapjuk, az egyes érzékelők erősségeit kihasználva és kiküszöbölve vagy legalábbis csökkentve a másik érzékelő gyengeségeit. A két érzékelőtípus kiegészíti egymást, ami segít csökkenteni a hibákat, de a hibák csökkentésének vannak egyéb módjai is.

 

A hibák csökkentéséhez jelegyesítő szűrés szükséges

A tehetetlenségi jeladók szoftvere szűréssel csökkenti a tehetetlenségi jeladók adatainak pozícióhibáit. Az érzékelők adatainak jelegyesítéssel történő szűréséhez többféle, eltérő bonyolultságú szűrési módszer közül lehet választani. A komplementerszűrő egy felüláteresztő giroszkópjelszűrést és egy aluláteresztő gyorsulásmérőjel-szűrést kombinál. A gyorsulásmérők adataiban lévő nagyfrekvenciás zajt ily módon rövid távon kiszűrik, és simítják a giroszkóp adataival.
Az érzékelők összes jelének feldolgozásához, szűréséhez és egyesítéséhez szükséges nagy számítási teljesítmény sok energiát fogyaszt, amely akkumulátorról működő rendszerekben gondot jelenthet, főleg ha nincs szükség folyamatos jelszolgáltatásra a tehetetlenségi jeladóktól. Számos beágyazott felhasználás esetében jelentős energiamegtakarítás érhető el, ha a tehetetlenségi jeladók megszakítást tudnak generálni, felébresztve a befogadó rendszer feldolgozóegységét alvó állapotból, és az a megszakítás hatására tudja megkezdeni a feldolgozást, vagy végrehajtani valamilyen műveletet. Ennek érdekében néhány gyártó újabban jelfeldolgozó és döntéshozó funkcióval látja el a tehetetlenségi jeladóit.

 

Hadd gondolkozzon a tehetetlenségi jeladó!

Ilyen funkciókkal rendelkezik a 6 szabadsági fokú (6DOF) jeladó, az LSM6DSO tehetetlenségi jeladó az STMicroelectronics vállalattól. A készülékben három mikro-elektromechanikus rendszerű (MEMS) pörgettyű és három mikro-elektromechanikus rendszerű gyorsulásmérő található, és a befogadó rendszer feldolgozóegységének felügyelete vagy segítsége nélkül képes érzékelni a térbeli helyzet változásait és a kézmozdulatokat, pusztán a saját feldolgozóegysége segítségével. A tehetetlenségi jeladó áramfelvétele a legnagyobb teljesítményű üzemmódban 0,55 mA.
Ebben az üzemmódban az LSM6DSO képes folyamatosan figyelni saját térbeli helyzetét és térben történő mozgását, és előállítani egy megszakítást az előre megadott feltételek bekövetkezése esetén, amely felébreszti a befogadó rendszer feldolgozóegységét, hogy az további jelfeldolgozást végezzen az érzékelő jelein. A folyamatosan működő, kis fogyasztású tehetetlenségi jeladó előnyös, mert a befogadó rendszer feldolgozóegysége alvó állapotban maradhat, és csak akkor ébreszti fel a jeladó, amikor arra szükség van. Ez egy akkumulátoros rendszereknél használt, kipróbált és megbízható fogyasztáscsökkentő módszer.
Az LSM6DSO tehetetlenségi jeladó a pörgettyűs és gyorsulásmérő-jeladók mellett tartalmaz egy jelformáló és szűrőblokkot, egy véges állapotú számítógépet (FSM), amely akár 16 program futtatására is képes – ezek mindegyike közös, beállítható kimeneti adatátviteli sebességű –, valamint egy gépi tanulást végző egységet is. Ezek az egységek együtt használva eseményérzékelő megszakításokat tudnak előállítani az alábbi feltételek bekövetkezése esetén:

  • Szabadesés;

  • Ébresztés;

  • 6 szabadságfokú térbeli helyzet;

  • Kattintás és dupla kattintás érzékelése;

  • Aktivitás/tétlenség felismerése;

  • Álló helyzet/mozgás érzékelése.

 

A jelformáló blokk a saját érzékenységbeállító regisztereiben tárolt átalakítási tényezőket alkalmazva méretezi az érzékelők nyers adatait. Ezután átalakítja a tehetetlenségi jeladó érzékelőinek nyers adatait 16 bites, félpontosságú lebegőpontos (HFP) bájtformátumra, amelyet a véges állapotú számítógép képes értelmezni. Az 1. ábrán a tehetetlenségi jeladó mikro-elektromechanikus rendszerű érzékelői (a gyorsulásmérők és a pörgettyűk) láthatók a két analóg-digitális átalakítóval (A/D átalakító vagy ADC) és a négy szűrőblokkal együtt. A szűrőblokkok a mikro-elektromechanikus rendszerű érzékelők analóg jeleinek szűrt digitális adatokká való átalakítására szolgálnak. (1. ábra)

 

digi key2

1. ábra  Az LSM6DSO tehetetlenségi jeladó két analóg-digitális átalakító segítségével alakítja át a benne lévő mikro-elektromechanikus rendszerű gyorsulásmérők és pörgettyűk jeleit digitális adatokká. Az analóg-digitális átalakítókat négy digitális szűrő követi, hogy a jeleket a döntéshozó belső véges állapotú számítógép, a gépi tanulást végző egység és a befogadó rendszer feldolgozóegysége számára értelmezhető formátumúvá alakítsák (A kép forrása: STMicroelectronics)


A programozható véges állapotú számítógép egy beállítóblokkból és tizenhat programblokkból áll. A beállítóblokk állítja be és vezérli a teljes, véges állapotú számítógépet. A tizenhat programblokk mindegyike egy bemenetválasztó blokkból és egy kódblokkból áll. Ezt a két blokkot a tehetetlenségi jeladó regisztereibe írt értékek vezérlik. (2. ábra).
A bemenetválasztó blokk a tehetetlenségi jeladó valamelyik belső érzékelőjéből vagy a tehetetlenségi jeladó érzékelő-csomópontjához csatlakoztatott külső érzékelőből származó kiválasztott bemeneti adatokat a kódblokkba irányítja. A tehetetlenségi jeladó érzékelő-csomópontja legfeljebb négy külső érzékelő, például magnetométer jelét képes fogadni I2C-portokon keresztül.
A kódblokk a véges állapotú számítógép egy programját tartalmazza. A programblokk adatszekciójának állandó adatokat tartalmazó része hat bájtból áll, amelyek a küszöbértékek számát, a hiszterézist, a maszkot és az időzítési beállításokat határozzák meg a program számára. A programblokk változóadat-szekciója tartalmazza a küszöbértékek, a hiszterézis, a maszk és az időzítési beállítások tényleges értékeit az egyes programokhoz, az adatszekció állandó adatokat tartalmazó részében tárolt értékeknek megfelelően.
Az adatszekció állandó adatokat tartalmazó részében meg van határozva a változóadat-szekciónak a kódblokk memóriájában elfoglalt mérete, egy programozható nullázóvektor és egy programszámláló is. Mivel ezek mind 8 bites értékek, a véges állapotú számítógép mindegyik programjának mérete 256 bájtra van korlátozva.
A programblokk utasításszekciója tartalmazza a véges állapotú számítógép tényleges programját. A programutasítások lehetnek az érzékelőktől származó bemenőjelek küszöbértékekkel való összehasonlítására, a nullátmenetek ellenőrzésére és az időzítési beállításoknak az időtúllépési értékekkel való összevetésére szolgáló műveletkódok. A műveletkódok határozzák meg a véges állapotú számítógép aktuális állapotából a következő állapotra való átállás feltételeit. Ezenkívül jelen vannak a program változóadat-szekciójában tárolt küszöbértékek és maszkok kiválasztására, a tehetetlenségi jeladó érzékelő-csomópontján lévő, a négy lehetséges külső érzékelőből egynek a csatlakoztatását megvalósító multiplexes kiválasztó megadására, valamint a megszakítások kiválasztására szolgáló parancs-műveletkódok is.
A véges állapotú számítógép mindegyik programja előállíthat egy megszakítást, és módosíthatja a megfelelő regiszter tartalmát a kiválasztott bemenőjelnek megfelelően. Ezen regisztereknek az értéke segítségével adja át az adatokat a tehetetlenségi jeladó a befogadó rendszer feldolgozóegységének.
A véges állapotú számítógépet úgy kell elképzelni, mint egy aritmetikai logikai egység (ALU) nélküli mikroprocesszort. A véges állapotú számítógép tud kiválasztásokat végezni, összehasonlításokat végrehajtani, és ezen összehasonlítások eredménye alapján döntéseket hozni saját következő állapotáról. Számításokat nem végez, csak Boole-algebrai értékeket állít elő ezen összehasonlítások eredménye alapján.
A véges állapotú számítógép nem mikroprocesszor. Képes összehasonlításokat végezni, és ezen összehasonlítások eredménye alapján egyszerű módosításokat végrehajtani a programfolyamatban. Mivel egyszerű számítógép, a programozása közvetlenül történik az FSM-műveletkódokkal. A véges állapotú számítógéphez nincs magas szintű nyelvi fordítóprogram, de a programok általában annyira egyszerűek, hogy nincs is rá szükség.

 

digi key

2. ábra  Az LSM6DSO tehetetlenségi jeladó tizenhat programblokkjának mindegyike egy bemenetválasztó blokkból és egy kódblokkból áll (A kép forrása: STMicroelectronics)


A véges állapotú számítógép használata

Az LSM6DSO tehetetlenségi jeladó véges állapotú számítógépe programozható arra, hogy a megadott elmozdulásminták által kiváltott megszakításjeleket állítson elő. A véges állapotú számítógép az elmozdulás érzékelése érdekében akár 16 független programot is képes egyidejűleg futtatni. A véges állapotú számítógép mindegyik programja ha-akkor-egyébként (if-then-else) lépések sorozatából áll, és az LSM6DSO érzékelőinek, azaz gyorsulásmérőinek és giroszkópjainak jeleiből előállított adatokat használja bemenőjelként. Ha a véges állapotú számítógép bármelyik programja azt észleli, hogy fennáll a hozzá társított előre beprogramozott állapot, a véges állapotú számítógép képes egy megszakítást előállítani a befogadó rendszer feldolgozóegysége számára.
A véges állapotú számítógép mind a tizenhat lehetséges programja három memóriaszekcióból áll, ezek az állandó adatok, a változó adatok és az utasítások. A 3. ábrán a véges állapotú számítógép egy programblokkjának blokkvázlata látható.
A kódblokkon belül egy program felépítése a memóriablokkban elhelyezkedő három szekcióból áll:

  • Az állandó adatok szekciója, amely a véges állapotú számítógép minden programja esetében azonos méretű.

  • A változóadat-szekció, amelynek mérete változó.

  • Az utasításszekció, amely feltételeket és parancsokat tartalmaz.

 

A véges állapotú számítógép egyes kódblokkjainak programozása a három memóriaszekciónak a véges állapotú számítógép viselkedését meghatározó programozási értékekkel való feltöltéséből áll. Az STMicroelectronics kínál ehhez egy véges állapotú számítógépek programozására szolgáló FSM-programozóeszközt saját letölthető Unico értékelő fejlesztőszoftverén és fejlesztőkörnyezetén belül. Az STMicroelectronics mellékel ezenkívül néhány véges állapotú számítógépekhez való FSM-mintaprogramot is a Unico fejlesztőeszközökhöz a véges állapotú számítógépek programozásának tanulására szolgáló segédletként. Ezek a mintaprogramok néhány tehetetlenségi jeladóra épülő megszakítási esetet mutatnak be, többek közt a következőket:

  • Alapszintű lépésszámláló,

  • a rendszer szabadesésben,

  • egyszerű mozgásérzékelés,

  • a rendszert felemelték, megrázták,

  • a rendszer mozgása megszűnt (álló helyzet),

  • a csukló megdöntése.

 

A véges állapotú számítógépekhez való mintaprogramok bemutatják a véges állapotú számítógép különböző funkcióinak használatát. A mintaprogramok mindegyike telepíthető a tehetetlenségi jeladók olyan bemutatóplatformjaira, mint a STEVAL-MKI109V3 eMotion STM32 értékelőkártya, amelynek 28 érintkezős aljzata képes fogadni az LSM6DSO tehetetlenségi jeladó STEVAL-MKI197V1 adapterkártyáját. A STEVAL-MKI109V2 kártya valamelyik mintaprogrammal való beprogramozásához elég néhány kattintás a Unico fejlesztőkörnyezetben.
Az LSM6DSO azonban többet tud, mint amit első látásra gondolnánk.

 

digi key3

3. ábra  Az STMicroelectronics cég LSM6DSO jelű tehetetlenségi jeladójának véges állapotú számítógépe tizenhat kódblokkot tartalmaz, amelyek mindegyike három memóriaszekcióból áll, ezek az állandó adatok, a változó adatok és az utasítások (A kép forrása: STMicroelectronics)

 

A gépi tanulást végző egység

Az LSM6DSO tehetetlenségi jeladóban található egy kifinomultabban és jobban programozható minta-összehasonlító egység is, mégpedig a gépi tanulást végző egység. Ez az egység a tehetetlenségi jeladó belső érzékelőiből és bármilyen csatlakoztatott külső érzékelőből származó, több érzékelőből nyert adatok alapján képes azonosítani a mozgásfajtákat. Az egység által felismert mozgásfajták: az álló helyzet (nincs mozgás), a séta, a kocogás, a kerékpározás és a gépjárművel haladás. A gépi tanulást végző egységen belül a minősítés döntési fa formájában valósul meg.
A gépi tanulást végző egység három blokkból áll: az érzékelőadatok blokkja, a számítási blokk és a döntési fa (4. ábra). A gépi tanulást végző egységben az érzékelőadatok blokkja összesíti a tehetetlenségi jeladó belső gyorsulásmérőinek és pörgettyűinek, valamint a tehetetlenségi jeladóhoz az I2C-illesztőfelületen át csatlakoztatott külső érzékelőknek a jeleiből származó adatokat. A számítási blokk képes előre meghatározott szűrési paraméterek alapján szűrni az érzékelők adatait, és ablakolt statisztikai adatokat kiszámítani, beleértve az érzékelőadatok középértékét, varianciáját, csúcstól csúcsig mért amplitúdóját, minimum- és maximumértékét és nullátmeneteit. A döntési fa összeveti a számított érzékelőadat-statisztikát a küszöbértékekkel, és ennek alapján minősíti a bemeneti adatokat.
Akárcsak az LSM6DSO véges állapotú számítógépe esetében, a Unico fejlesztőkörnyezet egy e célra szolgáló eszköze használható a tehetetlenségi jeladó gépi tanulást végző egységének programozására is.
A véges állapotú számítógép és a gépi tanulást végző egység egyaránt használható arra, hogy a befogadó rendszer feldolgozóegységével együttműködve kifinomultabb helyzetkövető algoritmusokat valósítson meg. Az STMicroelectronics X-CUBE-MEMS1 szoftvercsomagja a vállalat STM32Cube fejlesztőrendszeréhez az alábbi szoftverrutin-mintákat tartalmazza:

  • Tevékenységfelismerő – A felhasználó által végzett tevékenység jellegére vonatkozóan szolgáltat adatokat, beleértve az egy helyben állást, a sétálást, a gyors gyaloglást, a kocogást, a kerékpározást és a gépjárművel haladást. Ezt az algoritmust jellemzően mobiltelefonokban és egyes viselhető készülékekben használják.

  • A mozgás időtartamának érzékelése – A lépésszámláló adataival kombinálva a mozgás időtartamának érzékelése használható annak meghatározására, hogy hány másodpercig végzett aktív mozgást a felhasználó. Ezt az algoritmust jellemzően sportcélú viselhető készülékekben és egészségfigyelő eszközökben használják.

  • A rezgés vagy a mozgásintenzitás érzékelése – A felhasználó mozgásának intenzitásáról szolgáltat adatokat, és a mozgásintenzitás 0 (álló helyzet) és 10 (rohanás) közti tartományban fejezhető ki. Ezt az algoritmust jellemzően mobiltelefonokban és egyes sportcélú viselhető készülékekben használják.

  • A hordhelyzet felismerése – Arról szolgáltat adatokat, hogy a felhasználó hogyan hordja a készüléket, és az alábbi helyzeteket tudja megkülönböztetni: az asztalon, kézben, a fej mellett, ingzsebben, nadrágzsebben, kabátzsebben, mozgó karon. Ezt az algoritmust jellemzően mobiltelefonokban és egyes hordozható készülékekben használják a tevékenységhez kapcsolódó összefüggések felismerése érdekében.

Figure 4 

4. ábra  Az STMicroelectronics cég LSM6DSO jelű tehetetlenségi jeladójában lévő, gépi tanulást végző egységet három blokk alkotja: az érzékelőadatok blokkja, amely összesíti a belső és külső érzékelők jeleiből származó adatokat, a számítási blokk, amely szűri az érzékelők adatait, és statisztikákat számít ki azok alapján, valamint a döntési fa, amely a számított statisztikák alapján minősíti az eseményeket (A kép forrása: STMicroelectronics)

 

Következtetés

Mivel a befogadó rendszer feldolgozóegysége viszonylag sokat fogyaszt, az akkumulátorról működő készülékek beágyazott alkalmazásai esetében nem egyszerű megvalósítani azt a célt, hogy a befogadó rendszer feldolgozóegysége folyamatosan működjön, és így tartsa a térbeli helyzetet, illetve érzékelje a mozgást és a kézmozdulatokat a tehetetlenségi jeladók jelei alapján. A kis fogyasztású tehetetlenségi jeladók új generációja azonban elegendő saját feldolgozókapacitással van ellátva ahhoz, hogy gépi tanulást végezve megoldja ezt a problémát, lehetővé téve, hogy a befogadó rendszer feldolgozóegysége alacsony fogyasztású alvó állapotban legyen mindaddig, amíg szükség nincs rá.

 

Szerző: Rich Miron – Digi-Key Electronics

 

Digi-Key Electronics
Angol/német nyelvű kapcsolat
Hermann W. Reiter
Director, Global Strategic Business Development
Digi-Key Electronics Germany
Tel.: +49 151 6286 5934
E-mail: Ez az e-mail-cím a szpemrobotok elleni védelem alatt áll. Megtekintéséhez engedélyeznie kell a JavaScript használatát.

www.digikey.hu

 

Még több Digi-Key Electronics