NAVIGATION SYSTEM UTILIZING AUDIO CD PLAYER FOR DATA STORAGE

Abstract: An audio navigation system incorporating an audio CD player (14, 15, 16, 17, 18, 19, 20, 21) for playing audio format CD constituting a data storage medium (12) for the navigation system. The CD may store a database containing map data and navigation information, software (9) including an algorithm for selecting a desired route between a designated starting point and destination, and speech data for generating audible spoken statements through a sound system (4). The audio CD player may be part of a sound system and may also play audio CDs carrying musical selections.

Description: NAVIGATION SYSTEM UTILIZING AUDIO CD PLAYER FOR DATA STORAGE RELATED APPLICATIONS This application is a continuation-in-part of application Number 08/299,486, filed on September 1, 1994, which is a continuation-in-part of application Serial Number 08/110,503, filed August 20, 1993, which is itself a continuation of application Serial Number 07/675,632, filed March 27, 1991 and now U.S. Patent Number 5,274,560 which issued on December 28, 1993, which is a continuation-in-part of application Serial Number 07/621,577, filed December 3, 1990 and now abandoned. NOTICE REGARDING COPYRIGHTED MATERIAL A portion of the disclosure of this patent document contains materials which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark office patent file or records, but otherwise reserves all copyright rights whatsoever. BACKGROUND OF THE INVENTION 1. FIELD OF INVENTION This invention relates in general to navigation systems, and more particularly to a navigation system incorporating artificial intelligence that is useful for cars and trucks requiring no sensors for spatially locating the vehicle and which uses an audio, rather than visual, interface with the driver. 2. DESCRIPTION OF THE RELATED ART Many existing navigation systems utilize internal sensors or navigation satellites to locate the subject vehicle with respect to a digital map and then, once located, create a visual presentation of the map, the location of the vehicle and the destination point on a CRT mounted in the dashboard or elsewhere in the vehicle. Some systems also calculate a preferred route which is highlighted on the displayed map. A great deal of effort and technology is used in these systems in order to locate the vehicle as accurately as possible in order to perform the navigation function. U.S. Patent Nos. 4,630,209; 4,829,578; 4,502,123; 4,242,731; 4,679,147; 4,796,189; 4,677,429; 4,882,696; 4,749,924; 4,758,959 and 4,827,520 pertain to car navigation systems or to voice actuated control of a vehicle and are representative of these existing navigation systems. For example, U.S. patent 4,758,959 issued to Thoone et al., is indicative of both the ability and shortcomings of the existing systems. In U.S. Patent No. 4,758,959, speedometers and accelerometers are utilized to estimate the vehicle's position and corrections are made to try to keep the vehicle positioned on the map. The map and the vehicle are displayed on a CRT. The operator inputs his source and destination points via a keyboard. The problems associated with this kind of system are as follows: 1. The accelerometer and velocity sensors are subject to drift and can go out of calibration. Even if the sensors were perfect or if very accurate satellite positioning were possible, the maps available are not accurate, having been digitized from maps which are essentially hand drawn. Thus, it is difficult to determine what street or section of street the vehicle is actually on. 2. The presentation of a map on a CRT in a moving vehicle is a dangerous distraction, especially in heavy traffic found around cities. 3. The use of a keyboard for input from the driver is another distraction and could be dangerous to use while the vehicle is in motion. 4. The use of on-board sensors requires the use of specialized procedures with specially trained personnel for proper installation. Typically, this kind of installation is best done at the factory where the vehicle is built. Therefore, these devices miss the broad after-market of existing cars. SUMMARY OF THE INVENTION Accordingly, the following are some of the primary objects and advantages of the present invention: 1. To provide a navigation system which uses artificial intelligence algorithms to find the best route from source to destination, without requiring any sensors to locate the car; 2. To provide a navigation system which contains an audio, rather than a visual, interface with the driver and is thereby non-distracting; 3. To provide a means for the driver of the vehicle to negate or deny any turn instruction given by the computer and to demand an alternative route. This feature overcomes the need for extremely accurate maps in which every one-way street and every possible turn restriction (including time of day turn restrictions) have been incorporated; 4. To provide a navigation system having few mechanical parts in order to increase reliability and decrease the cost of production; 5. To provide a navigation system that can be built around a very inexpensive, portable compact disk music player which will keep the music functions while adding the navigation functions; 6. To provide a navigation system which does not have to be installed in the car. It can be portable or in the form of an AM/FM Compact Disc Radio and can be sold to anyone who already has a car; 7. To provide a navigation system with traffic avoidance capability, when digitized traffic information becomes available. An FM receiver can be tuned to pick up the latest traffic information and adjust street and highway speeds accordingly. The artificial intelligence routing algorithms in the device will automatically route the driver around congested areas; 8. To provide a navigation system which may optionally utilize a drive shaft rotation sensor as a convenience to alert the driver that his next turn is coming up. It can also aid in escaping a highway traffic jam which has been detected up ahead by the traffic update receiver (see 7 above) ; In summary, the present invention is directed to a navigation system for a vehicle including data storage means for storing a database containing map data and navigation information, means for storing software for controlling the system and effecting route selection in cooperation with the database, and a navigator processor connected for operating the navigation system under control of the software, wherein the data storage means comprise: an audio CD player having a read head and means for positioning the read head in response to positioning signals from the processor; and a CD storing the database in an audio format, the CD being playable by ther player. The novel features of construction and operation of the invention will be more clearly apparent during the course of the following description, reference being had to the accompanying drawings wherein has been illustrated a preferred form of the device of the invention and wherein like characters of reference designate like parts throughout the drawings. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a navigator embodiment which contains a single processor, a compact disk with an FM receiver, and a drive shaft rotation sensor. The Digital Signal Processor is the more expensive 32 bit style processor which has a wide enough address space to perform the Navigation functions in addition to the Speech Processing and Disk Control functions. This embodiment can perform traffic avoidance functions. Figure 2 is a navigator embodiment which contains two processors. The Digital Signal Processor is the less expensive 16 bit style which only has enough addressing capability to perform the speech processing and disc control functions. The Navigation functions, which require a larger address space, are done in a separate 32 bit Micro Processor. Communication between the two processors is by means of a FIFO. The compact disk player does not contain an FM radio and therefor this embodiment cannot perform the traffic update functions. Figure 3 is a navigator embodiment which contains a single processor and a drive shaft rotation sensor. It contains the more expensive 32 bit Digital Signal processor. The compact disk player does not contain an FM radio and therefor this embodiment cannot perform the traffic update functions. Figure 4 is a navigator embodiment which contains two processors, a compact disk with an FM receiver, and a drive shaft rotation sensor. Figure 5 shows how routing occurs utilizing a multi-level map data base. Figure 6 is a flow diagram of the speech training process. Figure 7 is a flow diagram of the speech recognition process. Figure 8 is a graph of nodes and arcs of a map data base. Figure 9 is a graph of arcs of a map data base. Figure 10 is a block diagram of a known receiver controller and CD changer which may be utilized in embodiments of the present invention. Figure 11 is a block diagram of a navigator system according to the invention utilizing the components shown in Figure 10. Figure 12 is a block diagram providing a more detailed illustration of an embodiment of the invention, utilizing a conventional CD changer and receiver controller. LIST OF REFERENCE NUMERALS APPEARING IN FIGURE 4 Micro Processor Components I Noise cancelling microphone 2 Audio amplifier for amplifying the signal from the microphone 3 Analog To Digital Converter for digitizing audio signal 4 Digital Signal Processor for disk and speech input/output 5 EEPROM for storing speech templates 6 ROM for storing the bootstrap routine 7 RAM for storing program, speech and map data 8 FIFO used for data transfers between the two microprocessors 9 Navigation Processor 10 ROM for storing the bootstrap routine II RAM for storing program and map data 12 Sub-carrier demodulator for retrieving digital traffic information 13 Optional drive shaft rotation sensor Compact Disk Player Components 14 FM receiver 15 Tracking control servo 16 Three beam LAZER pickup 17 Focus control servo 18 Signal processor for error correction 19 Random access memory for data buffering 20 Digital processor for music functions 21 Serial digital to analog converter for voice and music output 22 Left speaker audio amplifier 23 Right speaker audio amplifier 51 Music/Navigation selection switch 52 Music/Navigation selection switch BRIEF DESCRIPTION OF THE APPENDICES APPENDIX A Appendix A contains a program listing for controlling the microprocessor of the illustrated embodiment. Appendix A contains nine modules, A1-A9. Module Al contains a routing algorithm for computing the path from the starting address to the destination address. Module A2 contains an input/output routine which enables the microprocessor to control the digital signal processor like a slave. Module A3 is the executive routine which is used to call the other routines of the program. Module A4 is an address matching algorithm which finds the node in the map data base which corresponds to an address. Module A5 contains a spelling checker routine. Module A6 contains a routine to create sentences for the enunciation of the computed path. Module A7 contains a speech training routine. Module A8 contains a data file of the voice templates for the digital signal processor. Module A9 contains the helper file. Module A10 contains a test program for the branch and bound/A* algorithm. APPENDIX B Appendix B contains the program for controlling the digital signal processor for speech recognition and speech creation. APPENDIX c Appendix C contains a program for compressing speech data, utilizing an analog devices ADDS2101 DSP evaluation board to perform the A/D conversion process. DETAILED DESCRIPTION OF THE DRAWINGS (Refer To Figure 4) A directional Microphone (1) picks up the driver's voice. An Audio Amplifier (2) amplifies the signal from the microphone and rolls off the frequencies above 4000 Hz. A 13 bit (or better) Analog To Digital Converter (3) samples and quantizes the output of the audio amplifier at about 8000 Hz. A high speed Digital Signal Processor (4) analyzes the digitized, sampled output and extracts important speech features. In the illustrated embodiment, the DSP (4) is a model 2111 integrated circuit manufactured by Analog Devices. Appendix B included with the present specification contains a program listing for operating the Digital Signal Processor (4) as a speech analyzer. The program listing of Appendix B is written in the BASIC programming language. The program may also be written in assembly language for the 2111 DSP integrated circuit. EEPROM (5) or some equivalent nonvolatile memory is used for storing speech feature "templates" created by the Digital Signal Processor (4) . ROM (6) holds a minimal bootstrap program utilized by the Digital Signal Processor at startup or restart. RAM (7) is used for temporary storage of optical disk data input by the Digital Signal Processor (4) from the optical disk (not shown) . FIFO (8) is used for data transfers between the Digital Signal Processor (4) and the Navigation Processor (9) . The FIFO (8) may be implemented using memories on board the DSP (4) . The Navigation Processor (9) of the illustrated embodiment is a 68010 microprocessor manufactured by Motorola. Appendix A included within the present specification contains a program listing which includes modules A1-A9 for operating the microprocessor 9. Module A3 contains the executive portion of the program for calling the other routines. Module A9 contains the helper file (C language) . ROM (10) holds a minimal bootstrap program utilized by the Navigation Processor (9) at startup or restart. RAM (12) holds digital map data used by the Navigation Processor (9) . Drive Shaft Rotation Sensor (13) is a magnet fastened to the drive shaft in the vicinity of a pickup coil, which provides a pulse each time the shaft rotates past the coil. Using this optional sensor, the computer can tell when the next turn is coming up and can therefor alert the driver with a pleasant sounding chime. FM Receiver (14) is tuned to a traffic update channel by the Navigation Processor. The output of the receiver is demodulated by DEMOD (12) and passed to the Navigation Processor (9) . Track Control Servo (15) is used to maintain the LASER Pickup (16) over the center of an optical disc track or to slew inward or outward when a track jump needs to be performed. Track jump signals come from the Digital Processor (20) or from the Digital Signal Processor (4) depending on the setting of Switch S2. Digital Processor (20) controls music playing when the unit is in the music mode. Signal Processor (18) and its associated RAM (19) are used to de-interleave and to detect and correct errors in the music or data read from the optical disk. The corrected signal is routed to the Serial D/A Converter (21) or to the Digital Signal Processor (4) depending on the setting of Switch SI. Serial D/A Converter (21) converts digitized music or voice records to analog waveforms for left and right channels. Sound is output via the left and right Audio Amplifiers (22 and 23) . Switches SI and S2 select the system mode - music or navigation. When these switches are in the down (navigate) position, the Digital Signal Processor (4) receives optical disk data from the Signal Processor (18) and sends track jump commands to the Track Control Servo (15) . OPERATION OF THE INVENTION ILLUSTRATED EMBODIMENT (Refer To Figure 4) Speech Training One type of speech recognition algorithm which may be used by this navigator is a small vocabulary, speaker dependent recognizer. This type of recognizer requires a training phase in which the user says the words in the vocabulary several times in order to form templates against which future utterances can be matched. Training removes many problems associated with people who have unusual accents or voice qualities. This training task is accomplished by the Digital Signal Processor (4) under the direction and control of the Navigation Processor (9) using primarily module A7 of the program of Appendix A. Refer to Figure 6 for the training functional flow. NOTE: Unless specifically stated otherwise, the word "computer" will be used from hereon to refer to both of these devices working together to perform particular functions. To accomplish the training, a dialogue between the computer and the operator is begun in which the computer asks the operator to say the letters of the alphabet A-Z, the numerals 0-9, and various control words needed by the computer, such as "Yes", "No", "No Turn", etc. The user responds by speaking the requested words into the directional Microphone (1) . An Audio Amplifier (2) conditions the signal, amplifying it and rolling off the high frequencies above 4000 Hz. An Analog To Digital Converter (3) samples and quantizes the word being spoken at 8000 Hz and passes the quantized samples to the Digital Signal Processor (4). The Digital Signal Processor (4) , breaks the word into overlapping 20 msec frames and analyzes each frame for important features in a process known as "feature extraction". Features commonly extracted by commercial recognizers are total frequency band energy. Linear Predictive Coding (LPC) coefficients and cepstral coefficients which can be derived from LPC coefficients. The features are stored in EEPROM (5) as templates as module A8. Other non-volatile memories may be used such as FLASH memories, and battery backed up CMOS memories. Test performed with the "NEC SAR-10 Voice Plus" speech demonstration card show that accurate recognition for this application requires two or three training passes. Additionally, since the audio navigator may be used regularly by more than one person, the EEPROM (5) must be large enough to hold two or three sets of templates for each person who will be using the device on a regular basis. A second, more practicable, speech recognition method is to use a speaker independent recognizer. These recognizers are widely used in car phones to permit anyone to dial the phone by voice. One commercially available program for recognizing spoken utterances is marketed by Lernout and Hauspie Speech Products U.S.A., Inc., of Woburn, Massachusetts, under the product name CSR-1000 Algorithm. The training process for this algorithm is done "at the factory" by recording the speech patterns of hundreds of people and then deriving Hidden Markov Phoneme Speech Models to be used for pattern matching by the algorithm. Speech Recognition Speech input is required when the driver starts his trip and during the trip. When the driver starts his trip, he will verbally enter the address of his source and destination; during the trip, he will ask for the next instruction when he has completed the previous instruction. For a speaker dependent recognizer, in order to recognize the word being spoken, the Digital Signal Processor (4) under the control of the Navigation Processor (9) using primarily module A2, extracts the features, just as was done during the training phase. But this time, the features of the spoken word are matched with the templates stored in the EEPROM (5) memory and the best match is taken to be the word spoken. Refer to Figure 7 for a functional flow diagram of this process. The matching process used is set forth in Appendix B and is called "Dynamic Time Warping" in which the features in the unknown word are time aligned and compared with each of the templates. The template with the smallest distance from the unknown word is the winner. An ASCII code for the recognized word is passed to the Navigation Processor (9) by means of the bi-directional FIFO (34) . For the CSR- 1000 speaker independent recognizer mentioned above, a Viterbi decoding algorithm is used instead of the dynamic time warping method. Spelling Checker In the English language (and in Spanish also) certain letters rhyme and can be easily confused by speech recognizers. Therefore, in this system, speech recognition is enhanced by use of spelling checker software (module A5) , to remove ambiguities associated with letters which rhyme in the English alphabet, such as "B" with "P", "I" with "Y", "J" with "K". The spelling checker solves this by treating rhyming letters as nearly equivalent and using a scoring technique to pull the correct street name out of a number of possible spellings. Thus, the spelling checker makes speech input possible using imperfect speech recognizers. Without it, there would be too many errors and speech input would become impractical. The spelling checker is required only for the English alphabet. The numeric digits from 0 to 9 do not rhyme with each other and therefore speech recognition of numbers is relatively easy to accomplish. A spelling checker is not possible and is not required for recognizing numeric digits. To illustrate the power of the spelling checker, let us assume that the driver wants to spell the street name BARBARA STREET. Due to mis-recognition, the computer hears DKRVJRK STREET. When scoring is applied, however, the rhyming letters D, V, B and A, J, K give BARBARA STREET the highest score and so BARBARA STREET is chosen as the most likely street name. The correctness of this process has been verified many times in trial runs using prototype software and hardware. Creating Speech Output Records Digitized voice records are stored on the optical disc preferably in a highly compressed form using a Mu Law compression technique to achieve a compression of 64 Kbits/sec. It is anticipated that an enhanced LPC encoding technique may be used to achieve a compression of 13 Kbits/s while keeping the voice quality high. The voice records are created at a work station, such as an IBM PC compatible computer using the program of Appendix C, where an actor or actress speaks the street names and the guidance words, such as "TURN LEFT ON", in his or her natural voice. The words are digitized, compressed and saved in a data base which is eventually placed on the optical disk. By compressing the speech, the time to retrieve the word from the disk becomes smaller and the amount of RAM memory required for buffering is smaller, thus saving the cost of additional RAM memory. This method is superior to voice synthesis and gives a natural, non-robotic sound. Since the optical disk contains sufficient space for digitized voice records, it is a cost effective way of implementing voice output. Disk Input functions The map data base and the compressed digitized voice records are stored on the optical disk (not shown) . Additionally, to allow software updates, the software for both the Digital Signal Processor (4) and the Navigation Processor (9) are also stored on the disk. Both processors have minimal bootstrap programs stored in their respective on-chip or external ROMs (6 and 10) - just enough to allow the software stored on the optical disk to be loaded into the RAMs (7 and 12) . In order to read any particular sector on the disk, a signal is first sent to the Track Control Servo (15) via Switch S2 to open the tracking servo loop. Next, a slewing signal is sent to command the LASER Pickup (16) to move inward or outward. As the head moves past tracks on the disc, the servo loop generates a saw tooth shaped error function with a frequency which corresponds exactly to the rate at which track jumping is occurring. By counting saw tooth waves, the Digital Signal Processor (4) knows approximately on which track the read head is located. When the read head is positioned near or past the required track, the Digital Signal Processor (4) closes the servo loop, allowing the LASER Pickup (16) to acquire data and pass it on to the Signal Processor (18) for de-interleaving and error correction. The error corrected output from the Signal Processor is a serial pulse train of 16 bit words. This output is routed to the Digital Signal Processor (4) via Switch SI to be converted from serial pulses to 16 bit words. If the data being read is map data, it is stored in FIFO (8) for use by the Navigation Processor (9) . If the data being read are digitized voice records, the Digital Signal Processor (4) may store them in its own RAM (7) to be decompressed and output as described earlier or in RAM 17. When Switches SI and S2 are UP, the system is in the music mode and neither processor is active. Speech Output functions When the computer needs to speak to the operator, the Navigation Processor (9) using primarily modules A2 and A6, places into the FIFO (9) a list of pointers (optical disk sector numbers) to the compressed, digitized words to be spoken. The Digital Signal Processor (4) retrieves the list from the FIFO (9) , seeks to the correct sector number and reads the compressed records from the disc into RAM (7) . Then it decompresses the records and clocks the speech output data to the compact disk player's Serial Analog To Digital Convertor (21) via Switch SI. The output from the DAC is amplified by the left and right Audio Amplifiers (60 and 62) and sent to a pair of speakers or headphones. Traffic Avoidance functions In the very near future, when private, as well as State and Federal, agencies begin to broadcast digitized traffic information over reserved FM sidebands, this invention will be able to utilize updated highway speed information in calculating optimum routes. This gives the driver another use for the device, that of traffic avoidance. To achieve traffic avoidance, the Navigation Processor (9) sends a signal to tune the FM Receiver (14) to the traffic avoidance frequency. The FM receiver's output is demodulated by the DEMOD (12) and the digitized highway speed information is input by the Navigation Processor (9). If, during a trip, the computer finds that one of the highways to be used on the trip has become congested, the following actions can be performed: 1. The broadcast facility will broadcast information regarding "incidents" along the major highways which are causing traffic delays. The incident information will consist of speed codes and the identity of the sections of the highway which are affected by such incidents. 2. The navigator will modify the portion of the data base containing speeds of those sections of the highway affected by traffic and then will calculate the best route from source to destination. 3. The navigator will then examine the route. At each point along the calculated route where a traffic slowdown has occurred, the navigator will save the route up to a point just prior to the slowdown and then recalculate the route from that point forward. The recalculation may take the driver off the highway for a time. The combined route after all such recalculations is the optimum route. Map data base description The map data base is stored on the optical disk. The data base contains the following elements: Names list - a file of street names and pointers to corresponding digitized voice records. It is used for voice output of street names. Street index - a file of street name numbers, grid numbers, and address ranges. It is used to find the grids surrounding the operator's source and destination addresses. Level 1 grids - a file of street segments contained in the level 1 map grids. Level 1 grids are the most detailed and contain segments and linkages for (a) local streets, (b) major streets, (c) on-off ramps, (d) highway interchanges and (e) highways. Level 1 grids are about 1 X 1 mile in size. Four level one grids surrounding the source and destination points are read into RAM (12) prior to the route finding process. eϋe-l 2 gri-i£ - a file of street segments contained in the level 2 map grids. Level 2 grids are less detailed and contains segments and linkages for (a) major streets, (b) on-off ramps, (c) highway interchanges and (d) highways; local streets are omitted. Level 2 grids are about 6 X 6 miles in size. Four level 2 grids surrounding the source and destination points are read into RAM (12) prior to the route finding process. Level 3 grid - a file of street segments contained in the level 3 map grid. The level 3 grid has still less detail and contains segments and linkages for (a) on-off ramps, (b) highway interchanges and (c) highways. There is only one level 3 grid and it encompasses one or more counties. Level 4 grid - a file of street segments contained in the level 4 map grid. The level 4 grid is the least detailed and contains segments and linkages for (a) highway interchanges and (b) highways. There is only one level 4 grid and it covers the a very large area, for example. Northern California. Level 4 is only used for routing from city to city over the highway system. For data bases which cover a relatively small area, such as a single city, a single level grid may be used. Voice data base description The voice data base is a file of compressed voice records. The record lengths are variable and contain digitized street names and guidance phrases, such as "BEAR LEFT ONTO...", or "TURN RIGHT ON..". They are formed by an actress speaking the words into a microphone at a work station which compresses the records and plays them back for editing. Routing Algorithm The routing algorithm utilized in this system is based on the A* path finding algorithm described by Peter Hart et al., "A Formal Basis for the Heuristic Determination of Minimum Cost Paths", IEEE Transactions System Science and Cybernetics, Vol. SS- 4, No. 2, July, 1968. This path finding algorithm, also called a "Dynamic Programming" algorithm, has the advantage over other types of search algorithms in that it locates the best path without having to search all possible paths. An example of such an A* algorithm is given in module Al. Various routing algorithm including the A* are discussed in the book "Artificial Intelligence" by Pattrick Henry Winston, pages 89-120. In tailoring the A* algorithm for this navigator, a modification was performed. That is, travel time was optimized rather than travel distance. This was done by incorporating street speed codes into the data base. It is appreciated that the search can be conducted from arc center to arc center, rather than from node to node (nodes are points where two or more arcs intersect) . It is believed that it takes less memory to store a network of arcs, and that it is easier to incorporate turn restrictions into the data base. The implementation of the A* algorithm of module Al differs from the usual implementation with regard to the data base layout. In order to understand the difference, some terms must first be defined. A digitized road map data base, called a GRAPH, consists of a list of straight line segments called ARCS, which represent the streets. Curved streets are broken into a series of straight line arcs in order to approximate the curve. The point at which two or more arcs intersect is called a NODE. A common example is the intersection of two streets in which four arcs meet at a central node. Figure 8 shows an example of a graph containing 12 nodes and 17 arcs. In the usual implementation, all the NODE information is placed in a NODE list and all the ARC information is placed in an ARC list. As a minimum, each node in the NODE list contains the node's x, y coordinates, points to each adjacent node, and pointers to the intervening arcs. Each arc in the ARC list contains the arc name (or a pointer to the name) and the COST (i.e., time or distance) of traveling along the arc. Using the graph above, the list elements for node 6 and arc i would look like this: NODE List element for node 6: X coordinate Y coordinate Pointer to node 5 Pointer to node 2 Pointer to node 7 Pointer to node 10 Pointer to arc h Pointer to arc e Pointer to arc i Pointer to arc 1 ARC List element for arc i: Pointer to name of arc i Travel time along arc i Once the data base is placed into the above format, the A* algorithm uses the pointers to compute that Node-To-Node Path which minimizes the cost of getting from a starting node to an ending node. In the above example, the A* algorithm might compute that least cost or shortest path from node 6 to node 3 would be path 6-7-3 in which the cost is sum of the distances of arcs i and f. The drawback to the usual node/arc representation comes when turn restrictions are in effect. For example, the left turn from arc i onto arc f may be illegal. The data base as given thus may not contain sufficient information to prevent the A* algorithm from choosing a path that violates this turn restriction. Therefore, a different layout of the data base has been chosen which accommodates itself more easily to turn restrictions as well as to one way street restrictions. In the illustrated embodiment, the NODE list is eliminated. Instead, all the arcs are placed in a single list containing both the arc definitions and pointers to adjacent arcs. If a turn from one arc onto another is illegal, then the pointer to that adjacent arc is simply removed from the list or not included in the first place. As an example, a similar case, containing 17 arcs is shown in Figure 9. However, in this example, only the arcs are shown. Using the graph of Figure 9, the list element for arc I would look like this: ARC List element for arc I: Pointer to name of arc I Travel time along arc I X coordinate of center of arc I Y coordinate of center of arc I Pointer to arc H Pointer to arc E Pointer to arc L Pointer to arc L Pointer to arc J Pointer to arc F (delete to prevent turn) Pointer to arc M Note, to prevent a turn from arc I to arc F, the pointer to arc F is simply deleted. Once the data base is placed into the above format, the A* algorithm uses the pointers to compute that ARC-TO-ARC Path which minimizes the cost of getting from a starting arc to an ending arc. In the above example, since the turn from arc I to F has been deleted, the A* algorithm might compute that least cost or shortest path from arc I to arc F would be path I-J-G-C-F which is a long, but legal path. Note that the ARC data base layout uses 6 pointers instead of 8, thereby effecting a memory saving as well. Also, if the optimization feature of this A* algorithm is too restricted resulting in failure to compute a solution, the less optimized branch and bound search may be used as set forth in module A10. Alternate Routes function To aid the driver in obtaining alternate routes when a road blockage or some turn restriction occurs, the capability is given the driver to negate the last instruction given by the computer in order to demand an alternate route. When the driver discovers that a turn can't be made, he says to the computer via the Microphone (1) "NO TURN" or "ONE WAY" or "LOST" as the case may be. If the driver says "NO TURN", the computer breaks the arc linkage which connects the street he is on with the street he says he can't turn onto and re-calculates the route to the destination from his current position. If the driver says "ONE-WAY", the computer will mark the entire connected street in memory as one-way and re-calculates the route. If the driver says "LOST", the computer will ask him for his current location and will calculate the best route to his destination. Address Matching function To begin the navigation function, the computer as set forth in module A4 requests the driver to enter his starting and ending address, either as a street address or as the intersections of two streets. If an ambiguity occurs, the driver may be asked to enter the city name as well. The street index in the map data base is used to locate the grids surrounding the address or street intersection specified by the user. These are the grids to be read into the RAM (12) for routing. DIALOGUE WITH DRIVER This section deals with the interface between the driver and the computer to accomplish navigation. The following are examples of the dialogue - capital letters in quotes are used for the computer's responses, lower case letters in quotes for the driver's responses: Dialogue When Training The Voice COMPUTER: "SAY THE LETTERS OF THE ALPHABET, A TO Z" driver: "a, b, c..." COMPUTER: "SAY THE LETTERS A TO Z AGAIN" driver: c-- f * t C • • • COMPUTER: "SAY THE LETTERS A TO Z ONE LAST TIME" driver: *-* / O / C• • • COMPUTER: "SAY THE NUMBERS, ZERO TO NINE driver: "0, 1, 2 , 3..." COMPUTER: "SAY THE NUMBERS ZERO TO NINE AGAIN" driver: "0, 1, 2, 3..." COMPUTER: "SAY THE NUMBERS ZERO TO NINE ONE LAST TIME" driver: COMPUTER: "SAY THE WORD BLANK" driver: "blank" COMPUTER: "SAY THE WORD YES" driver: "yes" COMPUTER: "SAY THE WORD NO" driver: "no" COMPUTER: "SAY THE WORD NEXT" driver: "next" COMPUTER: "SAY THE WORD PREVIOUS" driver: "previous" COMPUTER: "SAY THE WORD REPEAT" driver: "repeat" COMPUTER: "SAY THE WORDS NO-TURN" driver: "no-turn" COMPUTER: "SAY THE WORDS ONE-WAY" driver: "one way" COMPUTER: "SAY THE WORD LOST" driver: "lost" COMPUTER: "SAY THE WORDS CROSS STREET" driver: "cross street" Dialogue For Entering Source And Destination COMPUTER: "YOUR NAVIGATOR IS READY" driver: "navigator" COMPUTER: "PLEASE SPELL THE STREET NAME OF YOUR STARTING POINT" driver: "m-a-i-n enter" COMPUTER: "PLEASE SAY THE STREET NUMBER" driver: "cross street" COMPUTER: "PLEASE SPELL THE NAME OF THE NEAREST CROSS STREET" driver: "f-i-r-s-t enter" COMPUTER: "LOCATING THE ADDRESS" (short delay while computer locates the starting address) COMPUTER: "PLEASE SPELL THE STREET NAME OF YOUR ENDING POINT" driver: "o-a-k enter" COMPUTER: "PLEASE SAY THE STREET NUMBER" driver: "4-3-4-2 enter" COMPUTER: "LOCATING THE ADDRESS" (short delay) COMPUTER: "PLEASE SPELL THE CITY NAME OF YOUR ENDING POINT" driver: "s-h-e-r-m-a-n space o-a-k-s" Dialogue for getting the next or previous instruction: COMPUTER: "YOUR TRIP FROM MAIN STREET TO OAK AVE WILL TAKE 34 MINUTES. YOUR TRIP DISTANCE WILL BE 12.4 MILES SAY NEXT, REPEAT OR PREVIOUS FOR INSTRUCTIONS driver: "next" COMPUTER: "PROCEED SOUTH ON MAIN STREET 5 BLOCKS" "STREET NUMBERS WILL BE DECREASING" "BEAR RIGHT ON DIXIE STREET" driver: "next" COMPUTER: "PROCEED WEST ON DIXIE STREET 2.4 MILES" "MAKE A HARD LEFT ONTO GROVE AVE" driver: "repeat" COMPUTER: "PROCEED WEST ON DIXIE STREET 2.4 MILES" "MAKE A HARD LEFT ONTO GROVE AVE" driver: "next" COMPUTER: "PROCEED EAST ON OAK AVENUE 7 BLOCKS" "YOU WILL BE AT YOUR DESTINATION" COMPUTER: "DO YOU WANT TO LOG YOUR TRIP AS A BUSINESS TRIP?" driver: "yes" Dialogue When Driver Can't Make Suggested Turn COMPUTER: "PROCEED SOUTH EAST ON HAMILTON AVE 1.6 MILES" COMPUTER: "MAKE A HARD LEFT ONTO JEFFERSON AVE" driver: "no turn" COMPUTER: "COMPUTING ALTERNATE ROUTE" COMPUTER: "PROCEED SOUTH EAST ON HAMILTON AVE A BLOCK OR LESS" COMPUTER: "TURN LEFT ON OXNARD STREET" driver: "one way" COMPUTER: "COMPUTING ALTERNATE ROUTE" COMPUTER: "PROCEED SOUTH EAST ON HAMILTON AVE 2 BLOCKS" COMPUTER: "TURN LEFT ON SOUTH STREET" driver: "lost" COMPUTER: "PLEASE SPELL THE STREET NAME OF YOUR CURRENT LOCATION" driver: "2-n-d enter" COMPUTER: "PLEASE SAY THE STREET NUMBER" driver: "1-3-4 enter" Navigation System Using Audio CD Player In accordance with the present invention, at least the database containing map data and routing, or navigation, information, but preferably also the software, or programming, for controlling the navigator, are stored on a CD in audio CD format, so that an ordinary audio CD player can be used to play the navigator CD and transfer data and programming from the CD to the navigator data processing components. Thus, according to the present invention, an audio CD player is operated to perform second function as the data and program storage component for the navigation system. Compared to other navigation systems which require a separate CD ROM drive for the data storage medium, the use of an audio CD player for this purpose enables the amount of hardware which must be installed in a vehicle for navigation purposes to be minimized. The practical advantages of such dual use of an audio CD player are enhanced by the fact that music reproduction devices of this type are becoming increasingly common in vehicles. It has been found that a number of presently available audio CD player brands can be easily adapted for use in a navigation system according to the invention. The use of an audio format CD player for this purpose has been proposed in the literature. Such a proposal appears, for example, in Thoone et al, Application of the Compact Disc in Car Information and Navigation Systems, SAE Technical Paper Series, Pub. 840156, pages 105-111 (1984) . This article does not purport to describe an actual, operating system and does not discuss the manner in which the CD player would be controlled during navigator operation. Despite the possibilities discussed in the above- cited SAE paper, workers involved with the design of navigators appear to be of the opinion that audio disc error rates are simply too high for navigator use and have turned away from the use of audio format CDs as a navigator system storage medium. Even companies that manufacture both audio CD players and navigators have not proposed such a use for their audio CD players. Audio CD players do a good job of correcting errors, even errors due to minor scratches on the CD surface. But to make sure that the navigator can function even with a badly scratched disc, all information is stored twice on the disc and a checksum is stored with each sector. When a checksum error is detected for a given sector, the other sector containing the same information is read from the disc. In general, the second copy is diametrically opposite the damaged copy so that a scratch in one copy is unlikely to affect the other copy and therefore the probability of encountering an error in both sectors is very small. While this technique reduces the data storage capacity by one-half, it is still possible to store on a single CD all of the data and software required for navigation over a large area while experiencing an error rate that will impact on only one route in 200 for the poorest quality CDs and only one route in 200,000 if a slightly better quality CD is employed. The CD may additionally contain digitized speech information and/or synthesized speech data that may be converted to analog form and reproduced via the CD player audio power amplifier and speakers. The present invention is based on the realization that an audio CD player can easily be modified to be operated as a navigator system component and that, at least with the type of navigator disclosed herein, the error rates typical of ordinary audio CDs can be made low enough not to interfere with satisfactory navigator operation. To use an audio CD player in a navigation system, it is only necessary that (1) the navigator be provided with the CD player's digital audio output signal, (2) the navigator be provided with a means to control the CD player's laser head position, and (3) the navigator be provided with a means to output navigator speech instead of music. There are players on the market which can fulfill each of the above reguirements with few or no modifications. One such system is shown in Figure 10 and is exemplified by a Clarion 2060 compact disc changer under the control of a Clarion 3680RC controller. The two units are connected by means of a cable that constitutes a serial bus for conducting changer control signals, a changer select signal, audio signals and power. Using the controller, the user can select the music source to be a built-in tape player, a radio tuner or any one of the compact discs stored in the changer. Whenever the user selects the tuner or tape player or powers down the control unit, the changer select signal is set low. Otherwise, when the user selects the CD changer as a music source, the changer select signal is set high. The exemplary changer also sends its digital audio signal out to a fiber optic connector. This system accommodates itself for use with an audio navigator without any alteration in either the controller or the CD changer unit. As shown in Figure 11, the invention may be implemented by simply inserting the navigator between the two units. The navigator is connected to receive power, changer control signals and the changer select signal from the controller and receives the digital audio output signal and the compact disc's audio output (music output) from the changer. The navigator contains two relays. The first relay, Kl, is connected in series in the serial bus line normally serving to conduct music signals and is used to select either speech or music for output to the controller while the second relay, K2, is connected in series in the serial bus line normally serving to conduct changer control signals and is used to select either the navigator or the controller as the source of data and clock signals which control the changer. The relay terminals marked "speech output" and "nav. changer control" are connected to appropriate outputs in the navigator. In use, the navigator performs the following functions: 1. The navigator continually monitors the changer select line. If the select line signal is low, indicating that the user has switched off power or is listening to the tuner or tape player, the navigator "pauses" and will do neither speech input nor speech output. If the line is high, then it allows speech input and output to occur. 2. The navigator continuously "listens" to the digital audio output signal. When it detects a sequential series of valid sectors, identified by data patterns unique to a navigator disc, it knows that the user has switched to a navigation disc and therefore it closes relay Kl which changes the audio source from the CD player to the navigator's speech output circuits. If the navigator loses the sequential series of valid sectors, it knows that the user has switched back to a music disc and therefore opens relay Kl, reconnecting the left and right channel audio music signal to the control unit so that the user will once again hear compact disc music. 3. If a navigation disc is mounted for play and if the navigator needs to read data from the disc, it takes over the control of the changer by closing relay K2 so that the changer obtains its data and clock signals from the navigator instead of the controller. In this state, the navigator can cause the changer to switch discs and/or to position the laser head to specific places on the disc so that specific files required for navigation can be read in from the optical disc. 4. To wake up the navigator, the user says a word such as "navigator". The navigator reads a data file from the optical disc which contains digitized speech which says, "DO YOU WANT TO NAVIGATE?" This file is converted into an analog speech signal by the navigator's Digital Signal Processor and sent to the control unit through relay Kl. The user hears the phrase "DO YOU WANT TO NAVIGATE?" coming from his loudspeakers. He can reply, "Yes," by speaking into the navigator's microphone, in which case, the navigator continues to load files into memory which it needs for the navigation process. If he says, "No," the navigator opens relay Kl to give up changer control and then goes dormant. 5. After the navigator has computed a route and stored it in memory, it no longer needs to read the optical disc. The user can then switch to a music disc if he wishes. He can then toggle between listening to compact disc music and obtaining driving instructions by saying words such as "music" or "navigator" respectively. If the navigator hears the word "music," it opens relay Kl so that compact disc music can be heard. There are other systems which require only minor modifications to become navigator compatible. One such system is the JVC KD-MK70 changer and the DS-TR75 control receiver which was modified as follows: 1. The digital audio signal was brought out through a coax cable to the navigator. 2. A new command was programmed into the changer which allowed the navigator to position the laser head to any absolute playing time on the disc to an accuracy of 1/75 second. Other controller/navigator/changer configurations can be accommodated. In some systems, it could be advantageous for the navigator to remain a "slave" on the bus and to ask the control unit to issue laser head positioning commands to the changer. This would require reprogramming of the control unit as well as the changer but could allow the control unit to display the actions it is taking on the front panel display in order to give some visual feedback to the user. This has been done with an Alpine unit (TDA- 7537 or TDA-7539 head unit and a CHA-S605 changer) which is successfully undergoing field tests. It is also possible to accommodate a compact disc player installed in a dashboard to a navigator. These units can receive only a single CD which can be used for either navigation or music, but not both. These units are not as versatile because the user must manually eject a navigator disc to play music or eject the music disc to navigate. However, the price is several hundred dollars lower, and so these are viable products. To accommodate an audio navigator, it is only necessary to supply the navigator with (1) the digital audio output (2) a means of controlling the laser head position and (3) a means of replacing music with speech output. A Kenwood unit (KDC-8003) has been modified in this way and is successfully undergoing field trials. Another unit which has been tested is a modified Eclipse ECD-412 unit. Figure 12 shows the details of a navigation system utilizing a CD audio changer, a navigator and a compact disc controller. In the changer (usually stored in the trunk of the car) , vertical focus control of the laser pickup 33 is performed by the focus servo system 31 while horizontal control of the laser head is performed by the track control processor 32. The signal processor 34 is responsible for demodulating the signal from the laser head and correcting it for errors. The RAM 36 is used by the signal processor to de-interleave the signal as part of the error correction scheme. Music is generated by means of a serial Digital To Analog converter 35 and output amplifier 37. One of the signals available from the Signal Processor 34 is the digital audio output. This signal is usually formatted according to the CP-340 standard for digital audio output. In the navigator, the navigation control processor 39 inputs the digital audio signal by means of a CP-340 receiver (not shown) and checks the signal for sequential sectors having valid checksums. If found, the navigation control processor closes the audio control relay 42 so as to replace music coming from the changer with speech stored on the compact disc in compressed form and re-generated by the digital signal processor 40. The navigation control processor also closes bus control relay 38 so as to replace bus commands which normally come from the CD controller with its own bus control commands. Thus, the navigation control processor has the ability to command the changer to any specific place on the compact disc so as to read specific data files stored on the disc. The microphone input allows the digital signal processor 42 to recognize commands given by the user for control of the navigation processor. Once the navigation processor calculates a route and stores the route and associated speech data for "explicating" the route, the navigation processor no longer needs the compact disc. This allows the user, via the microphone 41, to switch between music and navigation speech output by means of voice control. The navigator currently uses the trained word "MUSIC" to detect the fact that the user wants to listen to a music compact disc while navigating at the same time. The navigator monitors the changer select line to see if the user has powered down the controller or has switched to the tuner or tape player. If he has done so, the navigator suppresses all speech recognition and speech output because the user cannot hear speech output and therefore should not speak to the navigator. In the CD controller, which may be mounted in the car's dashboard, the user can push buttons on the front panel 45 in order to control the music and navigation functions. The button actuations are detected by microprocessor 44. The user can select, via the audio select 47, the music source to come from the built in tape unit 46 or the built in AM/FM tuner 48 or the CD player. If the compact disc is chosen as the music source, the user can then push other buttons to command the player via bus commands 43 to select the navigation disc or to select one of the music discs stored in the changer. He can also use buttons to skip to specific songs on the compact disc. These bus commands are intercepted by the navigation control processor 39 and the bus control relay 38 which may interpose its own commands for head positioning. The invention described above is, of course, susceptible to many variations, modifications and changes, all of which are within the skill of the art. In should be understood that all such variations, modifications and changes are within the spirit and scope of the invention and of the appended claims. Similarly, it will be understood that Applicant intends to cover and claim all changes, modifications and variations of the example of the preferred embodiment of the invention herein disclosed for the purpose of illustration which do not constitute departures from the spirit and scope of the present invention.

Claims: 40 WHAT IS CLAIMED IS: 1. In a navigation system which includes data storage means for storing a database containing map data and navigation information, means for storing software for controlling the system and effecting route selection in cooperation with the database, and a navigator processor connected for operating the navigation system under control of the software, the improvement wherein said data storage means comprise: an audio CD player having a read head and means for positioning said read head in response to positioning signals from said processor; and a CD storing the database in an audio format, said CD being playable by said player. 2. A system as defined in claim 1 wherein said means for positioning said read head comprise a CD player processor and a serial bus connected to said CD player processor for receiving positioning signals from said navigator processor. 3. A system as defined in claim 2 wherein said CD player processor is programmed to permit said read head to be positioned by signals from said navigator processor. 4. A system as defined in claim 3 wherein said CD further constitutes said means for storing the software. 5. A system as defined in claim 4 further comprising means for producing audible spoken statements under control of speech signals, and wherein said CD further stores the speech signals. 6. A system as defined in claim 1 wherein said CD further constitutes said means for storing the software. 7. A system as defined in claim 1 further comprising means for producing audible spoken statements under control of speech signals, and wherein said CD further stores the speech signals. 8. In a navigation system which includes a data storage device for storing a database containing map data and navigation information, a storage medium for storing software for controlling the system and effecting route selection in cooperation with the database, and a navigator processor connected for operating the navigation system under control of the software, the improvement wherein said data storage device comprises: an audio CD player having a read head and means for positioning said read head in response to positioning signals from said processor; and a CD storing the database in an audio format, said CD being playable by said player.

Inventors: DILLER ROBERT W, LARUE CHARLES, DILLER, ROBERT, W., LARUE, CHARLES
Applicants: AUDIO NAVIGATION SYSTEMS LLC, AUDIO NAVIGATION SYSTEMS, LLC
Application year: 1996
Main classification: G06F17
IPC codes: G01C21, G08G1, G11B31