Embodiments of the present invention relate to the field of networked electronic devices. Specifically, embodiments of the present invention relate to converting between different coordinate systems used by the networked electronic devices.
It is becoming increasingly useful to establish a network of electronic devices that know their coordinates in a common coordinate system. For example, the network of electronic devices can be used to assist navigation through a building. Assume a person desires to locate a printer in a building. The user can locate the printer by navigating through the building with a hand-held device that displays a map of the building with the user's current position highlighted.
To assist in the navigation, a network of electronic devices can be placed throughout the building with each device's coordinates being known by that device and/or a back-end computing system. A map of the building with coordinates is developed, such that portions of the map can be displayed on a hand-held electronic device if the coordinates of the hand-held device are known. As a person holding the electronic device navigates through the building, the hand-held electronic device communicates with the other electronic devices to obtain its coordinates, such that the user's position in the building is displayed on the electronic device.
For the above and other purposes, it is useful for each electronic device to know its coordinate in the building. The well-known global positioning system (GPS) is not well suited for use inside of a building. Therefore, another means must be used to establish the coordinates of the various electronic devices in the building. One conventional technique of establishing these coordinates is for a person to physically take measurements to determine a device's coordinate, which is then programmed into the electronic device and/or a back-end server. This technique is not only tedious but is error prone. Moreover, if the position of the electronic device is altered, its coordinate must be updated. For example, one of the electronic devices could be a computer system, printer, etc., which is free to be moved.
Some techniques for establishing coordinates for electronic devices provide for a number of local coordinate systems within a building. For example, a local coordinate system is developed for each room. The system might also have a back-end server that uses its own coordinate system. Thus, the various devices in the network need to be able to understand how another coordinate system relates to its own coordinate system. For example, the back-end server may need to understand the how each of the local coordinate systems relates to its coordinate system, or a device in one room may need to understand how a coordinate system used in another room relates to its own.
Thus, a challenge for establishing a coordinate system for a network of electronic devices is conveniently coordinating a number of coordinate systems. Further, some techniques for relating coordinate systems have tedious and error prone manual steps that must be taken.
In one embodiment of the present invention, a first set of coordinates for a plurality of locations in a symmetric environment is accessed. The first set of coordinates are defined by a position determining system disposed in the symmetric environment which uses a first coordinate system. A second set of coordinates for the plurality of locations in the symmetric environment are accessed. The second set of coordinates are defined by a second coordinate system. The first set of coordinates are correlated with the second set of coordinates. Then, at least one matrix is determined that is useable to convert a set of coordinates defined by the first coordinate system to a corresponding set of coordinates defined by the second coordinate system.
The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention:
In the following detailed description of embodiments of the present invention, converting between coordinate systems, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, embodiments of the present invention may be practiced without these specific details or by using alternative elements or methods. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention.
Some portions of the detailed descriptions that follow are presented in terms of procedures, steps, logic blocks, processing, and other symbolic representations of operations on data bits that can be performed on computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, computer executed step, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “accessing” or “correlating” or “establishing” or “repeating” or “communicating” or “basing” or “calculating” or “determining” or “selecting” or “matching” or “displaying” or “relating” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Embodiments of the present invention are applicable to converting between a first coordinate system and a second coordinate system. For convenience of explanation an example is provided in which the first coordinate system is referred to as a local coordinate system and the second coordinate system is referred to as a common coordinate system. For example,
A local coordinate system 150 may be a coordinate system that has already been developed for a single room 142 or other region of a building 145. For example, each room 142a-142d in the exemplary building 145 has its own local coordinate system 150a-150d. A local coordinate system 150 is defined by an origin and two axes, in this embodiment. However, in other embodiments, the local coordinate system 150 has either one or three axes. The axes may be at any orientation. Further, the origin of a local coordinate system (e.g., 150a) may be in any location and need not be in the room (e.g., 142a) for which the local coordinate system is typically used. It will be understood that multiple rooms 142 may use the same local coordinate system 150. Further, a single room 142 may have multiple local coordinate systems 150.
Still referring to
While
Embodiments of the present invention make use of a mobile electronic device that is able to communicate with other devices to determine its position in a local coordinate system. In
The exemplary mobile device 125 also has a processor 102 and computer readable memory 104 coupled to a bus 99. Embodiments of the present invention store software instructions on the computer readable medium 104, which when executed on the processor 102 implement embodiments in accordance with the present invention. For example, some or all of the steps of process 300 of
The mobile device 125 has an optional display, which may be used to depict a map of a room. The display is sensitive to a portion of the display being selected, in one embodiment, such that a location on a map depicted on the display may be identified. The mobile device 125 may also have an input device 108, such as, for example, a keypad. The mobile device 125 may also optionally have a communication interface 110, such as, for example, a serial data interface or a parallel data interface.
For convenience of explanation, embodiments of the present invention will be discussed with reference to a “landmark-based embodiment” and a “perimeter-based embodiment.” The term “landmark-based embodiment” refers to a method in which the local and/or common coordinates of a plurality of discreet locations or landmarks within a mapped environment are determined. Typically, the discreet locations have been previously defined with reference to the common coordinate system before being mapped using the local coordinate system. For example, determining the local and/or common coordinates of a door and four corners of a room may be defined as a landmark-based method in accordance with embodiments of the present invention. However, embodiments of the present invention are not limited to collecting the local and/or common coordinates of these locations alone.
The term “perimeter-based embodiment” refers to a method in which local and/or common coordinates of at least some locations of a mapped environment pertain to the shape of the environment being mapped. Again, some of these locations may be previously defined using the common coordinate system prior to being mapped by the local coordinate system. For example, a user could walk the perimeter of a room and collect measurements of the room perimeter using an electronic device. It is not required that the measurements are entirely continuous. For example, the user could collect local and/or common coordinates of portions of some or all of the walls of a room or collect the coordinates periodically (e.g., every second) while walking the perimeter of the room.
Embodiments of the present invention may be used to map a non-symmetric environment, or a symmetric environment. Due to its shape, a symmetric environment (e.g., a square room, a round room, etc.) does not necessarily imply the orientation of the symmetric environment with reference to the building as a whole. For example, a round room does not readily imply its orientation to a building based upon the shape of the room itself. As a result, when mapping a symmetric environment, it may be difficult correlate the local coordinate system with the common coordinate system. Accordingly, embodiments of the present invention utilize a landmark method to determine the local coordinates of the symmetric environment.
An overview of one embodiment of the present invention is as follows. A map of an environment is provided on a mobile device. Initially, it may be known how the map correlates to the common coordinate system (e.g., common coordinate system 160 of
The user then takes the mobile device to additional locations in the room (e.g., points 157b and 157c of
This embodiment will be further discussed in conjunction with the process 300 depicted in
This process 300 involves steps that may be stored as instructions on a computer readable medium and executed on a processor. In one embodiment, a single computing device, such as the mobile device 125 carries out all of the steps of the process 300. However, in another embodiment, the process 300 involves a second computing device, such as back-end computing device 149.
In step 310 of process 300, a first set of coordinates for a plurality of locations in an environment (e.g., room 142a of
In embodiments of the present invention, the user indicates with mobile device 125 when proximate to location 157a. In response, position determining system 135 determines the position of location 157a with reference to local coordinate system 150a (e.g., by triangulating the position of mobile device 125 using fixed devices 135a-135c). The user then moves to each of the windows (e.g., locations 157b and 157c) and repeats this process to determine the set of coordinates for each of these locations. In embodiments of the present invention, the user is instructed to go to each of these discreet locations in order to determine the position of these locations with reference to coordinate system 150a.
For example, a map of room 142a is displayed on the mobile computing device 125 via its display screen. The map allows a user to identify the position of the mobile device in a later step of process 300. Coordinates in the common coordinate system are known for at least portions of the map. The map may be displayed in accordance with any suitable technique. The technique for constructing the map is not critical to the present invention.
However, it is not required that a map be displayed for a user to be able to identify a location. For example, the user may be directed to “go to the door.” Or the user can be directed to go to a location from a list of locations. For example, a text window can be displayed with locations, “window,” “door,” and “thermostat.”
In embodiments of the present invention, step 310 involves receiving an indication that a portion of the displayed map was selected. For example, a user goes to location 157a (
In one embodiment, the display screen (e.g., display 106 of
As previously mentioned, it is not required that a map be displayed to the user. In one implementation, the user goes to one of several locations that are identified to the user. For example, the display screen could identify a location by indicating “door” or “window.” Once at a location, the user indicates the location by any convenient technique. However, it will be understood that these techniques are not the only way to receive an indicator of a location in the environment.
The local coordinates may be accessed by a mobile device communicating with other devices in the room to determine the mobile device's coordinates within the local coordinate system. However, the local coordinate may be determined in any convenient fashion. It will be understood that it is not required that the device whose location is determined to arrive at the local coordinates is necessarily the same device that is used to indicate the location. For example, a first device can be placed at a desired location, whereas a second device can be used to identify the location.
In embodiments of the present invention, step 310 may be repeated to allow additional local coordinates to be determined. In one embodiment, a minimum of three matching pairs of coordinates are determined. In another embodiment, the user goes to up to six unique locations, wherein up to six matching pairs of coordinates are determined.
In step 320 of process 300, a second set of coordinates for the plurality of locations in the environment are accessed. In embodiments of the present invention, the second set of coordinates are defined by a second coordinate system. In embodiments of the present invention, the second set of coordinates are previously defined discreet locations. As described above with reference to step 310, in embodiments of the present invention, the user of mobile device 125 may be instructed to go to previously defined locations (e.g., locations 157a-157c) to determine the position of these locations with reference to the local coordinate system 150a of symmetric environment 142a. In embodiments of the present invention, the position of these locations (e.g., locations 157a-157c) is already previously defined with reference to the common coordinate system 160.
As previously discussed, common coordinates for at least portions of the map are known. Thus, by identifying a portion of the map or the like to which mobile device 125 is proximate, the common coordinate can be determined. However, as also has been previously mentioned, it is not required that a map be displayed. For example, in one embodiment, the user is instructed to “go to the door.” Common coordinates may also be known for specifically locations such as “door,” “window,” “thermostat.” The user may also indicate position by such an identifier.
In step 330 of process 300, the first set of coordinates are correlated with the second set of coordinates. That is, the local and common coordinates are identified as being corresponding coordinates in the two coordinate systems. In embodiments of the present invention, correlation of the first set of coordinates with the second set of coordinates is facilitated because the
In step 340 of process 300, at least one matrix is derived that is useable to convert a set of coordinates defined by the first coordinates system to a corresponding set of coordinates defined by the second coordinates system. For example, the matrix can be used in a process to convert from the common coordinate system to the local coordinate system. Step 340 may comprise determining a rotation matrix and a translation matrix, as will be described herein with reference to
In embodiments of the present invention, a second matrix (or matrices) is determined that is complimentary to the matrix of step 340. This may comprise determining a rotation matrix and a translation matrix, as will be described herein. In embodiments of the present invention, the second matrices are able to convert coordinates from the local coordinate system to corresponding common coordinates.
Referring now to
Because the common coordinate system 160 and the local coordinate system 150a are bijective, there exist four unique matrices that may be used to translate between the two coordinate systems. The four matrices can be determined based on three non-aligned points. For example, the points P1/Q1, P2/Q2, and P3/Q3 will suffice as three non-aligned points.
The four matrices will be referred to as A, B, A′, and B′, wherein A is a translation matrix and B is a rotation matrix used to convert from the local coordinate system to the common coordinate system. A′ is a translation matrix and B′ is a rotation matrix used to convert from the common coordinate system to the local coordinate system. The four matrices are depicted in
To determine the matrices A, A′, B, and B′ the two systems depicted in
A*Q+B=P Equation 1:
A′*P+B′=Q Equation 2:
The matrix Q comprises the points Q1, Q2, and Q3 from
Another embodiment of the present invention is a method of converting between two coordinate systems, in which an asymmetric region is used to collect data to be used in determining one or more conversion matrices. For example, data may be collected along the perimeter of a room that has a non-symmetric shape. However, it is also possible that the room itself is symmetrical, but a non-symmetric region within the room is defined. The non-symmetric environment is typically within the room, but there is no reason why it must be within the bounds of the room.
Referring to the rooms in
Referring again to process 300 of
In step 310 of process 300, a first set of coordinates for a plurality of locations in an environment (e.g., room 142b of
To learn its coordinates, the mobile device 125 which the user holds may communicate with other devices in the room 142b.The number of local coordinates that are collected is sufficient to understand the shape of the environment with whatever certainty is desired. That is, as a practical matter local coordinates are collected at a number of locations along the non-symmetric environment 610. Thus, extrapolation may be used to fill between collected local coordinates. The rate at which local coordinates are collected can be set based on an expected traversal rate and pre-known shapes of various non-symmetric environments that may be used. Moreover, it is not required that the user traverse exactly along the pre-determined non-symmetric environment 610. In another embodiment, the user can determine the local coordinates at previously defined discreet locations in non-symmetric environment 610 as described above with reference to
In another implementation, the user receives a description of the non-symmetric environment in which each of the plurality of locations is a previously defined discreet location. For example, the user could receive a list of locations (e.g., door, window 1, window 2, etc.), or a map showing the plurality of locations. It will be understood that it is not required that the location identifies where local coordinates will be collected. This location is not necessarily the location of the user or even the device used to input the location.
In embodiments of the present invention, a determination may be made whether more local coordinates are to be collected. Any convenient technique may be used to determine that data collection is done, such as receiving an indication from the user that the user has finished traversing the non-symmetric environment 610. Further, it will be understood that it is not required that every point of the pre-determined non-symmetric environment region 610 needs to be traversed by the user.
In step 320 of process 300, a second set of coordinates for a plurality of locations in the environment are accessed. In the present embodiment, a description of the non-symmetric environment is accessed. The description 650 of the non-symmetric environment is depicted in
In step 330 of process 300, the first set of coordinates are correlated with the second set of coordinates. In step 330, the collected local coordinates are analyzed to orient and translate the local coordinate system to the common coordinate system. Since the pre-determined region is a non-symmetric environment, the orientation can be uniquely determined.
In step 340 of process 300, at least one matrix is derived that is useable to convert a set of coordinates defined by the first coordinates system to a corresponding set of coordinates defined by the second coordinates system. Once the local coordinate system 150b has been oriented relative the common coordinate system 160, the matrices that can be used to convert between the local and common coordinate system are determined. Step 340 may proceed in a similar fashion as the determination of the matrix in step 340 of process 300 in
Thus, in one embodiment, a unique mapping of the collected local coordinates is made to the common coordinates. For example, points Q4, Q5, and Q6 in the local coordinate system in
It will be understood that it is not required that the collected data points be on the pre-determined non-symmetric environment 610. For example, point Q7 in
However, given that the location of the origin and orientation of the axes of the local coordinate system within the common coordinate system is known, step 640 is not necessarily required to proceed as above. As
While the present invention has been described in particular embodiments, it should be appreciated that the present invention should not be construed as limited by such embodiments, but rather construed according to the below claims.