System and method for vehicle sensing and analysis

Information

  • Patent Grant
  • 11871313
  • Patent Number
    11,871,313
  • Date Filed
    Wednesday, June 30, 2021
    2 years ago
  • Date Issued
    Tuesday, January 9, 2024
    3 months ago
Abstract
A method for monitoring vehicle motion using a mobile device associated with a user including collecting activity data at a mobile device associated with the user; determining a user activity state based on the activity data; determining motion data collection parameters associated with an operating state of the mobile device, based on the user activity state; and collecting motion data at the mobile device based on the motion data collection parameters.
Description
TECHNICAL FIELD

This invention relates generally to the vehicular activity monitoring field, and more specifically to a new and useful system and method for monitoring vehicle-related user activity and vehicle motion in the vehicular activity monitoring field.


BACKGROUND

In order to monitor and understand driving behavior using mobile phone sensor data, it is often necessary to accurately determine whether the vehicle is being driven (e.g., to detect start of driving accurately, to collect data for entire duration of drive, etc.). However, it is important to do this both accurately and efficiently (e.g., while minimizing battery consumption, wasted computational effort, etc.) given various alternative uses and onboard power limitations of mobile devices.


Thus, there is a need in the vehicle monitoring field to create a new and useful system and method for monitoring vehicle motion using a mobile device. This invention provides such a new and useful system and method.





BRIEF DESCRIPTION OF THE FIGURES


FIG. 1 is a flowchart depiction of a method for monitoring vehicle motion using a mobile device;



FIG. 2 is a flowchart depiction of a variation of a method for monitoring vehicle motion using a mobile device;



FIG. 3 is a schematic representation of an embodiment of a portion of a method for monitoring vehicle motion using a mobile device; and



FIG. 4 is a flowchart depiction of a variation of a method for monitoring vehicle motion using a mobile device.





DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following description of preferred embodiments of the invention is not intended to limit the invention to these preferred embodiments, but rather to enable any person skilled in the art to make and use this invention.


1. Overview

As shown in FIG. 1, a method 100 for monitoring vehicle motion includes: collecting activity data at a mobile device associated with the user Silo; determining a user activity state based on the activity data S120; determining motion data collection parameters based on the user activity state S130; and collecting motion data at the mobile device based on the motion data collection parameters S140. The method 100 can additionally include: generating an analysis of collected data S150; and transmitting a communication based on an analysis S160.


In one variation, as shown in FIG. 2, the method 100 for monitoring vehicle motion includes: detecting that a user has breached a geofence using a first sensor of the mobile device S112; determining that the user is in a driving activity state based on a user activity model in response to detecting that the user has breached the geofence S122; determining motion data collection parameters corresponding to an operating state of the mobile device of the user, wherein the operating state is determined, based on the driving activity state, to be a drive state S132; and collecting motion data using a second sensor of the mobile device in accordance with the motion data collection parameters S142.


In a second variation, as shown in FIG. 4, the method can include: detecting a wake event in an idle state (e.g., Block 110; operating in an idle state); executing a start event detection process in response to detecting the wake event; detecting a start event using the start event detection process (e.g., Block S122; operating in an in-detection state); executing a drive analysis process in response to start event detection (e.g., Block S132; starting drive state operation); executing an end detection process when the drive analysis process is executed (e.g., before, after, or in parallel with the drive analysis process), and operating in the idle state in response to detection of an end event by the end detection process.


The method 100 can also include analyzing the motion data and extracting a set of vehicle movement characteristics S152, and transmitting a notification to a remote entity based on at least one of the extracted vehicle movement characteristics exceeding a threshold value of a vehicle motion parameter S162.


In specific examples, the method 100 can include any of the processes and/or blocks substantially as described in U.S. application Ser. No. 14/206,721, entitled “System and Method for Determining A Driver in A Telematic Application” and filed 12 Mar. 2014, which is incorporated herein in its entirety by this reference. However, the method 100 can additionally or alternatively include any other suitable blocks and/or processes.


The method 100 functions to enable the accurate detection of the start of a driving session (e.g., driving activity) and collect movement data for the duration of the driving session at a mobile device of the user, while minimizing power consumption of the mobile device (e.g., due to data collection). The method 100 can also function to enable time-efficient and power-efficient collection of vehicle position, velocity, and acceleration (PVA) data. The method 100 can also function to enable accurate and rapid detection of supplementary data (e.g., audio data, vehicle sensor data, etc.).


The method 100 is preferably implemented on a mobile electronic device (e.g., the mobile electronic device of Block S140) removably coupled to a vehicle and/or user (e.g., a smartphone carried inside a car, a smartphone carried by a user); the method 100 may additionally or alternatively be implemented by any electronic device capable of collecting user activity data and vehicle PVA data, and/or a collection of electronic devices in mutual communication and collectively capable of collecting user activity data and vehicle PVA data. The mobile electronic device(s) may be referred to as a mobile device and/or a navigation device. The method is preferably performed by a client or application, but can be performed by a piece of hardware (e.g., an ASIC) or any suitable system. The client preferably runs on a mobile device, but can alternatively run on any other suitable computing system. The client can be a native application, a browser application, an operating system application, or be any other suitable application or executable.


The vehicle to which the mobile electronic device is removably coupled, and in the context of which variations of the method 100 can be implemented, can be an automotive vehicle (e.g., a car, truck, SUV, etc.), a light electric vehicle (e.g., an electric bike, an electric scooter, an electric skateboard, any other suitable electric vehicle that is configured to carry at least one human, etc.), an aerial vehicle (e.g., a fixed wing aircraft, a rotary wing aircraft, a drone, a hovercraft, etc.), a mass transit land vehicle (e.g., a bus, a locomotive train, a light-rail train, etc.), an aquatic vehicle (e.g., a pleasure craft, a ferry, a hydrofoil craft, etc.), and/or any other suitable vehicle.


2. Benefits

Variations of the method can afford various benefits and/or advantages.


First, the technology can leverage non-generic location data (e.g., location datasets, GPS data, beacon data, etc.) and/or motion data (e.g., motion datasets, accelerometer data, gyroscope data, etc.) to conveniently and unobtrusively determine the beginning of a driving session, vehicle motion characteristics during the driving session, and the conclusion of the driving session (e.g., to facilitate data collection during the time of the driving session but not outside the time of the driving session). In examples, the location data and/or motion data can be passively collected at a user's mobile computing device (e.g., a smartphone, a tablet, etc.), such that the technology can perform driving event determination and/or receive driving-related communications without requiring a user to purchase additional hardware (e.g., a specialized onboard device for monitoring traffic-related events, a purpose-built such device, etc.) or for the user to manually indicate the beginning and/or end of a driving session.


Second, the technology can automatically initiate collection of driving data (e.g., movement datasets associated with a driving session), and analyses that result in performance of traffic-related actions (e.g., actions relating to driving on a roadway, in traffic-related scenarios, etc.). Traffic-related actions can include any one or more of controlling the user device, sending a notification to the user or a related entity, generating user-specific content, and/or other suitable user-related actions. Traffic-related actions can additionally or alternatively include controlling the vehicle or subsystems of the vehicle (e.g., brakes, throttle, signals, lights, steering, HVAC, audio-visual, etc.), generating control instructions (e.g., auditory instructions, visual instructions, etc.) for provision to a driver, and/or other suitable control-related actions. Further, in examples, the type of initiated traffic-related action can be tailored to the particular traffic-related communication or event based on movement data (e.g., motion data, location data, etc.) and/or supplemental data. In examples, the technology can include a software development kit for third-parties to integrate the traffic-related communication features into various applications, thereby enabling third-parties to leverage traffic-related event data that is automatically determined and/or communicated in relevant geographic areas for purposes of driving education, ride sharing, valet services, navigation, roadside assistance, insurance processing, emergency services, autonomous vehicle control, advanced driver assistance system operation, and/or other suitable services and applications.


Third, the technology can improve the technical fields of at least vehicle telematics, inter-vehicle networked communication, computational modeling of traffic-related events, and traffic-related event determination with mobile computing device data. The technology can continuously collect and utilize non-generic sensor data (e.g., location sensor data, motion sensor data, GPS data, audio/visual data, ambient light data, etc.) to provide real-time determination of traffic-related events and communication of those events to potentially affected entities. Further, the technology can take advantage of the non-generic sensor data and/or supplemental data (e.g., vehicle sensor data, weather data, traffic data, environmental data, biosignal sensor data, etc.) to better improve the understanding of correlations between such data and traffic-related events and/or responses to such events, leading to an increased understanding of variables affecting user behavior while driving and/or riding in a vehicle and/or traffic behavior at the scale of a population of users driving vehicles.


Fourth, the technology can provide technical solutions necessarily rooted in computer technology (e.g., automatic data collection via a mobile computing platform, utilizing computational models to determine traffic-related events from non-generic movement datasets and/or supplementary datasets collected at mobile computing devices, updating the computational models based on event determination and/or communication accuracy, etc.) to overcome issues specifically arising with computer technology (e.g., issues surrounding how to leverage movement data collected by a mobile computing device to determine traffic-related events, how to automatically communicate traffic-related information to initiate traffic-related actions for responding to traffic-related characterization, etc.).


Fifth, the technology can leverage specialized computing devices (e.g., computing devices with GPS location capabilities, computing devices with motion sensor functionality, wireless network infrastructure nodes capable of performing edge computation, etc.) to collect specialized datasets for characterizing traffic behaviors executed by the vehicle (e.g., under the influence of the driver's control, when controlled by an autonomous control system, etc.).


Sixth, the technology can enable prompt collision detection (e.g., substantially as described in U.S. application Ser. No. 15/727,972, filed 9 Oct. 2017, which is incorporated herein in its entirety by this reference), and communication of the collision to relevant entities (e.g., potentially affected vehicles by transmitting a traffic-related communication to mobile devices within those vehicles, an insurance-related entity by transmitting an FNOL to the entity, etc.).


However, the method 100 and/or variations thereof can additionally or alternatively afford any suitable benefits.


3. Method

As shown in FIG. 1, a method 100 for monitoring vehicle motion includes: collecting activity data at a mobile device associated with the user Silo; determining a user activity state based on the activity data S120; determining motion data collection parameters based on the user activity state S130; and collecting motion data at the mobile device based on the motion data collection parameters S140. The method 100 can additionally include: generating an analysis of collected data S150; and transmitting a communication based on an analysis S160.


3.1 Collecting Activity Data

Block S110 includes collecting activity data. Activity data is preferably data that describes the activity of the user, and more preferably describes the activity of the user in relation to driving of a vehicle. For example, activity data preferably includes data indicative of whether the user is driving (e.g., actively controlling a vehicle, riding in a vehicle being actively driven, riding in a moving vehicle, etc.), about to drive (e.g., imminently, within a predetermined threshold time period such as one minute, five minutes, etc.), has stopped driving within a recent time period (e.g., five minutes, one minute, a period equivalent to a movement data collection interval, etc.), and any other suitable characteristic of user activity in relation to driving events (e.g., driving sessions).


In relation to Block S110, driving of a vehicle can include operating a motor vehicle (e.g., an automotive vehicle), using a light vehicle (e.g., a bicycle, a scooter, a skateboard, etc.) which can be powered (e.g., electric powered, gas powered, etc.) and/or unpowered (e.g., human powered, pedaled, etc.), operating any other suitable vehicle as described above, and/or performing any other suitable actions associated with control of a vehicle.


In relation to Block S110, activity data preferably includes movement data (e.g., accelerometer data collected at a sensor of the mobile device of the user) and supplementary data (e.g., contextual data collected in association with the movement data). Supplementary data is preferably data that can be used in combination with, to filter, to control for errors in, and/or otherwise supplement movement data in order to determine user activity (e.g., in Block S120). Additionally or alternatively, supplementary data can be used by portions of the method 100 in a manner independent of movement data. Supplementary data can include any one or more of: user data (e.g., indicative of user information describing one or more characteristics of one or more users and/or associated devices, etc.), audio data (e.g., audio recorded by a plurality of mobile devices; audio associated with a phone call; associated with conversations which can indicate that a user is intending to imminently begin a driving session or is starting a trip; environmental audio; vehicular audio, such as engine audio; etc.), optical data (e.g., imagery; video; internal vehicle-facing optical data of users operating a vehicle; external vehicle-facing optical data of route, landmarks, geographical markers, and/or the speed at which such objects are passing by the optical sensor; optical data capturing users entering or exiting the vehicle, such as from the driver side or passenger side; mobile device camera data; etc.), vehicle data (e.g., vehicle proximity sensor data; OBD data; vehicle operation data; vehicle camera data; PVA data; fuel data; motion sensor data; etc.), traffic data (e.g., route data, which can be used to determine that the mobile device is in a vehicle and/or traversing vehicle-only routes; type of vehicular path such as freeway road or local road; etc.), biometric data (e.g., cardiovascular parameters, such as heart rate, which can be indicative of user driving behavior in response to different traffic conditions; sleep metrics; respiration data; biological fluid data; etc.), environmental data (e.g., weather conditions, which can be correlated with frequency of a particular user to operate a vehicle during such weather conditions; road conditions; pressure conditions; air quality; etc.), and/or any other suitable data for facilitating determination of user activity states, vehicle movement characteristics, and/or other suitable data.


Relating to Block S110, user activity data (e.g., user activity datasets) can include any one or more of: device datasets (e.g., describing devices associated with the user; historical pairings and/or communications with other devices, such as vehicles and/or other user devices via Bluetooth or other communication protocols; etc.); behavioral datasets (e.g., behavior data upon which user activity models can be based or generated for users and/or user accounts; social media datasets derived from social media actions taken by the user and/or related to the user, which can indicate user activity states corresponding to social media actions; physical activity datasets associated with movement patterns of the user; etc.); demographic datasets (e.g., nationality, ethnicity, age, gender, etc.); device event datasets (e.g., associated with text messaging; phone calling; device idling; device charging; application usage; sensor usage; intelligent personal assistants; outputs such as media casting; inputs; etc.), and/or any other suitable datasets associated with a user. Vehicle data can include any one or more of: proximity sensor data (e.g., radar, electromagnetic sensor data, ultrasonic sensor data, light detection and ranging, light amplification for detection and ranging, line laser scanner, laser detection and ranging, airborne laser swath mapping, laser altimetry, sonar, etc.), vehicle camera data (e.g., in-car cameras, exterior cameras, back-up cameras, dashboard cameras, front-view cameras, side-view cameras, image recognition data, infrared camera, 3D stereo camera, monocular camera, etc.), car speed, RPM data, odometer, altimeter, location sensor data (e.g., GPS data, compass data, etc.), motion sensor data (e.g., from an accelerometer, gyroscope, etc.), environmental data (e.g., pressure, temperature, etc.), light sensor data (e.g., from infrared sensors, ambient light sensors, etc.), fuel level (e.g., percentile-based, distance-based, low warning, etc.), fuel system status, oxygen sensor data, throttle position, gear data (e.g., drive, neutral, park, reverse, gear number, etc.), HVAC data (e.g., current temperature, target temperature, etc.), driving status (e.g., restricted features such as user inputs into control panel, unrestricted features, etc.), connectedness status (e.g., near-field communication pairing between the vehicle and a user's mobile device), and/or any other suitable vehicle data. For example, vehicle data can be used in comparisons with mobile device-derived movement data in training, updating, and/or otherwise processing computational models described herein and/or other suitable models. However, supplementary data types can be configured in any suitable manner.


Block S110 preferably includes collecting user activity data at devices used in collecting movement data (e.g., a mobile device associated with the user), but can additionally or alternatively include collecting user activity data at a distinct device (e.g., another mobile device, medical device, other user device, third party database, etc.). For example, Block S110 can include collecting device event data (e.g., application usage, locks, unlocks, etc.) from a mobile device during a time period in which movement data from the mobile device is being collected. In another example, Block S110 can include collecting first supplementary data of a first type (e.g., device event data) from a first mobile device (e.g., where the corresponding user has permitted such data collection, etc.) during a time period; and collecting second supplementary data of a second type (e.g., audio data, etc.) from a second mobile device during the time period. However, collecting supplementary data can be performed at any suitable components associated with any suitable portions of the method 100.


Block S110 can be performed by the application (e.g., a native application executing in the background, a client, etc.); the operating system of the mobile device (e.g., iOS™, Android™); a remote computing system associated with the operating system; or by any suitable system. In variants where S110 is performed by the operating system or remote system associated with the operating system, the method can reduce additional resource consumption (e.g., battery consumption) because the underlying data is being collected and used for other processes; the application itself is minimizing or not consuming any additional resources. In one variation, Block S110 includes setting a wake condition with the mobile device operating system, wherein the mobile device operating system delivers an event (e.g., notification) to the application, launches the application, progresses to Block S120, or otherwise triggers further application operation in response to the condition being met.


In a variation, Block S110 includes Block S112, which includes detecting that a user has breached a geofence using a first sensor of the mobile device. Block S112 functions to trigger the determination of user activity (e.g., in Block S120), in response to detecting that the user has crossed a virtual barrier (e.g., geofence). Block S112 can also function to indicate (e.g., preliminarily) the user activity (e.g., wherein the user activity involves moving). The first sensor of the mobile device is preferably a location sensor (e.g., a GPS sensor subsystem) and a suitable set of hardware and/or software components for setting a geofence and determining that a geofence has been crossed (e.g., a GPS application executing on the mobile device CPU and operating system). In variants, Block S112 can function as the wake condition passed by the application to the mobile device operating system and/or be the wake condition detected by the operating system. However, the wake condition can include: user activities being classified as non-stationary (e.g., based on a subscription to operation-system logged user activity updates); user activities being classified as a predetermined activity class (e.g., motion above a velocity threshold); mobile device execution of a vehicle-associated application (e.g., a vehicle OEM or vehicle control application being launched); occurrence of an activity update (e.g., Android™ activity update) that the application has subscribed to; or be any suitable wake condition.


In relation to Block S112 and other Blocks of the method 100 including the user of a geofence, the geofence can be a static geofence (e.g., a geofence made up of a curve virtually located at a fixed position relative to a predetermined location), a dynamic geofence (e.g., a geofence that has an adjustable curve virtually located at a moveable position relative to a predetermined or dynamically determinable location), a temporally-variable geofence (e.g., a static or dynamic geofence that is monitored during a predetermined time period or schedule), and any other suitable type of virtual geographic barrier. The geofence can be a closed curve (e.g., a circle, an amorphous closed shape, a 2D footprint corresponding to a building, etc.) or an open curve (e.g., a line, an arc, a sinuous curve, a threshold corresponding to a building egress point, etc.). In some variations, the geofence can be updated periodically (e.g., continuously, with a constant period, with a speed-based period, asynchronously, and any other suitable temporal characteristics, etc.). In a specific example, the geofence is defined as a circle having a variable radius based upon the speed of the user (e.g., computed based on the distance between two sequential measured locations of the user divided by the elapsed time between the measurements of the two sequential points) and is centered at the mobile device, wherein the variable radius is determined based on the speed such that the geofence is crossed at a constant frequency (e.g., approximately constant) if the speed is held constant. In a specific example, when the wake condition includes breaching a geofence (or entering a geofence), the set geofence (e.g., the geofence set prior to meeting the wake condition, the geofence set as a result of meeting the wake condition, etc.) can be centered about the mobile device location and have a small radius (e.g., 1 m, 5 m, etc.). However, the geofence can be otherwise suitably determined and manipulated.


3.2 Determining a User Activity State

Block S120 includes determining a user activity state. Block S120 functions to discern when a user has entered a driving state (e.g., when the user is beginning to operate a vehicle, when the user will imminently be in a moving vehicle, when the user has started a ride on a light electric vehicle, etc.). Block S120 can also function to discern when a user has entered a non-driving state (e.g., has not entered a driving state, has exited a driving state, will not imminently enter a driving state, will imminently exit a driving state, etc.).


Block S120 is preferably performed at the mobile device of the user, more preferably by the application running on the mobile device (e.g., native application) but alternatively by the operating system, a browser application or other application; but can additionally or alternatively be performed and/or executed at any suitable computing system in communication with the mobile device (e.g., a remote computing system).


Determining the user activity state is preferably based on the activity data (e.g., collected in Block S110). In particular, determining the user activity state is preferably based on a user activity model that outputs the user activity state based on the input of the user activity data. However, the user activity state can be otherwise suitably determined based on the activity data (e.g., via retrieval of user activity state data correlated to the activity data from a database, via direct input or selection from a user at an application executing on the mobile device, etc.).


In a first variation, an example of which is shown in FIG. 3, Block S120 includes Block S122, which includes determining the user activity state based on a user activity model. The user activity model is preferably one of a plurality of user activity models, each of the plurality of user activity models associated with a single user activity (e.g., walking, biking, sitting, etc.); however, the user activity model can additionally or alternatively be a single multi-activity user activity model. The user activity model preferably generates the user activity state as an output and receives the activity data (e.g., as described above) as an input. The user activity models used in accordance with Block S122 preferably include a walking model, a biking model, a flying model, a resting (e.g., substantially immobile) model, and a driving model, but can additionally or alternatively include any suitable models for any suitable activity.


In specific examples, the user activity model can be a memory-based model that uses a series of activity updates (e.g., received from a mobile device operating system that determines a categorization of user activity based on user interactions with the device operating system and outputs the categorization as an activity update) accumulated over time to build the user activity model. The memory-based model can subsequently be used to categorize user activity as a particular user activity state (e.g., driving, walking to a parking lot, sitting at the user's desk, maintaining the user's ranarium, etc.). However, the user activity model can be a deterministic model, a set of rules, a model trained according to machine-learning algorithms, and any other suitable type of model.


In a first example, Block S122 includes: storing a series of condition-based queries; sending the first query of the series to the mobile device operating system and/or associated computing system in response to Block S110 occurrence; sending the next query to the computing system in response to the returned data (returned by the computing system) satisfying the condition associated with the query; and detecting a start event (e.g., drive start event) when the last query is satisfied and/or the last condition is satisfied. The condition can be activity updates (e.g., determined by an Android™ operating system) having a predetermined value, class, or other parameter value; or be any suitable condition.


In a second example, Block S122 includes accumulating activity updates (e.g., determined by the application, determined by the operating system, etc.); and detecting a start event when the pattern, combination, or other permutation of the activity updates satisfies a predetermined pattern, combination, confidence level, or other metric. However, Block 122 can be otherwise performed.


In the above examples, the series or pattern of conditions can be stored as a tree-based model, wherein each condition can be a node. However, the queries can be otherwise stored. Each parent condition or node in the tree preferably has a lower resource cost (e.g., consumes less batteries, uses sensor data that requires less processing power and/or battery power, etc.) than the child condition or node, but the tree can be structured such that the high-resource nodes are parent nodes of low-resource children nodes, structured independent of node resource requirements, or otherwise structured.


In a specific example, the tree can include, in series: detecting a geofence breach (e.g., based on sampling from the GPS module; based on a GPS event notification from an activity subscription; etc.); determining that the activity is not a non-driving event (e.g., based on sampling from the IMU, based on a walking or biking event notification from an activity subscription; etc.); verifying that a short-range radio (e.g., Bluetooth) is connected to a vehicle endpoint (e.g., wherein the vehicle endpoint can be manually tagged as a vehicle, be associated with a vehicle OEM prefix, etc.); and verifying that a mid-range radio (e.g., WiFi, ZigBee) is not connected to a mid-range endpoint (e.g., a home router), wherein the method can default to Block S110 if any of the conditions fail. If the aforementioned conditions are satisfied, the application can determine mobile device movement parameters (e.g., velocity, acceleration) by turning on sensor data (e.g., GPS and inertial sensors) and/or using other higher-powered operations. If the mobile device movement satisfies a movement condition (e.g., the velocity exceeds a predetermined threshold), then the method can run Block S130; if the movement condition is not satisfied, the method can default to Block S110 and/or keep monitoring the mobile device movement until a cessation condition is reached (e.g., a timer expires, a threshold number of attempts has been met, etc.).


3.3 Determining Collection Parameters

Block S130 includes determining collection parameters. Block S130 functions to determine features of movement dataset collection that guide the collection of movement dataset(s) (e.g., in accordance with various operating modes of an application executing at least a portion of the method 100). Block S130 can also function to define operating modes or states of data collection and/or processing devices (e.g., a mobile device of the user).


Block S130 can include determining an operating state of the mobile device associated with the user. The mobile device operating state can be an idle state, an in-detection state, a drive state, and any other suitably defined state. Block S130 can include operating the mobile device in one of the plurality of operating states (e.g., idle state, in-detection state, and drive state), preferably based on the activity data but additionally or alternatively having any other suitable basis.


Operating states preferably dictate how GPS data is collected, including data collection frequency, GPS receiver power state, GPS-related application states, and the like. S130 preferably includes collecting GPS data when necessary for vehicle movement analysis purposes, while ceasing to query the GPS receiver when GPS data collection is not necessary (e.g., by powering the GPS receiver off, by operating the GPS receiver in a standby state associated with a slower sampling rate, by querying the GPS receiver at a slower rate, etc.). Alternatively, GPS data may be used for multiple reasons (e.g., for both navigation and accident detection purposes), in these cases, GPS data may be collected whenever desired for any purpose. For example, GPS data may be collected and used for accident detection (even if other sources of PVA data are available) anytime it is already being collected for another purpose.


Mobile device operating states (as they pertain to GPS data collection) may be determined (e.g., set) based on any input data. For example, S130 may include determining GPS data collection parameters differently depending on mobile device battery state (e.g., charge level, charging status), time of day, location, route knowledge (e.g., how much data has been collected about the current route and/or position), GPS signal quality, or any other data.


Block S130 can include Block S132, which includes determining motion data collection parameters corresponding to the operating state of the mobile device of the user. Block S132 functions to determine the data collection parameters that correspond to the determined operating state of the mobile device, and can also function to collect the data according to the data collection parameters thus determined.


In relation to Block S132, the idle state preferably utilizes a minimum of mobile device power. In the idle state, the mobile device preferably monitors collected data (e.g., data collected in accordance with Block S110) for triggers, and upon detection of triggers implements a test (e.g., in accordance with Block S120) to check that driving has started, and in cases wherein driving has started Block S130 preferably includes transitioning the mobile device to operation in the drive state. In the idle state, a geofence is preferably defined about the location of the mobile device (e.g., the location of the user) such that a trigger is generated when the user enters or exits the geofenced area; the geofence region around the location is preferably sized such that the user crosses the geofence when the user moves substantially (e.g., leaves the location of the geofence such as a workplace, a room, a building, a city block, etc.).


In relation to Block S132, the in-detection state preferably minimizes the amount of processing and/or sensor data used to detect the start of a driving session and further minimizes the number of false positive trip-start detections. In the in-detection state, the mobile device preferably implements one or more tests, which can include executing a user activity model, checking that a geofence has been breached, checking if a user's mobile device has paired with a vehicle computing system (e.g., via Bluetooth), checking if a user's mobile device is connected to a stationary local network (e.g., a home WiFi network, an office WiFi network, etc.), and any other suitable tests. In some variations, if the one or more tests are satisfied, speed of movement data is subsequently collected (e.g., GPS data, inertial sensor data) and used to determine speed of movement. In such variations, if the speed is above a threshold speed (e.g., greater than a walking speed, a biking speed, 40 mph, etc.) and/or the movement is otherwise suitably characteristic of driving motion, then the mobile device is transitioned into the drive state, whereas if the speed is below the threshold speed and/or not otherwise suitably characteristic of driving, the mobile device is transitioned into the idle state.


In relation to Block S132, the drive state (e.g., driving state) preferably includes collecting sensor data without disruption (e.g., for the span of the driving session at suitable frequencies and/or intervals) while minimizing resource consumption (e.g., power consumption, data consumption, etc.). In an example, the drive state includes: in response to detection of a geofence breach, establishing a new geofence having the current location at the center and having a radius proportional to driving speed, such that the number of instances of the geofence being breached is substantially constant per unit time (e.g., the radius can be changed as a function of the driving speed to achieve a substantially constant number of breaches per unit time). In this example and related examples, the existing geofence can be reset in response to detection of the speed of the vehicle decreasing below a threshold value (e.g., 50% of the previously-detected speed at a point in time, a fraction of the maximum speed during the driving session, a percentage decrease in speed of any suitable degree, etc.) in order to regularize the geofence breaching interval as described (e.g., to hold the number of geofence breaches per unit time substantially constant). In another example, in the drive state a persistent notification is pushed to the foreground of the mobile device operating system to prevent termination of the data collection routines (e.g., backgrounding of the application executing data collection).


The drive state can additionally or alternatively include detecting walking (e.g., executing an instance of Block S120) at the end of a driving session, which can trigger transition of the mobile device out of the drive state (e.g., into the idle state, into the in-detection state, etc.). Detecting walking in the drive state can function to reduce resource consumption by accurately and efficiently ceasing data collection outside the bounds of a driving session. In a specific example, the drive state can include ceasing GPS data collection in response to the driving speed (e.g., the user's speed) dropping substantially to zero (e.g., when the user is stopped at an intersection), and continuing to monitor accelerometer output (e.g., from an inertial sensor of the mobile device). In this example, the drive state includes resuming GPS data collection in response to detection of an accelerometer output corresponding to resumption of driving (e.g., when the user accelerates through the intersection after stopping) during the driving session.


3.4 Collecting a Movement Dataset

Block S140 includes: collecting a movement dataset (e.g., a position, velocity, acceleration dataset or PVA dataset, a motion dataset, motion data, movement data, etc.). Block S140 functions to collect movement-related data (e.g., speed, heading, derivatives of velocity including acceleration, jerk, etc.) associated with a vehicle. The vehicle is preferably driven by the user and/or containing the user as the vehicle is driven by a third-party entity, but in alternative variants the vehicle can be otherwise associated with the user (e.g., owned by the user and operated by a third party, registered to the user, driven without the user's knowledge and/or without containing the user, etc.).


Block S140 functions to collect data pertaining to vehicle position, velocity, and/or acceleration for use in other Blocks of the method 100 (e.g., Blocks S120, S150, S160, etc.).


Movement datasets preferably describe at least one of position, velocity, and/or acceleration (PVA) of one or more vehicles, user devices (e.g., user smartphones), users, and/or any other suitable entities, but can additionally or alternatively describe any suitable movement-related characteristic. Movement datasets are preferably sampled at one or more movement sensors indicative of one or more of motion and/or location, which can include one or more of: motion sensors (e.g., multi-axis and/or single-axis accelerometers, gyroscopes, etc.), location sensors (e.g., GPS data collection components, magnetometer, compass, altimeter, etc.), optical sensors, audio sensors, electromagnetic (EM)-related sensors (e.g., radar, lidar, sonar, ultrasound, infrared radiation, magnetic positioning, etc.), environmental sensors (e.g., temperature sensors, altitude sensors, pressure sensors, etc.), biometric sensors, and/or any other suitable sensors.


In a variation, Block S140 can include deriving movement data from collected signal data (e.g., in relation to EM signals transmitted and/or received by mobile devices, vehicles, etc.), such as based on signal quality (e.g., in-vehicle WiFi signal quality; differences in cellular signal quality for mobile devices within a vehicle; Bluetooth signal quality between mobile devices in a vehicle, between mobile devices and a vehicle media system; etc.), received signal strength indicators, Wi-Fi positioning system parameters, signal angle of arrival (e.g., with directional sensors), and/or any other suitable signal-related data. In another variation, Block S140 can include deriving movement data from visual data (e.g., deriving PVA data from video taken by a smartphone's camera and/or vehicle camera; derived from visual markers captured in optical data, such as geographical markers, markers indicated by satellite imagery; etc.) and/or audio data (e.g., deriving motion from Doppler effects captured in data from the smartphone's microphone, etc.). In another variation, Block S140 can include collecting laser rangefinder data sampled using lasers associated with a vehicle. In another variation, Block S140 can include collecting movement data from data collected at the vehicle (e.g., vehicle sensors described herein and/or other suitable vehicle sensors), where the movement data can be received through wired communication (e.g., transmission of data from the vehicle to a mobile device through a wired communication channel, etc.) and/or wireless communication (e.g., transmission of data from the vehicle to a remote vehicle movement determination system through WiFi; transmission of data from the vehicle to the mobile device through Bluetooth, and transmission of the data from the mobile device to the remote vehicle movement determination system; etc.). Movement-related data collected from any suitable components (e.g., different types of mobile devices, etc.) can be processed together, individually, and/or in any suitable manner. However, movement data can be derived from any suitable components in any suitable manner.


Block S140 preferably includes collecting one or more location datasets (e.g., collecting location data), which can include any one or more of: GPS data (e.g., position coordinates, associated time stamps, etc.), indoor positioning system data, local positioning system data, multilateration data, GSM localization data, self-reported positioning, control plane locating data, compass data, magnetometer data, and/or any other suitable location-related data. In an example, GPS data can be leveraged for complete PVA solutions, but can additionally or alternatively include any movement data, such as retrieved using GNSS data (e.g., via GLONASS, Galileo, BeiDou). In another example, proximity sensors associated with mobile phones (e.g., for capacitive proximity sensing; IR-based proximity sensing; etc.) can be used to in determining location of objects (e.g., users within a vehicle). In another example, Block S140 can include collecting a micro-location dataset (e.g., sampled using beacons within and/or mounted to a vehicle). In another example, Block S140 can include collecting a location dataset sampled by a mobile device and indicating the location of the mobile device within the vehicle (e.g., proximal front of vehicle; back of vehicle; etc.). However, collecting location datasets can be performed in any suitable manner.


Block S140 preferably includes collecting one or more motion datasets (e.g., collecting motion data), which can include one or more of: accelerometer data (e.g., single-axis data, multi-axis data), gyroscope data (e.g., single-axis data, multi-axis data), velocity data (e.g., speed, instantaneous velocity, average velocity, change in velocity, velocity variability over time, maximum velocity, minimum velocity, etc.), acceleration data (e.g., instantaneous acceleration, gravitational acceleration, average acceleration, change in acceleration, acceleration variability over time, maximum acceleration, minimum acceleration, etc.), displacement data, orientation data, rotation data, turning data, and/or any other suitable motion-related data. In an example, Block S140 can include collecting a motion dataset for a user entering or exiting a vehicle (e.g., where the motion dataset can be indicative of whether the user is a driver or passenger entering or exiting the vehicle from a driver seat door or passenger seat door; where the motion dataset indicates walking patterns of the user in relation to entering or exiting a vehicle; etc.). However, collecting motion datasets can be performed in any suitable manner.


In relation to Block S140, movement datasets (and/or supplementary datasets) are preferably sampled by components arranged at a mobile device, but can additionally or alternatively be sampled by components associated with (e.g., arranged at, positioned within, mounted to, physically connected to, etc.) any suitable device and/or vehicle. Movement datasets (and/or supplementary datasets) are preferably associated with one or more users (e.g., collected at a mobile device of the user; collected at a mobile device physically proximal a user; stored in association with user accounts for one or more users; movement datasets describing user movement, such as pre-, during, and/or post-driving session; etc.). Further, movement datasets are preferably associated with one or more driving sessions, which can be characterized by characteristics and/or patterns in movement data (e.g., movement data indicating movement that is characteristic of a vehicle) and/or supplementary data (e.g., engine sounds as sensed by a smartphone microphone), and where driving sessions can include movement of, stoppage of, operation control related to, and/or other suitable aspects associated with vehicles. Additionally or alternatively, movement datasets can be associated or independent of any suitable entities.


Block S140 preferably includes collecting movement data continuously from mobile devices in a vehicle (e.g., during vehicle operation), such as in real-time, but can additionally or alternatively include collecting movement data periodically (e.g., at vehicle stoppage events, at predetermined time intervals such as every minute, etc.), and/or in temporal relation (e.g., in response to, etc.) to trigger conditions (e.g., movement-related thresholds; satisfaction or failure of device association conditions; conditions associated with supplementary data; etc.), but collecting movement datasets can be performed at any suitable time and/or frequency. Movement datasets are preferably associated with one or more temporal indicators (e.g., a time period, a time point, etc.) describing when the movement data was collected (e.g., sampled at the corresponding sensor, etc.), determined, and/or otherwise processed. Additionally or alternatively, associated temporal indicators can describe temporal context surrounding the movement indicated by the movement data (e.g., when the movement occurred) but can correspond to any suitable temporal indicator or be time-independent. However, collecting movement data S140 can be performed in any suitable manner.


Block S140 preferably includes collecting GPS data from a GPS receiver of the navigation device. GPS data preferably includes complete position, velocity, time (PVT) solutions, but may additionally or alternatively include any PVA data retrieved using GNSS data (e.g., via GLONASS, Galileo, BeiDou). GPS data is preferably used as a source of both position and velocity data. Velocity data is preferably collected directly from the GPS PVT solution, but may additionally or alternatively be derived from change in position over time (i.e., average velocity). GPS data may additionally or alternatively be used as a source of acceleration data (as derived from change in velocity over time).


Block S140 may additionally or alternatively include collecting PVA data from any other source. For example, S140 may include collecting acceleration data from gyroscopes and/or inertial measurement units (IMU). As another example, S140 may include collecting PVA data using visual data (e.g., deriving velocity from video taken by a smartphone's camera).


Block S140 preferably includes collecting PVA data whenever the mobile device (e.g., navigation device) is in a moving vehicle, but may additionally or alternatively include collecting PVA data at any suitable times and/or ranges of times.


Block S140 preferably also includes collecting PVA data using one or more accelerometers (i.e., collecting accelerometer data). Accelerometer data is preferably used as a source of acceleration data. As with GPS data, accelerometer data is preferably collected based on an operating state of the mobile device (e.g., determined in one or more variations of Block S130), but may additionally or alternatively be collected in any manner.


In variations of Block S140, accelerometer data can be used as a source of position data and/or velocity data. Accelerometer data is preferably used as a source of position data by comparing accelerometer patterns to a map reference with known patterns (e.g., road surface vibration patterns measured by the accelerometer that correlate to a specific stretch of road and therefore a specific geographic location, vibration patterns that correspond to road features of a known physical spacing that can be converted to a velocity, etc.), but can additionally or alternatively utilize dead-reckoning (e.g., double integration of acceleration time series starting from a known position), and any other suitable manner for deriving or estimating position and/or velocity data.


In a variation, Block S140 includes collecting motion data using a second sensor of the mobile device in accordance with motion data collection parameters S142. The motion data collection parameters are preferably determined as described above in relation to Block S130, but can be otherwise suitably determined.


3.5 Generating Analyses

The method 100 can additionally or alternatively include Block S150, which includes generating an analysis of a movement dataset (e.g., collected in Block S140). Block S150 can function to determine characteristics (e.g., an analysis) describing one or more of: vehicles (e.g., PVA-related characteristics; type of vehicle, such as including autonomous properties; etc.), users (e.g., classifications of passenger or driver; driver behavior; passenger behavior; etc.), and/or any other suitable entities.


Determining the vehicle movement characteristic can include any one or more of: combining datasets (e.g., processing a plurality of movement datasets associated with a plurality of mobile devices to extract a set of movement features to input into a vehicle movement model; etc.), and/or otherwise processing datasets (e.g., using processing techniques described herein, etc.) to improve accuracy and/or other suitable aspects associated with vehicle movement characteristic (e.g., processing speed, storage and/or retrieval associated with the vehicle movement characteristic, etc.).


Block S150 can additionally or alternatively include Block S155, which includes processing a dataset (e.g., a movement dataset, a user activity dataset, etc.). Block S155 functions to process data collected in other Blocks of the method 100 into a form suitable for determining user activity, analyzing vehicle movement, and/or any other suitable data analysis. Processing datasets (e.g., in Block S155 and/or any other suitable portion of the method 100) can include any one or more of: extracting features (e.g., from a plurality of datasets collected at a plurality of mobile devices, etc.), performing pattern recognition on data (e.g., comparing current movement datasets to reference movement datasets), fusing data from multiple sources, combination of values (e.g., averaging values, etc.), compression, conversion (e.g., digital-to-analog conversion, analog-to-digital conversion), performing statistical estimation on data (e.g. ordinary least squares regression, non-negative least squares regression, principal components analysis, ridge regression, etc.), wave modulation, normalization, updating, ranking, weighting, validating, filtering (e.g., for baseline correction, data cropping, etc.), noise reduction, smoothing, filling (e.g., gap filling), aligning, model fitting, binning, windowing, clipping, transformations, mathematical operations (e.g., derivatives, moving averages, summing, subtracting, multiplying, dividing, etc.), multiplexing, demultiplexing, interpolating, extrapolating, clustering, image processing techniques (e.g., image filtering, image transformations, histograms, structural analysis, shape analysis, object tracking, motion analysis, feature detection, object detection, stitching, thresholding, image adjustments, etc.), other signal processing operations, other image processing operations, visualizing, and/or any other suitable processing operations. In an example, Block S155 can include associating different data (e.g., different data collected at different mobile devices, different data types, same data type, etc.) based on a common and/or overlapping temporal indicator (e.g., time point, time window, time period, etc.), which can enable data collected from multiple sources during a common temporal indicator to be processed and/or analyzed together.


Block S155 is preferably performed at a vehicle movement determination system (e.g., remote computing system, etc.), but can additionally or alternatively be performed at mobile devices and/or at any suitable components at any suitable time and frequency (e.g., in response to collecting a threshold amount and/or threshold types of data, etc.). However, processing at least one of a movement dataset and a supplementary dataset can be performed in any suitable manner.


3.6 Transmitting Communications

The method 100 can additionally or alternatively include Block S160, which includes transmitting a communication based on the analysis (e.g., generated in Block S150). Block S160 functions to notify an entity of a result and/or consequence of the analysis.


In an example, Block S160 can include reporting an accident to an insurance-related entity in response to an analysis of the motion data indicative that an accident has occurred. Reporting the accident (e.g., collision) can include providing a first notice of loss (FNOL) to the insurance-related entity (e.g., retail insurer, insurance underwriter, policy holder, policy underwriter, policy issuer, etc.). An FNOL can be provided automatically (e.g., without user input at the mobile device), semi-automatically (e.g., wherein data pertaining to the collision is automatically entered into an FNOL form and final authorization to send is provided by the user at the mobile device).


In additional or alternative examples, Block S160 can include any suitable traffic-related communications analogous to those described in U.S. application Ser. No. 16/166,895, entitled “Method and System for Vehicular-Related Communications” and filed 22 Oct. 2018, which is incorporated herein in its entirety by this reference.


However, Block S160 can additionally or alternatively include transmitting any suitable communication for any suitable purpose.


In a variation, Block S160 includes Block S162, which includes transmitting a notification to a remote entity based on at least one of the extracted vehicle movement characteristics exceeding a threshold value of a vehicle motion parameter. Vehicle motion parameters can include speed, lateral acceleration, and any other suitable parameters of vehicle motion.


3.7 Further Specific Examples

In a first specific example, the method for monitoring vehicle motion using a mobile device associated with a user includes detecting that the user has breached a first geofence using at least one of a motion sensor and a location sensor of the mobile device. The first geofence in this example defines a first origin and a first radius. Detecting that the user has breached the first geofence and the subsequent portions of the method are by an application executing on the mobile device, wherein the application is operable between an idle state, an in-detection state, and a drive state. This example of the method further includes transitioning the application into the in-detection state in response to detecting that the user has breached the first geofence, and determining, at the application in the in-detection state, that the user is in a driving activity state based on a user activity model. This example of the method further includes transitioning the application into the drive state (e.g., at a time point) in response to determining that the user is in the driving activity state. Operating the application in the drive state includes: collecting a movement dataset using at least one of the motion sensor and the location sensor, determining a second origin and a second radius based on the movement dataset, and regenerating the first geofence at the second origin and with the second radius. This example of the method further includes analyzing the movement dataset to generate a set of vehicle movement characteristics, and transmitting the set of vehicle movement characteristics to a database and storing the set of vehicle movement characteristics in association with the user (e.g., and the time point).


In a second specific example, the method for monitoring vehicle motion using a mobile device associated with a user is performed by an application executing on the mobile device, wherein the application is operable between an idle state, an in-detection state, and a drive state. In this example, the method includes receiving a trigger at the application operating in the idle state, and, in response to the trigger, operating the application in the in-detection state. Operating the application in the in-detection state includes: collecting activity data using at least one of a motion sensor and a location sensor of the mobile device, determining a user activity state based on the activity data according to a user activity model, and based on the user activity state, operating the application in one of the idle state and the drive state. In this example operating the application in the drive state includes collecting a movement dataset using at least one of the motion sensor and the location sensor, and analyzing the movement dataset to generate a set of vehicle movement characteristics. In this example, operating the application in the idle state includes resetting a trigger condition, wherein satisfaction of the trigger condition generates the trigger (e.g., which is received when operating the application in the idle state).


The system(s) and method(s) of the preferred embodiment and variations thereof can be embodied and/or implemented at least in part as a machine configured to receive a computer-readable medium storing computer-readable instructions. The instructions are preferably executed by computer-executable components (e.g., integrated with the system, making up the system itself, etc.). The computer-readable medium can be stored on any suitable computer-readable media such as RAMs, ROMs, flash memory, EEPROMs, optical devices (CD or DVD), hard drives, floppy drives, or any suitable device. The computer-executable component is preferably a general or application specific processor, but any suitable dedicated hardware or hardware/firmware combination device can alternatively or additionally execute the instructions.


Although omitted for conciseness, the preferred embodiments include every combination and permutation of the various system components and/or method blocks.


As a person skilled in the art will recognize from the previous detailed description and from the figures and claims, modifications and changes can be made to the preferred embodiments of the invention without departing from the scope of this invention defined in the following claims.

Claims
  • 1. A method for driving session monitoring, comprising: at an application operating in an idle state on a mobile device, determining satisfaction of a trigger condition, comprising: determining that the mobile device has breached a geofence;in response to determining satisfaction of the trigger condition, triggering a set of binary test conditions at the application;operating the application in one of the idle state and a drive state, wherein operating the application in the drive state occurs in response to detecting an occurrence of a drive start event based on satisfaction of the set of binary test conditions;in response to operating the application in the drive state: collecting a movement dataset using at least one of a motion sensor of the mobile device and a location sensor of the mobile device; andanalyzing the movement dataset to generate a set of vehicle movement characteristics; andin response to operating the application in the idle state, resetting the trigger condition.
  • 2. The method of claim 1, wherein a binary test condition of the set comprises: verifying that a short-range radio is connected to a vehicle endpoint.
  • 3. The method of claim 1, wherein a binary test condition of the set comprises: verifying that a mid-range radio is disconnected from a mid-range endpoint.
  • 4. The method of claim 3, wherein the mid-range endpoint is a home WiFi router.
  • 5. The method of claim 1, wherein a binary test condition of the set comprises: detecting, at the application, that the user is in a driving activity state according to a user activity model.
  • 6. The method of claim 5, wherein detecting that the user is in a driving activity state comprises determining that an instantaneous speed of the mobile device exceeds a threshold speed.
  • 7. The method of claim 1, wherein detecting that the mobile device is in the driving activity state according to the activity model comprises: evaluating an accumulated series of activity updates extracted from the movement dataset.
  • 8. The method of claim 1, wherein the geofence defines a first origin and a first radius, wherein resetting the trigger condition comprises regenerating the geofence with a second origin coincident with a location of the mobile device.
  • 9. The method of claim 1, wherein collecting the movement dataset comprises collecting location data using the location sensor and motion data using the motion sensor, wherein operating the application in the drive state further comprises: ceasing collecting location data in response to detecting satisfaction of a first movement condition based on the set of vehicle movement characteristics.
  • 10. The method of claim 9, wherein operating the application in the drive state further comprises: resuming location data collection in response to detecting satisfaction of a second movement condition based on motion data.
  • 11. The method of claim 1, wherein collecting the movement dataset comprises collecting location data using the location sensor; wherein operating the application in the drive state further comprises: collecting location data in response to determining that the mobile device has breached the geofence; andregenerating the geofence based on an instantaneous speed of the mobile device.
  • 12. The method of claim 11, wherein operating the application in the drive state further comprises: in response to detecting satisfaction of a change in the instantaneous speed of the mobile in excess of a threshold, regenerating the geofence based on the change in the instantaneous speed.
  • 13. The method of claim 11, wherein the location data is collected based on an elapsed time between a previous geofence breach and the breach of the geofence satisfying a time threshold.
  • 14. The method of claim 1, wherein the motion sensor comprises an inertial sensor.
  • 15. A system for driving session monitoring, comprising: an application executing on a mobile device, the application comprising a tree-based model, wherein the application is operable between an idle state and a drive state, the tree-based model comprising: a parent node associated with the idle state and comprising a geofence breach trigger; anda set of child nodes coupled to the parent node, wherein each child node comprises a respective binary test condition configured to detect a drive start event, wherein the application is configured to operate in the drive state in response to the drive start event;wherein, in the drive state, the application is configured to: collect a movement dataset using at least one of a motion sensor of the mobile device and a location sensor of the mobile device; andanalyze the movement dataset to generate a set of vehicle movement characteristics.
  • 16. The system of claim 15, wherein the application further comprises a user activity model and the set of child nodes comprises a first node, wherein satisfaction of the binary test condition of the first node comprises: determining satisfaction of a driving activity state according to the user activity model, wherein the occurrence of the drive start event is detected based on the satisfaction of the driving activity state.
  • 17. The system of claim 16, wherein satisfaction of the driving activity state is determined based on activity data collected using at least one of the motion sensor and the location sensor of the mobile device.
  • 18. The system of claim 15, wherein the occurrence of the drive start event is detected based on a sequential evaluation of child nodes along a first path, wherein evaluating the binary test condition of each node along the first path is associated with a corresponding resource cost, and wherein the corresponding resource cost of each node is greater than a resource cost of a preceding node along the first path.
  • 19. The system of claim 18, wherein a resource cost of the parent node is less than a resource cost of each child node.
  • 20. The system of claim 18, wherein movement data collected by the movement sensor is used to evaluate the binary test condition of a first child node along the first path, wherein location data collected by the location sensor is associated with a second child node depending from the first node.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No. 16/297,268, filed 8 Mar. 2019, which is a continuation of U.S. application Ser. No. 16/201,955, filed 27 Nov. 2018, which claims the benefit of U.S. Provisional Application Ser. No. 62/679,497, filed 1 Jun. 2018, and U.S. Provisional Application Ser. No. 62/590,945, filed 27 Nov. 2017, each of which is incorporated herein in its entirety by this reference.

US Referenced Citations (254)
Number Name Date Kind
5673039 Pietzsch et al. Sep 1997 A
5864305 Rosenquist Jan 1999 A
6049778 Walker et al. Apr 2000 A
6055477 McBurney et al. Apr 2000 A
6064318 Kirchner et al. May 2000 A
6178374 Moehlenkamp et al. Jan 2001 B1
6240364 Kerner et al. May 2001 B1
6826477 Ladetto et al. Nov 2004 B2
6941222 Yano et al. Sep 2005 B2
7065449 Brewster et al. Jun 2006 B2
7532196 Hinckley May 2009 B2
7668931 Parupudi et al. Feb 2010 B2
7801675 Currie et al. Sep 2010 B2
7881868 Greene et al. Feb 2011 B2
8054168 McCormick et al. Nov 2011 B2
8264375 Devries Sep 2012 B2
8290480 Abramson et al. Oct 2012 B2
8326257 Shiu et al. Dec 2012 B2
8352189 Scott et al. Jan 2013 B2
8369876 Bachmann et al. Feb 2013 B2
8395542 Scherzinger et al. Mar 2013 B2
8489330 Ellanti et al. Jul 2013 B2
8498610 Staehlin Jul 2013 B2
8504035 Shin et al. Aug 2013 B2
8521193 Paek et al. Aug 2013 B2
8577703 McClellan et al. Nov 2013 B2
8634822 Silver et al. Jan 2014 B2
8731530 Breed et al. May 2014 B1
8738523 Sanchez et al. May 2014 B1
8754766 Oesterling et al. Jun 2014 B2
8912103 Heo et al. Dec 2014 B2
8971927 Zhou et al. Mar 2015 B2
8972103 Elwart et al. Mar 2015 B2
8996234 Tamari Mar 2015 B1
9064412 Baur Jun 2015 B2
9121940 Psiaki et al. Sep 2015 B2
9141974 Jones et al. Sep 2015 B2
9185526 Guba et al. Nov 2015 B2
9188451 Magnusson et al. Nov 2015 B2
9221428 Kote et al. Dec 2015 B2
9222798 Curtis et al. Dec 2015 B2
9224293 Taylor Dec 2015 B2
9250090 Hille et al. Feb 2016 B2
9311211 Chatterjee et al. Apr 2016 B2
9311271 Wright Apr 2016 B2
9360323 Grokop Jun 2016 B2
9368027 Jang et al. Jun 2016 B2
9390625 Green et al. Jul 2016 B2
9414221 Simon et al. Aug 2016 B1
9423318 Liu et al. Aug 2016 B2
9449495 Call et al. Sep 2016 B1
9457754 Christensen et al. Oct 2016 B1
9467515 Penilla et al. Oct 2016 B1
9495601 Hansen Nov 2016 B2
9536428 Wasserman Jan 2017 B1
9558520 Peak et al. Jan 2017 B2
9564047 Wu Feb 2017 B2
9566981 Rebhan et al. Feb 2017 B2
9587952 Slusar Mar 2017 B1
9628975 Watkins et al. Apr 2017 B1
9632507 Korn Apr 2017 B1
9633487 Wright Apr 2017 B2
9645970 Boesch et al. May 2017 B2
9650007 Snyder et al. May 2017 B1
9674370 Kim et al. Jun 2017 B2
9689698 Wesselius et al. Jun 2017 B2
9716978 Sankaran Jul 2017 B2
9731713 Horii Aug 2017 B2
9773281 Hanson Sep 2017 B1
9794729 Meyers et al. Oct 2017 B2
9800716 Abramson et al. Oct 2017 B2
9801027 Levy et al. Oct 2017 B2
9805601 Fields et al. Oct 2017 B1
9818239 Pal et al. Nov 2017 B2
9842120 Siris Dec 2017 B1
9852475 Konrardy et al. Dec 2017 B1
9854396 Himmelreich et al. Dec 2017 B2
9868394 Fields et al. Jan 2018 B1
9870649 Fields et al. Jan 2018 B1
9888392 Snyder et al. Feb 2018 B1
9900747 Park Feb 2018 B1
9932033 Slusar et al. Apr 2018 B2
9994218 Pal et al. Jun 2018 B2
10037689 Taylor Jul 2018 B2
10137889 Pal et al. Nov 2018 B2
10157423 Fields et al. Dec 2018 B1
10176524 Brandmaier et al. Jan 2019 B1
10304329 Matus et al. May 2019 B2
10324463 Konrardy et al. Jun 2019 B1
10386192 Konrardy et al. Aug 2019 B1
10490078 Fields et al. Nov 2019 B1
10510123 Konrardy et al. Dec 2019 B1
10533870 Slusar Jan 2020 B1
10559196 Matus et al. Feb 2020 B2
10848913 Pal et al. Nov 2020 B2
10872525 Xu et al. Dec 2020 B2
20020161517 Yano et al. Oct 2002 A1
20020161518 Petzold et al. Oct 2002 A1
20030018430 Ladetto et al. Jan 2003 A1
20040046335 Knox et al. Mar 2004 A1
20040082311 Shiu et al. Apr 2004 A1
20050080555 Parupudi et al. Apr 2005 A1
20050093868 Hinckley May 2005 A1
20050197773 Brewster et al. Sep 2005 A1
20050288856 Ohki et al. Dec 2005 A1
20060074546 Dekock et al. Apr 2006 A1
20060153198 Chadha Jul 2006 A1
20070005228 Sutardja Jan 2007 A1
20070208494 Chapman et al. Sep 2007 A1
20070208501 Downs et al. Sep 2007 A1
20080033776 Marchese Feb 2008 A1
20080103907 Maislos et al. May 2008 A1
20080169940 Lee et al. Jul 2008 A1
20080243439 Runkle et al. Oct 2008 A1
20080312832 Greene et al. Dec 2008 A1
20090024419 McClellan et al. Jan 2009 A1
20100030582 Rippel et al. Feb 2010 A1
20100056175 Bachmann et al. Mar 2010 A1
20100100398 Auker et al. Apr 2010 A1
20100106406 Hille et al. Apr 2010 A1
20100131304 Collopy et al. May 2010 A1
20100198517 Scott et al. Aug 2010 A1
20100219944 Mc et al. Sep 2010 A1
20100273508 Parata et al. Oct 2010 A1
20100299021 Jalili Nov 2010 A1
20100332131 Horvitz et al. Dec 2010 A1
20110077028 Wilkes et al. Mar 2011 A1
20110124311 Staehlin May 2011 A1
20110161116 Peak et al. Jun 2011 A1
20110224898 Scofield et al. Sep 2011 A1
20110246156 Zecha et al. Oct 2011 A1
20110294520 Zhou et al. Dec 2011 A1
20120050095 Scherzinger et al. Mar 2012 A1
20120065871 Deshpande et al. Mar 2012 A1
20120066053 Agarwal Mar 2012 A1
20120089328 Ellanti et al. Apr 2012 A1
20120129545 Hodis et al. May 2012 A1
20120136529 Curtis et al. May 2012 A1
20120136567 Wang et al. May 2012 A1
20120149400 Paek et al. Jun 2012 A1
20120158820 Bai et al. Jun 2012 A1
20120197587 Luk et al. Aug 2012 A1
20120226421 Kote et al. Sep 2012 A1
20120245963 Peak et al. Sep 2012 A1
20130006469 Green et al. Jan 2013 A1
20130041521 Basir et al. Feb 2013 A1
20130052614 Mollicone et al. Feb 2013 A1
20130069802 Foghel et al. Mar 2013 A1
20130096731 Tamari et al. Apr 2013 A1
20130124074 Horvitz et al. May 2013 A1
20130130639 Oesterling et al. May 2013 A1
20130204515 Emura Aug 2013 A1
20130211618 Iachini Aug 2013 A1
20130282264 Bastiaensen et al. Oct 2013 A1
20130302758 Wright Nov 2013 A1
20130316737 Guba et al. Nov 2013 A1
20130317860 Schumann Nov 2013 A1
20130325517 Berg Dec 2013 A1
20130332357 Green et al. Dec 2013 A1
20130344856 Silver et al. Dec 2013 A1
20140038640 Wesselius et al. Feb 2014 A1
20140046896 Potter Feb 2014 A1
20140074402 Hassib et al. Mar 2014 A1
20140081670 Lim et al. Mar 2014 A1
20140114556 Pan et al. Apr 2014 A1
20140188638 Jones et al. Jul 2014 A1
20140197967 Modica et al. Jul 2014 A1
20140207497 Collins et al. Jul 2014 A1
20140232592 Psiaki et al. Aug 2014 A1
20140244150 Boesch et al. Aug 2014 A1
20140244156 Magnusson et al. Aug 2014 A1
20140288765 Elwart et al. Sep 2014 A1
20140288828 Werner et al. Sep 2014 A1
20140358321 Ibrahim Dec 2014 A1
20140358394 Picciotti Dec 2014 A1
20150025917 Stempora Jan 2015 A1
20150084757 Annibale et al. Mar 2015 A1
20150087264 Goyal Mar 2015 A1
20150097703 Baur Apr 2015 A1
20150112731 Binion et al. Apr 2015 A1
20150187146 Chen et al. Jul 2015 A1
20150229666 Foster et al. Aug 2015 A1
20150233718 Grokop Aug 2015 A1
20150246654 Tadic et al. Sep 2015 A1
20150327034 Abramson et al. Nov 2015 A1
20150329121 Lim et al. Nov 2015 A1
20150332407 Wilson et al. Nov 2015 A1
20150334545 Maier et al. Nov 2015 A1
20160021238 Abramson et al. Jan 2016 A1
20160033366 Liu et al. Feb 2016 A1
20160042767 Araya et al. Feb 2016 A1
20160048399 Shaw Feb 2016 A1
20160059855 Rebhan et al. Mar 2016 A1
20160068156 Horii Mar 2016 A1
20160086285 Jordan et al. Mar 2016 A1
20160129913 Boesen May 2016 A1
20160133130 Grimm et al. May 2016 A1
20160150070 Goren et al. May 2016 A1
20160171521 Ramirez et al. Jun 2016 A1
20160174049 Levy et al. Jun 2016 A1
20160189303 Fuchs Jun 2016 A1
20160189442 Wright Jun 2016 A1
20160225263 Salentiny et al. Aug 2016 A1
20160232785 Wang Aug 2016 A1
20160269852 Meyers et al. Sep 2016 A1
20160272140 Kim et al. Sep 2016 A1
20160282156 Ott et al. Sep 2016 A1
20160325756 Cordova et al. Nov 2016 A1
20160328893 Cordova et al. Nov 2016 A1
20160339910 Jonasson et al. Nov 2016 A1
20160358315 Zhou et al. Dec 2016 A1
20160364983 Downs et al. Dec 2016 A1
20160379310 Madigan et al. Dec 2016 A1
20160379485 Anastassov et al. Dec 2016 A1
20160381505 Sankaran Dec 2016 A1
20170034656 Wang et al. Feb 2017 A1
20170053461 Pal et al. Feb 2017 A1
20170097243 Ricci Apr 2017 A1
20170103342 Rajani et al. Apr 2017 A1
20170103588 Rajani et al. Apr 2017 A1
20170115125 Outwater et al. Apr 2017 A1
20170116792 Jelinek et al. Apr 2017 A1
20170124660 Srivastava May 2017 A1
20170126810 Kentley et al. May 2017 A1
20170138737 Cordova et al. May 2017 A1
20170164158 Watkins et al. Jun 2017 A1
20170178416 Barreira Avegliano et al. Jun 2017 A1
20170178422 Wright Jun 2017 A1
20170178424 Wright Jun 2017 A1
20170210323 Cordova et al. Jul 2017 A1
20170211939 Cordova et al. Jul 2017 A1
20170232963 Pal et al. Aug 2017 A1
20170234689 Gibson et al. Aug 2017 A1
20170241791 Madigan et al. Aug 2017 A1
20170279947 Rajakarunanayake et al. Sep 2017 A1
20170289754 Anderson Oct 2017 A1
20170369055 Saigusa et al. Dec 2017 A1
20170371608 Wasserman Dec 2017 A1
20180059669 Madigan et al. Mar 2018 A1
20180061230 Madigan et al. Mar 2018 A1
20180075309 Sathyanarayana et al. Mar 2018 A1
20180090001 Fletcher Mar 2018 A1
20180154908 Chen Jun 2018 A1
20180158329 Benhammou et al. Jun 2018 A1
20180165531 Sathyanarayana et al. Jun 2018 A1
20180174446 Wang Jun 2018 A1
20180276485 Heck et al. Sep 2018 A1
20180308128 Deluca et al. Oct 2018 A1
20180338223 Park Nov 2018 A1
20190007511 Rodriguez Jan 2019 A1
20190035266 Riess et al. Jan 2019 A1
20190281416 Watkins et al. Sep 2019 A1
20190295133 Hirtenstein et al. Sep 2019 A1
20210038979 Bleasdale-Shepherd et al. Feb 2021 A1
Foreign Referenced Citations (22)
Number Date Country
104680356 Jun 2015 CN
108269406 Jul 2018 CN
108431839 Aug 2018 CN
108819841 Nov 2018 CN
3439000 Apr 1986 DE
102008008555 Aug 2008 DE
102017221643 Jul 2018 DE
0534892 Mar 1993 EP
2492369 Apr 2014 GB
2000009482 Jan 2000 JP
2002215236 Jul 2002 JP
2005098904 Apr 2005 JP
2007212265 Aug 2007 JP
2009133702 Jun 2009 JP
2011133240 Jul 2011 JP
2013195143 Sep 2013 JP
2013200223 Oct 2013 JP
20130106106 Sep 2013 KR
2004085220 Oct 2004 WO
2015122729 Aug 2015 WO
2016123424 Aug 2016 WO
2016203298 Dec 2016 WO
Non-Patent Literature Citations (20)
Entry
European Patent Office Search Report for Application No. 16837957.6 dated Feb. 5, 2021.
European Patent Office Search Report for Application No. 16837957.6 dated Jun. 30, 2020.
European Search Report for application No. 18868255.3, dated Jun. 14, 2021.
International Search Report and Written Opinion for PCT Application No. PCT/US2017/051218 dated Nov. 17, 2018.
Walter D et al: “Novel Environmental Features for Robust Multisensor Navigation”,GNSS 2013—Proceedings of the 26th International Technical Meeting of the Satellite Division of the Institute of Navigation, Manassas, Va, Sep. 20, 2013.
European Office Action application No. 16 837 957.6, dated May 29, 2019.
International Search Report and Written Opinion of the ISA, dated Jan. 8, 2019, for application No. PCT/US18/56916.
International Search Report and Written Opinion of the ISA, dated Feb. 14, 2019, for application No. PCT/US18/62665.
Japanese Office Action application No. 2018-506604, dated Jun. 4, 2019.
Chu, Hon Lung , “In-Vehicle Driver Detection Using Mobile Phone Sensors”, https://ece.duke.edu/sites/ece.duke.edu/files/ GWDD2011_Chu.pdf—2011 (Year: 2011).
Giuseppe, Guido , et al., “Using Smartphones As a Tool To Capture Road Traffic Attributes”, University of Calabria, Department of Civil Engineering, via P. Bucci, 87036—Rende (CS) Italy, Applied Mechanics and Materials, vol. 432 (2013, Trans Tech Publications, Switzerland, pp. 513-519.
Kalra, Nidhi , Analyzing Driving and Road Events via Smartphone, International Journal of Computer Applications (0975-8887), vol. 98-No. 12, Jul. 2014, pp. 5-9.
Mohan, Prashanth , et al., Nericell: Rich Monitoring of Road and Traffic Conditions using Mobile Smartphones. Microsoft Research India, SenSys '08, Nov. 5-7, 2008, Raleigh North Carolina, USA, 14 pages.
Short, Jeffrey , et al., “Identifying Autonomous Vehicle Technology Impacts on the Trucking Industry”, http://atri-online.org/wp-content/uploads/2016/11/ATRI-Autonomous-Vehicle-Impacts-11-2016.pdf (Year: 2016).
Tathagata, Das , et al., “PRISM: Platform for Remote Sensing using Smartphones”, In. Proc. Mobisys '10, Jun. 15-18, 2010, San Francisco, USA, pp. 63-76.
Jiangqiang , et al., “Driver Pre-Accident Operation Mode Study Based on Vehicle-Vehicle Traffic Accidents”, 2011, Publisher: IEEE.
Liang-Bi , et al., “An Implementation of Deep Learning based IoV System for Traffic Accident Collisions Detection with an Emergency Alert Mechanism”, 2018, Publisher: IEE.
W. Pattara-Atikom , et al., “Estimating Road Traffic Congestion using Vehicle Velocity”, 2006, Publisher: IEEE.
European Search Report for Application No. 18881716.7 dated Jul. 2, 2021.
Kenga, Derdus Mosoti, “A Mobile solution for road accident data collection”, 2014, Publisher: IEEE.
Related Publications (1)
Number Date Country
20210329432 A1 Oct 2021 US
Provisional Applications (2)
Number Date Country
62679497 Jun 2018 US
62590945 Nov 2017 US
Continuations (2)
Number Date Country
Parent 16297268 Mar 2019 US
Child 17363498 US
Parent 16201955 Nov 2018 US
Child 16297268 US