-
EINFÜHRUNG
-
Die vorliegende Offenbarung betrifft eine fehlertolerante Ausführung in einer adaptiven Middleware-Plattform für ein Fahrzeug.
-
Aktuelle Serienkraftfahrzeuge, wie etwa das moderne Automobil, sind ursprünglich mit einem Antriebsstrang ausgestattet, der so arbeitet, dass er das Fahrzeug antreibt und die Bordelektronik des Fahrzeugs mit Strom versorgt. In Automobilanwendungen wird beispielsweise der Fahrzeugantriebsstrang allgemein durch eine primäre Antriebsmaschine charakterisiert, die über ein Manuell- oder Automatik-Mehrgangschaltgetriebe und ein Achsantriebssystem (z. B. Differential, Achswelle usw.) Antriebskraft an die Bodenräder des Fahrzeugs abgibt. Automobile wurden in der Vergangenheit aufgrund ihrer hohen Verfügbarkeit und der relativ günstigen Kosten, des geringen Gewichts und des Gesamtwirkungsgrades von einer Hubkolben-Verbrennungsmotor-Baugruppe (ICE) angetrieben. Diesen Motoren schließen Zwei- und Viertakt-Dieselmotoren mit Verdichtungszündung (CI), Viertakt-Benzinmotoren mit Fremdzündung (SI), Sechstaktarchitekturen und Drehmotoren als einige nicht einschränkende Beispiele ein. Hybrid- und Vollelektrofahrzeuge hingegen nutzen alternative Energiequellen, um das Fahrzeug anzutreiben und so die Abhängigkeit von einem Motor auf Basis fossiler Brennstoffe zu minimieren oder zu beseitigen.
-
Hybridfahrzeug-Antriebsstränge nutzen mehrere Traktionsleistungsquellen zum Antreiben des Fahrzeugs, wobei sie am häufigsten eine Verbrennungsmotorbaugruppe in Verbindung mit einem batteriebetriebenen oder brennstoffzellenbetriebenen Elektromotor verwenden. Ein Hybrid-Elektrofahrzeug (HEV) beispielsweise speichert sowohl elektrische als auch chemische Energie und wandelt diese in mechanische Energie um, um die Bodenräder des Fahrzeugs anzutreiben. Das HEV ist in der Regel mit einer elektrischen Maschine (E-Maschine), oft in Form einer Elektromotor-/Generatoreinheit (MGU) ausgestattet, die parallel oder in Reihe mit einem ICE betrieben wird. Die Hybridarchitekturen der Serie beziehen die gesamte Traktionskraft von Elektromotoren und beseitigen so jede mechanische Antriebsverbindung zwischen Motor und Achsantriebselementen. Im Vergleich dazu weisen die Motor- und Motor-/Generatorbaugruppen paralleler Hybridarchitekturen jeweils eine mechanische Antriebskupplung zur Kraftübertragung auf. Da Hybridfahrzeuge so konzipiert sind, dass sie ihre Leistung aus anderen Quellen als dem ICE beziehen, können Motoren in HEVs ganz oder teilweise abgeschaltet werden, während das Fahrzeug von den Elektromotoren angetrieben wird.
-
Ein Vollelektrofahrzeug (FEV) - umgangssprachlich als „Elektroauto“ bezeichnet - ist eine alternative Art der Fahrzeugkonfiguration mit Elektroantrieb, die den Verbrennungsmotor und die dazugehörigen peripheren Komponenten vollständig aus dem Antriebsstrang eliminiert und sich ausschließlich auf elektrische Traktionsmotoren für den Fahrzeugantrieb stützt. Batterie-Elektrofahrzeuge (BEV) nutzen beispielsweise die in einem wiederaufladbaren, integrierten Batteriepack gespeicherte Energie und nicht einen Kraftstofftank, eine Brennstoffzelle oder ein Schwungrad, um die Elektromotoren anzutreiben. Das Elektrofahrzeug verwendet ein elektrisches Energieverteilungssystem, das über ein Motorsteuerungsmodul (PCM) gesteuert wird, um elektrische Energie zwischen dem integrierten Batteriepack und dem/den Elektromotor(en) hin- und herzuleiten. Plug-in-Elektrofahrzeug-(PEV)-Varianten ermöglichen das Aufladen des Batteriepacks über eine externe Stromquelle, wie etwa ein öffentliches Stromnetz über eine private oder kommerzielle Fahrzeugladestation.
-
Da sich die Fahrzeugverarbeitungs-, Kommunikations- und Sensorfähigkeiten weiter verbessern, werden die Hersteller weiterhin mehr systemautomatisierte Fahrfähigkeiten anbieten, mit dem Bestreben, letztendlich völlig autonome Fahrzeuge anzubieten, die in der Lage sind, zwischen heterogenen Fahrzeugtypen sowohl in städtischen als auch in ländlichen Szenarien zu agieren. Originalausrüstungshersteller (OEM) bewegen sich in Richtung von Fahrzeug-zu-Fahrzeug - (V2V) und Fahrzeug-zu-Infrastruktur (V2I) „sprechenden“ Fahrzeugen, wobei sie drahtlose Konnektivität (z. B. eigene Nahfeldkommunikation oder DSRC) mit Fahrautomatisierungsmerkmalen höherer Ebene integrieren, die autonome Lenk-, Brems- und Antriebsstrangsysteme verwenden, um einen fahrerlosen Fahrzeugbetrieb zu ermöglichen. Automatisierte Routenerzeugungssysteme verwenden Fahrzeugzustand und Fahrdynamiksensoren, Straßenkartendaten und Pfadvorhersagealgorithmen, um eine Fahrzeugroutenplanung und Routenneuplanungaktualiserung mit automatisierten Spurmitte- und Spurwechselvorhersagen, Szenarienplanung usw. bereitzustellen. Zum Zwecke dieser Offenbarung werden „automatisierte Fahrzeuge“ und „autonome Fahrzeuge“ und „verbundene automatisierte/autonome Fahrzeuge“ (CAVs) synonym und austauschbar zur Bezeichnung von Fahrzeugen mit teilweise unterstützten und/oder voll autonomen Fahrfähigkeiten verwendet werden, einschließlich aller relevanten Fahrzeugplattformen, die von der Society of Automotive Engineers (SAE) als Fahrzeuge der Stufen 2, 3, 4 oder 5 klassifiziert werden.
-
Viele Autos sind nun mit einem fahrzeuginternen Fahrzeugnavigationssystem ausgestattet, das einen globalen Positionsbestimmungssystem (GPS)-Transceiver in Zusammenarbeit mit Navigationssoftware und einer Abbildungsdatenbank verwendet, um Fahrbahntopographie, Verkehrs- und Geschwindigkeitsbegrenzungsinformationen zu erhalten, die dem aktuellen Standort des Fahrzeugs zugeordnet sind. Fahrerassistenzsysteme (ADAS) und autonome Fahrsysteme sind oft in der Lage, bestimmte automatisierte Fahrmanöver auf der Grundlage von durch das fahrzeuginterne Navigationssystem erhaltenen Straßeninformationen anzupassen. So nutzen beispielsweise das Ad-hoc-netzwerkbasierte ADAS GPS- und Kartierungsdaten in Verbindung mit Multi-Hop-Geocast V2V- und V2I-Datenaustausch, um automatisierte Fahrzeugmanöver und Antriebssteuerungen zu erleichtern. Während des unterstützten und nicht unterstützten Fahrzeugbetriebs kann das residente Navigationssystem eine empfohlene Fahrtroute auf der Grundlage einer geschätzten kürzesten Zeit oder geschätzten kürzesten Entfernung zwischen einem Routenstartpunkt und einem Routenziel für eine gegebene Fahrt bestimmen. Diese empfohlene Fahrtroute kann dann als Kartenspur oder als Turn-by-Turn-Fahrtanweisungen auf einer geodätisch codierten und kommentierten Karte angezeigt werden. Solche Ansätze zur Routenplanung, während wirksam bei der Bestimmung des/der kürzesten Wegs/Zeit bis zu einem gewünschten Ziel, berücksichtigen nicht die energieeffizientesten Routen oder die günstigsten Routen für die Steuerung des Fahrzeugbetriebs.
-
KURZDARSTELLUNG
-
Die vorliegende Offenbarung beschreibt ein Verfahren zur Steuerung des Fahrzeugs mit einer Middleware. Das Verfahren ermöglicht eine kosteneffektive Replikation, während Ende-zu-Ende-Garantien beibehalten werden und unterschiedliche Replikationsstrategien unterstützt werden. Zum Beispiel stellt das Verfahren eine Kostenersparnis in Bezug auf Rechen- und Kommunikationsbandbreitenressourcen im Vergleich zu herkömmlichen aktiven Replikationstechniken bereit. Anwendungsprogrammierer können Anwendungen agnostisch von den Replikationsüberlegungen schreiben.
-
In einem Beispiel schließt das Verfahren Folgendes ein: Aufbauen einer Verbindung zwischen einem Client und einer Vielzahl von Servern durch eine Fahrzeugsteuereinheit, wobei die Vielzahl von Servern einen primären Server und mindestens einen Replikserver einschließt, wobei der mindestens eine Replikserver eine Replikation des primären Servers ist; Erzeugen einer Datenanfrage an einen gegebenen Dienst an die Vielzahl von Servern durch die Fahrzeugsteuereinheit; als Reaktion auf die Datenanfrage der Erhalt von Antwortdaten von der Vielzahl von Servern über eine Middleware; Zusammenfügen der Antwortdaten von der Vielzahl von Servern durch die Middleware zur Erzeugung von Ergebnisdaten; Empfangen der Ergebnisdaten durch die Fahrzeugsteuereinheit; und Steuern des Fahrzeugs auf der Grundlage der Ergebnisdaten durch die Fahrzeugsteuereinheit. Das Verfahren unterstützt auch eine Vielzahl von Clients, wobei die Vielzahl von Clients einen primären Client und mindestens einen Replikationsclient einschließt, die mit einem Server verbunden sind und in einem allgemeineren Fall eine Vielzahl von Clients, die mit einer Vielzahl von Servern verbunden ist. Eine einzelne Anwendung kann sowohl als Client wie auch als Server wirken.
-
Das Verfahren kann ferner das Erzeugen einer Vielzahl von Benachrichtigungen durch die Vielzahl von Servern als Reaktion auf das Herstellen der Verbindung zwischen dem Client und der Vielzahl von Servern und das Filtern von Duplikatbenachrichtigungen von der Vielzahl von Benachrichtigungen durch die Middleware einschließen, um eine gefilterte Benachrichtigung zu erzeugen. Das Verfahren kann ferner ein Empfangen der gefilterten Benachrichtigung durch den Client und das Registrieren des gleichen Dienstes einer eine Vielzahl von Diensten mit der Middleware durch die Vielzahl von Servern einschließen. Das Verfahren kann ferner einschließen, dass durch die Middleware eine Liste von Instanzen für den gleichen Dienst der Vielzahl von Diensten gepflegt wird. Im Falle mehrerer Clients und eines einzelnen Servers kann das Verfahren auch das Filtern von Duplikat-Anforderungen durch die Middleware einschließen.
-
Das Verfahren kann ferner das Bereitstellen einer Zusammenführungsstrategie durch den Client an die Vielzahl von Servern und das Bereitstellen einer Filterstrategie durch die Fahrzeugsteuereinheit an die Vielzahl von Servern einschließen. Das Verfahren kann ferner das Aktivieren eines Alarms durch die Fahrzeugsteuereinheit als Reaktion auf das Empfangen der gefilterten Benachrichtigung von der Middleware einschließen.
-
Die vorliegende Offenbarung beschreibt auch ein Fahrzeug mit einer Fahrzeugkarosserie und einer Fahrzeugsteuereinheit, die an der Fahrzeugkarosserie angebracht ist. Die Fahrzeugsteuereinheit ist mit mindestens einem Client und einer Vielzahl von Servern programmiert. Die Vielzahl von Servern schließt einen primären Server und mindestens einen Replikserver ein, und der mindestens eine Replikserver ist eine Replikation des primären Servers. Der Client steht in Kommunikation mit der Vielzahl von Servern. Der Client ruft die Middleware auf, um eine Verbindung zwischen dem Client und den mehreren Servern herzustellen. Die Fahrzeugsteuereinheit ist programmiert, um das oben beschriebene Verfahren auszuführen.
-
Die obigen Merkmale und Vorteile und andere Merkmale und Vorteile der vorliegenden Lehren werden aus der folgenden detaillierten Beschreibung der besten Arten zum Ausführen der Lehren in Verbindung mit den beigefügten Zeichnungen leicht ersichtlich.
-
Figurenliste
-
- 1 ist eine schematische Darstellung eines repräsentativen Kraftfahrzeugs mit einem Netzwerk von Steuereinheiten, Sensorvorrichtungen und Kommunikationsvorrichtungen zum Ausführen automatisierter Fahrvorgänge gemäß Aspekten der vorliegenden Offenbarung.
- 2 ist eine schematische Darstellung einer Hardwarearchitektur eines Systems zum Herstellen einer Kommunikation zwischen einem primären Server, wenigstens einem primären Replikserver und einem Client, wobei der Client eine Fahrzeugsteuereinheit ist.
- 3 ist ein schematisches Diagramm einer Softwarearchitektur des in 2 gezeigten Systems.
- 4 ist ein Flussdiagramm eines Verfahrens zum Steuern des Fahrzeugs.
-
DETAILLIERTE BESCHREIBUNG
-
Diese Offenbarung ist anfällig für Ausführungsformen in vielen verschiedenen Formen. Repräsentative Ausführungsformen der Offenbarung werden in den Zeichnungen gezeigt und hierin im Detail mit dem Verständnis beschrieben, dass diese repräsentativen Beispiele als eine Veranschaulichung der offenbarten Prinzipien und nicht als Begrenzungen der umfassenden Gesichtspunkte der Offenbarung bereitgestellt werden. Insofern sollten Elemente und Einschränkungen, die beispielsweise in den Abschnitten „Zusammenfassung“, „Einführung“ „Kurzdarstellung“, und „Detaillierte Beschreibung“ beschrieben werden, aber nicht ausdrücklich in den Ansprüchen dargelegt sind, nicht einzeln oder gemeinsam durch Implikation, Schlussfolgerung oder anderweitig in die Ansprüche aufgenommen werden.
-
Für die Zwecke der vorliegenden detaillierten Beschreibung, sofern nicht ausdrücklich abgelehnt: Singular schließt Plural ein und umgekehrt; die Worte „und“ und „oder“ sollen sowohl verbindend als auch trennend sein; die Worte „beliebige“ und „alle“ sollen beide „beliebige und alle“ bedeuten; und die Worte „einschließlich“, „beinhaltend“, „umfassend“ und „innehabend“ und dergleichen sollen „einschließlich ohne Beschränkung“ bedeuten. Darüber hinaus können hierin Wörter der Annäherung, wie etwa „ungefähr“, „fast“, „im Wesentlichen“, „etwa“ und dergleichen, im Sinne von „um, nahezu oder „nahezu bei“ oder „innerhalb von 0-5 % von“ oder „innerhalb annehmbarer Fertigungstoleranzen“ oder jede beliebige logische Kombination davon beispielsweise verwendet werden. Schließlich können sich Richtungsadjektive und Adverbien, wie etwa vorwärts, rückwärts, innen, außen, steuerbord, backbord, vertikal, horizontal, oben, unten, vorne, hinten, links, rechts usw., auf ein Kraftfahrzeug beziehen, wie etwa ein vorwärts fahrendes Kraftfahrzeug, wenn dieses auf einer normalen Fahrbahnoberfläche betrieben wird.
-
Bezug nehmend auf die Zeichnungen, in denen sich gleiche Referenznummern auf gleiche Merkmale in den verschiedenen Ansichten beziehen, wird in 1 ein repräsentatives Fahrzeug gezeigt, welches im Allgemeinen mit 10 bezeichnet und hierin zum Zwecke der Beschreibung als eine Limousine in der Art eines Personenkraftwagens dargestellt ist. Verpackt in einer Fahrzeugkarosserie 12 des Fahrzeugs 10, z. B. verteilt über die verschiedenen Fahrzeugabteile, ist ein Bordnetz von elektronischen Vorrichtungen zum Ausführen von einem oder mehreren assistierten oder automatisierten Fahrbetrieben. Das dargestellte Fahrzeug 10 - im Folgenden auch als „Kraftfahrzeug“ oder verkürzend als „Fahrzeug“ bezeichnet - ist nur eine exemplarische Anwendung, mit der Aspekte und Merkmale dieser Offenbarung erfahren werden können. In gleicher Weise ist die Implementierung der vorliegenden Konzepte für die nachfolgend diskutierte spezifische Computernetzwerkarchitektur auch als beispielhafte Anwendung der hierin offenbarten Neuerungen zu werten. Daher versteht es sich, dass Aspekte und Merkmale dieser Offenbarung auf andere Systemarchitekturen angewendet werden können, die für verschiedene automatisierte Fahrbetriebe verwendet werden und für jede logisch relevante Art von Kraftfahrzeug implementiert sind. Darüber hinaus wurden nur ausgewählte Komponenten des Netzwerks und Fahrzeugs gezeigt und werden nachstehend in weiteren Einzelheiten beschrieben. Trotzdem können die hier diskutierten Kraftfahrzeuge und Netzwerkarchitekturen zahlreiche weitere und alternative Merkmale und andere verfügbare periphere Komponenten zum Beispiel zur Durchführung der verschiedenen Verfahren und Funktionen dieser Offenbarung einschließen. Schließlich sind die hierin dargestellten Zeichnungen nicht notwendigerweise maßstabsgetreu und werden lediglich zu Anweisungszwecken bereitgestellt. Somit sind die spezifischen und relativen Abmessungen, die in den Zeichnungen dargestellt werden, nicht als einschränkend auszulegen.
-
Das repräsentative Fahrzeug 10 von 1 ist ursprünglich mit einer Fahrzeug-Telekommunikations- und Informations („Telematik“)-Einheit 14 ausgestattet, die drahtlos (z. B. über Mobilfunkmasten, Basisstationen, V2X und/oder Mobilvermittlungsstellen (MSCs) usw.) mit einem Kommunikationsnetzwerk 24 kommuniziert. Das Kommunikationsnetz 24 kann ein zellulares Netz und/oder ein Satellitennetzwerk sein. Einige der anderen Fahrzeug-Hardwarekomponenten 16, die allgemein in 1 gezeigt werden, schließen als nicht einschränkende Beispiele eine elektronische Videoanzeigevorrichtung 18, ein Mikrofon 28, einen oder mehrere Audiolautsprecher 30 und diverse Eingabesteuerungen 32 (z. B. Tasten, Knöpfe, Schalter, Trackpads, Tastaturen, Touchscreens usw.) ein. Im Allgemeinen können diese Telematikhardwarekomponenten 16 zumindest teilweise als residentes Fahrzeugnavigationssystem fungieren, z. B. um eine unterstützte und/oder automatisierte Fahrzeugnavigation zu ermöglichen, und als Mensch/Maschine-Schnittstelle (HMI), z. B. um einem Benutzer zu ermöglichen, mit der Telematikeinheit 14 und anderen Systemen und Systemkomponenten des Fahrzeugs 10 zu kommunizieren. Ein Mikrofon 28 stellt einem Fahrzeuginsassen Mittel zur Verfügung, um Sprachbefehle oder andere hörbare Befehle einzugeben; das Fahrzeug 10 kann mit einer integrierten Sprachverarbeitungseinheit ausgestattet sein, die mit einem Softwaremodul zur rechnerischen Spracherkennung programmiert ist. Umgekehrt stellt der Lautsprecher 30 einem Fahrzeuginsassen eine hörbare Ausgabe bereit und kann entweder ein eigenständiger eigens für die Verwendung mit der Telematikeinheit 14 vorgesehener Lautsprecher oder Teil des Audiosystems 22 sein. Das Audiosystem 22 ist betriebsfähig mit einer Netzwerkverbindungsschnittstelle 34 und einem Audiobus 20 verbunden, um über eine oder mehrere Lautsprecherkomponenten analoge Informationen zu empfangen und als Ton wiederzugeben.
-
Kommunikativ mit der Telematikeinheit 14 gekoppelt ist eine Netzwerkverbindungsschnittstelle 34, zu deren geeigneten Beispielen Twisted Pair/LWL-Ethernet-Switch, interner/externer paralleler/serieller Kommunikationsbus, eine LAN-Schnittstelle (Local Area Network), ein Controller Area Network (CAN), ein medienorientierter Systemtransfer (MOST), eine lokale Verbindungsnetzwerk-Schnittstelle (LIN) und dergleichen gehören. Andere geeignete Kommunikationsschnittstellen können solche einschließen, die den Normen und Spezifikationen von ISO, SAE und IEEE entsprechen. Die Netzwerkverbindungsschnittstelle 34 ermöglicht es der Fahrzeughardware 16, Signale untereinander und mit verschiedenen Systemen und Teilsystemen sowohl innerhalb als auch „resident“ zur Fahrzeugkarosserie 12 und außerhalb oder „entfernt“ von der Fahrzeugkarosserie 12 zu senden und zu empfangen. Dadurch kann das Fahrzeug 10 verschiedene Fahrzeugfunktionen ausführen, wie etwa die Steuerung der Fahrzeuglenkung, die Steuerung des Getriebes des Fahrzeugs, die Steuerung der Motordrosselklappe, das Ein- und Ausschalten des Bremssystems und andere automatisierte Fahrfunktionen. So empfängt und/oder überträgt beispielsweise die Telematikeinheit 14 Daten von/zu einer ADAS-Elektroniksteuereinheit (ECU) 52, einem Motorsteuermodul (ECM) 54, einem Antriebsstrangsteuermodul (PCM) 56, einem Sensor-Schnittstellenmodul (-modulen) 58, einem Bremssystemsteuermodul (BSCM) 60 und verschiedenen anderen Fahrzeug-ECUs, wie beispielsweise einem Getriebesteuermodul (TCM), einem Klimasteuermodul (CCM) usw.
-
Mit weiterem Bezug auf 1 ist die Telematikeinheit 14 eine integrierte Rechenvorrichtung, die eine Mischung von Diensten sowohl einzeln als auch durch ihre Kommunikation mit anderen vernetzten Vorrichtungen bereitstellt. Diese Telematikeinheit 14 besteht im Allgemeinen aus einem oder mehreren Prozessoren 40, von denen jeder als diskreter Mikroprozessor ausgeführt sein kann, einer anwendungsspezifischen integrierten Schaltung (ASIC), einem dedizierten Steuermodul usw. Das Fahrzeug 10 kann eine zentralisierte Fahrzeugsteuerung über eine Zentralverarbeitungseinheit (CPU) oder Fahrzeugsteuereinheit 36 anbieten, die betriebsfähig mit einer oder mehreren elektronischen Speichervorrichtungen 38 gekoppelt ist, die jeweils in Form einer CD-ROM, Magnetplatte, IC-Vorrichtung, eines Halbleiterspeichers (z. B. verschiedene Arten von RAM oder ROM) usw. vorliegen können, und einer Echtzeituhr (RTC) 42. Fahrzeugkommunikationsfähigkeiten mit großer Reichweite mit externen vernetzten Remote-Vorrichtungen können über einen Mobilfunk-Chipsatz/eine Mobilfunk-Komponente, einen Navigations- und Ortungs-Chipsatz/eine Navigations- und Ortungs-Komponente (z. B. Global Positioning System (GPS)-Sender-Empfänger) oder ein drahtloses Modem oder mehrere dieser genannten Vorrichtungen bereitgestellt werden, die alle gemeinsam bei 44 dargestellt sind. Die drahtlose Nahbereichsverbindung kann über eine drahtlose Nahbereichskommunikationsvorrichtung 46 (z. B. eine Bluetooth®-Einheit oder einen Nahfeldkommunikationssender/Empfänger), eine eigene Kurzstreckenkommunikationskomponente 48 (DSRC) und/oder eine Doppelantenne 50 bereitgestellt werden. Es versteht sich, dass das Fahrzeug 10 ohne eine oder mehrere der oben genannten Komponenten implementiert werden kann oder zusätzliche Komponenten und Funktionen einschließen kann, wie es für einen bestimmten Endzweck gewünscht wird. Die verschiedenen vorstehend beschriebenen Kommunikationsvorrichtungen können konfiguriert werden, um Daten als Teil einer periodischen Übertragung in einem V2V-Kommunikationssystem oder einem anderen Vehicle-to-Everything (V2X)-Kommunikationssystem auszutauschen, z. B. Vehicle-to-Infrastructure (V2I), Vehicle-to-Pedestrian (V2P) und/oder Vehicle-to-Device (V2D).
-
Die Fahrzeugsteuereinheit 36 empfängt Sensordaten von einer oder mehreren Erfassungsvorrichtungen, die beispielsweise Fotodetektion, Radar, Laser, Ultraschall, Optik, Infrarot oder eine andere geeignete Technologie zur Durchführung eines automatisierten Fahrbetriebs verwenden. Gemäß dem veranschaulichten Beispiel kann das Fahrzeug 10 mit einer oder mehreren Digitalkameras 62, einem oder mehreren Reichweitensensoren 64, einem oder mehreren Fahrzeugdrehzahlsensoren 66, einem oder mehreren Fahrdynamiksensoren 68 und jedweder erforderlichen Filter-, Klassifizierungs-, Fusions- und Analysehardware und Software zur Verarbeitung von Sensorrohdaten ausgestattet sein. Eine Digitalkamera 62 kann einen CCD-Sensor (charge coupled device) oder einen anderen geeigneten optischen Sensor verwenden, um Bilder zu erzeugen, die ein Sichtfeld des Fahrzeugs 10 anzeigen, und kann für die kontinuierliche Bilderzeugung konfiguriert werden, z. B. mindestens etwa 35 Bilder, die pro Sekunde erzeugt werden. Zum Vergleich kann der Entfernungssensor 64 reflektierte Funk-, elektromagnetische oder lichtbasierte Wellen (z. B. Radar, EM induktiv, Lichtdetektion und -entfernung (LIDAR) usw.) ausstrahlen und erfassen, um beispielsweise Anwesenheit, geometrische Abmessungen und/oder Nähe eines Objekts zu erfassen. Der Fahrzeuggeschwindigkeitssensor 66 kann verschiedene Formen annehmen, einschließlich Radgeschwindigkeitssensoren, die Radgeschwindigkeiten messen, die dann zum Bestimmen der Echtzeit-Fahrzeuggeschwindigkeit verwendet werden. Darüber hinaus kann der Fahrdynamiksensor 68 in der Art eines ein- oder dreiachsigen Beschleunigungssensors, eines Winkelgeschwindigkeitssensors, eines Inklinometers usw. zum Erfassen von Längs- und Querbeschleunigungen, Gier-, Roll- und/oder Neigungsraten oder anderen dynamischen Parametern vorliegen. Unter Verwendung von Daten aus den Erfassungsvorrichtungen 62, 64, 66, 68 identifiziert die Fahrzeugsteuereinheit 36 Objekte innerhalb eines erfassbaren Bereichs des Fahrzeugs 10 und bestimmt Attribute des Endobjekts, wie etwa Größe, relative Position, Anfahrwinkel, relative Geschwindigkeit usw.
-
Unter Bezugnahme auf 2 schließt in dieser Offenbarung ein System 72 einen oder mehrere Clients 70 und eine Vielzahl von Servern 74 jeweils in Kommunikation mit dem Client 70 durch das Kommunikationsnetzwerk 34 und/oder 24 ein. In der vorliegenden Offenbarung wird die Fahrzeugsteuereinheit 36 als Client 70 betrachtet. Wie hierin verwendet, bedeutet der Begriff „Client“ eine Software, die in der Lage ist, Informationen und Anwendungen von einem Server zu erhalten. Somit ist der Client 70 (der auf der Fahrzeugsteuereinheit 36 laufen kann) in der Lage, Informationen und Anwendungen von der Vielzahl von Servern 74 zu erhalten. Der Begriff „Server“ bedeutet eine Softwareanwendung, die den Zugriff auf eine zentrale Ressource oder Service in einem Netzwerk verwaltet. Somit verwaltet jeder der Server 74 Zugriff auf eine zentralisierte Ressource oder einen Dienst durch das Kommunikationsnetz 34 und/oder 24. Die von den Servern 74 bereitgestellten Dienste können Folgendes einschließen, ohne darauf beschränkt zu sein: Kryptoservice, Diagnostik, Sicherheitsverwaltung, Softwarekonfiguration, autonome Fahrdienste und V2X Dienste usw. Die Server 74 sollten Daten erzeugen, die mit den Anforderungen des Client 70 kompatibel sind.
-
Die Vielzahl von Servern 74 schließt einen primären Server 76 und mindestens einen Replikserver 78 ein. Der primäre Server 76 kann auf einer physikalischen Rechenvorrichtung laufen, einschließlich eines Prozessors, um Anfragen von dem Client 70 über das Kommunikationsnetzwerk 34 und/oder 24 zu verarbeiten und Daten an ihn zu liefern. Somit steht der primäre Server 76 in Kommunikation mit dem Client 70 (der auf der Fahrzeugsteuereinheit 36 laufen kann) durch das Kommunikationsnetzwerk 34 und/oder 24. Der Replikserver 78 ist ein Replik des primären Servers 76 und kann auf einer physischen Recheneinrichtung laufen, einschließlich eines Prozessors, um Anfragen von dem Client 70 über das Kommunikationsnetz 24 zu verarbeiten und Daten dorthin zu liefern. Alternativ oder zusätzlich kann der Replikserver 78 auf einer virtuellen Maschine laufen. Wie hierin verwendet, bezeichnet der Begriff „Replikserver“ einen Server, der dieselbe Software (z. B. Anwendungen und Dienste) und Daten wie der primäre Server 76 enthält, um Fehlertoleranz für das System 72 bereitzustellen. In der vorliegenden Offenbarung bezeichnet der Begriff „Fehlertoleranz“ eine Eigenschaft, die es dem System 72 ermöglicht, in dem Fall eines Ausfalls einiger (oder bei einem oder mehreren Fehler in) seiner Komponenten weiterhin ordnungsgemäß zu arbeiten. Zum Beispiel ist das System 78 aufgrund des Replikservers 72 zu einem kontinuierlichen Betrieb in der Lage, selbst wenn der primäre Server 76 ausfällt. Obwohl in der 2 nur ein Replikserver 78 gezeigt wird, ist vorgesehen, dass das System 72 mehr als einen Replikserver 78 einschließen kann, um seine Fehlertoleranz zu verbessern. Der Replikserver 78 ist programmiert zur Ausführung einer oder mehrere Typen von Software-Replikation, wie etwa aktiver Klon, Hot Standby, Warm Standby, Cold Standby und/oder Frigid Standby. Beispielsweise empfängt der Replikserver 78, wenn er als aktiver Klon arbeitet, Eingaben von dem Client 70 (die auf der Fahrzeugsteuereinheit 36 laufen können) zu anderen Zeiten als der primäre Server 76, und die aktuellsten Daten (d. h. mit späteren Zeiteingaben) können verwendet werden. Es ist vorgesehen, dass das System 72 eine passive Replikation (anstatt aktiver Replikation) durchführen kann. In der passiven Replikation subskribiert der Replikserver 78 den primären Server 76 und empfängt Zustands- und Gesundheitsinformationen des primären Servers 76. Der Client 70 kann so programmiert werden, dass er die aktuellsten Daten (d. h. die Daten mit dem neuesten Zeitstempel) von den Servern 74 erhält. Der primäre Server 76 und der Replikserver 78 können Daten über den aktuellen Standort (bestimmt unter Verwendung des GPS-Transceivers) des Fahrzeugs 10 zu unterschiedlichen Zeiten empfangen. Durch das Vorhandensein mindestens eines Replikservers 78 kann der Client 70 (der auf der Fahrzeugsteuereinheit 36 laufen kann) selbst dann Informationen und Anwendungen von einem der Replikserver 78 erhalten, wenn der primäre Server 76 ausfällt. Ebenso kann der Client 70 noch Informationen und Anwendungen von dem primären Server 76 empfangen, wenn einer der Replikserver 78 ausfällt. Die Replikserver 78 stellen replizierende Dienste (d. h. implizite mehrere Instanziierung durch Start/Durchführung der gleichen ausführbaren Anwendung mehrere Male) bereit. Jeder der Replikserver 78 ist identisch mit dem primären Server 76. Die Replikserver 78 können zwei verschiedene ausführbare Programme aufweisen, die denselben Dienst bereitstellen.
-
Unter Bezugnahme auf 3 kann das System 72 eine Softwarearchitektur 80 zum Ausführen der geeigneten Funktionalität des Fahrzeugs 10 aufweisen und kann als verteiltes System bezeichnet werden. Die Software-Architektur 80 schließt eine Anwendungsschicht 82 und eine Middleware-Schicht 84 ein. In der vorliegenden Offenbarung bedeutet der Ausdruck „Middleware“ eine Computersoftware, die Dienste für Softwareanwendungen jenseits derjenigen bereitstellt, die von dem Betriebssystem verfügbar sind. Die Anwendungsschicht 82 schließt einen primären Server 76, mindestens eine Serverreplikation 78 und einen Client 70 ein. Wie oben erläutert kann das System 72 mehr als einen Replikserver 78 einschließen. Die Middleware-Schicht 84 kann einfach als Middleware bezeichnet werden und wirkt als Brücke zwischen: (1) einem Client 70 und (2) dem Server 76 oder der Serverreplik 78. Die Middleware-Schicht 84 schließt eine Laufzeitumgebung ein zum Verwalten von Kommunikationen zwischen: (1) dem Client 70 und (2) dem Server 76 und der Serverreplik 78. Beispielsweise kann es sich bei der Middleware-Schicht 84 um AUTOSAR™ oder eine andere geeignete Middleware handeln. Die Middleware-Schicht 84 schließt ferner eine Dienstregistrierung 94 ein. In der vorliegenden Offenbarung bedeutet der Begriff „Dienstregistrierung“ eine Datenbank von Diensten, deren Instanzen und ihrer Position. Somit ist das Dienstregistrierung 94 unter anderem eine Datenbank, die mit einer Information darüber ausgestattet ist, wie Anforderungen an Dienstinstanzen zu senden sind. In dieser Softwarearchitektur 80 registrieren der Server 76 und die Serverreplikation 78 einen Dienst (einschließlich Servicebezeichnung und sein entsprechendes Datenformat) bei der Middleware-Schicht 84 (wie durch die Pfeile R angegeben). Jeder der Server 76 und der eine oder die mehreren Serverreplikationen 78 registrieren denselben Dienst (mit demselben Dienstnamen und Datenformat) bei der Dienstregistrierung 94 der Middleware-Schicht 84. Die Middleware-Schicht 84 kann Software einschließen, um einen Vektor von aktiven Proxys zu pflegen (d. h. diesen zu übernehmen), die im Grunde Verbindungsobjekte mit verschiedenen Serverinstanzen sind. Der Client 70 findet der Dienst (durch dessen Bezeichnung und gemäß einer Zusammenführungsstrategie) auf der Middleware-Schicht 84 (wie durch den Pfeil F angezeigt). Beispielsweise tätigt der Client 70 einen Aufruf einer Anwendungsprogrammierschnittstelle (API) auf der Middleware, um mit der Suche nach verfügbaren Diensten zu beginnen. Der Client 70 kann einen Rückruf für eine Dienstregistrieraktualisierung registrieren. Als Reaktion darauf aktualisiert die Middleware-Schicht 84 die Dienstregistrierung auf der Grundlage eines Registratur-Aktualisierungsereignisses. Die Middleware-Schicht 84 kann auch eine dynamische Dienstentdeckung als Reaktion auf den Rückruf für eine Dienstregistrierungs-Aktualisierung initiieren. Jeder des Servers 76 und der Serverreplikationen 78 sendet Antwortdaten an die Middleware-Schicht 84, wie durch die Pfeile S in Reaktion auf eine Datenanforderung von dem Client 70 angezeigt. Die Middleware-Schicht 84 führt eine Zusammenführungsstrategie aus, um die von dem Server 76 empfangenen Antwortdaten und die Serverreplikationen 78 zu fusionieren, um Ergebnisdaten zu erhalten. Um die von den Servern 74 empfangenen Antwortdaten zusammenzufhren, wird der Client 70 mit einer Zusammenführungsstrategie programmiert, wie beispielsweise Bestimmen des Durchschnitts, Mittelwerts und/oder Medians (unter anderem) der Daten, die von dem primären Server 76 und dem/den Replikservern 78 erhalten werden. Der Client 70 kann auch mit Subskriptions/Nicht-Subskriptionsverfahren und einer Datenvalidierungsfunktion programmiert werden. Die Middleware-Schicht 84 sendet dann die Ergebnisdaten aus der Zusammenführungsstrategie zu dem Client 70 (wie durch den Pfeil RD angezeigt), um die geeignete Funktion auszuführen. Die von den Servern 74 über die Middleware-Schicht 84 gesendeten Daten können Zeitstempel, Serverdetails (z. B. Replikationstyp, Dienstqualität usw.), Sequenznummern usw. einschließen.
-
3 ist ein Flussdiagramm, das ein Verfahren zum Steuern des Fahrzeugs 10 mit der Middleware-Schicht 92 veranschaulicht. Wie oben erläutert kann die Middleware-Schicht 92 einfach als Middleware bezeichnet werden. Das Verfahren 100 ermöglicht eine kosteneffektive Replikation, während End-to-End-Garantien beibehalten und unterschiedliche Replikationsstrategien unterstützt werden. Zum Beispiel bietet das Verfahren 100 Kosteneinsparungen in Bezug auf Berechnungs- und Kommunikationsbandbreitenressourcen im Vergleich zu herkömmlichen aktiven Replikationstechniken und kann durch die Fahrzeugsteuereinheit 36 ausgeführt werden. Darüber hinaus ist das Verfahren 100 unabhängig von der Position des Dienstes.
-
Anwendungsprogrammierer können Anwendungen agnostisch von den Replikationsüberlegungen schreiben. Das Verfahren 100 beginnt bei Block 102, in denen jeder der primären Server 76 und die Replikserver 78 einen Dienst unter dem gleichen Namen in der Dienstregistrierung 94 der Middleware Schicht 92 eintragen. In der Tat registriert in Block 102 jeder von dem primären Server 76 und dem/den Replikserver(n) 78 mehrere Dienste (jeder Dienst unter demselben entsprechenden Dienstnamen) mit der Dienstregistrierung 94 der Middleware-Schicht 92. Anschließend geht das Verfahren 100 zu Block 104 über. Bei Block 104 pflegt die Middleware-Schicht 92 eine Liste von Instanzen für einen gegebenen Dienstnamen aus einer Vielzahl von Diensten. Anschließend geht das Verfahren 100 zu Block 106 über.
-
Bei Block 106 fordert der Client 70 die Verbindung zu einem Dienst von der Middleware-Schicht 84 an. Anschließend geht das Verfahren zu Block 108 über. Bei Block 108 baut die Middleware-Schicht 84 eine Verbindung zwischen dem Client 70 und der Vielzahl von Servern 74 auf. Anschließend geht das Verfahren 100 zu Block 110 über. Bei Block 110 macht der Client 70 eine Datenanfrage über einen gegebenen Dienst an die Vielzahl von Servern unter Verwendung eines entfernten Prozeduraufrufs (RPC). Diese Datenanforderung schließt die Field/Get-Einstelldaten für einen gegebenen Dienst ein. Anschließend geht das Verfahren 100 zu Block 112 über. Bei Block 112 sendet die Middleware Schicht 84 die Datenanforderung von dem Client 70 an alle der Vielzahl von Servern 74 (einschließlich des ersten Servers 76 und dem/den Replikserver(n) 78) als Reaktion auf die Datenanfrage von dem Client 70. Anschließend geht das Verfahren 100 zu Block 114 über. Bei Block 114 antwortet die Vielzahl von Servern 74 mit Antwortdaten auf die Datenanfrage von dem Client 70 (gesendet durch die Middleware-Schicht 84). Anschließend geht das Verfahren 100 zu Block 116 über. Bei Block 116 führt die Middleware-Schicht 84 alle Antwortdaten von der Vielzahl von Servern 74 zusammen, um daraus Ergebnisdaten zu erzeugen. Diese Ergebnisdaten werden dann an den Client 70 gesendet. Außerdem steuert bei Block 116 auch die Fahrzeugsteuereinheit 36 das Fahrzeug 10 auf Basis der Ergebnisdaten. Nach dem Block 108 geht das Verfahren 100 auch zu Block 118 über. Bei Block 118 erstellt die Vielzahl von Servern 74 Benachrichtigungen (einschließlich Feldbenachrichtigungsdaten und Ereignisdaten). Anschließend geht das Verfahren 100 zu Block 120 über. In Block 120 filtert die Middleware-Schicht 84 die Duplikat-Benachrichtigungen, die von der Vielzahl von Servern 74 erzeugt werden, um eine gefilterte Benachrichtigung zu erzeugen. Die Filterfunktion der Middleware-Schicht 84 kann auf Zeitstempeln und Sequenznummern der Daten (d. h. der Filterstrategie) basieren. Bei Block 120 empfängt der Client 70 auch die gefilterte Benachrichtigung. Bei Block 120 aktiviert der Client 79 auch als Reaktion auf das Empfangen der gefilterten Benachrichtigung von der Middleware-Schicht 84 einen Alarm (durch die Videoanzeigevorrichtung 18 und/oder die Audiolautsprecher 30).
-
Während die besten Weisen zum Ausführen der Lehren detailliert beschrieben wurden, wird der Fachmann auf dem Gebiet, auf das sich diese Offenbarung bezieht, verschiedene alternative Gestaltungen und Ausführungsformen zum Ausführen der Lehren innerhalb des Umfangs der beigefügten Ansprüche erkennen. Das hierin veranschaulichend offenbarte System 74 kann in Abwesenheit jedes Elements, das hierin nicht speziell offenbart ist, geeignet ausgeführt werden. Außerdem sind die in den Zeichnungen gezeigten Ausführungsformen oder die Kennzeichen verschiedener Ausführungsformen, die in der vorliegenden Beschreibung erwähnt worden sind, nicht notwendigerweise als voneinander unabhängige Ausführungsformen zu verstehen. Vielmehr ist es möglich, dass jede der in einem der Beispiele einer Ausführungsform beschriebenen Eigenschaften mit einer oder einer Vielzahl von anderen gewünschten Eigenschaften aus anderen Ausführungsformen kombiniert werden kann, was zu anderen Ausführungsformen führt, die nicht in Wörtern oder unter Bezugnahme auf die Zeichnungen beschrieben sind.