DE102019214160A1 - Verfahren und Vorrichtung zum Automatisieren einer Fahrfunktion - Google Patents

Verfahren und Vorrichtung zum Automatisieren einer Fahrfunktion Download PDF

Info

Publication number
DE102019214160A1
DE102019214160A1 DE102019214160.9A DE102019214160A DE102019214160A1 DE 102019214160 A1 DE102019214160 A1 DE 102019214160A1 DE 102019214160 A DE102019214160 A DE 102019214160A DE 102019214160 A1 DE102019214160 A1 DE 102019214160A1
Authority
DE
Germany
Prior art keywords
graph
processes
driving function
way
following features
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
DE102019214160.9A
Other languages
English (en)
Inventor
Rainer Baumgaertner
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102019214160.9A priority Critical patent/DE102019214160A1/de
Publication of DE102019214160A1 publication Critical patent/DE102019214160A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Verfahren (10) zum Automatisieren einer durch mehrere Prozesse (40) erfüllten Fahrfunktion (41),gekennzeichnet durch folgende Merkmale:- ein gerichteter azyklischer Graph (20) auf einer Menge der Prozesse (40) wird dergestalt definiert (11), dass, wenn eine Kante des Graphen (20) von einem ersten Prozess (40) auf einen zweiten Prozess (40) aus der Menge gerichtet ist, eine funktionale Abhängigkeit des zweiten Prozesses (40) vom ersten Prozess (40) besteht und- die Prozesse (40) werden anhand des Graphen (20) solchermaßen aktiviert (12), dass der zweite Prozess (40) gestartet wird, nachdem der erste Prozess (40) abgeschlossen ist.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Automatisieren einer durch mehrere Prozesse erfüllten Fahrfunktion. Die vorliegende Erfindung betrifft darüber hinaus eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes maschinenlesbares Speichermedium.
  • Stand der Technik
  • Der Begriff des hochautomatisierten Fahrens (highly automated driving, HAD) bezeichnet gemeinhin eine Entwicklungsstufe zwischen dem assistierten Fahren, bei welchem der Fahrer durch zahlreiche (oft getrennte) Fahrerassistenzsysteme bei der Fahraufgabe unterstützt wird, und dem autonomen Fahren, bei welchem das Fahrzeug gänzlich selbsttätig und ohne Einwirkung des Fahrers fährt. Beim hochautomatisierten Fahren verfügt das Fahrzeug gewissermaßen über eine eigene Intelligenz, die vorausplant und die Fahraufgabe zumindest in den meisten Situationen übernehmen könnte. Fahrer und Steuergeräte (electronic control units, ECUs) führen zusammen das Fahrzeug, wobei der menschliche Fahrer jederzeit bestimmt, wie stark er in das Fahrverhalten des Fahrzeuges eingreift.
  • WO2018146000A1 offenbart ein Steuergerät für ein Kraftfahrzeug, das eingerichtet ist, mehrere Anwendungen und Zwischenanwendungen (middleware) zu betreiben und einen durch die Anwendungen und Zwischenanwendungen gemeinsam nutzbaren Speicher (shared memory) umfasst. Die Zwischenanwendungen sind eingerichtet, eine Interprozesskommunikation zwischen den Anwendungen über den Speicher abzuwickeln.
  • DE102018207172A1 beschreibt ein Verfahren zum Simulieren eines cyberphysischen Systems (CPS) in einer realen Betriebssituation, bei dem Messdaten und interne Zustände von Softwarekomponenten des Systems in der Betriebssituation abgespeichert und ein Simulator mit den Messdaten und Zuständen parametriert wird.
  • Offenbarung der Erfindung
  • Die Erfindung stellt ein Verfahren zum Automatisieren einer durch mehrere Prozesse erfüllten Fahrfunktion, eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes maschinenlesbares Speichermedium gemäß den unabhängigen Ansprüchen bereit.
  • Der erfindungsgemäße Ansatz fußt hierbei auf der Erkenntnis, dass zahlreiche Fahrerassistenzsysteme für hochautomatisiertes Fahren aktuell in der Entstehungsphase sind. Es ist damit zu rechnen, dass die Komplexität entsprechender Software jene herkömmlicher fahrzeugtechnischer (automotive) Anwendungen um Größenordnungen übersteigt.
  • Der vorgeschlagenen Lösung liegt ferner die Einsicht zugrunde, dass Systeme für hochautomatisiertes Fahren technisch aufwändig sind. Dies gilt ebenso für zukünftige Robotik-Systeme. Sie benötigen eine hohe Rechenleistung und einen großen Speicher und haben deutlich erhöhte Sicherheitsanforderungen. Das Berücksichtigen der funktionalen Sicherheitsanforderungen erhöht zusätzlich die Systemkomplexität.
  • Das nachfolgend beschriebene Verfahren trägt schließlich dem Umstand Rechnung, dass heutige Systeme im automobilen Umfeld oft als direkt kommunizierende Applikationen oder Komponenten ausgelegt sind. Daten werden, sobald sie verfügbar sind, sofort anderen Applikationen zur Verfügung gestellt. Der exakte zeitliche Zusammenhang der einzelnen Applikationen kann dabei aus technischen Gründen oftmals nicht exakt vorgegeben werden, z. B. da die Anzahl unabhängiger Rechenkerne weit hinter der Anzahl der darauf ausführbaren (executable) Applikationen zurückbleibt. Der exakte Sendezeitpunkt spezifischer Daten ist daher mitunter schwer zu bestimmen. Das Alter der Daten, die von einer bestimmten Applikation empfangen werden, ist entsprechend unvorhersagbar und hängt in hohem Maße von Laufzeitbedingungen ab.
  • Das in DE102018207172A1 beschriebene Verfahren erleichtert diese Situation entscheidend, da bei gegebenen Eingangsdaten eindeutig feststeht, welche Applikation welche Daten empfängt. Damit lässt sich für beliebige Funktions- oder Taskstrukturen die Konsistenz der Daten sicherstellen.
  • Zur Simulation und Vereinfachung des Laufzeitverhaltens erweist es sich als sinnvoll, auf der Grundlage dieses an sich bekannten Verfahrens ein System aus mehreren Tasks zusammenzustellen. Im Folgenden sei ein Verbund aus einzelnen Tasks, denen ein gemeinsames Aktivierungsschema zugrunde liegt, als Aktivierungstabelle bezeichnet.
  • Das Laufzeitverhalten der Tasks sollte hierbei stets deterministisch bleiben. Dies wird nach dem Stand der Technik z. B. durch sequenzielles Aktivieren der Bestandteile einer Funktion gewährleistet.
  • Ein Vorzug der erfindungsgemäßen Lösung liegt vor diesem Hintergrund in der Schaffung eines mächtigeres Ablaufschemas, wie es speziell für HAD-Funktionen wünschenswert erscheint.
  • Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen des im unabhängigen Anspruch angegebenen Grundgedankens möglich.
  • Figurenliste
  • Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt:
    • 1 das Flussdiagramm eines Verfahrens gemäß einer ersten Ausführungsform.
    • 2 eine erfindungsgemäße Aktivierung von Prozessen anhand eines Graphen.
    • 3 eine Darstellung des Graphen in Form eines sogenannten Aktivitätsdiagramms.
    • 4 das Metamodell eines erfindungsgemäßen fahrzeugtechnischen Betriebssystems.
    • 5 schematisch ein Steuergerät gemäß einer zweiten Ausführungsform.
  • Ausführungsformen der Erfindung
  • 1 illustriert den grundlegenden Ablauf eines erfindungsgemäßen Verfahrens (10). Dessen Kerngedanke besteht in der Definition (11) eines gerichteten azyklischen Graphens (directed acyclic graph, DAG), dessen Knoten die Prozesse eines Tasks bilden. Die Kanten des DAG spiegeln hierbei wechselseitige funktionale Abhängigkeiten der Prozesse wider, sodass je zwei durch eine Kante verbundene Prozesse nur nacheinander aktiviert (12) werden dürfen.
  • Dieses Vorgehen wird durch den an sich bekannten Umstand ermöglicht, dass ein DAG zur Modellierung eines deterministischen Ablaufes dienen kann, solange gewährleistet ist, dass dieser DAG vorzugsweise innerhalb der Grenzen des in DE102018207172A1 beschriebenen und hier zugrunde gelegten Verfahrens genutzt wird.
  • Ein entsprechender Determinismus könnte allerdings auch auf anderer Ebene gelten, solange sichergestellt ist, dass die Konsistenz der zu verarbeitenden Daten am Eingang (21) und Ausgang (22) des beispielhaft in 2 dargestellten DAGs (20) garantiert werden kann. Ein etwaiger zyklischer Datenfluss oder eine anderweitige Rückführung müssen daher um den DAG (20) gleichsam „herumgeleitet“ werden, da der besagte Determinismus nur so gesichert ist.
  • Wie 3 verdeutlicht, kann ein DAG (20) auch durch ein Aktivitätsdiagramm (activity diagram) dargestellt werden, wobei die Prozesse im Aktivitätsdiagramm (30) jeweils durch eine Aktion (31) und die Kanten des Graphen (20) jeweils durch einen Kontrollfluss (32) modelliert werden, welcher sich wiederum durch Parallelisierungs- und Synchronisationsknoten aufspalten bzw. zusammenführen lässt.
  • Vorzugsweise werden die definitionsgemäßen Eigenschaften des DAGs (20) auch für den Prozessen (40) untergeordnete Aktivitätsträger (threads, executables, runnables) genutzt, indem entsprechende Teilgraphen definiert werden (vergleiche 4).
  • Dieses Verfahren (10) kann beispielsweise in Software oder Hardware oder in einer Mischform aus Software und Hardware beispielsweise in einem Steuergerät (50) implementiert sein, wie die schematische Darstellung der 5 verdeutlicht.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • WO 2018146000 A1 [0003]
    • DE 102018207172 A1 [0004, 0009, 0016]

Claims (10)

  1. Verfahren (10) zum Automatisieren einer durch mehrere Prozesse (40) erfüllten Fahrfunktion (41), gekennzeichnet durch folgende Merkmale: - ein gerichteter azyklischer Graph (20) auf einer Menge der Prozesse (40) wird dergestalt definiert (11), dass, wenn eine Kante des Graphen (20) von einem ersten Prozess (40) auf einen zweiten Prozess (40) aus der Menge gerichtet ist, eine funktionale Abhängigkeit des zweiten Prozesses (40) vom ersten Prozess (40) besteht und - die Prozesse (40) werden anhand des Graphen (20) solchermaßen aktiviert (12), dass der zweite Prozess (40) gestartet wird, nachdem der erste Prozess (40) abgeschlossen ist.
  2. Verfahren (10) nach Anspruch 1, gekennzeichnet durch folgendes Merkmal: - das Aktivieren (12) erfolgt solchermaßen, dass, wenn eine weitere Kante des Graphen (20) vom ersten Prozess (40) auf einen dritten Prozess (40) aus der Menge gerichtet ist, der zweite Prozess (40) und der dritte Prozess (40) gleichzeitig aktiv sind.
  3. Verfahren (10) nach Anspruch 1 oder 2, gekennzeichnet durch folgendes Merkmal: - das Definieren (11) des Graphen (20) erfolgt mittels eines UML-Verhaltensdiagrammes (30).
  4. Verfahren (10) nach Anspruch 3, gekennzeichnet durch folgende Merkmale: - das Verhaltensdiagramm ist ein Aktivitätsdiagramm (30) und - die Prozesse (40) werden jeweils durch eine Aktion (31) und die Kanten des Graphen (20) jeweils durch einen Kontrollfluss (32) im Aktivitätsdiagramm (30) modelliert.
  5. Verfahren (10) nach einem der Ansprüche 1 bis 4, gekennzeichnet durch folgendes Merkmal: - das Definieren (11) des Graphen (20) erfolgt derart, dass im ersten Prozess (40) erzeugte Daten ausschließlich durch dessen Nachfolger im Graphen (20) ausgewertet (23) werden.
  6. Verfahren (10) nach einem der Ansprüche 1 bis 5, gekennzeichnet durch folgende Merkmale: - durch einen der Fahrfunktion (41) zugeordneten Auslöser (42) wird eine Aktivierung (21) der Fahrfunktion (41) ausgelöst (43) und - zwischen den Prozessen (40) fließende (44) Daten werden bei der Aktivierung (21) bis zu einer Vollendung (22) der Fahrfunktion (41) festgeschrieben (45).
  7. Verfahren (10) nach einem der Ansprüche 1 bis 6, gekennzeichnet durch folgende Merkmale: - der Prozess (40) umfasst mehrere Aktivitätsträger und - auf der Menge der Aktivitätsträger wird ein Teilgraph des Graphen (20) definiert.
  8. Computerprogramm, welches eingerichtet ist, das Verfahren (10) nach einem der Ansprüche 1 bis 7 auszuführen.
  9. Maschinenlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 8 gespeichert ist.
  10. Vorrichtung (50), die eingerichtet ist, das Verfahren (10) nach einem der Ansprüche 1 bis 7 auszuführen.
DE102019214160.9A 2019-09-17 2019-09-17 Verfahren und Vorrichtung zum Automatisieren einer Fahrfunktion Pending DE102019214160A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019214160.9A DE102019214160A1 (de) 2019-09-17 2019-09-17 Verfahren und Vorrichtung zum Automatisieren einer Fahrfunktion

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019214160.9A DE102019214160A1 (de) 2019-09-17 2019-09-17 Verfahren und Vorrichtung zum Automatisieren einer Fahrfunktion

Publications (1)

Publication Number Publication Date
DE102019214160A1 true DE102019214160A1 (de) 2021-03-18

Family

ID=74686287

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019214160.9A Pending DE102019214160A1 (de) 2019-09-17 2019-09-17 Verfahren und Vorrichtung zum Automatisieren einer Fahrfunktion

Country Status (1)

Country Link
DE (1) DE102019214160A1 (de)

Similar Documents

Publication Publication Date Title
EP2866111B1 (de) Testen eines Steuergerätes mittels einer Testumgebung
DE102014110096A1 (de) Testeinrichtung zum Echtzeittest eines virtuellen Steuergeräts
EP3451202B1 (de) Verfahren zum erzeugen eines auf einem testgerät ausführbaren modells eines technischen systems und testgerät
EP3001313A1 (de) Verfahren zur Simulation eines Anwendungsprogramms eines elektronischen Steuergeräts auf einem Computer
DE102017211433A1 (de) Verfahren zum Durchführen eines Funktionstests eines Steuergeräts in einem Hardware-in-the-Loop-Test, HIL-Test, sowie HIL-Prüfstand und Steuergerät
EP3285165A1 (de) Modifizieren und simulieren der betriebssoftware eines technischen systems
EP3015995B1 (de) Verfahren zum konfigurieren einer schnittstelleneinheit eines computersystems
DE102016201769A1 (de) Verfahren zum Aktualisieren von Software eines Steuergerätes, vorzugsweise für ein Kraftfahrzeug
DE102018206762A1 (de) Feature-Development-Framework und Feature-Integration-Framework zum Implementieren physikalischer Funktionsfeatures in einem Zielgerät
DE102010039021A1 (de) Verfahren zur Rekonfiguration von Softwareparametern in einem Mikrocontroller sowie Mikrocontroller und Steuergerät
DE102010009994A1 (de) Verfahren zur Optimierung eines Steuerungsprogramms für Aktuatoren
DE102015100566A1 (de) Verfahren und leichter Mechanismus für gemischte kritische Anwendungen
DE102019214160A1 (de) Verfahren und Vorrichtung zum Automatisieren einer Fahrfunktion
DE102012217328A1 (de) Verfahren zum Simulieren eines Steuergeräts
WO2021089499A1 (de) Verfahren und system zum prüfen einer automatisierten fahrfunktion durch reinforcement-learning
DE102019214161A1 (de) Verfahren und Vorrichtung zum Automatisieren einer Fahrfunktion
DE102017120013A1 (de) Verfahren zur Konfiguration eines zum Testen eines elektronischen Steuergeräts eingerichteten Testgeräts sowie Konfigurationssystem
DE102019214162A1 (de) Verfahren und Vorrichtung zum Simulieren eines Steuergerätes
DE102014105109A1 (de) Verfahren und Vorrichtung zum Erzeugen und Abarbeiten von Testfällen
DE102014016884A1 (de) Datenflußsteuerung und Loadbalancing in Fahrzeugsteuergeräten mit Mehrkernprozessoren
EP3343476A1 (de) Verfahren und vorrichtung zum rechnergestützten entwurf eines produktionsprozesses zum produzieren eines produkts
DE102014209592A1 (de) Verfahren zum Erzeugen einer Hypervisor-Einheit und Hypervisor-Einheit
DE102021211620A1 (de) Verfahren und System zur automatischen Erzeugung eines eingebetteten Quellcodes für die elektronische Steuereinheit eines AD/ADAS-Strassenfahrzeugs
DE102020103349B4 (de) Lastangleichung zweier prozessoren beim ausführen diversitär-redundanter anweisungssequenzen
DE102018203501A1 (de) Verfahren und Vorrichtung zum Abarbeiten einer Aufgabe durch ein eingebettetes System