Systems and methods for logging vehicle data
Patent Information
- Application Number
- DE102025101332
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-18
- Filing Date
- 2025-01-15
- Publication Date
- 2025-07-24
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
AREA
[0001] The present disclosure relates to systems and methods for logging vehicle data on a server. GENERAL STATE OF THE ART
[0002] A vehicle uses a variety of features to assist a vehicle user in driving the vehicle. The variety of features may utilize vehicle sensors and computers, which can generate a significant amount of data. Typically, the data generated by the vehicle sensors / computers is stored on a server or in memory for analysis (e.g., at a later time). Because the data size can be very large, the data can occupy a lot of storage space on the server. Furthermore, transferring such large amounts of data from the vehicle to the server may require additional communication resources.
[0003] Typically, not all data is used or required for analysis and therefore it may not be necessary to store all data. SUMMARY
[0004] The present disclosure describes a system and method for logging data at the vehicle and minimizing the use of resources when collecting the data at the vehicle and transmitting and storing the vehicle data on the server. The system may identify / select information that may be required to reconstruct the vehicle data at a later time and may store the selected information. Thus, the vehicle may not store all of the information and may only store the information that may be required for reconstruction at a later stage. In some aspects, the system may log the selected information to the server when an event occurs at the vehicle. For example, the system may monitor the vehicle data (including data from vehicle sensors) and may detect the occurrence of the event based on the monitoring.When the event occurs, the system can transmit the selected data (associated with the event or captured at the time of the event) to the server, allowing the server to reconstruct the vehicle data around the event. This minimizes the space and resources required to transfer data from the vehicle to the server.
[0005] In some aspects, the system may be configured to generate keyframes associated with the vehicle data. The keyframe 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, the keyframe may include states of vehicle programs that may be causally connected (or connected in series). In some aspects, the system may store the states sequentially and serially in a keyframe buffer to generate the keyframe and may not store the states concurrently.
[0006] The nodes may be connected via channels that may be configured to move or propagate information from one node to another. In some aspects, a first node may be configured to receive a primary message. When the first node receives the primary message, the vehicle program associated with the first node loads a first node state into the keyframe buffer and may output a first message. The first message may move from the first node to a second node via a first channel. The second node may receive the first message, store a second node state in the keyframe buffer, and then output a second message via a second channel. In this way, the system stores the node states sequentially and serially. In addition to the states, the system stores the primary message and possibly one or more additional pieces of information.The additional information may include information associated with the data stream in the directed graph. The states, the primary message, and the additional information may be used by the server to reconstruct the vehicle data in a later phase.
[0007] By exploiting the causal relationship between the vehicle programs and controlling how the vehicle programs store their data, there can be an overall reduction in the amount of data that needs to be stored on the vehicle and on the server. Additionally, storing states, the primary message, and the additional information allows the server to accurately reconstruct the missing information.
[0008] These and other advantages of the present disclosure are provided in detail in this document. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The detailed description is presented with reference to the accompanying drawings. The use of the same reference numerals may indicate similar or identical elements. Different elements and / or components than those illustrated in the drawings may be used for different embodiments, and some elements and / or components may not be present in different embodiments. The elements and / or components in the figures are not necessarily drawn to scale. Throughout the disclosure, the singular and plural terms may be used interchangeably depending on the context. Fig. 1 illustrates an exemplary system for logging vehicle data in accordance with the present disclosure. Fig. 2 illustrates an exemplary system for generating a keyframe in accordance with the present disclosure. Fig. 3 illustrates an exemplary process for reconstructing vehicle data in accordance with the present disclosure. Fig. 4 illustrates a flow diagram of an exemplary method for logging vehicle data in accordance with the present disclosure. DETAILED DESCRIPTION
[0010] The disclosure is described in more detail below in this specification with reference to the accompanying drawings, in which exemplary embodiments of the disclosure are illustrated and are not intended to be limiting.
[0011] Fig. 1 illustrates an exemplary system 100 for logging vehicle data according to the present disclosure. While describing Fig. 1 is on Fig. 2 and Fig. 3 referred to.
[0012] The system 100 may include a vehicle 102 and a server 104, which may be communicatively coupled via a network 106. The vehicle 102 may take the form of any passenger or commercial vehicle, a car, a work vehicle, a crossover vehicle, a truck, a van, a minivan, etc. Further, the vehicle 102 may be a manually driven vehicle and / or configured to operate in a fully autonomous (e.g., driverless) mode and / or partially autonomous mode, and may include any powertrain, such as a gasoline engine, one or more electrically actuated electric motors, a hybrid system, etc. In some aspects, the server 104 may be configured to log or store vehicle data and perform analysis of the stored vehicle data. Further server details are provided below in connection with Fig. 3 described in detail.
[0013] Network 106 illustrates an example of a communication infrastructure in which the connected devices discussed in various embodiments of this disclosure may communicate. Network 106 may be and / or include the Internet, a private network, a public network, or another configuration operating using any one or more known communication protocols, such as Transmission Control Protocol / Internet Protocol (TCP / IP), Bluetooth ® , Bluetooth ®Low Energy (BLE), Wi-Fi based on the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard, 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 a few examples.
[0014] The vehicle 102 may include a variety of components, including, but not limited to, a sensor system 108, a processor 110, a memory 112, and a data handling system 114, which may be communicatively coupled to one another. The data handling system 114 may include a variety 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, and / or the like, which may be communicatively coupled to one another.
[0015] The sensing system 108 may include a variety of sensors, including, but not limited to, a vehicle wheel speed sensor, a radio-detection distance and speed (RADAR) sensor configured to detect and locate objects inside and outside the vehicle 102 using radio waves, seat belt buckle sensors, seat area sensors, an optical distance and speed (LIDAR) sensor, door sensors, proximity sensors, temperature sensors, one or more ambient weather or temperature sensors, vehicle interior and exterior cameras, steering wheel sensors, a vehicle accelerometer, a vehicle gyroscope, a vehicle magnetometer, etc. The sensing system 108 may be configured to measure a variety of inputs associated with a variety of vehicle components at a predefined frequency.
[0016] The processor 110 may be arranged in communication with one or more storage devices arranged in communication with the respective computing systems (e.g., the memory 112 and other databases included in Fig. 1 are not shown). The processor 110 may utilize the memory 112 to store vehicle programs in code and / or to store data for performing aspects according to the disclosure. In some aspects, the vehicle programs may be configured to enable vehicle operation based on the plurality of inputs received from the sensing system 108. The memory 112 may be a non-transitory computer-readable storage medium or a memory in which program code for vehicle data handling is stored. 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 any one or more non-volatile memory elements (e.g.,erasable programmable read-only memory (EPROM), flash memory, electronically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM), etc.).
[0017] The data handling system 114 may be a processing unit configured to manage vehicle data generated by the sensor system 108 and / or the vehicle programs. In one example aspect, the data handling system 114 may be configured to store the vehicle data in a controlled manner (as described below), identify / select a subset of vehicle data associated with an event (in response to detecting the event), and transmit the subset of vehicle data to the server 104 via the network 106. The event, as described herein, may be any event associated with the vehicle 102 that may be of interest to a vehicle operator or any other entity, e.g.,a sudden drop in vehicle speed due to identification of an obstacle near vehicle 102, detection of a faulty vehicle component, and / or the like. By transmitting only a subset of the vehicle data (rather than all of the vehicle data) to server 104, data handling system 114 can log or store selective data associated with the event (e.g., when the event occurs) and may not store all of the vehicle data on server 104, thereby minimizing the use of resources required to transmit the data to server 104 and / or server storage space.
[0018] In some aspects, the data handling system 114 may utilize the data collection unit 116 to collect data (e.g., vehicle data) generated by the vehicle 102. In one example aspect, the data collection unit 116 may collect the vehicle data from the sensor system 108 and the vehicle programs at a predefined frequency, or when the data collection unit 116 transmits a request to the sensor system 108 and / or the vehicle programs to obtain vehicle data.
[0019] Furthermore, the data handling system 114 may utilize the keyframe generation unit 118 to generate keyframes associated with the vehicle data collected by the data collection unit 116. The keyframe generation unit 118 may generate a keyframe in response to receiving a trigger signal. In some aspects, the trigger signal may be generated by a vehicle / system timer (not shown) at a predefined frequency, and the keyframe generation unit 118 may receive the trigger signal from the timer. In other aspects, the trigger signal may be generated by one or more sensors of the sensing system 108, and the keyframe generation unit 118 may receive the trigger signal from the sensor(s).The keyframe generation unit 118 may receive the trigger signal from the timer and / or the sensor(s) and then generate the keyframe in response to receiving the trigger signal.
[0020] In some aspects, the keyframe may include a plurality of node states associated with a plurality of serially connected nodes, which may be part of a communication graph (e.g., a directed graph). The plurality of node states may be stored in a keyframe buffer 202 (as shown in Fig. 2) that can be loaded serially and sequentially into the keyframe buffer 202 (as explained below). In some aspects, the keyframe buffer 202 can be a circular buffer, allowing the keyframe buffer 202 to constantly record node states and replace old node states with new node states as the new node states become available. The keyframe buffer 202 can also replace the old node states with the new node states at a predefined frequency (e.g., after every predefined number of seconds or when the old node states expire).
[0021] In an example aspect, the plurality of nodes may include a first node 204a, a second node 204b, a third node 204c, a fourth node 204d, and so on (collectively referred to as node 204), which may be part of a directed graph.
[0022] In some aspects, the plurality of nodes 204 may be associated with a plurality of vehicle programs. In one example aspect, each node may be associated with a vehicle program. For example, the first node 204a may be associated with "Program A," the second node 204b may be associated with "Program B," the third node 204c may be associated with "Program C," the fourth node 204d may be associated with "Program D," and so on. In some aspects, the plurality of vehicle programs may be connected in a causal relationship. In other words, the plurality of nodes 204 may be connected serially. For example, the output of "Program A" may be received by "Program B," and the output of "Program B" may be based on the output of "Program A," and so on.
[0023] Since the nodes 204 are associated with vehicle programs, the keyframe may include a plurality of vehicle program states (as "node states") logged in the keyframe buffer 202. The node state / vehicle program state may include a collection of values at a particular point in time and may include information that can be used to reconstruct vehicle data by the server 104. For example, if a node is reinitialized with a state object and given the same inputs, the node may produce the same behavior. A unique identifier may be generated each time the state of a program is modified, and the unique identifier may be associated with the state (e.g., at the end of any function call). This allows the data handling system 114 to identify a state(s) that must be loaded before their execution (e.g.,Logging) is started.
[0024] In some aspects, nodes 204 may be connected via channels, which may be unidirectional channels. A channel may be a connection between two or more vehicle programs. In other words, the vehicle programs may communicate with each other via the channel connected between them. For example, first node 204a and second node 204b may be connected via a first channel 206a, second node 204b and third node 204c may be connected via a second channel 206b, third node 204c and fourth node 204d may be connected via a third channel 206c, and so on. First channel 206a, second channel 206b, and third channel 206c are collectively referred to as channels 206 in the present disclosure. In some aspects, vehicle data may flow into nodes 204 serially and sequentially (rather than concurrently) in a forward direction via channels 206.
[0025] In some aspects, the vehicle programs associated with nodes 204 may be configured to output messages over channels 206 as vehicle data flows serially through nodes 204. For example, the first vehicle program associated with first node 204a may output a message "A" or "msg A ” over the first channel 206a when the vehicle data flows through the first node 204a. In some aspects, the message “A” or “msg A " may be based on a first node state (or a first vehicle program state) and a "primary message" received by the first vehicle program. In some aspects, the primary message may be associated with the sensor data generated by the sensor system 108. In response to the first vehicle program receiving the message "msg A “, the second vehicle program associated with the second node 204b can output the message “msg A“ and a message “msg B ” over the second channel 206b. In some aspects, the message “msg B ” on a second node state (or a second vehicle program state) and the message “msg A '. Similarly, the third vehicle program associated with the third node 204c may send a message "C" or "msg C ” via the third channel 206c based on a third node state (or a third vehicle program state) and the message “msg B “ and so on.
[0026] In operation, the keyframe generation unit 118 may receive the trigger signal (e.g., from the vehicle / system timer and / or one or more sensors of the sensing system 108) and initiate the generation of the keyframe. The keyframe generation unit 118 may further receive the primary message at the first node 204a. In response to receiving the primary message, the keyframe generation unit 118 may store the primary message, for example, in the keyframe buffer 202. In some aspects, when the keyframe generation unit 118 receives the primary message, a "wave" of data starts from the first node 204a and may flow serially or sequentially toward the other nodes (of the plurality of nodes 204). In some aspects, the primary message may be received at a node located at a beginning of the directed graph, i.e., at the first node 204a.
[0027] In further aspects, in response to receiving the primary message, the keyframe generation unit 118 may cause the vehicle programs associated with the nodes 204 to serially and sequentially store respective node states in the keyframe buffer 202 to generate the keyframe. In particular, the keyframe generation unit 118 may cause the first vehicle program (e.g., program A) associated with the first node 204a to load / store a first node state (associated with the first node 204a) into the keyframe buffer 202 when the first vehicle program receives the primary message. In some aspects, the state of the first node may be based on the primary message and is referred to as the "state of program A" in Fig. 2 shown.
[0028] In some aspects, the first vehicle program may send the first message (or the message “msg A") over the first channel 206A when the first node 204a receives the primary message. The first vehicle program may output the first message in response to storing the first node state or during the storing of the first node state. In some aspects, the first message may be based on the primary message and the first node state. The first message may be configured to travel / propagate from the first node 204a to the second node 204b.
[0029] In some aspects, when the second node 204b receives the first message, the key frame generation unit 118 may cause the second vehicle program (e.g., program B) associated with the second node 204b to enter the second node state (shown as “state of program B” in Fig. 2) in the keyframe buffer 202. In some aspects, the second vehicle program may load / store the second message (or the message “msg B ") over the second channel 206b when the second node 204b receives the first message. The second vehicle program may output the second message in response to storing the second node state or during the storage of the second node state. In some aspects, the second message may be based on the first message and the second node state. The second message may be configured to move / propagate from the second node 204b to the third node 204c, and the process continues until the keyframe buffer 202 stores states of all vehicle programs / nodes (e.g., in the exemplary aspect described in Fig. 2 when the states of programs C and D are stored in the key frame buffer 202).
[0030] In this way, the keyframe generation unit 118 may store states of all vehicle programs / nodes 204 and the primary message. In some aspects, the keyframe generation unit 118 may store the messages output by the vehicle programs / nodes 204, e.g., the first message ("msg A ”), the second message (“msg B "), etc., in the keyframe buffer 202, which may make it possible to minimize the use of memory resources. In particular, the keyframe generation unit 118 may not store the first message, the second message, etc., because these messages can be efficiently restored / reconstructed based on the stored vehicle program states / node states and the primary message. The reconstruction process will be described in detail later.
[0031] In further aspects, the keyframe generation unit 118 may be configured to collect additional information associated with the vehicle 102 and store the additional information in the keyframe buffer 202. The additional information may be associated with the stream of data (e.g., vehicle data) surrounding the vehicle's on-board system(s). The additional information may be required by the server 104 to reconstruct the vehicle data based on the information stored in the keyframe buffer 202. In some aspects, the additional information may include information about when and how a node function was run / executed, information associated with effects of running the node function, and / or the like.For example, the additional information may include, among other things, a timestamp associated with the function run, a node function identifier (node function ID), a current time or start time of the function run, a seed of a random number generator (RNG), a sequence number of the state of the node immediately before the function was executed, a list of the effects caused by the function, and / or the like. In one example aspect, the effects of executing the node function may include, among other things, issuing a message, changing a node state, and / or the like.
[0032] In further aspects, the event detection unit 120 may be configured to detect an event associated with the vehicle 102. The event may include any scenario occurring at 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 by the sensor system 108) and may detect the event based on the monitoring. In response to detecting the 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 the event detection.
[0033] The transmission unit 122 may receive the event notification from the event detection unit 120. In response to receiving the event notification, the transmission unit 122 may retrieve the generated keyframe (e.g., the keyframe buffer 202) from the keyframe generation unit 118 and then transmit the keyframe buffer 202 to the server 104 for logging. In other words, the transmission unit 122 may log the keyframe buffer 202 to the server 104 if the event can be detected by the event detection unit 120. In this way, the transmission unit 122 logs the vehicle data to the server 104 when the events in the vehicle 102 are detected, so that the server 104 stores vehicle data about all events occurring on / around the vehicle 102 and may not store unnecessary vehicle data (e.g.,(e.g., if no event can be detected in the vehicle 102). As described above, the keyframe buffer 202 includes the states of all vehicle programs (or node states) and the primary message. Because the keyframe buffer 202 includes only the node states and the primary message and not the messages output by respective vehicle programs / nodes 204, the size of the keyframe buffer is small, and therefore a smaller amount of transmission resources is required by the transmission unit 122 to transmit the keyframe buffer 202 to the server 104.
[0034] In some aspects, the transmission unit 122 may be further configured to transmit the additional information to the server 104. As described above, the additional information may be associated with the stream of vehicle data surrounding the vehicle's on-board system.
[0035] In some aspects, the server 104 may be configured to utilize the stored node states, the primary message, and / or the additional information to reconstruct the vehicle data for one or more key frames (including the key frame described above), which may facilitate investigating or diagnosing the event 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 pre-event start data and reset the messages using the recorded additional information to reconstruct the flow of data across the nodes 204 at the time of the event.
[0036] The server 104 can exploit the fact that a node in the same state as the one on the vehicle 102, and which receives the same message at the same time as the one on the vehicle 102, will produce the same outputs as the one on the vehicle 102. Thus, using the node states stored in the keyframe buffer 202 and the primary message (and the additional information), the server 104 can reconstruct the vehicle data, since the nodes 204 in their respective states are expected to output the same messages whenever they are fed the same inputs.
[0037] For example, as mentioned above, the messages containing the first message “msg A “, the second message “msg B ' etc., are not stored in the keyframe buffer 202, but the node states and the primary message are stored. Thus, the server 104 can send the "msg A' using the recorded first node state (associated with the first node 204a) and the primary message, since the first node 204a receives the same first message "msg A " when the first node 204a receives the same primary message at the same node state (which is already recorded). After the server 104 sends the first message "msg A “, the server 104 can send the second message “msg B ' using the reconstructed first message 'msg A " and the second node state associated with node 204b (which is already recorded), and so on. In this way, server 104 can rebuild the entire directed graph using keyframe buffer 202.
[0038] In additional aspects, the server 104 may reconstruct states between different keyframes, thereby enabling the reconstruction of the intermediate data. In some aspects, the server 104 may store the states of different programs / nodes, including state A , Condition B , conditions and the primary message(s), as in Fig. 3. The server 104 may have other states, such as state A2 , Condition B2 , Condition C2 and condition A3 , Condition B3 , Condition C3 and the messages msg A , msg B , msg C based on the stored states, state A , Condition B , Condition C , the primary message(s) and the additional information.
[0039] For example, to determine the state C3 To reconstruct, the server 104 can check the state C2, and msgc. If the state C2 may not be stored in the keyframe (and thus on the server 104), the server 104 can determine the state C2 using the saved state C1 and the msg C In this way, the server 104 reconstructs the vehicle data.
[0040] Referring again to the data handling system 114, in some aspects, the data handling system 114 (e.g., the keyframe generation unit 118) may first analyze the directed graph before initiating keyframe generation. The keyframe generation unit 118 may identify / check whether all nodes associated with the directed graph may be dependent on the primary message (the keyframe generation unit 118 performed this check because if the nodes 204 do not have a dependency on the primary message, the information associated with such nodes 204 may not be reproduced). In a scenario where all nodes are not dependent on the primary message, the keyframe generation unit 118 may perform a predetermined action.In some aspects, the predetermined action may include considering a new message (associated with the node that is not dependent on the primary message) as a new primary message and storing the new message so that the new message can be used to reconstruct the vehicle data for such node(s).
[0041] In some aspects, the channel associated with the primary message may be referred to as the "primary channel," and the channel(s) associated with the other messages may be referred to as "derived channels." The data handling system 114 (e.g., the keyframe generation unit 118) may store information associated with the primary channel but not store information associated with the derived channels. In a scenario where all nodes are not dependent on the primary message, the keyframe generation unit 118 may declare one of the channels as the primary channel and store the information associated with the primary channel, allowing the server 104 to reconstruct the vehicle data associated with such nodes.In further aspects, the keyframe generation unit 118 may store one of the messages as part of the state of a node and then use the message to boot the loop during reconstruction.
[0042] Although the present disclosure describes a system and method for logging vehicle data, the system and method may also be used to log any other type of data (not limited to vehicle data) to minimize resource usage. The description of vehicle data should not be construed as limiting the scope of the present disclosure.
[0043] The vehicle 102 and the server 104 implement and / or perform operations as described herein in the present disclosure in accordance with the user manual and security guidelines.
[0044] Fig. 4 illustrates a flowchart of an exemplary method 400 for logging vehicle data in accordance with the present disclosure. Fig. 4 may be described with continued reference to previous figures. The following process is exemplary and not limited to the steps described below. Moreover, alternative embodiments may include more or fewer steps than shown or described herein, and may include these steps in an order different from the order described in the following exemplary embodiments.
[0045] The method 400 starts at step 402. At step 404, the method 400 may include obtaining, by the data handling system 114, the trigger signal. At step 406, the method 400 may include generating, by the data handling system 114, a key image associated with vehicle data in response to obtaining the trigger signal. The key image may include a plurality of node states associated with the plurality of nodes 204. The plurality of nodes 204 may be associated with a plurality of vehicle programs that may be causally related.In some aspects, generating the keyframe may include obtaining and storing a primary message in the keyframe buffer 202, and in response to obtaining the primary message, causing the plurality of vehicle programs to serially and sequentially store states of respective node states in the keyframe buffer 202 to generate the keyframe. The primary message may be received at the first node 204a of the plurality of nodes 204.
[0046] At step 408, the method 400 may include detecting an event associated with the vehicle by the data handling system 114. At step 410, the method 400 may include logging, by the data handling system 114, the keyframe buffer 202 to the server 104 in response to detecting the event. The server 104 may be configured to reconstruct the event information using the keyframe and the primary message.
[0047] At step 412, the method 400 may stop.
[0048] In the foregoing disclosure, reference has been made to the accompanying drawings, which form a part hereof, and illustrate specific implementations in which the present disclosure may be practiced. It is understood that other implementations may be utilized and structural changes may be made without departing from the scope of the present disclosure. References in the specification to "one embodiment," "an embodiment," etc., indicate that the described embodiment may include a specific feature, structure, or characteristic, but not every embodiment necessarily includes that specific feature, structure, or characteristic. Further, such phrases are not necessarily all referring to the same embodiment.Furthermore, if a feature, structure, or characteristic is described in connection with one embodiment, those skilled in the art will recognize such a feature, structure, or characteristic in connection with other embodiments, whether or not explicitly described.
[0049] Furthermore, the functions described in this document may be performed in one or more of hardware, software, firmware, digital components, or analog components, as appropriate. For example, one or more application-specific integrated circuits (ASICs) may be programmed to perform one or more of the systems and procedures described in this document. Certain terms used throughout the specification and claims refer to specific system components. It will be apparent to one skilled in the art that the components may be referred to by other names. This document does not intend to distinguish between components that differ in name but not in function.
[0050] It is also understood that the word "example," as used in this document, is intended to be non-exclusive and non-limiting. In particular, the word "example," as used in this document, indicates one of several examples, and it is understood that no undue emphasis or preference is placed on the specific example described.
[0051] A computer-readable medium (also referred to as a processor-readable medium) includes any non-transitory (e.g., physical) 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 a medium may take many forms, including, but not limited to, non-transitory media and volatile media. Computing devices may include computer-executable instructions, where the instructions may be executable by one or more computing devices, such as those listed above, and may be stored on a computer-readable medium.
[0052] With reference to the processes, systems, methods, heuristics, etc. described in this specification, it is to be understood that although the steps of such processes, etc., have been described as occurring according to a certain ordered sequence, such processes could be practiced wherein the described steps are performed in an order that differs from the order described in this specification. Further, it is to be understood that certain steps could be performed concurrently, that other steps could be added, or that certain steps described herein could be omitted. In other words, the descriptions of processes in this specification are for the purpose of illustrating various embodiments and should in no way be construed to limit the claims.
[0053] Accordingly, it is to be understood that the foregoing description is intended to be illustrative and not restrictive. From a reading of the foregoing description, many other embodiments and applications than the examples provided will become apparent. The scope should be determined not by reference to the foregoing description, but instead by reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. It is anticipated and intended that there will be future developments in the art discussed herein, and that the disclosed systems and methods will be incorporated into such future embodiments. Overall, it is to be understood that the application is susceptible of modification and variation.
[0054] All terms used in the claims are intended to have the general meaning known to one of ordinary skill in the art to which the technology described in this specification applies, unless expressly stated otherwise herein. In particular, the use of the singular articles, such as "a," "an," "the," "the," "the," etc., is intended to refer to one or more of the recited elements, unless a claim expressly limits the matter to the contrary. Conditional language, such as, but not limited to, "may," "could," "may," or "might," is generally intended to convey that certain embodiments may include certain features, elements, and / or steps, whereas other implementations may not include them, unless expressly stated otherwise or otherwise apparent from the context.Thus, such language expressing conditional relationships is generally not intended to imply that features, elements, and / or steps are in any way required for one or more embodiments.
[0055] According to one embodiment, the key frame generation unit is further configured to cause the first vehicle program to output a first message when the first node receives the primary message, wherein the first message is configured to propagate from the first node to a second node of the plurality of nodes.
[0056] According to one embodiment, the first message is based on the first node state and the primary message.
[0057] According to one embodiment, the keyframe generation unit is further configured to cause a second vehicle program of the plurality of vehicle programs to store a second node state of the plurality of node states in the keyframe buffer when the second node receives the first message.
[0058] According to one embodiment, the key frame generation unit is further configured to cause the second vehicle program to output a second message when the second node receives the first message, wherein the second message is configured to propagate from the second node to a third node of the plurality of nodes, and wherein the second message is based on the second node state and the first message.
[0059] According to the present invention, there is provided a non-transitory computer-readable storage medium having stored thereon instructions that, when executed by a processor, cause the processor to: receive a trigger signal; generate a keyframe associated with vehicle data associated with a vehicle in response to receiving the trigger signal, the keyframe comprising a plurality of node states associated with a plurality of nodes, the plurality of nodes associated with a plurality of vehicle programs that are causally related, and wherein generating the keyframe comprises: obtaining and storing a primary message in a keyframe buffer, the primary message received at a first node of the plurality of nodes;and causing the plurality of vehicle programs to store states of respective node states serially and sequentially in the keyframe buffer to generate the keyframe in response to receiving the primary message; detecting an event associated with the vehicle; and logging the keyframe buffer to a server in response to detecting the event, the server configured to reconstruct the event information using the keyframe and the primary message.
Claims
[1] A method for logging data of a vehicle, the method comprising: Receiving, by a data handling system, a trigger signal; Generating, by the data handling system, a key image associated with vehicle data in response to receiving the trigger signal, the key image comprising a plurality of node states associated with a plurality of nodes, the plurality of nodes associated with a plurality of vehicle programs that are causally related, and wherein generating the key image comprises: Receiving and storing a primary message in a keyframe buffer, wherein the primary message is received at a first node of the plurality of nodes; and causing the plurality of vehicle programs to store states of respective node states serially and sequentially in the key frame buffer to generate the key frame in response to receiving the primary message; Detecting, by the data handling system, an event associated with the vehicle; and Logging, by the data handling system, the keyframe buffer on a server in response to detecting the event, wherein the server is configured to reconstruct event information using the keyframe and the primary message. [2] The method of claim 1, wherein generating the keyframe further comprises causing a first vehicle program of the plurality of vehicle programs to store a first node state of the plurality of node states in the keyframe buffer when the first node receives the primary message. [3] The method of claim 2, wherein the state of the first node is based on the primary message. [4] The method of claim 2, further comprising causing the first vehicle program to output a first message when the first node receives the primary message, the first message being configured to propagate from the first node to a second node of the plurality of nodes. [5] The method of claim 4, wherein the first message is based on the first node state and the primary message. [6] The method of claim 4, further comprising causing a second vehicle program of the plurality of vehicle programs to store a second node state of the plurality of node states in the key frame buffer when the second node receives the first message. [7] The method of claim 6, further comprising causing the second vehicle program to output a second message when the second node receives the first message, the second message being configured to propagate from the second node to a third node of the plurality of nodes. [8] The method of claim 7, wherein the second message is based on the second node state and the first message. [9] The method of claim 7, wherein the first message and the second message are not stored in the keyframe buffer. [10] The method of claim 1, further comprising: Obtaining additional information, wherein the additional information comprises information associated with a stream of data around an on-board vehicle system; and Storing the additional information in the keyframe buffer. [11] The method of claim 1, further comprising: Monitoring vehicle information; and Detecting the event based on monitoring vehicle information. [12] The method of claim 11, wherein the vehicle information is associated with inputs provided by a plurality of sensors associated with the vehicle. [13] System comprising: a keyframe generation unit configured to: Receiving a trigger signal; and Generating a key image associated with vehicle data associated with a vehicle in response to receiving the trigger signal, wherein the key image comprises a plurality of node states associated with a plurality of nodes, wherein the plurality of nodes are associated with a plurality of vehicle programs that are causally related, and wherein the key image generation unit is configured to generate the key image to: Receiving and storing a primary message in a keyframe buffer, wherein the primary message is received at a first node of the plurality of nodes; and causing the plurality of vehicle programs to store states of respective node states serially and sequentially in the key frame buffer to generate the key frame in response to receiving the primary message; an event detection unit configured to detect an event associated with the vehicle; and a transmission unit configured to log the keyframe buffer to a server in response to detecting the event, wherein the server is configured to reconstruct event information using the keyframe and the primary message. [14] The system of claim 13, wherein the keyframe generation unit is further configured to cause a first vehicle program of the plurality of vehicle programs to store a first node state of the plurality of node states in the keyframe buffer when the first node receives the primary message. [15] The system of claim 14, wherein the state of the first node is based on the primary message.