1. Field of the Invention
The present invention relates to vehicle navigation using a global positioning system (GPS).
2. Background of the Related Art
A GPS-based navigation system is commonly used to guide a user to a destination. A GPS-based navigation system receives signals from an array of satellites that are part of the GPS. Using these signals, the navigation system may identify its location, which is representative of the location of a vehicle or a user. GPS-based navigation systems are installed on many vehicles. However, portable handheld navigation systems are also now common. Many modern smartphones include a built-in GPS antenna and navigation software, which allows the user to determine his or her location regardless of whether or not the user is in a vehicle. Common functions of a navigation system include obtaining a speed and direction of travel, and guiding a user to a destination. Audiovisual feedback is provided by the navigation system to communicate instructions to a user for reaching the destination.
A navigation system and method are disclosed. In one embodiment, a method involves obtaining a planned route to a destination for a first vehicle and for navigating the first vehicle to that destination. While the first vehicle is moving along the planned route, a second vehicle is identified that is within a threshold distance ahead of the first vehicle along the planned route of the first vehicle and has a speed of less than an expected speed of the first vehicle at that location. A planned route is obtained that is being followed by the second vehicle. The planned routes of the first and second vehicles are compared to identify a shared segment of the planned routes. A delay of the first vehicle to the destination is computed as a function of the speed of the second vehicle along the shared segment. Revised route information is computed on the basis of the delay. The revised route information may include a revised route metric, such as a travel delay or updated ETA, or even a revised route. The revised route information is automatically communicated to an input/output device on the first vehicle or at a location remote from the first vehicle. The method may be implemented by a device or a system of devices according to program code embodied on a non-volatile storage medium.
A collaborative GPS navigation system and method is disclosed that enables planned routes of navigation devices on detected nearby vehicles to be shared and compared for improving navigation. Each navigation device in the system may initially obtain a planned route for its vehicle in a conventional manner, such as by planning a specific route to a destination. In planning a route, a navigation device may initially take into account such factors as posted speed limits, current construction zones, historical traffic flow patterns, and known route conditions. While navigating along the planned route, the navigation device on a first vehicle may identify a specific, slower-moving second vehicle, which could not have been known by conventional means such as historical traffic flow patterns or even by real-time traffic data. The navigation device on the first vehicle may alert the slower-moving second vehicle. The navigation device on the first vehicle may also request and obtain the planned route of the second vehicle, compare the two planned routes to identify a shared route segment, and dynamically revise the planned route and route metrics accordingly. The ability of the disclosed navigation system and method to identify a specific vehicle that may impede its progress along a planned route and to obtain and compare the planned route of the nearby vehicle to its own planned route may provide greater navigational accuracy and improved route metrics.
The route planning module 21 is used to obtain a planned route for the respective vehicle 12, 14. Each vehicle 12, 14 may follow separately-planned routes 18 from respective starting points 41 to respective destinations 42. The planned routes 18 are depicted in
The destinations and routes of the two vehicles 12, 14 are initially planned irrespective of one another, such that each navigation device 20 is unaware of the route planned by the other. While travelling along their planned routes, Navigation Device A tracks the location of the first vehicle 12 relative to Planned Route A, while Navigation Device B separately tracks the location of the second vehicle 14 relative to Planned Route B. The car 12 and bus 14 in this example are presently driving down the same road 16 with the second vehicle 14 slightly ahead of the first vehicle 12. The locations of the two vehicles 12, 14 are represented as dots labeled A and B in the Planned Routes A and B of
The car 12 and bus 14 are in proximity of one another, with the bus 14 travelling at a slower speed than an expected speed of the car 12 at that location. Proximity may be determined as a threshold distance away. The threshold may be as low as, for example, one or two car lengths between the first and second vehicles 12, 14. Proximity may alternatively be defined to include a situation where there are no intervening vehicles between vehicles 12 and 14, such as if the bus 14 is directly in front of the car 12 blocking a lane designated for faster drivers (e.g. a far left lane). When in proximity, the navigation devices 20 on the nearby first and second vehicles 12, 14 may establish a communication link. The navigation devices 20 may communicate directly with one another for navigational collaboration, such as using a near field communication (NFC) channel like Bluetooth® or infrared signals to transmit and receive a communication signal directly between the two navigation devices 20. The navigation devices 20 may alternatively communicate over a cellular network 52. Route information such as the planned routes 18 themselves, the current locations of the two vehicles 12, 14, or route metrics such as an ETA of each vehicle 12, 14 may be selectively shared over the communication link. Alternatively, the route information may be obtained from a shared database residing on the remote server 50.
The proximity/speed detection module 22 on Navigation Device A is used to detect the proximity and speed of the second vehicle 14, and to determine whether the speed of the second vehicle 14 is significantly less than the expected speed of the first vehicle 12. The proximity and/or speed between the two vehicles 12, 14 may be detected in a variety of ways, such as by transmitting an optical or radio signal from the first vehicle 12 and analyzing a reflection from the second vehicle 14 (e.g. radar). The proximity may also be detected by the presence of a near field communication channel (e.g. Bluetooth®), which typically only broadcasts a short distance away from the source. The proximity and speed of the second vehicle 14 may also be determined by obtaining the GPS location data of its navigation device 20 and communicating that data back to the first vehicle 12, such as over an NFC channel or cellular data network 52, where the GPS coordinates of the two vehicles may be compared to identify if they are within a threshold distance. Another option is to have the user/driver of the first vehicle 12 manually input (e.g. by pressing a button) the presence of the second vehicle 14 impeding his or her progress, in which case the proximity is determined by the user visually and the speed of the second vehicle 14 may be inferred from the speed of the first vehicle 12.
In response to detecting the second vehicle 14 in close proximity to the first vehicle 12, Navigation Device A may initially alert the second vehicle 14 that it is impeding the flow of traffic. To avoid an overly obtrusive alert system, the alert may be generated only when one or more applicable thresholds are reached. For instance, a time and speed threshold may be selected whereby Navigation Device A alerts Navigation Device B only if the second vehicle 14 is travelling more than a threshold amount below the expected speed S4 of the first vehicle 12 at that location and/or is travelling slower than the expected speed S4 of the first vehicle 12 for more than a predetermined time threshold. As a practical example, this will avoid having an alert generated at the second vehicle 14 in response to every minor deceleration or during brief stops. Navigation Device B may also communicate to Navigation Device A that vehicle 14 is a special type of vehicle such as a bus that is required to make frequent stops, to exempt the second vehicle 14 from receiving an alert.
The route request module 23 on Navigation Device A may request to obtain Planned Route B for the purpose of determining how the second vehicle 14 travelling along the shared route segment 40 may affect the progress of the first vehicle 12 along its Planned Route A. In response to the request, the Route Share module 24 of Navigation Device B communicates Planned Route B to Navigation Device A over the applicable communication channel. This information may be communicated directly from Navigation Device B to an input/output device on the first vehicle 12 such as the Navigation Device A over the cellular network 52 or NFC, for instance. Alternatively, Navigation Device A may indirectly obtain the requested information from the shared database on the remote server 50. For example, the planned routes 18 may be computed by and/or stored on the remote server 50 and the navigation devices 20 may dynamically communicate their GPS coordinates to the remote server 50.
As a privacy consideration, the amount and type of information communicated regarding a planned route may be restricted. For example, sufficient information regarding Planned Route B may be provided to Navigation Device A to compute the shared route segment 40 without explicitly providing personal information about the second vehicle 14 or its driver, and without providing the final destination 42 of the second vehicle 14. This avoids any driver being able to determine the destination of another driver by simply driving up close to the other driver.
The route compare module 25 may be used to compare Planned Routes A and B to determine a shared segment 40. The shared route segment 40 is highlighted in bolded line type. Although each vehicle has a different starting point 41 and a different destination 42, the shared segment 40 is common to both of Planned Routes A and B. The route planning module 21 may then be used to automatically compute revised route and travel metrics for the first vehicle 12 based on the shared route segment 40 and the speed of the second vehicle 14 impeding the first vehicle 12. First, an expected delay of the first vehicle 12 in reaching its destination 42 may be computed based on the speed of the second vehicle 14 and the length of the shared segment 40. A revised ETA for the first vehicle 12 in reaching its destination 42 may also be determined. The speed of the second vehicle 14 used in this calculation may be an instantaneous or average speed of the second vehicle 14. The instantaneous or average speeds of the second vehicle 14 may be directly observed and measured from the first vehicle 12, either using Navigation Device A, the car's instrument cluster (e.g. a digital speedometer), or a combination thereof. Alternatively, these speeds may be obtained from GPS speed and/or position data tracked by Navigation Device B. The speed and/or position data of the second vehicle 14 may be communicated directly from Navigation Device B to Navigation Device A, such as using an NFC channel or cellular connection between the two navigation devices 20. Alternatively, the speed and/or position data of the second vehicle 14 may be obtained by Navigation Device A from the remote server 50. The revised route information for the first vehicle 12 may include route metrics, such as a delay or an updated ETA, or a revised route for the first vehicle if one is computed on the basis of the second vehicle 14 impeding the first vehicle 12. The revised route information may be automatically communicated to an input/output device at a location remote from the first vehicle 12, such as to the smartphone of a person waiting for the driver to arrive at the destination 42.
The Planned Route A may also be automatically revised to navigate the first vehicle around the second vehicle to a position ahead of the second vehicle along the planned route. An example of a revised route segment 44 is shown, which is intended to route the first vehicle 12 around the second vehicle 14. To ensure that the first vehicle 12 avoids the path of the second vehicle 14, the revised route may be computed not only to navigate the first vehicle to a position ahead of the second vehicle, but also to cause the first vehicle 12 to avoid the remainder of the shared segment 40 entirely—e.g., in the example of
Referring to the controller 26, the logic modules 21-25 are arranged in the diagram from top to bottom in the order they may be invoked in planning a route and navigating along the planned route. However, the logic modules 21-25 are not limited to being invoked in this particular order, and may be selectively invoked on an as-needed basis. Initially, the route planning module 21 may be invoked by a user to generate a planned route. Known route conditions 17 may be supplied as an input to the route planning module 21. The known route information may be supplied primarily by a navigation service that maintains a continually updated global map data. The route info 17 may be provided on physical media, such as a DVD, or dynamically provided to the navigation device 20 over a data connection, such as a mobile Internet connection. The known route conditions 17 may include detailed maps, including distances and speed limits. The known route conditions 17 may also include historical traffic data, real-time traffic data such as provided by traffic cams, and construction zones, all of which may affect route planning and expected route metrics.
To plan a route, the route planning module 21 receives a selected destination, which may be input by a user at the UI 35. The route planning module 21 may obtain a starting location from user input or from the current GPS coordinates sensed by the navigation device 20. The route planning module 21 processes the known route conditions 17 to obtain a planned route 18, and to obtain route metrics such as expected speeds at different locations along the planned route 18 and an ETA. A planned route 18 may be separately obtained for each of a plurality of different vehicles. While each vehicle moves along the planned route 18, the navigation device 20 tracks its position along the planned route and compares the tracked movement of the navigation device with the expected movement according to the planned route 18.
As described with reference to
The route request module 23 of the first vehicle may next be invoked. The route request module 23 may generate a request for the planned route 18 of the second vehicle over an available communication link, such as an NFC link, radio or optical link, or cellular data link. An initial request is made to confirm that the second vehicle also has a navigation device having the components in the diagram of
Upon receiving the planned route of the second vehicle, the route compare module 25 of the first vehicle may compare its own planned route 18 (of the first vehicle) to the planned route of the second vehicle to obtain revised route information 19. The route compare module 25 may identify a shared segment of the two planned routes and generate an updated route and updated route metrics. The route compare module may invoke the route planning module 21 to revise the planned route 18 and update the route metrics such as an ETA. The shared segment and the speed of the second vehicle both affect the route metrics of the first vehicle. For example, the difference between the actual speed of the second vehicle and the expected speed of the first vehicle, and the length of the shared route segment, all affect the delay in the first vehicle reaching its destination. Such a delay may be used to compute a revised (typically, later) ETA for the first vehicle. The revised route information 19 may be fed back to the route planning module 21 for the purpose of revising the planned route 18.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, components and/or groups, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. The terms “preferably,” “preferred,” “prefer,” “optionally,” “may,” and similar terms are used to indicate that an item, condition or step being referred to is an optional (not required) feature of the invention.
The corresponding structures, materials, acts, and equivalents of all means or steps plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but it is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.