Patent Publication Number: US-2010114469-A1

Title: Navigation system having dynamic adaptive routing and method of operation thereof

Description:
TECHNICAL FIELD 
     The present invention relates generally to a navigation system, and more particularly to a navigation system having dynamic adaptive routing. 
     BACKGROUND ART 
     Modern portable consumer and industrial electronics, especially client devices such as navigation systems, cellular phones, portable digital assistants, and combination devices, are providing increasing levels of functionality to support modern life including location-based information services. Numerous technologies have been developed to utilize this new functionality. Some of the research and development strategies focus on new technologies while others focus on improving the existing and mature technologies. Research and development in the existing technologies can take a myriad of different directions. 
     As users become more empowered with the growth of mobile location based service devices, new and old paradigms begin to take advantage of this new device space. There are many technological solutions to take advantage of this new device location opportunity. One existing approach is to process location information to provide navigation services such as a global positioning service (GPS) navigation system for a car or on a mobile device such as a cell-phone or personal digital assistant (PDA). 
     However, the ability for users to process location information to generate a navigation route does not automatically translate to providing a safe and effective method of navigation for each individual. An effective means to make navigation systems more useful to individuals is still required. 
     For example, some individual drivers are relatively inexperienced and can require a higher level of interactivity and support than other more typical or advanced drivers. Drivers in hazardous weather or adverse conditions can require navigation instructions suitable for the situation. 
     Thus, a need remains for a navigation system having dynamic adaptive routing to efficiently create, manage, and present dynamic adaptive navigation information in a timely fashion for a variety of circumstances and situations. In view of the ever-increasing added features desired by consumers in their mobile client devices, it is more and more critical that answers be found to these problems. 
     Solutions to these problems have been long sought but prior developments have not taught or suggested any solutions and, thus, solutions to these problems have long eluded those skilled in the art. 
     DISCLOSURE OF THE INVENTION 
     The present invention provides a method of operation of a navigation system having dynamic adaptive routing including detecting a navigation event; updating a driver profile with the navigation event; calculating a navigation routing parameter with the driver profile; and sending the navigation routing parameter for displaying on a multimedia display interface of a device. 
     The present invention provides a navigation system having dynamic adaptive routing including a location unit for detecting the navigation event; a profile engine, coupled to the location unit, for updating a driver profile with the navigation event; a routing engine, couple to the profile engine, for calculating a navigation routing parameter with the driver profile; and a communication unit, couple to the profile engine, and a communication unit, coupled to the profile engine, for sending the navigation routing parameter for displaying on a multimedia display interface on a device. 
     Certain embodiments of the invention have other aspects in addition to or in place of those mentioned above. The aspects can become apparent to those skilled in the art from a reading of the following detailed description when taken with reference to the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a navigation system having dynamic adaptive routing in a first embodiment of the present invention. 
         FIG. 2  is a block diagram of the first embodiment of the navigation system of  FIG. 1 . 
         FIG. 3  is a diagram of the data structures in the memory of the navigation system of  FIG. 1 . 
         FIG. 4  is a flowchart for operating the navigation system of  FIG. 1 . 
         FIG. 5  illustrates a navigation system having dynamic adaptive routing in a second embodiment of the present invention. 
         FIG. 6  is a block diagram of the navigation system of  FIG. 5 . 
         FIGS. 7A and 7B  are diagrams of the data structures in the memories of the navigation system of  FIG. 5 . 
         FIGS. 8A ,  8 B, and  8 C are parts of a flowchart for operating the navigation system of  FIG. 5 . 
         FIGS. 9A ,  9 B,  9 C and  9 D are illustrations of a first example of a dynamic adaptive navigation routing by the device of the navigation system of  FIG. 1 . 
         FIG. 10  is an illustration of a second example of a dynamic routing of the navigation system of  FIG. 1 . 
         FIG. 11  is an illustration of a first example of a dynamic adaptive routing of the navigation system of  FIG. 5 . 
         FIG. 12  is a flow chart of a method of operation of a navigation system having dynamic adaptive routing in a further embodiment of the present invention. 
     
    
    
     BEST MODE FOR CARRYING OUT THE INVENTION 
     The following embodiments are described in sufficient detail to enable those skilled in the art to make and use the invention. It is to be understood that other embodiments would be evident based on the present disclosure, and that system, process, or mechanical changes can be made without departing from the scope of the present invention. 
     In the following description, numerous specific details are given to provide a thorough understanding of the invention. However, it can be apparent that the invention can be practiced without these specific details. In order to avoid obscuring the present invention, some well-known circuits, system configurations, and process locations are not disclosed in detail. 
     Likewise, the drawings showing embodiments of the system are semi-diagrammatic and not to scale and, particularly, some of the dimensions are for the clarity of presentation and are shown greatly exaggerated in the drawing FIGs. 
     One skilled in the art would appreciate that the format with which navigation information is expressed is not critical to some embodiments of the invention. For example, in some embodiments, navigation information is presented in the format of (x, y), where x and y are two ordinates that define the geographic location, i.e., a position of a user. In an alternative embodiment, navigation information is presented by longitude and latitude related information. In a further embodiment of the present invention, the navigation information also includes a velocity element including a speed component and a heading component. 
     The term “relevant information” referred to herein is defined as the navigation information described as well as information relating to points of interest to the user, such as local business, hours of businesses, types of businesses, advertised specials, traffic information, maps, local events, and nearby community or personal information. 
     Referring now to  FIG. 1 , therein is illustrated a navigation system  100  having navigation system having dynamic adaptive routing in a first embodiment of the present invention. The navigation system  100  is dynamic because it can respond to real-time navigation events. The navigation system  100  is adaptive because it can change behavior and create a new routing based on the type of navigation events that occur. 
     The navigation system  100  can provide both a routing function and present visual and audio navigation information. A device  102  can be a stand alone mobile navigation device that can provide location-based navigation information. 
     For example, the device  102  can be of any of a variety of mobile navigation devices, such as a vehicle navigation unit, a handheld navigation unit, a personal digital assistant, a notebook computer, or other multi-functional mobile communication devices having means for location monitoring, preferably, global positioning system (GPS) function, of the device  102 . 
     Referring now to  FIG. 2 , therein is shown a block diagram of the navigation system  100  having dynamic adaptive routing of  FIG. 1 .  FIG. 2  shows a single device embodiment of the navigation system  100  having dynamic adaptive routing where the device  102  can include components necessary to perform dynamic adaptive navigation routing. 
     The device  102 , for example, can include a client user interface  202  having a multimedia display interface  204 , a client location unit  206 , such as a GPS unit, a client control unit  208 , such as a processor, a software  209 , a client local storage  210 , a client communication unit  212 , a profile engine  244 , a routing engine  246 , and a mapping engine  248 . 
     For illustrative purposes, the navigation system  100  is shown with the device  102  encompassing the functionality in a single unit, although it is understood that any individual functional block can be implemented either locally or remotely on a different device. For example, the routing engine  246  of the device  102  can be implemented as a remote process on another device. 
     A user input  220  can to provide command and data inputs to the client user interface  202 . The client user interface  202  can include the multimedia display interface  204 , a key pad, a touchpad, soft-keys, a keyboard, a microphone, or any combination thereof, to provide data and command inputs to the device  102 . 
     The multimedia display interface  204  can present visual and audio information such as maps, text, video, images, audio commands, audio notifications, audio warning, or any combination thereof. The multimedia display interface  204  can include a flat panel display, projector, cathode-ray tube display, heads up display, speakers, headphones, buzzers, or any combination thereof. 
     Presenting visual information on the multimedia display interface  204  can include displaying images, graphics, video, text or any combination thereof on the screen or display of the multimedia display interface  204 . Presenting audio information on the multimedia display interface  204  can include playing voice, music, audio clips or any combination thereof on the speakers, headphones or buzzers of the multimedia display interface  204 . 
     The client location unit  206  can provide location information and be implemented in many ways. For example, the client location unit  206  can be a global positioning system (GPS), inertial navigation system, cell-tower location system, accelerometer location system, or any combination thereof. The client location unit  206  can include the active and passive components, such as microelectronics or an antenna. 
     The client location unit  206  can detect a navigation event  207 . The navigation event  207  can include location change, speed change, deviation from routing command, vehicle control usage, vehicle control setting change, vehicle instrument change, or any combination thereof. 
     The client control unit  208  can execute the software  209  and can provide the intelligence of the device  102  for interaction with the client user interface  202 , the multimedia display interface  204 , the client location unit  206 , the client local storage  210 , the client communication unit  212 , the profile engine  244 , the routing engine  246  and the mapping engine  248 . The client control unit  208  can also execute the software  209  for other functions pertinent to a navigation device. 
     The client local storage  210  can be implemented as a volatile memory, a nonvolatile memory, an internal memory, an external memory, or a combination thereof. For example, the client local storage  210  can be a nonvolatile storage such as non-volatile random access memory (NVRAM), Flash memory, or disk storage. The client local storage  210  can be a volatile storage such as static random access memory (SRAM). 
     The client local storage  210  can store the software  209 , setup data, multimedia data, photos, text, sounds recordings, video and other data for the operation of the device  102  as a navigation device. The client local storage  210  can also store the relevant information, such as maps, route information, traffic information, advertisement and point of interest (POI), navigation routing entries, driver information, or any combination thereof. The client local storage  210  can also store recorded, imaged, sampled or created relevant information. 
     The client communication unit  212  can allows the device  102  to communicate with other devices not shown in this figure. The client communication unit  212  can include active and passive components, such as microelectronics or an antenna. 
     The profile engine  244  can create, store, update, and retrieve a driver profile  262 . The profile engine  244  can be implemented as an integrated hardware component of the device  102  or as a distinct separate hardware, software, or combination system that provides access to the driver profile information. For example, the profile engine  244  can be implemented as a software module that accesses driver profile information stored in the client local storage  210 . 
     The driver profile  262  can represent learning by the profile engine  244  of the behavior, tendencies, and history of a driver. The driver profile  262  can include any number of parameters, such as a driver proficiency parameter  268 , a driver location history, a driver vehicle history, a driver traffic parameter, a driver environmental history, a driver preferences parameter, or any combination thereof. 
     The driver proficiency parameter  268  can describe the skill level of the driver. The driver proficiency parameter  268  can be implemented as an enumerated value, such as beginner, normal, advanced, or expert; a data structure with several individual skill elements, such as left turn preference, freeway preference, traffic preference, or weather preference; or a numerical rating; or any combination thereof. 
     The routing engine  246  can create, store, update and retrieve a route parameter  264  using the driver profile  262 . The routing engine  246  can process the driver profile  262  to model driver behavior and calculate the route parameter  264  based on the driver profile  262 . 
     The routing engine  246  can be implemented as a hardware, software or combination component. For example, the routing engine  246  can be implemented as software running on the client control unit  208  accessing the driver profile  262  stored in the client local storage  210 . 
     The route parameter  264  can describe the route between two or more locations. The route parameter  264  can include a primary route, non-primary routes, vector maps, node and edge weighing information, navigation commands, or any combination thereof. 
     The mapping engine  248  can create, store, update and retrieve a mapping parameter  266  for the route parameter  264 . The mapping engine  248  can be implemented as a hardware, software, or combination component. For example, the mapping engine  248  can be implemented as software running on the client control unit  208  accessing a mapping database stored in the client local storage  210 . 
     The mapping parameter  266  can represent the geographical and navigational features along a route. The mapping parameter  266  can include location-specific mapping information, graphical display information, resolution and size-specific display tiles, vector maps, images, points of interest, or any combination thereof. 
     Referring now to  FIG. 3 , therein shown are the data parameters in the client local storage  210  of  FIG. 2 . The data parameters in the client local storage  210  can include the driver profile  262 , the route parameter  264 , and the mapping parameter  266 . The client local storage  210  can also include a routing request parameter  301 , a navigation routing parameter  304 , a navigation event update request  312 , and a navigation event update parameter  314 . 
     The routing request parameter  301  can be used to request a new routing. The routing request parameter  301  can include start and end locations, waypoint locations, driver identification (ID), account ID, control parameters, or any combination thereof. 
     The navigation routing parameter  304  can be used to operate the multimedia display interface  204  of  FIG. 2  of the client user interface  202  of  FIG. 2 . The navigation routing parameter  304  can include a navigation routing control parameter  306  and a navigation routing data parameter  308 . 
     The navigation routing control parameter  306  can include operating mode parameters to control the multimedia display interface  204 . For example, the multimedia display interface  204  can provide turn warning distances, lane change warning distances, local navigation preferences, audio warning parameters, accessibility parameters, or any combination thereof. 
     The navigation routing data parameter  308  can include visual and audio information to present on the multimedia display interface  204  of the client user interface  202 . The navigation routing data parameter  308  can include the driver profile  262 , the route parameter  264 , the mapping parameter  266 , driver ID, system ID, account ID, device type, location, date, time, multimedia data, or any combination thereof. 
     The navigation event update request  312  can request an updated routing. The navigation event update request  312  can include start and end locations, waypoint locations, driver identification (ID), account ID, control parameters, or any combination thereof. 
     The navigation event update parameter  314  can be used to update the multimedia display interface  204 . The navigation event update parameter  314  can include a navigation event control parameter  316  and a navigation event data parameter  318 . The navigation event control parameter  316  can include operating mode parameters to control the multimedia display interface  204 . The navigation event data parameter  318  can include visual and audio information to be presented on the multimedia display interface  204 . 
     The driver profile  262  can include a predefined threshold  320 . The driver proficiency parameter  268  can update the driver profile  262  based on crossing the predefined threshold  320 . The predefined threshold  320 , as an example, can be defined as the number of instances of the navigation event  207  of  FIG. 2 , the time between the occurrences of the navigation event  207 , the distance between the occurrences of the navigation event  207 , or a combination thereof. 
     The predefined threshold  320  can be set to a fixed value or can having variable value. For example, the predefined threshold  320  can vary depending on the type of the navigation event  207 . As another example, the predefined threshold  320  may be adjusted based on the updating of the driver profile  262 . 
     Referring now to  FIG. 4 , therein shown is a flow chart for operating the navigation system  100  of  FIG. 1 . The flow chart can be included in the software  209  of  FIG. 2 . The client control unit  208  of  FIG. 2  can execute the software  209 . 
     The navigation system  100  can calculate a customized route for a particular driver to a target location and operate the multimedia display interface  204  of  FIG. 2  of the device  102  of  FIG. 2 . The navigation system  100  can provide customization by presenting navigation routing directions and mapping information. In the flow chart example, each block is indicated by a number and successively higher block numbers follow one another unless explicitly indicated. 
     The device  102  can receive an navigation routing request to a target location with the user input  220  of  FIG. 2  to the client user interface  202  of  FIG. 2  in a receive user input block  402 . The device  102  can process the user input  220  to create the routing request parameter  301  of  FIG. 3 . 
     Next, the device  102  can initialize a navigation session in an initialize session block  404 . The device  102  can process the routing request parameter  301  to calculate the navigation routing parameter  304  of  FIG. 3  including the navigation routing control parameter  306  of  FIG. 3 , and the navigation routing data parameter  308  of  FIG. 3 . 
     Next, using the driver ID in the routing request parameter  301 , the device  102  can retrieve the driver profile  262  of  FIG. 2  from the profile engine  244  of  FIG. 2  in a get driver profile block  406 . The device  102  can process the driver profile  262  to update the navigation routing parameter  304 . 
     Next, the device  102  can process the driver profile  262  to calculate the route parameter  264  of  FIG. 2  in the routing engine  246  of  FIG. 2  in a get routing parameter block  408 . The device  102  can process the route parameter  264  to update the navigation routing parameter  304 . 
     The routing engine  246  can process the driver proficiency parameter  268  of  FIG. 2  to calculate the appropriate route. For example, if the driver proficiency parameter  268  is below the predefined threshold  320  of  FIG. 3 , the routing engine  246  will calculate a simplified route with few difficult navigation maneuvers. 
     If the driver proficiency parameter  268  indicates an inexperienced driver, then the routing engine  246  can calculate a longer route using freeways and major streets, instead of a shorter route through minor roads and complicated shortcuts. 
     Next, using the route parameter  264 , the device  102  can retrieve the mapping parameter  266  of  FIG. 2  from the mapping engine  248  of  FIG. 2  in a get mapping parameter block  410 . The device  102  can process the mapping parameter  266  to update the navigation routing parameter  304  and the navigation routing data parameter  308 . 
     Next, the device  102  can process the navigation routing parameter  304  and update the navigation session data in an update session information block  412 . The navigation session data can include the session ID, the navigation routing parameter  304 , or any combination thereof. 
     Next, the device  102  can present the navigation routing data parameter  308  on the multimedia display interface  204  of the client user interface  202  using the navigation routing control parameter  306  in a present navigation information block  414 . 
     For example, the mapping parameter  266  can include display tiles which can be displayed on the multimedia display interface  204 . In a further example, the route parameter  264  can include the primary route which can be used to generate audio commands on the multimedia display interface  204  to indicate when to make a turn. 
     Next, the device  102  can detect the navigation event  207  of  FIG. 2  in the client location unit  206  of  FIG. 2  in a detect navigation event block  416 . If the navigation event  207  has not been detected by the client location unit  206 , the device  102  can wait until the navigation event  207  occurs. 
     When the navigation event  207  is detected by the client location unit  206 , the device  102  can update the current location parameter of the device  102  in an update location information block  418 . The current location parameter is stored in the client local storage  210 . 
     Next, the device  102  can process the current location parameter and determine if the device  102  is on the primary route of the route parameter  264  in a location check block  420 . If the device  102  is on the primary route of the route parameter  264 , then control can pass to the present navigation information block  414  to update the multimedia display interface  204 . If the device  102  is not on the primary route of the route parameter  264 , then the control can pass to a get updated routing information block  422 . 
     The device  102  can process the navigation event  207  and the navigation routing parameter  304  to create the navigation event update parameter  314  of  FIG. 3  in the get updated routing information block  422 . The navigation event update parameter  314  can be stored in the client local storage  210  of the device  102 . 
     Next, the profile engine  244  of the device  102  can update the driver profile  262  with the navigation event control parameter  316  of  FIG. 3  in an update driver profile block  424 . For example, if the navigation event  207  represents a missed left turn, the update to the driver profile  262  can include updating the driver proficiency parameter  268  of  FIG. 2  to indicate an increased tendency to miss left turns. 
     Next, based on the driver profile  262  from the update driver profile block  424 , the routing engine  246  of the device  102  can update the route parameter  264  in an update routing parameter block  426 . The route parameter  264  can define the new route between the current location and the target destination based on the driver profile  262  having been updated. The navigation event update parameter  314  can be updated with the route parameter  264 . 
     For example, the routing engine  246  can process the driver proficiency parameter  268  of the driver profile  262  to calculate the route to the target location. If the driver proficiency parameter  268  indicates a history of missed turns above the predefined threshold  320  of  FIG. 3 , the routing engine  246  can calculate a new route that avoids left hand turns. 
     Next, using the update to the route parameter  264 , the device  102  can retrieve the mapping parameter  266  from the mapping engine  248  in an update mapping parameter block  428 . The navigation event update parameter  314  can be updated with the mapping parameter  266 . For example, the mapping parameter  266  can include updates of mapping images tiles for the new portions of the route identified in the route parameter  264 . 
     When the navigation event update parameter  314  has been updated, control can pass to the update session information block  412 . The device  102  can continue to process navigation event updates until the navigation session ends. 
     Referring now to  FIG. 5 , therein is illustrated a navigation system  500  having dynamic adaptive routing in a second embodiment of the present invention. The navigation system  500  is dynamic because it can respond to real-time navigation events. The navigation system  500  is adaptive because it can change behavior and create a new routing based on the type of navigation events that occur. 
     A first device  502 , such as a client, is connected to a communication path  504 , such as a wireless or wired network, to a second device  506 , such as a server. For example, the first device  502  can be of any mobile device, such as a cellular phone, personal digital assistant, a notebook computer, or other multi-functional mobile communication or entertainment devices. The first device  502  includes means to couple to the communication path  504  to communicate with the second device  506  and means for location monitoring, such as global positioning system (GPS) function. The first device  502  can also be a server type device. 
     For illustrative purposes, the second device  506  is shown in a single location, although it is understood that the second device  506  can be centralized or decentralized and located at different locations. For example, the second device  506  can represent real or virtual servers in a single computer room, distributed across different rooms, distributed across different geographical locations, embedded within a telecommunications network, or virtualized servers within one or more other computer systems including grid or cloud type computing resources. 
     Also for illustrative purposes, the second device  506  can be any of a variety of centralized or decentralized computing devices including a computer, grid computing resources, a virtualized computer resource, cloud computing resource, routers, switches, peer-to-peer distributed computing devices, or a combination thereof, having means to couple with the communication path  504  to communicate with the first device  502 . The second device  506  can also be a client type device as described for the first device  502 . 
     Further for illustrative purposes, the navigation system  500  is shown with the second device  506  as a non-mobile computing device, although it is understood that the second device  506  can be different types of computing devices. For example, the second device  506  can also be a mobile computing device, such as notebook computer, another client device, or a different type of client device. 
     The communication path  504  can be a variety of networks. For example, the communication path  504  can include wireless communication, wired communication, optical, ultrasonic, or the combination thereof. 
     Satellite communication, cellular communication, Bluetooth, Infrared Data Association standard (IrDA), wireless fidelity (WiFi), and worldwide interoperability for microwave access (WiMAX) are examples of the wireless communication that can be included in the communication path  504 . Ethernet, digital subscriber line (DSL), fiber to the home (FTTH), and plain old telephone service (POTS) are examples of the wired communication that can be included in the communication path  504 . 
     The communication path  504  can traverse a number of network topologies and distances. For example, the communication path  504  can include personal area network (PAN), local area network (LAN), metropolitan area network (MAN), wide area network (WAN) or any combination thereof. 
     The navigation system  500  is shown with the second device  506  and the first device  502  as end points of the communication path  504 , although it is understood that the navigation system  500  can have a different partition between the first device  502 , the second device  506 , and the communication path  504 . For example, the first device  502 , the second device  506 , or a combination thereof can also function as part of the communication path  504 . 
     Referring now to  FIG. 6 , therein are shown a block diagram of the navigation system  500  of  FIG. 5 .  FIG. 6  shows a multiple device embodiment where the first device  502  can communicate with the second device  506  over the communication path  504 . 
     The first device  502 , such as a client, can send a server request  630  to the second device  506  over the communication path  504 . The second device  506 , such as a server, can send a server response  632  to the first device  502  over the communication path  504 . 
     For illustrative purposes, the navigation system  500  is shown with the first device  502  as a client, although it is understood that the navigation system  500  can have the first device  502  as a different type of device. For example, the first device  502  can be a server. For convenience to describe an example of the present invention, the first device  502  will be described as a client. 
     Also for illustrative purposes, the navigation system  500  is shown with the second device  506  as a server, although it is understood that the navigation system  500  can have the second device  506  as a different type of device. For example, the second device  506  can be a client. For convenience to describe an example of the present invention the second device  506  will be described as a server. 
     The first device  502  can include, for example, a client control unit  608 , such as a processor, a software  609 , a client local storage  610 , a client communication unit  612 , a client location unit  606 , and a client user interface  602  having a multimedia display interface  604 . 
     The client user interface  602  can be used to provide command and data inputs to the first device  502 . The client user interface  602  can include the multimedia display interface  604 , a key pad, a touchpad, soft-keys, a keyboard, a microphone, or any combination thereof, to provide data and command inputs to the first device  502 . 
     The multimedia display interface  604  can present visual and audio information such as maps, text, video, images, audio commands, audio notifications, audio warning, or any combination thereof. The multimedia display interface  604  can include a flat panel display, projector, cathode-ray tube display, head&#39;s up display, speakers, headphones, or any combination thereof. 
     The client location unit  606  can provide location information of the first device  502  and can be implemented in many ways. For example, the client location unit  606  can be a global positioning system (GPS), inertial navigation system, cell-tower location system, accelerometer location system, or any combination thereof. The client location unit  606  can include the active and passive components, such as microelectronics or an antenna. The client location unit  606  can detect a navigation event  607 . 
     The client local storage  610 , such as a volatile memory, a nonvolatile memory, an internal memory, an external memory, or a combination thereof, For example, the client local storage  610  can be a nonvolatile storage such as non-volatile random access memory (NVRAM), Flash memory, or disk storage. The client local storage  610  can be a volatile storage such as static random access memory (SRAM). 
     The client control unit  608  can execute the software  609  and can provide the intelligence of the first device  502  for interaction with the second device  506 , the client user interface  602 , the multimedia display interface  604 , the communication path  504  via the client communication unit  612 , and interaction to the client location unit  606 . The client control unit  608  can also execute the software  609  for other functions pertinent to a navigation device. 
     The client local storage  610  can store the software  609 , setup data, multimedia data, photos, text, sounds recordings, video and other data for the operation of the first device  502  as a navigation device. The client local storage  610  can also store the relevant information, such as maps, route information, traffic information, advertisement and point of interest (POI), navigation routing entries, driver profiles, or any combination thereof, from the second device  506  or can be preloaded. The client local storage  610  can also store recorded, imaged, sampled or created relevant information to be transmitted to the second device  506 . 
     The client communication unit  612  can couple with the communication path  504  to communicate with other devices including the second device  506 . The client communication unit  612  can include active and passive components, such as microelectronics or an antenna, for interaction with the communication path  504 . 
     The second device  506  can include a number of devices, for example, a server control unit  642  such as a processor or computer, a server software  643 , a server local storage  650 , a server communication unit  640 , a profile engine  644 , a routing engine  646 , and a mapping engine  648 . 
     For illustrative purposes, the navigation system  500  is shown with the second device  506  described with discrete functional blocks, although it is understood that the navigation system  500  can have the second device  506  in a different configuration. For example, the server control unit  642 , the server communication unit  640 , the profile engine  644 , the routing engine  646 , and the mapping engine  648  may not be discrete functional blocks but may have one or more of the aforementioned blocks combined into one functional block. 
     The server communication unit  640  can couple with the communication path  504  to communicate with other devices including the first device  502 . The server communication unit  640  can include active and passive components, such as microelectronics or an antenna, for interaction with the communication path  504 . 
     The server control unit  642  can execute the server software  643  and can provide the intelligence of the second device  506  for interaction with the first device  502 , the profile engine  644 , the routing engine  646 , the mapping engine  648 , the server communication unit  640 , and the server local storage  650 . 
     The profile engine  644  can create, store, update, and retrieve a driver profile  662 . The driver profile  662  can include a driver proficiency parameter  668 . The profile engine  644  can be implemented as a hardware or software component. For example, the profile engine  644  can be implemented as a dedicated hardware component or separate system than provides secure access to driver profile information. 
     The profile engine  644  can learn the driver tendencies and behaviors while operating the first device  502 . The driver profile  662  can represent and store the learning by the profile engine  644 . 
     The routing engine  646  can create, store, update and retrieve a route parameter  664  for a particular set of start and end locations. The profile engine  644  can be implemented as a hardware or software component. For example, the routing engine  646  can be implemented as software running on the server control unit  642  accessing routing information stored in the server local storage  650 . 
     The mapping engine  648  can create, store, update and retrieve a mapping parameter  666  for the route parameter  664 . The mapping engine can be implemented as a hardware or software component. For example, the mapping engine  648  can be implemented as software running on the server control unit  642  accessing a mapping database stored in the server local storage  650 . 
     Referring now to  FIGS. 7A and 7B , therein are shown diagrams of the data structures in the memories of the navigation system  500  of  FIG. 5 . Both the client local storage  610  of  FIG. 7A  and the server local storage  650  of  FIG. 7B  can include the same data parameters at different stages of operation of the navigation system  500 . 
     The data parameters in the client local storage  610  can include the driver profile  662 , the route parameter  664 , and the mapping parameter  666 . The driver profile  662  can include a predefined threshold  720 . The driver proficiency parameter  668  can update the driver profile  662  based on crossing the predefined threshold  720 . The predefined threshold  720 , as an example, can be defined as the number of instances of the navigation event  607  of  FIG. 6 , the time between the occurrences of the navigation event  607 , the distance between the occurrences of the navigation event  607 , or a combination thereof. 
     The predefined threshold  720  can be set to a fixed value or can having variable value. For example, the predefined threshold  720  can vary depending on the type of the navigation event  607 . As another example, the predefined threshold  720  may be adjusted based on the updating of the driver profile  662 . 
     The client local storage  610  can also include a routing request parameter  701 , a navigation routing parameter  704 , a navigation event update request  712 , and a navigation event update parameter  714 . 
     The routing request parameter  701  can request a new route. The routing request parameter  701  can include start and end locations, waypoint locations, driver identification (ID), account ID, control parameters, or any combination thereof. 
     The navigation routing parameter  704  can be used to operate the multimedia display interface  604  of  FIG. 6  of the client user interface  602  of  FIG. 6 . The navigation routing parameter  704  can include a navigation routing control parameter  706  and a navigation routing data parameter  708 . 
     The navigation routing control parameter  706  can include operating mode parameters to control the multimedia display interface  604 . For example, the multimedia display interface  604 , based on the navigation routing control parameter  706 , can provide turn warning distances, lane change warning distances, local navigation preferences, audio warning parameters, accessibility parameters, or any combination thereof. 
     The navigation routing data parameter  708  can include visual and audio information to be presented on the multimedia display interface  604  of the first device  502 . The navigation routing data parameter  708  can include the driver profile  662 , the route parameter  664 , the mapping parameter  666 , driver ID, system ID, account ID, device type, location, date, time, multimedia data, or any combination thereof. 
     The navigation event update request  712  can request a new routing. The navigation event update request  712  can include start and end locations, waypoint locations, driver identification (ID), account ID, control parameters, or any combination thereof. 
     The navigation event update parameter  714  can be used to operate the multimedia display interface  604 . The navigation event update parameter  714  can include a navigation event control parameter  716  and a navigation event data parameter  718 . 
     The navigation event control parameter  716  can include operating mode parameters to control the multimedia display interface  604 . The navigation event data parameter  718  can include visual and audio information to be presented on the multimedia display interface  604 . 
     Referring now to  FIGS. 8A ,  8 B and  8 C, therein are shown parts of a flow chart for operating the navigation system  500  of  FIG. 5 . The flow chart can be included in the software  609  of  FIG. 6 , the server software  643  of  FIG. 6 , or a combination thereof. 
     The navigation system  500  can calculate a customized route for a particular driver to a target location and operate the multimedia display interface  604  of  FIG. 6  of the first device  502  of  FIG. 6  by presenting navigation routing directions and mapping information. In the flow chart, each block is indicated by a number and successively high block numbers follow one another unless explicitly indicated. 
       FIG. 8A , the first device  502  can receive the navigation routing request to the target location with a user input  620  of  FIG. 6  through the client user interface  602  of  FIG. 6  in a receive user input block  802 . 
     Next, the first device  502  of  FIG. 5  can initialize the routing request parameter  701  of  FIG. 7  in a send routing request block  804 . The send routing request block  804  can send the routing request parameter  701  with the server request  630  of  FIG. 6  to the second device  506  of  FIG. 5  over the communication path  504  of  FIG. 5 . 
     Next, the second device  506  can receive the routing request parameter  701  with the server request  630  with the server communication unit  640  of  FIG. 6  in a receive routing request block  806 . The second device  506  can initialize a navigation session and can create the navigation routing parameter  704  of  FIG. 7  in an initialize session block  808 . 
     Next, using the driver ID provided by the routing request parameter  701 , the second device  506  can retrieve the driver profile  662  of  FIG. 6  from the profile engine  644  of  FIG. 6  in a get driver profile block  810 . The second device  506  can process the driver profile  662  to update the navigation routing parameter  704 . 
     Next, using the driver profile  662 , the second device  506  can calculate the route parameter  664  in a get routing parameter block  812 . The second device  506  can process the route parameter  664  to update the navigation routing parameter  704 . 
     For example, the routing engine  646  can process the driver proficiency parameter  668   FIG. 6  of the driver profile  662  to calculate the appropriate route. If the driver proficiency rating indicates a preference to avoid heavily congested routes, then the routing engine  646  will calculate the route to avoid highly congested areas. 
     Next, using the route parameter  664 , the second device  506  can retrieve the mapping parameter  666  from the mapping engine  648  of  FIG. 6  in a get mapping parameter block  814 . The second device  506  can process the mapping parameter  666  to update the navigation routing parameter  704  and the navigation routing data parameter  708 . Next, the second device  506  can send the navigation routing parameter  704  from the get mapping parameter block  814  with the server response  632  of  FIG. 6  to the first device  502  in a send navigation routing parameter block  816 . 
       FIG. 8B , the first device  502  of  FIG. 5  can receive the navigation routing parameter  704  with the server response  632  of  FIG. 6  from the second device  506  of  FIG. 5  via the communication path  504  in a receive navigation routing parameter block  820 . The first device  502  can update the navigation session data using the navigation routing parameter  704  of  FIG. 7  in an update navigation information block  824 . 
     Next, the first device  502  can present the navigation routing data parameter  708  on the multimedia display interface  604  of  FIG. 6  of the client user interface  602  of  FIG. 6  using the navigation routing control parameter  706  in a present navigation information block  826 . For example, the mapping parameter  666  of  FIG. 6  can include display tiles which can be displayed on the multimedia display interface  604 . In a further example, the route parameter  664  of  FIG. 6  can include the primary route which can be used to generate audio commands on the multimedia display interface  604  to indicate when to make a turn. 
     Next, the first device  502  can detect the navigation event  607  of  FIG. 6  in a detect navigation event block  828 . If the navigation event  607  has not been detected by the client location unit  606  of  FIG. 6 , then the first device  502  can wait until the navigation event  607  occurs. 
     When the navigation event  607  is detected, the first device  502  can update the current location parameter of the first device  502  in an update location information block  830 . The current location parameter is stored in the client local storage  610 . 
     Next, the first device  502  can process the updated location and determine if the first device  502  is on the primary route of the route parameter  664  in a location check block  832 . If the first device  502  is on the primary route of the route parameter  664 , then control can pass to the present navigation information block  826  to update the multimedia display interface  604 . If the first device  502  is not on the primary route of the route parameter  664 , then the first device  502  can pass control to a get updated routing information block  834 . 
     The first device  502  can process the navigation event  607  of  FIG. 6  and the navigation routing parameter  704  to create the navigation event update request  712  of  FIG. 7  to update the navigation session in the get updated routing information block  834 . The first device  502  can send the navigation event update request  712  with the navigation event update parameter  714  to the second device  506  via the communication path  504  in a send navigation event update request block  836 . 
       FIG. 8C , the second device  506  of  FIG. 5  can receive the navigation event update parameter  714  of  FIG. 7  in a receive navigation event update request block  840 . The second device  506  can update the session information using the navigation event update parameter  714  in an update session information block  842 . 
     Next, the profile engine  644  of  FIG. 6  of the second device  506  can update the driver profile  662  of  FIG. 6  with the navigation event control parameter  716  of  FIG. 7  of the navigation event update parameter  714  in an update driver profile block  844 . The driver profile  662  can be updated to register the navigation event  607  of  FIG. 6 . For example, if the navigation event  607  represents a missed left turn, the update to the driver profile  662  can update the driver proficiency parameter  668  to indicate an increased tendency to miss left turns. 
     Next, using the driver profile  662  from the update driver profile block  844 , the routing engine  646  of  FIG. 6  of the second device  506  can calculate the update to the route parameter  664  in an update routing parameter block  846 . The route parameter  664  can define the new route between the current location and the target destination based on the driver profile  662 . The navigation event update parameter  714  can be updated with the route parameter  664 . 
     For example, the routing engine  646  can process the driver proficiency parameter  668  of the driver profile  662  to calculate the route to the target location. If the driver proficiency parameter  668  indicates a tendency to avoid freeways, the routing engine  646  can calculate a new route that freeways. 
     Next, using the route parameter  664  from the update routing parameter block  846 , the mapping engine  648  of  FIG. 6  of the second device  506  can retrieve the mapping parameter  666  of  FIG. 6  in an update mapping parameter block  848 . The navigation event update parameter  714  can be updated with the mapping parameter  666 . For example, the mapping parameter  666  can include updates of mapping images tiles for the new portions of the route identified in the route parameter  664 . 
     Next, the second device  506  can send the navigation event update parameter  714  to the first device  502  via the communication path  504  in a send navigation event update response block  850 . The control can pass to the update navigation information block  824  of  FIG. 8B . The first device  502  can continue to process navigation event updates until the navigation session ends. 
     Referring now to  FIGS. 9A ,  9 B,  9 C and  9 D, therein are illustrations of a first example of the dynamic adaptive navigation routing by the device  102  of the navigation system  100  of  FIG. 1 .  FIG. 9A  displays a street map on the multimedia display interface  204 . For a driver with the driver proficiency parameter  268  of  FIG. 2  above a first predefined threshold, the device  102  displays a navigation command to turn right on the multimedia display interface  204  when the device  102  is one hundred yards away from the intersection. The first predefined threshold is an example of the predefined threshold  320  of  FIG. 3 . 
     It is understood that there are several scenarios where the device  102  presents the multimedia content of the specified navigation command on the multimedia display interface  204 , wherein the navigation command can include any of several different multimedia data types including video, audio, images, text, other multimedia content, or any combination thereof. 
       FIG. 9B  shows the approach to an intersection for a driver with the driver proficiency parameter  268  below a second predefined threshold. Both the first predefined threshold and the second predefined threshold are samples of the predefined threshold  320  of  FIG. 3 . The device  102  displays a navigation command to turn right on the multimedia display interface  204  and gives an audible navigation command to turn right when then client is two hundred yards away from the intersection. The second predefined threshold differs from the first predefined threshold requiring the turn notification earlier than turn notification with first predefined threshold. 
       FIG. 9C  shows the approach to an intersection for a driver with the driver proficiency parameter  268 , lower than the first predefined threshold and the second predefined threshold, traveling in the left lane before an upcoming right turn. The device  102  displays a navigation command to enter the right lane on the multimedia display interface  204  and gives an audible navigation command when the device  102  is two hundred yards away from the intersection. 
       FIG. 9D  shows the approach to an intersection for a driver with the driver proficiency parameter  268 , lower than that described in  FIG. 9A  to  FIG. 9C , traveling at a high speed in the left lane before an upcoming right turn. The device  102  displays navigation commands to reduce speed and to enter the right lane on the multimedia display interface  204  and gives an audible navigation command when the device  102  is three hundred yards away from the intersection. 
     Referring now to  FIG. 10 , therein is shown illustration of a second example of a dynamic routing of the navigation system  100  of  FIG. 1 .  FIG. 10  shows a street diagram of a vehicle equipped with the device  102  of the navigation system  100  having dynamic adaptive routing. 
     At a first location  1002 , a driver with the driver proficiency parameter  268  of  FIG. 2  above the first predefined threshold receives a navigation command to turn right on the multimedia display interface  204  of  FIG. 2  when a vehicle having the device  102  of  FIG. 1  is one hundred yards away from the intersection. The navigation event  207  of  FIG. 2  can be created when the vehicle is one hundred yards from the intersection. 
     At a second location  1004 , a driver with the driver proficiency parameter  268  below a second predefined threshold receives a navigation command to turn right on the multimedia display interface  204  when the vehicle is two hundred yards away from the intersection. The navigation event  207  can be created when the vehicle is two hundred yards from the intersection. 
     At a third location  1006 , a driver with the driver proficiency parameter  268  below a third predefined threshold traveling in the left hand lane receives a navigation command to enter the right lane and turn right on the multimedia display interface  204  when the vehicle is three hundred yards away from the intersection. The navigation event  207  of  FIG. 3  can be created when the vehicle is three hundred yards from the intersection. 
     At the third location  1006 , a driver with the driver proficiency parameter  268  below a fourth predefined threshold traveling at high speed in the left hand lane receives a navigation command to reduce speed, enter the right lane and turn right on the multimedia display interface  204  when the vehicle is three hundred yards away from the intersection. The navigation event  207  can be created when the vehicle is three hundred yards from the intersection and when traveling at a high speed and driving in the left hand lane. 
     The increased in distance for the right turn can represent the profile engine  244  of  FIG. 2  learning a driving tendency  1016  of a driver or operator of the device  102 . The driving tendency  1016  is defined as behavior tendencies detected by the navigation system  100 . 
     Referring now to  FIG. 11 , therein is shown an illustration of a first example of the navigation system  500  of  FIG. 5 .  FIG. 1  displays a street diagram of a vehicle with a two device embodiment of the navigation system  500  having dynamic adaptive routing of  FIG. 5 . At a first location  1102 , a vehicle with a driver with a low proficiency rating receives a navigation command to turn left on the multimedia display interface  604  of  FIG. 6  when the first device  502  of  FIG. 5  is one hundred yards away from the intersection. 
     At a second location  1104 , the driver misses the left turn and triggers the navigation event  607  of  FIG. 6 . The first device  502  detects the navigation event  607  and sends the second device  506 , such as an automobile, the navigation event update parameter  714  of  FIG. 7 . 
     The second device  506  will update the driver proficiency parameter  668  of  FIG. 6  in the driver profile  662  with a lower value to indicate that a missed left turn has occurred. If the driver proficiency parameter  668  is below the predefined threshold  720  of  FIG. 7 , the second device  506  can adapt to the driver profile  662  and generate or update the route parameter  664  of  FIG. 6  that avoids or minimizes left turns. 
     The second device  506  can send the update of the navigation event update parameter  714  of  FIG. 7  to the first device  502 . The first device  502  can then display the navigation event update parameter  714  on the multimedia display interface  604  of the  FIG. 6 . 
     At a third location  1106 , a fourth location  1108 , a fifth location  1110 , and a sixth location  1112 , the first device  502  provides navigation commands to the driver to make three right turns and then continue straight through the intersection. The lower driver proficiency results in a simpler navigation routing that reduces the number of left hand turns. At a seventh location  1114 , the first device  502  continues navigation routing using the driver proficiency parameter  668  updated by the navigation system  500 . 
     The reduction of left turns can represent the profile engine  644  of  FIG. 6  learning a driving tendency  1116  of a driver or operator of the second device  506 . The driving tendency  1116  is defined as behavior tendencies detected by the navigation system  500 . 
     Referring now to  FIG. 12 , therein is shown a flow chart of a method  1200  of operation of a navigation system  100  having dynamic adaptive routing in a further embodiment of the present invention. The method  1200  includes detecting a navigation event in a block  1202 ; updating a driver profile with the navigation event in a block  1204 ; calculating a navigation routing parameter with the driver profile in a block  1206 ; and sending the navigation routing parameter for displaying on a multimedia display interface of a device in a block  1208 . 
     Yet another important aspect of the present invention is that it valuably supports and services the historical trend of reducing costs, simplifying systems, and increasing performance. These and other valuable aspects of the present invention consequently further the state of the technology to at least the next level. 
     Thus, it has been discovered that the navigation system having dynamic adaptive routing of the present invention furnishes important and heretofore unknown and unavailable solutions, capabilities, and functional aspects for improving performance, increasing reliability, increasing safety and reducing cost of using a mobile client having location based services capability. The resulting processes and configurations are straightforward, cost-effective, uncomplicated, highly versatile, accurate, sensitive, and effective, and can be implemented by adapting known components for ready, efficient, and economical manufacturing, application, and utilization. 
     While the invention has been described in conjunction with a specific best mode, it is to be understood that many alternatives, modifications, and variations can be apparent to those skilled in the art in light of the aforegoing description. Accordingly, it is intended to embrace all such alternatives, modifications, and variations that fall within the scope of the included claims. All matters hithertofore set forth herein or shown in the accompanying drawings are to be interpreted in an illustrative and non-limiting sense.