VERFAHREN ZUR INTEGRATION VON BERECHNUNGEN MIT VARIABLER LAUFZEIT IN EINE
ZEITGESTEUERTE ARCHITEKTUR
Die Erfindung betrifft ein Verfahren zur Integration von Berechnungen mit variabler Laufzeit in eine verteilte zeitgesteuerte Echtzeitcomputerarchitektur, welche Echtzeitcomputerarchitektur aus einer Anzahl von Rechnerknoten besteht, wobei den Rechnerknoten eine globale Zeit mit bekannter Präzision zur Verfügung steht, wobei zumindest ein Teil der Rechnerknoten mit Sensorsystemen, insbesondere unterschiedlichen Sensorsystemen zur Beobachtung der Umgebung ausgestattet ist, und wobei die Rechnerknoten über ein Kommunikationssystem Nachrichten austauschen.
In vielen technischen Verfahren, die von einem verteilten Computersystem ausgeführt werden, sind die Ergebnisse diverser Sensorsysteme, z.B. bildgebender Sensoren, etwa optischer Kameras, Lasersensoren oder Radarsensoren, durch Sensor Fusion zu integrieren, um in einem Rechner eine die Umgebung beschreibende dreidimensionale Datenstruktur aufbauen zu können. Ein Beispiel für ein solches Verfahren ist die Beobachtung der Umgebung eines Fahrzeugs, um ein Hindernis erkennen und einen Unfall vermeiden zu können.
Bei der Verarbeitung der Daten eines bildgebenden Sensors wird zwischen zwei Verarbeitungsphasen unterschieden, der Vowerarbeitung oder Perzeption und der Wahrnehmung oder Kognition. Im Rahmen der Vowerarbeitung werden die von den Sensoren gelieferten rohen Eingabedaten, die Bitmaps, analysiert, um die Position relevanter Strukturen, z.B. Linien, Winkel zwischen Linien, Schatten etc. zu ermitteln. Die Vor Verarbeitung erfolgt in einem dem Sensor zugeordneten Vorverarbeitungsprozess. In der folgenden Wahrnehmungsphase werden die Ergebnisse der Vorverarbeitung der diversen Sensoren fusioniert, um Objekte erkennen und lokalisieren zu können.
In einem zeitgesteuerten Echtzeitsystem haben alle Rechnerknoten und Sensoren Zugriff auf eine globale Zeit bekannter Präzision. Der Ablauf der Verarbeitung erfolgt in diskreten zyklischen Intervallen konstanter Dauer, den Frames, deren Beginn über die globale Zeit synchronisiert wird. Zu Beginn eines Frames werden von allen Sensoren gleichzeitig die Daten erfasst. Die Dauer eines Frames wird so gewählt, dass im Normalfall die Vorverarbeitung der Sensordaten vor Ende des Frames, zu dessen Beginn die Daten erfasst wurden, abgeschlossen ist. Mit Beginn des folgenden Frames, wenn die Vorverarbeitungsergebnisse
aller Sensoren vorliegen, beginnt die Wahrnehmungsphase, in der die Fusion der Vorverarbeitungsergebnisse vorgenommen wird, um die Struktur und Position relevanter Objekte zu erkennen. Wenn die Umgebung zyklisch beobachtet wird, können aus einer Folge von Beobachtungen (Frames) die Geschwindigkeitsvektoren v von sich bewegenden Objekten in der Umgebung ermittelt werden.
Die Laufzeit eines in einem Rechner durchgeführten Algorithmus, der die Vorverarbeitung der rohen Eingabedaten vornimmt, hängt normalerweise von den vom Sensor erfassten Daten ab. Wenn nun mehrere unterschiedliche bildgebende Sensoren die Umwelt zum gleichen Zeitpunkt beobachten, können die diese Beobachtung betreffenden Vorverarbeitungsergebnisse zu unterschiedlichen Zeitpunkten fertig werden.
Es ist eine Aufgabe der vorliegenden Erfindung, in einem verteilten zeitgesteuerten Echtzeitsystem die Ergebnisse diverser Sensoren, deren Vorverarbeitung unterschiedlich lange dauert, im Rahmen der Sensor Fusion integrieren zu können.
Diese Aufgabe wird mit einem eingangs erwähnten Verfahren dadurch gelöst, dass erfindungsgemäß die Rechnerknoten am Beginn jedes zyklischen Frames Fi mit der Dauer d rohe Eingabedaten mit einem Sensorsystem erfassen, wobei die Zeitpunkte des Anfangs des Frames Fi vom Fortschreiten der globalen Zeit abgeleitet werden, und wobei die Vorverarbeitung der rohen Eingabedaten mit Algorithmen durchgeführt wird, deren Laufzeiten von den Eingabedaten abhängen, und wobei bei einem Vorverarbeitungsergebnis, das innerhalb des Frames Fi bereit gestellt wird, zu dessen Beginn die Eingabedaten erfasst wurden, der Wert des Alterungsindex AI=0 zugeordnet wird, und wobei einem Vorverarbeitungsergebnis, das innerhalb des der Erfassung folgenden Frames bereit gestellt wird, der Wert des Alterungsindex AI=1 zugeordnet wird, und wobei einem Vorverarbeitungsergebnis, das im n-ten Frame nach der Datenerfassung bereitgestellt wird, der Wert AI=n zugeordnet wird, und wobei in den Rechnerknoten, die die Fusion der Vorverarbeitungsergebnisse der Sensorsysteme durchführen, die Alterungsindizes der Vorverarbeitungsergebnisse berücksichtigt werden.
Vorteilhafte Ausgestaltungen des erfindungsgemäßen Verfahren, die alleine oder in beliebiger Kombination realisiert sein können, sind im Folgenden beschrieben:
> bei der Fusion der Vorverarbeitungsergebnisse wird die Gewichtung eines Vorverarbeitungsergebnisses derart bestimmt, dass ein Vorverarbeitungsergebnis mit AI=0 die höchste Gewichtung erhält und die Gewichtung von Vor Verarbeitungsergebnissen mit AI>0 umso geringer ist, je größer der Wert AI ist;
> bei der Fusion eines Vorverarbeitungsergebnisses mit AI>0 wird die Position eines in diesem Vorverarbeitungsergebnisses enthaltenen dynamischen Objekts, das sich mit einem Geschwindigkeitsvektor v bewegt, um den Wert v.AI.d korrigiert, wobei d die Dauer eines Frames angibt;
> die Fusion der Vorverarbeitungsergebnisse findet erst nach dem Ende des Frames statt, während dessen alle Vorverarbeitungsergebnisse der Daten, die zum gleichen Zeitpunkt erfasst wurden, vorliegen;
> ein Rechnerknoten, der am Ende des l-ten Frames nach der Datenerfassung die Vorverarbeitung noch nicht abgeschlossen hat, führt einen Reset des Rechnerknotens durch;
> ein Vorverarbeitungsprozess, der am Ende des l-ten Frames nach der Datenerfassung die Vorverarbeitung noch nicht abgeschlossen hat, wird neu gestartet;
> ein Rechnerknoten, der ein Reset durchgeführt hat, sendet unmittelbar nach dem Wiederanlauf eine Diagnosenachricht an einen Diagnoserechner;
> ein Monitorprozess in einem Rechnerknoten (141) sendet eine Framekontrollnachricht zur Erhöhung der Framedauer an Rechnerknoten (121, 122, 123), falls ein a priori festgelegter Prozentsatz P der Verarbeitungsergebnisse einen Alterungsindex AI>1 aufweist;
> zur Übertragung der Nachrichten zwischen den Knotenrechnern wird das TTEther- net Protokoll eingesetzt.
Es kann also vorkommen, dass die Vorverarbeitung in einem Sensor länger dauert als die Dauer eines Frames. Wenn dieser Fall eintritt, so gilt es erfindungsgemäß folgende Fälle zu unterscheiden:
a) Normalfall: alle Vorverarbeitungsergebnisse liegen vor Ende des Frames vor, an dessen Beginn die Daten erfasst wurden. b) Schnelle Reaktion: Ein oder mehrere der Sensoren sind am Ende des Frames, zu dessen Beginn die Daten erfasst wurden, noch nicht fertig. Die Sensor Fusion wird am Ende des aktuellen Frames rechtzeitig mit älteren Vowerarbeitungsdaten der langsamen Sensoren, d.s. Daten einer früheren Beobachtung, durchgeführt. Beim Auftreten von Inkonsistenzen (z.B. Beobachtung bewegter Objekte oder Bewegung der Sensoren) wird in der Sensor Fusion die Gewichtung der älteren Vowerarbeitungsdaten herabgesetzt. Die Reduktion der Gewichtung ist umso größer, je weiter die Beobachtungen zurück liegen. c) Schnelle Reaktion mit der Korrektur beweglicher Objekte: Wenn eine schnelle Reaktion erforderlich ist und der ungefähre Geschwindigkeitsvektor v eines bewegten Objekts aus vergangenen Beobachtungen bereits bekannt ist, so kann die gegenwärtige Position des in der Vergangenheit beobachteten Objekts durch eine Korrektur der vergangenen Position, die sich aus der Geschwindigkeit des Objekt und dem Alter der ursprünglichen Beobachtung ergibt, korrigiert werden. d) Konsistente Reaktion: Wenn die zeitliche Konsistenz der Beobachtungen wichtiger ist als die Reaktionsgeschwindigkeit des Computersystems, dann wird mit der Sensorfusion auf den Beginn des ersten Frames gewartet, zu dem alle Vorverarbeitungsergebnisse zur Verfügung stehen.
Die Entscheidung, welche der beschriebenen Strategien im Einzelfall zu verfolgen ist, hängt von der konkreten Aufgabenstellung ab, die vorgibt, wie der inhärente Konflikt Geschwindigkeit versus Konsistenz zu lösen ist. In der recherchierten Patenliteratur [1 - 3] wurde kein Verfahren gefunden, das die hier beschriebene Problemstellung behandelt.
Die vorliegende Erfindung legt ein Verfahren offen, wie in einem verteilten zyklisch arbeitenden Computersystem die Vorverarbeitungsergebnisse diverser bildgebender Sensorsysteme im Rahmen der Sensorfusion integriert werden können. Da die Dauer der Berechnung eines Vorverarbeitungsergebnisses von den erfassten Sensordaten abhängt, kann der Fall eintreten, dass die Vorverarbeitungsergebnisse der diversen Sensoren zu unterschiedlichen
Zeitpunkten fertig gestellt werden, obwohl die Erfassung der Daten synchron erfolgt ist. Es wird ein innovatives Verfahren vorgestellt, wie die zeitliche Inkonsistenz der Vorverarbeitungsergebnisse der diversen Sensoren im Rahmen der Sensorfusion zu behandeln ist. Aus der Sicht der Anwendung ist zu entscheiden, ob eine schnelle Reaktion des Systems oder die zeitliche Konsistenz der Daten im gegebenen Anwendungsfall von größerer Bedeutung ist.
Im Folgenden ist die Erfindung beispielhaft an Hand der Zeichnung näher erörtert. In dieser zeigt
Fig. 1 die Struktur eines verteilten Computersystems, und
Fig. 2 den zeitlichen Ablauf der Datenerfassung und Sensorfusion.
Das folgende konkrete Beispiel behandelt eine der vielen möglichen Realisierungen des neuen Verfahrens.
Fig. 1 zeigt ein Struktur diagramm eines verteilten zyklischen Echtzeitsystems. Die drei Sensoren 111 (z.B. eine Kamera), 112 (z.B. ein Radar Sensor), und 113 (z.B. ein Laser Sensor) werden von einem Prozess A auf Rechnerknoten 121, von einem Prozess B auf Rechnerknoten 122, und von einem Prozess C auf Rechnerknoten 123 periodisch ausgelesen. Im Normalfall finden die Zeitpunkte des Auslesens zu Beginn eines Frames Fi statt und werden über die globale Zeit, auf die alle Rechnerknoten zugreifen können, synchronisiert, so dass die Datenerfassung durch die drei Sensoren (Sensorsysteme) innerhalb der Präzision der sparse globalen Zeit quasi gleichzeitig erfolgt ([5], p.64). Die Dauer d eines Frames wird zu Beginn a priori vorgegeben und kann über eine Frame-Kontrollnachricht, die von einem Monitorprozess im Rechnerknoten 141 generiert wird, verändert werden. In den Rechnerknoten 121, 122, und 123 werden die Sensordaten vorverarbeitet. Im Normalfall sind die Vorverarbeitungsergebnisse der Rechnerknoten 121, 122, und 123 vor dem Ende des laufenden Frames in drei zeitgesteuerten Zustandsnachrichten ([4], p.91) in den Ausgangspuffern der Rechnerknoten 121, 122, und 123 verfügbar. Zu Beginn des folgenden Frames werden über einen zeitgesteuerten Switch 131 die drei Zustandsnachrichten mit den Vorverarbeitungsergebnissen an die Sensor-Fusion-Komponente 141 gesendet. Die Sensor-Fusion Komponente 141 führt die Sensor Fusion durch, errechnet die Sollwerte für Aktuatoren und übergibt diese Sollwerte in einer zeitgesteuerten Nachricht an einen Rechnerknoten 161, der Aktuatoren 171 ansteuert.
Der zeitgesteuerte Switch 131 kann zur Übertragung der Zustandsnachrichten zwischen den Rechnerknoten 121, 122, und 123 und dem Rechnernoten 141 das standardisierte TTEthernet Protokoll [5] einsetzen.
Es kann vorkommen, dass eine oder mehrere der in den Rechnerknoten 121, 122, und 123 ablaufenden Vorverarbeitungsberechnungen innerhalb des laufenden Frames nicht abgeschlossen werden. So ein Sonderfall beruht auf der Tatsache, dass die Laufzeiten der Algorithmen zur Vorverarbeitung der rohen Eingabedaten von der Struktur der erfassten Eingabedaten abhängen und in Ausnahmefällen die maximale Laufzeit einer Berechnung wesentlich länger sein kann als die durchschnittliche Laufzeit, die zur Festlegung der Framedauer herangezogen wird.
Fig. 2 zeigt den zeitlichen Ablauf der möglichen Fälle der Berechnungsprozesse der Vorverarbeitung. Das Fortschreiten der Echtzeit wird in Fig. 2 durch die Abszisse 200 dargestellt. Frame z-2 beginnt zum Zeitpunkt 208 und endet mit Beginn des Frames i-l zum Zeitpunkt 209. Zum Zeitpunkt 210 endet Frame i-l und beginnt Frame i. Zum Zeitpunkt 211, dem Zeitpunkt des Beginns der Sensor Fusion, endet Frame i und beginnt Frame i+1. Im Frame i+1 findet die Sensorfusion statt, die bis zum Zeitpunkt 212 dauert. Die Pfeile in Fig. 2 stellen die Laufzeit der Vorverarbeitungsprozesse dar. Der Mittelpunkt des Karos 201 gibt an, wann die Daten erfasst werden und ein Verarbeitungsprozess beginnt. Das Ende des Pfeils 202 gibt an, wann ein Verarbeitungsprozess fertig ist. In Fig. 2 sind drei Verarbeitungsprozesse dargestellt. Prozess A wird auf dem Rechnerknoten 121 ausgeführt, Prozess B auf dem Rechnerknoten 122 und Prozess C auf dem Rechnerknoten 123.
Jedem Vorverarbeitungsergebnis wird von einem Rechnerknoten, vorzugsweise der Middleware eines Rechnerknotens ein Alterungsindex AI zugewiesen, der angibt, wie alt die Eingabedaten sind, auf dessen Grundlage das Vorverarbeitungsergebnis berechnet wurde. Wenn das Ergebnis vor Ende des Frames bereitgestellt gestellt wird, an dessen Beginn die Eingabedaten erfasst wurden, so wird dem Vorverarbeitungsergebnis der Wert AI=0 zugewiesen, wenn das Ergebnis um einen Frame verzögert ist, wird AI=1 gesetzt und wenn das Ergebnis um zwei Frames verzögert ist, wird AI=2 gesetzt. Wenn ein Verarbeitungsergebnis um n Frames verzögert ist, so wird der entsprechende AI Wert auf AI=n gesetzt.
Im Normalfall, das ist Fall (a) von Fig. 2, werden die rohen Eingabedaten zu Beginn des Frames z, d.i. zum Zeitpunkt 210 erfasst und zum Zeitpunkt 211 an die Sensor-Fusion- Komponente 141 weitergeleitet. In diesem Fall wird allen Vorverarbeitungsergebnissen der Wert AI=0 zugewiesen.
Wenn ein Rechnerknoten am Ende des Frames, zu dessen Beginn die Daten erfasst wurden, mit der Vorverarbeitung der erfassten Daten nicht fertig ist und noch keine neue Zustands- nachricht mit den Vorverarbeitungsergebnissen gebildet hat, so bleibt die zeitgesteuerte Zustandsnachricht des vorangegangenen Frames im Ausgabepuffer des Rechnerknoten unverändert. Das zeitgesteuerte Kommunikationssystem wird daher am Beginn des nächsten Frames die Zustandsnachricht des vorangegangenen Frames nochmals übertragen.
Wenn ein Rechnerknoten am Ende des Frames, zu dessen Beginn die Daten erfasst wurden, mit der Vorverarbeitung der erfassten Daten nicht fertig ist, so wird er zu Beginn des nächsten Frames keine neuen Daten erfassen.
Im Fall (b) der Fig. 2 ist das Verarbeitungsergebnis vom Prozess B auf Rechnerknoten 122 um einen Frame verzögert— Ah erhält den Wert Ah=l. Das Verarbeitungsergebnis von Prozess C auf Rechner knoten 123 ist um zwei Frames verzögert— Ale erhält den Wert AIc=2. Das Verarbeitungsergebnis von Prozess A auf Rechnerknoten 121 ist nicht verzögert und erhält daher den Wert AIA=0. Im Rahmen der Sensorfusion wird dem Verarbeitungsergebnis von Prozess A die höchste Gewichtung zugewiesen. Die Verarbeitungsergebnisse von Prozess B und Prozess C werden aufgrund des höheren Ah und Ale mit entsprechend weniger Gewicht in das Sensorfusionsergebnis eingehen.
Im Fall (c) der Fig. 2 sind die Verarbeitungsergebnisse von den Prozessen A und B nicht verzögert. Daher wird die Werte von AIA=0 und Ah=0 gesetzt. Das Verarbeitungsergebnis von Prozess C auf Rechnerknoten 122 ist um zwei Frames verzögert, daher hat Ale den Wert AIc=2. Wenn beispielsweise durch die Auswertung vergangener Frames bekannt ist, dass sich ein im beobachteten Umfeld bewegtes Objekt befindet, das mit dem Geschwindigkeitsvektor v seinen Ort ändern, so kann der Ort dieses Objektes in erster Näherung um den Wert v.AI.d korrigiert werden, wobei d die Dauer eines Frames angibt. Durch diese Korrektur wird die Position des Objektes an den Ort herangeführt, den das Objekt näherungsweise zum Zeitpunkt 210 eingenommen hat, und das Alter der Daten kompensiert. Zeitgerechte
Verarbeitungsergebnisse, d.s. Verarbeitungsergebnisse mit dem Wert AI=0, sind von dieser Korrektur nicht betroffen.
Im Fall (d) der Fig.2 wird die Sensorfusion verzögert, bis der langsamste Prozess, im konkreten Bild Prozess C, sein Vorverarbeitungsergebnis bereitgestellt hat. Damit ist die zeitliche Konsistenz der Eingabedaten gegeben, da alle Beobachtungen zum selben Zeitpunkt 208 vorgenommen wurden und zum selben Zeitpunkt 211 mit der Fusion begonnen wird. Da die Daten erst zum Zeitpunkt 211 fusioniert werden, liegen die Ergebnisse der Datenfusion erst zum Zeitpunkt 212 vor. Der verbesserten Konsistenz der Daten steht eine verzögerte Reaktion des Systems gegenüber.
Welche der vorgeschlagenen Strategien (b), (c) oder (d) zur Behandlung von verzögerten Vorverarbeitungsergebnissen ausgewählt wird, hängt von dem gegebenen Anwendungsszenario ab. Wenn z.B. die Framedauer 10 msec beträgt und ein Fahrzeug mit einer Geschwindigkeit von 40 m/sec (d.s. 244 km/h) fährt, dann verlängert sich der Bremsweg bei Strategie (d) im Vergleich zu Strategie (b) um 40 cm. Beim Einparken mit einer Geschwindigkeit von 1/m/sec (3.6 km/h), wo Genauigkeit besonders wichtig ist, ist die Verlängerung des Bremswegs von lern ohne besondere Bedeutung.
Wenn einer der Rechnerknoten 121, 122, und 123 am Ende des l-ten Frames (Z ist ein a priori festgelegter Parameter, wobei Z>2) nach der Datenerfassung noch kein Resultat bereitstellt, dann wird der Vorverarbeitungsprozess in diesem Rechner durch einen im Rechnerknoten aktiven Monitorprozess abgebrochen und entweder der Prozess neu gestartet oder ein Reset des Rechnerknotens, der den Vorverarbeitungsprozesses ausgeführt hat, durchgeführt. Unmittelbar nach dem dem Reset folgenden Wiederanlauf eines Rechnerknotens ist eine Diagnosenachricht an einen Diagnoserechner zu senden.
Wenn der oben zitierte Monitorprozess im Rechnerknoten 141 feststellt, dass ein a priori festgelegter Prozentsatz P der Verarbeitungsergebnisse einen Alterungsindex AI>1 aufweist, so kann der Monitorprozess im Rechnerknoten 141 eine Framekontrollnachricht an die Rechnerknoten 121, 122, und 123 senden, um die Framedauer zu erhöhen, z.B. zu verdoppeln. Damit wird die zeitliche Datenkonsistenz verbessert, jedoch auf Kosten der Reaktionszeit.
Das vorgeschlagene erfindungsgemäße Verfahren löst das Problem der zeitlichen Inkonsis- tenz von Sensordaten, die von diversen Sensoren erfasst und den zugeordneten Rechnerknoten vorverarbeitet werden. Es ist daher von großer wirtschaftlicher Bedeutung.
Die vorliegende Erfindung legt ein Verfahren offen, wie in einem verteilten zyklisch arbeitenden Computersystem die Vorverarbeitungsergebnisse diverser bildgebender Sensorsysteme im Rahmen der Sensorfusion integriert werden können. Da die Dauer der Berechnung eines Vorverarbeitungsergebnisses von den erfassten Sensordaten abhängt, kann der Fall eintreten, dass die Vorverarbeitungsergebnisse der diversen Sensoren zu unterschiedlichen Zeitpunkten fertig gestellt werden, obwohl die Erfassung der Daten synchron erfolgt ist. Es wird ein innovatives Verfahren vorgestellt, wie die zeitliche Inkonsistenz der Vorverarbeitungsergebnisse der diversen Sensoren im Rahmen der Sensorfusion zu behandeln ist. Aus der Sicht der Anwendung ist zu entscheiden, ob eine schnelle Reaktion des Systems oder die zeitliche Konsistenz der Daten im gegebenen Anwendungsfall von größerer Bedeutung ist.
Zitierte Literatur:
[1] US Patent 7,283,904. Benjamin, et al. Multi-Sensor Fusion. Granted Oct.16, 2007.
[2] US Patent 8,245,239. Garyali, et al. Deterministic Run-Time Execution Environment and Method. Granted Aug. 14, 2012
[3] US Patent 8,090,552. Henry, et al. Sensor Fusion using Self-Evaluating Process Sensors. Granted Jan. 3, 2012.
[4] Kopetz, H. Real-Time Systems, Design Principles for Distributed Embedded Applications. Springer Verlag. 2011.
SAE Standard AS6802 von TT Ethernet. URL: http://standards.sae.org/as6802