US-12626548-B2 - Data collection for vehicle sensor data
Abstract
Sensor data may be received from a plurality of sensors installed on a vehicle and characterizing driving conditions of the vehicle. The sensor data may be continuously stored in a ring buffer implemented using a random access memory (RAM). A recording trigger to record event data related to a driving event of the vehicle may be received. A subset of sensor data may be extracted from the ring buffer, based on the recording trigger. The subset of the sensor data may be recorded in an event file in a second memory.
Inventors
- Amiya Trivedi
- Venkatesh Lakshmikanthan
- Raj Umashankar Gupta
- Alok Kumar Sinha
Assignees
- ATIEVA, INC.
Dates
- Publication Date
- 20260512
- Application Date
- 20221027
Claims (20)
- 1 . A computer program product, the computer program product being tangibly embodied on a non-transitory computer-readable storage medium and comprising instructions that, when executed by at least one computing device, are configured to cause the at least one computing device to: receive sensor data from a plurality of sensors installed on a vehicle and characterizing driving conditions of the vehicle, each sensor of the plurality of sensors assigned to a corresponding memory location within a ring buffer implemented using a random access memory (RAM); store the sensor data continuously in the ring buffer-implem; receive a recording trigger to record event data related to a driving event of the vehicle; associate the recording trigger with a subset of sensors of the plurality of sensors; search the ring buffer to locate a subset of memory locations therein corresponding to the subset of sensors; extract a subset of sensor data from the subset of memory locations, to thereby obtain at least some of the event data; and record the event data in an event file in a second memory.
- 2 . The computer program product of claim 1 , wherein the second memory includes flash memory.
- 3 . The computer program product of claim 1 , wherein the instructions, when executed, are configured to cause the at least one computing device to: identify the recording trigger as including a sensor value of a first sensor of the plurality of sensors; identify, in response to the recording trigger, at least a second sensor of the plurality of sensors; and include sensor data from the first sensor and the at least the second sensor within the subset of sensor data.
- 4 . The computer program product of claim 1 , wherein the instructions, when executed, are configured to cause the at least one computing device to: select, in response to the recording trigger, at least one sensor from which to record the subset of sensor data; and designate a start time and end time of recording of the subset of sensor data.
- 5 . The computer program product of claim 4 , wherein the instructions, when executed, are configured to cause the at least one computing device to: designate the start time as occurring prior to the recording trigger; capture, from the RAM, a first portion of the subset of sensor data recorded prior to the recording trigger; and capture a second portion of the subset of sensor data recorded in the RAM after the recording trigger, until the end time is reached.
- 6 . The computer program product of claim 4 , wherein the instructions, when executed, are configured to cause the at least one computing device to: extract the subset of sensor data by performing a search of the ring buffer for stored sensor data of the at least one sensor matching the start time.
- 7 . The computer program product of claim 1 , wherein the instructions, when executed, are configured to cause the at least one computing device to: store the sensor data in the ring buffer having a maximum size; and delete oldest-stored sensor data from the ring buffer when the maximum size is reached and new sensor data is added.
- 8 . The computer program product of claim 1 , wherein the instructions, when executed, are configured to cause the at least one computing device to: classify the event file as having an event type related to the driving conditions.
- 9 . The computer program product of claim 1 , wherein the instructions, when executed, are configured to cause the at least one computing device to: compress the event file; designate the compressed event file within an upload queue; and upload the compressed event file to an external network, based on the upload queue.
- 10 . The computer program product of claim 1 , wherein the recording trigger includes a sensor value within the sensor data that is outside of a defined range.
- 11 . A computer-implemented method, comprising: receiving sensor data from a plurality of sensors installed on a vehicle and characterizing driving conditions of the vehicle, each sensor of the plurality of sensors assigned to a corresponding memory location within a ring buffer implemented using a random access memory (RAM); storing the sensor data continuously in the ring buffer; receiving a recording trigger to record event data related to a driving event of the vehicle; associating the recording trigger with a subset of sensors of the plurality of sensors; searching the ring buffer to locate a subset of memory locations therein corresponding to the subset of sensors; extracting a subset of sensor data from the subset of memory locations, to thereby obtain at least some of the event data; and recording the event data in an event file in a second memory.
- 12 . The method of claim 11 , wherein the second memory includes flash memory.
- 13 . The method of claim 11 , comprising: identifying the recording trigger as including a sensor value of a first sensor of the plurality of sensors; identifying, in response to the recording trigger, at least a second sensor of the plurality of sensors; and including sensor data from the first sensor and the at least the second sensor within the subset of sensor data.
- 14 . The method of claim 11 , comprising: selecting, in response to the recording trigger, at least one sensor from which to record the subset of sensor data; and designating a start time and end time of recording of the subset of sensor data.
- 15 . The method of claim 14 , comprising: designating the start time as occurring prior to the recording trigger; capturing, from the RAM, a first portion of the subset of sensor data recorded prior to the recording trigger; and capturing a second portion of the subset of sensor data recorded in the RAM after the recording trigger, until the end time is reached.
- 16 . The method of claim 11 , comprising: storing the sensor data in the ring buffer having a maximum size; and deleting oldest-stored sensor data from the ring buffer when the maximum size is reached and new sensor data is added.
- 17 . The method of claim 11 , comprising: classifying the event file as having an event type related to the driving conditions.
- 18 . A vehicle comprising: a chassis; a frame mounted on the chassis; a motor mounted within the frame; a plurality of sensors mounted on the vehicle and configured to generate sensor data characterizing an environment of the vehicle; at least one memory including instructions; and at least one processor that is operably coupled to the at least one memory and that is arranged and configured to execute the instructions that, when executed, cause the at least one processor to: receive sensor data from the plurality of sensors characterizing driving conditions of the vehicle, each sensor of the plurality of sensors assigned to a corresponding memory location within a ring buffer implemented using a random access memory (RAM); store the sensor data continuously in the ring buffer; receive a recording trigger to record event data related to a driving event of the vehicle; associate the recording trigger with a subset of sensors of the plurality of sensors; search the ring buffer to locate a subset of memory locations therein corresponding to the subset of sensors; extract a subset of sensor data from the subset of memory locations, to thereby obtain at least some of the event data; and record the event data in an event file in a second memory.
- 19 . The vehicle of claim 18 , wherein the instructions, when executed by the at least one processor, cause the at least one processor to: select, in response to the recording trigger, at least one sensor from which to record the subset of sensor data; and designate a start time and end time of recording of the subset of sensor data.
- 20 . The vehicle of claim 18 , wherein the instructions, when executed by the at least one processor, cause the at least one processor to: store the sensor data in the ring buffer having a maximum size; and delete oldest-stored sensor data from the ring buffer when the maximum size is reached and new sensor data is added.
Description
CROSS-REFERENCE TO RELATED APPLICATION This application is a 35 U.S.C. § 371 National Phase Entry Application from PCT Application No. PCT/US2022/078813, filed on Oct. 27, 2022, entitled “DATA COLLECTION FOR VEHICLE SENSOR DATA”, and designating the U.S., which claims priority to U.S. Patent Application No. 63/263,308, filed on Oct. 29, 2021, and entitled “DATA COLLECTION FOR VEHICLE SENSOR DATA,” the disclosures of which are incorporated by reference herein in their entireties. TECHNICAL FIELD This description relates to data collection from vehicle sensors. BACKGROUND Vehicles, such as automobiles, may acquire vast quantities of data related to operations of the vehicles. For example, vehicles may acquire data from multiple onboard sensors, as well as from external networks. Such data may be used, for example, to help ensure safe operation of a vehicle, and/or to facilitate semi-autonomous or autonomous driving of a vehicle. Quantities of such data obtained at a vehicle may be extremely large, particularly relative to the computing resources available at the vehicle. It is possible to upload capture data to an external network for remote processing, but vehicle resources available for such uploading may also be limited. For purposes of ensuring safe and convenient operation of a vehicle, and/or to facilitating semi-autonomous or autonomous driving of a vehicle, it is important to process acquired data in a fast and efficient manner, notwithstanding the large volume of data in question. For example, if vehicle computing resources are consumed to provide sensor data processing and collection, then operations of the vehicle in collecting and processing future sensor data may be constrained, and/or user interactions with the vehicle may be delayed. Use of flash memory to store captured vehicle data may provide fast write times while consuming fewer processor resources than using external hard drives or solid state drives (SSDs). Flash memory, however, deteriorates with number of writes, which is problematic when considering the large quantities of sensor data being continuously captured. SUMMARY According to some general aspects, a computer program product may be tangibly embodied on a non-transitory computer-readable storage medium and may comprise instructions that, when executed by at least one computing device, may be configured to cause the at least one computing device to receive sensor data from a plurality of sensors installed on a vehicle and characterizing driving conditions of the vehicle, and store the sensor data continuously in a ring buffer implemented using a random access memory (RAM). The instructions, when executed by the at least one computing device, may be configured to cause the at least one computing device to receive a recording trigger to record event data related to a driving event of the vehicle, extract a subset of sensor data from the ring buffer, based on the recording trigger, and record the subset of the sensor data in an event file in a second memory. In example implementations, the second memory includes flash memory. The instructions, when executed by the at least one computing device, may be configured to cause the at least one computing device to identify the recording trigger as including a sensor value of a first sensor of the plurality of sensors, identify, in response to the recording trigger, at least a second sensor of the plurality of sensors, and include sensor data from the first sensor and the at least the second sensor within the subset of sensor data. The instructions, when executed by the at least one computing device, may be configured to cause the at least one computing device to select, in response to the recording trigger, at least one sensor from which to record the subset of sensor data, and designate a start time and end time of recording of the subset of sensor data. The instructions, when executed by the at least one computing device, may be configured to cause the at least one computing device to designate the start time as occurring prior to the recording trigger, capture, from the RAM, a first portion of the subset of sensor data recorded prior to the recording trigger, and capture a second portion of the subset of sensor data recorded in the RAM after the recording trigger, until the end time is reached. The instructions, when executed by the at least one computing device, may be configured to cause the at least one computing device to extract the subset of sensor data by performing a search of the ring buffer for stored sensor data of the at least one sensor matching the start time. The instructions, when executed by the at least one computing device, may be configured to cause the at least one computing device to store the sensor data in the ring buffer having a maximum size, and delete oldest-stored sensor data from the ring buffer when the maximum size is reached and new sensor data is added. The instructions, when executed by the at least on