Request and receive reminder instructions in navigation session
By receiving and analyzing the reminder content and conditions entered by users in the navigation application, and providing personalized navigation reminders, the problem that existing navigation applications cannot meet users' personalized needs is solved, and the security and user experience of navigation are improved.
Patent Information
- Application Number
- CN202280096435.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-05-31
- Publication Date
- 2025-01-10
AI Technical Summary
Existing navigation applications fail to provide users with personalized navigation instructions for personal preferences and skills, resulting in users who may face security risks and poor experience during navigation.
Provide personalized reminder instructions, such as remindering users to avoid specific road sections or turns, improve navigation security and experience by receiving user input during navigation sessions, analyzing reminder content and trigger conditions, storing and detecting trigger conditions in subsequent navigation sessions. .
It realizes personalized navigation reminders based on the user's personal preferences and route characteristics, improves navigation security and user experience, ensures that users can receive important navigation information in a timely manner, and reduces omissions.
Smart Images

Figure CN119301424A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates generally to navigation sessions and, more particularly, to providing reminder instructions during a navigation session. Background Art
[0002] The background description provided herein is for the purpose of generally presenting the context of the present disclosure. The work of the presently named inventors (to the extent that it is described in this background section) and aspects of the specification that might not have been considered prior art at the time of filing are neither explicitly nor implicitly admitted to be prior art to the present disclosure.
[0003] Generally speaking, conventional navigation applications that provide directions to and from a destination are ubiquitous in modern culture. These conventional navigation applications may provide directions and turn-by-turn navigation to reach a preprogrammed destination by driving and / or several other modes of transportation (e.g., walking, public transportation, etc.). In particular, conventional navigation applications allow a user to specify a source point and a destination point, after which the user is presented with a route that includes navigation instructions (or a set of route suggestions) for traveling from the source point to the destination point. The route is typically a generalized route instruction such that users traveling from the same departure point to the same destination will receive the same navigation instructions or set of route suggestions.
[0004] However, users' willingness and skill in performing various maneuvers may vary from user to user. For example, while a first user may generally approach a turn at a safe speed, a second user may have a tendency to approach a turn at a speed close to or above an upper safe speed limit, or may be reluctant to approach a turn at a particular speed. Additionally, users may have personal preferences regarding specific locations along a route that may not apply to all users.
[0005] Thus, conventional navigation applications generally fail to provide users with personalized navigation instructions that are specifically tailored to the users, and there is a need for navigation applications that can provide a mechanism for personalized supplemental instructions. Summary of the invention
[0006] An example embodiment of the technology disclosed herein is a method for creating and providing reminders during a navigation session in a computing device. The method may be implemented by one or more processors and may include: initiating a navigation session for providing a set of navigation instructions to a user along a route from a departure location to a destination location; receiving input including a request to create a reminder during the navigation session; analyzing the input to determine: (i) the content of the reminder, and (ii) a trigger condition for providing the reminder, the trigger condition including a trigger location on the route; storing the reminder including the content and the trigger condition; detecting the trigger condition during a subsequent navigation session; and providing the reminder in response to detecting the trigger condition.
[0007] Another example embodiment is a computing device for creating and providing reminders during a navigation session. The computing device may include: one or more processors; and a computer-readable memory, the computer-readable memory being optionally non-transitory, coupled to the one or more processors and storing instructions thereon, the instructions, when executed by the one or more processors, causing the computing device to: initiate a navigation session for providing a set of navigation instructions to a user along a route from a departure location to a destination location; receive input from the user during the navigation session including a request to create a reminder; analyze the input to determine: (i) content of the reminder, and (ii) a trigger condition for providing the reminder, the trigger condition including a trigger location on the route; store the reminder including the content and the trigger condition; detect the trigger condition during a subsequent navigation session; and provide the reminder in response to detecting the trigger condition.
[0008] Yet another example embodiment is a computer-readable medium, which is optionally tangible and non-transitory, storing instructions for creating and providing a reminder during a navigation session, which instructions, when executed by one or more processors, cause the one or more processors to: initiate a navigation session for providing a set of navigation instructions to a user along a route from a departure location to a destination location; receive input from the user during the navigation session including a request to create a reminder; analyze the input to determine: (i) content of the reminder, and (ii) a trigger condition for providing the reminder, the trigger condition including a trigger location on the route; store the reminder including the content and the trigger condition; detect the trigger condition during a subsequent navigation session; and provide the reminder in response to detecting the trigger condition. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Figure 1A is a block diagram of an example communication system in which techniques for creating reminders and providing reminders during a navigation session may be implemented;
[0010] Figure 1B Shows where users can take advantage of Figure 1A An example vehicle interior of a user computing device or a vehicle computing device to request reminders and receive reminders during a navigation session;
[0011] Figure 2A is a flow chart of an example method for creating reminders and providing reminders during a navigation session;
[0012] Figure 2B is a flow chart of an example method for analyzing user input to generate reminders;
[0013] Figure 2C is a flow chart of an example method for generating a reminder based on two similar reminders;
[0014] Figure 3A An example scenario is shown in which a user requests a reminder;
[0015] Figure 3B shows where the navigation application provides Figure 3A Example scenario where a reminder is generated in and the user can provide feedback on the reminder;
[0016] Figure 4 is a flow chart of another example method that may be implemented in a computing device, such as the user computing device of FIG. 1 , for creating reminders and providing reminders during a navigation session. DETAILED DESCRIPTION
[0017] Overview
[0018] Using the techniques of the present disclosure, a computing device can generate and provide customized reminders to a user during a navigation session. Before, during, or after a navigation session, a user can provide input (e.g., by providing voice input, or by interacting with a GUI on a display) requesting a navigation application to create a reminder for a subsequent navigation session. If the user provides input during the route of the navigation session, the navigation application can record the user's current location, direction of travel, speed, and / or other status information when the input is provided, which can be used to generate reminders when the input does not specify a trigger condition. The input can be converted into text (e.g., using automatic speech recognition (ASR)) and analyzed using rules and / or machine learning to determine the content of the reminder and the trigger condition of the reminder. The trigger condition includes a trigger location so that when the user arrives at the trigger location during a subsequent navigation session, the navigation application will provide a reminder.
[0019] For example, the request may explicitly indicate a trigger location, or partially indicate a trigger location (e.g., the navigation application may utilize semantic analysis to determine the trigger location based on the request). If the request does not indicate a trigger location, the navigation application may use the user's location at the time the input to create the reminder was provided as the trigger location.
[0020] After generating the reminder, the navigation application can store the reminder including the content (i.e., the instructions to be provided when providing the reminder) and the triggering condition. If the navigation application detects the triggering condition, the navigation application provides the reminder (e.g., by issuing supplemental route instructions including the reminder and / or displaying a notification on the GUI presenting the navigation instructions). After providing the reminder, the navigation application can monitor user feedback about the reminder for a predetermined amount of time to provide the user with an opportunity to further refine the reminder.
[0021] In a first example, a user may request a reminder about a feature of a route the user is traveling. The user may pass a pothole while traveling along the route. After passing the pothole, the user may initiate input to the navigation application (e.g., by interacting with a GUI on a display or by speaking a trigger phrase). The input may include a request to "remind me about this pothole next time." During a subsequent route (the same route, or any subsequent route that includes the location of a pothole), when the navigation application detects that the user is approaching a pothole, the navigation application may provide a reminder (e.g., "watch out for the pothole that is coming up"). In this example, the user implicitly provides a trigger location by speaking "this pothole," so that the navigation application can determine to use the user's location at the time of initiating the request as the location of the pothole and the corresponding trigger location.
[0022] In a second example, the technology of the present disclosure can be configured to generate a reminder based on a request received before a route. A user can initiate an input to a navigation application and request "remind me to call John when we are ten minutes away from his home". In this example, the request explicitly indicates the trigger location. The navigation application can provide a reminder on the next route where the user is ten minutes away from John's home. In addition, by analyzing the request, the navigation application can determine to provide a reminder only once (i.e., the next time the user is ten minutes away from John's home), rather than providing a reminder on each subsequent route. To make this determination, the navigation application can utilize natural language processing techniques, including machine learning.
[0023] In a third example, the technology of the present disclosure may be configured to generate reminders for locations similar to locations encountered by a user. In a first instance, a user may request “remind me to approach this turn moreslowly next time”. In response, the navigation application may generate a reminder to remind the user to approach a particular turn at the user's location more slowly when the reminder is initiated. In a second instance, a user may request “remind me to approach turns like this more slowly”. In response, the navigation application may identify turns similar to the particular turn at the user's location. For example, the navigation application may identify turns that have a predetermined number of common characteristics with a particular turn, and / or may use machine learning (e.g., using a distance metric) to identify similar turns.
[0024] In a fourth example, the technology of the present disclosure can generate reminders similar to those created by the user. The navigation application can determine that two or more trigger locations of corresponding two or more reminders have similar characteristics. For example, the user may have requested reminders for two corresponding turns with similar turning angles. The navigation application can then generate a general reminder for any turn with such a turning angle, thereby improving the user's experience. In this example, by generating a general reminder for any turn with such a turning angle, future navigation is safer. In particular, navigation of routes that are unfamiliar to the user is safer because any turn with a turning angle previously identified as being associated with a previous reminder will cause the associated reminder to be automatically generated.
[0025] In this way, various aspects of the present disclosure provide a technical solution to the problem of non-optimal route instructions by configuring and providing route instructions personalized for users. Conventional systems provide users with generalized navigation instructions so that users traveling from the same departure point to the same destination will receive the same generalized navigation instructions. Therefore, conventional systems do not provide personalized route instructions based on personal preferences and personal nuances. In contrast, the technology of the present disclosure enables users to configure personalized reminders about locations or features along the route, which can be used as supplementary route instructions. In addition to improving the user experience, such reminders also improve safety because users can configure reminders related to specific road hazards or features that users consider dangerous. In addition, since users can generate reminders immediately when or after encountering route features related to reminders, users are less likely to forget to set reminders and are more likely to receive the user experience and / or safety benefits provided by reminders. In addition, reminders can be automatically generated based on previously requested reminders and trigger conditions associated therewith, so that reminders can be automatically generated when one or more identical or similar trigger conditions appear in the navigation route. Then, when one or more trigger conditions are met during navigation of the navigation route, such automatically generated reminders can be provided.
[0026] The technology of the present disclosure can work in an environment based on voice or touch-based interface. However, for ease of discussion, the dialog flow between the user and the navigation application (and the corresponding processing component) described herein can generally be in a context of a voice-based configuration. However, in the case of a touch-based interface, reminders can be displayed to the user in the user interface, and / or the user can request reminders or provide user feedback to improve reminders via text input or by interacting via UI elements (e.g., icons). The embodiments described in the context of a voice-based interface disclosed herein may also be applicable to the context of a touch-based interface. All embodiments of describing input or output in the context of a voice-based interface disclosed herein may be suitable for the context of a touch-based interface. In addition, the technology discussed herein may be applicable to a system including a combination of touch-based features and voice-based features. For example, a user may request a reminder via voice input, and the system may provide a reminder via a display on a graphical user interface (GUI) (or by a combination of a reminder issued via a speaker and a reminder displayed).
[0027] Additionally, it should be understood that the term "reminder" as used herein may encompass a reminder to a user to perform an action (e.g., a navigation maneuver) and / or to perform an action, annotation, comment, observation, instruction, etc. in a certain manner. Generally speaking, a "reminder" conveys information to a user, wherein the information may be any information requested by the user. In the context of providing a "reminder" during navigation of a navigation route, the reminder may be related to controlling the vehicle in a manner that improves navigation safety. For example, such a reminder may provide instructions to control the vehicle to improve safety during an upcoming maneuver or turn.
[0028] Example Hardware and Software Components
[0029] First reference Figure 1A , an example communication system 100 in which techniques for creating and providing reminders during a navigation session may be implemented includes a user computing device 102. For example, the user computing device 102 may be a portable or mobile device, such as a smart phone or a tablet computer. The user computing device 102 may also be a laptop computer, a desktop computer, a personal digital assistant (PDA), a wearable device (such as a smart watch or smart glasses), etc. In some embodiments, the user computing device 102 may be removably mounted in a vehicle, embedded in a vehicle, and / or may be capable of interacting with a head unit of the vehicle to provide navigation instructions.
[0030] The user computing device 102 may include one or more processors 104 and a memory 106 storing machine-readable instructions executable on the processor 104. The processor 104 may include one or more general-purpose processors (e.g., CPUs) and / or special-purpose processing units (e.g., graphics processing units (GPUs)). The memory 106 may optionally be a non-transitory memory and may include one or more suitable memory modules, such as random access memory (RAM), read-only memory (ROM), flash memory, other types of persistent memory, etc. The memory 106 may store instructions for implementing a navigation application 108, which may provide navigation directions (e.g., by displaying directions or issuing audio instructions via the user computing device 102), displaying an interactive digital map, requesting and receiving route data to provide driving, walking, or other navigation directions, providing various geo-located content (such as traffic, points of interest (POIs), and weather information), etc.
[0031] In addition, the memory 106 may include a language processing module 109a, which is configured to implement and / or support the technology for generating reminders disclosed in the present invention. That is, the language processing module 109a may include an automatic speech recognition (ASR) engine 109a1, which is configured to transcribe the voice input from the user into a text set. In addition, the language processing module 109a may include a text-to-speech (TTS) engine 109a2, which is configured to convert text into audio output, such as audio requests, navigation instructions and / or other outputs of the user. In some scenarios, the language processing module 109a may include a natural language processing (NLP) model 109a3, which is configured to output text transcription, reminder content and trigger condition interpretation and / or audio output related to the voice input received from the user of the user computing device 102. It should be understood that, as described herein, the ASR engine 109a1 and / or the TTS engine 109a2 may be included as part of the NLP model 109a3 to transcribe user voice input into a text set, convert text output into audio output, and / or perform any other suitable functionality described herein as part of an information exchange between the user computing device 102 and a user.
[0032] Generally, the language processing module 109a may include computer executable instructions for training and operating the NLP model 109a3. Generally, the language processing module 109a may train one or more NLP models 109a3 by establishing a network architecture or topology and adding layers that may be associated with one or more activation functions (e.g., rectified linear units, softmax, etc.), loss functions, and / or optimization functions. Such training may generally be performed using symbolic methods, machine learning (ML) models, and / or any other suitable training methods. More generally, the language processing module 109a may train the NLP model 109a3 to perform two techniques that enable the user computing device 102 and / or any other suitable device (e.g., the vehicle computing device 150) to understand the words spoken by the user and / or the words generated by the text-to-speech program (e.g., TTS engine 109a2) executed by the processor 104: syntactic analysis and semantic analysis.
[0033] Syntactic analysis generally involves analyzing text using basic grammatical rules to identify overall sentence structure, how specific words within a sentence are organized, and how the words within a sentence relate to each other. Syntactic analysis may include one or more subtasks, such as lemmatization, part-of-speech (PoS) tagging, parsing, morphological restoration and stemming, stop word removal, and / or any other suitable subtasks or combinations thereof. For example, using syntactic analysis, the NLP model 109a3 may generate a text transcription based on a speech input from a user. Additionally or alternatively, the NLP model 109a3 may receive such a text transcription as a text set from the ASR engine 109a1 in order to perform semantic analysis on the text set.
[0034] Semantic analysis generally involves analyzing text in order to understand and / or otherwise capture the meaning of the text. In particular, the NLP model 109a3 to which semantic analysis is applied can study the meaning of each individual word contained in the text transcription in a process known as lexical semantics. Utilizing these individual meanings, the NLP model 109a3 can then check the various combinations of words included in the sentences of the text transcription to determine one or more contextual meanings of the words. Semantic analysis can include one or more subtasks, such as word sense disambiguation, relation extraction, sentiment analysis and / or any other suitable subtasks or combinations thereof. For example, using semantic analysis, the NLP model 109a3 can generate one or more reminder contents and trigger condition explanations based on the text transcription from syntactic analysis.
[0035] In these aspects, the language processing module 109a may include an artificial intelligence (AI) trained or machine-learned algorithm (e.g., a natural language processing (NLP) model 109a3) configured to interact with a user accessing the navigation app 108. The user may connect directly to the navigation app 108 to provide verbal input / responses (e.g., voice input), and / or the user request may include text input / responses, which the TTS engine 109a2 (and / or other suitable engines / models / algorithms) may convert into audio input / responses for interpretation by the NLP model 109a3. When the user accesses the navigation app 108, the input / responses spoken by the user and / or generated by the TTS engine 109a2 (or other suitable algorithms) may be analyzed by the NLP model 109a3 to generate a text transcription and explanations of reminder content and trigger conditions.
[0036] The language processing module 109a can use multiple training voice inputs from multiple users to train one or more NLP models 109a3 to apply these and / or other NLP techniques. Therefore, the NLP model 109a3 can be configured to output a text transcription and a reminder content and trigger condition interpretation corresponding to the text transcription based on the syntactic analysis and semantic analysis of the user's voice input.
[0037] In addition, the memory 106 may also include a similarity module 109b, which is configured to support the technology for generating reminders disclosed in the present invention. The similarity module 109b may include a similarity model 109b1, which is configured to identify a location similar to the input location based on the input location (or other route features, such as route segments or navigation instructions). For example, if the user input indicates that a reminder should be generated for a location or route feature similar to a specific location or route feature, the similarity model 109b1 can identify similar locations and / or route features. As another example, the similarity model 109b1 can also identify that two reminders (or a predetermined minimum number of reminders) involve similar trigger locations, and can indicate to the navigation application that the two reminders are similar. The similarity model 109b1 can also determine other locations similar to the trigger locations of the two reminders, so that the navigation application can generate a general reminder for a location similar to the trigger locations of the two reminders. The similarity module 109b may be configured to interact with the navigation application 108 to provide functionality such as determining whether the trigger conditions or locations of two or more reminders are similar and determining locations similar to an input location, as will be described in further detail below.
[0038] In some aspects, the language processing module 109a may employ one or more types of machine learning (ML) to train the NLP model 109a3 and / or the similarity model 109b1. ML may be employed by the ML module 109c, which may store one or more ML models. The first example ML model included in the ML module 109c may be configured to receive a text set corresponding to the user input, and output the reminder content and trigger conditions of the reminder based on the text set. The second example ML model included in the ML module 109c may be configured to receive a location or route feature (e.g., a navigation instruction or a road segment), and output a similar location or route feature. The NLP model 109a3 may be and / or include one or more types of ML models, such as the first example ML model described above. More specifically, in these aspects, the NLP model 109a3 may be or include a machine learning model (e.g., a large language model (LLM)), which is trained by the ML module 109c using one or more text training data sets to output one or more training reminder contents and one or more training trigger conditions, as further described herein. Similarly, similarity model 109b1 can be and / or include one or more types of ML models, such as the second example ML model described above. In these aspects, similarity model 109b1 can be trained by ML module 109c using one or more navigation data training data sets to output locations similar to input locations. For example, artificial neural networks, recurrent neural networks, deep learning neural networks, Bayesian models, and / or any other suitable ML models can be used to train and / or otherwise implement NLP model 109a3 and / or similarity model 109b1. In these aspects, training can be performed by iteratively training NLP model 109a3 and / or similarity model 109b1 using labeled training samples (e.g., training user input). Although Figure 1A A machine learning module 109c is shown in the figure, but the machine learning module 109c can be implemented by separate modules (e.g., a first machine learning module including the first example ML model above and a second machine learning module including the second example ML model above).
[0039] In the instance where the NLP model 109a3 or the similarity model 109b1 is an artificial neural network, the training of the NLP model 109a3 may produce byproduct weights or parameters that can be initialized to random values. When training the network iteratively, the weights can be modified by using one of several gradient descent algorithms to reduce losses and converge the values output by the network to expected values or "learning" values. In an embodiment, a regression neural network lacking an activation function can be selected, wherein the input data can be normalized by mean centering to determine the loss and quantify the accuracy of the output. Such normalization can use a mean square error loss function and a mean absolute error. Standard techniques (such as hold-out, K-fold, etc.) can be used to verify and cross-validate the artificial neural network model. In an embodiment, multiple artificial neural networks can be trained and operated separately and / or trained separately and operated in combination.
[0040] In an embodiment, one or more NLP models 109a3 and / or similarity models 109b1 may include an artificial neural network having an input layer, one or more hidden layers, and an output layer. Each of the layers in the artificial neural network may include any number of neurons. Multiple layers may link neurons together linearly and may pass output from one neuron to the next neuron, or may be networked together so that neurons transmit input and output in a nonlinear manner. In general, it should be understood that many configurations and / or connections of artificial neural networks are possible. For example, the input layer may correspond to input parameters given as complete sentences, or input parameters separated according to word or character (e.g., fixed width) restrictions. In some embodiments, the input layer may correspond to a large number of input parameters (e.g., one million inputs) and may be analyzed serially or in parallel. In addition, various neurons and / or neuron connections within the artificial neural network may be initialized with any number of weights and / or other training parameters. Each of the neurons in the hidden layer may analyze one or more of the input parameters from the input layer, and / or one or more outputs from the previous one or more hidden layers in the hidden layer to generate a decision or other output. The output layer may include one or more outputs, each indicating a prediction. In some embodiments and / or scenarios, the output layer includes only a single output.
[0041] Depending on the implementation, one or both of the NLP model 109a3 and the similarity model 109b1 may use rule-based analysis instead of machine learning techniques or a combination of rule-based analysis and machine learning.
[0042] It should be noted that although Figure 1AThe navigation application 108 is shown as a stand-alone application, but the functionality of the navigation application 108 may also be provided in the form of an online service accessible via a web browser executing on the user computing device 102, as a plug-in or extension to another software application executing on the user computing device 102, etc. The navigation application 108 may generally be provided in different versions for different operating systems. For example, the manufacturer of the user computing device 102 may provide a version for Android. TM Software Development Kit (SDK) for the platform (including navigation application 108), for iOS TM another SDK of the platform, etc. In addition, depending on the implementation, one or more of the modules 109 a , 109 b , and 109 c may be included in the navigation application 108 .
[0043] The memory 106 may also store an operating system (OS) 110, which may be any type of suitable mobile or general purpose operating system. The user computing device 102 may also include a global positioning system (GPS) 112 or another suitable positioning module, a network module 114, a user interface 116 for displaying map data and directions, and an input / output (I / O) module 118. The network module 114 may include one or more communication interfaces, such as hardware, software, and / or firmware for interfaces for communicating via a cellular network, a Wi-Fi network, or any other suitable network (such as the network 144 discussed below). The I / O module 118 may include an I / O device capable of receiving input from the surrounding environment and / or a user and presenting output to the surrounding environment and / or a user. The I / O module 118 may include a touch screen, a display, a keyboard, a mouse, buttons, keys, a microphone, a speaker, and the like. In various implementations, the user computing device 102 may include, for example, a user interface 116 for displaying map data and directions. Figure 1A Fewer components may be shown, or conversely, additional components may be included.
[0044] The user computing device 102 may communicate with an external server 120 and / or a vehicle computing device 150 via a network 144. The network 144 may include one or more of an Ethernet-based network, a private network, a cellular network, a local area network (LAN), and / or a wide area network (WAN) such as the Internet. The navigation application 108 may transmit map data, navigation directions, and other geo-location content from a map database 156 to the vehicle computing device 150 for display on a cluster display unit 151. Additionally or alternatively, the navigation application 108 may access maps, navigation, and geo-location content stored locally at the user computing device 102, and may periodically access the map database 156 to update local data or access real-time information such as real-time traffic data during navigation. In addition, the user computing device 102 may be directly connected to the vehicle computing device 150 via any suitable direct communication link 140, such as a wired connection (e.g., a USB connection).
[0045] In some aspects, network 144 may include any communication link suitable for short-range communications and may conform to a communication protocol such as, for example, Bluetooth. TM (e.g., BLE), Wi-Fi (e.g., Wi-Fi Direct), NFC, ultrasonic signals, etc. Additionally or alternatively, network 144 may be, for example, Wi-Fi, a cellular communication link (e.g., compliant with 3G, 4G, or 5G standards), etc. In some scenarios, network 144 may also include a wired connection.
[0046] The external server 120 may be a remotely located server that includes processing capabilities and executable instructions necessary to perform some / all of the actions described herein with respect to the user computing device 102. For example, the external server 120 may include a language processing module 120a similar to the language processing module 109a included as part of the user computing device 102, and the module 120a may include one or more of the ASR engine 109a1, the TTS engine 109a2, and / or the NLP model 109a3. The external server 120 may also include a navigation app 120b, an ML module 120c, and a similarity module 120d similar to the navigation app 108, the ML module 109c, and the similarity module 109b, respectively.
[0047] The vehicle computing device 150 includes one or more processors 152 and a memory 153 storing computer-readable instructions executable by the processor 152. The memory 153 may store a language processing module 153a, a navigation application 153b, an ML module 153c, and a similarity module 153d, which are similar to the language processing module 153a, the navigation application 108, the ML module 109c, and the similarity module 109b, respectively. The navigation application 153b may support functionality similar to the navigation application 108 from the vehicle side and may facilitate the presentation of information displays, as described herein. For example, in some aspects, the user computing device 102 may provide the vehicle computing device 150 with an accepted route that has been accepted by the user, and corresponding navigation instructions provided to the user as part of the accepted route. The navigation application 153b may then continue to present the navigation instructions within the dashboard unit display 151 and / or generate an audio output that verbally provides the navigation instructions to the user via the language processing module 153a.
[0048] Regardless, the user computing device 102 may be communicatively coupled to various databases from which the user computing device 102 may retrieve navigation-related data, such as a map database 156, a traffic database 157, and a point of interest (POI) database 159. The map database 156 may include map data, such as map tiles, visual maps, road geometry data, road type data, speed limit data, etc. The traffic database 157 may store historical traffic information as well as real-time traffic information. The POI database 159 may store descriptions, locations, images, and other information about landmarks or points of interest. Although Figure 1A Databases 156, 157, and 159 are depicted, but the user computing device 102, the vehicle computing device 150, and / or the external server 120 may be communicatively coupled to additional databases, or conversely, may be communicatively coupled to fewer databases. For example, the user computing device 102 and / or the vehicle computing device 150 may be communicatively coupled to a database storing weather data.
[0049] Go to Figure 1B , the user computing device 102 may transmit information to present / display navigation instructions within the vehicle environment 170. The user computing device 102 may be located within the vehicle 172 and may be a smart phone. However, although Figure 1B User computing device 102 is depicted as a smartphone, but this is for ease of illustration only and user computing device 102 may be any suitable type of device and may include any suitable type of portable or non-portable computing device.
[0050] Regardless, the vehicle 172 can include a head unit 174, which in some aspects can include and / or otherwise house a user computing device 102. Even if the head unit 174 does not include a user computing device 102, the device 102 can communicate with the head unit 174 (e.g., via a wireless or wired connection) to transmit navigation information (such as a map or audio instructions and / or information display) to the head unit 174 for display or issuance by the head unit 174. Additionally, the vehicle 172 includes a dashboard display unit 151, which can display information transmitted from the user computing device 102. In some aspects, a user can interact with the user computing device 102 by interacting with the head unit controls. In addition, the vehicle 172 may provide a communication link 140, and the communication link 140 may, for example, include a wired connection to the vehicle 172 (e.g., via a USB connection), through which the user computing device 102 may transmit navigation information and corresponding navigation instructions for presentation within the instrument panel display unit 151, the display 176 and / or as an audio output through the speaker 184.
[0051] Therefore, the host unit 174 may include a display 176 for outputting navigation information, such as a digital map. Of course, the dashboard display unit 151 may also display such navigation information, including a digital map. Such a map presented in the dashboard display unit 151 may provide a driver of the vehicle 172 with better positioned navigation instructions, and therefore, the driver may not be forced to remove his eyes from the active road so much while driving in order to safely navigate to his intended destination. However, in some implementations, the display 176 includes a software keyboard for entering text input, which may include the name or address of the destination, departure point, etc.
[0052] The hardware input controls 178 and 180 on the head unit 174 and the steering wheel, respectively, may be used to enter alphanumeric characters or perform other functions for requesting navigation directions. For example, the hardware input controls 178, 180 may be and / or include rotary controls (e.g., knobs), touch pads, touch screens, and / or any other suitable input controls. For example, the head unit 174 may also include audio input and output components, such as a microphone 182 and a speaker 184. As an example, the user computing device 102 may be communicatively connected to the head unit 174 (e.g., via Bluetooth TM, WiFi, cellular communication protocols, wired connections, etc.) or may be included in the head unit 174. The user computing device 102 may present map information via the dashboard display unit 151, issue audio instructions for navigation via the speaker 184, and receive input from the user via the head unit 174 (e.g., via user interaction with the input controls 178 and 180, the display 176, or the microphone 182).
[0053] Example method for generating reminders and providing reminders during a navigation session
[0054] References below FIG. 2A to FIG. 2C The flowchart shown discusses the techniques of the present disclosure for generating reminders and providing reminders during a navigation session. FIG. 2A to FIG. 2C In some implementations, the actions described as being performed by the user computing device 102 may be performed by the external server 120, the vehicle computing device 150, and / or may be performed in parallel by the user computing device 102, the external server 120, and / or the vehicle computing device 150. For example, the user computing device 102, the external server 120, and / or the vehicle computing device 150 may utilize the language processing module 109a, 120a, 153a, the similarity module 109b, 120d, 153d, and / or the machine learning module 109c, 120c, 153c to generate reminders based on user input, detect triggering conditions for reminders, and provide reminders to the user during a navigation session.
[0055] First reference Figure 2A , a method 200 for generating reminders and providing reminders during a navigation session is shown. At box 202, the user computing device 102 receives user input including a request to create a reminder. To initiate providing the input, the user may interact with the navigation application 108. For example, the user may speak a trigger phrase that prompts the navigation application 108 to monitor for user input (e.g., by activating a microphone of the user computing device 102). As another example, the user may physically interact with a button of the vehicle computing device 150 (communicatively coupled to the user computing device 102) or the user computing device 102, or with a GUI element displayed by the instrument panel display unit 151 or the user interface 116, which prompts the navigation application 108 to monitor for user input.
[0056] Depending on the implementation, the user computing device 102 may determine that the user input includes a request to create a reminder after receiving the user input. For example, if the user input is initiated in response to a user interacting with a specific GUI element for creating a reminder, the user computing device 102 may determine that the user input includes a request to create a reminder without analyzing the user input. In other example implementations, the user computing device 102 determines that the user input includes a request to create a reminder based on analyzing the user input. For example, the user computing device 102 may determine that the user input includes a request to create a reminder when the language processing module 109a determines that the user input includes certain trigger phrases (e.g., phrases including words such as "reminder" or "remind" or words with similar meanings), and / or may determine that the user is requesting a reminder based on semantic or syntactic analysis (i.e., by applying the NLP model 109a3 to the user input).
[0057] The user computing device 102 may receive the user input during a navigation session (i.e., while the user computing device 102 is providing navigation instructions), or may receive the user input outside of a navigation session (i.e., before or after the navigation session). In scenarios where the user computing device 102 receives the user input during a navigation session, then at block 204, the user computing device 102 may record data about the current route conditions when the user initiates the user input. Such data may include the current location, direction of travel, speed, time, indication of the route, currently provided and / or last provided navigation instructions, and any other information that may be helpful in generating a reminder later, as will be explained in further detail below. In scenarios where the user computing device 102 receives the user input outside of a navigation session, the user computing device 102 may avoid executing block 204. Alternatively, even in such scenarios, the user computing device 102 may still record available data, such as the current location.
[0058] Depending on the form in which the user computing device 102 receives the user input, the user computing device 102 may or may not perform block 206. If the user computing device 102 receives the user input in the form of speech input (i.e., audio input), the user computing device 102 may convert the user input into text (e.g., using the ASR engine 109a1 included in the language processing module 109a). The user computing device 102 may then analyze the user input by analyzing the converted text. If the user computing device 102 receives the user input in the form of text input (e.g., from a user's GUI interaction with the navigation application 108), the user computing device 102 may avoid executing block 206. At block 206 or when the analysis is initiated at block 208, the user computing device 102 may parse the user input (e.g., using the language processing module 109a), so that the analysis at blocks 208 and 210 is performed on the parsed user input.
[0059] At box 208, after receiving the user input, the user computing device 102 analyzes the user input to determine a trigger condition. The trigger condition includes one or more conditions that, if met, will trigger the user computing device 102 to provide a reminder. The trigger condition includes at least a trigger location that indicates the location at which the user computing device 102 is to provide a reminder during the navigation session. The trigger condition may include more than one trigger location. For example, if the user input includes "remind me to approach turns like this more slowly," the trigger location may include the specific turn indicated by the user (i.e., the turn that the user recently completed), as well as any other turns having similar characteristics to the specific turn, as will be explained in further detail below. In addition to the trigger location, the trigger condition may also include other conditions, such as a trigger speed, a direction of travel, the frequency (if any) at which the reminder should be repeated, or any other condition specified in the user input, as will be referenced. Figure 2B Further described.
[0060] Go to Figure 2B, example method 250 illustrates actions that the user computing device 102 may perform at box 208 when analyzing user input to determine a trigger condition. To analyze the user input, the user computing device 102 may use a rule-based approach, machine learning techniques, or a combination of these techniques. For example, the NLP model 109a3, similarity model 109b1, and / or ML module 109c that the user computing device 102 may apply to the user input may include rules (i.e., predetermined / preconfigured rules), trained ML models, or a combination of these. In general, the analysis at box 208 (and box 210) may be performed using the NLP model 109a3, similarity model 109b1, and / or machine learning module 109c, with specific examples discussed below. Additionally, although Figure 2B Example analysis steps are shown, but these steps can be followed as in Figure 2B The processes are shown to be performed in different orders and / or in parallel.
[0061] At box 220, the user computing device 102 determines whether the user input specifies a trigger location. If the user input explicitly specifies a trigger location, the process proceeds to box 222, where the user computing device 102 utilizes the explicitly specified location as the trigger location. For example, the explicit location can be an address, a business or point of interest with a specific location, or a custom location previously configured by the user in the navigation application (e.g., a custom location "John's house" for which the user has provided an address). To determine whether the user input specifies an explicit location, the user computing device 102 can compare the specified location with the locations included in the map database 156 and the POI database 159. If the user input does not specify a location, the process proceeds to box 224. At box 224, as a default, the user computing device 102 can set the trigger location to the user's current location at the time the user input was initiated (as recorded at box 204).
[0062] If the user input implicitly or partially specifies a location, the flow proceeds from box 220 to box 226. At box 226, the user computing device 102 determines a trigger location based on the context. The context may include the user's current location, the direction of travel, the current or last navigation instruction provided to the user, and / or the user input itself (i.e., determined based on a syntactic / semantic analysis of the user input). The user input may implicitly identify a trigger location by specifying a route feature (such as a specific route segment or navigation instruction to which the reminder relates). The user computing device 102 may identify the most likely route feature and use the location of the route feature as the trigger location. For example, if the user input is "remind me to approach this pothole more slowly", and the user input is received during the initial navigation session, the user computing device 102 may analyze the user input (e.g., using the NLP model 109a3) to determine that the trigger location corresponds to the location of "this pothole". Because the user input was received during the initial navigation session, the user computing device 102 may identify the user's location at the time the user input was initiated (as recorded at block 204) as the location of a pothole and thus as the trigger location. (If potholes are recorded in the map database 156 or the POI database 159, the user computing device 102 may use these databases to identify the location of the pothole by, for example, identifying the pothole that was recently traversed.) As another example, if the user input was received during the initial navigation session and the user input was “remind me to approach this turn more slowly” or “remind me to approach turns like this more slowly,” the user computing device may identify that the trigger location corresponds to the location of “this turn.” The user computing device 102 may set the location of the most recently taken turn in the navigation session as the trigger location. If no turn was recently taken, the user computing device 102 may utilize the location of the next turn in the navigation session. In the event that the user input is “remind me to approach turns like this more slowly,” the user computing device 102 may identify a location similar to the location of the turn, as will be discussed with reference to block 236 .
[0063] In addition to the geographic location corresponding to the trigger location, the user computing device 102 may also include the direction of travel of the user when the user input was initiated at the trigger location (or otherwise in the trigger condition), so that if the user is traveling in the same direction as when the user requested the reminder, the reminder will be triggered. If the user input specifies a direction of travel, the user computing device 102 may include the specified direction of travel in the trigger condition.
[0064] From box 222, 224, or 226, the process can proceed to box 228, where the user computing device 102 determines whether the user input specifies the frequency of the reminder (i.e., how often the reminder should be provided). If the user input explicitly specifies the frequency, the process proceeds to box 230, where the user computing device 102 provides the reminder at the indicated frequency. For example, if the user input includes "remind me to stop here next time I'm here", the frequency explicitly indicated by the user input is once, i.e., the next time the user arrives at the location. If the user input does not indicate a frequency, the process can proceed to box 232. At box 232, as a default, the user computing device 102 can determine to provide reminders at the triggering location during any route. In some cases, the user input instead implicitly or partially specifies the frequency. In such cases, the user computing device 102 can determine the frequency based on the context. Similar to block 226, the context may include the user's current location, the navigation instructions currently or last provided to the user, and / or the user input itself (i.e., determined based on a syntactic / semantic analysis of the user input). As an example, if the user input indicates "remind me to call John when I am 10 minutes away from John's house," the user computing device 102 may determine that a reminder should only be provided the next time the user is 10 minutes away from John's house (e.g., later in the navigation session, or during the next navigation session if the user input is received during the navigation session) because the user input indicates a specific action to be performed.
[0065] From box 230, 232 or 234, the process can proceed to box 236. At box 236, the user computing device 102 determines whether the user input indicates to include similar route features or similar locations in the reminder. For example, if the reminder includes "remind to approach turns like this more slowly next time", the user computing device 102 can determine (e.g., using NLP model 109a3) that the user is requesting reminders at both (i) the location of the turn and (ii) the locations of any similar turns. In response, the process proceeds to box 238, where the user computing device 102 determines similar route features and adds the locations of those route features to the trigger location of the reminder. Continuing with the above example, the user computing device 102 can determine (e.g., using similarity model 109b1) turns similar to the turn and include the locations of these turns as trigger locations in the trigger condition.
[0066] The user computing device 102 may utilize the similarity model 109b1 to determine whether a route feature (and / or location) is similar to other route features (and / or locations). In order to identify similar route features and / or locations, the similarity model 109b1 may analyze the locations included in the map database 156 and / or the POI database 159. The similarity model 109b1 may analyze only a portion of the locations included in the map database 156 / POI database 159 (e.g., a portion of the user's geographic area and / or a portion of the route previously traveled by the user). In addition, depending on the implementation, the similarity model 109b1 may operate in a variety of ways. In some implementations, the similarity model 109b1 determines whether the route features share a minimum number of characteristics and / or share a key characteristic or a minimum number of characteristics. Characteristics are attributes that define route characteristics. Therefore, the type of characteristics may vary from route feature to route feature. The characteristics of a turn may include, for example, a turn angle, a speed limit, a visual obstruction at the turn, a street sign at the turn, the presence of a street light at the turn, the presence of a crosswalk at the turn, whether the turn has a dedicated turn lane, an accident history at the turn, etc. The characteristics of a road segment may include, for example, a speed limit, the presence of a shoulder, the presence of a sidewalk, historical attributes (such as traffic levels and previous accidents), street signs, the presence of a crosswalk, the number of lanes, slopes, road structures (such as bridges or tunnels), etc. Characteristics may not necessarily be completely matched to be considered similar, especially when the characteristics are continuous rather than discrete. When determining whether two route features are similar, some characteristics (i.e., key characteristics) may be given greater weight than other characteristics. For example, the turn angle of a turn may be considered a key characteristic. Additionally or alternatively, the similarity model 109b1 may be trained by the ML module 109c to identify similar route features. The similarity model 109b1 may, for example, utilize a distance mechanism to determine the distance between a certain route feature and other route features, and identify route features with a distance within a specific tolerance.
[0067] From box 236 or 238, the process can proceed to box 240, where the user computing device 102 determines whether the user input indicates any other conditions that should be included in the triggering condition. If so, the user computing device 102 can include these other conditions in the triggering condition at box 242. The condition can be explicitly specified in the user input, or implicitly / partially specified, so that the condition is determined by analyzing the user input using the NLP model 109a3, the similarity model 109b1 and / or the ML module 109c. Other conditions can be any conditions that should exist in order to trigger the reminder, and can be any conditions that the user wishes to specify. As an example, the condition can be speed, so that the reminder will only be triggered if the user is below / above the speed or traveling within / outside the speed range. As another example, the condition can be time or time range, so that the reminder should only be provided at the time / within the time range. In addition, the condition can include weather or traffic conditions (e.g., "remind me to approach this turn more slowly in the rain (remind me to approach this turn more slowly in the rain)"). From block 242 or 240, the process may proceed to Figure 2A Block 210 is depicted.
[0068] Return to Figure 2A At box 210, the user computing device 102 analyzes the user input to determine the content of the reminder (also referred to herein as the reminder content). The reminder content corresponds to information (such as instructions) that the user computing device 102 should provide when providing the reminder. For example, if the user input includes "remind me to approach this pothole more slowly". The reminder content will be "this is a reminder to approach the upcoming pothole more slowly" or a similar variation that conveys that the user should approach the pothole more slowly. The reminder content conveys the information that the user wishes to receive, as indicated by the user input. Therefore, while the reminder content may include instructions for performing an action (such as a navigation maneuver) or for performing the action in a certain manner (e.g., approaching a turn more slowly), for example, this may be to improve safety, more generally, the reminder content may convey any information specified by the user (e.g., informative notes or comments). To determine the reminder content, the user computing device 102 may use the NLP model 109a3 to analyze the user input.
[0069] Additionally or alternatively, the reminder content may include an action that the user computing device 102 should perform when the reminder is triggered. Example actions include sending a message (e.g., a short message service (SMS) message or an email) via an application, initiating a phone or video call, activating an application of the user computing device 102, and the like. For example, a user input may include "call John when I'm ten minutes away from John's house." When the user computing device 102 is at the triggering location (predicted by the navigation application 108 to be ten minutes away from John's house), the user computing device 102 may initiate a phone call to John. By automatically providing such actions at predetermined points during navigation, navigation safety is improved because the user does not need to divert their attention during navigation to perform the action. Instead, the action is automatically performed by the user computing device 102.
[0070] At block 212, the user computing device 102 stores the reminder including the triggering condition and the reminder content. The user computing device 102 may store the reminder on the memory 106, for example, and / or may transmit the reminder to the external server 120 or the vehicle computing device 150 for storage.
[0071] At block 214, the user computing device 102 detects that the trigger condition is satisfied during the navigation session. If the user computing device 102 receives user input at block 202 during the initial navigation session, the user computing device 102 may detect the trigger condition during a subsequent navigation session or later during the initial navigation session. More specifically, the navigation application 108 implemented on the user computing device 102 may detect the trigger condition. Thus, the reminder stored at block 212 is stored so that the reminder can be accessed by the navigation application 108.
[0072] The manner in which the user computing device 102 detects the trigger condition depends on the form of the trigger condition. Generally speaking, detecting the trigger condition includes detecting that the user computing device 102 is approaching a trigger location. If the user computing device 102 is within a predetermined distance of the trigger location, or within a predetermined time of the trigger location (based on the speed at which the user computing device 102 is approaching the trigger location), the user computing device 102 may be deemed to be "approaching" the trigger location. The predetermined distance or time may be based on a person's reaction time, so that the user has sufficient time to react to the reminder after receiving the reminder and before reaching the trigger location. As another example, if the next navigation instruction to be provided to the user includes the trigger location, the user computing device 102 may be deemed to be "approaching" the trigger location.
[0073] In addition to the trigger location, the user computing device 102 also performs trigger condition detection based on any other conditions included in the trigger condition. If the trigger condition includes a speed or speed range, the user computing device 102 can determine that the speed is at, above, or above the speed or speed range (depending on the condition). For example, if the trigger condition includes triggering an alert when the user is at or above a certain speed at a specific trigger location, the user computing device 102 does not detect the trigger condition until the user computing device 102 detects these two conditions (i.e., the user is approaching the trigger location and is traveling at or above the speed). If the trigger condition includes traffic or weather conditions, the user computing device 102 can detect that the trigger condition exists based on data received or retrieved from the traffic database 157, the navigation application 108, or another application of the user computing device 102.
[0074] At block 216, the user computing device 102 provides a reminder in response to detecting the trigger condition. As noted above, the user computing device 102 may consider the speed at which the user computing device 102 is approaching the trigger location in order to determine when to provide the reminder. For example, the user computing device 102 may determine when the user computing device 102 will reach the trigger location based on the speed, and may determine to provide the reminder at a time before the trigger location so that the user has sufficient time to react to the reminder before reaching the trigger location.
[0075] In order to provide a reminder, the user computing device 102 may issue an audio reminder that conveys the reminder content. In order to provide an audio reminder, the user computing device 102 may utilize the same synthesized voice as the voice used for navigation instructions during the navigation session. Alternatively, the user computing device 102 may utilize a synthesized voice different from the voice utilized in the navigation instructions to distinguish the reminder from the navigation instructions. In addition to or as an alternative to the audio reminder, the user computing device 102 may display the text or another graphical indication of the reminder on the GUI of the navigation application 108. The displayed text and / or the issued phrase included in the audio reminder convey the reminder content. In order to generate the text to be displayed or the audio reminder to be issued, the user computing device 102 may utilize a language processing module 109a (e.g., a text-to-speech engine 109a2), which may determine how to express the reminder content in written or verbal form.
[0076] Optionally, after providing the reminder, the user computing device 102 may monitor feedback from the user regarding the reminder. In some implementations, the user computing device 102 monitors user feedback within a predetermined amount of time (e.g., 1 second to 10 seconds) after providing the reminder. For example, the user computing device 102 may activate a microphone or other listening device of the user computing device 102 within a predetermined amount of time so that if the user provides audio feedback related to the reminder, the user computing device 102 may receive the audio input (without continuously listening to the vehicle interior). Therefore, the user computing device 102 may avoid actively listening to the vehicle interior during the navigation session and / or at any other time except when the user computing device 102 provides a reminder to the user or when the user initiates providing input to the user computing device 102. As another example, the user computing device 102 may display a prompt or other icon within a predetermined amount of time, and the user may interact with the prompt or other icon to initiate and provide feedback. Additionally or alternatively, the user computing device 102 may receive user feedback on the reminder after the navigation session. The user computing device 102 can prompt the user with feedback regarding the reminder (e.g., via a speaker, or via a push notification or other GUI element of the navigation application 108), or the user can interact with the navigation application 108 to provide the reminder (e.g., by interacting with a menu of the navigation application 108).
[0077] Feedback can edit the trigger condition or content. For example, the user can request the user computing device 102 to provide a reminder as soon as possible or at a new or additional trigger location. As another example, the user can request the user computing device 102 to trigger the reminder only when the user is traveling at or above a certain speed. As another example, the user can update the content by specifying additional information that the reminder should convey, such as "remind me that the pothole is on the right side of the road (remind me that the pothole is on the right side of the road)", or "remind me that I should approach the pothole at less than 30 miles per hour (remind me that I should approach the pothole at less than 30 miles per hour)" (in the case where the reminder is related to an upcoming pothole). In some cases, feedback can indicate that the reminder should be deleted (e.g., "Please don't tremind me about this pothole anymore (please don't remind me about this pothole anymore)"). In still other cases, feedback may indicate that the reminder should be extended to other trigger locations (e.g., "Please also remind me to go more slowly when approaching turns like that turn").
[0078] In the case where the reminder is created to include similar route features, the user computing device 102 can refine the reminder based on the feedback. For example, the user computing device 102 can create a reminder for a turn with a turn angle similar to the first turn. However, after providing a reminder for a similar second turn, the user feedback can indicate "don't remind me about that turn anymore". The user computing device 102 can delete the second turn from the triggering position of the reminder. In addition, the user computing device 102 can determine whether the second turn lacks a feature present in the first turn, such as a visual blockage. The user computing device 102 can then edit the reminder to include a turn with a visual blockage similar to the first turn, rather than a turn with a turn angle similar to the first turn. As another example, the user computing device 102 can create a reminder for a route feature with five features similar to the first route feature. Based on user feedback (which can be feedback for multiple reminders), the user computing device 102 can determine which features the user considers important and refine the features accordingly (e.g., by refining a list of five similar features into a list of three similar features). More generally, the user computing device 102 can utilize the feedback to refine which route features are considered similar and edit reminders accordingly. For example, the feedback can be provided to the similarity model 109b1 and / or the ML module 109c so that the similarity model 109b1 and / or the ML module 109c can consider the feedback when generating the reminder and future reminders. By considering user feedback, reminder generation and provision becomes increasingly accurate and relevant over time, resulting in improved and safer navigation.
[0079] Additionally, as mentioned above, the user computing device 102 may also request feedback from the user (e.g., via a speaker of the user computing device 102, or via a push notification or other GUI element of the navigation application 108) if clarification is needed (e.g., because the trigger conditions and / or reminder content are not fully specified by the user, or in order to filter the results provided by the similarity model 109b1). The user computing device 102 may request feedback after creating a reminder (i.e., during blocks 208, 210), immediately after creating a reminder, after a navigation session in which a reminder is created, before / during a navigation session when a reminder is to be provided, after a navigation session in which a reminder is provided, etc.
[0080] refer to Figure 2C, a method 260 for generating a general reminder based on stored reminders is shown. At box 262, the user computing device 102 generates and stores a first reminder having a first trigger condition including a first trigger location (e.g., using method 200). At box 264, the user computing device 102 generates and stores a second reminder having a second trigger condition including a second trigger location (e.g., using method 200). At box 266, the user computing device 102 determines that the first trigger location and the second trigger location are similar. To determine that the two trigger locations are similar, the user computing device 102 may determine that the two trigger locations share at least a certain minimum number of characteristics (e.g., one characteristic, two characteristics, etc.). Alternatively, the user computing device 102 may determine that the two locations are similar (e.g., within a threshold of a distance metric) as determined by a trained machine learning model (e.g., a similarity model 109b1 trained by the ML module 109c).
[0081] At box 266, in response to the determination at box 266, the user computing device 102 generates a third reminder having a trigger location similar to the first trigger location and the second trigger location. Therefore, the trigger condition of the third reminder may include multiple trigger locations. In order to determine similar trigger locations (or similar route features, each route feature has a location), the user computing device 102 may utilize the similarity model 109b1 to analyze the locations included in the map database 156 and / or the POI database 159. Depending on the implementation, the similarity model 109b1 may only analyze a portion of the locations included in the map database 156 / POI database 159 (e.g., a portion of the user's geographic area and / or a portion of the route previously traveled by the user). Similar trigger locations may be those trigger locations that share the same characteristics as the first trigger location and the second trigger location or those trigger locations that are similar as determined by the trained machine learning model, as mentioned above. The trigger positions included in the third reminder may include the first trigger position and the second trigger position, and the user computing device 102 may delete the first reminder and the second reminder, or the trigger positions may exclude the first trigger position and the second trigger position, and the user computing device 102 may retain the first reminder and the second reminder (for example, if the contents of the first reminder and the second reminder are different). Since the third reminder is based on other reminders, the third reminder may also be called a general reminder.
[0082] Although method 260 includes generating a general reminder based on identifying two similar reminders, it should be understood that in some implementations, a general reminder can only be generated if a predetermined number of reminders share one or more similar characteristics (e.g., where the predetermined number can be two or more). For example, if at least five reminders that share one or more common characteristics have been created, a general reminder can be generated. In addition, the predetermined number of reminders required to trigger the creation of a general reminder can vary depending on the number of similar characteristics, where if the reminders share more similarities, a smaller number of reminders are required to trigger the generation of a general reminder. For example, if two reminders share a first number of characteristics (e.g., five characteristics), this may cause the user computing device 102 to generate a third reminder for a location having these characteristics. If three reminders share a second number of characteristics, where this second number may be less than the first number of characteristics, this may cause the user computing device to generate a fourth reminder for a location having these characteristics. In addition, depending on the implementation, the analysis may not require a set number of characteristics and / or reminders. For example, the similarity model 109b1 may be trained (e.g., by the ML module 109c) to recognize that reminder sets (or more specifically, the trigger locations of those reminders) are similar, as defined by a distance metric determined during training. The user computing device 102 may then define a general reminder based on the reminder sets.
[0083] Example reminder generation and delivery
[0084] Go to FIG. 3A to FIG. 3B , these figures show example scenarios where a user requests a reminder and the user computing device 102 later provides the reminder. Figure 3A In the illustrated scenario 300, a user 301 provides input to a user computing device 102 (e.g., as described at box 202). When the user computing device 102 receives the input, the user computing device 102 provides a navigation session and presents navigation instructions in the GUI of the navigation application 108 on the display screen 302 for the user 301 to view. The user computing device 102 can also provide navigation instructions by issuing audio instructions. Shortly after navigating a turn (e.g., a right turn from Euston Rd onto Ossulston St, as shown on the display screen 302), the user 301 provides input “Remind me to approach this turn more slowly next time.” The user computing device 102 can then use method 200 to generate a reminder based on the input received from the user 301. As described in reference Figure 2A and Figure 2BAs described, the user computing device 102 may determine a trigger location corresponding to “this turn” based on the location of the user computing device 102 when the user computing device 102 receives the input. In the example scenario 300, the user computing device 102 is located just after a right turn from Euston Rd (as shown on the display screen 302). Therefore, the user computing device 102 may determine that “this turn” refers to a right turn from Euston Rd. The user computing device 102 may then store a reminder including reminder content (e.g., “Approach this turn slowly”) and a trigger condition (the trigger location corresponds to a right turn from Euston Rd to a location on Ossulston St). In other examples, the user computing device 102 may receive the input just before or at the time of the navigation turn. Based on the proximity of the user computing device 102 to the right turn from Euston Rd, the user computing device 102 may determine that “this turn” refers to a right turn from Euston Rd.
[0085] Figure 3B Shown in Figure 3A Scenario 320 occurs during a subsequent navigation session following the illustrated navigation session. During the subsequent navigation session, the user computing device 102 provides navigation instructions to the user 301, which are presented in the GUI of the navigation application 108 on the display screen 322. The user computing device 102 detects that the user computing device 102 is approaching a trigger location (i.e., approaching a right turn from Euston Rd onto Ossulston St, as indicated by the navigation instructions presented on the display screen 322). In response, the user computing device 102 provides a reminder to the user 301, wherein the transmission of the reminder to the user 301 is indicated by arrow 322a. In the example scenario 320, the user computing device 102 may emit audio via a speaker 306 (e.g., of the I / O module 118 or of the vehicle computing device 150 if the user computing device 102 is communicatively coupled to the vehicle computing device 150). Alternatively or in addition, the user computing device 102 may also display a prompt 324 conveying the content of the reminder. Additionally, the user computing device 102 may display a pin or other icon indicating the trigger location on a map presented on the display screen 322 .
[0086] Optionally, after receiving the reminder, the user 301 may provide user feedback about the reminder. The user computing device 102 may receive the reminder, as indicated by arrow 322b. The user computing device 102 may use the above combined Figure 2A and Figure 2B(and particularly blocks 208 and 210) to analyze the feedback, update the reminder accordingly, and store the updated reminder.
[0087] Although in Figure 3A and Figure 3B 301 , but depending on the implementation, the navigation application 108 may optionally enable the user 301 to manage and create new reminders within or outside of a navigation session. Menu options provided by the navigation application 108 (accessible by interacting with the GUI or via voice input) may allow the user 301 to view existing reminders (e.g., in a list or map view displayed by the user computing device 102), manually edit such reminders or request that the user computing device 102 edit the reminders, and request new reminders.
[0088] Go to Figure 4 , a method 400 for creating and providing reminders during a navigation session is shown, which can be implemented in a computing device (such as user computing device 102). The method 400 can be implemented as a set of instructions stored on a computer-readable memory and executable at one or more processors of the computing device (e.g., processor 104). It should be understood that for ease of discussion only, reference is made to Figure 4 The "user computing device" discussed herein may correspond to a user computing device. However, similar to methods 200A to 200C, it should be understood that throughout Figure 4 In some implementations, the actions described as being performed by the user computing device 102 may be performed by the external server 120, the vehicle computing device 150, and / or may be performed in parallel by the user computing device 102, the external server 120, and / or the vehicle computing device. As an example, a user may interact with the external server 120 through the user computing device 102, such that navigation instructions and reminders are received from the external server 120 at the user computing device 102 and delivered to the user via the user computing device 102. The user computing device 102, the external server 120, and / or the vehicle computing device 150 may utilize the language processing module 109a, 120a, 153a, the machine learning module 109c, 120c, 153c, and / or the similarity module 109b, 120d, 153d to create and provide reminders.
[0089] At box 402, method 400 includes initiating a navigation session for providing a set of navigation instructions to a user along a route from a departure location to a destination location. The navigation session can be provided by a navigation application (e.g., navigation application 108). At box 404, method 400 includes receiving input (e.g., voice input, input received from a user interface) including a request to create a reminder from a user (e.g., user 301) during the navigation session (e.g., box 202). It should be understood that although the example method 400 includes receiving input during the navigation session, in other embodiments, the input can be received outside of the navigation session (e.g., before or after). In addition, depending on the embodiment, the input can be received in a variety of forms, such as voice input, text input, and / or interaction with UI elements. When the user initiates the input (i.e., when the user computing device receives the user input), the user computing device can record data about the current route conditions (e.g., location, direction of travel, speed) (e.g., box 204).
[0090] At block 406, method 400 includes analyzing the input to determine: (i) the content of the reminder, and (ii) a trigger condition for providing the reminder, the trigger condition including a trigger location on the route (e.g., blocks 208, 210, method 250). If the input is received in the form of voice input, then to analyze the voice input, the voice input can be transcribed into a text set, and the text set can be analyzed. Analyzing the input to determine the content can include determining instructions to be provided when providing the reminder.
[0091] Analyzing the input to determine the trigger condition may include determining whether the input indicates a trigger location. In response to determining that the input specifies an explicit location, the computing device may identify the explicit location as a trigger location (e.g., box 222). In other cases, analyzing the input may include determining that the input specifies a feature of a route (e.g., a road segment or navigation instructions) (e.g., box 226). In response, the computing device may identify the location of the feature as the trigger location. In still other cases, in response to determining that the input does not indicate a trigger location, the user's location recorded when the user initiated the input may be identified as the trigger location.
[0092] In some implementations, analyzing the input to determine the trigger condition further includes determining that the input indicates providing a reminder of a feature similar to the first feature, identifying one or more features similar to the first feature, and identifying the trigger location as including one or more locations corresponding to the respective one or more features (e.g., blocks 236, 238). The one or more similar features can be identified in response to identifying that each of the one or more features shares a predetermined number of characteristics with the first feature and / or analyzing the first feature using a machine learning model to identify the one or more features.
[0093] At block 408 , method 400 includes storing a reminder including the content and the triggering condition (eg, block 212 ).
[0094] At box 410, method 400 includes detecting a trigger condition during a subsequent navigation session (e.g., box 214). It should be understood that in other examples, the trigger condition may be detected during a navigation session in which the input requesting a reminder is received rather than during a subsequent navigation session. Detecting the trigger condition may include detecting that the user (or more specifically, the user computing device) is approaching a trigger location included in the trigger condition. Method 400 may also include determining the direction of travel of the user when the user initiates the input, and detecting the trigger condition may include detecting that the user is approaching the trigger location in the direction of travel. Similarly, method 400 may include determining the speed of the user when the user initiates the input. In such cases, the speed may be included in the trigger condition, and detecting the trigger condition may include detecting that the user is approaching the trigger location at an approach speed within a predetermined range of the speed and / or at or above the speed. In some cases, analyzing the input to determine the trigger condition may include analyzing the input to determine the trigger speed (e.g., if the user input explicitly specifies that the trigger speed should be included in the trigger condition, or if the user input implicitly specifies the trigger speed). Detecting the trigger location may include detecting that the user is approaching the trigger location at an approach speed that is within a predetermined range of trigger speeds and / or at or above the trigger speed. Additionally, in some cases, analyzing the input to determine the trigger condition includes analyzing the input to determine a time or time range at which the user wishes to receive the reminder, and detecting the trigger condition may include detecting that the user is approaching the trigger location at the time and / or within the time range.
[0095] At box 412, method 400 includes providing a reminder in response to detecting the trigger condition (e.g., box 216). Providing the reminder may include providing the reminder at a time determined based on the speed at which the user is approaching the trigger location. In addition, providing the reminder may include providing the reminder using a synthesized voice different from the synthesized voice used to provide navigation instructions during a subsequent navigation session. Depending on the implementation, providing the reminder may include providing the reminder via at least one of a display or a speaker of a computing device (e.g., a display or a speaker of a user computing device, which may be a mobile device of the user), or sending the reminder to the user computing device so that the user computing device provides the reminder to the user (e.g., if the computing device is a server (such as external server 120)).
[0096] In some implementations, method 400 includes generating a first reminder having a first trigger condition including a first trigger location at boxes 402 to 412, and also includes storing a second reminder having a second trigger condition including a second trigger location, identifying at least one characteristic common to the first trigger location and the second trigger location based on analyzing the first reminder and the second reminder, and creating a third reminder having a trigger location, wherein the trigger location has at least one characteristic (e.g., method 260).
[0097] In addition, method 400 may include monitoring user feedback after providing the reminder (e.g., within a predetermined time window), and / or requesting user feedback on the reminder (e.g., after completing a subsequent navigation session, or after creating the reminder). The computing device may then modify the reminder based on the user feedback.
[0098] Aspects of the Disclosure
[0099] Aspect 1. A method for creating and providing reminders during a navigation session in a computing device, the method comprising: initiating a navigation session by one or more processors of the computing device for providing a set of navigation instructions to a user along a route from a departure location to a destination location; receiving input from the user including a request to create a reminder during the navigation session by the one or more processors; analyzing the input by the one or more processors to determine: (i) the content of the reminder, and (ii) a trigger condition for providing the reminder, the trigger condition including a trigger location on the route; storing the reminder including the content and the trigger condition by the one or more processors; detecting the trigger condition by the one or more processors during a subsequent navigation session; and providing the reminder by the one or more processors in response to detecting the trigger condition.
[0100] Aspect 2. The method as described in Aspect 1, wherein detecting the trigger condition includes: detecting that the user is approaching the trigger position.
[0101] Aspect 3. The method as described in Aspect 2 also includes: determining, by the one or more processors, the direction of travel of the user when the user initiates the input; and including, by the one or more processors, the direction of travel in the trigger condition; wherein detecting the trigger condition also includes: detecting that the user is approaching the trigger position in the direction of travel.
[0102] Aspect 4. The method as described in Aspect 2 or 3 further includes: determining, by the one or more processors, the speed of the user when the user initiates the input; and including the speed in the trigger condition by the one or more processors; wherein detecting the trigger condition also includes: detecting that the user is approaching the trigger position at an approach speed that is (a) within a predetermined range of the speeds or (b) at or above at least one of the speeds.
[0103] Aspect 5. A method as described in Aspect 2 or 3, wherein analyzing the input to determine the trigger condition includes analyzing the input to determine a trigger speed; and detecting the trigger condition also includes detecting that the user is approaching the trigger position at an approach speed that is (a) within a predetermined range of the trigger speeds or (b) at or above at least one of the trigger speeds.
[0104] Aspect 6. A method as described in any one of Aspects 2 to 5, wherein: analyzing the input to determine the trigger condition includes analyzing the input to determine the time or time range at which the user wishes to receive the reminder; and detecting the trigger condition also includes detecting that the user is approaching the trigger location at at least one of the time or within the time range.
[0105] Aspect 7. The method of any one of aspects 2 to 6, wherein providing the reminder comprises: providing the reminder at a time determined based on a speed at which the user is approaching the trigger location.
[0106] Aspect 8. The method as recited in any one of the preceding aspects, wherein analyzing the input to determine the trigger condition comprises: determining whether the input indicates the trigger position.
[0107] Aspect 9. The method of aspect 8, wherein analyzing the input to determine the trigger condition comprises: in response to determining that the input specifies an explicit position, identifying the explicit position as the trigger position.
[0108] Aspect 10. The method of aspect 8, wherein analyzing the input to determine the trigger condition comprises: in response to determining that the input specifies a feature of the route, identifying a location of the feature as the trigger location.
[0109] Aspect 11. The method of aspect 10, wherein the feature comprises at least one of: a road segment of the route; or navigation instructions for the route.
[0110] Aspect 12. A method as described in Aspect 9 or 10, wherein the feature is a first feature, and wherein analyzing the input to determine the trigger condition includes: determining that the input indication provides the reminder of a feature similar to the first feature; identifying one or more features similar to the first feature; and identifying the trigger location as including one or more locations corresponding to the corresponding one or more features.
[0111] Aspect 13. The method of aspect 12, wherein identifying the one or more features comprises: identifying the one or more features in response to identifying that each of the one or more features shares a predetermined number of characteristics with the first feature.
[0112] Aspect 14. A method as described in Aspect 12 or 13, wherein identifying the one or more features includes: using a machine learning model to analyze the first feature to identify the one or more features.
[0113] Aspect 15. The method as described in Aspect 8 further includes: recording, by the one or more processors, the position of the user when the user initiates the input; wherein analyzing the input to determine the trigger position includes: in response to determining that the input does not indicate the trigger position, identifying the position as the trigger position.
[0114] Aspect 16. A method as described in any of the preceding aspects, wherein the reminder is a first reminder having a first trigger condition including a first trigger position, and wherein the method further includes: storing, by the one or more processors, a second reminder having a second trigger condition including a second trigger position; identifying, by the one or more processors based on analyzing the first reminder and the second reminder, at least one characteristic shared by the first trigger position and the second trigger position; and creating, by the one or more processors, a third reminder having multiple trigger positions, the multiple third reminders having the at least one characteristic.
[0115] Aspect 17. The method as described in any of the preceding aspects further includes: monitoring user feedback within a predetermined time window after providing the reminder by the one or more processors.
[0116] Aspect 18. The method of any one of aspects 1 to 16, further comprising: requesting, by the one or more processors, user feedback on the reminder after completing the subsequent navigation session.
[0117] Aspect 19. The method of aspect 17 or 18 further comprises: modifying, by the one or more processors, the reminder based on the user feedback.
[0118] Aspect 20. The method of any one of the preceding aspects, wherein providing the reminder comprises providing the reminder using a first synthesized voice that is different from a second synthesized voice used to provide navigation instructions during the subsequent navigation session.
[0119] Aspect 21. A method as described in any of the preceding aspects, wherein the input is a voice input, and the method further includes: transcribing the voice input into a text set by the one or more processors; wherein analyzing the voice input includes analyzing the text set.
[0120] Aspect 22. The method of any one of the preceding aspects, wherein analyzing the input to determine the content comprises determining instructions to be provided when providing the reminder.
[0121] Aspect 23. The method of any of the preceding aspects, wherein providing the reminder comprises providing the reminder via at least one of a display or a speaker of the computing device.
[0122] Aspect 24. The method of any of the preceding aspects, wherein the computing device is a mobile device of the user.
[0123] Aspect 25. The method of any one of aspects 1 to 22, wherein the computing device is a server, and wherein providing the reminder comprises: sending the reminder to a mobile device of the user so that the mobile device provides the reminder to the user.
[0124] Aspect 26. A computing device for creating and providing reminders during a navigation session, the computing device comprising: one or more processors; and a non-transitory computer-readable memory, the non-transitory computer-readable memory coupled to the one or more processors and storing instructions thereon, the instructions, when executed by the one or more processors, causing the computing device to: initiate a navigation session for providing a set of navigation instructions to a user along a route from a departure location to a destination location; receive input from the user during the navigation session including a request to create a reminder; analyze the input to determine: (i) the content of the reminder, and (ii) a trigger condition for providing the reminder, the trigger condition including a trigger location on the route; store the reminder including the content and the trigger condition; detect the trigger condition during a subsequent navigation session; and provide the reminder in response to detecting the trigger condition.
[0125] Aspect 27. A tangible, non-transitory computer-readable medium storing instructions for creating and providing a reminder during a navigation session, the instructions, when executed by one or more processors, cause the one or more processors to: initiate a navigation session for providing a set of navigation instructions to a user along a route from a departure location to a destination location; receive input from the user during the navigation session including a request to create a reminder; analyze the input to determine: (i) the content of the reminder, and (ii) a trigger condition for providing the reminder, the trigger condition including a trigger location on the route; store the reminder including the content and the trigger condition; detect the trigger condition during a subsequent navigation session; and provide the reminder in response to detecting the trigger condition.
[0126] Additional considerations
[0127] The following additional considerations apply to the foregoing discussion. Throughout this specification, multiple instances may implement components, operations or structures described as a single instance. Although the individual operations of one or more methods are shown and described as individual operations, one or more of the individual operations may be performed concurrently, and the operations are not required to be performed in the order shown. The structure and functionality presented as individual components in the example configuration may be implemented as a combined structure or component. Similarly, the structure and functionality presented as a single component may be implemented as an individual component. These and other variations, modifications, additions and improvements fall within the scope of the subject matter of the present disclosure.
[0128] Additionally, certain embodiments are described herein as including logic or multiple components, modules, or mechanisms. A module may constitute a software module (e.g., code stored on a machine-readable medium) or a hardware module. A hardware module is a tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In an example embodiment, one or more computer systems (e.g., a stand-alone computer system, a client computer system, or a server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.
[0129] In various embodiments, hardware modules may be implemented mechanically or electronically. For example, a hardware module may include dedicated circuitry or logic that is permanently configured to perform certain operations (e.g., as a dedicated processor, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC)). A hardware module may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations (e.g., as contained within a general purpose processor or other programmable processor). It will be appreciated that the decision to implement a hardware module mechanically, in a dedicated and permanently configured circuitry, or in a temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
[0130] Therefore, the term hardware should be understood to cover tangible entities, i.e., entities that are physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or perform certain operations described herein. As used herein, a "hardware-implemented module" refers to a hardware module. Considering an embodiment in which a hardware module is temporarily configured (e.g., programmed), each of the hardware modules does not need to be configured or instantiated at any one time. For example, in the case where the hardware module includes a general-purpose processor configured using software, the general-purpose processor can be configured as corresponding different hardware modules at different times. The software can configure the processor accordingly, for example, constituting a specific hardware module at one time and constituting different hardware modules at different times.
[0131] Hardware modules can provide information to other hardware and receive information from other hardware. Therefore, the described hardware modules can be considered as being communicatively coupled. In the case of multiple simultaneous existences in such hardware modules, communication can be realized by signal transmission (e.g., on appropriate circuits and buses) connecting the hardware modules. In embodiments where multiple hardware modules are configured or instantiated at different times, communication between such hardware modules can be realized, for example, by storing information in a memory structure that multiple hardware modules have access to and retrieving the information in the memory structure. For example, a hardware module can perform an operation and store the output of that operation in a memory device to which the hardware module is communicatively coupled. Other hardware modules can then access the memory device at a later time to retrieve and process the stored output. The hardware module can also initiate communication with an input device or an output device, and can operate on a resource (e.g., a collection of information).
[0132] Methods 200, 250, 260, and / or 400 may include one or more functional blocks, modules, separate functions, or routines in the form of tangible computer executable instructions stored in a computer readable storage medium, optionally a non-transitory computer readable storage medium, and executed using a processor of a computing device (e.g., a server device, a personal computer, a smart phone, a tablet computer, a smart watch, a mobile computing device, or other client computing device, as described herein). Methods 200, 250, 260, and / or 400 may be included as part of any back-end server (e.g., a map data server, a navigation server, or any other type of server computing device, as described herein), a client computing device module of the example environment, for example, or as part of a module external to such an environment. Although other figures may be described with reference to these figures for ease of explanation, methods 200, 250, 260, and / or 400 may be utilized with other objects and user interfaces. In addition, although the above explanation describes that the steps of methods 200, 250, 260 and / or 400 are performed by a specific device (such as a user computing device), this is done for illustrative purposes only. The blocks of methods 200, 250, 260 and / or 400 can be performed by one or more devices or other parts of the environment.
[0133] The various operations of the example methods described herein may be performed, at least in part, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Such processors, whether temporarily configured or permanently configured, may constitute processor-implemented modules that operate to perform one or more operations or functions. In some example embodiments, the modules mentioned herein may include processor-implemented modules.
[0134] Similarly, the methods or routines described herein may be processor-implemented at least in part. For example, at least some of the operations of the method may be performed by one or more processors or processor-implemented hardware modules. Some of the executions of the operations may be distributed between one or more processors that not only reside in a single machine but also across multiple machine deployments. In some example embodiments, one or more processors may be located at a single location (e.g., in a home environment, in an office environment, or as a server farm), while in other embodiments, the processor may be distributed across multiple locations.
[0135] The one or more processors may also operate to support execution of the related operations in a "cloud computing" environment or as a SaaS. For example, as indicated above, at least some of the operations may be performed by a set of computers (as an example of a machine including a processor) that are accessible via a network (e.g., the Internet) and one or more appropriate interfaces (e.g., APIs).
[0136] Still further, the drawings depict some embodiments of the example environment for illustrative purposes only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods shown herein may be employed without departing from the principles described herein.
[0137] After reading this disclosure, those skilled in the art will appreciate additional alternative structural designs and functional designs for creating reminders and providing reminders during a navigation session through the principles disclosed herein. Therefore, although specific embodiments and applications have been shown and described, it should be understood that the disclosed embodiments are not limited to the precise constructions and components disclosed herein. Various modifications, changes and variations that will be apparent to those skilled in the art may be made to the arrangement, operation and details of the methods and apparatus disclosed herein without departing from the spirit and scope defined in the appended claims.
Claims
1. A method in a computing device for creating and providing reminders during a navigation session, the method comprising: initiating, by one or more processors of the computing device, a navigation session for providing a set of navigation instructions to a user along a route from a departure location to a destination location; receiving, by the one or more processors, input from a user during the navigation session including a request to create a reminder; analyzing, by the one or more processors, the input to determine: (i) content of the reminder, and (ii) trigger conditions for providing the reminder, the trigger conditions comprising a trigger location on the route; storing, by the one or more processors, the reminder including the content and the trigger condition; detecting, by the one or more processors, the triggering condition during a subsequent navigation session; as well as The reminder is provided by the one or more processors in response to detecting the triggering condition.
2. The method of claim 1, wherein detecting the trigger condition comprises: Detecting that the user is approaching the trigger position.
3. The method of claim 2, further comprising: determining, by the one or more processors, a direction of travel of the user when the user initiated the input; as well as including, by the one or more processors, the direction of travel in the triggering condition; Wherein detecting the trigger condition further comprises: Detecting that the user is approaching the trigger position in the traveling direction.
4. The method according to claim 2 or 3, further comprising: determining, by the one or more processors, a velocity of the user when the user initiated the input; as well as including, by the one or more processors, the speed in the trigger condition; Wherein detecting the trigger condition further comprises: The user is detected approaching the trigger location at an approach velocity that is at least one of (a) within a predetermined range of the velocity or (b) at or above the velocity.
5. The method according to any one of claims 2 to 4, wherein: Analyzing the input to determine the trigger condition includes analyzing the input to determine a time or time range at which the user wishes to receive the reminder; and Detecting the trigger condition further includes detecting that the user is approaching the trigger location at least one of the time or within the time range.
6. The method of any one of claims 2 to 5, wherein providing the reminder comprises: The reminder is provided at a time determined based on the speed at which the user is approaching the trigger location.
7. The method of any one of the preceding claims, wherein analyzing the input to determine the trigger condition comprises: A determination is made as to whether the input indicates the trigger position.
8. The method of claim 7, wherein analyzing the input to determine the trigger condition comprises: In response to determining that the input specifies an explicit position, the explicit position is identified as the triggering position.
9. The method of claim 7, wherein analyzing the input to determine the trigger condition comprises: In response to determining that the input specifies a feature of the route, a location of the feature is identified as the trigger location.
10. The method of claim 9, wherein the characteristics include at least one of the following: a road segment of the route; or Navigation instructions for the route.
11. The method of claim 9 or 10, wherein the characteristic is a first characteristic, and wherein analyzing the input to determine the trigger condition comprises: determining that the input indicates providing the reminder for a feature similar to the first feature; identifying one or more features similar to the first feature; as well as The trigger location is identified as comprising one or more locations corresponding to the respective one or more features.
12. The method of claim 11, wherein identifying the one or more features comprises: The one or more features are identified in response to identifying that each of the one or more features shares a predetermined number of characteristics with the first feature.
13. The method of claim 11 or 12, wherein identifying the one or more features comprises: The first feature is analyzed using a machine learning model to identify the one or more features.
14. The method of claim 7, further comprising: recording, by the one or more processors, a location of the user when the user initiates the input; Wherein analyzing the input to determine the trigger position comprises: In response to determining that the input does not indicate the trigger position, the position is identified as the trigger position.
15. The method of any one of the preceding claims, wherein the reminder is a first reminder having a first trigger condition including a first trigger position, and wherein the method further comprises: storing, by the one or more processors, a second reminder having a second trigger condition including a second trigger location; identifying, by the one or more processors, at least one characteristic common to the first trigger location and the second trigger location based on analyzing the first reminder and the second reminder; as well as A third reminder is created, by the one or more processors, having a plurality of trigger locations having the at least one characteristic.
16. The method of any one of the preceding claims, further comprising: monitoring, by the one or more processors, user feedback within a predetermined time window after providing the reminder; as well as The reminder is modified, by the one or more processors, based on the user feedback.
17. The method of any one of claims 1 to 15, further comprising: requesting, by the one or more processors, user feedback on the reminder after completing the subsequent navigation session; as well as The reminder is modified, by the one or more processors, based on the user feedback.
18. The method of any one of the preceding claims, wherein the computing device is at least one of: the user's mobile device; or The server, wherein providing the reminder comprises sending the reminder to a mobile device of the user so that the mobile device provides the reminder to the user.
19. A computing device for creating and providing reminders during a navigation session, the computing device comprising: one or more processors; as well as a computer-readable memory coupled to the one or more processors and storing thereon instructions that, when executed by the one or more processors, cause the computing device to: initiating a navigation session for providing a set of navigation instructions to a user along a route from a departure location to a destination location; receiving input from a user during the navigation session including a request to create a reminder; analyzing the input to determine: (i) content of the reminder, and (ii) trigger conditions for providing the reminder, the trigger conditions including a trigger location on the route; storing the reminder including the content and the trigger condition; detecting the trigger condition during a subsequent navigation session; as well as In response to detecting the trigger condition, the reminder is provided.
20. A computer readable medium storing instructions for creating and providing reminders during a navigation session, the instructions, when executed by one or more processors, causing the one or more processors to: initiating a navigation session for providing a set of navigation instructions to a user along a route from a departure location to a destination location; receiving input from a user during the navigation session including a request to create a reminder; analyzing the input to determine: (i) content of the reminder, and (ii) trigger conditions for providing the reminder, the trigger conditions including a trigger location on the route; storing the reminder including the content and the trigger condition; detecting the trigger condition during a subsequent navigation session; as well as In response to detecting the trigger condition, the reminder is provided.
Citation Information
Cited By
Security monitoring device, security monitoring method, and recording medium
US20250103713A1