Systems and methods for implementing autonomous vehicle collaboration via a hybrid, distributed and connected network
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- GM GLOBAL TECHNOLOGY OPERATIONS LLC
- Filing Date
- 2022-03-16
- Publication Date
- 2026-07-30
AI Technical Summary
Existing autonomous vehicle collaboration systems face inefficiencies in data payload resource use and communication latencies due to the use of a seven-layer Open Systems Interconnection (OSI) scheme for exchanging vehicle data.
A hybrid distributed network (HYDIN) is employed to facilitate communication between autonomous vehicles, utilizing a data link layer and physical layer for collaboration messages, with resource allocation and buffer management to optimize data exchange and reduce latency.
The HYDIN system enhances data payload resource efficiency and reduces communication latency, enabling more efficient collaboration actions among autonomous vehicles, particularly in applications like platooning and lane changing.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
introduction
[0001] The technical field generally refers to autonomous vehicles and, in particular, to systems and methods for implementing autonomous vehicle collaboration via a hybrid, distributed, and connected network.
[0002] Autonomous vehicles frequently collaborate to perform various collaborative applications. This collaboration typically involves the exchange of vehicle data associated with each of the autonomous vehicles participating in the collaborative application. Examples of collaborative applications include, but are not limited to, platooning and lane-changing.
[0003] The exchange of vehicle data using a seven-layer OSI (Open Systems Interconnection) scheme can lead to inefficiencies in the use of data payload resources and to latencies in the communication of vehicle data between autonomous vehicles. Description of the invention
[0004] In one embodiment, a vehicle collaboration system of a first autonomous vehicle comprises a transceiver and a collaboration controller. The transceiver is configured to send a first collaboration message, associated with a collaboration application containing first vehicle data assigned to the first autonomous vehicle, to a collaboration domain group via a hybrid distributed-connected network (HYDIN), wherein the collaboration domain group includes at least the first autonomous vehicle and a second autonomous vehicle. The transceiver is also configured to receive a second collaboration message, associated with the collaboration application and containing second vehicle data assigned to the second autonomous vehicle, via the HYDIN. The second collaboration message is sent from the second autonomous vehicle to the collaboration domain group via the HYDIN.The collaboration controller is configured to implement a collaboration action that is associated with the collaboration application and is based at least partially on the first vehicle data and the second vehicle data.
[0005] In one embodiment, the first collaboration message and the second collaboration message consist of a data link layer and a physical layer.
[0006] In one embodiment, 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.
[0007] In one embodiment, the collaboration application comprises either a platooning application or a lane-changing application.
[0008] In one embodiment, the first vehicle data includes real-time vehicle data.
[0009] In one embodiment, the system further includes a local data buffer in the first autonomous vehicle and a resource allocation module in the first autonomous vehicle. The resource allocation module is configured to determine whether buffer space is available in the local data buffer and to allocate an initial application buffer space in the local data buffer for the collaboration domain group in conjunction with the collaboration application based on this determination.
[0010] In one embodiment, the collaboration controller is configured, upon determination that buffer space is available in the local data buffer, to receive the first vehicle data from an electronic control unit (ECU) of the vehicle via an internal vehicle bus at a first time and to store the first vehicle data in the first application buffer memory location; to send the first collaboration message, which contains the first vehicle data, to the HYDIN as real-time vehicle data; to receive third vehicle data associated with the collaboration application from the ECU via the internal vehicle bus at a second time and to store the third vehicle data in the first application buffer memory; and to send a third collaboration message, which contains the third vehicle data, to the collaboration domain group via the HYDIN as real-time vehicle data.to retrieve the first vehicle data and the third vehicle data from the first application buffer; and to send a fourth collaboration message containing the first vehicle data and the third vehicle data at a third time as historical vehicle data.
[0011] In one embodiment, when it is determined that buffer space in the local data buffer is unavailable, the collaboration controller is configured to receive the first vehicle data from an electronic vehicle control unit via an in-vehicle bus at a first time; to send the first collaboration message, containing the first vehicle data, to the collaboration domain group via the HYDIN as real-time vehicle data, wherein the second autonomous vehicle is configured to store the first vehicle data in a second application buffer in the second autonomous vehicle; and to receive third vehicle data in connection with the collaboration application from the electronic vehicle control unit via the in-vehicle bus at a second time.to send a third collaboration message containing the third vehicle data to the collaboration domain group via the HYDIN as real-time vehicle data, wherein the second autonomous vehicle is configured to store the third vehicle data in the second application buffer in the second autonomous vehicle; and to receive a fourth collaboration message comprising the first vehicle data and the third vehicle data at a third time point, wherein the fourth collaboration message is sent by the second autonomous vehicle to the collaboration domain group via the HYDIN at a third time point as historical vehicle data associated with the first autonomous vehicle.
[0012] In one embodiment, the system further includes a resource identification module on the first autonomous vehicle. The resource identification module is configured to determine whether at least one collaboration message from each of the autonomous vehicles in the collaboration domain group has been received via the HYDIN during a predefined time period; to generate a collaboration domain group list that is at least partially assigned to the collaboration domain group based on this determination; and to send a fifth collaboration message, containing the collaboration domain group list, to the collaboration domain group via the 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 send a first collaboration message, in conjunction with a collaboration application comprising first vehicle data associated with a first autonomous vehicle, from the first autonomous vehicle to a collaboration domain group via a hybrid distributed connected network (HYDIN), wherein the collaboration domain group comprises at least the first autonomous vehicle and a second autonomous vehicle;to receive a second collaboration message in connection with the collaboration application, which includes second vehicle data associated with the second autonomous vehicle, via the HYDIN on the first autonomous vehicle, wherein the second collaboration message is sent from the second autonomous vehicle to the collaboration domain group via the HYDIN; and to implement a collaboration action associated with the collaboration application on the first autonomous vehicle, at least partially based on the first vehicle data and the second vehicle data.
[0014] In one embodiment, the computer-readable medium further includes instructions which, when executed by the processor, cause the processor to send the first collaboration message from the first autonomous vehicle via the HYDIN to the collaboration domain group, wherein the first collaboration message includes the first vehicle data, a collaboration application identifier associated with the collaboration application, and a domain group identifier associated with the collaboration domain group.
[0015] In one embodiment, the computer-readable medium further includes instructions which, when executed by the processor, cause the processor to determine whether buffer space is available in a local data buffer of the first autonomous vehicle; and to allocate a first application buffer memory in the local data buffer for the collaboration domain group in conjunction with the collaboration application based on the determination.
[0016] In one embodiment, the computer-readable medium further contains instructions which, upon determination that buffer space is available in the local data buffer, and upon execution by the processor, cause the processor to receive the first vehicle data from an electronic vehicle control unit (ECU) via an in-vehicle bus at a first time and to store the first vehicle data in the first application buffer; to send the first collaboration message, which contains the first vehicle data, to the HYDIN as real-time vehicle data; to receive third vehicle data associated with the collaboration application from the vehicle's ECU via the in-vehicle bus at a second time and to store the third vehicle data in the first application buffer;to send a third collaboration message containing the third set of vehicle data to the collaboration domain group via HYDIN as real-time vehicle data; to retrieve the first and third set of vehicle data from the first application buffer; and to send a fourth collaboration message containing the first and third set of vehicle data at a third time as historical vehicle data.
[0017] In one embodiment, the computer-readable medium further includes instructions which, upon determination that no buffer space is available in the local data buffer, and upon execution by the processor, cause the processor to receive the first vehicle data from an electronic vehicle control unit via an in-vehicle bus at a first time; to send the first collaboration message containing the first vehicle data to the collaboration domain group via the HYDIN as real-time vehicle data, wherein the second autonomous vehicle is configured to store the first vehicle data in a second application buffer memory in the second autonomous vehicle; and to receive third vehicle data in conjunction with the vehicle control unit via the in-vehicle bus at a second time.to send a third collaboration message containing the third vehicle data to the collaboration domain group via the HYDIN as real-time vehicle data, wherein the second autonomous vehicle is configured to store the third vehicle data in the second application buffer in the second autonomous vehicle; and to receive a fourth collaboration message comprising the first vehicle data and the third vehicle data at a third time point, wherein the fourth collaboration message is sent by the second autonomous vehicle to the collaboration domain group via the HYDIN at a third time point as historical vehicle data associated with the first autonomous vehicle.
[0018] In one embodiment, the computer-readable medium further includes instructions which, when executed by the processor, cause the processor to: determine whether at least one collaboration message from each of the autonomous vehicles in the collaboration domain group was received by the first autonomous vehicle via the HYDIN during a predefined period of time; generate a collaboration domain group list which is at least partially assigned to the collaboration domain group based on the determination; and send a fifth collaboration message, which contains the collaboration domain group list, to the collaboration domain group via the HYDIN.
[0019] In one embodiment, a method for implementing autonomous vehicle collaboration includes sending a first collaboration message, in conjunction with a collaboration application, which includes first vehicle data associated with a first autonomous vehicle, from the first autonomous vehicle to a collaboration domain group via a hybrid distributed network (HYDIN), wherein the collaboration domain group includes at least the first autonomous vehicle and a second autonomous vehicle; receiving a second collaboration message, in conjunction with the collaboration application, which includes second vehicle data associated with the second autonomous vehicle, via the HYDIN at the first autonomous vehicle, wherein the second collaboration message is sent from the second autonomous vehicle to the collaboration domain group via the HYDIN;and implementing a collaborative action assigned to the collaborative application on the first autonomous vehicle, at least partially based on the first vehicle data and the second vehicle data.
[0020] In one embodiment, sending the first collaboration message, which includes the first vehicle data, comprises sending the first collaboration message, which includes the first vehicle data, a collaboration application identifier associated with the collaboration application, and a domain group identifier associated with the collaboration domain group.
[0021] In one embodiment, the method further comprises determining whether buffer space is available in a local data buffer of the first autonomous vehicle; and allocating a first application buffer memory in the local data buffer for the collaboration domain group in conjunction with the collaboration application based on the determination.
[0022] In one embodiment, the method, provided that buffer space is available in the local data buffer, further comprises receiving the first vehicle data from an electronic vehicle control unit (ECU) via an in-vehicle bus at a first time and storing the first vehicle data in the first application buffer; sending the first collaboration message containing the first vehicle data to the HYDIN as real-time vehicle data; receiving third vehicle data in connection with the collaboration application from the electronic vehicle control unit via the in-vehicle bus at a second time and storing the third vehicle data in the first application buffer; sending a third collaboration message containing the third vehicle data to the collaboration domain group via the HYDIN as real-time vehicle data;Retrieving the first vehicle data and the third vehicle data from the first application buffer; and sending a fourth collaboration message containing the first vehicle data and the third vehicle data at a third time as historical vehicle data.
[0023] In one embodiment, the method, if no buffer memory is available in the local data buffer, further comprises receiving the first vehicle data from an electronic vehicle control unit via an in-vehicle bus at a first time; sending the first collaboration message, containing the first vehicle data, to the collaboration domain group via the HYDIN as real-time vehicle data, wherein the second autonomous vehicle is configured to store the first vehicle data in a second application buffer memory in the second autonomous vehicle; and receiving third vehicle data in conjunction with the collaboration application from the electronic vehicle control unit via the in-vehicle bus at a second time.Sending a third collaboration message containing the third vehicle data to the collaboration domain group via the HYDIN as real-time vehicle data, wherein the second autonomous vehicle is configured to store the third vehicle data in the second application buffer in the second autonomous vehicle; and receiving a fourth collaboration message comprising the first vehicle data and the third vehicle data at a third time point, wherein the fourth collaboration message is sent by the second autonomous vehicle to the collaboration domain group via the HYDIN at the third time point as historical vehicle data associated with the first autonomous vehicle. List of characters
[0024] Exemplary embodiments are described below in conjunction with the following drawings, where the same reference numerals denote the same elements. Fig. Figure 1 is a functional block diagram of an autonomous vehicle with an embodiment of a vehicle collaboration system; Fig. Figure 2 is a functional block diagram of a plurality of autonomous vehicles that are communicatively connected via an embodiment of a hybrid distributed connected network (HYDIN); Fig. Figure 3 is a functional block diagram of an embodiment of a vehicle collaboration system; Fig. Figure 4 is a block diagram representation of a collaboration message structure according to an embodiment of a data link layer of a HYDIN protocol; Fig. Figure 5 is a flowchart that illustrates an example of a procedure for implementing autonomous vehicle collaboration; Fig. Figure 6 is a flowchart that illustrates an example of a procedure for forming a collaboration domain group; Fig. Figure 7 is a flowchart representation of an example procedure for adding an autonomous vehicle to a collaboration domain group; Fig. Figure 8 is a flowchart representation of an example procedure for allocating application buffer memory in conjunction with a collaboration application in a collaboration domain group; and Fig. Figure 9 is a flowchart that illustrates an example of a procedure for implementing autonomous vehicle collaboration. Detailed description
[0025] The following detailed description is merely exemplary and is not intended to limit its application and use. Furthermore, it is not intended to be bound by any express or implied theory set forth in the preceding introduction, summary, or the following detailed description. As used herein, the term "module" refers to any hardware, software, firmware, electronic control component, processing logic, and / or processor device, individually or in any combination, including, but not limited to: application-specific integrated circuits (ASICs), an electronic circuit, a processor (common, dedicated, or as a group), and memory executing one or more software or firmware programs, a combinational logic circuit, and / or other suitable components providing the described functionality.
[0026] Embodiments of the present disclosure can be described herein in the form of functional and / or logical block components and various processing steps. It should be understood that such block components can be implemented by any number of hardware, software, and / or firmware components configured to perform the specified functions. For example, an embodiment of the present disclosure may employ various integrated circuit components, such as memory elements, digital signal processing elements, logic elements, lookup tables, or the like, which can perform a variety of functions under the control of one or more microprocessors or other control devices.Furthermore, the person skilled in the art will recognize that embodiments of the present disclosure can be used in conjunction with any number of systems and that the systems described herein are merely exemplary embodiments of the present disclosure.
[0027] For the sake of brevity, conventional techniques related to signal processing, data transmission, signaling, control, and other functional aspects of the systems (and the individual operating components of the systems) are not described in detail herein. Furthermore, the connecting lines shown in the various figures are intended to represent exemplary functional relationships and / or physical couplings between the various elements. It should be noted that many alternative or additional functional relationships or physical connections may exist in an embodiment of this disclosure.
[0028] With reference to Fig. Figure 1 shows a functional block diagram of an autonomous vehicle 100 with an embodiment of a vehicle collaboration system 110. The autonomous vehicle 100 generally comprises a chassis 112, a body 114, front wheels 116, and rear wheels 118. The body 114 is arranged on the chassis 112 and essentially encloses components of the autonomous vehicle 100. The body 114 and the chassis 112 can together form a frame. The front wheels 116 and the rear wheels 118 are each rotatably connected to the chassis 112 near a corresponding corner of the body 114.
[0029] The autonomous vehicle 100, for example, is a vehicle that is automatically controlled to transport passengers from one place to another. While 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, sports utility vehicles (SUVs), recreational vehicles (RVs), watercraft, and aircraft. In one embodiment, the autonomous vehicle 100 is a so-called Level 4 or 5 automation system. A Level 4 system represents a high degree of automation; that is, an automated driving system (ADS) takes over all aspects of the dynamic driving task, even if a human driver does not respond appropriately to a request for intervention. A Level 5 system signifies "full automation," meaning that the system is fully automated.An automated driving system fully executes all aspects of the dynamic driving task under all road and environmental conditions that can be handled by a human driver.
[0030] As shown, the autonomous vehicle 100 generally includes a drive 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 control unit 134, and a vehicle communication system 136. The drive system 120 may, in various embodiments, comprise an internal combustion engine, an electric machine such as a traction motor, and / or a fuel cell drive system. The transmission system 122 is configured to transmit the power of the drive system 120 to the front wheels 116 and the rear wheels 118, depending on selectable speed ratios. According to various embodiments, the transmission system 122 may include a stepped automatic transmission, a continuously variable transmission, or another suitable transmission.The braking system 126 is configured to exert a braking torque on the front wheels 116 and the rear wheels 118. The braking system 126 may, in various embodiments, include friction brakes, cable-operated brakes, a regenerative braking system such as an electric motor, and / or other suitable braking systems. The steering system 124 influences the position of the front wheels 116 and the rear wheels 118. Although a steering wheel is shown for illustrative purposes, the steering system 124 may not include a steering wheel in some embodiments considered within the scope of this disclosure.
[0031] The vehicle sensor system 128 includes one or more vehicle sensor devices 140a-140n that detect observable conditions of the external environment and / or the internal environment of the autonomous vehicle 100. Examples of vehicle sensor devices 140a-140n include, but are not limited to, radars, lidar, global positioning systems (GPS), optical cameras, thermal 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 functions, such as, but are not limited to, the drive system 120, the transmission system 122, the steering system 124, and the braking system 126. In various embodiments, the vehicle functions may further include interior and / or exterior functions of the vehicle, such as, but are not limited to, doors, a trunk, and cabin features, such as air conditioning, music, and lighting.
[0032] The vehicle communication system 136 is configured to wirelessly transmit information to and from other units (vehicle-to-everything (V2X) communication). For example, the vehicle communication system 136 is configured to wirelessly transmit information to and from other vehicles 148 (“V2V” communication), to and from the vehicle system infrastructure (“vehicle-to-everything (V2I) communication”), remote systems, and / or personal devices. Examples of the vehicle system infrastructure include, but are not limited to, a mobile edge computing (MEC) system 150 with a road side unit (RSU) 152. In one embodiment, the vehicle communication system 136 is a wireless communication system configured to communicate over a wireless local area network (WLAN) using IEEE 802.11 standards or over cellular data communication. Additional or alternative communication methods, such as…However, a dedicated short-range communication channel (DSRC channel) is 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 use in motor vehicles, as well as to a number of corresponding protocols and standards.
[0033] The data storage device 132 stores data for use in the automatic control of the autonomous vehicle 100. The data storage device 132 can be part of the control unit 134, separate from the control unit 134, or part of the control unit 134 and part of a separate system.
[0034] The control unit 134 includes at least one processor 144 and a computer-readable storage device 146. The computer-readable storage device 146 can also be referred to as a computer-readable medium 146 and a computer-readable data carrier 146. In one embodiment, the computer-readable storage device 146 comprises an embodiment of the vehicle collaboration system 110. The processor 144 can be any custom or commercially available processor, a central processing unit (CPU), a graphics processing unit (GPU), an auxiliary processor among several processors assigned to the control unit 134, a semiconductor-based microprocessor (in the form of a microchip or a chipset), a macroprocessor, any combination thereof, or generally any device for executing instructions. The computer-readable storage device 146 can include volatile and non-volatile memory, e.g.Read-only memory (ROM), random-access memory (RAM), and keep-alive memory (KAM). KAM is a persistent or non-volatile memory that can be used to store various operating variables while the processor 144 is powered off. The computer-readable memory device 146 can be implemented using any number of known memory devices such as PROMs (programmable read-only memory), EPROMs (electrical PROMs), EEPROMs (electrically erasable PROMs), flash memory, or other electrical, magnetic, optical, or combined memory devices capable of storing data, some of which are executable instructions used by the control unit 134 in controlling the autonomous vehicle 100.
[0035] The instructions can comprise one or more separate programs, each containing an ordered list of executable instructions for implementing logical functions. When executed by the processor 144, the instructions receive and process signals from the vehicle sensor system 128, perform logic, calculations, procedures, and / or algorithms for the automatic control of the components of the autonomous vehicle 100, and generate control signals for the actuator system 130 to automatically control one or more components of the autonomous vehicle 100 based on the logic, calculations, procedures, and / or algorithms. Although in Fig. Where only one control unit 134 is shown, alternative embodiments of the autonomous vehicle 100 may include any number of control units 134 which communicate via any suitable communication medium or combination of communication media and which cooperate to process the sensor signals, perform logic, calculations, procedures and / or algorithms and generate control signals to automatically control features of the autonomous vehicle 100.
[0036] In various embodiments, one or more instructions of the control unit 134 are configured to provide ADS functions as described with reference to one or more of the embodiments described herein. The control unit 134 or one of its function modules is configured to implement the functions described with reference to one or a combination of embodiments of the vehicle collaboration system 110.
[0037] With reference to Fig. Figure 2 shows a functional block diagram of an example for a plurality of autonomous vehicles 100A, 100B, 100C, which are communicatively coupled via an embodiment of a hybrid distributed connected network (HYDIN) 200. Each of the autonomous vehicles 100A, 100B, 100C has a configuration that corresponds to the autonomous vehicle 100 in Fig. 1 is similar. The autonomous vehicle 100A comprises a plurality of electronic vehicle control units (ECUs) 202A, 204A, 206A and an embodiment of a vehicle collaboration system 110A. The electronic vehicle control units 202A, 204A, 206A and the vehicle collaboration system 110A are communicatively coupled via an in-vehicle bus. In one embodiment, the in-vehicle bus is a controller area network bus (CAN bus). While the autonomous vehicle 100A is described with three vehicle control units, alternative embodiments may include a smaller or larger number of vehicle control units.
[0038] The vehicle collaboration system 110A is configured to receive vehicle data from one or more of the electronic vehicle control units 202A, 204A, and 206A. The vehicle collaboration system 110A is configured to form a collaboration domain group with one or more of the autonomous vehicles 100B and 100C to cooperate on a collaboration application. Each collaboration domain group is associated with a domain group identifier. Examples of collaboration applications include a platooning application and a lane-change application. Each collaboration application is associated with a collaboration application identifier.
[0039] The vehicle collaboration system 110A is configured, in conjunction with the collaboration application, to send and receive collaboration messages to one or more of the autonomous vehicles 100B, 100C in the collaboration domain group via the HYDIN 200. These collaboration messages contain vehicle data. In one embodiment, the vehicle collaboration system 110A is configured to send and receive collaboration messages to one or more of the autonomous vehicles 100B, 100C in the collaboration domain group via the HYDIN 200 using a distributed network model. In one embodiment, the distributed network model consists of a data link layer and a physical layer.An ADS in the autonomous vehicle 100A is configured to perform one or more collaboration actions associated with the collaboration application, at least partially, based on the vehicle data in the collaboration messages.
[0040] The autonomous vehicle 100B comprises a variety of electronic vehicle control units (ECUs) 202B, 204B, 206B, and an embodiment of a vehicle collaboration system 110B. The ECUs 202B, 204B, 206B, and the vehicle collaboration system 110B are communicatively coupled via an in-vehicle bus. In one embodiment, the in-vehicle bus is a CAN bus. While the autonomous vehicle 100B is described as having three ECUs, alternative embodiments may include a smaller or larger number of ECUs.
[0041] The vehicle collaboration system 110B is configured to receive vehicle data from one or more of the electronic vehicle control units 202B, 204B, or 206B. The vehicle collaboration system 110B is configured to form a collaboration domain group with one or more of the autonomous vehicles 100A or 100C to collaborate on a collaborative application. Each collaboration domain group is assigned a domain group identifier. Each collaboration application is assigned a collaboration application identifier.
[0042] The vehicle collaboration system 110B is configured to send and receive collaboration messages, in conjunction with the collaboration application, to and from one or more of the autonomous vehicles 100A and 100C in the collaboration domain group via the HYDIN 200. These collaboration messages contain vehicle data. In one embodiment, the vehicle collaboration system 110B is configured to send and receive collaboration messages to and from one or more of the autonomous vehicles 100A and 100C in the collaboration domain group via the HYDIN 200 using a distributed network model. In one embodiment, the distributed network model consists of a data link layer and a physical layer.An ADS in the autonomous vehicle 100B is configured to perform one or more collaboration actions associated with the collaboration application, at least partially, based on the vehicle data in the collaboration messages.
[0043] The autonomous vehicle 100C includes a variety of electronic vehicle control units (ECUs) 202C, 204C, 206C, and an embodiment of a vehicle collaboration system 110C. The ECUs 202C, 204C, 206C, and the 110C are communicatively coupled via an in-vehicle bus. In one embodiment, the in-vehicle bus is a CAN bus. While the autonomous vehicle 100B is described as having three ECUs, alternative embodiments may include fewer or more ECUs.
[0044] The vehicle collaboration system 110C is configured to receive vehicle data from one or more of the electronic vehicle control units 202C, 204C, and 206C. The vehicle collaboration system 110C is configured to form a collaboration domain group with one or more of the autonomous vehicles 100A and 100B to cooperate on a collaboration application. Each collaboration domain group is associated with a domain group identifier. Examples of collaboration applications include a vehicle platooning application and a vehicle lane-change application. Each collaboration application is associated with a collaboration application identifier.
[0045] The vehicle collaboration system 110C is configured to send and receive collaboration messages, in conjunction with the collaboration application, to and from one or more of the autonomous vehicles 100A and 100C in the collaboration domain group via the HYDIN 200. These collaboration messages contain vehicle data. In one embodiment, the vehicle collaboration system 110C is configured to send and receive collaboration messages to and from one or more of the autonomous vehicles 100A and 100B in the collaboration domain group via the HYDIN 200 using a distributed network model. In one embodiment, the distributed network model consists of a data link layer and a physical layer.An ADS in the autonomous vehicle 100C is configured to perform one or more collaboration actions associated with the collaboration application, at least partially, based on the vehicle data in the collaboration messages.
[0046] While in Fig. Figure 2 shows three autonomous vehicles 100A, 100B, and 100C, configured to communicate via the HYDIN 200. However, a smaller or larger number of autonomous vehicles 100 can be configured to communicate via the HYDIN 200. While the collaboration domain groups described above include two or three autonomous vehicles 100, the collaboration domain groups can include a larger number of autonomous vehicles 100. In one embodiment, autonomous vehicles 100 that are within communication range of each other via the HYDIN can form a collaboration domain group.
[0047] With reference to Fig. Figure 3 shows a functional block diagram of an embodiment of a 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 implement a collaboration application. The transceiver 302 is configured to send collaboration messages to other autonomous vehicles 100A, 100B, 100C and to receive collaboration messages from other autonomous vehicles 100A, 100B, 100C via the HYDIN 200. In one embodiment, the collaboration messages consist of a data link layer and a physical layer.
[0048] A number of autonomous vehicles (100A, 100B, 100C) can communicate with the HYDIN 200. The vehicle collaboration system (110) in each of these vehicles is configured to send collaboration messages to the HYDIN 200. These messages contain vehicle data, along with the collaboration application, a domain group identifier, and a collaboration application identifier. The transceiver (302) in each of these vehicles is configured to receive the collaboration messages sent to the HYDIN 200.
[0049] When a transceiver 302 in an autonomous vehicle 100A, 100B, 100C receives collaboration messages from the HYDIN 200, the collaboration controller 300 in the autonomous vehicle 100A, 100B, 100C identifies the collaboration messages from the received messages that are relevant to that autonomous vehicle 100A, 100B, 100C. The collaboration controller 300 determines whether the autonomous vehicle 100A, 100B, 100C is participating in a collaboration application with a collaboration domain group.When the collaboration controller 300 detects that the autonomous vehicle 100A, 100B, or 100C is participating in a collaboration application with a collaboration domain group, the collaboration controller 300 identifies the collaboration messages in the received collaboration messages that contain the collaboration application identifier and the domain group identifier associated with the collaboration domain group as relevant collaboration messages. The collaboration controller 300 is configured to implement one or more collaboration actions associated with the collaboration application, at least partially, based on the vehicle data in the relevant collaboration messages.
[0050] In one embodiment, when an autonomous vehicle 100A, 100B, 100C joins a collaboration domain group to cooperate on a collaboration application, the resource allocation module 304 of this autonomous vehicle 100A, 100B, 100C is configured to allocate application buffer memory 310 for this collaboration domain group in conjunction with the collaboration application in the local data buffer 308. In another embodiment, when an autonomous vehicle 100A, 100B, 100C joins a collaboration domain group, the resource allocation module 304 of this autonomous vehicle 100A, 100B, 100C is configured to determine whether buffer space is available in the local data buffer 308 for allocating application buffer memory 310 for this collaboration domain group in conjunction with the collaboration application.
[0051] If the resource allocation module 304 of the autonomous vehicle 100A, 100B, 100C determines that buffer space for the allocation of application buffer memory 310 for this collaboration domain group in conjunction with the collaboration application is available in the local data buffer 308, the resource allocation module 304 of this autonomous vehicle 100A, 100B, 100C is configured to allocate application buffer space 310 for this collaboration domain group in conjunction with the collaboration application in the local data buffer 308. The vehicle collaboration system 110 of the autonomous vehicle 100A, 100B, 100C is configured to notify the other autonomous vehicles 100A, 100B, 100C in the collaboration domain group via a collaboration message sent to HYDIN 200 that application buffer space 310 has been allocated for the collaboration application in the local data buffer 308 of the autonomous vehicle 100A, 100B, 100C.The collaboration message contains the domain group identifier associated with the collaboration domain group, the collaboration application identifier associated with the collaboration application, the resource location of the application buffer 310 in the local data buffer 308, and the size of the allocated application buffer 310.
[0052] If the resource allocation module 304 of autonomous vehicle 100A, 100B, 100C determines that no buffer space is available for allocating application buffer space 310 for this collaboration domain group in conjunction with the collaboration application in the local data buffer 308, the collaboration controller 302 is configured to notify the other autonomous vehicles 100A, 100B, 100C in the collaboration domain group that the buffer space for allocating application buffer space 310 for this collaboration domain group in conjunction with the collaboration application in the local data buffer 308 of this autonomous vehicle 100A, 100B, 100C is not available, via a collaboration message sent to the HYDIN 200.The vehicle collaboration systems 110 on the other autonomous vehicles 100A, 100B, 100C in the collaboration domain group are configured to respond to the receipt of a collaboration message indicating that an autonomous vehicle 100A, 100B, 100C in the collaboration domain group has no available buffer space in its local data buffer 308. The actions performed by the vehicle collaboration systems 110 on the other autonomous vehicles 100A, 100B, 100C are described in more detail below.
[0053] The Resource Identification Module 306 is configured to add autonomous vehicles 100A, 100B, and 100C that join a collaboration domain group to a collaboration domain group list and to remove autonomous vehicles 100 that leave a collaboration domain group from the collaboration domain group list. Additional details regarding the actions implemented by the Resource Identification Module 306 are described in more detail below. While a number of different components of the Vehicle Collaboration System 110 are in Fig. As shown in Figure 3, the vehicle collaboration system can include 110 additional components that facilitate the implementation of a collaboration application on an autonomous vehicle 100A, 100B, 100C.
[0054] With reference to Fig. Figure 4 shows a block diagram of an example structure for a Collaboration Message 400 in accordance with an embodiment of a data link layer of a HYDIN protocol. The Collaboration Message 400 structure includes a field 402 for the start of a frame, a field 404 for the domain group identifier, a field 406 for the collaboration application identifier, a field 408 for the resource location, a field 410 for the data length, a field 412 for the data payload, a field 414 for a cyclic redundancy check (CRC), and a field 416 for the end of a frame. While one configuration of a Collaboration Message 400 structure is shown, alternative embodiments of the Collaboration Message 400 structure may include other fields.While a number of different fields of the Collaboration Message 400 structure have been described, alternative embodiments of the Collaboration Message structure may include additional fields.
[0055] With reference to Fig. Figure 5 is a flowchart of an example of a Method 500 for implementing autonomous vehicle collaboration. The Method 500 is performed by embodiments of the vehicle collaboration systems 110A, 110B, 110C in autonomous vehicles 100A, 100B, 100C. The Method 500 can be performed by the vehicle collaboration system 110A, 110B, 110C in combination with other components of the autonomous vehicle 100A, 100B, 100C. The Method 500 can be performed by hardware circuits, firmware, software, and / or combinations thereof. The Method 500 is described with reference to Fig. 2 and Fig. 3 described.
[0056] At 502, the vehicle collaboration systems 110A, 110B, 110C of two or more autonomous vehicles 100A, 100B, 100C form a collaboration domain group to implement a collaboration application. At 504, the resource allocation module 304 assigns the application buffer memory 310 to each of the autonomous vehicles 100A, 100B, 100C in the collaboration domain group that has buffer space available for allocation to the collaboration domain group in conjunction with the collaboration application in the local data buffer 308.
[0057] At 506, the vehicle collaboration system 110A, 110B, 110C of each of the autonomous vehicles 100A, 100B, 100C in the collaboration domain group notifies the vehicle collaboration systems 110A, 110B, 110C of the other autonomous vehicles 100A, 100B, 100C in the collaboration domain group about the allocated application buffer memory 310 for the collaboration domain group in conjunction with the collaboration application. If the resource allocation module 304 in an autonomous vehicle 100A, 100B, 100C determines that no buffer space is available in the local data buffer 308 for allocation to the collaboration domain group, the vehicle collaboration system 110A, 110B, 110C of this autonomous vehicle 100A, 100B, 100C informs the vehicle collaboration systems 110A, 110B, 110C of the other autonomous vehicles 100A, 100B, 100C in the collaboration domain group.
[0058] At 508, the vehicle collaboration system 110A, 110B, 110C of each of the autonomous vehicles 100A, 100B, 100C in the collaboration domain group receives real-time vehicle data from one or more of the electronic vehicle control units 202, 204, 206 on the autonomous vehicle 100A, 100B, 100C via the vehicle's internal bus. At 510, the vehicle collaboration system 110A, 110B, 110C of each of the autonomous vehicles 100A, 100B, 100C with assigned application buffer 310 stores the real-time vehicle data received from the electronic vehicle control units 202, 204, 206 in the assigned application buffer 310.
[0059] At 512, the vehicle collaboration system 110A, 110B, 110C sends a collaboration message containing the real-time vehicle data, the collaboration application identifier, and the domain group identifier to each of the autonomous vehicles 100A, 100B, 100C in the collaboration domain group via the HYDIN 200 to the other autonomous vehicles 100A, 100B, 100C in the collaboration domain group. The collaboration controller 302 in each of the autonomous vehicles 100A, 100B, 100C implements one or more collaboration actions associated with the collaboration application, at least partially based on the real-time vehicle data generated in that autonomous vehicle 100A, 100B, 100C and the real-time vehicle data received from the other autonomous vehicle 100A, 100B, 100C in the collaboration domain group.At 514, the vehicle collaboration system 110A, 110B, 110C of each of the autonomous vehicles 100A, 100B, 100C with application buffer memory 310 assigned for collaboration stores the real-time vehicle data received by the vehicle collaboration systems 110A, 110B, 110C of the autonomous vehicles 100A, 100B, 100C without an assigned application buffer memory 310 in their assigned application buffer memory 310.
[0060] At 516, the vehicle collaboration system 110A, 110B, 110C of each of the autonomous vehicles 100A, 100B, 100C in the collaboration domain group with an assigned application buffer 310 sends a collaboration message to the other autonomous vehicles 100A, 100B, 100C in the collaboration domain group via the HYDIN 200. This message contains historical vehicle data associated with these autonomous vehicles and historical vehicle data associated with autonomous vehicles without an assigned application buffer 310. The collaboration controller 302 in each of the autonomous vehicles 100A, 100B, 100C implements one or more collaboration actions associated with the collaboration application, at least partially based on the historical vehicle data assigned to the autonomous vehicle 100A, 100B, 100C in the collaboration domain group. are assigned to a collaboration domain group.
[0061] One of the autonomous vehicles 100A, 100B, 100C in the collaboration domain group acts as the lead autonomous vehicle 100A, 100B, 100C. At 518, the resource identification module 306 of the lead autonomous vehicle 100A, 100B, 100C maintains a collaboration domain group list of the autonomous vehicles 100A, 100B, 100C in the collaboration domain group. The resource identification module 306 drops an autonomous vehicle 100A, 100B, 100C from the collaboration domain group if a collaboration message from that autonomous vehicle 100A, 100B, 100C is not received within a predefined time period.The vehicle collaboration system 110A, 110B, 110C of the leading autonomous vehicle 100A, 100B, 100C sends a collaboration message containing the collaboration domain group list, the collaboration application identifier and the domain group identifier via the HYDIN 200 to the other autonomous vehicles 100A, 100B, 100C in the collaboration domain group.
[0062] With reference to Fig. Figure 6 is a flowchart of an example of a method 600 for forming a collaboration domain group. The method 600 is performed by an embodiment of a vehicle collaboration system 110A, 110B. The method 600 can be performed by the vehicle collaboration system 110A, 110B in combination with other components of the autonomous vehicle 100A, 100B. The method 600 can be executed by hardware circuits, firmware, software, and / or combinations thereof. The method 600 is described with reference to Fig. 2 and Fig. 3 described. While the example is described with reference to the formation of a collaboration domain group with two autonomous vehicles 100A, 100B, a collaboration domain group with more than two autonomous vehicles can be formed.
[0063] At 602, a first vehicle collaboration system 110A on a first autonomous vehicle 100A and a second vehicle collaboration system 110B on a second autonomous vehicle 100B each send a collaboration message to HYDIN 200 containing a collaboration request associated with a collaboration application. Each collaboration message contains a collaboration application identifier and vehicle data relevant to the collaboration application.
[0064] For example, the first vehicle collaboration system 110A on the first autonomous vehicle 100A can send an initial collaboration message to the HYDIN 200 containing a collaboration request associated with a platooning application. Similarly, the second vehicle collaboration system 110B on the second autonomous vehicle 100B can send a second collaboration message to the HYDIN 200 containing a collaboration request associated with the platooning application. The first collaboration request includes vehicle data associated with the first autonomous vehicle 100A that is relevant to the platooning application, as well as the collaboration application identifier assigned to that application.The second collaboration request contains vehicle data associated with the second autonomous vehicle, 100B, that is relevant to the platooning application, as well as the collaboration application identifier assigned to the platooning application. Examples of vehicle data include vehicle location, vehicle speed, and vehicle position.
[0065] At 604, the autonomous vehicles 100A, 100B, 100C, which are communicatively coupled with the HYDIN 200, receive the first collaboration message and the second collaboration message including the collaboration requests associated with the collaboration application, which was sent by the first autonomous vehicle 100A and the second autonomous vehicle 100B.
[0066] At 606, the vehicle collaboration systems 110A, 110B, 110C on the autonomous vehicles 100A, 100B, 100C identify the received collaboration messages that are relevant to these autonomous vehicles 100A, 100B, 100C. For example, since both the first and second collaboration requests contain the same collaboration application identifier, the first autonomous vehicle 100A identifies the second collaboration message sent by the second autonomous vehicle 100B as relevant to the first autonomous vehicle 100A, and the second autonomous vehicle 100B identifies the first collaboration message sent by the first autonomous vehicle 100A as relevant to the second autonomous vehicle 100B.The vehicle collaboration system 110C on the third autonomous vehicle 100C determines that the first and second collaboration messages are not relevant for the third autonomous vehicle 100C, because the third vehicle collaboration system 110C did not send a collaboration message with the same collaboration identifier.
[0067] At 608, the first and second vehicle collaboration systems 110A and 110B on the first and second autonomous vehicles 110A and 110B, respectively, identify a leading autonomous vehicle 100A associated with the implementation of the collaboration application, based on the vehicle data received in the first and second collaboration messages. For example, the first vehicle collaboration system 110A on the first autonomous vehicle 100A and the second vehicle collaboration system 110B on the second autonomous vehicle 100A receive the platooning request. The vehicle location of the first autonomous vehicle 110A is included in the first collaboration message, and the vehicle location of the second autonomous vehicle 110B is included in the second collaboration message. The vehicle position of the first autonomous vehicle 100A can be in a leading position relative to the vehicle position of the second autonomous vehicle 100B.Accordingly, the first and second vehicle collaboration systems 110A, 110B can identify the first autonomous vehicle 100A as the leading autonomous vehicle 100A.
[0068] At 610, the vehicle collaboration system 110A on the lead autonomous vehicle 100A determines a collaboration domain group for the collaboration application, which includes the first and second autonomous vehicles 100A and 100B, respectively. This domain group sends the first and second collaboration messages, including the collaboration request associated with the collaboration application, and a domain group identifier for the collaboration domain group. For example, the vehicle collaboration system 110A on the lead autonomous vehicle 100A can determine a collaboration domain group for the platooning application, which includes the first and second autonomous vehicles 100A and 100B, and generate a domain group identifier for the collaboration domain group associated with the platooning application.
[0069] At 612, the vehicle collaboration system 110A of the leading autonomous vehicle 100A sends a collaboration message to the HYDIN 200. This message contains the domain group identifier, the collaboration application identifier, and a collaboration domain group list of the autonomous vehicles 100A and 100B within the collaboration domain group. The vehicle collaboration systems 110A and 110B of the autonomous vehicles 100A and 100B within the collaboration domain group receive the collaboration message, including the domain group identifier and the collaboration domain list, from the HYDIN 200.For example, the vehicle collaboration system 110A of the lead autonomous vehicle 100A can send a collaboration message to the HYDIN 200 containing the domain group identifier for the platooning collaboration domain group, the collaboration application identifier associated with the platooning application, and the collaboration domain group list containing the first and second autonomous vehicles 100A and 100B in the platoon. The vehicle collaboration systems 110A and 110B of the autonomous vehicles 100A and 100B in the platooning collaboration domain group receive the collaboration message from the HYDIN 200.
[0070] With reference to Fig. Figure 7 is a flowchart of an example of a procedure 700 for adding an autonomous vehicle 100C to a collaborative domain group of autonomous vehicles 100A, 100B. The procedure 700 is performed by a vehicle collaboration system 110A, 110B, 110C. The procedure 700 can be performed by the vehicle collaboration systems 110A, 110B, 110C in combination with other components of the autonomous vehicles 100A, 100B, 100C. The procedure 700 can be performed by hardware circuits, firmware, software, and / or combinations thereof. The procedure 700 is described with reference to Fig. 2, Fig. 3 and Fig. 6. While the example is described with reference to adding an autonomous vehicle 100C to a collaboration domain group with two autonomous vehicles 100A and 100B, a collaboration domain group can include a larger number of autonomous vehicles. The example is described with reference to adding a third autonomous vehicle 100C to the one described in Fig. The 6-formed collaboration domain group is described.
[0071] At 702, a third vehicle collaboration system 110C in a third autonomous vehicle 100C sends a collaboration message to the HYDIN 200 containing a collaboration request associated with a collaboration application. The collaboration message includes a collaboration application identifier and vehicle data relevant to the collaboration application. For example, the third vehicle collaboration system 110C on the third autonomous vehicle 100C can send a collaboration message to the HYDIN 200 containing a collaboration request associated with a platooning application. The collaboration request includes vehicle data associated with the third autonomous vehicle 100C that is relevant to the platooning application, as well as the collaboration application identifier associated with the platooning application. Examples of vehicle data include vehicle location, vehicle speed, and vehicle position.
[0072] At port 704, the first and second autonomous vehicles, 100A and 100B, receive the collaboration message, including the collaboration request associated with the collaboration application, which is sent by the third autonomous vehicle, 100C, via the HYDIN 200. The collaboration domain group comprises the first autonomous vehicle, 100A, and the second autonomous vehicle, 100B. For example, the existing collaboration domain group associated with the platooning application comprises the first autonomous vehicle, 100A, and the second autonomous vehicle, 100B.
[0073] At 706, the first vehicle collaboration system 110A of the lead autonomous vehicle 100A in the collaboration domain group sends a collaboration message confirming 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 of the lead autonomous vehicle 100A in the collaboration domain group sends a collaboration message to HYDIN 200 confirming receipt of the collaboration request and the addition of the third autonomous vehicle to the collaboration domain group associated with the platooning application.
[0074] At 708, the first vehicle collaboration system 110A on the lead autonomous vehicle 100A sends a collaboration message to the HYDIN 200 containing the domain group identifier, the collaboration application identifier, and an updated collaboration domain group list of the autonomous vehicles 100A, 100B, and 100C in the collaboration domain group. For example, the vehicle collaboration system 110A on the lead autonomous vehicle 100A can send a collaboration message to the HYDIN 200 containing the domain group identifier for the platooning collaboration domain group, the collaboration application identifier associated with the platooning application, and the collaboration domain group list containing the first, second, and third autonomous vehicles 100A, 100B, and 100C in the platoon. Send HYDIN 200.
[0075] At 710, the vehicle collaboration systems 110B and 110C of the autonomous vehicles 100B and 100C in the collaboration domain group receive the collaboration message, including the domain group identifier, the collaboration application identifier, and the updated collaboration domain list, from the HYDIN 200. For example, the vehicle collaboration systems 110B and 110C of the autonomous vehicles 100B and 100C in the platooning collaboration domain group receive the collaboration message from the HYDIN 200.
[0076] With reference to Fig. Figure 8 shows a flowchart illustrating an example of Method 800 for allocating application buffer memory 310 in conjunction with a collaborative application in a collaborative domain group. Method 800 is performed by embodiments of the vehicle collaboration system 110A, 110B. Method 800 can be performed by the vehicle collaboration systems 110A, 110B in combination with other components of the autonomous vehicles 100A, 100B. Method 800 can be performed by hardware circuits, firmware, software, and / or combinations thereof. Method 800 is described with reference to Fig. 2, Fig. 3 and Fig. 6 described. While the example is described with reference to a collaboration domain group with two autonomous vehicles 100A, 100B, a collaboration domain group can include a larger number of autonomous vehicles.
[0077] At 802, the vehicle collaboration system 110A of the lead autonomous vehicle 100A sends a collaboration message with a resource request to the HYDIN 200. The collaboration message contains the domain group identifier and the collaboration application identifier. At 804, the collaboration message, including the resource request, is received by the second vehicle collaboration system 110B and the third vehicle collaboration system 110C of the autonomous vehicles 100B and 100C, respectively, which are communicatively connected to the HYDIN 200. The second vehicle collaboration system 110B of the second autonomous vehicle 100B identifies the collaboration message containing the resource request as a relevant collaboration message based on the domain group identifier and the collaboration application identifier within the collaboration message.
[0078] At 806, the resource allocation module 304 in each of the first and second vehicle collaboration systems 110A, 110B and the first and second autonomous vehicles 100A, 100B determines whether buffer space is available for allocating application buffer memory 310 for the collaboration domain group associated with the collaboration application in the local data buffer 308. If the resource allocation module 304 of the first autonomous vehicle 100A determines that buffer space is available for allocating application buffer memory 310 for the collaboration domain group associated with the collaboration application in its local data buffer 308, the resource allocation module 304 of the first autonomous vehicle 100A allocates application buffer memory 310 in its local data buffer 308 at 808.
[0079] At 810, the first vehicle collaboration system 110A of the autonomous vehicle 100A, which has allocated application buffer memory 310 in its local data buffer 308, sends a collaboration message to the HYDIN 200. This message informs the other autonomous vehicles 100B in the collaboration domain group that application buffer memory 310 has been allocated for the collaboration application in the local data buffer 308 of the autonomous vehicle 100A. The collaboration message contains the domain group identifier associated with the collaboration domain group, the collaboration application identifier associated with the collaboration application, the resource location of application buffer memory 310 in the local data buffer 308, and the size of the allocated application buffer memory 310.
[0080] At event 812, when the first vehicle collaboration system 110A of the first autonomous vehicle 100A, which has application buffer memory 310 allocated in its local data buffer 308, receives vehicle data associated with the collaboration application from the electronic vehicle control units 202A, 204A, 206A via the vehicle's internal bus, the first vehicle collaboration system 110A stores the vehicle data in the allocated application buffer memory 310 and sends a collaboration message to the other autonomous vehicles 100B in the collaboration group via the HYDIN 200. The collaboration message contains the domain group identifier, the collaboration application identifier, the vehicle data, and the resource location of the application buffer memory. The vehicle data is real-time vehicle data.The collaboration controller 300 in each of the autonomous vehicles 100A, 100B in the collaboration domain group implements one or more collaboration actions that are associated with the collaboration application and are based at least partially on the vehicle data.
[0081] At 814, the first vehicle collaboration system 110A of the first autonomous vehicle 100A, which has application buffer location 310 allocated in its local data buffer 308, retrieves a predefined number of vehicle data entries associated with the first autonomous vehicle 100A, which were previously stored in the allocated application buffer 310, and sends a collaboration message containing the retrieved vehicle data to the other autonomous vehicles 100B in the collaboration domain group via HYDIN 200. The collaboration message contains the domain group identifier, the collaboration application identifier, the retrieved vehicle data associated with the first autonomous vehicle 100A, and the resource location of the application buffer 310. The vehicle data is historical vehicle data.The collaboration controller 300 in each of the autonomous vehicles 100A, 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.
[0082] When, at 806, the resource allocation module 304 of the second autonomous vehicle 100B in the collaboration domain group determines that no buffer space is available in its local data buffer 308 for allocating application buffer memory 310 to the collaboration domain group in conjunction with the collaboration application, the second vehicle collaboration system 110B sends a collaboration message at 816 via the HYDIN 200. This message informs the other autonomous vehicles 100A in the collaboration domain group that no buffer space is available in its local data buffer 308 for allocating application buffer memory 310. The collaboration message contains the domain group identifier assigned to the collaboration domain group, the collaboration application identifier assigned to the collaboration application, and a notification of the buffer space unavailability.
[0083] At event 818, when the second vehicle collaboration system 110B of the second autonomous vehicle 100B, which is unable to allocate application buffer memory 310 in its local data buffer 308, receives vehicle data related to the collaboration application from the electronic vehicle control units 202B, 204B, 206B via the vehicle's internal bus, the second vehicle collaboration system 110B sends a collaboration message to the other autonomous vehicles 100A in the collaboration group via HYDIN 200, but does not store the vehicle data in its local data buffer 308. The collaboration message contains the domain group identifier, the collaboration application identifier, and the vehicle data. The vehicle data is real-time vehicle data.The collaboration controller 300 in each of the autonomous vehicles 100A, 100B in the collaboration domain group performs one or more collaboration actions associated with the collaboration application and based at least partially on the vehicle data.
[0084] At 820, when the first vehicle collaboration system 110A of the first autonomous vehicle 100A, which has application buffer memory 310 allocated in its local data buffer 308, receives the collaboration message including the real-time vehicle data via the HYDIN 200, which is allocated to the second autonomous vehicle 100B, which is unable to allocate application buffer memory 310 in its local data buffer 308, the first vehicle collaboration system 110A of the first autonomous vehicle 100A with allocated application buffer memory 310 stores the real-time vehicle data, which is allocated to the second autonomous vehicle 100B, in the allocated application buffer memory 310 in its local data buffer 308.
[0085] At 822, the first vehicle collaboration system 110A of the first autonomous vehicle 100A, which has application buffer memory 310 allocated to it, retrieves a predefined number of vehicle data entries associated with the second autonomous vehicle 100B. These entries were previously stored in the first autonomous vehicle 100A's allocated application buffer memory 310. The system then sends a collaboration message containing the retrieved vehicle data to the other autonomous vehicles 110B in the collaboration domain group via HYDIN 200. The collaboration message includes the domain group identifier, the collaboration application identifier, the retrieved vehicle data associated with the second autonomous vehicle 100B, and the resource location of the application buffer. The vehicle data consists of historical vehicle data associated with the second autonomous vehicle 100B.The collaboration controller 300 in each of the autonomous vehicles 100A, 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.
[0086] With reference to Fig. Figure 9 shows a flowchart of an example of a Procedure 900 for implementing autonomous vehicle collaboration. Procedure 900 is performed by a vehicle collaboration system 110A. Procedure 900 can be performed by the vehicle collaboration system 110A in combination with other components of the autonomous vehicle 100A. Procedure 900 can be performed by hardware circuits, firmware, software, and / or combinations thereof.
[0087] At 902, an initial collaboration message, containing initial vehicle data associated with a first autonomous vehicle 100A in conjunction with a collaboration application, is sent from the first autonomous vehicle 100A to a collaboration domain group 100A, 100B, 100C via a hybrid distributed connected network (HYDIN) 200. The collaboration domain group includes at least the first autonomous vehicle 100A and a second autonomous vehicle 100B. At 904, a second collaboration message in connection with the collaboration application, which includes second vehicle data assigned to the second autonomous vehicle 100B, is received via the HYDIN 200 at the first autonomous vehicle 100A, with the second collaboration message being sent from the second autonomous vehicle 100B to the collaboration domain group 100A, 100B, 100C via the HYDIN 200.In 906, a collaboration action associated with the collaboration application is implemented at least partially on the first autonomous vehicle 100A based on the first and second vehicle data.
[0088] The vehicle collaboration system 110 enables the exchange of vehicle data between autonomous vehicles 100 in a collaboration domain group via the vehicle's internal bus channel and the wireless HYDIN communication channel. Distributing the vehicle collaboration systems 110 across autonomous vehicles 100 allows for the execution of collaborative tasks that are transparent to upper-layer applications. Using vehicle collaboration systems 110 communicating via a HYDIN 200 can make the implementation of collaborative applications between autonomous vehicles 100 in a collaboration domain group relatively more efficient. The resource allocation module 302 enables efficient use of local data buffer resources within a collaboration domain group.The use of vehicle collaboration systems 110 in conjunction with the use of a two-layer communication model for exchanging vehicle data via a HYDIN 200 can reduce the use of data payload resources and decrease the latencies associated with exchanging vehicle data.
[0089] If the collaboration application is a platooning application, the vehicle collaboration systems 110, which are connected to the autonomous vehicles 100 using a platooning application, can be distributed among the various autonomous vehicles 100 within a platooning fleet. The autonomous vehicles 100 can communicate with each other and exchange vehicle data, including wheel speed, vehicle speed, vehicle direction, and other information, in a star network distribution. The vehicle collaboration system 110 can act as a central controller, collecting information directly from the HYDIN 200 and optimizing the speed and location of the autonomous vehicles 100 in a platooning fleet. The vehicle collaboration systems 110 reside in the same domain and can be transparent to their physical location.
[0090] If the collaborative applications are V2X applications, the software stack of a V2X sublayer could be integrated into the vehicle collaboration systems 110. Basic safety messages can be integrated with other vehicle data and distributed via the HYDIN 200 to the surrounding autonomous vehicles 100 with V2X capabilities. Risk levels can be calculated and simultaneously distributed to the autonomous vehicles 100 in a collaboration domain group to reduce overall costs. Warning messages can be displayed simultaneously to all autonomous vehicles 100 in a collaboration domain group.
[0091] If the collaborative application involves collaborative autonomous driving, the results of vehicle perception are typically distributed collaboratively among the autonomous vehicles. Decision modules may be able to transparently receive vehicle data from other autonomous vehicles and make relatively more accurate decisions.
[0092] If the collaboration application is linked to decentralization, distributed vehicle collaboration systems 110 can be able to arbitrarily select the healthy vehicle collaboration systems 110 to proceed with decision-making and collaboration tasks (e.g., if more than half of the vehicle collaboration systems 110 are healthy). Autonomous vehicles 100 with fewer resources can perform smaller computational tasks based on the optimized overall algorithm. This can help to handle failures and tasks more efficiently.
[0093] Although at least one exemplary embodiment has been presented in the preceding detailed description, it should be recognized that a large number of variations exist. It should also be recognized that the exemplary embodiment or embodiments are merely examples and are not intended to limit the scope, applicability, or configuration of the disclosure in any way. Rather, the preceding detailed description is intended to provide the person skilled in the art with a practical guide for implementing the exemplary embodiment or embodiments. It is understood that various modifications in the function and arrangement of the elements can be made without departing from the scope of the disclosure as set forth in the appended claims and their statutory equivalents.
Claims
[1] A vehicle collaboration system of an autonomous vehicle, comprising: a transceiver on a first autonomous vehicle that is configured: to send an initial collaboration message, in conjunction with a collaboration application, which includes initial vehicle data associated with the first autonomous vehicle, to a collaboration domain group via a hybrid distributed connected network, HYDIN, wherein the collaboration domain group includes at least the first autonomous vehicle and a second autonomous vehicle; and to receive a second collaboration message in connection with the collaboration application, which includes second vehicle data assigned to the second autonomous vehicle, via the HYDIN, wherein the second collaboration message is sent from the second autonomous vehicle via the HYDIN to the collaboration domain group; and a collaboration controller on the first autonomous vehicle that is configured to perform a collaboration action associated with the collaboration application, at least partially, based on the first vehicle data and the second vehicle data. [2] The vehicle collaboration system according to claim 1, wherein the first collaboration message and the second collaboration message consist of a data link layer and a physical layer. [3] The vehicle collaboration system according to claim 1, wherein each of the first collaboration message and the second collaboration message further comprises a collaboration application identifier associated with the collaboration application and a domain group identifier associated with the collaboration domain group. [4] The vehicle collaboration system according to claim 1, wherein the collaboration application comprises either a platooning application or a lane-changing application. [5] The vehicle collaboration system according to claim 1, wherein the first vehicle data comprises real-time vehicle data. [6] The vehicle collaboration system according to claim 1, further comprising: a local data buffer on the first autonomous vehicle; and a resource allocation module on the first autonomous vehicle, wherein the resource allocation module is configured: to determine whether buffer space is available in the local data buffer; and to allocate an initial application buffer in the local data buffer for the collaboration domain group in conjunction with the collaboration application based on the determination. [7] The vehicle collaboration system according to claim 6, wherein, given that buffer space is available in the local data buffer, the collaboration controller is configured as follows: to receive the first vehicle data from an electronic vehicle control unit (ECU) via an internal vehicle bus at a first time and to store the first vehicle data in the first application buffer memory; to send the first collaboration message with the first vehicle data as real-time vehicle data to the HYDIN; to receive third vehicle data in connection with the collaboration application from the electronic vehicle control unit via the vehicle's internal bus at a second time and to store the third vehicle data in the first application buffer memory; to send a third collaboration message, which includes the third vehicle data, to the collaboration domain group via HYDIN as real-time vehicle data; to receive the first vehicle data and the third vehicle data from the first application buffer; and to send a fourth collaboration message, which includes the first vehicle data and the third vehicle data, at a third time as historical vehicle data. [8] The vehicle collaboration system according to claim 6, wherein, when it is determined that no buffer space is available in the local data buffer, the collaboration controller is configured as follows: to receive the first vehicle data from an electronic vehicle control unit (ECU) via an internal vehicle bus at a first point in time; to send the first collaboration message, which contains the first vehicle data, to the collaboration domain group via the HYDIN as real-time vehicle data, with the second autonomous vehicle being configured to store the first vehicle data in a second application buffer in the second autonomous vehicle; third vehicle data in connection with the collaboration application from the electronic vehicle control unit via the vehicle's internal bus at a second time; to send a third collaboration message containing the third vehicle data to the collaboration domain group via the HYDIN as real-time vehicle data, with the second autonomous vehicle being configured to store the third vehicle data in the second application buffer in the second autonomous vehicle; and to receive a fourth collaboration message containing the first vehicle data and the third vehicle data at a third time point, wherein the fourth collaboration message is sent from the second autonomous vehicle to the collaboration domain group via the HYDIN at a third time point as historical vehicle data associated with the first autonomous vehicle. [9] The vehicle collaboration system according to claim 1, further comprising a resource identification module on the first autonomous vehicle, wherein the resource identification module is configured as follows: to determine whether at least one collaboration message was received from each of the autonomous vehicles in the collaboration domain group via the HYDIN during a predefined period of time; to generate a collaboration domain group list which is assigned to the collaboration domain group, at least partially based on the determination; and to send a fifth collaboration message, containing the collaboration domain group list, to the collaboration domain group via HYDIN. [10] A computer-readable medium containing instructions for implementing autonomous vehicle collaboration, which, when executed by a processor, cause the processor to: to send an initial collaboration message in conjunction with a collaboration application, which includes initial vehicle data associated with a first autonomous vehicle, from the first autonomous vehicle to a collaboration domain group via a hybrid distributed connected network, HYDIN, wherein the collaboration domain group includes at least the first autonomous vehicle and a second autonomous vehicle; to receive a second collaboration message in conjunction with the collaboration application, which includes second vehicle data assigned to the second autonomous vehicle, via the HYDIN on the first autonomous vehicle, wherein the second collaboration message is sent from the second autonomous vehicle via the HYDIN to the collaboration domain group; and to carry out a collaboration action assigned to the collaboration application in the first autonomous vehicle, at least partially, based on the first vehicle data and the second vehicle data.