DE102019220160A1 - Verfahren zur dynamischen kontextbasierten Verteilung von Software in einem Steuerungssystem eines Fahrzeugs sowie ein Steuerungssystem - Google Patents

Verfahren zur dynamischen kontextbasierten Verteilung von Software in einem Steuerungssystem eines Fahrzeugs sowie ein Steuerungssystem Download PDF

Info

Publication number
DE102019220160A1
DE102019220160A1 DE102019220160.1A DE102019220160A DE102019220160A1 DE 102019220160 A1 DE102019220160 A1 DE 102019220160A1 DE 102019220160 A DE102019220160 A DE 102019220160A DE 102019220160 A1 DE102019220160 A1 DE 102019220160A1
Authority
DE
Germany
Prior art keywords
control system
program codes
control
motor vehicle
vehicle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019220160.1A
Other languages
English (en)
Inventor
Tobias Kain
Maximilian Wesche
Hendrik Decke
Julian-Steffen Müller
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Volkswagen AG
Original Assignee
Volkswagen AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Volkswagen AG filed Critical Volkswagen AG
Priority to DE102019220160.1A priority Critical patent/DE102019220160A1/de
Priority to US17/121,575 priority patent/US11472424B2/en
Priority to CN202011508569.0A priority patent/CN113010185A/zh
Publication of DE102019220160A1 publication Critical patent/DE102019220160A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/032Fixing failures by repairing failed parts, e.g. loosening a sticking valve
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/023Avoiding failures by using redundant parts
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/038Limiting the input power, torque or speed
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0002Automatic control, details of type of controller or control system architecture
    • B60W2050/0004In digital systems, e.g. discrete-time systems involving sampling
    • B60W2050/0006Digital architecture hierarchy
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0062Adapting control system settings
    • B60W2050/0075Automatic parameter input, automatic initialising or calibrating means
    • B60W2050/0083Setting, resetting, calibration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Electric Propulsion And Braking For Vehicles (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur dynamischen kontextbasierten Verteilung von Programmcodes (20, 22, 24, 26, 28, 30) in einem Steuerungssystem (10) eines Fahrzeugs (1). Dabei weist das Steuerungssystem (10) eine Mehrzahl von Steuereinrichtungen (12, 14, 16, 18) zur Ausführung der Programmcodes (20, 22, 24, 26, 28, 30) auf. Es ist vorgesehen, dass die Zuordnung der Programmcodes (20, 22, 24, 26, 28, 30) auf die entsprechenden Steuereinrichtungen (12, 14, 16, 18) des Steuerungssystems (10) durch einen globalen Platzierungsgraph (62) erfolgt. Dabei wird der globale Platzierungsgraph (62) auf einer Recheneinheit (64, 66, 68) berechnet, welche sich außerhalb des Steuerungssystems (10) befindet. Die Daten des globalen Platzierungsgraph (62) werden an das Steuerungssystem (10) übermittelt.Die Erfindung betrifft ferner ein zumindest teilautonom fahrendes Kraftfahrzeug (1) mit einem Steuerungssystem (10) zur Durchführung eines solchen Verfahrens.

Description

  • Die Erfindung betrifft ein Verfahren zur dynamischen, kontextbasierten Verteilung von Software in einem Steuerungssystem eines Kraftfahrzeugs, ein Steuerungssystem zur Durchführung eines solchen Verfahrens, ein Kraftfahrzeug mit einem solchen Steuerungs-system sowie ein Computerprogrammprodukt gemäß dem Oberbegriff der unabhängigen Patentansprüche.
  • Heutige Fahrzeuge verfügen bereits über eine Vielzahl von Assistenzsystemen, die den Fahrer in einer Vielzahl von Fahrsituationen computerbasiert unterstützen. Solche Assistenzsysteme können auf Sensoren zum Erfassen einer Vielzahl von Messdaten zurückgreifen, welche die Sinnesfähigkeiten des Menschen bei Weitem übersteigen. Zudem übertrifft die Geschwindigkeit dieser Assistenzsysteme die menschliche Reaktionszeit signifikant. Bekannte Fahrerassistenzsysteme sind beispielsweise Spurhalteassistenten, Bremsassistenten bei Fußgängererkennung und Abstandsregeltempomaten, insbesondere für Stausituationen.
  • Durch die Anwendung solcher Assistenzsysteme geht die Autonomie des Fahrers bezüglich seiner Fahrentscheidungen zunehmend auf das Fahrzeug beziehungsweise in entsprechend operierende Steuereinheiten über. Am Ende dieser Entwicklungen steht ein selbstfahrendes Fahrzeug, welches ohne Eingriffe eines Menschen vollständig manövrieren kann. Mittels eines solchen selbstfahrenden Fahrzeugs ist ein vollautomatisierter Personentransport möglich.
  • Die Steuerung des Fahrbetriebs eines Autos, insbesondere eines selbstfahrenden Autos, erfolgt durch ein Fahrsystem, worunter im Rahmen der vorliegenden Anmeldung im weitesten Sinne eine für diese Aufgabe speziell ausgebildete und eingerichtete Steuereinheit verstanden werden soll. Diese Steuereinheit ist unter Verwendung einer Vielzahl von Eingangssignalen, insbesondere von dem Fahrzeug selbst erfassten Sensordaten sowie empfangenen Kommunikationsdaten, zur automatischen Quer- und Längsführung des Fahrzeugs ausgebildet. Eine solche Steuerung der automatischen Quer- und Längsführung stellt komplexe Berechnungsanforderungen an das Fahrassistenzsystem, welches hierfür in der Regel über Algorithmen, Modelle und Steuerfunktionen verfügt, die zumindest teilweise auf maschinellem Lernen (Künstliche Intelligenz) basieren.
  • Um ein autonomes Auto sicher zu betreiben, sind zahlreiche Softwareanwendungen erforderlich, die miteinander interagieren. Das Problem ist jedoch, dass Fehler, wie zum Beispiel im Bereich der Softwareanwendung oder eines Rechenknotens, dazu führen können, dass einige Anwendungen nicht mehr ausgeführt werden können. Abhängig von der Bedeutung der Anwendung kann dies dramatische Folgen für die Sicherheit der Fahrgäste und anderer Verkehrsteilnehmer haben.
  • Um die dramatischen Folgen von auftretenden Fehlern zu vermeiden, können die Softwareanwendungen redundant auf verschiedenen Rechenknoten ausgeführt werden. Die Idee dabei ist, dass die redundanten Instanzen in einem passiven Modus ausgeführt werden. Dies bedeutet, dass sie dieselben Vorgänge ausführen wie die aktiven Instanzen, jedoch nicht mit den ausführenden Systemen interagieren.
  • In Abhängigkeit von der Funktionsrelevanz der entsprechenden Funktion könnte dies zu unkontrollierten Fahrzuständen, eine Komforteinbuße bis hin zu einer Gefahr für die Fahrgäste des autonom fahrenden Kraftfahrzeugs führen. Dabei ist bekannt, sicherheitsrelevante Systeme redundant auszuführen, um gefährliche Fahrsituationen betriebssicher zu vermeiden.
  • Die Aufgabe, die Zuordnung zwischen Anwendungsinstanzen und Rechenknoten zu bestimmen, ist nicht trivial. Die Entscheidung hängt von vielen verschiedenen Parametern ab. Beispielsweise besitzen Rechenknoten nur eine begrenzte Menge an Rechen- und Speicherressourcen. Andererseits benötigt jede Anwendung eine bestimmte Menge an Ressourcen, um wie geplant zu funktionieren. Um sicherzustellen, dass alle Anwendungen auf den im Fahrzeug installierten Rechenknoten ausgeführt werden können, muss ein mehrdimensionales sowie komplexes Anwendungs-Platzierungs-Problem gelöst werden.
  • Gefährliche Situationen durch Software- oder Hardwarefehler können, wie bereits ausgeführt, durch redundantes Software-Design (teilweise) verhindert werden. Die Einführung redundanter Anwendungsinstanzen erhöht jedoch die Komplexität des Anwendungs-Platzierungs-Problems, da zusätzliche Parameter berücksichtigt werden müssen. Beispielsweise kann für jede Anwendung die minimale Anzahl redundanter Instanzen angegeben werden. Darüber hinaus kann für jede Anwendung der minimale Grad der Hardware-Segregation definiert werden. Dieser Parameter gibt an, auf wie vielen verschiedenen Rechenknoten die Instanzen der Anwendung mindestens ausgeführt werden müssen. Dabei führt die Anzahl der verfügbaren Steuerungseinheiten und die Forderung nach einer minimalen Hardware-Segregation bezüglich der Programme zu einem Verteilungsproblem.
  • Da die Anzahl von Softwareanwendungen, die zum Betreiben eines autonomen Fahrzeugs erforderlich sind, ziemlich hoch ist (ca. einige hundert Anwendungen sind betroffen), existieren im Allgemeinen zahlreiche gültige Zuordnungen zwischen Rechenknoten und Anwendungsinstanz. Es sind jedoch nicht alle gültigen Zuordnungen gleichermaßen „gut“. Um das bestmögliche Mapping auszuwählen, muss ein Optimierungsziel formuliert werden. Das Optimierungsziel kann beispielsweise so formuliert werden, dass Mappings, die das Herunterfahren möglichst vieler Rechenknoten ermöglichen, jenen Mappings vorgezogen werden, die alle Rechenknoten nutzen, mit denen das Fahrzeug ausgestattet ist. Neben diesem Optimierungsziel sind diverse andere Zielfunktionen vorstellbar, die andere Kriterien berücksichtigen.
  • Bei einer Funktionsstörung des Steuerungssystems durch den Ausfall eines Sensors, einer Steuereinheit oder einem Fehler in einem Programmcode kann eine Rekonfiguration der Software auf den unterschiedlichen Steuereinheiten des Steuerungssystems notwendig sein, um die Funktionen des Steuerungssystems wieder betriebssicher ausführen zu können.
  • Aus der US 2016 / 0 142 253 A1 sind ein Cloud-Computer-System sowie ein Verfahren zum Betreiben eines solchen Systems bekannt. Dabei kann das Cloud-Computer-System mit externen Recheneinheiten, beispielsweise einem Arbeitsplatzrechner, einem Smartphone, einem Laptop oder einer Steuereinheit in einem Kraftfahrzeug Daten austauschen.
  • Solche Lösungen sind beispielsweise für Navigationssysteme von Kraftfahrzeugen bekannt, wobei durch eine Vielzahl von externen Datenerfassungsmodulen und einer Auswertung dieser Daten durch ein Cloud-Computer-System eine Echtzeit-Navigation unter Berücksichtigung der aktuellen Verkehrsdichte und aktuellen Verkehrsstörungen möglich ist.
  • Der Erfindung liegt nun die Aufgabe zugrunde, bei einer notwendigen Rekonfiguration der Software auf einem Steuerungssystem zum autonomen Fahrbetrieb eines Kraftfahrzeugs den Rekonfigurationsprozess zu verbessern und somit die benötigte Rechenleistung und den Energieverbrauch in dem Kraftfahrzeug zu minimieren.
  • Erfindungsgemäß wird diese Aufgabe durch ein Verfahren zur dynamischen kontextbasierten Verteilung von Programmcodes in einem Steuerungssystem eines Fahrzeugs gelöst, wobei das Steuerungssystem eine Mehrzahl von Steuereinrichtungen zur Ausführung der Programmcodes aufweist. Es ist vorgesehen, dass die Zuordnung der Programmcodes auf die entsprechenden Steuereinrichtungen des Steuerungssystem durch einen globalen Platzierungsgraph erfolgt, wobei der globale Platzierungsgraph auf einer Recheneinheit berechnet wird, welche sich außerhalb des Steuerungssystems befindet und die Daten des globalen Platzierungsgraph an das Steuerungssystem übermittelt werden. Dadurch kann bei einem Ausfall einer Steuereinheit oder einem Fehler bei der Ausführung eines Programmcodes des Steuerungssystems eine Lösung zur dynamischen Verteilung der aktiven Programmcodes auf die verbleibenden Steuereinrichtungen bereit gestellt werden, sodass eine aufwendige und energieintensive Lösung eines Optimierungsproblems nicht durch das Steuerungssystem des Kraftfahrzeugs ausgeführt werden muss, sondern durch ein Fahrzeug-externes Rechenzentrum bereitgestellt wird. Dadurch kann die Rechenleistung im Kraftfahrzeug begrenzt und somit die Energieeffizienz des Kraftfahrzeugs erhöht werden. Zudem kann bei ähnlichen Problemen bei gleichartigen Kraftfahrzeugen eines Lösung bereitgestellt werden, bevor das Problem tatsächlich in dem entsprechenden Kraftfahrzeug aufgetreten ist, sodass eine schnelle Rekonfiguration des Steuerungssystems möglich ist und somit die Sicherheit des Kraftfahrzeugs erhöht werden kann.
  • Durch die in den abhängigen Ansprüchen aufgeführten Merkmale sind vorteilhafte Verbesserungen und nicht triviale Weiterentwicklungen des im unabhängigen Anspruch angegebenen Verfahrens zur dynamischen kontextbasierten Verteilung von Software in einem Steuerungssystem eines Kraftfahrzeugs möglich.
  • In bevorzugter Ausgestaltung der Erfindung ist vorgesehen, dass bei einem Ausfall einer Steuerungseinrichtung oder einem Fehler bei der Ausführung eines Programmcodes überprüft wird, ob dem Steuerungssystem bereits ein Zuordnungsplan zur Zuordnung der verbleibenden aktiven Programmcodes auf die zur Verfügung stehenden Steuereinheiten vorliegt. Dadurch können aufwendige und energieintensive Neuberechnungen zur optimalen Verteilung der aktiven Programmcodes auf die Steuereinrichtungen entfallen. Somit kann die Rechenleistung des Steuerungssystems vollständig für den autonomen Fahrbetrieb genutzt werden, wodurch eine höhere Zielerreichungsebene und somit eine größere Sicherheitsreserve bereitgestellt wird.
  • In einer bevorzugten Ausführungsform des Verfahrens ist vorgesehen, dass bei einem Ausfall einer Steuerungseinrichtung oder einem Fehler bei der Ausführung eines Programmcodes überprüft wird, ob dem Steuerungssystem bereits ein Zuordnungsplan zur Zuordnung der verbleibenden aktiven Programmcodes auf die zur Verfügung stehenden Steuereinheiten vorliegt. Somit kann bei Vorliegen eines Notfallplans aus dem zentralen Platzierungsgraph eine schnelle Umsetzung der Rekonfiguration des Steuerungssystems erfolgen. Für den Fall, dass aktuell noch kein Notfallplan durch den globalen Platzierungsgraph bereitgestellt wurde, kann lokal eine entsprechende Lösung berechnet werden, welche anschließend durch einen Upload an das Rechenzentrum mit gleichartigen Kraftfahrzeugen geteilt werden kann. Somit kann der zentrale Platzierungsgraph auf Basis der Ausfallereignisse weiter optimiert werden.
  • Besonders bevorzugt ist dabei, wenn bei Vorliegen eines Zuordnungsplans die Programmcodes entsprechend den Steuereinheiten zugeordnet werden. Somit kann sichergestellt werden, dass auch nach Ausfall einer Steuereinheit oder einem Fehler bei der Ausführung eines Programmcodes eine möglichst hohe Zielerreichungsebene für den autonomen Fahrbetrieb erreicht wird.
  • Alternativ ist mit Vorteil vorgesehen, dass im Falle eines fehlenden Zuordnungsplans eine Überprüfung stattfindet, ob eine zum autonomen Fahrbetrieb notwendige minimale Anzahl an redundant ausgeführten Programmcodes vorhanden ist. Somit kann berechnet werden, ob die Gefahr besteht, dass gefährliche Verkehrssituationen durch den Ausfall der Steuereinheit oder einen Fehler bei der Ausführung eines Programmcodes auftreten und schnellstmöglich Maßnahmen eingeleitet werden, um die Folgen des Fehlers oder des Ausfalls zu minimieren.
  • In einer weiteren Verbesserung des Verfahrens ist vorgesehen, dass das Kraftfahrzeug durch ein Fail-Safe-System zum Stillstand gebracht wird und/oder an den nächstliegenden sicheren Haltepunkt gesteuert wird, wenn die minimale Anzahl an redundant ausgeführten Programmcodes unterschritten wird. In der Regel führt ein Abbremsen des Kraftfahrzeugs bis zum Stillstand zu einer Entschärfung der Situation. In bestimmten Fahrsituationen, z.B. in einem unbeleuchteten Tunnel, auf der Autobahn, insbesondere in einer Autobahnbaustelle, kann jedoch ein Stillstand des Kraftfahrzeuges zu einer gefährlichen Verkehrssituation führen. In diesem Fall ist bevorzugt, wenn das Fail-Safe-System das Kraftfahrzeugs zumindest insoweit autonom weiterfahren kann, bis ein sicherer Halteplatz für das Kraftfahrzeug erreicht ist und verkehrsgefährdende Situationen vermieden werden.
  • Ferner ist mit Vorteil vorgesehen, dass das Steuerungssystem in einem Notfallbetrieb betrieben wird und ein Zuordnungsplan erstellt wird, wenn eine hinreichende Anzahl an zur Durchführung eines autonomen Fahrbetriebs notwendigen, redundanten Programmcodes ausgeführt wird.
  • Dabei kann insbesondere die Fahrgeschwindigkeit begrenzt werden und weitere Fahrzeugfunktionen, insbesondere Komfortfunktionen des Kraftfahrzeugs, eingeschränkt werden, um die sicherheitsrelevanten Funktionen zu priorisieren und sicherzustellen.
  • In einer vorteilhaften Ausgestaltung des Verfahrens ist vorgesehen, dass eine Überprüfung des Steuerungssystems erfolgt und freie oder nur geringfügig ausgelastete Steuereinheiten ermittelt werden, und auf Basis der ermittelten freien Steuereinheiten ein Zuordnungsplan erstellt wird.
  • Besonders bevorzugt ist dabei, wenn Programmcodes zur Funktionserfüllung eines autonomen Fahrbetriebs in mindestens zwei Gewichtungslevel unterteilt werden, wobei Programmcodes mit einer niedrigeren Gewichtung gestoppt werden, um zusätzliche Rechnerleistung zur Ausführung von höher gewichteten Programmcodes bereitzustellen. Durch die mehrfache Redundanz der Funktionen des höheren und höchsten Gewichtungslevels kann erreicht werden, dass ein Ausfall einer Steuerungseinrichtung nicht zu verkehrsgefährdenden Betriebszuständen führt, sondern für die Passagiere des Kraftfahrzeuges nicht oder nur als Einschränkung des Fahrkomforts spürbar ist.
  • In einer bevorzugten Ausführungsform der Erfindung ist vorgesehen, dass eine Optimierungsroutine ausgeführt wird, welche die auszuführenden Programmcodes auf den verbleibenden Steuereinheiten optimiert, wobei das Ergebnis der Optimierung an die Recheneinheit übermittelt wird. Dadurch kann in dem Rechenzentrum ein selbstlernendes Netzwerk ausgeführt werden, wodurch eine Optimierung des globalen Platzierungsgraph auf Basis der in den Kraftfahrzeugen gesammelten Daten möglich ist.
  • In einer vorteilhaften Ausgestaltung des Verfahrens ist vorgesehen, dass der globale Platzierungsgraph auf Basis von in unterschiedlichen Steuersystemen von gleichartigen Kraftfahrzeugen ermittelt wird. Da bei gleichartigen Kraftfahrzeugen mit gleichen oder ähnlichen Hardware- und Softwarekonfigurationen ähnliche Fehler- und Ausfallmechanismen zu erwarten sind, ist es vorteilhaft, einen globalen Platzierungsgraph für ein bestimmtes Fahrzeugmodell oder eine entsprechende Modellreihe zu berechnen, um gleichartigen Fahrzeuge schon vor Eintritt eines Fehlers bei der Ausführung eines Programmcodes oder vor Ausfall einer Steuereinheit eine entsprechend optimierte Notfalllösung bereitzustellen.
  • In einer weiteren Verbesserung des Verfahrens ist vorgesehen, dass der globale Platzierungsgraph an ein Kraftfahrzeug übermittelt wird, wenn das Kraftfahrzeug an einer Ladestation steht. Während des Ladevorgangs ist das Steuerungssystem des Kraftfahrzeugs weitestgehend entlastet. Zudem steht eine unbegrenzte Energie zur Verfügung, sodass ein Datentransfer nicht zu Lasten der Reichweite des Kraftfahrzeugs geht. Daher ist es vorteilhaft, die Lösung des globalen Platzierungsgraph bei einem Ladevorgang an das Steuerungssystem des Kraftfahrzeugs zu übermitteln. Zusätzlich kann das Kraftfahrzeug nach einem Ausfall einer Steuereinheit oder einem Fehler bei der Ausführung eines Programmcodes einen lokal berechneten Lösungsgraphen an das Rechenzentrum übermitteln, um die Lösung zu teilen und für weitere Kraftfahrzeuge zur Verfügung zu stellen.
  • Ein weiterer Aspekt der Erfindung betrifft ein Steuerungssystem, umfassend mehrere Steuereinrichtungen, wobei das Steuerungssystem dazu eingerichtet ist, ein solches Verfahren zum Betrieb eines zumindest teilautonom fahrenden Kraftfahrzeugs auszuführen, wenn mehrere maschinenlesbare Programmcodes durch mindestens zwei Steuereinrichtung des Steuerungssystems ausgeführt werden.
  • Ein das erfindungsgemäße Verfahren durchführendes Fahrzeug weist ferner ein zum automatischen Fahrbetrieb des Fahrzeugs eingerichtetes Fahrsystem auf. Das Fahrsystem ist insbesondere zur vollautomatischen Längs- und/oder Querführung des Fahrzeugs eingerichtet. Hierzu greift das Fahrsystem bevorzugt auf eine Vielzahl von durch das Fahrzeug erfassten Sensordaten sowie durch das Fahrzeug empfangener Kommunikationsdaten zu. Das Fahrsystem ist insbesondere zum Ausführen von Fahrassistenzfunktionen bis hin zum vollautomatischen Fahren ausgebildet. Hierzu weist das Fahrsystem Steuerungsalgorithmen auf, die zumindest teilweise auf maschinellem Lernen basieren und beispielsweise Zielfunktionen und/oder neuronale Netze aufweisen. Zum Betrieb des Fahrsystems sind mithin Funktionsdaten notwendig, die beispielsweise Parameter eines neuronalen Netzes oder optimierte Funktionsparameter aufweisen. Diese Funktionsdaten sind im Fahrsystem des Fahrzeugs als Funktionsdatensatz hinterlegt. Zu Beginn des erfindungsgemäßen Verfahrens ist stets ein (relativ) erster Funktionsdatensatz in dem Fahrsystem des Fahrzeugs hinterlegt.
  • Ein das erfindungsgemäße Verfahren durchführendes Fahrzeug weist ferner eine Steuereinheit auf. Diese Steuereinheit ist vorzugsweise dazu ausgebildet mit den anderen Komponenten des Fahrzeugs, insbesondere mit dem ersten Kommunikationsmodul und mit dem Fahrsystem sowie gegebenenfalls mit Sensoren, zu kommunizieren und deren Funktionen zu koordinieren. Die Steuereinheit weist ferner vorzugsweise auf einen Speicher zu oder kontrolliert diesen.
  • In einer besonders bevorzugten Durchführungsform nimmt der Funktionsumfang des Fahrsystems mit steigender Lizenzstufe des Fahrzeugs zu. Mit anderen Worten nimmt der Grad der Automatisierung des Fahrbetriebs mit zunehmender Lizenzstufe des Fahrzeugs zu. Besonders bevorzugt sind die Lizenzstufen des Fahrzeugs mit verschiedenen Stufen des autonomen Fahrens korreliert. Besonders bevorzugt weist ein Fahrzeug im Auslieferungszustand eine Lizenzstufe 0 auf. Ferner bevorzugt entspricht die Lizenzstufe 0 einem Automatisierungsgrad Level 0 („Driver Only“), gemäß dem der Fahrer dauerhaft die Längs- und Querführung ausführt und das Fahrsystem nicht aktiv in den Fahrbetrieb eingreift.
  • In einer bevorzugten Durchführungsform des erfindungsgemäßen Verfahrens entspricht die Lizenzstufe 1 einem Automatisierungsgrad Level 1 („Assistiert“), gemäß dem ein Fahrer dauerhaft die Längs- oder Querführung und das Fahrsystem die jeweils andere Funktion übernimmt. Ferner bevorzugt entspricht die Lizenzstufe 2 einem Automatisierungsgrad Level 2 („Teilautomatisiert“), gemäß dem ein Fahrer das Fahrzeug dauerhaft überwachen muss und das Fahrsystem die Längs- und Querführung im spezifischen Anwendungsfall übernimmt.
  • Ferner bevorzugt entspricht die Lizenzstufe 3 einem Automatisierungsgrad Level 3 („Hochautomatisiert“), gemäß dem ein Fahrer das Fahrzeug nicht dauerhaft überwachen muss, jedoch potentiell in der Lage sein muss, die Kontrolle über das Fahrzeug zu übernehmen. Gemäß Automatisierungsgrad Level 3 übernimmt das Fahrsystem die Längs- und Querführung ebenfalls in einem spezifischen Anwendungsfall, erkennt ferner Grenzen des Fahrsystems selbstständig und fordert den Fahrer mit ausreichender Zeitreserve zur Übernahme der Kontrolle auf. Die Lizenzstufe 4 entspricht bevorzugt einem Automatisierungsgrad Level 4 („Vollautomatisiert“), gemäß dem im spezifischen Anwendungsfall kein Fahrer erforderlich ist und das Fahrsystem im spezifischen Anwendungsfall die Situation völlig autonom bewältigt.
  • Ebenfalls bevorzugt entspricht die Lizenzstufe 5 einem Automatisierungsgrad Level 5 („Fahrerlos“), gemäß dem vom Anfang bis Ende einer Fahrt kein Fahrer erforderlich ist und das Fahrsystem die Fahraufgabe in allen Anwendungsfällen vollumfänglich übernimmt. Die vorstehenden Definitionen entsprechen den „Fünf Level des Autonomen Fahrens“ wie sie vom Verband der Deutschen Automobilindustrie, VDA, definiert sind. Der jeweilige Anwendungsfall beinhaltet Straßentypen, Geschwindigkeitsbereich und Umwelt- beziehungsweise Umweltbedingungen.
  • Ein weiterer Aspekt der Erfindung betrifft ein Fahrzeug, insbesondere einen zum Durchführen der Schritte eines Fahrzeugs im erfindungsgemäßen Verfahren eingerichteten Personenkraftwagen mit Verbrennungs-, Elektro- oder Hybridmotor. Das Fahrzeug weist hierfür zumindest Sensoren zum Erfassen von Umgebungsdaten auf, über welche die Steuerungseinrichtungen des Steuerungssystems mit Daten für den autonomen Fahrbetrieb versorgt werden.
  • Ein weiterer Aspekt der Erfindung betrifft ein Computerprogramm, umfassend einen Programmcode zur Durchführung der Schritte eines solchen Verfahrens zum Betreiben eines zumindest teilautonom fahrenden Kraftfahrzeugs, wenn der Programmcode des Computerprogramms auf einem Computer ausgeführt wird.
  • Die Verfahrensschritte des erfindungsgemäßen Verfahrens können durch elektrische oder elektronische Bauteile oder Komponenten (Hardware), durch Firmware (ASIC) implementiert sein oder durch beim Ausführen eines geeigneten Programms (Software) verwirklicht werden. Ebenfalls bevorzugt wird das erfindungsgemäße Verfahren durch eine Kombination von Hardware, Firmware und/oder Software verwirklicht, beziehungsweise implementiert. Beispielsweise sind einzelne Komponenten zum Durchführen einzelner Verfahrensschritte als separat integrierter Schaltkreis ausgebildet oder auf einem gemeinsamen integrierten Schaltkreis angeordnet. Einzelne zum Durchführen einzelner Verfahrensschritte eingerichtete Komponenten sind ferner bevorzugt auf einem (flexiblen) gedruckten Schaltungsträger (FPCB/PCB), einem Tape Carrier Package (TCP) oder einem anderen Substrat angeordnet.
  • Die einzelnen Verfahrensschritte des erfindungsgemäßen Verfahrens sind ferner bevorzugt als ein oder mehrere Prozesse ausgebildet, die auf einem oder mehreren Prozessoren in einem oder mehreren elektronischen Rechengeräten laufen und beim Ausführen von einem oder mehreren Computerprogrammen erzeugt werden. Die Rechengeräte sind dabei bevorzugt dazu ausgebildet, mit anderen Komponenten, beispielsweise einem Kommunikationsmodul, sowie einem oder mehreren Sensoren beziehungsweise Kameras zusammenzuarbeiten, um die hierin beschriebenen Funktionalitäten zu verwirklichen. Die Anweisungen der Computerprogramme sind dabei bevorzugt in einem Speicher abgelegt, wie beispielsweise einem RAM-Element. Die Computerprogramme können jedoch auch in einem nicht-flüchtigen Speichermedium, wie beispielsweise einer CD-ROM, einem Flash-Speicher oder dergleichen abgelegt sein.
  • Dem Fachmann ist ferner ersichtlich, dass die Funktionalitäten von mehreren Computern (Datenverarbeitungsgeräten) kombiniert oder in einem einzigen Gerät kombiniert sein können oder dass die Funktionalität von einem bestimmten Datenverarbeitungsgerät auf eine Vielzahl von Geräten verteilt vorliegen kann, um die Schritte des erfindungsgemäßen Verfahrens auszuführen, ohne von dem erfindungsgemäßen Verfahren abzuweichen.
  • Die verschiedenen in dieser Anmeldung genannten Ausführungsformen der Erfindung sind, sofern im Einzelfall nicht anders ausgeführt, mit Vorteil miteinander kombinierbar.
  • Die Erfindung wird nachfolgend in Ausführungsbeispielen anhand der zugehörigen Zeichnungen erläutert. Es zeigen:
    • 1 eine schematische Darstellung eines erfindungsgemäßen Systems aus einem erfindungsgemäßen Kraftfahrzeug mit Sensoren und einer Steuerungseinrichtung zur Durchführung eines zumindest teilautonomen Fahrbetriebs des Kraftfahrzeugs.
    • 2 ein erfindungsgemäßes Steuerungssystem mit mehreren Steuerungseinheiten, welche mehrere Programmcodes zur Steuerung eines zumindest teilautonomen Fahrbetriebs ausführen.
    • 3 ein erfindungsgemäßes Steuerungssystem mit mehreren Steuerungseinheiten bei einem Ausfall einer Steuerungseinheit oder dem Absturz eines Programmcodes, wobei die ausgefallene Funktion durch einen redundanten Programmcode auf einer anderen Steuerungseinrichtung übernommen wird.
    • 4 einen globalen Platzierungsgraph zur Ermittlung einer bestmöglichen Zuordnung der ausgeführten Programmcodes auf die zur Verfügung stehenden Steuereinheiten.
    • 5 ein Ablaufdiagramm zur Überwachung des Steuerungssystems sowie einer Rekonfiguration des Steuerungssystems bei einem Ausfall einer Steuereinheit und/oder einem Fehler bei der Ausführung eines Programmcodes.
    • 6 eine Schaubild zur Kommunikation verschiedener Kraftfahrzeuge mit einer zentralen Recheneinheit, wobei die in den Kraftfahrzeugen ausgeführten Rekonfigurationen an die zentrale Recheneinheit übermittelt werden und/oder die zentrale Recheneinheit eine bestmögliche Rekonfiguration an das Kraftfahrzeug übermittelt.
    • 7 ein Schaubild zur Kommunikation zwischen einer zentralen Recheneinheit und einem Kraftfahrzeug, wobei die zentrale Recheneinheit zusätzliche Information mit weiteren Datenquellen austauscht.
  • 1 zeigt eine schematische Darstellung, insbesondere ein Blockdiagramm eines beispielhaften Kraftfahrzeugs 1, insbesondere eines zweispurigen Fahrzeugs mit Verbrennungs-, Elektro- oder Hybridmotor. Das Kraftfahrzeug 1 umfasst eine Vielzahl erster Sensoren, insbesondere einen ersten Sensor 32, einen zweiten Sensor 34, und einen dritten Sensor 36. Die ersten Sensoren 32, 34, 36 sind eingerichtet zum Erfassen von Umgebungsdaten des Kraftfahrzeugs 1 und umfassen beispielsweise eine Kamera zum Erfassen eines Bildes einer das Kraftfahrzeug 1 unmittelbar umgebenden Umwelt, Abstandssensoren, wie beispielsweise Ultraschallsensoren oder LIDAR, zum Erfassen von Abständen zu das Kraftfahrzeug 1 umgebenden Objekten. Die ersten Sensoren 32, 34, 36 übertragen die von ihnen erfassten Umgebungssignale an Steuereinheiten 12, 14, 16, 18 eines Steuerungssystems 10 des Kraftfahrzeugs 10.
  • Das Kraftfahrzeug 1 weist ferner eine Mehrzahl zweiter Sensoren, insbesondere einen vierten Sensor 38, einen fünften Sensor 40, und einen sechsten Sensor 42 auf. Bei den zweiten Sensoren 38, 40 ,42 handelt es sich um Sensoren zum Ermitteln von das Kraftfahrzeug 1 selbst betreffenden Zustandsdaten, wie beispielsweise aktuelle Lage- und Bewegungsinformationen des Kraftfahrzeugs 1. Bei den zweiten Sensoren handelt es sich folglich beispielsweise um Geschwindigkeitssensoren, Beschleunigungssensoren, Neigungssensoren, Sensoren zum Messen einer Eintauchtiefe eines Stoßdämpfers, Raddrehzahlsensoren oder dergleichen. Die zweiten Sensoren 38, 40, 42 übermitteln die von ihnen erfassten Zustandssignale an die Steuereinheiten des Kraftfahrzeugs 1. Insbesondere übermitteln die zweiten Sensoren 38, 40, 42 ihre Messergebnisse unmittelbar an eine Steuereinheit 12, 14, 16, 18 des Steuerungssystems 10 des Kraftfahrzeugs 1.
  • Das Kraftfahrzeug 1 weist ferner das Steuerungssystem 10 auf, das zum vollständig automatischen Fahrbetrieb, insbesondere zur autonomen Längs- und Querführung, des Kraftfahrzeugs 1 eingerichtet ist. Das Steuerungssystem 10 weist ein Navigationsmodul 64 auf, das zum Berechnen von Routen zwischen einem Start- und einem Zielpunkt und zum Ermitteln der entlang dieser Route vom Kraftfahrzeug 1 durchzuführenden Manöver eingerichtet ist. Das Navigationsmodul 44 ist ferner bevorzugt zum Durchführen spezifischer Manöver des Kraftfahrzeugs 1 ausgebildet, wie beispielsweise Einpark- und Ausparkmanöver. Darüber hinaus umfasst das Steuerungssystem 10 einen internen Speicher 66, der mit dem Navigationsmodul 44 kommuniziert, beispielsweise über einen geeigneten Datenbus. Auf dem internen Speicher 46 sind insbesondere ein Modell, ein neuronales Netz und/oder eine Zielfunktion gespeichert, die zumindest teilweise auf maschinellem Lernen basieren. Ferner sind in dem internen Speicher 46 Funktionsdaten für das Modell, das neuronale Netz und/oder die Zielfunktion als Funktionsdatensatz gespeichert. Die Funktionalität des Steuerungssystems 10 wird bevorzugt von einer Steuereinheit kontrolliert und besonders in Abhängigkeit einer Lizenzstufe des Kraftfahrzeugs 1 freigeschaltet.
  • Das Steuerungssystem 10 ist zur Durchführung der Schritte des Kraftfahrzeugs 1 im erfindungsgemäßen Verfahren eingerichtet. Dabei führt das Steuerungssystem 10 die Schritte des Verfahrens mittels der Steuerungseinheiten 12, 14, 16, 18 durch oder steuert die anderen Komponenten des Kraftfahrzeugs 1 entsprechend an. Hierzu verfügen die Steuereinheiten 12, 14, 16, 18 jeweils über einen internen Speicher 46 und eine CPU 48, welche miteinander kommunizieren, beispielsweise über einen geeigneten Datenbus. Darüber hinaus stehen die Steuereinheiten 12, 14, 16, 18 des Steuerungssystems 10 in Kommunikationsverbindung mit zumindest den ersten Sensoren 32, 34, 36 und den zweiten Sensoren 38, 40, 42, sowie ggf. weiteren Steuereinrichtungen des Kraftfahrzeuges 1, beispielweise zur Steuerung der Heizung oder Klimatisierung des Kraftfahrzeuges, eines Radios, Navigationssystems oder sonstiger Informations- oder Unterhaltungssysteme. Die Kommunikation erfolgt beispielsweise über eine oder mehrere jeweilige CAN-Verbindungen, eine oder mehrere jeweilige SPI-Verbindungen, oder andere geeignete Datenverbindungen. An dem Kraftfahrzeug 1 ist eine Kommunikationsschnittstelle zum Senden und Empfangen von Daten mit einem externen Rechenzentrum 64 ausgebildet.
  • 2 zeigt eine schematische Konfiguration eines Steuerungssystems 10 zur Steuerung eines zumindest teilautonomen, vorzugsweise vollautonomen Kraftfahrzeugs 1. Das Steuerungssystem 10 umfasst vier Steuereinheiten 12, 14, 16, 18, von denen jeweils mindestens ein Programmcode 20, 22, 24, 26, 28, 30 zur Durchführung eines teilautonomen oder vollautonomen Fahrbetriebs des Kraftfahrzeugs 1 ausgeführt wird. Dabei ist jeder Programmcode 20, 22, 24, 26, 28, 30 redundant auf zwei unterschiedlichen Steuerungseinheiten 12, 14, 16, 18 appliziert. Dabei wird jeweils ein Programmcode 20a, 22a, 24a, 26a, 28a, 30a aktiv durch eine Steuerungseinheit 12, 14, 16, 18 ausgeführt und zur Steuerung des Kraftfahrzeuges 1 ausgewertet, während das jeweils redundante Programm 20p, 22p, 24p, 26p, 28p, 30p passiv verbleibt und erst dann in die Steuerung des Kraftfahrzeugs 1 integriert wird, wenn das ehemals aktive Programm 20a, 22a, 24a, 26a, 28a, 30a aufgrund eines Fehlers oder eines Ausfalls der jeweiligen Steuerungseinheit 12, 14, 16, 18 nicht mehr zur Steuerung des Kraftfahrzeugs 1 ausgewertet werden kann.
  • Während des Betriebs eines Kraftfahrzeugs 1 kann sich die Platzierung der Programmcodes 20, 22, 24, 26, 28, 30 mehrmals ändern. Beispielsweise kann es nach Ereignissen wie dem Fehler einer Steuerungseinheit 12, 14, 16, 18 oder dem Fehler einer Anwendungsinstanz erforderlich sein, zu einer neuen Anwendungsplatzierung zu wechseln. Neben diesen Ereignissen kann auch das Erkennen einer möglichen Optimierungsmöglichkeit das Umschalten auf eine neue Steuerungseinheit 12, 14, 16, 18 auslösen. In 3 ist ein solcher Fall am Beispiel eines Ausfalls der zweiten Steuerungseinheit 14 dargestellt. Der dritte Programmcode 24a wurde im Ausgangszustand durch die zweite Steuerungseinheit 14 ausgeführt. Nach einem Ausfall dieser zweiten Steuerungseinheit 14 oder einem Programmabsturz des bislang aktiv auf dem zweiten Steuergerät 14 ausgeführten dritten Programmcodes 24a wird der dritte Programmcode 24p auf der dritten Steuerungseinheit 16 aktiviert und für die weitere Steuerung des Kraftfahrzeugs 1 ausgewertet. Dadurch können dramatische Fahrsituationen durch eine fehlende Steuerung des Kraftfahrzeugs 1 vermieden werden.
  • Um eine Optimierung der aktiven Programmcodes 20a, 22a, 24a, 26a, 28a, 30a zu ermöglichen, ist es notwendig, die aktuelle Fahrsituation und die aktuelle Leistungsfähigkeit des Steuerungssystems 10 zu kennen. Dabei wird systembedingt auf die Leistungsfähigkeit aller Softwareanwendungen 20, 22, 24, 26, 28, 30, aller Steuerungseinrichtungen 12, 14, 16, 18 und anderer Hardware, insbesondere den Sensoren 52, 54, 56, 58, 60, 62 Bezug genommen.
  • Die folgenden Beispiele veranschaulichen diese Abhängigkeit:
    • Nehmen Sie an, dass das Kraftfahrzeug 1 ein elektrisch angetriebenes Automobil ist, welches einen Passagier zu einer wichtigen Besprechung fährt und der Akku des Kraftfahrzeugs 1 fast leer ist. In einer solchen Situation ist das Ziel der pünktlichen Ankunft am gewünschten Zielort wichtiger als die Unterhaltung des Passagiers. Um die Reichweite des Kraftfahrzeugs 1 zu vergrößern, können daher alle Anwendungen gestoppt werden, die dem Zweck der Unterhaltung dienen. Infolgedessen können einige Steuerungseinrichtungen 12, 14, 16, 18 heruntergefahren werden, was Energie spart.
  • Stellen Sie sich ein Kraftfahrzeug 1 vor, das im Stau steckt. Da sich das Kraftfahrzeug 1 kaum bewegt, können redundante Instanzen von Fahrfunktionen gestoppt werden. Daher werden Ressourcen freigegeben, mit denen beispielsweise eine Anwendung ausgeführt werden kann, die zur Verbesserung des Verkehrsflusses beiträgt.
  • Aufgrund eines Systemabsturzes funktionierte die Hälfte der im Kraftfahrzeug installierten Steuereinrichtungen 12, 14, 16, 18 nicht mehr. Da die verbleibenden Steuereinrichtungen 12, 14, 16, 18 nicht genügend Ressourcen bereitstellen, um alle Programmcodes 20, 22, 24, 26, 28, 30 der Anwendungen auszuführen, die vor dem Absturz ausgeführt wurden, muss ein neuer Anwendungsplatzierungsplan berechnet werden. Ziel der Platzierungsoptimierung ist es, alle Anwendungen abzubilden, die notwendig sind, um das Kraftfahrzeug 1 sicher zum Stehen zu bringen, um die Sicherheit der Fahrgäste und anderer Verkehrsteilnehmer zu gewährleisten.
  • In 4 ist ein globaler Platzierungsgraph 62 dargestellt, welcher man auch als Zuordnungsgraph 62 bezeichnen könnte. In der vorliegenden Erfindung findet eine dynamische kontextabhängige Optimierung durch Abstraktion des lokalen Berechnungsproblems der Zuordnung der Programmcodes 20, 22, 24, 26, 28, 30 zu den jeweiligen Steuereinheiten 12, 14, 16, 18 in den Steuersystemen 10 der Kraftfahrzeuge 1, 80, 82, 84 zu einem globalen Berechnungsproblem statt. Dieses Berechnungsproblem wird durch ein Rechenzentrum 64, insbesondere durch ein Cloud-Computer-System 66, gelöst. Resultierend daraus können verschiedenste Teilnehmer helfen, den globalen Platzierungsgraph 62 mitzuberechnen und die rechen- und kostenintensive Aufgabe zum Teil aus den Steuerungssystemen 10 des Kraftfahrzeugs auf ein Rechenzentrum 64 zu verlagern. Dies hat den Vorteil, dass Kraftfahrzeuge 1, 80, 82, 84 schneller auf Fehler reagieren können und nach der Lösung des auftretenden Problems schnell wieder konform zu einem gewünschten ASIL Level arbeiten.
  • Die dynamische kontextabhängige Platzierung von Software in einem Kraftfahrzeug bietet zudem den Vorteil, dass eine Optimierung des Energieverbrauchs denkbar wird, wodurch die Reichweite eines elektrisch angetriebenen Kraftfahrzeugs 1 erhöht werden kann.
  • In 5 ist ein Ablaufdiagramm zur Überwachung des Steuerungssystems sowie einer Rekonfiguration des Steuerungssystems bei einem Ausfall einer Steuereinheit und/oder einem Fehler bei der Ausführung eines Programmcodes dargestellt. In einem ersten Verfahrensschritt I erfolgt durch ein Überwachungselement 52 eine Überwachung der Ausführung der Programmcodes 20, 22, 24, 26, 28, 30 auf den Steuereinheiten 12, 14, 16, 18 des Steuerungssystems 10. Wird dabei ein Fehler erkannt, so wird in einem zweiten Verfahrensschritt II geprüft, ob ein vorberechneter Notfallplan vorliegt oder ob ein solcher Plan erst erstellt werden muss. Für den Fall, dass aktuell kein Notfallplan vorliegt, welcher eine vorberechnete dynamische Zuordnung der ausgeführten Programmcodes 20, 22, 24, 26, 28, 30 auf die Steuereinheiten 12, 14, 16, 18 bereitstellt, wird in einem dritten Verfahrensschritt III geprüft, ob hinreichend viele redundante Programmausführungen möglich sind, um einen betriebssicheren, autonomen Fahrbetrieb zu gewährleisten. Ist diese Voraussetzung erfüllt, werden in einem vierten Verfahrensschritt IV die entsprechenden redundant ausgeführten Programmcodes ausgewählt und durch ein Umschaltelement 54 auf einer anderen Steuereinheit 12, 14, 16, 18 ausgeführt. Dabei wird in einem Verfahrensschritt V diese neue Konfiguration als neuer aktiver Programmcode 20, 22, 24, 26, 28, 30 ausgewählt.
  • Steht nach einem Ausfall einer Steuereinheit 12, 14, 16, 18 nicht mehr hinreichend viel Rechenleistung zur Verfügung, um einen betriebssicheren, autonomen Fahrbetrieb des Kraftfahrzeugs 1 zu gewährleisten, so wird in einem Verfahrensschritt VI ein Notbetriebsmodul 56 aktiviert, welches die Systemsteuerung des Steuersystems 10 übernimmt. Dabei wird das Kraftfahrzeug 1 in einem Verfahrensschritt VII sicher zum Halt gebracht.
  • Stehen hinreichende Redundanzen zur Verfügung, so wird ein Wiederherstellungsmodul 58 aktiviert, welches eine Wiederherstellung einer Softwarekonfiguration auf einem höchstmöglichen Zielerreichungslevel anstrebt. Dazu wird in einem Verfahrensschritt VIII nach Steuereinheiten 12, 14, 16, 18 gesucht, welche hinreichende Ressourcen aufweisen, um zusätzlich einen redundanten Programmcode 20, 22, 24, 26, 28, 30 auszuführen. Wird eine solche Steuereinheit gefunden, so wird in einem Verfahrensschritt IX ein neuer redundanter Programmcode 20, 22, 24, 26, 28, 30 auf einer Steuereinheit 12, 14, 16, 18 ausgeführt. Liegen aktuell keine hinreichenden freien Ressourcen auf den Steuereinheiten 12, 14, 16, 18 vor, so werden Programmcodes mit geringer Priorität in einem Verfahrensschritt X gestoppt, um für die sicherheitsrelevanten Programmcodes zusätzliche Rechenleistung zur Verfügung zu stellen.
  • Liegt nach der Überprüfung in Verfahrensschritt II ein vorberechneter Notfallplan vor, so wird dieser Notfallplan durch einen Platzierungsoptimierer 60 in einem Verfahrensschritt XI umgesetzt und die Umsetzung über die Kommunikationsschnittstelle 50 an das Rechenzentrum 64 zurückgemeldet. Liegt kein Notfallplan vor, so werden durch einen Platzierungsoptimierer 60 in einem Verfahrensschritt XII Ziele für die Umsetzung eines Notfallplans definiert, in einem Verfahrensschritt XIII daraus ein Optimierungsplan berechnet und dieser in einem Verfahrensschritt XIV umgesetzt.
  • In 6 ist der Datenaustausch zwischen dem im Rechenzentrum 64 berechneten globalen Platzierungsgraph 62 und verschiedenen Kraftfahrzeugen 1, 80, 82, 84 dargestellt. Dabei wird im ersten Kraftfahrzeug 1 ein Lösungsgraph berechnet. Das zweite Kraftfahrzeug 80 lädt den globalen Platzierungsgraph 62 herunter und übermittelt diesen globalen Platzierungsgraph an das Steuerungssystem 10 im zweiten Kraftfahrzeug 80. In dem dritten Kraftfahrzeug wird ein weiterer Lösungsgraph berechnet und an das Rechenzentrum 64 übermittelt. Ein solcher Lösungsgraph für ein Teilproblem wird durch das vierte Kraftfahrzeug 84 an das Rechenzentrum 64 hochgeladen.
  • In 7 ist die Kommunikation zwischen dem Rechenzentrum 64 mit dem zentralen Platzierungsgraph 62, einem Kraftfahrzeug 1 sowie weiteren Datenquellen 66, 70, 76 dargestellt. Dabei können als weitere Datenquellen insbesondere durch ein Mobiltelefon 70, besonders bevorzugt durch ein Smartphone, ein Cloud-Computer-System 66 oder einen Server 68 bereitgestellte Informationen berücksichtigt werden. Ferner kann der globale Platzierungsgraph 62 durch Road-Site-Units 76 weiter verbessert werden. Die Übermittlung einer Lösung des zentralen Platzierungsgraph an das Steuerungssystem 10 des Kraftfahrzeugs erfolgt vorzugsweise bei einem Ladevorgang eines elektrisch angetriebenen Kraftfahrzeugs 1 an einer Ladestation 74. Dieser Vorgang kann durch eine Steuereinheit 72 der Ladestation 74 oder durch das Steuerungssystem 10 des Kraftfahrzeugs 1 ausgelöst werden. Dabei steht bei einem Ladevorgang sowohl hinreichend viel Energie als auch Rechenleistung zur Verfügung, sodass ein Optimierungsgraph an das Steuerungssystem 10 des Kraftfahrzeugs 1 übermittelt und dort umgesetzt werden kann.
  • Bezugszeichenliste
  • 1
    Kraftfahrzeug
    10
    Steuerungssystem
    12
    erste Steuereinheit
    14
    zweite Steuereinheit
    16
    dritte Steuereinheit
    18
    vierte Steuereinheit
    20
    erster Programmcode
    22
    zweiter Programmcode
    24
    dritter Programmcode
    26
    vierter Programmcode
    28
    fünfter Programmcode
    30
    sechster Programmcode
    32
    erster Sensor
    34
    zweiter Sensor
    36
    dritter Sensor
    38
    vierter Sensor
    40
    fünfter Sensor
    42
    sechster Sensor
    44
    Navigationsmodul
    46
    interner Speicher
    48
    CPU
    50
    Kommunikationsschnittstelle
    52
    Überwachungselement
    54
    Umschaltelement
    56
    Notbetriebsmodul
    58
    Wiederherstellungsmodul
    60
    Platzierungsoptimierer
    62
    globaler Platzierungsgraph
    64
    Rechenzentrum
    66
    Cloud-Computer-System
    68
    Server
    70
    Mobiltelefon
    72
    fünfte Steuereinheit
    74
    Ladestation
    76
    Road Site Unit
    78
    Sende-Empfangs-Einheit
    80
    zweites Kraftfahrzeug
    82
    drittes Kraftfahrzeug
    84
    viertes Kraftfahrzeug
    100
    Computerprogramm

Claims (15)

  1. Verfahren zur dynamischen kontextbasierten Verteilung von Programmcodes (20, 22, 24, 26, 28, 30) in einem Steuerungssystem (10) eines Fahrzeugs (1), wobei das Steuerungssystem (10) eine Mehrzahl von Steuereinrichtungen (12, 14, 16, 18) aufweist, dadurch gekennzeichnet, dass die Zuordnung der Programmcodes (20, 22, 24, 26, 28, 30) auf die entsprechenden Steuereinrichtungen (12, 14, 16, 18) des Steuerungssystems (10) durch einen globalen Platzierungsgraph (62) erfolgt, wobei der globale Platzierungsgraph (62) auf einer Recheneinheit (64, 66, 68) berechnet wird, welche sich außerhalb des Steuerungssystems (10) befindet und die Daten des globalen Platzierungsgraph (62) an das Steuerungssystem (10) übermittelt werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass ein Überwachungselement (52) vorgesehen ist, welches den Ablauf des Programmcodes (20, 22, 24, 26, 28, 30) und/oder die Funktion der Steuereinrichtungen (12, 14, 16, 18) überwacht, wobei bei einem Ausfall einer Steuerungseinrichtung (12, 14, 16, 18) oder einem Fehler eines Programmcodes (20, 22, 24, 26, 28, 30) eine Neuverteilung der Programmcodes (20, 22, 24, 26, 28, 30) auf die Steuereinheiten (12, 14, 16, 18) auf Basis des globalen Platzierungsgraph (62) erfolgt.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass bei einem Ausfall einer Steuerungseinrichtung (12, 14, 16, 18) oder einem Fehler bei der Ausführung eines Programmcodes (20, 22, 24, 26, 28, 30) überprüft wird, ob dem Steuerungssystem (10) bereits ein Zuordnungsplan zur Zuordnung der verbleibenden aktiven Programmcodes (20, 22, 24, 26, 28, 30) auf die zur Verfügung stehenden Steuereinheiten (12, 14, 16, 18) vorliegt.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass bei Vorliegen eines Zuordnungsplans die Programmcodes (20, 22, 24, 26, 28, 30) entsprechend den Steuereinheiten (12, 14, 16, 18) zugeordnet werden.
  5. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass im Falle eines fehlenden Zuordnungsplans eine Überprüfung stattfindet, ob eine zum autonomen Fahrbetrieb notwendige minimale Anzahl an redundant ausgeführten Programmcodes (20, 22, 24, 26, 28, 30) vorhanden ist.
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass das Kraftfahrzeug (1) durch ein Fail-Safe-System zum Stillstand gebracht wird und/oder an den nächstliegenden sicheren Haltepunkt gesteuert wird, wenn die minimale Anzahl an redundant ausgeführten Programmcodes (20, 22, 24, 26, 28, 30) unterschritten wird.
  7. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass das Steuerungssystem (10) in einem Notfallbetrieb betrieben wird und ein Zuordnungsplan erstellt wird, wenn eine hinreichende Anzahl an zur Durchführung eines autonomen Fahrbetriebs notwendigen, redundanten Programmcodes (20, 22, 24, 26, 28, 30) ausgeführt wird.
  8. Verfahren nach einem der vorherstehenden Ansprüche, dadurch gekennzeichnet, dass eine Überprüfung des Steuerungssystems (10) erfolgt und freie oder nur geringfügig ausgelastete Steuereinheiten (12, 14, 16, 18) ermittelt werden, und auf Basis der ermittelten freien Steuereinheiten (12, 14, 16, 18) ein Zuordnungsplan erstellt wird.
  9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass Programmcodes (20, 22, 24, 26, 28, 30) zur Funktionserfüllung eines autonomen Fahrbetriebs in mindestens zwei Gewichtungslevel unterteilt werden, wobei Programmcodes mit einer niedrigeren Gewichtung gestoppt werden, um zusätzliche Rechnerleistung zur Ausführung von höher gewichteten Programmcodes bereitzustellen.
  10. Verfahren nach einem der vorherstehenden Ansprüche, dadurch gekennzeichnet, dass eine Optimierungsroutine ausgeführt wird, welche die auszuführenden Programmcodes (20, 22, 24, 26, 28, 30) auf den verbleibenden Steuereinheiten (12, 14, 16, 18) optimiert, wobei das Ergebnis der Optimierung an die Recheneinheit (64, 66, 68) übermittelt wird.
  11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass der globale Platzierungsgraph (62) auf Basis von in unterschiedlichen Steuersysteme von gleichartigen Kraftfahrzeugen (1, 80, 82, 84, Informationen eines Servers (68), Informationen eines Mobiltelefons (70), Informationen von Road-Site-Units (76) und/oder weiteren Verkehrsinformationssystemen ermittelt wird.
  12. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass der globale Platzierungsgraph (62) an ein Kraftfahrzeug (1, 80, 82, 84) übermittelt wird, wenn das Kraftfahrzeug (1, 80, 82, 84) an einer Ladestation (74) steht.
  13. Steuerungssystem (10), umfassend mehrere Steuereinrichtungen (12, 14, 16, 18), wobei das Steuerungssystem (10) dazu eingerichtet ist, ein Verfahren nach einem der Ansprüche 1 bis 12 durchzuführen, wenn mehrere maschinenlesbare Programmcodes (20, 22, 24, 26, 28, 30) durch mindestens zwei Steuereinrichtungen (12, 14, 16, 18) des Steuerungssystems (10) ausgeführt werden.
  14. Kraftfahrzeug (1), aufweisend ein zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 12 eingerichtetes Steuerungssystem (10).
  15. Computerprogramm (100) mit einem Programmcode zur Durchführung der Schritte eines Verfahrens nach einem der Ansprüche 1 bis 12, wenn der Programmcode auf einem Computer ausgeführt wird.
DE102019220160.1A 2019-12-19 2019-12-19 Verfahren zur dynamischen kontextbasierten Verteilung von Software in einem Steuerungssystem eines Fahrzeugs sowie ein Steuerungssystem Pending DE102019220160A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102019220160.1A DE102019220160A1 (de) 2019-12-19 2019-12-19 Verfahren zur dynamischen kontextbasierten Verteilung von Software in einem Steuerungssystem eines Fahrzeugs sowie ein Steuerungssystem
US17/121,575 US11472424B2 (en) 2019-12-19 2020-12-14 Method for dynamic context-based distribution of software in a vehicle control system, and a control system
CN202011508569.0A CN113010185A (zh) 2019-12-19 2020-12-18 使软件动态地分布在车辆的控制系统中的方法及控制系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019220160.1A DE102019220160A1 (de) 2019-12-19 2019-12-19 Verfahren zur dynamischen kontextbasierten Verteilung von Software in einem Steuerungssystem eines Fahrzeugs sowie ein Steuerungssystem

Publications (1)

Publication Number Publication Date
DE102019220160A1 true DE102019220160A1 (de) 2021-06-24

Family

ID=76206621

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019220160.1A Pending DE102019220160A1 (de) 2019-12-19 2019-12-19 Verfahren zur dynamischen kontextbasierten Verteilung von Software in einem Steuerungssystem eines Fahrzeugs sowie ein Steuerungssystem

Country Status (3)

Country Link
US (1) US11472424B2 (de)
CN (1) CN113010185A (de)
DE (1) DE102019220160A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021206943A1 (de) * 2021-07-01 2023-01-05 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zum Rekonfigurieren einer Systemarchitektur eines automatisiert fahrenden Fahrzeugs
WO2023028277A1 (en) * 2021-08-25 2023-03-02 Cyngn, Inc. System and method of off-board-centric autonomous driving computation

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9800465B2 (en) 2014-11-14 2017-10-24 International Business Machines Corporation Application placement through multiple allocation domain agents and flexible cloud scheduler framework
US11214273B2 (en) * 2017-06-23 2022-01-04 Nvidia Corporation Method of using a single controller (ECU) for a fault-tolerant/fail-operational self-driving system
US20210125036A1 (en) * 2019-10-29 2021-04-29 Nvidia Corporation Determining object orientation from an image with machine learning

Also Published As

Publication number Publication date
US20210188294A1 (en) 2021-06-24
US11472424B2 (en) 2022-10-18
CN113010185A (zh) 2021-06-22

Similar Documents

Publication Publication Date Title
DE10226143B4 (de) Verfahren zum Steuern eines Hybridantriebs bei einem Kraftfahrzeug
EP3584140B1 (de) Verfahren und vorrichtung für die steuerung eines sicherheitsrelevanten vorganges, sowie fahrzeug
DE102011117116B4 (de) Steuereinrichtung zum wenigstens teilweise autonomen Betrieb eines Fahrzeugs und Fahrzeug mit solch einer Steuereinrichtung
WO2019228776A1 (de) Verfahren zur regelung der bewegung eines fahrzeugs und vorrichtung zur durchführung des verfahrens
DE102015001971A1 (de) Verfahren und Überwachungsvorrichtung zur Überwachung von Fahrerassistenzsystemen
DE102018129095A1 (de) Fahrzeugwartungsvorgang
DE102019218718B4 (de) Steuerungssystem zur Steuerung eines Betriebs eines selbstfahrenden Fahrzeugs sowie Kraftfahrzeug
DE102013213171A1 (de) Verfahren und Vorrichtung zum Betreiben eines Kraftfahrzeugs in einem automatisierten Fahrbetrieb
EP4096980A1 (de) Asymmetrische ausfallsichere systemarchitektur
DE102017200168A1 (de) Verfahren und System zum Bereitstellen einer zumindest teilweise automatischen Führung eines Folgefahrzeugs
DE102017102954A1 (de) System und verfahren zur minderung von fahrzeugsubsystemversagen
WO2020212061A1 (de) Verfahren zur prädiktion einer verkehrssituation für ein fahrzeug
DE102017100210A1 (de) Anhaltedistanzsystem
DE102017208462A1 (de) Verfahren und Vorrichtung zum Ermitteln von Betriebsdaten für ein automatisiertes Fahrzeug
DE102019220160A1 (de) Verfahren zur dynamischen kontextbasierten Verteilung von Software in einem Steuerungssystem eines Fahrzeugs sowie ein Steuerungssystem
EP3377382A1 (de) Verfahren und vorrichtung zum assistierten, teilautomatisierten, hochautomatisierten, vollautomatisierten oder fahrerlosen fahren eines kraftfahrzeuges
DE102017213496B4 (de) Verfahren und Steuervorrichtung zum fehlertoleranten Betrieb eines Kraftfahrzeugs
DE102021005088A1 (de) Verfahren zur Regelung oder Steuerung einer Längsbewegung eines Fahrzeuges
DE102019220162A1 (de) Verfahren zur dynamischen kontextbasierten Verteilung von Software in einem Steuerungssystem eines Fahrzeugs sowie ein Steuerungssystem
DE102019219464B3 (de) Verfahren zum Betrieb eines selbstfahrenden Fahrzeugs sowie Steuerungssystem zum Durchführen eines solchen Verfahrens
DE102019219800A1 (de) Steuerungssystem für ein wenigstens teilweise automatisiertes Kraftfahrzeug und Verfahren zum Steuern eines wenigstens teilautomatisierten Kraftfahrzeugs
DE102022208199A1 (de) Sicherheitssteuerung für automatisiertes Fahren
WO2022090040A1 (de) Verfahren und vorrichtung zum steuern eines fahrzeugs entlang einer fahrttrajektorie
DE102020215649A1 (de) Infrastrukturgestützte Trajektorienermittlung für autonome Fahrzeuge
DE102021204239A1 (de) Verfahren zum Betrieb eines Assistenzsystems sowie Assistenzsystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0011140000

Ipc: G06F0008600000