EFFICIENT REMOTE DATA COLLECTION FROM A VEHICLE

By using dimensionality reduction on vehicle data, the method optimizes data transmission by reducing the volume of data sent while ensuring comprehensive vehicle data representation, addressing bandwidth limitations in wireless vehicle data collection.

DE102025149267A1Pending Publication Date: 2026-06-11FORD GLOBAL TECH LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE102025149267
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-12-09
Filing Date
2025-11-26
Publication Date
2026-06-11

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A computer contains a processor and memory. The memory stores instructions that the processor can execute to perform dimensionality reduction on unreduced data, to generate reduced data, to transfer the reduced data to a server, and, upon receiving an instruction from the server in response to the reduced data, to transfer the unreduced data back to the server. The unreduced data is time-series data generated on board a vehicle. The unreduced data has a multitude of unreduced dimensions at any given time in the time series. The reduced data has a multitude of reduced dimensions at any given time in the time series. The number of reduced dimensions is less than the number of unreduced dimensions. The server is located away from the vehicle.
Need to check novelty before this filing date? Find Prior Art

Description

AREA OF TECHNOLOGY

[0001] This disclosure concerns efficient remote data collection from vehicles. GENERAL STATE OF THE ART

[0002] Modern vehicles often incorporate a variety of sensors and components that generate data. These sensors can provide information about vehicle operation, such as wheel speed, wheel alignment, steering angle, steering wheel angle, steering column torque, gear changes, pedal position, and engine and transmission data (e.g., temperature, fuel consumption, etc.). For example, the sensors might include torque sensors, position sensors, temperature sensors, and so on. The sensors can also detect the vehicle's location and / or orientation. Examples of such sensors include: global positioning system (GPS) sensors; accelerometers, such as piezoelectric or microelectromechanical systems (MEMS); gyroscopes, such as reversing, ring laser, or fiber optic gyroscopes; inertial measurement units (IMUs); and magnetometers.The sensors can detect the outside world, for example, objects and / or features of the vehicle's environment, such as other vehicles, lane markings, traffic lights and / or signs, road users, etc. For example, the sensors can include radar sensors, laser rangefinders, light detection and ranging (lidar) devices, and image processing sensors such as cameras. Other vehicle components include components of a powertrain system, a steering system, a suspension system, and an advanced driver assistance system (ADAS). SUMMARY

[0003] The task of capturing data generated on board vehicles faces specific challenges. Given the number of sensors and components on board a modern vehicle, the amount of data generated is quite large. On the other hand, the bandwidth for transmitting data away from a vehicle is often severely limited, as transmission is generally wireless. Furthermore, since vehicles are necessarily mobile, the available bandwidth can fluctuate unpredictably over time as the vehicle moves through different types of networks.

[0004] The system described herein provides a resource-efficient way to acquire vehicle data. An onboard computer is programmed to perform dimensionality reduction on unreduced data to produce reduced data. The term "unreduced data" refers to data generated onboard the vehicle before it undergoes dimensionality reduction, and the term "reduced data" refers to the output of the dimensionality reduction. The unreduced data is time-series data that, at any given time point in the time series, has a multitude of dimensions (referred to as "unreduced dimensions"). The reduced data also has a multitude of dimensions at any given time point in the time series (referred to as "reduced dimensions").As a result of dimensionality reduction, the number of reduced dimensions is smaller than the number of unreduced dimensions. The computer is further programmed to transmit the reduced data to a server located away from the vehicle, and upon receiving an instruction from the server in response to the reduced data, to transmit the unreduced data back to the server.

[0005] Using dimensionality reduction reduces the amount of data that needs to be transmitted from the vehicle to the server. Furthermore, dimensionality reduction offers several advantages over methods such as sampling the unreduced data over time or sampling a subset of the unreduced dimensions. The reduced data generated by dimensionality reduction can provide a more comprehensive measure of what the vehicle is experiencing, which can facilitate the selection of more relevant unreduced data. Unlike sampling over time, the reduced data can provide a more granular measure of changes over time. And unlike sampling a subset of dimensions, the reduced data can incorporate the contributions of all unreduced dimensions, rather than just some, while still significantly reducing the amount of data.Using this condition can determine when the data is most likely to be of interest to the server.

[0006] A computer contains a processor and memory. The memory stores instructions that the processor can execute to perform dimensionality reduction on unreduced data, to generate reduced data, to transfer the reduced data to a server, and, upon receiving an instruction from the server in response to the reduced data, to transfer the unreduced data back to the server. The unreduced data is time-series data generated on board a vehicle. The unreduced data has a multitude of unreduced dimensions at any given time in the time series. The reduced data has a multitude of reduced dimensions at any given time in the time series. The number of reduced dimensions is less than the number of unreduced dimensions. The server is located away from the vehicle.

[0007] In one example, the instructions may also include instructions to refrain from transmitting the unreduced data to the server if the instruction is not received by the server in response to the reduced data within a time limit.

[0008] In one example, the reduced dimensions can be respective functions of several of the unreduced dimensions.

[0009] In one example, the reduced dimensions could be a latent spatial representation derived from the unreduced dimensions.

[0010] In one example, transmitting the unreduced data to the server might depend on a condition being met on board the vehicle. In another example, the instructions might further include instructions to transmit the unreduced data to the server via a cellular network in response to the condition being met and the vehicle being out of range of a Wi-Fi network. In yet another example, the condition might be a first condition, and the instructions might further include instructions to transmit the unreduced data to the server via the Wi-Fi network in response to a second condition being met on board the vehicle as soon as the vehicle is within range of the Wi-Fi network.In yet another example, the instructions can further include instructions to delete the unreduced data in response to the first condition not being met and the second condition not being met.

[0011] In other, further examples, the condition can be a first condition, and the instructions can include further instructions to store the unreduced data in the buffer in response to a second condition being met and a buffer having the capacity for the unreduced data. In yet another example, the instructions can include further instructions to overwrite the buffer with unreduced data in response to a second condition being met and the buffer lacking the capacity for the unreduced data, in response to the reduced data meeting an overwrite condition. In a further example, the overwrite condition can be that a metric calculated from the reduced data exceeds the metric calculated from data in the buffer.

[0012] In another further example, instructions can also include instructions for receiving the condition from the server.

[0013] In one example, at least one section of the unreduced data can be generated by the vehicle's sensors.

[0014] In one example, the vehicle could contain the computer.

[0015] One procedure involves performing dimensionality reduction on unreduced data to generate reduced data, transmitting the reduced data to a server, and, upon receiving an instruction from the server in response to the reduced data, transmitting the unreduced data back to the server. The unreduced data is time-series data generated on board a vehicle. The unreduced data has a multitude of unreduced dimensions at any given time point in the time series. The reduced data has a multitude of reduced dimensions at any given time point in the time series. The number of reduced dimensions is less than the number of unreduced dimensions. The server is located remotely from the vehicle.

[0016] In one example, the reduced dimensions can be respective functions of several of the unreduced dimensions.

[0017] In one example, transmitting the unreduced data to the server may depend on a condition being met on board the vehicle. In another example, the procedure may further include transmitting the unreduced data to the server via a cellular network in response to the condition being met and the vehicle being out of range of a Wi-Fi network. In yet another example, the condition may be a first condition, and the procedure may further include transmitting the unreduced data to the server via the Wi-Fi network in response to a second condition being met, once the vehicle is within range of the Wi-Fi network.

[0018] In other, further examples, the condition can be a first condition; the procedure can further involve, in response to a second condition being met and a buffer having the capacity for the unreduced data, storing the reduced data in the buffer. BRIEF DESCRIPTION OF THE DRAWINGS Fig. Figure 1 is a diagram of an exemplary communication infrastructure for a vehicle fleet. Fig. Figure 2 is a block diagram of an example vehicle from the fleet. Fig. Figure 3 is a flowchart of an exemplary process for selecting data for transmission from the vehicle to a server of the communication infrastructure. DETAILED DESCRIPTION

[0019] Referring to the figures, where identical reference symbols denote identical parts in the different views, a computer 205 comprises a processor and memory. The memory stores instructions executable by the processor to perform dimensionality reduction on unreduced data, to generate reduced data, to transmit the reduced data to a server 110, and, upon receiving an instruction from the server 110 in response to the reduced data, to transmit the unreduced data back to the server 110. The unreduced data is time-series data generated on board the vehicle 105. The unreduced data has a multitude of unreduced dimensions at any given time in the time series. The reduced data has a multitude of reduced dimensions at any given time in the time series.The number of reduced dimensions is less than the number of unreduced dimensions. Server 110 is away from vehicle 105.

[0020] With reference to Fig. 1. A multitude of vehicles 105 can be in communication with the server 110 at any given time. For example, the multitude of vehicles 105 may be vehicles from a common manufacturer and / or may be registered for a common online service. Alternatively, the multitude of vehicles 105 may be part of a shared fleet (e.g., of ride-hailing vehicles). The vehicles 105 may be equipped to communicate with the server 110 via a connection through a mobile network 115 and / or a Wi-Fi network 120.

[0021] Server 110 is a microprocessor-based computing device, such as a generic computing device, that includes a processor and memory. The memory of Server 110 may include media for storing instructions executable by the processor, as well as for electronically storing data and / or databases, and / or Server 110 may include structures, such as those mentioned above, through which programming is provided. Server 110 may consist of several interconnected computers. Server 110 may be equipped to communicate with vehicles 105 via a public network 125.

[0022] The 115 mobile network is a wireless broadband communication network for mobile devices and other terminal equipment. The 115 mobile network can be any wireless network that conforms to one or more standards published by the 3rd Generation Partnership Project (3GPP) (e.g., 4G, Long-Term Evolution (LTE), 5G, 6G, etc.). The 115 mobile network can be any of the many mobile networks within whose range the 105 vehicle can travel. The 105 vehicle can be within the range of the 115 mobile network at most of the locations it travels to.

[0023] The Wi-Fi network 120 is a wireless communication network for mobile devices and other terminal equipment. The Wi-Fi network 120 is a local area network with a shorter range than the cellular network 115. The Wi-Fi network 120 can be any wireless network that conforms to the IEEE 802.11 standard family. The vehicle 105 can be located within the range of the Wi-Fi network 120 at certain locations to which the vehicle 105 travels (e.g., the driver's home or workplace). The Wi-Fi network 120 can be any of a variety of Wi-Fi networks within the range of the vehicle 105. The Wi-Fi network 120 can provide higher bandwidth for data transmission than the cellular network 115, and the cellular network 115 can provide a greater aggregate range than the Wi-Fi network 120.

[0024] The public network 125 represents one or more mechanisms by which the mobile network 115 and the Wi-Fi network 120 are communicatively connected to the server 110. Accordingly, the 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 topologies if multiple communication mechanisms are used). The public network 125 can include the Internet as well as facilities owned by an Internet service provider (ISP) for connecting to the Internet.

[0025] With reference to Fig. 2. Any vehicle 105 can be any passenger car or commercial vehicle, such as a car, truck, off-road vehicle, crossover, van, minivan, taxi, bus, etc. The vehicle 105 can include the computer 205, an on-board network 210, sensors 215, components 220, and a transceiver 225.

[0026] The Computer 205 is a microprocessor-based computing device, such as a generic computing device, which includes: a processor and memory, electronic control or the like, a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a combination of the foregoing, etc. Typically, a hardware description language, such as VHDL (very high speed integrated circuit hardware description language), is used in the electronic design to describe digital and mixed-signal systems, such as FPGAs and ASICs.For example, an ASIC is manufactured based on VHDL programming, which is provided prior to manufacturing, whereas logical components within an FPGA can be configured based on VHDL programming (e.g., stored in memory electrically connected to the FPGA circuit). The Computer 205 can thus include a processor, memory, and so on. The memory of the Computer 205 can include media for storing instructions executable by the processor, as well as for electronically storing data and / or databases, and / or the Computer 205 can include structures such as those mentioned above, through which programming is provided. The Computer 205 can consist of multiple interconnected computers.

[0027] The computer 205 can transmit and receive data via the onboard network 210. The onboard network 210 can be a Controller Area Network (CAN) bus, Ethernet, Wi-Fi, a Local Interconnect Network (LIN), an On-Board Diagnostics (OBD-II) port, and / or any other wired or wireless communication network. The computer 205 can communicate with the sensors 215, the components 220, and the transceiver 225 via the onboard network 210.

[0028] The sensors 215 can provide data about the operation of the vehicle 105, for example, wheel speed, wheel alignment, and engine and transmission data (e.g., temperature, fuel consumption, etc.). The sensors 215 can detect the position and / or orientation of the vehicle 105. For example, the sensors 215 may include: sensors of a global positioning system (GPS); accelerometers, such as piezoelectric or microelectromechanical systems (MEMS); gyroscopes, such as reversing, ring laser, or fiber optic gyroscopes; inertial measurement units (IMEs); and magnetometers. The sensors 215 can detect the external environment, including objects and / or features of the vehicle 105's surroundings, such as other vehicles, lane markings, traffic lights and / or signs, road users, etc.For example, the sensors can include 215 radar sensors, ultrasonic sensors, laser scanner rangefinders, light detection and ranging (Lidar) devices and image processing sensors, such as cameras.

[0029] The components 220 can be actuated to perform a task on board the vehicle 105. For example, the components 220 can be components of a propulsion system (e.g., internal combustion engine, electric motor, drivetrain, etc.), a steering system (e.g., an electric motor for electric power steering (EPAS), etc.), a user interface (e.g., touchpad, buttons, dials, microphones, speakers, etc.), a suspension system (e.g., active suspension, etc.), a climate control system (e.g., heating, air conditioning, blower, etc.), and so on.

[0030] The transceiver 225 can be configured to transmit signals wirelessly using 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 communications (DSRC), other RF (radio frequency) communications, etc. The transceiver 225 can be configured to communicate with a remote server, that is, a server that is separate and spaced apart from the vehicle 105. The remote server can be located outside the vehicle 105. The remote server can be, for example, another vehicle (e.g., V2V communication), an infrastructure component (e.g., V2I communication), an emergency responder, a mobile device assigned to the operator of the vehicle 105, etc. The remote server can be the server 110.The Transceiver 225 can be a device or include a separate transmitter and receiver.

[0031] With reference to Fig. 1-2 The sensors 215 and the components 220 generate the unreduced data during operation on board the vehicle 105. For the purposes of this disclosure, “unreduced data” is defined as data to which dimensionality reduction has not yet been applied. For example, at least one section of the unreduced 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 cameras; point clouds from radar, lidar, and / or ultrasonic sensors; GPS positions; kinematic state of IMUs; etc.). At least one section of the unreduced data may be generated by the components 220. The unreduced data generated by the components 220 may represent the output of algorithms that control the components 220 (e.g.,Detections of lane lines for a lane keeping assist ADAS, relative movements of the wheels for a traction control system, etc.) or can represent actuations of components 220 (e.g., rotational speeds for an internal combustion engine, fan speed for blowers, etc.).

[0032] The unreduced data can be all or a subset of the data generated on board the vehicle 105. For example, the unreduced data can be the data generated on board the vehicle 105 that is relevant for one or more specific ADAS features. Advanced driver assistance systems (ADAS) are electronic technologies that assist drivers with driving and parking functions. Examples of ADAS include forward collision detection, lane departure detection, blind spot detection, adaptive cruise control, and lane keeping assist.In this example, the unreduced data can include sensor data input into an ADAS algorithm, the output of the ADAS algorithm, data generated by components 220 that can be actuated by the ADAS algorithm, and other sensor data describing an environment around vehicle 105 (even if not input into the ADAS algorithm). Alternatively, the unreduced data can be all the data generated by sensors 215 on board vehicle 105.

[0033] The unreduced data are time-series data. As is generally understood, and for the purposes of this disclosure, time-series data are values ​​of one or more variables at discrete, successive points in time. The unreduced data may be generated at regular intervals (i.e., the times in the time series are evenly spaced), for example, according to the physical properties of the sensor or component (e.g., a camera's frame rate). Alternatively or additionally, the unreduced data may be generated at odd intervals (i.e., the times in the time series are spaced by different time intervals), for example, when a component is activated.

[0034] Computer 205 is programmed to receive the unreduced data. For example, sensor and components 220 can transmit the unreduced data via the onboard network 210 (to computer 205 and / or other components 220), and computer 205 can receive the unreduced data via the onboard network 210. Sensors 215 and components 220 can transmit the unreduced data whenever they generate it (i.e., at any point in the time series).

[0035] The unreduced data exhibit a multitude of unreduced dimensions at any given time in the time series. For the purposes of this disclosure, a dimension of data is defined as a variable that persists in the data over time and whose value can vary over time. Different dimensions can follow different time series. The term "unreduced dimensions" refers to the dimensions of the unreduced data. For example, image data may have a dimension for each pixel in the single frame. The climate control system may have a dimension for the direction of airflow (e.g., toward the footwell, the dashboard, the windshield, etc.), a dimension for the fan speed of the blower, a dimension for the desired temperature, and so on. The computer 205 may track a kinematic state of the vehicle 105 as a vector based on data from GPS, IMUs, 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 velocity, etc.).

[0036] The computer 205 is programmed to perform dimensionality reduction (as described below) on the unreduced data in order to produce reduced data.

[0037] For the purposes of this disclosure, "reduced data" is defined as data resulting from the application of dimensionality reduction to the unreduced data. The reduced data has a multitude of reduced dimensions at any given time in the time series. The term "reduced dimensions" refers to the dimensions of the reduced data. The number of reduced dimensions is less than the number of unreduced dimensions. Thus, the reduced data is smaller than the unreduced data at any given time in the time series. The values ​​of the reduced dimensions can be generated by the dimensionality reduction algorithm (as described below). The values ​​of the reduced dimensions may not be present in the unreduced dimensions. In other words, the reduced dimensions are not a subset of the unreduced dimensions.

[0038] Computer 205 is programmed to perform dimensionality reduction on the unreduced data to generate reduced data. The term "dimensionality reduction" is used in the conventional mathematical sense to describe a transformation of data from a higher-dimensional space to a lower-dimensional space, such that the lower-dimensional representation retains some significant properties of the original data. Dimensionality reduction can use the unreduced data as input, generated at time t or generated over a period of t - Δt. Dimensionality reduction produces the reduced data for time t as output. The value for each of the reduced dimensions at time t can have a contribution from several or all of the unreduced dimensions (e.g., it can depend on several or all of the unreduced dimensions).Each of the unreduced dimensions can contribute to at least one of the reduced dimensions (e.g., to several reduced dimensions).

[0039] Computer 205 can perform dimensionality reduction by executing an algorithm. The algorithm can be chosen to capture the effects of the unreduced dimensions within the reduced data while still producing reduced data that is significantly smaller than the unreduced data. For example, the algorithm could be principal component analysis (PCA), a machine learning algorithm such as an autoencoder, manifold learning, curve fitting, or any other algorithm suitable for dimensionality reduction. PCA is a linear dimensionality reduction technique that represents the unreduced data as a sequence of unit vectors, where each unit vector is orthogonal to all the preceding unit vectors.An autoencoder is an artificial neural network trained to learn efficient encoding of unlabeled data. The learned encoding produces an embedding that 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 a transformation of higher-dimensional data to lower-dimensional latent manifolds. Curve fitting is a process for constructing a curve or mathematical function that best fits a dataset. For curve fitting, the reduced dimensions can be the polynomial coefficients that define the curve. Curve fitting can be based on known statistical aggregation techniques for generating these coefficients.

[0040] The reduced dimensions are respective functions of several of the unreduced dimensions. In other words, each reduced dimension is a function of several (e.g., all) of the unreduced dimensions. The functions are defined by the operation of the algorithm used for dimensionality reduction. For example, the reduced dimensions may be a latent space representation derived from the unreduced dimensions, with the derivation performed according to the dimensionality reduction algorithm. A latent space representation is a representation of data in a latent space. For the purposes of this disclosure, the term "latent space," in the conventional machine learning sense, refers to an embedding of a set of objects within a manifold, in which similar objects are positioned closer together.For example, the latent space representation could be the latent embedding generated by the autoencoder or the latent manifold generated by manifold learning.

[0041] Computer 205 is programmed to transmit the reduced data to server 110. For example, computer 205 can transmit the reduced data to server 110 immediately or periodically over a short, recurring interval. Computer 205 can transmit the reduced data via Wi-Fi network 120 if vehicle 105 is within range of Wi-Fi network 120, and computer 205 can transmit the reduced data via mobile network 115 if vehicle 105 is not within range of Wi-Fi network 120.

[0042] Server 110 can receive and store the reduced data transmitted by vehicle 105. Server 110 can be programmed to evaluate the reduced data to determine whether to request the unreduced data. For example, server 110 can determine how much data has already been collected from other vehicles 105 that is similar to the reduced data and request the reduced data if the amount of similar data is small. When determining to collect the unreduced data, server 110 transmits an instruction to vehicle 105 in response to the reduced data over the public network 125.

[0043] Computer 205 transmits the unreduced data to Server 110 upon receiving an instruction from Server 110. Computer 205 is programmed to transmit the unreduced data to Server 110 upon receiving an instruction from Server 110 in response to the reduced data. The transmission of the unreduced data to Server 110 may be contingent upon one or more conditions being met on board Vehicle 105, as described below. Computer 205 may be programmed to refrain from transmitting the unreduced data to Server 110 if it fails to receive the instruction from Server 110 in response to the reduced data within a specified time limit.The time limit can be preset in the memory of computer 205 and can be chosen to be longer than a typical time for the transmission of the reduced data to server 110, so that server 110 can evaluate the reduced data and thus transmit the instruction from server 110 to vehicle 105. Computer 205 can also be programmed to delete the reduced data and / or the unreduced data in response to failure to receive the instruction from server 110 within the time limit.

[0044] As a general overview, computer 205 is programmed to evaluate whether one or more conditions are met in order to determine whether the unreduced data should be deleted or transferred to server 110; if transferring, whether to transfer immediately via the mobile network 115 or wait until the Wi-Fi network 120 is within range; and if waiting, whether to overwrite data in a buffer with the unreduced data or delete the unreduced data. The data already in the buffer may be previous unreduced data that will be replaced by new unreduced data.

[0045] Computer 205 can be programmed to receive the condition(s) from Server 110. The conditions can be chosen to indicate that Vehicle 105 has experienced an event of interest or that the reduced data reflects an unusual occurrence. Server 110 can be programmed to transmit the conditions to a large number of Vehicles 105, for example, in response to the creation of new conditions. After receiving the conditions, Computer 205 can store them in its memory. Receiving the conditions from Server 110 means that the conditions stored on Computer 205 at Vehicle 105 can be updated or changed over time.

[0046] Each condition can include the occurrence of a predefined event or the occurrence of at least one event from a set of predefined events. The events can be onboard events of vehicle 105 or environmental conditions near vehicle 105. For example, the events can include the actuation of one or more components 220 (e.g., an ADAS feature is activated or deactivated) or the detection of something affecting vehicle 105 (e.g., a change in the kinematic state of vehicle 105 exceeding a threshold). The events can include a metric of the reduced data exceeding a threshold. The metric can be chosen to indicate that the unreduced data is of interest. Alternatively, the metric can be chosen to indicate a difficulty in transmitting the reduced data, such as the file size.For example, the condition can include both that one or more events have occurred and that the file size is above or below a threshold.

[0047] The conditions can be first conditions, second conditions, or override conditions. The term "first conditions" is used in this document to refer to the conditions for immediately transmitting the unreduced data, rather than deleting the unreduced data or waiting for the Wi-Fi network 120 to be within range of the vehicle 105. The term "second conditions" is used in this document to refer to the conditions for transmitting the unreduced data over the Wi-Fi network 120, rather than deleting the unreduced data. The second conditions can correspond to the respective first conditions.For example, at least one of the second conditions can include the same predefined event(s) as the respective first conditions, but also include a maximum file size or a smaller maximum file size than the respective first condition. Alternatively or additionally, at least one of the second conditions can include a predefined event(s) that is not included in any first condition. (The override condition is described below.)

[0048] Computer 205 is programmed to transmit the unreduced data to server 110 in response to either the first or the second condition being met. Computer 205 can instruct transceiver 225 to transmit the unreduced data over the cellular network 115 or the Wi-Fi network 120, as described below. Computer 205 can store the unreduced data in a buffer of its memory for later transmission, as described below. Computer 205 is further programmed to delete the unreduced data in response to both the first and second conditions being unmet.

[0049] Computer 205 is programmed to immediately transmit the uncompressed data to server 110 in response to the first condition being met. Computer 205 can transmit the uncompressed data via Wi-Fi network 120 if vehicle 105 is within range of Wi-Fi network 120, and computer 205 can transmit the uncompressed data via cellular network 115 if vehicle 105 is not within range of Wi-Fi network 120. Computer 205 is also programmed to transmit the uncompressed data to server 110 via Wi-Fi network 120 in response to the first condition being met and vehicle 105 being within range of Wi-Fi network 120.Computer 205 is programmed to transmit the unreduced data to server 110 via cellular network 115 in response to the first condition being met and vehicle 105 being out of range of Wi-Fi network 120. In other words, computer 205 can use the higher bandwidth of Wi-Fi network 120 for the highest priority of reduced data, if available, but if not, it can use cellular network 115 to ensure that the unreduced data reaches server 110 quickly.

[0050] Computer 205 can be programmed, in response to the second condition being met (and the first condition not being met), to transmit the unreduced data to server 110 via Wi-Fi network 120 as soon as vehicle 105 is within range of Wi-Fi network 120. Wi-Fi network 120 can be used for unreduced data that is useful but less urgent or important than the unreduced data for which the first condition is met. Computer 205 can store the unreduced data in its memory buffer until vehicle 105 is within range of Wi-Fi network 120.

[0051] In response to the second condition being met (and vehicle 105 being out of range of Wi-Fi network 120), computer 205 can either store the unreduced data in the buffer (in response to the buffer having capacity for the unreduced data), overwrite the buffer with the unreduced data (in response to the reduced data meeting the overwrite condition), or delete the unreduced data (otherwise). Computer 205 can thus store as much of the unreduced data as possible for later transmission while still prioritizing the most useful unreduced data. Computer 205 can be programmed to store the unreduced data in the buffer in response to the second condition being met and the buffer having capacity for the unreduced data.Computer 205 can be programmed, in response to the second condition being met and the buffer lacking capacity for the unreduced data, to overwrite the buffer containing the unreduced data, in response to the reduced data meeting the overwrite condition (described below). The data to be overwritten can be previous unreduced data, which is replaced by new unreduced data. Computer 205 can also be programmed, in response to the second condition being met and the buffer lacking capacity for the unreduced data, to delete the unreduced data and retain the data in the buffer, in response to the reduced data not meeting the overwrite condition (described below).

[0052] The overwrite condition can be that a metric calculated from the reduced data exceeds the metric calculated from data in the buffer (which, for example, is calculated from previous reduced data, for which the unreduced data would be overwritten). The metric can be chosen to measure how unusual or atypical the reduced data is. For example, Computer 205 can calculate a mean or other statistical measure from the reduced data as the metric and then calculate the difference between the mean or other statistical measure and a pre-stored value. The pre-stored value can be a mean or other statistical measure from a larger sample of reduced data (for example, large enough to capture typical behavior). Computer 205 can perform the same calculations with the data in the buffer.If the reduced data shows the larger difference, computer 205 can overwrite the buffer, and if the data in the buffer shows the larger difference, computer 205 can delete the reduced data and keep the data in the buffer.

[0053] Fig.Figure 3 is a flowchart illustrating an example process 300 for selecting data for transmission from vehicle 105 to server 110 and for transmitting the data. Executable instructions for carrying out the steps of process 300 are stored in the memory of computer 205, and / or programming may be implemented in structures such as those mentioned above. As a general overview of process 300, computer 205 receives the conditions from server 110, receives the unreduced data, performs dimensionality reduction, and transmits the reduced data to server 110. Depending on whether it receives an instruction from server 110, computer 205 either retains the unreduced data for later transmission to server 110 or omits the transmission of the unreduced data to server 110.In response to the first condition being met, computer 205 immediately transmits the unreduced data to server 110. Otherwise, computer 205 evaluates the second condition. In response to the second condition not being met, computer 205 deletes the unreduced data. In response to the second condition being met and the buffer having capacity, computer 205 stores the unreduced data in the buffer. If the buffer has no capacity, computer 205 overwrites the buffer with unreduced data in response to the overwrite condition being met and deletes the unreduced 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 unreduced data in the buffer to server 110.

[0054] Process 300 begins at block 305, where computer 205 receives the conditions (e.g., the first condition, the second condition, and the overwrite condition) from server 110, as described above.

[0055] Next, the computer 205 receives the unreduced data in a block 310 via the onboard network 210, as described above.

[0056] Next, in block 315, computer 205 performs dimensionality reduction on the unreduced data from block 310 to produce the reduced data, as described above.

[0057] In block 320, computer 205 next transmits the reduced data to server 110, as described above.

[0058] Next, at decision block 325, computer 205 determines whether it has received an instruction from server 110 in response to the reduced data within the time limit, as described above. If it receives the instruction from server 110 in response to the reduced data, process 300 proceeds to decision block 335. If it does not receive the instruction from server 110 in response to the reduced data within the time limit, process 300 proceeds to block 330.

[0059] In block 330, computer 205 refrains from transmitting the unreduced data to server 110. After block 330, process 300 terminates.

[0060] In decision block 335, computer 205 determines whether the first condition is met, as described above. If the first condition is met, process 300 proceeds to block 340. If the first condition is not met, process 300 proceeds to decision block 345.

[0061] In block 340, computer 205 transmits the unreduced data from block 310 to server 110, either via the WiFi network 120 if vehicle 105 is within range of the WiFi network 120, or via the cellular network 115 if vehicle 105 is not within range of the WiFi network 120, as described above. After block 340, process 300 proceeds to a decision block 380.

[0062] In decision block 345, computer 205 determines whether the second condition is met, as described above. If the second condition is met, process 300 proceeds to decision block 355. If the second condition is not met, process 300 proceeds to block 350.

[0063] In block 350, computer 205 deletes the unreduced data from block 310, as described above. After block 350, process 300 moves on to decision block 380.

[0064] In decision block 355, computer 205 determines whether the buffer has capacity for the unreduced data from block 310, as described above. If the buffer has capacity for the reduced data, process 300 proceeds to block 360. If the buffer lacks capacity for the reduced data, process 300 proceeds to decision block 365.

[0065] In block 360, computer 205 stores the unreduced data from block 310 in the buffer, as described above. After block 360, process 300 transitions to decision block 380.

[0066] In decision block 365, computer 205 determines whether the overwrite condition is met, as described above. If the reduced data from block 315 meets the overwrite condition, process 300 moves to block 370. If the reduced data does not meet the overwrite condition, process 300 moves to block 375.

[0067] In block 370, computer 205 overwrites the buffer with the unreduced data from block 310, as described above. After block 370, process 300 transitions to decision block 380.

[0068] In block 375, computer 205 deletes the unreduced data from block 310, as described above. After block 375, process 300 transitions to decision block 380.

[0069] In decision block 380, computer 205 determines whether vehicle 105 is within range of Wi-Fi network 120, as described above. In response to the finding that vehicle 105 is within range of Wi-Fi network 120, process 300 proceeds to block 385. In response to the finding that vehicle 105 is outside range of Wi-Fi network 120, computer 205 refrains from sending the data in the buffer, and process 300 terminates.

[0070] In block 385, computer 205 transfers the data stored in the buffer to server 110. The data in the buffer may include the unreduced data from block 310 and / or unreduced data that was stored in the buffer during a previous execution of process 300. After block 385, process 300 terminates.

[0071] In general, the described computing systems and / or devices can use any of a range of computer operating systems, including but not limited to versions and / or variants of the Ford Sync® application, the AppLink / Smart Device Link middleware, the Microsoft Automotive® operating system, the Microsoft Windows® operating system, the Unix operating system (e.g., the Solaris® operating system, distributed by Oracle Corporation in Redwood Shores, California), the AIX UNIX operating system, distributed by International Business Machines in Armonk, New York, the Linux operating system, the Mac OSX and iOS operating systems, distributed by Apple Inc. in Cupertino, California, the BlackBerry OS, distributed by Blackberry, Ltd. in Waterloo, Canada, and the Android operating system, developed by Google, Inc. and the Open Handset Alliance, or the QNX® CAR Platform for Infotainment, offered by QNX Software Systems.Examples of computing devices include, without limitation, an onboard vehicle computer, a computer workstation, a server, a desktop, notebook, laptop or handheld computer, or any other computing system and / or device.

[0072] Computing devices generally contain 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 by computer programs created using a variety of programming languages ​​and / or technologies, including, but not limited to, Java™, C, C++, Matlab, Simulink, Stateflow, Visual Basic, JavaScript, Perl, HTML, and others, either alone or in combination. Some of these applications can be compiled and executed on a virtual machine, such as the Java Virtual Machine, the Dalvik Virtual Machine, or similar. Generally, a processor (e.g., a microprocessor) receives instructions (e.g., from memory, a computer-readable medium, etc.).) and executes these instructions, thereby carrying out one or more processes, including one or more of the processes described herein. Such instructions and other data can be stored and transmitted using a variety of computer-readable media. A file in a computing device is generally a collection of data stored on a computer-readable medium, such as a storage medium, random-access memory, etc.

[0073] A computer-readable medium (also called a processor-readable medium) is any non-volatile (e.g., physical) medium involved in providing data (e.g., instructions) that can be read by a computer (e.g., by a computer's processor). Such a medium can take many forms, including both non-volatile and volatile media. Instructions can be transmitted through one or more transmission media, including optical fibers, wires, and wireless communication, as well as internal components that comprise a system bus connected to a computer's processor. Common forms of computer-readable media include, for example, RAM, PROM, EPROM, FLASH EEPROM, any other memory chip, memory cartridge, or any other medium from which a computer can read.

[0074] Databases, data repositories, or other data storage devices described herein may include various types of mechanisms for storing, accessing, and retrieving different types of data, including a hierarchical database, a set of files in a file system, an application database in a proprietary format, a relational database management system (RDBMS), a non-relational database (NoSQL), a graph database (GDB), and so on. Each such data storage device is generally contained within a computing device that uses a computer operating system, such as one of those listed above, and is accessed in one or more of a variety of ways over a network. A file system can be accessed by a computer operating system and may contain files stored in various formats.An RDBMS generally uses the Structured Query Language (SQL) in addition to a language for creating, storing, editing and executing stored procedures, such as the PL / SQL language mentioned above.

[0075] In some examples, system elements may be implemented as computer-readable instructions (e.g., software) on one or more computing devices (e.g., servers, personal computers, etc.) stored on computer-readable media associated with them (e.g., disks, memory, etc.). A computer program product may include such instructions stored on computer-readable media for performing the functions described herein.

[0076] In the drawings, identical reference symbols denote the same elements. Furthermore, some or all of these elements may be modified. Regarding the media, processes, systems, procedures, heuristics, etc., described herein, it is understood that although the steps of such processes, etc., have been described as following a specific, ordered sequence, such processes may be implemented in practice, with the described steps being carried out in a sequence that differs from the sequence described in this document. It is further understood that certain steps may be performed simultaneously, other steps may be added, or certain steps described herein may be omitted.

[0077] The revelation has been described in an illustrative manner, and it is understood that the terminology used is intended to be descriptive and not restrictive. The adjectives "first" and "second" are used throughout Scripture as identifiers and are not meant to symbolize any meaning, order, or number. The use of "in response to," "at determining," "at receiving," etc., indicates a causal relationship, not merely a temporal one. In light of the foregoing teachings, many modifications and variations of the present revelation are possible, and the revelation may be implemented differently than specifically described.

[0078] According to the present invention, a computer is provided comprising a processor and a memory, wherein the memory stores instructions that can be executed by the processor to: perform dimensionality reduction on unreduced data to generate reduced data, wherein the unreduced data are time series data generated on board a vehicle, wherein the unreduced data have a plurality of unreduced dimensions at any given time in the time series, the number of reduced dimensions being less than the number of unreduced dimensions; transmit the reduced data to a server located remote from the vehicle; and upon receiving an instruction from the server in response to the reduced data, transmit the unreduced data to the server.

[0079] According to one embodiment, the instructions further include instructions to refrain from transmitting the unreduced data to the server in response to the instruction not being received by the server within a time limit in response to the reduced data.

[0080] According to one embodiment, the reduced dimensions are respective functions of several of the unreduced dimensions.

[0081] According to one embodiment, the reduced dimensions are a latent spatial representation derived from the unreduced dimensions.

[0082] According to one embodiment, the transfer of the unreduced data to the server depends on a condition being met on board the vehicle.

[0083] According to one embodiment, the instructions further include instructions to transmit the unreduced data to the server via a mobile network in response to the condition being met and the vehicle not being within range of a Wi-Fi network.

[0084] According to one embodiment, the condition is a first condition and the instructions further include instructions to transmit the unreduced data to the server via the Wi-Fi network as soon as the vehicle is within range of the Wi-Fi network, in response to a second condition being met on board the vehicle.

[0085] According to one embodiment, the instructions further include instructions to delete the unreduced data in response to the first condition not being met and the second condition not being met.

[0086] According to one embodiment, the condition is a first condition, and the instructions further include instructions to store the unreduced data in the buffer in response to a second condition being met and a buffer having the capacity for the unreduced data.

[0087] According to one embodiment, the instructions further include instructions to overwrite the buffer with unreduced data in response to a second condition being met and the buffer lacking capacity for the unreduced data, in response to the reduced data meeting an overwrite condition.

[0088] According to one embodiment, the overwrite condition is that a metric calculated from the reduced data exceeds the metric calculated from data in the buffer.

[0089] According to one embodiment, the instructions also include instructions for receiving the condition from the server.

[0090] According to one embodiment, at least one section of the unreduced data is generated by sensors of the vehicle.

[0091] According to one embodiment, the vehicle includes the computer.

[0092] According to the present invention, a method comprises: performing dimensionality reduction on unreduced data to generate reduced data, wherein the unreduced data are time series data generated on board a vehicle, wherein the unreduced data have a plurality of unreduced dimensions at any point in time in a time series, wherein the reduced data have a plurality of reduced dimensions at any point in time in the time series, wherein the number of reduced dimensions is less than the number of unreduced dimensions; transmitting the reduced data to a server located remote from the vehicle; and upon receiving an instruction from the server in response to the reduced data, transmitting the unreduced data to the server.

[0093] In one aspect of the invention, the reduced dimensions are respective functions of several of the unreduced dimensions.

[0094] In one aspect of the invention, the transfer of the unreduced data to the server depends on a condition being met on board the vehicle.

[0095] In one aspect of the invention, the method further includes, in response to the condition being met and the vehicle not being within range of a Wi-Fi network, transmitting the unreduced data to the server via a mobile network.

[0096] In one aspect of the invention, the condition is a first condition and further includes the method, in response to the fulfillment of a second condition, to transmit the unreduced data to the server via the Wi-Fi network as soon as the vehicle is within range of the Wi-Fi network.

[0097] In one aspect of the invention, the condition is a first condition; the method further includes, in response to the fact that a second condition is met and a buffer has the capacity for the unreduced data, storing the reduced data in the buffer.

Claims

A method comprising: performing dimensionality reduction on unreduced data to generate reduced data, wherein the unreduced data are time series data generated on board a vehicle, wherein the unreduced data have a plurality of unreduced dimensions at any point in time in the time series, wherein the reduced data have a plurality of reduced dimensions at any point in time in the time series, the number of reduced dimensions being less than the number of unreduced dimensions; transmitting the reduced data to a server located remote from the vehicle; and upon receiving an instruction from the server in response to the reduced data, transmitting the unreduced data to the server. The method according to claim 1, further comprising, in response to the failure to receive the instruction from the server in response to the reduced data within a time limit, refraining from transmitting the unreduced data to the server. Method according to claim 1 wherein the reduced dimensions are respective functions of several of the unreduced dimensions. Method according to claim 1, wherein the reduced dimensions are a latent spatial representation derived from the unreduced dimensions. Method according to claim 1, wherein the transfer of the unreduced data to the server depends on a condition being met on board the vehicle. The method of claim 5, further comprising, in response to the condition being met and the vehicle not being within range of a Wi-Fi network, transmitting the unreduced data to the server via a mobile network. The method of claim 6, wherein the condition is a first condition and the method further comprises, in response to the fact that a second condition is met on board the vehicle, transmitting the unreduced data to the server via the Wi-Fi network as soon as the vehicle is within range of the Wi-Fi network. The method of claim 7, further comprising, in response to the failure of the first condition and the failure of the second condition, deleting the unreduced data. The method of claim 6, wherein the condition is a first condition, the method further comprises, in response to the fact that a second condition is satisfied and a buffer has the capacity for the unreduced data, storing the unreduced data in the buffer. The method of claim 9, further comprising, in response to the fact that a second condition is met and the buffer lacks the capacity for the unreduced data, overwriting the buffer with unreduced data in response to the fact that the reduced data meets an overwrite condition. Method according to claim 10, wherein the overwrite condition is that a metric calculated from the reduced data exceeds the metric calculated from data in the buffer. The method according to claim 5, further comprising receiving the condition from the server. Method according to claim 1, wherein at least one section of the unreduced data is generated by sensors of the vehicle. Method according to claim 1, wherein the vehicle includes the computer. Computer comprising a processor and a memory, wherein instructions are stored on the memory which can be executed by the processor to carry out the method according to any one of claims 1-14.