Vehicle virtual assistant systems and methods for storing and utilizing data associated with vehicle stops

A virtual assistance system for a vehicle is provided. The virtual assistance system includes one or more processors, one or more memory modules communicatively coupled to the one or more processors, an input device communicatively coupled to the one or more processors, an output device communicatively coupled to the one or more processors, and machine readable instructions stored in the one or more memory modules. The virtual assistance system detects a duration of a vehicle stop. When the duration of the stop is greater than a predetermined threshold, the system requests a reason for the stop, receives the reason for the stop, determines a location, date, and time of the stop, and stores a record comprising data associated with the stop.

TECHNICAL FIELD

Embodiments described herein generally relate to vehicle virtual assistance systems and, more specifically, to vehicle virtual assistance systems for storing and utilizing data associated with vehicle stops.

BACKGROUND

A driver of a vehicle may make a variety of stops over time. In some instances, the driver may make stops for various reasons according to a particular pattern. Conventional vehicles and vehicle systems may not track stops and the reasons for stopping in a manner that may be useful.

Accordingly, a need exists for a vehicle virtual assistance system that may store and utilize data associated with vehicle stops in a useful manner.

SUMMARY

In one embodiment, a virtual assistance system for a vehicle includes one or more processors, one or more memory modules communicatively coupled to the one or more processors, an input device communicatively coupled to the one or more processors, an output device communicatively coupled to the one or more processors, and machine readable instructions stored in the one or more memory modules. The virtual assistance system detects a duration of a vehicle stop. When the duration of the vehicle stop is greater than a predetermined threshold, the virtual assistance system requests, through the output device, a reason for the vehicle stop, receives, through the input device, a stated reason for the vehicle stop, determines a location of the vehicle stop, determines a time and date of the vehicle stop, and stores a record comprising data associated with the stop.

In another embodiment, a virtual assistance system for a vehicle includes one or more processors, one or more memory modules communicatively coupled to the one or more processors, an input device communicatively coupled to the one more processors, and an output device communicatively coupled to the one or more processors. The memory modules store data associated with a plurality of vehicle stops including a reason for each stop. The vehicle virtual assistance system determines a suggested vehicle route based at least in part on the data associated with the plurality of vehicle stops.

In another embodiment, a method comprises detecting a vehicle stop, determining a duration of the vehicle stop, requesting a reason for the vehicle stop, receiving a stated reason for the vehicle stop, determining a location of the vehicle stop, determining a time and date of the vehicle stop, and storing a record comprising the duration of the stop, the location of the stop, the time and date of the stop, and the stated reason for the stop.

DETAILED DESCRIPTION

The embodiments disclosed herein include vehicle virtual assistance systems for storing and utilizing data associated with previous vehicle stops. The vehicle virtual assistance system includes one or more processors, one or more memory modules communicatively coupled to the one or more processors, an input device communicatively coupled to the one or more processors, an output device communicatively coupled to the one or more processors, and machine readable instructions stored in the one or more memory modules.

In embodiments, whenever a vehicle stops at a particular location for greater than a specified duration, the virtual assistance system asks the driver of the vehicle, through the output device, the reason for the stop. The virtual assistance system then receives, through the input device, the driver's reason for the stop and stores this reason along with the time, date, location, and duration of the stop. Over time, after records of a plurality of vehicle stops are recorded, the virtual assistance system can determine one or more patterns of stops of the vehicle. The virtual assistance system can then recommend future stops and/or routes based on these detected patterns.

Referring now to the drawings,FIG. 1schematically depicts an interior portion of a vehicle102for providing virtual assistance, according to embodiments disclosed herein. As illustrated, the vehicle102may include a number of components that may provide input to or output from the vehicle virtual assistance systems described herein. The interior portion of the vehicle102includes a console display124aand a dash display124b(referred to independently and/or collectively herein as “display124”). The console display124amay be configured to provide one or more user interfaces and may be configured as a touch screen and/or include other features for receiving user input. The dash display124bmay similarly be configured to provide one or more interfaces, but often the data provided in the dash display124bis a subset of the data provided by the console display124a. Regardless, at least a portion of the user interfaces depicted and described herein may be provided on either or both the console display124aand the dash display124b. The vehicle102also includes one or more microphones120a,120b(referred to independently and/or collectively herein as “microphone120”) and one or more speakers122a,122b(referred to independently and/or collectively herein as “speaker122”). The microphone120may be configured for receiving user voice commands and/or other inputs to the vehicle virtual assistance systems described herein. Similarly, the speaker122may be utilized for providing audio content from the vehicle virtual assistance system to the user. The microphone120, the speaker122, and/or related components may be part of an in-vehicle audio system. The vehicle102also includes tactile input hardware126aand/or peripheral tactile input hardware126bfor receiving tactile user input, as will be described in further detail below. The vehicle102also includes an activation switch128for providing an activation input to the vehicle virtual assistance system, as will be described in further detail below.

The vehicle102may also include a virtual assistance module208, which stores voice input analysis logic144a, and route analysis logic144b. The voice input analysis logic144aand the route analysis logic144bmay include a plurality of different pieces of logic, each of which may be embodied as a computer program, firmware, and/or hardware, as an example. The voice input analysis logic144amay be configured to execute one or more local speech recognition algorithms on speech input received from the microphone120, as will be described in further detail below. The route analysis logic144bmay be configured to suggested future vehicle routes and/or stops, as will be described in further detail below.

Referring now toFIG. 2, an embodiment of a vehicle virtual assistance system200, including a number of the components depicted inFIG. 1, is schematically depicted. It should be understood that the vehicle virtual assistance system200may be integrated within the vehicle102or may be embedded within a mobile device (e.g., smartphone, laptop computer, etc.) carried by a driver of the vehicle.

The vehicle virtual assistance system200includes one or more processors202, a communication path204, one or more memory modules206, a display124, a speaker122, tactile input hardware126a, a peripheral tactile input hardware126b, a microphone120, an activation switch128, a virtual assistance module208, network interface hardware218, and a satellite antenna230. The various components of the vehicle virtual assistance system200and the interaction thereof will be described in detail below.

As noted above, the vehicle virtual assistance system200includes the communication path204. The communication path204may be formed from any medium that is capable of transmitting a signal such as, for example, conductive wires, conductive traces, optical waveguides, or the like. Moreover, the communication path204may be formed from a combination of mediums capable of transmitting signals. In one embodiment, the communication path204comprises a combination of conductive traces, conductive wires, connectors, and buses that cooperate to permit the transmission of electrical data signals to components such as processors, memories, sensors, input devices, output devices, and communication devices. Accordingly, the communication path204may comprise a vehicle bus, such as for example a LIN bus, a CAN bus, a VAN bus, and the like. Additionally, it is noted that the term “signal” means a waveform (e.g., electrical, optical, magnetic, mechanical or electromagnetic), such as DC, AC, sinusoidal-wave, triangular-wave, square-wave, vibration, and the like, capable of traveling through a medium. The communication path204communicatively couples the various components of the vehicle virtual assistance system200. As used herein, the term “communicatively coupled” means that coupled components are capable of exchanging data signals with one another such as, for example, electrical signals via conductive medium, electromagnetic signals via air, optical signals via optical waveguides, and the like.

As noted above, the vehicle virtual assistance system200includes the one or more processors202. Each of the one or more processors202may be any device capable of executing machine readable instructions. Accordingly, each of the one or more processors202may be a controller, an integrated circuit, a microchip, a computer, or any other computing device. The one or more processors202are communicatively coupled to the other components of the vehicle virtual assistance system200by the communication path204. Accordingly, the communication path204may communicatively couple any number of processors with one another, and allow the modules coupled to the communication path204to operate in a distributed computing environment. Specifically, each of the modules may operate as a node that may send and/or receive data.

As noted above, the vehicle virtual assistance system200includes the one or more memory modules206. Each of the one or more memory modules206of the vehicle virtual assistance system200is coupled to the communication path204and communicatively coupled to the one or more processors202. The one or more memory modules206may comprise RAM, ROM, flash memories, hard drives, or any device capable of storing machine readable instructions such that the machine readable instructions may be accessed and executed by the one or more processors202. The machine readable instructions may comprise logic or algorithm(s) written in any programming language of any generation (e.g., 1GL, 2GL, 3GL, 4GL, or 5GL) such as, for example, machine language that may be directly executed by the processor, or assembly language, object-oriented programming (OOP), scripting languages, microcode, etc., that may be compiled or assembled into machine readable instructions and stored on the one or more memory modules206. In some embodiments, the machine readable instructions may be written in a hardware description language (HDL), such as logic implemented via either a field-programmable gate array (FPGA) configuration or an application-specific integrated circuit (ASIC), or their equivalents. Accordingly, the methods described herein may be implemented in any conventional computer programming language, as pre-programmed hardware elements, or as a combination of hardware and software components.

In embodiments, the one or more memory modules206include the virtual assistance module208that processes speech input signals received from the microphone120and/or extracts speech information from such signals, as will be described in further detail below. Furthermore, the one or more memory modules206include machine readable instructions that, when executed by the one or more processors202, cause the vehicle virtual assistance system200to perform the actions described below including the steps described inFIGS. 3 and 4. The virtual assistance module208includes voice input analysis logic144aand route analysis logic144b.

The voice input analysis logic144aand route analysis logic144bmay be stored in the one or more memory modules206. In embodiments, the voice input analysis logic144aand route analysis logic144bmay be stored on, accessed by and/or executed on the one or more processors202. In embodiments, the voice input analysis logic144aand route analysis logic144bmay be executed on and/or distributed among other processing systems to which the one or more processors202are communicatively linked. For example, at least a portion of the voice input analysis logic144aand/or the route analysis logic144bmay be located onboard the vehicle102. In one or more arrangements, a first portion of the voice input analysis logic144aand/or the route analysis logic144bmay be located onboard the vehicle102, and a second portion of the voice input analysis logic144aand/or the route analysis logic144bmay be located remotely from the vehicle102(e.g., on a cloud-based server, a remote computing system, and/or the one or more processors202). In some embodiments, the voice input analysis logic144aand/or the route analysis logic144bmay be located remotely from the vehicle102.

The voice input analysis logic144amay be implemented as computer readable program code that, when executed by a processor, implements one or more of the various processes described herein. The voice input analysis logic144amay be a component of one or more processors202, or the voice input analysis logic144amay be executed on and/or distributed among other processing systems to which one or more processors202is operatively connected. In one or more arrangements, the voice input analysis logic144amay include artificial or computational intelligence elements, e.g., neural network, fuzzy logic or other machine learning algorithms.

The voice input analysis logic144amay receive one or more occupant voice inputs from one or more vehicle occupants of the vehicle102. The one or more occupant voice inputs may include any audial data spoken, uttered, pronounced, exclaimed, vocalized, verbalized, voiced, emitted, articulated, and/or stated aloud by a vehicle occupant. The one or more occupant voice inputs may include one or more letters, one or more words, one or more phrases, one or more sentences, one or more numbers, one or more expressions, and/or one or more paragraphs, etc.

The one or more occupant voice inputs may be sent to, provided to, and/or otherwise made accessible to the voice input analysis logic144a. The voice input analysis logic144amay be configured to analyze the occupant voice inputs. The voice input analysis logic144amay analyze the occupant voice inputs in various ways. For example, the voice input analysis logic144amay analyze the occupant voice inputs using any known natural language processing system or technique. Natural language processing may include analyzing each user's notes for topics of discussion, deep semantic relationships and keywords. Natural language processing may also include semantics detection and analysis and any other analysis of data including textual data and unstructured data. Semantic analysis may include deep and/or shallow semantic analysis. Natural language processing may also include discourse analysis, machine translation, morphological segmentation, named entity recognition, natural language understanding, optical character recognition, part-of-speech tagging, parsing, relationship extraction, sentence breaking, sentiment analysis, speech recognition, speech segmentation, topic segmentation, word segmentation, stemming and/or word sense disambiguation. Natural language processing may use stochastic, probabilistic and statistical methods. In some embodiments, the voice input analysis logic144amay analyze the occupant voice inputs to identify the occupant. For example, the voice input analysis logic144amay compare the occupant voice inputs with samples associated with different users, and identify that the occupant voice inputs are comparable to a sample associated with a certain user.

The route analysis logic144bmay be implemented as computer readable program code that, when executed by a processor, implements one or more of the various processes described herein. The route analysis logic144bmay be a component of one or more processors202, or the route analysis logic144bmay be executed on and/or distributed among other processing systems to which one or more processors202is operatively connected. In one or more arrangements, the route analysis logic144bmay include artificial or computational intelligence elements, e.g., neural network, fuzzy logic or other machine learning algorithms.

As explained in further detail below, the route analysis logic144bmay analyze data related to vehicle stops to determine patterns. The route analysis logic144bcan determine patterns by determining correlations between time, day of the week or month, location, duration of stop, and/or reason for the stop, among other possibilities.

Still referring toFIG. 2, the vehicle virtual assistance system200comprises the display124for providing visual output such as, for example, information, entertainment, maps, navigation, information, or a combination thereof. The display124is coupled to the communication path204and communicatively coupled to the one or more processors202. Accordingly, the communication path204communicatively couples the display124to other modules of the vehicle virtual assistance system200. The display124may include any medium capable of transmitting an optical output such as, for example, a cathode ray tube, light emitting diodes, a liquid crystal display, a plasma display, or the like. Moreover, the display124may be a touchscreen that, in addition to providing optical information, detects the presence and location of a tactile input upon a surface of or adjacent to the display. Accordingly, each display may receive mechanical input directly upon the optical output provided by the display. Additionally, it is noted that the display124may include at least one of the one or more processors202and the one or memory modules206. While the vehicle virtual assistance system200includes a display124in the embodiment depicted inFIG. 2, the vehicle virtual assistance system200may not include a display124in other embodiments, such as embodiments in which the vehicle virtual assistance system200audibly provides outback or feedback via the speaker122.

As noted above, the vehicle virtual assistance system200includes the speaker122for transforming data signals from the vehicle virtual assistance system200into mechanical vibrations, such as in order to output audible prompts or audible information from the vehicle virtual assistance system200. The speaker122is coupled to the communication path204and communicatively coupled to the one or more processors202.

Still referring toFIG. 2, the vehicle virtual assistance system200comprises tactile input hardware126acoupled to the communication path204such that the communication path204communicatively couples the tactile input hardware126ato other modules of the vehicle virtual assistance system200. The tactile input hardware126amay be any device capable of transforming mechanical, optical, or electrical signals into a data signal capable of being transmitted with the communication path204. Specifically, the tactile input hardware126amay include any number of movable objects that each transform physical motion into a data signal that may be transmitted to over the communication path204such as, for example, a button, a switch, a knob, a microphone or the like. In some embodiments, the display124and the tactile input hardware126aare combined as a single module and operate as an audio head unit or an infotainment system. However, it is noted, that the display124and the tactile input hardware126amay be separate from one another and operate as a single module by exchanging signals via the communication path204. While the vehicle virtual assistance system200includes tactile input hardware126ain the embodiment depicted inFIG. 2, the vehicle virtual assistance system200may not include tactile input hardware126ain other embodiments, such as embodiments that do not include the display124.

As noted above, the vehicle virtual assistance system200optionally comprises the peripheral tactile input hardware126bcoupled to the communication path204such that the communication path204communicatively couples the peripheral tactile input hardware126bto other modules of the vehicle virtual assistance system200. For example, in one embodiment, the peripheral tactile input hardware126bis located in a vehicle console to provide an additional location for receiving input. The peripheral tactile input hardware126boperates in a manner substantially similar to the tactile input hardware126a, i.e., the peripheral tactile input hardware126bincludes movable objects and transforms motion of the movable objects into a data signal that may be transmitted over the communication path204.

As noted above, the vehicle virtual assistance system200comprises the microphone120for transforming acoustic vibrations received by the microphone into a speech input signal. The microphone120is coupled to the communication path204and communicatively coupled to the one or more processors202. As will be described in further detail below, the one or more processors202may process the speech input signals received from the microphone120and/or extract speech information from such signals.

Still referring toFIG. 2, the vehicle virtual assistance system200comprises the activation switch128for activating or interacting with the vehicle virtual assistance system200. In some embodiments, the activation switch128is an electrical switch that generates an activation signal when depressed, such as when the activation switch128is depressed by a user when the user desires to utilize or interact with the vehicle virtual assistance system200. In some embodiments, the vehicle virtual assistance system200does not include the activation switch. Instead, when a user says a certain word (e.g., “Roxy”), the vehicle virtual assistance system200becomes ready to recognize words spoken by the user.

As noted above, the vehicle virtual assistance system200includes the network interface hardware218for communicatively coupling the vehicle virtual assistance system200with a mobile device220or a computer network. The network interface hardware218is coupled to the communication path204such that the communication path204communicatively couples the network interface hardware218to other modules of the vehicle virtual assistance system200. The network interface hardware218may be any device capable of transmitting and/or receiving data via a wireless network. Accordingly, the network interface hardware218may include a communication transceiver for sending and/or receiving data according to any wireless communication standard. For example, the network interface hardware218may include a chipset (e.g., antenna, processors, machine readable instructions, etc.) to communicate over wireless computer networks such as, for example, wireless fidelity (Wi-Fi), WiMax, Bluetooth, IrDA, Wireless USB, Z-Wave, ZigBee, or the like. In some embodiments, the network interface hardware218includes a Bluetooth transceiver that enables the vehicle virtual assistance system200to exchange information with the mobile device220(e.g., a smartphone) via Bluetooth communication.

Still referring toFIG. 2, data from various applications running on the mobile device220may be provided from the mobile device220to the vehicle virtual assistance system200via the network interface hardware218. The mobile device220may be any device having hardware (e.g., chipsets, processors, memory, etc.) for communicatively coupling with the network interface hardware218and a cellular network222. Specifically, the mobile device220may include an antenna for communicating over one or more of the wireless computer networks described above. Moreover, the mobile device220may include a mobile antenna for communicating with the cellular network222. Accordingly, the mobile antenna may be configured to send and receive data according to a mobile telecommunication standard of any generation (e.g., 1G, 2G, 3G, 4G, 5G, etc.). Specific examples of the mobile device220include, but are not limited to, smart phones, tablet devices, e-readers, laptop computers, or the like.

The cellular network222generally includes a plurality of base stations that are configured to receive and transmit data according to mobile telecommunication standards. The base stations are further configured to receive and transmit data over wired systems such as public switched telephone network (PSTN) and backhaul networks. The cellular network222may further include any network accessible via the backhaul networks such as, for example, wide area networks, metropolitan area networks, the Internet, satellite networks, or the like. Thus, the base stations generally include one or more antennas, transceivers, and processors that execute machine readable instructions to exchange data over various wired and/or wireless networks.

Accordingly, the cellular network222may be utilized as a wireless access point by the network interface hardware218or the mobile device220to access one or more servers (e.g., a server224). The server224generally includes processors, memory, and chipset for delivering resources via the cellular network222. Resources may include providing, for example, processing, storage, software, and information from the server224to the vehicle virtual assistance system200via the cellular network222.

Still referring toFIG. 2, the one or more servers accessible by the vehicle virtual assistance system200via the communication link of the mobile device220to the cellular network222may include third party servers that provide additional speech recognition capability. For example, the server224may include speech recognition algorithms capable of recognizing more words than the local speech recognition algorithms stored in the one or more memory modules206. It should be understood that the network interface hardware218or the mobile device220may be communicatively coupled to any number of servers by way of the cellular network222.

The network interface hardware218may be communicatively coupled to the cellular network222and may communicate with another vehicle232and a map server242via the cellular network222. The vehicle virtual assistance system200may retrieve map information from the map server242. The vehicle virtual assistance system200may also retrieve information about local businesses (e.g., grocery stores, restaurants, etc.) from the map server242.

As noted above, the vehicle virtual assistance system200optionally includes a satellite antenna230coupled to the communication path204such that the communication path204communicatively couples the satellite antenna230to other modules of the vehicle virtual assistance system200. The satellite antenna230is configured to receive signals from global positioning system (GPS) satellites. Specifically, in one embodiment, the satellite antenna230includes one or more conductive elements that interact with electromagnetic signals transmitted by GPS satellites. The received signal is transformed into a data signal indicative of the location (e.g., latitude and longitude) of the satellite antenna230or an object positioned near the satellite antenna230, by the one or more processors202.

Additionally, it is noted that the satellite antenna230may include at least one of the one or more processors202and the one or memory modules206. In embodiments where the vehicle virtual assistance system200is coupled to a vehicle, the one or more processors202execute machine readable instructions to transform the GPS satellite signals received by the satellite antenna230into data indicative of the current location of the vehicle. While the vehicle virtual assistance system200includes the satellite antenna230in the embodiment depicted inFIG. 2, the vehicle virtual assistance system200may not include the satellite antenna230in other embodiments, such as embodiments in which the vehicle virtual assistance system200does not utilize GPS satellite information or embodiments in which the vehicle virtual assistance system200obtains GPS satellite information from the mobile device220via the network interface hardware218.

Still referring toFIG. 2, it should be understood that the vehicle virtual assistance system200may be formed from a plurality of modular units, i.e., the display124, the speaker122, tactile input hardware126a, the peripheral tactile input hardware126b, the microphone120, the activation switch128, etc. may be formed as modules that when communicatively coupled form the vehicle virtual assistance system200. Accordingly, in some embodiments, each of the modules may include at least one of the one or more processors202and/or the one or more memory modules206. Accordingly, it is noted that, while specific modules may be described herein as including a processor and/or a memory module, the embodiments described herein may be implemented with the processors and memory modules distributed throughout various communicatively coupled modules.

FIG. 3depicts a flowchart for recording vehicle stop information, according to one or more embodiments shown and described herein. In block310, the vehicle virtual assistance system200determines that the vehicle102has come to a stop. In some embodiments, the vehicle virtual assistance system200determines that the vehicle102has come to a stop if the vehicle's speedometer registers a speed of zero. In other embodiments, the vehicle virtual assistance system200determines that the vehicle102has come to a stop when the vehicle's location, as determined by the GPS signal received by the satellite antenna230, is not changing for a predetermined duration of time.

After the vehicle102has come to a stop, in block320, the vehicle virtual assistance system200measures the duration of the stop and determines whether the duration of the stop is greater than a predetermined threshold duration (e.g., 30 seconds, 1 minute, 2 minutes). In some embodiments, the predetermined threshold is set such that short traffic stops (e.g., stops at stop signs or traffic lights) can be ignored. In some examples, the predetermined threshold can be adjusted by a user (e.g., via providing input through the microphone120, the tactile input hardware126a, the peripheral tactile input hardware126b, and the like). In some embodiments, the vehicle virtual assistance system200starts a timer whenever the vehicle102comes to a stop to measure the duration of vehicle stops. If the vehicle virtual assistance system200determines in block320that the duration of the stop is not greater than the predetermined threshold, then in block322, the stop is disregarded.

If the vehicle virtual assistance system200determines in block320that the duration of the stop is greater than the predetermined threshold, the in block330, the vehicle virtual assistance system200prompts the driver for the reason for the stop. In some embodiments, the driver is prompted by an audio prompt played through the speaker122asking the driver what the purpose of the stop is. In other embodiments, the driver is prompted through a visual prompt on the display124.

If the driver is out of the vehicle102when the vehicle virtual assistance system200determines that the duration of the stop is greater than the threshold, the vehicle virtual assistance system200prompts the driver for the reason for the stop after the driver returns to the vehicle102. In some embodiments, the vehicle102has a weight sensor in the driver's seat to determine whether the driver is present in the vehicle.

After the vehicle virtual assistance system200prompts the driver of the vehicle102for the reason for the vehicle stop at block330, the driver may give a reason for the stop. In some embodiments, the driver verbally speaks a reason for the stop and the stated reason is detected by the microphone120. For example, the driver may say “getting groceries,” “stopping for gas,” “eating dinner” or a variety of other reasons for the vehicle stop. In some embodiments, rather than speaking the reason for the vehicle stop, the driver may input the reason through the tactile display126or touch screen124.

In block340, the vehicle virtual assistance system200receives the reason for the stop from the driver (e.g., through the microphone120, through the tactile input hardware126a, through the peripheral tactile input hardware126b, through touchscreen input on the display124, and the like). In embodiments where the driver speaks the reason for the vehicle stop, the voice input analysis logic144acan analyze the spoken words of the driver to determine a reason for the stop. In some embodiments, the voice input analysis logic144acan extract a spoken category (e.g., groceries, gasoline, bank, visiting family). In other embodiments, the voice input analysis logic144acan extract other features from the reason spoken by the driver.

In block350, the vehicle virtual assistance system200determines the location of the vehicle102during the vehicle stop. In some embodiments, the vehicle virtual assistance system200determines the location of the vehicle102based on GPS signals received by the satellite antenna230.

In block360, the vehicle virtual assistance system200determines the date and time of the vehicle stop. In some embodiments, the vehicle virtual assistance system200determines the date and time by accessing a clock of the vehicle102.

In block370, the vehicle virtual assistance system200stores a record of the vehicle stop comprising the date and time of the stop, the duration of the stop, the location of the stop, and the reason for the stop. In some embodiments, the record is stored in the one or more memory modules206. In other embodiments, the record is transmitted and stored remotely from the vehicle102(e.g., in a cloud-based server, such as the server224ofFIG. 2).

In some embodiments, the steps ofFIG. 3are performed every time that the vehicle102comes to a stop. Thus, over time, the vehicle virtual assistance system200will amass a large amount of data about stops made by the vehicle102. As the amount of stored data relating to vehicle stops increases, the route analysis logic144banalyzes this data to determine patterns. The route analysis logic144bcan determine patterns by determining correlations between time, day of the week or month, location, duration of stop, and/or reason for the stop.

The route analysis logic144bmay determine a variety of different patterns based on the recorded data of vehicle stops and the vehicle virtual assistance system200may make suggestions for future stops and/or routes based on these patterns. One pattern that the route analysis logic144bmay detect is that the vehicle102stops at a particular location at regular intervals. For example, the route analysis logic144bmay determine that the vehicle102stops at a particular location every weekday morning with the stated reason of getting coffee. In this example, on future driving trips on weekday mornings, the vehicle virtual assistance system200may suggest a route that most conveniently passes the location serving coffee.

Another example pattern that the route analysis logic144bmay detect is that the vehicle102stops at a particular type of location at particular times (e.g., the vehicle stops at a bank every Friday afternoon). In this example, when the vehicle102is in use on a Friday afternoon, the vehicle virtual assistance system200may find the nearest bank and suggest a route to the driver that passes that bank.

In another example, the route analysis logic144bmay determine that the vehicle102often stops for a long period of time at a particular traffic light on weekday mornings. In this example, on future weekday mornings, the vehicle virtual assistance system may suggest an alternate route that avoids the location of the traffic light in order to save the driver time on her commute.

In another example, the route analysis logic144bmay determine that the vehicle102stops at a variety of different restaurants on Saturday evenings. In this example, the vehicle virtual assistance system200may, on a future Saturday evening, locate a restaurant that has not been visited and suggest a route that visits the restaurant.

In another example, the route analysis logic144bmay determine that the vehicle102often stops for the reason of family entertainment on the weekends. In this example, the vehicle virtual assistance system200may suggest routes that pass other family entertainment establishments on future weekend driving trips.

In some embodiments, the vehicle102contains weight sensors on one or more of the vehicle seats. In these embodiments, the vehicle virtual assistance system200may determine that the driver's family is in the car based on the weight sensors, and suggest stops that have family friendly entertainment options.

In some embodiments, the route analysis logic144banalyzes the data after a threshold number of vehicle stops have been recorded (e.g.,10stops) to look for patterns. After the route analysis logic144bdetermines one or more patterns of stops by the vehicle102, the vehicle virtual assistance system200may suggest stops and/or routes to the driver of the vehicle102on future driving trips based on the patterns detected, as explained in further detail below.

As explained above, the route analysis logic144bdetermines patterns based on stored data about vehicle stops and correlations between different data about those stops such as the date and time of the stop, the location of the stop, and the reason for the stop. Thus, the vehicle virtual assistance system200can suggest vehicle routes at appropriate times. For example, if the route analysis logic144bdetermines that the vehicle102stops at a grocery store every Wednesday evening, the vehicle virtual assistance system200can suggest a route that passes a grocery store if the car is being used on Wednesday evening. Other patterns detected by the route analysis logic144bthat correlate to specific dates and times will cause the vehicle virtual assistance system200to suggest a route when the vehicle is in use at an appropriate date and time related to the detected pattern.

FIG. 4depicts a flowchart for suggesting a vehicle route, according to one or more embodiments shown and described herein. In block410, the vehicle virtual assistance system200determines whether a vehicle route suggestion is available based on the date and time that the vehicle102is in use. If a route suggestion is not available, control returns to block410. If a route suggestion is available, control advances to block420.

In block420, the vehicle virtual assistance system200outputs an inquiry about the suggested route, such as by asking the driver if she would like to take the suggested route. In some embodiments, the vehicle virtual assistance system200suggests a route by playing a message through the speaker122asking if the driver would like to take the suggested route. In some embodiments, the vehicle virtual assistance system200states a reason for making the suggestion (e.g., noting to the driver that they seem to stop at this location every weekday morning).

In block430, the vehicle virtual assistance system200receives a response as to whether the driver would like to take the suggested route. In some embodiments, the response is received by the driver verbalizing a response through the microphone120. In other embodiments, the driver may input a response using the tactile input hardware126aand/or peripheral tactile input hardware126bor the touch screen of the display124.

In block440, the vehicle virtual assistance system200determines whether the driver has accepted the suggested route based on the response received. If the vehicle virtual assistance system200determines that the suggested route has not been accepted, in block442an appropriate record is recorded in the memory modules206noting that the suggested route was not accepted. The route analysis logic144bcan use this information to make future route suggestions. For example, if a particular route suggestion is not accepted after a certain number of times, the suggestion can stop being made.

If the vehicle virtual assistance system200determines that the suggested route has been accepted at block440, in block450, the updated route can be made the active route by, for example, updating the vehicle's navigation system with the suggested route.

If the driver indicates she would like to take the suggested route, the vehicle virtual assistance system200updates the vehicle's navigation system with the suggested route. If the driver indicates that she would not like to take the suggested route, no change is made to the vehicle's navigation system. In some embodiments, the vehicle virtual assistance system200records the driver's response and the route analysis logic144buses the response to make future route suggestions. For example, if the driver declines a suggested route several times, the vehicle virtual assistance system200may stop making the suggestion.

It should be understood that embodiments described herein provide for vehicle virtual assistance systems for storing and utilizing data associated with vehicle stops. The vehicle virtual assistance system includes one or more processors, one or more memory modules communicatively coupled to the one or more processors, an input device communicatively coupled to the one or more processors, and an output device communicatively coupled to the one or more processors. When a vehicle has stopped for greater than a predetermined threshold, the virtual assistance system requests, through the output device, that the driver give a reason for the vehicle stop and receives, through the input device, a stated reason for the vehicle stop. Information about the vehicle stop is then stored by the virtual assistance system. After data about a number of vehicle stops have been recorded, the virtual assistance system may suggest future stops and or routes based on this data.