The present disclosure is generally related to intelligent virtual assistants that provide responses or recommendations to persons via a user interface at a vehicle. More specifically, the present disclosure is directed to adjusting the operation of an intelligent virtual assistant based on contextual information received from both the vehicle and the person.
There are presently no available artificial intelligence (AI) based vehicle assistants that respond to queries from users based on collected user data and sensor data sensed by sensors at a vehicle.
As such, it is desirable to have an AI-based vehicle assistant that can provide responses or recommendations to drivers of a vehicle while the operation of a vehicle is monitored. What are needed are AI assistants that can collect data associated with a vehicle and that can respond to queries from the driver to improve the driving experience.
The presently claimed invention relates to a method, a non-transitory computer-readable storage medium, and an apparatus that evaluates data. A first embodiment of the presently claimed invention is a method that receives a command from a vehicle computing device, retrieves data associated with the command, identifies a response to provide to a person at the vehicle, and sends a communication to the vehicle computer device that includes the response. The vehicle computing device may then receive the communication and provide the response to the person via a user interface at the vehicle.
A second embodiment of the presently claimed invention is a non-transitory computer-readable storage medium where a processor executes instructions to perform the presently claimed method. Here again the method may include receiving a command from a vehicle computing device, retrieving data associated with the command, identifying a response to provide to a person at the vehicle, and sending a communication to the vehicle computer device that includes the response. The vehicle computing device then receives the communication may then provide the response to the person via a user interface at the vehicle.
A third embodiment of the presently claimed invention is an apparatus that includes a memory and a processor. The processor may execute instructions out of the memory to receive a command from a vehicle computing device, retrieve data associated with the command, identify a response to provide to a person at the vehicle, and prepare a communication to be sent to the vehicle computer device that includes the response. The communication may then be sent to and received by the vehicle computing device and the vehicle computing device may then provide the response to the person via a user interface at the vehicle.
Embodiments of the present disclosure will be described more fully hereinafter with reference to the accompanying drawings in which like numerals represent like elements throughout the several figures, and in which example embodiments are shown. Embodiments of the claims may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. The examples set forth herein are non-limiting examples and are merely examples among other possible examples.
An intelligent vehicle assistant consistent with the present disclosure may collect user preferences, user data, and data associated with a vehicle when providing information or instructions to a person in the vehicle by sending messages to a vehicle computer. The vehicle assistant may acquire preferences or data from the vehicle via a wired diagnostic port or via a wireless communication interface. Commands from a person may be received by the vehicle computer and may be sent to another device that interprets those commands and that evaluates contextual information to identify and send responses to the commands that may be provided to the person via an audio interface or via a display.
The vehicle computer may include a voice assistant that receives voice messages from a driver of the vehicle, may collect sensor data, and may monitor the behaviors of the driver. Additionally or alternatively, the vehicle computer may also receive input from a user interface (e.g. a graphical user interface). Queries and other information received by the vehicle computer may be provided to an external computing device that may adjust responses to those queries based on the current context of the vehicle and a past behavior or preferences of the driver.
Vehicle AI agent system 140 is a collection of electronic devices, routines/instructions, and storage systems that send and receive user requests related to a vehicle, stores past requests, and performs operations as required. The vehicle AI agent system 140 includes a computer that includes processor/CPU 145, memory 150, and display 155. The CPU 145 at the vehicle AI agent system 140 may be capable of being programmed to execute instructions stored in memory 150 and access data stored at databases 175 of the vehicle AI agent system 140 of
The user database of databases 175 may be an organized collection of data pertaining to user preferences. This data may include information input by a user. Data input by a user may include a home location, a work location, preferred retailers, schedule information, or other information. This user database may also store data collected about normal routines of the user (i.e., frequently visited locations, route preferences, etc.) and data collected from third parties (i.e., retail locations along routes, customers loyalty and sale offers, preferences from social media, etc.). Preference data may be stored at the user case module database of vehicle AI agent system 140 or may be stored at the network use case database 190 of the vehicle AI agent network 180. Preference data may be received from a user via a user computing device or may be received from third party network computer 125A. This preference data may identify a brand of gasoline that is preferred by a user, a store or coffee shop preferred by a user, roads preferred by a user, service recommendations received from a computer of a vehicle manufacturer, or may include other data.
The use case module database of databases 175 may store an organized collection of data related to the information that should be collected and actions that should be performed in response to specific user requests. Memory 150 of the Vehicle AI agent system 140 is illustrated as storing instructions of several modules that may work together to receive user commands and queries related to a vehicle and its use. The software modules of memory 150 include a base modules, a vehicle I/O module, a user module, a command module, and a use case module. Operation of these software module instructions may allow CPU 145 to retrieve appropriate data from various sources, to perform required actions, and to return appropriate responses—similar to other context-based search systems well known in the art.
The base software module stored in memory 150 may include instructions used to organize commands and CPU 145 may execute instructions of one or more additional software modules, as necessary. Instructions of the specific modules executed may be identified based on a nature of a user request or a category associated with a user request. Vehicle I/O software module may include instructions that result in CPU 145 receiving data from computer 110 at vehicle 105. This received data may be stored in the vehicle database at the vehicle AI agent system 140. In an instance when a user requests information pertaining to whether their vehicle has enough gas to reach a certain destination, software instructions at the vehicle AI agent system 140 may cause CPU 145 to identify a fuel level from vehicle's fuel level sensor data. Instructions associated with the user module may cause CPU 145 to detect that a command has been received and this may result in CPU 145 executing instructions that provides the command to the use case software module and the command software module. The command module stored in memory 150 may include instructions that cause CPU 145 to evaluate received commands, determine actions that may be associated with those commands, and perform those actions. For example, if a user requests information pertaining to whether their vehicle has enough gas to reach a certain destination, instructions of the command module may cause CPU 145 to calculate a maximum number of miles that can be traveled based on the information provided by the vehicle (e.g. fuel level and average gas mileage). Once an estimate of the number of miles that can be traveled has been identified, this information may be sent to computer 110 at vehicle 105 after which that information may be provided to a driver of vehicle 105 via a user interface (e.g. a display or speaker).
Instructions of the use case module stored in memory 150 may include instructions that allow CPU 145 to detect and evaluate commands may cause data to be retrieved from the use case database, and that may allow CPU to store updates and projections in the use case database at the vehicle AI agent system 140 of
One skilled in the art will appreciate that, for this and other embodiments disclosed herein, the elements associated with the system for the Vehicle Intelligent Assistant are exemplary in nature. Some of the elements may be combined into fewer elements, or expanded into additional elements without detracting from the disclosed embodiments. Furthermore, some of the elements of the methods and apparatus consistent with the present disclosure may be optional and others may be added also without detracting from how the vehicle intelligent assistant functions.
While
The process of
Instructions of the vehicle network module of
A first row in table 1 identifies that a first command (CMD ID 1) is associated with a voice request that asks “what is my schedule?” and a number of actions that may be performed to service that command. The actions associated with command 1 are retrieve data from the user database, retrieve traffic conditions from a third party database, retrieve fuel levels from the vehicle computer, and calculate a recommended departure time based on a travel distance, road conditions, and fuel levels. The recommended departure time may be adjusted based on traffic conditions or based on an identification that the driver of the vehicle must stop for gas. Methods and apparatus consistent with the present disclosure may assist drivers by considering information that is required to reach a destination on time. Departure times may be moved to an earlier time when traffic is congested or upon an identification that that driver must stop for fuel.
Methods consistent with the present disclosure may cause the vehicle AI agent system 140 of
The commands of table 1 may allow a driver of a vehicle to simply ask a question of “do I need to stop for gas?”; “what is my vehicle identification number (VIN)?”; or “when do I need an oil change.” After receiving such a question, the actions 1-4 may be performed and an answer may be provided to a driver via a user interface (e.g. a display or a speaker) at the vehicle. Depending upon the particular question, a processor executing instructions out of memory may access an appropriate computer system or database to collect information and determine a result to provide to a driver.
Table 2 illustrates exemplary sets of data that may be stored in a vehicle database, such as the vehicle database of databases 175 of
The timing data stored in table 2 may cross-reference a date and a time to the various types of data collected over time for one or more vehicles. The first row of table 2 identifies that on May 6, 2018 at 12 noon, a vehicle ID number of 123456789 of a Toyota Prius was entered into the vehicle database. Over time fuel levels, tire pressures, and odometer readings that may have been collected from one or more vehicle sensors may be stored and cross-referenced with yet another date and time. Note also that on May 8, 2018 at 13:30 hours, that the vehicle fuel level was 12 gallons, that an oil change was performed where 4 quarts of synthetic oil were provided as part of an oil change service, and that the tire pressure was 31 pounds per square inch (psi) when the odometer reading of the vehicle was 32843 miles.
The information stored in the vehicle database of table 2 may have been collected by the vehicle AI agent system 140 of
Table 3 illustrates data that may be stored at a user database, such as the user database of databases 175 of
Table 4 illustrates information that may be stored in a use case database, such as the use case database of 190 of
The data of table 4 identifies action results associated with the question of “do I need to stop for gas?” including identifying that the vehicle gas tank is currently storing 10 gallons of gas, that the average fuel usage of the vehicle is 25 miles per gallon (MPG), and that a maximum estimated travel distance that the vehicle can travel before running out of fuel is 250 miles.
As mentioned above in respect to
Determination step 630 may then identify whether any use case data was received based on the command, when no program flow may move back to step 620, where he use case database may be accessed or polled again. When determination step 630 identifies that use case data has been retrieved or received from the use case database, program flow may move to determination step 640 that identifies whether any additional action should be performed or whether any additional data is required to perform an action. As discussed in respect to the use case data of table 4, these additional actions may include checking traffic conditions, checking vehicle fuel levels, or identifying an average fuel consumption rate in MPG. When an additional action or data are required, program flow may move to step 650 where this additional action is performed or where additional data is retrieved. After step 650 program flow may move back to executing instructions of the base software module in step 670 of
The data received in
The components shown in
Mass storage device 830, which may be implemented with a magnetic disk drive or an optical disk drive, is a non-volatile storage device for storing data and instructions for use by processor unit 810. Mass storage device 830 can store the system software for implementing embodiments of the present invention for purposes of loading that software into main memory 820.
Portable storage device 840 operates in conjunction with a portable non-volatile storage medium, such as a FLASH memory, compact disk or Digital video disc, to input and output data and code to and from the computer system 800 of
Input devices 860 provide a portion of a user interface. Input devices 860 may include an alpha-numeric keypad, such as a keyboard, for inputting alpha-numeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. Additionally, the system 800 as shown in
Display system 870 may include a liquid crystal display (LCD), a plasma display, an organic light-emitting diode (OLED) display, an electronic ink display, a projector-based display, a holographic display, or another suitable display device. Display system 870 receives textual and graphical information, and processes the information for output to the display device. The display system 870 may include multiple-touch touchscreen input capabilities, such as capacitive touch detection, resistive touch detection, surface acoustic wave touch detection, or infrared touch detection. Such touchscreen input capabilities may or may not allow for variable pressure or force detection.
Peripherals 880 may include any type of computer support device to add additional functionality to the computer system. For example, peripheral device(s) 880 may include a modem or a router.
Network interface 895 may include any form of computer interface of a computer, whether that be a wired network or a wireless interface. As such, network interface 895 may be an Ethernet network interface, a BlueTooth™ wireless interface, an 802.11 interface, or a cellular phone interface.
The components contained in the computer system 800 of
The present invention may be implemented in an application that may be operable using a variety of devices. Non-transitory computer-readable storage media refer to any medium or media that participate in providing instructions to a central processing unit (CPU) for execution. Such media can take many forms, including, but not limited to, non-volatile and volatile media such as optical or magnetic disks and dynamic memory, respectively. Common forms of non-transitory computer-readable media include, for example, a floppy disk, a flexible disk, a hard disk, magnetic tape, any other magnetic medium, a CD-ROM disk, digital video disk (DVD), any other optical medium, RAM, PROM, EPROM, a FLASH EPROM, and any other memory chip or cartridge.
While various flow diagrams provided and described above may show a particular order of operations performed by certain embodiments of the invention, it should be understood that such order is exemplary (e.g., alternative embodiments can perform the operations in a different order, combine certain operations, overlap certain operations, etc.).
The foregoing detailed description of the technology herein has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the technology to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the technology and its practical application to thereby enable others skilled in the art to best utilize the technology in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the technology be defined by the claim.
The present application claims the priority benefit of U.S. provisional patent application 62/878,703, filed Jul. 25, 2019, the disclosure of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
62878703 | Jul 2019 | US |