Einsatz weiterentwickelter Sensoren und Algorithmen für preisgünstige Bewegungsverfolgung
Zur Verfügung gestellt von DigiKey
2017-06-07
Leistungsfähige Anwendungen zur Bewegungsverfolgung (engl. Motion Tracking) dringen heutzutage aus hochkomplexen Anwendungen in den Bereichen Militär, Avionik, Marine und Industrie in immer mehr Verbraucheranwendungen vor. Aber noch immer stehen Designer, die ein leistungsfähiges Motion Tracking in Lösungen für den Verbrauchermarkt integrieren wollen, vor einer Reihe von Zielkonflikten, insbesondere im Hinblick auf Kosten, Energieverbrauch und Rechenressourcen.
Doch dank der Fortschritte im MEMS-Design und in der Fertigungstechnik ermöglichen Trägheitsmesseinheiten (inertial measurement unit, IMU) einer neuen Generation den Entwicklern höhere Leistungsniveaus bei immer weniger Kompromissen.
Dieser Artikel beschreibt die Designprobleme und Kompromisse, wie sie vor Einführung einer neuen Generation von 6-Achsen-IMU bestanden, die eine Entlastung des Hostprozessors von rechenintensiven Operationen versprechen. Er befasst sich auch mit neuartigen Strategien zur Partitionierung des Rechenaufwands, die Designern helfen, eine höhere Präzision beim Motion Tracking bei gleichzeitig deutlich niedrigerem Energieverbrauch des Gesamtsystems zu erzielen. Schließlich geht es um neue, optimierte Schätzalgorithmen und ein Entwicklungskit, mit denen Entwickler effizientere Sensorfusionslösungen konzipieren können.
Kompromisse bei der Sensorleistung
Geräte für den Verbrauchermarkt – also Consumer-Anwendungen – müssen im Hinblick auf möglichst niedrige Kosten optimiert werden. Traditionell entschieden sich Designer von Consumer-Systemen unter Nutzung von MEMS-Bewegungserkennung für das Streaming von Beschleunigungsmesser- und Gyroskopdaten von der IMU zum Anwendungsprozessor (AP) oder Sensor-Hub-Controller, bevor eine weitere Verarbeitung der Daten erfolgt.
Jedoch erfordert eine hochpräzise Bewegungsverfolgung erhebliche Rechenressourcen, um die Sensorfusion mit den bisher verfügbaren 6- und 9-Achsen-IMU zu bewerkstelligen. In den entsprechenden Anwendungen müssen die Entwickler eine Abtastfrequenz von mindestens mehreren hundert Hertz realisieren. Für Designer war es ein schwieriges Unterfangen, diese hohe Leistung preisgünstig zu erzielen, ohne den Systemprozessor zu überlasten oder die Benutzererfahrung zu beeinträchtigen.
Zwei weitere Probleme, vor denen die Entwickler stehen, sind die Markteinführungszeit und die Minimierung des Stromverbrauchs. Angesichts der Tatsache, dass alle Sensoren im Laufe der Zeit eine Drift aufweisen, liegt der Schlüssel zur Entwicklung hochpräziser und konsistent leistungsfähiger Motion-Tracking-Subsysteme in der Kalibrierung. Das Schreiben von Algorithmen zur automatischen Kalibrierung wäre hierbei eine Option. Aber die dafür benötigte Zeit steht im Gegensatz zu den oftmals kurzen Zeitfenstern für die Markteinführung, wie sie für den Verbrauchermarkt typisch sind. Für das weitere Vordringen von leistungsfähigen Tracking-Funktionen in Mobil- und Drahtlossystemen stellt die begrenzte Stromverfügbarkeit eine weitere Hürde dar. Hier kämpfen die Entwickler um die Realisierung der großen Rechenressourcen, die ein hochpräzises Motion Tracking erfordert, bei gleichzeitiger Optimierung der Akkulaufzeit.
Eine Reihe von in letzter Zeit vorgestellten Technologien verspricht hier, die Arbeit der Entwickler deutlich zu erleichtern. Genannt seien die neuen 6-Achsen-IMU, die über weiterentwickelte Vektor-DSP-Koprozessoren (Digital Signal Processing, digitale Signalverarbeitung) verfügen. Sie versprechen eine Entlastung des Hostprozessors von rechenintensiven Operationen. Gleichzeitig ermöglichen neuartige Strategien zur Partitionierung des Rechenaufwands eine höhere Präzision bei der Bewegungsverfolgung bei gleichzeitig deutlich niedrigerem Energieverbrauch des Gesamtsystems. Schließlich können dank neuer, optimierter Algorithmen, die auf einer weiterentwickelten Version des Kalman-Filterprinzips basieren, effizientere Sensorsfusionslösungen konzipiert werden.
Intelligente IMU
Ein ausgezeichnetes Beispiel für diese neue Generation von MEMS-IMU ist das FIS1100, ursprünglich von Fairchild entwickelt, das jetzt zu On Semiconductor gehört. Dieses intelligente MEMS-Sensormodul integriert einen 3-Achsen-Beschleunigungsmesser mit einem 3-Achsen-Gyproskop und liefert die Eingänge für ein optionales externes 3D-Magnetometer von einem Drittanbieter. In Verbindung mit der XKF3-Sensorfusionsbibliothek und einem 3D-Magnetometer bietet das FIS1100 eine 9DOF-Komplettlösung (d. h. mit 9 Freiheitsgraden), siehe Abbildung 1.
Eine Schlüsselkomponente der IMU ist die AttitudeEngine, ein spezieller Vektor-DSP-Koprozessor, der in der Lage ist, hochfrequente Bewegungsdaten mit hohen internen Abtastraten zu codieren, bei gleichzeitiger Aufrechterhaltung der Gesamtgenauigkeit bei jeder Ausgangsdatenrate (ODR). Dies ermöglicht dem Koprozessor die Verarbeitung von Trägheitsdaten mit einem Bruchteil des Energiebedarfs, der für die gleichen Berechnungen auf einem generischen Systemprozessor nötig wäre.
Mit dem FIS1100 können Designer den Koprozessor zur Entlastung des Hostprozessors von rechenintensiven Operationen einsetzen, wodurch die Notwendigkeit häufiger Daten-Interrupts entfällt und der Systemprozessor länger im Ruhemodus bleiben kann. Dieses dedizierte Hardwaremodul kann den Stromverbrauch der Bewegungssignalverarbeitung bis zum Faktor 10 verringern – ohne Einbußen bei der Genauigkeit.
![]()
Abbildung 1: In einer typischen Anwendung integriert die IMU FIS1100 ihr 3-Achsen-Gyroskop und ihren 3-Achsen Beschleunigungsmesser über eine I2C-Master-Schnittstelle mit einem Drittanbieter-Magnetometer. Ein Anwendungsprozessor übernimmt das Management dieser 9DOF-Lösung über eine 4-Draht-SPI-Schnittstelle. (Bildquelle: ON Semiconductor)
Kalman-Filterung
Zur Entwicklung von Motion-Tracking-Lösungen mit höherer Genauigkeit bei gleichzeitig extrem geringen Stromverbrauchswerten nutzen Entwickler neue, optimierte Schätzalgorithmen, die auf einer weiterentwickelten Version des Kalman-Filterprinzips basieren. Ganz allgemein handelt es sich bei der Kalman-Filterung um einen Algorithmus, der eine Reihe von Messwerten verwendet, die im zeitlichen Verlauf erfasst werden und statistische Fehler und andere Ungenauigkeiten enthalten, um Schätzungen für nicht messbare Systemgrößen zu liefern. Diese Messwertreihen sind tendenziell genauer als ein einzelner Messwert.
Zur Schätzung eines Prozesses nutzt das Kalman-Filter eine zweistufige Form der Regelung. Das Filter schätzt den Prozesszustand zu einem bestimmten Zeitpunkt und erhält dann Feedback in Form von Messwerten mit einem Rauschanteil. Damit lassen sich die Gleichungen für das Kalman-Filter in zwei Gruppen einteilen: Zeitbeobachtungsgleichungen und Messwertbeobachtungsgleichungen. Die Zeitbeobachtungsgleichungen sind verantwortlich für die Projektion (zeitlich nach vorn) des aktuellen Status und für Fehler-Kovarianzschätzungen, um zu Schätzungen für den nächsten Schritt zu gelangen. Die Messwertgleichungen sind für das Feedback verantwortlich.
Sobald das Ergebnis des nächsten Messwerts aufgezeichnet wurde, werden die Schätzungen unter Verwendung eines gewichteten Durchschnitts aktualisiert. In diesem Prozess erhalten Schätzungen mit höherer Sicherheit mehr Gewicht.
Es muss daran erinnert werden, dass das Kalman-Filter rekursiv ist. Dies macht praktische Implementierungen viel handhabbarer.
Im Gegensatz zu anderen Ansätzen, die so konzipiert sind, dass sie für jede Schätzung direkt auf allen Daten basieren, wird beim Prinzip der Kalman-Filterung die aktuelle Schätzung ausgehend von allen vergangenen Messwerten rekursiv konditioniert. Sie kann in Echtzeit erfolgen, wobei immer nur die aktuell eingehenden Messwerte und der zuvor berechnete Status und dessen Unsicherheitsmatrix verwendet werden. Es sind keine zusätzlichen Vergangenheitsdaten erforderlich.
Fortschritte bei der Sensorfusion
Das oben beschriebene Prinzip der Kalman-Filterung wurde von Ingenieuren von XSENS genutzt, einem Entwickler von Sensorfusionssoftware, der 2014 von Fairchild übernommen wurde. Das Team schuf einen optimierten Schätzalgorithmus namens XKE3, der die Motion-Tracking-Leistung bei gleichzeitig sehr geringem Energieverbrauch verbessert. Bei der XKE3-Sensorfusion handelt es sich um eine binäre Softwarebibliothek, die für die Datenintegration von 3D-Beschleunigungsmesser, 3D-Gyroskop und 3D-Magnetometer sorgt, um daraus die 3D-Orientierung in einem erdfesten Referenzrahmen zu berechnen. Die Zuverlässigkeit der XKE3-Algorithmen hat sich bereits bestens bewährt: Sie wurden schon länger als ein Jahrzehnt in militärischen und industriellen Anwendungen eingesetzt.
Mit der Bündelung des FIS1100, also der Nutzung seines 3-Achsen-Beschleunigungsmessers, seines 3-Achsen-Gyroskops und eines Drittanbieter-Magnetometers mit der XKE3-Fusionssoftware bietet ON Semiconductor Entwicklern eine komplette 9DOF-Lösung. Außerdem vereinfacht diese gebündelte Lösung die Systementwicklung erheblich, denn sie liefert präzise Orientierungsdaten zu Neigung, Drehung und Gier.
Bisher mussten sich Designer zur Realisierung der Motion-Tracking-Funktionalität durch archaische Spezifikationen auf Sensorebene kämpfen und komplexe Methoden zur Verarbeitung von Bewegungsdaten erlernen. Jetzt steht ihnen eine Lösung zur Verfügung, die Neigungs-, Drehungs- und Gierdaten liefert, und sie wissen, welche Positionierungsleistung sie erwarten können, bevor sie ihren ersten Prototypen erstellen.
Die auf einem Mikrocontroller oder Anwendungsprozessor ausgeführte XKE3-Bibliothek übernimmt die Erfassung von Bewegungsdaten aus dem FIS1100 mit einer konfigurierbaren Rate. Bei dieser 9-Achsen-Lösung (siehe wiederum Abbildung 1) tastet das FIS1100 den Beschleunigungsmesser und das Gyroskop mit einer relativ hohen Frequenz (1 kHz) ab und sendet die Messdaten an den AttitudeEngine-Koprozessor, der mit hoher Genauigkeit die SDI-Berechnungen (Strap-Down Integration) durchführt. Der Koprozessor synchronisiert auch die Magnetometerdaten mit den Trägheitsdaten, um von Cloning und Sculling bereinigte Orientierungs- und Geschwindigkeitsinkremente zu erhalten, und überträgt das alles zusammen mit den optionalen Magnetometerdaten zur XKE3-Engine.
Die XKE3-Algorithmen spielen eine Schlüsselrolle bei der Kalibrierung des Sensors. Zum Beispiel kann eine Vielzahl von Prozessen – angefangen von Vibration und Temperatur bis hin zur Gerätealterung und mechanischen Beanspruchung – die Ausgabe des Magnetometers im Laufe der Zeit verändern. Oft sind diese Veränderungen der Kalibrierungsparameter nur sehr gering. XFK3 kompensiert diese Veränderungen durch eine vom Benutzer völlig unabhängig bewerkstelligte Kalibrierung, die für ein kontinuierliches und automatisches Kalibrieren jedes Sensors im Hinblick auf die wichtigsten Fehler sorgt. Damit entfällt die Notwendigkeit von Nutzungsunterbrechungen.
Partitionierung des Rechenaufwands
Eine weitere wichtige Rolle bei der Fähigkeit von FIS1100 und XKE3, die Motion-Tracking-Leistung bei geringerem Stromverbrauch zu verbessern, spielt die Verwendung innovativer Strategien zur Partitionierung des Rechenaufwands. Bisher haben Designer die Messdaten von Beschleunigungsmesser und Gyroskop von der IMU zum Hostprozessor gestreamt, der dann die SDI-Berechnungen der Inertialbeträge durchführt. Diese Architektur ist in Abbildung 2 dargestellt. Die integrierten Werte werden dann von Sensorfusionsalgorithmen verwendet, um die gewünschte Ausgabe bereitzustellen.
![]()
Abbildung 2: In dieser Darstellung einer herkömmlichen Architektur werden Beschleunigungsmesser- und Gyroskopdaten direkt von der IMU zum Hostprozessor gestreamt, der die Inertialbeträge berechnet. (Bildquelle: ON Semiconductor)
Bei dieser Architektur muss das Streaming von Beschleunigungsmesser- und Gyroskopsignalen von der IMU zum Hostprozessor mit hoher Geschwindigkeit erfolgen, um die Präzision beim Motion Tracking zu gewährleisten. Allerdings sind Highspeed-Datenübertragungen zum Hostprozessor eigentlich nicht nötig, da die für die endgültige Anwendung benötigte Aktualisierungsrate von wenigen Hz für Anwendungen, z. B. Fußgängernavigation, bis zu 30 oder 60 Hz für Spiele, Fitness-Tracker und Robotiksteuerung reicht. Selbst Anwendungen mit noch höheren Leistungskennziffern, wie Virtual und Augmented Reality, benötigen nur etwa 100 Hz. In dieser Situation brauchen die Designer die Daten nur mit hohen Raten zu streamen, um eine präzise numerische Integration von Beschleunigungs- und Winkelgeschwindigkeit durchzuführen.
Doch das Streaming von Daten mit hohen Raten hat seinen Preis. Die Architektur zwingt den Hostprozessor, häufiger mit Daten-Interrupts umzugehen, was ihn daran hindert, so oft wie möglich in den Ruhemodus zu wechseln. Dementsprechend steigt der Stromverbrauch des Gesamtsystems.
Eine Möglichkeit, dieses Problem abzuschwächen, ist die Verwendung eines FIFO-Puffers auf der IMU-Seite. Doch leider entstehen mit diesem Ansatz neue Probleme, zum Beispiel:
- Notwendigkeit für den Hostprozessor, deutlich mehr Daten zu verarbeiteten
- Erhöhte Wahrscheinlichkeit für Buskonflikte auf SPI/I2C, wenn mehrere Peripheriegeräte sich denselben Bus teilen
- Höhere Wahrscheinlichkeit für Paketverluste in drahtlosen Anwendungen
- Erhöhter Bedarf an Hochgeschwindigkeitsmodi des seriellen Busses und DMA-Unterstützung auf dem Hostprozessor
Designer können die rechnerische Belastung des Systemprozessors drastisch reduzieren, indem sie den Algorithmus fragmentieren: in einen Hochleistungsabschnitt, der auf dem FIS1100 ausgeführt wird, und in ein Segment mit niedriger Geschwindigkeit, das auf der XKE3-Engine ausgeführt wird, und dann wird das FIS1100 zur Implementierung von SDI-Algorithmen auf der IMU-Seite eingesetzt (Abbildung 3). Dieser Ansatz ist noch nützlicher, wenn das System im hochpräzisen 3D-Fusionsmodus mit vollautomatischer Kalibrierung betrieben wird.
![]()
Abbildung 3: Mit der oben abgebildeten Architektur erzielen Designer eine höhere Energieeffizienz, indem die SDI-Berechnungen mit hoher Datenrate auf der AttitudeEngine des FIS1100 durchgeführt werden und die Orientierungs- und Geschwindigkeitsinkremente mit niedriger Datenrate zum XKF3-Fusionsalgorithmus gestreamt werden, der auf der Hostseite ausgeführt wird. (Bildquelle: ON Semiconductor)
Darüber hinaus können Designer durch das Ausführen des Status-Tracking-Abschnitts mit einer sehr niedrigen Abtastrate in der XKE3-Engine eine größere Zahl von Zuständen verfolgen, was ein statistisch optimales Verfolgen mehrerer Kalibrierungsparameter ermöglicht, ohne dass dies zulasten der Systemressourcen geht.
Mit dem Betrieb des FIS1100 im AttitudeEngine-Modus können Designer dies erreichen, indem die Beschleunigungsmesser- und Gyroskopsignale in die digitale Domäne konvertiert und Tiefpassfilter mit einer großen Bandbreite von ca. 200 Hz verwendet werden. Damit kann die AttitudeEngine die SDI-Berechnungen mit einer Eingangsrate von 1 kHz in der Hardware durchführen, wodurch jegliche Fehler aus den digitalen Berechnungen der Bewegungsintegrale vernachlässigt werden können.
Indem das FIS1100 die Bewegungsdaten streamt, die als Orientierungs- und Geschwindigkeitsinkremente anstatt als traditionelle Winkelgeschwindigkeits- und Beschleunigungsmessdaten codiert sind, sind die Berechnungen präzise und unabhängig von der gewählten Ausgaberate. Niedrige Ausgaberaten führen zwar zu einer gröberen Darstellung der Bewegungsdaten, doch die Daten bleiben präzise. Deshalb kann die Ausgaberate entsprechend den anwendungsspezifischen Anforderungen ausgewählt werden und richtet sich nicht nach der Notwendigkeit, die numerische Integration mit hoher Genauigkeit durchzuführen.
Mit dieser innovativen Architektur erzielen die Entwickler mehrere Vorteile:
- Die SDI-Ausführung auf dedizierter Hardware anstatt auf dem Hostprozessor führt zu einer drastischen Senkung des Stromverbrauchs.
- Dabei bleiben die Bewegungsinformationen präzise – unabhängig von der gewählten Datenausgaberate.
- Die Verlagerung der SDI-Funktion zur IMU-Seite der Architektur vereinfacht die Systemintegration durch Verringerung der Rechenanforderungen.
Entwicklungskit als Kickstarter von Designs
Der Entwurf von hochpräzisen Motion-Tracking-Lösungen kann erhebliche Zeit und Mühe kosten. Zur beschleunigten Analyse von Systemleistung und für eine höhere Präzision, aber auch zur Vereinfachung von Hardware- und Embedded-Software-Integration bietet ON Semiconductor ein Evaluierungskit für das FIS1100. Mit dem Kit stehen den Entwicklern ein Evaluierungssystem für die Kombination des FIS1100 mit der XKE3-Fusionsbibliothek, Referenztreiber für das FIS1100 und ein Beispielprojekt für die Sensorfusion für ARM® Cortex®-M-Mikrocontroller zur Verfügung.
Das Management des Evaluierungskits erfolgt über eine benutzerfreundliche MT Manager-Anwendung für die Windows-Benutzeroberfläche. Die Evaluierung beginnt mit der Montage des Arduino-kompatiblen FEBFIS1100 MEMS_IMU6D3X-Moduls an einer NXP LPCXPRESSO54102 MCU-Platine, wie das in Abbildung 4 gezeigt wird. Dann wird die MCU-Platine über ein USB-Kabel mit dem Host-PC verbunden.
![]()
Abbildung 4a
![]()
Abbildung 4b
Abbildung 4: Das FIS1100-Evaluierungskit vereinfacht die Analyse von Systemleistung sowie Software- und Hardware-Integration. Dazu wird ein aus zwei Platinen bestehendes Set angeboten: Das mit Arduino UNO R3-kompatible Modul FEBFIS1100MEMS_IMU6D3x (a) wird an einer ARM Cortex-M-Entwicklungsplatine LPCXpresso54102 von NXP (b) montiert. (Bildquelle: ON Semiconductor)
Nach der Installation der Treiber starten die Entwickler die MT Manager-Anwendung, die eine automatische Suche nach den angeschlossenen Systemen durchführt und diese anzeigt. Im Anschluss an die Auswahl eines Evaluierungskits aus der Geräteliste können die Entwickler die Systembetriebsparameter konfigurieren. Dazu öffnen sie das Fenster zur Ausgangskonfiguration. Mithilfe des Dialogmenüs zur Ausgangskonfiguration können alle wesentlichen Funktionen des FIS1100 und der XKE3-Fusionsbibliothek konfiguriert werden.
Zur leichteren Interpretation der Sensordaten bietet der MT Manager eine Reihe hilfreicher Visualisierungs-Tools. Eine 3D-Orientierungsansicht bietet eine Darstellung der 3D-Orientierung der Evaluierungskarte. Eine Ansicht der Inertialdaten hilft dem Benutzer, die Inertial- und Magnetfelddaten zu verstehen, die von der XKE3-Fusionsbibliothek ausgegeben werden. Diese Daten schließen Korrekturen für typische Sensorfehler wie Gyroskop-Verzerrungen und magnetische Hart- und Weicheisenverzerrungen ein. Für Benutzer, die kurzfristige Bewegungen des Systems verfolgen müssen, etwa die Bewegung eines Arms in Bezug auf den Rumpf, bietet eine Geschwindigkeitsdatenansicht eine grafische Umsetzung der Hochpass-Geschwindigkeitsausgaben der XKE3-Fusionsbibliothek.
Fazit
Leistungsfähige Motion-Tracking-Funktionen sind heutzutage nicht mehr auf komplexe Anwendungen in den Bereichen Militär und Avionik beschränkt. Heute besteht eine rasch wachsende Nachfrage für die Entwicklung dieser Funktionen in kostensensiblen Verbrauchermärkten. Wie oben beschrieben, steht Designern jetzt eine neue Generation von intelligenten und rauscharmen IMU mit geringer Drift zur Verfügung. Neue Ansätze in der Partitionierung des Rechenaufwands und Fortschritte bei der Software zur Sensorfusion machen diese Neuerungen möglich.
Referenzen
Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

