The above and other objects, features and advantages of the present invention will become more apparent from the following description of preferred embodiments in connection with the accompanying drawings, wherein:
The embodiments of the present invention are described below, in detail, with reference to the accompanying drawings. In the drawings, the same or similar components are denoted by common reference numerals.
In the following description, unless otherwise specified, terms involving position, such as “relative position”, “absolute position”, “reference position” and the like, generically mean both position and orientation.
Referring to the drawings,
In the robot programming device 10 having the above basic configuration, data of the position and orientation of the workpiece retained by the workpiece retainer (i.e., data in association with a clamping or chucking position on the workpiece) is obtained, as the relative position information 16 between the workpiece and the workpiece retainer at an instant when the workpiece is mounted to the workpiece retainer, by the retainer-position obtaining section 18, and is stored in the storing section 24. Also, data of the position and orientation of the robot hand holding the workpiece (i.e., data in association with a fingertip position on the workpiece) is obtained, as the relative position information 20 between the workpiece and the hand at an instant when the hand holds the workpiece, by the hand-position obtaining section 22, and is stored in the storing section 24. The storing section 24 stores both of the relative position information 16, 20 with regard to a single workpiece as a set of obtained data D, together with the workpiece feature information 12 representing the geometrical feature of the workpiece. Therefore, it is possible to store, as the obtained data D, the relative position and orientation data between a workpiece and a workpiece retainer as well as between a workpiece and a hand, obtained in a previously-performed workpiece carrying operation, in such a manner as to be correlated with the workpiece feature information 12 of the workpiece.
The workpiece feature information 12 can be obtained from three-dimensional shape data, such as drawing data (e.g., CAD data) and image data (e.g., CCD-captured data) of the workpiece subjected to the previous carrying operation, by using a variety of feature extraction methods. Also, the relative position information 16 between the workpiece and the workpiece retainer and the relative position information 20 between the workpiece and the hand can be obtained from a carrying operation program used for executing the previous workpiece carrying operation. Thus, by obtaining the workpiece feature information 12 and the relative position information 16, 20 with regard to a plurality of workpiece carrying operations performed at certain previous or prior times, the plurality of sets of obtained data D can be stored in the storing section 24. In this connection, the action defined by “obtaining” can be actually performed as, for example, the action of the respective obtaining sections 14, 18, 22 as to spontaneously acquire the information from a suitable storage medium, or the action of an operator as to input the information to the respective obtaining sections 14, 18, 22 as occasion demands. The specific procedure for obtaining the workpiece feature information 12 and the relative position information 16, 20 will be described later in detail.
When a new workpiece is additionally introduced, the new-workpiece feature information 26 obtained from the three-dimensional shape data (e.g., drawing data or image data) of the new workpiece (e.g., by a variety of feature extraction methods) is given to the obtained-data retrieving section 28 (by the action of the retrieving section 28 as to spontaneously acquire the information, or by the action of the operator as to input the information to the retrieving section 28). Then, based on the new-workpiece feature information 26, the obtained-data retrieving section 28 retrieves the optimal obtained data SD from among the plurality of sets of obtained data D stored in the storing section 24, with the workpiece feature information 12 used as a keyword. The optimal obtained data SD as retrieved includes the relative position information 16, 20 with regard to the previous workpiece having a highest degree of coincidence in shape or feature with the new workpiece (i.e., having a shape very similar to that of the new workpiece). Therefore, the carrying operation program 30 generated by the program generating section 32 is configured as to make the robot perform such a carrying operation for the new workpiece that the relative position and orientation relationships between the workpiece and the workpiece retainer, as well as between the workpiece and the hand, are identical to those in the carrying operation previously performed for the similar workpiece.
Thus, according to the robot programming device 10, when preparing the carrying operation program for a workpiece performed by the robot, it is possible to eliminate, by using the obtained data D with regard to the previous workpiece carrying operation stored in the storing section 24, the need of the comprehensive investigation of the position and orientation of the workpiece retained by the workpiece retainer and the position and orientation of the hand at an instant when the hand holds the workpiece, which has been conventionally performed by a skilled operator while taking into account the shape of the workpiece subjected to the operation and/or the contents of a series of operation steps with regard to the workpiece. Moreover, it is possible to easily acquire the position and orientation data involving the position and orientation of the workpiece retained by the workpiece retainer, or the position and orientation of the hand at an instant when the hand holds the workpiece, which is inconvenient to be determined based on only the shape data of the workpiece (i.e., which varies depending on the shapes of workpieces), from the obtained data D with the workpiece feature information 12 used as a keyword, without requiring an operator's skill. Therefore, when the new workpiece is additionally introduced into a manufacturing system using the robot, it is possible to easily and reliably prepare the carrying operation program 30 optimal for the new workpiece by a reduced number of steps, and as a result, it is possible for the highly automated manufacturing system using the robot to be flexibly adapted to a multi-product manufacturing.
In the robot programming device 10 shown in
The motion-pattern command value 34 can be obtained from a carrying operation program used for performing the previous workpiece carrying operation. Thus, by obtaining the motion-pattern command values 34 with regard respectively to a plurality of workpiece carrying operations performed at certain previous (or prior) times, the plurality of sets of obtained data D can be stored in the storing section 24. In this connection, the action defined by “obtaining” in the above configuration can also be actually performed as, for example, the action of the motion-pattern obtaining section 36 as to spontaneously acquiring the value from a suitable storage medium, or the action of an operator as to input the value to the motion-pattern obtaining section 36 as occasion demands. The specific procedure for obtaining the motion-pattern command value 34 will be described later in detail.
When a new workpiece is additionally introduced, the optimal obtained data SD retrieved by the obtained-data retrieving section 28 in a manner as described above includes the motion-pattern command value 34 with regard to the previous workpiece having a highest degree of coincidence in shape or feature with the new workpiece (i.e., having a shape very similar to that of the new workpiece). Therefore, the carrying operation program 30 generated by the program generating section 32 is configured as to make the robot perform such a carrying operation for the new workpiece that, in addition to the identity of the relative position and orientation relationships between the workpiece and the workpiece retainer as well as between the workpiece and the hand, at least one of the mounting motion and the demounting motion for the workpiece relative to the workpiece retainer is also identical to that in the carrying operation previously performed for the similar workpiece.
Thus, according to the robot programming device 10 shown in
It should be noted that, when the carrying operation program for a workpiece performed by the robot is prepared while taking into account the shape of the workpiece subjected to the operation and/or the contents of a series of operation steps with regard to the workpiece, at least one of the mounting and demounting motions of the robot for the workpiece relative to the workpiece retainer is typically an important item that should be investigated in detail together with the relative position and orientation relationships between the workpiece and the workpiece retainer and between the workpiece and the hand. However, in various manufacturing systems, the robot may sometimes be programmed, in the workpiece carrying operation, to perform a very simple motion, such that the robot always approaches the workpiece retainer from a position just is above it and moves away from the workpiece retainer just upward. In this case, even when preparing the carrying operation program for a new workpiece, it is not necessary to newly designate at least one of the mounting and demounting motions for the workpiece relative to the workpiece retainer, and therefore, the motion-pattern obtaining section 36 can be omitted.
In the robot programming device 10 shown in
The three-dimensional shape data 38 of the fingertip of the hand can be obtained, as drawing data (e.g., CAD data) or image data (e.g., CCD-captured data) of the fingertip, by the action of the fingertip-shape obtaining section 40 as to spontaneously acquire the data from an existing CAD system or vision system, or by the action of an operator as to input the data to the fingertip-shape obtaining section 40 as occasion demands. Thus, by obtaining the three-dimensional shape data 38 of the fingertip of the hand with regard respectively to a plurality of workpiece carrying operations performed at certain previous times, the plurality of sets of obtained data D can be stored in the storing section 24.
When a new workpiece is additionally introduced, the optimal obtained data SD retrieved by the obtained-data retrieving section 28 in a manner as described above includes the three-dimensional shape data 38 of the fingertip of the hand with regard to the previous workpiece having a highest degree of coincidence in shape or feature with the new workpiece (i.e., having a shape very similar to that of the new workpiece). Therefore, the carrying operation program 30 generated by the program generating section 32 is configured as to make the robot perform such a carrying operation for the new workpiece that, in addition to the identity of the relative position and orientation relationships between the workpiece and the workpiece retainer as well as between the workpiece and the hand, the shape of the fingertip of the hand that directly comes into contact with the workpiece is also identical to that in the carrying operation previously performed for the similar workpiece.
Thus, according to the robot programming device 10 shown in
In the robot programming device 10 shown in
The drawing data 42 of the hand can be obtained by the action of the hand-drawing obtaining section 44 as to spontaneously acquire the data from a suitable storage medium, or by the action of an operator as to input the data to the hand-drawing obtaining section 44 as occasion demands. Thus, by obtaining the drawing data 42 of the hand with regard respectively to a plurality of workpiece carrying operations performed at certain previous times, the plurality of sets of obtained data D can be stored in the storing section 24.
When a new workpiece is additionally introduced, the optimal obtained data SD retrieved by the obtained-data retrieving section 28 in a manner as described above includes the drawing data 42 of the hand with regard to the previous workpiece having a highest degree of coincidence in shape or feature with the new workpiece (i.e., having a shape very similar to that of the new workpiece). Therefore, the carrying operation program 30 generated by the program generating section 32 is configured so as to make the robot perform such a carrying operation for the new workpiece that, in addition to the identity of the relative position and orientation relationships between the workpiece and the workpiece retainer as well as between the workpiece and the hand, the shape and structure of the hand holding the workpiece is also identical to that in the carrying operation previously performed for the similar workpiece.
Thus, according to the robot programming device 10 shown in
In the robot programming device 10 shown in
The drawing data 46 of the workpiece retainer can be obtained by the action of the retainer-drawing obtaining section 48 as to spontaneously acquire the data from a suitable storage medium, or by the action of an operator as to input the data to the retainer-drawing obtaining section 48 as occasion demands. Thus, by obtaining the drawing data 46 of the workpiece retainer with regard respectively to a plurality of workpiece carrying operations performed at certain previous times, the plurality of sets of obtained data D can be stored in the storing section 24.
When a new workpiece is additionally introduced, the optimal obtained data SD retrieved by the obtained-data retrieving section 28 in a manner as described above includes the drawing data 46 of the workpiece retainer with regard to the previous workpiece having a highest degree of coincidence in shape or feature with the new workpiece (i.e., having a shape very similar to that of the new workpiece). Therefore, the carrying operation program 30 generated by the program generating section 32 is configured as to make the robot perform such a carrying operation for the new workpiece that, in addition to the identity of the relative position and orientation relationships between the workpiece and the workpiece retainer as well as between the workpiece and the hand, the shape and structure of the workpiece retainer holding the workpiece is also identical to that in the carrying operation previously performed for the similar workpiece.
Thus, according to the robot programming device 10 shown in
In the robot programming device 10 shown in
The three-dimensional shape data 50 of the workpiece can be obtained, as drawing data (e.g., CAD data) or image data (e.g., CCD-captured data) of the workpiece, by the action of the workpiece-shape obtaining section 52 as to spontaneously acquire the data from an existing CAD system or vision system, or by the action of an operator as to input the data to the workpiece-shape obtaining section 52 as occasion demands. The three-dimensional shape data 50 may be the same as data from which the workpiece feature information 12 obtained by the workpiece-feature obtaining section 14 is extracted. Thus, by obtaining the three-dimensional shape data 50 of the workpiece with regard respectively to a plurality of workpiece carrying operations performed at certain previous times, the plurality of sets of obtained data D can be stored in the storing section 24.
When a new workpiece is additionally introduced, the optimal obtained data SD retrieved by the obtained-data retrieving section 28 in a manner as described above includes the three-dimensional shape data 50 of the previous workpiece having a highest degree of coincidence in shape or feature with the new workpiece (i.e., having a shape very similar to that of the new workpiece). Therefore, the carrying operation program 30 generated by the program generating section 32, by using the corrected versions of relative position information 16, 20 respectively corrected based on the difference between the three-dimensional shape data 50 of the previous workpiece and the three-dimensional shape data 54 of the new workpiece, is configured as to make the robot perform a carrying operation modified so that the relative position and orientation relationships between the workpiece and the workpiece retainer as well as between the workpiece and the hand are highly accurately adapted to the new workpiece, compared to the carrying operation previously performed for the similar workpiece.
Thus, according to the robot programming device 10 shown in
The configuration of a robot programming device, according to a preferred embodiment of the present invention, will be explained below with reference to
If the processing machine 70 is not operating, the robot 62 holds the workpiece W1 or workpiece W2 placed on the provisional table 68 by the hand 64 and feeds it to the processing machine 70. The processing machine 70 starts processing the workpiece, based on a process start command sent from the robot 62. At an instant the process is completed, the processing machine 70 transmits a process completion signal to the robot 62. The robot 62 receiving the process completion signal operates to take out the processed workpiece W1 or W2 from the processing machine 70, and to place the workpiece W1 on a pallet P3 but the workpiece W2 on a pallet P4.
The robot 62 and the conveyor 66 are connected to a control device 76 through communication cables 72, 74, respectively, and the control device 76 controls the operations of the robot 62 and the conveyor 66. The control device 76 is connected to an robot programming device 60 through a network cable 78. A camera 80 is attached to the wrist end of the robot 62 adjacently to the hand 64. The camera 80 is connected to an image processing device 84 through a camera cable 82. The image processing device 84 is connected to the control device 76 and the robot programming device 60 through network cables 86, 88, respectively. The workpiece retainers 68a, 68b installed on the provisional table 68 are connected to the control device 76 respectively through digital signal input/output cables (not shown).
The network interface 96 is connected with the robot programming device 60 through the network cable 78, and also with the image processing device 84 through the network cable 86. The digital signal input/output circuit 98 is connected with the workpiece retainers 68a, 68b of the provisional table 68 individually through a digital signal input/output cable 110, with the processing machine 70 through a digital signal input/output cable 112, and with the hand 64 attached to the robot 62 through a digital signal input/output cable 114.
An operating panel or teach pendant 118 is connected to the operating panel interface 100 through an operating panel cable 116. The operating panel 118 includes a display 118a and an input button 118b. When an operator operates the operating panel 118, the robot 62 can be operated in a manual mode through the control device 76. Servo mechanisms, such as a servo motor of each of the control axes of the robot 62 and the conveyor 66, are connected to the servo interface 102 through the communication cables 72, 74.
A hard disk device or drive 120 is connected to the robot programming device 60. Alternatively, the robot programming device 60 may incorporate therein the hard disk device 120. As shown in
A hard disk device or drive 128 is connected to the image processing device 84. Alternatively, the image processing device 84 may incorporate therein the hard disk device 128. The hard disk device 128 stores workpiece image data 1301, 1302 used as respective references for the detection of the workpieces W1, W2 to be operated. The workpiece image data 1301, 1302 are obtained by capturing the images of the workpieces W1, W2 with the camera 80 attached to the wrist end of the robot 62.
The workpiece retainer 70a includes a first retaining section 132 capable of firmly and stably retaining a raw workpiece W before processing, and a second retaining section 134 capable of firmly and stably retaining a processed workpiece W′ that has been subjected to a processing work. The first retaining section 132 includes a plurality of pillars 136 provided respectively at distal ends thereof with abutment surfaces adapted to be abutted to a surface of the raw workpiece W, and a plurality of clamp elements 138 adapted to press and secure the raw workpiece W on the abutment surfaces of the pillars 136. The abutment surfaces of the pillars 136 are abutted respectively onto a bottom surface, one inclined surface and one side surface of the raw workpiece W as seen in the drawing. The clamp elements 138 are engaged respectively with another inclined surface and another side surface, onto which the abutment surfaces of the pillars 136 are not abutted, so as to firmly and stably clamp the raw workpiece W while cooperating with the pillars 136. Also, the second retaining section 134 includes a base 140 having an abutment surface adapted to be abutted onto a surface of the processed workpiece W1. The processed workpiece W′ can be firmly and stably secured to the base 140 by a plurality of bolts (not shown) acting as clamp elements. The pillars (or the abutment surfaces) 136, the clamp elements 138 and the base (or the abutment surface) 140 have shapes and structures (such as the number and arrangement) conforming to the shapes of respective workpieces W, W′ to be operated.
On the other hand, the hand 64 includes a base 142 adapted to be attached to the wrist end of the robot 62 (
The robot 62 (
In the workpiece carrying operation performed by the robot 62 in the above-described manufacturing system (
An example of the workpiece carrying operation performed by the robot 62 under the control of the control device 76, in the above-described manufacturing system (
First, the conveyor 66 is activated, and the robot 62 is transferred to a position in front of the pallet P1 (step S200). Next, the arm of the robot 62 is operated to turn, so as to shift the hand 64 (e.g., the hand 64 of
Next, the hand 64 is shifted, toward a holding position at which a motion for holding the workpiece W1 (the raw workpiece W) is performed. For this motion, the hand 64 is first shifted to a position just above the holding position, and thereafter is shifted toward the holding position just below the former position at a low speed (step S203). Then, a digital signal indicating “close a hand” is output to the hand 64 through the digital signal input/output circuit 98, and thereby closing the hand 64 to hold the workpiece W1 (step S204). Thereafter, the hand 64 is shifted upward to pick out the workpiece W1 from the pallet P1. For this motion, the hand 64 is first shifted at a low speed to a position just above the holding position, and thereafter is shifted at an increased speed so as to further lift up the workpiece W1 (step S205).
Next, the arm of the robot 62 is operated to turn rightward and the conveyor 66 is simultaneously operated, and thereby the robot 62 is transferred to a position in front of the provisional table 68 (step S206) and, next, the hand 64 is shifted to a position above the workpiece retainer 68a (step S207). Thereafter, the hand 64 is shifted toward the retaining section (e.g., the first retaining section 132 of
Next, the hand 64 is shifted upward and is left away from the workpiece retainer 68a (step S210). Then, a digital signal indicating “close a clamp” is output to the workpiece retainer 68a through the digital signal input/output circuit 98, and thereby closing the clamp of the workpiece retainer 68a, and making the workpiece retainer 68a securely retain the workpiece W1 in a state where the workpiece W1 is accurately positioned at a predetermined position (step S211).
Thereafter, the arm of the robot 62 is operated to turn, so as to shift the hand 64 in the opened state to a position in front of the processing machine 70 (step S212). Then, the hand 64 is inserted to an interior of the processing machine 70 through a door opening of the processing machine 70. For this motion, the arm of the robot 62 is operated to extend straightly for an insertion, so as to prevent the hand 64 from contacting or colliding with the processing machine 70 (step S213). Next, the hand 64 is shifted toward a holding position at which a motion for holding the workpiece W1 (or the processed workpiece W′) secured on the workpiece retainer 70a (e.g., the workpiece 70a of
Next, a digital signal indicating “open a clamp” is output to the processing machine 70 through the digital signal input/output circuit 98, and thereby opening the clamp (or the chuck) of the workpiece retainer 70a to release the workpiece W1 (or the processed workpiece W′) (step S216). Then, the hand 64 is shifted slightly from the holding position, so as to pick out the workpiece W1 from the workpiece retainer 70a of the processing machine 70 while avoiding interference (step S217). Thereafter, the hand 64 is drawn out from the processing machine 70 through the door opening. For this motion, the arm of the robot 62 is operated to extend straightly for a retreat, so as to prevent the hand 64 from contacting or colliding with the processing machine 70 (step S218).
Next, the hand 64 is shifted to a position above the workpiece retainer 68b of the provisional table 68 (step S219). Thereafter, the hand 64 is shifted toward the retaining section (e.g., the second retaining section 134 of
Next, the hand 64 is shifted upward and is left away from the workpiece retainer 68b (step S222). Then, the clamp of the workpiece retainer 68b is closed, and the workpiece retainer 68b is made securely hold the workpiece W1 in a state where the workpiece W1 is accurately positioned at a predetermined position (step S223). Thereafter, the hand 64 is shifted to a position just above the workpiece retainer 68a of the provisional table 68 (step S224).
Next, the hand 64 is shifted toward a holding position at which a motion for holding the workpiece W1 (or the raw workpiece W) retained by the workpiece retainer 68a is performed, and the hand 64 is closed at the holding position to hold the workpiece W1 (step S225). Then, the clamp of the workpiece retainer 68a is opened to release the workpiece W1 (step S226). Thereafter, the hand 64 is shifted upward to pick out the workpiece W1 from the workpiece retainer 68a. For this motion, the hand 64 is first shifted at a low speed to a position obliquely above the workpiece retainer 68a, and thereafter is shifted at an increased speed so as to further lift up the workpiece W1 (step S227).
Next, the arm of the robot 62 is operated to turn, so as to shift the hand 64 holding the workpiece W1 (or the raw workpiece W) to a position in front of the processing machine 70 (step S228). Then, the hand 64 is inserted to an interior of the processing machine 70 through the door opening of the processing machine 70. For this motion the arm of the robot 62 is operated to extend straightly for an insertion, so as to prevent the hand 64 and the workpiece W1 from contacting or colliding with the processing machine 70 (step S229). Thereafter, the hand 64 is temporarily stopped at a position just in front of the retaining section (e.g., the first retaining section 132 of
Next, the hand 64 is opened to release the workpiece W1 (step S231). Then, the hand 64 is shifted at a low speed to a position spaced at a slight distance from the workpiece retainer 70a while avoiding interference (step S232). Thereafter, the arm of the robot 62 is operated to extend straightly, so as to prevent the hand 64 from contacting with the processing machine 70, and to draw out the hand 64 through the door opening from the processing machine 70 (step S233). Then, a digital signal indicating “start a process for a workpiece W1” is output to the processing machine 70 through the digital signal input/output circuit 98 (step S234).
Next, the hand 64 is shifted to a position just above the workpiece retainer 68b of the provisional table 68 (step S235). Then, the hand 64 is shifted toward a holding position at which a motion for holding the workpiece W1 (or the processed workpiece W1) retained by the workpiece retainer 68b is performed, and the hand 64 is closed at the holding position to hold the workpiece W1 (step S236). Then, the clamp of the workpiece retainer 68b is opened to release the workpiece W1 (step S237). Thereafter, the hand 64 is shifted upward to pick out the workpiece W1 from the workpiece retainer 68b. For this motion, the hand 64 is first shifted at a low speed to a position obliquely above the workpiece retainer 68b, and thereafter is shifted at an increased speed so as to further lift up the workpiece W1 (step S238).
Next, the arm of the robot 62 is operated to turn rightward, and the conveyor 66 is activated to transfer the robot 62 to a position in front of the pallet P3 (step S239). Then, the hand 64 holding the workpiece W1 (or the processed workpiece W′) is shifted to a position just above the pallet P3 (step S240). Thereafter, the hand 64 is shifted to a position just above a placing position on the pallet P3, at which the workpiece W1 is placed, and thereafter is shifted at a low speed toward the placing position just below the former position, so as to place the workpiece W1 on the pallet P3 (step S241).
Next, the hand 64 is opened to release the workpiece W1 (step S242). Then, the hand 64 is shifted at a low speed to a position just above the placing position, and thereafter is shifted further upward at an increased speed (step S243). Last, the arm of the robot 62 is operated to turn toward the front of the robot, and the conveyor 66 is activated to transfer the robot 62 to an initial wait position (step S244). In this manner, the operation program 106 for the workpiece W1 (i.e., the raw workpiece W and the processed workpiece W1) is completed.
Now, a robot programming method according to an embodiment of the present invention, which is executed by the robot programming device 60, for preparing the operation program 106 (108) controlling the above-described workpiece carrying operation in a general way, will be more concretely described below. In this connection, the robot programming device 60 is provided with a CPU (not shown) having the functions of the workpiece-feature obtaining section 14, the retainer-position obtaining section 18, the hand-position obtaining section 22, the obtained-data retrieving section 28, the program generating section 32, the motion-pattern obtaining section 36, the fingertip-shape obtaining section 40, the hand-drawing obtaining section 44, the retainer-drawing obtaining section 48 and the workpiece-shape obtaining section 52 in the robot programming device 10 shown in
The robot programming device 60 prepares the operation program 106 for the workpiece W1 using the operation-program definition data 1221 and the working-point definition data 1241 (both stored in the hard disk device 120), and prepares the operation program 108 for the workpiece W2 using the operation-program definition data 1222 and the working-point definition data 1242 (both stored in the hard disk device 120). As one concrete example, in the operation-program definition data 1221 stored in the hard disk device 120, the above-described operations of steps S212 to S218 are described as follows:
In each line (line numbers are denoted at the tops of respective lines), a part interposed between a pair of %-s is a variable, and thus is an undefined data in the operation-program definition data. Among these variables, variables including “Work” are associated with the workpiece W1, variables including “Robot.Hand” are associated with the hand 64 of the robot 62, and variables including “Machine” and “Machine.Fixture” are associated respectively with the processing machine 70 and the workpiece retainer 70a. Variables representing positions and orientations in association with the workpiece W1 and the processing machine 70 are described by “ApproachPos”, “GripPos”, “RetrievePos”, “EnterPos”, and “ExitPos”. Also, variables representing control signals for the hand 64 and the processing machine 70 (and the workpiece retainer 70a) are described by “Grip”, “GripDone”, “DoorOpen”, “Release” and “ReleaseDone”.
The meanings of the descriptions of the respective lines are as follows:
The first line shows definition data of step S212, and defines the operation for shifting the robot 62 to a position P [1] in front of the door of the processing machine 70.
The second and third lines show definition data of step S213, and define that the digital input signal % Machine.DoorOpen % transmitted to the digital signal input/output circuit 98 through the digital signal input/output cable 112 and indicating the open/close state of the door of the processing machine 70 is referenced, so that the robot 62 waits at the position in front of the door until this signal is tuned “On” indicating that the door is opened. Then, the robot is shifted to the position % Machine.EnterPos % for the insertion into the interior of the processing machine 70.
The fourth and fifth lines are definition data of step S214, and define that the hand 64 of the robot 62 is shifted to the position % Work.ApproachPos % slightly before the holding position of the workpiece W1 (or the processed workpiece W′), and thereafter to the holding position % Work.GripPos %.
The sixth and seventh lines are definition data of step S215, and define that the digital output signal % Robot.Hand.Grip % indicating the command to close the hand 64 of the robot 62 is turned “On”, and the “On” signal is sent to the robot 62 through the digital signal input/output circuit 98 and the digital signal input/output cable 114, so as to close the hand 64. Further, it is detected whether the hand 64 is properly closed, by using a proximity sensor or a contact switch provided to the hand 64, and the digital input signal % Robot.Hand.GripDone % indicating a state of the sensor or switch is referenced, so as to confirm that the hand 64 is properly closed to hold the workpiece W1.
The eighth and ninth lines are definition data of step S216, and define that the digital output signal % Machine.Fixture.Release % indicating the command to open the clamp (or the chuck) of the workpiece retainer 70a of the processing machine 70 is turned “On”, and the “On” signal is sent to the processing machine 70, so as to open the workpiece retainer 70a. Further, it is detected whether the workpiece retainer 70a is properly opened, by using a proximity sensor or a contact switch provided to the workpiece retainer 70a, and the digital input signal % Machine.Fixture.ReleaseDone % indicating a state of the sensor or switch is referenced, so as to confirm that the workpiece retainer 70a is properly opened to release the workpiece W1.
The tenth line is definition data of step S217, and defines that the hand 64 is shifted to the position % Work.RetrievePos % slightly spaced from the holding position for the workpiece W1, so as to demount the workpiece W1 from the workpiece retainer 70a.
The eleventh line is definition data of step S218, and defines that the hand 64 is shifted to the position % Machine.ExitPos % for drawing out the hand 64 from the interior of the processing machine 70.
The twelfth line describes specific data of the P [1] in the first line. This data is always set to a constant value even if the type (or the shape) of the workpiece changes, and therefore, is previously described in the operation-program definition data 1221.
The working-point definition data 1241 describes data of position and orientation as well as a control signal, which should be assigned respectively to the above-described variables of the operation-program definition data 1221. It should be noted that the position and orientation data shows spatial points taught to the robot 62, and includes X, Y, Z-values representing a position and W (yaw), P (pitch), R (roll)-values representing an orientation, in a single, reference orthogonal coordinate system (e.g., a world coordinate system) in the manufacturing system. One example of the working-point definition data 1241 is shown below:
% Robot. Hand. Grip %=RDO [1];
The robot programming device 60 determines the respective variables of the above-described operation-program definition data 1221 by using the working-point definition data 1241, so as to prepare the operation program 106 shown below for the workpiece W1:
In the robot programming device 60, the working-point definition data 1241 is prepared in a way as described below.
The % Machine.DoorOpen %, % Machine.Fixture.Release %, % Machine.Fixture.ReleaseDone %, % Robot.Hand.Grip %, and % Robot.Hand.GripDone % (each describing a state of a control signal) defined in the above-described working-point definition data 1241 have signal numbers determined depending on the style of connection of the digital signal input/output circuit 98 of the control device 76 with the signal cable 112 for the processing machine 70 and the signal cable 114 for the hand 64 of the robot 62, and therefore, are set when the manufacturing system including the robot 62 is built. Also, % Machine.EnterPos % and % Machine.ExitPos % (describing position and orientation at which the workpiece W1 is put into or drawn out of the processing machine 70) defined in the working-point definition data 1241 are set by determining a mutual positional relationship between the robot 62 and the processing machine 70 when the manufacturing system is built.
Therefore, in the working-point definition data 1241, the operation of the hand 64 so as to carry the workpiece W1 is defined by the data assigned to the three variables % Work.ApproachPos %, % Work.GripPos % and % Work.RetrievePos %. Based on a holding position as a reference, at which the hand 64 holds the workpiece W1, the above three variables can respectively be expressed by the data of relative positions relative to the reference position (or the holding position). The holding position as the reference position (i.e., an absolute position in the coordinate system) is expressed by the variable % Work.GripPos %, and therefore, the above three variables can be expressed as follows:
In this connection, % Work.GripPath.Node1%, % Work.GripPath.Node2% and % Work.GripPath.Node3% are variables for expressing the operation of the robot 62 as to carry the workpiece W1 by the hand 64, by using the data of relative position and orientation, based on the holding position as a reference (or the absolute position), and thus each being referred to as an “operation pattern” in the present application (generally referred to as % Work.GripPath %). Examples of the position and orientation data assigned to the above variables % Work.GripPos %, % Work.GripPath.Node1%, % Work.GripPath.Node2% and % Work.GripPath.Node3% are shown below:
The operation pattern % Work.GripPath % describing the above data defines such an operation of the robot 62 as to be shifted from the position % Work.ApproachPos % toward the holding position % Work.GripPos % by 100 mm in the X-direction and −10 mm in the Z-direction, then hold the workpiece W1 at the holding position % Work.GripPos %, and thereafter be shifted toward the position % Work.RetrievePos % by −100 nm in the X-direction and 10 mm in the Z-direction.
As described above, the operation of the robot 62 so as to hold and carry the workpiece W1 by the hand 64 can be defined by the operation pattern % Work.GripPath % of the robot 62 and the holding position (or the absolute position) % Work.GripPos % at which the hand 64 holds the workpiece W1. Further, based on a retaining position, as a reference, at which the workpiece W1 is retained by the workpiece retainer 70a of the processing machine 70, the holding position % Work.GripPos % can be expressed by using the data of a relative position relative to the reference position (or the retaining position), as follows:
In this connection, % Work.BasePos % is a variable for expressing the retaining position at which the workpiece W1 is retained on the workpiece retainer 70a (or an absolute position in the coordinate system), by using the data of position and orientation, and % Work.GripOffset % is a variable for expressing the holding position at which the hand 64 holds the workpiece W1, by using the data of a relative position and orientation based on the retaining position as a reference. Examples of values assigned to these variables are shown below:
Further, based on an installing position as a reference, at which the workpiece retainer 70a is installed in the processing machine 70, the retaining position of the workpiece W1 % Work.BasePos % can be expressed by the data of a relative position relative to the reference position (or the installing position), as follows:
In this connection, % Machine.Fixture.BasePos % is a variable for expressing the installing position of the workpiece retainer 70a in the processing machine 70 (or an absolute position in the coordinate system), by using the data of position and orientation, and % Work.FixOffset % is a variable for expressing the retaining position of the workpiece W1 on the workpiece retainer 70a, by using the data of a relative position and orientation based on the installing position as a reference. Among these variables, % Machine.Fixture.BasePos % is determined by installing the workpiece retainer 70a in the interior of the processing machine 70 and set when the manufacturing system is built. Examples of values assigned to these variables are shown below:
As described above, the operation of the robot 62 so as to hold and carry the workpiece W1 by the hand 64 is finally defined by the operation pattern % Work.GripPath % of the robot 62, the holding position (the relative position) % Work.Gripoffset % at which the hand 64 holds the workpiece W1, the retaining position (the relative position) % Work.FixOffset % at which the workpiece retainer 70a retains the workpiece W1, and the other known data (the absolute position and the control signals) set by the mutual positonal relationship between the processing machine 70 and the workpiece retainer 70a. Therefore, when a new workpiece is to be introduced, in order to determine the operation of the robot 62 as to carry the new workpiece, it is required to specify only the three variables % Work.GripPath %, % Work.GripOffset % and % Work.FixOffset %.
In the robot programming device 60, the operation pattern % Work.GripPath % of the robot 62, the relative position % Work.GripOffset % between the hand 64 and the workpiece W1, and the relative position % Work.FixOffset % between the workpiece retainer 70a and the workpiece W1 can be obtained by, for example, a way as described below.
It is first assumed that the robot programming device 60 has a function to prepare three-dimensional shape data, such as 3D-CAD. In this case, three-dimensional shape (or drawing) data of the workpieces W1, W2, the hand 64 of the robot 62, the fingers 144 of the hand 64 (
In, for example, a virtual space shown in
The operator disposes the three-dimensional shape data of the hand 64, fingers 144, fingertips 146, workpiece retainer 70a and workpiece W1 in, for example, the virtual space shown in
In the exemplary configuration of
For example, when the operation program 106 is prepared, the robot programming device 60 obtains, from the workpiece drawing data 1261, the data of the relative position and orientation between the workpiece W1 and the workpiece retainer 70a and assigns it to the above-described variable % Work.FixOffset %, obtains the data of the relative position and orientation between the workpiece W1 and the hand 64 and assigns it to the above-described variable % Work.GripOffset %, and obtains the data of the operation pattern of the robot 62 expressed by assembling a plurality of the data of the relative position and orientation between the workpiece W1 and the hand 64 and assigns it to the above-described variable % Work.GripPath %. As a result, the above-described unknown variables % Work.ApproachPos %, % Work.GripPost and % Work.RetrievePos % in the working-point definition data 1241 are determined. Further, the robot programming device 60 assigns the values of the above-described known variables in the working-point definition data 1241 to the operation-program definition data 1221. In this manner, the operation program 106 is prepared.
As already described in association with the robot programming device 10 of
As a technique for obtaining the workpiece feature information from the three-dimensional data of the workpieces W1, W2, a feature extraction technique by image processing as described below can be adopted. In this connection, the three-dimensional shape data of the workpieces W1, W2 is not limited to the workpiece drawing data 1261, 1262 obtained from the 3D-CAD drawings and the like, but it may be the workpiece image data 1301, 1302 obtained when the image processing device 84 processes the data captured by the camera 80.
In this feature extraction technique, first, the lines of contours of the workpieces W1, W2 are extracted from the workpiece drawing data 1261, 1262 or the workpiece image data 1301, 1302. In the case of the workpiece drawing data 1261, 1262, the lines of contours of the workpieces W1, W2 are clear, and thus can be easily extracted. On the other hand, in the case where the workpiece image data 1301, 1302 is used, certain areas in the images where brightness abruptly changes are extracted as the lines of contours. Next, from the information about the extracted lines of contours, vertices and segments serving as clues to determine the shapes of the workpieces W1, W2 are extracted. Next, from the information about the extracted vertices and segments, planes capable of being defined by those vertices and segments are extracted, and further, primitive solids (rectangular parallelepipeds, circular cylinders, cones, spheres and so on) capable of being defined by the extracted planes are extracted. Then, solid models of the workpieces W1, W2 are expressed as aggregates of the extracted primitive solids.
The solid models of the workpieces W1, W2 expressed by the aggregates of the primitive solids are referred to as, for example, CSG (Constructive Solid Geometry) models. The CSG model of the workpiece W1 as shown, by way of example, in
According to the feature extraction technique using the CSG model, regardless of the drawing directions of the workpieces W1, W2 in the original workpiece drawing data 1261, 1262 or the workpiece image data 1301, 1302, a degree of coincidence in the shape or feature can be determined with the primitive solids forming the workpieces W1, W2 (i.e., the workpiece feature information) used as keywords. Also, the degree of coincidence in the shape or feature can be determined even between geometrically similar workpieces.
In this connection, the robot programming device 10 (60) according to the present invention may be configured so that the workpiece-feature obtaining section 14 obtains, as the workpiece feature information 12, workpiece-shape transition information 12T (
For example, as shown in
In this example, the robot programming device 10 (60) can store all of the CSG models (i.e., the workpiece-shape transition information 12T) expressing respectively the raw workpiece W, the intermediate workpiece W′, the finished workpiece W″, the first step and the second step as described above, in the storing section 24 (or the hard disk device 120), as the workpiece feature information 12 used as the keyword for the obtained data D. When a new workpiece is introduced, the robot programming device 10 (60) uses the new workpiece-shape transition information 26T extracted from the three-dimensional shape data of the new workpiece by a similar technique, so as to retrieve the optimal obtained data SD including the workpiece-shape transition information 12T having a highest coincidence with the new workpiece-shape transition information 26T. Then, the robot programming device 10 (60) uses the optimal obtained data SD read out from the storing section 24 (or the hard disk device 120), so as to prepare the hand 64, the fingers 194 of the hand 64, the workpiece retainers 68a, 68b of the provisional table 68, the workpiece retainer 70a of the processing machine 70, and the carrying operation program 30, for executing the carrying operation for the new workpiece. In this connection, when the optimal obtained data SD is retrieved, it may be advisable to designate, for retrieval, only the CSG models in a desired stage or only a part of the processing work, among the extracted CSG models at a plurality of stages.
A degree of coincidence between the workpiece feature information 12 (or the workpiece-shape transition information 12T) and the new-workpiece feature information 26 (or the new workpiece-shape transition information 26T) can be determined by, for example, ambiguous search based on fuzzy logic. In this search or retrieval technique, not only it is determined whether there is a coincidence of the type and number of the primitive solids forming the CSG model, but also a membership function for evaluating the degree of coincidence is prepared for each type of the primitive solid. For example, in a case where the degree of coincidence of the rectangular parallelepiped as the primitive solid is evaluated on a determination basis as to whether it is a thin plate or not, two faces having the largest area among six faces of the rectangular parallelepiped are defined as top and bottom faces, and a membership function is prepared, which assigns the degree of coincidence to a ratio between the area of the top or bottom face and a distance between the top and bottom faces (i.e., a height). Also, in a case where the degree of coincidence of the circular cylinder is evaluated on a determination basis as to whether it is a narrow hole or not, a membership function is prepared, which assigns the degree of coincidence to a ratio between a radius of a bottom face and a height of the circular cylinder. Thus, in a single CSG model, the degrees of coincidence for various determination bases are evaluated by using the respective particular membership functions, and the degrees of coincidence for these determination bases are combined to calculate a whole degree of coincidence. Then, the obtained data D including the workpiece feature information 12 (or the workpiece-shape transition information 12T) having the highest whole degree of coincidence with the new-workpiece feature information 26 (or the new workpiece-shape transition information 26T) is determined as the optimal obtained data SD.
Indeed, in the case where the type of the workpiece to be processed by the processing machine is changed in the manufacturing system, the new workpiece to be processed is often geometrically similar to the existing workpiece, and therefore, a robot hand, a finger of a hand, a workpiece retainer and a carrying operation program, which have been previously prepared, may sometimes be reused without changing the contents thereof. Undex these circumstances, in the robot programming device 10 (60) according to the present invention, it is possible, as already described, to easily and reliably retrieve previous data optimal for the new workpiece, with the workpiece feature information 12 obtained from the three-dimensional shape data of the workpiece used as a keyword, without being affected by the skill of the operator.
Even if the previous data cannot be reused without changing the contents thereof, it is very useful to allow the actually used previous data to be referenced. For example, in particular, in a case where a new workpiece is geometrically similar to, or different only in height or length from, a workpiece for which a carrying operation program has been previously prepared, the difference between the three-dimensional shape data 50 of the previous workpiece and the three-dimensional shape data 54 of the new workpiece is be calculated, and based on this difference, the previous data can be corrected, as described with reference to
As apparent from the above description, according to the present invention, when the new workpiece is introduced into the existing manufacturing system, it is possible to effectively use various information about the robot hand, the finger of the hand, the workpiece retainer and the carrying operation program, corresponding to the existing workpiece, and thereby to easily and reliably prepare the carrying operation program optimal for the new workpiece by a reduced number of steps, without requiring an operator's skill. In particular, as the number of the obtained data with regard to the previous workpiece carrying operation is sufficiently increased, the carrying operation program suitable for the new workpiece can be prepared automatically only by making the robot view the new workpiece, and therefore, it is possible to eliminate the need to teach the carrying operation to the robot.
While preferred embodiments of the present invention have been explained above, it is also possible to define the present invention in the other categories according to the above-described embodiments, from a viewpoint that the robot programming device 10, 60 can be configured by a personal computer, as follows.
Thus, the present invention is a program for a robot programming, used for preparing a carrying operation program 30, 106, 108 for making a robot 62 with a hand 64 attached thereto perform a workpiece carrying operation including at least one of a mounting motion and a Remounting motion for a workpiece W1, W2 relative to a workpiece retainer 68a, 68b, 70a, the program making a computer 10, 60 function as a workpiece-feature obtaining section 14 obtaining workpiece feature information 12 representing a geometrical feature of a workpiece W1, W2 from a three-dimensional shape data of the workpiece W1, W2; a retainer-position obtaining section 18 obtaining relative position information 16 between a workpiece W1, W2 and a workpiece retainer 68a, 68b, 70a at an instant when the workpiece W1, W2 is mounted to the workpiece retainer 68a, 68b, 70a; a hand-position obtaining section 22 obtaining relative position information 20 between a workpiece W1, W2 and a hand 64 at an instant when the hand 64 holds the workpiece W1, W2; a storing section 24 storing the workpiece feature information 12 obtained by the workpiece-feature obtaining section 14, the relative position information 16 between the workpiece and the workpiece retainer obtained by the retainer-position obtaining section 18 and the relative position information 20 between the workpiece and the hand obtained by the hand-position obtaining section 22, as a set of obtained data D defined by correlating these three types of information with each other, and also storing a plurality of sets of the obtained data D with regard to a plurality of types of workpieces W1, W2; an obtained-data retrieving section 28 retrieving optimal obtained data SD, from among the plurality of sets of obtained data D stored in the storing section 24, by using new-workpiece feature information 26 obtained from three-dimensional shape data of a new workpiece, the optimal obtained data including the workpiece feature information 12 having a highest degree of coincidence with the new-workpiece feature information 26; and a program generating section 32 generating a carrying operation program 30 for the new workpiece by using the optimal obtained data SD retrieved by the obtained-data retrieving section 28.
Also, the present invention is a computer readable recording medium, used for preparing a carrying operation program 30, 106, 108 for making a robot 62 with a hand 64 attached thereto perform a workpiece carrying operation including at least one of a mounting motion and a demounting motion for a workpiece W1, W2 relative to a workpiece retainer 68a, 68b, 70a, the recording medium recording a program for a robot programming and for making a computer 10, 60 function as a workpiece-feature obtaining section 14 obtaining workpiece feature information 12 representing a geometrical feature of a workpiece W1, W2 from a three-dimensional shape data of the workpiece W1, W2; a retainer-position obtaining section 18 obtaining relative position information 16 between a workpiece W1, W2 and a workpiece retainer 68a, 68b, 70a at an instant when the workpiece W1, W2 is mounted to the workpiece retainer 68a, 68b, 70a; a hand-position obtaining section 22 obtaining relative position information 20 between a workpiece W1, W2 and a hand 64 at an instant when the hand 64 holds the workpiece W1, W2; a storing section 24 storing the workpiece feature information 12 obtained by the workpiece-feature obtaining section 14, the relative position information 16 between the workpiece and the workpiece retainer obtained by the retainer-position obtaining section 18 and the relative position information 20 between the workpiece and the hand obtained by the hand-position obtaining section 22, as a set of obtained data D defined by correlating these three types of information with each other, and also storing a plurality of sets of the obtained data D with regard to a plurality of types of workpieces W1, W2; an obtained-data retrieving section 28 retrieving optimal obtained data SD, from among the plurality of sets of obtained data D stored in the storing section 24, by using new-workpiece feature information 26 obtained from three-dimensional shape data of a new workpiece, the optimal obtained data including the workpiece feature information 12 having a highest degree of coincidence with the new-workpiece feature information 26; and a program generating section 32 generating a carrying operation program 30 for the new workpiece by using the optimal obtained data SD retrieved by the obtained-data retrieving section 28.
Also, the present invention is a robot programming method for preparing, by using a computer 10, 60, a carrying operation program 30, 106, 108 for making a robot 62 with a hand 64 attached thereto perform a workpiece carrying operation, the workpiece carrying operation including at least one of a mounting motion and a demounting motion for a workpiece W1, W2 relative to a workpiece retainer 68a, 68b, 70a, the method comprising the step of obtaining, by a workpiece-feature obtaining section 14 of a computer 10, 60, workpiece feature information 12 representing a geometrical feature of a workpiece W1, W2 from a three-dimensional shape data of the workpiece W1, w2; the step of obtaining, by a retainer-position obtaining section 18 of a computer 10, 60, relative position information 16 between a workpiece W1, W2 and a workpiece retainer 68a, 68b, 70a at an instant when the workpiece W1, W2 is mounted to the workpiece retainer 68a, 68b, 70a; the step of obtaining, by a hand-position obtaining section 22 of a computer 10, 60, relative position information 20 between a workpiece W1, W2 and a hand at an instant when the hand holds the workpiece W1, W2; the step of storing, by a storing section 24 of a computer 10, 60, the workpiece feature information 12 obtained by the workpiece-feature obtaining section 14, the relative position information 16 between the workpiece and the workpiece retainer obtained by the retainer-position obtaining section 18 and the relative position information 20 between the workpiece and the hand obtained by the hand-position obtaining section 22, as a set of obtained data D defined by correlating these three types of information with each other, and also storing a plurality of sets of the obtained data D with regard to a plurality of types of workpieces W1, W2; the step of retrieving, by an obtained-data retrieving section 28 of a computer 10, 60, optimal obtained data SD, from among the plurality of sets of obtained data D stored in the storing section 24, by using new-workpiece feature information 26 obtained from three-dimensional shape data of a new workpiece, the optimal obtained data including the workpiece feature information 12 having a highest degree of coincidence with the new-workpiece feature information 26; and the step of generating, by a program generating section 32 of a computer 10, 60, a carrying operation program 30 for the new workpiece by using the optimal obtained data SD retrieved by the obtained-data retrieving section 28.
While the invention has been described with reference to specific preferred embodiments, it will be understood, by those skilled in the art, that various changes and modifications may be made thereto without departing from the scope of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
2006-184609 | Jul 2006 | JP | national |