The present application claims priority under 35 U.S.C. §119 to Japanese Patent Application No. 2013-165816, filed Aug. 9, 2013. The contents of this application are incorporated herein by reference in their entirety.
1. Field of the Invention
The present invention relates to a robot control apparatus and a method for controlling a robot.
2. Discussion of the Background
Industrial articulated robots and other industrial robots are connected with robot control apparatuses each including a computer as a main unit. The robot control apparatus controls movement of the robot based on a movement control program. Specifically, upon execution of the movement control program, various control commands are transmitted to the robot, and in response to the control commands, the robot makes an expected movement.
According to one aspect of the present disclosure, a robot control apparatus includes a storage section, a display control section, and a work program preparation section. The storage section is configured to associate information of work performed by a robot with a template to prepare a work program indicating content of the work, and configured to store the information in association with the template. The display control section is configured to control a display section to display, in order, setting windows respectively corresponding to work steps of the work. The work program preparation section is configured to, in response to an operator selecting the work, prepare the work program indicating the content of the work selected by the operator based on the template corresponding to the work selected by the operator and based on setting information that the operator inputs on at least one setting window among the setting windows.
According to another aspect of the present disclosure, a method for controlling a robot includes, in response to an operator selecting work performed by a robot, acquiring from a storage section a template corresponding to the work to prepare a work program indicating content of the work. The storage section stores the template in association with information of the work. Setting windows respectively corresponding to work steps of the work are displayed in order. The work program indicating the content of the work is prepared based on the acquired template and based on setting information that the operator inputs on at least one setting window among the setting windows.
A more complete appreciation of the present disclosure and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:
The embodiments will now be described in detail with reference to the accompanying drawings, wherein like reference numerals designate corresponding or identical elements throughout the various drawings.
The robot control apparatus 1 according to this embodiment prepares a movement control program for controlling movement of the robot 30 prior to introduction of the robot 30 or prior to re-arrangement of the robot 30, that is, at an initial setting stage at which the robot control apparatus 1 and the robot 30 are in an off-line environment. In the movement control program, a work program indicating the content of work performed by the robot 30 is associated with movement path information including information of the position and posture of the installed robot 30. The robot 30 performs an expected kind of work based on the movement control program. In order to prepare the movement control program, the robot control apparatus 1 functions as a task planner and a path planner. The task planner performs task planning to prepare the work program for the work performed by the robot 30. The path planner performs path planning to prepare movement paths of the robot 30.
As shown in
The functions of the elements of the robot control apparatus 1 will be described.
The display control section 19 controls the display section 107 to display various setting windows to receive instructions (operations) from the operator. The operation reception section 11 receives the instructions from the operator. On the setting windows for the task planning, the operator gives an instruction using, for example, an operation device (not shown) coupled to the robot control apparatus 1, examples including, but not limited to, a keyboard and a mouse.
Based on the content of the instruction from the operator, the robot control apparatus 1 prepares a work program indicating the content of the work performed by the robot 30A. Here, the work (job) includes a plurality of work steps (sub-jobs). An example of the work (job) is “assembly of motor casing parts”, which includes three work steps (sub-jobs), namely, pressing (step 1: sub job 1), picking (step 2: sub-job 2), and insertion (step 3: sub job 3). The robot 30A makes a movement based on a work program that corresponds to the work including this series of work steps.
When the operator selects a desired type of work, the work acquisition section 12 acquires a result of the selection. A selection of types of work is registered in the work data area 5a in advance. From among a plurality of types of work on a setting window (setting window 0x), the operator selects a type of work for which a work program is to be prepared. As shown in
The operator selects a desired work step on a setting window (setting window 1x) from among the work steps of the work selected by the operator. The work step acquisition section 13 acquires a result of the selection, and also acquires from the template data area 5b a template of a sub-job program (work step program) corresponding to the selected work step. The template stores, for example, a style and formulaic phrases of the program. The template data area 5b stores templates of sub-job programs corresponding to the work steps of the work. In the case of a plurality of work steps, a template of a sub job program is associated with each individual work step. In the example shown in
From the CAD data area 5c, the part information acquisition section 14 acquires information of a part (work target) corresponding to the work selected by the operator and information of a part that the operator has selected on a setting window (setting window 2x). As shown in
From the CAD data area 5c, the tool information acquisition section 15 acquires information of a tool corresponding to the work selected by the operator, and information of a tool that the operator has selected on the setting window (setting window 2x). As shown in
The parameter acquisition section 16 acquires a parameter (work condition) set on a setting window (setting window 3x) by the operator. Also the parameter acquisition section 16 refers to the skill data area 5d to determine whether the work parameter set by the operator satisfies a value (specified parameter (threshold) set in advance) suitable for the work step. That is, the parameter acquisition section 16 also functions as a determination section. As shown in
From the robot data area 5e, the robot information acquisition section 17 acquires information of a robot that the operator has selected on a setting window (setting window 4x). As shown in
The work program preparation section 18 combines the template of the sub job program acquired by the work step acquisition section 13 with the part information acquired by the part information acquisition section 14, the tool information acquired by the tool information acquisition section 15, the work parameter acquired by the parameter acquisition section 16, and the robot information acquired by the robot information acquisition section 17. Thus, a sub job program is prepared. Further, based on the prepared sub-job program, the work program preparation section 18 prepares a work program corresponding to the work. The work program preparation section 18 associates the prepared work program with the sub job program and stores the resulting work program in the work program area 5f.
In the robot control apparatus 1, the display control section 19 controls the display section 107 to display the setting windows (including the setting windows 0x to 4x) that correspond to the processing of the above-described elements. Specific examples of the setting windows will be described later. As shown in
As shown in
When the work acquisition section 12 acquires the work selected by the operator, the setting window display section 19a acquires from the setting window data area 5g a setting window corresponding to the work selected by the operator; the part column setting section 19b acquires from the CAD data area 5c (see
The half-finished product column setting section 19f refers to the part data area 5h to acquire three-dimensional model data (of a half-finished product, which is in the middle of production) at the time of execution of each work step. The half-finished product column setting section 19f sets (registers) the three-dimensional model data in the half-finished product column of the setting window. In the half-finished product column of the setting window, an image of the half-finished product is displayed.
In the work step column of the setting window, the work step column setting section 19g sets (registers) a selected object (three-dimensional model data of the part, the tool, or another element) that the operator has selected on the setting window. Examples of the method of setting the selected object in the work step column are that the operator uses a mouse pointer to drag the part image set (displayed) in the part column and drop the part image in the work step column, and that a list of a plurality of part names are displayed in the work step column, and the operator clicks on a desired part name using a mouse pointer. The work step column of the setting window displays an image of the part, the tool, or another element that has been set.
In the work sequence column, the work sequence column setting section 19h sets (registers) a step name corresponding to each work step. Each step name is associated with a sub job program, so that selecting (clicking on) the step name causes the content of the corresponding sub-job program to be displayed on the setting window.
The method of preparing the work program (task planning) in the robot control apparatus 1 will be described by referring to a specific example. This example is regarding a method of preparing a work program corresponding to the work “assembly of motor casing parts” (hereinafter referred to as work A). Work A includes three work steps, namely, pressing (step 1), picking (step 2), and insertion (step 3).
First, at the start of processing of the task planning, the display section 107 displays an initial setting window (S101). In the example shown in
Next, the setting window display section 19a acquires a setting window corresponding to work A (see
Next, on the setting window 1x, the operator selects “Step 1” included in work A (S105). For example, the operator uses a mouse to click on “Step 1” on the setting window. When the operator selects “Step 1”, the work step acquisition section 13 acquires from the template data area 5b (see
Next, on the setting window 2x, the operator selects part PF1, tool T1, and work stand WS1 (S108). For example, the operator uses a mouse to drag part PF1 set in the part column of the setting window 2x and drop part PF1 in the work step column; drag tool T1 set in the tool column and drop tool T1 in the work step column; and drag work stand WS1 set in the environment model column and drop work stand WS1 in the work step column. Thus, the work step column setting section 19g sets part PF1, work stand WS1, and tool T1 in the work step column, thereby updating the setting window 2x as shown in
Next, the work step column setting section 19g displays in the work step column a setting column on which to set work parameters (S111).
Next, the operator sets (inputs) work parameters on the setting window 3x (S112). For example, the operator sets a distance (proximity height) of D (mm)=30 between work stand WS1 and part PF1, and a pressing reaction force of F (N)=5. Thus, the setting window 3x is updated as shown in
When the operator sets the work parameters, the parameter acquisition section 16 determines whether the work parameters satisfy specified parameters (thresholds) set in advance (S114). When the work parameters do not satisfy the thresholds, the display control section 19 controls the display section 107 to display a message to prompt re-entry of work parameters (S115).
When the work parameters satisfy the thresholds, the work step column setting section 19g displays in the work step column a setting column on which to select a robot (S116).
Next, the operator selects the robot 30A on the setting window 4x (S117). From the robot data area 5e (see
Next, when the operator presses “Complete setting” button included in the setting window 4x (S119), the work program preparation section 18 combines the template of the sub-job-1 program with the information of part PF1, tool T1, work stand WS1, the work parameters (D=30, F=5), and the robot 30A. Thus, the sub-job-1 program (see
Next, when the operator gives an instruction to continue the task planning (for example, when the operator clicks on “Proceed to next process” on the setting window 5x) (S122), then the display section 107 again displays the setting window 1x with the columns filled in by the setting sections (S123). On the setting window 1x, the operator selects “Step 2” included in work A (see
Finally, when the operator gives an instruction to complete the task planning (for example, when the operator clicks on “Complete” on the setting window 5x) (S125), then the work program preparation section 18 prepares a work program corresponding to work A based on the sub-job-1 program, the sub-job-2 program, and the sub-job-3 program, which respectively correspond to steps 1 to 3 included in work A (S126).
The task planning of the robot control apparatus 1 according to this embodiment facilitates preparation of the work program that indicates the content of the work performed by the robot. Also, the task planning of the robot control apparatus 1 enables the operator to recognize (visually confirm) the progress (development) of preparation of the work program. The work program prepared in the task planning indicates the content of the work without including position information of the robot and the work stand. This ensures continued utilization of the work program even if the type or the position of the robot is changed, for example.
Subsequently after the processing of the task planning has been ended, the operator makes the robot control apparatus 1 perform processing of path planning to preparing trajectories (movement paths) including information of the position and posture of the installed robot 30A. The processing of the path planning will be described below. For convenience of description, the elements that have approximately the same functions as the elements to perform the task planning are denoted with the same reference numerals, and descriptions of those elements will be omitted.
As shown in
Similarly to the task planning, the display control section 19 controls the display section 107 to display various setting windows to receive instructions from the operator, and the operation reception section 11 receives the instructions from the operator. On the setting windows for the path planning, the operator gives the instructions using an operation device coupled to the robot control apparatus 1, examples including, but not limited to, a keyboard and a mouse.
Based on the content of the instruction from the operator, the robot control apparatus 1 prepares movement paths for the robots 30 to perform work in accordance with work programs. This will be exemplified below with work A, which is related to the robot 30A, and with step 1, step 2, and step 3 included in work A.
The functions of the elements of the robot control apparatus 1 will be described.
The work program area 5f stores the work program corresponding to work A in association with the sub-job-1 program, the sub-job-2 program, and the sub-job-3 program. Position information and coordinate information of the sub-job programs (see
The position data area 5i stores coordinate systems of the respective parts, tools, work stands, and robots. For example, the position data area 5i stores coordinate systems of respective parts PF1, PF2, and PF3, tool T1, work stand WS1, and robot 30A. Also the position data area 5i stores designed positions (position measurement data) of the respective parts, tools, and work stands relative to the positions of the installed robots. This ensures that positional relationships (coordinate positions) of the parts PF1, PF2, and PF3, tool T1, work stand WS1, and the robot 30A, for example, are specified. It should be noted that the robots 30A, 30B, and 30C are manually installed at desired robot installation positions, and thus actual positions of the work stands relative to the robots 30A, 30B, and 30C may differ from the designed positions of the work stands. The designed relative positions of the parts, the tool, and the work stands are stored in association with the robot installation positions. Thus, the position data area 5i stores the coordinate position of each robot in association with the robot identification information.
The movement control program area 5j stores a movement control program. In the movement control program, the work program prepared in the task planning is associated with the movement path prepared in the path planning.
From the work program area 5f, the program acquisition section 21 acquires a work program targeted for the processing of the path planning. In this example, the program acquisition section 21 acquires the work program corresponding to work A. In this work program, the sub-job-1 program, the sub-job-2 program, and the sub-job-3 program are respectively associated with the coordinate system files 1, 2, and 3. The program acquisition section 21 acquires the work program when, for example, the operator gives an instruction to start the path planning.
From the position data area 5i, the position acquisition section 22 acquires the positions (coordinate systems) of the respective parts, tool, work stand, and robot. In this example, the position acquisition section 22 acquires the positions (coordinate systems) of respective parts PF1, PF2, and PF3, tool T1, work stand WS1, and robot 30A.
Based on the position information acquired by the position acquisition section 22, the movement determination section 23 determines whether the start point and the destination point of the movement in each step are within a movable range (within a predetermined range). The movable range is calculated based on the position information acquired by the position acquisition section 22. Also based on the position information acquired by the position acquisition section 22, the movement determination section 23 determines whether the robot 30A interferes with obstacles such as the other robots 30B and 30C and surrounding objects in the movement of each step. That is, the movement determination section 23 performs movement range checking and interference checking. When the movement range checking reveals that the start point and the destination point of the movement in each step are within the movable range, the movement determination section 23 determines this state as normal. When the interference checking reveals no interference between the robot and the obstacles, the movement determination section 23 determines this state as normal. The movement determination section 23 determines otherwise states as abnormal. It is possible to perform the movement range checking and the interference checking by simulating the movement of the robots 30 in their work space in virtual space using the three-dimensional model data stored in the CAD data area 5c.
Based on a result of the determination by the movement determination section 23, the path preparation section 24 prepares a movement path of the robot between two successive steps in the production order. For example, the path preparation section 24 prepares a movement path 0-1 of the robot 30A between step 0 and step 1, a movement path 1-2 of the robot 30A between step 1 and step 2, and a movement path 2-3 of the robot 30A between step 2 and step 3. Also the path preparation section 24 stores information of the prepared movement paths in the work program area 5f.
When the result of the determination by the movement determination section 23 is “abnormal”, the position adjustment section 25 adjusts the positional relationship of the work stand and the robot in the virtual space.
The movement control program preparation section 26 associates the movement paths prepared by the path preparation section 24 with the work program prepared in the task planning so as to prepare a movement control program. The movement control program preparation section 26 stores the prepared movement control program in the movement control program area 5j.
Similarly to the task planning, the display control section 19 controls the display section 107 to display setting windows that correspond to the processing of the above-described elements. Specific examples of the setting windows will be described later. As shown in
From the setting window data area 5g, the setting window display section 19a acquires setting windows corresponding to the work selected by the operator, and displays the setting windows on the display section 107.
When the work acquisition section 12 acquires the work selected by the operator, the work sequence column setting section 19i refers to the work program area 5f to set (register), in the work sequence column, a work sequence corresponding to the work (steps including the sub-job programs associated with the work program) (see
From the work sequence of the steps set in the work sequence column, the log column setting section 19j selects a log indicating progress of preparation of the movement path associated with the step selected by the operator, and displays the log in the movement path preparation log column. Displaying the log enables the operator to recognize the progress (development) of preparation of the movement path.
The environment model column setting section 19k displays an image of a three-dimensional model in the environment model column based on the position information of the parts, tool, work stand, and robot acquired by the position acquisition section 22, and based on the three-dimensional model data stored in the CAD data area 5c. Also the environment model column setting section 19k displays the positional relationship of the parts, tool, work stand, and robot based on a result of the determination by the movement determination section 23.
The method of preparing the movement paths in the robot control apparatus 1 (path planning) will be described by referring to a specific example. The following description will exemplify the method of preparing the movement paths with work A, which has been prepared in the task planning.
First, at the start of processing of the path planning, the display section 107 displays an initial setting window (S201). In the example shown in
Next, the setting window display section 19a acquires a setting window corresponding to work A (see
Next, on the setting window 1y, the operator selects “Step 1” in the work sequence column (S205). For example, the operator uses a mouse to click on “Step 1” on the setting window. When the operator selects “Step 1”, the program acquisition section 21 acquires the sub-job-1 program of step 1 from the work program area 5f (S206), and the position acquisition section 22 acquires the positions (coordinate systems) of the respective parts, tool, work stand, and robot 30A from the position data area 5i (S207).
Next, the movement determination section 23 performs movement range checking and interference checking based on the sub-job-1 program acquired by the program acquisition section 21 and based on the position information acquired by the position acquisition section 22 (S208). When both checking operations are found normal, the path preparation section 24 prepares the movement path 0-1 of the robot 30A between step 0 and step 1, and associates the prepared movement path 0-1 with the sub-job-1 program (see
When at least one of the movement range checking and the interference checking is found abnormal, the position adjustment section 25 adjusts the position of the robot 30A in the virtual space (S211), and the processing returns to S208.
Based on the movement path 0-1 prepared in the above-described manner, position information and coordinate information (Coord, P1, and P2) of the sub-job-1 program are determined.
When the operator selects “Step 2” in the work sequence column (S212), the program acquisition section 21 acquires the sub-job-2 program of step 2 from the work program area 5f (S213), and the position acquisition section 22 acquires the positions (coordinate systems) of the respective parts, tool, work stand, and robot 30A from the position data area 5i (S214).
Next, the movement determination section 23 performs movement range checking and interference checking based on the sub-job-2 program acquired by the program acquisition section 21 and based on the position information acquired by the position acquisition section 22 (S215). Description will be made in detail with regard to the case where the movement range checking is found abnormal. The position adjustment section 25 adjusts the position of the robot 30A in the virtual space (S216). For example, when the robot 30A in step 2 is marked at −α mm on the X coordinate, the base position of the robot 30A is adjusted to +α mm on the X coordinate. After the position adjustment, the processing returns to S215, where the movement determination section 23 performs the movement range checking and the interference checking again. The position adjustment with respect to step 2 may cause a displacement of the movement position in the previous step 1, which in turn may cause the robot 30A to move out of the movable range or interfere with obstacles. In view of this, when the movement range checking and the interference checking are performed again, the previous step 1 is also checked.
After the position adjustment ends, the path preparation section 24 prepares the movement path 1-2 of the robot 30A between step 1 and step 2, and associates the prepared movement path 1-2 with the sub-job-2 program (see
Based on the movement path 1-2 prepared in the above-described manner, position information and coordinate information (Coord, P1, and P2) of the sub-job-2 program are determined. Similarly, the movement path 2-3 prepared in association with step 3 is associated with the sub-job-3 program (see
When the movement path 2-3 in association with step 3 is prepared, the movement control program preparation section 26 prepares a movement control program corresponding to work A based on the sub-job-1 program, the sub-job-2 program, and the sub-job-3 program, which are respectively associated with the movement path 0-1, the movement path 1-2, and the movement path 2-3 (S219).
The robot 30A makes movements corresponding to work A based on the movement control program prepared in the robot control apparatus 1.
The path planning of the robot control apparatus 1 according to this embodiment facilitates preparation of the movement paths, and also enables the operator to recognize (visually confirm) the progress (development) of preparation of the movement paths.
The control section 104 may further include the likelihood calculation section 27 (see
A specific example of the robot system including the robot control apparatus 1 according to this embodiment will be described below.
Robot controllers 20A, 20B, and 20C are computers respectively coupled to the robots 30A, 30B, and 30C in order to control the respective robots. Network devices 18A, 18B, and 18C are respectively coupled to the robot controllers 20A, 20B, and 20C. All the network devices 18A, 18B, and 18C are coupled to a robot network 40. Also to the robot network 40, a robot control computer 100 is coupled to support and control the operation of the robot controllers 20A, 20B, and 20C. The robot controllers 20A, 20B, and 20C are individually communicable with the robot control computer 100 respectively through the network devices 18A, 18B, and 18C and through the robot network 40. The network devices 18A, 18B, and 18C, and the robot control computer 100 store network identifiers such as addresses used in the robot network 40. The network identifiers are used to identify transmission sources and destinations. The robot control apparatus 1 according to this embodiment is applicable as the robot control computer 100.
The transfer device 36 stops the work stands 38 beside the positions of the installed robots 30A, 30B, and 30C. When the robots 30A, 30B, and 30C end their work, the transfer device 36 moves the work stands 38 to beside the positions of the downstream robots. The robot controllers 20A, 20B, and 20C may notify the transfer device 36 that the respective robots 30A, 30B, and 30C have ended their work.
Across the transfer device 36, work target ID readers 32A, 32B, and 32C are disposed respectively in opposition to the positions of the robots 30A, 30B, and 30C. The work targets 34 have their own ID (identification information) in a mechanically readable form such as a one-dimensional or two-dimensional bar code. The ID of each work target 34 is attached to the work target 34 or the work stand 38, on which the work target 34 is disposed. Examples of the ID of each work target 34 include, but are not limited to, a final or temporary serial number and a final or temporary lot number assigned to the work target 34. The work target ID readers 32A, 32B, and 32C, such as bar code readers, read the ID attached to the work targets 34 or the work stands 38, and notify a production control computer 200 of the ID through a production control network 42. That is, the work target ID readers 32A, 32B, and 32C and the production control computer 200 are coupled to the production control network 42. Also the robot control computer 100 (robot control apparatus 1), described above, is coupled to the production control network 42. This enables the robot control computer 100 and the production control computer 200 to communicate with each other.
When, for example, the robot 30A is introduced in the robot system 10 or when the robot 30A is re-arranged in the robot system 10, the robot 30A is installed at an expected position, and the robot controller 20A is coupled to the network device 18A. This prompts the robot control computer 100 (robot control apparatus 1) to transmit to the robot controller 20A the movement control program (see
Each of the robot controllers 20A, 20B, and 20C may be the robot control apparatus 1 according to this embodiment.
Obviously, numerous modifications and variations of the present disclosure are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the present disclosure may be practiced otherwise than as specifically described herein.
Number | Date | Country | Kind |
---|---|---|---|
2013-165816 | Aug 2013 | JP | national |