The present invention relates to coordinate measuring devices, and more particularly to systems and methods configured to maintain a laser beam in a fixed direction after it has been manually pointed by the user.
One set of coordinate measurement devices belongs to a class of instruments that measure the three-dimensional (3D) coordinates of a point by sending a laser beam to the point, where it is intercepted by a retroreflector target. The instrument finds the coordinates of the point by measuring the distance and the two angles to the target. The distance is measured with a distance-measuring device such as an absolute distance meter or an interferometer. The angles are measured with an angle-measuring device such as an angular encoder. A gimbaled beam-steering mechanism within the instrument directs the laser beam to the point of interest. Exemplary systems for determining coordinates of a point are described by U.S. Pat. No. 4,790,651 to Brown et al. and U.S. Pat. No. 4,714,339 to Lau et al.
The laser tracker is a particular type of coordinate-measuring device that tracks the retroreflector target with one or more laser beams it emits. A coordinate-measuring device that is closely related to the laser tracker is the laser scanner. The laser scanner steps one or more laser beams to points on a diffuse surface.
A scanner may send the laser beam to any desired location, but a laser tracker usually sends the laser beam to a retroreflector target. A common type of retroreflector target is the spherically mounted retroreflector (SMR), which includes a cube-corner retroreflector embedded within a metal sphere. The cube-corner retroreflector includes three mutually perpendicular mirrors. The apex, which is the common point of intersection of the three mirrors, is located at the center of the sphere. Because of this placement of the cube corner within the sphere, the perpendicular distance from the apex to any surface on which the SMR rests remains constant, even as the SMR is rotated. Consequently, the laser tracker can measure the 3D coordinates of a surface by following the position of an SMR as it is moved over the surface.
A gimbal mechanism within a scanner or laser tracker may direct a laser beam from the scanner or tracker to the desired location or retroreflector. For the laser tracker, part of the light retroreflected by the SMR enters the laser tracker and passes onto a position detector. A control system within the laser tracker can use the position of the light on the position detector to adjust the rotation angles of the mechanical azimuth and zenith axes of the laser tracker to keep the laser beam centered on the SMR. In this way, the tracker is able to follow (track) an SMR that is moved over the surface of an object of interest.
Scanners typically measure distance to the target of interest by using an absolute distance meter. Laser trackers may measure distance using either an interferometer or absolute distance meter (ADM). An interferometer finds the distance from a starting point to a finishing point by counting the number of increments of known length (usually the half-wavelength of the laser light) that pass a fixed point as the retroreflector target is moved between the two points. If the beam is broken during the measurement, the number of counts cannot be accurately known, causing the distance information to be lost. By comparison, an ADM finds absolute distance to a retroreflector target without regard to beam breaks. Because of this, the ADM is said to be capable of “point-and-shoot” measurement.
Both laser trackers and scanners usually measure angles with highly accurate angular encoders. Laser trackers have the ability to follow (track) a rapidly moving retroreflector, but scanners do not usually have this ability. In its most common mode of operation, the laser tracker automatically follows the movements of an SMR when the laser beam from the tracker strikes near enough to the center of the retroreflector.
The scanner or tracker sends the laser beam in a direction that generally changes in time. One possibility is to have a computing device send instructions to the scanner or tracker giving the pattern of angles to which the laser beam is to point. A computing device sending this type of pattern profile to the tracker or scanner is said to be executing a profiler function.
A second possibility, for the case of the laser tracker in tracking mode, is to track the moving SMR. The feedback to enable this tracking comes from laser light that bounces off the retroreflector and re-enters the tracker. Some of this light bounces off a partially reflecting beam splitter and passes to a position detector. The position of this light on the detector is information the tracker control system needs to keep the laser beam centered on the retroreflector.
A third possibility for either scanners or laser trackers is for the user to manually point the laser beam toward a target of interest. In many cases, it is easier to point a laser beam toward a desired direction than to enter coordinates or angles into a computer control. To enable the user to easily move the beam steering mechanism, the motors are temporarily turned off. After the user directs the laser beam to the desired direction, he will remove his hands.
If the gimbal mechanism is perfectly balanced, the laser beam will continue to point in the same direction. If the gimbal mechanism is unbalanced to even the slightest degree, however, the beam will tend to droop or rise from its initial position. By the time the user enables motors to prevent movement of the laser beam, the beam may already be far from the desired direction.
Systems for controlling rotational positions of a movable unit are described by U.S. Pat. No. 7,634,381 to Westermark et al. and U.S. Pat. No. 7,765,084 to Westermark et al.
There is a need for a beam steering mechanism that causes the laser beam to remain fixed in direction after it has been manually pointed by the user.
At least one embodiment includes a pointing device for use with a laser tracker or laser scanner which may include a tracker or scanner control system and a tracker or scanner plant. The tracker plant may include a plurality of motors configured to apply a torque to a mechanism that steers the laser and a plurality of angular encoders configured to send feedback information on the angular position of the mechanism to the tracker control system. The tracker or scanner control system may be configured such that, when the pointing device is operating in a manual adjustment mode, the tracker or scanner control system controls the plurality of motors to provide a torque to the mechanism opposite to a direction of movement caused by the user.
An exemplary embodiment includes a pointing device for use with a laser device including a laser that emits a laser beam, the laser being positionable by a user, the pointing device including a control system, a plant operatively coupled to the control system including a plurality of motors configured to apply a torque to a mechanism that steers the laser, angular encoders configured to send feedback information on the angular position of the mechanism to the control system, a position sensing device configured to send information regarding the position of the laser beam on a surface of the position detector to the control system, a master control unit operatively coupled to the control system and the position sensing device, the master control unit including an encoder averager module configured to provide command position readings to the control system, a target positioner module configured to provide target position readings to the control system and a motion profiler module configured to generate command position readings to the control system.
Another exemplary embodiment includes a tracking pointing device for use with a laser tracker including a laser that emits a laser beam to be reflected off a retroreflector, the laser being positionable by a user, the tracking pointing device including a tracker control system and a tracker plant including motors having a zenith motor and an azimuth motor, the zenith motor and the azimuth motor being configured to apply a torque to a mechanism that steers the laser, angular encoders including a zenith angular encoder and an azimuth angular encoder, the zenith angular encoder and the azimuth angular encoder being configured to send feedback information on the angular position of the mechanism to the tracker control system and a position detector configured to send information regarding the position of the laser beam on a surface of the position detector to the tracker control system.
A further exemplary embodiment includes a scanning pointing device for use with a laser scanner including a laser that emits a laser beam, the laser being positionable by a user, the scanning pointing device including a scanner control system and a scanner plant including a motors having a zenith motor and an azimuth motor, the zenith motor and the azimuth motor being configured to apply a torque to a mechanism that steers the laser and angular encoders including a zenith angular encoder and an azimuth angular encoder, the zenith angular encoder and the azimuth angular encoder being configured to send feedback information on the angular position of the mechanism to the scanner control system.
Referring now to the drawings, exemplary embodiments are shown which should not be construed to be limiting regarding the entire scope of the disclosure, and wherein the elements are numbered alike in several FIGURES:
In tracking mode, some of the laser light sent back into the tracker from SMR 26 is split off by a partially reflecting beam splitter and sent to position detector (not shown) internal to the tracker. The position of the laser beam on the position detector is used by the laser tracker control system to keep the laser beam pointed at the center of SMR 26.
An alternative to laser tracker 10 is a laser scanner. The laser scanner would not have to be used in conjunction with a cooperative target such as SMR 26 and it would not require a position detector.
As discussed previously, there are three modes of operation that establish the pointing direction of the laser beam. The first mode, as described above, is the tracking mode in which the laser beam from the tracker follows the movement of the retroreflector. With this mode of operation, the tracker motors are turned on and caused to actively adjust the direction of the laser beam to follow the retroreflector target. The tracking mode is not available in laser scanners.
The second mode is the profiler mode, in which the computer sends the tracker or scanner instructions for the desired pattern of pointing angles. With this mode of operation, the tracker motors are turned on and caused to adjust the direction of the laser beam to follow the pattern given by the computer.
The third mode is the user-directed mode, in which the user manually adjusts the direction of the laser beam. Ordinarily, motors are turned off to enable the user to easily steer the laser beam to the desired direction. However, when the user lets go of the beam steering mechanism and before the motors can be turned back on, imperfect balance of the beam steering mechanism may cause the laser beam to change direction.
The system 100 can include a processor 170 either integral with or external to the system 100 providing application capabilities and user control of the system 100. Further details of the processor are described herein with respect to
The system 200 can include a processor 270 either integral with or external to the system 200 providing application capabilities and user control of the system 200. Further details of the processor are described herein with respect to
Referring again to
In profiling mode, tracker control system 110 or scanner control system 210 directs the laser beam to profiled angles or coordinates sent from the computer to the tracker or scanner. The purpose of the control loop is to control the velocity or position of the laser beam movement to match that of the profiled values.
In user adjustment mode, tracker control system 110 or scanner control system 210 directs the laser beam while resisting external forces, which may be the forces of gravity (due to imperfect balancing) or the forces of redirection by the user. This is achieved by having the control system act to resist velocities other than zero or, equivalently, to resist changes in pointing direction of the laser beam. The force applied by the control system is designed to be non-responsive to the very small forces of gravity, but to apply a torque to the hand of the user in opposition to manual adjustment. The force is set to a reasonable level so that the operator can turn the beam without applying excessive force.
In the case of the laser tracker, one valuable use for the user adjustment mode is to aim the laser beam in close proximity to a retroreflector target, and then invoke an automated search routine to quickly lock onto the target. As an alternative to invoking an automated search routine, a camera mounted on the tracker may be used to direct the laser beam 46 to the center of the SMR 26. LEDs mounted proximate the camera can be used to repetitively illuminate the SMR 26, thereby simplifying camera identification of the retroreflector target.
The encoder averager 335 generates command positions if the “Hold Velocity Mode” is set and tracking is off or if there is no beam in the beam path. In this scenario, the MCU 330 reads the encoders 320 and calculates an average value. If no external force acts on the axis (i.e. someone doesn't push on it, etc.), the command position matches the current encoder reading. If an external force is applied, the average encoder reading will lag the most recent encoder reading. When the average encoder reading is provided as a command position to the control system 325, the control system 325, in its attempt to make the encoder reading match the command position, will push back in the opposite direction of the external force attempting to resist the motion.
When the tracker is set to have “Tracking Mode” “On” and the tracker recognizes that a target is in the beam path, the target position 340 calculates the target location using a Position Sensing Device (PSD) 350, angular encoders 320, and the distance to the target. This calculated target location is then sent to the control system 325 as the command position. As the target is moved, a new command position is sent to the control system 325, which causes it to track the location of the target.
The motion profiler 345 generates command positions in several situations. In one situation, in which tracking is off and “Hold Position Mode” is set, the motion profiler 345 outputs the same value over and over again. This value may be the last known location of a target, the last position of a profiled move, or the position the axis was pointed when the motors were turned on. A situation in which no beam is in the beam path and “Hold Position Mode” is set is the same as “Tracking is off.” In the third situation in which, the tracker has been requested to point in a new location, a request to point the tracker in a new direction is generated. In this situation, the motion profiler 345 takes the current command position and the new requested location and then computes a series of command positions that are sent to the control system 325 such that the axis turns with a trapezoidal velocity profile.
The system 300 can include a processor 370 either integral with or external to the system 300 providing application capabilities and user control of the system 300. Further details of the processor are described herein with respect to
The difference between the Cmd Pos 405 and the Encoder Pos 415 is calculated, at difference node 420, and is referred to as “position delta”. The position delta is multiplied by the position integrator gain (I) 425 and then summed with previous values by an integrator 430, which adjusts the output of the position loop over time when a constant error exists. The position delta is added to the output of the integrator at an addition node 435 and multiplied by the position gain (P) 440. The difference between Last Cmd Pos. 410 and the Cmd Pos 405, calculated at difference node 445, is multiplied by a velocity feed forward gain (VFF) 450, which provides a boost to the output of the position loop when Cmd Pos 405 is changing. The velocity feed forward term and the output after applying the P gain are added together at addition node 455 to produce the output of the position loop, which is a command velocity for the velocity loop 500.
Referring to the velocity loop 500, an encoder velocity node 505 represents the rate of change of the encoder reading. The encoder velocity is subtracted from the command velocity (output of the position loop 400) at difference node 510 to create a velocity delta. The velocity delta is multiplied by a velocity integrator gain (VI) 515 and then summed with previous values by an integrator 520, which adjusts the output of the velocity loop 500 over time when a constant error exists. The velocity delta is added to the output of the integrator at addition node 525 and multiplied by the velocity gain (VP) 530. This output is the command input to the current loops 600, as now described.
As described herein, the exemplary systems 100, 200, 300 can respectively include a processor 170, 270, 370 either integral with or external to the system 100, 200, 300 providing application capabilities and user control of the system 100, 200, 300. The processor 170, 270, 370 can be an integral or separate processing system as now described with respect to
The methods described herein can be implemented in software (e.g., firmware), hardware, or a combination thereof. In exemplary embodiments, the methods described herein are implemented in software, as an executable program, and is executed by a special or general-purpose digital computer, such as a personal computer, workstation, minicomputer, or mainframe computer. The system 800 therefore includes general-purpose computer 801.
In exemplary embodiments, in terms of hardware architecture, as shown in
The processor 805 is a hardware device for executing software, particularly that stored in memory 810. The processor 805 can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the computer 801, a semiconductor based microprocessor (in the form of a microchip or chip set), a macroprocessor, or generally any device for executing software instructions.
The memory 810 can include any one or combination of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)) and nonvolatile memory elements (e.g., ROM, erasable programmable read only memory (EPROM), electronically erasable programmable read only memory (EEPROM), programmable read only memory (PROM), tape, compact disc read only memory (CD-ROM), disk, diskette, cartridge, cassette or the like, etc.). Moreover, the memory 810 may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that the memory 810 can have a distributed architecture, where various components are situated remote from one another, but can be accessed by the processor 805.
The software in memory 810 may include one or more separate programs, each of which includes an ordered listing of executable instructions for implementing logical functions. In the example of
The laser pointing methods described herein may be in the form of a source program, executable program (object code), script, or any other entity including a set of instructions to be performed. When a source program, then the program needs to be translated via a compiler, assembler, interpreter, or the like, which may or may not be included within the memory 810, so as to operate properly in connection with the OS 811. Furthermore, the laser pointing methods can be written as an object oriented programming language, which has classes of data and methods, or a procedure programming language, which has routines, subroutines, and/or functions.
In exemplary embodiments, a conventional keyboard 850 and mouse 855 can be coupled to the input/output controller 835. Other output devices such as the I/O devices 840, 845 may include input devices, for example but not limited to a printer, a scanner, microphone, and the like. Finally, the I/O devices 840, 845 may further include devices that communicate both inputs and outputs, for instance but not limited to, a network interface card (NIC) or modulator/demodulator (for accessing other files, devices, systems, or a network), a radio frequency (RF) or other transceiver, a telephonic interface, a bridge, a router, and the like. The system 800 can further include a display controller 825 coupled to a display 830. In exemplary embodiments, the system 800 can further include a network interface 860 for coupling to a network 865. The network 865 can be an IP-based network for communication between the computer 801 and any external server, client and the like via a broadband connection. The network 865 transmits and receives data between the computer 801 and external systems. In exemplary embodiments, network 865 can be a managed IP network administered by a service provider. The network 865 may be implemented in a wireless fashion, e.g., using wireless protocols and technologies, such as WiFi, WiMax, etc. The network 865 can also be a packet-switched network such as a local area network, wide area network, metropolitan area network, Internet network, or other similar type of network environment. The network 865 may be a fixed wireless network, a wireless local area network (LAN), a wireless wide area network (WAN) a personal area network (PAN), a virtual private network (VPN), intranet or other suitable network system and includes equipment for receiving and transmitting signals.
If the computer 801 is a PC, workstation, intelligent device or the like, the software in the memory 810 may further include a basic input output system (BIOS) (omitted for simplicity). The BIOS is a set of essential software routines that initialize and test hardware at startup, start the OS 811, and support the transfer of data among the hardware devices. The BIOS is stored in ROM so that the BIOS can be executed when the computer 801 is activated.
When the computer 801 is in operation, the processor 805 is configured to execute software stored within the memory 810, to communicate data to and from the memory 810, and to generally control operations of the computer 801 pursuant to the software. The laser pointing methods described herein and the OS 811, in whole or in part, but typically the latter, are read by the processor 805, perhaps buffered within the processor 805, and then executed.
When the systems and methods described herein are implemented in software, as is shown in
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which includes one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
In exemplary embodiments, where the laser pointing methods are implemented in hardware, the laser pointing methods described herein can implemented with any or a combination of the following technologies, which are each well known in the art: a discrete logic circuit(s) having logic gates for implementing logic functions upon data signals, an application specific integrated circuit (ASIC) having appropriate combinational logic gates, a programmable gate array(s) (PGA), a field programmable gate array (FPGA), etc.
While preferred embodiments have been shown and described, various modifications and substitutions may be made thereto without departing from the spirit and scope of the invention. Accordingly, it is to be understood that the present invention has been described by way of illustrations and not limitation.
The presently disclosed embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims, rather than the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.
This application claims the benefit of U.S. Provisional Application Ser. No. 61/244,380 entitled “LASER POINTING MECHANISM”, filed Sep. 21, 2009, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61244380 | Sep 2009 | US |