CROSS-REFERENCE TO RELATED APPLICATIONS
The present application is related to a communication of an application entitled “System and Method for Aggregating Information to Determine Users' Location,” Ser. No. 09/773,194, filed Jan. 31, 2001, assigned to the assignee of the present application, and herein incorporated by reference.
- BACKGROUND OF THE INVENTION
The present invention relates generally to information handling systems and more particularly to methods and systems that aggregate information to determine a user's location.
Mobile, wireless electronic devices such as mobile telephones, personal digital assistants, and Global Positioning System (GPS) devices, have become very popular, and their use has become very common. It is common for one person to use two or more of these devices. These mobile device are a subset of a group of devices that are sometimes called “pervasive computing” devices. The term “pervasive computing” is used because systems with microprocessors are now found in any array of devices that previously were largely untouched by a computer technology. These pervasive computing devices include mobile devices such as cell phones and automobile components. Pervasive comprising devices often include a microprocessor and associated volatile and non-volatile memory, input means, output means, and interfaces, such as a network interface or modem, providing a link to other computing devices.
These pervasive computing devices are information handling systems, designated to give independent computing power to a single user, or a group of users in the case of networked pervasive computing devices. Pervasive computing devices may also include one or more input/output devices which are coupled to the microprocessor and which perform specialized functions (e.g. modems, sound and video devices, or specialized communication devices). Pervasive computing devices are often linked to computing systems and other pervasive computing devices using a network, such as a local area network (LAN), wide area network (WAN), or the Internet.
Satellite-based or network-based positioning technologies make it possible to determine the geographic location of mobile pervasive computing devices (e.g. location-based services for users of mobile telephones use such positioning technologies). One problem is that location information from one source may be inconsistent with information from another source. For example, a husband and wife may share a tracking device that is embedded in their car. in addition, the husband may have a location-aware mobile phone. The wife may use a car to drive to the wife's office, after giving the husband the ride to his office. Then information from the mobile phone, indicating that the husband is at his office, will be inconsistent with information from the tracking device in the car, indicating that the husband is at the wife's office.
Such an inconsistency could cause significant practical problems. To continue the example, the husband's employer may use location information from employees mobile electronic devices to determine the employees' location. The system would help the employer make good decisions about dispatching employees to make sales calls or service calls. However, this system could be defeated when information from one source indicates that the husband is at his office, and information from another source indicates that the husband is at the wife's office.
- SUMMARY OF THE INVENTION
The inconsistency would be difficult to resolve, without additional information about the people involved, their schedules, and how they are associated with various mobile devices. To make the best use of these positioning technologies, it would be important to make use of all available information, from multiple sources, to determine users' locations. Thus there is a need for methods and systems that acquire, aggregate, and evaluate location information for multiple sources. There is a need for methods and systems that go beyond just locating a mobile device, to also include information about people, their schedules, and their various devices.
The present invention is a system and method that acquires and aggregates information, organized by user, to determine a user's location. If properly handled, such location information can be very useful. One example, dispatching employees to make sales calls or sevice calls, was mentioned above. The goal of the present invention is to allow users to collect and evaluate information from multiple sources, and this make proper use of all available location information.
Without such a method or system, positioning technologies cannot properly handle multiple location sources for a single user, or a single location source shared by multiple users. Without such a method or system, users would be left with the above-mentioned problem of location information from one source being inconsistent with information from another source.
The solution is to make proper use of all available location information, by first collecting and then evaluating information from multiple sources. Information from some sources generally would be more reliable than others. For example, information from a device that is not shared may be more reliable than information from a device that is shared by more than one user. Information from a device that recently changed position may be more reliable than information from a device that has not recently changed position.
Instead of merely locating a mobile device, the present invention locates people, i.e. users who may have more than one mobile device, and perhaps computerized calendars that indicate a person's expected location. The electronic sources of location data (hereinafter referred to as “location sources”) for the present invention include mobile electronic devices such as mobile telephones, personal computing devices. Location sources also include computer-based models, schedules or calendars that give a person's expected location depending on the date and time. These models, schedules or calendars may be stored on personal digital assistants, desk-top computers, or servers, for example.
After location information is acquired from location sources, a user who is tracking the locations of other users might evaluate the collected location information himself or herself, or evaluation could be automated. In a fully automated system, a computer would perform ranking or filtering operations on the data before providing the information to the user.
One aspect of the present invention is a method for aggregation information to determine a user's location. Another aspect of the present invention is a system for executing the method of the present invention. A third aspect of the present invention is as a set of instructions on a computer-usable medium, or resident in a computer system, for executing the method of the present invention.
BRIEF DESCRIPTION OF THE FIGURES
This summary is not intended as a comprehensive description of the claimed subject matter but, rather, is intended to provide a brief overview of some of the functionality associated therewith. Other systems, methods, functionality, features and advantages of the invention will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description.
A better understanding of the present invention can be obtained when the following detailed description is considered in conjunction with the following drawings. The use of the same reference symbols in different drawings indicates similar or identical items.
FIG. 1 is an exemplary block diagram of location data being delivered over a computer network with an information handling system, according to the teachings of the present invention;
FIG. 2 is a high-level block diagram illustrating selected components that may be included in the exemplary information handling system of FIG. 1;
FIG. 3 is a high-level block diagram illustrating an example of a system for acquiring, aggregating, and evaluating location information, according to the teachings of the present invention;
FIG. 4 is a high-level based block diagram illustrating an example of a system for acquiring and aggregating location information, according to the teachings of the present invention;
FIG. 5 is a block diagram illustrating in greater detail selected components that may be included in the exemplary system of FIG. 4.
FIG. 6 is a flow chart illustrating one type of process for acquiring and aggregating location information, as implemented in an exemplary embodiment;
FIG. 7 is a flow chart illustrating another process, related to the type shown in FIG. 6, for acquiring and aggregating location information, as implemented in an exemplary embodiment.
DETAILED DESCRIPTION OF THE FIGURES
FIG. 8 is a sample Location XML document, according to the teachings of the present invention, showing location data from a two-way pager with GPS capability, as viewed with a browser.
The present invention is a system and method that acquires and aggregates location information. A user might evaluate the collected location information himself or herself, or evaluation could be automated. The present invention could be useful in any situation involving location information from multiple sources. One example, a system using collected location information for dispatching employees to make sales calls or service calls, is mentioned above. Another example would be a system to alert a first user that a second user of particular interest has arrived at a meeting site. Another example would be a system interacting via the World Wide Web with a user's hand-held computer, his computer-based calendar, his GPS unit, and a map service, to provide appropriate driving directions to his next meeting site. Another example would be a system interacting via the World Wide Web with a user's cell phone, and her computer-based calendar or to-do list, alerting a mobile user when she approaches a site where some business needs to be transacted. In these examples, information output could be audible or visible, by text or graphics.
In these examples, note that a user would be provided with useful information keyed to a user's actual location, and the user would not need to make a query. Also note the importance of using all available location information, from multiple sources, organized by user.
The following are definitions of terms used in the description of the present invention and in the claims. “Computer-usable medium” means any signal or transmission facility for communication with computers, and any kind of computer memory, such as floppy disks, hard disks, Random Access Memory (RAM), Read Only Memory (ROM), CD-ROM, flash ROM, non-volatile ROM, and non-volatile memory. “Location data” or “location information” means latitude and longitude, or any other descriptions of location “Location sources” or “Location sources” means any electronic source of location data. including mobile electronic devices such as mobile telephones, personal digital assistants, pagers, Global Positioning System (GPS) devices, servers associated with these mobile electronic devices, and computer-based models, schedules or calendars that give a person's expected location depending on the date and time. “Users” or “user” means any person utilizing location sources being tracked by the method or system of the present invention and any person tracking the locations other users.
System and Method
The present invention is not limited as to the type of computer on which it runs. Referring now to FIG. 1, an exemplary block diagram shows location data being delivered over a computer network with an information handling system, according to the teachings of the present invention. At the left side of FIG. 1, location information is acquired from location sources device 101, server 111, device 102, device 103, and device 104. Location data is delivered over a computer network 94 to information handling system 10. Within information handling system 10, location aggregator 20 acquires location data regarding a user, or more than one user, and creates collections of said location data regarding a user, or more than one user, organized by user. In this example, evaluation of the collected location information is automated. A logic component, location logician 30, performs evaluation (ranking, filtering, or consolidating operations) on the data before providing the information to a user through a subscriber application 40.
Referring now to FIG. 2, a high-level diagrams illustrates selected components that may be included in the exemplary information handling system 10 of FIG. 1. Information handling system 10 is controlled primarily by computer readable instructions, which may be in the form of software, wherever, or by whatever means such software is stored or accessed. Such software may be executed within the processor, also known as the Central Processing Unit (CPU) 50 to cause information handling system 10 to do work CPU 50 typically is a microprocessor of the kind available from Intel Corporation or Advanced Micro Devices, Inc.
Memory devices coupled to system bus 5 include Random Access Memory (RAM) 56, Read Only Memory (ROM) 58, and non-volatile memory 60. Such memories include circuitry that allows information to be stored and retrieved. ROMs contain stored data that cannot be modified. Data stored in RAM can be changed by CPU 50 or other hardware devices. Non-volatile memory is memory that does not lose data when power is removed from it. Non-volatile memories include ROM, EPROM, flash memory, or battery-pack CMOS RAM. As shown in FIG. 2 such battery-pack CMOS RAM may be used to store configuration information. An expansion card or board is a circuit board that adds functions or resources to the computer. Typically expansion cards add memory, disk-drive controllers 66, video support, parallel and serial ports, and internal modems. For laptop, palm top, and other portable computers, expansion cards usually take the form of PC cards, which are credit card-sized devices designed to plug into a slot in the side or back of a computer. Thus, empty slots 68 may be used to receive various types of expansion cards or PC cards. Disk controller 66 and diskette controller 70 both include special purpose integrated circuits and associated circuitry that direct and control reading from and writing to hard disk drive 72, and a floppy disk or diskette 74, respectively. Such disk controllers handle tasks such as positioning a read/write head. A single disk controller may be able to control more than one disk drive. CD-ROM controller 76 may be included in information handling system 10 for reading data from CD-ROM 78 (compact disk read only memory). Such CD-ROMs use laser optics rather than magnetic means for reading data.
Communication between information handling system 10 and other information handling systems may be facilitated by serial controller 88 and network adapter 90, both of which are coupled to system bus 5. Serial controller 88 is used to transmit information between computers, or between a computer and a peripheral devices, one bit at a time over a single line. As illustrated, such a serial interface may be used to communicate with modem 92. A modem is a communicator device that enables a computer to transmit information over a standard telephone line. Modems convert digital computer signals to analog signals suitable for communications over telephone lines. Modem 92 or network adapter 90 may provide a connection to sources of software and information, such as a server, an electronic bulletin board, the Internet or World Wide Web. Network adapter 90 is a communication device that may be used to connect information handling system 10 to a network 94. Network 94 may provide computer users with means of communicating and transferring software and information electronically. Additionally, network 94 may provide distributed processing, which involves several computers in the sharing of workloads or cooperative efforts in performing task.
Keyboard mouse controller 80 is provided in information handling system 10 for interfacing with keyboard 82 and pointing device 84, which may be implemented using a track ball, a joy stick, touch sensitive tablet or screen, or as illustrated, a mouse. The pointing device 84 may be used to move a pointer or cursor visible on display 96. Another example of an input device would be a pointer or cursor visible on display 96. Another example of an input device would be a microphone for audio input. It should be noted and recognized by those persons of ordinary skill in the art that display 96, keyboard 82, and pointing device 84 may each be implemented using any one of several known off-the-shelf components.
Display 96, which is controlled by display controller 98, is used to display visual output generated by information handling system 10. Display 96 includes a display screen which may be implemented using a cathode ray tube (CRT) a liquid crystal display (LCD) an electrode luminescent panel or the like. Display controller 98 includes electronic components required to generate a video signal that is sent to display 96. Printer 100 may be copied to information handling system 10 via parallel controller 102. Parallel controller 102 is used to send multiple data and control bits simultaneously over wires connected between system 5 and another parallel communication device, such as printer 100. Another example of an output device would be a speaker for audio output.
CPU 50 fetches, decodes, and executes instructions, and transfers information to and from other resources via the computer's main data-transfer path, system bus 5. Such a bus connects the components in an information handling system 10 and defines the medium for data exchange. System 5 connects together and allows for the exchange of data between memory units 56, 58 and 60. CPU 50, and other devices as shown in FIG. 2
Referring now to FIG. 3, a diagram is shown illustrating an example of a system for acquiring, aggregating, and evaluating location information, according to the teachings of the present invention. In the invention as currently implemented, the Java programming language was used, but other languages could be used. At the left side of FIG. 3, location information is acquired from a group of location sources 300, including location source 101, location source 102, and location source 103, in this example.
Output from location sources 300 could be in hypertext markup language (HTML), extensible markup language (XML), or some other language. In the invention as currently implemented, location information is acquired through a set of adapter servlets 310, including adapter 301 and adapter 302, in this example. These adapters convert location data from various location sources to a single format. In the invention as currently implemented, the single format was implemented in XML, named “Location XML” or “LocXML.” Location data also could be acquired directly, as form location source 103 in this example, Further description of adapters is given below, in connection with FIG. 4.
Location aggregator 20 acquires location data regarding a user, or more than one user, and creates collections of said location data regarding a user, or more than one user, organized by user. Collections of location data, shown as aggregated LocXML information 321, are sent to logician facade 320, which communicates with logic descriptions 330, logic bean factory 340, and logic implementation 350. These are described in more details below. These function to perform evaluation (ranking, filtering, or consolidating operations) on the data before providing the information to a user, by publishing new location list 322 to subscriber application 40. In another embodiment, some ranking or filtering could be performed by the location aggregator 20.
Regarding ranking, filtering, or consolidating operations, different kinds of logic functions could be chosen by a user and implemented as follows. Any logic function or process that is used for ranking, filtering, or consolidating location data is called a “logician” To “invoke” or “implement” a logician is to employ the logician for ranking, filtering, or consolidating certain location data. As a result of the API call GetLogicianTypes ( ) 331, logic descriptions 330 returns logician types 332. This represents choices being presented to a user. As a result of the API call GetLogician (logician) 341, logic bean factory 340 returns logician 342. This represents a user choosing a kind of logic function to implement. User preferences regarding logic functions could be stored in and retrieved from subscriber preferences database 390. As a result of API call logician invoke (LocationList) 351, logic implementation 350 returns newLocationList 352. This represents a chosen kind of logic function being implemented to rank, filter, or consolidate location data. (Logic implementation 350 corresponds with location logician 30 shown in the simplified diagram in FIG. 1.) By publishing new location list 322 to subscriber application 40, the system provides a user with location data that is ranked, filtered, or consolidated.
The system may rank items in a collection of location information, according to expected utility. A user who is tracking the locations of another user may be provided with location data such that a higher ranking is given to data from location sources that indicate more recent movement. This is an example of ranking data according to which location source moved more recently, and thus generated the most recent location update. In the invention as currently implemented, each Location XML entry has a time stamp, and collections of location data are sorted by time stamp. In another example of ranking, a user who is tracking the locations of another user may be provided with location data such that a higher ranking is given to data from location sources that are expected to be more accurate than the other location sources. Another option would give a higher ranking to data from location sources that are capable of more precise measurement.
To give an example of filtering data sudden small changes in reported location could be caused by random variation in location measurement, not actual movement. This is a type of noise that can be filtered out, by setting limits on which pieces of new location data are added to a collection of current location data. Thus the system may filter data to remove misleading data.
The present invention would be capable of consolidating location data found in a collection of location data, to determine the most likely location of a user. For example, a user may be provided with the most likely location of another user who is being tracked, as a result of the system determining a consensus location, based on data from more than one location source. A consensus location, indicated by data from any one location source taken alone.
Through feedback from users regarding actual location, and conventional artificial intelligence algorithms, the system could learn to improve its performance. The system could learn which location source, or combination of location sources, are most useful.
To continue with an example given above, an employer may use location information from employees mobile electronic devices to determine the employees location. This system would help the employer make good decisions about dispatching employees to make sales calls or service calls. The present invention would make such a system more useful. An employer could use the present invention as follows. Referring again to FIG. 3, logic descriptions 330 returns logician types 332. This represents choices being presented to a user, such as an employer. The choices may be presented in a menu, including “most-recently-moved,” “most precise,” and other options. Logic data factory 340 returns logician 342. This represents a user choosing a kind of logic function to implement. An employer may choose “most-recently-moved.” For this logician the rule could be stated this way: “rank data according to which location source moved more recently, and thus generated the most recent location update.” This is an example of ranking items in a collection of location information, according to expected utility.
To continue with an example given above, a husband and wife may share a tracking device that is embedded in the car. In addition, the husband may have a two-way pager with GPS capability. At mid-day, perhaps the shared car has not moved for a few hours, but the husband with his two-way pager has been moving frequently. The husband may have moved around the employer's plant, and then traveled in an employer-owned vehicle to call on a customer. The employer may track the husband. Logic implementation 350
returns newLocationList 352
. This represents a “most-recently-moved” logic function being implemented to rank location data. By publishing new location list 322
to subscriber application 40
, the system provides the employer with location data that is ranked. Location data from the husband's two-way pager would be at the top of the list, ranked above location data from the shared car that has not moved for a few hours. The list may appear as a list of entries like the example in FIG. 8
below. Subscriber application 40
could help the employer to interpret the location data by displaying a map, for example. Subscriber application 40
could display a simplified version of the location data, to suit a user's preferences. The following table is a simplified example of a collection of location data regarding a user, such as the husband in the preceding example.
|Location data for husband |
|Rank ||Location Source ||Location |
|1. ||Pager ||Latitude = N374820 Longitude = W1222738 |
|2. ||Car ||Latitude = N374822 Longitude = W1222740 |
Such a collection could include entries from additional location sources such as a calendar or cell phone.
FIG. 4 is a high-level block diagram illustrating an example of a system for acquiring and aggregating location information according to the teachings of the present invention. In this example, location aggregator 20 polls location sources GPS server 411, a maintain a carrier synchronized to its secondary fundamental voltage at a desired angle relative to such a voltage, and a method of determining the difference between the primary voltage and each cell's secondary voltage. Any methods of calculation now or hereafter known may be used.
In the methods described herein, although a master clock may be used to determine an initial offset value, the master clock need not be used when performing synchronization, as the system has determined a set phase relationship for each carrier signal to the fundamental. Thus, a synchronizing clock signal is not required after the initial offset is determined.
|<!--DTD for location information from mobile devices--> |
|<!ELEMENT LocationInformation (MobileDevice+)> |
|<!ELEMENT MobileDevice (Geographic+,TowerID?)> |
|<!ATTLIST MobileDevice TrackID CDATA #REQUIRED> |
|<!ATTLIST MobileDevice RequestTime CDATA #REQUIRED> |
|<!ATTLIST MobileDevice ErrorCode CDATA #REQUIRED> |
|<!ELEMENT Geographic (GeodeticDatum, HeightDatum, Region)> |
|<!ATTLIST Geographic Velocity CDATA #IMPLIED> |
|<!ATTLIST Geographic PositionTime CDATA #REQUIRED> |
|<!ELEMENT GeodeticDatum (WGS-84 | BESSEL-1841)> |
|<!ELEMENT WGS-84 (LatLong | UTM)> |
|<!ELEMENT LatLong EMPTY> |
|<!ATTLIST LatLong PositionFormat (IDMS0 | IDMS3) #REQUIRED> |
|<!ATTLIST LatLong Latitude CDATA #REQUIRED> |
|<!ATTLIST LatLong Longitude CDATA #REQUIRED> |
|<!ELEMENT UTM EMPTY> |
|<!ATTLIST UTM Positionformat (2 | 4) #REQUIRED> |
|<!ATTLIST UTM Easting CDATA #REQUIRED> |
|<!ATTLIST UTM Northing CDATA #REQUIRED> |
|<!ATTLIST UTM Zone CDATA #REQUIRED> |
|<!ATTLIST UTM ZoneDesignator CDATA #REQUIRED> |
|<!ELEMENT BESSEL-1841 (RTS-90)> |
|<!ELEMENT RTS-90 EMPTY> |
|<!ATTLIST RTS-90 PositionFormat (IDMS0 | IDMS3) #REQUIRED> |
|<!ATTLIST RTS-90 Latitude CDATA #REQUIRED> |
|<!ATTLIST RTS-90 Longitude CDATA #REQUIRED> |
|<!ELEMENT HeightDatum EMPTY> |
|<!ATTLIST HeightDatum HeightFormat (meters | yards) #REQUIRED> |
|<!ATTLIST HeightDatum HeightValue CDATA #REQUIRED> |
|<!ELEMENT Region EMPTY> |
|<!ATTLIST Region RadiusFormat (meters | yards) #REQUIRLD> |
|<!ATTLIST Region InnerRadius CDATA “0”> |
|<!ATTLIST Region OuterRadius CDATA “0”> |
|<!ATTLIST Region StartAngle CDATA “0”> |
|<!ATTLIST Region StopAngle CDATA “360”> |
|<!ATTLIST Region LevelOfConfidence CDATA “100”> |
|<!ELEMENT TowerID EMPTY> |
|<!ATTLIST TowerID PositionTime CDATA #REQUIRED> |
|<!ATTLIST TowerID Name CDATA #REQUIRED> |
|<!ATTLIST TowerID Type CDATA #REQUIRED> |
The controller may then pass 418 the carrier offset angle to the appropriate cell with a phase angle offset with respect to the fundamental line voltage that results in the carrier signal being interdigitated with other carrier signals delivered to other cells. The carrier offset angle may be delivered to the cell as a synchronization signal that represents the phase angle relationship between the input voltage (i.e., the source or transformer primary voltage) and the actual secondary voltage in each cell. The synchronization signal may be part of the PWM carrier, or it may be delivered as a separate signal. The cell then synchronizes 420 its carrier signal to the secondary signal using the offset angle that it receives from the controller.
FIG. 5 illustrates how multiple carrier signals 510, 520, 530, etc. for multiple cells may be interdigitated with each other in a synchronized manner to a reference signal 550, as reflected to the primary windings of the source transformer Each cell may have its own reference signal, and the reference signals for each cell will be similar but not necessarily the same. The carrier signal in each cell will determine when a switching command occurs within that cell. As shown in FIG. 5, since each carrier signal is phase-shifted from the carrier signals from the other cells by a predetermined amount (20), the effect of the switching commands for each cell as reflected to the primary of the transformer will be spaced out over a period of time based on the 2 0 value, or the spacing of the interdigitation. Thus, instead of all cells effectively implementing the same switching operation at the same time (which would cause a large harmonic disturbance), the effect of the switching operations at the primary of the transformer occur in rapid sequence based on the substantially even offset of the carrier signals. In addition, since the effective frequency of the carrier signals seen at the source transformer primary is relatively high (such as on the order of about fcĚN), the harmonics may be further smoothed, as the impedance of the source transformer itself may filter our some or all of the high-frequency harmonics.
In some embodiments, multiple drives may be connected to a single transformer or a group of transformers sharing a common primary voltage. In such a situation, multiple drives may have their carrier signals interdigitated by adjusting the drive carrier offset angle (2R) for each drive and setting each drive to the same carrier frequency.
In the embodiments provided herein, the interdigitation of the carrier signals may increase the frequency of the voltage harmonics and reduce the peaks of the voltage harmonics, which in turn may reduce current harmonics. For example, FIG. 6 illustrates an exemplary trace of one phase of voltage 610 and current 620 delivered to a load from a drive having twenty-one regenerative power cells using a source transformer rated for 7200 volts primary and 600 volts secondary. In the data shown in FIG. 6, although the source transformer had phase-shifted secondaries, carrier de-synchronization (i.e., the shifting of the carrier signals by an offset) was not performed, and both voltage and current harmonics are obvious in the traces. FIGS. 7 and 8 show traces of current 720 and voltage 810 on the same circuit after the application of carrier synchronization methods such as those described herein.
In some embodiments, interdigitation of the switching events may occur using known methods other than adjustment of a carrier signal. For example, if space vector modulation is used instead of sine triangle methods as described herein, the method still may include interdigitating the effective timing of switching events as reflected to the primary.
Still other embodiments will become readily apparent to those skilled in this art from reading the above-recited detailed description and drawings of certain exemplary embodiments. It should be understood that numerous variations, modifications, and additional embodiments are possible, and accordingly, all such variations, modifications, and embodiments are to be regarded as being within the spirit and scope of this application