Dynamic vehicle data logger configuration

By updating the data logger configuration on demand in the vehicle, the problem of low frequency of vehicle system updates is solved, data timeliness and energy efficiency are improved, and legal requirements in multiple locations are met.

CN120636014APending Publication Date: 2025-09-12RIVIAN HOLDINGS LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510241895.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-02-29
Filing Date
2025-02-28
Publication Date
2025-09-12

AI Technical Summary

Technical Problem

In existing technologies, vehicle systems are updated infrequently, resulting in untimely and irrelevant data collection, which affects system development and energy efficiency, and makes it difficult to meet the rules and regulations of different legal jurisdictions.

Method used

By receiving and replacing on-demand data logger configurations in vehicles, data logging configurations are dynamically updated based on factors such as location, weather, and vehicle model, reducing unnecessary data logging and optimizing energy consumption.

Benefits of technology

It enables timely updates of vehicle systems, improves data relevance and energy efficiency, reduces energy consumption, shortens development cycles, and complies with legal requirements in multiple locations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120636014A_ABST
    Figure CN120636014A_ABST
Patent Text Reader

Abstract

Aspects of the present disclosure relate to updating a data record configuration on a vehicle. An apparatus implementing the subject technology may include a processor configured to receive a data logger configuration containing one or more data logging factors, the data logger configuration indicating one or more data streams to be logged when the one or more data logging factors are satisfied. The processor is further configured to replace the existing data logger configuration with the received data logger configuration. The processor is further configured to determine that the one or more data recording factors have been satisfied, and record the one or more data streams.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] The present application generally relates to recording systems in mobile devices, such as vehicles. A data logger configuration can be updated to specify various data logging factors that, when satisfied, cause one or more data streams to be recorded. The data logger configuration can be replaced through an update process to change the data logging factors that trigger the recording of a data stream. Summary of the Invention

[0002] One type of vehicle management may include recording data from various sensors when they create conditions related to one or more vehicle systems. For example, one such system is an advanced driver assistance system (ADAS), which can provide warnings to the driver based on various sensor data. To ensure that these systems continue to improve and function as they should, developers can retrieve recorded data surrounding events that trigger the ADAS. The requirements surrounding these recorded events can vary based on vehicle usage, vehicle location, vehicle model, and so on. The ability to update the parameters and configuration surrounding this data recording can be important to ensure that relevant and / or useful data is collected. Typically, system updates to vehicles are infrequent. Vehicles operate in highly regulated industries and often must consider rules and regulations across many different legal jurisdictions. Therefore, updates are typically only available periodically and at relatively long intervals. This leads to longer development cycles and can frustrate developers who must use outdated data or data that is not needed or ideal. The subject technology includes a method for updating a vehicle's recorded configuration on an on-demand basis, targeting certain vehicles based on, for example, location, weather conditions, climate, vehicle model, sub-model, variant, or other factors, so that developers can receive more relevant recorded information in a timely manner.

[0003] The logging configuration may relate to the vehicle's energy consumption, energy efficiency, or vehicle battery usage, and this data may be used to implement energy-saving techniques that reduce atmospheric CO2. For example, the logging configuration may include logged data related to battery pack efficiency, regenerative braking, or energy consumption during an event. System developers can use this data to modify the vehicle systems discussed herein to provide more energy-efficient results for vehicle usage. Additionally, logging data or uploading logged data in the following manner can reduce energy consumption: by reducing the amount of logged data when it is not needed, less energy is used for data storage and transmission. Utilizing less energy during the logging process has a direct positive impact on climate change by reducing energy consumption overall.

[0004] According to one or more aspects of the present disclosure, a method may include: receiving, at a first device (such as a vehicle) from a server, a data logger configuration including one or more data logging factors, the data logger configuration indicating one or more data streams to be recorded when the one or more data logging factors are met. The method may also include: replacing an existing data logger configuration with the received data logger configuration at the first device, wherein replacing the existing data logger configuration with the received data logger configuration changes the operation of the first device. The method may also include: determining, at the first device, that the one or more data logging factors have been met. In addition, the method may include: recording the one or more data streams in response to determining that the one or more data logging factors have been met.

[0005] According to one or more aspects of the present disclosure, a system may include a memory and at least one processor, wherein the processor may be configured to: receive, at a first device, from a server, a data logger configuration comprising one or more data logging factors, the data logger configuration indicating one or more data streams to be logged when the one or more data logging factors are satisfied. The processor may also be configured to: replace an existing data logger configuration at the first device with the received data logger configuration, wherein replacing the existing data logger configuration with the received data logger configuration changes the operation of the first device. The processor may also be configured to: determine that the one or more data logging factors have been satisfied. Furthermore, the processor may be further configured to: log the one or more data streams in response to determining that the one or more data logging factors have been satisfied.

[0006] According to one or more aspects of the present disclosure, a method may include: receiving a request for a data logger configuration, the request including a configuration identifier (ID) of the requested data logger configuration and a target vehicle indication, the data logger configuration indicating one or more data streams to be recorded when one or more data logging factors are met, wherein at least one of the one or more data logging factors is associated with a vehicle sensor. The method may also include: retrieving the data logger configuration from a firmware repository based on the configuration ID. The method may also include: pushing the data logger configuration to one or more target vehicles based on the target vehicle indication, wherein the data logger configuration causes the one or more target vehicles to collect data based on the data logger configuration, the data including information related to the vehicle sensor for each of the one or more target vehicles. BRIEF DESCRIPTION OF THE DRAWINGS

[0007] Certain features of the subject technology are set forth in the appended claims.For illustrative purposes, however, several embodiments of the subject technology are set forth in the following figures.

[0008] Figure 1 A schematic perspective side view of an example implementation of a vehicle according to one or more implementations of the subject technology is illustrated.

[0009] Figure 2 A flow chart illustrating an example process for receiving and replacing a data logger configuration for a data logger in accordance with one or more implementations of the subject technology is illustrated.

[0010] Figure 3 A system flow diagram illustrating replacements for generating, managing, and initiating data logger configurations in accordance with one or more implementations of the subject technology is illustrated.

[0011] Figure 4 A flow chart illustrating an example process for receiving a request for a replacement data logger configuration and pushing the data logger configuration to a vehicle in accordance with one or more implementations of the subject technology is illustrated.

[0012] Figure 5 An electronic system is illustrated that can be used to implement one or more implementations of the subject technology. DETAILED DESCRIPTION

[0013] The specific embodiments set forth below are intended to be descriptions of various configurations of the subject technology and are not intended to represent the only configuration in which the subject technology can be practiced. The accompanying drawings are incorporated herein and constitute a part of the specific embodiments. In order to provide a comprehensive understanding of the subject technology, the specific embodiments include specific details. However, it will be clear and understood by those skilled in the art that the subject technology is not limited to the specific details set forth herein and can be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form to avoid confusion with the various concepts of the subject technology.

[0014] Advanced driver assistance systems (ADAS) provide warning and assistance features to the driver. A vehicle's ADAS uses sensor inputs, control systems, and warning systems to assist the driver, helping to avoid collisions, maintain a safe distance, maintain lane control, and avoid hitting objects or people. Developers may continually attempt to improve these systems to provide additional or improved features.

[0015] Part of the ADAS is the ADAS Data Recorder (ADR) recorder application (or "ADR Recorder"), which supports dynamic data recording factors, or "triggers," to record a set of data streams based on certain events present in and / or indicated by input signals (such as sensor inputs). Each dynamic trigger is defined by logic that determines when the trigger is activated and, subsequently, the data stream to be recorded. The logic for each trigger can be stored in a script that the ADR Recorder executes periodically, such as at a frequency between 1 Hz and 200 Hz, such as between approximately 50 Hz and 150 Hz, for example, 100 Hz, though it will be understood that other frequencies can be used. Upon execution, any active trigger is retrieved and the corresponding data stream associated with the trigger is recorded / stored. The data streams can each include output sensor data streamed to the ADR Recorder for each available sensor in a predefined format. In some instances, a data stream can include more than one sensor output, such as when a single device collects sensor data for multiple sensors and provides reports for each of several individual sensors.

[0016] The ADR recorder includes a configuration or configuration scheme that defines a script for triggering and specifications for data flow (such as a predefined data structure established to record the output from each available sensor in an appropriate format, which may be personalized for each sensor). The configuration of the ADR recorder can be updated to change the script for triggering and / or the specifications for data flow. For example, software updates to ADAS and other vehicle systems may include updates to the ADR recorder configuration. Vehicle software updates may not typically be performed frequently.

[0017] However, the subject technology provides a mechanism for updating the ADR recorder configuration as needed without having to wait for a vehicle software update. The subject technology also provides a way to roll out new ADR recorder configurations and manage existing ADR recorder configurations for various designated vehicles. Although specific reference is made herein to vehicles, the ADR recorder of the subject technology can be implemented in any mobile device.

[0018] According to some specific implementations, for example Figure 1 As shown, an example implementation of the mobile device takes the form of a vehicle 100. In some embodiments, the vehicle 100 is a sport utility vehicle. Figure 1In the illustrated embodiment, the vehicle 100 is a truck. Generally, the vehicle 100 can take the form of any motor vehicle, including a motor vehicle having an internal combustion engine and / or one or more electric motors. In this regard, other specific implementations of the vehicle 100 can include land vehicles, such as, by way of non-limiting example, a car (e.g., a sedan, a hatchback), a minivan, a motorcycle, an electric scooter, or a commercial truck. Further, by way of non-limiting example, other specific implementations of the vehicle 100 can include a sea or air transport vehicle, an airplane, a helicopter, a submarine, a ship, or a drone.

[0019] The vehicle 100 includes a vehicle management system 104 that is designed to provide various functions, such as ADAS and ADS recorders, as well as other functions. The vehicle management system 104 may include one or more processors and memories, and may be directly or indirectly coupled (e.g., communicatively coupled in a wired or wireless manner) to one or more sensors 110 of the vehicle 100, such as sensors 100a-e. The one or more sensors 110 of the vehicle 100 may provide input signals to the vehicle management system 104. These signals may be used by an ADR recorder running on the vehicle management system 104 to provide recordings based on whether data recorder conditions (e.g., trigger factors) are met. The one or more sensors 110 may include, for example, accelerometers, cameras, inertial measurement units, microphones, gyroscopes, magnetometers, barometers, distance measuring devices, radars, lidars, etc. The sensors 110 may be located at various locations throughout the vehicle 100, such as at front sensor 110a locations, side sensor 110b locations, rear sensor 110c locations, rear wheel sensor 110d locations, or front wheel sensor 110e locations, etc. It should be understood that these are merely examples and that the sensors may be located anywhere on the vehicle 100, such as in the engine or motor compartment, within the battery pack (if so equipped), within the passenger compartment, etc.

[0020] In some embodiments, the vehicle 100 may be an electric vehicle and may include a battery pack (in Figure 1 (not shown in the figure), the battery pack may include one or more battery modules or may have a cell-to-pack configuration. The battery cells of the battery pack may include rechargeable battery cells. As a non-limiting example, the vehicle 100 may include a chassis (in Figure 1 ), which is used to support the battery pack and various other components of the vehicle 100 (not shown in FIG. Figure 1The battery pack may be coupled to one or more drive units, which may include, for example, a motor, an inverter, a gearbox, and a differential. In some embodiments, the one or more drive units may include one or more internal combustion engines. In other embodiments, the one or more drive units may include one or more electric motors. In such embodiments, the one or more drive units may use energy (e.g., electrical energy) stored in the battery pack for propulsion to drive (e.g., rotationally drive) the front and rear wheels, respectively.

[0021] The subject technology addresses issues associated with managing data collection configuration management. Although the data collection is described in terms of ADAS and ADS recorders, it should be understood that the principles discussed herein with respect to ADS recorders may also be applied to other recording systems of the vehicle 100 .

[0022] Figure 2 A flowchart 200 is illustrated for receiving and replacing data logger configurations and evaluating data logging factors to record data flows associated with these data logging factors. Specifically, the flowchart 200 can be used to manage the configuration of a vehicle and utilize the configuration to record data associated with an ADAS. Additionally, the flowchart 200 can be implemented by a vehicle management system shown and / or described herein. For purposes of explanation, this document primarily refers to Figure 1 The flowchart 200 is described with reference to the ADAS and ADR recorders of the vehicle 100 and / or various components of the vehicle. However, the flowchart 200 is not limited to Figure 1 The ADAS of the vehicle 100 is not limited to Figure 1 100, and one or more blocks (or operations) of flowchart 200 may be performed by vehicle 100 and / or one or more other structural components of other suitable mobile devices, equipment, or systems. Further for explanatory purposes, some of the blocks in flowchart 200 are described herein as occurring serially or linearly. However, multiple blocks of flowchart 200 may occur in parallel. In addition, the blocks of flowchart 200 need not be executed in the order shown, and / or one or more blocks of flowchart 200 need not be executed and / or may be replaced with other operations.

[0023] like Figure 2As shown, flowchart 200 may include: at 205, receiving a data logger configuration from a server at the device, the data logger configuration indicating one or more data streams to be recorded by the ADR logger application when one or more data logging factors are met. In some embodiments, the device may be a vehicle or a component of the vehicle, such as a vehicle management system, an electronic control unit, and / or one or more processors associated with the device. The server may be a server that can communicate with the first device remotely, for example, via a wired or wireless network (such as WiFi, a cellular network, or a telematics network), and the server has access to various data logger configurations. For example, the server may be controlled by the vehicle manufacturer and may store the data logger configuration and provide updated data logger configurations to the vehicle from time to time.

[0024] The data logger configuration is a recording configuration scheme that includes a set of defined data logging factors (i.e., trigger factors) that, when satisfied, cause the recording of specified data streams. The data logger configuration can include one or more data logging factors in any suitable format. For example, the format may indicate multiple sets of sensors and corresponding sensor values ​​that, when satisfied according to specified logic, cause the recording of one or more data streams. In some implementations, the format may include a script file with integrated data logging factors, allowing the script file to be locally executed by the vehicle management system. In some implementations, the format may include formats other than script files that define logical conditions for the data logging factors, allowing the ADR recorder application to interpret these logical conditions to check whether they are met. In some implementations, in addition to script files or other logic files, the data logger configuration format may also include a data stream configuration file that predefines the available data streams that can be specified for recording. For example, a data stream configuration file may define one or more communication channels between various sensors and the ADR recorder.

[0025] In some embodiments, the device may already have an existing data logger configuration stored in the vehicle. The existing data logger configuration may, for example, be stored in the ADR logger application. In some embodiments, the data logger configuration may be received at the vehicle when the vehicle is in use or stationary. If the vehicle is being used by an operator, in some embodiments, the data logger configuration may be received at the vehicle and used to replace the existing configuration when the vehicle is stationary or when the existing configuration can be safely replaced in other ways. In some embodiments, the data logger configuration may be received at the vehicle only when the vehicle is not in use, such as when the engine is turned off. For example, as a safety precaution, updates to the data logger configuration may be provided to the vehicle or applied by the vehicle only when the vehicle is not in use.

[0026] The received data logger configuration may be received based on the status of the vehicle, the status of the person associated with the vehicle, or the status of the conditions surrounding the vehicle. For example, the received data logger configuration may be received based on the specific make, model, and / or year of the vehicle. In another example, the received data logger configuration may be received based on the geographic location of the vehicle or based on the legal jurisdiction of the vehicle. For example, all vehicles in a particular state or country may receive a specific data logger configuration. Or in another example, all vehicles within a set of zip codes may receive a specific data logger configuration. Or in another example, all vehicles within a geo-fenced area based on Global Positioning System (GPS) data may receive a specific data logger configuration. The received data logger configuration may be received based on the demographic category of the person associated with the vehicle (such as, registered vehicle owner, driver profile, etc.). The received data logger configuration may be received based on the weather forecast, current weather conditions, or the climate zone in which the vehicle is located.

[0027] In a specific implementation, the existing data logger configuration may include the first data logging factor, while the received data logger configuration may not include the first data logging factor or may include the first data logging factor such that the conditions of the data logging factor are less frequently met to trigger a logging event. Thus, as described below, after the data logger configuration is replaced, the one or more recorded data streams no longer include at least some data related to the first data logging factor, whereas before the replacement, the one or more recorded data streams for the existing data logger configuration included additional data related to the first data logging factor.

[0028] While the recorded data may be important, there are also situations where system developers may want to reduce the amount of data received when the data is not determined to be relevant. The subject technology allows system developers to easily change the recording configuration without having to wait until the vehicle's software is updated. Therefore, by being able to more quickly add, remove, or modify data logging factors in the data logger configuration, memory, data transmission bandwidth, and energy are saved. Specific implementations can also add new data logging factors or modify existing data logging factors to generate additional recorded data. Because system developers can quickly and easily gain access to additional required data without having to wait for software updates, development cycles can be shortened by eliminating the lag time of waiting for the next software update. Therefore, the received data logger configuration can include data logging factors not included in the existing data logger configuration, or the received data logger configuration can include modified data logging factors so that the received data is more useful than the data from the existing data logger configuration.

[0029] In some embodiments, the one or more data logging factors may be related to the energy consumption, energy efficiency, or battery usage of the vehicle. For example, the data logging factors may include data related to battery pack efficiency, regenerative braking, or energy consumption during ADAS related events, which may trigger the ADR recorder application to record one or more data streams. System developers can use this data to modify the ADAS to provide more energy-efficient results. In addition, recording data or uploading recorded data in the following manner can reduce energy consumption: by reducing the amount of recorded data in the event that the data does not need to be recorded, less energy is used for data storage and transmission. Utilizing less energy during the recording process has a direct positive impact on climate change by reducing energy consumption overall.

[0030] At 210, after receiving the data logger configuration, the existing data logger configuration may be replaced with the received data logger configuration. In some implementations, replacing the data logger configuration may include loading the data logger configuration into memory and restarting the ADR logger application to read according to the new data logger configuration. In some implementations, the data logger configuration is received only when the vehicle is not in use, so that the server from which the data logger configuration is received may first query the vehicle's status and then deliver the data logger configuration only when it is safe to restart the ADR logger application (such as when the vehicle is not in use). In some implementations, the vehicle may receive the data logger configuration while the vehicle is in use, such as when the vehicle is powered on or resumed from a sleep state or other inactive state, and later, when the vehicle is not in use, take action based on the data logger configuration. In other implementations, replacing the data logger configuration may include replacing the existing data logger configuration without restarting the ADR logger application. In such an implementation, for example, the ADR recorder application may periodically reload the data recorder configuration data from a storage location. Thus, replacing the data recorder configuration may include replacing the existing data recorder configuration in the storage location and waiting until the ADR recorder application reloads the data recorder configuration data. In an implementation where the recorder application is restarted, restarting the recorder application may be configured to occur only when it is detected that the vehicle is in a safe state, so that if restarting the recorder application would cause a problem with the operation of the vehicle, the risk to the vehicle operator is minimized. For example, the ADR recorder application may be restarted only when the vehicle is in a parked state (such as, the vehicle's drive selector is in "park", etc.). Thus, the data recorder configuration can be replaced without interrupting the operation of the vehicle.

[0031] In some embodiments, the version identifier of the existing data logger configuration is checked against the version identifier of the received data logger configuration. If the version identifiers are the same, the received data logger configuration may be rejected by the ADR logger application, and an indication of the rejection may be included in the recorded data. If the version identifiers are different, the received data logger configuration may be accepted by the ADR logger application and applied as appropriate, as described above. The version identifier may be based on a hash of the data logger configuration. The version identifier may be provided by the server and compared with a version identifier stored with the existing data logger configuration. In some embodiments, the version identifier for the received data logger configuration and the version identifier for the existing data logger configuration may be calculated at the vehicle and compared to determine whether the received data logger configuration is different from the existing data logger configuration.

[0032] At 215, flowchart 200 may include determining, at the device, that the one or more data logging factors have been satisfied. For example, the ADR recorder application may execute a script associated with the data logging factor that compares sensor input data to a set of conditional values ​​to determine whether the conditional values ​​have been satisfied. For example, the script associated with the data logging factor may specify that if a first sensor is reporting a first value and the first value falls within a first range, and if a second sensor is reporting a second value and the second value falls within a second range, then the ADR recorder application should record data streams for the first sensor, the second sensor, and the third sensor. Thus, a data logging factor may not only specify the conditions being monitored that trigger a logging event, but also define the logging action to be taken.

[0033] At 220, flowchart 200 may include recording the one or more data streams in response to determining that the one or more data recording factors have been met. The data streams in question may be grouped together in a predefined data structure to simplify recording associated with each of the identified data streams. In such implementations, continuing with the example of the first and second sensors above, the ADR recorder application may record a first data structure specifying first sensor data, second sensor data, and third sensor data. In some implementations, the third sensor data may relate to sensors associated with vehicle operator inputs (such as steering wheel position, accelerator pedal position, brake pedal position, seat position, mirror position, etc.). In such implementations, the recorded data may be used to determine operator feedback related to the ADR recorded event. In some implementations, the third sensor data may relate to sensors associated with vehicle or road conditions (such as speed, suspension travel, sway, pitch, lane detection, etc.). In such implementations, the recorded data may be used to determine the interrelationship of the ADR recorded events.

[0034] Where appropriate, after recording the one or more data streams as recorded data, the device may provide the recorded data to a server or another server associated with the vehicle manufacturer and / or another authorized party. The data may be transmitted over a network (such as a wireless network). The recorded data may be analyzed to improve the ADAS. Alternatively, if the recorded data is used for another system, the recorded data may be analyzed to improve the other system.

[0035] Figure 3 Illustrated is a system flow chart of a system 300 for generating, managing and replacing a data logger configuration in a vehicle according to one or more specific implementations of the subject technology. In system 300, a developer 305 of a data logger configuration generates a test data logger configuration 310 and a test configuration scheme 315 and provides it to a test simulator 320. Once the test data logger configuration 310 passes the test, the test data logger configuration will be stored and can eventually be sent to various vehicles through an update process (such as, the flowchart 200 described above). The test configuration scheme 315 includes information about the test data stream and test sensor data executed on the test simulator 320 to ensure that the test data logger configuration 310 does not cause any problems to the real world vehicle. For example, the test sensor data can be used to test the test data logger configuration for any undesirable behavior (such as causing the data logger application to be incorrectly executed or failed) that the test data logger configuration 310 may cause. In addition, the test sensor data can be used to test the test data logger configuration to determine whether the target data recording condition or data recording factor is in effect as expected.

[0036] If the test data logger configuration 310 passes the test, the test data logger configuration is sent to the data logger configuration repository 330 as an effective or submitted data logger configuration 325. The data logger configuration repository 330 stores all of the various data logger configurations that have been developed and tested. The data logger configurations can be customized to generate custom data records as explained above. As part of storing the effective data logger configuration 325 in the repository 330, a configuration ID 335 can be generated and sent to the configuration manager database (DB) 345 along with an optional configuration name or other metadata (such as date, developer, test data identifier, etc.).

[0037] Configuration ID 335 can be generated by applying a hash (e.g., a cyclic redundancy check (CRC) or another suitable hashing algorithm) to data logger configuration 325. A CRC is a hashing algorithm that takes a set of bytes as input and returns a variable-length hash (with multiple parity bits). It is possible, but unlikely, for two different data logger configurations to generate the same configuration ID. In this case, configuration manager DB 345 can add the data logger configuration, along with a name, version identifier, or other metadata, to the record associated with the same configuration ID for storage in configuration manager DB 345. If a configuration is requested using a configuration ID that has more than one configuration associated with it, the user requesting the offending configuration ID can be prompted as to which data logger configuration is desired.

[0038] The configuration manager DB 345 may correspond to a cloud server accessible via a network connection. The configuration manager DB 345 maintains information about the various data logger configurations stored in the repository 330 and may retrieve a data logger configuration from the repository 330 in response to a user request. The configuration manager DB may then push 365 the retrieved data logger configuration to one or more vehicles 370, such as Figure 1 The data logger configuration may be pushed to the one or more vehicles 370. Pushing the data logger configuration to the one or more vehicles 370 may include identifying a destination address (e.g., a network address) for each of the one or more vehicles 370 and sending the data logger configuration to each of the one or more vehicles 370. As noted above, in some implementations, each of the one or more vehicles 370 may be queried to determine the vehicle status (e.g., in use, not in use, driving, idling, etc.), and the data logger configuration may be sent only when each of the one or more vehicles 370 is not in use, stationary, idling, etc. If the one or more vehicles 370 are still unable to receive the data logger configuration, the configuration manager DB 345 may periodically retry sending the data logger configuration until the sending is successful. In other implementations, the configuration manager DB 345 may send the data logger configuration even when the vehicle is in use, and the data logger configuration may be applied at the vehicle, for example, by later restarting the ADR recorder application.

[0039] Still refer to Figure 3, a user 350 may request 355 that a data logger configuration be sent to one or more vehicles. The user 350 may request a data logger configuration by specifying its configuration ID. The user 350 may also indicate which vehicle will receive the data logger configuration of interest. As noted above, if the configuration manager DB 345 indicates that more than one configuration is associated with the requested ID, the configuration manager DB 345 may prompt the user 350 as to which configuration is desired by presenting the user 350 with a list of available configurations under the configuration ID. The configuration manager DB 345 may then obtain the requested data logger configuration from the repository 330 via element 360.

[0040] User 350 may also execute other commands that may be processed by configuration manager DB 345. As noted above, user 350 may request to write a data logger configuration to one or more vehicles. Additionally, user 350 may request to delete a data logger configuration from one or more vehicles. Furthermore, user 350 may request a data logger configuration, such as a configuration ID, for one or more vehicles.

[0041] When the request from user 350 is to write a data logger configuration, configuration manager DB 345 may push the requested data logger configuration to one or more vehicles based on an indication of the vehicles provided by user 350, such indication including, for example, individual vehicle identifiers, locations, legal jurisdictions, owner information, etc., as noted above. When the request from user 350 is to delete a data logger configuration from one or more vehicles, configuration manager DB 345 may send an instruction to delete the data logger configuration to the one or more vehicles based on the vehicle indication information. When the request from user 350 is to retrieve a data logger configuration from one or more vehicles, configuration manager DB 345 may request such information from the one or more vehicles based on the vehicle indication information and, in response, receive a configuration ID associated with each of the indicated vehicles.

[0042] The process of developing and testing data logger configurations may be performed separately from the process of selecting and pushing the data logger configurations to the various vehicles.

[0043] Figure 4A flowchart 400 is illustrated for receiving a request for a data logger configuration to be sent to one or more vehicles and sending the data logger configuration to the one or more vehicles according to some specific implementations. Specifically, the flowchart 400 can be used to manage the configuration of one or more vehicles and utilize the configuration to record data associated with ADAS. In addition, the flowchart 400 can be implemented by a server associated with a vehicle manufacturer or maintenance provider. For the purpose of explanation, this document primarily refers to Figure 3 Configuration Manager DB 345 and Figure 1 Flowchart 400 is described with reference to the vehicle 100 and / or various components of the vehicle. However, flowchart 400 is not limited to configuration manager DB 345. For example, it should be understood that the various elements may be executed on different computer systems, and one or more blocks (or operations) of flowchart 400 may be performed by configuration manager DB 345, vehicle 100, and / or one or more other structural components of other suitable mobile devices, equipment, or systems. Further for explanatory purposes, some of the blocks in flowchart 400 are described herein as occurring serially or linearly. However, multiple blocks of flowchart 400 may occur in parallel. In addition, the blocks of flowchart 400 need not be executed in the order shown, and / or one or more blocks of flowchart 400 need not be executed and / or may be replaced with other operations.

[0044] like Figure 4 As shown, flowchart 400 may include: at 405, receiving a request for a data logger configuration, the request including a configuration identifier (ID) of the requested data logger configuration and a target vehicle indication, the data logger configuration indicating one or more data streams to be recorded when one or more data logging factors are met, wherein at least one of the one or more data logging factors is associated with a vehicle sensor. Such a request for a data logger configuration may come from user 350, such as corresponding to Figure 3 described.

[0045] As noted above, if a configuration ID matches more than one data logger configuration, the user may be provided with a list of possible data logger configurations that match the requested configuration ID and prompted as to which of these data logger configurations is desired. The list of possible data logger configurations may include identifying metadata, such as a friendly name, date, name, title, developer name, project name, etc., for such configurations.

[0046] The target vehicle indication may be an identifier or address of a specific vehicle or a filter condition for a group of vehicles. For example, the filter condition may be based on a geographic area, such as state or country jurisdiction, zip code, geographic location, and / or geo-fenced area; environmental factors, such as weather, weather forecast, climate; regulatory conditions, such as the government jurisdiction where certain regulations apply; demographic information of users associated with the vehicle; climate zone of the vehicle; model of the vehicle; etc.

[0047] Filter conditions may be applied to the database of vehicles and a list of vehicles and the electronic addresses of the vehicles may be retrieved.

[0048] At 410, a data logger configuration may be retrieved from a repository based on the configuration ID and other identifying metadata (if necessary). Then, at 415, the data logger configuration may be pushed to one or more target vehicles based on the target vehicle indication, wherein the data logger configuration causes the one or more target vehicles to collect data based on the data logger configuration, wherein the data includes information related to vehicle sensors for each of the one or more target vehicles. Pushing the data logger configuration may also include pushing the data logger configuration along with the configuration ID, wherein when the configuration ID is the same as the configuration ID for an existing data logger configuration, the pushed data logger configuration does not replace the existing data logger configuration. In other words, when the configuration ID matches the configuration ID for an existing data logger configuration that is already installed, the vehicle may reject the data logger configuration. As noted above, pushing the data logger configuration to the one or more target vehicles may include identifying a destination address (e.g., a network address) for each of the one or more target vehicles and sending the data logger configuration to each of the one or more target vehicles. In some embodiments, each of the one or more target vehicles may be queried to determine the vehicle status (e.g., in use, not in use, driving, idling, etc.), and the data logger configuration may be sent only when each of the one or more target vehicles is not in use, stationary, idling, etc. When the one or more target vehicles are still unable to receive the data logger configuration, retrying to send the data logger configuration until the transmission is successful. In other embodiments, the vehicle may receive data even when it is in use, and the data logger configuration may be applied, for example, by later restarting the ADR logger application. The data collected by the one or more target vehicles may be received or received by a server associated with the user.

[0049] Figure 5 An example electronic system 500 is illustrated that can be used to implement various aspects of the present disclosure. The electronic system 500 can be used to provide reference Figures 1 to 4Any electronic device that may be and / or may be a part of the features and execution processes described herein includes, but is not limited to, a carrier, a computer, and a server. The electronic system 500 may include various types of computer-readable media and interfaces for various other types of computer-readable media. The electronic system 500 includes a persistent storage device 502, a system memory 504 (and / or buffer), an input device interface 506, an output device interface 508, a sensor 510, a ROM 512, a processing unit 514, a network interface 516, a bus 518, and / or subsets and variations thereof. In one or more specific implementations, Figure 1 The vehicle management system 104 is an electronic system 500 or includes at least a portion of an electronic system.

[0050] The bus 518 collectively represents a plurality of internal devices and / or components (such as those described above with respect to FIG. Figure 1 502. In one or more implementations, bus 518 communicatively connects one or more processing units 514 to ROM 512, system memory 504, and persistent storage 502. From these various memory units, one or more processing units 514 retrieve instructions to be executed and data to be processed in order to perform the processes disclosed herein. In different implementations, one or more processing units 514 may be a single processor or a multi-core processor. In one or more implementations, one or more of the processing units 514 may be included on the vehicle management system 104.

[0051] ROM 512 stores static data and instructions required by one or more processing units 514 and other modules of electronic system 500. On the other hand, persistent storage device 502 can be a read-write memory device. Persistent storage device 502 can be a non-volatile memory unit that stores instructions and data even when electronic system 500 is turned off. In one or more specific implementations, a mass storage device (such as a magnetic or optical disk and its corresponding disk drive) can be used as persistent storage device 502.

[0052] In one or more implementations, a removable storage device (such as a flash drive and its corresponding disk drive) can be used as the persistent storage device 502. Similar to the persistent storage device 502, the system memory 504 can be a read-write memory device. However, unlike the persistent storage device 502, the system memory 504 can be a volatile read-write memory, such as RAM. The system memory 504 can store any of the instructions and data that one or more processing units 514 may need at run time. In one or more implementations, the processes disclosed in the present subject matter are stored in the system memory 504, the persistent storage device 502, and / or the ROM 512. From these various memory units, the one or more processing units 514 retrieve instructions to be executed and data to be processed in order to perform the processes of one or more implementations.

[0053] The persistent storage device 502 and / or the system memory 504 may include one or more machine learning models. Machine learning models (such as those described herein) are typically used to form predictions, solve problems, identify objects in image data, and the like. For example, the machine learning models described herein may be used to predict semantic information and boundary region information for one or more pixels of an image. Various specific implementations of machine learning models are possible. For example, the machine learning model may be a deep learning network, a transformer-based model (or other attention-based model), a multilayer perceptron or other feedforward network, a neural network, and the like. In various examples, the machine learning model may be more adaptive because the machine learning model may be improved over time by retraining the model as additional data becomes available.

[0054] The bus 518 is also connected to an input device interface 506 and an output device interface 508. The input device interface 506 enables a user to convey information to the electronic system 500 and select commands to the electronic system. The input device that can be used together with the input device interface 506 can include, for example, an alphanumeric keyboard, a touch screen, and a pointing device. The output device interface 508 can enable the electronic system 500 to convey information to the user. For example, the output device interface 508 can provide a display of an image generated by the electronic system 500. The output device that can be used together with the output device interface 508 can include, for example, a printer and a display device, such as a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, a flexible display, a flat panel display, a solid-state display, a projector, or any other device for outputting information.

[0055] The bus 518 is also connected to the sensor 510. The sensor 510 may include any of the aforementioned sensors as well as a geolocation sensor that can be used to determine the device location based on positioning technology. For example, the geolocation sensor can provide one or more of a global navigation satellite system (GNSS) positioning, a wireless access point positioning, a cellular phone signal positioning, a Bluetooth signal positioning, an image recognition positioning, and / or an inertial navigation system (e.g., via a motion sensor such as an accelerometer and / or a gyroscope). In one or more specific implementations, the sensor 510 can be used to detect the movement, travel, and orientation of the electronic system 500. For example, the sensor may include an accelerometer, a rate gyroscope, and / or other motion-based sensors. The sensor 510 may include one or more biometric sensors and / or cameras for authenticating a user.

[0056] Bus 518 also couples electronic system 500 to one or more networks and / or one or more network nodes via one or more network interfaces 516. In this manner, electronic system 500 can be part of a computer network, such as a local area network or a wide area network. Any or all components of electronic system 500 can be used in conjunction with the subject disclosure.

[0057] Implementations within the scope of the present disclosure may be partially or fully implemented using a tangible computer-readable storage medium (or multiple tangible computer-readable storage media of one or more types) encoding one or more instructions. Tangible computer-readable storage media may also be non-transitory in nature.

[0058] Computer-readable storage media can be any storage medium that can be read, written, or otherwise accessed by a general-purpose or special-purpose computing device, including any processing electronics and / or processing circuitry capable of executing instructions. For example, but not limited to, computer-readable media can include any volatile semiconductor memory, such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. Computer-readable media can also include any non-volatile memory, such as ROM, PROM, EPROM, EEPROM, NVRAM, flash memory, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, racetrack memory, FJG, and Millipede memory.

[0059] Additionally, the computer-readable storage medium may include any non-semiconductor memory, such as optical disk storage, magnetic disk storage, magnetic tape, other magnetic storage devices, or any other medium capable of storing one or more instructions. In one or more implementations, the tangible computer-readable storage medium may be directly coupled to the computing device, while in other implementations, the tangible computer-readable storage medium may be indirectly coupled to the computing device, for example, via one or more wired connections, one or more wireless connections, or any combination thereof.

[0060] Instructions can be directly executable or can be used to develop executable instructions. For example, instructions can be implemented as executable or non-executable machine code, or can be implemented as instructions in a high-level language that can be compiled to produce executable or non-executable machine code. In addition, instructions can also be implemented as data or can include data. Computer-executable instructions can also be organized in any format, including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As recognized by those skilled in the art, the details including but not limited to the number, structure, sequence and organization of instructions can vary significantly without changing underlying logic, function, processing and output.

[0061] Although the above discussion primarily relates to microprocessors or multi-core processors that execute software, one or more implementations are performed by one or more integrated circuits such as ASICs or FPGAs. In one or more implementations, such integrated circuits execute instructions stored on the circuits themselves.

[0062] Unless otherwise specified, an element mentioned in the singular is not intended to mean one and only one, but rather one or more. For example, "a" module may refer to one or more modules. Without further constraints, an element beginning with "a," "an," "the," or "said" does not exclude the presence of additional identical elements.

[0063] Headings and subheadings, if any, are used for convenience only and do not limit the present disclosure. The word "exemplary" is used to mean serving as an example or illustration. To the extent that the terms "including" or "having" are used, such terms are intended to be inclusive in a manner similar to the term "comprising," as understood when "comprising" is used as a transitional term in a claim. Relational terms such as first and second, etc., may be used to distinguish one entity or action from another without necessarily requiring or implying any actual such relationship or order between such entities or actions.

[0064] Phrases such as an aspect, this aspect, another aspect, some aspects, one or more aspects, an implementation, this implementation, another implementation, some implementations, one or more implementations, an embodiment, this embodiment, another embodiment, some embodiments, one or more embodiments, a configuration, this configuration, another configuration, some configurations, one or more configurations, the subject technology, the disclosure, the disclosure, other variations thereof, etc., are for convenience and do not imply that the disclosure associated with such phrases is essential to the subject technology or that such disclosure applies to all configurations of the subject technology. The disclosure associated with such phrases may apply to all configurations or one or more configurations. The disclosure associated with such phrases may provide one or more examples. Phrases such as an aspect or some aspects may refer to one or more aspects, and vice versa, and this applies similarly to the other aforementioned phrases.

[0065] The phrase "at least one of" preceding a list of items, with the terms "and" or "or" used to separate any of those items, modifies the list as a whole, not each of the constituent items of the list. The phrase "at least one of" does not require selection of at least one item; rather, the phrase allows for a meaning that includes at least one of any of those items, and / or at least one of any combination of those items, and / or at least one of each of those items. By way of example, each of the phrases "at least one of A, B, and C" or "at least one of A, B, or C" means only A, only B, or only C; any combination of A, B, and C; and / or at least one of each of A, B, and C.

[0066] It should be understood that the specific order or level of the disclosed steps, operations or processes are illustrations of exemplary methods. Unless otherwise clearly stated, it should be understood that the specific order or level of steps, operations or processes can be performed in different orders. Some of the steps, operations or processes can be performed simultaneously. The attached method claims (if any) present the elements of various steps, operations or processes in a sample order and are not meant to be limited to the specific order or level presented. These can be performed serially, linearly, in parallel or in different orders. It should be understood that the described instructions, operations and systems can usually be integrated together in a single software / hardware product or encapsulated in multiple software / hardware products.

[0067] Terms such as top, bottom, front, back, side, horizontal, vertical, etc. refer to an arbitrary reference frame other than the ordinary gravitational reference frame. Thus, such terms may extend upward, downward, diagonally, or horizontally in a gravitational reference frame.

[0068] The present disclosure is provided to enable any person skilled in the art to practice the various aspects described herein. In some instances, well-known structures and components are shown in block diagram form to avoid confusion about the various concepts of the subject technology. The present disclosure provides various examples of the subject technology, and the subject technology is not limited to these examples. Various modifications to these aspects will be readily apparent to those skilled in the art, and the principles described herein may be applied to other aspects.

[0069] All structural and functional equivalents of the various elements of the various aspects described throughout this disclosure are known or will later become known to those of ordinary skill in the art, and these equivalents are expressly incorporated herein by reference and are intended to be encompassed by the claims. In addition, nothing disclosed herein is intended to serve the public, regardless of whether such disclosure is explicitly stated in the claims. No claim element should be interpreted under the provisions of 35 USC § 112 (f) unless the element is explicitly stated using the phrase "means for..." or, in the case of a method claim, the phrase "step for..." is used to state the element.

[0070] Those skilled in the art will appreciate that the various illustrative blocks, modules, elements, parts, methods and algorithms described herein can be implemented as hardware, electronic hardware, computer software or a combination thereof. In order to illustrate this interchangeability of hardware and software, various illustrative blocks, modules, elements, parts, methods and algorithms have been generally described above in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the entire system. Those skilled in the art can implement the described functionality in different ways for each specific application. Various components and blocks can be arranged differently (e.g., arranged in different orders or divided in different ways), all of which do not depart from the scope of the present subject technology.

[0071] The titles, figure descriptions, abstracts, and drawings are hereby incorporated into this disclosure and are provided as illustrative examples of the disclosure and not as limiting descriptions. This document is submitted with the understanding that they will not be used to limit the scope or meaning of the claims. Furthermore, in the detailed description, it can be seen that for the purpose of simplifying the disclosure, the description provides illustrative examples and various features are grouped together in various specific implementations. The method of the present disclosure should not be interpreted as reflecting an intention that the claimed subject matter requires more features than are expressly recited in each claim. On the contrary, as reflected in the claims, the inventive subject matter lies in less than all the features of a single disclosed configuration or operation. The claims are hereby incorporated into the detailed description, with each claim independently serving as separately claimed subject matter.

[0072] The claims are not intended to be limited to the aspects described herein, but should be accorded the full scope consistent with the language of the claims and encompassing all legal equivalents. Nevertheless, none of the claims is intended to encompass subject matter that fails to meet the requirements of applicable patent law, nor should they be interpreted in such a manner.

Claims

1. A method comprising: receiving, at a first device, from a server, a data logger configuration comprising one or more data logging factors, the data logger configuration indicating one or more data streams associated with the respective vehicle sensors to be logged when corresponding sensor values ​​of the respective vehicle sensors satisfy the one or more data logging factors, wherein the data logger configuration corresponds to an executable script; replacing an existing data logger configuration with the received data logger configuration at the first device, wherein replacing the existing data logger configuration with the received data logger configuration changes operation of the first device; executing the received data logger configuration at the first device to determine that the one or more data logging factors have been satisfied; as well as The one or more data streams are recorded in response to determining that the one or more data recording factors have been satisfied. The method according to claim 1 , wherein the first device is disposed in a carrier.

3. The method of claim 2, wherein the data logger configuration is received based at least in part on a geographic location of the vehicles, based on weather conditions surrounding the vehicles, or based on a legal jurisdiction for each vehicle.

4. The method of claim 2, wherein replacing the existing data logger configuration with the received data logger configuration is performed while the vehicle is in a parked state without interrupting operation of the vehicle.

5. The method according to claim 1, further comprising: Before replacing the existing data logger configuration with the received data logger configuration, comparing a first configuration identifier (ID) of the existing data logger configuration with a second configuration identifier (ID) of the received data logger configuration; as well as When the second configuration ID is different from the first configuration ID, proceeding to replace the existing data logger configuration with the received data logger configuration. 6 . The method of claim 5 , wherein the first configuration ID comprises a hash of the existing data logger configuration, and wherein the second configuration ID comprises a hash of the received data logger configuration.

7. The method of claim 1, wherein at least one of the one or more data streams comprises output from a vehicle sensor.

8. The method according to claim 1, further comprising: Information including the one or more data streams is sent from the first device to a second server.

9. The method of claim 1 , wherein the existing data logger configuration includes a first data logging factor, wherein the received data logger configuration does not include the first data logging factor, and wherein after replacing the existing data logger configuration, the one or more data streams do not include data related to the first data logging factor.

10. The method of claim 1 , wherein the received data logger configuration includes a first data logging factor, wherein the existing data logger configuration does not include the first data logging factor, and wherein after replacing the existing data logger configuration, the one or more data streams include data related to the first data logging factor, wherein before replacing the existing data logger configuration, the one or more data streams do not include data related to the first data logging factor.

11. The method of claim 1 , wherein the one or more data recorded factors are related to energy consumption, energy efficiency, or vehicle battery usage.

12. A system comprising: non-transitory computer readable memory; and at least one processor coupled to the memory, the at least one processor configured to: receiving, at a first device, from a server, a data logger configuration comprising one or more data logging factors, the data logger configuration indicating one or more data streams associated with the respective vehicle sensors to be logged when corresponding sensor values ​​of the respective vehicle sensors satisfy the one or more data logging factors, wherein the data logger configuration corresponds to an executable script; replacing an existing data logger configuration with the received data logger configuration at the first device, wherein replacing the existing data logger configuration with the received data logger configuration changes operation of the first device; executing the received data logger configuration at the first device to determine that the one or more data logging factors have been satisfied; as well as The one or more data streams are recorded in response to determining that the one or more data recording factors have been satisfied.

13. The system according to claim 12, wherein the existing data logger configuration includes a first data logging factor, wherein the received data logger configuration does not include the first data logging factor, and wherein after replacing the existing data logger configuration, the one or more data streams do not include data associated with the first data logging factor; or wherein the received data logger configuration includes a second data logging factor, wherein the existing data logger configuration does not include the second data logging factor, and wherein after replacing the existing data logger configuration, the one or more data streams include data related to the second data logging factor, wherein before replacing the existing data logger configuration, the one or more data streams did not include data related to the second data logging factor; or The first data recording factor or the second data recording factor is related to energy consumption, energy efficiency or vehicle battery usage.

14. A method comprising: receiving a request for a data logger configuration, the request including a configuration identifier (ID) of the requested data logger configuration and a target vehicle indication, the data logger configuration indicating one or more data streams associated with the respective vehicle sensors to be recorded when corresponding sensor values ​​of the respective vehicle sensors satisfy one or more data logging factors, wherein at least one of the one or more data logging factors is associated with the vehicle sensor; retrieving the data logger configuration from a firmware repository based on the configuration ID; as well as The data logger configuration is pushed to one or more target vehicles based on the target vehicle indication, wherein the data logger configuration corresponds to an executable script, and the executable script, when executed, causes the one or more target vehicles to collect data based on the data logger configuration, and the data includes information related to the vehicle sensor for each of the one or more target vehicles.

15. The method according to claim 14, further comprising: Filter the target vehicle list; as well as The data logger configuration is pushed to the target vehicles in the filtered list.

16. The method of claim 15, wherein the target vehicle list is filtered by each vehicle's geographic location, weather conditions surrounding each vehicle, or each vehicle's legal jurisdiction.

17. The method of claim 14, wherein after testing the data logger configuration at a test simulator, storing the data logger configuration in the firmware repository as valid, the method further comprising: The configuration ID is received from the firmware repository.

18. The method of claim 17, wherein the test simulator tests each of the data logging factors of the one or more data logging factors in the data logger configuration.

19. The method of claim 14, wherein the configuration ID is calculated as a hash of the data logger configuration, wherein when the configuration ID has been stored in the firmware repository, the data logger configuration is added to a record associated with the configuration ID.

20. The method according to claim 19, further comprising: prompting for input indicating which data logger configuration is requested when the record associated with the configuration ID includes multiple data logger configurations; receiving said input indicating which data logger configuration is requested; and Other data logger configurations not requested in the record associated with the configuration ID are ignored.