Abstract:
A work cell containing robot(s), video camera(s), and structured lighting source(s) is calibrated by observing targets with the camera(s) as a robot is displaced through a set of offsets. Complete information is recovered about the camera(s) calibration data and the structure of illumination from the light source(s). The robot is utilized to create known relative movements between the targets and the camera(s) and light source(s). Therefore, this technique is applicable to both the fixed and moving camera cases. Except for the target surface profile, there is no requirement to externally determine any absolute or relative positions, or any relationships either within or between the camera(s), targets, light source(s), and robot(s). Either single or multiple cameras (acting independently or in stereo) are calibrated to the robot&#39;s coordinate frame, and then optionally used as measuring devices to determine the position and form of the structured light.

Description:
REFERENCE TO RELATED APPLICATIONS 
     This application claims priority of U.S. provisional application Ser. No. 60/046,441, filed May 14, 1997, the entire contents of which are incorporated herein by reference. 
    
    
     FIELD OF THE INVENTION 
     This invention relates generally to robotics and machine vision and, in particular, to method and apparatus for calibrating cameras and light sources within work cells associated with such applications. 
     BACKGROUND OF THE INVENTION 
     Camera calibration techniques are known in the fields of robotics and machine vision. According to one existing calibration technique for stereo camera pairs, for example, the determination of a cameras position is based upon knowledge of the absolute position of targets in three space. This procedure enables subsequent measurement through triangulation using the views from the two cameras. 
     Existing approaches to work-cell type calibration either mandate multiple, stereoscopic cameras or factory calibrated components. For example, U.S. Pat. No. 4,645,348, teaches a laser and a camera which are factory-calibrated or `rectified` with respect to one another and contained within an integrated enclosure. However, although the laser and camera are calibrated with respect to one another, they are not calibrated with respect to a robot. Rather, the inventors in this case expect to supply the calibrated laser/camera combination in component form for user calibration within different application environments. 
     U.S. Pat. No. 4,639,878 patent uses multiple cameras, but they are independently calibrated with respect to a fixture. Given this fixture, traditional methods are used to calibrate cameras and robot end effectors through touch. In this example there is no direct calibration between the cameras and the robot. 
     U.S. Pat. No. 5,329,469 patent discloses a position correction arrangement, wherein cameras mounted on the end of the robot arm are moved to different locations, at which point cameras are used for viewing purposes only; that is, differences in spatial position are noted but not used to compute update information. 
     In U.S. Pat. No. 4,753,569, a robot holds a card exhibiting a dot pattern, which a camera views at a skewed angle in order to ascertain depth information and not absolute position. In this system, not only is information required as to the relationship among the dots, but the relationship between the dots, the card, and the robot arm, must also be determined and input in advance. 
     Other references require very precise alignment prior to, or during, use, thereby limiting their applicability. U.S. Pat. No. 5,513,276, for example, requires the laser and the angle of view of the camera to be parallel. U.S. Pat. No. 4,979,815 discloses the use of a laser and a camera to obtain height information. Specifically, objects under inspection are scanned to gather depth profiles, requiring the laser to be very accurately maintained normal to the surface of the observation platform. Accordingly, a gage block is inserted in the field of view which is scanned, enabling images to be calibrated relative to the gage block. 
     Other methods have used fixed cameras and lasers and factory calibration of the combination to provide three-dimensional measurement with respect to the set-up. This limits the available laser-camera configurations to those supplied by the factory, and provides no means for rectification of the data into a robot&#39;s coordinate frame. 
     SUMMARY OF THE INVENTION 
     This invention facilitates the automatic calibration of camera and light positions in a work-cell type environment without the need for stereo pairs of cameras or the knowledge of any external measures. Complete camera calibration with respect to a robot&#39;s coordinate frame requires only certain robot offsets and camera views. In a robust embodiment of the invention, knowledge of a target&#39;s surface shape and its displacement, along with the images of where the light beam(s) strike it, allows for the complete determination of the three-dimensional position and shape of a structured light source. The knowledge obtained through the invention provides the ability to use the camera and light source for subsequent three-dimensional measurements directly in a robot&#39;s coordinate frame. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a model of a pinhole camera useful in understanding frames of reference applicable to the invention; 
     FIG. 2 is a schematic representative of a three-dimensional position measurement system based upon stereo cameras and triangulation; 
     FIG. 3 is a schematic drawing which relates to three-dimensional position measurement for a single camera, showing how positions may be determined according to the invention using vector relationships; 
     FIG. 4 is a simplified drawing used to depict laser calibration according to the invention, whether through single or stereo cameras; 
     FIG. 5 is a drawing which shows how fiducials are used at laser observation positions to compute plane offsets according to the invention; 
     FIG. 6 is a drawing which shows how lines are fit to a plane to provide a description of structured light according to the invention; 
     FIG. 7 is a schematic drawing used to illustrate a single camera calibration technique according to the invention; 
     FIG. 8 is a schematic drawing used to illustrate laser calibration in conjunction with a camera and target plane; and 
     FIG. 9 illustrates an inventive technique whereby fiducials may be used in conjunction with the calibration of structured light. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     According to one embodiment of the invention, a calibration target is constructed, preferably with at least three distinct features or fiducials that can be resolved in a camera&#39;s image space. The target is affixed to the robot&#39;s end affecter and the camera(s) and light source(s) are mounted in the work cell. A series of translational offsets are then sent to the robot, which moves the target in three space while still remaining in the field of view of the camera. For each offset position of the target, the positions of the features in the image space and the offsets are recorded. This data is used to compute the camera&#39;s calibration data with respect to a temporary coordinate frame, and the three-dimensional positions of the target&#39;s feature set. This temporary coordinate frame, Fl, is aligned with the robot&#39;s frame, but its origin is preferably chosen so as to be centered on the target&#39;s first feature in the first offset position. 
     The robot is then displaced by a second set of offsets in which rotations are performed about each of the three axes and translations are optionally added to keep the target in the field of view. In one embodiment, at least two distinct positions are viewed for each of the target orientations. The resulting views are then used to compute the 3D positions of the features (with respect to Fl), and then the 3D positions and known offsets are used to compute the robot&#39;s frame origin. In the preferred embodiment, the known offsets and target projections are used to directly solve for Fl with respect to the robot&#39;s coordinate frame. This information is then used to update the camera&#39;s calibration data to be with respect to the robot. 
     In a more comprehensive configuration, a final set of offsets are used to find the shape of structured light implemented within the work cell. The target is moved over a set of positions wherein the light striking the target is in the camera&#39;s field of view. The nominal position and orientation of the target surface is computed, based upon the preceding calibration information, and this data is then transformed by the offset data to yield the target&#39;s location at each of the offset positions. 
     Preferably the target surface and light structure are planar, though such restraints are not required under the invention. A non-planar surface and/or point light sources may be used with appropriate modification to the methods disclosed. In the case of a plane of light and a planar target surface, the camera will image a line from where the two planes intersect. At least two positions, the 3D lines defined by these plane intersections, are computed using the camera&#39;s calibration data, the image of the intersections, and the computed positions of the target. The resulting set of 3D intersection lines is then used to find the 3D description of the plane of light. 
     Pinhole Camera Model 
     In helping to understand the invention, reference will now be made to FIG. 1, which illustrates a pinhole camera model 102 relative to an external, fixed coordinate frame 104. In regards to this figure: 
     p is an external point in space; 
     c is the camera&#39;s focal center; 
     f is the focal length of the lens; and 
     a, h and v represent an orthonormal set aligned to the camera. 
     Through similar triangles, two relationships in camera x and y (i,j) may be written as follows: ##EQU1## Equations 1) and 2) hold relationship between image coordinates (ij), point coordinates (P x , P y , P z ), and camera calibration parameters (, , , a). To solve for (, , , a), we use equations 1 and 2, and observe N points ( 1  → N ) for the image coordinaes (i,j) 1  →(i,j) N . 
     For K=1 to N ##EQU2## By redefining P k  =P k  -P 1  (move origin to 1st point) and setting CA=-1 (guaranteed non-zero by P k  redefinition) in matrix form yields: ##EQU3## using [A] T  [A] [X]=[A] T  [Y]A square matrix is formed for the (least squares best fit) solution of [X]: (a x ,a y ,a z ,H x ,H y ,H z ,V x ,V y ,V z ,CH, CV) 
     Renormalizing the solution vector such that a x   2  +a y   2  +a z   2  =1 and update CA by the same sealing, yields: 
     
         a, , , CH, CV, CA 
    
     Upon recovering camera position vector  (with respect to redefined coordinate frame): ##EQU4## 
     This method may be used to find the (relative) camera calibration parameters for a single dot target moved known translational offsets over time, a calibration fixture containing an n dot pattern whose relative positions are known, or a multidot pattern moved over time if the center of mass is the computed image coordinate. 
     Recovery of  with Respect to the External Coordinate Frame (Stereo Case) 
     The procedure in this case is as follows: 
     1) Move the target through a set of m offsets that include rotations about each of the three axes. Translations may be included to keep the target within the camera&#39;s field of view. Record both the offset and image coordinates from both cameras at each of the positions. 
     
         [Off.sub.k ]·k=1→m 
    
     2) Use the cameras to triangulate the 3D position of the target at each of its offset positions. Note that this computation will be with respect to the temporary coordinate frame. 
     
         {P.sub.k }k=1→m 
    
     3) The zero offset position of the target in the external coordinate frame {P*}, and the frame adjustment vector {F} can then be found by solving the simultaneous equations created by the relationship: ##EQU5## 
     Three equations are generated at each position solve for best-fit * and using psuedo inverse 
     
         [A].sup.T [A]{}=[A].sup.T {} 
    
     4) The zero offset position is not needed, the F vector is the difference between the temporary frame and the external coordinate frame. The camera position vector C is updated so that it is with respect to the external frame. 
     Multi-Fiducial Target Camera Calibration 
     With reference to the single-fiducial calibration to generate equations 1 &amp; 2: ##EQU6## 
     Choose one of the fiducials to be prime, and the others secondary. 
     The above equations hold directly for the prime fiducial. ##EQU7## The secondary fiducials will generate: ##EQU8## where (i n , j n ) represents the image coordinates of the nth fiducial, and p n  is the relative offset of the nth fiducial from the prima fiducial. 
     For each of the secondary fiducials we have the above two equations and three new unknowns: 
     
         (.sup.n ·a), (.sup.n ·), (.sup.n ·) 
    
     in matrix notation: ##EQU9## For each additional fiducial, Repeat lines 2 &amp; 3 and extend the superscript &#34;n&#34; sequences. 
     As before, setting CA=-1 and redefining the offsets to be relative to the 1st position allows the least squares best-fit solution to be found for the unknown vector: 
     
         (, , , CH, CV, PA.sup.n, PH.sup.n, PV.sup.n) 
    
     renormalizinq a and scaling the remainder of the vector gives (, , ) of the calibration data. 
     Solving: ##EQU10## recovers  with respect to the prime fiducial at the first offset position. Similarly, for each secondary fiducial, the equation: ##EQU11## allows the recovery of the secondary fiducial positions in the targets first offset position. 
     3D Position Measurement (Stereo Cameras) 
     Given that the cameras have already been calibrated to a common coordinate frame and their calibration vectors are known, a triangulation method allows recovery of the position of an object viewed from both cameras, as shown in FIG. 2. 
     From the calibration derivation: ##EQU12## the vector (P-C 1 ) is perpendicular to both (dot product=.o slashed.), so its direction can be recovered through a cross product. 
     
         .sub.1 =(i.sub.1 a.sub.1 -.sub.1)×(j.sub.1 a.sub.1 -.sub.1) 
    
     Similarly, 
     
         .sub.2 =(i.sub.2 a.sub.2 -.sub.2)33 (j.sub.2 a.sub.2 -.sub.2) 
    
     The vector equation can then be formed relating the unknown point P with the two cameras centers and the ray directions from each of the cameras. ##EQU13## Solving for either α 1  or α 2  gives the distance along A A respectively r 1  or r 2  from the camera to the unknown point P. ##EQU14## 3D Position Measurement (Single Camera) 
     Given a calibrated camera and an object moved a known relative distance, the positions can be found using the vector relationships shown in FIG. 3. 
     From the calibration data and image coordinates of the viewed object, the rays r 1  and r 2  can be found. ##EQU15## For the two observation case: ##EQU16## 
     In general, for n observations where the object is translated T n  to each position, we can solve the least-square fitting using the following: ##EQU17## after recovering α 1  →α n , use =+α i  r i   
     Recovery of Camera Position  with Respect to External Frame 
     The solution technique is similar to that used in the stereo camera case, except that it is not possible to find the 3D positions of the target from only a single view. At each unique orientation of the target, one or more positions are viewed that retain the targets orientation, but translate it to a new position. The single camera 3D position measurement technique, is then used at each of the unique orientation sets to recover the target&#39;s 3D positions in the temporary coordinate frame. The calculations then continue as in the stereo case parts 3) and 4) to find the external coordinate frame. 
     Laser Calibration--(See FIG. 4) 
     1) Calibrate camera to robot as described earlier. 
     2) Move target to n positions such that the target is in the field of view and the laser strikes the target. 
     3a) For stereo concerns, find the 3D line of where the laser strikes the target using camera triangulation technique. 
     3b) For a single camera, find the plane description of the target at each of the offset positions. Three or more fiducials are used on the target, along with known relative translational moves to find the fiducials coordinates at each of the positions, or multi-fiducial camera calibration to find nominal positions of the fiducials. 
     A plane is then fit to the known 3D positions of the fiducials at each of the laser observation positions, or the plane is computed by transforming the nominal plane position by the current offset, as shown in FIG. 5. 
     From the camera&#39;s calibration data and the image of the laser striking the target, the plane out of the camera which contains the laser/target intersection is computed. The intersection of the camera&#39;s imaged plane and the target plane yields the 3D line of where the laser strikes the target. 
     4) Given that the preceding calculations have been done for n positions of the target, we have n 3D lines which exist in the plane of the laser light. The lines are then fit to a plane and that plane&#39;s position and normal is used as a description of the structural light, as shown in FIG. 6. 
     Single Camera Calibration (See FIG. 7) 
     1) Robot moves to N positions using only translations (N≧6) 
     Compute calibration data with respect to F 1  {, , , ,}F 1   
     Compute fiducials with respect to F 1  {P 1  →P.sub.α}F 1  (α≧3) 
     2) Robot moves to M positions with orientation change (M≧3) 
     Compute F 1  with respect to Robot&#39;s frame 
     Update cal data {, , , }F Robot   
     Update fiducial data {P 1  →P.sub.α }F Robot   
     Laser Calibration 3) Robot moves target such that laser hits target (N≧2), as shown in FIG. 8. 
     Compute target plane locations from plane fitting {P 1  →P.sub.α } N  or by offsetting the nominal plane by the known robot&#39;s offset. 
     P N  =[offset] N  {P}* 
     n N  =[offset] N  {n}* 
     Compute 3D plane through camera using the imaged line and calibration data. 
     Intersect camera plane and target plane 3D line of intersection 
     Camera Calibration 
     There are two phases to the camera calibration operation. The first one involves only translations of the target. The known displacements and view positions are used to solve for the camera&#39;s relative position, orientation and scaling factors. 
     Phase one has been previously done using a single target. The equations have been expanded to allow multiple targets. When multiple targets are used, their relative displacements are also recovered during this operation. 
     The second phase involves observing the same calibration target as the robot moves it through a series of rotations. The rotation orient is deduced and that information is used to translate the camera position to be with respect to the true frame origin. 
     Note that the target and camera positions are &#34;locked&#34; together in phase 1. The adjustments found during phase 2 can also be applied to the targets if their true position is desired. 
     Phase two has been previously done with stereo cameras. The equations required finding the relative 3D position of the target at each of its positions. There are two methods of solving this problem with only a single camera. 
     1) At each orientation, move to multiple positions. The known vector displacement between the moves and the partially calibrated camera allows solving for the 3D positions of the target. 
     2) Modify the equations to solve for the frame origin using only the projected image information. 
     All of these methods have been tested and evaluated. The final option of using only projections has proved to be superior even when applied in the stereo cases (using projection information from both cameras). 
     Structured Light Calibration 
     In the following we will be using a plane of light as an example, the same or similar methods can be used for other shapes. 
     It is assumed that the associated camera has gone through at least phase 1 of its calibration operation (some options require phase 2). 
     A known relationship is needed between the targets and the surface they are attached to. A planar surface is simplest but by no means necessary. 
     The 3D position and orientation of the target at intersection points with the light is used to extract multiple contour slices of the light beam. 
     The local contour samples are then fitted to find a global geometric description of the light. A sheet of light is represented as a 3D plane in space. 
     If the target surface is a plane, as shown in FIG. 9, and the structural light is in the form of a sheet, then the intersection of these two planes will be a line. The coordinates of that line can be found by a single camera if the position and orientation of the target is known. 
     Finding Target Positions 
     1) If the camera has proceeded through phase 2, then the target positions are known (with respect to the robot&#39;s coordinate frame) at the first offset position. Using this information the &#34;zero offset&#34; position of the target can be calculated. ##EQU18## P m  (position at offset &#34;&#34;m)=[offset] m  p*, P* (zero offset position)=[offset] m   -1  {p} m   
     The known offset sent to the robot (at any location), can now be used to calculate the current target position, and orientation. 
     2) A second method for finding the 3D target positions is to offset the robot from the intersection position while retaining the orientation of the target. This creates a known displacement between the two positions which a calibrated camera can be used to resolve the 3D coordinates at each position. 
     Both methods have been tested. The &#34;better&#34; label generally goes to method 1, but is influenced greatly by how errors are distributed within the robot&#39;s working envelope. 
     Frame Origin Computation Using Projection Into 1→n Cameras 
     From camera calibration equations: ##EQU19## Splitting out the translation portion of the offset matrix and using the notation h=-iA and v=-jA yields ##EQU20## Using ##EQU21## The above two equations are expanded over all cameras, all positions, to find the least squares best fitting vector P*. 
     P* is the zero offset position of the target. The camera(s) position vector is corrected by the computed position of the target at the first offset position.  true  =+[off] 1  {P}* 
     In concluding, it should be noted that although the description and drawings make reference to a &#34;target,&#34; and although such a target is preferably provided in the form of a flat or curved surface having markings thereon, at least the camera calibration aspect of the invention will work through the observation of one or more portions of the robot itself, for example, distinctive physical features on the end effector, or elsewhere, so long as such features are discernable and movable by the robot in three space.