Systems, methods, and apparatuses for processing vehicle performance data

Methods, apparatus, systems, and computer-readable media are provided for processing vehicle-related data received from one or more smart tracker devices connected to one or more vehicles. The smart tracker devices can be connected to one or more sensors that can provide an output according to operating conditions of the vehicles. Data from the sensors can be transmitted from the smart tracker devices to a server device and/or a portable computing device for further processing. The portable computing device can include an application for visualizing the data in three dimensions. The application can include an interface that can provide a three-dimensional visualization of a track on which a vehicle is traveling, and map the data to a shape of the track in order to provide an indication of how the data changed as the vehicle traveled along the track.

TECHNICAL FIELD

The embodiments described herein generally relate to visualizing and comparing vehicle performance. Specifically, the embodiments relate to using a smart device on a vehicle visualize and compare performance metrics associated with the vehicle.

BACKGROUND

Vehicle performance can be difficult to track in real-time as there are a number of rapidly changing variables that contribute to how a vehicle is performing at any given time. Visualizing such variables in real-time can cause process latency, which can result in certain data being neglected. As a result, a driver that is relying on such data while operating the vehicle can miss out on opportunities to improve performance. Furthermore, someone observing data corresponding to a race between multiple vehicles may not receive an accurate snapshot of how the vehicles performed during a race because the data was not effectively collected. In some instances, without any effective means for filtering data, certain data can cause anomalies that can render subsequent processes unreliable.

SUMMARY

The described embodiments relate to systems, methods, and apparatus for visualizing vehicle performance based on data received from one or more smart tracker devices connected to one or more vehicles traveling along a track. A smart tracker device can be connected to one or more sensors that are disposed at different locations throughout a vehicle in order to provide signals indicative of operating conditions. Data collected by the smart tracker device can be transmitted over a network connection such as, for example, a Bluetooth connection, to a computing device such as, for example, a cellular phone or tablet computer. In some implementations, the data collected by the smart tracker device can be transmitted over a network connection, such as, for example, a Wi-Fi connection or an LTE connection, to a server, which can provide data to a computing device. The computing device can include an application for processing the received data and generating display elements at an interface of the computing device based on the received data. In some implementations, the computing device can process the data and transmit the data to a separate device that includes a display device (e.g., a display device within a vehicle) for displaying display elements based on the processed data. The display elements can include two-dimensional (2D) and three-dimensional (3D) display elements, such as a representation of a portion of the track along which a vehicle is traveling. The portion of the track can be displayed with shading changes, color changes, and/or dimension changes corresponding to how the one or more operating conditions of the vehicle are fluctuating as the vehicle is traveling along the track. The track can be displayed in layers that represent data received during a current lap, and previous laps the vehicle performed along the track.

The portable computing device can transmit at least a portion of the received data to a remote device, such as a server device, in order to preserve computational resources at the portable computing device. The server device can process data from multiple smart tracker devices simultaneously using multi-threading processes. The remote device can transmit data (e.g., operating metrics) to one or more client devices simultaneously and also store the data for subsequent processes, such as comparing current and past performances of vehicles.

In some embodiments, a method implemented by one or more processors is set forth as including steps such as receiving, via a first network connection, data from one or more smart tracker devices connected to one or more vehicle. The steps can further include causing display elements to be displayed at an interface of a computing device based on the data received from the one or more smart tracker devices, and transmitting, via a second network connection, at least a portion of the data to a remote device for processing. The steps can further include receiving, via the second network connection, processed data from the remote device, and causing additional display elements to be displayed at the interface based on the processed data from the remote device. In some embodiments, each of the one or more smart tracker devices can be connected to one or more sensors that are responsive to operating conditions of the vehicle. The additional display elements can include a representation of a track on which the vehicle is traveling. Furthermore, the representation of the track can include colors that change across the representation of the track based on variations in the processed data. The variations in the processed data can be time differences between a current lap being performed by the vehicle on the track and a historical lap data stored by the remote device. In some embodiments, the additional display elements include a trend line that extends along a representation of a portion of a track on which the vehicle is traveling. Furthermore, the method can include receiving an input for modifying an orientation of the representation of the portion of the track in three dimensions, and causing the representation of the portion of the track to be re-oriented according to the received input. The first network connection can be a Bluetooth connection and the second network connection can be an LTE connection or a WiFi connection. The method can be embodied as instructions stored in a non-transitory computer readable medium, or in a memory of a computing device that includes one or more processors.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1illustrates a system100for tracking, analyzing, and displaying race related data using a smart tracker device102. The smart tracker device102can be attached to a vehicle104capable of traveling about a race track114. The smart tracker device102can include or be connected to one or more sensors108for measuring operating conditions and tracking performance of the vehicle104. The sensors108can include multiple different sensors that are capable of providing data to the smart tracker device102as the vehicle104is traveling about a race track114. For example, the sensors108can include a pedal position sensor, a pedal pressure sensor, a steering input sensor, a wheel speed sensor, an engine rotations per minute (RPM) sensor, an engine temperature sensor, a magnetic lap time sensor, a tire temperature sensor, an accelerometer, a gyroscope, a weather sensor, a battery charge sensor, an infrared sensor, a chemical sensor, a fluid sensor, a magnetic sensor, an optical sensor, a navigation sensor, a position sensor, a proximity sensor, and/or any other sensor capable of providing data suitable for tracking properties of an automobile. The sensors108can be in communication with one or more processors of the smart tracker device102. The processor can analyze the data from the sensors108and/or transmit the data to a separate device, such as a portable computing device118for analysis.

The smart tracker device102can include one or more transmitters capable of communicating over multiple different communication mediums such as Wi-Fi, Bluetooth, long-term evolution (LTE), Zigbee, wired, and/or any other communication medium suitable for transmitting data. In some implementations, the smart tracker device102can include a global positioning system (GPS) receiver capable of carrier phase measurements for providing precise location data about the vehicle104. Data from the sensors108and/or the GPS receiver can be processed at the processor of the smart tracker device102and/or transmitted to the portable computing device118over a network110, such as the internet. In some implementations, data from the sensors108and/or the GPS receiver can be transmitted directly to the portable computing device118via short-range wireless communications (e.g., a Bluetooth connection). Thereafter, the portable computing device118can transmit at least some portions of the data over the network110to a remote device136for processing.

In some implementations, the smart tracker device102can include multiple channels for simultaneously receiving and/or analyzing sensor data. For example, data from the GPS receiver and sensors108can provide multiple different channels with data for determining GPS position, ground speed, wheel RPM, lateral acceleration data, longitudinal acceleration data, engine RPM, engine temperature, magnetic lap sensor data, battery voltage data, tire temperature for each tire, brake pedal data, steering angle, air temperature, barometric pressure and/or any other vehicle related data. Other metrics can also be calculated from the sensor and GPS data such as GPS based longitudinal and/or lateral acceleration, engine power, tire slippage, grip reserve, inverse corner radius of turns, speed adjusted steering, miles per hour (MPH) and/or RPM.

In some implementations, the smart tracker device102and/or the portable computing device118can communicate with a remote device136, such as a server, that includes an analytics engine138. The analytics engine138can process the data provided by the smart tracker device102and/or the portable computing device118in order to conserve computational resources of the smart tracker device102and/or the portable computing device118. In some implementations, the analytics engine138can be stored at the portable computing device118, and the analytics engine138can process data provided by the remote device136and/or the smart tracker device102. In some implementations, in order to more accurately calculate certain metrics and conserve computational resources, the analytics engine138can filter the data provided by the smart tracker device102. The analytics engine138can filter the received data by comparing the received data to other data being provided by the smart tracker device102. Comparing the received data to the other data can include identifying outliers or noise in the received data that does not correlate to the other data. In this way, any further processing of the data will not be impeded by noise or other inconsistent data, thereby mitigating errors.

In some implementations, the portable computing device118can include an application that can process data from the remote device136and/or the smart tracker device102. The application can provide an interface124at a display122of the portable computing device118. The interface124can allow a user116to interact with and view data processed by the remote device136, the smart tracker device102, and/or the portable computing device118. For example, the interface124can provide graphical elements representing a track (e.g., race track114), as well as an identifier128representing the vehicle104on the race track114. The interface124can also identify other vehicles112that are on the race track114concurrently with the vehicle104. Each of the other vehicles112can also include a smart tracker device102, and the other smart tracker devices102can communicate with the portable computing device118over the network110or via the remote device136. In this way, the user116will be able to simultaneously view and interact with data associated with multiple vehicles.

In some instances, the interface124can present the user116with a ranking of vehicles on the race track114according to one or more metrics, as generated by the analytics engine138. For example, the application can cause the display122to present a ranking126of best track completion times according to historical and current data available to the remote device136. Alternatively, the ranking126can provide the user116with a list of operating metrics of each vehicle before, during, or after a race, based on data collected by the smart tracker devices102. Such metrics can include engine temperature, engine RPM, barometric pressure, battery charge, and/or averages of any metrics identified herein.

In some implementations, the application on the portable computing device118can provide a lap tracking interface140. The lap tracking interface140can be presented simultaneous to the ranking126and the track/or provided in the interface124. The lap tracking interface140can provide the user116with a real-time plot130of one or more metrics or sensor data as the vehicle104(e.g., “CAR_1”) is operating on the race track114. Furthermore, the lap tracking interface140can provide the user with historical plots134using historical data logged by the smart tracker device102, the remote device136, and/or the portable computing device118. The historical data can include sensor data and/or metrics corresponding to previous times the vehicle104was operating on the race track114. In this way, the user116is able to see how the vehicle104is performing during a current race compared to previous races. For example, the real-time plot130can represent engine RPM for the vehicle104during a current race and the historical plots134can represent engine RPM for the vehicle104during previous races.

A moving cursor132can act as a moving progress indicator that moves over the historical plots134as the vehicle104is traveling along the race track114. In order to provide the moving cursor132, the analytics engine138can compare position data from the GPS receiver to a mapping of the race track114to determine the real-progress of the vehicle104completing a lap of the race track114. Furthermore, the analytics engine138can correlate the real-time progress of the vehicle104completing the race track114to sensor data and/or one or more metrics logged by the smart tracker device102and/or the remote device136. The correlation can then be presented as the real-time plot130, which can show how the sensor data or metric is changing over time. In some implementations, the moving cursor132can be controlled by a user116in order to identify values on the real-time plot130. For example, a user116can press their finger on a portion of the real-time plot130, and, in response, the cursor132can move to the portion of the real-time plot130and display a value corresponding to a point at the portion of the real-time plot130.

FIG. 2illustrates a system200for collecting, analyzing, and presenting race and vehicle related data. The system200can include a smart tracker device202, which can include one or more transmitters capable of transmitting wireless and/or wired signals according to one or more different communications protocols such as, for example, Wi-Fi, Bluetooth, LTE, Zigbee, and/or any other communications protocols suitable for transmitting signals. The smart tracker device202can further include one or more sensors208, such as any of the sensors described herein. The sensors208can provide signals in response to changing environmental conditions affecting the sensors208, and the smart tracker device202can use the signals to generate data for further processing. For example, the sensors208can be connected to one or more processors210, which can receive signals from the sensors208and convert the signals into usable data for creating data logs at the smart tracker device202and/or a separate device. The data can be stored in memory206of the smart tracker device202. The memory206can include one or more memory devices that are in communication with one or more processors210.

In some implementations, the smart tracker device202can communicate with a server214and/or one or more client devices218over a network212, such as the internet. The smart tracker device202can communicate data that is based on signals transmitted by the sensors208in order that the server214and/or client devices218can further process the data. In some implementations, the server214can include an analytics engine216, which can include one or more applications or scripts that operate according to multi-threading operations to process data from the smart tracker device202and/or the client devices218. The analytics engine216can receive data related to performance of one or more vehicles as the vehicles traverse a race track or other course. The analytics engine216can identify differences between a most recent performance of a vehicle and past performances of the vehicle. The differences embodied in data can be transmitted from the server214to the client devices218over the network212. In some implementations, the analytics engine216can operate at one or more of the client devices218, and receive data from the server214and one or more smart tracker devices202.

The client devices218can each present an interface220that illustrates the differences in the data. The interface220can be presented by an application that is associated with the smart tracker device202. The application can allow a user to interact with the data from the analytics engine216and/or the smart tracker device202in order to compare performance and/or metrics associated with vehicles before, during, and/or after the vehicles perform a lap around a race track. In some implementations, the race track can be presented at the interface220with a number of different layers corresponding to a vehicle's performance during a particular lap or race around the race track. The layers can be based on sensor data provided by the smart tracker device202and/or analytic data provided by the analytics engine216. The layers can be shaded, colored, or otherwise modified to reflect where in a particular lap (e.g., at a curve or straight-away) around a race track that the vehicle performed better, equal to, or worse than a best ranked lap or an average ranked lap. In some implementations, the layers can each correspond to different vehicles, and the layers can be shaded, colored, or otherwise modified to reflect where in a particular lap (e.g., at a curve or straight-away) each vehicle performed better, equal to, or worse than the best ranked vehicle. In this way, large amounts of data can be condensed into 2D or 3D display elements that can allow a user to draw a number of different conclusions about the data without having to waste human effort or additional computational resources of a computing device.

In some implementations, other sensor data collected at the smart tracker device202can be presented at the layers provided at the interface220. For example, points on the track where each vehicle used their breaks can be identified at each vehicle's corresponding layer. In other instances, the layers of the race track can be modified to include indicators for steering angle, tire slip, longitudinal acceleration, latitudinal acceleration, and/or any other sensor data or metric discussed herein. Such indicators can correspond to measurements, changes, averages, differences from a previously recorded lap, and/or any other basis for comparing data.

FIG. 3provides a diagram300of an interface302for interacting with and visualizing data provided by a server and/or smart tracker device. The smart tracker device can be connected to one or more vehicles and collect data about the vehicles as the vehicles perform one or more laps around a race track, such as the race track320depicted in the interface302. The smart tracker device can include one or more sensors connected at different portions of the vehicles, such as, for example, the engine, the tires, any fluid supply, and/or any other portion of the vehicles. Sensor data can be processed by the smart tracker device and/or transmitted to the server and/or the portable computing device332for further processing.

In some implementations, the portable computing device332can present current and historical data at the interface302about a vehicle in a variety of different ways. For example, the interface302can be presented by an application that is associated with a particular vehicle that has performed a lap around the track320. A user can compare the performance of the vehicle at multiple different tracks by selecting one of the track icons334. For example, track320can correspond to “TRACK1” identified at the track icons334. In some implementations, a user can select a track portion318for comparing a performance of the vehicle at the track portion318during a current lap and/or previous laps through the track portion318. Specifically, the interface302can provide track layers336corresponding to different laps that the vehicle has traveled around the race track320. For example, a first layer310can correspond to a lap that is currently being recorded by the smart tracker device or has most recently been recorded by the smart tracker device. The second layer312, third layer314, and fourth layer316can correspond to previous laps recorded by the smart tracker device. Each layer can be shaded in a way that is based on data collected from the smart tracker device during a respective lap.

In some implementations, a darker shaded region can indicate that the vehicle completed traversing the track portion318faster than compared to the other laps represented by the lighter shaded regions (e.g., the first layer310, second layer312, third layer314are lighter than the fourth layer316, therefore the fourth layer316corresponds to the fastest lap). Furthermore, the track layers336can also include sections representing different data gathered from the smart tracker device during different laps. The different data can include tire slip data, which can be converted into tire slip data308indicating where the vehicle's tires began to slip during a turn on the race track320. This allows the user or driver to learn how the vehicle was being operated to improve vehicle performance while traveling around the race track. The different data displayed at the track layers336can also include brake pedal data306, which can indicate when the vehicle applied the brakes during each lap corresponding to the first layer310, the second layer312, the third layer314, and the fourth layer316. For example, point304of the fourth layer316can indicate when the vehicle began applying the brakes during the lap corresponding to the fourth layer316. It should be noted that any of the shaded regions and/or hatched regions can be provided using any of the sensor data and/or metrics discussed herein. For example, the shaded regions can represent engine RPM of the vehicle during different laps and the hatched regions can correspond to lateral and/or longitudinal acceleration.

In some implementations, the interface302can include one or more trend lines322, which can be simultaneously displayed with the track layers336and represent the same or different data than the track layers336. The trend lines322can include a first trend line324corresponding to the first layer310, a second trend line328corresponding to the second layer312, a third trend line330corresponding to the third layer314, and a fourth trend line326corresponding to the fourth layer316. For example, the fourth trend line326can be based on data collected during the best lap time for the vehicle. The trend lines322can be generated such that changes in the trend lines322can overlap, in order to make identifying differences between laps more intuitive. Trend lines322can be overlapped, as further discussed herein, by identifying a reference lap, and mapping data to position data corresponding to the reference lap. In this way, certain features of the data, such as peaks Such data can include any of the sensor data and/or metrics discussed herein. In some instances, the fourth trend line326can be based on temperature data collected at the smart tracker device connected to the vehicle. In this way, the user or driver of the vehicle are able to visualize the temperature of vehicle for each lap, and see how the temperature compares to the data provided at the track layers336.

In some implementations, each of the first trend line324, the second trend line328, the third trend line330, and/or the fourth trend line326can correspond to different data recorded by the smart tracker device during a particular lap (e.g., a lap corresponding to the third layer314). For example, the first trend line324and the second trend line328can correspond to temperature data and lap time delta (i.e., difference in time between a best lap and another lap), respectively. The data represented by the trend lines322can be modified by selecting the types of data at the menu items338. For example, in response to a user selecting “LAP TIME DELTA” from the menu items338, the interface302can provide a trend line corresponding to one or more laps completed by the vehicle. In some implementations, the data represented at the track layers336can be modified according to selections of menu items338. For example, in response to the user selecting “LONGITUDINAL ACC.”, the interface302can provide a layer that is shaped like the race track320and changes shading and/or fill according to how longitudinal acceleration of the vehicle changed during one or more laps.

In some implementations, the track layers336can represent data collected at smart tracker devices of multiple different vehicles. The data can be collected during a race where each of the vehicles were traveling about the race track320represented at the interface302. For example, each of the first layer310, the second layer312, the third layer314, and the fourth layer316can represent a different vehicle. In this way, differences in performance of each vehicle can be identified determined or analyzed via the interface302. The trend lines322can also represent data collected from the smart tracker devices of the vehicles. For example, a user can select engine RPM from the menu items338and cause the trend lines322to illustrate how the engine RPM of each vehicle changed as the vehicles traveled along the track320. Furthermore, the user can select lap time delta from the menu items338in order to see how the lap time delta (i.e., a difference between the best lap time for all vehicles and the lap time for a specified vehicle) for each vehicle changed as each vehicle traveled along the race track320. Although the shaded areas in each layer of the track layers336is uniform for each layer, the color or darkness of each shaded area can change according to how the selected data or metric (e.g., lap time delta) changes. Furthermore, the brake pedal data306and/or tire slip data308can be based on the brake pedal data306and/or the tire slip data308collected from each smart tracker device of each of the different vehicles. However, it should be noted that the cross hatching at the portions of the track layers336representing the brake pedal data306and/or the tire slip data308can be based on any data collected by the smart tracker devices of the vehicles.

In some implementations, the track layers336can include a three-dimensional (3D) portion340that projects in a perpendicular direction from the track layers336. A height of the 3D portion340can be proportional to sensor data or any other metric discussed herein. For example, in some implementations, the 3D portion340can correspond to a velocity of a vehicle as the vehicle is traveling around the race track320. By providing data in three dimensions, a user can quickly make conclusions about the performance of a vehicle, without wasting computational resources by navigating through multiple different interfaces.

FIG. 4illustrates a system400for determining a time delta for lap times of a vehicle. The time delta calculation provided inFIG. 4can provide accurate comparisons between lap times of one or more vehicles. A smart tracker device418can be connected to a vehicle for collecting data that identifies a location of the vehicle. For example, the smart tracker device418can include a GPS receiver that can collect coordinates of the vehicle as the vehicle is performing a lap around a race track416. The coordinates, as well as time stamps associated with the coordinates, can be transmitted to a server420and/or one or more client devices424for further processing. In some instances, the server420can process the coordinate data and time stamps at an analytics engine422of the server420. The coordinate data and/or times stamps can be processed in order to determine a reference position of the vehicle as the vehicle travels along the race track416. The reference position can indicate a progress of the vehicle as the vehicle travels around the race track416, and can be used to map data collected during different laps of one or more vehicles around the race track416. Such data mapping can be used to generate the track layers336and/or trend lines322discussed herein.

Processing the coordinate data and time stamps can include mapping a trajectory of the vehicle as the vehicle performs a lap around the race track416. Historical data can be processed to create a reference trajectory440for the vehicle. The reference trajectory440can be based on multiple historical coordinates412associated with the movement of a vehicle around the race track416. Furthermore, incoming or recent data can be processed to create a current trajectory442for the vehicle. The current trajectory442can be based on multiple incoming or recent coordinates444. The reference trajectory440and the current trajectory442can correspond to laps performed at a portion402of the race track416at different times.

In order to calculate a time delta for the reference trajectory440and the current trajectory442, a normal line410can be projected from a point414on the current trajectory442. The normal line446can extend to the reference trajectory440to create an intersection408. Each of the point414and the point at the intersection408can correspond to times when the vehicle was traveling around the race track416. The time delta can be calculated as a difference between a time stamp corresponding to the point414and a time stamp corresponding to the intersection408. When the reference trajectory440corresponds to the best lap performed by the vehicle, the time delta can indicate whether the vehicle, at the current trajectory442, is performing better or worse than when the vehicle was performing the best lap. In some implementations, if a time stamp does not explicitly exist for the point at the intersection408, the time stamp can be estimated using the closest historical coordinates412to the intersection408. The closest historical coordinates412can be used to create a curve fitted for the historical coordinates412, and time values can then be assigned to the curve between the closest historical coordinates414. A time corresponding to the intersection408can then be identified for purposes of calculating the time delta.

Time delta data can be generated from multiple different points of a current trajectory442and transmitted to one or more client devices424. The client devices424can include an application associated with the smart tracker device418for displaying an interface426that includes data and metrics based on data collected by the smart tracker device418at one or more vehicles. For instance, the interface426can provide time delta data corresponding to a difference between a most recent lap performed by a vehicle and a best lap performed by the same vehicle or a different vehicle. The time delta data can be presented as color changes that are mapped over a 2D or 3D image of the race track416, as illustrated inFIG. 3. Alternatively, the time delta data can be presented as height changes of 3D portion of the 3D image of the race track416, such as the 3D portion340illustrated inFIG. 3. However, it should be noted that the time delta data can be presented according to any of the methods provided herein, and/or any other method suitable for presenting race data.

In some implementations, the process for calculating the time delta can be used to calculate differences in sensor data or other metrics associated with different laps performed by the same, or different vehicles. For example, an engine temperature delta can be calculated for different laps performed by a vehicle. The engine temperature delta can be generated by mapping a first set of engine temperature data along the current trajectory442, and mapping a second set of engine temperature data along a reference trajectory440(e.g., a trajectory of a best lap for the vehicle). For one or more data points along the current trajectory442, a normal line can be projected perpendicular to a data point such that the normal line446intersects or reaches the reference trajectory440. An engine temperature of the vehicle corresponding to the intersection can then be identified, and a difference between the engine temperature at the intersection and at the data point can be calculated. This engine temperature delta can then be presented at an interface that includes a map of the race track416(e.g., track layers336) in order to illustrate where the differences in temperature were more or less extreme.

FIG. 5illustrates a method500for processing data collected by one or more smart tracker devices attached to one or more vehicles, respectively. The method500can be performed by a portable computing device, such as a cellular phone, a server device, and/or any other device capable of processing data collected at a vehicle. The method500can include a block502of receiving, via a first network connection, data from one or more smart tracker devices connected to one or more vehicles. The smart tracker device can be connected to one or more sensors that are disposed at different locations within the vehicle in order to track operating conditions of the vehicle. The smart tracker device can also include one or more transmitters for sending and receiving data (e.g., GPS data) via one or more different network protocols.

At block504, display elements based on the received data from the one or more smart tracker devices can be displayed at an interface. The display elements can be a portion of a race track on which the vehicle was traveling when the received data was collected by the smart tracker device. The received data can be used by the portable computing device to modify the portion of the race track to include gradients, colors, size changes, and/or any other variations in appearance that can indicate how the performance of the vehicle changed while traveling along the race track114.

At block506, at least a portion of the data received from the smart tracker device can be transmitted to a server for processing. The portable computing device can offload tasks to the server in order to preserve computational resources of the portable computing device. The server can be programmed to perform tasks such as generate differences (e.g., delta data) between data collected during laps performed by one or more vehicles, as discussed with respect toFIG. 4. For example, the server can generate time delta data corresponding to a most recent lap performed by a vehicle and a previous lap (e.g., a best lap) performed by the same vehicle.

At block508, the processed data can be received from the server via the second network connection. It should be noted that the first network connection and the second network connection can be the same network connection or different network connections. For example, in some implementations, the first network connection can be a low energy connection, such as a Bluetooth connection, and the second network connection can be an LTE connection or a WiFi connection.

At block510, display elements based on the processed data from the server can be displayed at the interface. The display elements based on the processed data can include portions of the race track displayed at the interface and/or trend lines indicating how the processed data changed the vehicle traveled around the race track. In some implementations, the display elements can be 3D elements that can be rotated according to inputs received at the interface (e.g., touch inputs and/or inputs provided by a peripheral device such as a stylus or mouse).

FIG. 6illustrates a method600for calculating a difference between lap data that is gathered by one or more smart tracker devices connected to one or more vehicles, respectively. The method600can be performed by a portable computing device, a server device, and/or any other device capable of processing vehicle-related data. The method600can include a block602of generating first trajectory data using coordinates associated with historical data collected while a vehicle was performing a previous lap along a track. The historical data can be collected by a smart tracker device attached to the vehicle and programmed to collect GPS data as the vehicle is traveling along the track. The track can be any street or road (e.g., a race track, a city street, etc.) that is capable of supporting a vehicle while the vehicle is traveling along the street or road.

At block604, second trajectory data can be generated using coordinates associated with recent data collected while a vehicle is performing a current lap along a track. The current lap can be a lap that is being performed by the vehicle in real-time, a lap that was most recently performed by the vehicle, or any other lap previously performed by the vehicle. It should be noted that the first trajectory data and the second trajectory data can correspond to data mappings in 2D or 3D coordinate space (e.g., a 2D or 3D matrix).

At block606, an intersection of the first trajectory data by a normal line that extends from a point in the second trajectory data is determined. A normal line can refer to a function or data that corresponds to a line that is perpendicular to the second trajectory data at the point. The intersection can occur at a point of data in the first trajectory data or at a point between two points of data in the first trajectory data. If the intersection is between two points of data, the point of intersection can be estimated through a curve fitting, least squares method, or any other method for estimating a value of a point in 2D or 3D space.

At block608, a first time value corresponding to the intersection at the first trajectory data is determined, and a second time value corresponding to the point in the second trajectory data is determined. The first time value and the second time value can be based on when the vehicle began performing each lap or traveling along a track. For example, the previous lap and the current lap can each start at a time value of 0, therefore, after the vehicle began performing the previous lap and the current lap, the time values would increase. Therefore, the first time value and the second time value can correspond to the same (or relatively the same) starting points.

At block610, a difference value between the first time value and the second time value is determined. In other words, the first time value is subtracted from the second time value, or the second time value is subtracted from the first time value. In this way, a time delta for a point at the second trajectory data can be determined. In some implementations, a time delta can be calculated for multiple points in the second trajectory data in order to compare performance of the vehicle during different laps.

At block612, the difference value is caused to be represented at an interface of a portable computing device. For example, when the method600is performed by a server device, the server device can transmit the difference value to an application at a portable computing device for displaying the different value. Alternatively, when the method600is performed by the portable computing device, the portable computing device can cause the application to present the difference value at a graphical user interface of the portable computing device. The difference value can be represented as one or more display elements, such as a trend line and/or gradients presented as a color, hatching, and/or shading at the interface (e.g., such as the interface302ofFIG. 3).

FIG. 7illustrates a method700for processing data to determine certain metrics that can be associated with vehicle performance. The method700can be performed by a server device, a portable computing device, and/or any other device capable of analyzing data. The method700can include processing data provided from one or more sensors connected to the smart tracker device. The sensors can be responsive to certain environmental conditions of the vehicle, such as motion, temperature, pressure, and/or any other environmental condition associated with the vehicle.

At block702, a set of points is identified from the data received from the smart tracker device. The set of points can be randomly selected data from the received data. Alternatively, the set of points can be selected from the received data according to a predetermined algorithm that is not random. For example, the set of points can be selected according to a sampling frequency such that a point is selected from the data at multiple periods. In this way, the set of points will be a subset of the received data from the smart tracker device.

At block704, data values between pairs of points in the set of points are categorized according to predetermined gap sizes between each data value of the data values and at least one point. For instance, the predetermined gap sizes can be a finite number of spaces between points (e.g., 2, 4, 8, 16, etc.). For a pair of points in the set of points, a data value at the second point from one point of the pair of points can be categorized as being at the second point. Additionally, for the pair of points in the set of points, a data value at the fourth point from the one point of the pair of points can be categorized as being at the fourth point. This process can be repeated for each gap size (e.g., 2, 4, 8, 16, etc.) until all data values between the pairs of points in the set of points are categorized, or until the data values in the one or more categories satisfy a predetermined criteria.

At block706, a determination can be made that the data values in the one or more categories satisfy a predetermined criteria. The predetermined criteria can be defined by at least a total number of data values in one category reaching a threshold, or a summation of the data values in one category reaching a threshold. Alternatively, the predetermined criteria can be defined by totals of data values in multiple categories reaching one or more thresholds, or summation of the data values in multiple categories reaching one or more thresholds.

At block708, a frequency associated with the data values can be determined using at least time data corresponding to the data values. For example, each of the categorized data values can be associated with a time stamp (e.g., a time when a sensor was measuring an operating condition of an engine). The categorized data values can be analyzed based on their time stamps to provide a frequency estimate for the categorized data values. The frequency estimate can correspond to an operating condition of the vehicle. For example, a sensor providing data to the smart tracker device can be responsive to rotations of the engine of the vehicle. Therefore, the method700can be used to determine a frequency of rotation of the engine (i.e., RPMs of the engine). Alternatively, the sensor providing data to the smart tracker device can be responsive to rotations of the wheels of the vehicle. Therefore, the method700can be used to determine a frequency of rotation of the wheels.

FIG. 8is a block diagram of an example computer system810. Computer system810typically includes at least one processor814which communicates with a number of peripheral devices via bus subsystem812. These peripheral devices may include a storage subsystem824, including, for example, a memory825and a file storage subsystem826, user interface output devices820, user interface input devices822, and a network interface subsystem816. The input and output devices allow user interaction with computer system810. Network interface subsystem816provides an interface to outside networks and is coupled to corresponding interface devices in other computer systems.

User interface input devices822may include a keyboard, pointing devices such as a mouse, trackball, touchpad, or graphics tablet, a scanner, a touchscreen incorporated into the display, audio input devices such as voice recognition systems, microphones, and/or other types of input devices. In general, use of the term “input device” is intended to include all possible types of devices and ways to input information into computer system810or onto a communication network.

Storage subsystem824stores programming and data constructs that provide the functionality of some or all of the modules described herein. For example, the storage subsystem824may include the logic to perform selected aspects of method500,600,700, and/or to implement one or more of the analytics engine138, the remote device136, the server214, the server420, the portable computing device118, the smart tracker device102, the smart tracker device202, the smart tracker device418, the portable computing device332, the client devices218, the client devices424, and/or any other device discussed herein.

These software modules are generally executed by processor814alone or in combination with other processors. Memory825used in the storage subsystem824can include a number of memories including a main random access memory (RAM)830for storage of instructions and data during program execution and a read only memory (ROM)832in which fixed instructions are stored. A file storage subsystem826can provide persistent storage for program and data files, and may include a hard disk drive, a floppy disk drive along with associated removable media, a CD-ROM drive, an optical drive, or removable media cartridges. The modules implementing the functionality of certain implementations may be stored by file storage subsystem826in the storage subsystem824, or in other machines accessible by the processor(s)814.

Bus subsystem812provides a mechanism for letting the various components and subsystems of computer system810communicate with each other as intended. Although bus subsystem812is shown schematically as a single bus, alternative implementations of the bus subsystem may use multiple busses.

Computer system810can be of varying types including a workstation, server, computing cluster, blade server, server farm, or any other data processing system or computing device. Due to the ever-changing nature of computers and networks, the description of computer system810depicted inFIG. 8is intended only as a specific example for purposes of illustrating some implementations. Many other configurations of computer system810are possible having more or fewer components than the computer system depicted inFIG. 8.