Efficient remote data collection from vehicles
By performing dimensionality reduction processing on the generated data in the vehicle and selecting the transmission method according to network conditions, the problem of limited bandwidth for vehicle data transmission is solved, and efficient and reliable remote data collection is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- FORD GLOBAL TECH LLC
- Filing Date
- 2025-11-24
- Publication Date
- 2026-06-09
Smart Images

Figure CN122179830A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to efficient remote data collection from vehicles. Background Technology
[0002] Modern vehicles typically include multiple sensors and components that generate data. Sensors provide data about vehicle operation, such as wheel speed, wheel orientation, steering angle, steering wheel angle, steering column torque, gear shifts, pedal positions, and engine and transmission data (e.g., temperature, fuel consumption, etc.). For example, sensors may include torque sensors, position sensors, temperature sensors, etc. Sensors can detect the vehicle's position and / or orientation. For example, sensors may include Global Positioning System (GPS) sensors; accelerometers, such as piezoelectric or microelectromechanical systems (MEMS); gyroscopes, such as rate gyroscopes, ring laser gyroscopes, or fiber optic gyroscopes; inertial measurement units (IMUs); and magnetometers. Sensors can detect the external world, such as objects and / or characteristics of the vehicle's surrounding environment, such as other vehicles, road lane markings, traffic lights and / or signs, road users, etc. For example, sensors may include radar sensors, scanning laser rangefinders, light detection and ranging (LiDAR) devices, and image processing sensors (such as cameras). Other vehicle components include propulsion systems, steering systems, suspension systems, and components of advanced driver assistance systems (ADAS). Summary of the Invention
[0003] Capturing data generated on vehicles presents specific challenges. Given the sheer number of sensors and components in modern vehicles, the amount of data generated is considerable. On the other hand, the bandwidth available for transmitting data remotely from the vehicle is typically severely constrained, as transmission is usually wireless. Furthermore, because vehicles are inherently mobile, the amount of bandwidth can fluctuate unpredictably over time as the vehicle moves through different types of networks.
[0004] The system described in this paper provides a resource-efficient way to capture vehicle data. A computer on the vehicle is programmed to perform dimensionality reduction on unreduced data to produce simplified data. The term "unreduced data" refers to the data generated on the vehicle prior to dimensionality reduction, and the term "reduced data" refers to the output of the dimensionality reduction. Unreduced data is time-series data with multiple dimensions (hereinafter referred to as "unreduced dimensions") at each time point in the time series. Simplified data also has multiple dimensions (hereinafter referred to as "reduced dimensions") at each time point in the time series. Due to dimensionality reduction, the number of reduced dimensions is less than the number of unreduced dimensions. The computer is also programmed to transmit the simplified data to a server located remotely from the vehicle, and to transmit the unreduced data to the server upon receiving an instruction in response to the simplified data.
[0005] Dimensionality reduction reduces the amount of data that needs to be transmitted to the server outside the vehicle. Furthermore, dimensionality reduction offers several advantages compared to, for example, sampling unsimplified data over time or sampling a subset of unsimplified dimensions. The simplified data produced by dimensionality reduction provides a more comprehensive measure of what the vehicle is experiencing, allowing for the selection of more relevant unsimplified data. In contrast to sampling over time, simplified data provides a finer-grained measure of changes over time. And unlike sampling a subset of dimensions, simplified data incorporates contributions from all unsimplified dimensions rather than just a few, while still significantly reducing the amount of data. Conditions can be used to determine when the server is most likely to be interested in the data.
[0006] A computer includes a processor and a memory, the memory storing instructions executable by the processor to: perform dimensionality reduction on unsimplified data to produce simplified data; transmit the simplified data to a server; and transmit the unsimplified data to the server upon receiving an instruction from the server in response to the simplified data. The unsimplified data is time-series data generated on a vehicle. The unsimplified data has multiple unsimplified dimensions at each time point in the time series. The simplified data has multiple simplified dimensions at each time point in the time series. The number of simplified dimensions is less than the number of unsimplified dimensions. The server is located remotely from the vehicle.
[0007] In the example, the instruction may also include instructions to avoid transmitting the unsimplified data to the server in response to not receiving the instruction in response to the simplified data from the server within a time limit.
[0008] In the example, the simplified dimension can be a function of the corresponding unsimplified dimensions.
[0009] In the example, the simplified dimension may be a latent space representation derived from the unsimplified dimension.
[0010] In one example, transmitting the unsimplified data to the server may depend on meeting a condition on the vehicle. In another example, the instruction may further include the instruction to transmit the unsimplified data to the server via a cellular network in response to the condition being met and the vehicle being outside the range of the Wi-Fi network. In yet another example, the condition may be a first condition, and the instruction may further include the instruction to transmit the unsimplified data to the server via the Wi-Fi network once the vehicle is within the range of the Wi-Fi network, in response to the second condition on the vehicle being met. In yet another example, the instruction may further include the instruction to delete the unsimplified data in response to neither the first nor the second condition being met.
[0011] In another, yet another, example, the condition may be a first condition, and the instruction may further include instructions to: store the unsimplified data in the buffer in response to a second condition being met and the buffer having capacity for the unsimplified data. In yet another, yet another, the instruction may further include instructions to: overwrite the buffer with the unsimplified data in response to a second condition being met and the buffer lacking capacity for the unsimplified data, in response to the simplified data satisfying an overwrite condition. In a continuing example, the overwrite condition may be a metric calculated from the simplified data exceeding the metric calculated from the data in the buffer.
[0012] In another example, the instructions may also include instructions for receiving the conditions from the server.
[0013] In the example, at least a portion of the unsimplified data may be generated by the vehicle's sensors.
[0014] In the example, the vehicle may include the computer.
[0015] A method includes: performing dimensionality reduction on unsimplified data to produce simplified data; transmitting the simplified data to a server; and transmitting the unsimplified data to the server upon receiving an instruction from the server in response to the simplified data. The unsimplified data is time-series data generated on a vehicle. The unsimplified data has multiple unsimplified dimensions at each time point in the time series. The simplified data has multiple simplified dimensions at each time point in the time series. The number of simplified dimensions is less than the number of unsimplified dimensions. The server is located remotely from the vehicle.
[0016] In the example, the simplified dimension can be a function of the corresponding unsimplified dimensions.
[0017] In one example, transmitting the unsimplified data to the server may depend on meeting a condition on the vehicle. In another example, the method may further include transmitting the unsimplified data to the server via a cellular network in response to the condition being met and the vehicle being outside the range of the Wi-Fi network. In yet another example, the condition may be a first condition, and the method may further include transmitting the unsimplified data to the server via the Wi-Fi network once the vehicle is within the range of the Wi-Fi network in response to a second condition being met.
[0018] In another, yet still different, condition may be a first condition, and the method may further include storing the unsimplified data in the buffer in response to a second condition being met and the buffer having capacity for the simplified data. Attached Figure Description
[0019] Figure 1 This is a diagram of an example communication infrastructure used for a vehicle fleet.
[0020] Figure 2 This is a block diagram of an example vehicle in the fleet.
[0021] Figure 3 This is a flowchart of an example process for selecting data to be transmitted from a vehicle to a server in a communication infrastructure. Detailed Implementation
[0022] Referring to the accompanying drawings, where the same numbers indicate the same parts throughout several views, computer 205 includes a processor and a memory, and the memory stores instructions executable by the processor to: perform dimensionality reduction on unsimplified data to produce simplified data; transmit the simplified data to server 110; and transmit the unsimplified data to server 110 upon receiving an instruction from server 110 in response to the simplified data. The unsimplified data is time-series data generated on vehicle 105. The unsimplified data has multiple unsimplified dimensions at each time point in the time series. The simplified data has multiple simplified dimensions at each time point in the time series. The number of simplified dimensions is less than the number of unsimplified dimensions. Server 110 is located away from vehicle 105.
[0023] refer to Figure 1 Multiple vehicles 105 can communicate with server 110 at a given time. For example, the multiple vehicles 105 may be vehicles from a common manufacturer and / or registered with a common online service. As another example, the multiple vehicles 105 may be part of a common fleet (e.g., ride-hailing vehicles). Vehicles 105 may be equipped to communicate with server 110 via cellular network 115 and / or via Wi-Fi network 120.
[0024] Server 110 is a microprocessor-based computing device, such as a general-purpose computing device including a processor and memory. The memory of server 110 may include media for storing instructions executable by the processor and for electronically storing data and / or databases, and / or server 110 may include structures such as those providing programming capabilities. Server 110 may be multiple computers coupled together. Server 110 may be configured to communicate with vehicle 105 via a public network 125.
[0025] Cellular network 115 is a wireless broadband communication network used for mobile devices and other terminals. Cellular network 115 can be any wireless network conforming to one or more standards (e.g., 4G, LTE, 5G, 6G, etc.) issued by the 3rd Generation Partnership Project (3GPP). Cellular network 115 can refer to any of the multiple cellular networks within which vehicle 105 can travel. Vehicle 105 can be within the range of cellular network 115 in most locations where vehicle 105 will travel.
[0026] Wi-Fi network 120 is a wireless communication network for mobile devices and other terminals. Wi-Fi network 120 is a local area network with a shorter range than cellular network 115. Wi-Fi network 120 can be any wireless network conforming to the IEEE 802.11 family of standards. Vehicle 105 may be within range of Wi-Fi network 120 at locations where vehicle 105 will travel (e.g., an operator's home or workplace). Wi-Fi network 120 can represent any of multiple Wi-Fi networks within the range of vehicle 105. Wi-Fi network 120 can provide higher bandwidth for data transmission than cellular network 115, and cellular network 115 can provide a wider aggregation range than Wi-Fi network 120.
[0027] Public network 125 refers to one or more mechanisms by which cellular network 115 and Wi-Fi network 120 communicatively connect to server 110. Therefore, public network 125 can be one or more of various wired or wireless communication mechanisms, including any desired combination of wired (e.g., cable and fiber optic) and / or wireless (e.g., cellular, wireless, satellite, microwave, and radio frequency) communication mechanisms, and any desired network topology (or topology utilizing multiple communication mechanisms). Public network 125 can include the Internet and facilities owned by Internet Service Providers (ISPs) for connecting to the Internet.
[0028] refer to Figure 2 Each vehicle 105 can be any passenger or commercial vehicle, such as a sedan, truck, SUV, crossover, van, minivan, taxi, bus, etc. Vehicle 105 may include a computer 205, an onboard network 210, sensors 215, components 220, and a transceiver 225.
[0029] Computer 205 is a microprocessor-based computing device, such as a general-purpose computing device (including a processor and memory, electronic controller, etc.), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or a combination thereof. Typically, hardware description languages such as VHDL (VHSIC (Very High Speed Integrated Circuit) Hardware Description Language) are used in electronic design to describe digital and mixed-signal systems such as FPGAs and ASICs. For example, an ASIC is manufactured based on VHDL programming provided before manufacturing, while the logic components inside an FPGA can be configured based on VHDL programming (e.g., stored in memory electrically connected to the FPGA circuitry). Therefore, computer 205 may include a processor, memory, etc. The memory of computer 205 may include media for storing instructions executable by the processor and for electronically storing data and / or databases, and / or computer 205 may include structures such as those providing programming capabilities. Computer 205 may be multiple computers coupled together.
[0030] Computer 205 can transmit and receive data via onboard network 210. Onboard network 210 can be a Controller Area Network (CAN) bus, Ethernet, Wi-Fi, Local Area Network (LIN), On-Board Diagnostic Connector (OBD-II), and / or any other wired or wireless communication network. Computer 205 can communicatively couple to sensor 215, component 220, and transceiver 225 via onboard network 210.
[0031] Sensor 215 can provide data about the operation of vehicle 105, such as wheel speed, wheel orientation, and engine and transmission data (e.g., temperature, fuel consumption, etc.). Sensor 215 can detect the position and / or orientation of vehicle 105. For example, sensor 215 may include a Global Positioning System (GPS) sensor; an accelerometer, such as a piezoelectric system or a microelectromechanical system (MEMS); a gyroscope, such as a rate gyroscope, a ring laser gyroscope, or a fiber optic gyroscope; an inertial measurement unit (IMU); and a magnetometer. Sensor 215 can detect the external world, including objects and / or characteristics of the environment surrounding vehicle 105, such as other vehicles, road lane markings, traffic lights and / or signs, road users, etc. For example, sensor 215 may include a radar sensor, an ultrasonic sensor, a scanning laser rangefinder, a light detection and ranging (LiDAR) device, and an image processing sensor (such as a camera).
[0032] Component 220 may be actuable to perform a task on vehicle 105. For example, component 220 may be a component of a propulsion system (e.g., engine, motor, drivetrain, etc.), a steering system (e.g., electric power steering (EPAS) motor, etc.), a user interface (e.g., touchpad, button, dial, microphone, speaker, etc.), a suspension system (e.g., active suspension, etc.), a climate control system (e.g., heater, air conditioner, blower, etc.).
[0033] Transceiver 225 can be adapted to wirelessly transmit signals via any suitable wireless communication protocol, such as cellular, Bluetooth®, Bluetooth® Low Energy (BLE), Ultra Wideband (UWB), WiFi, IEEE 802.11a / b / g / p, Cellular-V2X (CV2X), Dedicated Short Range Communication (DSRC), other RF (radio frequency) communications, etc. Transceiver 225 can be adapted to communicate with a remote server (i.e., a server that is different from and spaced apart from vehicle 105). The remote server can be located outside vehicle 105. For example, the remote server can be associated with another vehicle (e.g., V2V communication), with infrastructure components (e.g., V2I communication), with a first responder, with a mobile device associated with the operator of vehicle 105, etc. The remote server can be server 110. Transceiver 225 can be a single device or can include separate transmitters and receivers.
[0034] refer to Figures 1-2 During operation of the sensors 215 and components 220 on the vehicle 105, unsimplified data is generated. For the purposes of this disclosure, “unsimplified data” is defined as data that has not yet undergone dimensionality reduction. For example, at least a portion of the unsimplified data is generated by the sensors 215 of the vehicle 105. The data generated by the sensors 215 represents what the sensors 215 detect (e.g., image data from a camera; point clouds from radar, lidar, and / or ultrasonic sensors; location from GPS; kinematic states from an IMU; etc.). At least a portion of the unsimplified data may be generated by the components 220. The unsimplified data generated by the components 220 may represent the output of algorithms managing the components 220 (e.g., lane line detection for lane keeping assist ADAS, relative wheel motion for traction control systems, etc.), or may represent actuation of the components 220 (e.g., engine RPM, blower fan speed, etc.).
[0035] Unsimplified data can be all or a subset of the data generated on vehicle 105. For example, unsimplified data can be data generated on vehicle 105 that relates to a specific ADAS feature or multiple specific ADAS features. Advanced Driver Assistance Systems (ADAS) are electronic technologies that assist drivers in performing driving and parking functions. Examples of ADAS include forward proximity detection, lane departure detection, blind spot detection, adaptive cruise control, and lane keeping assist systems. In this example, unsimplified data can include sensor data input to the ADAS algorithm, the output of the ADAS algorithm, data generated by components 220 actuated by the ADAS algorithm, and other sensor data describing the environment around vehicle 105 (even if not input to the ADAS algorithm). For another example, unsimplified data can be all the data generated on vehicle 105 by sensor 215.
[0036] Unsimplified data is time-series data. As is generally understood, and for the purposes of this disclosure, time-series data is the value of one or more variables at discrete, continuous points in time. Unsimplified data can be generated at regular intervals (i.e., the times in the time series are evenly spaced) for example, based on the physical characteristics of a sensor or component (e.g., the frame rate of a camera). Alternatively or additionally, for example, when actuation of a component occurs, unsimplified data can be generated at non-uniform intervals (i.e., the time intervals in the time series are spaced at different lengths).
[0037] Computer 205 is programmed to receive unsimplified data. For example, sensors and components 220 can transmit unsimplified data (to computer 205 and / or other components 220) via onboard network 210, and computer 205 can receive unsimplified data via onboard network 210. Sensors 215 and components 220 can transmit unsimplified data when they generate it (i.e., at each time point in the time series).
[0038] The unsimplified data has multiple unsimplified dimensions at each time point in the time series. For the purposes of this disclosure, the dimension of data is defined as a variable that continues to exist in the data over time and whose value can change over time. Different dimensions can follow different time series. The term "unsimplified dimension" refers to the dimension of unsimplified data. For example, image data may have dimensions for each pixel in an image frame. A climate control system may have dimensions for airflow direction (e.g., to the footrest, to the dashboard, to the windshield, etc.), dimensions for the blower fan speed, dimensions for the desired temperature, etc. Computer 205 may track the kinematic state of vehicle 105 as a vector based on data from GPS, IMU, etc. Each value in the vector is a dimension (e.g., three spatial dimensions of position, three angular dimensions of orientation, dimensions for linear and angular velocities, etc.).
[0039] Computer 205 is programmed to perform dimensionality reduction (as described below) on unsimplified data to produce simplified data. For the purposes of this disclosure, "simplified data" is defined as data resulting from applying dimensionality reduction to unsimplified data. The simplified data has multiple simplified dimensions at each time point in the time series. The term "simplified dimension" refers to the dimension of the simplified data. The number of simplified dimensions is less than the number of unsimplified dimensions. Therefore, the simplified data is less than the unsimplified data at each time point in the time series. The values of the simplified dimensions can be generated by a dimensionality reduction algorithm (as described below). The values of the simplified dimensions may not exist in the unsimplified dimensions. In other words, the simplified dimensions are not a subset of the unsimplified dimensions.
[0040] Computer 205 is programmed to perform dimensionality reduction on unsimplified data to produce simplified data. The term "dimensionality reduction," used in its conventional mathematical sense, refers to the transformation of data from a higher-dimensional space to a lower-dimensional space, such that the lower-dimensional representation retains some meaningful properties of the original data. Dimensionality reduction can be performed over time... t Generate or from t – Δ t arrive t The unsimplified data generated within a specific time period is used as input. Dimensionality reduction generates time-dependent... t Simplified data is used as output. In time... t The value of each of the simplified dimensions can have contributions from multiple or all unsimplified dimensions (e.g., it can be a function of multiple or all unsimplified dimensions). Each of the unsimplified dimensions can contribute to at least one of the simplified dimensions (e.g., contribute to multiple simplified dimensions).
[0041] Computer 205 can perform dimensionality reduction by executing algorithms. Algorithms can be selected to capture the effect of the unsimplified dimension within the simplified data, while still producing simplified data that is significantly smaller than the unsimplified data. For example, the algorithm can be Principal Component Analysis (PCA), machine learning algorithms (such as autoencoders), manifold learning, curve fitting, or any other algorithm suitable for dimensionality reduction. PCA is a linear dimensionality reduction technique that represents unsimplified data as a sequence of unit vectors, where each unit vector is orthogonal to all previous unit vectors. An autoencoder is an artificial neural network trained to learn efficient encodings of unlabeled data. The learned encodings generate embeddings, which can be multimodal (i.e., based on different types of data, such as text, audio, images, and other types of sensor data). Manifold learning (also known as nonlinear dimensionality reduction) is the transformation of higher-dimensional data onto a lower-dimensional underlying manifold. Curve fitting is the process of constructing a curve or mathematical function that best fits a set of data. For curve fitting, the simplified dimension can be the polynomial coefficients that define the curve. Curve fitting can be based on known statistical aggregation techniques used to generate the coefficients.
[0042] A reduced dimension is a function of the corresponding unreduced dimensions. In other words, each reduced dimension is a function of multiple (e.g., all) unreduced dimensions. The function is defined by the operation of the algorithm used for dimensionality reduction. For example, a reduced dimension could be a latent space representation derived from the unreduced dimensions, where it is derived according to the algorithm used for dimensionality reduction. A latent space representation is a representation of the data in a latent space. For the purposes of this disclosure, the term "latent space" has its conventional machine learning meaning regarding the embeddings of a set of items within a manifold, where items similar to each other are located closer to one another. For example, a latent space representation could be a latent embedding generated by an autoencoder or a latent manifold generated by manifold learning.
[0043] Computer 205 is programmed to transmit simplified data to server 110. For example, computer 205 may transmit simplified data to server 110 immediately or periodically over short cycles. If vehicle 105 is within range of Wi-Fi network 120, computer 205 can transmit simplified data via Wi-Fi network 120, and if vehicle 105 is not within range of Wi-Fi network 120, computer 205 can transmit simplified data via cellular network 115.
[0044] Server 110 can receive and store simplified data transmitted from vehicle 105. Server 110 can be programmed to evaluate the simplified data to determine whether to request unsimplified data. For example, server 110 can determine how much data similar to the simplified data has already been collected from other vehicles 105, and if the amount of similar data is low, request simplified data. Upon determining that unsimplified data should be collected, server 110 transmits an instruction in response to the simplified data to vehicle 105 via public network 125.
[0045] Computer 205 transmits unsimplified data to server 110 based on instructions received from server 110. Computer 205 is programmed to transmit unsimplified data to server 110 after receiving an instruction from server 110 in response to simplified data. Transmitting unsimplified data to server 110 may depend on satisfying one or more conditions on vehicle 105, as described below. Computer 205 may be programmed to avoid transmitting unsimplified data to server 110 in response to not receiving an instruction in response to simplified data from server 110 within a time limit. The time limit may be preset in the memory of computer 205 and may be selected to be longer than the typical time for transmitting simplified data to server 110, for server 110 to evaluate simplified data, and for instructions to be transmitted from server 110 to vehicle 105. Computer 205 may also be programmed to delete simplified data and / or unsimplified data in response to not receiving an instruction in response to simplified data from server 110 within the time limit.
[0046] In general, computer 205 is programmed to evaluate whether one or more conditions are met to determine whether to delete unsimplified data or transmit the unsimplified data to server 110; if transmission is made, whether to transmit immediately via cellular network 115 or wait until Wi-Fi network 120 is within range; and if waiting, whether to overwrite data in a buffer with the unsimplified data or delete the unsimplified data. Data already in the buffer may be previous unsimplified data replaced with new unsimplified data.
[0047] Computer 205 can be programmed to receive conditions from server 110. Conditions can be selected to indicate that vehicle 105 has experienced an event of interest or to simplify data reflecting anomalies. Server 110 can be programmed to transmit conditions to multiple vehicles 105, for example, in response to the creation of new conditions. Upon receiving a condition, computer 205 can store it in its memory. Receiving conditions from server 110 means that the conditions stored in computer 205 on vehicle 105 can be updated or changed over time.
[0048] Each condition may include the occurrence of a pre-specified event or at least one of a pre-specified set of events. The event may be something on vehicle 105 or an environmental condition near vehicle 105. For example, an event may include the actuation of one or more components 220 (e.g., ADAS feature engagement or disengagement) or the detection of something affecting vehicle 105 (e.g., a change in the kinematic state of vehicle 105 exceeding a threshold). The event may include a metric for simplifying data exceeding a threshold. This metric may be selected to indicate that unsimplified data is of interest. Alternatively, the metric may be selected to indicate the difficulty of transmitting simplified data, such as file size. For example, a condition may include one or more events occurring and a file size higher or lower than a threshold.
[0049] The condition may be a first condition, a second condition, or an overwrite condition. The term "first condition" will be used herein to refer to a condition for immediately transmitting unsimplified data instead of deleting the unsimplified data or waiting for the Wi-Fi network 120 to be within range of the vehicle 105. The term "second condition" will be used herein to refer to a condition for transmitting unsimplified data via the Wi-Fi network 120 instead of deleting the unsimplified data. A second condition may correspond to a corresponding first condition. For example, at least one of the second conditions may include the same pre-specified event as the corresponding first condition, but may also include a maximum value regarding the file size, or a maximum value regarding the file size that is smaller than the corresponding first condition. Alternatively or additionally, at least one of the second conditions may include any pre-specified event not included in the first condition. (Overwrite conditions are described below.) Computer 205 is programmed to transmit unsimplified data to server 110 in response to either a first or a second condition being met. Computer 205 may instruct transceiver 225 to transmit the unsimplified data via cellular network 115 or Wi-Fi network 120, as described below. Computer 205 may store the unsimplified data in a buffer in its memory for later transmission, as described below. Computer 205 is also programmed to delete the unsimplified data in response to neither the first nor the second condition being met.
[0050] Computer 205 is programmed to immediately transmit unsimplified data to server 110 in response to a first condition being met. If vehicle 105 is within range of Wi-Fi network 120, computer 205 can transmit unsimplified data via Wi-Fi network 120; if vehicle 105 is not within range of Wi-Fi network 120, computer 205 can transmit unsimplified data via cellular network 115. Computer 205 is programmed to transmit unsimplified data to server 110 via Wi-Fi network 120 in response to a first condition being met and vehicle 105 being within range of Wi-Fi network 120. Computer 205 is programmed to transmit unsimplified data to server 110 via cellular network 115 in response to a first condition being met and vehicle 105 being not within range of Wi-Fi network 120. In other words, for the highest priority of simplified data, computer 205 can utilize the higher bandwidth of Wi-Fi network 120 (if available), but if unavailable, it uses cellular network 115 to ensure that unsimplified data reaches server 110 quickly.
[0051] Computer 205 can be programmed to transmit unsimplified data to server 110 via Wi-Fi network 120 once vehicle 105 is within range of Wi-Fi network 120, in response to the satisfaction of a second condition (and the failure to satisfy the first condition). Wi-Fi network 120 can be used for unsimplified data that is useful but less urgent or important than the unsimplified data for which the first condition is satisfied. Computer 205 can store the unsimplified data in a buffer in memory until vehicle 105 is within range of Wi-Fi network 120.
[0052] In response to the second condition being met (and vehicle 105 being outside the range of Wi-Fi network 120), computer 205 may store unsimplified data in a buffer (in response to the buffer having capacity for unsimplified data), overwrite the buffer with the unsimplified data (in response to the simplified data satisfying the overwrite condition), or delete the unsimplified data (otherwise). Thus, computer 205 can store as much unsimplified data as possible for later transmission while still prioritizing the most useful unsimplified data. Computer 205 can be programmed to store unsimplified data in a buffer in response to the second condition being met and the buffer having capacity for unsimplified data. Computer 205 can be programmed to overwrite the buffer with unsimplified data in response to the second condition being met and the buffer lacking capacity for unsimplified data, in response to the simplified data satisfying the overwrite condition (as described below). The data being overwritten may be previous unsimplified data replaced with new unsimplified data. Computer 205 can be programmed to delete unsimplified data and retain the data in the buffer in response to the second condition being met and the buffer lacking capacity for unsimplified data, in response to the simplified data not satisfying the overwrite condition.
[0053] The overwrite condition can be a metric calculated based on the simplified data that exceeds a metric calculated based on the data in the buffer (e.g., calculated based on previously simplified data against which the unsimplified data will be overwritten). This metric can be selected to measure how atypical or unusual the simplified data is. For example, computer 205 can calculate a mean or other statistical measure as a metric based on the simplified data, and then calculate the difference between the mean or other statistic and a pre-stored value. The pre-stored value can be the mean or other statistic from a large sample of the simplified data (e.g., large enough to capture typical behavior). Computer 205 can perform the same calculation on the data in the buffer. If the simplified data has a large difference, computer 205 can overwrite the buffer, and if the data in the buffer has a large difference, computer 205 can delete the simplified data and retain the data in the buffer.
[0054] Figure 3This is a flowchart illustrating an example process 300 for selecting and transmitting data from vehicle 105 to server 110. The memory of computer 205 stores executable instructions for performing the steps of process 300, and / or can be programmed using structures such as those mentioned above. As a general overview of process 300, computer 205 receives conditions from server 110, receives unsimplified data, performs dimensionality reduction, and transmits simplified data to server 110. Depending on the instructions received from server 110, computer 205 either retains the unsimplified data for eventual transmission to server 110 or avoids transmitting unsimplified data to server 110. In response to a first condition being met, computer 205 immediately transmits the unsimplified data to server 110. Otherwise, computer 205 evaluates a second condition. In response to the second condition not being met, computer 205 deletes the unsimplified data. In response to the second condition being met and the buffer having capacity, computer 205 stores the unsimplified data in the buffer. If the buffer is out of capacity, computer 205 overwrites the buffer with unsimplified data in response to the overwrite condition being met, and deletes the unsimplified data in response to the overwrite condition not being met. In response to vehicle 105 being within range of Wi-Fi network 120, computer 205 transmits the unsimplified data in the buffer to server 110.
[0055] Process 300 begins in box 305, where computer 205 receives conditions (e.g., first condition, second condition, and overwrite condition) from server 110, as described above.
[0056] Next, in box 310, computer 205 receives unsimplified data via airborne network 210, as described above.
[0057] Next, in box 315, computer 205 performs dimensionality reduction on the unsimplified data from box 310 to produce simplified data, as described above.
[0058] Next, in box 320, computer 205 will transfer simplified data to server 110, as described above.
[0059] Next, in decision box 325, computer 205 determines whether it has received an instruction in response to simplified data from server 110 within the time limit, as described above. If an instruction in response to simplified data is received from server 110, process 300 proceeds to decision box 335. If an instruction in response to simplified data is not received from server 110 within the time limit, process 300 proceeds to box 330.
[0060] In box 330, computer 205 avoids transmitting unsimplified data to server 110. After box 330, process 300 ends.
[0061] In decision box 335, computer 205 determines whether a first condition is met, as described above. In response to the first condition being met, process 300 proceeds to box 340. In response to the first condition not being met, process 300 proceeds to decision box 345.
[0062] In box 340, if vehicle 105 is within range of Wi-Fi network 120, computer 205 transmits the unsimplified data from box 310 to server 110 via Wi-Fi network 120; or if vehicle 105 is not within range of Wi-Fi network 120, computer 205 transmits the unsimplified data from box 310 to server 110 via cellular network 115, as described above. After box 340, process 300 proceeds to decision box 380.
[0063] In decision box 345, computer 205 determines whether the second condition is met, as described above. In response to the second condition being met, process 300 proceeds to decision box 355. In response to the second condition not being met, process 300 proceeds to box 350.
[0064] In box 350, computer 205 removes the unsimplified data from box 310, as described above. After box 350, process 300 proceeds to decision box 380.
[0065] In decision box 355, computer 205 determines whether the buffer has capacity for the unsimplified data from box 310, as described above. If the buffer has capacity for the simplified data, process 300 proceeds to box 360. If the buffer lacks capacity for the simplified data, process 300 proceeds to decision box 365.
[0066] In box 360, computer 205 stores the unsimplified data from box 310 in a buffer, as described above. After box 360, process 300 proceeds to decision box 380.
[0067] In decision box 365, computer 205 determines whether the overwrite condition is met, as described above. In response to the simplified data from box 315 meeting the overwrite condition, process 300 proceeds to box 370. In response to the simplified data not meeting the overwrite condition, process 300 proceeds to box 375.
[0068] In box 370, computer 205 overwrites the buffer with unsimplified data from box 310, as described above. After box 370, process 300 proceeds to decision box 380.
[0069] In box 375, computer 205 removes the unsimplified data from box 310, as described above. After box 375, process 300 proceeds to decision box 380.
[0070] In decision box 380, computer 205 determines whether vehicle 105 is within range of Wi-Fi network 120, as described above. In response to vehicle 105 being within range of Wi-Fi network 120, process 300 proceeds to box 385. In response to vehicle 105 being outside range of Wi-Fi network 120, computer 205 avoids sending data in the buffer, and process 300 terminates.
[0071] In box 385, computer 205 transmits data stored in a buffer to server 110. The data in the buffer may include unsimplified data from box 310 and / or unsimplified data stored in the buffer during the previous execution of process 300. After box 385, process 300 ends.
[0072] Generally, the described computing system and / or device may employ any of a variety of computer operating systems, including, but not limited to, the following versions and / or types: Ford Sync® applications; AppLink / Smart Device Connectivity Middleware; Microsoft Automotive® operating system; Microsoft Windows® operating system; Unix operating system (e.g., Solaris® operating system released by Oracle Corporation of Redwood Coast, California); AIX UNIX operating system released by International Business Machines Corporation of Armonk, New York; Linux operating system; Mac OSX and iOS operating systems released by Apple Inc. of Cupertino, California; BlackBerry operating system released by BlackBerry Inc. of Waterloo, Canada; and Android operating system developed by Google and the Open Handset Alliance; or the QNX® in-vehicle infotainment platform provided by QNX Software Systems, Inc. Examples of computing devices include, but are not limited to, in-vehicle computers, computer workstations, servers, desktop computers, laptops, notebook computers, or handheld computers, or any other computing system and / or device.
[0073] Computing devices typically include computer-executable instructions, which can be executed by one or more computing devices such as those listed above. Computer-executable instructions can be compiled or interpreted from computer programs created using a variety of programming languages and / or technologies, which, individually or in combination, include, but are not limited to, Java™, C, C++, Matlab, Simulink, Stateflow, Visual Basic, JavaScript, Python, Perl, HTML, etc. Some of these applications can be compiled and executed on virtual machines such as the Java Virtual Machine, the Dalvik Virtual Machine, etc. Generally, a processor (e.g., a microprocessor) receives instructions (e.g., from memory, computer-readable media, etc.) and executes those instructions to perform one or more processes, including one or more processes described herein. Such instructions and other data can be stored and transferred using a variety of computer-readable media. Files in a computing device are typically collections of data stored on computer-readable media such as storage media, random access memory, etc.
[0074] Computer-readable media (also known as processor-readable media) include any non-transitory (e.g., tangible) medium that contributes to providing data (e.g., instructions) that can be read by a computer (e.g., by the computer's processor). Such media can take many forms, including but not limited to non-volatile and volatile media. Instructions can be transmitted via one or more transmission media, including optical fibers, wires, wireless communications, and internals that constitute a system bus coupled to the computer's processor. Common forms of computer-readable media include, for example, RAM, PROM, EPROM, flash EEPROM, any other memory chip or magnetic tape, or any other medium from which a computer can read.
[0075] The databases, data repositories, or other data stores described herein can include various mechanisms for storing, accessing / retrieving various types of data, including hierarchical databases, file sets in file systems, application databases in proprietary formats, relational database management systems (RDBMS), non-relational databases (NoSQL), graph databases (GDB), and so on. Each such data store is typically contained within a computing device employing a computer operating system such as those mentioned above, and is accessed via a network in any one or more of various ways. File systems can be accessed from the computer operating system and can include files stored in various formats. In addition to languages used to create, store, edit, and execute the stored programs (such as PL / SQL as described above), RDBMS typically employs Structured Query Language (SQL).
[0076] In some examples, system elements may be implemented as computer-readable instructions (e.g., software) stored on one or more computing devices (e.g., servers, personal computers, etc.) and on computer-readable media (e.g., disks, storage, etc.) associated therewith. Computer program products may include such instructions stored on computer-readable media for performing the functions described herein.
[0077] In the accompanying drawings, the same reference numerals indicate the same elements. Furthermore, some or all of these elements may be changed. Regarding the media, processes, systems, methods, inspirations, etc., described herein, it should be understood that although the steps of such processes, etc., are described as occurring in a certain ordered order, such processes can be practiced by performing the steps in a different order than that described herein. It should also be understood that some steps may be performed simultaneously, other steps may be added, or some steps described herein may be omitted.
[0078] This disclosure has been described in an illustrative manner, and it should be understood that the terminology used is intended to describe the nature of the words, not to be restrictive. The adjectives “first” and “second” are used throughout this document as identifiers and are not intended to indicate importance, order, or quantity. The use of phrases such as “in response to,” “when determining,” or “when receiving,” indicates a causal relationship, not just a temporal one. In light of the foregoing teachings, many modifications and variations of this disclosure are possible, and this disclosure may be practiced in ways other than those specifically described.
[0079] According to the present invention, a computer is provided having a processor and a memory, the memory storing instructions executable by the processor to: perform dimensionality reduction on unsimplified data to produce simplified data, the unsimplified data being time-series data generated on a vehicle, the unsimplified data having multiple unsimplified dimensions at each time point in the time series, the simplified data having multiple simplified dimensions at each time point in the time series, the number of simplified dimensions being less than the number of unsimplified dimensions; transmit the simplified data to a server remote from the vehicle; and transmit the unsimplified data to the server upon receiving an instruction from the server in response to the simplified data.
[0080] According to an embodiment, the instructions further include instructions for performing the following: in response to not receiving the instructions in response to the simplified data from the server within a time limit, avoiding transmitting the unsimplified data to the server.
[0081] According to an embodiment, the simplified dimension is a function of the corresponding of the plurality of unsimplified dimensions.
[0082] According to an embodiment, the simplified dimension is a latent space representation derived from the unsimplified dimension.
[0083] According to an embodiment, transmitting the unsimplified data to the server depends on meeting certain conditions on the vehicle.
[0084] According to an embodiment, the instructions further include instructions to: in response to the condition being met and the vehicle being outside the range of the Wi-Fi network, transmit the unsimplified data to the server via a cellular network.
[0085] According to an embodiment, the condition is a first condition, and the instructions further include instructions to perform the following: in response to satisfying a second condition on the vehicle, once the vehicle is within range of the Wi-Fi network, transmit the unsimplified data to the server via the Wi-Fi network.
[0086] According to an embodiment, the instructions further include instructions for performing the following: deleting the unsimplified data in response to the failure to satisfy both the first condition and the second condition.
[0087] According to an embodiment, the condition is a first condition, and the instruction further includes instructions for performing the following: in response to satisfying a second condition and the buffer having capacity for the unsimplified data, storing the unsimplified data in the buffer.
[0088] According to an embodiment, the instructions further include instructions for performing the following: in response to a second condition being met and the buffer lacking capacity for the unsimplified data, overwriting the buffer with the unsimplified data in response to the simplified data satisfying an overwrite condition.
[0089] According to an embodiment, the overwrite condition is that the metric calculated from the simplified data exceeds the metric calculated from the data in the buffer.
[0090] According to an embodiment, the instructions further include instructions for receiving the conditions from the server.
[0091] According to an embodiment, at least a portion of the unsimplified data is generated by the vehicle's sensors.
[0092] According to an embodiment, the vehicle includes the computer.
[0093] According to the present invention, a method includes: performing dimensionality reduction on unsimplified data to produce simplified data, said unsimplified data being time-series data generated on a vehicle, said unsimplified data having multiple unsimplified dimensions at each time point in the time series, said simplified data having multiple simplified dimensions at each time point in the time series, the number of simplified dimensions being less than the number of unsimplified dimensions; transmitting said simplified data to a server remote from said vehicle; and transmitting said unsimplified data to said server upon receiving an instruction from said server in response to said simplified data.
[0094] In one aspect of the invention, the simplified dimension is a function of the corresponding of the plurality of unsimplified dimensions.
[0095] In one aspect of the invention, transmitting the unsimplified data to the server depends on satisfying conditions on the vehicle.
[0096] In one aspect of the invention, the method includes transmitting the unsimplified data to the server via a cellular network in response to the condition being met and the vehicle being outside the range of a Wi-Fi network.
[0097] In one aspect of the invention, the condition is a first condition, and the method further includes, in response to a second condition being met, transmitting the unsimplified data to the server via the Wi-Fi network once the vehicle is within range of the Wi-Fi network.
[0098] In one aspect of the invention, the condition is a first condition, and the method further includes storing the unsimplified data in the buffer in response to a second condition being met and the buffer having capacity for the simplified data.
Claims
1. A method comprising: Dimensionality reduction is performed on unsimplified data to produce simplified data, wherein the unsimplified data is time-series data generated on vehicles, wherein the unsimplified data has multiple unsimplified dimensions at each time point in the time series, and the simplified data has multiple simplified dimensions at each time point in the time series, wherein the number of simplified dimensions is less than the number of unsimplified dimensions; The simplified data is transmitted to a server located away from the vehicle; as well as Upon receiving an instruction from the server in response to the simplified data, the unsimplified data is transmitted to the server.
2. The method of claim 1, further comprising avoiding transmitting the unsimplified data to the server in response to not receiving the instruction responding to the simplified data from the server within a time limit.
3. The method of claim 1, wherein the simplified dimension is a function of the corresponding of the plurality of unsimplified dimensions.
4. The method of claim 1, wherein the simplified dimension is a latent space representation derived from the unsimplified dimension.
5. The method of claim 1, wherein transmitting the unsimplified data to the server depends on satisfying conditions on the vehicle.
6. The method of claim 5, further comprising, in response to the condition being met and the vehicle being outside the range of a Wi-Fi network, transmitting the unsimplified data to the server via a cellular network.
7. The method of claim 6, wherein the condition is a first condition, and the method further comprises, in response to satisfying a second condition on the vehicle, transmitting the unsimplified data to the server via the Wi-Fi network once the vehicle is within range of the Wi-Fi network.
8. The method of claim 7, further comprising deleting the unsimplified data in response to neither the first condition nor the second condition being satisfied.
9. The method of claim 6, wherein the condition is a first condition, and the method further comprises storing the unsimplified data in the buffer in response to a second condition being satisfied and the buffer having capacity for the unsimplified data.
10. The method of claim 9, further comprising, in response to a second condition being met and the buffer lacking capacity for the unsimplified data, overwriting the buffer with the unsimplified data in response to the simplified data satisfying an overwrite condition.
11. The method of claim 10, wherein the overwrite condition is that a metric calculated from the simplified data exceeds a metric calculated from the data in the buffer.
12. The method of claim 5, further comprising receiving the conditions from the server.
13. The method of claim 1, wherein at least a portion of the unsimplified data is generated by the vehicle's sensors.
14. The method of claim 1, wherein the vehicle includes the computer.
15. A computer comprising: processor; And a memory that stores instructions that can be executed by the processor to perform the method as described in any one of claims 1–14.