Gestengesteuerte Stepper Motor basierende Positionierfunktion für Kamerasysteme mit Gesichtserkennung

02.04.2020 Know-How

In der Stadt Hasselt, Belgien, gibt es ein Parkhaus mit dem Namen Q-Park. Vor der Schranke wird das Fahrzeugkennzeichen über eine Bildkamera erfasst und auf dem Magnetband vom Ticket, was gezogen wird, eingespielt. Die Daten werden auf einem Server/Cloud gesichert. Das Fahrzeug wird abgestellt, um privaten oder geschäftlichen Interessen nachzugehen. Das bezahlen, kann am Automaten im Parkhaus oder im Hotel, falls eine Übernachtung anstand, getätigt werden. Sie steigen im Nachgang in das Fahrzeug und fahren zum Ausgang und die Schranke öffnet sich automatisch nach Abgleich des Fahrzeugkennzeichens, über eine weitere Bildkamera, mit den gesicherten Daten aus der Datenbank. Ein sehr komfortables Konzept, das einem das herunterfahren des Fahrerfensters erspart und auch das anstehen am Automaten, beim Begleichen der Gebühren, falls eine Übernachtung stattfand, da es eine Kooperation mit dem Parkhaus Betreiber gibt und den Hotels vor Ort und beim Auschecken das Ticket bezahlt werden kann.

I Einleitung

Vereinfacht dargestellt, besteht das System, aus zwei fest montierten Bildkameras, Software Algorithmen für Autokennzeichen Erkennung, Datenbank/Cloud und Ansteuerung der Ausgangsschranke.

Dieses Systemübergreifende Konzept, passt zur Rutronik Strategie, Systemlösungen mit vielen Herstellern und Partnern aufzugreifen und in Form von Vorstudie für ein Proof of Concept für unsere Kunden in einer abgewandelten Form zu entwerfen. Mit abgewandelter Form ist gemeint, dass hier nicht ein Kennzeichen Vergleich durchgeführt wird, sondern eine Gesichtserkennung. Das System aus einer Bildkamera mit einem Software Algorithmus für Gesichtserkennung, und einem Motor, der die Kamera dreht, gesteuert über einen Gestensensor.

Hierbei spielt Rutronik seine große Stärke aus, durch das Ausnutzen von Synergieeffekten. Damit ist gemeint, dass in der Konzeptphase auf die Spezialisten aus den verschiedenen Abteilungen, wie zum Beispiel: "Power, Mikrocontroller, Analog und Sensor, Wireless, Embedded, Mechanik, Passiv und so weiter", zurückgegriffen wird, um die Komponenten und Aufgabenverteilungen festzulegen. Das spart Zeit und es wird ein übergreifendes Abteilungskonzept nach außen gezeigt, gemäß dem Slogan von Herr Rudel, "Alles aus einer Hand".

II Funktionsbeschreibung von dem Demonstrator und Anwendungen

Die Aufgabenstellung, von maximal drei Teilnehmern, die neben einander stehen, über eine Bildkamera, jeweils ein Bild pro Person aufzunehmen und das Bild, mit einer Kennung, in Form von einer Ziffer oder Namen, zu sichern. Das Ausrichten von dem Kamerakopf, um eine Bildaufnahmen der Teilnehmer zu ermöglichen, erfolgt über einen Schrittmotor. Der Schrittmotor wird über einen High Voltage Controller angesteuert. Der Motorcontroller bekommt über einen Gestensensor die Anweisungen. Im Nachgang erfolgt ein zweiter durchlauf, bei dem die Position der Teilnehmer vertauscht wird, um die Wiedererkennung der Teilnehmer zu verifizieren, mit dem OKAO-Vision-Technologie Algorithmus, beigestellt von dem Bildsensor Hersteller.

Als ein Anwendungsbeispiel sehen wir die Vergabe von Berechtigungszutritt für Mitarbeiter/Angestellte, um ein Firmengebäude/-gelände zu betreten oder interne Zonen im Unternehmen. Das Unternehmen erfasst von seinen Mitarbeitern jeweils ein Bild und hinterlegt es in seiner Datenbank/Cloud mit den zugeordneten Rechten, nach der jeweiligen Position innerhalb von dem Unternehmen. Mitarbeiter erhalten nach dem Abgleich mit der Datenbank über eine Bildkamera Zutritt zum Firmenparkplatz, Gebäude und internen Zonen im Gebäude. Firmen nicht zugehörige Personen wird der Zutritt verwehrt und sie müssen sich beim Empfang registrieren über eine Gegensprechanlage. Besuchern können entsprechende Rechte eingeräumt werden, so dass sie sich innerhalb bestimmter Zonen bewegen dürfen. Bei Besuchern, die regelmäßig das Unternehmen besuchen, können auch in der Datenbank erfasst werden und ersparen sich das Anmelden am Empfang, wenn sie im Vorfeld Freigeschalten werden von dem Ansprechpartner für den Besuchstermin. Für Mitarbeiter kann das System auch auf die Zeiterfassung ausgedehnt werden und ermöglicht den Wegfall von den klassischen Systemen, wie Badges, Karten oder Ausweisen. Vom Unternehmen kann das auf Krankenhäuser und öffentlichen Einrichtungen übertragen werden.

In eine andere Richtung gehend, kann die Kamera durch Lamellen ersetzt werden, welche geöffnet oder geschlossen werden mit einer Ansteuerung über Gesten oder einer anderen Sensortechnologie, zum Beispiel Außenspiegel im Auto, oder zur Regulierung der Luftzufuhr in Fahrzeugen. Es gibt noch viele weiter Möglichkeiten, das Grundprinzip von dem Demonstrator zu erweitern.

III Aufbau von dem Demonstrator und Auflistung der verwendeten elektronischen Komponenten

Der Demonstrator besteht aus einem High Voltage Controller der Familie HVC 4223F vom Hersteller TDK, einem Schrittmotor, 14HS17-0504S, einem Näherungs- und Umgebungslichtsensor, VCNL4035X01, vom Hersteller Vishay, einem STM32F4 Board und einem Kamera-Module (Bild Sensor), HVC-P2 von Omron.

Der Entwurf von dem System ist sehr einfach gehalten für die Reproduzierbarkeit, indem die verwendeten Komponenten, fast ausschließlich, aus Evaluierungskits bestehen. Das Small Demo Board SDB-I von TDK Micronas enthält den HVC 4223F Motorcontroller, für die Gestensteuerung kommt zum Einsatz das VCNL4035X01-GES-SB Board und von STM ein Nucleon Board mit dem STM32F4 Mikrocontroller und von Omron das B5T-007001-020 Kit bestehend aus einem Kamerakopf und einem Mainboard.

IV Gestensensor von Vishay, VCNL4035X01

Die eingangserwähnten Anwendungsmöglichkeiten beruhen auf einem Motorantrieb für die Ausrichtung der Kamera oder Lamelle, mit der Ansteuerung, in unserem Falle, über einen Gestensensor. Der hier verwendete optische Sensor von Vishay, VCNL4035X01, ist ein kompakter (4,0 x 2,36 x 0,75mm), Multifunktionaler Sensor.

Integriert ist ein Näherungs- und ein Umgebungslichtsensor, ein Multiplexer, zwei 16 Bit ADCs, eine I2C Schnittstelle, programmierbarer Interrupt für den Näherungs- und Umgebungslichtsensor, eine "Power on" und eine "Shut down" Funktion. Der Sensor enthält keinen integrierten IR-Strahler, dafür einen Treiber, über den bis zu drei externe IR-Strahler angeschlossen werden können. Bei dem Gesture Sensor Board von Vishay, wird eine Demo Software mitgeliefert mit einem Erkennungsalgorithmus und der Darstellung der Messdaten. Über die Software können bestimmte Parameter geändert werden.

V Überlegungen für den Gestenerkennung Algorithmus

Wie zuvor erwähnt, wird das VCNL4035X01-GES-SB Sensorboard von Vishay verwendet, das drei triangulär verteilte, VSMY2940GX01 IR-Strahler und dem VCNL4035X01 Sensor auf der Platine enthält, wie im Bild 3 gezeigt. Eine rote LED zeigt an, ob eine Gestenerkennung vorliegt, bei Über-/Unterschreiten der unteren/oberen Schaltschwelle von dem Parameter Upper/Lower.

Um zu erkennen, von welchem IR-Strahler das reflektierte Licht kommt, sind die drei Strahler über einen Schalter gebündelt. Das heißt, sie werden nacheinander angesteuert und am Näherungssensor die entsprechenden Reflektierten Signale gemessen.

Bei einer Gestenbewegung von rechts nach links, wird ein Ereignis (Objekt) erkannt, wenn das detektierte Signal, von dem IR-Strahler ps2, in den gesetzten Schaltschwellen, von dem Parameter (upper/lower), liegt. Der detektierte Wert, wird in einer Variablen, gesichert, IR-Strahler ps2 deaktiviert und IR-Strahler ps1 gepulst, der detektierte Wert in einer anderen Variablen gesichert, IR-Strahler ps1 deaktiviert und der Vorgang wiederholt sich.

Eine Interpretation, ob eine Geste von rechts nach links oder umgekehrt erfolgte, übernimmt ein selbst definierter Algorithmus. Der hier von uns verwendete Algorithmus heißt "Insertion Sort". Bei einer Bewegung von rechts nach links, ist zu erwarten, dass ein maximal gemessener Wert (Peak), zuerst in den Messwerten vom IR-Strahler ps2 zu beobachten sein wird und im Nachgang an dem IR-Strahler ps1. Bei Veranschaulichung der Verläufe von den beiden Strahlern, hat der IR-Strahler ps2 einen stetig steigenden Verlauf bis zu dem maximalen Messwert und geht über in einen stetig fallend. Der Verlauf bei dem IR-Strahler ps1 ist anfangs konstant, geht über in stetig steigend und nach dem Peak Wert wechselt der Verlauf zu stetig sinkend. Der Algorithmus, vergleicht die Messwerte, ob die gemessenen Signale eines IR-Strahlers, stetig wachsend sind, Xps2n > Xps2n-1, falls ja, wird dieser Wert mit dem Ergebnis von dem anderen IR-Strahler, verglichen durch Subtraktion. Falls Xps2n < Xps2n-1 kleiner ist, wird der vorherige Wert, Xps2n-1, mit dem Ergebnis von dem anderen IR-Strahler verglichen. Sollte innerhalb des IR-Strahlers ps2, die Folgemessungen bestätigen, dass der Wert von Xps2n-1 größer ist, wurde der maximale Messwert gefunden. Wenn bei der Subtraktion, zwischen den Ergebnissen der beiden IR-Strahler, immer IR-Strahler ps2 der Minuend ist und IR-Strahler ps1 der Subtrahend, wird die Richtung der Geste über das Vorzeichen der Differenz festgelegt, > 0 recht nach links und umgekehrt. Es werden Variablen verwendet, mit einem Zeitstempel. Für eine Gestenbewegung wurde ein Zeitfenster von 300ms gesetzt, mit einer Samplerate von 10ms und als unterer Schwellenwert wurden 50mA verwendet, dass ein Ereignis vorliegt. Das heißt, das erst ab einer bestimmten Höhe, Objekt zum Sensor, ein Ereignis vorliegt.

Der Gestensensor liefert keine direkte Information zur erkannten Geste, sondern nur die Rohdaten. Die Rohdaten werden in einem externen Mikrocontroller durch einen Algorithmus Interpretiert. Auswertung erfolgt über ein Nucleon Board, mit dem STM32F401, für die Regelung des Motorcontrollers.

VI Motortreiber von TDK Micronas HVC 4223F

Der Motorcontroller HVC 4223F von TDK, der unter der Produktmarke Micronas vermarktet wird, besitzt kein Hardware-I2C-Interface, kann auf Grund der verfügbaren Performance des integrierten AMR Cortex M3 (T) aber per Software-Emulation die Signale des Nukleon Boards auf einem der 11 frei verfügbaren LGPIOs emulieren. In unserem Aufbau wurden als I/Os die ersten beiden freien LGPIO3 und LGPIO4 gewählt.

Der HVC 4223F zeichnet sich aus durch eine maximale Integration an Komponenten in einem kompakten QFN40 Gehäuse (6,0 x 6,0 mm). Zielapplikationen sind Lösungen aus dem Bereich der smarten Aktorik, sowohl von bürstenbehaftete Gleich-, als auch bürstenlose Gleichstrom- und Schrittmotoren. Mit integrierten Halb-Brücken; Spannungsversorgung zum direkten Anschluss an Batteriespannung, LIN-Interface und 32kB Flash-Speicher ermöglicht die Integration einen maximalen Verzicht von externen Bausteinen. Um einen bipolaren Schrittmotor anzusteuern werden in unserer Beispielapplikation vier von den sechs verfügbaren n/n-chanel FET Halb-Brücken verwendet.

Der HVC 4223F unterstützt hardwareseitig die Ansteuerung eines bipolaren Schrittmotors über Strom- oder Spannungsregelung. Bei der Stromregelung wird der gemessene Phasen-Strom verglichen mit einem voreingestellten Schwellwert aus dem programmierbaren 8-bit DAC. Wird dieser Wert überschritten, schaltet ein Komparator im enhanced EPWM-Modul automatisch den entsprechenden Ausgang MOUTx ab, bis der eingestellte Sollwert erstmalig unterschritten wird.
Als Diagnosemöglichkeiten ist eine Überspannungs-, Überstrom- und Übertemperaturüberwachung im IC intergiert. Der Chip kann direkt an die 12V-18V Autobatterie angeschlossen werden und verfügt auch u.a. über ein Lin Interface (LIN 2.2 Transceiver), für die direkte Kommunikation nach außen. Mit dem 32 bit ARM Cortex-M3 Prozessor, 32 kbit Flash Speicher, wird so viel Rechenleistung ermöglicht, das auch aufwendige Algorithmen zum Ansteuern von z.B. Permanent Magnet Synchronous Motoren. TDK-Micronas empfiehlt die Software Umgebung von Keil MDK-ARM V5.14 zu verwenden, die Lizenzfrei ist für Speicher bis 32k bit.

Bibliotheken und Source Code in Form von Applikations-Noten werden von TDK-Micronas bereitgestellt - Beispielhaft für die Ansteuerung der Motoren, die LIN-Schnittstelle oder auch weitere generelle Anwendungen. Sobald es im Rahmen der Entwicklung zum Einsatz von Produktivsoftware kommen soll, hat TDK-Micronas durch Entwicklung eines Systemhauses eine A-Spice konforme Firmware programmieren lassen, die auch Anforderungen von Functional Safety gerecht wird.

Beispiel: in der "config.h" wird das Verhalten der Motorsteuerung angepasst.

#define CMD_POSITION_STEP (300) // stellt die Schrittweite in zehntel Grad ein; 300 = 30°

Zusammenfassend, ist der HVC 4223F ein flexibel einsetzbarer Motorcontroller zum Ansteuern von verschiedenen kleinen Elektro-Motoren aus dem Bereich der smarten Aktuatorik. Der ARM Cortex M3 Prozessor, bietet hinreichend Performance, um auch anspruchsvolle Algorithmen zur Motoransteuerung umzusetzen. Die vollständige Integration aller notwendigen Komponenten zur Ansteuerung von BLDC- oder Stepper-Motoren spart Entwicklungszeit und somit Entwicklungskosten und verringert nach einer ersten Einarbeitung die Anpassung auf weitere Applikationskonzepte erhablich. TDK-Micronas unterstützt die Anwender mit Bibliotheken und Source Code und bietet Kontakte zu einem Systemhaus an, das für den Baustein HVC 4223F eine Produktivsoftware / Firmware entwickelt hat.

In unsere Demo-Applikation ist der Motorcontroller mit einem bipolarem Schrittmotor, 14HS17-0504S, verbunden, welcher die Drehbewegung der Kamera ausführt.

VII Schrittmotor Spezifikation (Siehe Tabelle 2)

VIII Bildsensor vom Hersteller Omron, B5T-007001-020

Der Bildsensor, vom Hersteller Omron, B5T-007001-020, für die Gesichtserkennung, ist über eine Welle mit dem Schrittmotor verbunden, um 30° nach rechts/links ausgerichtet werden kann. Das verwendete B5T HVC-P2 Sensormodul Kit, besteht aus einer Kamerakopf (1600x1200 Pixel) und einer Hauptplatine, die über ein Flachbandkabel miteinander verbunden sind.

Über Omrons OKAO-Vision-Technologie werden 10 Erkennungsfunktionen zur Auswahl gestellt. Die zur Auswahl stehenden Funktionen sind, Gesichtserkennung, Erkennung des menschlichen Körpers, Geschlechtseinschätzung, Einschätzung des Alters, Einschätzung des Blickes und Augenschlages, Handerkennung und es gibt fünf Gesichtsausdrücke (neutral, Glück, Überraschung, Wut und Traurigkeit) bei der Ausdruckseinschätzung. Für die Bildausgabe stehen drei Formate zur Auswahl, keine Bildausgabe, 160x120 Pixel und 320x240 Pixel. Das Kit gibt es mit zwei verschiedenen Kameraköpfen, für Weit-Winkel Aufnahmen und Langstrecken Aufnahme.

IX Anmerkungen zu dem Positionsfeedback vom Motortreiber

Eine Anmerkung zu dem Demonstrator, es wird kein Positionsfeedback verwendet, somit weiß der Mikrocontroller nach dem Power-On nicht wie der Motor steht. Der Motor, beziehungsweise die Kamera, wird vor jedem Power-On manuell ausgerichtet. Für die Motorsteuerung wurde dieses Verhalten implementiert. Nach dem Power-On wird davon ausgegangen, dass der Motor, die Kamera, sich in der Mittelstellung befindet. Aus der Mittelstellung (0°) kann die Kamera entsprechend nach Links (-30°) bewegt und aus dieser Position nur nach rechts zur Mittelstellung (0°) gefahren werden. Aus der Position kann die Kamera nach rechts (+30°) gefahren werden und aus dieser Position zurück zur Mittelstellung (0°) gefahren werden.

Nachfolgend Optionen mit Positionsfeedback, indem der Motor nach dem Power-On eine Referenzfahrt gegen einen mechanischen Anschlag macht. Mithilfe der Blockier-Erkennung in der Software kann diese Position als eine Endposition(+X) erkannt werden. Es sollte hier für jede Drehrichtung ein mechanischer Anschlag vorhanden sein. Zusatzaufwand für mechanische Konstruktion und etwas Software Anpassung. Sensoransatz, der Motor macht eine Referenzfahrt nach dem Power-On und ein Sensor erkennt die Endposition. Bei der Verwendung eines Hall Schalters, sollte mit zwei Sensoren für beide Drehrichtungen eine Endposition realisiert werden.
Zusatzaufwand für mechanische Konstruktion das Anbringen eines Magneten und der Sensoren, plus Verdrahtung und Software Anpassung.

Komponenten gibt es auf <link www.rutronik24.de _blank - "open internal link">www.rutronik24.de</link>.

Bleiben Sie auf dem Laufenden, indem Sie unseren <link www.rutronik.com/newsletter _blank - "open internal link">Newsletter</link> abonnieren.