WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System for visually determining position in space and/or orientation in space and apparatus employing same    
United States Patent4146924   
Link to this pagehttp://www.wikipatents.com/4146924.html
Inventor(s)Birk; John R. (Peacedale, RI); Kelley; Robert B. (Kingston, RI); Seres; David A. (Newark, DE)
AbstractVisual system for determining position in space and/or orientation in three-dimensional space for purposes, for example, of directing or instructing an industrial robot to perform manipulative acts and apparatus employing the visual system. The system includes a portable object arbitrarily movable in three-dimensional space and possessing the discernible properties of position in space and/or orientation in space. One or more sensors extract visual information or image data from the portable object and convert the same to an electric signal or signals. A computer is connected to receive the signal or signals which are analyzed and, in the case of the industrial robot, the information obtained is used to prepare operating instructions.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 4146924
System for visually determining position in space and/or orientation in

     space and apparatus employing same - US Patent 4146924 Drawing
System for visually determining position in space and/or orientation in space and apparatus employing same
Inventor     Birk; John R. (Peacedale, RI); Kelley; Robert B. (Kingston, RI); Seres; David A. (Newark, DE)
Owner/Assignee     Board of Regents for Education of the State of Rhode Island (Providence, RI)
Patent assignment
All assignments
Publication Date     March 27, 1979
Application Number     05/615,716
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     September 22, 1975
US Classification     700/259 318/568.13 318/568.14 318/568.16 318/640 348/94 382/153 414/5 700/264 702/152 702/153 901/16 901/47
Int'l Classification     G05B 019/42 G06F 015/46
Examiner     Ruggiero; Joseph F.
Assistant Examiner    
Attorney/Law Firm    
Address
Parent Case    
Priority Data    
USPTO Field of Search     235/151 235/151.1 235/151.11 444/1 340/172.5 364/513 364/514 364/120 364/559 364/300 214/1 CM 178/DIG. 21 178/DIG. 22 178/DIG. 36 318/640 318/567 318/568
Patent Tags     visually determining position space orientation in space employing
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
3216311



[0 after 0 votes]
3454169



[0 after 0 votes]
3669549



[0 after 0 votes]
3850313



[0 after 0 votes]
3890552
Devol
318/568.14
Jun,1975

[0 after 0 votes]
3888362
Fletcher
414/620
Jun,1975

[0 after 0 votes]
3804270
Michaud
414/267
Apr,1974

[0 after 0 votes]
3589134
Hackmann
604/61
Jun,1971

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A visual system to determine at least one of position in space and orientation in space and having, in combination: portable means arbitrarily movable in space and possessing the discernible properties of at least one of position in space and orientation in space; sensor means operatively disposed to extract visual information from the portable means and operable to convert it to an electrical signal; computer means that receives said electrical signal from the sensor means and evaluates the same to provide an indication of at least one of position in space and orientation in space; and means to specify the manner in which the visual information is to be interpreted by the computer means, said means to specify being operable to effect arbitrary interpretations of the manner in which the visual information is to be interpreted.

2. A visual system as claimed in claim 1 in which the portable means comprises light means.

3. A visual system as claimed in claim 2 wherein the light means comprises a single source of light.

4. A visual system as claimed in claim 3 wherein the single source is a light emitting diode.

5. A visual system as claimed in claim 3 that includes means operatively connected to sequence the single source of light to permit orientation in space to be computed using a sequence of images.

6. A visual system as claimed in claim 2 wherein sequencing of the light means is effected by modulating the light output of the source as a function of time and on a predetermined sequencing schedule.

7. A visual system as claimed in claim 2 wherein the light means comprises liquid crystals.

8. A visual system as claimed in claim 2 wherein the light means comprises an array of lights.

9. A visual system as claimed in claim 2 wherein the light means includes a legible code.

10. A visual system as claimed in claim 2 wherein the light means comprises laser means.

11. A visual system as claimed in claim 2 wherein the light means comprises a plurality of lights independently movable in space.

12. A visual system as claimed in claim 2 wherein the light means comprises a plurality of individual light sources.

13. A visual system as claimed in claim 12 that further includes means to sequence the light sources ON and OFF in a predetermined fashion.

14. A visual system as claimed in claim 12 wherein the light means comprises two distinct sources of light.

15. A visual system as claimed in claim 12 wherein the light means comprises three point sources of light disposed in a triangular configuration.

16. A visual system as claimed in claim 12 wherein the individual light sources emit different frequencies from one another.

17. A visual system as claimed in claim 2 wherein the light means is a distributed light source.

18. A visual system as claimed in claim 17 wherein the distributed light source comprises non-resolvable multiple lights each acting effectively as a point source.

19. A visual system as claimed in claim 18 wherein the multiple lights are light emitting diodes disposed adjacent to one another.

20. A visual system as claimed in claim 18 wherein some of the lights differ from others in terms of the frequency of radiation emitted therefrom.

21. A visual system as claimed in claim 2 wherein the light means comprises a plurality of clusters of lights.

22. A visual system as claimed in claim 2 wherein the light means comprises a plurality of distributed light sources.

23. A visual system as claimed in claim 1 wherein the means to specify is a keyboard.

24. A visual system as claimed in claim 23 wherein the keyboard means comprises binary devices.

25. A visual system as claimed in claim 23 wherein the keyboard means comprises finite state devices.

26. A visual system as claimed in claim 23 wherein the keyboard means comprises continuous state devices.

27. A visual system as claimed in claim 1 wherein the means to specify is voice input means.

28. A visual system as claimed in claim 1 wherein the portable means comprises light means and in which said means to specify comprises means to modulate the light means in terms of either intensity of frequency or in terms of both intensity and frequency.

29. A visual system as claimed in claim 1 wherein said means to specify comprises fixed program means to specify the manner in which the visual information is to be interpreted by the computer means.

30. Apparatus that includes the visual system of claim 1 and that further includes a robot, said computer means acting to control robot actions and movement on the basis of said visual information.

31. Apparatus as claimed in claim 30 wherein said robot is part of and performs automated functions in connection with a machine tool.

32. Apparatus as claimed in claim 30 wherein the means to specify is a keyboard.

33. Apparatus as claimed in claim 30 in which the portable means has two lights separated from one another and which includes means to change the distance between the light, the orientation of an imaginary line segment between the two lights serving as a source of orientation information and the position of the center of said imaginary line segment serving as a source of position information.

34. Apparatus as claimed in claim 30 in which the portable means comprises a plurality of lights separated from one another and means to change the distance between the individual lights, the orientations of imaginary line segments between the lights of said plurality serving as sources of orientation information and the position of the center of said imaginary line segments serving as a source of position information.

35. A visual system as claimed in claim 1 wherein the sensor means comprises a television camera positioned to view the portable means.

36. A visual system as claimed in claim 1 wherein the portable means comprises indirect light means.

37. A visual system as claimed in claim 36 wherein the portable means comprises visually detectable objects and which includes means to irradiate said objects.

38. A visual system as claimed in claim 37 wherein the visually detectable objects reflect light when irradiated by said means to irradiate.

39. A visual system as claimed in claim 37 wherein the visually detectable objects are fluorescent and in which the means to irradiate is a source of ultraviolet radiation.

40. A visual system as claimed in claim 39 wherein the visually detectable objects are liquid crystals.

41. A visual system as claimed in claim 1 wherein the sensor means comprises a plurality of television cameras.

42. A visual system as claimed in claim 1 wherein the sensor means comprises a solid state imaging array.

43. A visual system as claimed in claim 1 wherein the portable means comprises a plurality of individual sources of light disposed in an array, each source acting effectively as a point source of light in the system, and wherein the sensor means comprises a television camera positioned to view the plurality of sources and to extract visual information from which can be determined the position in space of said point source and the orientation of the array.

44. A visual system as claimed in claim 43 wherein the sensor means comprises a plurality of television cameras positioned to view the plurality of sources and to obtain position and orientation information therefrom.

45. A visual system as claimed in claim 1 wherein the portable means comprises three individual sources of light disposed in a triangular configuration, each source acting effectively as a point source of light in the system and wherein the sensor means comprises two television cameras positioned to view the three sources and to extract visual information from which can be determined the position in space of said source and the orientation in space of said configuration.

46. A visual system as claimed in claim 45 that further includes means to sequence the individual sources of light ON and OFF and to provide an indication to the computer means as to whether an individual source is ON or OFF.

47. A visual system as claimed in claim 45 wherein the three individual sources of light differ from one another in terms of the frequency of light emitted from each.

48. A visual system as claimed in claim 1 in which the portable means includes a plurality of individual units each of which unit is movable independently in space, each said unit serving to provide visual information to the sensor means.

49. A visual system as claimed in claim 1 in which the portable means comprises a plurality of three-dimensional objects.

50. A visual system as claimed in claim 49 wherein the three-dimensional objects are blocks.

51. A visual system as claimed in claim 49 wherein said blocks are cubes whose sides are individually and distinctively coded.

52. A visual system as claimed in claim 51 wherein the distinctive coding of the sides of the cubes obtains from the sensitivity of the individual sides to incident radiation.

53. A visual system as claimed in claim 1 wherein the portable means contains a code that can be read and interpreted by a human.

54. A visual system as claimed in claim 1 in which the portable means comprises a plurality of two-dimensional objects.

55. A visual system as claimed in claim 1 that further includes fiducial or reference means which occupies a spatial reference position from which can be determined other spatial positions of interest in the system.

56. A machine that includes said system in claim 55 and wherein said space is the working volume or region of the machine, interaction among the fiducial or reference means, the sensing means and the computer means serving to establish said spatial reference position within said working volume, the portable means thereafter being located in said space relative to the said spatial reference position and other elements of the machine within the space being located by the portable means.

57. A method of conveying at least one of position and orientation information that comprises: introducing to a space of interest at least one visually detectable object which possesses the discernible properties of a+ least one of position and orientation; sensing the presence of said object in said space to provide a signal that contains information or data relative to at least one of position and orientation of the object; arbitrarily specifying the manner in which said information or data is to be interpreted; and analyzing the information or data conveyed by the signal to extract therefrom said properties of the object.

58. A method as claimed in claim 57 wherein a plurality of visually detectable objects are introduced to the space of interest.

59. A system to instruct a robot and having, in combination: portable means arbitrarily movable in space and possessing the discernible properties of at least one of position in space and orientation in space, said portable means comprising two lights separated from one another and movable with respect to one another; means to change the distance between the two lights, the orientation of an imaginary line segment between the two lights serving as a source of visual orientation information and the position of the center of said imaginary line segment serving as a source of visual position information; sensor means operatively disposed to extract visual information from the portable means that receives said electrical signal from the sensor means; and computer means that evaluates the same to provide an indication of at least one of position in space and orientation in space; and a robot, said computer means serving to control robot actions and movement on the basis of said visual information.

60. A visual system to determine position in space and orientation in space and having, in combination: portable means arbitrarily movable in space and possessing the discernible properties of at least one of position in space and orientation in space, said portable means comprising a plurality of individual sources of light disposed in an array, each source acting effectively as a point source of light in the system; sensor means operatively disposed to extract visual information from the portable means and operable to convert it to an electrical signal, said sensor means comprising a television camera positioned to view the plurality of sources and to extract visual information from which can be determined the position in space of said point source and the orientation of the array; and computer means that receives said electrical signal from the sensor means and evaluates the same to provide an indication of position in space and orientation in space.

61. A system to determine at least one of position in space and orientation in space and having, in combination: portable means arbitrarily movable in space and possessing the discernible properties of at least one of position in space and orientation in space; sensor means operatively disposed to extract spatial information from the portable means and operable to convert it to an electrical signal; computer means that receives said electrical signal from the sensor means and evaluates the same to provide an indication of at least one of position in space and orientation in space; and fiducial or reference means which occupies a spatial reference position from which can be determined other spatial positions of interest in the system.
 Description Submit all comments and votes
 


The present invention relates to systems for determining position in space and/or orientation in space, that may be used, for example, to instruct an industrial robot, and the apparatus employing such systems.

There accompanies herewith a paper by the present inventors entitled "Visual Robot Instruction", Proceedings of the Fifth International Symposium on Industrial Robots, Chicago, Ill., Sept. 22-24, 1975; said paper is hereby incorporated herein by reference. Some, but not all, of the material in the paper is included hereinafter. Most of the description that follows is centered around instructing industrial-type robots, sometimes called programmable manipulators, but the concepts herein disclosed have wider use.

Industry demands a fast and safe method to program industrial robots. Prior proposals for such programming include the use of potentiometers, voice control, cathode ray tube (CRT) light pens, master-slave harnesses and manual controls, as is noted in said paper. Each programming aid offers advantages, but even when they are used together they cannot specify what a foreman easily tells a human operator. Each aid has distinct limitations. Programmers using potentiometers tend to move each degree-of-freedom one at a time. Joysticks provide some coordination in controlling two or three degress-of-freedom, but robots typically have more than three. Voice control is a convenient method for specifying incremental motion in world or hand coordinates; however, if the increment is numerically specified, performance is limited in speed by the programmer's ability to quantify his visual information. Using the voice control technique of moving the robot in slow motion until a "Stop" utterance is given may be susceptible to the problem of timing consistency on the part of the programmer. Additionally, voice control is not well suited to describing complex trajectories. Currently voice control is also an expensive programming aid. CRT light pens are convenient for specifying points on a plane; however specifying points in three dimensional space on two screens is difficult. Describing a trajectory is very difficult. The cost of CRTs must also be weighed in a decision to include this programming aid. The use of a master-slave harness is perhaps the most expensive robot programming aid. It is also limited in some ways to robots with an anthropoid configuration. For example, adjustments of harness elbow elevation to avoid an obstacle may not cause a non-anthropomorphic arm to adjust appropriately. The programming technique of physically leading a robot through a sequence of motions is limited by safety considerations. Uncontrolled behavior is possible if power assist is used.

When using most programming aids, programmers come close to the robot to inspect the location of the gripper. This proximity endangers the programmer. For safety, it is desirable if a sequence of motions could be specified with the programmer in the workspace and the robot inactive.

Accordingly, it is an object of the present invention to provide a system adapted to facilitate the instruction or programming of numerically-controlled, industrial robots to enable such robots to perform new or additional tasks.

Another object is to permit such instruction or programming in a way similar to that used by one human instructing another.

Still another object is to provide a system that points out obstacles to the robot.

A further object is to provide a system to aid in programming of other numerically-controlled machine such as, for example, numerically-controlled machine tools.

A still further object is to provide such programming in a manner that does not endanger a human operator.

A still further object is to provide a visual system for industrial robots and the like that need not be rigidly positioned relative to a work surface or space.

These and still further objects are discussed hereinafter and are delineated in the appended claims.

The foregoing objects are achieved in a visual system to determine position in three-dimensional space and/or orientation in three-dimensional space, which includes a portable object arbitrarily movable in three-dimensional space and possessing the discernible properties of position in space and/or orientation in space. One or more sensors extract visual information or image data from the portable object and convert that information to an electric signal or signals. A computer, properly programmed is connected to receive the signal or signals from the sensor or sensors and evaluate the same to provide an indication of position in three-dimensional space and/or orientation in three-dimensional space. The computer, on the basis of the information received and in the light of its pre-programs, prepares messages that may be transmitted to the mechanically-active elements of one or more robots which, in turn, act or perform some function on the basis of the messages received.

The invention is hereinafter described with reference to the accompanying drawing in which:

FIG. 1 is a diagrammatic representation of a system employing the present inventive concepts and shows, among other things, portable means and a plurality of sensors;

FIG. 2 is a schematic representation, partly block diagram in form, showing a portion of the system of FIG. 1, the portable means being two lights and the sensor being a television camera;

FIG. 3 is an isometric view of some of the elements shown in block diagram form as separate elements in FIG. 1 but combined in FIG. 3;

FIG. 4 is a schematic representation, partly block diagram in form, of a modification of the system of FIG. 2 in that the later figure shows two cameras;

FIG. 5A shows a single camera as a sensor and portable means composed of three lights or light sources;

FIG. 5B shows a cluster of lights which, together, form a single light source of a type that can be employed as any one of the light sources in FIG. 5A;

FIG. 5C shows an arbitrarily-shaped distributed light source that can be used in FIG. 5A;

FIG. 6A is an isometric, diagrammatic representation of a machine that includes the present teachings;

FIG. 6B is a diagrammatic representation, partly block diagram in form, of an actual industrial robot system that has been experimented with;

FIG. 7 shows a plan-view layout for a typical industrial operation for the robot of FIG. 6;

FIG. 8 is a plan view showing typical visual programming parts with respect to the locations of FIG. 7;

FIG. 9 shows a fiducial array; and

FIG. 10 shows a modification of the portable means of FIG. 1.

As will be evident as the story unfolds, what the present inventors have done here is present a surrogate for a thing to-be-sensed in three-dimensional space or for a point, a line, or the like in such space. From the surrogate, can be obtained visual information or image data that can be interpreted and then used. The apparatus designated 102 in FIG. 1 includes a visual system 101 to determine position in space and/or orientation in space; in FIG. 1 the surrogate is the portable means shown at 1. The portable means 1 is arbitrarily movable in three-dimensional space and, as later discussed in detail, possesses the discernible properties of position in space and orientation in space. Sensors 2, 2', etc., are positioned to extract visual information or data from the portable means 1 and are operable to convert the visual information or data to an electric signal or signals. A computer 3 is connected to receive the electric signal or signals from the sensors 2, 2'... and is programmed to evaluate the same to provide an indication of position in space and/or orientation in space on the basis thereof. The apparatus 102 further includes robots 4A, 4B, etc., whose actions and movements are controlled by the computer on the basis of the visual data, as discussed in detail in later paragraphs. For convenience of explanation the visual system 101 in FIG. 1 and later described systems 101A and 101B include those elements that have to do with locating coordinates in space, the term "robot" designates the mechanical elements that perform some mechanical act, and the term "machine" is used to designate the two combined with some work space (e.g., a machine tool).

The portable means can be one or more lights; in FIG. 2 it is shown at 1A as two individual sources of light 10A and 10B. Each source acts effectively as a point source of light in the system 101A of FIG. 2. The sensor in FIG. 2 is a television camera 2A (two or more cameras can be employed). The lights 10A and 10B can be modulated ON-OFF, or their intensity and/or frequency can be modified by a sequencer 11 (the sequencer need not be a separate unit; sequencing functions can be performed by the computer); and the orientation of the lights in space and relative to the camera can be changed as now explained with reference to FIG. 3 wherein the elements 1A and a keyboard 5A are combined in a single portable unit or visual programming device (VPD) that is marked 20.

In the device 20, the lights are again designated 10A and 10B and the distance separating them can be changed by an operator using a control switch 8 which operates an activator (e.g., small electric motor or solenoid not shown). The device 20 is moved about by an operator who grasps the same at a hand grip 9. Electric power to the device 20 is connected through a cord 6 which serves, as well, to transmit messages between the device 20 and the computer 3.

The visual programming device 20 can be used to conveniently communicate spatial information to an industrial robot to cause the robot to perform some task such as, for example, to grasp an object in its gripper. It is held in a programmer's hand. It has an array of lights, the lights 10A and 10B, at one end, and a set of switches, the keyboard 5A, at the other end. The switches communicate information to the computer which, as previously noted, activates the robot (or robots). The lights may be under computer control. The VPD 20 shown has the lights 10A and 10B at the tips of a parallel jaw structure. This structure enables the two lights to be placed on opposite sides of an object, for example. The center of the two lights would, in this circumstance, correspond to a position that the programmer wants the center of the robot's gripper (see fingers 70 and 71 in FIG. 6A) to assume. A motor activated by the switch 8 on the VPD controls the distance between the two lights 10A and 10B, as previously discussed. Distance information may be sensed and communicated to the control computer 3. This information may be used to verify visual computations. The distance between light support members 12A and 12B can be made large to surround large objects without blocking the line of sight from the TV camera 2A to the lights 10A and 10B. This distance can be made small to avoid interference with work station structures. Although programming can be done with the workpiece in position, workpiece presence is not required by the visual programming technique herein disclosed.

If the vision system has one television camera, as it has in FIG. 2, the image of a small light can only specify a point in a plane. This plane may be horizontal and just above the dominant materials handling surface of the workstation. To specify points in space only a single light is necessary. A switch on the keyboard 5A can be pressed to record each point, a numerical keyboard entry may be used to specify how far beyond or inside the reference plane is the three dimensional command point. This three dimensional approach suffers either from inaccuracies in estimated distances or a time consuming measurement process. For applications where pick and place points are in the same plane, a vision system with one television camera may suffice. Macros such as "go forward to reference plane, close gripper, back off from reference plane" might be issued with a single placement of the VPD 20 and activation of a particular switch on the VPD keyboard 5A.

If the vision system has two television cameras, as shown at 2A and 2B in FIG. 4, the three-dimensional location of the lights on the VPD may be computed directly. The accuracy of this computation depends on the vision system. For fixed camera mounts, factors affecting accuracy include the field of view, spatial sampling rate, inter-camera geometry, location of lights relative to television cameras, and camera geometric distortion. To quantify the magnitude of the accuracy issue, one can assume a 100 cm line in a reference plane perpendicular to the optical axis. If this line covers a horizontal scan line with 250 samples/line and the light activates a single picture element, location is theoretically limited to .+-. 2 mm. For cameras with pan/tilt mounts, precision servo-mechanisms are important.

To describe the proper way to grasp a workpiece, the vector from one robot fingertip to the other fingertip must be specified. For this purpose, the design of FIG. 3 is also appropriate. Each light specifies where each robot fingertip (the robot's fingers are marked 70 and 71 in FIG. 6A and the fingertips are marked 70A and 71A, respectively) is to be before a grasping instruction is issued. The centroid between fingertips (points in space) and orientation between fingertips may be specified at the same time. However, if a light is obscured, fingertip orientation may be specified elsewhere in the field of view. Activation of switches on the keyboard 5A may be used to tell the system how to interpret the visual instruction. Three types of instruction have been described thus far: (1) point in space, (2) orientation between fingertips, and (3) point in space plus orientation between fingertips.

If a VPD with just one light is used, positions and orientation between fingertips cannot be specified at the same time. However, this can be done in a two-step procedure. Activation of one control switch specifies a point in space. Activation of another switch signals the computer to use the present light position and the most recently specified position to compute an interfingertips direction vector.

If the two light VPD in FIG. 3 is used to specify a unique orientation between a pair of robot fingertips which are structurally different, a distinction between the two lights must be made. This distinction is possible using colored lights, but then the television camera must have provisions for color vision. Another method of distinguishing lights is to turn them on and off sequentially by the sequence 11 under the proper control of the computer 3. With this scheme, each light is sensed during a different frame of the television camera. The time required for this technique is limited by turn-on and turn-off times of the lights and of the photosensitive element of the television camera. Lights may also be distinguished by size or intensity. Intensity discrimination requires a grey scale interface between the television camera and the computer. Light size does not map directly to image size due to distance attenuation and directionality of light sources.

A distinction between lights is also useful for the case depicted in FIG. 4 wherein it is assumed that the four points of ray intersection marked 21A, 21B, 21C and 21D are in the same plane. In this case, it is not possible to distinguish from the light image geometry which of the two combinations of positions is actually the case without further measures. Even interlight distance information will not always lead to a distinction between the two cases since both possibilities may have the same interlight distance. The region in space where interlight distance is the same is a function of the angle between the optical axes of the two television cameras 2A and 2B. This region in space is widened by limitations on estimating distances using stereo vision. To overcome the ambiguity presented by the configuration of FIG. 4, it is necessary to identify the individual light 10A and 10B by, for example, the ON-OFF procedure above-described.

In addition to the vector between robot fingertips 70A and 71A, a vector pointing in the direction of the fingers 70 and 71 in FIG. 6A will frequently have to be specified. For example, to make more rigid contact with a particular class of workpiece, robot fingers may have contact surfaces which are not symmetric. Another reason for wanting to specify finger direction is to prevent the wrist structure shown at 72 in FIG. 6A from colliding with workstation structures.

Finger direction can be specified by a third light in the array 1B as shown in FIG. 5 wherein the third light is labeled 10C. Assuming that the three lights can be located and distinguished, a robot finger direction vector can be computed which is in the plane defined by lights 10A and 10B and the third light 10C. The finger direction vector may be specified as being perpendicular to the line between lights 10A and 10B and passing through the third light 10C. Finger direction can also be specified by using a VPD with a single light, as above noted; in this latter case the light would be located where the third light is located using the three-light technique. Activation of a switch on the keyboard tells the computer to interpret this single light location as data to specify finger direction relative to the most recent fingertips direction vector or to the most recently specified point in space.

For situations involving a vision system having a single television camera, as depicted in FIG. 2, it will often be adequate to make the general specification that robot finger direction is to be perpendicular to the reference plane. For other situations the general specification of a vertical finger direction (e.g., horizontal reference plane) will be appropriate.

Specification of trajectories is useful to avoid obstacles, contouring and for special applications such as, for example, paint spraying, welding or applying adhesives. A trajectory is specified by an initial gripper configuration (location and orientation), an ordered set of intermediate gripper configurations, a final gripper configuration and the time for transit between each adjacent pair of gripper configurations. The gripper passes through the intermediate gripper configurations without halting. Servomechanisms to achieve this form of motion are available.

As described above, a VPD can conveniently specify gripper configurations. Thus a VPD is a useful means to specify trajectories. A number of options are possible to specify the time for each segment of the trajectory. For many situations, it is appropriate to minimize the time to traverse a trajectory. A command on the keyboard 5A can specify the minimizing function. In this case, intermediate gripper configurations may be passed through with less accuracy. A second approach is to have keyboard entries specify the time for a trajectory segment immediately after specifying the concluding gripper configuration for that segment. Rather than use numerical entries, selection of standard "slow," "medium" and "high" speeds may be preferable. A third approach is to activate a realtime sampling algorithm. In this case the servo system would be instructed to replicate the timing of the robot programmer. Keyboard entries could specify if a fraction or a multiple of measured realtime performance was desired for playback.

The VPD 20 specifies gripper position and orientation. Robot arms with different kinematic and structural configurations will have links occupying different portions of a workspace for the same gripper position and orientation. Movement toward a particular gripper configuration may cause the problem of contact between an arm structure and a workstation structure. One solution to the problem is to use the VPD to specify a set of points from which an envelope of workstation structures can be computed. If such a set of points is specified before initiating standard VPD programming, a gripper configuration command can be refuted in the event that a collision is predicted. The robot programmer would be notified of the result so that he can try another gripper configuration.

For a robot arm with redundant degrees-of-freedom, a search can be conducted to select an arm configuration which avoids obstacles. Subsequent refinement of the search for an arm configuration would have as a goal the stipulation that the configuration be rapidly attained as an intermediary between the previous gripper configuration command and the next one. A scheme for modeling the outlines of obstacles and arm links is discussed in one of the references mentioned in said paper.

The explanation in this and the next several paragraphs is made with respect to FIGS. 6A and 6B. FIG. 6A illustrates diagrammatically what for present purposes is called a machine that is assigned the numeral 103; the machine 103 consists of a worktable 91 having a work surface 90, a visual system 101B and a robot 4M; other mechanical parts of the robot 4M are shown in FIG. 6B. In a sense, the whole of the elements in FIGS. 6A and 6B could be called a robot, but as used herein and as above noted, the term "robot" in all variations embraces the mechanical and electro-mechanical parts shown in some detail in FIG. 6B. Also, strictly speaking, the work surface 90 need not be part of a machine of which the robot 4M is also a part, but it can be; and it is assumed such for this explanation. Anyway, the cylindrical object labeled 60 in FIG. 6A is located or found within the working volume of the machine and, more precisely, its x-y coordinates are determined (its external dimensions are determinable, as well) by interaction between the VPD 20, the camera 2A and the computer 3, as now explained.

Various x-y coordinates on the surface 90 are located with respect to fiducial or reference means 50 that comprises a plurality of lights 51A and 51B (there may also be three lights as shown in FIG. 9, or more, and each elements 51A ... need not be a light, nor a single light). The important matter here is that the location of the fiducial means 50 be fixed relative to the workable surface 90 or be determinable relative thereto. In FIG. 6A the TV camera 2A is attached to a camera arm 74. The camera arm 74 and the arm 73 of the robot 4M are assumed for present purposes to bear a known spatial relationship relative to one another and the computer 3 is pre-programmed to be aware of the relationship. The TV camera 2A is situated so as to be able to view the lights 51A, 51B, etc. in the same scene or separate scenes through pan and tilt motion of the camera. The visual location of the lights 51A, 51B, etc. is noted. These data are interpreted by the computer 3 to yield x-y coordinates of the fiducial means 50. In the same way, the location of the object 60 on the work surface 90 is achieved using the VPD 20 in the manner previously indicated. The TV camera 2A visually locates the VPD lights 10A, 10B. The computer 3 interprets these data to yield the x-y position of the object which is determined relative to the fiducial means 50. The robot 4M has an end effector or wrist structure 72 comprising the fingers 70 and 71, as previously mentioned. The computer 3 also extracts orientation information from the VPD data which permit the wrist structure 72 to be aligned for purposes of grasping the object 60 with the fingers 70 and 71. The end purpose here is to have the robot 4M grasp the object 60 in the fingers 70 and 71 and, say, move it to another location in the work space or volume.

The robot 4M can independently move the end effector 72 along each of three mutually orthogonal axes, one of which is perpendicular to the worktable surface 90. The robot 4M can also rotate the end effector 72 about an axis which is perpendicular to the worktable surface 90. The fingers 70 and 71 on the end effector 72 can be closed and opened to permit the robot to grasp and release the workpiece 60. The fiducial array 50 is r