Three dimensional position sensing system and method

Abstract: A position sensing system calculates the X-Y-Z coordinates of a point (12) in space using triangulation and determines the orientation of an object located at that point (12). The triangulation calculation is based on the coordinates of at least three retroreflective elements (18) spaced apart from each other and the measured angles between the lines projected radially outward from the point (12) to each of the retroreflective elements (18). The accuracy of the measured angles is achieved by using a rotating member (30) supported by dedicated hardware and controlled by software. The member (30) rotates with a beam of light (16) generated by a light transmitting and detecting device (14) positionable at the point (12). The light transmitting and detecting device (14) receives the beam of light (16) reflected back from the retroreflective elements and generates an output signal in response thereto. A computer processes the output signals for use in calculating the X-Y-Z coordinates of the point (12) and the orientation of the light transmitting and detecting device (14) when it is positioned at the point (12).

Description: The present invention relates generally to laser-based systems useful in construction applications and, more particularly, to a laser-based system and method for measuring the X-Y-Z coordinate of a point and the angular orientation of an object positioned at that point in a continuously changing frame of reference. In the construction industry, the level of automation and robotization is very low. One reason for this is the difficulty of properly positioning machines and tools. In the construction of commercial buildings, for example, various points of reference have to be established, such as placement of floors, ceilings, electrical wiring, plumbing, and heating and cooling ducts. Establishing reference points is time consuming and expensive, particularly as such work is often contracted out to companies which specialize in this work. Moreover, for many applications, the machine has to move toward the product. When the reference point is continuously changing, the difficulty of positioning the machine is compounded. In prior laser-based systems, such as that disclosed in U.S. Patent No. 3,588,249, for example, a reference plane is established throughout a work site by a transmitter which emits laser energy in the level reference plane. The laser beam is projected radially outward from the transmitter and rotated continuously through 360 degrees to sweep around the entire work site. One or more receivers may be employed throughout the work site to sense the location of this reference plane. Such receivers may be mounted on a surveyor's rod, as described in U.S. Patent No. 4,030,832, or they may be employed as part of a control system for construction or agricultural equipment, as described in U.S. Patent Nos. 3,813,171; 3,873,226; 3,997,071; and 4,034,490. In order to track the movement of a reference point, prior art laser systems, such as the laser survey system disclosed in U.S. Patent No. 4,830,489, have provided not only elevation information, but also position information in two other axes. The system includes a laser transmitter, located at a reference position at a work site, which sweeps a laser beam radially in a reference plane. The system includes a receiver, located on mobile earthmoving equipment operating at the work site. The receiver has a sensor that determines the relative elevation of the laser reference plane. The receiver also includes a pair of reflectors, each of which reflects laser energy back to the transmitter. The laser transmitter also has a sensor which receives the reflected laser energy, and, in response thereto, produces receiver position information for transmission to the receiver. The laser transmitter is designed to rotate the laser beam continuously through 360 degrees at a substantially constant angular velocity and thus sweep the beam past the two reflectors of the receiver once during each revolution. During each revolution of the laser beam, the transmitter receives back two short bursts or pulses of laser energy from the two reflectors. Thus, since the laser beam sweeps at a substantially constant angular velocity and the distance between the reflectors is fixed, the time period between the receipt of these two pulses provides an accurate basis for the calculation of the range or distance of the receiver from the transmitter. However, since the accuracy of the range calculation is dependent upon a uniform rotational velocity for the laser beam, any variability in the rotational velocity will decrease the accuracy of the range calculation. However, this and other three-dimensional laser based systems are generally complex and expensive. WO - A - 87/01814 describes a method of navigating an automated guided vehicle along a predetermined path 10 lined by a plurality of uncoded reflectors 13. An optical system 14 on the truck emits a laser beam scanning 360° at a constant rotational speed and includes an angle meter 28. By detecting reflections of the laser beam from any three reflectors, the position and direction of the truck can be determined using conventional trigonometry. As the truck can "see" more than three reflectors at one time and the reflectors are uncoded, details of the motion area with reflectors and path also need to be stored. This document also describes such a system using a number of fixedly arranged reflectors which are bar coded to generate a bar coded reflected signal as the emitted laser beam rotates. JP-A -62-254007 (see PATENT ABSTRACTS OF JAPAN, vol. 12, no. 129 (P-692) [2976], April'88) and JP-A-60-15508 (PATENT ABSTRACTS OF JAPAN, vol. 9, no. 133 (P-362)[1856], June '85) both describe a system in which a rotating laser beam mounted on a moving body is reflected from corner cubes arranged at three reference positions. A rotary encoder makes angle measurements and, from these measurements and the positions of the corner cubes, the position and azimuth of the moving body are calculated. JP - A - 60-67813 (PATENT ABSTRACTS OF JAPAN, vol. 9, no. 203 (P-381)[1926], Aug'85) describes a system in which the inclination angle of moving body to a reference plane is accurately detected by flashing plane-shaped light beams from the moving body to corner cube prisms installed in known positions and detecting elevation angles to each prism. JP - A - 60-7316 (PATENT ABSTRACTS OF JAPAN, vol.9, no. 122 (P-359)[1845], May'85 discloses a method of calibrating an angle measuring scale by using a track of angle measuring slits on an encoder plate and everytime a slit passes light emitting and receiving elements a counter counts a pulse output. US - A - 3458709 discloses an optical angle transducer consisting of a glass disc containing a pattern of alternately transparent and opaque lines around its perimeter. A fixed photocell monitors the position of the line pattern and an interpolation technique is used to achieve angular measurements of a finer resolution. Reference is further made to post-published application EP-A-0 457 548, claiming an earlier priority, and thus falling within the terms of Article 54(3) EPC. This document relates to an X, Y position determining system. It is an object of the present invention to provide a positioning system and method wherein highly accurate X-Y-Z position coordinates and orientation of a point can be determined. Accordingly, from one aspect, the invention consists in a system for determining the position of a point in space, the system comprising at least three stationary distinctive retroreflective elements spaced apart from each other and stationed at known coordinates, said distinctive retroreflective elements each comprising a bar code capable of reflecting light back toward a light source; light transmitting and detecting means, positionable at the point, for generating a rotating beam of light to illuminate said stationary retroreflective elements during rotation, and for detecting said beam of light when it is reflected from said stationary retroreflective elements and generating an output signal in response thereto; and computer means responsive to said output signal for computing from said known coordinates of said retroreflective elements and from the angular orientation of said beam when said beam illuminates said retroreflective elements, the X - Y coordinates of the position of the point; characterized in that said at least three stationary distinctive retroreflective elements each comprises said bar code and a further bar code which is slanted with respect thereto so as to determine the elevation of the beam when said beam illuminates said retroreflective elements, and in that said computer means are responsive to said determined elevation of said beam to compute the Z co-ordinate of the position of said point. In a preferred embodiment of the system, the light transmitting and detecting means comprises: means for generating a beam of light; means for projecting the beam of light at a substantially constant rotating angular velocity toward the retroreflective elements; means for receiving the beam of light reflected from the retroreflective elements corresponding to the illumination of the retroreflective elements during rotation of the beam; and azimuth and zenith means, responsive to reflection of the beam of light from the retroreflective elements, for continuously transmitting angle signals indicative of an azimuth and zenith angle at which the means for receiving the beam of light is positioned with respect to each of the retroreflective elements. The stationary retroreflective elements may each have a distinctive combination of said bar code and said further bar code, with said further bar code extending substantially diagonally across said element. In a structured environment, then, the computer means can designate a number for each retroreflective element in a rotation, and the number will remain the same for each rotation. In a further aspect of the present invention, the light transmitting and detecting means includes a member rotating with the beam, the member having a periphery and further having a plurality of angularly positioned elements spaced around the periphery which divide a revolution of the member into a plurality of generally equal partial revolutions; and a means for detecting movement of each of the elements past a predetermined point as the member rotates. Preferably, the plurality of angularly positioned elements comprises a plurality of apertures and the means for detecting movement of each of the elements comprises a light source paired with a photodetector element. A further preferred embodiment includes means for registering a tilt position of one or more reflecting mirrors and means for calculating a zenith angle of the beam based on the tilt of each of the mirrors. From another aspect, the invention consists in a method for determining the position of a point in space, the method comprising the steps of: locating at least three stationary distinctive retroreflective elements spaced apart from each other and stationed at known coordinates, said distinctive retroreflective elements each comprising a bar code capable of reflecting light back toward a light source; transmitting a rotating beam of light to illuminate said stationary retroreflective elements during rotation; measuring an angular position of said retroreflective elements with respect to a known reference; tracking scan behavior; using said scan behavior to calculate angular measurements; and determining the X-Y co-ordinates of the position of the point based on said angular measurements and said coordinates of said retroreflective elements; and characterized by:- determining the elevation of said rotating beam, when said beam illuminates said distinctive retroreflective elements, by means of said bar code and a further bar code, which is slanted with respect thereto, provided on each of said retroreflective elements; and calculating the Z co-ordinate of the position of said point from said determined elevation. In a preferred embodiment of the method for determining the position of the point, the step of tracking scan behavior further includes the steps of mounting a member on a rotating shaft, the member having a periphery and further having a plurality of apertures located at the periphery which divide a revolution of the member into a plurality of generally equal partial revolutions; and registering a time differential between each adjacent pair of the plurality of apertures as the member rotates. Also, the method may include the step of interpolating between corresponding angle measurements of an adjacent pair of the plurality of apertures to determine exact angles between each pair of apertures. In a further embodiment, the step of tracking the scan behavior can determine the Z position of the point by registering the tilt position of one or more reflecting mirrors and calculating the zenith angle of the exit beam based on the registered mirror position. Thus, the present invention provides a position sensing system and method, wherein the X-Y-Z coordinates of a point can be calculated by triangulation, and the orientation of the system when it is located at the point may be determined. The invention can also provide such system wherein the calculations are insensitive to deviations in the rotational velocity of the rotating light beam, and which may utilize software to calibrate a code wheel or other member to improve the accuracy of the calculations. Other objects and advantages of the invention will be apparent from the following description, the accompanying drawings and the appended claims. In order that the invention may be more readily understood, reference will now be made to the accompanying drawings, in which: Fig. 1 is an isometric view of the position sensing system of the present invention located at a point within a structured environment defined by four intersecting walls; Fig. 2 is a side view, with parts broken away, of a light transmitting and detecting means of the position sensing system of Fig. 1; Fig. 3 is an exploded partial top view of a rotating member illustrated in Fig. 2; Fig. 4 is a calibrating system which is used in conjunction with related software to calibrate the light transmitting and detecting means of Fig. 2 which includes the member of Fig. 3; Fig. 5 is a schematic block diagram of a hardware interface, controlled by software, which supports the position sensing system of the present invention, illustrating the interrelationship between the retroreflective elements shown in Fig. 1 and the light transmitting and detecting means shown in Fig. 2; and Figs. 6A and 6B illustrate a flow chart detailing the steps used in determining the Z-position of the point in space shown in Fig. 1. The three-dimensional position sensing system and method of the present invention is advantageously utilized in either a structured environment 10, as shown in Fig. 1, or an external environment, to generate constantly updated information on the exact location of a point 12. Typically, light transmitting and detecting means 14, best illustrated in Fig. 2, is positioned at the point 12 for transmitting a rotating beam of light 16, which is emitted by a light source such as laser 20 of Fig. 2, and reflected back to the light transmitting and detecting means 14 by a series of retroreflective elements 18. The position sensing system is also capable of determining the orientation of the light transmitting and detecting means 14 which is positioned at the point 12. The rotating beam of light 16 should be of a size appropriate to create discernible START signals and END signals from each of the retroreflective elements 18, which preferably consist of distinctive retroreflective bar code elements in the form of a diagonal slant target from a top corner of the retroreflective element 18 to the opposing bottom corner in combination with a retroreflective bar code, as illustrated in Figs. 1 and 5. The position sensing system has at least three stationary retroreflective elements 18, as typified by elements 18a, 18b, and 18c in Fig. 1. Preferably, the retroreflective elements 18a, 18b, and 18c are spaced apart from each other around the periphery of the frame of reference and stationed at known coordinates in the frame of reference 10. In a preferred embodiment of the present invention, the retroreflective elements 18 are passive sensors, although active sensors may be used as well. With the passive sensor elements 18, the beam of light 16 is reflected back to the light transmitting and detecting means 14. The beam 16 transmitted by the light transmitting and detecting means 14 has a varying zenith angle such that a dynamic scan pattern 17 of the beam 16 can scan the environment 10 at varying elevations to strike the retroreflective elements 18, regardless of the elevation of the elements 18. Azimuth and zenith means (not shown), responsive to the reflection of the beam of light 16 from the retroreflective elements 18, continuously transmit angle signals, indicative of an azimuth and zenith angle at which the light transmitting and detecting means for receiving the beam of light is positioned with respect to each of the retroreflective elements 18, to a computer 22 of Fig. 5. The computer 22 includes a microprocessor, such as a Motorola 68030, having memory means for providing storage of software and data. A listing of exemplary software for performing the angle measurements in accordance with the present invention is as follows. Since the reflection from one passive element 18 looks the same as the reflection from each of the other passive elements 18, it cannot be determined from the reflection itself which element 18 is being illuminated. Therefore, according to one aspect of the present invention, any or all of the retroreflective elements 18a, 18b, and 18c can have a unique bar code in order to differentiate one element from the others. The moment of illumination of each retroreflective element 18 is registered extremely accurately since that moment is decisive for determining the angle within the angle of rotation of 360 degrees. By recognizing the retroreflective elements 18a, 18b, and 18c individually, it is possible to assign the proper coordinates to each element 18, which is necessary for the calculation of the position of the point and the determination of the orientation of the light transmitting and detecting means 14 located at the point 12. Assigning a unique bar code to each element 18 distinguishes each of the elements 18a, 18b, and 18c from the others. The computer 22 includes a microprocessor, such as a Motorola 68030, having memory means for providing storage of software and data. A listing of exemplary software for performing the bar code recognition of the present invention is as follows. Using the angle measurements and the recognized bar code patterns, the X-Y coordinates of the point 12 can be calculated by triangulation, and the Z coordinate is determined in accord with the flow chart of Figs. 6A and 6B. The computer 22 includes a microprocessor, such as a Motorola 68030, having memory means for providing storage of software and data. A listing of exemplary software for performing the triangulation calculations of the present invention is as follows. Referring now to Fig. 2, a side view of a housing 24 for the light transmitting and detecting means 14 is shown. The light transmitting and detecting means 14 includes an electric motor 26 mounted to rotate shaft 28. A member 30, such as a code wheel, and a light diverting mirror 32 are mounted on the shaft 28. A mirror positioning means 33 provides movement or positioning of the mirror 32. The tilt of the mirror 32 is known for a current position of the member 30 such that the vertical height of the retroreflective elements 18 are always known with respect to any horizontal point. In the present invention, the beam 16 has a variable zenith angle, which can be varied by changing the position of one or more mirrors 32, 35, and 37, shown in Fig. 2. For instance, the main mirror 32 can be tilted using spring 39 which cooperates with the mirror positioning means 33. Alternatively, mirror 35 can be tilted in two dimensions in order to properly project beam 16 onto mirror 32. Yet another means for varying the zenith angle of the beam 16 is to tilt mirror 37 independently or in conjunction with mirror 35. Mirror 37 is optional, however, as the laser 20 may direct beam 16 straight at mirror 35. An index wheel 34 can also be included for providing a single reference pulse indicating each complete rotation of the shaft 28. A light source, such as solid state laser 20, directs the beam of light 16 onto the rotating mirror 32 so that a plane of rotation is created. In a preferred embodiment of the invention, a generally horizontal plane of rotation is created. However, any plane of rotation, including vertical, can be created. In addition, the beam 16 has a zenith angle which may be varied to produce a non-planar scan pattern. The retroreflective elements 18 are positioned in this plane or scan pattern. An advantage of the present invention is that a precisely horizontal or vertical plane or scan pattern is not essential for the three dimensional position calculation. As a result, the system may be used either by an operator as a handheld device as the operator moves about the environment of interest, or mounted on vehicles and other equipment as the equipment moves about a given area. When the rotating laser beam 16 strikes the retroreflective elements 18 during each revolution of the shaft 28, the beam of light 16 is reflected back to the light transmitting and detecting means 14 and can be transformed into an analog signal by a suitable detector, such as photodetector 36, and transmitted to a signal processing means 38 of Fig. 5, which outputs two digital signals. Theoretically, the moment in time that a retroreflective element 18 has been illuminated with respect to the complete time of rotation is related to its angle, depending on which retroreflective element 18 is being illuminated by the light beam 16, within a total angle of 360 degrees. However, this is only the case if the rotational speed of the beam 16 is extremely constant. Typically, the rotational speed of motor shaft 28 which causes the beam 16 to rotate is not perfectly constant and it is not possible to obtain a constant speed with the accuracy which is desired by the position sensing system of the present invention, especially in a mobile operation. Consequently, the position sensing system utilizes the motor 26 in conjunction with the member 30, supported by the dedicated hardware interface of Fig. 5 and controlled by software to achieve the desired accuracy. The computer 22, having a microprocessor such as a Motorola 68030, contains software for a main routine which controls the hardware interface of the position sensing system, an exemplary listing of which is as follows. As shown in Fig. 3, the member or code wheel 30 has a plurality of angularly positioned elements, preferably apertures 42, spaced around its periphery which divide a revolution of the member 30 into a plurality of generally equal partial revolutions. The size and spacing of these apertures are greatly exaggerated in the drawing for clarity of illustration. For example, the code wheel 30 may divide a revolution into one thousand generally equal parts positioned approximately 0.36 degrees apart by spacing one thousand elements or apertures 42 around the periphery of the member 30. Although the distance between each adjacent pair of apertures 42 theoretically represents a movement of 0.36 degrees, misalignment of the member 30, misalignment of the center of the member 30 through which the shaft 28 extends, and manufacturing tolerances, cause deviations in the spacing of the elements 42. However, since these deviations remain constant once the light transmitting and detecting means 14 is assembled, the actual angular spacing between each element 42 in the member 30 can be determined extremely precisely by a software calibration table. Calibration of the code wheel or member 30, preferably using software, improves accuracy by eliminating errors due to misalignments, deviations, and irregularities of the rotational speed of the motor 26. Any speed fluctuation of the motor 26 between two apertures 42, particularly when there are one thousand such apertures spaced around the periphery of the member 30, will be negligible. Consequently, it is possible to interpolate between an adjacent pair of apertures, such as 42a and 42b in Fig. 3, to determine an exact angle between the pair of apertures 42a and 42b, according to the equation: Angle = ∠42a + (Tm/Tcw) * (∠42b - ∠42a) where ∠42a is the measured angle of aperture 42a; ∠42b is the measured angle of aperture 42b; Tm is the time elapsed between passage of the previous aperture, here aperture 42a, and the moment M in time that the reflecting light strikes the sensor or photodetector 36; and Tcw is the time it takes the code wheel 30 to move between element 42a and element 42b. One method of calibrating the code wheel or member 30 is illustrated in Fig. 4 as a calibration system 44. To calibrate the member 30, the light transmitting and detecting means 14 containing the code wheel 30, is placed on a device 46 having an angularly positioned rotating surface 48, with the member 30 arbitrarily positioned. The computer 22 of Fig. 5 controls a stepper motor 50,associated with the surface 48 and determines the number of steps between each pair of adjacent elements 42 as the member 30 rotates. For instance, if one revolution of the member is defined as 360,000 steps, and the member 30 contains 1000 generally equally spaced elements 42, then each step would theoretically be expected to be equal to 0.001 degree, and each element 42 would be 0.36 degrees or 360 steps from each adjacent element 42. However, in reality, there will be deviations in the spacing of the elements 42. Therefore, the actual spacing between each adjacent pair of elements 42 is measured and can be stored in a calibration table, which table will remain accurate as long as the position sensing system of the present invention remains assembled. Initially, in calibrating the member 30, a first element 42 receives a signal from a reference retroreflective element, and this first element 42 becomes an index element for purposes of calibration of the member 30. The calibration system 44 determines when the index and following elements 42 are in position to commence or end the counting of the steps between elements 42 by employing the interpolation equation from above. For the index element 42, Tcw equals zero and Tm equals zero. As the member 30 rotates toward the next adjacent element 42, Tm approaches zero and Tcw approaches 1. The moment in time when Tm is equal to zero and Tcw is equal to one, then the element 42 is in position to end the counting of steps between the index element and the first adjacent element. This pattern continues until the number of steps and, thus, the distance in degrees between, each pair of adjacent elements 42 has been determined. The calibrating system 44 is associated with the computer 22 which includes a microprocessor, such as a Motorola 68030, having a memory means for providing storage of software and data. A listing of exemplary software for performing the calibration of the light transmitting and detecting means 14 which includes the member 30 of the present invention is as follows. The position sensing system which combines the use of the code wheel 30 and the motor 26 is supported by a hardware interface 52, illustrated in Fig. 5. An event occurs every time an aperture 42 on the code wheel 30 passes, or a retroreflective element 18 commences or ends a reflection of the beam of light 16. Due to the high precision time measurements required between each adjacent pair of apertures 42, a reference clock 54 is used in keeping a record of an event. If an event occurred during this time, it is stored in a circuit 56, such as a 32 bit first-in-first-out circuit. The circuit 56 records the movement of the code wheel 30 at register 0. The actual element or aperture 42 which is currently passing is sensed at a member or code wheel pick up element 58 and counted by a member rotation counter 60. Each time the member 30 has completed a full rotation, an index pick up element 62 sends a signal to reset the member rotation counter 60. The member pick up element 58 and the index pick up element 62 comprise means for detecting movement of each of the elements 42 past a predetermined point as the member 30 rotates. In a preferred embodiment of the present invention, the pick up elements 58 and 62 comprise a light source paired with a photodetector element. The light transmitting and detecting means 14 may include means for diverting and focusing the returning beam to the photodetector 36. The rotating mirror 32 diverts the light beam 16 toward a collimating lens 40, which lens 40 focuses the light beam 16 toward the photodetector 36. Signal processing means 38 detect when receiving optics 64, consisting of collimating lens 40 and photodetector 36, is either commencing receipt of the reflection of the light beam 16 or ending receipt of the reflection of the light beam 16 from the retroreflective elements 18 to the light transmitting and detecting means 14 of Fig. 2. Signal processing means 38 can transform the analog signal 41 from photodetector 36 into two digital signals which are received at register 1 of circuit 56. The first digital signal represents a START signal which indicates if the reflection from retroreflective element 18 is commencing the reflection of beam 16 from the retroreflective elements 18 to the light transmitting and detecting means 14, and the second digital signal is an END signal which indicates if the reflection is ending. Register 2 receives signals for measuring the time elapsing between the passage of the last aperture 42 and an event, which event may be the time Tm or the time Tcw shown in Fig. 3. A clock pulse counter 66 is reset at a clock pulse for counter 60 for each aperture 42, which counter 66 counts the time elapsing between the passage of each pair of adjacent elements 42. Information regarding the capacity of the circuit 56 is stored in register 3. The circuit 56 stores the information received and provides an output signal 68 to the computer 22 which includes a microprocessor having memory means. The computer 22 is responsive to the output signal 68, to compute the coordinates of the position of the point 12 in the frame of reference 10. When the light transmitting and detecting means 14 is positioned at point 12, the computer 22 also computes the orientation of the light transmitting and detecting means 14 within the frame of reference 10. Fig. 5 also illustrates the variable zenith angle of the beam which results from the tilt of any of the mirrors 32, 35, and 37 of Fig. 2. Varying the zenith angle of the beam 16 allows the position sensing system to scan an environment 10 and find all of the retroreflective elements 18 even when the elements 18 are not positioned at equal elevations. Referring back to Fig. 1, the dynamic scan pattern 17 can be tilted up or down as the beam 16 approaches a retroreflective element 18 to permit the beam 16 to strike the retroreflective element 18. Referring now to Figs. 6A and 6B, a flow chart illustrating the steps for positioning or tilting a mirror and providing feedback regarding the Z position of the point 12 of Fig. 1 is shown. Mirror 32 is used here by way of example and is not intended to be limiting, as any or all of the mirrors 32, 35, and 37 may be tilted to vary the zenith angle of the beam 16. This information is then used for computing the X-Y-Z coordinates of the point 12. The flow chart is triggered in Fig. 6A by the main routine software at step 70. Next, steps 72 and 74 require tilting the mirror 32 of Fig. 2 to its upper limit and acquiring data relating to the position of the mirror 32 as the shaft 28 rotates the mirror 32 through one rotation. At step 76, the program determines which, if any, reflectors were found during the rotation of the mirror 32 as the mirror 32 was tilted to its upper limit. The exemplary software for performing angle measurements and bar code recognition may be applied to the program at this point. Continuing with Fig. 6A, decision block 78 determines whether the mirror has been tilted sufficiently to reach its lower limit of range. If not, the mirror 32 is tilted slightly at block 80. If the mirror 32 has been tilted through its full range, the current X-Y position of the point 12 is computed at block 82. The exemplary software for performing the triangulation calculations may be applied here before continuing to step 84 where the elevation of the beam 16 striking the retroreflective elements 18 is calculated. The elevation can be determined using the known retroreflective element locations and the dark/light ratio reflection from the distinctive slant targets extending substantially diagonally from one top corner to the opposing bottom corner of the retroreflective elements 18 in combination with a retroreflective bar code. The program continues to step 86 where an equation for the plane which intersects the beam 16 is generated. At step 88, then, the program calculates the elevation of the plane at the current X-Y position computed at step 82. Using the elevation of the plane at the current X-Y position and the known tilt angle of the mirror 32 when the beam 16 strikes the retroreflective elements 18, a Z position is calculated at step 90. Then using the coordinates from previous rotations from steps 82 and 90, the mirror is tilted into the correct position for striking the next retroreflective element 18 at step 92. At step 94, using the exemplary angle measurement software and bar code recognition software, the bar code and angle of the next retroreflective element to be struck by the beam 16 are read. Decision block 96 of Fig. 6B then determines if a full rotation has occurred since the last position calculation. If not, the program returns to step 92. If so, the program continues to decision block 98 to determine if at least three retroreflective elements 18 were found. If so, the program returns to step 82. If not, the program continues to block 100 to calculate the probable new coordinates of the point 12 and establishes directions to the missing retroreflective elements 18, using coordinates of the point 12 from previous rotations. Once the directions to the missing retroreflective elements 18 have been calculated, the program continues to step 102 where the mirror 32 is tilted to scan slightly above the probable position of the missing retroreflective elements 18. Data is then acquired for one rotation of the mirror 32 at step 104, after which the program determines at step 106 which, if any, of the missing retroreflective elements 18 were found. If the missing retroreflective elements 18 were found, decision block 108 directs the program to step 82. If the missing retroreflective elements 18 were not found, the program continues to decision block 110 to determine if the mirror 32 was tilted to a position slightly below the missing retroreflective elements 18. If so, the program returns to step 72 and repeats. If not, the program continues to step 112 where the mirror 32 is tilted slightly before returning to step 104 and again acquiring data for one rotation of the mirror. Using the steps detailed in the flow chart of Figs 6A and 6B, the movement and position of the mirror 32 can be determined and applied to the X-Y-Z calculation of the point 12. Having described the invention in detail and by way of reference to preferred embodiments thereof, it will be apparent that modifications and variations are possible without departing from the scope of the invention as defined in the appended claims.

Claims: A system for determining the position of a point (12) in space, the system comprising at least three stationary distinctive retroreflective elements (18) spaced apart from each other and stationed at known coordinates, said distinctive retroreflective elements (18) each comprising a bar code capable of reflecting light back toward a light source (20); light transmitting and detecting means (14), positionable at the point (12), for generating a rotating beam of light (16) to illuminate said stationary retroreflective elements (18) during rotation, and for detecting said beam of light (16) when it is reflected from said stationary retroreflective elements (18) and generating an output signal in response thereto; and computer means (22) responsive to said output signal for computing from said known coordinates of said retroreflective elements (18) and from the angular orientation of said beam (16) when said beam (16) illuminates said retroreflective elements (18), the X-Y coordinates of the position of the point (12); characterized in that said at least three stationary distinctive retroreflective elements (18) each comprises said bar code and a further bar code which is slanted with respect thereto so as to determine the elevation of the beam (16) when said beam illuminates said retroreflective elements (18), and in that said computer means (22) are responsive to said determined elevation of said beam to compute the Z co-ordinate of the position of said point (12). A system for determining the position of a point (12) as claimed in claim 1, wherein said computer means (22) are capable of determining an orientation of said light transmitting and detecting means (14) when said light transmitting and detecting means (14) are positioned at the point (12). A system for determining the position of a point (12) as claimed in claim 1 or 2, wherein said at least three retroreflective elements (18) each have a distinctive combination of said bar code and said further bar code, with said further bar code extending substantially diagonally across said element. A system for determining the position of a point (12) as claimed in any preceding claim, wherein said light transmitting and detecting means (14) include an optical member (30) rotating with said beam (16), said member (30) having a plurality of angularly positioned elements (42) located at the periphery thereof which divide a revolution of said member (30) into a plurality of generally equal partial revolutions, means for registering a time differential between each adjacent pair of said plurality of angularly positioned elements (42) as said member rotates, and means for registering a tilt position of one or more reflecting mirrors positioned at said light transmitting and detecting means (14). A method for determining the position of a point (12) in space, the method comprising the steps of: locating at least three stationary distinctive retroreflective elements (18) spaced apart from each other and stationed at known coordinates, said distinctive retroreflective elements (18) each comprising a bar code capable of reflecting light back toward a light source (20); transmitting a rotating beam of light (16) to illuminate said stationary retroreflective elements (18) during rotation; measuring an angular position of said retroreflective elements (18) with respect to a known reference; tracking scan behavior; using said scan behavior to calculate angular measurements; and determining the X-Y co-ordinates of the position of the point (12) based on said angular measurements and said coordinates of said retroreflective elements (18); and characterized by:- determining the elevation of said rotating beam (16), when said beam (16) illuminates said distinctive retroreflective elements (18), by means of said bar code and a further bar code, which is slanted with respect thereto, provided on each of said retroreflective elements (18); calculating the Z co-ordinate of the position of said point (12) from said determined elevation. A method for determining the position of a point (12) as claimed in claim 5, wherein said step of determining the position of the point (12) includes the step of determining an orientation for said rotating beam of light (16) when said rotating beam of light (16) is positioned at the point (12). A method for determining the position of a point (12) as claimed in claim 5 or 6, wherein said step of tracking scan behavior includes the steps of mounting a member (30) on a rotating shaft, said member (30) having a plurality of angularly positioned elements (42) located at the periphery thereof which divide a revolution of said member (30) into a plurality of generally equal partial revolutions; and registering a time differential between each adjacent pair of said plurality of angularly positioned elements (42) as said member (30) rotates. A method for determining the position of a point (12) as claimed in claim 7, including the step of interpolating between corresponding angle measurements of an adjacent pair of said plurality of angularly positioned elements (42) to determine exact angles between each said pair of angularly positioned elements (42). A method for determining the position of a point (12) as claimed in any one of claims 5 to 8, including the step of automatically raising or lowering the elevation of the rotating beam of light (16) when less than three retroreflective elements (18) are illuminated by said rotating beam.

Inventors: DEVOS LEON B C, SCHOUTEN JOHANNES N TH, DEVOS, LEON B.C., SCHOUTEN, JOHANNES N.TH.
Applicants: SPECTRA PHYSICS LASERPLANE INC, SPECTRA-PHYSICS LASERPLANE, INC.
Application year: 1991
Main classification: G01C15
IPC codes: G01C15, G01S17