Patent Description:
Document <CIT> discloses a system and method for monitoring the operation of a vehicle, comprising a housing having an accelerometer unit, and a global positioning system (GPS) unit, wherein the housing is adapted to be mounted in a window of the vehicle, and wherein the system is adapted to be powered by an on-board diagnostic system of the vehicle.

Document <CIT> discloses a method for determining a driving recommendation for a vehicle.

Document <CIT> discloses system and method for warning drivers of changing road conditions is disclosed. The road condition information is obtained for at least a portion of a route. The road condition information is analysed to identify one or more significant features on the portion of the route. The driver is alerted to the one or more significant features.

According to an aspect of the present invention, there is provided a system according to any of claims <NUM> to <NUM>.

According to another aspect of the present invention, there is provided a method according to claim <NUM>.

According to a further aspect of the present invention, there is provided a computer program product according to claim <NUM>.

The scope of the invention is limited only by the claims.

A system for proactive driver warning is disclosed. A system for warning a driver comprises an input interface to receive a set of warnings including condition data from a warning database, wherein each warning is associated with a road segment; and a warning determiner to determine whether a current location matches a road segment associated with a warning; determine whether to warn a driver based at least in part on the warning and a set of current conditions; and indicate to warn the driver. The system for warning a driver additionally comprises a memory coupled to the processor and configured to provide the processor with instructions.

In some embodiments, a system for proactive driver warning comprises a vehicle data server (e.g., a centralized data server for the collection and distribution of vehicle data) and one or more vehicles each including vehicle event recorders (e.g., devices for sensing and recording anomalous vehicle events) in communication over a network. As anomalous vehicle events are detected by vehicle event recorders and uploaded to the vehicle data server, common anomalous events are identified. For example, a rough patch of road on a highway is found to commonly cause trucks above a certain weight to lose control when traveling at the speed limit. A driver would benefit to be warned about the rough patch of road prior to hitting it and losing control. Other similar road hazards include large potholes, dangerous mountain roads, roads under construction, etc. The system for proactive driver warning determines commonly detected anomalous events and conditions associated with the events (e.g., vehicle type, driver type, weather conditions, traffic conditions, etc.), and associates the events and conditions with road map segments (e.g., sections of road) where the events were determined to have occurred. The events are stored in a warning database. Periodically, a vehicle event recorder downloads a subset of the events in the warning database (e.g., the events associated with road segments on a driver's planned route). When the vehicle enters a new road segment, the vehicle event recorder determines whether there are any warnings associated with the road segment, and if so, the vehicle event recorder determines whether the conditions associated with the warning match the current conditions. In the event that the conditions match, the vehicle event recorder warns the driver of the upcoming potential hazard. In some embodiments, the vehicle event recorder warns the driver directly (e.g., via a light on its case, a display, an audible warning, etc.). In some embodiments, the vehicle event recorder warns the driver by providing a warning indication to an app on a mobile device operated by the driver.

<FIG> is a block diagram illustrating an embodiment of a system including a vehicle event recorder. Vehicle event recorder <NUM> comprises a vehicle event recorder mounted in a vehicle (e.g., a car or truck). In some embodiments, vehicle event recorder <NUM> includes or is in communication with a set of sensors - for example, cameras, video recorders, audio recorders, accelerometers, gyroscopes, vehicle state sensors, GPS, outdoor temperature sensors, moisture sensors, laser line tracker sensors, or any other appropriate sensors. In various embodiments, vehicle state sensors comprise a speedometer, an accelerator pedal sensor, a brake pedal sensor, an engine revolutions per minute (RPM) sensor, an engine temperature sensor, a headlight sensor, an airbag deployment sensor, driver and passenger seat weight sensors, an anti-locking brake sensor, an engine exhaust sensor, a gear position sensor, a cabin equipment operation sensor, or any other appropriate vehicle state sensors. In some embodiments, vehicle event recorder <NUM> comprises a system for processing sensor data and detecting events. In some embodiments, vehicle event recorder <NUM> comprises map data. In some embodiments, vehicle event recorder <NUM> comprises a system for detecting risky behavior. In some embodiments, event recorder <NUM> comprises a system for detecting road hazards. In some embodiments, event recorder <NUM> comprises a system for proactive driver warning. In various embodiments, vehicle event recorder <NUM> is mounted to vehicle <NUM> in one of the following locations: the chassis, the front grill, the dashboard, the rear-view mirror, or any other appropriate location. In some embodiments, vehicle event recorder <NUM> comprises multiple units mounted in different locations in vehicle <NUM>. In some embodiments, vehicle event recorder <NUM> comprises a communications system for communicating with network <NUM>. In various embodiments, network <NUM> comprises a wireless network, a wired network, a cellular network, a code division multiple access (CDMA) network, a global system for mobile (GSM) communication network, a local area network, a wide area network, the Internet, or any other appropriate network. Vehicle event recorder <NUM> communicates with vehicle data server <NUM> via network <NUM>. Vehicle event recorder <NUM> is mounted on vehicle <NUM>. In various embodiments, vehicle <NUM> comprises a car, a truck, a commercial vehicle, or any other appropriate vehicle. Vehicle data server <NUM> comprises a vehicle data server for collecting events and risky behavior detected by vehicle event recorder <NUM>. In some embodiments, vehicle data server <NUM> comprises a system for collecting data from multiple vehicle event recorders. In some embodiments, vehicle data server <NUM> comprises a system for analyzing vehicle event recorder data. In some embodiments, vehicle data server <NUM> comprises a system for displaying vehicle event recorder data. In some embodiments, vehicle data server <NUM> is located at a home station (e.g., a shipping company office, a taxi dispatcher, a truck depot, etc.). In some embodiments, events recorded by vehicle event recorder <NUM> are downloaded to vehicle data server <NUM> when vehicle <NUM> arrives at the home station. In some embodiments, vehicle data server <NUM> is located at a remote location.

<FIG> is a diagram illustrating an embodiment of a vehicle event recorder. In some embodiments, the vehicle event recorder of <FIG> is used to implement vehicle event recorder <NUM> of <FIG>. In the example shown, vehicle event recorder <NUM> comprises warning determiner <NUM>, event detector <NUM>, communication interface <NUM> (comprising transmitter <NUM> and receiver <NUM>), sensors <NUM> (comprising video sensor <NUM> and accelerometer <NUM>), vehicle interface <NUM>, and storage <NUM> (comprising warning database <NUM>, segment map <NUM>, sensor storage <NUM>, and event storage <NUM>). Vehicle event recorder <NUM> processes sensor data from vehicle sensors via vehicle interface <NUM> and from internal sensors <NUM> comprising video sensor <NUM> and accelerometer <NUM>. Event detector <NUM> determines events based on the sensor data and stores events in event storage <NUM>. Events are transmitted via transmitter <NUM> of communications interface <NUM> to a server. Server determines warnings based on multiple vehicle event recorder events. Warnings are received using receiver <NUM> of communications interface <NUM>. Warnings include associated conditions information as well as associated road segment. Warnings are stored in warning database <NUM>. Warning determiner <NUM> determines whether or not to indicate a warning based on position information, stored warnings, and conditions associated with the warnings. In the event that the position is on a segment with an associated warning and conditions match the warning conditions then an indication to warn the driver is indicated. In various embodiments, position information is determined using sensors <NUM> (e.g., a GPS as included in sensors) or using a vehicle sensor (e.g., GPS or other position information received via vehicle interface <NUM>). In various embodiments, a condition of the set of conditions comprises one of the following: a vehicle type, a driver identifier, a driver type, a time of day, a location, a weather condition, a traffic condition, or any other appropriate condition. In various embodiments, warning determiner <NUM>, event detector <NUM>, a sub-component of vehicle event recorder <NUM>, or any other portion of vehicle event recorder <NUM> are implemented using a processor and instructions stored in a memory, where the memory is able to provide the processor with instructions.

In some embodiments, the indication to warn a driver is received and triggers activation of an indication to a user. For example, the indication to the user uses a feedback mechanism or User Interface (UI) that is a part of the Video Event Recorder or is a part of a different device (e.g., a phone, a mobile communication device, etc.) perhaps using an application running on the device.

<FIG> is a diagram illustrating an embodiment of a road segment map. In some embodiments, road segment map <NUM> is stored by a vehicle event recorder (e.g., vehicle event recorder <NUM> of <FIG>). In some embodiments, road segment map <NUM> is stored on a vehicle data server (e.g., vehicle data server <NUM>). In some embodiments, road segment map <NUM> is stored on a combination of a vehicle event recorder and a vehicle data server. In the example shown, road segment map <NUM> comprises road segments (e.g., road segment <NUM>). In some embodiments, road segments comprise distinct regions of road. In some embodiments, a current road segment (e.g., a road segment that a vehicle is located within) is identified using global positioning systems (e.g., GPS) or other sensors. In some embodiments, a road segment has an associated road segment index (e.g., an identifier for identifying the road segment). In various embodiments, information is stored associated with a road segment including one or more of the following: legal information, speed limit information, road type information, road quality information, associated warnings (e.g., recommended speed limit warnings, rough road warnings, pothole warnings, condition associated information for a warning), or any other appropriate information. In some embodiments, warnings associated with road segments comprise associated conditions (e.g., vehicle type, driver type, weather, traffic, etc.). Road segment map <NUM> additionally comprises road segment endpoints (e.g., road segment endpoint <NUM>). In some embodiments, when a vehicle crosses a road segment endpoint and enters a new road segment, associated information and warnings are received (e.g., from a vehicle event recorder storage, from a vehicle data server, etc.). In some embodiments, when warnings associated with a new road segment are received after crossing a road segment endpoint, conditions associated with the warning are evaluated to determine whether to warn the driver. In the event that the current conditions match the conditions associated with a warning, the driver is warned (e.g., an indication is provided to a driver).

<FIG> is a diagram illustrating an embodiment of a table of events. In some embodiments, event table <NUM> comprises a table of events reported by one or more vehicle event recorders (e.g., vehicle event recorder <NUM> of <FIG>) to a vehicle data server (e.g., vehicle data server <NUM> of <FIG>). In the example shown, the table of events is organized by road segment index (e.g., each line comprises a set of events determined to occur within the road segment associated with the road segment index). The table of events comprises hard driving events (e.g., it is determined that the driver made an unusually abrupt maneuver, possibly putting the vehicle stability in danger), out of control events (e.g., traction is lost and the vehicle begins to skid), rough road events (e.g., an extended series of small bumps is encountered), impact events (e.g., a single major impact is detected - for example, with a pothole, a curb, road debris, or other road hazard), and flat tire events (e.g., a road hazard is hit causing a tire to lose pressure). In the example shown, the events measured comprise events for a fleet of vehicles over a period of months. For a majority of road segments, there are no or very few events detected (e.g., driving is smooth and uneventful). For some road segments, only one event type is detected prominently (e.g., hard driving events in segment <NUM>, impact events in segment <NUM>). For some road segments, multiple event types are detected (e.g., impact events and flat tire events in segment <NUM>, impact events and out of control events in segment <NUM>, etc.). In some embodiments, multiple event types in a single location correspond to a single road hazard (e.g., a large pothole causes both impact events and flat tire events, a rocky road leads to both rough road events and out of control events, a road hazard leads to both impact events when the driver hits it and hard driving events when the driver takes evasive action to avoid it, etc.). In some embodiments, a warning is determined from a number of determined events (e.g., when more than a threshold number of events are detected for a road segment a warning is associated with the road segment). In some embodiments, a warning type is determined from a distribution of event types (e.g., a pothole warning is determined from impact events and flat tire events, a slow down warning is determined from out of control events, each with their own threshold, compound threshold say one for each of a number of event types, etc.). When a warning is determined for a road segment, the warning is associated with the road segment so that when a vehicle driver enters a road segment, the appropriate warning is issued. In some embodiments, a set of conditions is associated with the warning. In some embodiments, conditions are determined by determining patterns within the detected events (e.g., out of control events are determined only for vehicles above a certain weight, rough road events are determined only on rainy days, etc.).

In various embodiments, determining a warning to add to a database comprises one or more of the following:.

In various embodiments, such designations are global (apply to all drivers using the system), specific to a company or a certain group within a company, or any other appropriate designation. In various embodiments, a designation includes various parameters such as, but not limited to: road segment start/end, type of vehicle, speed, weather conditions, traffic conditions, time of the day, or any other type of parameter. In some embodiments, a setting interface enables a user to remove a warning from the database;.

<FIG> is a diagram illustrating an embodiment of a warning indication. In some embodiments, warning <NUM> is associated with a road segment (e.g., a road segment as in road segment <NUM> of <FIG>). In some embodiments, warning <NUM> is determined from a set of events (e.g., as in the set of events shown in event table <NUM> of <FIG>). In the example shown, warning <NUM> comprises a warning indication that it is unsafe to drive in the road segment above <NUM> MPH. In some embodiments, the warning was determined based on conditions associated with the detected events (e.g., vehicle weight, vehicle speed, etc.). In the example shown, warning <NUM> comprises a graphical warning. In some embodiments, warning <NUM> comprises a graphical warning shown on an app on a mobile device. In various embodiments, a warning comprises a graphical warning, an audible warning (e.g., a buzzer), a light warning (e.g., a blinking light on a vehicle event recorder), a tactile warning (e.g., a vibration in a mobile device or in a steering wheel, etc.), or any other appropriate warning indication.

<FIG> is a flow diagram illustrating an embodiment of a process for determining warnings. In some embodiments, the process of <FIG> is executed by a vehicle data server (e.g., vehicle data server <NUM> of <FIG>). In the example shown, in <NUM>, event data is received (e.g., from a vehicle event recorder). In some embodiments, event data comprises data describing anomalous events and associated conditions. In <NUM>, event data is added to an event data database. In some embodiments, an event data database comprises an event table. In some embodiments, an event data database comprises a collection of event data from one or more vehicle event recorders (e.g., from a fleet of vehicles) over a period of time. In <NUM>, it is determined whether there are new common hazardous driving events. In various embodiments, determining whether there are new common hazardous driving events comprises determining whether there are more than a threshold number of hazardous driving events of a given type in a road segment, determining whether there are more than a threshold number (e.g., a road segment threshold number) of total driving events in a road segment, determining whether there are more than a threshold number of driving events in a road segment according to a predetermined correlation (e.g., flat tire events and impact events, etc.), determining whether a number of events of a type is greater than a threshold number of the type, determining whether a number of events associated with the road segment is greater than a road segment threshold, determining whether a number of events of a correlated set of types being greater than a correlated threshold for the set of types, or determining whether there are new common hazardous driving events in any other appropriate way. In some embodiments, each event type has a corresponding threshold. In the event it is determined that there are no new common hazardous driving events, the process ends. In the event it is determined that there are new common hazardous driving events, control passes to <NUM>. In <NUM>, the next new common hazardous driving event is selected. In some embodiments, the next new common hazardous driving event comprises the first new common hazardous driving event. In <NUM>, conditions and a road segment associated with the new common hazardous driving event are determined. In some embodiments, determining conditions associated with the common hazardous driving event comprises determining whether more than a predetermined fraction of the hazardous driving events comprise common conditions (e.g., vehicle type, driver type, weather, etc.). In <NUM>, a new warning is added to a warning database. In some embodiments, the warning is associated with the determined conditions and road segment. In <NUM>, it is determined whether there are more new hazardous driving events. In the event that there are more new common hazardous driving events, control passes to <NUM>. In the event that there are not more new common hazardous driving events, the process ends.

<FIG> is a flow diagram illustrating an embodiment of a process for warning a driver. In some embodiments, the process of <FIG> is executed by a vehicle event recorder (e.g., vehicle event recorder <NUM> of <FIG>). In the example shown, in <NUM>, a set of warnings including condition data is received from a warning database. In some embodiments, the warning database comprises a warning database stored on a vehicle data server. In some embodiments, the warning database comprises a warning database built using the process of <FIG>. In various embodiments, a set of warnings is received once, once a month, once a day, once every time a driver begins a new shift, or with any other appropriate frequency. In <NUM>, a set of current conditions is received. In various embodiments, a set of current conditions comprises vehicle type, driver type, weather conditions, time of day, traffic conditions, recently detected events, or any other appropriate conditions. In <NUM>, it is determined whether the current location matches a road segment associated with a warning. For example, the current location is close to or within a location of a road segment (e.g., where close to is a position less than a threshold distance away from a set of locations associated with a road segment). In some embodiments, determining whether the current location matches a road segment associated with a warning comprises determining a road segment from a GPS measurement (e.g., determining the road segment the vehicle is currently in). In some embodiments, determining whether the current location matches a road segment associated with a warning comprises determining whether there are any warnings associated with a determined road segment. In the event that the current location does not match a road segment associated with a warning, the process ends. In the event that the current location matches a road segment associated with a warning, control passes to <NUM>. In <NUM> it is determined whether to warn a driver. In some embodiments, determining whether to warn a driver is based at least in part on the warning and a set of current conditions. In some embodiments, determining whether to warn a driver comprises determining whether the set of current conditions matches condition data associated with a warning associated with the current road segment. In the event it is determined not to warn the driver, the process ends. In the event it is determined to warn the driver, control passes to <NUM>. In <NUM>, the driver is warned. In various embodiments the driver is warned or indicated to be warned using a graphical warning, an audible warning (e.g., a buzzer), a light warning (e.g., a blinking light on a vehicle event recorder), a tactile warning (e.g., a vibration in a mobile device or in a steering wheel, etc.), or any other appropriate warning. In various embodiments, the driver is warned or indicated to be warned using a vehicle event recorder, a mobile device, a vehicle device, or using any other appropriate warning device.

In some embodiments, an example of proactive warning comprises the following: a <NUM> mile segment of highway in a mountainous area is deemed dangerous by a company whose trucks have to frequently drive on this segment. The segment includes sharp curves and only very limited shoulder/buffer space between the lane and a sharp cliff. While the highway speed limit is 55mph, tanker trucks aren't safe driving through these curves over 35mph. A fatal accident was caused by one company tanker trucks driving at the speed limit and falling off the cliff because of the tanker content inertia. Using the system automatically sets the start and end of the highway segment on the map, the type of vehicle (tanker trucks), the type of alert and details of the alerts their drivers will receive upon approaching or entering this segment. In some embodiments, a system automatically indicates to warn a driver in the event it is determined that a warning for a driver of a specific company is driving a specific type of vehicle over a specific highway segment where a fatal incident occurred. In some embodiments, an automatic determination for a warning occurs for a fatal incident with similar conditions (e.g., vehicle or truck type, driver experience, time of day, road segment, weather type, etc.). In some embodiments, an automatic determination for a warning occurs for a serious incident (e.g., high damage incident, injury incident, police citation incident, high threshold shock incident, hard maneuver incident, etc.) with similar conditions (e.g., vehicle or truck type, driver experience, time of day, road segment, weather type, etc.).

In some embodiments, an example of proactive warning comprises the following: a surface street where the system's powered vehicles frequently drive on has a pothole that causes these vehicles to either suddenly brake or absorb a violent shock. The drivers are warned that there is such an obstacle on the road so they can be prepared and avoid the danger. In this case, the system will detect that large number of events of a certain type (e.g., a hard brake or shock due to road condition) are happening at a specific location. Once that number reaches a configured threshold the system will create an alert. All vehicles approaching or entering the segment will be warned that there is an obstacle on the road ahead and that they should slow down and be alert. In some embodiments, an automatic determination for a warning occurs for a non-fatal incident (e.g., over a threshold number of shocks, hard brakes, hard maneuvers, etc.) with similar conditions (e.g., vehicle or truck type, driver experience, time of day, road segment, weather type, etc.).

In some embodiments, an example of proactive warning comprises the following: an intersection in an urban area is such that the driver coming in a specific direction has limited visibility to incoming vehicles and pedestrian. This lack of visibility is much worse for larger vehicles. Thus a lot of collisions are happening on that intersection between <NUM>-4pm when traffic on the crossing road is heavy when a nearby school is out. In this case the system will be able to detect that a large number of collisions happen on this intersection at this particular time of the day. The system will create an alert for large vehicles (e.g., trucks, buses) that will warn drivers approaching the intersection between <NUM>-4pm that they should pay attention to incoming vehicles and children crossing the road and for instance stop vs. yield. In some embodiments, a system indicates to warn a driver in the event it is determined that a warning for a driver of a specific type of vehicle arriving at a specific location (e.g., an intersection) between a start time and an end time. In some embodiments, an automatic analysis detects a cluster of events (e.g., greater than a number of events with similar conditions - e.g., greater than <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, events with the same vehicle, the same weather, the same time of day, the same location, the same traffic conditions, etc.) and indicates to store a warning in a database for the conditions and location.

<FIG> is a flow diagram illustrating an embodiment of a process for determining whether to warn a driver. In some embodiments, the process of <FIG> implements <NUM> of <FIG>. In the example shown, in <NUM>, the next warning associated with the road segment matching the current location is selected. In some embodiments, the next warning associated with the road segment matching the current location comprises the first warning associated with the road segment matching the current location. In <NUM>, it is determined whether the current vehicle type (e.g., the vehicle type of a set of current conditions) matches the warning vehicle type (e.g., the vehicle type associated with the warning). In various embodiments, vehicle type comprises vehicle size (e.g., passenger car, pickup truck, delivery truck, heavy truck, etc.), vehicle weight, vehicle number of axles, or any other appropriate vehicle type information. In the event it is determined that the current vehicle type does not match the warning vehicle type, control passes to <NUM>. In the event it is determined that the current vehicle type matches the warning vehicle type, control passes to <NUM>. In <NUM>, it is determined whether the current driver type (e.g., the driver type of a set of current conditions) matches the warning driver type (e.g., the driver type associated with the warning). In various embodiments, driver type comprises average driver, aggressive driver, conservative driver, frequent speeder, or any other appropriate driver type. In the event it is determined that the current driver type does not match the warning driver type, control passes to <NUM>. In the event it is determined that the current driver type matches the warning driver type, control passes to <NUM>. In <NUM>, it is determined whether the current weather type (e.g., the weather type of a set of current conditions) matches the warning weather type (e.g., the weather type associated with the warning). In various embodiments, weather type comprises normal, raining, windy, hailing, snowing, or any other appropriate weather type. In the event it is determined that the current weather type does not match the warning weather type, control passes to <NUM>. In the event it is determined that the current weather type matches the warning weather type, control passes to <NUM>. In <NUM>, it is determined whether the current traffic type (e.g., the traffic type of a set of current conditions) matches the warning traffic type (e.g., the traffic type associated with the warning). In various embodiments, traffic type comprises light, moderate, heavy, stopped, fast moving, or any other appropriate traffic type. In the event it is determined that the current traffic type does not match the warning traffic type, control passes to <NUM>. In the event it is determined that the current traffic type matches the warning traffic type, control passes to <NUM>. In <NUM>, the process indicates to warn the driver. In <NUM>, it is determined whether there are more warnings. In some embodiments, determining whether there are more warnings comprises determining whether there are more warnings associated with the road segment matching the current location. In the event it is determined that there are more warnings associated with the road segment matching the current location, control passes to <NUM>. In the event it is determined that there are not more warnings associated with the road segment matching the current location, the process ends.

Claim 1:
A system for warning a driver of a vehicle (<NUM>), comprising:
an input interface to:
receive a set of warnings (<NUM>) from a warning database, wherein a warning of the set of warnings (<NUM>) is associated with a road segment and a set of conditions and the warning is based on a potential hazard, wherein as anomalous vehicle events are detected by vehicle event recorders and uploaded to a vehicle data server, hazardous driving events are identified, wherein the set of conditions comprises one or more of: a vehicle type; a driver identifier; a driver type; a time of day; a location; a weather condition; a traffic condition, wherein a current set of conditions at the time that the hazardous driving events were detected is determined (<NUM>), and wherein the hazardous driving events and the set of conditions are associated with road segments where the hazardous driving events were determined to have occurred and are stored in the warning database; and
a warning determiner operative to:
receive a current road segment data for a current road segment;
determine whether a warning information has been downloaded for the current road segment;
in response to determining that the warning information has not been downloaded for the current road segment, request the warning information;
in response to determining that the warning information has been downloaded for the current road segment:
determine whether the warning information for the current road segment has been updated within an update time frame; and
in response to determining that the warning information for the current road segment has not been updated within the update time frame, request the warning information;
determine that a current location of the vehicle (<NUM>) matches the current road segment associated with the warning, wherein the current location of the vehicle is determined using a GPS measurement;
responsive to a determination that the current location (<NUM>) of the vehicle matches the current road segment associated with the warning, determine to warn (<NUM>) the driver based on a match between: (a) at least one condition of the set of conditions associated with the warning and (b) a condition of the current location of the vehicle; and
responsive to the determination (<NUM>) to warn the driver, indicate (<NUM>) to warn the driver.