Patent Publication Number: US-6662103-B1

Title: Method and system for creating a user-selectable arbitrary coordinate frame

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims the priority of the previously filed U.S. provisional application serial No. 60/125,545 assigned to the assignee of this application and filed on Mar. 22, 1999 and a PCT/U.S. application Ser. No. 99/23615 entitled Rotating Head Optical Transmitter for Position Measurement System filed on Oct. 13, 1999, both of which applications are incorporated herein by this reference. 
    
    
     TECHNICAL FIELD 
     This invention relates in general to the field of position measurement and more particularly to an improved apparatus and method of providing position-related information. 
     BACKGROUND ART 
     A variety of techniques are known in the art to measure position, including land surveying techniques and global positioning satellite (“GPS”) system techniques. These known techniques, however, do not always provide positional data to a user in a conveniently usable format, such as in an XYZ coordinate format. Further, even if the positional data is provided in an XYZ coordinate format, there are many applications, such as surveying or construction, where the XYZ coordinate system is not normally used. In addition, there is no simple way to rotate or translate the coordinate system or otherwise change the default reference frame in which the positional data is originally given to provide data that is more meaningful to the user. As a result, known systems for obtaining positional data have limitations that make them unsuitable for widespread use in multiple applications. 
     There is a need for a method and system that can provide positional data in a user-selectable format and in a user-selectable arbitrary coordinate system so that the data is meaningful to a specific user and/or a specific application. 
     SUMMARY OF THE INVENTION 
     The present invention is a method and system for providing position data from a position detector with respect to an arbitrary, user-defined coordinate system. The invention is to be used in conjunction with a position detecting apparatus that preferably contains, at a high level, several transmitters that transmit signals, preferably laser beams, from stationary locations and a receiving instrument that receives the signals. This type of system is described in co-pending, commonly assigned U.S. patent applications, Ser. Nos. 09,532,100 and 09/532,099, entitled LOW COST TRANSMITTER WITH CALIBRATION MEANS FOR USE IN POSITION MEASUREMENT SYSTEMS and IMPROVED METHOD AND OPTICAL RECEIVER WITH EASY SETUP MEANS FOR USE IN POSITION MEASUREMENT SYSTEMS, respectively, filed Mar. 21, 2000, the disclosures of which are incorporated herein by reference. 
     The inventive method and system is preferably used in the receiving instrument in the position detecting apparatus, which calculates the receiving instrument&#39;s position. The receiving instrument then displays the positional data and assorted other information of interest through a user interface. The information may be, for example, the location of the receiving instrument with respect to a default or a user-selected coordinate frame, or its distance relative to another location. The inventive method and system includes obtaining positional data from a known coordinate system, selecting an alternative presentation format, and defining transformations from the known coordinate system to the user-selected coordinate system. As a result, the raw position data obtained from the position detector is presented to the user in a user-selected format and uses nomenclature that is familiar to the user, regardless of the user&#39;s specific application. 
     INDUSTRIAL APPLICATION 
     As is clear from the present disclosure, the present invention can be applied to a variety of different fields, applications, industries, and technologies. The present invention can be used, without limitation, with any system in which information related to position must be determined, including without limitation movement, dimensional measurement, and position and orientation tracking. This includes without limitation many different processes and applications involved in myriad industries. Some of these industries and some of their associated processes or applications are: film making (digitizing models, virtual sets, camera tracking, automatic focusing), construction (trades, power tools, surveying, CAD, equipment control, construction measurement and layout), robotics (robot calibration, work cell configuration, mobile robot navigation, hazardous waste excavation), law enforcement (accident scene mapping, crime scene mapping, incident reconstruction), computers (3D input devices, video games), virtual reality (augmented reality, virtual arcades, 3D Internet experiences), manufacturing (factory automation, facility decommissioning, parts inspection, facility maintenance, manufacturing tooling and inspection, manufacturing measurement), medical (surgical navigation, smart operating rooms, medical instrumentation), and defense (ordinance modeling, simulation training, aircraft fit-checks, ship retrofit and repair, site remediation). 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram illustrating one overall position detecting system in which the inventive method and system can be used; 
     FIG. 2 is a flowchart illustrating the overall process used by the inventive method and system; 
     FIGS. 3A through 3C are block diagrams illustrating the process in which a user-selectable coordinate frame is developed according to the present invention; and 
     FIG. 4 is a block diagram illustrating how transformed position data is provided to a user interface. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     FIG. 1 is a block diagram illustrating an overall position detecting system  100  in which the inventive method and system can operate. The system  100  includes a position detector  101 , a tracking system  102 , a position calculation engine (PCE)  104 , data transfer protocol blocks  106 ,  107 , data transformation block  108 , display transformation block  110 , and a display  112 . The data transformation block  108 , display transformation block  110 , and display block  112  work in conjunction with a user interface  114 . Note that the inventive method and system is not limited to use in the system illustrated in FIG. 1; the invention can be used with any system that generates two or three-dimensional position data. 
     FIG. 2 is a flowchart illustrating the coordinate transformation process of the present invention, while FIGS. 3A through 3C illustrate in more detail the individual steps of the inventive process. The operation of these blocks will be described in more detail below. 
     Referring to block  104  in FIG. 1, the position data used in the inventive method and system can be obtained from the position calculation engine (PCE)  104 , which is described in detail in co-pending, commonly assigned application Ser. No. 09/532,100, the disclosure of which is incorporated herein by reference. Generally, the PCE translates incoming signals from the transmitter into a physical position in space. U.S. application Ser. No. 09/532,099 describes two possible methods for calculating the position of a detector  101  on a measurement tool: a theodolite network method and a non-theodolite transmitter method. Either one of these methods, as well as other methods, can be used as the PCE to obtain position data from the position detector for transformation into a user-selected coordinate frame. Generally, the theodolite network method calculates the sensor position if the baseline between the two theodolites and the angles to a receiver are known, while the non-theodolite method avoids treating the system&#39;s transmitters as theodolites and takes advantage of the scanning operation of the transmitter described in co-pending, commonly assigned U.S. application Ser. No. 09/532,099, filed Mar. 21, 2000 and incorporated herein by reference. Note that the non-theodolite method tends to be faster than the theodolite method because it requires fewer calculations to obtain the position information. Further, note that the position data obtained by either method would be in the user&#39;s frame of reference at this point. 
     Position data can also be obtained via other means as long as the data is configured to be freely exchangeable between the source and a user interface, such as via data transfer protocols  106 ,  107 . More specifically, position information and other data is exchanged via the data transfer protocol  106 ,  107  between, for example, the position calculation engine  104  and the user interface  114 , such as an alphanumeric display, to display the position data in a default format or in a format selected by the user. 
     The data transfer protocol (“DTP”) is the format for communication between the PCE and the user interface. Note that any data communication protocol can be used in the inventive system and is not limited to the DTP described below. In a preferred embodiment, the core processor of the DTP is a snap-in I/O driver that allows easy interchangeability between serial and parallel connections in different platforms. This allows the user interface and the apparatus used for position detection and tracking to use the same protocol software. 
     One example of a DTP may operate as follows: during normal use, the DTP may generally include a packet with a specific command as an argument and an array of related data as an optional second argument. A response will be either a packet containing the requested data or an acknowledging packet containing a Boolean value indicating the success or failure of receipt of the packet from the other device. Note that in the preferred embodiment, command packets are responded to with matching packets, while data packets are not responded to with matching packets. The command packets may include packets for obtaining information from a peer processor, setting information, starting the return of data from a peer processor at a periodic rate, storing and returning the data to the peer processor, stopping the data updates, and updating software in the peer processor. 
     Regardless of the specific protocol used, the DTP should be a peer-to-peer protocol to allow each device in the system to handle both incoming and outgoing data. Further, every command, data request, response, and/or data issue is preferably packaged into a data packet that includes a header word, the length of the accompanying data, and an array of the data itself to allow easy collection and interpretation of incoming information. This ensures that data can be exchanged between the position calculation engine and the user interface quickly and accurately. 
     Turning now to FIGS. 2 and 3A through  3 C in more detail, the coordinate reference frame for displaying position data from the PCE  104  is called a “default coordinate frame” (DCF), which is the default coordinate frame that is set up by the system during calibration of the transmitter and receiver. In the preferred system, the position detector&#39;s position is provided to the user as an XYZ coordinate in the DCF. For many applications, however, neither the XYZ coordinate position nor the DCF provides any meaningful information to the user, particularly if the user prefers to work in a coordinate frame having an orientation other than the DCF and/or a coordinate system other than the default XYZ system. 
     Although 3D coordinate transformations tend to be complex, the inventive method and system simplifies the transformation process by allowing the user to perform a series of steps that results in the creation of an alternate, user-defined transformed coordinate frame (“TCF”). The TCF allows the user to redefine position and measurement data in a way that is meaningful and useful for the user&#39;s specific application. For example, the TCF allows the user to easily transform the XYZ coordinate data into other coordinate systems, such as the NEZ (north/east/z) coordinate system or the angle/radial/elevation coordinate system, and also allows the user to reposition the coordinate frame at any selected location and in any desired orientation. 
     The overall process is illustrated in FIG.  2 . In general, after the system undergoes the setup/calibration process  200  and provides XYZ coordinate position data in the DCF, the user can decide whether the coordinate system should be changed to provide more meaningful position data at step  202 . If no, the position data is presented at step  204  in the default format, as XYZ data in the DCF. If the user does want to change the coordinate system, however, the method first determines the desired user-selected plane at step  206 , selects an origin/start point in the plane at step  208 , and then sets an axis in the plane at step  210 . The position data is then displayed in the user-selected coordinate frame at step  204 . 
     The position of the measurement tool is determined by checking the PCE for the current XYZ coordinate of the tool, as measured in the DCF. The XYZ coordinate is then multiplied by a transformation matrix, which defines the point&#39;s coordinates with respect to the TCF. The specific transformation matrix used to transform the XYZ coordinate would depend on the TCF selected by the user. Of course, the invention is not limited to transforming XYZ coordinates to other coordinate systems, but can be used any time a user wishes to transform coordinates from one coordinate frame/presentation format to another coordinate frame/presentation format. This coordinate is then used by any appropriate user application to determine position and measurement. In this example, the software communicates with the PCE via the DTP, as explained above, to the user application. 
     One specific manner in which the inventive method and system is implemented is described below with respect to FIGS. 3A through 3C. Referring first to FIG. 3A, the user first notifies the system via the user interface that it wishes to define a plane at step  300 . The user then defines a plane via the PCE by collecting three or more points using any desired measurement instrument at step  302 . As is known in the art, three or more points are required to define a plane. A plane is then calculated based on a least squares fit through the collected points at step  304 . The system then transforms the coordinate system so that either the XY, XZ, or YZ plane lies on this plane, creating a new frame of reference for position and measurement calculations. More particularly, a new transformation matrix is generated at step  304  based on the user-defined plane so that future measurements and position are calculated with respect to this plane via this transformation matrix at step  306 . 
     Preferably, the plane is presented to the user in a form that is standard for that user&#39;s particular application. For example, in the surveying field, XYZ coordinate systems are easily used and understood; therefore, the user interface in the inventive system can therefore ask the user to define an XY, XZ, or YZ plane. In the construction field, on the other hand, XYZ coordinate systems are not ordinarily used; therefore, the user interface in the inventive system would ask the user to define, for example, a wall, floor or ceiling instead of an abstract plane. 
     The next step is defining a user-selected origin, which is illustrated in FIG.  3 B. The user first notifies the system, via the user interface, that it wishes to select an origin at step  308 . The user then selects a single point in space with the measurement device via the PCE at step  310 . A transformation matrix that corresponds with the user-selected format is calculated at step  312  such that the user-selected point becomes the origin (i.e., the point where X=Y=Z=0) at step  314 . 
     The next step is defining a user-selected axis, as illustrated in FIG.  3 C. The user initiates the axis selection process via the user interface at step  316  and then selects one point in space to define either the X, Y, or Z axis at step  318 . The system then defines the axis by connecting the user-selected origin with the user-selected point. The select point and resulting axis is projected to the user-defined plane from the process described above with reference to FIG.  3 A. From this information, a transformation matrix corresponding to the user-selected axis is calculated at step  320  for transforming future measurements at step  322 . 
     Preferably, the axis information is presented to the user using nomenclature that is standard for that user&#39;s particular application. For example, in the surveying field, XYZ coordinate systems are easily used and understood; therefore, the system can define an X, Y, or Z axis. In the construction field, the XYZ coordinate system is not as familiar to most users, so the user interface for construction applications preferably would request the user to define the edge of a floor, the centerline of a column, or a control line instead of an abstract axis. 
     Note that the calculation of the transformation matrix itself follows mathematical principles that are known in the art. Coordinate transformations from one format to another format usually involve a translation and/or a rotation. For a rotation alone, the transformation takes the form          R   tx     =         [         1       0       0           0         cos        (     rx   tx     )             -     sin        (     rx   tx     )                 0         sin        (     rx   tx     )             cos        (     rx   tx     )             ]          [           cos        (     ry   tx     )           0         sin        (     ry   tx     )               0       1       0             -     sin        (     ry   tx     )             0         cos        (     ry   tx     )             ]                   [           cos        (     rz   tx     )             -     sin        (     rz   tx     )             0             sin        (     rz   tx     )             cos        (     rz   tx     )           0           0       0       1         ]     =     [           r   11           r   12           r   13               r   21           r   22           r   23               r   31           r   32           r   33           ]                           
     For conducting both a rotation and a transformation from the DCF to the TCF, the transformation matrix below shows how both of these functions are reflected in a single matrix:          [           x   2               y   2               z   2             1         ]     =       [           r   11   12           r   12   12           r   13   12           x   T   12               r   21   12           r   22   12           r   22   12           y   T   12               r   31   12           r   32   12           r   33   12           z   T   12             0       0       0       1         ]          [           x   1               y   1               z   1             1         ]                       
     The superscripts indicate the frame of reference (e.g., superscript  1  indicates the original frame, or DCF, and superscript  2  indicates the user-selected frame, or TCF). Superscript  12  indicates a mapping from the DCF to the TCF. 
     After the user selects a plane, origin, and axis to generate the complete TCF, distance and angle measurements can be provided with respect to the TCF rather than the DCF by using the transformation matrix to calculate and display the measurements to the user in the user-selected coordinate frame, as generally illustrated in FIG.  4 . For example, to measure a distance from a point in space, the user is prompted to select the point at step  324 . The system then calculates the XYZ, XY, and Z distances are calculated in real time from the selected point. More particularly, the origin of the original DCF coordinate frame is translated to the user-selected origin point and the coordinate of the position detector is transformed from the DCF to the TCF via the transformation matrix at steps  326 ,  328 . The user interface displays the XYZ, XY, and Z coordinates in the user-selected TCF at step  330  rather than the original DCF, without any additional user intervention. 
     Another example involves the inventive system providing angle measurements in the user-selected TCF. In this case, the user is prompted to select 2 points. After the first point is selected, the system can provide the user with the elevation angle of the point with respect to the user-defined plane. After the second point is selected, the system can provide the user with the azimuth angle with respect to the line defined by the two points in the TCF. To provide position data with respect to the TCF rather than the DCF, the origin of the coordinate frame is translated to the first user-selected point, allowing calculation of the elevation angle from the origin of the TCF to the measured point. Once the second point is selected, an axis (usually the X-axis) is aligned to pass through the second selected point. We can then calculate azimuth angles from this line. 
     The inventive method and system are not limited to the examples outlined above, but can be used in conjunction with any position data source. Further, any device or combination of devices can be used to carry out the invention. For example, the user interface can be either a hand-held device or a computer, and the point collection devices can be any device that has two or three dimensional information. Further, the inventive method and system is not limited to conducting only the measurements in the examples, but can be used to provide any positional data in any user-selected coordinate frame as long as the user provides enough information to create the appropriate transformation matrix for the user-selected coordinate frame. Those of skill in the art will envision other ways in which the inventive method and system can be implemented without departing from the claims. 
     It should be understood that various alternatives to the embodiments of the invention described herein may be employed in practicing the invention. It is intended that the following claims define the scope of the invention and that the method and apparatus within the scope of these claims and their equivalents be covered thereby.