Leistungssportler möchten nach einer Verletzung möglichst schnell wieder trainieren und an Wettkämpfen teilnehmen. Mit optischen Tracking-Systemen zum Erfassen von Bewegungen sowie Kraftmessplatten zum Messen von Bodenreaktionskräften können Sportler und Trainer bestimmen, ob ein Athlet ohne Risiko wieder voll einsatzfähig ist.
Eckdaten
Eine von der Firma Dorsavi entwickelte drahtlose Sensortechnologie ermöglicht die Erfassung und Messung von Bewegungen des Menschen und liefert Sportlern, Kliniken und Unternehmen auf einfache Weise interpretierbare Daten, die sich in messbare Ergebnisse umsetzen lassen. Zur Entwicklung der Technologie nutzten die Ingenieure unter anderem Produkte wie Matlab von Mathworks.
Solche Systeme ermöglichen zwar Metriken und Einblicke, die sich durch einfache Beobachtung des Sportlers nicht gewinnen lassen, haben jedoch auch Nachteile. Sie sind teuer und verlangen in der Regel den Einsatz von speziell geschulten Technikern sowie zeitraubende Einrichtungsverfahren. Da die Sportler in diesen Fällen in einer eingeschränkten Umgebung Leistungen erbringen, zum Beispiel auf einem Laufband, lassen sich natürliche Bewegungen nicht immer einfach beurteilen.
Körperbewegungen analysieren
Kabellose, am Körper tragbare Geräte zur Bewegungsanalyse von Dorsavi können Bewegungen präzise messen und verfolgen, während der Athlet sich ungehindert in jeder Umgebung bewegt (Bild 1). Die Geräte mit der Bezeichnung Viperform enthalten inertiale Messeinheiten (IMUs) und Magnetometer sowie Elektromyografiesensoren zur Messung der Muskelaktivität. Die Sensordaten werden an ein Aufzeichnungs- und Feedback-Gerät (RFD) gesendet, das sich am Arm oder in einer Tasche mitführen lässt. Das RFD sendet die Daten an einen PC zur weiteren Verarbeitung mit dem Softwarepaket von Dorsavi.
Kernstück der Technologie von Dorsavi sind Algorithmen, die Rohsensordaten filtern und analysieren und Informationen bereitstellen, die sich zum Prüfen der Kniekontrolle, des Bewegungsbereichs des unteren Rückenbereichs, der Adduktorenaktivität, der Hüft- und Kernmuskulaturkontrolle und der Laufleistung einsetzen lassen.
Durch die Entwicklung und den Test der Algorithmen in Matlab sowie die Entwicklung von portablem C-Code mit Matlab-Coder ließ sich die Entwicklungszeit im Vergleich zum bisherigen Ansatz, bei dem das Team manuell in C# programmieren musste, um fast die Hälfte reduzieren.
Algorithmen für objektive Analysen entwickeln
Voraussetzung für objektive Analysen sind Algorithmen, die Rohsensordaten verarbeiten und die Ergebnisse in aussagekräftiger Form anzeigen. Ein Algorithmus kann zum Beispiel starke negative Spitzen am Ausgang des Beschleunigungsmessers feststellen, die bei jedem Schritt des Athleten erfolgen können. Aufgrund des Timings und der Größe dieser Spitzen kann der Algorithmus die Kadenz des Läufers sowie die Bodenreaktionskraft für jeden Schritt berechnen.
Bei dieser Analyse lassen sich asymmetrische Kadenzen oder nicht ausgeglichene Bodenreaktionskräfte für jedes Bein erfassen, was anzeigen kann, dass der Sportler nicht in der Lage ist, die gleiche Kraft auf beide Beine anzuwenden. Auf ähnliche Weise kann die Analyse der Knieabweichung, Flexion und Rotation beim Beugen oder Hüpfen die Genesung von Kreuzband- und anderen Knieverletzungen unterstützen. Gesunde Sportler können solche Analysen nutzen, um ihre Bewegungstechnik zu verfeinern oder die Effizienz wichtiger Bewegungen zu steigern.
Bei der Implementierung der Algorithmen direkt in C# mussten die Ingenieure eigene Signalverarbeitungs- und Visualisierungsfunktionen entwickeln. Durch den Wechsel zu Matlab ließ sich die Entwicklung beschleunigen, weil jetzt in Matlab integrierte Funktionen für die Datenvisualisierung und diskrete Kosinustransformationen zum Einsatz kommen.
Filter entwickeln und analysieren
Heute nutzen die Softwareingenieure Signal Processing Toolbox und Wavelet Toolbox, um die Entwicklung weiter zu vereinfachen. So verwendet das Team Signal Processing Toolbox für die Entwicklung und Anwendung von Butterworth- und anderen IIR-Filtern (Infinite Impulse Response) auf Sensordaten. Außerdem identifizieren die Entwickler Spitzen und Täler in Sensorsignalen, indem sie die kontinuierlichen Wavelet-Transformationskoeffizienten (Continuous Wavelet Transform, CWT) der Signale mit Funktionen aus der Wavelet Toolbox berechnen. Die Identifizierung solcher Signalmuster ist von grundlegender Bedeutung, um Gangereignisse wie zum Beispiel das Auftreffen der Ferse und das Abheben der Zehen für die Laufanalyse festzustellen.
Nach der Entwicklung eines Algorithmus in Matlab erfolgt eine Überprüfung durch Vergleich der Ergebnisse mit denen eines unabhängigen Messgeräts, wie zum Beispiel eines Bewegungsverfolgungssystems oder einer Kraftmessplatte. Dabei findet ein Vergleich, zum Beispiel des Timings, der vom eigenen Algorithmus festgestellten Gangereignisse mit den durch die Kraftmessplatten generierten Bodenkraftreaktionsspitzen statt. In dieser Phase untersuchen die Entwickler in Matlab erstellte Plots und Grafiken, um potentielle Algorithmusdefizite zu identifizieren und zu korrigieren (Bild 2).
Sobald der Algorithmus bei einem bestimmten Satz von Testszenarien richtig funktioniert, führen die Verantwortlichen über 1000 Tests in Matlab durch. Dabei verwenden sie von Athleten aus der ganzen Welt aufgezeichnete Daten und stellen den Algorithmus weiter fein ein, bis er die Anforderungen in puncto Genauigkeit und Leistung erfüllt.
C++-Programmcode aus Matlab-Algorithmen erstellen
Die Programmierung der Dorsavi-Software, die als Primärschnittstelle für das Anzeigen von Sensordaten und die Evaluierung der Leistung eines Athleten fungiert, erfolgt in erster Linie in C#. Als die Ingenieure Matlab zum ersten Mal zur Entwicklung von Signalverarbeitungsalgorithmen einsetzten, basierte der Workflow noch darauf, dass C++-und C#-Programmierer die Produktionsversion des Algorithmus implementierten, die sie dann in die Dorsavi-Software integrierten. Dieser Ansatz war wegen des doppelten Aufwands nicht effizient. Es dauerte manchmal bis zu einen Monat, um Algorithmen neu zu programmieren und erneut zu testen, die bereits in Matlab entwickelt und getestet worden waren.
Um die Effizienz zu verbessern und die Projektlieferzeiten zu verkürzen, beschlossen die Ingenieure, Matlab-Coder zum Erstellen von C++-Programmcode aus den verifizierten Matlab-Algorithmen zu verwenden. Sie bereiteten ihre Algorithmen für die Programmcode-Erstellung vor, indem sie alle Variablen initialisierten und versuchten, vorhandene Schleifen zu verbessern. Die Entwickler verifizieren, dass ihr Algorithmus für die Programmcode-Erstellung bereit ist, indem sie eine Mex-Funktion generieren, die den kompilierten Code umfasst. Die Mex-Funktion wird dann anstelle des Original-Matlab-Algorithmus aufgerufen. Nach Erstellung des C++-Codes aus dem eigenen Algorithmus erfolgt die Kompilierung des Algorithmus in einer DLL. Die C#-Programmierer laden diese DLL in die Dorsavi-Software.
Das Übersetzen des Matlab-Algorithmus in Produktionscode dauerte zuvor bis zu einen Monat. Mit Matlab-Coder ist das jetzt in ein oder zwei Tagen erledigt. Als abschließenden Schritt führen die Entwickler vollständige Systemtests der Algorithmen der Dorsavi-Software durch. Bis dato ließen sich noch keine bei der Codegenerierung eingeführten Defekte feststellen. Die umfassenden Tests, durchgeführt in Matlab, ermöglichen den C#-Programmierern, ihre Zeit mit der Entwicklung neuer Funktionen der Dorsavi-Software zu verbringen, anstatt Algorithmen in C# erneut programmieren und dann wiederum testen zu müssen.
Algorithmen wiederverwenden
In den Produkten Vimove und Visafe kommen mehrere Algorithmen zum Einsatz, die ursprünglich für Viperform entwickelt wurden. Die Algorithmen wurden für den Leistungssport, klinische Anwendungen und Anwendungen im Bereich Gesundheit und Sicherheit am Arbeitsplatz entwickelt. Ein Team arbeitet derzeit an neuen Algorithmen zur Analyse der Daten von an verschiedenen Körperteilen angebrachten Sensoren sowie an Entwicklungs- und Verbesserungsanfragen von Bestandskunden.
Mit Matlab und Matlab-Coder kann Dorsavi schnell auf Kundenanfragen reagieren. In einem neuen Release hat die Firma zwei Algorithmusmodule aktualisiert, zwei neue erstellt und alle vier geliefert. Dabei hatten die Entwickler stets die volle Kontrolle und wussten, dass sie alle Fristen einhalten würden. Beim bisherigen Workflow wäre dies nicht möglich gewesen.
Edgar Charry
(hb)