System and method for recording vehicle data
By generating keyframes associated with the vehicle program, only data related to events is stored and transmitted, the problem of waste of vehicle data storage and transmission resources is solved, and the optimization utilization of resources and accurate data reconstruction is achieved.
Patent Information
- Application Number
- CN202510050825.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-01-18
- Filing Date
- 2025-01-13
- Publication Date
- 2025-07-25
AI Technical Summary
In the prior art, the storage and transmission of a large amount of data generated by a vehicle requires a large amount of server resources, and not all data is utilized, resulting in waste of resources.
By identifying keyframes associated with the vehicle program, only data related to the event is stored and transmitted to the server when the event occurs, keyframes are generated using the causal relationship between the vehicle programs, including node status and main messages, reducing storage and transmission requirements.
It effectively reduces the amount of data on vehicles and servers, optimizes resource utilization, and ensures that the server can accurately rebuild event-related data.
Smart Images

Figure CN120375487A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to systems and methods for recording vehicle data in a server. Background Art
[0002] A vehicle uses multiple features to assist a vehicle user in driving the vehicle. The multiple features may use vehicle sensors and computers, and the vehicle sensors and computers may generate a large amount of data. Generally, the data generated by the vehicle sensors / computers is stored on a server or in a memory for analysis (e.g., at a later stage). Since the data size may be very large, the data may consume a large amount of storage space on the server. Additionally, transferring such large-scale data from the vehicle to the server may require additional communication resources.
[0003] Generally, not all data is utilized or requires analysis, so it may not be necessary to store the entire data. Summary of the Invention
[0004] The present disclosure describes a system and method for recording data on a vehicle and minimizing resource utilization when collecting vehicle data and transmitting and storing vehicle data on a server. The system may identify / select information that may be required to reconstruct vehicle data at a later stage and may store the selected information. Thus, the vehicle may not store all information and may only store information that may be required for reconstruction at a later stage. In some aspects, when an event occurs on the vehicle, the system may record the selected information on the server. For example, the system may monitor vehicle data (including data from vehicle sensors) and may detect the occurrence of an event based on the monitoring. When an event occurs, the system may transmit the selected data (data associated with or captured at the time of the event) to the server, which enables the server to reconstruct the vehicle data surrounding the event. In this way, the system minimizes the space utilization and resources used to transfer data from the vehicle to the server.
[0005] In some aspects, the system may be configured to generate key frames associated with vehicle data. A key frame may include the states of nodes associated with a communication graph (e.g., a directed graph). Each node may be associated with a vehicle program. Thus, a key frame may include the states of vehicle programs that can be causally connected (or serially connected). In some aspects, the system may sequentially and continuously store the states in a key frame buffer to generate a key frame and may not store the states simultaneously.
[0006] Nodes can be connected via channels, which can be configured to move or propagate information from one node to another. In some aspects, a first node can be configured to receive a primary message. When the first node receives the primary message, a vehicle program associated with the first node loads the first node state into a key frame buffer and can publish a first message. The first message can move from the first node to a second node via a first channel. The second node can receive the first message, store the second node state in the key frame buffer, and then publish a second message via a second channel. In this way, the system stores node states sequentially and continuously. In addition to the states, the system will also store the primary message and possibly one or more additional pieces of information. The additional information can include information associated with the data flow in a directed graph. A server can utilize the states, the primary message, and the additional information to reconstruct vehicle data at a later stage.
[0007] By leveraging the causal relationships between vehicle programs and controlling the way vehicle programs save their data, the amount of data that needs to be saved on the vehicle and the server can generally be reduced. Additionally, the storage of the states, the primary message, and the additional information allows the server to accurately reconstruct missing information.
[0008] These and other advantages of the present disclosure are provided in detail herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The detailed description is set forth with reference to the accompanying drawings. The use of the same reference numerals may indicate similar or identical items. Various embodiments may utilize elements and / or components other than those shown in the drawings, and some elements and / or components may not be present in various embodiments. The elements and / or components in the drawings are not necessarily drawn to scale. Throughout the present disclosure, depending on the context, singular and plural terms may be used interchangeably.
[0010] Figure 1 An example system for recording vehicle data in accordance with the present disclosure is depicted.
[0011] Figure 2 An example system for generating key frames in accordance with the present disclosure is depicted.
[0012] Figure 3 An example process for reconstructing vehicle data in accordance with the present disclosure is depicted.
[0013] Figure 4 A flowchart of an example method for recording vehicle data in accordance with the present disclosure is depicted. DETAILED DESCRIPTION
[0014] The present disclosure will be described more fully hereinafter with reference to the accompanying drawings, in which example embodiments of the present disclosure are shown and the example embodiments are not intended to be limiting.
[0015] Figure 1 An example system 100 for recording vehicle data in accordance with the present disclosure is depicted. In the description Figure 1 when, reference will be made to Figure 2 and Figure 3 .
[0016] System 100 may include a vehicle 102 and a server 104, which may be communicatively coupled to each other via a network 106. Vehicle 102 may take the form of any personal or commercial vehicle, such as a sedan, a work vehicle, a crossover vehicle, a truck, a van, a minivan, etc. Additionally, vehicle 102 may be a manually driven vehicle and / or may be configured to operate in a fully autonomous (e.g., driverless) mode or a partially autonomous mode, and may include any powertrain, such as, for example, a gasoline engine, one or more electric actuators, a hybrid system, etc. In some aspects, server 104 may be configured to record or store vehicle data and perform analysis on the stored vehicle data. Additional server details are described in detail below in connection with Figure 3 .
[0017] Network 106 illustrates an example of a communication infrastructure in which the connected devices discussed in various embodiments of the present disclosure may communicate. Network 106 may be and / or include the Internet, a private network, a public network, or other configurations operating using any one or more known communication protocols, such as, for example, Transmission Control Protocol / Internet Protocol (TCP / IP), Bluetooth Low Energy (BLE), Wi-Fi based on Institute of Electrical and Electronics Engineers (IEEE) standard 802.11, Ultra-Wideband (UWB), and cellular technologies, such as Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA), High-Speed Packet Access (HSPDA), Long Term Evolution (LTE), Global System for Mobile Communications (GSM), and Fifth Generation (5G), to name just a few examples.
[0018] Vehicle 102 may include a plurality of components, including but not limited to a sensing system 108, a processor 110, a memory 112, and a data handling system 114, which may be communicatively coupled to each other. Data handling system 114 may include a plurality of units, including but not limited to a data collection unit 116, a key frame generation unit 118, an event detection unit 120, a transmission unit 122, etc., which may be communicatively coupled to each other.
[0019] The sensing system 108 may include a plurality of sensors, including but not limited to wheel speed sensors, radio detection and ranging (RADAR or "radar") sensors configured to detect and locate objects inside and outside the vehicle 102 using radio waves, seat area latch sensors, seat area sensors, light detection and ranging ("lidar") sensors, door sensors, proximity sensors, temperature sensors, one or more ambient weather or temperature sensors, vehicle interior and exterior cameras, steering wheel sensors, vehicle accelerometers, vehicle gyroscopes, vehicle magnetometers, and the like. The sensing system 108 may be configured to measure a plurality of inputs associated with a plurality of vehicle components at a predefined frequency.
[0020] The processor 110 may be arranged to communicate with one or more memory devices (e.g., the memory 112 and / or Figure 1 other databases not shown in the figure), and the one or more memory devices are arranged to communicate with the corresponding computing systems. The processor 110 may utilize the memory 112 to store vehicle programs in the form of code and / or store data for performing aspects in accordance with the present disclosure. In some aspects, the vehicle programs may be configured to implement vehicle operations based on a plurality of inputs obtained from the sensing system 108. The memory 112 may be a non-transitory computer-readable storage medium or memory storing vehicle data handling program code. The memory 112 may include any one or a combination of volatile memory elements (e.g., dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), etc.), and may include any one or more non-volatile memory elements (e.g., erasable programmable read-only memory (EPROM), flash memory, electrically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM), etc.).
[0021] The data handling system 114 can be a processing unit configured to manage vehicle data generated by the sensing system 108 and / or vehicle programs. In an exemplary aspect, the data handling system 114 can be configured to store vehicle data (as described below) in a controlled manner, identify / select a subset of the vehicle data associated with an event (in response to detecting an event), and transmit the subset of the vehicle data to the server 104 via the network 106. An event as described herein can be any event associated with the vehicle 102 that a vehicle operator or any other entity may be interested in, e.g., a sudden drop in vehicle speed due to an obstacle identification near the vehicle 102, detection of a faulty vehicle component, etc. By transmitting only a subset of the vehicle data (rather than the entire vehicle data) to the server 104, the data handling system 114 can record or store selective data associated with the event (e.g., when the event occurs), and may not store all the vehicle data in the server 104, thereby minimizing the utilization of resources required to transmit the data to the server 104 and / or server storage space.
[0022] In some aspects, the data handling system 114 can utilize the data collection unit 116 to collect data generated by the vehicle 102 (e.g., vehicle data). In an exemplary aspect, the data collection unit 116 can collect vehicle data from the sensing system 108 and vehicle programs at a predefined frequency or when the data collection unit 116 transmits a request to obtain vehicle data to the sensing system 108 and / or vehicle programs.
[0023] In addition, the data handling system 114 can utilize the key frame generation unit 118 to generate key frames associated with the vehicle data collected by the data collection unit 116. The key frame generation unit 118 can generate key frames in response to obtaining a trigger signal. In some aspects, the trigger signal can be generated by a vehicle / system timer (not shown) at a predefined frequency, and the key frame generation unit 118 can obtain the trigger signal from the timer. In other aspects, the trigger signal can be generated by one or more sensors of the sensing system 108, and the key frame generation unit 118 can obtain the trigger signal from the sensors. The key frame generation unit 118 can obtain the trigger signal from the timer and / or sensors and then generate key frames in response to obtaining the trigger signal.
[0024] In some aspects, a key frame can include a plurality of node states associated with a plurality of nodes connected in series, and the plurality of nodes can be part of a communication graph (e.g., a directed graph). The plurality of node states can be included in the key frame buffer 202 (as Figure 2As shown, the key frame buffer can be continuously and sequentially loaded in the key frame buffer 202 (as explained below). In some aspects, the key frame buffer 202 can be a circular buffer that allows the key frame buffer 202 to continuously record node states and, when new node states become available, replace old node states with the new ones. The key frame buffer 202 can also replace old node states with new ones at a predefined frequency (e.g., after each predefined second count or when the old node state expires).
[0025] In an exemplary aspect, the plurality of nodes can include a first node 204a, a second node 204b, a third node 204c, a fourth node 204d, etc. (collectively referred to as nodes 204), which can be part of a directed graph.
[0026] In some aspects, the plurality of nodes 204 can be associated with a plurality of vehicle programs. In an exemplary aspect, each node can be associated with a vehicle program. For example, the first node 204a can be associated with "Program A", the second node 204b can be associated with "Program B", the third node 204c can be associated with "Program C", the fourth node 204d can be associated with "Program D", and so on. In some aspects, the plurality of vehicle programs can be causally connected. In other words, the plurality of nodes 204 can be connected in series. For example, the output of "Program A" can be received by "Program B", and the output of "Program B" can be based on the output of "Program A", and so on.
[0027] Since the nodes 204 are associated with vehicle programs, the key frames can include a plurality of vehicle program states (as "node states") recorded in the key frame buffer 202. The node state / vehicle program state can include a set of values at a specific moment and can include information that can be used by the server 104 to reconstruct vehicle data. For example, when a node is reinitialized with a state object and given the same input, the node can produce the same behavior. A unique identifier can be generated each time the state of the program is modified, and the unique identifier can be associated with the state (e.g., at the end of any function call). This allows the data handling system 114 to identify the state that needs to be loaded before starting its execution (e.g., recording).
[0028] In some aspects, node 204 can be connected via a channel, which can be a unidirectional channel. The channel can be a connection between two or more vehicle programs. In other words, vehicle programs can communicate with each other via the channel connecting them. For example, the first node 204a and the second node 204b can be connected via the first channel 206a, the second node 204b and the third node 204c can be connected via the second channel 206b, the third node 204c and the fourth node 204d can be connected via the third channel 206c, and so on. The first channel 206a, the second channel 206b, and the third channel 206c are collectively referred to as channel 206 in this disclosure. In some aspects, vehicle data can flow continuously and sequentially (rather than simultaneously) in the forward direction through node 204 via channel 206.
[0029] In some aspects, the vehicle programs associated with node 204 can be configured to publish messages via channel 206 when vehicle data continuously flows through node 204. For example, when vehicle data flows through the first node 204a, the first vehicle program associated with the first node 204a can publish the message "A" or "msg A " via the first channel 206a. In some aspects, the message "A" or "msg A " can be based on the first node state (or the first vehicle program state) and the "main message" obtained by the first vehicle program. In some aspects, the main message can be associated with the sensor data generated by the sensing system 108. In response to the first vehicle program publishing the message "msg A ", the second vehicle program associated with the second node 204b can receive the message "msg A " via the second channel 206b and publish the message "msg B ". In some aspects, the message "msg B " can be based on the second node state (or the second vehicle program state) and the message "msg A ". Similarly, the third vehicle program associated with the third node 204c can publish the message "C" or "msg B " via the third channel 206c based on the third node state (or the third vehicle program state) and the message "msg C ", and so on.
[0030] In operation, the key frame generation unit 118 can obtain a trigger signal (e.g., from a vehicle / system timer and / or one or more sensors of the sensing system 108) and initiate the generation of key frames. The key frame generation unit 118 can also obtain a primary message at the first node 204a. In response to obtaining the primary message, the key frame generation unit 118 can store the primary message in, for example, the key frame buffer 202. In some aspects, when the key frame generation unit 118 receives the primary message, a data "wave" starts from the first node 204a and can flow continuously or sequentially to other nodes (from the plurality of nodes 204). In some aspects, the primary message can be received at a node located at the start point of the directed graph (i.e., at the first node 204a).
[0031] In additional aspects, in response to obtaining the primary message, the key frame generation unit 118 can cause the vehicle programs associated with the nodes 204 to continuously and sequentially store the corresponding node states in the key frame buffer 202 to generate key frames. Specifically, when the first vehicle program receives the primary message, the key frame generation unit 118 can cause the first vehicle program associated with the first node 204a (e.g., program A) to load / store the first node state (associated with the first node 204a) in the key frame buffer 202. In some aspects, the first node state can be based on the primary message and is shown as "the state of program A" in Figure 2 the figure.
[0032] In some aspects, when the first node 204a receives the primary message, the first vehicle program can publish a first message (or message "msg A ") via the first channel 206A. The first vehicle program can publish the first message in response to storing the first node state or when storing the first node state. In some aspects, the first message can be based on the primary message and the first node state. The first message can be configured to move / propagate from the first node 204a to the second node 204b.
[0033] In some aspects, when the second node 204b receives the first message, the key frame generation unit 118 can cause the second vehicle program associated with the second node 204b (e.g., program B) to load / store the second node state ( Figure 2 shown as "the state of program B" in the figure) in the key frame buffer 202. In some aspects, when the second node 204b receives the first message, the second vehicle program can publish a second message (or message "msg B”). The second vehicle program can respond to storing the second node state or publish a second message when storing the second node state. In some aspects, the second message can be based on the first message and the second node state. The second message can be configured to move / spread from the second node 204b to the third node 204c, and the process continues until the key frame buffer 202 stores the states of all vehicle programs / nodes (e.g., in the exemplary aspect depicted in Figure 2 when the states of programs C and D are stored in the key frame buffer 202).
[0034] In this way, the key frame generation unit 118 can store the states of all vehicle programs / nodes 204 and the main messages. In some aspects, the key frame generation unit 118 may not store the messages published by the vehicle programs / nodes 204 (e.g., the first message (“msg A” ”), the second message (“msg B” ”), etc.) in the key frame buffer 202, which can enable minimizing the utilization of storage resources. Specifically, the key frame generation unit 118 may not store the first message, the second message, etc., because these messages can be effectively restored / reconstructed based on the stored vehicle program states / node states and the main messages. The reconstruction process is described in detail later below.
[0035] In additional aspects, the key frame generation unit 118 can be configured to collect additional information associated with the vehicle 102 and store the additional information in the key frame buffer 202. The additional information can be associated with the data stream of the in-vehicle systems around the vehicle (e.g., vehicle data). The server 104 may require the additional information to reconstruct the vehicle data based on the information stored in the key frame buffer 202. In some aspects, the additional information can include information about when and how the node functions are run / executed, information associated with the effects of running the node functions, etc. For example, the additional information can include but is not limited to timestamps associated with function runs, node function identifiers (IDs), current time or function run start time, random number generator (RNG) seeds, sequence numbers of the node states just before running the function, lists of effects caused by the function, etc. In an exemplary aspect, the effects of running the node functions can include but are not limited to publishing messages, changing node states, and so on.
[0036] In another aspect, the event detection unit 120 may be configured to detect events associated with the vehicle 102. The events may include any scenario occurring on the vehicle 102 that requires further investigation, such as an adverse situation. In some aspects, the event detection unit 120 may monitor vehicle data (including vehicle sensor data output from the sensing system 108), and may detect events based on such monitoring. In response to detecting an event, the event detection unit 120 may transmit an event notification to the transmission unit 122 (and / or other vehicle units). In some aspects, the event notification may include information associated with the event and / or event detection.
[0037] The transmission unit 122 may receive an event notification from the event detection unit 120. In response to receiving the event notification, the transmission unit 122 may extract the generated key frames (e.g., the key frame buffer 202) from the key frame generation unit 118, and then transmit the key frame buffer 202 to the server 104 for recording. In other words, when the event detection unit 120 can detect an event, the transmission unit 122 may record the key frame buffer 202 in the server 104. In this way, when an event is detected in the vehicle 102, the transmission unit 122 records the vehicle data in the server 104, such that the server 104 stores the vehicle data surrounding all events occurring on / around the vehicle 102, and may not store unnecessary vehicle data (e.g., when no event is detected in the vehicle 102). As described above, the key frame buffer 202 includes the states of all vehicle programs (or node states) and major messages. Since the key frame buffer 202 only includes node states and major messages, and does not include messages published by the corresponding vehicle programs / nodes 204, the key frame buffer size is small, and thus the transmission unit 122 requires a relatively small amount of transmission resources to transmit the key frame buffer 202 to the server 104.
[0038] In some aspects, the transmission unit 122 may also be configured to transmit additional information to the server 104. As described above, the additional information may be associated with the vehicle data stream of the in-vehicle systems surrounding the vehicle.
[0039] In some aspects, the server 104 may be configured to utilize the stored node states, major messages, and / or additional information to reconstruct the vehicle data of one or more key frames (including the above key frames), which may facilitate the investigation or diagnosis of events associated with the vehicle 102 detected by the event detection unit 120. For example, the server 104 may use the information stored in the key frame buffer 202 as the starting data before the event, and may use the recorded additional information to backtrace messages to reconstruct the data stream passing through the nodes 204 at the time of the event.
[0040] The server 104 can take advantage of the fact that a node that is in the same state as it was on the vehicle 102, consuming the same message at the same time as it was on the vehicle 102, will produce the same output as it was on the vehicle 102. Therefore, when the server 104 uses the node states and primary messages (and additional information) stored in the key frame buffer 202, the server 104 can reconstruct the vehicle data because the nodes 204 in their respective states are expected to output the same message whenever they are fed the same input.
[0041] For example, as described above, the key frame buffer 202 does not store the first message "msg A "、Second message "msg B ", etc., but stores the node state and the main message. Therefore, the server 104 can use the recorded first node state and the main message (associated with the first node 204a) to reconstruct the "msg A ", because when the first node 204a receives the same primary message in the same node state (which has been recorded), the first node 204a will output the same first message "msg A ”. The server 104 reconstructs the first message “msg A "After that, the server 104 can use the reconstructed first message "msg A " and the second node state associated with node 204b (which has been recorded) to reconstruct the second message "msg B ”, and so on. In this way, the server 104 can reconstruct the entire directed graph using the key frame buffer 202.
[0042] In additional aspects, the server 104 can reconstruct the state between different keyframes, thereby allowing reconstruction of intermediate data. In some aspects, the server 104 can store the state of different programs / nodes (including state A ,state B ,state C ) and main messages, such as Figure 3 Server 104 can be based on the stored state (state A ,state B ,state C ), the main message, and additional information to reconstruct other states (such as state A2 ,state B2 ,state C2 and status A3 ,state B3 ,state C3 ) and message msg A ,msg B、 msg C .
[0043] For example, to reconstruct a state C3 , server 104 may use state C2 and msg C . In the case where state C2 may not be stored in a key frame (and thus stored on server 104), server 104 may use the stored state C1 and msg C to reconstruct state C2 . In this way, server 104 reconstructs vehicle data.
[0044] Returning to reference data handling system 114, in some aspects, data handling system 114 (e.g., key frame generation unit 118) may first analyze a directed graph before initiating generation of a key frame. Key frame generation unit 118 may identify / check whether all nodes associated with the directed graph are dependent on a primary message (key frame generation unit 118 performs this check because if node 204 does not have a dependency on the primary message, information associated with such node 204 may not be reproducible). In a scenario where all nodes are not dependent on the primary message, key frame generation unit 118 may perform a predetermined action. In some aspects, the predetermined action may include treating a new message (associated with a node not dependent on the primary message) as a new primary message and storing the new message such that the new message can be used to reconstruct vehicle data for such nodes.
[0045] In some aspects, a channel associated with the primary message may be referred to as the "primary channel", and a channel associated with other messages may be referred to as a "derived channel". Data handling system 114 (e.g., key frame generation unit 118) may store information associated with the primary channel, but may not store information associated with the derived channel. In a scenario where all nodes are not dependent on the primary message, key frame generation unit 118 may declare one of the channels as the primary channel and store the information associated with the primary channel, which enables server 104 to reconstruct vehicle data associated with such nodes. In additional aspects, key frame generation unit 118 may save one of the messages as part of the node state and then use the message during reconstruction to guide the loop.
[0046] Although this disclosure describes a system and method for recording vehicle data, the system and method may also be used to record any other type of data (not limited to vehicle data) to minimize resource utilization. The description of vehicle data should not be construed as limiting the scope of this disclosure.
[0047] Vehicle 102 and server 104 implement and / or perform operations as described herein in this disclosure in accordance with the owner's manual and safety guidelines.
[0048] Figure 4 depicts a flowchart of an example method 400 for recording vehicle data according to the present disclosure. Reference may continue to be made to the previous figures to describe Figure 4 . The following process is exemplary and is not limited to the steps described below. Additionally, alternative embodiments may include more or fewer steps than those shown or described herein and may include those steps in a different order than the order described in the following example embodiments.
[0049] Method 400 begins at step 402. At step 404, method 400 may include: obtaining a trigger signal by data handling system 114. At step 406, method 400 may include: in response to obtaining the trigger signal, generating, by data handling system 114, a key frame associated with vehicle data. The key frame may include a plurality of node states associated with a plurality of nodes 204. The plurality of nodes 204 may be associated with a plurality of vehicle programs in a causal relationship. In some aspects, generating the key frame may include: obtaining a primary message and storing the primary message in key frame buffer 202, and in response to obtaining the primary message, causing the plurality of vehicle programs to sequentially and continuously store the states in the corresponding node states in key frame buffer 202 to generate a key frame. The primary message may be received at a first node 204a among the plurality of nodes 204.
[0050] At step 408, method 400 may include: detecting, by data handling system 114, an event associated with the vehicle. At step 410, method 400 may include: in response to detecting the event, recording, by data handling system 114, key frame buffer 202 in server 104. Server 104 may be configured to reconstruct event information by using the key frame and the primary message.
[0051] At step 412, method 400 may stop.
[0052] In the foregoing disclosure, reference has been made to the accompanying drawings, which form a part of the foregoing disclosure, and which illustrate specific implementations in which the present disclosure may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present disclosure. References in this specification to "one embodiment," "an embodiment," "example embodiment," etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but each embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Additionally, when a feature, structure, or characteristic is described in connection with an embodiment, whether or not explicitly described, those skilled in the art will recognize such feature, structure, or characteristic in connection with other embodiments.
[0053] In addition, where appropriate, the functions described herein may be performed in one or more of the following: hardware, software, firmware, digital components, or analog components. For example, one or more application specific integrated circuits (ASICs) may be programmed to perform one or more of the systems and programs described herein. Throughout the specification and claims, certain terms are used to refer to particular system components. As those skilled in the art will appreciate, components may be referred to by different names. This document is not intended to distinguish between components that differ in name but not function.
[0054] It should also be understood that the term "example" as used herein is intended to be non-exclusive and non-restrictive in nature. More specifically, the term "example" as used herein denotes one of a number of examples, and it should be understood that no undue emphasis or preference is given to the particular example described.
[0055] A computer-readable medium (also referred to as a processor-readable medium) includes any non-transitory (e.g., tangible) medium that participates in providing data (e.g., instructions) that can be read by a computer (e.g., by a processor of a computer). Such media may take many forms, including but not limited to non-volatile media and volatile media. A computing device may include computer-executable instructions, where the instructions may be capable of being executed by one or more computing devices (such as those listed above) and stored on a computer-readable medium.
[0056] Regarding the processes, systems, methods, heuristics, etc. described herein, it should be understood that although the steps of such processes, etc. have been described as occurring in accordance with a certain ordered sequence, such processes may be practiced with the described steps performed in an order different from that described herein. It should also be understood that certain steps may be performed simultaneously, other steps may be added, or certain steps described herein may be omitted. In other words, the description of the processes herein is provided for the purpose of illustrating various embodiments and should in no way be construed as limiting the claims.
[0057] Accordingly, it should be understood that the above description is intended to be illustrative and not restrictive. Many embodiments and applications other than the examples provided will be apparent upon reading the above description. The scope should not be determined with reference to the above description, but rather should be determined with reference to the appended claims and the entire scope of equivalents to which such claims are entitled. It is contemplated and expected that the technologies discussed herein will evolve in the future, and the disclosed systems and methods will be incorporated into such future embodiments. In summary, it should be understood that this application is capable of modification and change.
[0058] Unless expressly indicated to the contrary herein, all terms used in the claims are intended to be given their ordinary meaning as understood by one of ordinary skill in the art as described herein. Specifically, unless the claim recites a clear limitation to the contrary, the use of the singular form articles such as "a", "the", "said", etc. shall be construed to recite one or more of the indicated elements. Unless otherwise specifically stated or otherwise understood in the context in which it is used, conditional language such as "able to", "can", "may", or "could", for example, generally means that while some embodiments may include certain features, elements, and / or steps, other embodiments may not. Thus, such conditional language is generally not intended to imply that one or more embodiments necessarily require each feature, element, and / or step.
[0059] According to one embodiment, the key frame generation unit is further configured to cause the first vehicle program to issue a first message when the first node receives the primary message, wherein the first message is configured to propagate from the first node among the plurality of nodes to a second node.
[0060] According to one embodiment, the first message is based on the first node state and the primary message.
[0061] According to one embodiment, the key frame generation unit is further configured to cause the second vehicle program among the plurality of vehicle programs to store the second node state among the plurality of node states in the key frame buffer when the second node receives the first message.
[0062] According to one embodiment, the key frame generation unit is further configured to cause the second vehicle program to issue a second message when the second node receives the first message, wherein the second message is configured to propagate from the second node among the plurality of nodes to a third node, and wherein the second message is based on the second node state and the first message.
[0063] According to the present invention, there is provided a non-transitory computer-readable storage medium having instructions stored thereon that, when executed by a processor, cause the processor to: obtain a trigger signal; generate a key frame associated with vehicle data associated with a vehicle in response to obtaining the trigger signal, wherein the key frame includes a plurality of node states associated with a plurality of nodes, wherein the plurality of nodes are associated with a plurality of vehicle programs in a causal relationship, and wherein the generation of the key frame includes: obtaining a main message and storing the main message in a key frame buffer, wherein the main message is received at a first node among the plurality of nodes; and in response to obtaining the main message, causing the plurality of vehicle programs to continuously and sequentially store states in the corresponding node states in the key frame buffer to generate the key frame; detecting an event associated with the vehicle; and in response to detecting the event, recording the key frame buffer in a server, wherein the server is configured to reconstruct event information by using the key frame and the main message.
Claims
1. A method for recording data of a vehicle, the method comprising: Obtaining a trigger signal by a data handling system; In response to obtaining the trigger signal, generating, by the data processing system, a key frame associated with vehicle data, wherein the key frame includes a plurality of node states associated with a plurality of nodes, wherein the plurality of nodes are associated with a plurality of vehicle programs in a causal relationship, and wherein generating the key frame includes: Obtaining a primary message and storing the primary message in a key frame buffer, wherein the primary message is received at a first node among the plurality of nodes; and In response to obtaining the primary message, causing the plurality of vehicle programs to sequentially and continuously store states in the corresponding node states in the key frame buffer to generate the key frame; Detecting, by the data processing system, an event associated with the vehicle; and In response to detecting the event, recording, by the data processing system, the key frame buffer in a server, wherein the server is configured to reconstruct event information by using the key frame and the primary message.
2. The method according to claim 1, wherein generating the key frame further comprises: When the first node receives the primary message, causing a first vehicle program among the plurality of vehicle programs to store a first node state among the plurality of node states in the key frame buffer.
3. The method according to claim 2, wherein the first node state is based on the primary message.
4. The method according to claim 2, further comprising: When the first node receives the primary message, causing the first vehicle program to publish a first message, wherein the first message is configured to propagate from the first node among the plurality of nodes to a second node.
5. The method according to claim 4, wherein the first message is based on the first node state and the primary message.
6. The method according to claim 4, further comprising: When the second node receives the first message, causing a second vehicle program among the plurality of vehicle programs to store a second node state among the plurality of node states in the key frame buffer.
7. The method according to claim 6, further comprising: When the second node receives the first message, causing the second vehicle program to publish a second message, wherein the second message is configured to propagate from the second node among the plurality of nodes to a third node.
8. The method according to claim 7, wherein the second message is based on the second node state and the first message.
9. The method according to claim 7, wherein the first message and the second message are not stored in the key frame buffer.
10. The method according to claim 1, further comprising: Obtaining additional information, wherein the additional information includes information associated with a data stream around a vehicle on-board system; And Storing the additional information in the key frame buffer.
11. The method according to claim 1, further comprising: Monitoring vehicle information; And Detecting the event based on monitoring the vehicle information.
12. The method according to claim 11, wherein the vehicle information is associated with inputs provided by a plurality of sensors associated with the vehicle.
13. A system, comprising: A key frame generation unit, the key frame generation unit being configured to: Obtain a trigger signal; And In response to obtaining the trigger signal, generate a key frame associated with vehicle data associated with a vehicle, wherein the key frame includes a plurality of node states associated with a plurality of nodes, wherein the plurality of nodes are associated with a plurality of vehicle programs in a causal relationship, and wherein, in order to generate the key frame, the key frame generation unit is configured to: Obtain a main message and store the main message in a key frame buffer, wherein the main message is received at a first node among the plurality of nodes; and In response to obtaining the main message, cause the plurality of vehicle programs to continuously and sequentially store the states in the corresponding node states in the key frame buffer to generate the key frame; An event detection unit configured to detect an event associated with the vehicle; And A transmission unit configured to record the key frame buffer in a server in response to detecting the event, wherein the server is configured to reconstruct event information by using the key frame and the main message.
14. The system according to claim 13, wherein the key frame generation unit is further configured to: when the first node receives the main message, cause a first vehicle program among the plurality of vehicle programs to store a first node state among the plurality of node states in the key frame buffer.
15. The system according to claim 14, wherein the first node state is based on the main message.