DE102020132273A1 - Cybersicherheitsprotokoll - Google Patents

Cybersicherheitsprotokoll Download PDF

Info

Publication number
DE102020132273A1
DE102020132273A1 DE102020132273.9A DE102020132273A DE102020132273A1 DE 102020132273 A1 DE102020132273 A1 DE 102020132273A1 DE 102020132273 A DE102020132273 A DE 102020132273A DE 102020132273 A1 DE102020132273 A1 DE 102020132273A1
Authority
DE
Germany
Prior art keywords
encryption
message
data
key
sequence counter
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
DE102020132273.9A
Other languages
English (en)
Inventor
Michael Maass
Karl Robinson
Lucky Munro
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.)
Motional AD LLC
Original Assignee
Motional AD LLC
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 Motional AD LLC filed Critical Motional AD LLC
Publication of DE102020132273A1 publication Critical patent/DE102020132273A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0827Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/46Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for vehicle-to-vehicle communication [V2V]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Abstract

Diese Offenbarung beschreibt ein Cybersicherheitsprotokoll zum Validieren von Nachrichten, die zwischen zwei Vorrichtungen eines autonomen Fahrzeugs ausgetauscht werden. Das Protokoll beinhaltet die unabhängige Erzeugung mehrerer Verschlüsselungs- oder Sitzungsschlüssel durch beide Vorrichtungen. Die Verschlüsselungsschlüssel werden basierend auf einer durch jede Vorrichtung bereitgestellten Zufallszahl erzeugt. In manchen Ausführungsformen können die Zufallszahlen von einem gemeinsam genutzten Geheimschlüssel begleitet werden, der auf beiden Vorrichtungen installiert ist und dabei helfen kann, zu verhindern, dass eine nicht autorisierte Vorrichtung einen gemeinsam genutzten Satz von Verschlüsselungsschlüsseln mit einer der Vorrichtungen erzeugt. Das Einschließen eines unter Verwendung eines der Verschlüsselungsschlüssel erzeugten Hash und eines Nachrichtensequenzzählerwerts in jede Nachricht kann dabei helfen, die Injektion von zuvor übertragenen Nachrichten als ein Mittel zum Stören des Betriebs des autonomen Fahrzeugs zu verhindern.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht den Vorteil der vorläufigen US-Patentanmeldung Nr. 62/944,987 , eingereicht am 6. Dezember 2019 und mit dem Titel „CYBER-SECURITY PROTOCOL‟, deren gesamter Inhalt hiermit durch Bezugnahme aufgenommen wird.
  • GEBIET DER ERFINDUNG
  • Diese Beschreibung betrifft ein Kommunikationssystem, das dazu ausgelegt ist, Nachrichten auf eine sichere Weise zu übertragen und zu empfangen.
  • HINTERGRUND
  • Autonome Fahrzeuge können zum Transportieren von Menschen und/oder Fracht (z. B. Paketen, Objekten oder anderen Gegenständen) von einem Ort zu einem anderen verwendet werden. Beispielsweise kann ein autonomes Fahrzeug zu dem Standort einer Person navigieren, darauf warten, dass die Person in das autonome Fahrzeug einsteigt, und zu einem spezifizierten Bestimmungsort (z. B. einem durch die Person ausgewählten Ort) navigieren. Um in der Umgebung zu navigieren, sind diese autonomen Fahrzeuge mit verschiedenen Arten von Sensoren ausgestattet, um Objekte im Umfeld zu detektieren und den Betrieb des autonomen Fahrzeugs zu überwachen. Die Sicherheit der Daten, die von den Sensoren zu einem oder mehreren zum Leiten des Betriebs des autonomen Fahrzeugs verwendeten Prozessoren übertragen werden, kann zu einem sicheren Betrieb des autonomen Fahrzeugs beitragen.
  • KURZFASSUNG
  • Der in dieser Patentschrift beschriebene Gegenstand ist auf Techniken zum sicheren Validieren und Authentifizieren des Ursprungs von Nachrichten, die zwischen zwei Vorrichtungen z. B. eines autonomen Fahrzeugs übertragen werden, ausgerichtet. Im Allgemeinen sind die Vorrichtungen dazu ausgelegt, kooperativ eine Tabelle mit Verschlüsselungsschlüsseln zu erzeugen, die in Verbindung mit einem Nachrichtenzähler verwendet werden, um zwischen den Vorrichtungen übertragene Nachrichten sicher zu validieren.
  • In manchen Ausführungsformen wird die Technik zwischen einer ersten Vorrichtung und einer zweiten Vorrichtung durchgeführt und beinhaltet die folgenden Schritte: Durchführen, unter Verwendung einer Verarbeitungsschaltung einer zweiten Vorrichtung, einer Schlüsselgenerierung, die Austauschen von zufällig erzeugten Zahlen mit der ersten Vorrichtung und Erzeugen von Verschlüsselungsschlüsseln unter Verwendung der zufällig erzeugten Zahlen beinhaltet; Empfangen, an der zweiten Vorrichtung, einer ersten Nachricht, die einen ersten Nachrichtensequenzzählerwert und ein unter Verwendung eines ersten Verschlüsselungsschlüssels der mehreren Verschlüsselungsschlüssel erzeugten erstes Hash beinhaltet; nach dem Empfangen der ersten Nachricht, Empfangen einer zweiten Nachricht an der zweiten Vorrichtung, die einen zweiten Nachrichtensequenzzählerwert und ein durch den ersten Verschlüsselungsschlüssel erzeugtes zweites Hash beinhaltet; gemäß einer Bestimmung, dass der zweite Nachrichtensequenzzählerwert größer ist als der erste Nachrichtensequenzzählerwert, Authentifizieren der zweiten Nachricht als von der ersten Vorrichtung empfangen; nach dem Empfangen der zweiten Nachricht, Empfangen einer dritten Nachricht, die einen dritten Nachrichtensequenzzählerwert und ein durch einen zweiten Verschlüsselungsschlüssel der mehreren Verschlüsselungsschlüssel erzeugtes drittes Hash beinhaltet; und gemäß einer Bestimmung, dass der dritte Nachrichtensequenzzählerwert kleiner ist als der zweite Nachrichtensequenzzählerwert und sich der zum Erzeugen des dritten Hash verwendete zweite Verschlüsselungsschlüssel vom ersten Verschlüsselungsschlüssel unterscheidet, Authentifizieren der dritten Nachricht als von der ersten Vorrichtung empfangen.
  • Diese und andere Aspekte, Merkmale und Implementierungen können als Verfahren, Einrichtungen, Systeme, Komponenten, Programmprodukte, Mittel oder Schritte zum Durchführen einer Funktion, oder auf andere Weisen ausgedrückt werden.
  • Diese und andere Aspekte, Merkmale und Implementierungen werden aus den folgenden Beschreibungen, einschließlich den Ansprüchen, ersichtlich werden.
  • Figurenliste
    • 1 zeigt ein Beispiel für ein autonomes Fahrzeug mit autonomer Fähigkeit.
    • 2 veranschaulicht eine beispielhafte „Cloud“-Rechenumgebung.
    • 3 veranschaulicht ein Computersystem.
    • 4 zeigt eine beispielhafte Architektur für ein autonomes Fahrzeug.
    • 5 zeigt ein Beispiel für Eingaben und Ausgaben, die durch ein Wahrnehmungsmodul verwendet werden können.
    • 6 zeigt ein Beispiel für ein LiDAR-System.
    • 7 zeigt das LiDAR-System im Betrieb.
    • 8 zeigt den Betrieb des LiDAR-Systems mit zusätzlichen Einzelheiten.
    • 9 zeigt ein Blockdiagramm der Beziehungen zwischen Eingaben und Ausgaben eines Planungsmoduls.
    • 10 zeigt einen gerichteten Graphen, der bei der Pfadplanung verwendet wird.
    • 11 zeigt ein Blockdiagramm der Eingaben und Ausgaben eines Steuermoduls.
    • 12 zeigt ein Blockdiagramm der Eingaben, Ausgaben und Komponenten einer Steuerung.
    • 13 zeigt ein Blockdiagramm mit zwei Vorrichtungen, die dazu ausgelegt sind, über zwei separat verschlüsselte, unidirektionale Kommunikationskanäle zu kommunizieren.
    • 14 zeigt ein Flussdiagramm, das eine Reihe von durch Verschlüsselung-Sendeempfänger der in 13 abgebildeten Vorrichtungen genommenen Schritten veranschaulicht, um Verschlüsselungsschlüssel während einer Schlüsselgenerierung zu erzeugen.
    • 15A zeigt eine Reihe von Operationen, die von der Perspektive einer ersten der in 13 abgebildeten Vorrichtungen aus durchgeführt werden.
    • 15B zeigt eine Reihe von Operationen, die von der Perspektive einer zweiten der in 13 abgebildeten Vorrichtungen aus durchgeführt werden.
    • 16 ist ein Flussdiagramm eines beispielhaften Prozesses zum Authentifizieren von Kommunikationen zwischen zwei Vorrichtungen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung sind für Erläuterungszwecke zahlreiche spezifische Einzelheiten dargelegt, um ein vollständiges Verständnis der vorliegenden Erfindung bereitzustellen. Es wird jedoch ersichtlich werden, dass die vorliegende Erfindung ohne diese spezifischen Einzelheiten umgesetzt werden kann. In anderen Fällen sind wohlbekannte Strukturen und Vorrichtungen in Blockdiagrammform gezeigt, um eine unnötige Verundeutlichung der vorliegenden Erfindung zu vermeiden.
  • In den Zeichnungen sind zur Vereinfachung der Beschreibung spezifische Anordnungen oder Reihenfolgen schematischer Elemente, wie etwa jener, die Vorrichtungen, Module, Anweisungsblöcke und Datenelemente repräsentieren, gezeigt. Fachleute sollten jedoch verstehen, dass die spezifische Reihenfolge oder Anordnung der schematischen Elemente in den Zeichnungen nicht andeuten soll, dass eine spezielle Verarbeitungsreihenfolge oder -sequenz oder eine Trennung von Prozessen notwendig ist. Ferner soll der Einschluss eines schematischen Elements in einer Zeichnung nicht andeuten, dass ein solches Element in allen Ausführungsformen notwendig ist oder die durch ein solches Element repräsentierten Merkmale in manchen Ausführungsformen möglicherweise nicht in anderen Elementen enthalten sind oder möglicherweise nicht mit diesen kombiniert werden.
  • In den Zeichnungen, in denen verbindende Elemente, wie etwa durchgezogene oder gestrichelte Linien oder Pfeile, zum Veranschaulichen einer Verbindung, einer Beziehung oder einer Assoziation zwischen oder unter zwei oder mehr anderen schematischen Elementen verwendet werden, soll das Nichtvorhandensein irgendwelcher solcher verbindender Elemente ferner nicht andeuten, dass keine Verbindung, Beziehung oder Assoziation vorhanden sein kann. Mit anderen Worten sind manche Verbindungen, Beziehungen oder Assoziationen zwischen Elementen nicht in den Zeichnungen gezeigt, sodass die Offenbarung nicht verundeutlicht wird. Zusätzlich wird zur Vereinfachung der Veranschaulichung ein einzelnes verbindendes Element verwendet, um mehrere Verbindungen, Beziehungen oder Assoziationen zwischen Elementen zu repräsentieren. Wenn ein verbindendes Element beispielsweise eine Kommunikation von Signalen, Daten oder Anweisungen repräsentiert, sollten Fachleute verstehen, dass ein solches Element einen oder mehrere Signalpfade (z. B. einen Bus), wie möglicherweise benötigt, repräsentiert, um die Kommunikation zu bewirken.
  • Nun wird ein ausführlicher Bezug auf Ausführungsformen genommen, deren Beispiele in den begleitenden Zeichnungen veranschaulicht sind. In der folgenden ausführlichen Beschreibung sind zahlreiche spezifische Einzelheiten dargelegt, um ein vollständiges Verständnis der verschiedenen beschriebenen Ausführungsformen bereitzustellen. Einem Durchschnittsfachmann wird jedoch ersichtlich werden, dass die verschiedenen beschriebenen Ausführungsformen ohne diese spezifischen Einzelheiten umgesetzt werden können. In anderen Fällen wurden wohlbekannte Verfahren, Prozeduren, Komponenten, Schaltungen und Netzwerke nicht ausführlich beschrieben, sodass Aspekte der Ausführungsformen nicht unnötig verundeutlicht werden.
  • Nachfolgend sind mehrere Merkmale beschrieben, die jeweils unabhängig voneinander oder mit einer beliebigen Kombination anderer Merkmale verwendet werden können. Ein beliebiges individuelles Merkmal spricht jedoch möglicherweise keines der oben besprochenen Probleme an oder könnte nur eines der oben besprochenen Probleme ansprechen. Manche der oben besprochenen Probleme könnten möglicherweise nicht vollständig durch irgendwelche der hierin beschriebenen Merkmale angesprochen werden. Obwohl Überschriften bereitgestellt sind, können Informationen bezüglich einer speziellen Überschrift, die aber nicht in dem Abschnitt mit dieser Überschrift aufgefunden werden, auch andernorts in dieser Beschreibung aufgefunden werden. Ausführungsformen sind hierin gemäß der folgenden Gliederung beschrieben:
    1. 1. Allgemeiner Überblick
    2. 2. Überblick der Hardware
    3. 3. Architektur eines autonomen Fahrzeugs
    4. 4. Eingaben in das autonome Fahrzeug
    5. 5. Planung des autonomen Fahrzeugs
    6. 6. Steuerung des autonomen Fahrzeugs
    7. 7. Rechensystem für die Objektdetektion unter Verwendung von Säulen
    8. 8. Beispielhafte Punktwolken und Säulen
    9. 9. Beispielhafter Prozess zum Detektieren von Objekten und Betreiben des Fahrzeugs basierend auf der Detektion der Objekte
  • Allgemeiner Überblick
  • Autonome Fahrzeuge, die in komplexen Umgebungen (z. B. einer städtischen Umgebung) fahren, stellen eine große technologische Herausforderung dar. Damit autonome Fahrzeuge diese Umgebungen navigieren, detektieren die Fahrzeuge verschiedene Arten von Objekten, wie etwa Fahrzeuge, Fußgänger und Fahrräder, in Echtzeit unter Verwendung von Sensoren wie etwa LIDAR oder RADAR. Die Sensoren übermitteln dann Sensordaten zu einem oder mehreren Prozessoren, die für das Leiten des autonomen Fahrzeugs verantwortlich sind, in einer Reihe von Nachrichten. Ein Ansatz zum Garantieren der Sicherheit der Nachricht besteht darin, Black-Channel-Protokolle zu verwenden, die für die Verwendung zum Sichern der Kommunikation über einen seriellen Punkt-zu-Punkt-Datenlink bekannt sind. Unglücklicherweise können Black-Channel-Protokolle weiterhin gegenüber speziellen Arten von Angriffen gefährdet sein.
  • Insbesondere implementieren das hierin beschriebene System und die hierin beschriebenen Techniken Protokolle, die es zwei Vorrichtungen ermöglichen, versichert zu werden, dass jegliche zwischen zwei Vorrichtungen ausgetauschte Kommunikationen tatsächlich von den beiden Vorrichtungen ausgehen. Die Protokolle beginnen mit einer Schlüsselgenerierung, bei der die Vorrichtungen Zufallszahlen austauschen. Die Zufallszahlen werden dann verwendet, um einen Satz von Verschlüsselungs- oder Sitzungsschlüsseln zu erzeugen, die zum Validieren anschließender Kommunikationen zwischen den beiden Vorrichtungen verwendet werden. Die Zufallszahlen helfen dabei, eine Erwartung der Verschlüsselungsschlüssel zu verhindern, indem eine Menge an Entropie in die Erzeugung der Schlüssel eingeführt wird. Zusätzlich zu dem Einschließen eines durch einen der erzeugten Verschlüsselungsschlüssel erzeugten Hash in jede Nachricht ist auch ein Nachrichtensequenzzählerwert enthalten. Der Nachrichtensequenzzählerwert erhöht sich, nachdem jede Nachricht gesendet wird. Der Nachrichtensequenzzählerwert kann dabei helfen, zu verhindern, dass ein böswillig Agierender alte Nachrichten überträgt, die ein durch den aktuellen Verschlüsselungsschlüssel erzeugtes Hash einbeziehen, und diese nicht validiert werden. Es sollte angemerkt werden, dass der Nachrichtensequenzzählerwert nicht unendlich groß sein kann und zu einem gewissen Zeitpunkt der Nachrichtensequenzzählerwert zurückgesetzt wird. Wenn der Nachrichtenzähler zurückgesetzt wird, verwendet die Vorrichtung, die die nächste Nachricht sendet, einen neuen der erzeugten Verschlüsselungsschlüssel, um ein Hash der nächsten Nachricht zu erzeugen, was im Gegenzug dabei helfen kann, zu verhindern, dass alte Nachrichten mit höheren Nachrichtensequenzzählerwerten validiert werden, da das durch den vorangegangenen Verschlüsselungsschlüssel, der mit den alten Nachrichten verwendet wird, erzeugte Hash als durch den vorangegangenen Verschlüsselungsschlüssel erzeugt erkannt wird. Auf diese Weise kann ein Angriff vereitelt werden, der in gewissen Fällen gegen Black-Channel-Protokolle erfolgreich wäre.
  • Überblick der Hardware
  • 1 zeigt ein Beispiel für ein autonomes Fahrzeug 100 mit autonomer Fähigkeit.
  • Wie hierin verwendet, bezieht sich der Begriff „autonome Fähigkeit“ auf eine Funktion, ein Merkmal oder eine Einrichtung, die/das ermöglicht, dass ein Fahrzeug teilweise oder vollständig ohne einen menschlichen Eingriff in Echtzeit betrieben wird, einschließlich unter anderem vollautonome Fahrzeuge, hochautonome Fahrzeuge und bedingt autonome Fahrzeuge.
  • Wie hierin verwendet, ist ein autonomes Fahrzeug (AV) ein Fahrzeug, das autonome Fähigkeit besitzt.
  • Wie hierin verwendet, beinhaltet „Fahrzeug“ Mittel für den Transport von Gütern oder Menschen. Beispielsweise Autos, Busse, Züge, Flugzeuge, Drohnen, Lastkraftwagen, Boote, Schiffe, Unterwasserfahrzeuge, Luftfahrzeuge usw. Ein fahrerloses Auto ist ein Beispiel eines Fahrzeugs.
  • Wie hierin verwendet, bezieht sich „Trajektorie“ auf einen Pfad oder eine Route zum Navigieren eines AV von einem ersten raumzeitlichen Ort zu einem zweiten raumzeitlichen Ort. In einer Ausführungsform wird der erste raumzeitliche Ort als Anfangs- oder Startort bezeichnet und wird der zweite raumzeitliche Ort als Bestimmungsort, endgültiger Ort, Ziel, Zielposition oder Zielort bezeichnet. In manchen Beispielen besteht die Trajektorie aus einem oder mehreren Segmenten (z. B. Straßenabschnitten), und jedes Segment besteht aus einem oder mehreren Blöcken (z. B. Teilen einer Fahrbahn oder Kreuzung). In einer Ausführungsform entsprechen die raumzeitlichen Orte Orten der realen Welt. Beispielsweise sind die raumzeitlichen Orte Abhol- oder Abladeorte zum Abholen oder Abladen von Personen oder Gütern.
  • Wie hierin verwendet, beinhaltet „Sensor(en)“ eine oder mehrere Hardwarekomponenten, die Informationen über die Umgebung im Umfeld des Sensors detektieren. Manche der Hardwarekomponenten können Erfassungskomponenten (z. B. Bildsensoren, biometrische Sensoren), Übertragungs- und/oder Empfangskomponenten (z. B. Laser- oder Hochfrequenzwellen-Sender und -Empfänger), elektronische Komponenten wie etwa Analog-Digital-Wandler, eine Datenspeicherungsvorrichtung (wie etwa einen RAM und/oder eine nichtflüchtige Speicherung), Software- oder Firmwarekomponenten und Datenverarbeitungskomponenten wie etwa eine ASIC (anwendungsspezifische integrierte Schaltung), einen Mikroprozessor und/oder einen Mikrocontroller beinhalten.
  • Wie hierin verwendet, ist eine „Szenenbeschreibung“ eine Datenstruktur (z. B. Liste) oder ein Datenstrom, die/der ein oder mehrere klassifizierte oder gelabelte Objekte beinhaltet, die durch einen oder mehrere Sensoren am AV-Fahrzeug detektiert oder durch eine Quelle extern zu dem AV bereitgestellt werden.
  • Wie hierin verwendet, ist eine „Straße“ ein physischer Bereich, der von einem Fahrzeug durchfahren werden kann, und kann einer benannten Verkehrsstraße entsprechen (z. B. Stadtstraße, Autobahn usw.) oder kann einer unbenannten Verkehrsstraße entsprechen (z. B. einer Einfahrt in einem Haus oder Bürogebäude, einem Abschnitt eines Parkplatzes, einem Abschnitt eines leeren Grundstücks, einem Feldweg in einem ländlichen Gebiet usw.). Da manche Fahrzeuge (z. B. Allrad-Pickup-Trucks, Geländewagen usw.) in der Lage sind, eine Vielfalt physischer Bereiche zu durchfahren, die nicht spezifisch für den Fahrzeugverkehr konzipiert sind, kann eine „Straße“ ein physischer Bereich sein, der nicht formell durch irgendeine Gemeinde oder andere Regierungsstelle oder Behörde als eine Verkehrsstraße definiert ist.
  • Wie hierin verwendet, ist eine „Fahrbahn“ ein Teil einer Straße, auf der ein Fahrzeug fahren kann, und kann dem Großteil oder der Gesamtheit des Raums zwischen Fahrbahnmarkierungen entsprechen, oder kann nur einem Teil (z. B. weniger als 50 %) des Raums zwischen Fahrbahnmarkierungen entsprechen. Beispielsweise könnte eine Straße mit Fahrbahnmarkierungen zwei oder mehr Fahrzeuge zwischen den Markierungen unterbringen, sodass ein Fahrzeug an dem anderen vorbeifahren kann, ohne die Fahrbahnmarkierungen zu überfahren, und könnte somit als eine Fahrbahn aufweisend, die schmaler als der Raum zwischen den Fahrbahnmarkierungen ist, oder als zwei Fahrbahnen zwischen den Fahrbahnmarkierungen aufweisend interpretiert werden. Eine Fahrbahn könnte auch bei Nichtvorhandensein von Fahrbahnmarkierungen interpretiert werden. Beispielsweise kann eine Fahrbahn basierend auf physischen Merkmalen einer Umgebung definiert werden, z. B. Gestein und Bäume entlang einer Verkehrsstraße in einem ländlichen Gebiet.
  • „Ein oder mehr‟ beinhaltet eine Funktion, die durch ein Element durchgeführt wird, eine Funktion, die durch mehr als ein Element durchgeführt wird, z. B. auf eine verteilte Weise, mehrere Funktionen, die durch ein Element durchgeführt werden, mehrere Funktionen, die durch mehrere Elemente durchgeführt werden, oder eine beliebige Kombination des Obenstehenden.
  • Es versteht sich außerdem, dass, obwohl die Begriffe erster, zweiter usw. in manchen Fällen hierin zum Beschreiben verschiedener Elemente verwendet werden, diese Elemente nicht durch diese Begriffe beschränkt werden sollten. Diese Begriffe werden nur verwendet, um ein Element von einem anderen zu unterscheiden. Beispielsweise könnte ein erster Kontakt als ein zweiter Kontakt bezeichnet werden, und gleichermaßen könnte ein zweiter Kontakt als ein erster Kontakt bezeichnet werden, ohne vom Schutzumfang der verschiedenen beschriebenen Ausführungsformen abzuweichen. Der erste Kontakt und der zweite Kontakt sind beide Kontakte, aber sie sind nicht derselbe Kontakt, insofern nicht anderweitig spezifiziert.
  • Die in der Beschreibung der verschiedenen hierin beschriebenen Ausführungsformen verwendete Terminologie soll nur spezielle Ausführungsformen beschreiben und nicht beschränkend sein. Wie in der Beschreibung der verschiedenen beschriebenen Ausführungsformen und in den angehängten Ansprüchen verwendet, sollen die Singularformen „ein“, „eine“ und „der/die/das“ auch die Pluralformen einschließen, insofern der Zusammenhang deutlich nicht etwas anderes angibt. Es versteht sich auch, dass sich der Begriff „und/oder“, wie hierin verwendet, auf beliebige und alle möglichen Kombinationen eines oder mehrerer der assoziierten aufgelisteten Elemente bezieht und diese einschließt. Es versteht sich ferner, dass die Begriffe „beinhaltet“, „einschließlich“, „umfasst“ und/oder „umfassend“, wenn in dieser Beschreibung verwendet, das Vorhandensein genannter Merkmale, ganzer Zahlen, Schritte, Operationen, Elemente und/oder Komponenten spezifizieren, aber nicht das Vorhandensein oder den Zusatz einer/eines oder mehrerer anderer Elemente, ganzer Zahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon ausschließt.
  • Wie hierin verwendet, soll der Begriff „falls“ optional so ausgelegt werden, dass er in Abhängigkeit vom Zusammenhang „wenn“ oder „bei“ oder „als Reaktion auf das Bestimmen“ oder „als Reaktion auf das Detektieren“ bedeutet. Gleichermaßen soll der Ausdruck „falls bestimmt wird“ oder „falls [eine genannte Bedingung oder ein genanntes Ereignis] detektiert wird“ optional so ausgelegt werden, dass er in Abhängigkeit vom Zusammenhang „bei der Bestimmung“ oder „als Reaktion auf das Bestimmen“ oder „bei der Detektion [der genannten Bedingung oder des genannten Ereignisses]“ oder „als Reaktion auf das Detektieren [der genannten Bedingung oder des genannten Ereignisses]“ bedeutet.
  • Wie hierin verwendet, bezieht sich ein AV-System auf das AV zusammen mit dem Array von Hardware, Software, gespeicherten Daten und in Echtzeit erzeugten Daten, die den Betrieb des AV unterstützen. In einer Ausführungsform ist das AV-System in dem AV integriert. In einer Ausführungsform ist das AV-System über mehrere Orte verteilt. Beispielsweise ist ein Teil der Software des AV-Systems in einer Cloud-Rechenumgebung implementiert, ähnlich der unten mit Bezug auf 2 beschriebenen Cloud-Rechenumgebung 200.
  • Im Allgemeinen beschreibt dieses Dokument Technologien, die bei beliebigen Fahrzeugen anwendbar sind, die eine oder mehrere autonome Fähigkeiten aufweisen, einschließlich vollautonomen Fahrzeugen, hochautonomen Fahrzeugen und bedingt autonomen Fahrzeugen, wie etwa sogenannten Stufe-5-, Stufe-4- bzw. Stufe-3-Fahrzeugen (siehe Standard von SAE International J3016: Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems, der durch Bezugnahme in seiner Gesamtheit aufgenommen wird, für weitere Einzelheiten über die Klassifikation von Autonomiestufen in Fahrzeugen). Die in diesem Dokument beschriebenen Technologien sind auch bei teilautonomen Fahrzeugen und fahrergestützten Fahrzeugen anwendbar, wie etwa sogenannten Stufe-2- und Stufe-1 -Fahrzeugen (siehe Standard von SAE International J3016: Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems). In einer Ausführungsform können ein oder mehrere der Fahrzeugsysteme der Stufe 1, 2, 3, 4 und 5 gewisse Fahrzeugoperationen (z. B. Lenkung, Bremsung und Kartenverwendung) unter gewissen Betriebsbedingungen basierend auf der Verarbeitung von Sensoreingaben automatisieren. Die in diesem Dokument beschriebenen Technologien können für Fahrzeuge in beliebigen Stufen vorteilhaft sein, angefangen von vollautonomen Fahrzeug bis zu menschlich betriebenen Fahrzeugen.
  • Mit Bezug auf 1 betreibt ein AV-System 120 das AV 100 entlang einer Trajektorie 198 durch eine Umgebung 190 zu einem Bestimmungsort 199 (manchmal als ein endgültiger Ort bezeichnet), während Objekte (z. B. natürliche Behinderungen 191, Fahrzeuge 193, Fußgänger 192, Fahrräder und andere Hindernisse) vermieden und Straßenregeln (z. B. Betriebsregeln oder Fahrpräferenzen) eingehalten werden.
  • In einer Ausführungsform beinhaltet das AV-System 120 Vorrichtungen 101, die so instrumentiert sind, dass sie Betriebsbefehle von den Computerprozessoren 146 empfangen und auf diese reagieren. In einer Ausführungsform ähneln die Rechenprozessoren 146 dem unten mit Bezug auf 3 beschriebenen Prozessor 304. Beispiele für die Vorrichtungen 101 beinhalten eine Lenkungssteuerung 102, Bremsen 103, Gänge, Gaspedal oder andere Beschleunigungssteuermechanismen, Scheibenwischer, Seitentürverriegelungen, Fenstersteuerungen und Blinker.
  • In einer Ausführungsform beinhaltet das AV-System 120 Sensoren 121 zum Messen oder Inferieren von Eigenschaften des Status oder Zustands des AV 100, wie etwa die Position des AV, Linear- und Winkelgeschwindigkeit und -beschleunigung und Kurs (z. B. eine Orientierung des führenden Endes des AV 100). Beispiele für die Sensoren 121 sind GPS, inertiale Messeinheiten (IMU), die sowohl Fahrzeuglinearbeschleunigungen als auch Winkelraten messen, Radgeschwindigkeitssensoren zum Messen oder Schätzen von Radschlupfverhältnissen, Radbremsdruck- oder Bremsmomentsensoren, Motordrehmoment- oder Raddrehmomentsensoren und Lenkwinkel- und Winkelratensensoren.
  • In einer Ausführungsform beinhalten die Sensoren 121 auch Sensoren zum Erfassen oder Messen von Eigenschaften der Umgebung des AV. Beispielsweise Monokular- oder Stereo-Videokameras 122 im sichtbaren Licht, Infrarotspektrum oder thermischen Spektrum (oder beiden), LiDAR 123, RADAR, Ultraschallsensoren, Laufzeit(ToF)-Tiefensensoren, Geschwindigkeitssensoren, Temperatursensoren, Luftfeuchtigkeitssensoren und Niederschlagssensoren.
  • In einer Ausführungsform beinhaltet das AV-System 120 eine Datenspeicherungseinheit 142 und einen Speicher 144 zum Speichern von Maschinenanweisungen, die mit den Computerprozessoren 146 assoziiert sind, oder von Daten, die durch die Sensoren 121 gesammelt werden. In einer Ausführungsform ähnelt die Datenspeicherungseinheit 142 dem ROM 308 oder der Speicherungsvorrichtung 310, die nachstehend in Bezug auf 3 beschrieben sind. In einer Ausführungsform ähnelt der Speicher 144 dem unten beschriebenen Hauptspeicher 306. In einer Ausführungsform speichern die Datenspeicherungseinheit 142 und der Speicher 144 historische, Echtzeit- und/oder prädiktive Informationen über die Umgebung 190. In einer Ausführungsform beinhalten die gespeicherten Informationen Karten, Fahrleistung, Verkehrsüberlastungsaktualisierungen oder Wetterbedingungen. In einer Ausführungsform werden Daten bezüglich der Umgebung 190 von einer entfernten Datenbank 134 über einen Kommunikationskanal zu dem AV 100 übertragen.
  • In einer Ausführungsform beinhaltet das AV-System 120 Kommunikationsvorrichtungen 140 zum Kommunizieren von gemessenen oder inferierten Eigenschaften der Status oder Zustände anderer Fahrzeuge, wie etwa Positionen, Linear- und Winkelgeschwindigkeiten, Linear- und Winkelbeschleunigungen und Linear- und Winkelkurse, zu dem AV 100. Diese Vorrichtungen beinhalten Fahrzeug-zu-Fahrzeug- (V2V) und Fahrzeug-zu-Infrastruktur(V2I)-Kommunikationsvorrichtungen und Vorrichtungen für Drahtloskommunikationen über Punkt-zu-Punkt oder Ad-Hoc-Netzwerke oder beide. In einer Ausführungsform kommunizieren die Kommunikationsvorrichtungen 140 über das elektromagnetische Spektrum (einschließlich Funkkommunikationen und optischer Kommunikationen) oder andere Medien (z. B. Luft und akustische Medien). Eine Kombination von Fahrzeug-zu-Fahrzeug- (V2V) und Fahrzeug-zu-Infrastruktur(V2I)-Kommunikation (und in manchen Ausführungsformen einer oder mehrerer anderer Kommunikationsarten) wird manchmal als eine Fahrzeug-zu-Allem(V2X)-Kommunikation bezeichnet. Eine V2X-Kommunikation entspricht typischerweise einem oder mehreren Kommunikationsstandards zur Kommunikation mit, zwischen und unter autonomen Fahrzeugen.
  • In einer Ausführungsform beinhalten die Kommunikationsvorrichtungen 140 Kommunikationsschnittstellen. Beispielsweise drahtgebundene, drahtlose, WiMAX-, WiFi-, Bluetooth-, Satelliten-, zellulare, optische, Nahfeld-, Infrarot- oder Funk-Schnittstellen. Die Kommunikationsschnittstellen übertragen Daten von einer entfernten Datenbank 134 zu dem AV-System 120. In einer Ausführungsform ist die entfernte Datenbank 134 in einer Cloud-Rechenumgebung 200 eingebettet, wie in 2 beschrieben. Die Kommunikationsschnittstellen 140 übertragen von den Sensoren 121 gesammelte Daten oder andere Daten bezüglich des Betriebs des AV 100 zu der entfernten Datenbank 134. In einer Ausführungsform übertragen die Kommunikationsschnittstellen 140 Informationen, die sich auf Teleoperationen beziehen, zu dem AV 100. In manchen Ausführungsformen kommuniziert das AV 100 mit anderen Fern(z. B. „Cloud“)-Servern 136.
  • In einer Ausführungsform speichert und überträgt die entfernte Datenbank 134 auch digitale Daten (z. B. Speichern von Daten wie etwa Landstraßen- und Stadtstraßenorten). Solche Daten werden auf dem Speicher 144 im AV 100 gespeichert oder von der entfernten Datenbank 134 über einen Kommunikationskanal zu dem AV 100 übertragen.
  • In einer Ausführungsform speichert und überträgt die entfernte Datenbank 134 historische Informationen über Fahreigenschaften (z. B. Geschwindigkeits- und Beschleunigungsprofile) von Fahrzeugen, die zuvor zu ähnlichen Tageszeiten entlang der Trajektorie 198 führen. In einer Implementierung können solche Daten auf dem Speicher 144 im AV 100 gespeichert oder von der entfernten Datenbank 134 über einen Kommunikationskanal zu dem AV 100 übertragen werden.
  • Die sich am AV 100 befindlichen Rechenvorrichtungen 146 erzeugen algorithmisch Steuerhandlungen basierend auf sowohl Echtzeit-Sensordaten als auch vorherigen Informationen, was dem AV-System 120 ermöglicht, seine autonomen Fahrfähigkeiten auszuführen.
  • In einer Ausführungsform beinhaltet das AV-System 120 mit den Rechenvorrichtungen 146 gekoppelte Computerperipheriegeräte 132 zum Bereitstellen von Informationen und Warnungen an einen Benutzer (z. B. einen Insassen oder einen Fernbenutzer) des AV 100 und Empfangen einer Eingabe von diesem. In einer Ausführungsform ähneln die Peripheriegeräte 132 der Anzeige 312, der Eingabevorrichtung 314 und der Cursor-Steuerung 316, die unten mit Bezug auf 3 besprochen sind. Die Kopplung ist drahtlos oder drahtgebunden. Zwei oder mehr beliebige der Schnittstellenvorrichtungen können in eine einzelne Vorrichtung integriert sein.
  • 2 veranschaulicht eine beispielhafte „Cloud“-Rechenumgebung. Cloud-Computing ist ein Dienstlieferungsmodell zum Ermöglichen eines zweckmäßigen On-Demand-Netzwerkzugangs für einen gemeinsam genutzten Pool konfigurierbarer Rechenressourcen (z. B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Speicherung, Anwendungen, virtuelle Maschinen und Dienste). In typischen Cloud-Rechensystemen sind die zum Liefern der durch die Cloud bereitgestellten Dienste verwendeten Maschinen in einem oder mehreren großen Cloud-Datenzentren untergebracht. Jetzt mit Bezug auf 2 beinhaltet die Cloud-Rechenumgebung 200 Cloud-Datenzentren 204a, 204b und 204c, die über die Cloud 202 miteinander verbunden sind. Die Datenzentren 204a, 204b und 204c stellen Computersystemen 206a, 206b, 206c, 206d, 206e und 206f, die mit der Cloud 202 verbunden sind, Cloud-Rechendienste bereit.
  • Die Cloud-Rechenumgebung 200 beinhaltet ein oder mehrere Cloud-Datenzentren. Im Allgemeinen bezieht sich ein Cloud-Datenzentrum, zum Beispiel das in 2 gezeigte Cloud-Datenzentrum 204a, auf die physische Anordnung von Servern, die eine Cloud bilden, zum Beispiel die in 2 gezeigte Cloud 202, oder einen speziellen Teil einer Cloud. Beispielsweise sind Server in dem Cloud-Datenzentrum physisch in Räume, Gruppen, Reihen und Racks angeordnet. Ein Cloud-Datenzentrum weist eine oder mehrere Zonen auf, die einen oder mehrere Serverräume beinhalten. Jeder Raum weist eine oder mehrere Serverreihen auf, und jede Reihe beinhaltet ein oder mehrere Racks. Jedes Rack beinhaltet einen oder mehrere individuelle Serverknoten. In manchen Implementierungen sind Server in Zonen, Räume, Racks und/oder Reihen basierend auf physischen Infrastrukturanforderungen der Datenzentrumeinrichtung, einschließlich Leistungs-, Energie-, thermalen, Wärme- und/oder anderer Anforderungen, in Gruppen angeordnet. In einer Ausführungsform ähneln die Serverknoten dem in 3 beschriebenen Computersystem. Das Datenzentrum 204a weist viele Rechensysteme auf, die über viele Racks verteilt sind.
  • Die Cloud 202 beinhaltet Cloud-Datenzentren 204a, 204b und 204c zusammen mit dem Netzwerk und Networking-Ressourcen (zum Beispiel Networking-Geräten, Knoten, Routern, Switches und Vernetzungskabeln), die die Cloud-Datenzentren 204a, 204b und 204c miteinander verbinden und dabei helfen, den Zugang der Rechensysteme 206a-f auf Cloud-Rechensysteme zu ermöglichen. In einer Ausführungsform repräsentiert das Netzwerk eine beliebige Kombination eines oder mehrerer Lokalnetzwerke, großflächiger Netzwerke oder Inter-Netzwerke, die unter Verwendung drahtgebundener oder drahtloser Links gekoppelt sind, die unter Verwendung terrestrischer Verbindungen oder Satellitenverbindungen eingesetzt werden. Über das Netzwerk ausgetauschte Daten werden unter Verwendung einer beliebigen Anzahl von Netzwerkschichtprotokollen transferiert, wie etwa Internetprotokoll (IP), Multiprotocol Label Switching (MPLS), Asynchronous Transfer Mode (ATM), Frame Relay usw. Ferner werden in Ausführungsformen, in denen das Netzwerk eine Kombination mehrerer Teilnetzwerke repräsentiert, unterschiedliche Netzwerkschichtprotokolle an jedem der zugrundeliegenden Teilnetzwerke verwendet. In manchen Ausführungsformen repräsentiert das Netzwerk ein oder mehrerer miteinander verbundene Inter-Netzwerke, wie etwa das öffentliche Internet.
  • Die Rechensysteme 206a-f oder Verbraucher der Cloud-Rechensysteme sind über Netzwerklinks und Netzwerkadapter mit der Cloud 202 verbunden. In einer Ausführungsform werden die Rechensysteme 206a-f als verschiedene Rechenvorrichtungen implementiert, zum Beispiel Server, Desktops, Laptops, Tablets, Smartphones, Internet-der-Dinge(IdD)-Vorrichtungen, autonome Fahrzeuge (einschließlich Autos, Drohnen, Shuttles, Zügen, Bussen usw.) und Verbraucherelektronik. In einer Ausführungsform werden die Rechensysteme 206a-f in anderen Systemen oder als ein Teil von diesen implementiert.
  • 3 veranschaulicht ein Computersystem 300. In einer Implementierung ist das Computersystem 300 eine Spezialzweck-Rechenvorrichtung. Die Spezialzweck-Rechenvorrichtung ist festverdrahtet, um die Techniken durchzuführen, oder beinhaltet digitale elektronische Vorrichtungen wie etwa eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASICs) oder feldprogrammierbare Gate-Arrays (FPGAs), die persistent programmiert sind, um die Techniken durchzuführen, oder können einen oder mehrere Allgemeinzweck-Hardwareprozessoren beinhalten, die programmiert sind, die Techniken gemäß Programmanweisungen in Firmware, Speicher, anderer Speicherung oder einer Kombination durchzuführen. Solche Spezialzweck-Rechenvorrichtungen können auch benutzerdefinierte festverdrahtete Logik, ASICs oder FPGAs mit benutzerdefinierter Programmierung kombinieren, um die Techniken zu verwirklichen. In verschiedenen Ausführungsformen sind die Spezialzweck-Rechenvorrichtungen Desktop-Computersysteme, tragbare Computersysteme, Handheld-Vorrichtungen, Netzwerkvorrichtungen oder eine beliebige andere Vorrichtung, die festverdrahtete Logik und/oder Programmlogik einbezieht, um die Techniken zu implementieren.
  • In einer Ausführungsform beinhaltet das Computersystem 300 einen Bus 302 oder einen anderen Kommunikationsmechanismus zum Kommunizieren von Informationen und einen mit dem Bus 302 gekoppelten Hardwareprozessor 304 zum Verarbeiten von Informationen. Der Hardwareprozessor 304 ist beispielsweise ein Allgemeinzweck-Mikroprozessor. Das Computersystem 300 beinhaltet außerdem einen Hauptspeicher 306, wie etwa einen Direktzugriffsspeicher (RAM) oder eine andere dynamische Speicherungsvorrichtung, der/die mit dem Bus 302 gekoppelt ist, zum Speichern von Informationen und Anweisungen, die durch den Prozessor 304 auszuführen sind. In einer Implementierung wird der Hauptspeicher 306 zum Speichern temporärer Variablen oder anderen Zwischeninformationen während der Ausführung von durch den Prozessor 304 auszuführenden Anweisungen verwendet. Derartige Anweisungen, wenn sie in für den Prozessor 304 zugreifbaren, nichttransitorischen Speicherungsmedien gespeichert sind, bilden das Computersystem 300 in eine Spezialzweck-Maschine aus, die zum Durchführen der in den Anweisungen spezifizierten Operationen angepasst ist.
  • In einer Ausführungsform beinhaltet das Computersystem 300 ferner einen Nur-LeseSpeicher (ROM) 308 oder eine andere statische Speicherungsvorrichtung, die mit dem Bus 302 gekoppelt ist, zum Speichern statischer Informationen und Anweisungen für den Prozessor 304. Eine Speicherungsvorrichtung 310, wie etwa eine magnetische Platte, eine optische Platte, ein Solid-State-Laufwerk oder ein dreidimensionaler Cross-Point-Speicher, ist bereitgestellt und mit dem Bus 302 gekoppelt, um Informationen und Anweisungen zu speichern.
  • In einer Ausführungsform ist das Computersystem 300 über den Bus 302 mit einer Anzeige 312 gekoppelt, wie etwa einer Kathodenstrahlröhre (CRT)-, einer Flüssigkristallanzeige (LCD), einer Plasmaanzeige, einer Leuchtdioden(LED)-Anzeige oder einer Organisch-Leuchtdioden(OLED)-Anzeige, um Informationen für einen Computerbenutzer anzuzeigen. Eine Eingabevorrichtung 314, die alphanumerische und andere Tasten beinhaltet, ist mit dem Bus 302 zum Kommunizieren von Informationen und Befehlsauswahlen zu dem Prozessor 304 gekoppelt. Eine andere Art von Benutzereingabevorrichtung ist eine Cursor-Steuerung 316, wie etwa eine Maus, ein Trackball, eine berührungsgestützte Anzeige oder Cursorrichtungstasten zum Kommunizieren von Richtungsinformationen und Befehlsauswahlen zu dem Prozessor 304 und zum Steuern der Cursorbewegung auf der Anzeige 312. Diese Eingabevorrichtung weist typischerweise zwei Freiheitsgrade in zwei Achsen auf, einer ersten Achse (z. B. x-Achse) und einer zweiten Achse (z. B. y-Achse), was der Vorrichtung ermöglicht, Positionen in einer Ebene zu spezifizieren.
  • Gemäß einer Ausführungsform werden die Techniken hierin durch das Computersystem 300 als Reaktion darauf durchgeführt, dass der Prozessor 304 eine oder mehrere Sequenzen einer oder mehrerer im Hauptspeicher 306 enthaltener Anweisungen ausführt. Solche Anweisungen werden von einem anderen Speicherungsmedium, wie etwa der Speicherungsvorrichtung 310, in den Hauptspeicher 306 gelesen. Die Ausführung der im Hauptspeicher 306 enthaltenen Anweisungssequenzen veranlasst, dass der Prozessor 304 die hierin beschriebenen Prozessschritte durchführt. In alternativen Ausführungsformen wird eine festverdrahtete Schaltungsanordnung anstelle von oder in Kombination mit Softwareanweisungen verwendet.
  • Der Begriff „Speicherungsmedien“, wie hierin verwendet, bezieht sich auf beliebige nichttransitorische Medien, die Daten und/oder Anweisungen speichern, die veranlassen, dass eine Maschine auf eine spezifische Weise arbeitet. Solche Speicherungsmedien beinhalten nichtflüchtige Medien und/oder flüchtige Medien. Nichtflüchtige Medien beinhalten beispielsweise optische Platten, Magnetplatten, Solid-State-Laufwerke oder dreidimensionalen Cross-Point-Speicher, wie etwa die Speicherungsvorrichtung 310. Flüchtige Medien beinhalten dynamischen Speicher, wie etwa den Hauptspeicher 306. Übliche Formen von Speicherungsmedien beinhalten beispielsweise eine Diskette, eine flexible Platte, eine Festplatte, ein Solid-State-Laufwerk, Magnetband oder ein beliebiges anderes magnetisches Datenspeicherungsmedium, eine CD-ROM, ein beliebiges anderes optisches Datenspeicherungsmedium, ein beliebiges physisches Medium mit Lochmustern, einen RAM, einen PROM und EPROM, einen FLASH-EPROM, NV-RAM oder einen beliebigen anderen Speicherchip oder eine beliebige andere Speicherkassette.
  • Speicherungsmedien unterscheiden sich von Übertragungsmedien, können jedoch in Verbindung mit diesen verwendet werden. Übertragungsmedien nehmen bei dem Transfer von Informationen zwischen Speicherungsmedien teil. Beispielsweise beinhalten Übertragungsmedien Koaxialkabel, Kupferdraht und Faseroptik, einschließlich der Drähte, die den Bus 302 umfassen. Übertragungsmedien können auch die Form akustischer Wellen oder Lichtwellen annehmen, wie etwa jene, die während Funkwellen- oder Infrarot-Datenkommunikationen erzeugt werden.
  • In einer Ausführungsform sind verschiedene Formen von Medien beim Führen einer oder mehrerer Sequenzen einer oder mehrerer Anweisungen zu dem Prozessor 304 zur Ausführung beteiligt. Beispielsweise werden die Anweisungen anfänglich auf einer magnetischen Platte oder einem Solid-State-Laufwerk eines Ferncomputers geführt. Der Ferncomputer lädt die Anweisungen in seinen dynamischen Speicher und sendet die Anweisungen über eine Telefonleitung unter Verwendung eines Modems. Ein Modem lokal zu dem Computersystem 300 empfängt die Daten auf der Telefonleitung und verwendet einen Infrarotsender, um die Daten in ein Infrarotsignal umzuwandeln. Ein Infrarotdetektor empfängt die in dem Infrarotsignal geführten Daten und eine geeignete Schaltungsanordnung platziert die Daten auf den Bus 302. Der Bus 302 führt die Daten zum Hauptspeicher 306, aus dem der Prozessor 304 die Anweisungen abruft und ausführt. Die durch den Hauptspeicher 306 empfangenen Anweisungen können optional in der Speicherungsvorrichtung 310 entweder vor oder nach der Ausführung durch den Prozessor 304 gespeichert werden.
  • Das Computersystem 300 beinhaltet auch eine Kommunikationsschnittstelle 318, die mit dem Bus 302 gekoppelt ist. Die Kommunikationsschnittstelle 318 stellt eine Zweiwege-Datenkommunikationskopplung mit einem Netzwerklink 320 bereit, der mit einem Lokalnetzwerk 322 verbunden ist. Beispielsweise ist die Kommunikationsschnittstelle 318 eine ISDN(Integrated Service Digital Network)-Karte, ein Kabelmodem, ein Satellitenmodem oder ein Modem zum Bereitstellen einer Datenkommunikationsverbindung mit einer entsprechenden Art von Telefonleitung. Als ein anderes Beispiel ist die Kommunikationsschnittstelle 318 eine Lokalnetzwerk(LAN)-Karte zum Bereitstellen einer Datenkommunikationsverbindung mit einem kompatiblen LAN. In manchen Implementierungen werden auch Drahtlos-Links implementiert. In einer beliebigen derartigen Implementierung sendet und empfängt die Kommunikationsschnittstelle 318 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme führen, die verschiedene Informationsarten repräsentieren.
  • Der Netzwerklink 320 stellt typischerweise eine Datenkommunikation über ein oder mehrere Netzwerke zu anderen Datenvorrichtungen bereit. Beispielsweise stellt der Netzwerklink 320 eine Verbindung über das Lokalnetzwerk 322 zu einem Host-Computer 324 oder zu einem Cloud-Datenzentrum oder -Gerät bereit, der/das durch einen Internetdienstanbieter (ISP) 326 betrieben wird. Der ISP 326 stellt im Gegenzug Datenkommunikationsdienste über das weltweite Paketdatenkommunikationsnetzwerk bereit, heutzutage gewöhnlich bezeichnet als das „Internet“ 328. Sowohl das Lokalnetzwerk 322 als auch das Internet 328 verwenden elektrische, elektromagnetische oder optische Signale, die digitale Datenströme führen. Die Signale über die verschiedenen Netzwerke und die Signale auf dem Netzwerklink 320 und über die Kommunikationsschnittstelle 318, die die digitalen Daten zu und von dem Computersystem 300 führen, sind beispielhafte Formen von Übertragungsmedien. In einer Ausführungsform enthält das Netzwerk 320 die Cloud 202 oder einen Teil der oben beschriebenen Cloud 202.
  • Das Computersystem 300 sendet Nachrichten und empfängt Daten, einschließlich Programmcode, über das (die) Netzwerk(e), den Netzwerklink 320 und die Kommunikationsschnittstelle 318. In einer Ausführungsform empfängt das Computersystem 300 Code zur Verarbeitung. Der empfangene Code wird durch den Prozessor 304 wie empfangen ausgeführt und/oder in der Speicherungsvorrichtung 310 oder einer anderen nichtflüchtigen Speicherung zur späteren Ausführung gespeichert.
  • Architektur eines autonomen Fahrzeugs
  • 4 zeigt eine beispielhafte Architektur 400 für ein autonomes Fahrzeug (z. B. das in 1 gezeigte AV 100). Die Architektur 400 beinhaltet ein Wahrnehmungsmodul 402 (manchmal als eine Wahrnehmungsschaltung bezeichnet), ein Planungsmodul 404 (manchmal als eine Planungsschaltung bezeichnet), ein Steuermodul 406 (manchmal als eine Steuerschaltung bezeichnet), ein Lokalisierungsmodul 408 (manchmal als eine Lokalisierungsschaltung bezeichnet) und ein Datenbankmodul 410 (manchmal als eine Datenbankschaltung bezeichnet). Jedes Modul spielt beim Betrieb des AV 100 eine Rolle. Zusammen können die Module 402, 404, 406, 408 und 410 Teil des in 1 gezeigten AV-Systems 120 sein. In manchen Ausführungsformen sind beliebige der Module 402, 404, 406, 408 und 410 eine Kombination von Computersoftware (z. B. ausführbarer Code, der auf einem computerlesbaren Medium gespeichert ist) und Computerhardware (z. B. ein/e oder mehrere Mikroprozessoren, Mikrocontroller, anwendungsspezifische integrierte Schaltungen [ASICs], Hardwarespeichervorrichtungen, andere Arten von integrierten Schaltungen, andere Arten von Computerhardware oder eine Kombination beliebiger oder aller dieser Dinge).
  • Im Gebrauch empfängt das Planungsmodul 404 Daten, die einen Bestimmungsort 412 repräsentieren, und bestimmt Daten, die eine Trajektorie 414 (manchmal als eine Route bezeichnet) repräsentieren, auf der das AV 100 fahren kann, um den Bestimmungsort 412 zu erreichen (z. B. dort anzukommen). Damit das Planungsmodul 404 die die Trajektorie 414 repräsentierenden Daten bestimmt, empfängt das Planungsmodul 404 Daten vom Wahrnehmungsmodul 402, vom Lokalisierungsmodul 408 und vom Datenbankmodul 410.
  • Das Wahrnehmungsmodul 402 identifiziert nahegelegene physische Objekte unter Verwendung eines oder mehrerer Sensoren 121, z. B. wie auch in 1 gezeigt. Die Objekte werden klassifiziert (z. B. in Typen wie etwa Fußgänger, Fahrrad, Kraftfahrzeug, Verkehrsschild usw. gruppiert) und dem Planungsmodul 404 wird eine Szenenbeschreibung einschließlich der klassifizierten Objekte 416 bereitgestellt.
  • Das Planungsmodul 404 empfängt auch Daten, die die AV-Position 418 repräsentieren, vom Lokalisierungsmodul 408. Das Lokalisierungsmodul 408 bestimmt die AV-Position unter Verwendung von Daten von den Sensoren 121 und Daten vom Datenbankmodul 410 (z. B. geografische Daten), um eine Position zu berechnen. Beispielsweise verwendet das Lokalisierungsmodul 408 Daten von einem GNSS(globales Satellitennavigationssystem)-Sensor und geografische Daten, um einen Längengrad und Breitengrad des AV zu berechnen. In einer Ausführungsform beinhalten die durch das Lokalisierungsmodul 408 verwendeten Daten hochpräzise Karten der geometrischen Eigenschaften der Verkehrsstraße, Karten, die Straßennetzkonnektivitätseigenschaften beschreiben, Karten, die physische Eigenschaften der Verkehrsstraße beschreiben (wie etwa Verkehrsgeschwindigkeit, Verkehrsvolumen, die Anzahl von Fahrzeug- und Fahrrad-Verkehrsfahrbahnen, Fahrbahnbreite, Fahrbahnverkehrsrichtung oder Fahrbahnmarkierungsarten und -orte oder Kombinationen davon), und Karten, die die räumlichen Orte von Straßenmerkmalen beschreiben, wie etwa Fußgängerüberwege, Verkehrsschilder oder andere Verkehrssignale verschiedener Arten.
  • Das Steuermodul 406 empfängt die die Trajektorie 414 repräsentierenden Daten und die die AV-Position 418 repräsentierenden Daten und betreibt die Steuerfunktionen 420a-c (z. B. Lenkung, Gasgeben, Bremsen, Zündung) des AV auf eine Weise, die bewirken wird, dass das AV 100 entlang der Trajektorie 414 zu dem Bestimmungsort 412 fährt. Falls beispielsweise die Trajektorie 414 eine Linksabbiegung beinhaltet, wird das Steuermodul 406 die Steuerfunktionen 420a-c auf eine Weise betreiben, dass der Lenkwinkel der Lenkfunktion bewirken wird, dass das AV 100 nach links abbiegt, und das Gasgeben und Bremsen bewirken werden, dass das AV 100 anhält und darauf wartet, dass Fußgänger und Fahrzeuge passieren, bevor das Abbiegen vorgenommen wird.
  • Eingaben in das autonome Fahrzeug
  • 5 zeigt ein Beispiel für Eingaben 502a-d (z. B. die in 1 gezeigten Sensoren 121) und Ausgaben 504a-d (z. B. Sensordaten), die durch das Wahrnehmungsmodul 402 (4) verwendet werden. Eine Eingabe 502a ist ein LiDAR(Lichtdetektion und -entfernungsmessung)-System (z. B. das in 1 gezeigte LiDAR 123). LiDAR ist eine Technologie, die Licht (z. B. Impulse von Licht wie etwa Infrarotlicht) verwendet, um Daten über physische Objekte in ihrer Sichtlinie zu erhalten. Ein LiDAR-System erzeugt LiDAR-Daten als die Ausgabe 504a. Beispielsweise sind LiDAR-Daten Sammlungen von 3D- oder 2D-Punkten (auch als Punktwolken bekannt), die zum Erstellen einer Repräsentation der Umgebung 190 verwendet werden.
  • Eine andere Eingabe 502b ist ein RADAR-System. RADAR ist eine Technologie, die Funkwellen verwendet, um Daten über nahegelegene physische Objekte zu erhalten. RADARs können Daten über Objekte erhalten, die sich nicht innerhalb der Sichtlinie eines LiDAR-Systems befinden. Ein RADAR-System 502b erzeugt RADAR-Daten als die Ausgabe 504b. Beispielsweise sind RADAR-Daten ein oder mehrere elektromagnetische Hochfrequenz-Signale, die zum Erstellen einer Repräsentation der Umgebung 190 verwendet werden.
  • Eine andere Eingabe 502c ist ein Kamerasystem. Ein Kamerasystem verwendet eine oder mehrere Kameras (z. B. Digitalkameras, die einen Lichtsensor wie etwa eine CCD [Charge-Coupled Device] verwenden), um Informationen über nahegelegene physische Objekte zu erhalten. Ein Kamerasystem erzeugt Kameradaten als die Ausgabe 504c. Kameradaten nehmen häufig die Form von Bilddaten an (z. B. Daten in einem Bilddatenformat wie etwa RAW, JPEG, PNG usw.). In manchen Beispielen weist das Kamerasystem mehrere unabhängige Kameras auf, z. B. für Stereopsis (Stereovision), was dem Kamerasystem ermöglicht, Tiefe wahrzunehmen. Obwohl die durch das Kamerasystem wahrgenommenen Objekte hier als „nahegelegen“ beschrieben sind, ist dies relativ zu dem AV. Im Gebrauch kann das Kamerasystem dazu ausgelegt sein, Objekte zu „sehen“, die sich entfernt, z. B. bis zu einem Kilometer oder mehr, vor dem AV befinden. Dementsprechend kann das Kamerasystem Merkmale wie etwa Sensoren und Objekte aufweisen, die zum Wahrnehmen von weit entfernten Objekten optimiert sind.
  • Eine andere Eingabe 502d ist ein Ampeldetektionssystem (TLD-System; TLD: Traffic Light Detection). Ein TLD-System verwendet eine oder mehrere Kameras, um Informationen über Ampeln, Verkehrsschilder und andere physische Objekte zu erhalten, die visuelle Navigationsinformationen bereitstellen. Ein TLD-System erzeugt TLD-Daten als die Ausgabe 504d. TLD-Daten nehmen häufig die Form von Bilddaten an (z. B. Daten in einem Bilddatenformat wie etwa RAW, JPEG, PNG usw.). Ein TLD-System unterscheidet sich von einem eine Kamera einbeziehenden System darin, dass ein TLD-System eine Kamera mit einem weiten Sichtfeld verwendet (z. B. unter Verwendung eines Weitwinkelobjektivs oder eines Fischaugenobjekivs), um Informationen über so viele physische Objekte, die visuelle Navigationsinformationen bereitstellen, wie möglich zu erhalten, sodass das AV 100 einen Zugang zu allen relevanten Navigationsinformationen aufweist, die durch diese Objekte bereitgestellt werden. Beispielsweise kann der Sichtwinkel des TLD-Systems etwa 120 Grad oder mehr betragen.
  • In manchen Ausführungsformen werden die Ausgaben 504a-d unter Verwendung einer Sensorfusionstechnik kombiniert. Somit werden entweder die individuellen Ausgaben 504a-d anderen Systemen des AV 100 bereitgestellt (z. B. einem Planungsmodul 404 bereitgestellt, wie in 4 gezeigt), oder die kombinierte Ausgabe kann den anderen Systemen bereitgestellt werden, entweder in der Form einer einzelnen kombinierten Ausgabe oder mehrerer kombinierter Ausgaben des gleichen Typs (z. B. unter Verwendung der gleichen Kombinationstechnik oder Kombinieren der gleichen Ausgaben oder beides) oder unterschiedlicher Typen (z. B. unter Verwendung verschiedener jeweiliger Kombinationstechniken oder Kombinieren verschiedener jeweiliger Ausgaben oder beides). In manchen Ausführungsformen wird eine Frühfusionstechnik verwendet. Eine Frühfusionstechnik ist gekennzeichnet durch das Kombinieren von Ausgaben, bevor ein oder mehrere Datenverarbeitungsschritte an der kombinierten Ausgabe angewendet werden. In manchen Ausführungsformen wird eine Spätfusionstechnik verwendet. Eine Spätfusionstechnik ist gekennzeichnet durch das Kombinieren von Ausgaben, nachdem ein oder mehrere Datenverarbeitungsschritte an den individuellen Ausgaben angewendet werden.
  • 6 zeigt ein Beispiel für ein LiDAR-System 602 (z. B. die in 5 gezeigte Eingabe 502a). Das LiDAR-System 602 emittiert Licht 604a-c von einem Lichtemitter 606 (z. B. einem Laser-Sender). Durch ein LiDAR-System emittiertes Licht liegt typischerweise nicht im sichtbaren Spektrum; beispielsweise wird häufig Infrarotlicht verwendet. Ein Teil des emittierten Lichts 604b trifft auf ein physisches Objekt 608 (z. B. ein Fahrzeug) und wird zurück zu dem LiDAR-System 602 reflektiert. (Von einem LiDAR-System emittiertes Licht dringt typischerweise nicht in physische Objekte, z. B. physische Objekte in fester Form, ein.) Das LiDAR-System 602 weist auch einen oder mehrere Lichtdetektoren 610 auf, die das reflektierte Licht detektieren. In einer Ausführungsform erzeugen ein oder mehrere mit dem LiDAR-System assoziierte Datenverarbeitungssysteme ein Bild 612, das das Sichtfeld 614 des LiDAR-Systems repräsentiert. Das Bild 612 beinhaltet Informationen, die die Abgrenzungen 616 eines physischen Objekts 608 repräsentieren. Auf diese Weise wird das Bild 612 zum Bestimmen der Abgrenzungen 616 eines oder mehrerer physischer Objekte in der Nähe eines AV verwendet.
  • 7 zeigt das LiDAR-System 602 im Betrieb. In dem in dieser Figur gezeigten Szenario empfängt das AV 100 sowohl die Kamerasystemausgabe 504c in der Form eines Bildes 702 als auch die LiDAR-Systemausgabe 504a in der Form von LiDAR-Datenpunkten 704. Im Gebrauch vergleichen die Datenverarbeitungssysteme des AV 100 das Bild 702 mit den Datenpunkten 704. Insbesondere wird ein im Bild 702 identifiziertes physisches Objekt 706 auch unter den Datenpunkten 704 identifiziert. Auf diese Weise nimmt das AV 100 die Abgrenzungen des physischen Objekts basierend auf der Kontur und der Dichte der Datenpunkte 704 wahr.
  • 8 zeigt den Betrieb des LiDAR-Systems 602 mit zusätzlichen Einzelheiten. Wie oben beschrieben, detektiert das AV 100 die Abgrenzungen eines physischen Objekts basierend auf Charakteristiken der durch das LiDAR-System 602 detektierten Datenpunkte. Wie in 8 gezeigt, wird ein flaches Objekt, wie etwa der Boden 802, von einem LiDAR-System 602 emittiertes Licht 804a-d konsistent reflektieren. Anders ausgedrückt, da das LiDAR-System 602 Licht unter Verwendung eines konstanten Abstands emittiert, wird der Boden 802 Licht zurück zu dem LiDAR-System 602 mit dem gleichen konsistenten Abstand reflektieren. Während das AV 100 über den Boden 802 fährt, wird das LiDAR-System 602 fortfahren, durch den nächsten gültigen Bodenpunkt 806 reflektiertes Licht zu detektieren, falls nichts die Straße versperrt. Falls jedoch ein Objekt 808 die Straße versperrt, wird durch das LiDAR-System 602 emittiertes Licht 804e-f von Punkten 810a-b inkonsistent zu der voraussichtlichen konsistenten Weise reflektiert. Aus diesen Informationen kann das AV 100 bestimmen, dass das Objekt 808 vorhanden ist.
  • Pfadplanung
  • 9 zeigt ein Blockdiagramm 900 der Beziehungen zwischen Eingaben und Ausgaben eines Planungsmoduls 404 (z. B. wie in 4 gezeigt). Im Allgemeinen ist die Ausgabe eines Planungsmoduls 404 eine Route 902 von einem Startpunkt 904 (z. B. Quellstandort oder Anfangsstandort) zu einem Endpunkt 906 (z. B. Bestimmungsort oder endgültigen Ort). Die Route 902 wird typischerweise durch ein oder mehrere Segmente definiert. Beispielsweise ist ein Segment eine zu fahrende Distanz über zumindest einen Abschnitt einer Straße, Landstraße, Autobahn, Einfahrt oder ein anderer physischer Bereich, der sich zur Fahrt eines Kraftfahrzeugs eignet. In manchen Beispielen, falls z. B. das AV 100 ein geländefähiges Fahrzeug ist, wie etwa ein Vierrad(4WD)- oder Allrad(AWD)-Auto, SUV, Pickup-Truck oder dergleichen, beinhaltet die Route 902 „Off-Road“-Segmente, wie etwa unbefestigte Pfade oder offene Felder.
  • Zusätzlich zu der Route 902 gibt ein Planungsmodul auch Routenplanungsdaten 908 auf Fahrbahnebene aus. Die Routenplanungsdaten 908 auf Fahrbahnebene werden verwendet, um Segmente der Route 902 basierend auf Zuständen des Segments zu einer speziellen Zeit zu durchfahren. Falls die Route 902 eine mehrspurige Autobahn beinhaltet, beinhalten die Routenplanungsdaten 908 auf Fahrbahnebene Trajektorieplanungsdaten 910, die das AV 100 verwendet kann, um eine Fahrbahn unter den mehreren Fahrbahnen zu wählen, z. B. basierend darauf, ob sich einer Ausfahrt genähert wird, ob eine oder mehrere der Fahrbahnen andere Fahrzeuge aufweisen, oder andere Faktoren, die im Verlauf weniger Minuten oder weniger variieren. Gleichermaßen beinhalten die Routenplanungsdaten 908 auf Fahrbahnebene in manchen Implementierungen für ein Segment der Route 902 spezifische Geschwindigkeitsbeschränkungen 912. Falls das Segment beispielsweise Fußgänger oder unerwarteten Verkehr beinhaltet, können die Geschwindigkeitsbeschränkungen 912 das AV 100 auf eine Fahrgeschwindigkeit einschränken, die langsamer als eine voraussichtliche Geschwindigkeit ist, z. B. eine Geschwindigkeit basierend auf Geschwindigkeitsbegrenzungsdaten für das Segment.
  • In einer Ausführungsform beinhalten die Eingaben in das Planungsmodul 404 Datenbankdaten 914 (z. B. von dem in 4 gezeigten Datenbankmodul 410), aktuelle Standortdaten 916 (z. B. die in 4 gezeigte AV-Position 418), Bestimmungsortdaten 918 (z. B. für den in 4 gezeigten Bestimmungsort 412) und Objektdaten 920 (z. B. die klassifizierten Objekte 416, wie durch das in 4 gezeigte Wahrnehmungsmodul 402 wahrgenommen). In manchen Ausführungsformen beinhalten die Datenbankdaten 914 bei der Planung verwendete Regeln. Regeln werden unter Verwendung einer formellen Sprache spezifiziert, z. B. unter Verwendung von boolescher Logik. In einer beliebigen gegebenen Situation, auf die das AV 100 trifft, werden zumindest manche der Regeln für die Situation gelten. Eine Regel gilt für eine gegebene Situation, falls die Regel Bedingungen aufweist, die basierend auf dem AV 100 zur Verfügung stehenden Informationen erfüllt werden, z. B. Informationen über die umliegende Umgebung. Regeln können eine Priorität aufweisen. Beispielsweise kann eine Regel, die besagt „falls die Straße eine Schnellstraße ist, soll sich zu der am weitesten links gelegenen Spur bewegt werden“, eine niedrigere Priorität aufweisen als „falls sich der Ausfahrt innerhalb einer Meile genähert wird, soll sich zu der am weitesten rechts gelegenen Spur bewegt werden“.
  • 10 zeigt einen gerichteten Graphen 1000, der bei der Pfadplanung z. B. durch das Planungsmodul 404 (4) verwendet wird. Im Allgemeinen wird ein gerichteter Graph 1000, wie der in 10 gezeigte, zum Bestimmen eines Pfads zwischen einem beliebigen Startpunkt 1002 und einem Endpunkt 1004 verwendet. In der realen Welt kann die den Startpunkt 1002 und den Endpunkt 1004 trennende Distanz relativ groß sein (z. B. in zwei unterschiedlichen Großstadtgebieten) oder kann relativ klein sein (z. B. zwei Kreuzungen, die an einen Häuserblock angrenzen, oder zwei Fahrbahnen einer mehrspurigen Straße).
  • In einer Ausführungsform weist der gerichtete Graph 1000 Knoten 1006a-d auf, die unterschiedliche Orte zwischen dem Startpunkt 1002 und dem Endpunkt 1004 repräsentieren, die durch ein AV 100 belegt sein könnten. In manchen Beispielen, z. B. wenn der Startpunkt 1002 und der Endpunkt 1004 unterschiedliche Großstadtgebiete repräsentieren, repräsentieren die Knoten 1006a-d Segmente von Straßen. In manchen Beispielen, z. B. wenn der Startpunkt 1002 und der Endpunkt 1004 unterschiedliche Orte auf derselben Straße repräsentieren, repräsentieren die Knoten 1006a-d unterschiedliche Positionen auf dieser Straße. Auf diese Weise beinhaltet der gerichtete Graph 1000 Informationen bei unterschiedlichen Granularitätsstufen. In einer Ausführungsform ist der eine hohe Granularität aufweisende gerichtete Graph auch ein Teilgraph eines anderen gerichteten Graphen mit einem größeren Maßstab. Beispielsweise weist ein gerichteter Graph, in dem der Startpunkt 1002 und der Endpunkt 1004 weit voneinander entfernt sind (z. B. mehrere Meilen getrennt), den Großteil seiner Informationen mit niedriger Granularität auf und basiert auf gespeicherten Daten, beinhaltet aber auch einige hochgranulare Informationen für den Abschnitt des Graphen, der physische Orte im Sichtfeld des AV 100 repräsentiert.
  • Die Knoten 1006a-d unterscheiden sich von den Objekten 1008a-b, die sich nicht mit einem Knoten überlappen können. In einer Ausführungsform, wenn die Granularität niedrig ist, repräsentieren die Objekte 1008a-b Gebiete, die das Kraftfahrzeug nicht durchfahren kann, z. B. Bereiche, die keine Straßen oder Landstraßen aufweisen. Wenn die Granularität hoch ist, repräsentieren die Objekte 1008a-b physische Objekte im Sichtfeld des AV 100, z. B. andere Kraftfahrzeuge, Fußgänger oder andere Entitäten, mit denen das AV 100 keinen physischen Raum teilen kann. In einer Ausführungsform sind manche oder alle der Objekte 1008a-b statische Objekte (z. B. ein Objekt, das seine Position nicht ändert, wie etwa eine Straßenlampe oder ein Strommast) oder dynamische Objekte (z. B. ein Objekt, das in der Lage ist, seine Position zu ändern, wie etwa ein Fußgänger oder ein anderes Auto).
  • Die Knoten 1006a-d sind durch Kanten 1010a-c verbunden. Falls zwei Knoten 1006a-b durch eine Kante 1010a verbunden sind, ist es für das AV 100 möglich, zwischen einem Knoten 1006a und dem anderen Knoten 1006b zu fahren, z. B. ohne zu einem Zwischenknoten fahren zu müssen, bevor es an dem anderen Knoten 1006b ankommt. (Wenn sich auf ein zwischen Knoten fahrendes AV 100 bezogen wird, bedeutet dies, dass das AV 100 zwischen den beiden physischen Positionen fährt, die durch die jeweiligen Knoten repräsentiert werden.) Die Kanten 1010a-c sind häufig bidirektional in dem Sinne, dass ein AV 100 von einem ersten Knoten zu einem zweiten Knoten oder vom zweiten Knoten zum ersten Knoten fährt. In einer Ausführungsform sind die Kanten 1010a-c unidirektional in dem Sinne, dass ein AV 100 von einem ersten Knoten zu einem zweiten Knoten fahren kann, das AV 100 jedoch nicht vom zweiten Knoten zum ersten Knoten fahren kann. Die Kanten 1010a-c sind unidirektional, wenn sie beispielsweise Einbahnstraßen, individuelle Fahrbahnen einer Straße, Landstraße oder Autobahn oder andere Merkmale, auf denen aufgrund rechtlicher oder physischer Beschränkungen nur in einer Richtung gefahren werden kann, repräsentieren.
  • In einer Ausführungsform verwendet das Planungsmodul 404 den gerichteten Graphen 1000, um einen Pfad 1012 zu identifizieren, der aus Knoten und Kanten zwischen dem Startpunkt 1002 und dem Endpunkt 1004 besteht.
  • Eine Kante 1010a-c weist assoziierte Kosten 1014a-b auf. Die Kosten 1014a-b sind ein Wert, der die Ressourcen repräsentiert, die verbraucht werden, falls das AV 100 diese Kante wählt. Eine typische Ressource ist Zeit. Falls beispielsweise eine Kante 1010a eine physische Distanz repräsentiert, die zweimal die einer anderen Kante 1010b ist, dann können die assoziierten Kosten 1014a der ersten Kante 1010a zweimal so groß sein wie die assoziierten Kosten 1014b der zweiten Kante 1010b. Andere Faktoren, die die Zeit beeinflussen, beinhalten erwarteter Verkehr, Anzahl von Kreuzungen, Geschwindigkeitsbegrenzung usw. Eine andere typische Ressource ist Kraftstoffeffizienz. Zwei Kanten 1010a-b können die gleiche physische Distanz repräsentieren, aber eine Kante 1010a kann mehr Kraftstoff erfordern als die andere Kante 1010b, z. B. infolge von Straßenbedingungen, erwartetem Wetter usw.
  • Wenn das Planungsmodul 404 einen Pfad 1012 zwischen dem Startpunkt 1002 und dem Endpunkt 1004 identifiziert, wählt das Planungsmodul 404 typischerweise einen für die Kosten optimierten Pfad, z. B. den Pfad, der die geringsten Gesamtkosten aufweist, wenn die individuellen Kosten der Kanten zusammenaddiert werden.
  • Steuerung des autonomen Fahrzeugs
  • 11 zeigt ein Blockdiagramm 1100 der Eingaben und Ausgaben eines Steuermoduls 406 (z. B. wie in 4 gezeigt). Ein Steuermodul arbeitet gemäß einer Steuerung 1102, die beispielsweise einen oder mehrere Prozessoren (z. B. einen oder mehrere Computerprozessoren wie etwa Mikroprozessoren oder Mikrocontroller oder beides) ähnlich dem Prozessor 304, Kurzzeit- und/oder Langzeit-Datenspeicherung (z. B. Speicher-Direktzugriffsspeicher oder Flash-Speicher oder beides) ähnlich dem Hauptspeicher 306, dem ROM 308 und der Speicherungsvorrichtung 210 und im Speicher gespeicherte Anweisungen, die Operationen der Steuerung 1102 ausführen, wenn die Anweisungen (z. B. durch den einen oder die mehreren Prozessoren) ausgeführt werden, beinhaltet.
  • In einer Ausführungsform empfängt die Steuerung 1102 Daten, die eine gewünschte Ausgabe 1104 repräsentieren. Die gewünschte Ausgabe 1104 beinhaltet typischerweise eine Bahngeschwindigkeit, z. B. eine Geschwindigkeit und einen Kurs. Die gewünschte Ausgabe 1104 kann beispielsweise auf Daten basieren, die von einem Planungsmodul 404 (z. B. wie in 4 gezeigt) empfangen werden. Gemäß der gewünschten Ausgabe 1104 erzeugt die Steuerung 1102 Daten, die als eine Gaspedaleingabe 1106 und eine Lenkeingabe 1108 verwendbar sind. Die Gaspedaleingabe 1106 repräsentiert den Betrag, mit dem das Gaspedal (z. B. Beschleunigungssteuerung) eines AV 100 zu betätigen ist, z. B. durch Einwirken auf das Lenkpedal oder Einwirken auf eine andere Gaspedalsteuerung, um die gewünschte Ausgabe 1104 zu erreichen. In manchen Beispielen beinhaltet die Gaspedaleingabe 1106 auch Daten, die zum Betätigen der Bremse (z. B. Verlangsamungssteuerung) des AV 100 verwendbar sind. Die Lenkeingabe 1108 repräsentiert einen Lenkwinkel, z. B. den Winkel, mit dem die Lenksteuerung (z. B. Lenkrad, Lenkwinkelaktor oder eine andere Funktionalität zum Steuern des Lenkwinkels) des AV positioniert werden sollte, um die gewünschte Ausgabe 1104 zu erreichen.
  • In einer Ausführungsform empfängt die Steuerung 1102 eine Rückmeldung, die zum Anpassen der Eingaben verwendet wird, die dem Gaspedal und der Lenkung bereitgestellt werden. Falls das AV 100 beispielsweise auf eine Beeinträchtigung 1110 trifft, wie etwa einen Hügel, wird die gemessene Geschwindigkeit 1112 des AV 100 unter die gewünschte Ausgabegeschwindigkeit gesenkt. In einer Ausführungsform wird eine jegliche gemessene Ausgabe 1114 der Steuerung 1102 bereitgestellt, sodass die notwendigen Anpassungen durchgeführt werden, z. B. basierend auf dem Unterschied 1113 zwischen der gemessenen Geschwindigkeit und der gewünschten Ausgabe. Die gemessene Ausgabe 1114 beinhaltet eine gemessene Position 1116, eine gemessene Bahngeschwindigkeit 1118 (einschließlich Geschwindigkeit und Kurs), eine gemessene Beschleunigung 1120 und andere Ausgaben, die durch Sensoren des AV 100 messbar sind.
  • In einer Ausführungsform werden Informationen über die Beeinträchtigung 1110 im Voraus detektiert, z. B. durch einen Sensor wie etwa eine Kamera oder ein LiDAR-Sensor, und einem prädiktiven Rückmeldemodul 1122 bereitgestellt. Das prädiktive Rückmeldemodul 1122 stellt dann der Steuerung 1102 Informationen bereit, die die Steuerung 1102 verwenden kann, um eine entsprechende Anpassung vorzunehmen. Falls die Sensoren des AV 100 beispielsweise einen Hügel detektieren („sehen“), können diese Informationen durch die Steuerung 1102 verwendet werden, um sich darauf vorzubereiten, das Gaspedal zu der geeigneten Zeit zu betätigen, um eine erhebliche Verlangsamung zu vermeiden.
  • 12 zeigt ein Blockdiagramm 1200 der Eingaben, Ausgaben und Komponenten der Steuerung 1102. Die Steuerung 1102 weist einen Geschwindigkeitsprofilersteller 1202 auf, der den Betrieb einer Gaspedal-/Bremssteuerung 1204 beeinflusst. Beispielsweise weist der Geschwindigkeitsprofilersteller 1202 die Gaspedal-/Bremssteuerung 1202 an, Beschleunigung zu bewirken und Verlangsamung zu bewirken, unter Verwendung des Gaspedals/der Bremse 1206, in Abhängigkeit von z. B. der Rückmeldung, die durch die Steuerung 1102 empfangen und durch den Geschwindigkeitsprofilersteller 1202 verarbeitet wird.
  • Die Steuerung 1102 weist auch eine Lateralverfolgungssteuerung 1208 auf, die den Betrieb einer Lenksteuerung 1210 beeinflusst. Beispielsweise weist die Lateralverfolgungssteuerung 1208 die Lenksteuerung 1210 an, die Position des Lenkwinkelaktors 1212 in Abhängigkeit von z. B. einer Rückmeldung, die durch die Steuerung 1102 empfangen und durch die Lateralverfolgungssteuerung 1208 verarbeitet wird, anzupassen.
  • Die Steuerung 1102 empfängt mehrere Eingaben, die zum Bestimmen verwendet werden, wie das Gaspedal/die Bremse 1206 und der Lenkwinkelaktor 1212 zu steuern sind. Ein Planungsmodul 404 stellt Informationen bereit, die durch die Steuerung 1102 verwendet werden, um z. B. einen Kurs zu wählen, wenn das AV 100 den Betrieb beginnt, und um zu bestimmen, welches Straßensegment zu durchfahren ist, wenn das AV 100 eine Kreuzung erreicht. Ein Lokalisierungsmodul 408 stellt der Steuerung 1102 Informationen bereit, die den aktuellen Standort des AV 100 beschreiben, sodass die Steuerung 1102 beispielsweise basierend auf der Weise, mit der das Gaspedal/die Bremse 1206 und der Lenkwinkelaktor 1212 gesteuert wird, bestimmen kann, ob sich das AV 100 an einem erwarteten Standort befindet. In einer Ausführungsform empfängt die Steuerung 1102 Informationen von anderen Eingaben 1214, z. B. Informationen, die von Datenbanken, Computernetzwerken usw. empfangen werden.
  • 13 zeigt einen Satz von Kommunikationspfaden, die sich zwischen Vorrichtungen 1302 und 1304 des AV 100 erstrecken. In einer speziellen Ausführungsform kann die Vorrichtung 1302 die Form eines oder mehrerer Computerprozessoren 146 annehmen, und die Vorrichtung 1304 kann die Form eines der Sensoren 121 annehmen. Die Sensoren 121, wie zuvor im Zusammenhang mit 1 besprochen, sind für das Identifizieren eines Zustands des AV 100 verantwortlich und können dazu ausgelegt sein, Metriken wie etwa Geschwindigkeit, Bahngeschwindigkeit, Beschleunigung, Position und Orientierung zu messen. Die Sensoren 121 können auch dazu ausgelegt sein, Objekte und Hindernisse nahe des AV 100 zu identifizieren. In manchen Ausführungsformen beinhaltet der aktuelle Zustand Informationen über eine Position des AV 100 auf einer Straße, eine aktuelle Geschwindigkeit und Richtung des AV 100 und eine Beschleunigungs- und/oder Rotationsrate des AV 100. Wenn der Computerprozessor 146 für das Leiten des Betriebs des AV 100 verantwortlich ist, tragen die Genauigkeit und Zuverlässigkeit dieser Zustandsinformationen zu dem sicheren Betrieb des AV 100 bei. Aus zumindest diesem Grund beschreibt 13 eine sichere Zweiwege-Kommunikationskonfiguration, die dazu ausgebildet ist, die Sicherheit der zwischen den Vorrichtungen 1302 und 1304 ausgetauschten Daten zu gewährleisten.
  • 13 zeigt außerdem, wie die Vorrichtungen dazu ausgelegt sind, über zwei separat verschlüsselte, unidirektionale Kommunikationskanäle zu kommunizieren. Verschlüsselung-Sendeempfänger, manchmal als Zustandsmaschinen bezeichnet, der Vorrichtungen werden verwendet, um unabhängige Schlüsselgenerierungen für die beiden unidirektionalen Kommunikationskanäle durchzuführen. Obwohl in 13 eine spezifische Anzahl von Kommunikationskanälen beschrieben und abgebildet ist, sollte angemerkt werden, dass in manchen Ausführungsformen eine kleinere oder größere Anzahl von multidirektionalen oder unidirektionalen Kommunikationskanälen in der Kommunikationskonfiguration enthalten sein kann. In der abgebildeten Konfiguration wird einer der unidirektionalen Kommunikationskanäle durch einen Sicherer-Kanal-Sender 1306 der Vorrichtung 1302, der mit einem Verschlüsselung-Sendeempfänger 1308 assoziiert ist, und einen Sicherer-Kanal-Empfänger 1310 der Vorrichtung 1304, der mit einem Verschlüsselung-Sendeempfänger 1312 assoziiert ist, unterstützt. In manchen Ausführungsformen kann der Verschlüsselung-Sendeempfänger 1312 dazu ausgelegt sein, eine Schlüsselgenerierung oder Schlüsselneugenerierung zu starten, indem ein Austausch von Zufallszahlen mit dem Verschlüsselung-Sendeempfänger 1308 initiiert wird, was letztendlich zu der unabhängigen Erzeugung mehrerer Verschlüsselungsschlüssel an sowohl der Vorrichtung 1302 als auch der Vorrichtung 1304 führt. Die Verschlüsselungsschlüssel, manchmal als Sitzungsschlüssel bezeichnet, werden dann verwendet, um die Übertragung von Daten vom Sicherer-Kanal-Sender 1306 zum Sicherer-Kanal-Empfänger 1310 zu gewährleisten. Die sicheren Kommunikationskanäle 1314 und 1316 können Kommunikationsleitungen sein, die die Form von z. B. Kupfer- oder Faseroptikkabeln annehmen. Die Verschlüsselung-Sendeempfänger 1318 und 1320 können dazu ausgelegt sein, unabhängig eine andere Schlüsselgenerierung durchzuführen, die eine Kommunikation zwischen dem Sicherer-Kanal-Empfänger 1322 und dem Sicherer-Kanal-Sender 1324 über den sicheren Kommunikationskanal 1326 gewährleistet.
  • Die Kommunikationskanäle 1314, 1316, 1326 und 1328 können direkt zwischen Komponenten verlaufen, wodurch die Wahrscheinlichkeit einer jeglichen Signalunterbrechung reduziert wird. Durch das Routen der Verschlüsselungskommunikationen über andere Leitungen als die tatsächliche Datenkommunikation würde ferner ein böswillig Agierender, der falsche Daten zu/von beiden Vorrichtung senden bzw. empfangen will, sich mit den Kommunikationskanälen 1314, 1316, 1326 und 1328 verbinden müssen, um alle Daten zu erhalten, die zum Verstehen, wie Kommunikationen geroutet werden, erforderlich sind. Wie nachstehend ausführlicher beschrieben wird, ist die Übertragung falscher Nachrichten zu der Vorrichtung 1302 oder der Vorrichtung 1304 durch eine nicht autorisierte Vorrichtung noch schwieriger in Konfigurationen, bei denen die erste Vorrichtung 1302 und die zweite Vorrichtung 1304 einen gemeinsam genutzten Geheimschlüssel beinhalten, der während der Herstellung des autonomen Fahrzeugs installiert wird. Übliche Formen von Angriffen, die durch die hierin beschriebenen Ausführungsformen verhindert werden können, sind die Verwendung von gefälschten oder wiederholten Verschlüsselungsschlüsseln und die Verwendung von Manin-the-Middle-Angriffen, bei denen eine nicht autorisierte Maschine in der Lage ist, Nachrichten abzufangen und Veränderungen an diesen vorzunehmen, was im Allgemeinen zu einer verschlechterten Leistungsfähigkeit des autonomen Fahrzeugs führt.
  • 14 zeigt ein Flussdiagramm, das eine Reihe von durch die Verschlüsselung-Sendeempfänger 1318 und 1320 vorgenommenen Schritten veranschaulicht, um Verschlüsselungsschlüssel während einer Schlüsselgenerierung zu erzeugen. In dem in 14 abgebildeten Beispiel initiiert der Verschlüsselung-Sendeempfänger 1318 bei 1402 die Schlüsselgenerierung durch Erzeugen einer ersten Zufallszahl und dann Senden einer Neuverschlüsselungsanforderung, die die erste Zufallszahl beinhaltet, zu dem Verschlüsselung-Sendeempfänger 1320. Bei 1404 erzeugt der Verschlüsselung-Sendeempfänger 1320 eine zweite Zufallszahl und eine Testnachricht, die in manchen Ausführungsformen die Form einer anderen zufällig erzeugten Zahl annimmt, manchmal als eine Nonce bezeichnet. Die zweite Zufallszahl und die Testnachricht werden dann zu dem Verschlüsselung-Sendeempfänger 1318 als eine Neuverschlüsselungsantwort gesendet. Obwohl der Verschlüsselung-Sendeempfänger 1320 zu diesem Zeitpunkt die beiden Zufallszahlen zum Erzeugen einer Tabelle mit Verschlüsselungsschlüsseln aufweist, kann die Verschlüsselungsschlüsselerzeugungsoperation verzögert werden, um Verarbeitungszyklen zu reduzieren, bei denen versucht wird, falsche Verschlüsselungs- oder Neuverschlüsselungsnachrichten zu senden. Eine Neuverschlüsselungsantwort sollte am Verschlüsselung-Sendeempfänger 1318 vor dem Ablauf eines ersten Zeitfensters 1406 empfangen werden, das in manchen Ausführungsformen durch die Übertragung der Neuverschlüsselungsanforderung initiiert wird. In dem Fall, bei dem keine Neuverschlüsselungsantwort durch den Verschlüsselung-Sendeempfänger 1318 vor dem Ablauf des ersten Zeitfensters 1406 empfangen wird, ist der Verschlüsselung-Sendeempfänger 1318 dazu ausgelegt, die Verschlüsselungsprozedur durch Erzeugen und Senden einer neuen Zufallszahl als eine Neuverschlüsselungsanforderung zu dem Verschlüsselung-Sendeempfänger 1320 neu zu starten.
  • Wenn die Neuverschlüsselungsantwort durch den Verschlüsselung-Sendeempfänger 1318 vor dem Ablauf des ersten Zeitfensters 1406 empfangen wird, wird die Schlüsselgenerierung bei 1408 fortgesetzt, bei dem der Verschlüsselung-Sendeempfänger 1318 oder ein Prozessor der Vorrichtung 1302, der mit dem Verschlüsselung-Sendeempfänger 1318 assoziiert ist, dazu ausgelegt sein kann, die erste und zweite zufällig erzeugte Zahl zu verwenden, um eine Tabelle Ks zu erzeugen, die mehrere Verschlüsselungsschlüssel beinhaltet. In manchen Ausführungsformen kann die Erzeugung der Tabelle Ks unter Verwendung eines Hashing-Protokolls durchgeführt werden, bekannt als HKDF (HMAC-basierte Extract-and-Expand Key Derivation Function). Dieses Protokoll verwendet die beiden zufällig erzeugten Zahlen sowie einen gemeinsam genutzten Geheimschlüssel, der im Speicher sowohl der Vorrichtung 1302 als auch der Vorrichtung 1304 gespeichert ist, um die Verschlüsselungsschlüssel zu erzeugen. Der gemeinsam genutzte Geheimschlüssel kann in einem sicheren Speichermodul/einer sicheren Enklave jeder Vorrichtung während der initialen Herstellung des AV 100 gespeichert werden. In manchen Ausführungsformen kann die Tabelle Ks 255 unterschiedliche Verschlüsselungsschlüssel beinhalten. In manchen Ausführungsformen kann die Tabelle Ks mit einer größeren oder kleineren Anzahl von Verschlüsselungsschlüsseln befüllt werden.
  • Ein erster der Verschlüsselungsschlüssel, Ks[0] aus der Tabelle Ks, wird zum Berechnen eines Hash der vom Verschlüsselung-Sendeempfänger 1320 empfangenen Testnachricht verwendet. In manchen Ausführungsformen kann das Hash die Form eines HMAC-Digests annehmen, das an das Ende der Testnachricht angehängt ist. Die Testnachricht wird zusammen mit dem Hash der Testnachricht zu dem Verschlüsselung-Sendeempfänger 1320 als eine Neuverschlüsselungsbestätigung gesendet. Zu diesem Zeitpunkt bringt die Vorrichtung 1302 den Sicherer-Kanal-Empfänger 1322 online, um sich auf Übertragungen vom Sicherer-Kanal-Sender 1324 vorzubereiten. In Fällen, bei denen die Neuverschlüsselungsbestätigung nicht innerhalb eines zweiten Zeitfensters 1410 gesendet wird, kann die Schlüsselgenerierung abgebrochen werden. In Fällen, bei denen die Neuverschlüsselungsbestätigung innerhalb des zweiten Zeitfensters 1410 gesendet wird, fährt der Verschlüsselung-Sendeempfänger 1320 mit 1412 fort, zu welcher Zeit der Verschlüsselung-Sendeempfänger 1320 unabhängig die gleiche Tabelle Ks, die durch den Verschlüsselung-Sendeempfänger 1318 erzeugt wird, berechnet. Es sollte angemerkt werden, dass die Zeitfenster 1406 und 1410 allgemein voneinander getrennt sind und aufgrund der sequenziellen Art der Schlüsselgenerierung/Schlüsselneugenerierung nicht überlappen werden.
  • Bei 1414 kann der Verschlüsselung-Sendeempfänger 1320 dazu ausgelegt sein, dann zu bestätigen, dass er die Tabelle Ks korrekt berechnet hat, indem er das empfangene Hash der Testnachricht mit einem Hash der Testnachricht vergleicht, das er unter Verwendung eines Schlüssels Ks[0] aus seiner neu erzeugten Tabelle Ks unabhängig erzeugt. Wenn die Hash-Werte übereinstimmen, kann ein Nachrichtensequenzzähler auf Null gesetzt werden und der Sicherer-Kanal-Sender 1324 beginnt Datenübertragungen zum Sicherer-Kanal-Empfänger 1322 vor dem Ablauf eines dritten Zeitraums 1416. Der Fehlschlag, eine Übertragung vor dem Ablauf des dritten Zeitraums 1416 zu beginnen, resultiert in einer Zurückweisung der Datenübertragung und einen Neustart der Schlüsselgenerierung. Jede Datenübertragung vom Sicherer-Kanal-Sender 1324 zum Sicherer-Kanal-Empfänger 1322 kann ein Hash der gesendeten Nachricht, die unter Verwendung eines der Verschlüsselungsschlüssel aus der Tabelle Ks erzeugt wird, einen Nachrichtensequenzzählerwert und die substanziellen Daten, die zwischen den Vorrichtungen 1302 und 1304 ausgetauscht werden, enthalten. Der substanzielle Datenteil der Nachricht kann in einem verschlüsselten oder unverschlüsselten Zustand übertragen werden. In manchen Ausführungsformen basiert der Nachrichtensequenzzähler auf einem 32-Bit-Register, das ermöglicht, dass eindeutige Nachrichtensequenzzählerwerte für über vier Milliarden Übertragungen zugewiesen werden. Ein Hash jeder neuen Nachricht, das unter Verwendung eines neuen der Verschlüsselungsschlüssel aus der Tabelle Ks erzeugt wird, kann in die neuen Nachrichten eingegeben werden, nachdem der Nachrichtensequenzzähler zurückgesetzt wird, um die Situation zu vermeiden, bei der alte Nachrichten mit übereinstimmenden Zählerwerten erneut übertragen werden können, um Sicherheitsmaßnahmen zu umgehen. Jede Zeitspanne, während der ein einzelner Verschlüsselungsschlüssel verwendet wird und deren Dauer basierend auf der Frequenz von ausgetauschten Nachrichten oder Ereignissen nicht in Bezug auf die Anzahl von ausgetauschten Nachrichten, die zu der Initiierung einer Schlüsselneugenerierung führen, variieren kann, kann als eine Epoche bezeichnet werden.
  • Obwohl die mit Bezug auf 14 beschriebene vorgenannte Operation allgemein als eine Schlüsselgenerierung bezeichnet wird, kann diese Reihe von Schritten auch verwendet werden, um eine Schlüsselneugenerierung durchzuführen, die zum Aktualisieren der in der Tabelle Ks gespeicherten Verschlüsselungsschlüssel durchgeführt wird. In manchen Ausführungsformen könnte ein Fehlschlag, die Schlüssel zu aktualisieren, zu einem Abbruch der Schlüsselneugenerierung und fortgesetzter Verwendung der bestehenden Verschlüsselungsschlüssel führen. Ein oder mehrere Ereignisse könnten stattfinden, um die Schlüsselneugenerierung zu rechtfertigen. Beispielsweise könnte jedes Mal, wenn ein neuer Benutzer beginnt, das AV 100 zu verwenden, eine Schlüsselneugenerierung initiiert werden. Andere Gründe zum Durchführen einer Schlüsselneugenerierung beinhalten die Inbetriebsetzung des AV 100 und die Erschöpfung aller erzeugten Verschlüsselungsschlüssel in der Tabelle Ks.
  • 15A zeigt eine Reihe von Operationen, die von der Perspektive der Vorrichtung 1302 aus durchgeführt werden. Der Verschlüsselung-Sendeempfänger 1318, wie in dem die 14 begleitenden Text beschrieben, ist für das Initiieren einer Schlüsselgenerierung verantwortlich, die Schlüssel erzeugt, die dazu ausgelegt sind, vom Sicherer-Kanal-Sender 1324 zum Sicherer-Kanal-Empfänger 1322 gesendete Kommunikationen zu validieren. In manchen Ausführungsformen ist der Verschlüsselung-Sendeempfänger 1312 für das Initiieren einer Schlüsselgenerierung oder Schlüsselneugenerierung zum Erstellen von Kommunikationen vom Sicherer-Kanal-Sender 1306 zum Sicherer-Kanal-Empfänger 1310 verantwortlich. Durch das Konfigurieren des System auf diese Weise sind sowohl die Vorrichtung 1302 als auch 1304 für das Initiieren von Kommunikationen über einen der sicheren Kommunikationskanäle 13414 und 1326 verantwortlich.
  • Bei 1502 ist die Vorrichtung 1302 dazu ausgelegt, die Übertragung von Daten über den sicheren Kommunikationskanal 1326 zu deaktivieren, einen Neuverschlüsselungsanforderungstimer entsprechend dem ersten Zeitfenster 1406 zu initiieren und eine Neuverschlüsselungsanforderung zu der zweiten Vorrichtung 1304 zu übertragen, um eine Schlüsselgenerierung zu beginnen. Der Ablauf des Neuverschlüsselungsanforderungstimers führt zu der Wiederholung von 1502, bis eine Neuverschlüsselungsantwort während des noch nicht abgelaufenen Neuverschlüsselungsanforderungstimers empfangen wird. Der Empfang einer ordnungsgemäß validierten Neuverschlüsselungsantwort innerhalb des noch nicht abgelaufenen Neuverschlüsselungsantworttimers resultiert darin, dass die Vorrichtung 1302 zu 1504 übergeht. Bei 1504 beginnt die Vorrichtung 1302 einen Bestätigungs-Timout-Timer und überträgt eine Neuverschlüsselungsbestätigung zu der Vorrichtung 1304. Bei 1506, nach dem Empfang des sicheren Kanalverkehrs von der Vorrichtung 1304 über den sicheren Kommunikationskanal 1326 vor dem Ablauf des Bestätigungs-Timout-Timers, ermöglicht die Vorrichtung 1302 die Übertragung von Verkehr über den sicheren Kommunikationskanal 1326. Falls kein Verkehr vor dem Ablauf des Bestätigungs-Timout-Timers empfangen wird, kehrt die Vorrichtung 1302 zu 1502 zurück.
  • 15B zeigt eine Reihe von Operationen, die von der Perspektive der Vorrichtung 1304 aus durchgeführt werden. Der Verschlüsselung-Sendeempfänger 1320, wie in dem 14 begleitenden Text beschrieben, ist für das Empfangen einer Verschlüsselung- oder Neuverschlüsselungsanforderung vom Verschlüsselung-Sendeempfänger 1318 der Vorrichtung 1302 verantwortlich. Vor dem Empfangen der Verschlüsselung- oder Neuverschlüsselungsanforderung bei 1552 kann der Link zwischen den Vorrichtungen 1302 und 1304 deaktiviert werden. Sobald eine Neuverschlüsselungsanforderung von der Vorrichtung 1302 empfangen wird, initiiert die Vorrichtung 1302 bei 1554 einen Neuverschlüsselungsbestätigungstimer und sendet eine Neuverschlüsselungsantwort zurück zu der Vorrichtung 1302. Wenn keine Neuverschlüsselungsbestätigung innerhalb eines Zeitfensters empfangen wird, das durch den Neuverschlüsselungsbestätigungstimer definiert wird, kehrt die Vorrichtung 1304 zu 1552 zurück, bis eine neue Neuverschlüsselungsanforderung von der Vorrichtung 1302 empfangen wird. Die Vorrichtung 1304 wird auch als Reaktion auf eine Bestimmung, dass eine Neuverschlüsselungsbestätigung, die vor dem Ablauf des Neuverschlüsselungsbestätigungstimers empfangen wird, unzulässig ist, zu 1552 zurückkehren. Die Neuverschlüsselungsbestätigung kann auf eine Anzahl unterschiedlicher Weisen als unzulässig bestimmt werden. Eine zufällig erzeugte Testnachricht, die ursprünglich in der Neuverschlüsselungsantwort gesendet wird, kann geprüft werden, um zu bestätigen, dass die in der Neuverschlüsselungsbestätigung enthaltene zufällig erzeugte Testnachricht die gleiche ist. In manchen Ausführungsformen wird die Vorrichtung 1304 zu 1556 übergehen und die Tabelle Ks vor dem vollständigen Authentifizieren/Validieren der Neuverschlüsselungsbestätigung erzeugen oder aktualisieren. Ein Verschlüsselungsschlüssel aus der durch die Vorrichtung 1304 unabhängig erzeugten Tabelle Ks kann verwendet werden, um einen Verschlüsselungsschlüssel Ks[0] zu validieren, der zum Erzeugen eines Hash verwendet wird, das in der Neuverschlüsselungsbestätigung enthalten ist, als eine Weise, um zu bestätigen, dass die Neuverschlüsselungsbestätigung durch die Vorrichtung 1302 gesendet wurde und dass die durch die Vorrichtung 1302 erzeugte Tabelle Ks mit der durch die Vorrichtung 1304 erzeugten Tabelle Ks übereinstimmt. In manchen Ausführungsformen können die Vorrichtungen 1302 und 1304 mit der Schlüsselgenerierung aufhören, falls ein Angriff als ein Denial-of-Service-Angriff bestimmt wird. In einem solchen Fall könnte erforderlich sein, dass das autonome Fahrzeug in einem Modus mit reduzierter Funktionalität arbeitet oder autonome Operationen vollständig suspendiert, in Abhängigkeit von der Wichtigkeit der ausgetauschten Daten.
  • Beispielhafter Prozess zum Validieren von Nachrichten, die zwischen einer ersten Vorrichtung und einer zweiten Vorrichtung eines autonomen Fahrzeugs ausgetauscht werden
  • 16 ist ein Flussdiagramm eines beispielhaften Prozesses 1600 zum Validieren sicherer Kommunikationen zwischen zwei Vorrichtungen. Zur Vereinfachung wird der Prozess 1600 so beschrieben, dass er durch ein System eines oder mehrerer Computer durchgeführt wird, die sich an einem oder mehreren Orten befinden. Beispielsweise können die Vorrichtungen 1302 und 1304 von 13, zweckmäßig gemäß dieser Patentschrift programmiert, den Prozess 1600 durchführen. Bei 1602 ist die Vorrichtung 1302 dazu ausgelegt, eine Schlüsselgenerierung durchzuführen, die das Austauschen von zufällig erzeugten Zahlen und Erzeugen von Verschlüsselungsschlüsseln beinhaltet. Die Schlüsselgenerierung beinhaltet den Austausch einer ersten Zahl, die zufällig durch eine erste Vorrichtung (z. B. 1302) erzeugt wird, und einer zweiten Zahl, die zufällig durch eine zweite Vorrichtung (z. B. 1304) erzeugt wird. In manchen Ausführungsformen werden die Übertragungen der ersten und zweiten Zufallszahl von einem gemeinsam genutzten Geheimschlüssel begleitet, der nur der ersten und zweiten Vorrichtung bekannt ist, um zu verhindern, dass eine Außenentität (z. B. ein böswillig Agierender) versucht, Kommunikationen mit entweder der ersten Vorrichtung und/oder der zweiten Vorrichtung zu initiieren. Die ausgetauschten Zufallszahlen werden dann durch sowohl die erste als auch die zweite Vorrichtung verwendet, um jeweils unabhängig eine Tabelle mit Verschlüsselungsschlüsseln zu erzeugen. Bei 1604 wird eine erste Nachricht, die einen ersten Nachrichtensequenzzählerwert und ein durch einen ersten Verschlüsselungsschlüssel aus der Tabelle mit Verschlüsselungsschlüssel erzeugtes erstes Hash beinhaltet, durch die erste Vorrichtung empfangen. Die erste Vorrichtung kann die erste Nachricht validieren durch Bestätigen, dass das erste erzeugte Hash durch den ersten Verschlüsselungsschlüssel aus der Tabelle mit Verschlüsselungsschlüsseln erzeugt wurde, die sie unter Verwendung der Zufallszahlen erzeugte. Die erste Vorrichtung speichert zumindest den Nachrichtensequenzzählerwert in einem temporären Speicher. Der gespeicherte Nachrichtensequenzzählerwert ermöglicht der ersten Vorrichtung, anschließend Nachrichten mit inkrementell höheren Nachrichtensequenzzählerwerten zu erzeugen und jegliche Nachrichten mit Zählerwerten geringer als dem an der ersten Nachricht angehängten Nachrichtensequenzzählerwert als einen Versuch des Neusendens alter Nachrichten zurückzuweisen.
  • Bei 1606 von 16 wird eine zweite Nachricht an der ersten Vorrichtung empfangen, die einen zweiten Nachrichtensequenzzählerwert, ein durch den ersten Verschlüsselungsschlüssel erzeugtes zweites Hash und jegliche Daten, die zu der ersten Vorrichtung übermittelt werden, beinhaltet. Bei 1608 ist die erste Vorrichtung durch Bestätigen, dass der zweite Nachrichtensequenzzählerwert größer ist als der erste Nachrichtensequenzzählerwert und dass der zum Erzeugen des zweiten Hash verwendete erste Verschlüsselungsschlüssel aus der während der jüngsten Schlüsselgenerierung oder Schlüsselneugenerierung erzeugten Tabelle von Verschlüsselungsschlüsseln stammt, in der Lage, die Nachricht als durch die zweite Vorrichtung gesendet zu authentifizieren. In manchen Ausführungsformen prüft die erste Vorrichtung auch, um zu gewährleisten, dass der erste Verschlüsselungsschlüssel der gleiche Verschlüsselungsschlüssel ist, der in vorherigen Nachrichten gesendet wurde. In dem Fall, dass der erste Verschlüsselungsschlüssel nicht der gleiche ist, aber immer noch in der Verschlüsselungsschlüsseltabelle enthalten ist, kann die erste Vorrichtung weiterhin authentifiziert werden, wenn bestätigt wird, dass der Nachrichtensequenzzählerwert zurückgesetzt wurde.
  • Bei 1610 wird eine dritte Nachricht an der ersten Vorrichtung empfangen, die einen dritten Nachrichtensequenzzählerwert, ein durch einen zweiten Verschlüsselungsschlüssel, der sich vom ersten Verschlüsselungsschlüssel unterscheidet, erzeugtes drittes Hash und jegliche Daten, die zu der ersten Vorrichtung übermittelt werden, beinhaltet. Bei 1612 ist die erste Vorrichtung durch Bestätigen, dass der zum Erzeugen des dritten Hash verwendete zweite Verschlüsselungsschlüssel in der Tabelle von Verschlüsselungsschlüssel enthalten ist und dass der dritte Nachrichtensequenzzählerwert kleiner ist als der zweite Nachrichtensequenzzählerwert, in der Lage, die Nachricht als durch die zweite Vorrichtung gesendet zu authentifizieren. In manchen Ausführungsformen muss der zweite Verschlüsselungsschlüssel als der nächste Verschlüsselungsschlüssel in der Tabelle mit Verschlüsselungsschlüsseln bestimmt werden. Wie oben besprochen, wird ein Wechsel der Verschlüsselungsschlüssel allgemein nach einem Rollover eines zum Verfolgen des Nachrichtensequenzzählerwerts verwendeten Registers durchgeführt. Andere Ereignisse wie etwa ein Passagieraustausch oder andere identifizierte Sicherheitsrisiken könnten jedoch die Initiierung einer Schlüsselneugenerierung veranlassen. In manchen Ausführungsformen ist das Register ein 32-Bit-Register, das ermöglicht, dass über vier Milliarden Nachrichten zwischen der ersten und zweiten Vorrichtung ausgetauscht werden, bevor der Nachrichtensequenzzählerwert auf Eins zurückgesetzt wird und ein neuer Verschlüsselungsschlüssel verwendet wird, um die Übertragung alter Nachrichten zu einer der Vorrichtungen zu verhindern, was die Leistungsfähigkeit des autonomen Fahrzeugs negativ beeinflussen könnte. Beispielsweise in dem Fall, dass die erste Vorrichtung ein Prozessor ist, der zum Erzeugen von Eingaben in die verschiedenen Steuerungen des autonomen Fahrzeugs verantwortlich ist, und die zweite Vorrichtung ein Geschwindigkeits- oder Bahngeschwindigkeitssensor ist, könnte die Übertragung zu dem Prozessor, die das autonome Fahrzeug bei einer erheblich anderen Geschwindigkeit zeigt als die durch das autonome Fahrzeug angeforderte Geschwindigkeit, darin resultieren, dass der Prozessor anfordert, dass eine schnelle Korrektur angewendet wird, wenn tatsächlich wenig oder keine Korrektur erforderlich ist. Solch eine Handlung könnte zu einem Unfall und möglicher Verletzung eines im autonomen Fahrzeug fahrenden Passagiers führen.
  • In der vorstehenden Beschreibung wurden Ausführungsformen der Erfindung mit Bezug auf zahlreiche spezifische Einzelheiten beschrieben, die von Implementierung zu Implementierung variieren können. Die Beschreibung und Zeichnungen sind dementsprechend als veranschaulichend anstatt beschränkend anzusehen. Der alleinige und ausschließliche Indikator des Schutzumfangs der Erfindung, und was durch die Anmelder als der Schutzumfang der Erfindung beabsichtigt ist, ist der wörtliche und äquivalente Schutzumfang des Satzes von Ansprüchen, die aus dieser Anmeldung hervorgehen, in der spezifischen Form, in der derartige Ansprüche hervorgehen, einschließlich einer beliebigen anschließenden Korrektur. Jegliche hierin ausdrücklich dargelegte Definitionen für in derartigen Ansprüchen enthaltenen Begriffe sollen die Bedeutung solcher Begriffe regulieren, wie in den Ansprüchen verwendet. Zusätzlich kann, wenn der Begriff „ferner umfassend“ in der vorstehenden Beschreibung oder in den folgenden Ansprüchen verwendet wird, das, was diesem Ausdruck folgt, ein zusätzlicher Schritt oder eine zusätzliche Entität oder ein Teilschritt/eine Teilentität eines zuvor vorgetragenen Schritts oder einer zuvor vorgetragenen Entität sein.
  • 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
    • US 62/944987 [0001]
  • Zitierte Nicht-Patentliteratur
    • 6. Dezember 2019 und mit dem Titel „CYBER-SECURITY PROTOCOL‟ [0001]

Claims (15)

  1. Verfahren zum Authentifizieren von Kommunikationen, die von einer ersten Vorrichtung eines autonomen Fahrzeugs durch eine zweite Vorrichtung des autonomen Fahrzeugs empfangen werden, wobei das Verfahren Folgendes umfasst: Durchführen, unter Verwendung einer Verarbeitungsschaltung der zweiten Vorrichtung, einer Schlüsselgenerierung, umfassend: Austauschen von zufällig erzeugten Zahlen mit der ersten Vorrichtung; und Erzeugen mehrerer Verschlüsselungsschlüssel unter Verwendung der zufällig erzeugten Zahlen; Empfangen, an der zweiten Vorrichtung, einer ersten Nachricht, die Folgendes beinhaltet: einen ersten Nachrichtensequenzzählerwert; und ein unter Verwendung eines ersten Verschlüsselungsschlüssels der mehreren Verschlüsselungsschlüssel erzeugtes Hash; nach dem Empfangen der ersten Nachricht, Empfangen einer zweiten Nachricht an der zweiten Vorrichtung, die einen zweiten Nachrichtensequenzzählerwert und ein unter Verwendung des ersten Verschlüsselungsschlüssels erzeugtes Hash beinhaltet; gemäß einer Bestimmung, dass der zweite Nachrichtensequenzzählerwert größer ist als der erste Nachrichtensequenzzählerwert, Authentifizieren der zweiten Nachricht als von der ersten Vorrichtung empfangen; nach dem Empfangen der zweiten Nachricht, Empfangen einer dritten Nachricht, die einen dritten Nachrichtensequenzzählerwert und ein unter Verwendung des zweiten Verschlüsselungsschlüssels der mehreren Verschlüsselungsschlüssel erzeugtes Hash beinhaltet; und gemäß einer Bestimmung, dass der dritte Nachrichtensequenzzählerwert kleiner ist als der zweite Nachrichtensequenzzählerwert und sich der zum Erzeugen des dritten Hash verwendete zweite Verschlüsselungsschlüssel vom ersten Verschlüsselungsschlüssel unterscheidet, Authentifizieren der dritten Nachricht als von der ersten Vorrichtung empfangen.
  2. Verfahren nach Anspruch 1, ferner umfassend Authentifizieren der zufällig erzeugten Zahlen während der Schlüsselgenerierung durch Bestätigen, dass ein die Zahlen begleitender Teil der Nachricht einem Schlüssel entspricht, der von sowohl der ersten als auch der zweiten Vorrichtung gemeinsam genutzt wird.
  3. Verfahren nach einem der Ansprüche 1-2, wobei die Schlüsselgenerierung ferner eine Verschlüsselungskommunikation und eine Verschlüsselungsantwortkommunikation umfasst, die innerhalb getrennter Zeitfenster übertragen werden, und/oder vorzugsweise wobei die Schlüsselgenerierung Initiieren der Schlüsselgenerierung durch die zweite Vorrichtung umfasst.
  4. Verfahren nach einem der Ansprüche 1-3, wobei das Austauschen von zufällig erzeugten Zahlen umfasst: Senden, durch die zweite Vorrichtung, einer Verschlüsselungsantwortkommunikation zu der ersten Vorrichtung als Reaktion auf das Empfangen, durch die zweite Vorrichtung, einer Verschlüsselungsanforderungskommunikation von der ersten Vorrichtung, wobei die Verschlüsselungsantwortkommunikation eine erste zufällig erzeugte Zahl der zufällig erzeugten Zahlen und eine Testnachricht umfasst.
  5. Verfahren nach Anspruch 4, wobei das Austauschen von zufällig erzeugten Zahlen umfasst: Empfangen, von der ersten Vorrichtung, einer Verschlüsselungsbestätigung an der zweiten Vorrichtung nach dem Senden der zufällig erzeugten Zahl von der zweiten Vorrichtung, und/oder vorzugsweise wobei die Verschlüsselungsbestätigung ein durch einen dritten Verschlüsselungsschlüssel der Verschlüsselungsschlüssel erzeugtes viertes Hash und die Testnachricht umfasst.
  6. Verfahren nach einem der Ansprüche 1-5, wobei sowohl die erste als auch die zweite Vorrichtung unabhängig die mehreren Verschlüsselungsschlüssel während der Schlüsselgenerierung erzeugen.
  7. Verfahren nach Anspruch 1, wobei jedes Mal, wenn ein Register des Nachrichtensequenzzählers zurückgesetzt wird, ein nicht verwendeter der Verschlüsselungsschlüssel verwendet wird.
  8. Verfahren nach einem der Ansprüche 1-7, wobei der erste und zweite Nachrichtensequenzzählerwert unter Verwendung eines 32-Bit-Registers erzeugt werden und die mehreren Verschlüsselungsschlüssel mindestens 255 in einer Tabelle organisierte Verschlüsselungsschlüssel umfassen.
  9. Verfahren nach einem der Ansprüche 1-8, wobei die mehreren Verschlüsselungsschlüssel als Reaktion auf vorbestimmte Kriterien neu erzeugt werden.
  10. Verfahren nach einem der Ansprüche 1-9, ferner umfassend Abbrechen der Kommunikation zwischen der ersten und zweiten Vorrichtung nach dem Empfangen einer Schwellenanzahl von nicht authentifizierten Nachrichten.
  11. Verfahren nach einem der Ansprüche 1-10, wobei die erste Vorrichtung einen Sensor umfasst, der dazu ausgelegt ist, die Navigation des autonomen Fahrzeugs zu unterstützen, und/oder vorzugsweise wobei der Sensor ein Bahngeschwindigkeitssensor oder ein Objektdetektionssensor ist.
  12. Verfahren nach einem der Ansprüche 1-11, wobei die von der ersten Vorrichtung an der zweiten Vorrichtung empfangene erste, zweite und dritte Nachricht über einen ersten Kanal übertragen werden und die zweite Vorrichtung dazu ausgelegt ist, Nachrichten zu der ersten Vorrichtung unter Verwendung eines zweiten Kanals zu übertragen, der sich vom ersten Kanal unterscheidet, und wobei die erste und zweite Vorrichtung dazu ausgelegt sind, unabhängige Schlüsselneugenerierungen für sowohl den ersten als auch den zweiten Kanal durchzuführen, und/oder vorzugsweise wobei die Kommunikationen Sensordaten umfassen, die sich auf das autonome Fahren des autonomen Fahrzeugs beziehen und von der ersten Vorrichtung zu der zweiten Vorrichtung gesendet werden.
  13. Verfahren nach Anspruch 1, ferner umfassend, gemäß einer Bestimmung, dass der zweite Nachrichtensequenzzählerwert kleiner oder gleich dem ersten Nachrichtensequenzzählerwert ist, Verwerfen der zweiten Nachricht, und/oder vorzugsweise wobei das Authentifizieren der dritten Nachricht gemäß einer Bestimmung, dass das dritte Hash durch den zweiten Verschlüsselungsschlüssel erzeugt wurde und dass der zweite Verschlüsselungsschlüssel einer der mehreren Verschlüsselungsschlüssel ist, durchgeführt wird.
  14. Speicherungsmedium bzw. Speicherungsmedien, die Anweisungen speichern, die bei Ausführung durch eine oder mehrere Rechenvorrichtungen die Durchführung des in einem der Ansprüche 1-13 dargelegten Verfahrens bewirken.
  15. Vorrichtung, die Folgendes umfasst: eine Verarbeitungsschaltung; und Speicher, der ein oder mehrere Programme speichert, die für die Ausführung durch die Verarbeitungsschaltungen konfiguriert sind, wobei das eine oder die mehreren Programme Anweisungen zum Durchführen des in einem der Ansprüche 1-13 dargelegten Verfahrens beinhalten.
DE102020132273.9A 2019-12-06 2020-12-04 Cybersicherheitsprotokoll Pending DE102020132273A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962944987P 2019-12-06 2019-12-06
US62/944,987 2019-12-06

Publications (1)

Publication Number Publication Date
DE102020132273A1 true DE102020132273A1 (de) 2021-06-10

Family

ID=74175166

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020132273.9A Pending DE102020132273A1 (de) 2019-12-06 2020-12-04 Cybersicherheitsprotokoll

Country Status (5)

Country Link
US (1) US11750399B2 (de)
KR (1) KR102617601B1 (de)
CN (1) CN112929176A (de)
DE (1) DE102020132273A1 (de)
GB (3) GB2609565B (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220407716A1 (en) * 2021-06-21 2022-12-22 Motional Ad Llc Authenticated point cloud data
US20220408245A1 (en) * 2021-06-21 2022-12-22 Motional Ad Llc Session key generation for autonomous vehicle operation
US11792644B2 (en) 2021-06-21 2023-10-17 Motional Ad Llc Session key generation for autonomous vehicle operation
CN114095423B (zh) * 2021-10-11 2023-04-14 北京东方京海电子科技有限公司 基于mpls的电力通信骨干网数据安全防护方法及系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483596A (en) * 1994-01-24 1996-01-09 Paralon Technologies, Inc. Apparatus and method for controlling access to and interconnection of computer system resources
US9715678B2 (en) 2003-06-26 2017-07-25 Microsoft Technology Licensing, Llc Side-by-side shared calendars
US8966289B2 (en) * 2010-12-17 2015-02-24 Nxp B.V. Pairing of angle sensor and electronic control unit
US8837741B2 (en) * 2011-09-12 2014-09-16 Qualcomm Incorporated Systems and methods for encoding exchanges with a set of shared ephemeral key data
JP6187251B2 (ja) 2013-12-27 2017-08-30 富士通株式会社 データ通信方法、およびデータ通信装置
US9792440B1 (en) * 2014-04-17 2017-10-17 Symantec Corporation Secure boot for vehicular systems
CN110708166B (zh) * 2014-05-08 2022-07-01 松下电器(美国)知识产权公司 不正常应对方法、车载网络系统及电子控制单元
US20160127903A1 (en) * 2014-11-05 2016-05-05 Qualcomm Incorporated Methods and systems for authentication interoperability
JP6260064B2 (ja) 2016-03-14 2018-01-17 Kddi株式会社 通信ネットワークシステム及び車両
JP2019140577A (ja) * 2018-02-13 2019-08-22 株式会社デンソー 電子制御装置及び通信システム
US10243732B1 (en) * 2018-06-27 2019-03-26 Karamba Security Cryptographic key management for end-to-end communication security
US20200112439A1 (en) * 2018-10-03 2020-04-09 Panasonic Automotive Systems Company Of America, Division Of Panasonic Corporation Of North America Secure controller area network in vehicles
US11323548B2 (en) * 2019-01-20 2022-05-03 Arilou Information Security Technologies Ltd. System and method for data compression based on data position in frames structure

Also Published As

Publication number Publication date
GB202310236D0 (en) 2023-08-16
GB2609565B (en) 2023-08-23
GB202213570D0 (en) 2022-11-02
GB2609565A8 (en) 2023-05-24
US11750399B2 (en) 2023-09-05
KR102617601B1 (ko) 2023-12-22
GB202019064D0 (en) 2021-01-20
KR20210071847A (ko) 2021-06-16
US20210176071A1 (en) 2021-06-10
GB2593257A (en) 2021-09-22
CN112929176A (zh) 2021-06-08
GB2593257B (en) 2022-10-26
GB2609565A (en) 2023-02-08

Similar Documents

Publication Publication Date Title
DE102020131323A1 (de) Kamera-zu-lidar-kalibration und -validierung
DE112020000487T5 (de) Automatisches wählen von datenproben zur annotation
DE102020111938A1 (de) Systeme und verfahren zum planen und aktualisieren einer fahrzeugtrajektorie
DE102021101758A1 (de) Ampeldetektionssystem für ein fahrzeug
DE102020111682A1 (de) Systeme und verfahren zum implementieren einer autonomen fahrzeugreaktion auf ein sensorversagen
DE102020121551A1 (de) Verfahren zur passagierauthentifizierung und zum türbetrieb für autonome fahrzeuge
DE102020129854A1 (de) Sequenzielle fusion zur 3d-objektdetektion
DE102020132273A1 (de) Cybersicherheitsprotokoll
DE102020129456A1 (de) Trajektorienvorhersage aus einer vorberechneten oder dynamisch generierten bank von trajektorien
DE102020109191A1 (de) Sicheres booten von fahrzeugprozessoren
DE112019006128T5 (de) Systeme und verfahren zum validieren von sensorkalibrierung
DE112020000653T5 (de) Zusammenführen von daten aus mehreren lidar-vorrichtungen
DE102020133982A1 (de) Automatisierte objektannotation unter verwendung fusionierter kamera-/lidar-datenpunkte
DE102020210499A1 (de) Datengesteuerte regelwerke
DE112019006282T5 (de) Betrieb eines Fahrzeugs unter Verwendung mehrerer Bewegungsbeschränkungen
DE102020210454A1 (de) Kühllösungen für autonome Fahrzeuge
DE102020126217A1 (de) Navigieren von Mehrwege-Stopp-Kreuzungen mit einem autonomen Fahrzeug
DE112020002695T5 (de) Autonomer fahrzeugbetrieb mittels linearer temporaler logik
DE102020128155A1 (de) Bedingte bewegungsvorhersagen
DE102021124931A1 (de) Vorrichtungsbereitstellung und -autentifizierung
DE102020132302A1 (de) Sicherheitssystem für ein fahrzeug
DE102020120873A1 (de) Lokalisierung basierend auf vordefinierten merkmalen der umgebung
DE102021133742A1 (de) Planung einer trajektorie eines autonomen fahrzeugs mit dynamischem zustand
DE102020128154A1 (de) Trajektorieplanung für fahrzeuge unter verwendung von routeninformationen
DE102021131844A1 (de) Systeme und verfahren zum implementieren von verdeckungspräsentationen über strassenmerkmale

Legal Events

Date Code Title Description
R012 Request for examination validly filed