Systems and methods for autonomous vehicle cooperation via hydin
By designing a hybrid distributed connectivity network (HYDIN) and a collaborative controller, the problem of inefficient data exchange between autonomous vehicles is solved, enabling more efficient collaborative application execution.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- GM GLOBAL TECHNOLOGY OPERATIONS LLC
- Filing Date
- 2022-02-18
- Publication Date
- 2026-06-23
AI Technical Summary
There are problems with inefficient and delayed data exchange between existing autonomous vehicles, especially when using the Open Systems Interconnection (OSI) seven-layer scheme for data communication.
Hybrid Distributed Connectivity Network (HYDIN) is used for vehicle data exchange. Cooperative controllers and transceivers are used to broadcast and receive cooperative messages. Resource allocation modules and local data buffers are used to manage buffer space. Data transmission is carried out by combining a distributed network model of the data link layer and the physical layer.
It improves the efficiency of data exchange between autonomous vehicles, reduces latency, and supports the efficient execution of collaborative applications such as queuing and lane-changing applications.
Smart Images

Figure CN116653992B_ABST
Abstract
Description
Technical Field
[0001] This technical field generally relates to autonomous vehicles, and more specifically to systems and methods for enabling autonomous vehicles to collaborate via a hybrid distributed connectivity network. Background Technology
[0002] Automated vehicles often collaborate while performing different collaborative applications. Collaboration typically involves the exchange of vehicle data associated with each automated vehicle involved in performing the collaborative application. Examples of collaborative applications include, but are not limited to, queuing and lane-changing applications.
[0003] Using the Open Systems Interconnection (OSI) seven-layer scheme for vehicle data exchange may result in inefficient use of data payload resources and latency associated with vehicle data communication between autonomous vehicles. Summary of the Invention
[0004] In one embodiment, a vehicle collaboration system for a first autonomous vehicle includes a transceiver and a collaboration controller. The transceiver is configured to: broadcast a first collaboration message via a hybrid distributed-connected network (HYDIN) to a collaboration domain group, the first collaboration message including first vehicle data associated with the first autonomous vehicle and related to a collaboration application, the collaboration domain group including at least the first and second autonomous vehicles; and receive a second collaboration message via HYDIN, the second collaboration message including second vehicle data associated with the second autonomous vehicle and related to a collaboration application, the second collaboration message being broadcast from the second autonomous vehicle to the collaboration domain group via HYDIN. The collaboration controller is configured to perform collaborative actions associated with the collaboration application, at least in part based on the first and second vehicle data.
[0005] In this embodiment, the first and second cooperative messages consist of a data link layer and a physical layer.
[0006] In an embodiment, each of the first and second collaboration messages further includes a collaboration application identifier associated with the collaboration application and a domain group identifier associated with the collaboration domain group.
[0007] In this embodiment, the collaborative application includes either a queuing application or a lane-changing application.
[0008] In this embodiment, the first vehicle data includes real-time vehicle data.
[0009] In one embodiment, the system further includes a local data buffer located in the first autonomous vehicle and a resource allocation module located in the first autonomous vehicle. The resource allocation module is configured to determine whether there is available buffer space at the local data buffer, and based on the determination result, allocate a first application buffer space in the local data buffer for a collaborative domain group related to the collaborative application.
[0010] In an embodiment, when it is determined that there is available buffer space at the local data buffer, the collaboration controller is configured to: receive first vehicle data from the vehicle electronic control unit (ECU) via the vehicle bus at a first time, and store the first vehicle data in the first application buffer space; broadcast a first collaboration message including the first vehicle data as real-time vehicle data to HYDIN; receive third vehicle data related to the collaboration application from the vehicle ECU via the vehicle bus at a second time, and store the third vehicle data in the first application buffer space; broadcast a third collaboration message including the third vehicle data as real-time vehicle data to the collaboration domain group via HYDIN; retrieve the first and third vehicle data from the first application buffer space; and broadcast a fourth collaboration message including the first and third vehicle data as historical vehicle data at a third time.
[0011] In an embodiment, when it is determined that there is no available buffer space at the local data buffer, the collaboration controller is configured to: First, receive first vehicle data from the vehicle ECU via the vehicle bus; broadcast a first collaboration message including the first vehicle data as real-time vehicle data to the collaboration domain group via HYDIN; the second autonomous vehicle is configured to store the first vehicle data in a second application buffer space at the second autonomous vehicle; Second, receive third vehicle data related to the collaboration application from the vehicle ECU via the vehicle bus; broadcast a third collaboration message including the third vehicle data as real-time vehicle data to the collaboration domain group via HYDIN; the second autonomous vehicle is configured to store the third vehicle data in a second application buffer space at the second autonomous vehicle; and Third, receive a fourth collaboration message including the first and third vehicle data, and broadcast the fourth collaboration message as historical vehicle data associated with the first autonomous vehicle to the collaboration domain group via HYDIN at the third time.
[0012] In one embodiment, the system further includes a resource identification module for the first autonomous vehicle. The resource identification module is configured to determine whether, within a predetermined time period, at least one cooperative message has been received from each autonomous vehicle in the cooperative domain group via HYDIN; generate a list of cooperative domain groups associated with the cooperative domain group based at least in part on the determination result; and broadcast a fifth cooperative message including the list of cooperative domain groups to the cooperative domain group via HYDIN.
[0013] In one embodiment, a computer-readable medium includes instructions stored thereon for implementing autonomous vehicle collaboration, which, when executed by a processor, cause the processor to broadcast a first collaboration message, including first vehicle data associated with a first autonomous vehicle related to a collaboration application, from the first autonomous vehicle to a collaboration domain group via HYDIN, the collaboration domain group including at least the first autonomous vehicle and a second autonomous vehicle; receive a second collaboration message at the first autonomous vehicle via HYDIN, the second collaboration message including second vehicle data associated with a second autonomous vehicle related to a collaboration application, the second collaboration message being broadcast from the second autonomous vehicle to the collaboration domain group via HYDIN; and perform a collaboration action associated with the collaboration application at the first autonomous vehicle, at least in part based on the first and second vehicle data.
[0014] In an embodiment, the computer-readable medium further includes instructions that, when executed by a processor, cause the processor to broadcast a first cooperative message from a first autonomous vehicle to a cooperative domain group via HYDIN. The first cooperative message includes first vehicle data, a cooperative application identifier associated with the cooperative application, and a domain group identifier associated with the cooperative domain group.
[0015] In an embodiment, the computer-readable medium further includes instructions that, when executed by a processor, cause the processor to determine whether there is available buffer space at a local data buffer of the first autonomous vehicle; and based on the determination, allocate a first application buffer space in the local data buffer for a collaborative domain group related to the collaborative application.
[0016] In an embodiment, the computer-readable medium further includes instructions that, upon determining that there is available buffer space at a local data buffer and being executed by the processor, cause the processor to: at a first time, receive first vehicle data from the vehicle ECU via the vehicle bus and store the first vehicle data in a first application buffer; broadcast a first collaboration message including the first vehicle data as real-time vehicle data to HYDIN; at a second time, receive third vehicle data related to the collaboration application from the vehicle ECU via the vehicle bus and store the third vehicle data in the first application buffer; broadcast a third collaboration message including the third vehicle data as real-time vehicle data to a collaboration domain group via HYDIN; retrieve the first and third vehicle data from the first application buffer; and at a third time, broadcast a fourth collaboration message including the first and third vehicle data as historical vehicle data.
[0017] In one embodiment, the computer-readable medium further includes instructions that, upon determining that no buffer space is available at a local data buffer and being executed by the processor, cause the processor to: at a first time, receive first vehicle data from a vehicle ECU via an onboard bus; broadcast a first collaborative message including the first vehicle data as real-time vehicle data to a collaborative domain group via HYDIN, wherein the second autonomous vehicle is configured to store the first vehicle data in a second application buffer space at the second autonomous vehicle; at a second time, receive third vehicle data related to a collaborative application from the vehicle ECU via an onboard bus; broadcast a third collaborative message including the third vehicle data as real-time vehicle data to the collaborative domain group via HYDIN, wherein the second autonomous vehicle is configured to store the third vehicle data in a second application buffer space at the second autonomous vehicle; and at a third time, receive a fourth collaborative message including the first and third vehicle data, wherein the second autonomous vehicle broadcasts the fourth collaborative message as historical vehicle data associated with the first autonomous vehicle to the collaborative domain group via HYDIN at the third time.
[0018] In an embodiment, the computer-readable medium further includes instructions that, when executed by a processor, cause the processor to: determine whether, within a predetermined time period, at least one cooperative message has been received from each of the cooperative domain groups via HYDIN at the first autonomous vehicle; generate a list of cooperative domain groups associated with the cooperative domain group, at least in part based on the determination result; and broadcast a fifth cooperative message including the list of cooperative domain groups to the cooperative domain group via HYDIN.
[0019] In one embodiment, a method for implementing autonomous vehicle collaboration includes: broadcasting a first collaboration message, including first vehicle data associated with a first autonomous vehicle related to a collaboration application, from a first autonomous vehicle to a collaboration domain group via HYDIN, the collaboration domain group including at least the first autonomous vehicle and a second autonomous vehicle; receiving a second collaboration message at the first autonomous vehicle via HYDIN, the second collaboration message including second vehicle data associated with a second autonomous vehicle related to the collaboration application, the second collaboration message being broadcast from the second autonomous vehicle to the collaboration domain group via HYDIN; and performing a collaboration action associated with the collaboration application at the first autonomous vehicle, at least in part based on the first and second vehicle data.
[0020] In an embodiment, broadcasting a first collaborative message including first vehicle data includes: broadcasting a first collaborative message including first vehicle data, a collaborative application identifier associated with a collaborative application, and a domain group identifier associated with a collaborative domain group.
[0021] In one embodiment, the method further includes: determining whether there is available buffer space at a local data buffer of the first autonomous vehicle; and based on the determination result, allocating a first application buffer space in the local data buffer for a collaborative domain group related to the collaborative application.
[0022] In an embodiment, when it is determined that there is available buffer space at the local data buffer, the method further includes: at a first time, receiving first vehicle data from the vehicle ECU via the vehicle bus and storing the first vehicle data in a first application buffer space; broadcasting a first collaboration message including the first vehicle data as real-time vehicle data to HYDIN; at a second time, receiving third vehicle data related to the collaboration application from the vehicle ECU via the vehicle bus and storing the third vehicle data in the first application buffer space; broadcasting a third collaboration message including the third vehicle data as real-time vehicle data to a collaboration domain group via HYDIN; retrieving the first and third vehicle data from the first application buffer space; and at a third time, broadcasting a fourth collaboration message including the first and third vehicle data as historical vehicle data.
[0023] In an embodiment, when it is determined that there is no available buffer space at the local data buffer, the method further includes: at a first time, receiving first vehicle data from the vehicle ECU via the vehicle bus; broadcasting a first collaborative message including the first vehicle data as real-time vehicle data to a collaborative domain group via HYDIN, wherein the second autonomous vehicle is configured to store the first vehicle data in a second application buffer space at the second autonomous vehicle; at a second time, receiving third vehicle data related to the collaborative application from the vehicle ECU via the vehicle bus; broadcasting a third collaborative message including the third vehicle data as real-time vehicle data to the collaborative domain group via HYDIN, wherein the second autonomous vehicle is configured to store the third vehicle data in a second application buffer space at the second autonomous vehicle; and at a third time, receiving a fourth collaborative message including the first and third vehicle data, wherein the second autonomous vehicle broadcasts the fourth collaborative message as historical vehicle data associated with the first autonomous vehicle to the collaborative domain group via HYDIN at the third time. Attached Figure Description
[0024] Typical embodiments will be described below with reference to the accompanying drawings, in which the same reference numerals denote the same elements.
[0025] Figure 1 It is a functional block diagram of an autonomous vehicle including an embodiment of a vehicle collaboration system;
[0026] Figure 2 This is a functional block diagram of multiple autonomous vehicles that are communicatively coupled via a Hybrid Distributed Connectivity Network (HYDIN) embodiment;
[0027] Figure 3 This is a functional block diagram of an embodiment of a vehicle collaboration system;
[0028] Figure 4 This is a block diagram of the cooperative message structure according to an embodiment of the data link layer of the HYDIN protocol;
[0029] Figure 5 This is a flowchart illustrating an example of a method for implementing collaborative autonomous vehicle operations;
[0030] Figure 6 This is a flowchart of an example of a method for forming a collaborative domain group;
[0031] Figure 7 This is a flowchart of an example of a method for adding an autonomous vehicle to a collaborative domain group;
[0032] Figure 8This is a flowchart illustrating an example of a method for allocating application buffer space associated with collaborative applications within a collaborative domain group; and
[0033] Figure 9 This is a flowchart illustrating an example of a method for implementing collaborative autonomous vehicle operations. Detailed Implementation
[0034] The following detailed description is exemplary in nature and is not intended to limit the scope of this application and its uses. Furthermore, it is not intended to be limited by any explicit or implicit theory set forth in the foregoing technical field, the summary of the invention, or the following detailed description. As used herein, the term "module" refers to one or any combination of any hardware, software, firmware, electronic control components, processing logic, and / or processor device, including but not limited to: application-specific integrated circuits (ASICs), electronic circuits, processors (shared processors, dedicated processors, or processor groups) and memories executing one or more software or firmware programs, combinational logic circuits, and / or other suitable components providing the said functionality.
[0035] This document describes embodiments of the present disclosure based on functional and / or logical block components and various processing steps. It should be understood that these block components can be implemented by any number of hardware, software, and / or firmware components configured to perform specified functions. For example, embodiments of the present disclosure may employ various integrated circuit components (e.g., memory elements, digital signal processing elements, logic elements, or lookup tables, etc.) that can perform various functions under the control of one or more microprocessors or other control devices. Furthermore, those skilled in the art will understand that embodiments of the present disclosure can be practiced in conjunction with any number of systems, and the systems described herein are merely typical embodiments of the present disclosure.
[0036] For the sake of brevity, this document may not describe in detail conventional techniques related to signal processing, data transmission, signaling, control, and other functional aspects of the system (and its various operating components). Furthermore, the connections shown in the various figures included herein are intended to illustrate exemplary functional relationships and / or physical couplings between various elements. It should be noted that many alternative or additional functional relationships or physical connections may exist in the embodiments of this disclosure.
[0037] See Figure 1The diagram shows a functional block diagram of an autonomous vehicle 100 including an embodiment of a vehicle cooperation system 110. The autonomous vehicle 100 typically includes a chassis 112, a body 114, front wheels 116, and rear wheels 118. The body 114 is mounted on the chassis 112 and substantially encloses the components of the autonomous vehicle 100. The body 114 and the chassis 112 may together form a frame. The front wheels 116 and the rear wheels 118 are each rotatably coupled to the chassis 112 near a corresponding corner of the body 114.
[0038] The autonomous vehicle 100 is, for example, a vehicle that is automatically controlled to transport passengers from one location to another. Although the autonomous vehicle 100 is depicted as a passenger car in the illustrated embodiment, other examples of autonomous vehicles include, but are not limited to, motorcycles, trucks, SUVs, RVs, ships, and aircraft. In the embodiment, the autonomous vehicle 100 is a so-called Level 4 or Level 5 automation system. A Level 4 system means "high automation," referring to the driving mode-specific performance of the automated driving system (ADS) for all aspects of the dynamic driving task, even when a human driver does not respond appropriately to an intervention request. A Level 5 system means "full automation," referring to the all-time performance of the ADS for all aspects of the dynamic driving task under all road and environmental conditions that a human driver can handle.
[0039] As shown in the figure, an autonomous vehicle 100 typically includes a propulsion system 120, a transmission system 122, a steering system 124, a braking system 126, a vehicle sensor system 128, an actuator system 130, at least one data storage device 132, at least one controller 134, and a vehicle communication system 136. In various embodiments, the propulsion system 120 may include an internal combustion engine, an electric motor (such as a traction motor), and / or a fuel cell propulsion system. The transmission system 122 is configured to transmit power from the propulsion system 120 to the front wheels 116 and the rear wheels 118 according to a selectable speed ratio. According to various embodiments, the transmission system 122 may include a stepped automatic transmission, a continuously variable transmission (CVT), or other suitable transmission. The braking system 126 is configured to provide braking torque to the front wheels 116 and the rear wheels 118. In various embodiments, the braking system 126 may include friction brakes, brake-by-wire brakes, regenerative braking systems (e.g., electric motors), and / or other suitable braking systems. The steering system 124 influences the position of the front wheels 116 and the rear wheels 118. Although the steering system 124 is depicted as including a steering wheel for illustrative purposes, in some embodiments contemplated within the scope of this disclosure, the steering system 124 may not include a steering wheel.
[0040] The vehicle sensor system 128 includes one or more vehicle sensing devices 140a-140n that sense observable conditions of the external and / or internal environment of the autonomous vehicle 100. Examples of vehicle sensing devices 140a-140n include, but are not limited to, radar, lidar, GPS, optical cameras, thermal imaging cameras, ultrasonic sensors, and / or other sensors. The actuator system 130 includes one or more actuator devices 142a-142n that control one or more vehicle features, such as, but not limited to, propulsion system 120, transmission system 122, steering system 124, and braking system 126. In various embodiments, vehicle features may also include internal and / or external vehicle features, such as, but not limited to, doors, trunk, and cabin features (such as, for example, air, music, and lighting).
[0041] Vehicle communication system 136 is configured to wirelessly transmit information to each other with other entities (“vehicle-to-everything (V2X) communication”). For example, vehicle communication system 136 is configured to wirelessly transmit information to each other with other vehicles 148 (“V2V” communication), driving system infrastructure (“V2I” communication), remote systems, and / or personal devices. Examples of driving system infrastructure include, but are not limited to, mobile edge computing (MEC) system 150 including roadside unit (RSU) 152. In embodiments, vehicle communication system 136 is a wireless communication system configured to communicate via a wireless local area network (WLAN) employing the IEEE 802.11 standard or via cellular data communication. However, additional or alternative communication methods (such as dedicated short-range communication (DSRC) channels) are also considered within the scope of this disclosure. DSRC channels refer to one-way or two-way short-to-medium-range wireless communication channels designed for automobiles, and a corresponding set of protocols and standards.
[0042] Data storage device 132 stores data used for automatically controlling the autonomous vehicle 100. Data storage device 132 may be part of but separate from controller 134, or it may be part of controller 134 and part of an independent system.
[0043] Controller 134 includes at least one processor 144 and a computer-readable storage device 146. The computer-readable storage device 146 may also refer to a computer-readable medium 146. In embodiments, the computer-readable storage device 146 includes embodiments of the vehicle collaboration system 110. Processor 144 may be any custom or commercially available processor, central processing unit (CPU), graphics processing unit (GPU), auxiliary processor among several processors associated with controller 134, semiconductor-based microprocessor (in the form of a microchip or chipset), macroprocessor, any combination thereof, or any device generally used for executing instructions. For example, computer-readable storage device 146 may include volatile and non-volatile storage in read-only memory (ROM), random access memory (RAM), and keep-alive memory (KAM). KAM is persistent or non-volatile memory that can be used to store various operational variables when processor 144 is powered off. The computer-readable storage device 146 may be implemented using any of a variety of known storage devices, such as PROM (programmable read-only memory), EPROM (electrically programmable read-only memory), EEPROM (electrically erasable programmable read-only memory), flash memory, or any other electrical, magnetic, optical, or combined storage device capable of storing data (some of which represent executable instructions used by the controller 134 in controlling the autonomous vehicle 100).
[0044] The instructions may include one or more separate programs, each comprising a sequence of executable instructions for implementing logical functions. When executed by processor 144, the instructions receive and process signals from vehicle sensor system 128, perform logic, calculations, methods, and / or algorithms to automatically control components of autonomous vehicle 100, and generate control signals to actuator system 130 to automatically control one or more components of autonomous vehicle 100 based on logic, calculations, methods, and / or algorithms. Although in Figure 1 Only one controller 134 is shown, but alternative embodiments of the autonomous vehicle 100 may include any number of controllers 134 that communicate via any suitable communication medium or combination of communication media and collaboratively process sensor signals, perform logic, calculations, methods and / or algorithms, and generate control signals to automatically control features of the autonomous vehicle 100.
[0045] In various embodiments, one or more instructions of controller 134 are implemented to provide ADS functionality as described with reference to one or more embodiments herein. Controller 134 or one of its functional modules is configured to implement the functionality described in one or more embodiments of the reference vehicle cooperative system 110.
[0046] See Figure 2 The diagram illustrates an example functional block diagram of multiple autonomous vehicles 100A, 100B, and 100C communicatively coupled via an embodiment of the Hybrid Distributed Connectivity Network (HYDIN) 200. The configuration of each autonomous vehicle 100A, 100B, and 100C is similar to... Figure 1 The autonomous vehicle 100A includes embodiments of multiple vehicle electronic control units (ECUs) 202A, 204A, 206A and a vehicle cooperative system 110A. The vehicle ECUs 202A, 204A, 206A and the vehicle cooperative system 110A are communicatively coupled via an onboard bus. In this embodiment, the onboard bus is a controller area network bus (CANBUS). Although the autonomous vehicle 100A is described as including three vehicle ECUs, alternative embodiments may include fewer or more vehicle ECUs.
[0047] Vehicle cooperation system 110A is configured to receive vehicle data from one or more of vehicle ECUs 202A, 204A, and 206A. Vehicle cooperation system 110A is configured to form cooperation domain groups with one or more of autonomous vehicles 100B and 100C to cooperate according to cooperation applications. Each cooperation domain group is associated with a domain group identifier. Examples of cooperation applications include, but are not limited to, queuing applications and lane-changing applications. Each cooperation application is associated with a cooperation application identifier.
[0048] Vehicle collaboration system 110A is configured to send and receive collaboration messages from one or more autonomous vehicles 100B and 100C in a collaboration domain group via HYDIN 200 associated with a collaboration application. The collaboration messages include vehicle data. In an embodiment, vehicle collaboration system 110A is configured to utilize a distributed network model to send and receive collaboration messages from one or more autonomous vehicles 100B and 100C in a collaboration domain group via HYDIN 200. In an embodiment, the distributed network model consists of a data link layer and a physical layer. The ADS at autonomous vehicle 100A is configured to perform one or more collaboration actions associated with the collaboration application, at least in part, based on the vehicle data in the collaboration messages.
[0049] An autonomous vehicle 100B includes embodiments of multiple vehicle ECUs 202B, 204B, 206B and a vehicle cooperative system 110B. The vehicle ECUs 202B, 204B, 206B and the vehicle cooperative system 110B are communicatively coupled via an onboard bus. In this embodiment, the onboard bus is a CANBUS. Although the autonomous vehicle 100B is described as including three vehicle ECUs, alternative embodiments may include fewer or more vehicle ECUs.
[0050] Vehicle collaboration system 110B is configured to receive vehicle data from one or more of vehicle ECUs 202B, 204B, and 206B. Vehicle collaboration system 110B is configured to form collaboration domain groups with one or more of autonomous vehicles 100A and 100C to collaborate according to a collaboration application. Each collaboration domain group is associated with a domain group identifier. Each collaboration application is associated with a collaboration application identifier.
[0051] Vehicle collaboration system 110B is configured to send and receive collaboration messages from one or more autonomous vehicles 100A and 100C in a collaboration domain group via HYDIN 200 associated with a collaboration application. The collaboration messages include vehicle data. In one embodiment, vehicle collaboration system 110B is configured to utilize a distributed network model to send and receive collaboration messages from one or more autonomous vehicles 100A and 100C in a collaboration domain group via HYDIN 200. In this embodiment, the distributed network model consists of a data link layer and a physical layer. The ADS at autonomous vehicle 100B is configured to perform one or more collaboration actions associated with the collaboration application, at least in part, based on the vehicle data in the collaboration messages.
[0052] An autonomous vehicle 100C includes embodiments of multiple vehicle ECUs 202C, 204C, 206C and a vehicle cooperative system 110C. The vehicle ECUs 202C, 204C, 206C and the vehicle cooperative system 110C are communicatively coupled via an onboard bus. In this embodiment, the onboard bus is a CANBUS. Although the autonomous vehicle 100C is described as including three vehicle ECUs, alternative embodiments may include fewer or more vehicle ECUs.
[0053] Vehicle cooperation system 110C is configured to receive vehicle data from one or more of vehicle ECUs 202C, 204C, and 206C. Vehicle cooperation system 110C is configured to form cooperation domain groups with one or more of autonomous vehicles 100A and 100B to cooperate according to cooperation applications. Each cooperation domain group is associated with a domain group identifier. Examples of cooperation applications include, but are not limited to, vehicle queuing applications and vehicle lane-changing applications. Each cooperation application is associated with a cooperation application identifier.
[0054] Vehicle collaboration system 110C is configured to send and receive collaboration messages from one or more autonomous vehicles 100A and 100B in a collaboration domain group via HYDIN 200 associated with a collaboration application. The collaboration messages include vehicle data. In an embodiment, vehicle collaboration system 110C is configured to utilize a distributed network model to send and receive collaboration messages from one or more autonomous vehicles 100A and 100B in a collaboration domain group via HYDIN 200. In an embodiment, the distributed network model consists of a data link layer and a physical layer. The ADS at autonomous vehicle 100C is configured to perform one or more collaboration actions associated with the collaboration application, at least in part, based on the vehicle data in the collaboration messages.
[0055] although Figure 2 Three autonomous vehicles 100A, 100B, and 100C are shown configured to be communication-coupled via HYDIN 200, but fewer or more autonomous vehicles 100 can be configured to be communication-coupled via HYDIN 200. Although the aforementioned cooperative domain group includes two or three autonomous vehicles 100, a cooperative domain group can include a larger number of autonomous vehicles 100. In this embodiment, autonomous vehicles 100 within each other's communication range can form a cooperative domain group via HYDIN.
[0056] See Figure 3 The diagram shows a functional block diagram of an embodiment of the vehicle collaboration system 110. The vehicle collaboration system 110 includes a collaboration controller 300, a transceiver 302, a resource allocation module 304, a resource identification module 306, and a local data buffer 308. The collaboration controller 300 is configured to manage the operation of the vehicle collaboration system 110 to enable collaborative applications. The transceiver 302 is configured to send collaboration messages to and receive collaboration messages from other autonomous vehicles 100A, 100B, and 100C via HYDIN 200. In this embodiment, the collaboration message consists of a data link layer and a physical layer.
[0057] Multiple autonomous vehicles 100A, 100B, and 100C can be communicatively coupled to HYDIN 200. A vehicle collaboration system 110 at each of the autonomous vehicles 100A, 100B, and 100C is configured to broadcast a collaboration message to HYDIN 200, the collaboration message including vehicle data associated with the collaboration application, a domain group identifier, and a collaboration application identifier. A transceiver 302 at each of the autonomous vehicles 100A, 100B, and 100C is configured to receive the collaboration message broadcast to HYDIN 200.
[0058] When transceivers 302 at autonomous vehicles 100A, 100B, and 100C receive cooperation messages from HYDIN 200, the cooperation controller 300 at each of the autonomous vehicles 100A, 100B, and 100C identifies cooperation messages related to those vehicles from the received cooperation messages. The cooperation controller 300 determines whether the autonomous vehicles 100A, 100B, and 100C are participating in a cooperation application associated with a cooperation domain group. If the cooperation controller 300 determines that the autonomous vehicles 100A, 100B, and 100C are participating in a cooperation application associated with a cooperation domain group, then the cooperation controller 300 identifies the cooperation messages in the received cooperation messages as relevant cooperation messages. These cooperation messages include a cooperation application identifier associated with the cooperation application and a domain group identifier associated with the cooperation domain group. The cooperation controller 300 is configured to perform one or more cooperation actions associated with the cooperation application, at least in part, based on vehicle data in the relevant cooperation messages.
[0059] In one embodiment, when autonomous vehicles 100A, 100B, and 100C join a collaborative domain group to collaborate in a collaborative application, the resource allocation module 304 of the autonomous vehicles 100A, 100B, and 100C is configured to allocate application buffer space 310 in the local data buffer 308 for the collaborative domain group associated with the collaborative application. In another embodiment, when autonomous vehicles 100A, 100B, and 100C join a collaborative domain group, the resource allocation module 304 of the autonomous vehicles 100A, 100B, and 100C is configured to determine whether there is available buffer space in the local data buffer 308, and allocate application buffer space 310 for the collaborative domain group associated with the collaborative application.
[0060] If the resource allocation module 304 of the autonomous vehicles 100A, 100B, and 100C determines that there is available buffer space in the local data buffer 308 for allocating application buffer space 310 for the collaborative domain group associated with the collaborative application, then the resource allocation module 304 of the autonomous vehicles 100A, 100B, and 100C is configured to allocate application buffer space 310 for the collaborative domain group associated with the collaborative application in the local data buffer 308. The vehicle collaboration system 110 of the autonomous vehicles 100A, 100B, and 100C is configured to notify other autonomous vehicles 100A, 100B, and 100C in the collaborative domain group via a collaboration message broadcast to HYDIN 200 that application buffer space 310 has been allocated for the collaborative application in the local data buffer 308 of the autonomous vehicles 100A, 100B, and 100C. The collaboration message includes a domain group identifier associated with the collaboration domain group, a collaboration application identifier associated with the collaboration application, the resource location of the application buffer space 310 in the local data buffer 308, and the size of the allocated application buffer space 310.
[0061] If the resource allocation module 304 of the autonomous vehicles 100A, 100B, and 100C determines that there is no available buffer space in their local data buffer 308 (for allocating application buffer space 310 for the collaborative domain group associated with the collaborative application), the collaboration controller 302 is configured to notify the other autonomous vehicles 100A, 100B, and 100C in the collaborative domain group via a collaboration message broadcast to HYDIN 200 that there is no buffer space in their local data buffer 308 for allocating application buffer space 310 for the collaborative domain group associated with the collaborative application. The vehicle collaboration system 110 at the other autonomous vehicles 100A, 100B, and 100C in the collaborative domain group is configured to take action in response to receiving a collaboration message indicating that there is no available buffer space in their local data buffer 308. The actions taken by the vehicle collaboration system 110 at other autonomous vehicles 100A, 100B, and 100C will be described in more detail below.
[0062] Resource identification module 306 is configured to add autonomous vehicles 100A, 100B, and 100C that have joined the cooperative domain group to the cooperative domain group list, and to remove autonomous vehicle 100 that has left the cooperative domain group list. Additional details related to the actions performed by resource identification module 306 will be described in more detail below. Although Figure 3The diagram shows several different components of the vehicle collaboration system 110, but the vehicle collaboration system 110 may include additional components that facilitate collaborative applications at autonomous vehicles 100A, 100B, and 100C.
[0063] See Figure 4 The diagram illustrates a block diagram of an example of a cooperative message structure 400 according to a data link layer embodiment of the HYDIN protocol. The cooperative message structure 400 includes a frame start field 402, a domain group identifier field 404, a cooperative application identifier field 406, a resource location field 408, a data length field 410, a data payload field 412, a cyclic redundancy check (CRC) field 414, and a frame end field 416. Although one configuration of the cooperative message structure 400 is shown, alternative embodiments of the cooperative message structure 400 may include different fields. While several different fields of the cooperative message structure 400 have been described, alternative embodiments of the cooperative message structure may include additional fields.
[0064] See Figure 5 The diagram illustrates a flowchart of an example of a method 500 for implementing autonomous vehicle cooperation. Method 500 is performed by embodiments of vehicle cooperation systems 110A, 110B, and 110C within autonomous vehicles 100A, 100B, and 100C. Method 500 can be performed by vehicle cooperation systems 110A, 110B, and 110C in conjunction with other components of autonomous vehicles 100A, 100B, and 100C. Method 500 can be performed by hardware circuitry, firmware, software, and / or combinations thereof. Reference Figure 2 and Figure 3 Description method 500.
[0065] In step 502, the vehicle collaboration systems 110A, 110B, and 110C of two or more autonomous vehicles 100A, 100B, and 100C form a collaboration domain group to achieve collaborative applications. In step 504, the resource allocation module 304 at each of the autonomous vehicles 100A, 100B, and 100C in the collaboration domain group allocates application buffer space 310, wherein each autonomous vehicle 100A, 100B, and 100C has buffer space in its local data buffer 308 that can be allocated to the collaboration domain group associated with the collaborative application.
[0066] In step 506, the vehicle collaboration systems 110A, 110B, and 110C of each autonomous vehicle 100A, 100B, and 100C in the collaboration domain group notify the vehicle collaboration systems 110A, 110B, and 110C of the other autonomous vehicles 100A, 100B, and 100C in the collaboration domain group of the application buffer space 310 allocated to the collaboration domain group associated with the collaboration application. If the resource allocation module 304 at the autonomous vehicle 100A, 100B, and 100C determines that there is no buffer space in the local data buffer 308 for allocation to the collaboration domain group, then the vehicle collaboration systems 110A, 110B, and 110C of that autonomous vehicle 100A, 100B, and 100C notify the vehicle collaboration systems 110A, 110B, and 110C of the other autonomous vehicles 100A, 100B, and 100C in the collaboration domain group.
[0067] In step 508, the vehicle collaboration systems 110A, 110B, and 110C of each of the autonomous vehicles 100A, 100B, and 100C in the collaboration domain group receive real-time vehicle data from one or more vehicle ECUs 202, 204, and 206 located in the autonomous vehicles 100A, 100B, and 100C via the vehicle bus. In step 510, the vehicle collaboration systems 110A, 110B, and 110C of each of the autonomous vehicles 100A, 100B, and 100C, which are allocated application buffer space 310, store the real-time vehicle data received from the vehicle ECUs 202, 204, and 206 in the allocated application buffer space 310.
[0068] In 512, the vehicle collaboration systems 110A, 110B, and 110C of each of the autonomous vehicles 100A, 100B, and 100C in the collaboration domain group broadcast collaboration messages to the other autonomous vehicles 100A, 100B, and 100C in the collaboration domain group via HYDIN 200. These collaboration messages include real-time vehicle data, a collaboration application identifier, and a domain group identifier. The collaboration controller 302 at each of the autonomous vehicles 100A, 100B, and 100C performs one or more collaboration actions associated with the collaboration application, based at least in part on the real-time vehicle data generated at that autonomous vehicle 100A, 100B, and 100C and the real-time vehicle data received from the other autonomous vehicles 100A, 100B, and 100C in the collaboration domain group. In 514, the vehicle collaboration system 110A, 110B, 110C of each of the autonomous vehicles 100A, 100B, 100C that has been allocated the collaborative application buffer space 310 will receive real-time vehicle data from the vehicle collaboration systems 110A, 110B, 110C of the autonomous vehicles 100A, 100B, 100C that have not been allocated the application buffer space 310, and store it in its allocated application buffer space 310.
[0069] In 516, the vehicle collaboration systems 110A, 110B, and 110C of each of the autonomous vehicles 100A, 100B, and 100C in the collaboration domain group, which are allocated application buffer space 310, broadcast collaboration messages to other autonomous vehicles 100A, 100B, and 100C in the collaboration domain group via HYDIN 200. These collaboration messages include historical vehicle data associated with the autonomous vehicle data and historical vehicle data associated with autonomous vehicles not allocated application buffer space 310. The collaboration controller 302 at each of the autonomous vehicles 100A, 100B, and 100C performs one or more collaborative actions associated with the collaborative application, based at least in part on the historical vehicle data associated with the autonomous vehicles 100A, 100B, and 100C in the collaboration domain group.
[0070] One of the autonomous vehicles 100A, 100B, and 100C in the collaborative domain group operates as the master autonomous vehicle 100A, 100B, or 100C. In step 518, the resource identification module 306 at the master autonomous vehicle 100A, 100B, or 100C maintains a list of collaborative domain groups for each autonomous vehicle 100A, 100B, or 100C. If no collaborative message is received from any autonomous vehicle 100A, 100B, or 100C within a predetermined time period, the resource identification module 306 removes that autonomous vehicle 100A, 100B, or 100C from the collaborative domain group. The vehicle collaboration systems 110A, 110B, and 110C that lead the autonomous vehicles 100A, 100B, and 100C broadcast collaboration messages to other autonomous vehicles 100A, 100B, and 100C in the collaboration domain group via HYDIN200. The collaboration messages include a list of collaboration domain groups, a collaboration application identifier, and a domain group identifier.
[0071] See Figure 6 The diagram illustrates a flowchart of an example of a method 600 for forming a cooperative domain group. Method 600 is performed by embodiments of vehicle cooperative systems 110A and 110B. Method 600 can be performed by vehicle cooperative systems 110A and 110B in conjunction with other components of autonomous vehicles 100A and 100B. Method 600 can be performed by hardware circuitry, firmware, software, and / or combinations thereof. Reference Figure 2 and Figure 3 Method 600 is described. Although this example will be described with reference to forming a cooperative domain group including two autonomous vehicles 100A and 100B, more than two autonomous vehicles can be used to form a cooperative domain group.
[0072] In step 602, the first vehicle collaboration system 110A at the first autonomous vehicle 100A and the second vehicle collaboration system 110B at the second autonomous vehicle 100B each broadcast a collaboration message to HYDIN 200, including a collaboration request associated with the collaboration application. Each collaboration message includes a collaboration application identifier and vehicle data associated with the collaboration application.
[0073] For example, a first vehicle cooperation system 110A at a first autonomous vehicle 100A can broadcast a first cooperation message to HYDIN 200 including a cooperation request associated with a queuing application, and a second vehicle cooperation system 110B at a second autonomous vehicle 100B can broadcast a second cooperation message to HYDIN 200 including a cooperation request associated with a queuing application. The first cooperation request includes vehicle data associated with the first autonomous vehicle 100A related to the queuing application, and a cooperation application identifier associated with the queuing application. The second cooperation request includes vehicle data associated with the second autonomous vehicle 100B related to the queuing application, and a cooperation application identifier associated with the queuing application. Examples of vehicle data include vehicle speed and vehicle position.
[0074] In 604, the autonomous vehicles 100A, 100B, and 100C, which are communicatively coupled to the HYDIN 200, receive first and second collaboration messages, including collaboration requests associated with collaboration applications broadcast by the first and second autonomous vehicles 100A and 100B.
[0075] In step 606, vehicle collaboration systems 110A, 110B, and 110C at autonomous vehicles 100A, 100B, and 100C identify received collaboration messages related to those vehicles. For example, since both the first and second collaboration requests include the same collaboration application identifier, the first autonomous vehicle 100A identifies the second collaboration message broadcast by the second autonomous vehicle 100B as related to the first autonomous vehicle 100A, and the second autonomous vehicle 100B identifies the first collaboration message broadcast by the first autonomous vehicle 100A as related to the second autonomous vehicle 100B. Vehicle collaboration system 110C at the third autonomous vehicle 100C determines that the first and second collaboration messages are not related to the third autonomous vehicle 100C because the third vehicle collaboration system 110C did not broadcast a collaboration message including the same collaboration identifier.
[0076] In step 608, the first and second vehicle cooperation systems 110A and 110B at the first and second autonomous vehicles 110A and 110B, respectively, identify the dominant autonomous vehicle 100A associated with the implementation of the cooperation application based on vehicle data received in the first and second cooperation messages. For example, the first vehicle cooperation system 110A at the first autonomous vehicle 100A and the second vehicle cooperation system 110B at the second autonomous vehicle 100A receive queuing requests. The vehicle location of the first autonomous vehicle 110A is included in the first cooperation message, and the vehicle location of the second autonomous vehicle 110B is included in the second cooperation message. The vehicle location of the first autonomous vehicle 100A may be in a dominant position relative to the vehicle location of the second autonomous vehicle 100B. Therefore, the first and second vehicle cooperation systems 110A and 110B can identify the first autonomous vehicle 100A as the dominant autonomous vehicle 100A.
[0077] In 610, the vehicle collaboration system 110A at the master autonomous vehicle 100A determines a collaboration domain group for a collaboration application. This collaboration domain group includes the first and second autonomous vehicles 100A and 100B broadcasting first and second collaboration messages, which include a collaboration request associated with the collaboration application and a domain group identifier for the collaboration domain group. For example, the vehicle collaboration system 110A at the master autonomous vehicle 100A can determine a collaboration domain group including the first and second autonomous vehicles 100A and 100B for a queuing application and generate a domain group identifier for the collaboration domain group associated with the queuing application.
[0078] In step 612, the vehicle collaboration system 110A at the master autonomous vehicle 100A broadcasts a collaboration message to HYDIN 200. This collaboration message includes a domain group identifier, a collaboration application identifier, and a list of collaboration domain groups for the autonomous vehicles 100A and 100B within the collaboration domain group. The vehicle collaboration systems 110A and 110B at the master autonomous vehicle 100A and 100B within the collaboration domain group receive collaboration messages from HYDIN 200. These collaboration messages include a domain group identifier and a list of collaboration domains. For example, the vehicle collaboration system 110A at the master autonomous vehicle 100A may broadcast a collaboration message to HYDIN 200. This collaboration message includes a domain group identifier for a queuing collaboration domain group, a collaboration application identifier associated with a queuing application, and a list of collaboration domain groups including the first and second autonomous vehicles 100A and 100B in the queue. The vehicle collaboration systems 110A and 110B of the autonomous vehicles 100A and 100B in the queuing collaboration domain group receive collaboration messages from HYDIN 200.
[0079] See Figure 7 The diagram illustrates a flowchart of an example of a method 700 for adding an autonomous vehicle 100C to a collaborative domain group of autonomous vehicles 100A and 100B. Method 700 is executed by vehicle collaborative systems 110A, 110B, and 110C. Method 700 can be executed by vehicle collaborative systems 110A, 110B, and 110C in conjunction with other components of autonomous vehicles 100A, 100B, and 100C. Method 700 can be executed by hardware circuitry, firmware, software, and / or combinations thereof. Reference Figure 2 , Figure 3 and Figure 6 Method 700 is described. Although this instance is described with reference to adding autonomous vehicle 100C to a cooperative domain group including two autonomous vehicles 100A and 100B, a cooperative domain group can include a greater number of autonomous vehicles. The description will focus on... Figure 6 The collaborative domain group formed in the process adds a third autonomous driving vehicle 100C to describe this instance.
[0080] In step 702, the third vehicle cooperation system 110C at the third autonomous vehicle 100C broadcasts a cooperation message to HYDIN 200. This cooperation message includes a cooperation request associated with a cooperation application. The cooperation message includes a cooperation application identifier and vehicle data associated with the cooperation application. For example, the third vehicle cooperation system 110C at the third autonomous vehicle 100C may broadcast a cooperation message to HYDIN 200, which includes a cooperation request associated with a queuing application. The cooperation request includes vehicle data associated with the third autonomous vehicle 100C related to the queuing application, and a cooperation application identifier associated with the queuing application. Examples of vehicle data include vehicle speed and vehicle position.
[0081] In step 704, the first and second autonomous vehicles 100A and 100B receive a collaboration message via HYDIN 200. This collaboration message includes a collaboration request associated with a collaboration application broadcast by the third autonomous vehicle 100C. The collaboration domain group includes the first and second autonomous vehicles 100A and 100B. For example, an existing collaboration domain group associated with a queuing application includes the first and second autonomous vehicles 100A and 100B.
[0082] In 706, the first vehicle collaboration system 110A, which leads the autonomous vehicle 100A in the collaboration domain group, broadcasts a collaboration message acknowledging receipt of the collaboration request and the addition of the third autonomous vehicle 100C to the collaboration domain group associated with the collaboration application. For example, the first vehicle collaboration system 110A, which leads the autonomous vehicle 100A in the collaboration domain group, broadcasts a collaboration message to HYDIN 200 acknowledging receipt of the collaboration request and the addition of the third autonomous vehicle to the collaboration domain group associated with the queuing application.
[0083] In step 708, the first vehicle collaboration system 110A at the master autonomous vehicle 100A broadcasts a collaboration message to HYDIN 200. This collaboration message includes a domain group identifier, a collaboration application identifier, and an updated list of collaboration domain groups for autonomous vehicles 100A, 100B, and 100C in the collaboration domain group. For example, the vehicle collaboration system 110A at the master autonomous vehicle 100A can broadcast a collaboration message to HYDIN 200. This collaboration message includes a domain group identifier for the queuing collaboration domain group, a collaboration application identifier associated with the queuing application, and a list of collaboration domain groups for the first, second, and third autonomous vehicles 100A, 100B, and 100C in the queue.
[0084] In 710, the vehicle collaboration systems 110B and 110C of the autonomous vehicles 100B and 100C in the collaboration domain group receive collaboration messages from HYDIN 200. These collaboration messages include a domain group identifier, a collaboration application identifier, and an updated list of collaboration domains. For example, the vehicle collaboration systems 110B and 110C of the autonomous vehicles 100B and 100C in the queuing collaboration domain group receive collaboration messages from HYDIN 200.
[0085] See Figure 8 The diagram shows a flowchart of an example of a method 800 for allocating application buffer space 310 associated with collaborative applications in a collaborative domain group. Method 800 is performed by embodiments of vehicle collaboration systems 110A and 110B. Method 800 can be performed by vehicle collaboration systems 110A and 110B in conjunction with other components of autonomous vehicles 100A and 100B. Method 800 can be performed by hardware circuitry, firmware, software, and / or combinations thereof. Reference Figure 2 , Figure 3 and Figure 6 Method 800 is described. Although this instance will be described with reference to a cooperative domain group including two autonomous vehicles 100A and 100B, a cooperative domain group may include a larger number of autonomous vehicles.
[0086] In step 802, the vehicle collaboration system 110A at the primary autonomous vehicle 100A broadcasts a collaboration message to HYDIN 200, which includes a resource request. The collaboration message includes a domain group identifier and a collaboration application identifier. In step 804, the second and third vehicle collaboration systems 110B and 110C, communicatively coupled to HYDIN 200, receive the collaboration message including the resource request. The second vehicle collaboration system 110B of the second autonomous vehicle 100B identifies the collaboration message including the resource request as a relevant collaboration message based on the domain group identifier and collaboration application identifier in the collaboration message.
[0087] At 806, the resource allocation module 304 at each of the first and second vehicle collaboration systems 110A and 110B of the first and second autonomous vehicles 100A and 100B determines whether there is buffer space in the local data buffer 308 available for allocating application buffer space 310 to the collaboration domain group associated with the collaboration application. If the resource allocation module 304 of the first autonomous vehicle 100A in the collaboration domain group determines that there is buffer space in its local data buffer 308 available for allocating application buffer space 310 to the collaboration domain group associated with the collaboration application, then at 808, the resource allocation module 304 of the first autonomous vehicle 100A allocates application buffer space 310 in its local data buffer 308.
[0088] In step 810, the first vehicle collaboration system 110A, which has already allocated application buffer space 310 at its local data buffer 308, broadcasts a collaboration message to HYDIN 200. This collaboration message notifies other autonomous vehicles 100B in the collaboration domain group that application buffer space 310 has been allocated for the collaborative application at the local data buffer 308 of the autonomous vehicle 100A. The collaboration message includes a domain group identifier associated with the collaboration domain group, a collaboration application identifier associated with the collaborative application, the resource location of the application buffer space 310 in the local data buffer 308, and the size of the allocated application buffer space 310.
[0089] In step 812, when the first autonomous vehicle cooperative system 110A, which has already allocated application buffer space 310 in its local data buffer 308, receives vehicle data associated with the cooperative application from vehicle ECUs 202A, 204A, and 206A via the vehicle bus, the first vehicle cooperative system 110A stores the vehicle data in the allocated application buffer space 310 and broadcasts a cooperative message to other autonomous vehicles 100B in the cooperative domain group via HYDIN 200. The cooperative message includes a domain group identifier, a cooperative application identifier, vehicle data, and the resource location of the application buffer space. The vehicle data is real-time vehicle data. The cooperative controller 300 at each of the autonomous vehicles 100A and 100B in the cooperative domain group implements one or more cooperative actions associated with the cooperative application, at least in part, based on the vehicle data.
[0090] In step 814, a first vehicle cooperation system 110A, which has already allocated application buffer space 310 to the first autonomous vehicle 100A in its local data buffer 308, retrieves a predetermined number of vehicle data entries associated with the first autonomous vehicle 100A previously stored in the allocated application buffer space 310, and broadcasts a cooperation message including the retrieved vehicle data to other autonomous vehicles 100B in the cooperation domain group via HYDIN 200. The cooperation message includes a domain group identifier, a cooperation application identifier, the retrieved vehicle data associated with the first autonomous vehicle 100A, and the resource location of the application buffer space 310. The vehicle data is historical vehicle data. The cooperation controller 300 at each of the autonomous vehicles 100A and 100B in the cooperation domain group implements one or more cooperation actions associated with the cooperation application, at least in part, based on the vehicle data.
[0091] If, in step 806, the resource allocation module 304 of the second autonomous vehicle 100B in the collaborative domain group determines that there is no buffer space available in its local data buffer 308 to allocate application buffer space 310 for the collaborative domain group associated with the collaborative application, then in step 816, the second vehicle collaborative system 110B broadcasts a collaborative message via HYDIN 200 to the other autonomous vehicles 100A in the collaborative domain group, notifying them that there is no buffer space available in their local data buffer 308 to allocate application buffer space 310. The collaborative message includes a domain group identifier associated with the collaborative domain group, a collaborative application identifier associated with the collaborative application, and a notification that no buffer space is available.
[0092] In 818, when the second autonomous vehicle collaboration system 110B of the second autonomous vehicle 100B cannot allocate application buffer space 310 in its local data buffer 308, and receives vehicle data associated with the collaboration application from vehicle ECUs 202B, 204B, and 206B via the vehicle bus, the second vehicle collaboration system 110B broadcasts a collaboration message to other autonomous vehicles 100A in the collaboration group via HYDIN 200, but does not store vehicle data in its local data buffer 308. The collaboration message includes a domain group identifier, a collaboration application identifier, and vehicle data. The vehicle data is real-time vehicle data. The collaboration controller 300 at each of the autonomous vehicles 100A and 100B in the collaboration domain group implements one or more collaboration actions associated with the collaboration application, at least partially based on the vehicle data.
[0093] In 820, when the first autonomous vehicle 100A, which has already allocated application buffer space 310 in its local data buffer 308, receives a collaboration message via HYDIN 200 containing real-time vehicle data associated with a second autonomous vehicle 100B, which cannot allocate application buffer space 310 in its local data buffer 308, the first vehicle collaboration system 110A, which has allocated application buffer space 310 in its local data buffer 308, stores the real-time vehicle data associated with the second autonomous vehicle 100B in the application buffer space 310 allocated in its local data buffer 308.
[0094] In step 822, the first vehicle cooperation system 110A, which has already allocated application buffer space 310 to the first autonomous vehicle 100A, retrieves a predetermined number of vehicle data entries associated with the second autonomous vehicle 100B, previously stored in the application buffer space 310 allocated to the first autonomous vehicle 100A, and broadcasts a cooperation message including the retrieved vehicle data to other autonomous vehicles 110B in the cooperation domain group via HYDIN 200. The cooperation message includes a domain group identifier, a cooperation application identifier, the retrieved vehicle data associated with the second autonomous vehicle 100B, and the resource location of the application buffer space. The vehicle data is historical vehicle data associated with the second autonomous vehicle 100B. The cooperation controller 300 at each of the autonomous vehicles 100A and 100B in the cooperation domain group implements one or more cooperative actions associated with the cooperation application, at least in part, based on the vehicle data.
[0095] See Figure 9The diagram shows a flowchart of an example of a method 900 for implementing autonomous vehicle collaboration. Method 900 is executed by a vehicle collaboration system 110A. Method 900 can be executed by the vehicle collaboration system 110A in conjunction with other components of an autonomous vehicle 100A. Method 900 can be executed by hardware circuitry, firmware, software, and / or combinations thereof.
[0096] In step 902, a first collaborative message is broadcast from the first autonomous vehicle 100A to collaborative domain groups 100A, 100B, and 100C via HYDIN 200. This first collaborative message includes first vehicle data associated with the first autonomous vehicle 100A related to a collaborative application. The collaborative domain groups include at least the first autonomous vehicle 100A and the second autonomous vehicle 100B. In step 904, the first autonomous vehicle 100A receives a second collaborative message via HYDIN 200, including second vehicle data associated with the second autonomous vehicle 100B related to a collaborative application. This second collaborative message is broadcast from the second autonomous vehicle 100B to the collaborative domain groups 100A, 100B, and 100C via HYDIN 200. In step 906, a collaborative action associated with the collaborative application is performed at the first autonomous vehicle 100A, based at least in part on the first and second vehicle data.
[0097] The vehicle collaboration system 110 enables data exchange between autonomous vehicles 100 within a collaboration domain group via an onboard bus channel and a HYDIN wireless communication channel. The distribution of the vehicle collaboration system 110 within the autonomous vehicles 100 allows for collaborative tasks transparent to upper-layer applications. Utilizing the vehicle collaboration system 110, which communicates via HYDIN 200, collaborative applications between autonomous vehicles 100 within the collaboration domain group can be implemented more efficiently. The resource allocation module 302 enables efficient utilization of local data buffer resources within the collaboration domain group. The combined use of the vehicle collaboration system 110 and the two-layer communication model for exchanging vehicle data via HYDIN 200 reduces data payload resource usage and waiting time associated with vehicle data exchange.
[0098] When the collaborative application is a queuing application, the vehicle collaboration system 110, which participates in the queuing application and is associated with the autonomous vehicle 100, can be distributed among different autonomous vehicles 100 within the queuing fleet. The autonomous vehicles 100 can be distributed as a star network, communicating with each other and sharing vehicle data including wheel speed, vehicle speed, vehicle heading, and other information. The vehicle collaboration system 110 can operate as a central controller, collecting information directly from HYDIN 200 and optimizing the speed and position of the autonomous vehicles 100 within the queuing fleet. The vehicle collaboration system 110 operates within the same domain and can be transparent to physical location.
[0099] When the collaborative application is a V2X application, the underlying V2X software stack can be integrated into the vehicle collaboration system 110. Basic safety information can be integrated with other vehicle data and distributed to surrounding V2X-capable autonomous vehicles 100 via HYDIN 200. Risk levels can be calculated simultaneously and distributed to autonomous vehicles 100 in the collaboration domain group to reduce overall costs. Warning messages can be displayed simultaneously to all autonomous vehicles 100 in the collaboration domain group.
[0100] When collaborative applications involve collaborative autonomous driving, the perception results of vehicles are typically distributed to autonomous vehicles 100 in a collaborative manner. The decision-making module can transparently obtain vehicle data from other autonomous vehicles and make relatively more accurate decisions.
[0101] When collaborative applications are associated with decentralization, the distributed vehicle collaboration system 110 can arbitrarily select healthy vehicle collaboration systems 110 to continue decision-making and collaborative tasks (e.g., if more than half of the vehicle collaboration systems 110 are healthy). Autonomous vehicles 100 with fewer resources can handle smaller computational tasks based on a holistic optimization algorithm. This can help manage failures and task efficiency.
[0102] While at least one exemplary embodiment has been presented in the foregoing detailed descriptions, it should be understood that numerous variations exist. It should also be understood that one or more exemplary embodiments are merely examples and are not intended to limit the scope, applicability, or configuration of this disclosure in any way. Rather, the foregoing detailed descriptions will provide those skilled in the art with a convenient roadmap for implementing one or more exemplary embodiments. It should be understood that various changes can be made to the function and arrangement of the elements without departing from the scope of this disclosure as set forth in the appended claims and their legal equivalents.
Claims
1. A vehicle cooperation system for an autonomous driving vehicle, comprising: The transceiver at the first autonomous vehicle is configured as follows: A first collaboration message is broadcast to a collaboration domain group via a hybrid distributed connectivity network. The first collaboration message includes first vehicle data associated with the first autonomous vehicle related to the collaboration application. The collaboration domain group includes at least the first autonomous vehicle and a second autonomous vehicle. A second collaboration message is received via the hybrid distributed connectivity network. The second collaboration message includes second vehicle data associated with the second autonomous vehicle related to the collaboration application. The second collaboration message is broadcast from the second autonomous vehicle to the collaboration domain group via the hybrid distributed connectivity network. The collaborative controller at the first autonomous vehicle is configured to perform collaborative actions associated with the collaborative application based at least in part on data from the first vehicle and data from the second vehicle. Local data buffer at the first autonomous vehicle; as well as The resource allocation module at the first autonomous vehicle is configured as follows: Determine if there is available buffer space at the local data buffer; as well as Based on the determined result, a first application buffer space is allocated in the local data buffer for the collaborative domain group associated with the collaborative application; When it is determined that there is available buffer space at the local data buffer, the cooperative controller is configured as follows: At the first moment, the vehicle data is received from the vehicle ECU via the vehicle bus and stored in the first application buffer space; The first collaborative message, which includes the data of the first vehicle, is broadcast as real-time vehicle data to the hybrid distributed connection network. At the second time, data related to the collaborative application of a third vehicle is received from the vehicle ECU via the vehicle bus, and the data of the third vehicle is stored in the first application buffer space; The third collaborative message, including the third vehicle data, is broadcast as real-time vehicle data to the collaborative domain group via the hybrid distributed connection network. Retrieve the first vehicle data and the third vehicle data from the first application buffer space; as well as At the third time, a fourth collaborative message, including the data of the first and third vehicles, is broadcast as historical vehicle data.
2. The system according to claim 1, wherein the first cooperation message and the second cooperation message are composed of a data link layer and a physical layer.
3. The system of claim 1, wherein each of the first collaboration message and the second collaboration message further includes a collaboration application identifier associated with the collaboration application and a domain group identifier associated with the collaboration domain group.
4. The system of claim 1, wherein the collaborative application includes one of a queuing application and a lane-changing application.
5. The system according to claim 1, wherein the first vehicle data includes real-time vehicle data.
6. The system of claim 1, wherein when it is determined that no buffer space is available at the local data buffer, the cooperative controller is configured to: At the first moment, the vehicle data is received from the vehicle ECU via the vehicle bus; The first collaborative message, which includes the first vehicle data, is broadcast as real-time vehicle data to the collaborative domain group via the hybrid distributed connection network. The second autonomous vehicle is configured to store the first vehicle data in the second application buffer space at the second autonomous vehicle. At the second time, data about a third vehicle related to the collaborative application is received from the vehicle ECU via the vehicle bus; The third collaborative message, including the third vehicle data, is broadcast as real-time vehicle data to the collaborative domain group via the hybrid distributed connection network. The second autonomous vehicle is configured to store the third vehicle data in the second application buffer space at the second autonomous vehicle. as well as At a third time, a fourth collaborative message including the first number of vehicles and the third vehicle data is received. The second autonomous vehicle broadcasts the fourth collaborative message as historical vehicle data associated with the first autonomous vehicle to the collaborative domain group via the hybrid distributed connection network at the third time.
7. The system according to claim 1, further comprising a resource identification module at the first autonomous driving vehicle, the resource identification module being configured to: Determine whether at least one collaborative message has been received from each autonomous vehicle in the collaborative domain group via the hybrid distributed connectivity network within a predetermined time period; Based at least in part on the determined results, a list of collaborative domain groups associated with the collaborative domain groups is generated; as well as A fifth collaboration message, including a list of collaboration domain groups, is broadcast to the collaboration domain groups via the hybrid distributed connection network.
8. A computer-readable medium comprising instructions stored thereon for enabling cooperative operation of an autonomous vehicle, the instructions causing the processor, when executed by a processor, to: A first collaborative message, including first vehicle data associated with a first autonomous vehicle related to a collaborative application, is broadcast from the first autonomous vehicle to a collaborative domain group via a hybrid distributed connectivity network, the collaborative domain group including at least the first autonomous vehicle and a second autonomous vehicle. At the first autonomous vehicle, a second cooperation message is received via the hybrid distributed connectivity network. The second cooperation message includes second vehicle data associated with the second autonomous vehicle and related to the cooperation application. The second cooperation message is broadcast from the second autonomous vehicle to the cooperation domain group via the hybrid distributed connectivity network. Based at least in part on the first vehicle data and the second vehicle data, collaborative actions associated with the collaborative application are performed at the first autonomous vehicle. Determine if there is available buffer space at the local data buffer at the first autonomous vehicle; as well as Based on the determined result, a first application buffer space is allocated in the local data buffer for the collaborative domain group associated with the collaborative application; When it is determined that there is available buffer space at the local data buffer: At the first moment, the vehicle data is received from the vehicle ECU via the vehicle bus and stored in the first application buffer space; The first collaborative message, which includes the data of the first vehicle, is broadcast as real-time vehicle data to the hybrid distributed connection network. At the second time, data related to the collaborative application of a third vehicle is received from the vehicle ECU via the vehicle bus, and the data of the third vehicle is stored in the first application buffer space; The third collaborative message, including the third vehicle data, is broadcast as real-time vehicle data to the collaborative domain group via the hybrid distributed connection network. Retrieve the first vehicle data and the third vehicle data from the first application buffer space; as well as At the third time, a fourth collaborative message, including the data of the first and third vehicles, is broadcast as historical vehicle data.