# Patent

## Title
System and method for automatic unsafe driving determination and notification

## Abstract

A computer program product is provided for automatically detecting unsafe driving practices and providing real time driver feedback upon execution by either of a local device which may be embodied in for example a cigarette lighter adapter, or a mobile cellular device such as for example an iPhone. The device upon which the program is embodied is thus configured to receive and store program parameters including predetermined speed limit settings, receive sensor output signals representative of vehicle position and vehicle movement, determine a location of the vehicle based on the position sensor output signals, and determine a safe- or unsafe-driving condition based on the movement sensor output signals and at least a predetermined speed limit setting associated with the vehicle location. A driver alert signal is further generated in response to determining an unsafe driving condition, and notification of unsafe driving conditions may be accordingly transmitted to third parties.

## Background
CROSS-REFERENCES TO RELATED APPLICATIONS
This application claims benefit of the following patent application which is hereby incorporated by reference: U.S. Provisional Application No. 61/387,470 filed on Sep. 29, 2010.


A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the reproduction of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND OF THE INVENTION
The present invention relates generally to a device and system for determining the status of a vehicle and transmitting associated data. More particularly, the present invention relates to a portable device for measuring data associated with vehicle movement and position, determining an unsafe driving status possibly associated with speeding, unstable driving conditions, an accident or other notable event, and transmitting data or alerts based on the determined status and/or measured data.
Vehicular accidents are one of the leading causes of fatalities in the U.S., causing over one hundred fatalities daily. In 2007 alone, more than 43,100 deaths resulted from 10.6 million accidents. For every 100 licensed teenagers between the ages of 16 and 19, there will be 21 traffic accidents, making such accidents the leading cause of death for that age group in the U.S.
A number of technological and sociological improvements have helped reduce vehicle-related fatalities. For example, each 1% increase in seatbelt usage is estimated to save 136 lives. Advanced life saving measures, such as electronic stability control, also show significant promise for reducing injuries. Crash analysis studies have shown the approximately 34% of fatal traffic accidents could have been prevented with the use of electronic stability control. Moreover, each minute that an injured crash victim does not receive emergency medical care can make a large difference in their survival rate. Analysis shows that reducing accident response time by one minute correlates to a 6% difference in the number of lives saved.
An effective approach for reducing fatalities, therefore, is to reduce the time between when an accident occurs and when first responders, such as medical personnel, are dispatched to the scene of the accident. Automatic collision notification systems use sensors embedded in a car to determine when an accident has occurred. These systems immediately dispatch emergency medical personnel to serious accidents. It has been shown that automatic crash notification on average reduces fatalities by 6%.
Conventional vehicular sensor systems for accident detection, such as for example BMW's Automatic Crash Notification System or GM's OnStar, notify a call monitoring center immediately by utilizing built-in cellular radios and detect car accidents with in-vehicle sensors, such as accelerometers and airbag deployment monitors. The call center subsequently contacts a public safety answering point (i.e., 911) which then notifies and dispatches emergency responders.
Unfortunately, most cars in the U.S. do not have automatic accident detection and notification systems. Only in 2007 did automatic notification systems become standard options in GM vehicles and most other non-luxury manufacturers do not include these systems as a standard option. Based on 2007 traffic accident data, automatic traffic accident detection and notification systems could have saved 2,460 lives (i.e., 6% of 41,000 fatalities) had they been in universal use. A key impediment to including these systems is that they are infeasible or prohibitively expensive to install in existing vehicles and add to the initial cost of new vehicles. Moreover, these systems can be rendered obsolete, as evidenced by GM removing 500,000 subscribers from the OnStar service because they were equipped with analog (rather than digital) communications systems and were therefore incompatible with their newer communications systems.
BRIEF SUMMARY OF THE INVENTION
In an embodiment an automatic unsafe driving determination device in accordance with the present invention includes a housing configured for coupling to a power source associated with a vehicle, with the housing being positioned in a fixed manner relative to the vehicle when it is coupled to the power source. A power supply residing within the housing is configured to receive power from the power source when the housing is coupled to the power source. One or more movement sensors reside within the housing and generate output signals associated with movement of the vehicle. A position sensor resides within the housing and generates output signals associated with a position of the vehicle. A communications device resides within the housing and sends and receives data to and from a remote device via a communications network. A control unit is functionally linked to each of the various components and further includes a processor and one or more memory media. At least one of the memory media has program instructions residing thereon and executable by the processor to receive and store program parameters such as unsafe driving threshold settings sent to the communications device via the communications network, determine a location of the vehicle based on the position sensor output signals, determine a movement status of the vehicle based on the movement sensor output signals and criteria such as for example predetermined speed limit settings associated with the determined location, and generate an audible or visual alert for the benefit of the driver.
In one aspect of the present invention, the housing may be a cigarette lighter plug configured to engage a cigarette lighter socket as the power source associated with the vehicle.
In another aspect, the housing may include a first portion as the cigarette lighter plug configured on a first end for coupling to the cigarette lighter socket and positioned in a fixed manner relative to the vehicle when coupled thereto, and a second portion coupled to the second end of the first portion and moveable between a first and a second position. A locking mechanism may be provided to permit movement by the second portion relative to the first portion in a first state and to prevent movement by the second portion relative to the first portion in a second state.
In another aspect, the device may further include an audio sensor, wherein the program instructions may further receive audio output signals from the audio sensor and determine a movement status of the vehicle based on the movement sensor output signals, the audio sensor output signals and additional criteria including accident threshold settings.
In another aspect, a button may be provided on the exterior of the housing, with the program instructions further effective to perform a predetermined data transmission operation in accordance with user engagement of the button. The predetermined data transmission operation may include for example transmitting one or more of the program parameters, vehicle location, movement status and audio recordings to a predetermined destination via the communications device.
In an alternative embodiment, the methods of the present invention for determining an unsafe driving condition and providing associated driver alerts may be performed by a computer program product which may further reside on a computer-readable memory medium as may be provided in a mobile cellular device, and executable by a processor associated therewith.
In another alternative embodiment, the unsafe driving conditions may be determined based in part on speed limit settings which are derived by a computer program product executed by a central host server, the speed limit settings being collected from a third party source, mapped, and transmitted directly to the local device/mobile cellular device, or as further modified by the computer program product in accordance with vehicle movement and position data received from a plurality of host program products associated with a like plurality of vehicles.



BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
FIG. 1 is a front isometric view of a device according to an embodiment of the present invention.
FIG. 2 is a rear isometric view of the device of FIG. 1.
FIG. 3 is a front isometric view of a device according to another embodiment of the present invention.
FIG. 4 is a block diagram representing a host system according to an embodiment of the present invention.
FIG. 5 is a block diagram representing an embodiment of a device configuration according to the present invention.
FIG. 6 is a block diagram representing another embodiment of a device configuration according to the present invention.
FIG. 7 is a block diagram representing another embodiment of a device configuration according to the present invention.
FIG. 8 is a block diagram representing internal components of an exemplary device according to an embodiment of the present invention.
FIG. 9 is a flowchart representing an embodiment of an exemplary method for detecting a vehicle status, more particularly an accident, in accordance with the present invention.
FIG. 10 is a block diagram representing a host system according to another embodiment of the present invention.
FIG. 11 is a flowchart representing an embodiment of another exemplary method for detecting a vehicle status, more particularly an accident, in accordance with the present invention.
FIG. 12 is a flowchart representing an embodiment of an exemplary method for real time driver feedback and third party notifications in accordance with the present invention.
FIG. 13 is a flowchart representing an embodiment of an exemplary method for automatic speed limit database updating in accordance with the present invention.



DETAILED DESCRIPTION OF THE INVENTION
Throughout the specification and claims, the following terms take at least the meanings explicitly associated herein, unless the context dictates otherwise. The meanings identified below do not necessarily limit the terms, but merely provide illustrative examples for the terms. The meaning of “a,” “an,” and “the” may include plural references, and the meaning of “in” may include “in” and “on.” The phrase “in one embodiment,” as used herein does not necessarily refer to the same embodiment, although it may.
The term “coupled” means at least either a direct electrical connection between the connected items or an indirect connection through one or more passive or active intermediary devices. The term “circuit” means at least either a single component or a multiplicity of components, either active and/or passive, that are coupled together to provide a desired function. The term “signal” as used herein may include any meanings as may be understood by those of ordinary skill in the art, including at least an electric or magnetic representation of current, voltage, charge, temperature, data or a state of one or more memory locations as expressed on one or more transmission mediums, and generally capable of being transmitted, received, stored, compared, combined or otherwise manipulated in any equivalent manner.
Terms such as “providing,” “processing,” “supplying,” “determining,” “calculating” or the like may refer at least to an action of a computer system, computer program, signal processor, logic or alternative analog or digital electronic device that may be transformative of signals represented as physical quantities, whether automatically or manually initiated.
Referring generally to FIGS. 1-13, various embodiments of systems, devices, and methods in accordance with the present invention may be described herein. Where the various figures may describe embodiments sharing various common elements and features with other embodiments, similar elements and features are given the same reference numerals and redundant description thereof may be omitted below.
Generally stated, a local device is configured in accordance with the present invention to detect a vehicle status, such as for example an accident or even unsafe driving conditions, and provide output signals to local and/or remote devices or indicators representative of vehicle data and vehicle status. A host system may include a central server configured to send and receive data to and from the device, and a user interface such as for example a hosted website generated via the central server or a program application downloaded to and generated from a remote user device such as for example a smartphone, the user interface being optionally configured to display the vehicle data and status received from the local device and/or to receive remote user input for programming the local device. The local device may in various embodiments be a dedicated or standalone device for use in (and powered by a power source associated with) a vehicle such as for example a cigarette lighter adapter as further described below, or may be a computing device having numerous alternative uses such as for example a smartphone running a dedicated program application.
Referring first to FIGS. 1-2, front and rear isometric views are shown representing an embodiment of a standalone local device 10 in accordance with the present invention. An integral housing 12 is shown here which includes power supply terminals 14 on a first end defining a cigarette lighter plug for coupling to an onboard power supply of a vehicle such as a cigarette lighter socket, although in various embodiments (not shown) the local device 10 may include alternative power supply terminals or power input means to receive power from an alternative local power source.
As the local device protrudes outward from the cigarette lighter socket of a vehicle when it is plugged in, in other embodiments (not shown) it may be desirable that the housing 12 include a bendable, rotatable or otherwise moveable portion which may allow an opposing or distal end of the housing 12 with respect to the cigarette lighter plug leads 14 to be positioned in a practical fashion and thereby accommodate varying vehicle interior designs. In such embodiments, the moveable portion of the housing 12 may further include a locking mechanism such as a latch that prevents the moveable portion from moving relative to the first end (i.e., the cigarette lighter plug) once it is locked into position.
The distal end of the device 10 as shown in FIGS. 1-2 further includes a button 16 as a local user interface occupying some portion of a face (or otherwise disposed along a length of the housing 12) which may be used for engaging the device 10 and causing internal control circuitry to perform predetermined functions as further described below. The distal end may further include other visual indicators 18 such as for example a plurality of LED outputs 18 located within the button 16 (as shown in FIG. 1) or on a portion of a face of the distal end proximate the button 16 (as shown in FIG. 3), or any other practical and visually accessible location about the housing 12. The various visual indicators 18 may be configured to indicate to a driver that the device is functional, or may be an indicator of driving performance or some other predetermined indicator as programmed into the device 10. In a particular exemplary embodiment, the device 10 may include three lights arranged to be visible to a driver when plugged into the cigarette lighter socket and colored green, yellow and red to indicate driving performance.
Another portion of the housing 12 may include slits, holes or other equivalent openings 20 to allow for audio input and output with respect to internal components such as a microphone, etc. In various embodiments (not shown) the device 10 may contain a connector and/or cable for the purpose of physically connecting to another device, such as a 30-pin cable which may or may not be detachable from the device 10. The device 10 may further contain a small pin-sized button (not shown) that is not easily depressed for the purposes of programming the device 10.
Referring now to FIG. 4, an exemplary hosted system 40 according to an embodiment of the present invention may include a server 44 functionally and communicatively linked to the local device 10 via a communications network 42. Alternatively, a distributed server network may be used to provide or facilitate the same functions. The term “communications network” as used herein with respect to data communication between two or more parties or otherwise between communications network interfaces associated with two or more parties may refer to any one of, or a combination of any two or more of, telecommunications networks (whether wired, wireless, cellular or the like), a global network such as the Internet, local networks, network links, Internet Service Providers (ISP's), and intermediate communication interfaces.
The hosted server 44 in the example shown may include without limitation one or more processors 46, a computer-readable memory medium 48 and a database 50. The term “computer-readable memory medium” as used herein may refer to any non-transitory medium alone or as one of a plurality of non-transitory memory media within which is embodied a computer program product that includes processor-executable software, instructions or program modules which upon execution may provide data or otherwise cause the server 44 or equivalent computer system to implement subject matter or otherwise operate in a specific manner as further defined herein. It may further be understood that more than one type of memory media may be used in combination to conduct processor-executable software, instructions or program modules from a first memory medium upon which the software, instructions or program modules initially reside to a processor for execution.
“Memory media” may further include without limitation transmission media and/or storage media. “Storage media” may refer in an equivalent manner to volatile and non-volatile, removable and non-removable media, including at least dynamic memory, application specific integrated circuits (ASIC), chip memory devices, optical or magnetic disk memory devices, flash memory devices, or any other medium which may be used to stored data in a processor-accessible manner, and may unless otherwise stated either reside on a single computing platform or be distributed across a plurality of such platforms. “Transmission media” may include any tangible media effective to permit processor-executable software, instructions or program modules residing on the media to be read and executed by a processor, including without limitation wire, cable, fiber-optic and wireless media such as is known in the art.
The software products residing on the hosted server 44 may be effective to for example generate a user interface 52 such as a website and associated web pages to display data received from the local device 10 or receive data from a user for programming the local device 10. Data from the local device 10 may further be stored in the database 50 in an account associated with a user and used for data trending or other intermediate- to long-term statistical analysis or reporting. The hosted server 44 may further provide software products for downloading via the user interface 52 or by other known transmission media (or via third party servers such as for example conventionally known mobile application markets) to a user device 54 such that upon execution of a host-provided program the user may be able to remotely access data from the local device 10 or otherwise program the local device 10 via a communications network 42 without further requiring the use of the host system 40 as an intermediary. The remote user device 54 may include any of a number of computing devices including desktops, laptops, tablets, smartphones, etc., as operable to download the software products and execute the associated program features as described above. The user device 54 as represented in FIG. 4 may in various embodiments cover more than just a device associated with a user wishing to view data associated with the vehicle, but also may cover devices for predetermined contacts or emergency medical service personnel that may be programmed with respect to the local device 10 as automatic contacts in the event of an emergency.
Referring now to FIG. 8, the various internal components of an exemplary device 10 in accordance with an embodiment of the present invention may include a control unit 62 such as a conventional microcontroller having an I/O module 64, a processing unit 66, a memory 68 effective to store for example device parameters 70 and relevant access or security codes 72 and a memory 74 upon which resides instructions or program modules 76 such as for example a data filtering module 78, a speed calculation module 80, a sound analysis module 82 and a vehicle status determination module 84.
While the terms “controller” or “control unit” as used interchangeably herein may typically refer to a microcontroller designed as described above and further programmed to perform functions as further defined herein, it may in various alternative embodiments refer to for example a general microprocessor, an application specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array, and/or various alternative blocks of discrete circuitry as are known in the art to perform functions as defined herein when so configured.
It may further be understood that the internal components of the control unit are not limited to those described herein, that some of the circuitry or program modules described herein may in fact be redundant or unnecessary for a particular application, and that in various embodiments two or more of the program modules described may in fact describe a single program module effective to perform like functions.
Further residing within or about the device housing(s) 10 and functionally linked to the controller 62 may be without limitation a vehicle motion sensor 86 such as an accelerometer and/or gyroscope, a position sensor 88 such as a conventional GPS receiver, a communications device 90 such as a cellular modem, a local user interface 92 such as for example the button described above, a microphone 94 or equivalent audio sensor, a display unit 96 such as for example the LEDs or other visual outputs, and an audio output 98 effective to for example beep, ring or otherwise alert the driver based on a programmed function. As but one further example, the audio output 98 may be effective to provide real-time voice functionality in addition to programmed alerts, such as may be desirable in the event of an emergency by providing emergency personnel, 911 operators, etc., with a direct outlet for communicating via the local device with a driver.
Even further residing within the device housing 10 as represented in FIG. 8 are an internal power supply 85 which may be coupled to the external (onboard) power source 56 via for example the various contact terminals 14, and an energy storage device 87 such as for example a battery or a capacitor. In various embodiments, the controller may be effective to determine whether the removal of input power from the power source (via the contact terminals) is a result of being forcibly ejected from the power source such as may be the case in an accident, or merely having been removed manually by the user. In the event that the device 10 is determined to have been forcibly ejected (removed from the power source), the power supply 85 may be triggered to switch from the power source 85 as a primary power input source to the energy storage device 87 as a secondary source, which may be configured to store at least enough power that the microcontroller will have a period of time to generate and transmit an event alert such as a voice call to a remote entity (i.e., 911). The device 10 may preferably include program instructions effective to execute a process for determining forcible ejection, which may in certain embodiments include confirming an accident condition in a manner substantially as recited below and coincident with detection of the lack of power from the primary source 56. In alternative embodiments the process for determining forcible ejection may be substantially independent from or otherwise unrelated to the processes described herein for determining an accident condition.
It may be understood by those of skill in the art that one or more of the components described above as residing within the housing may be combined into a single component having the equivalent features. For example, a communications device could within the scope of the present invention further potentially serve as the positioning sensor. It may further be understood that one or more of the above-described components may in fact be unnecessary or redundant for a particular application still within the scope of the present invention, and the list of components is in no way intended as limiting.
Referring now to FIGS. 5-7, various embodiments of a local device configuration may be briefly described.
In one embodiment as represented in FIG. 5, a local device 10 is fixed in position when plugged into the onboard power source 56 and effective to transmit and receive data to and from a remote device (i.e., smartphone, desktop, tablet, etc.) and/or the host server 44 via a communications network as substantially described above.
In another embodiment as represented in FIG. 6 (i.e., the so-called “pregnant snake” configuration) the device 10 is divided up into a first device module 58 which is coupled to the onboard power source 56 and a second device module 60 which is able to communicate with the remote devices 54 and/or the hosted server 44 via the communications network 42. Several of the internal components such as for example the GPS receiver, cellular modem, microcontroller and accelerometer may reside in the second module 60 and be electrically coupled to the first module 58 and the associated power supply via a cord. The first module 58 may still have a front face upon which the button is supported, but in this configuration the first module 58 or otherwise the portion of the device 10 which is physically coupled to the cigarette lighter socket may be smaller as needed or otherwise desirable. The second module 60 in this embodiment would still need to be rigidly attached to the vehicle interior by a bracket or equivalent attachment mechanism in order for the accelerometer to function reliably. To escape the need to securely stabilize the components not contained in the first module 58, however, the accelerometer could alternatively be placed into the first module 58 and thereby fixed in position relative to the vehicle while the remaining components are not fixed but remain electrically coupled to the power supply via a wire.
In another embodiment as represented in FIG. 7, the local device 10 may embody two separate devices 10a, 10b respectively coupled to two separate onboard power sources 56a, 56b around the vehicle. Either or both of the separate devices may be further separated into a first module 58a, 58b and a second module 60a, 60b as described with respect to the embodiment shown in FIG. 6. Through RF technology or an equivalent these otherwise independent devices may communicate with each other and function as a single device or local system having redundancy features such as for example confirmation of a detected vehicle status.
As previously described or otherwise implied above, a local device 10 in accordance with various embodiments of the present invention may communicate and interact with other devices via a connector and/or cable such as for example a 30-pin cable or an embedded communications device such as an RF module. The device can communicate with a mobile cellular device, another device connected to an onboard vehicle data gathering module (e.g., via an OBD-II port as is known in the art), other sensor devices attached to the vehicle, and/or devices used to communicate with the driver in the vehicle. Interaction between a mobile cellular device and the local device 10 may be for the purpose of programming or setting up the local device 10 and/or viewing data from the local device 10. Interaction between a device connected to the OBD-II port and the local device 10 may further be established for the purpose of collecting data from the vehicle which would otherwise be unavailable but useful within the scope of the present invention, or even for the purpose of allowing the local device 10 to operate alternative vehicle functions such as for example the opening or locking of car doors, windows, trunk, etc. This data may include without limitation vehicle speed, airbag deployment, vehicle braking, and various additional information as may be supplied from the engine control unit (ECU).
Also as previously mentioned, the local device 10 may have a small button associated with the housing for user programming. Alternatively or in addition, it may be desirable to provide another physical input/output port on the device housing such as for example a USB port for external cable connection and programming, or even a USB cable connector integral with or otherwise for example extendable from the housing to establish a connection with a USB port of a programming device. However, in various embodiments it may be desirable to omit such a physical programming mechanism and instead rely on wireless programming methods. One such method for programming the local device 10 may include accessing the hosted user interface (website) where some or all of the device/system parameters may be setup and then a message sent to the local device 10 to adjust the settings. This may generally involve providing a list of programmable settings for user selection, and subsequently providing either a data entry field or a series of user selectable parameters in association with each selected program setting. The predetermined contact information (e.g., telephone numbers) to be used by the local device in case of an accident or other predetermined extreme event via text messaging (e.g., SMS) can also be programmed through the website. The local device may further include an identification code and/or security code which is further entered via the website so that for example the website knows which device to program or confirms that authorization exists for the same.
In addition, or in the alternative, programming for the local device may be carried out via a mobile computing device such as for example a smartphone, for example wirelessly or using a hardware connector that is attached to the device. Setup proceeds in substantially the same manner or via similar pathway as that described with respect to the website. As an alternative to entering a device-specific code, there may in certain embodiments be a predetermined radius of for example several feet around the local device where a remote device can auto-connect with the local device and allow programming through the local device's RF module (or equivalent). This auto-connect feature may be for example triggered by the depressing of a small-pin sized programming button on the device.
In various embodiments, the local device may be programmed to continuously collect and transmit data associated with the vehicle to the host server for storage in the database. Further, the local device processes vehicle data to determine vehicle status conditions such as for example an emergency event/accident, or more broadly a driving status which may include safe, unsafe or merely cautionary status modes. In other embodiments within the scope of the present invention, the vehicle status conditions may be determined remotely on for example the host server based on received data associated with the vehicle having been transmitted on a more or less continuous basis via the communications network.
Referring now to FIG. 9, an exemplary embodiment of a method 100 for determining an accident condition as a vehicle status may be described. The method 100 may be executed in accordance with a computer program product as described above, and the platform for executing data communications and program functions included herein may include without limitation an interrupt-driven, event-driven, and/or polling architecture as well as any equivalents as are conventionally known in the art.
The process may start (at step 102) upon power being initially provided to the local device via vehicle ignition, initial plug-in to the onboard power source, etc. Once power has been supplied to the device, the microcontroller waits for acceleration data to be received from the accelerometer of the local device (step 104). If the acceleration data is greater than a predetermined acceleration threshold of for example 3G's (i.e., “no” in response to the query of step 106), the process returns to step 104 and continues to monitor the acceleration data. If an acceleration reading (or alternatively a set of acceleration readings where the data may be averaged and filtered for any of various reasons) exceeds the acceleration threshold (i.e., “yes” in response to the query of step 106), the process continues to step 108 and the vehicle speed may be determined. In certain embodiments the device may rather than relying on a predetermined acceleration threshold include neural network processing algorithms for recognizing vehicle acceleration patterns and comparing current vehicle acceleration data with an acceleration threshold that has been determined by the microcontroller, perhaps as adjusted from a predetermined initial acceleration threshold in view of the recognized patterns.
Upon determining a vehicle speed or a series of two or more vehicle speed readings (step 108) and storing the vehicle speed reading(s) (step 110), the process then determines whether the change in speed is consistent with an accident in view of for example a change in speed being greater than a second predetermined threshold (step 112). If the change in velocity is less than the second predetermined threshold (or for example where only one velocity reading has been taken and therefore no rate of change can be determined) the process is then directed to step 114. If a subsequent acceleration reading determines that the vehicle acceleration has dropped below the first threshold (i.e., “yes” in response to the query in step 114), the process continues by erasing the stored velocity data (step 116) and then returns to step 104. If the vehicle acceleration remains above the first threshold (i.e., “no” in response to the query in step 114) the process returns to step 108 and the microcontroller takes additional velocity readings.
If at any point a vehicle acceleration reading is determined to be greater than the first threshold and the change in vehicle velocity is determined to be greater than the second threshold (i.e., “yes” in response to the query in step 112) the process continues by acquiring position coordinates for the vehicle via the position sensor/GPS (in step 118) and then reporting the accident pursuant to programmed instruction by for example transmitting vehicle position data and other programmed data to predetermined personnel such as EMS, family, friends, etc. (in step 120). In this manner detailed feedback regarding specifics of an accident may be provided, such as for example how the accident occurred, the order and direction of impacts over the course of the accident. This information may be used to estimate likely injuries to passengers in the vehicle and assist emergency personnel in allocating resources for dispatch to the emergency site.
Various additional modes of operation as further described below but without limitation to the specific modes recited herein may be activated by the user via engaging of the main button on the device housing. The local device may be programmed to perform any one or more of the modes upon activation or engaging of the button based for example on user selections via either or both of the host website or a program application via a remote computing device (i.e., smartphone handset).
In one exemplary mode of operation, the local device may have been programmed to treat the button as a help button, wherein upon activation of the button by a user the local device transmits an SMS and/or email message to a predetermined number and/or address with for example an alert and the location of the vehicle as determined from the GPS receiver. In an embodiment, activation of the button may automatically trigger a call to a public safety answering point (i.e., 911), which may be supplemental rather than merely an alternative to other predetermined contacts and/or addresses. The voice call may in fact be preferable over the SMS option as a mistaken activation of the button may be easily identified by the emergency personnel.
In another exemplary mode of operation, the local device may have been programmed to treat the button as a position indication and notification button, wherein upon activation of the button by a user the local device transmits a vehicle location as determined from the GPS receiver to a predetermined location such as for example a social networking site associated with the driver, a group, a destination, etc. In this manner a user that is running late for an event may notify others collectively without sending several individual text messages or email messages.
In another exemplary mode of operation, the local device may have been programmed to treat the button as a tracking toggle button, wherein upon engagement of the button by a user a tracking feature is successively activated and deactivated. The tracking feature may include continuous transmission of vehicle position data and any other appropriate data as received or determined by the local device to a remote site such as the host website. One example of a tracking feature may include the tracking of service personnel, where the local device is plugged into a service provider's vehicle and customers of the service provider who are waiting for service can use the host website (or alternatively a web portal associated with the service providers themselves where such features are appropriately established) to actively track the current status of the vehicle along a service route (for example) and better determine when they can expect service. In a second example, the local device may be plugged into a delivery vehicle (i.e., mail, FedEx) to facilitate the tracking of packages that have been confirmed as loaded onto the particular vehicle. The present status of the button (i.e., the underlying tracking feature) may be indicated to the user by for example a light or through the use of an audio signal via the speaker.
In another exemplary mode of operation, the local device may have been programmed to treat the button as a business mileage logging button, wherein upon engagement of the button by a user a business mileage logging feature is successively activated and deactivated. When the feature is activated, the local device may be programmed to send a message to a remote program that keeps track of business mileage. The message may include a current odometer reading, wherein the remote program can perform business mileage calculations based on a previous message and associated odometer reading. Alternatively, the local device may be programmed to begin tracking mileage upon a first engagement of the button, and upon a second engagement of the button to determine a mileage since the first engagement and to transmit a message including the determined mileage to a remote program.
In another exemplary mode of operation, the local device may be programmed to treat the button as an “I'm Lost” button, wherein upon engagement of the button by a user the local device transmits an email to a predetermined contact along with the vehicle location on a map and a request to call the user.
In another exemplary mode of operation, the local device may be programmed upon engagement of the button by a user to record a sound clip or sound message and subsequently to transmit the recorded sound clip or message to a predetermined destination such as for example one or more email addresses or a social networking site (i.e., Facebook, Twitter, etc.). The sound clip or message may be recorded for a predetermined length of time after the button has been initially engaged, or alternatively the local device may be programmed to record a sound clip or message for as long as the button remains engaged by the user, either by remaining depressed or, as with the tracking feature, by remaining in a toggled “on” or “off” position.
In another exemplary mode of operation, the local device may be programmed upon engagement of the button by a user to transmit a message including vehicle location data received via the GPS receiver to a predetermined website. The website may be configured to generate and place a pin or equivalent indicator on an associated map upon receiving the message, wherein the user may later access the map and see and label the “pins” on the map without forgetting their location. The website may further associate other data such as for example a time stamp, a user identifier, voice clip taken from the device, etc., with the location “pin”.
Referring now to FIG. 10, in an embodiment the local device 10 as a cigarette lighter adapter may be replaced by a computer program product installed on and executable by a mobile cellular device 54 such as for example a smartphone. The mobile cellular device 54 may be any of a number of equivalent devices (such as for example the iPhone by Apple) as are equipped with onboard sensors that in combination with the computer program product are effective to provide automatic crash notification and event data recording within the scope of the present invention. Such onboard sensors (not further shown in the various figures) include but are not limited to the accelerometer/gyroscope, GPS receiver and microphone.
The computer program product may upon execution by the device 54 generate a user interface on the associated display screen by which the various parameters for the program may be set by the user, as well as display collected vehicle data, vehicle status information and other visual indications or cues as programmed. An example of such a visual indication may be a current speed limit for a particular stretch of road which is recognized by the program based on a GPS-determined location and comparison of the location with that same location on a digital map having speed limit data, as may be further described below.
Referring to FIG. 11, another method 200 of detecting a vehicle status and more particularly an accident condition, as may be performed by a computer program product executed from a smartphone, may include supplementing of movement data as described above by further using sound data.
The previously described method 100 determined an accident based upon acceleration and rate of change in velocity readings that are consistent with an accident, and consequently with conditions under which airbag deployment would be expected in theory but without explicit confirmation. In an effort to eliminate false positives, the data from the accelerometer/gyroscope may be substantiated using the microphone to detect the impulse/noise physically generated by airbag deployment or an equivalent sound sufficiently representative of an accident. As embodied in the algorithms of the computer program product of the present invention, this allows for the mobile cellular device 54 to detect and explicitly confirm accidents where for example the airbag is in fact deployed, or at least is determined to have been employed with a substantially higher degree of certainty.
The process may begin in step 202 by confirming that the mobile device is in fact located in a moving vehicle. Since a mobile cellular device does not remain in a vehicle at all times, such an assessment is necessary to avoid false positives. This can be done by using the GPS receiver, accelerometer or various combinations of sensors to discern when conditions being experienced by the device are consistent with being in a vehicle. The real time detection of circumstances allows the application to run in the background of the mobile cellular device 54 without the program being executed to assess movements for potential crashes when otherwise not applicable. In an alternative embodiment, however, this step may be omitted or skipped by programming the device to perform the vehicle status determination sequence only upon manual execution of the program by a user rather than automatically detecting vehicle movement.
In an effort to conserve battery life, in various embodiments the accelerometer may be the only sensor that runs the entire time that the program product is engaged. Typically, when the program is passively running in the background it only draws data constantly from the accelerometer. The data from the accelerometer is used to determine when the device 54 (handset) is transported into the interior of a moving vehicle. This change in environment can be discovered using velocity and duration of velocity data, as the speed achieved in a moving vehicle coupled with the time spent at that speed is only rarely achieved outside of a moving vehicle. Velocity data can be garnered by integrating the acceleration data from the accelerometer as the area under the acceleration curve is the velocity.
However, while the accelerometer can detect changes in velocity it cannot detect absolute velocity without being made aware of initial velocity (a reflection of the unknown variable that results when integrating). This means that after the program is launched initial velocity will first need to be calculated by enabling the additional sensors (step 204) and then using the GPS receiver. Ideally, absolute velocity would only need to be calculated once when the program is initiated and after that point would be accurately updated using the accelerometer data. Due to accuracy issues, however, using the accelerometer data alone is not sufficient to maintain accurate absolute velocity. In order to maintain a precise velocity value over time, the initial velocity may be updated via the GPS receiver. This update process may happen based on a set value that determines how often this occurs, such as for example every ten minutes. Assuming that the accelerometer data indicates the device is in a moving vehicle, the other sensors will start collecting data to aid in the full functioning of the application.
Even when the program is executed and fully functioning in “active mode,” it may continue to check data from the sensors to confirm that it is, in reality, in a moving vehicle (step 206). This continuous checking serves at least two purposes—it confirms that the judgment to turn on all of the sensors based on accelerometer data was accurate, and further triggers the program to turn off the sensors when the data from the sensors indicates that it is no longer in a vehicle (step 208). Upon the sensors determining collectively that the device is no longer in a vehicle (or never in fact was), the program returns to passive mode where it only draws data from the accelerometer.
The process of returning the program to passive mode may in various embodiments require that the data from the sensors have determined that the device is not in a moving vehicle for some predetermined period of time. This substantially serves to prevent the program from returning to passive mode in congested traffic or other routine stops along the road.
In an alternative embodiment, the process of returning the program to passive data may include a step of determining the user is in a position associated with the location of a road. This may be performed by for example using map data which has been previously downloaded to the associated device, or receiving signals from a remote server having performed the step which are representative of the user being on or off of such a position. If the determined position of a user does not coincide with a mapped road location, the process may either determine that the user is not in a moving vehicle based on the determined position alone, or may seek confirmation prior to returning to passive mode, such as for example based on the aforementioned movement data results.
The process continues in step 210 when a sound has been detected by the program as being consistent with airbag deployment in the vehicle, while the program is in active mode. The noises/impulses that the microphone detects can be interpreted in two fashions, by analyzing the sound signature or by detecting the occurrence of a given threshold (measured in for example decibels—dB—as is conventionally known in the art). The more complex method of sound evaluation involves matching the sound signature collected by the microphone to that of a sampling of airbag detonation sound profiles. The more simplistic method of sound evaluation requires a threshold dB to be reached to conclude that the airbag has been deployed. Due to the extremely loud nature of airbag deployment, the noise can be uniquely identified by a threshold. Airbag deployment generates peak pressures between 167 and 173 dB which are higher than a typical mobile cellular device such as for example an iPhone can register. This means that in the event of airbag deployment the device's microphone will be saturated (for example, the current version of the iPhone's microphone saturates at 120 dB). Similar to the iPhone, most cellular phones do not contain microphones that are sensitive enough to accurately measure the pressures/impulses/noises generated by airbag deployment. This means that the microphone in the cellular device 54 can saturate when events other than an airbag deployment occur, and further explains why sound detection may desirably be used in conjunction with other data points to detect a crash.
Therefore, in step 212 the process continues by confirming the accident reading via other device sensors such as the accelerometer, in a manner which in various embodiments may be substantially equivalent to that of the process 100 described above.
If the detected accident condition is not confirmed by other sensors (i.e., “no” in response to the query of step 214) the process returns to step 206. If the detected accident condition is in fact confirmed by other sensors (i.e., “yes” in response to the query of step 214) the process continues to step 216 and the program is triggered to report the accident in a manner which in various embodiments may be substantially equivalent to that of the process 100 described above.
In accordance with embodiments of the present invention as described above, the algorithm that assesses accidents may further apply a probability algorithm to maximize the efficacy of accident detection. Different values are assigned to the various sensors which are included and activated at a given time, and their respective indications. This may reduce the likelihood of accidents going undetected where not all of the sensor inputs indicate the certainty of an accident, while at the same time substantially avoiding false positives.
In another embodiment, a real time feedback method in accordance with the present invention may deliver audible and/or visual cues to a driver after an unsafe driving maneuver has been detected. Regardless of whether the local device 10 as a cigarette lighter adapter or the mobile cellular device 54 using the computer program product is being utilized in accordance with the present invention, the vehicle status may include a determination of whether or not the driver is adhering to “safe” driving practices based on for example a comparison of detected vehicle speeds and/or acceleration with predetermined safety thresholds. Where a mobile cellular device 54 is used to execute the program, or is otherwise available and communicating with a local device 10, the visual cues may be displayed on the display for the device, possibly by flashing an icon or a colored screen. The audible alert, projected out over the speaker built into the handset, may generally be a safer way to cue the driver to risky driving behavior as the audible alert does not require the driver to avert their eyes from the road.
Referring now to FIG. 12, an exemplary embodiment of a real time feedback method 300 may begin when an associated local device (i.e., cigarette lighter adapter) or program product (i.e., in a mobile cellular device) is activated, powered or otherwise enabled to detect vehicle movement, at which time a number of unsafe driving alerts (N) for a particular driving session is reset to zero (step 302). The device/program then begins generating or otherwise obtaining movement data and position data associated with the vehicle in a manner substantially similar to that described above (step 304).
In step 306, the method continues by determining whether or not abrupt changes in velocity or acceleration have exceeded a predetermined threshold (safety limit). In the embodiment shown, the primary sensor at work in assessing dangerous driving conditions is generally the accelerometer, as it may easily detect both abrupt increases and decreases in velocity (i.e., high magnitude acceleration or deceleration) as key indicators of unsafe driving. Alternatively or in addition, the GPS receiver may be utilized to provide safety feedback by detecting vehicle speeds.
If the change in velocity or acceleration is determined to have been greater than the predetermined threshold (i.e., “yes” in response to the query in step 306), the method proceeds to step 308 and an unsafe driving alert is generated for the benefit of the driver, which may be visually and/or audibly generated and provided as previously described. The number of unsafe driving alerts is subsequently incremented (N=N+1) in step 310 and then the new number of unsafe driving alerts is compared to predetermined threshold number of alerts (step 312). If the number of unsafe driving alerts that have been generated during a single driving session exceeds the predetermined threshold (i.e., “yes” in response to the query in step 312), the method may in various embodiments proceed by generating and transmitting correspondence such as for example an email or SMS notification to a predetermined third party regarding the number of unsafe driving alerts. The email or text message may include for example the date, time, location, user name, type of unsafe driving practice (where available), number of unsafe driving alerts (N), or any of various other user-selectable options.
If the change in velocity or acceleration is determined to have been less than the predetermined threshold (i.e., “no” in response to the query in step 306), the method instead proceeds to step 316 and a stored speed limit is obtained with respect to a current position for the vehicle, as determined from the position data. The stored speed limit may be obtained from a digital map or the like which may further be stored in a remote database which is continuously accessed via a communications network, or at least relevant portions of the map may be stored in a memory on the device 10, 54. Where a speed limit is not stored for the current position, this step can obviously be skipped or omitted. Where a speed limit is available, however, the method then includes comparing the instantaneous velocity of the vehicle with the obtained speed limit for the instantaneous position (step 318) to determine if an unsafe driving event is occurring.
In various embodiments, the obtained speed limit may be incremented by a predetermined “offset” or “buffer” amount which may be set as a percentage (e.g., 10%) or an absolute number (e.g., 10 MPH) such that the comparison is actually between the instantaneous velocity of the vehicle and a value corresponding to the buffered speed limit.
If the instantaneous velocity is greater than the stored speed limit, or otherwise the stored speed limit with the predetermined buffer amount applied thereto (i.e., “yes” in response to the query in step 318), the method proceeds to step 308 and continues as previously described. If the instantaneous velocity is less than the stored speed limit, or otherwise less than the stored speed limit with the predetermined buffer amount applied thereto (i.e., “no” in response to the query in step 318), the method instead moves on to step 320 and the device/program may transmit the movement data and position data to a remote server such as for example the host server as described above. In various embodiments the movement data and position data may be stored locally, collected and transmitted at periodic intervals rather than continuously transmitted. Finally, the method may (in step 322) confirm that the vehicle is still in transit or otherwise that the real time feedback program is still active or enabled, consistent with the battery conservation method as previously described.
As described above, speed limit data may be obtained from a remote server and associated database. In accordance with the present invention, the remote database may in certain embodiments include raw data which has been received or otherwise acquired from a third party such as for example the Department of Transportation (DOT). By doing this for every state a complete database of road speed limits can be acquired and used to populate a hosted or otherwise central remote database for use in real time driver feedback. The database may be considered to have substantially correct speed limits in such cases, but some of the speed limits may become outdated during the time between database updates being performed by the associated agency.
In various embodiments other factors may come into play in determining unsafe driving maneuvers or circumstances. For example, the vehicle may have sensors or equivalent mechanisms for detecting conditions such as for example nighttime conditions, less-than-desirable weather conditions such as fog, rain and snow, or congested traffic conditions which might heighten the negative effects from unsafe driving. The method 300 may in such embodiments be supplemented in terms of the number of steps or otherwise to modify the various thresholds in order to account for the various non-optimal driving conditions and provide alerts as appropriate.
Referring now to FIG. 13, an exemplary speed limit database updating method 400 is described as may be performed by the host server of the present invention in accordance with device input from a number of drivers utilizing local devices 10 or cellular devices 54 running the computer program product of the present invention. As with other methods of the present invention described herein, in various embodiments some of the steps may be considered optional or redundant, and the sequence in which the steps are provided may not be limiting unless a first step provides a condition precedent for continuation of the method.
The method 400 includes a first step 402 of populating the host database with speed limit data from a third party source such as for example the DOT. It may be understood that while a continuous update is preferable, this step may generally not be performed on any kind of a continuous basis, but rather in accordance with an expected update period as provided by the third party. Where the third party may for example update speed limits as they become known rather than provide periodic updates to the entire database, the host server may be programmed to request speed limit updates from the third party at predetermined intervals to encompass changes that have been made in the interim.
The host server then receives movement data and position data from a vehicle source (step 404, see also step 320 of FIG. 12) and stores the received movement data in association with a location as determined from the position data (step 406). Ideally the location may correspond to a database portion having speed limit data as populated from the third party source, such as for example a particular stretch of road including position coordinates matching those of the received position data. Where no database portion having speed limit data corresponds to position coordinates matching those of the received position data, the method may include a step (not shown) of creating a new database portion associated with a new location or otherwise uncharted road or stretch of road with respect to the latest data from the third party source.
The stored movement data may be aggregated (in step 408) with other movement data having been previously received and stored with respect to the same location or associated locations (such as an equivalent stretch of road) to generate for example an average and a median speed recorded from that particular location, while still maintaining the individual data points. In various embodiments the movement data may be dated and/or other data of interest appended to the stored data entries, such that for example speed limit data from the third party source that is received on a particular date is not revised in view of vehicle data that was previously received and stored. It may be desirable to eliminate data points that are recorded as having been stored for more than a predetermined amount of time, being for example greater than the interval for updating the database with data from the third party source, which may reduce the potential effect of old readings on aggregate.
If a concentrated number of drivers in a particular area provide device input, then the host database may be updated in near real time for that particular area. This is possible because the average speed, disregarding outliers, on a given road would theoretically be consistently deviant from a posted maximum speed limit. Outliers may be eliminated or otherwise disregarded (in step 410) in accordance with a first threshold deviation value with respect to the remainder of the movement data stored in the host database for a particular location/area.
The deviation value may be determined by analyzing the aggregated movement data from the plurality of vehicle inputs with respect to a location/road with a known speed limit. If data points on a given road are found to be outside of a normal or expected range for the particular speed limit as indicated by the third party source, the host server may act by adjusting the speed limit data in the database (step 412). The determination may further include confirming that the plurality of vehicle inputs satisfy at least a threshold degree of confidence, such that for example a sufficient number of readings are available or that the number of readings are within a narrow enough band to instill a minimal degree of confidence as needed to support maximum speed limit adjustment in accordance with the present invention.
Recall that in describing the real time driver feedback method 300, the process included a step (316) of obtaining a stored speed limit for a current position, and the stored speed limit may be offset by a predetermined offset or buffer value which may be an absolute offset value or a percentage offset with respect to the stored speed limit. In various embodiments, the local device 10 or mobile cellular device 54 running a computer program product in accordance with the present invention may obtain an adjusted speed limit value from the host server as derived using the speed limit database updating method 400 as further described herein. In this case, the buffer value may become redundant, as the updated speed limit value inherently represents a safe driving speed range as determined from the various data points received, stored and aggregated by the host server in association with that particular area, which accounts for the buffer value itself with respect to the underlying fixed speed limit. For example, while generally stated a road having a 55 MPH speed limit may nevertheless be safely navigated at 62 MPH in which case a buffer is desirable to prevent unsafe driving alerts at such speeds, a particular stretch of the road may have blind spots, tight curves, or the like, which would eliminate the desirability of using a buffer in such cases.
Another case where the buffer value may be considered redundant is where a process in accordance with the present invention is able to rely on information from a sufficient number of vehicles on a particular road in real time. In this case, real time traffic information may affect the determination of an unsafe driving alert where for example the various vehicles are traveling at a mean or median speed with a relatively small deviation (e.g., less than a predetermined deviation threshold or otherwise within an associated range based on the detected speeds and a predetermined deviation). A subsequent determination that a particular user/driver is traveling within the associated range may in such an embodiment be considered to overrule an otherwise unsafe driving condition, as the driver would be permissibly traveling within the flow of traffic.
In certain embodiments, a road safety mapping method may further be performed by a program executed from the host server, which may be a subset of the speed limit database updating method or otherwise independently executed. Such a method includes an algorithm for monitoring accidents and other unsafe driving events (e.g., extreme acceleration/deceleration events) as derived in accordance with methods previously described above. The events may be archived on the host server or equivalent remote central server. Overlaying the database of extreme events collected from the various users of the host system on a map using geo-coordinates, tagged to the events, generates a safety map. The safety map indicates locations where users/drivers have had accidents or otherwise generated unsafe driving alerts such as where they have been determined to have accelerated or decelerated in an extreme fashion. Knowledge of this aggregated data allows users with access to it to avoid dangerous roads or junctions when possible and to be extra alert when having to navigate them. After a large sample of data has been collected, road sections and intersections can be mapped in colors indicating their riskiness, much like traffic status is currently depicted on may global positioning systems.
In an embodiment, systems and methods in accordance with the present invention may further be able to provide audio and/or visual alerts to a user indicating that a relatively unsafe stretch of road is upcoming or otherwise anticipated (based, e.g., on current heading, speed, alternative roads).
In an embodiment, systems and methods in accordance with the present invention may implement a road safety mapping method as described above to determine that unsafe driving practices were used by a driver with respect to a particular stretch of road, even where not otherwise accounted for by the available speed limit data.
In an embodiment, systems and methods in accordance with the present invention may further implement a road safety mapping method as described above to generate an optimal route between a starting point and an ending point based upon a number of criteria, which may include for example and without limitation an estimated amount of time needed to navigate each of a plurality of routes and a road safety value for each route. The road safety value may be determined by for example aggregating a number of dangerous locations along the route in accordance with predetermined weighting factors. The road safety value may further account for a number of times the driver has been recorded as previously traveling the given route, or data indicating road construction or other current road data that requires accounting.
Once a comprehensive database of road safety data is compiled insurance companies may be able to for example evaluate insurance rates taking into consideration the risk of the roads upon which the policy holder drives.
The previous detailed description has been provided for the purposes of illustration and description. Thus, although there have been described particular embodiments of the present invention of a new and useful “System and Method for Automatic Unsafe Driving Determination and Notification,” it is not intended that such references be construed as limitations upon the scope of this invention except as set forth in the following claims.

## Claims

1. A device for automatically detecting unsafe driving practices and providing real time driver feedback, the device comprising:
a housing configured for coupling to a power source associated with the vehicle, said housing positioned in a fixed manner relative to the vehicle when coupled thereto;
a power supply residing within the housing and configured to receive power from the power source when the housing is coupled thereto;
one or more movement sensors residing within the housing and effective to generate output signals associated with movement of the vehicle;
a position sensor residing within the housing and effective to generate output signals associated with a position of the vehicle;
a communications device residing within the housing and effective to send and receive data via a communications network; and
a control unit functionally linked to each of said power supply, movement sensors, position sensor and communications device and further comprising a processor and one or more memory media, at least one of said memory media having program instructions residing thereon which upon execution by the processor are further effective to
receive and store unsafe driving parameters sent via the communications device, the parameters further comprising predetermined speed limit settings and unsafe driving locations, the unsafe driving locations associated with the predetermined speed limit settings and historically with one or more of unsafe driving conditions and accidents,
determine a location of the vehicle based on the position sensor output signals,
determine an unsafe driving condition based on the movement sensor output signals and at least a predetermined speed limit setting associated with said vehicle location,
aggregating data associated with vehicle movement over time with respect to corresponding vehicle locations,
dynamically adjusting the predetermined speed limit setting associated with one or more vehicle locations, based on the aggregated data,
determine a potential unsafe driving condition based on the stored unsafe driving locations, the determined location of the vehicle and the movement sensor output signals, and
generate a driver alert signal in substantially real-time in response to determining an unsafe driving condition or a potential unsafe driving condition.

2. The device of claim 1, the program instructions further effective to transmit an unsafe driving notification to a remote device via the communications device in accordance with determined unsafe driving conditions.

3. The device of claim 1, the driver alert signal generated in response to determining an unsafe driving condition comprising a first type of driver alert signal, wherein the program instructions are further effective upon execution by the processor to
aggregate an amount of the first type of driver alert signals generated during a particular driving session,
compare the aggregated amount of the first type of driver alert signals to a predetermined threshold value, and
transmit an unsafe driving notification to the remote device via the communications device in accordance with the aggregated amount of the first type of driver alert signals exceeding the predetermined threshold value.

4. The device of claim 3, the program instructions further effective upon execution by the processor to determine an unsafe driving condition based on the movement sensor output signals, a predetermined speed limit setting associated with said vehicle location, and a predetermined absolute offset value with respect to the various speed limit settings.

5. The device of claim 3, the program instructions further effective upon execution by the processor to determine an unsafe driving condition based on the movement sensor output signals, a predetermined speed limit setting associated with said vehicle location, and a predetermined percentage offset value with respect to the various speed limit settings.

6. The device of claim 1, the program instructions further effective upon execution by the processor to
determine a change in movement by the vehicle from the movement sensor output signals,
compare the determined change in movement by the vehicle to a rate of change threshold value, and
determine an unsafe driving condition based on the determined change in movement by the vehicle exceeding the rate of change threshold value.

7. The device of claim 1, the housing further comprising a cigarette lighter plug configured to engage a cigarette lighter socket as said power source associated with the vehicle.

8. The device of claim 7, the housing further comprising
a first portion comprising the cigarette lighter plug configured on a first end for coupling to the cigarette lighter socket and positioned in a fixed manner relative to the vehicle when coupled thereto;
a second portion coupled to the second end of the first portion and moveable between a first and a second position; and
a locking mechanism effective to permit movement by the second portion relative to the first portion in a first state and to prevent movement by the second portion relative to the first portion in a second state.

9. The device of claim 8, further comprising an audio sensor residing within the housing and functionally linked to the control unit,
the program instructions further effective to receive audio output signals from the audio sensor and to determine a movement status associated with an accident based on the movement sensor output signals, the audio sensor output signals and one or more accident threshold settings.

10. A system comprising:
one or more devices configured for coupling to respective vehicles and each comprising one or more sensors effective to generate output signals associated with positions and movements of the associated vehicle;
a hosted server network communicatively linked to each of the one or more devices via a communications network;
a computer program product comprising one or more computer-readable memory media, the computer program product including program instructions executable by a processor to direct the performance of operations further comprising:
receiving an array of data representative of predetermined speed limit settings for an associated array of geographical locations;
storing said data in a database functionally linked to the memory medium and the processor;
defining one or more unsafe driving locations in the array of geographical locations with respect to associated historical unsafe driving conditions and/or accidents;
and for each of the respective vehicles to which one of the one or more devices are coupled,
receiving position sensor output signals representative of vehicle position;
receiving movement sensor output signals representative of vehicle movement;
determining a location of the vehicle based on the position sensor output signals;
determining a safe driving condition or unsafe driving condition based on the movement sensor output signals and at least a predetermined speed limit setting associated with said vehicle location;
aggregating data associated with vehicle movement over time with respect to corresponding vehicle locations;
dynamically adjusting the predetermined speed limit setting associated with one or more vehicle locations, based on the aggregated data;
determining a potential unsafe driving condition based on the defined unsafe driving locations, the determined location of the vehicle and the movement sensor output signals; and
generating a driver alert signal in substantially real-time in response to determining an unsafe driving condition or a potential unsafe driving condition.

11. The system of claim 10, the program instructions executable to direct the performance of operations further comprising
transmitting an unsafe driving notification to a remote device via a communications device functionally linked to the processor and the memory medium in accordance with determined unsafe driving conditions.

12. The computer program product of claim 10, the driver alert signal generated in response to determining an unsafe driving condition comprising a first type of driver alert signal, wherein the program instructions executable by the processor to direct the performance of operations further comprising
aggregating an amount of the first type of driver alert signals generated during a particular driving session,
comparing the aggregated amount of the first type of driver alert signals to a predetermined threshold value, and
transmitting an unsafe driving notification to the remote device in accordance with the aggregated amount of the first type of driver alert signals exceeding the predetermined threshold value.

13. The computer program product of claim 12, the program instructions executable by the processor to direct the performance of operations further comprising determining a safe driving condition or an unsafe driving condition based on the movement sensor output signals, a predetermined speed limit setting associated with said vehicle location, and a predetermined absolute offset value with respect to the various speed limit settings.

14. The computer program product of claim 12, the program instructions executable by the processor to direct the performance of operations further comprising determining a safe driving condition or an unsafe driving condition based on the movement sensor output signals, a predetermined speed limit setting associated with said vehicle location, and a predetermined percentage offset value with respect to the various speed limit settings.

15. The system of claim 10, the program instructions executable by the processor to direct the performance of operations further comprising
determining a change in movement by the vehicle from the movement sensor output signals,
comparing the determined change in movement by the vehicle to a rate of change threshold value, and
determining an unsafe driving condition based on the determined change in movement by the vehicle exceeding the rate of change threshold value.

16. The system of claim 10, the operation of dynamically adjusting the speed limit setting comprising disregarding vehicle movement data for respective vehicle locations outside of a threshold deviation value, and adjusting the speed limit settings based on one or more of a determined average speed and a determined median speed from the remaining vehicle movement data.

17. The system of claim 10, at least one of the one or more devices comprising a cigarette lighter plug configured to engage a cigarette lighter socket as a power source associated with a respective vehicle, the at least one device positioned in a fixed manner relative to the respective vehicle when coupled thereto.

18. The system of claim 17, said at least one of the one or more devices further comprising
a first portion comprising the cigarette lighter plug configured on a first end for coupling to the cigarette lighter socket and positioned in a fixed manner relative to the respective vehicle when coupled thereto;
a second portion coupled to the second end of the first portion and moveable between a first and a second position; and
a locking mechanism effective to permit movement by the second portion relative to the first portion in a first state and to prevent movement by the second portion relative to the first portion in a second state.

19. The system of claim 18, said at least one of the one or more devices further comprising an audio sensor,
the program instructions further executable to receive audio output signals from the audio sensor and to determine a movement status associated with an accident based on the movement sensor output signals, the audio sensor output signals and one or more accident threshold settings.