Pierwszy czujnik inercyjny z wbudowanym mechanizmem uczenia maszynowego

| Technika

LSM6DSOX to zintegrowane rozwiązanie sensorów MEMS typu SoP (System-in-Package) zawierające cyfrowy akcelerometr i żyroskop 3D o małym poborze mocy razem z układem kondycjonowania danych i interfejsem cyfrowym. Czujnik ten pobiera jedynie 0,55 mA w trybie aktywnym o dużej wydajności, co zapewnia realizację ciągłego odczytu parametrów nawet w aplikacjach zasilanych z baterii i tym samym ma większą funkcjonalność.

Pierwszy czujnik inercyjny z wbudowanym mechanizmem uczenia maszynowego

LSM6DSOX realizuje pomiar przyspieszenia w czterech zakresach: ±2, ±4, ±8 i ±16 g i prędkość kątową w: ±125, ±250, ±500, ±1000 i ±2000 dps. Czujnik nadaje się do pracy w aplikacjach wizyjnych, gdzie może dostarczać danych pomiarowych do układów elektronicznej i optycznej stabilizacji obrazu (EIS i OIS) oraz zawiera tzw. konfigurowalną ścieżkę przetwarzania sygnału z pomocniczym wyjściem SPI. Jako interfejs główny dostępne są interfejsy (SPI / I²C i MIPI I3CSM). Jego konstrukcja charakteryzuje się wysoką odpornością na wstrząsy mechaniczne.

Uczenie maszynowe

Machine learning (uczenie maszynowe) to zagadnienie informatyczne, które wykorzystuje ogromne zbiory danych do nauczenia maszyny podejmowania decyzji. Aby maszyna (algorytm) mogła wyciągnąć wnioski z różnych zbiorów danych, najczęściej korzysta się z tzw. drzewa decyzyjnego. Jest ono strukturą złożoną z węzłów, z których każdy ma jedną lub więcej gałęzi. Gdy system przetwarza informacje, przemieszcza się przez różne gałęzie, aż dojdzie do tzw. liścia, co odpowiada podjętej decyzji. Ta decyzja zwracana jest jako wynik.

Algorytmy uczenia maszynowego są często używane do wstępnej filtracji danych z czujników lub też są podstawą systemów eksperckich, które wypracowują decyzję (reakcję) systemu na określone warunki. Niemniej implementacja uczenia maszynowego dla czujnika współpracującego z mikrokontrolerem w urządzeniach mobilnych jest niełatwa, bo algorytm jest relatywnie złożony obliczeniowo, a dodatkowo musi być wykonywany przez cały czas, aby mógł obserwować wszystkie zdarzenia. Znacząco utrudnia to organizację trybów oszczędzania energii przez usypianie MCU i wybudzanie jedynie na krótkie momenty w celu obsługi zdarzeń.

 
Rys. 1. Schemat jednostki uczenia maszynowego w czujniku LSM6DSOX

LSM6DSOX

LSM6DSOX to pierwszy na rynku czujnik z wbudowanym algorytmem uczenia maszynowego, realizującym funkcje obróbki danych, odciążający pracę głównego mikrokontrolera i tym samym oszczędzający dużo energii.

Sensor ten ma zaimplementowane 16-stanowe drzewo decyzyjne o pięciu poziomach, które tworzy silnik FSM (Finite State Machine) algorytmu uczenia maszynowego (Machine Learning Processor, MLP) zapewniający analizę, klasyfikację i identyfikację wzorców ruchu, dzięki czemu czujnik zapewnia większą funkcjonalność od konkurencyjnych rozwiązań.

Maszyny FSM doskonale nadają się do uruchamiania algorytmów dedukcyjnych w celu zapewnienia wykrywania, czy produkt jest skierowany w górę, czy w dół, detekcji swobodnego spadania, podniesienia przez użytkownika, a nawet monitorowania niektórych ćwiczeń fitness.

Jednym z najbardziej przełomowych aspektów czujnika LSM6DS0X jest to, że ma on procesor do uczenia maszynowego z maksymalnie ośmioma konfikonfigurowalnymi drzewami decyzyjnymi wbudowany w sam czujnik.

Oznacza to, że zamiast używać mikrokontrolera hosta (MCU) do uruchamiania algorytmu obróbki danych i do wyciągania wniosków, co wymaga dużej ilości energii, algorytm z drzewem decyzyjnym wewnątrz czujnika działający w oparciu o specjalizowany chip może działać, zużywając jedynie ułamek tej energii. W rezultacie system może rozpoznawać określone działania i gesty, pozycje lub liczyć kroki, po prostu obserwować ruchy i wyciągać wnioski z wcześniej zdefiniowanych wzorców.

 
Rys. 2. Płytka nakładkowa MKI197V1

LSM6DSOX wykorzystuje model maszyny o skończonej liczbie stanów (Finite State Machine) z logiką sekwencyjną. Na przykład możemy sobie wyobrazić FSM, który zmienia się ze stanu A do stanu B, jeśli wejście ma wartość 1, ale pozostaje w stanie A, jeśli wynosi 0. Dzięki temu implementacja FSM wymaga bardzo małej mocy obliczeniowej i niewiele pamięci co zapewnia efektywność wybranych zadań.

LSM6DSOX ma zaimplementowane do 16 niezależnych FSM, które są bardzo proste z natury, ale wysoce konfigurowalne, realizując porównania progów lub funkcje timera. Jeśli programiści chcą wykryć przechylenie nadgarstka w celu włączenia lub wyłączenia ekranu smartwatcha, muszą jedynie skonfigurować FSM i ustalić, kiedy określone wyjścia wygenerują przerwanie, które włączy lub wyłączy ekran w zależności od ruchów użytkownika.

Podstawą systemu uczenia w czujniku jest specjalizowana platforma sprzętowa, znacznie wydajniejsza od tego, co oferują rozwiązania ogólnego przeznaczenia. Za jej pomocą można zaimplementować drzewo decyzyjne z setkami węzłów i uruchomiać algorytmy, które wykraczają złożonością poza to, co zapewnia popularny Cortex M0.

Środowisko projektowe

Inżynierowie mogą rozpocząć projektowanie aplikacji z LSM6DSOX z wykorzystaniem zestawu STEVAL-MKI197V1 – płytki nakładkowej o wymiarach podstawki DIL24, która może współpracować z płytami bazowymi STEVAL-MKI109V2 lub STEVAL-MKI109V3. Do konfiguracji drzewa decyzyjnego można wykorzystać narzędzie Unico GUI.

Kluczowe cechy techniczne

  • pobór prądu: 0,55 mA w trybie kombinowanym o wysokiej wydajności
  • funkcjonalność "zawsze aktywny" przy niskim zużyciu energii zarówno dla akcelerometru, jak i żyroskopu
  • inteligentny FIFO o pojemności do 9 kB
  • zgodny z systemem Android
  • zakres pomiarowy przyspieszenia ±2, 4, 8, 16 g
  • zakres pomiarowy prędkości kątowej ±125, 250, 500, 1000 i 2000 dps
  • napięcie zasilania: od 1,71 do 3,6 V
  • niezależne zasilanie dla linii IO (1,62 V)
  • małe rozmiary obudowy LGA: 2,5×3×0,83 mm
  • zaawansowany krokomierz, wykrywacz kroków i licznik kroków
  • wykrywanie ruchu, wykrywanie przechyłu
  • standardowe przerwania: swobodne opadanie, wybudzenie, orientacja 6D/4D, kliknięcie i dwukrotne kliknięcie
  • synchronizacja danych S4S
  • wbudowany czujnik temperatury

Zobacz również