Two-hand detection in teaching by demonstration
The method employs a single camera and neural networks to accurately detect and program industrial robots for two-handed tasks, addressing the inefficiencies of conventional methods by enabling faster and more intuitive robot programming.
Patent Information
- Application Number
- JP2021131948
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-09-11
- Filing Date
- 2021-08-13
- Publication Date
- 2025-04-28
- Estimated Expiration
- 2041-08-13
AI Technical Summary
Conventional methods for teaching industrial robots to perform operations, such as grabbing and placing parts, are often intuitive but time-consuming and error-prone, especially when dealing with two-handed tasks that require accurate detection of left and right hands.
A method using a single camera to capture images of a human performer's hands, where a first neural network identifies the left and right hands and provides cropped sub-images, and a second neural network detects hand poses, allowing for the conversion of hand posture data into robot gripper posture data for programming.
This approach enables faster, more intuitive, and accurate robot programming by reliably detecting hand positions and postures without imposing artificial constraints on hand movement, thus improving the efficiency of two-handed operations.
Smart Images

Figure 0007669231000001 
Figure 0007669231000002 
Figure 0007669231000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to the field of industrial robot programming, and more particularly to a method for identifying the left and right hands of a human performer from a camera image and detecting the pose of the hands from the image. The hand identification and pose data is used to teach or program a robot to perform an operation through human demonstration. [Background technology]
[0002] It is well known to use industrial robots to perform a variety of repetitive operations such as manufacturing, assembly, and material transfer. However, teaching a robot to perform even a very simple operation such as picking up a workpiece from a random position and orientation on a conveyor and moving the workpiece to a container has traditionally been problematic.
[0003] One conventional method of teaching a robot involves an operator using a teach pendant to instruct the robot to perform a step-by-step motion, such as "go in X direction" or "rotate the gripper around the local Z axis," storing the motion data and repeating it over and over again until the robot and its gripper are in the correct position and orientation to perform the operation. Another known technique for teaching a robot to perform an operation involves the use of a motion capture system in conjunction with human demonstration. Because robot programming using a teach pendant and a motion capture system has proven to be unintuitive and either time-consuming or expensive or both, a technique for teaching a robot by human demonstration using camera images has been developed.
[0004] In some types of manipulation, such as assembling a device that is composed of many parts, humans naturally use both hands to perform the manipulation task. In order to accurately teach a robot in such cases, it is necessary to reliably detect the left and right hands of a human performer. One known method for identifying the left and right hands of a human performer involves providing a camera image of the human's entire body, performing an anthropomorphic analysis of the image to identify the left and right arms, and then identifying the left and right hands based on the identification of the arms. However, this technique requires a camera image for identifying the arms / hands that is separate from the images required for hand pose detection, and further requires an additional computational step for body skeletal analysis.
[0005] Other techniques that may be used to identify a human performer's left and right hands require each hand to maintain a relative position to the other, or require all taught movements of each hand to remain within boundaries, but these techniques impose constraints on the natural hand movements of a human performer that are difficult to maintain and risk misidentifying the hand if the constraints are violated.
[0006] In view of the above, there is a need for improved techniques for two-hand detection in robot teaching by human demonstration. Summary of the Invention
[0007] In accordance with the teachings of the present disclosure, a method for two-hand detection in teaching a robot by human demonstration is described and illustrated. A camera image of a human demonstrator's hands and a workpiece is provided to a first neural network that identifies the human demonstrator's left and right hands from the image and further provides cropped sub-images of the identified hands. The first neural network is trained with images in which the left and right hands have been previously identified. The cropped sub-images are then provided to a second neural network that detects the poses of the left and right hands from the image. If the second neural network is trained with right hand images, the left hand sub-image is flipped horizontally before and after hand pose detection. The hand pose data is converted to robot gripper pose data and used to teach the robot to perform an operation through human demonstration.
[0008] Additional features of the disclosed apparatus and methods will become apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. [Brief description of the drawings]
[0009] [Figure 1] FIG. 1 illustrates a method for analyzing an image of a human hand and determining the corresponding position and orientation of a fingered robotic gripper, according to one embodiment of the present disclosure. [Diagram 2] FIG. 2 illustrates a method for analyzing an image of a human hand and determining the corresponding position and orientation of a magnetic or suction cup type robotic gripper, according to one embodiment of the present disclosure. [Diagram 3] FIG. 3 is a diagram of a system and process for identifying hand position and pose from camera images of a human performer's hands, according to one embodiment of the present disclosure. [Figure 4] FIG. 4 is a diagram of a process for training a hand detection and identification neural network for use in the system of FIG. 3 according to one embodiment of the present disclosure. [Diagram 5] FIG. 5 is a flow diagram of a method for identifying hand position and pose from camera images of a human performer's hands, according to one embodiment of the present disclosure. [Figure 6]FIG. 6 is a flow diagram of a method for teaching a robot to perform an operation using camera images of a human performer's hands and a corresponding workpiece, according to one embodiment of the present disclosure. [Figure 7] FIG. 7 is a diagram of a system for robotic manipulation based on teaching by two-handed human demonstration, according to one embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] The following discussion of embodiments of the present disclosure relating to two-hand detection in robot teaching by human demonstration is merely exemplary in nature and is in no way intended to limit the disclosed devices and techniques or the applications or uses of these devices and techniques.
[0011] The use of industrial robots for a variety of manufacturing, assembly, and material transfer operations is well known. One known type of robotic operation is sometimes known as "pick, move, and place." The robot picks up a part or workpiece at a first location and moves the part to place it at a second location. The first location is often a conveyor belt with randomly oriented parts, such as parts just removed from a mold. The second location may be another conveyor or a shipping container leading to a different operation, but in either case the part must be placed in a specific location and oriented in a specific pose at the second location. Other robotic operations, such as assembling multiple components into a device such as a computer case, similarly require parts to be picked from one or more sources and placed in precise locations and orientations.
[0012] To perform the types of operations described above, the robot must determine the location and orientation of the incoming part, typically using a camera, and then be taught to grip the part in a particular way using finger grippers or magnetic or suction grippers. Teaching the robot how to grip the part depending on the part's orientation has typically been done by a human operator using a teach pendant. The teach pendant is used by the operator to instruct the robot to make incremental moves, such as "go in X direction," or "rotate gripper around local Z axis," until the robot and its gripper are in the correct position and orientation to grip the workpiece. The robot configuration and the workpiece location and orientation are then recorded by the robot controller for use in the "pick" operation. Similar teach pendant instructions then define the "move" and "place" operations. However, using the teach pendant to program the robot is often non-intuitive, error-prone, and time-consuming, especially for non-expert operators.
[0013] Another known technique for teaching a robot to perform pick, move and place operations involves the use of a motion capture system. A motion capture system consists of multiple cameras positioned around a work cell to record the positions and orientations of a human operator and the workpiece as the operator manipulates the workpiece. Uniquely recognizable marker dots may be affixed to the operator or the workpiece or both to more accurately detect key positions of the operator and workpiece within the camera images as the operations are performed. However, this type of motion capture system is expensive and difficult and time consuming to precisely set up and configure so that the positions recorded are accurate.
[0014] A technique has been developed that overcomes the limitations of existing robot teaching methods described above, which involves using a single camera to capture images of a person performing natural part grasping and movement movements, and then analyzing the images of the person's hand and its position relative to the part to generate robot programming instructions.
[0015] 1 is a diagram illustrating a method for analyzing an image of a human hand and determining a corresponding position and orientation of a fingered robotic gripper, according to one embodiment of the present disclosure. A hand 110 has a hand coordinate system 120 defined to be attached to the hand. The hand 110 includes a thumb 112 having a thumb tip 114 and an index finger 116 having an index finger tip 118. Other points on the thumb 112 and index finger 116 may also be identified in the camera image, such as the location of the bases of the thumb 112 and index finger 116, and the location of the first joints of the thumb 112 and index finger 116.
[0016] Point 122 is located midway between the base of thumb 112 and the base of index finger 116, and point 122 is defined as the origin of hand coordinate system 120. The orientation of hand coordinate system 120 may be defined using any convention suitable for correlating with the orientation of the robotic gripper. For example, the Y-axis of hand coordinate system 120 may be defined as perpendicular to the plane of thumb 112 and index finger 116 (the plane is defined by points 114, 118, and 122). Thus, the X-axis and Z-axis are in the plane of thumb 112 and index finger 116. Furthermore, the Z-axis may be defined as bisecting the angle made by thumb 112 and index finger 116 (angle 114-122-118). The orientation of the X-axis can be found from the known Y-axis and Z-axis by the right-hand rule. As mentioned above, the conventions defined here are merely exemplary and other coordinate system orientations may be used instead. What is important is that the position and orientation of the coordinate system can be defined based on the main recognizable points of the hand, and the position and orientation of the coordinate system can be correlated with the position and orientation of the robot's gripper.
[0017] A camera (not shown in FIG. 1 , but described below) may be used to provide an image of the hand 110. The image may be analyzed to determine the spatial positions (e.g., within a work cell coordinate system) of the thumb tip 114 and index finger tip 118 and knuckle portions, i.e., the thumb 112 and index finger 116, including the origin position 122 and the orientation of the hand reference coordinate system 120. In FIG. 1 , the position and orientation of the hand reference coordinate system 120 are correlated with a gripper coordinate system 140 of a gripper 150 mounted on a robot 160. The gripper coordinate system 140 has an origin 142 that corresponds to the origin 122 of the hand reference coordinate system 120, and points 144 and 146 that correspond to the index finger tip 118 and thumb tip 114, respectively. Thus, the two fingers of the finger gripper 150 lie in the X-Z plane of the gripper coordinate system 140, with the Z axis bisecting the angle 146-142-144.
[0018] The origin 142 of the gripper coordinate system 140 is also defined as the tool center point of the robot 160. The tool center point is a point whose position and orientation is known to the robot controller, which can provide command signals to the robot 160 to move the tool center point and its associated coordinate system (the gripper coordinate system 140) to a defined position and orientation.
[0019] 2 illustrates a method for analyzing an image of a human hand to determine the corresponding position and orientation of a magnetic or suction cup type robotic gripper, according to one embodiment of the present disclosure. Figure 1 illustrates how to relate hand pose to the orientation of a mechanical gripper with movable fingers, while Figure 2 illustrates how to relate hand pose to a flat gripper (e.g., circular) that uses either suction or magnetic forces to lift a part at the plane of the part.
[0020] The hand 210 also includes a thumb 212 and an index finger 216. A point 214 is located at the point where the thumb 212 contacts the part 220. A point 218 is located at the point where the index finger 216 contacts the part 220. A point 230 is defined as being midway between points 214 and 218, and point 230 corresponds to a tool center point (TCP) 240 of a surface gripper 250 of the robot 260. In the case of the surface gripper 250 shown in FIG. 2, the plane of the gripper 250 may be defined as the plane containing the lines 214-218 and perpendicular to the plane of the thumb 212 and index finger 216 based on detection of the knuckles and finger tips. The tool center point 240 of the gripper 250 corresponds to point 230, as described above. This fully defines the position and orientation of the surface gripper 250 corresponding to the position and pose of the hand 210.
[0021] Techniques for teaching a robot to perform an operation based on human demonstrations, and in particular based on analysis of camera images of the human hand and workpiece, are described in commonly assigned U.S. patent application Ser. No. 16 / 843,185, entitled "ROBOT TEACHING BY HUMAN DEMONSTRATION," filed April 8, 2020. U.S. patent application Ser. No. 16 / 843,185 (hereinafter the "'185 application") is incorporated herein by reference in its entirety. Among other things, the '185 application discloses techniques for determining 3D coordinates of key points of a hand (such as knuckles) from a camera image of the hand.
[0022] For some types of manipulation, such as assembling a device that is composed of several components, a human performer naturally uses both hands to perform the manipulation task. In order to accurately teach a robot in such cases, the left and right hands of the human performer need to be reliably identified in the image. One known method for identifying the left and right hands of a human performer involves providing a camera image of the human's entire body, performing an anthropomorphic analysis of the body image to identify the left and right arms, and then identifying the left and right hands based on the identification of the arms. However, this technique requires separate camera images to identify the arms / hands from those required for hand pose detection, and further requires an additional computational step for skeletal analysis of the body. Other two-handed teaching methods prohibit the human performer from crossing one hand "opposite" the other.
[0023] This disclosure describes techniques for reliably determining the identification, location and pose of a human performer's hands in a camera image using the interest point detection methods of the '185 application, without imposing artificial restrictions on the performer's hand use or movement, and without requiring full-body imaging and analysis, as required by existing methods.
[0024] 3 is a diagram of a system and process for determining hand position and pose from camera images of a human demonstrator's hands, according to one embodiment of the disclosure. Camera 310 provides an image of the training workspace, i.e., the area that the operator's hands will occupy while performing a teaching demonstration. The training workspace may be, for example, a tabletop on which a device is assembled. Camera 310 is preferably a two-dimensional (2D) camera that provides a color image of the training workspace, but does not provide depth information as a 3D camera does.
[0025] Camera 310 provides image 312 as shown in Figure 3. The processing of image 312 is described in detail in Figure 3. Camera 310 provides a continuous series of images, each of which is processed as shown in Figure 3 to provide a complete motion sequence used by the robot to pick up a part, move it to a new location, and place it in a desired pose. The human demonstrator is at the top of image 312, so his right hand is shown on the left side of image 312 and his left hand is shown on the right side of image 312.
[0026] The image 312 is analyzed by a first neural network 320 to determine the identity and location of left and right hands in the image 312. The first neural network 320 can identify left and right hands from an image of just the hands (rather than the whole body), providing capabilities not available in prior art hand image analysis systems. The first neural network 320 identifies left and right hands based on clues such as finger curvature (the fact that the fingers on a human hand can only bend in one direction) and the relative position of each finger to the thumb, regardless of the relative position of the hand in the image 312. With proper training (described below with reference to FIG. 4), the first neural network 320 has been demonstrated to quickly and reliably determine the identity and location of left and right hands in the image 312.
[0027] Based on the output of the first neural network 320 in box 330, a cropped image of a right hand 332 and a cropped image of a left hand 334 are created. Again, the right hand image 332 and the left hand image 334 are determined based on the actual identification of the hands through image analysis by the first neural network 320, rather than simply based on the position of the hands in images 310 / 312. That is, in some images, the hands may be crossed such that the left and right hands are shown opposite the expected "normal" position.
[0028] The right hand image 332 and the left hand image 334 are positively cropped around the hands as shown to maximize the amount of image resolution and minimize the amount of redundant data provided for subsequent analysis. The right hand image 332 is provided to a second neural network 350 at line 342. The second neural network 350 analyzes the image 332 to determine three-dimensional (3D) coordinates of a number of key points on the right hand. The key points include the finger tips, knuckles, thumb tip, and thumb knuckle. The second neural network 350 is trained using many images of a particular hand (assumed to be a right hand for purposes of illustration). Techniques for determining the 3D coordinates of hand key points from an identified image of a known (left or right) hand are disclosed in the previously referenced 16 / 843,185 application.
[0029] Image 334 of a left hand is provided at line 344. If second neural network 350 is being trained to recognize key points in images of right hands, image 334 of the left hand must be horizontally flipped at box 346 before being provided to second neural network 350. Second neural network 350 analyzes the flipped version of image 334 to determine three-dimensional (3D) coordinates of a number of key points (fingertips, knuckles, etc.) of the left hand. Because image 334 has been flipped horizontally, second neural network 350 can analyze the flipped image 334 exactly as if it were an image of a right hand.
[0030] Incidentally, the second neural network 350 may be trained using images of either left or right hands. If images of right hands are used to train the second neural network 350, images of left hands must be inverted for processing by the second neural network 350, and vice versa.
[0031] At line 362, a 3D "wireframe" structure of the right hand is provided in box 372. As explained in detail in the above-referenced 16 / 843,185 application, the 3D wireframe structure of the hand output by the second neural network 350 includes the key points of the hand structure and their connections to the extent that they can be determined based on the visibility in the original image (e.g., the bone segment of the index finger connecting the finger tip at coordinates X1 / Y1 / Z1 to the first joint at coordinates X2 / Y2 / Z2), i.e., it cannot resolve the location of fingers or parts of fingers that are obscured by bending down in the image.
[0032] At line 364, the 3D wireframe structure of the left hand is output from the second neural network 350. The horizontal coordinates (usually the X coordinates) of the key points of the left hand must be flipped in box 366 before being provided to box 374. The horizontal flip in box 366 must be along the same mirror plane (e.g., the Y-Z plane) as the flip of the original image in box 346.
[0033] As a result of the above image analysis, box 372 contains the 3D wireframe structure of the right hand (3D coordinates of the tips and joint points of the fingers and thumb), and box 374 similarly contains the 3D wireframe structure of the left hand. Using the 3D coordinate data from the hands, the gripper coordinates can be calculated, as shown in Figures 1 and 2 and described above. In this manner, the position and orientation of the gripper is calculated and output on line 380.
[0034] Figure 4 is a diagram of a process for training a hand detection and identification neural network 320 for use in the system of Figure 3, according to an embodiment of the present disclosure. A first neural network 320 is shown in the center of Figure 4. The first neural network 320 is responsible for identifying and locating left and right hands in an image, as shown in Figure 3 and described above. Training the first neural network 320 to recognize left and right hands is accomplished by providing the first neural network 320 with many training images. In the training images, the left and right hands are in predetermined relative positions.
[0035] Image 410 is an example of a training image used to train the first neural network 320. Image 410 includes the left and right hands of a human performer, with the left and right hands in known relative positions, such as on a given side of a dividing line or identified within a bounding box. One way to predetermine the positions of the left and right hands in image 410 is for the hands to be in their "normal" relative positions (not crossed at the wrist). Another way to predetermine the positions of the left and right hands in image 410 is for the hands to be located on either side of a dividing line 412. In image 410, dividing line 412 is at or near the image center, but need not be. If the hands cross at the wrist, the bounding box is manually annotated with the positions of the left and right hands.
[0036] The first neural network 320 is a multi-layer neural network including an input layer, an output layer, and typically two or more hidden layers, as known to those skilled in the art. The first neural network 320 is trained to recognize images of hands and recognize structural characteristics of hands that distinguish left and right hands. A combination of several factors, such as the curvature of the fingers (which only bend in one direction toward the palm) and the relative position of the thumb and fingers, can distinguish between up and down, left and right for a particular hand. Because the first neural network 320 knows the identity of left and right hands before analyzing each image, the neural network 320 can automatically build a structure of layers and nodes for the neural network 320 to reliably correlate structural features with the identity of the hand. Through training to analyze multiple images, the first neural network 320 learns to recognize structural features characteristic of right hands versus features characteristic of left hands.
[0037] Output image 420 shows the results of training with image 410. A hand is detected and placed in box 422, and the first neural network 320 recognizes that the hand is a right hand based on the position of the hand relative to the dividing line 412. (The person's right hand is on the left side of image 410 / 420 because the person's body is at the top of image 410 / 420.) Similarly, a hand is detected and placed in box 424, and the first neural network 320 recognizes that the hand is a left hand based on the position of the hand. As indicated by boxes 422 and 424, a technique is employed to crop a sub-image around the hand, e.g., the sub-image is cropped to an area that includes all visible finger tips and thumb tip, as well as what is identified as the wrist joint.
[0038] Image 430 is another example of a training image used to train the first neural network 320. Image 430 also includes the left and right hands of a human performer, with the left and right hands identified within bounding boxes. In image 430, a bounding box 432 is provided as an annotation or indexing property that identifies the right hand. Because the performer's hands are crossed in image 430, the right hand is located where the left hand would be expected. However, because of the bounding box identification, the first neural network 320 knows that the hand within bounding box 432 is the performer's right hand. Similarly, a bounding box 434 is provided as an annotation or indexing property that identifies the left hand.
[0039] Output image 440 shows the result of training with image 430. A hand is detected and placed within box 442, which is essentially the same as bounding box 432, and the first neural network 320 recognizes that the hand is a right hand based on the bounding box information, even though the hand is crossed. Similarly, a hand is detected and placed within box 444, and the first neural network 320 recognizes that the hand is a left hand based on the bounding box information. By analyzing the hands in boxes 442 and 444 in images 430 / 440, the first neural network 320 is progressively trained for discriminatory hand detection.
[0040] Image 430 is very different from image 410. The input images include different human performers, different components, actions and backgrounds, gloves and ungloved, and even slightly different camera angles (perspectives). These differences in the input training images help train the first neural network 320 to robustly recognize hand structure and identity in images that it will process during the actual execution phase of robot teaching.
[0041] Many other input images 450 are provided to the first neural network 320 for training. Each input image 450 results in an output image 460 in which left and right hands are located and identified, as shown in Figure 4. After training, the first neural network 320 can be used to identify left and right hands (even when the hands are crossed) in image 312 and provide cropped sub-images containing the properly identified hands, as shown in Figure 3. A test system has been developed to demonstrate the ability of neural networks such as the first neural network 320 to quickly and accurately identify right and left hands in images just described, even when the left and right hands repeatedly overlap, cross, and uncross in a successive series of images.
[0042] 5 is a flow diagram 500 of a method for identifying hand position and pose from camera images of a human performer's hands, according to one embodiment of the present disclosure. Flow diagram 500 illustrates method steps corresponding to the system block diagram of FIG.
[0043] In box 502, an image is provided that includes both hands of a human demonstrator. Preferably, images such as image 312 in FIG. 3 do not include the entire human body. Also, the left and right hands in the image need not be in "normal" or "expected" relative positions. The image shows the human demonstrator using both hands to perform an operation on one or more workpieces, such as the assembly of a device made up of multiple components, picking up and placing individual components. In practice, images would be provided in rapid succession (multiple images per second) so that a series of spatial grasping and placing operations can be taught. In addition to hand identification, position and pose, the position and pose of the workpiece would also be determined from the image and used in combination with the hand ("gripper") data for robot teaching.
[0044] In box 504, the first neural network 320 is used to determine the identity and location of the left and right hands in the provided image. The operations performed in box 504 are described in detail above. In box 506, the source image is cropped into two sub-images, one containing the left hand and one containing the right hand. The identity of the hands is provided in the sub-images.
[0045] In box 508, the right hand sub-image is analyzed using second neural network 350 to detect finger structure and hand posture. The operations performed in box 508 are described above and in detail in the above-referenced 16 / 843,185 patent application. Because second neural network 350 is trained to detect hand structure using images of either right or left hands, the sub-image must be properly identified prior to analysis by second neural network 350. Flow diagram 500 assumes that second neural network 350 has been trained using images of right hands. Thus, the right hand sub-image from box 506 is passed directly to box 508.
[0046] In box 510, the left hand sub-image is flipped horizontally before being provided to box 508 for analysis. Again, it is assumed that the second neural network 350 has been trained using right hand images. Thus, the left hand sub-image from box 506 must be flipped horizontally before being passed to box 508. The reverse procedure applies as well: if the second neural network 350 has been trained using left hand images, then the right hand sub-image is flipped before analysis.
[0047] In box 512, the finger structure and hand pose data of the right hand (3D coordinates of key points of the hand skeleton) are used to calculate the corresponding gripper pose, which is output (along with the workpiece pose data) as a teaching step for the robot. A complete method for teaching a robot from images of human demonstrations (hand and workpiece) is described below.
[0048] In box 514, the horizontal coordinate (e.g., X coordinate) of the finger structure and hand pose data for the left hand from box 508 is flipped, and then the data is used in box 512 to calculate a corresponding gripper pose that is output as a teaching step for the robot. To return the 3D coordinate data of the hand to its proper location in the original input image, the horizontal coordinate data must be mirror-flipped or a reflection created.
[0049] As will be appreciated by those skilled in the art, the calculation of the 3D coordinates of the hand pose requires that the locations of the left and right hand sub-images in the original input image must always be known. Furthermore, the pixel coordinates of the provided original image must be mapped to the physical workspace where the performance is taking place, so that the 3D position and orientation of the gripper and workpiece can be calculated from the image pixel coordinates.
[0050] From box 512, the robot teaching steps are output and recorded for programming the robot, including the gripper position and pose calculated from the left and right hand pose coordinate data, and the corresponding workpiece position and pose. The process then loops back to box 502 to receive another input image.
[0051] 6 is a flow diagram 600 of a method for teaching a robot to perform an operation using camera images of a human performer's hands and a corresponding workpiece, according to one embodiment of the disclosure. The flow diagram 600 is arranged in three vertical columns corresponding to a pick operation (right), a move operation (center), and a place operation (left). The three individual operations show how images of the hands and workpiece are analyzed to create a motion program for the robot. In these operations, detection of both hands in the images is essential.
[0052] The pick process begins in start box 602. In box 604, a workpiece and hands are detected in an image from camera 310. The two hand detection method described in detail above is used in box 604. The position and orientation of the workpiece coordinate system is determined from an analysis of the workpiece in the image, and the position and orientation of a corresponding hand coordinate system is determined from an analysis of the hand in the image.
[0053] In decision diamond 606, for each hand, it is determined whether the fingertips (thumb tip 114 and index finger tip 118 in FIG. 1) have contacted the workpiece. This is determined from the camera images. If the fingertips have contacted the workpiece, then in box 608 the gripping pose and position of the workpiece and hand are recorded. It is important to identify the pose and position of the hand relative to the workpiece; that is, the position and orientation of the hand coordinate system and the workpiece coordinate system must be defined relative to some global, fixed reference coordinate system, such as the workcell coordinate system. This allows the controller to determine how to position the gripper to grab the workpiece during a later playback phase. This workpiece contact analysis is performed for each of the right and left hands.
[0054] After the gripping pose and position of the workpiece and hand are recorded in box 608, the pick step ends in end box 610. The process then proceeds to the move step beginning in box 622. The move step can be performed separately for each hand. In box 624, the workpiece is detected in the camera image. If, in decision diamond 626, the workpiece is not detected in the camera image, the process loops back to box 624 to capture another image. If a workpiece is detected in the camera image, the position (and optionally the pose) of the workpiece is recorded in box 628.
[0055] In box 634, a hand (either hand - whichever is performing the current move operation) is detected in the camera image. If, in decision diamond 636, a hand is not detected in the camera image, the process loops back to box 634 to capture another image. If a hand is detected in the camera image, the hand position (and optionally the pose) is recorded in box 638. If both the workpiece position (from box 628) and the hand position (from box 638) are detected and recorded from the same camera image, the hand position and workpiece position are combined and recorded in box 640. To combine the hand position and workpiece position, one may simply take the average of the two. For example, if the midpoint of the thumb tip 114 and index finger tip 118 should coincide with the workpiece center / origin, an average position can be calculated between the midpoint and the workpiece center.
[0056] Multiple positions along the move step are preferably recorded to define a smooth move path by repeating the operations from "Start Move" box 622 through "Combine Hand and Workpiece Positions" box 640. In box 640, the hand position and workpiece position are combined and recorded, and the move step ends in end box 642 after no more positions are needed for the move step. The process then proceeds to the place step beginning in box 662.
[0057] In box 664, the location of the workpiece is detected in the image from the camera 310. In decision diamond 666, it is determined whether the workpiece is found in the camera image and if it is stationary. Alternatively, it can be determined whether the finger tips have left contact with the workpiece. If the workpiece is determined to be stationary and / or if the finger tips have left contact with the workpiece, then in box 668 the pose and position of the workpiece at the time of arrival is recorded. The entire process of the placing and teaching phase ends in end box 670.
[0058] The robot teaching process described in flow diagram 600 of Figure 6 relies on robust detection of human hand poses in images. If the human performance includes the use of both hands, then the two-hand detection methods and systems of Figures 3-5 become an essential part.
[0059] FIG. 7 is a diagram of a system 700 for robot manipulation based on teaching by two-handed human demonstration, according to one embodiment of the disclosure. A human performer 710 is positioned so that a camera 720 can capture images of the performer's hands and the workpiece being manipulated. Camera 720 corresponds to camera 310 of FIG. 3. Camera 720 provides images to a computer 730, which analyzes the images to identify 3D wireframe coordinates of the hands along with corresponding workpiece locations, as described in detail above. Analysis by computer 730 includes the two-hand detection methods illustrated in FIGS. 3-5.
[0060] A human performer 710 demonstrates a complete operation, such as assembling multiple components to create a complete device. A camera 720 provides a continuous series of images, and a computer 730 analyzes the images and records the identified robot teaching commands. Each teaching step includes the gripper pose calculated from the hand pose, and the corresponding workpiece position / pose. This recording of teaching steps includes the grasping and placing operations performed by one or both hands of the human performer 710.
[0061] Once the robot's operations are fully defined from the human demonstration, the robot program is transferred from the computer 730 to the robot controller 740. The controller 740 is in communication with the robot 750. The controller 740 calculates robot movement instructions that cause the robot 750 to move the gripper 760 of the robot 750 to the position and orientation of the gripper coordinate system identified from the image. The robot 750 moves the gripper 760 relative to the workpiece 770 according to the set of instructions from the controller 740, thereby performing the operations demonstrated by the human demonstrator 710.
[0062] 7, gripper 760 grasps workpiece 770 and performs some manipulation on workpiece 770, such as moving workpiece 770 to different positions and / or orientations. Gripper 760 is shown as a finger gripper, but could alternatively be a suction cup or magnetic surface gripper, as previously discussed.
[0063] The system 700 of FIG. 7 can be used in two different modes. In one mode, a human demonstrator teaches the entire steps of an operation, such as assembling a device, once in advance, and then the robot repeatedly executes the assembly operation based on the component movement instructions taught by the human demonstrator. Another mode is known as teleoperation, in which a human demonstrator works in real-time collaboration with the robot. In this mode, each hand movement to grasp and move a part is analyzed and immediately executed by the robot, and the robot's movements are visually fed back to the human operator. Both of these operation modes can benefit from the disclosed technique of two-hand detection by human demonstration.
[0064] Throughout the discussion above, various computers and controllers have been described and suggested. It should be understood that the software applications and modules of these computers and controllers execute on one or more computing devices having a processor and memory modules. In particular, this includes the processors in the computer 730 and robot controller 740 described above. In particular, the processor in the computer 730 is configured to perform two-hand detection in teaching the robot through human demonstration according to the methods described above.
[0065] As outlined above, the disclosed technique of two-hand detection in robot teaching by human demonstration makes robot motion programming faster, easier and more intuitive than conventional techniques, and provides reliable detection of the demonstrator's two hands while requiring only a single camera.
[0066] While several preferred aspects and embodiments of two-hand detection in robot teaching by human demonstration have been discussed above, modifications, permutations, additions, and subcombinations thereof will be recognized by those skilled in the art, and it is therefore intended that the following appended claims and the claims introduced below be construed to include such modifications, permutations, additions, and subcombinations as are within their true spirit and scope.
Claims
1. 1. A method for detecting two hands in an image, the method comprising: providing an image including a left hand and a right hand of a person; analyzing the image using a first neural network running on a computer having a processor and a memory to determine the identity and location in the image of the left hand and the right hand; creating a left hand sub-image and a right hand sub-image from said image by cropping them; horizontally flipping either the left hand sub-image or the right hand sub-image, and providing the sub-image to a second neural network running on the computer; analyzing the sub-images with the second neural network to determine three-dimensional (3D) coordinates of a plurality of key points of the left and right hands; and after analysis of the sub-image by the second neural network, horizontally flipping the 3D coordinates of the key points of the hand whose sub-image was flipped prior to analysis by the second neural network, and using the 3D coordinates of the key points by a robot teaching program to define a gripper pose.
2. The method of claim 1 , wherein the image is provided by a two-dimensional (2D) digital camera.
3. 2. The method of claim 1, wherein the first neural network is trained to distinguish between the left hand and the right hand in a training process that provides the first neural network with a plurality of training images in which left and right hands have been pre-identified.
4. The method of claim 3 , wherein the first neural network analyzes the training images to identify distinguishing characteristics of left and right hands, including finger curvature and relative positions.
5. The method of claim 1 , wherein each of the sub-images is cropped to include the left or right hand with a predefined margin.
6. 2. The method of claim 1 , wherein horizontally flipping either the left hand sub-image or the right hand sub-image comprises: horizontally flipping the left hand sub-image if the second neural network is trained using training images of right hands, and horizontally flipping the right hand sub-image if the second neural network is trained using training images of left hands.
7. The method of claim 1 , wherein the plurality of focal points of the left and right hands include thumb tips, thumb knuckles, finger tips, and knuckles.
8. 2. The method of claim 1, wherein horizontally flipping the 3D coordinates of the interest point comprises horizontally flipping the 3D coordinates with respect to a vertical plane to restore the 3D coordinates to a position of the interest point in the image.
9. The method of claim 1 , wherein the image also includes one or more workpieces, and the gripper pose and workpiece positions and poses are used by the robot teaching program to generate workpiece pick-up and placement instructions for a robot.
10. 10. The method of claim 9, wherein the pick and place instructions are provided from the computer to a robot controller, which provides control instructions to the robot for performing operations on a workpiece.
11. A method for programming a robot to perform an operation through human demonstration, comprising: A person demonstrating the manipulation of a workpiece using both hands; analyzing by a computer camera images of the hands demonstrating the operation on the workpiece to generate demonstration data including gripper poses calculated from three-dimensional (3D) coordinates of key points of the hands, wherein the 3D coordinates of the key points are determined from the camera images by a first neural network used to identify left and right hands in the camera images and a second neural network used to calculate the 3D coordinates in sub-images of the identified left and right hands; generating robot movement instructions based on the demonstration data to cause the robot to perform the operation on the workpiece; and performing the operation on the workpiece by the robot; either the left hand sub-image or the right hand sub-image is horizontally flipped before being provided to the second neural network; wherein the 3D coordinates of the key points of the hand, whose sub-images were flipped prior to calculation by the second neural network, are flipped horizontally after being calculated by the second neural network.
12. The method of claim 11 , wherein the demonstration data includes positions and orientations of a hand coordinate system, a gripper coordinate system corresponding to the hand coordinate system, and a workpiece coordinate system during a gripping step of the operation.
13. 12. The method of claim 11, wherein the first neural network is trained to distinguish between the left hand and the right hand in a training process in which the first neural network is provided with a plurality of training images in which left and right hands have been pre-identified.
14. The method of claim 11 , wherein if the second neural network is trained using training images of a right hand, the left hand sub-images and the 3D coordinates of the key points of the left hand are flipped horizontally.
15. A system for detecting two hands in an image, which is used to program a robot to perform an operation by human demonstration, the system comprising: Camera and a computer having a processor and a memory, the computer being in communication with the camera; The computer includes: analyzing an image including a person's left and right hands using a first neural network to determine the identity and location of said left and right hands within said image; creating a left hand sub-image and a right hand sub-image from said image by cropping them; horizontally flipping either the left hand sub-image or the right hand sub-image, and providing the sub-image to a second neural network running on the computer; analyzing the sub-images with the second neural network to determine three-dimensional (3D) coordinates of a plurality of key points of the left and right hands; and after analysis of the sub-image by the second neural network, horizontally flipping the 3D coordinates of the key points of the hand whose sub-image was flipped prior to analysis by the second neural network, and using the 3D coordinates of the key points to define a gripper pose for use in programming the robot.
16. 16. The system of claim 15, wherein the first neural network is trained to distinguish between the left and right hands in a training process in which the first neural network is provided with a plurality of training images in which left and right hands have been pre-identified, and the first neural network analyzes the training images to identify characteristic characteristics of left and right hands, including finger curvature and relative positions.
17. 16. The system of claim 15, wherein horizontally flipping either the left hand sub-image or the right hand sub-image comprises: horizontally flipping the left hand sub-image if the second neural network is trained using training images of right hands, and horizontally flipping the right hand sub-image if the second neural network is trained using training images of left hands.
Citation Information
Patent Citations
Method of controlling action of robot, and robot system
JP2011110620A
Robot, robot control method and robot control program
JP2015044257A
Apparatus control device, apparatus control method and program
JP2018073290A
Program, recognition apparatus, and recognition method
JP2019219904A
Gesture identification, control, and neural network training methods and apparatuses, and electronic devices
US20200026910A1