Method and system for route planning using crowd-sourced network data

By generating a network quality map and planning routes based on it, the route selection problem caused by differences in network connectivity in existing technologies is solved, thereby optimizing network connection quality and reliability.

CN114174767BActive Publication Date: 2025-12-30MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202080052210.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-07-22
Filing Date
2020-05-27
Publication Date
2025-12-30
Estimated Expiration
2040-05-27

AI Technical Summary

Technical Problem

Existing technologies fail to effectively consider differences in network connectivity when planning travel routes, preventing users from choosing the optimal route to ensure network reliability and quality.

Method used

By receiving network quality and context data from multiple user devices, a network quality map is generated. Based on this map, the route of computing devices is planned, and network connection parameters are optimized to meet user needs.

Benefits of technology

It provides a route planning method based on network connectivity data, ensuring the quality and reliability of network connectivity between the starting and ending points, and meeting specific user needs such as VoIP calls or data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114174767B_ABST
    Figure CN114174767B_ABST
Patent Text Reader

Abstract

Disclosed herein are techniques for providing a suggested route for a computing device planning to travel between a start location and an end location. In an example, crowd-sourced data is used to generate a network map that includes network parameters mapped to one or more geographic locations. The network map is used to generate a suggested route for a computing device planning to travel between a start location and an end location. The suggested route can be generated using an optimization function to minimize travel time and optimize network connectivity parameters.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] This document relates generally to wireless networks, and in particular, but not by way of limitation, to planning a travel route for a computing device based on network availability and quality. BACKGROUND

[0002] There are several applications available to a user to plan a travel route in order to minimize the total travel time between a starting location and an ending location. These applications can provide several alternative routes based on the type of road, predicted vehicle traffic, construction, or other travel considerations. The user can then select a desired route and travel between the starting location and the ending location along the route. While traveling along the planned route, the user device and other computing devices can wish to access various types of data over various wireless networks. Network connectivity can vary greatly depending on geographic location. For some users, reliable network connectivity can be most important while traveling between the starting location and the ending location. SUMMARY

[0003] Disclosed herein is a method of using network connectivity data to plan a route for a computing device, the method comprising: using one or more hardware processors to: receive a starting location and an ending location for a computing device, the computing device to plan travel between the starting location and the ending location; receive network quality data and contextual data from a plurality of user devices, the plurality of user devices traveling along respective routes through a geographic area, the network quality data indicating one or more measured values of network parameters of respective wireless networks in the geographic area, and the contextual data indicating one or more of: temporal conditions, weather conditions, traffic conditions, or device conditions occurring at a respective user device of the plurality of user devices when the network quality data is acquired by the respective user device; generate a network quality map based on the network quality data received from the plurality of user devices, the network quality map indicating one or more network parameters for respective wireless networks of the geographic area, wherein the network quality map uses received contextual data and received network quality data to relate values of contextual data to values of the one or more network parameters; identify current contextual data of the computing device; receive one or more routes along which one or more connectable devices are traveling, wherein the computing device is able to connect to one of the respective wireless networks through the one or more connectable devices; generate at least one suggested route between the starting location and the ending location using the network quality map, wherein the generating is based on the current contextual data of the computing device and network connectivity parameters between the starting location and the ending location, wherein the one or more routes along which the one or more connectable devices are traveling are similar to the at least one suggested route, and wherein the at least one suggested route is updated based on: at least one network connection through the one or more connectable devices; and send the at least one suggested route to the computing device.

[0004] In another implementation, a system for planning a route for a computing device using network connectivity data is provided, the system comprising: using one or more hardware processors: one or more memories storing instructions which, when executed, cause the one or more hardware processors to perform operations comprising: receiving a start location and an end location for a computing device, the computing device planning to travel between the start location and the end location; receiving network quality data and contextual data from a plurality of user devices, the plurality of user devices traveling along respective routes through a geographic area, the network quality data indicating one or more measured values of network parameters of respective wireless networks in the geographic area, and the contextual data indicating one or more of: temporal conditions, weather conditions, traffic conditions, or device conditions occurring at a respective user device of the plurality of user devices when the network quality data is acquired by the respective user device; generating a network quality map based on the network quality data received from the plurality of user devices, the network quality map indicating one or more network parameters for respective wireless networks of the geographic area, wherein the network quality map uses received contextual data and received network quality data to relate values of contextual data to values of the one or more network parameters; identifying current contextual data of the computing device; receiving one or more routes along which one or more connectable devices are traveling, wherein the computing device is able to connect to one of the respective wireless networks through the one or more connectable devices; generating at least one suggested route between the start location and the end location using the network quality map, wherein the generating is based on the current contextual data of the computing device and network connection parameters between the start location and the end location, wherein the one or more routes along which one or more connectable devices are traveling are similar to the at least one suggested route, and wherein the at least one suggested route is updated based on: at least one network connection through the one or more connectable devices; and sending the at least one suggested route to the computing device. BRIEF DESCRIPTION OF DRAWINGS

[0005] In the drawings, which are not necessarily drawn to scale, like numerals can describe similar components in different views. Like numerals having different letter suffixes can represent different instances of similar components. Some embodiments are illustrated by way of example, and not limitation, in the figures of the accompanying drawings in which:

[0006] Figure 1 is a diagram illustrating an example system for crowdsourcing network connectivity data.

[0007] Figure 2is a logical diagram illustrating a network map generated using crowd-sourced network data.

[0008] Figure 3 is a flow diagram illustrating a method of generating a network map using crowd-sourced data.

[0009] Figure 4 is a client-side display of a map including a suggested route generated using a network map.

[0010] Figure 5 is a flow diagram illustrating a method of generating a suggested route using a network map.

[0011] Figure 6 is a flow diagram illustrating a method of updating a suggested route while traveling along a selected route.

[0012] Figure 7 is a flow diagram illustrating a method of updating a suggested route while traveling along a selected route.

[0013] Figure 8 is a block diagram illustrating an example of a machine upon which one or more embodiments can be implemented. DETAILED DESCRIPTION

[0014] Disclosed herein are systems and methods for generating a suggested travel route using a crowd-sourced network map indicating one or more network parameters and / or indicators for various geographic locations. A suggested route can be generated for a computing device to travel from a starting location to an ending location. In one example, the suggested route can be generated using an optimization function to minimize travel time and optimize network connection parameters between the starting location and the ending location. In some examples, the network connection parameters to be optimized are based on the intended use of the network by the user. For example, if the user intends to make a Voice over Internet Protocol (VoIP) call, the system can work to plan a route to minimize travel time and latency. A new suggested route can be generated using an updated network map, advertised connections from other computing devices traveling along a similar route, or any other new or updated information received while the computing device is traveling along the selected route. In some examples, the current context, such as the time of day, day of the week, date, season, traffic indicators / conditions, weather conditions, travel speed, or user device properties can be considered when generating the suggested route.

[0015] Figure 1This diagram illustrates an exemplary system 100 for crowdsourcing network connectivity and quality data. System 100 includes one or more servers 102 and user equipment 104a-104f accessing one or more wireless networks 106a-106e. User equipment 104a-104f can be any user equipment that travels along one or more geographical routes while accessing one or more wireless networks 106a-106e. Wireless networks 106a-106e can be cellular networks, local area networks, wide area networks, or any other wireless networks. For example, wireless networks 106a-106e can include one or more 3G, 4G, LTE, 5G, or any other cellular network according to the Institute of Electrical and Electronics Engineers (IEEE) 802.11 series of standards (referred to as...). ), IEEE 802.16 series of standards (known as This can be an IEEE 802.16.4 series wireless network or any other wireless network. Each of the wireless networks 106a-106e can be configured to communicate with one or more user devices 104a-104f on one or more network channels. The channels can be, for example, frequency channels defined by the wireless standard for the corresponding network communication. Although illustrated as five wireless networks 106a-106e and six user devices 104a-104e, any number of user devices can provide data about any number of wireless networks.

[0016] User equipment 104a-104f can be configured to communicate with server 102 via any connection (including wired and wireless connections). Each user equipment 104a-104f (which may be a telephone, tablet computer, laptop computer, wearable device, or other personal computing device) can be configured to upload data to and download data from server 102. Each user equipment 104a-104f can upload current location data and data including one or more network parameters of one or more wireless networks 106a-106e to server 102. These network parameters may include, for example, network type, channel availability, channel quality, network availability, network download speed, network upload speed, voice availability, voice quality, and any other parameters or indications for each corresponding network. User equipment 104a-104f can transmit the network parameters to server 102 via the corresponding network 106a-106e that the user equipment 104a-104f is reporting to, or via another network. For example, a user equipment can report voice connection availability to server 102 via a data connection. The data can be uploaded to server 102 in real time, or it can be stored by the corresponding user equipment 104a-104f and uploaded to server 102 later. User equipment 104a-104f can also upload context data and network parameters. The context data can specify the context in which the network parameters are obtained. This context can be temporal, for example, specifying the time of day, day of the week, date, season, etc., or it can include other context data, such as traffic conditions, weather conditions, travel speed, device attributes, etc.

[0017] Server 102 may include one or more applications configured to collect network quality data from user devices 104a-104f and compile a "crowdsourced" network map for one or more geographic regions. For example, network quality data may be provided to server 102 along with current geographic information such as latitude and longitude coordinates. The network map may be a model of wireless networks 106a-106e stored in a database, where geographic coordinates are mapped to specific networks 106a-106e and their corresponding network quality data. The data can be grouped into geographic regions of arbitrary size based on the coordinates, such as city blocks, highway segments, or any other specified geographic area.

[0018] Figure 2This is a logical diagram illustrating a network map generated using crowdsourced network quality data. The network map can store, for example, geographic locations 202, networks 204, and network parameters 206, and map them to each other. In other examples, additional crowdsourced data related to one or more wireless networks can be stored. Geographic locations 202 can include coordinates (such as latitude and longitude) and / or geographic regions, such as city blocks, plots of land, portions of highways, or any other geographically defined area.

[0019] Geographic location 202 can be mapped to one or more networks 204. For example, if a network is available for a specific geographic location, the corresponding network can be mapped to that geographic location (and / or the geographic location can be mapped to that network). Network 204 can include data such as network identifier, network type, and any other data specific to the wireless network. Each wireless network in network 204 can also be mapped to one or more network parameters. These parameters can include network availability, channel availability, channel stability, channel strength, and any other parameters or indicators related to the corresponding wireless network.

[0020] Information regarding the network map can be stored in one or more databases in any desired format. The network map can be generated by server 102 or any other computing system using crowdsourced data received from user devices 104a-104f. The network map can also generate and store indicators 208 generated by server 102 regarding geographic locations 202, networks 204, and / or parameters 206. In one example, indicator 208 may include a list of all network outages for the corresponding wireless networks 106a-106e for each geographic region. In another example, indicator 208 may include network quality indicators for each wireless network and / or channels for each geographic region. For example, for each channel of the network in each geographic region, the network map may include an indicator between 0 and 10, where 0 represents no connectivity and 10 represents a good connection. In another example, indicator 208 may be a simple binary "yes" or "no" indicating whether a type of network is available for the corresponding geographic region. In some examples, machine learning or any other algorithm may be used to generate the indicators.

[0021] Indicators 208 can also be generated to provide multiple indications for a given network or channel. For example, a score for each channel in a given network can be assigned to each of a variety of categories. In the example, the categories can include bandwidth, latency, throughput, jitter, error rate, and / or any other network performance categories. In the example, multiple user devices 104a-104e can provide data about the corresponding channels for a given geographic area. The data can then be used to score the corresponding channels. For example, these scores can then be used to inform connection selections via computing devices. In the example, a user expecting to use Voice over Internet Protocol (VoIP) might want to know which channels have low latency, while a user streaming data might want to know which channels have high bandwidth. Therefore, one or more applications can use these indicators 208 to plan network connections for computing devices traveling through geographic location 202.

[0022] Indicator 208 can also include context data that maps one or more contexts to one or more network parameters. For example, the context data can be temporal, mapping the network parameters to time of day, day of week, date, season, etc. Context data can also indicate non-temporal contexts, such as power data, traffic conditions, weather conditions, device attributes, travel speed, etc. For example, when uploading network quality data, user equipment 104a-104f can upload data about the user equipment's current power and / or power consumption or other device attributes / capabilities.

[0023] Figure 3 This is a flowchart illustrating a method 300 for generating a network map. Method 300 can be executed by server 102, user equipment 104a-104f, or any other computer system. At step 302, the user equipment (such as a telephone, tablet, laptop, wearable device, and other user equipment) uploads information about one or more parameters of the network to which the respective user equipment is connected. For example, the user equipment may be connected to a cellular network and use cellular voice and / or cellular data connections. In another example, the user equipment may be connected to a local area network (LAN) or wide area network (WAN) using any wireless protocol, such as those referred to as... The IEEE 802.11 standard series, known as The IEEE 802.16 standard family, or any other network standard. In other examples, the device may be connected to another type of wireless network. In some examples, the user equipment can provide information about one or more parameters regarding networks and / or channels to which the corresponding user equipment is not connected. For example, Service Set Identifier (SSID) and proximity... Network signal strength.

[0024] The corresponding user equipment can provide the device's geographic location, the cellular or other wireless network to which the device is wirelessly connected, the wireless channel through which the device is connected to the wireless network, connection quality, and other parameters regarding the corresponding network. Geographic coordinates can be used to provide the device's location, such as latitude and longitude using Global Positioning System (GPS), area descriptors, such as the intersection of two roads, or any other geographic data indicating the device's location. The connection quality can be the signal-to-noise ratio, an indication of a successful connection, or any other metric of connection quality. The user equipment can provide similar data regarding voice connection quality. In some examples, the device can provide the current navigation route that the user equipment is currently traveling, as input by the user.

[0025] At step 304, the collected data is used to generate a network map. The network map can take any form that allows mapping network parameters for a wireless network to geographic locations. The network map data can be stored in one or more databases, for example, in any database storage format. Uploaded user data can be used to generate indicators, such as general network availability indicators for geographic areas. For example, at step 306, part or all of the generated network map can be provided to other computing devices for planning network connections for a planned route.

[0026] Figure 4 This diagram illustrates an exemplary client-side user interface. The client-side user interface may include a display 400 configured to output a map illustrating a specified start location 404, an end location 406, a first suggested route 408, a second suggested route 410, and a network indicator 412. The display may also include inputs 414a, 414b, 416, and 418. The network indicator 412 may be obtained from a network map and may provide the user with indications of one or more parameters of one or more wireless networks. For example, indicator 412 can provide information about... Indications that a network is available, no cellular voice connection is available, no cellular data is available, cellular data bandwidth is particularly high or particularly low, or any other indications regarding any other network along the recommended routes 408 and 410.

[0027] Display 400 allows users to choose a better route between suggested routes 408 and 410 by knowing whether a specific network or network type is available for the entire trip. For example, Route 2 has a faster estimated travel time (22 minutes), but includes a portion of the route with poor wireless data connectivity. Route 1, while slower, does not encounter the same data connectivity issues. Therefore, if the user expects or has indicated a preference for good data connectivity throughout the route, Route 1 can be suggested as the better route, even if it is slightly slower. Users can define any other further travel expectations or requirements, such as reliable voice connectivity, Availability or any other preference.

[0028] Display 400 may include only indicators 412 that are particularly important to the user, to avoid overwhelming the user with data. For example, the user may not need to know the connection quality of every channel of every network along the planned route. Therefore, display 400 may include only indicators 412 that provide indications such as network failures or other important indications about the planned route. Client-side devices may select these indicators using indications from server 102, user preferences, or any other basis for selecting indicators 412 for display 400.

[0029] Display 400 may include one or more inputs 414a and 414b that allow the user to interact with the suggested route. Display 400 may also include one or more inputs to receive user preferences from the user of the user device. For example, display 400 may include one or more inputs 416 for receiving user preferences and one or more inputs 418 for inputting current context data. For example, using inputs 414a, 414b, 416, and 418, the user may be able to select a route, regenerate a route, input preferences for the route (e.g., good voice connectivity, good data connectivity, uninterrupted service, etc.), input context data (such as current weather conditions), etc. Current context data may also be automatically provided by the device using one or more sensors, applications, etc. Although illustrated as touchscreen buttons, input from the user can be received using separate input devices (such as a keyboard, mouse, keypad, or any other input device).

[0030] Figure 5This is a flowchart illustrating a method 500 for generating suggested routes using a web map. Method 500 can be run by a server (such as server 102) or by a client-side computing device (such as user device 104). At step 502, a starting position and an ending position are received. The ending position can be entered by a user who intends to travel to the ending position. For example, the starting position can be the current location of the device obtained using GPS, or it can be entered by a user planning to travel later from the starting position. At step 504, a web map is received. If method 500 is run by a client-side computing device, the web map can be received from one or more servers via a wired or wireless network connection. If method 500 is run by a server, the server may already have the web map, as it may have already generated it, or the server may receive the web map from one or more other computing devices (such as another server).

[0031] The network map may include network parameters and / or indicators for both the wireless network and specific channels of the wireless network. At step 506, the system begins the process of generating a suggested route. The route can be generated using an optimization function that takes into account travel time and optimization of one or more network parameters (bandwidth, latency, throughput, etc.). The optimization function can be implemented using scalarization, prior methods, posterior methods, interactive methods, or any other method that performs multi-objective optimization. The optimization function can also be weighted based on user preferences, which can be obtained at step 506. For example, a user might indicate that a continuous voice connection is most important for making important calls, or might expect a reliable data connection for streaming content to a computing device. In some examples, user preferences and / or usage can be predicted based on historical preferences, machine learning, and / or any other information. For example, data from a user's calendar can be used to predict usage for that user. In an example, a user might have scheduled conference calls using VoIP during the likely travel time, and therefore, the route should include network channels that provide low latency. At step 506, current context data can be obtained, such as time of day, day of week, date, season, traffic conditions, weather conditions, device attributes, etc. Context data can be obtained through user input and / or automatically by the user device using one or more sensors, applications, etc.

[0032] At step 508, one or more suggested routes can be generated based on travel time and user-specified network preferences. If the user does not specify network preferences, default preferences can be used to generate suggested routes. The default preferences may not include network preferences, or may include any other network preferences, such as average voice connectivity for the route.

[0033] Any desired algorithm can be used to generate suggested routes between the starting and ending points. In some examples, the system may initially generate routes that prefer highways or other road conditions that typically offer faster travel times. The route can then be adjusted based on information from a network map. For example, the route can be adjusted to maximize voice connectivity for the entire route, maximize data connectivity for the entire route, ensure continuous connectivity to a specific network, or based on any user-input expectations.

[0034] In some examples, contextual data can be used when generating suggested routes. For instance, the current context for the computing device may have already been determined or received at step 506. This context can specify the time of day, day of the week, date, season, traffic signs / conditions, weather conditions, travel speed, device attributes, etc. This current context can be used to match contextual data from a network map when generating suggested routes. For example, the network map can specify network parameters as one value for a given context, and another different value for different contexts. Therefore, the current context can be used to obtain data more relevant to the computing device's desired travel, thereby providing improved suggested routes.

[0035] Optimizing network quality and / or connectivity can also include connections via other computing devices traveling along similar routes. For example, a system generating suggested routes (such as computing devices or one or more servers) can receive planned routes from many other computing devices. Adjustable suggested routes include one or more connections via one or more other computing devices traveling along routes similar to the planned routes. For example, another computing device can access a portion of a route similar to that of the corresponding computing device during a portion of the route. Network. Network connectivity planning can include the corresponding parts of the planned route via other computing devices. Network connectivity.

[0036] The final suggested route can be determined by the computing device using any algorithm that implements one or more optimization functions to generate a route for the user based on both travel time and network quality and / or connectivity preferences. For example, the computing device can implement any form of machine learning to generate suggested routes, for example, based on the current network map and past data. In some examples, the optimization function can be weighted to prioritize network quality over travel duration. For example, at step 510, the suggested route is provided to the computing device for display to the user. At step 512, the user can select one of the suggested routes. At step 514, the computing device travels along the selected route. In some examples, the computing device can be part of an autonomous vehicle, in which case the selection of one of the suggested routes can be automatic.

[0037] Figure 6 This is a flowchart illustrating a method 600 for generating a new suggested route when a computing device is traveling along a selected route. At step 602, the computing device is traveling along a selected route between a start position and an end position. While the device is traveling along the selected route, it may connect to one or more networks. These networks may be specified by the suggested route or may be automatically discovered by the device as it travels along the suggested route. For example, the device may connect to a first network (e.g., a cellular network) for a first portion of the route and to a second network (e.g., a third network) for a second portion of the route. (Network). At step 604, the network map is updated using new crowdsourced data. For example, the user device may indicate that a particular network and / or channel has recently become unavailable for a portion of the planned route. At step 606, based on the updated network map, the server or computing device may generate one or more new suggested routes between the computing device's current location and its end location. For example, new suggested routes may be generated to avoid recently specified unavailable networks. The user may be notified of the availability of the new suggested routes using any method. For example, auditory and / or visual cues may be generated to notify the user of the new suggested routes. At step 608, the computing device or its user may choose to follow the suggested updated route. At step 610, if a new route is selected, the computing device proceeds according to the newly selected route. At step 612, if no new route is selected (e.g., the user can actively choose not to accept the updated route), the computing device continues to proceed according to the previously selected route.

[0038] Figure 7This is a flowchart illustrating method 700 for generating a new suggested route while a computing device is traveling along a previously selected route. For example, method 700 can be run by a server-side device or a client-side device and can be combined with method 600. At step 702, the computing device is traveling along a selected route between a start position and an end position. At step 704, while the computing device is traveling along the selected route, one or more computing devices traveling along similar routes can advertise connectivity to one or more networks through their respective devices. When generating a suggested route, connections through these devices may not initially be considered. If one or more of these connections improve connection quality, a new suggested route can be generated to spend more time traveling with the respective devices. At step 706, a suggested route is generated to include more time with the computing device through its connected respective devices. Any method can be used to alert the user that a new suggested route is available. For example, auditory and / or visual alerts can be generated to notify the user of a new suggested route. At step 708, the computing device or its user can choose to follow the suggested updated route. At step 710, if a new route is selected, the computing device proceeds according to the newly selected route. At step 712, if no new route is selected (e.g., the user can actively choose not to accept the update), the computing device continues to proceed according to the previously selected route.

[0039] As described herein, suggested routes can be generated based on the suitability of wireless resources for the expected wireless needs of a user device. In some examples, wireless needs can be determined based on user input. In other examples, the wireless needs can be determined based on predictions of the user device's wireless needs. In some examples, the prediction can be based on the user's calendar. For example, if the calendar shows VoIP call appointments, the system can infer that the user will want network resources best suited for VoIP calls. In other examples, the prediction can be based on a machine learning model that predicts the user device's wireless needs based on one or more features. Exemplary features may include time of day, day of week, day of year, planned routes, the user's calendar (e.g., showing VoIP meetings), the user's previous activities (e.g., the user's wireless activities prior to the route), etc. Past feature data tagged with wireless data usage types (e.g., VoIP, large file downloads, etc.) can be used to train the machine learning model. Exemplary machine learning algorithms may include logistic regression, neural networks, decision forests, decision jungles, boosting decision trees, support vector machines, etc. When determining a route, current feature data of the user device can be applied to the model, and the model can predict the device's expected wireless needs. The anticipated requirements might be categories (e.g., low latency, high bandwidth, reliability above all else), which can then be matched to network segments based on scores for these categories. As noted, these scores can be based on measurements of that category obtained from multiple user devices (e.g., latency measurements, bandwidth measurements, error rate, etc.). For example, these scores can be assigned via a formula that converts network measurements into scores. The average score across all devices can be used as the score for that specific segment.

[0040] Figure 8A block diagram of an exemplary machine 800 on which any one or more of the techniques (e.g., methods) discussed herein are performed. For example, machine 800 can be any one or more of server 102 and / or user equipment 104a-104f. As described herein, examples may include logic units or multiple components or mechanisms in or operable by machine 800. A circuit (e.g., processing circuitry) is a collection of circuits implemented in a tangible entity of machine 800 that includes hardware (e.g., simple circuits, gates, logic units, etc.). Circuit membership may be flexible over time. A circuit includes members that can perform a specified operation individually or in combination during operation. In the example, the hardware of the circuit may be invariably designed to perform a specific operation (e.g., hardwired). In the example, the hardware of the circuit may include variably connected physical components (e.g., execution units, transistors, simple circuits, etc.), including machine-readable media that are physically modified (e.g., magnetic, electrical, movable placement, etc.) to encode instructions for a specific operation. When physical components are connected, the basic electrical characteristics of the hardware components change, for example, from an insulator to a conductor, or vice versa. The instructions enable embedded hardware (e.g., an execution unit or loading mechanism) to create members of a circuit within the hardware via variable connections to perform portions of a specific operation during operation. Thus, in the example, when the device is operating, the machine-readable medium element is either part of a circuit or another component communicatively coupled to the circuit. In the example, any physical component can be used in more than one member of more than one circuit. For example, during operation, an execution unit can be used at one point in time in a first circuit of a first circuit system and reused by a second circuit in the first circuit system, or reused at a different time by a third circuit in the second circuit system. Additional examples of these components with respect to machine 800 are as follows.

[0041] In alternative embodiments, machine 800 may operate as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, machine 800 may operate as a server machine, a client machine, or both in a server-client network environment. In the example, machine 800 may act as a peer-to-peer (P2P) (or other distributed) network environment. Machine 800 may be a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), mobile phone, network device, network router, switch, or bridge, or any machine capable of executing instructions (sequentially or otherwise) specifying the actions to be taken by the machine. Furthermore, although only a single machine is shown, the term "machine" should also be considered to include any collection of machines that individually or jointly execute a set (or more) of instructions to perform any one or more of the methods discussed herein, such as cloud computing, Software as a Service (SaaS), and other computer cluster configurations.

[0042] Machine (e.g., computer system) 800 may include hardware processor 802 (e.g., central processing unit (CPU), graphics processing unit (GPU), hardware processor core, or any combination thereof), main memory 804, static memory (e.g., memory or storage device for firmware, microcode, basic input-output (BIOS), unified extensible firmware interface (UEFI), etc.) 806, and mass storage device 808 (e.g., hard disk drive, tape drive, flash memory, or other block device), some or all of which may communicate with each other via interconnect (e.g., bus) 830. Machine 800 may also include display unit 810, alphanumeric input device 812 (e.g., keyboard), and user interface (UI) navigation device 814 (e.g., mouse). In the example, display unit 810, input device 812, and UI navigation device 814 may be a touchscreen display. Machine 800 may additionally include a storage device (e.g., a drive unit) 808, a signal generation device 818 (e.g., a speaker), a network interface device 820, and one or more sensors 816 (e.g., a Global Positioning System (GPS) sensor, a compass, an accelerometer, or other sensors). Machine 800 may include an output controller 828, such as serial (e.g., Universal Serial Bus (USB)), parallel, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connections, to communicate with or control one or more peripheral devices (e.g., a printer, a card reader, etc.).

[0043] The registers of processor 802, main memory 804, static memory 806, or mass storage device 808 may be or include machine-readable medium 822, on which one or more sets of data structures or instructions 824 (e.g., software) embody or be utilized by any one or more of the technologies or functions described herein. Instructions 824 may also reside wholly or at least partially within any of the registers of processor 802, main memory 804, static memory 806, or mass storage device 808 during their execution by machine 800. In the example, one or any combination of hardware processor 802, main memory 804, static memory 806, or mass storage device 808 may constitute machine-readable medium 822. Although machine-readable medium 822 is shown as a single medium, the term "machine-readable medium" may include a single medium or multiple media (e.g., a centralized or distributed database, and / or associated caches and servers) configured to store one or more instructions 824.

[0044] The term "machine-readable medium" can include any medium capable of storing, encoding, or carrying instructions executable by machine 800 and causing machine 800 to perform any one or more of the technologies disclosed herein, or a medium capable of storing, encoding, or carrying data structures used or associated with such instructions. Examples of non-limiting machine-readable media can include solid-state memory, optical media, magnetic media, and signals (e.g., radio frequency signals, other photon-based signals, sound signals, etc.). In examples, non-transitory machine-readable media includes machine-readable media having multiple particles with invariant (e.g., rest) masses, and thus being a composition of matter. Therefore, a non-transitory machine-readable medium is a machine-readable medium that does not include transiently propagating signals. Specific examples of non-transitory machine-readable media can include: non-volatile memory, such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)) and flash memory devices; magnetic disks, such as internal hard disks and removable hard disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.

[0045] Instruction 824 can also be sent or received via a communication network 826 using a transmission medium through network interface device 820 using any of a variety of transmission protocols (e.g., Frame Relay, Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), etc.). Exemplary communication networks may include local area networks (LANs), wide area networks (WANs), packet data networks (e.g., the Internet), mobile phone networks (e.g., cellular networks), conventional telephone (POTS) networks, and wireless data networks (e.g., referred to as…). The Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard series is called... The IEEE 802.16 series of standards, the IEEE 802.16.4 series of standards, peer-to-peer (P2P) networks, etc. In the example, network interface device 820 may include one or more physical jacks (e.g., Ethernet, coaxial, or telephone jacks) or one or more antennas to connect to communication network 826. In the example, network interface device 820 may include multiple antennas to perform wireless communication using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) technologies. The term "transmission medium" should be understood to include any intangible medium capable of storing, encoding, or carrying instructions executable by machine 800, and includes digital or analog communication signals or other intangible media facilitating communication of such software. The transmission medium is a machine-readable medium.

[0046] The above description includes references to the accompanying drawings, which form part of the detailed description. The drawings illustrate specific embodiments in which the invention can be practiced by way of illustration. These embodiments are also referred to herein as “examples.” Such examples can include elements other than those shown or described. However, the inventors also contemplate elements that provide only those shown or described. Furthermore, the inventors contemplate examples using any combination or arrangement of those elements (or one or more aspects thereof) shown or described herein, with respect to specific examples (or one or more aspects thereof) shown or described herein, or with respect to other examples (or one or more aspects thereof).

[0047] In this document, the terms “a” or “an” are common in patent documents and are used to include one or more, independent of any other instances or uses of “at least one” or “one or more.” In this document, unless otherwise stated, the term “or” is used to refer to a non-exclusive “or,” such that “A or B” includes “A but not B,” “B but not A,” and “A and B.” In this document, the terms “comprising” and “in which” are used as the simple English equivalents of the corresponding terms “comprising” and “in which.” Furthermore, in the appended claims, the terms “comprising” and “comprising” are open-ended, meaning that a system, device, article, composition, formulation, or process that includes elements other than those listed after such terms in the claim is still considered to be within the scope of that claim. Additionally, in the appended claims, terms such as “first,” “second,” and “third” are used merely as labels and do not impose numerical requirements on their objects.

[0048] The above description is intended to be illustrative and not restrictive. For example, the examples (or one or more aspects thereof) described above can be used in combination with each other. Other embodiments can be used by those skilled in the art after reading the above description. An abstract is provided to allow the reader to quickly determine the nature of the technical disclosure. It is submitted under the understanding that it will not be used to interpret or limit the scope or meaning of the claims. Similarly, in the above detailed description, various features may be grouped together to simplify this disclosure. This should not be construed as meaning that any unclaimed disclosed feature is essential to any claim. Rather, the subject matter of the invention may lie in fewer than all features of a particular disclosed embodiment. Therefore, the appended claims are hereby incorporated in the detailed description as examples or embodiments, wherein each claim is an independent, separate embodiment, and it is contemplated that these embodiments may be combined with each other in various combinations or arrangements. The scope of the invention should be determined by reference to the appended claims and the full scope of the equivalents conferred by those claims.

Claims

1. A method of using network connectivity data to plan a route for a computing device, the method comprising: using one or more hardware processors to: receive a start location and an end location for a computing device that plans to travel between the start location and the end location; receive network quality data and contextual data from a plurality of user devices that travel through a geographic area along respective routes, the network quality data indicating one or more measured values of network parameters of respective wireless networks in the geographic area, and the contextual data indicating one or more of: a temporal condition, a weather condition, a traffic condition, or a device condition that occurred when respective user devices of the plurality of user devices acquired the network quality data; generate a network quality map based on the network quality data received from the plurality of user devices, the network quality map indicating one or more network parameters for respective wireless networks of the geographic area, wherein the network quality map uses received contextual data and received network quality data to correlate values of contextual data with values of the one or more network parameters; identify current contextual data of the computing device; receive one or more routes along which one or more connectable devices are traveling, wherein the computing device is able to connect to one of the respective wireless networks through the one or more connectable devices; generate at least one suggested route between the start location and the end location using the network quality map, wherein the generating is based on the current contextual data of the computing device and network connectivity parameters between the start location and the end location, wherein the one or more routes along which one or more connectable devices are traveling are similar to the at least one suggested route, and wherein the at least one suggested route is updated based on: at least one network connection through the one or more connectable devices; and send the at least one suggested route to the computing device.

2. The method of claim 1, wherein, The contextual data includes data specifying at least one of: a time of day, a day of the week, a date, a season, one or more traffic indicators, a travel speed, one or more weather conditions, or one or more user device properties.

3. The method of claim 1, wherein, Generating the at least one suggested route includes at least one of: maximizing voice connection quality from the start location to the end location; maximizing data streaming quality from the start location to the end location; or minimizing latency from the start location to the end location.

4. The method of claim 1, wherein, Generating the at least one suggested route includes running an optimization function that minimizes travel duration and optimizes the network connectivity parameters between the start location and the end location.

5. The method of claim 4, wherein, The optimization function is weighted to prioritize optimization of the network connectivity parameters over minimizing the travel duration.

6. The method of claim 1, further comprising: receive a selected route of the at least one suggested route; and regenerate the quality map based on new data received from the plurality of user devices or new sources while the computing device is travelling along the selected route; and generate a new suggested route using the regenerated quality map while the computing device is travelling between the start location and the end location.

7. The method of claim 1, wherein, receiving the network quality data from the plurality of user devices and measured by the plurality of user devices comprises one of: receiving the network quality data directly from the plurality of user devices; or receiving the network quality data from a server location configured to receive and compile the network quality data from the plurality of user devices.

8. A system for planning a route for a computing device using network connectivity data, the system comprising: using one or more hardware processors: one or more memories storing instructions that, when executed, cause the one or more hardware processors to perform operations comprising: receiving a start location and an end location for a computing device that plans to travel between the start location and the end location; receiving network quality data and contextual data from a plurality of user devices that travel along respective routes through a geographic region, the network quality data indicating one or more measured values of network parameters of respective wireless networks in the geographic region, and the contextual data indicating one or more of: temporal conditions, weather conditions, traffic conditions, or device conditions occurring when respective user devices of the plurality of user devices obtain the network quality data; generating a network quality map based on the network quality data received from the plurality of user devices, the network quality map indicating one or more network parameters for respective wireless networks of the geographic region, wherein the network quality map uses received contextual data and received network quality data to relate values of contextual data to values of the one or more network parameters; identifying current contextual data of the computing device; receiving one or more routes along which one or more connectable devices are travelling, wherein the computing device is able to connect to one of the respective wireless networks through the one or more connectable devices; generating at least one suggested route between the start location and the end location using the network quality map, wherein the generating is based on the current contextual data of the computing device and network connectivity parameters between the start location and the end location, wherein the one or more routes along which one or more connectable devices are travelling are similar to the at least one suggested route, and wherein the at least one suggested route is updated based on at least one network connection through the one or more connectable devices; and sending the at least one suggested route to the computing device.

9. The system of claim 8, wherein, The contextual data includes data specifying at least one of: a time of day, a day of the week, a date, a season, one or more traffic indicators, a travel speed, one or more weather conditions, or one or more user device properties.

10. The system of claim 8, wherein, The operation of optimizing the network connection parameter includes at least one of: maximizing voice connection quality from the start location to the end location; maximizing data streaming quality from the start location to the end location; or minimizing connection latency from the start location to the end location.

11. The system of claim 8, wherein, The operation of generating the at least one suggested route includes running an optimization function that minimizes travel duration and optimizes the network connection parameter between the start location and the end location.

12. The system of claim 11, wherein, The optimization function is weighted to prioritize optimization of the network connection parameter over minimizing the travel duration.

Citation Information

Patent Citations

  • Methods for providing navigation route based on network availability and device attributes

    CN105009182A

  • Technologies for providing information to a user while traveling

    CN105723766A

  • Network connection planning using crowdsourced data

    CN114144800A

  • Method and System for Automatically Identifying Wireless Signal Quality of a Region

    US20090005097A1

  • Navigation system acquisition and use of cellular coverage map data

    US20170314940A1