Apparatus, method, and computer program for adjusting posture of robot
Through direct teaching of the execution unit and posture adjustment function, the robot posture adjustment process is simplified, the problem of difficulty in adjusting the robot posture in the existing technology is solved, and more convenient and precise posture adjustment is achieved.
Patent Information
- Application Number
- CN202280102625.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-12-23
- Publication Date
- 2025-07-25
AI Technical Summary
In the teaching of robots, it is difficult to adjust the robot's posture, and the existing technology is difficult to simplify this process.
The direct teaching execution unit is used to perform the robot action driven by the operation force, and adjust the target posture according to the reference posture through the input reception unit and the action determination unit, or register the current posture as the reference posture through the posture registration command, and adjust the posture using the processor.
The operation process of robot posture adjustment is simplified, making it easier and more efficient, and improving the convenience and accuracy of robot teaching.
Smart Images

Figure CN120379798A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to an apparatus, a method, and a computer program for adjusting the posture of a robot. Background Art
[0002] Techniques for teaching the actions of a robot are known (for example, Patent Documents 1 and 2).
[0003] Prior Art Documents
[0004] Patent Documents
[0005] Patent Document 1: Japanese Unexamined Patent Application Publication No. 2000-24968
[0006] Patent Document 2: Japanese Unexamined Patent Application Publication No. 2009-66738 Summary of the Invention
[0007] Problems to be Solved by the Invention
[0008] In the teaching of a robot, a technique is desired to facilitate the operation of adjusting the posture of the robot.
[0009] Means for Solving the Problems
[0010] In one aspect of the present disclosure, an apparatus for adjusting the posture of a robot in the teaching of the robot includes: a direct teaching execution unit that executes a direct teaching function, which is to make the robot move according to an operating force applied to the robot; an input reception unit that, in order to adjust the posture of the robot after the direct teaching execution unit makes the robot move through the direct teaching function, receives an input such as selecting a reference posture as a basis for the adjustment; and a motion determination unit that determines a target posture after adjustment based on the reference posture received by the input reception unit and conditions for adjustment based on the reference posture.
[0011] In another aspect of the present disclosure, an apparatus for adjusting the posture of a robot in the teaching of the robot includes: an input reception unit that receives an input of a posture registration instruction for registering a reference posture as a basis for adjustment in a database; and a reference posture setting unit that registers the current posture of the robot as a new reference posture in the database according to the posture registration instruction received by the input reception unit.
[0012] In still other aspects of the present disclosure, a method for adjusting the posture of a robot during teaching of the robot, the processor performs the following operations: execute a direct teaching function, which means that the robot moves according to the operating force applied to the robot; in order to adjust the posture of the robot that has moved through the direct teaching function, accept the following input: an input of selecting a reference posture as the basis for the adjustment; determine the target posture after adjustment according to the accepted reference posture and the conditions for adjustment based on the reference posture.
[0013] In still other aspects of the present disclosure, a method for adjusting the posture of a robot during teaching of the robot, the processor performs the following operations: accept an input of a posture registration instruction for registering a reference posture as the basis for adjustment in a database; according to the accepted posture registration instruction, register the current posture of the robot as a new reference posture in the database. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Figure 1 is a schematic diagram of a robot system according to an embodiment.
[0015] Figure 2 is Figure 1 a block diagram of the robot system shown.
[0016] Figure 3 is a flowchart showing Figure 1 an example of the functions of the robot system shown.
[0017] Figure 4 is in Figure 3 an example of the image data generated in step S1.
[0018] Figure 5 represents based on Figure 3 the movement path of the robot by the direct teaching function executed in step S3.
[0019] Figure 6 is a flowchart showing Figure 3 an example of the process of step S7.
[0020] Figure 7 is a flowchart showing Figure 3 a diagram of the robot model of the current posture of the robot at the start time of step S7.
[0021] Figure 8 represents a tool coordinate system showing the target posture.
[0022] Figure 9 represents the movement path during the posture adjustment of the robot.
[0023] Figure 10An example of display setting image data for setting display or non-display of a reference posture.
[0024] Figure 11 It represents Figure 6 A flowchart showing another example of step S12 in
[0025] Figure 12 A schematic diagram of a robot system according to another embodiment.
[0026] Figure 13 A schematic diagram of a robot system according to yet another embodiment.
[0027] Figure 14 It is Figure 13 A block diagram of the robot system shown in
[0028] Figure 15 It represents Figure 13 A flowchart showing an example of the function of the robot system shown in
[0029] Figure 16 It is Figure 13 An example of the image data generated in step S1 in
[0030] Figure 17 It represents Figure 15 A flowchart showing an example of the process of step S10 in
[0031] Figure 18 It is Figure 16 An enlarged view of the model image area shown in
[0032] Figure 19 It represents Figure 18 In the image data shown, the state where a reference coordinate system is set for the model component. Detailed Embodiments
[0033] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings. In addition, in the various embodiments described below, the same reference numerals are assigned to the same elements, and repeated descriptions are omitted. First, with reference to Figure 1 and Figure 2 , a robot system 10 according to an embodiment will be described. The robot system 10 includes: a robot 12, a control device 14, and a teaching device 15.
[0034] The robot 12 is a vertically articulated robot that performs a prescribed operation (for example, workpiece handling, welding, cutting, or laser processing) on a workpiece (not shown). Specifically, the robot 12 includes: a robot base 16, a rotating body 18, a lower arm portion 20, an upper arm portion 22, a wrist portion 24, and an end effector 26.
[0035] The robot base 16 is fixed to the floor of the work unit or an automated guided vehicle (AGV). The rotating body 18 is provided on the robot base 16 so as to be rotatable about the first joint axis A1. The first joint axis A1 is, for example, parallel to the vertical direction and is fixedly provided on the rotating body 18. The lower arm portion 20 is provided on the rotating body 18 so as to be rotatable about the second joint axis A2. The second joint axis A2 is orthogonal to the first joint axis A1 (i.e., parallel to the horizontal direction) and is fixedly provided at the base end portion of the lower arm portion 20.
[0036] The upper arm portion 22 has a base end arm portion 22a and a front end arm portion 22b. The base end arm portion 22a is provided at the front end portion of the lower arm portion 20 so as to be rotatable about the third joint axis A3. The third joint axis A3 is parallel to the second joint axis A2 and is fixedly provided at the base end portion of the base end arm portion 22a. The front end arm portion 22b is provided at the front end portion of the base end arm portion 22a so as to be rotatable about the fourth joint axis A4. The fourth joint axis A4 is orthogonal to the third joint axis A3 and is fixedly provided at the base end portion of the front end arm portion 22b.
[0037] The wrist portion 24 has a wrist base 24a and a wrist flange 24b. The wrist base 24a is provided at the front end portion of the front end arm portion 22b so as to be rotatable about the fifth joint axis A5. The fifth joint axis A5 is orthogonal to the fourth joint axis A4 and is fixedly provided on the wrist base 24a. The wrist flange 24b is provided on the wrist base 24a so as to be rotatable about the sixth joint axis A6. The sixth joint axis A6 is orthogonal to the fifth joint axis A5 and is fixedly provided on the wrist flange 24b.
[0038] The end effector 26 is detachably mounted on the wrist flange 24b. The end effector 26 is, for example, a robot manipulator, a welding torch, a cutting tool, or a laser processing head, and performs operations on the workpiece (workpiece handling, welding, cutting, or laser processing).
[0039] Servo motors 28 are respectively connected to the joint axes A1 to A6 ( Figure 2 ). These servo motors 28 respectively rotate and drive the joint axes A1 to A6 according to instructions from the control device 14. Thus, the rotating body 18, the lower arm portion 20, the base end arm portion 22a, the front end arm portion 22b, the wrist base 24a, and the wrist flange 24b (i.e., the end effector 26) respectively rotate about the joint axes A1 to A6.
[0040] In addition, rotation detectors 30 for detecting the rotational positions R1 to R6 of the joint axes A1 to A6 (in other words, the rotational positions of the respective servo motors 28) are respectively provided on the servo motors 28 ( Figure 2 ). The rotation detectors 30, for example, have an encoder or a Hall element, and provide data on the detected rotational positions R1 to R6 to the control device 14.
[0041] In addition, a force sensor 32 for detecting an operating force F manually applied by an operator to the robot 12 is provided in the robot 12( Figure 2 ). The force sensor 32 has, for example, a six-axis force sensor or torque sensors respectively provided on the joint axes A1 to A6, and supplies data of the detected operating force F to the control device 14.
[0042] A robot coordinate system C1 and a tool coordinate system C2 are set for the robot 12 as control coordinate systems C for controlling the movement of the robot 12. The robot coordinate system C1 is a control coordinate system C for automatically controlling the movements of the respective movable components of the robot 12 (i.e., the rotating body 18, the lower arm portion 20, the base end arm portion 22a, the front end arm portion 22b, the wrist base 24a, the wrist flange 24b, and the end effector 26). In the present embodiment, the robot coordinate system C1 is fixed to the robot base 16 such that its origin is disposed at the center of the robot base 16 and its z-axis is parallel (specifically, coincident) with the first joint axis A1.
[0043] On the other hand, the tool coordinate system C2 is a control coordinate system C that defines the position P and the posture O of the end effector 26 in the robot coordinate system C1. In the present embodiment, the tool coordinate system C2 is set for the end effector 26 such that its origin (so-called TCP) is disposed at the working position of the end effector 26 (e.g., the workpiece gripping position, the welding position, the tool tip point, or the laser beam exit port) and its z-axis is parallel (specifically, coincident) with the sixth joint axis A6.
[0044] The control device 14 is a computer having a processor 34, a memory 36, and an I / O interface 38. The processor 34 has a CPU or a GPU, etc., and is communicably connected to the memory 36 and the I / O interface 38 via a bus 40, communicates with these components, and performs arithmetic processing for implementing a robot control function.
[0045] The memory 36 has a RAM or a ROM, etc., and temporarily or permanently stores various data. The memory 36 may be a computer-readable non-transitory recording medium such as a semiconductor memory, a magnetic recording medium, or an optical recording medium. The I / O interface 38 has, for example, an Ethernet (registered trademark) port, a USB port, an optical fiber connector, or an HDMI (registered trademark) terminal, and communicates data with an external device by wire or wirelessly under an instruction from the processor 34.
[0046] When moving the end effector 26, the processor 34 sets the tool coordinate system C2 in the robot coordinate system C1 and generates instructions for each servo motor 28 so that the end effector 26 is positioned at the position P and the posture O represented by the set tool coordinate system C2. In this way, the processor 34 can drive each servo motor 28 to position the end effector 26 at an arbitrary position P and posture O in the robot coordinate system C1.
[0047] The teaching device 15 teaches the operation of the robot 12 for teaching operations. Specifically, the teaching device 15 is a computer having a processor 42, a memory 44, an I / O interface 46, a display device 48, and an input device 50. In addition, the structures of the processor 42, the memory 44, and the I / O interface 46 are the same as those of the above-described processor 34, memory 36, and I / O interface 38, and thus, repeated descriptions are omitted. The teaching device 15 can be any type of computer such as a teach pendant, or a notebook-type or tablet-type PC.
[0048] The processor 42 is communicably connected to the memory 44, the I / O interface 46, the display device 48, and the input device 50 via a bus 52, communicates with these components, and performs arithmetic processing for implementing the teaching function described later. In the present embodiment, the I / O interface 46 is communicably connected to the I / O interface 38 of the control device 14.
[0049] The display device 48 includes a liquid crystal display or an organic EL display, etc., and displays various data in a visually recognizable manner under the instruction from the processor 42. The input device 50 includes a touch panel, a push button, a switch, a keyboard, or a mouse, etc., and receives the input of data from the operator. In addition, the display device 48 and the input device 50 can be integrally assembled in the housing of the teaching device 15, or can be provided separately from the housing of the teaching device 15 and connected to the I / O interface 46.
[0050] The operator visually recognizes the information displayed on the display device 48 and operates the input device 50 to teach the teaching position Pp and the teaching posture Op for positioning the end effector 26 (or the origin of the tool coordinate system C2) during the operation. Here, in the teaching of the robot 12, sometimes it is desired to adjust the posture O of the robot 12.
[0051] Hereinafter, with reference to Figure 3 The functions of the robot system 10 will be described. In the present embodiment, the processor 34 of the control device 14 and the processor 42 of the teaching device 15 communicate with each other and cooperate to execute Figure 3 the process. The process starts when the processor 42 of the teaching device 15 receives a teaching start instruction from the operator Figure 3 the process.
[0052] In step S1, the processor 42 of the teaching device 15 generates image data 100 for teaching. Figure 4 This represents an example of the image data 100. The image data 100 is a graphical user interface (GUI) for setting various parameters for adjusting the posture of the robot 12, and includes: a model image area 102, a function selection image area 104, a parameter setting image area 106, and an action teaching button image 108.
[0053] In the model image area 102, a virtual space VS in which a robot model 12M obtained by modeling the robot 12 is displayed. The robot model 12M is, for example, a three-dimensional CAD model, which is pre-made by an operator and stored in the memory 44. In addition, in the following description, when the component name in the actual space is "XX", the model of this component is called the "XX model". Therefore, the robot model 12M has: a robot base model 16M, a rotating body model 18M, a lower arm model 20M, an upper arm model 22M, a wrist model 24M, and an end effector model 26M.
[0054] In addition, similar to the physical robot 12, a robot coordinate system C1 and a tool coordinate system C2 are set for the robot model 12M, and are displayed together with the robot model 12M in the model image area 102. The virtual space VS is defined by the control coordinate system C (for example, the robot coordinate system C1), and any position within the virtual space VS is represented as the coordinates of the control coordinate system C.
[0055] In the present embodiment, the current position Pc and the current posture Oc of the robot 12 are displayed in the model image area 102. Specifically, the processor 34 of the control device 14 obtains the current rotation position Rc detected by each rotation detector 30 at the current time point from the respective rotation detectors 30. The current rotation position Rc includes: the current rotation position R1c of the first joint axis A1, the current rotation position R2c of the second joint axis A2, the current rotation position R3c of the third joint axis A3, the current rotation position R4c of the fourth joint axis A4, the current rotation position R5c of the fifth joint axis A5, and the current rotation position R6c of the sixth joint axis A6.
[0056] Then, based on the acquired current rotation position Rc, the processor 34 calculates the coordinates Qc (Xc, Yc, Zc, RXc, RYc, RZc) in the robot coordinate system C1 of the tool coordinate system C2 representing the current position Pc and the current posture Oc of the robot 12. Here, the coordinates (Xc, Yc, Zc) in the coordinate Qc represent the position in the robot coordinate system C1 of the origin (TCP) of the tool coordinate system C2, and the coordinates (RXc, RYc, RZc) represent the directions (i.e., postures) of the respective axes of the tool coordinate system C2 with respect to the robot coordinate system C1 (so-called yaw, pitch, roll).
[0057] The processor 34 supplies the acquired current rotation position Rc and the calculated coordinates Qc to the teaching device 15 in sequence as the current position data PDc. The processor 42 of the teaching device 15 displays the robot model 12M configured as the current position Pc and the current posture Oc in the model image area 102 based on the current position data PDc acquired from the control device 14.
[0058] Whenever the processor 42 acquires the current position data PDc, it causes the robot model 12M displayed in the model image area 102 to move on the image, and updates the current position Pc and the current posture Oc displayed as the robot model 12M. In this way, the model image area 102 displays the current position Pc and the current posture Oc of the physical robot 12 according to the position and posture of the robot model 12M in the virtual space VS.
[0059] The direct teaching label image 110, the jogging label image 112, and the posture adjustment label image 114 are displayed in the function selection image area 104. The operator can select one of the direct teaching function, the jogging function, and the posture adjustment function as the teaching function of the robot 12 by operating the input device 50 to click on the direct teaching label image 110, the jogging label image 112, or the posture adjustment label image 114 on the image. On the other hand, the action teaching button image 108 is a GUI for the following purpose: registering the current position Pc and the current posture Oc of the robot 12 as the new teaching position Pp and the teaching posture Op, thereby teaching the action of the robot 12.
[0060] The parameter setting image area 106 is a GUI for setting the posture adjustment parameter PR, which is used to adjust the posture of the robot 12. In addition, the parameter setting image area 106 and the posture adjustment parameter PR will be described later. The processor 42 displays the generated image data 100 on the display device 48 of the teaching device 15. Thus, in this step S1, the processor 42 generates the image data 100 as a GUI for accepting an input for setting the posture adjustment parameter PR. Therefore, the processor 42 serves as an image generation unit 54 that generates the image data 100 (Figure 2 )Function.
[0061] In step S2, the processor 42 of the teaching device 15 determines whether the direct teaching function is selected. Specifically, the processor 42 determines that it is when the direct teaching label image 110 in the function selection image area 104 displayed in the image data 100 is selected. When the processor 42 determines that it is in this step S2, it sends a direct teaching execution instruction that enables the direct teaching function to the control device 14 and proceeds to step S3. On the other hand, when the processor 42 determines that it is not in the case where the direct teaching label image 110 is not selected, it sends a direct teaching end instruction that invalidates the direct teaching function to the control device 14 and proceeds to step S4.
[0062] In step S3, the processor 34 of the control device 14 executes the direct teaching function. Specifically, when the processor 34 receives the direct teaching execution instruction from the teaching device 15, it sets the direct teaching function to be effective (or "enabled"). During the period when the direct teaching function is set to be effective, the processor 34 executes the direct teaching function of moving the movable component (for example, the end effector 26) of the robot 12 to which the operating force F is applied in the direction of the operating force F according to the operating force F detected by the force sensor 32.
[0063] During the execution of this direct teaching function, the operator can manually operate the robot 12 by applying the operating force F to the robot 12 so that the movable component of the robot 12 moves in the desired direction. Thus, in the present embodiment, the processor 34 of the control device 14 functions as a direct teaching execution unit 56 ( Figure 2 )Function, and the direct teaching execution unit 56 executes the direct teaching function of operating the robot 12 according to the operating force F applied to the robot 12.
[0064] During the execution of the direct teaching function, the processor 34 continuously (for example, with a control cycle τ1) acquires the current position data PDc (current rotation position Rc, coordinates Qc, etc.) of the robot 12 and sequentially sends it to the teaching device 15. Each time the processor 42 of the teaching device 15 acquires the current position data PDc from the control device 14, as described above, it updates the current position Pc and the current posture Oc displayed by the robot model 12M in the model image area 102 of the image data 100. As a result, as Figure 5 shown, the movement of the physical robot 12 based on the direct teaching function is reproduced as a simulated movement of the robot model 12M in the virtual space VS displayed in the model image area 102.
[0065] Here, in the present embodiment, the processor 42 of the teaching device 15 displays the movement path MPd of the robot 12 that has performed an action through the direct teaching function in the model image area 102. Specifically, the processor 42 obtains the movement path MPd based on the current position data PDc continuously acquired from the control device 14.
[0066] Then, as Figure 5 shown, the processor 42 displays the obtained movement path MPd together with the robot model 12M in a visually recognizable manner in the virtual space VS displayed in the model image area 102. For example, the processor 42 can display the movement path MPd through Figure 5 identifications such as lines or arrows shown, or can also display the movement path MPd through the robot model 12M that moves analogously on the movement path MPd in the virtual space VS.
[0067] In addition, during the execution of the direct teaching function, the processor 42 can register the coordinates Qc obtained from the control device 14 as the current position data PDc in the position database DB3 for the action program PG3 being created as the position data of the new teaching position Pp and the teaching posture Op at a specified cycle τ2 (for example, the cycle τ2 is an integer multiple of the control cycle τ1). Additionally, the processor 42 can also receive an input for setting the specified cycle τ2 from the operator through the input device 50.
[0068] Instead, when the processor 42 receives an action teaching instruction described later from the operator, it can obtain the coordinates Qc calculated by the control device 14 at that time and register them in the position database DB3 as the position data of the new teaching position Pp and the teaching posture Op. After executing step S3, the process proceeds to step S8.
[0069] On the other hand, when it is determined as no in step S2, the processor 34 of the control device 14 sets the direct teaching function to invalid (or "off") in accordance with the direct teaching end instruction received from the teaching device 15. Thereby, the processor 34 ends the direct teaching function.
[0070] In step S4, the processor 42 of the teaching device 15 determines whether the jogging function has been selected. Specifically, the processor 42 determines that it is yes when the jogging label image 112 displayed in the function selection image area 104 of the image data 100 is selected. When the processor 42 determines that it is yes in this step S4, it sends a jogging execution instruction that enables the jogging function to the control device 14 and proceeds to step S5. On the other hand, when the processor 42 determines that it is no because the jogging label image 112 has not been selected, it sends a jogging end instruction that disables the jogging function to the control device 14 and proceeds to step S6.
[0071] In step S5, the processor 34 of the control device 14 executes the jog function. Specifically, when the processor 34 receives a jog execution instruction from the teaching device 15, it sets the jog function to be effective (or "enabled"). During the period when the jog function is set to be effective, the processor 34 executes a jog action instruction to move the movable component (for example, the end effector 26) of the robot 12 manually according to the operator's operation of the input device 50 to move the movable component.
[0072] In addition, during the execution of the jog function, the processor 42 of the teaching device 15 can, when receiving an action teaching instruction described later from the operator, obtain the coordinate Qc calculated by the control device 14 at that time point from the control device 14, and register it in the position database DB3 as the position data of the new teaching position Pp and the teaching posture Op. After executing step S5, the processor 34 of the control device 14 proceeds to step S8. On the other hand, when it is determined as No in step S4, the processor 34 sets the jog function to be ineffective (or "disabled") according to the jog end instruction received from the teaching device 15. Thereby, the processor 34 ends the jog function.
[0073] In step S6, the processor 42 of the teaching device 15 determines whether the posture adjustment function is selected. Specifically, the processor 42 determines as Yes when the posture adjustment label image 114 in the function selection image area 104 of the image data 100 is selected. In addition, in Figure 4 the example shown, the posture adjustment label image 114 is selected and highlighted.
[0074] When the processor 42 determines as Yes in this step S6, it functions as the image generation unit 54 and displays Figure 4 the parameter setting image area 106 shown in the image data 100. Then, the processor 42 proceeds to step S7. On the other hand, when the posture adjustment label image 114 is not selected and it is determined as No, it proceeds to step S8.
[0075] In step S7, the processor 34 of the control device 14 and the processor 42 of the teaching device 15 cooperate with each other to execute the posture adjustment function. Refer to Figure 6 to describe this step S7. Hereinafter, the case where the processors 34 and 42 execute the above-mentioned step S3, and after the robot 12 is operated by the direct teaching function as Figure 5 shown, step S7 is executed will be described.
[0076] In step S11, the processor 42 of the teaching device 15 determines whether an input of the posture adjustment parameter PR has been accepted. Specifically, the operator visually recognizes the image data 100 displayed on the display device 48 and operates the input device 50 to input the posture adjustment parameter PR through the parameter setting image area 106. The posture adjustment parameter PR includes selection information SIc of the control coordinate system C for posture adjustment, selection information SIo of the reference posture Or as the reference for posture adjustment, conditions CD for posture adjustment based on the reference posture Or, and an offset amount OS for displacing the position of the robot 12 (specifically, the end effector 26) during posture adjustment, etc.
[0077] As Figure 4 shown, the parameter setting image area 106 includes: a user coordinate system selection image 116, a tool coordinate system selection image 118, coordinate axis selection images 120 and 122, an axis position relationship input image 124, a reference posture selection image 126, offset amount input images 128, 130 and 132, a posture registration button image 134, and a robot operation button image 136.
[0078] The user coordinate system selection image 116 is a GUI for the following purpose: specifying the user coordinate system C3 selected as the reference posture Or as the selection information SIo of the reference posture Or. The user coordinate system C3 is a control coordinate system C preset at an arbitrary position in the robot coordinate system C1 by the operator operating the input device 50. For example, the operator operates the input device 50 to provide an input such as designating any three points within the virtual space VS defined by the robot coordinate system C1 to the processor 42. Based on this input, the processor 42 can set the user coordinate system C3 in the robot coordinate system C1. In the present embodiment, multiple user coordinate systems C3 are preset by the operator and stored in the memory 44.
[0079] An inherent identification number "n" is assigned to each of the multiple user coordinate systems C3, and the user coordinate system C3 can be specified by this identification number. The operator operates the input device 50 to input the desired identification number "n" within the user coordinate system selection image 116, thereby being able to specify the user coordinate system C3 used as the reference posture Or.
[0080] The tool coordinate system selection image 118 is a GUI for the following purpose: specifying the tool coordinate system C2 as the selection information Sic of the control coordinate system C. Here, in the present embodiment, the operator operates the input device 50 to preset multiple tool coordinate systems C2 with different positions and postures relative to the end effector 26 (or the wrist flange 24b) for the end effector 26.
[0081] Each of these multiple tool coordinate systems C2 is assigned an inherent identification number "m", and the tool coordinate system C2 can be specified by this identification number. The operator operates the input device 50 and inputs a desired identification number "m" in the tool coordinate system selection image 118, whereby the tool coordinate system C2 for posture adjustment can be specified.
[0082] The reference posture selection image 126 is a GUI for the following purpose: selecting a reference posture Or to be used as a reference when adjusting the posture O of the robot 12, as selection information SIo for the reference posture Or. Figure 4 In the example shown, as the reference postures Or, "user coordinate system", "posture 1", "posture 2", "motion program 1P[1]", "motion program 2P[3]", and "global P[1]" are displayed in a list form in the reference posture selection image 126. The "user coordinate system" represents the posture O represented by the user coordinate system C3 specified by the identification number "n" input to the user coordinate system selection image 116. c3 "Posture 1" and "Posture 2" respectively represent postures O1 and O2 arbitrarily created by the operator and pre-stored in the memory 44.
[0083] "Motion program 1P[1]" and "Motion program 2P[3]" represent postures O specified in the motion program PG of the robot 12. More specifically, "Motion program 1P[1]" represents: in the motion program PG1 identified by the identification number "1", the posture O stored in the position register [1] specified as the command code.
[0084] Here, in the present embodiment, a position database DB1 storing a plurality of taught positions Pp and taught postures Op specified in the motion program PG1 is prepared separately from the motion program PG1 and stored in the memory 44. These multiple taught positions Pp and taught postures Op are represented, for example, as coordinates Qp(Xp, Yp, Zp, RXp, RYp, RZp) of the robot coordinate system C1, and are respectively assigned an inherent register number "i".
[0085] Therefore, the position register [1] represents: among the taught positions Pp and taught postures Op stored in the position database DB1 for the motion program PG1, the taught position Pp1 and taught posture Op1 identified by the register number "1". Therefore, "Motion program 1P[1]" in the reference posture selection image 126 represents the taught posture Op1 of the register number "1".
[0086] Similarly, "Motion Program 2P[3]" means: the teaching posture Op3 of register number "3" among the teaching positions Pp and teaching postures Op stored in the position database DB2 for the motion program PG2 identified by the identification number "2". On the other hand, "Global P[1]" means: the posture Og1 identified by the register number [1] among the position Pg and posture Og stored in the global position data that can be referred to among multiple motion programs PG1, PG2,....
[0087] Thus, in this embodiment, various reference postures Or (for example, postures O c3 , O1, O2, Op1, Op3, and Og1) are prepared and registered in the database DBo of the reference postures Or. This database DBo is stored in the memory 44. In addition, as the reference postures Or, it is not limited to the above postures O c3 , O1, O2, Op1, Op3, and Og1, and any other arbitrary postures O can also be prepared.
[0088] In addition, the reference posture Or can be registered in the database DBo as the coordinates Qr (RXr, RYr, RZr) of the robot coordinate system C1. These coordinates Qr (RXr, RYr, RZr) define a reference coordinate system Cr representing the reference posture Or in the robot coordinate system C1. As Figure 4 shown, in the reference posture selection image 126, a plurality of reference postures Or registered in the database DBo are displayed in a list form, and the operator can operate the input device 50 to select one of the plurality of reference postures Or displayed in the reference posture selection image 126.
[0089] The coordinate system axis selection images 120 and 122 and the axis position relationship input image 124 are GUIs for inputting the conditions CD for posture adjustment. Specifically, the coordinate system axis selection image 120 is a GUI for the following purpose: to select, as the condition CD, the axis that is aligned with the reference coordinate system Cr during posture adjustment from the x-axis, y-axis, and z-axis of the tool coordinate system C2. On the other hand, the coordinate system axis selection image 122 is a GUI for the following purpose: to select, as the condition CD, the object axis that aligns with the axis of the tool coordinate system C2 (the z-axis in the Figure 4 example) selected in the coordinate system axis selection image 120 during posture adjustment from the x-axis, y-axis, and z-axis of the reference coordinate system Cr.
[0090] The axis position relationship input image 124 is a GUI for inputting the following position relationship as the condition CD when adjusting the posture: the position relationship between the axis of the tool coordinate system C2 selected in the coordinate system axis selection image 120 and the axis of the reference coordinate system Cr selected in the coordinate system axis selection image 122. Specifically, in the axis position relationship input image 124, as this position relationship, the intersection angle θ [°] between the axis of the tool coordinate system C2 and the axis of the reference coordinate system Cr can be input.
[0091] The offset input images 128, 130, and 132 are GUIs for the following purposes: when adjusting the posture O of the robot 12 from the current posture Oc, inputting the offset OS that displaces the position P of the end effector 26 (i.e., TCP) of the robot 12 from the current position Pc. More specifically, the offset input images 128, 130, and 132 respectively accept the following inputs: the input of the offset OS that displaces the end effector 26 in the x-axis direction, y-axis direction, and z-axis direction of the robot coordinate system C1, respectively.
[0092] On the other hand, the posture registration button image 134 is a GUI for the following purpose: registering the current posture Oc of the robot 12 as a new reference posture Or in the database DBo. In addition, the robot action button image 136 is a GUI for performing the following action: moving the physical robot 12 from the current posture Oc to adjust the posture O.
[0093] The operator visually recognizes the image data 100 displayed on the display device 48 and operates the input device 50 to input the posture adjustment parameters PR (selection information SIc and SIo, condition CD, and offset OS) through the parameter setting image area 106. Hereinafter, the case where the operator inputs the posture adjustment parameters PR as Figure 4 shown will be described.
[0094] That is, in this case, as the selection information SIc, "1" is input in the tool coordinate system selection image 118. In addition, as the selection information SIo, "user coordinate system" is selected in the reference posture selection image 126, and the identification number "2" is input in the user coordinate system selection image 116. In addition, as the condition CD, the "Z" axis is selected in the coordinate system axis selection image 120, the "Z" axis is selected in the coordinate system axis selection image 122, and "0.000" ° is input in the axis position relationship input image 124. In addition, as the offset OS, X, Y, and Z = "0.000" mm are input.
[0095] The processor 42 sets the tool coordinate system C2 given the identification number "1" for the end effector 26 according to the input for selecting the image 118 of the tool coordinate system. In addition, the processor 42 sets the reference pose Or, which is the basis for pose adjustment, to the user coordinate system C3 given the identification number "2" according to the inputs for selecting the image 126 of the reference pose and the image 116 of the user coordinate system.
[0096] In addition, the processor 42 sets the following condition CD according to the inputs for selecting the images 120 and 122 of the coordinate axes: The z-axis of the tool coordinate system C2 is aligned with the z-axis of the user coordinate system C3 of the reference pose Or at an intersection angle θ = 0.000° (i.e., parallel). And the processor 42 sets the offset amounts OS in the x-axis direction, y-axis direction, and z-axis direction to 0 mm (i.e., the position P of the end effector 26 is not displaced during pose adjustment).
[0097] In this step S11, when a new input of the pose adjustment parameter PR is received, the processor 42 determines yes and proceeds to step S12. On the other hand, when no new input of the pose adjustment parameter PR is received, it determines no and proceeds to step S14. Thus, in the present embodiment, the processor 42 functions as an input reception unit 58 that receives the input for selecting the reference pose Or and the input for selecting the condition CD ( Figure 2 ).
[0098] In step S12, the processor 34 of the control device 14 determines the target pose Ot after pose adjustment according to the reference pose Or and the condition CD received as inputs in the most recent step S11. Figure 7 An enlarged view of the robot model 12M (specifically, the end effector model 26M) showing the current position Pc and the current pose Oc is shown. In addition, in the present embodiment, since step S7 is executed after step S3, the current position Pc and the current pose Oc of the robot model 12M are the position P and the pose O of the robot 12 after the operation based on the direct teaching function ( Figure 5 ).
[0099] At the start time of step S12, the processor 42 of the teaching device 15 displays Figure 7 the shown robot model 12M in the model image area 102. In addition, in Figure 7In the example shown, the processor 42 of the teaching device 15 displays the tool coordinate system C2 with the identification number "1" selected in step S11 and the user coordinate system C3 with the identification number "2" selected as the reference pose Or in step S11 in the virtual space VS. This user coordinate system C3 constitutes a reference coordinate system Cr representing the reference pose Or. In addition, the processor 42 may not display the selected tool coordinate system C2 and user coordinate system C3.
[0100] When it is determined to be "yes" in step S11, the processor 42 of the teaching device 15 supplies the input pose adjustment parameter PR (in Figure 4 the example shown, selection information SIc: tool coordinate system C2 with identification number "1", selection information SIo: user coordinate system C3 with identification number "2", condition CD: a condition such that the z-axis of the tool coordinate system C2 is aligned with the z-axis of the user coordinate system C3 at an intersection angle θ = 0.000°, and offset OS: 0 mm) to the control device 14.
[0101] The processor 34 of the control device 14 sets the tool coordinate system C2 in the robot coordinate system C1 in such a way that the z-axis of the tool coordinate system C2 is parallel to the z-axis of the user coordinate system C3 as the reference coordinate system Cr according to the pose adjustment parameter PR obtained from the teaching device 15. Figure 8 Indicates the tool coordinate system C1 set in this way. Figure 8 The directions of the respective axes of the tool coordinate system C2 shown indicate the target pose Ot. In addition, since all the offsets OS received in step S11 are zero, Figure 8 the position of the origin of the tool coordinate system C2 shown is the same as Figure 7 (in other words, there is no displacement).
[0102] In this way, the processor 34 determines the target pose Ot represented by the tool coordinate system C2 in Figure 8 according to the reference pose Or (in this embodiment, the user coordinate system C3) and the condition CD. Therefore, in this embodiment, the processor 34 functions as an action determination unit 60 ( Figure 2 ) that determines the target pose Ot after pose adjustment. The processor 34 obtains the coordinates Qt (Xc, Yc, Zc, RXt, RYt, RZt) of the tool coordinate system C2 set as shown in Figure 8 in the robot coordinate system C1 and stores them in the memory 36. The coordinates (RXt, RYt, RZt) in the coordinate Qt become position data representing the target pose Ot.
[0103] Next, the processor 34 of the control device 14 functions as an action determination unit 60, and obtains the movement path MPo of each movable component of the robot 12 when moving the end effector 26 from the current posture Oc to the target posture Ot. Figure 9 The movement path MPo is simulated by the robot model 12M. Figure 9 The robot model 12M representing a plurality of postures O on the movement path MPo, the robot model 12M of the current posture Oc is represented by a dotted line, the robot model 12M of the target posture Ot is represented by a solid line, and the robot model 12M of the intermediate posture Om between the current posture Oc and the target posture Ot is represented by a dashed-dotted line.
[0104] Here, in the present embodiment, the processor 34 obtains the movement path MPo when the robot 12 performs a linear motion LM. This linear motion LM is an action that moves the end effector 26 of the physical robot 12 from the current posture Oc to the target posture Ot so that the movement amount of the end effector 26 is the minimum movement amount.
[0105] That is, when performing this linear motion LM, the end effector 26 moves from the coordinates Qc (Xc, Yc, Zc, RXc, RYc, RZc) of the current posture Oc to the coordinates Qt (Xt, Yt, Zt, RXt, RYt, RZt) of the target posture Ot along the shortest path. For example, in Figure 9 the example shown, the movement path MPo is the shortest path from the current posture Oc to the target posture Ot where the intersection angle θ between the z-axis of the tool coordinate system C2 and the z-axis of the user coordinate system C3 is θ = 0.000° (i.e., parallel). The processor 34 supplies the data of the target posture Ot (coordinates Qt) and the movement path MPo determined as described above to the teaching device 15.
[0106] In step S13, the processor 42 of the teaching device 15 functions as an image generation unit 54, and displays the target posture Ot determined in the previous step S12 on the image data 100. Specifically, the processor 42 Figure 9 displays the robot model 12M shown by the solid line in
[0107] in the model image area 102. In this way, the processor 42 displays the target posture Ot on the image data 100 (specifically, the model image area 102) through the robot model 12M.In addition, in the present embodiment, the processor 42 functions as an image generation unit 54 and visually displays the movement path MPo obtained in the previous step S12 on the image data 100. As an example, the processor 42 visually displays the movement path MPo by displaying the robot models 12M of a plurality of postures Oc, Om, and Ot on the movement path MPo in different display forms in the model image area 102. Specifically, the processor 42 simultaneously displays the robot models 12M of a plurality of postures Oc, Om, and Ot indicated by a dashed line, a dotted line, and a solid line in Figure 9 in the model image area 102 in different line types, colors, or transparencies.
[0108] As another example, the processor 42 displays the robot model 12M that is simulated to move on the movement path MPo in the virtual space VS in the model image area 102. For example, the processor 42 displays a dynamic image (or a frame-by-frame playback image) of the robot model 12M moving from the current posture Oc to the target posture Ot along the movement path MPo in the virtual space VS in the model image area 102.
[0109] As another example, the processor 42 can Figure 9 display the movement path MPo in the model image area 102 by an identifier B such as a line or an arrow shown in
[0110] . In this case, the processor 42 can superimpose and display the arrow B on the robot model 12M of the target posture Ot (or both the robot model 12M of the current posture Oc and the robot model 12M of the target posture Ot). In this way, the processor 42 displays the movement path MPo together with the target posture Ot on the image data 100.
[0110] In addition, when the processor 42 displays the movement trajectory MPd of the robot 12 based on the direct teaching function of step S3 ( Figure 5 ) in the model image area 102, the processor 42 can display at least one of the target posture Ot and the movement path MPo obtained in step S12 in a manner overlapping with the movement trajectory MPd in the model image area 102. In this case, the operator can easily confirm the target posture Ot and the movement path MP of the robot 12 when continuously executing the direct teaching function and the posture adjustment function.
[0111] In step S14, the processor 42 of the teaching device 15 determines whether an operation start instruction for causing the physical robot 12 to operate is received. Specifically, after the operator confirms the target posture Ot and the movement path MPo displayed in the model image area 102, the operator operates the input device 50, operates the robot operation button image 136 on the image, and slides the robot operation button image 136 to the right. When the operation is performed on the image such that the robot operation button image 136 reaches the right end of its sliding stroke, an operation start instruction is sent to the processor 42.
[0112] The processor 42 functions as an input reception unit 58 and receives the operation start instruction issued through the robot operation button image 136. When the processor 42 receives the operation start instruction, it determines that it is yes and proceeds to step S15. On the other hand, when the operation start instruction is not received, it determines that it is no and proceeds to step S16.
[0113] In step S15, the processor 34 of the control device 14 causes the physical robot 12 to operate. Specifically, the processor 42 of the teaching device 15 sends a posture adjustment instruction to the control device 14 through the I / O interface 46 according to the operation start instruction received in the previous step S14. This posture adjustment instruction is an instruction for performing the following posture adjustment action: causing the physical robot 12 to move from the current posture Oc along the movement path MPo to the target posture Ot determined in step S12.
[0114] The processor 34 of the control device 14 generates instructions (position instructions, speed instructions, torque instructions, etc.) for each servo motor 28 of the robot 12 according to the posture adjustment instruction from the teaching device 15, and drives the servo motor 28 according to the instruction. As a result, the robot 12 performs a posture adjustment action in the actual space, as Figure 9 shown by the robot model 12M, causing the end effector 26 to move from the current posture Oc to the target posture Ot along the movement path MPo.
[0115] In this way, the operation of the robot model 12M displayed in the model image area 102 in step S13 can be reproduced by the physical robot 12 ( Figure 9 ). In this way, in the present embodiment, the processor 34 of the control device 14 functions as an action execution unit 62 ( Figure 2 ), and the action execution unit 62 causes the robot 12 that has performed an action through the direct teaching function in step S3 to move from the current posture Oc to the target posture Ot according to the operation start instruction received in step S14.
[0116] In this way, the operator can adjust the posture O of the robot 12 (e.g., the end effector 26) that has been manually moved to the desired position P through the direct teaching function with the selected reference posture Or (the user coordinate system C3 in this embodiment) as a reference. Here, when manually operating the robot 12 through the direct teaching function, it is possible to easily position the robot 12 (e.g., the end effector 26) at the desired position P. On the other hand, it may be difficult to adjust its posture O.
[0117] More specifically, the operator can visually recognize the work object part and the desired position P where the end effector 26 is to be positioned through the direct teaching function, and move the working position of the end effector 26 to this desired position P. On the other hand, when changing the posture O of the end effector 26 during the execution of the direct teaching function, it sometimes takes time to return the posture O.
[0118] In addition, regarding the work object part and the desired posture O, there is often no corresponding relationship to serve as a reference. For example, an operation of slightly tilting the posture O with respect to the surface of the work object part may become difficult. Also, as described in Patent Document 1, it is difficult to adjust the posture O in cases where it is difficult to visually observe. According to this embodiment, it is possible to easily perform the posture adjustment after the execution of the direct teaching function.
[0119] In step S16, the processor 42 of the teaching device 15 determines whether a posture registration instruction has been received. This posture registration instruction is an instruction for registering a new reference posture Or in the database DBo. Specifically, the operator operates the input device 50 and clicks on the posture registration button image 134 on the image.
[0120] When the posture registration button image 134 is clicked, a posture registration instruction is sent to the processor 42. The processor 42 functions as an input reception unit 58 and receives the posture registration instruction. When the processor 42 has received the posture registration instruction, it determines that it is yes and proceeds to step S17. On the other hand, when the posture registration instruction has not been received, it determines that it is no and proceeds to step S18.
[0121] In step S17, the processor 42 of the teaching device 15 registers the current posture Oc of the robot 12 at this time point as the new reference posture Or in the database DBo. For example, when step S17 is executed after step S15, the current posture Oc at this time point becomes the posture O after the posture adjustment in step S15 (i.e., the target posture Ot determined in step S12).
[0122] The processor 42 obtains the rotational positions R1 to R6 of the respective joint axes A1 to A6 at this time point (i.e., the current rotational position Rc) from the rotational detector 30, and based on the rotational positions R1 to R6, calculates the coordinates Qc (Xc, Yc, Zc, RXc, RYc, RZc) of the tool coordinate system C2 in the robot coordinate system C1. Then, the processor 42 registers the coordinates (RXc, RYc, RZc) representing the current posture Oc in the coordinate Qc as a new reference posture Or in the database DBo.
[0123] Instead, in the case of continuously executing steps S11 to S17, the processor 42 may not obtain the current rotational position Rc from the rotational detector 30, but register the coordinates Qt (RXt, RYt, RZt) of the target posture Ot determined in the most recent step S12 as a new reference posture Or in the database DBo. The reference posture Or newly registered in the database DBo is displayed, for example, with the posture name of "Posture 3" in the reference posture selection image 126 and can be selected by the operator.
[0124] In this way, in the present embodiment, the processor 42 of the teaching device 15 functions as a reference posture setting unit 64 that registers a new reference posture Or in the database DBo ( Figure 2 ). In addition, the processor 42 may also function as an input reception unit 58 to receive an input such as editing the posture name of the newly registered reference posture Or. In this case, the processor 42 displays the new reference posture Or with the input posture name (for example, "Arbitrary Posture 1") in the reference posture selection image 126.
[0125] In step S18, the processor 42 of the teaching device 15 determines whether an operation teaching instruction is received. This operation teaching instruction is an instruction for the following purpose: registering the current position Pc and the current posture Oc of the robot 12 at this time point as a new teaching position Pp and a teaching posture Op, thereby teaching the operation of the robot 12. Specifically, the operator operates the input device 50 and clicks on the operation teaching button image 108 on the image.
[0126] When the operation teaching button image 108 is clicked, an operation teaching instruction is sent to the processor 42. The processor 42 functions as an input reception unit 58 to receive the operation teaching instruction. When the processor 42 receives the operation teaching instruction, it determines that it is yes and proceeds to step S19. On the other hand, when the operation teaching instruction is not received, it determines that it is no and proceeds to Figure 3 step S8 in
[0127] In step S19, the processor 42 of the teaching device 15 teaches the operation of the robot 12. Specifically, the processor 42 obtains the rotation position R of each servo motor 28 at this time point (i.e., the current rotation position Rc) from the rotation detector 30, and calculates the coordinates Qc (Xc, Yc, Zc, RXc, RYc, RZc) of the tool coordinate system C2 in the robot coordinate system C1 based on the rotation position R.
[0128] Then, the processor 42 registers the calculated coordinates Qc as the position data of the new teaching position Pp and the teaching posture Op in the position database DB3 for the operation program PG3 being produced. At this time, the processor 42 can automatically assign a register number "i" to the newly registered position data.
[0129] Then, the processor 42 writes the register number "i" into the operation program PG3 as a command code, and writes a command code for performing the following operation into the operation program PG3: positioning the end effector 26 at the teaching position Pp and the teaching posture Op given the register number "i" during operation. By repeating this step S19, the processor 42 teaches the operation of the robot 12 for work and produces the operation program PG3.
[0130] In this way, whenever the operator newly inputs the posture adjustment parameter PR through the parameter setting image area 106, the processor 42 determines yes in step S11, and sequentially executes steps S12 to S19 according to the newly input posture adjustment parameter PR. In other words, the processor 42 automatically starts steps S12 to S19 according to the input of the posture adjustment parameter PR.
[0131] As described above, in the present embodiment, the processor 34 of the control device 14 and the processor 42 of the teaching device 15 cooperate with each other to function as the image generation unit 54, the direct teaching execution unit 56, the input reception unit 58, the motion determination unit 60, the motion execution unit 62, and the reference posture setting unit 64, and execute Figure 3 the process of, and adjust the posture O of the robot 12. Therefore, the image generation unit 54, the direct teaching execution unit 56, the input reception unit 58, the motion determination unit 60, the motion execution unit 62, and the reference posture setting unit 64 constitute a device 70 for adjusting the posture O of the robot 12 during the teaching of the robot 12 ( Figure 2 ).
[0132] In the apparatus 70, the direct teaching execution unit 56 executes a direct teaching function of operating the robot 12 according to the operating force F applied to the robot 12 (step S3). Further, in order to adjust the posture O of the robot 12 that has moved by the direct teaching function by the direct teaching execution unit 56, the input reception unit 58 receives an input of selecting a reference posture Or as a reference for this adjustment (step S11). Then, the motion determination unit 60 determines a target posture Ot after the posture adjustment based on the reference posture Or received by the input reception unit 58 and the condition CD for posture adjustment with the reference posture Or as a reference (step S12).
[0133] According to this configuration, during the teaching of the robot 12, the operator can automatically obtain the target posture Ot of the robot 12 when, after manually operating the robot 12 by the direct teaching function and positioning it at a desired position P, the posture is adjusted with an arbitrarily selected reference posture as a reference. Thereby, the operation of adjusting the posture of the robot 12 after the movement by the direct teaching function can be assisted.
[0134] Further, in the apparatus 70, the reference posture setting unit 64 registers a new reference posture Or in the database DBo (step S17). Then, the input reception unit 58 receives an input of selecting one reference posture Or from among the plurality of reference postures Or registered in the database DBo (step S11). Specifically, the input reception unit 58 also receives a posture registration instruction for registering the current posture Oc of the robot 12 in the database DBo (step S16), and the reference posture setting unit 64 registers the current posture Oc as a new reference posture Or in the database DBo according to the posture registration instruction received by the input reception unit 58.
[0135] According to this configuration, for example, during the execution of the posture adjustment function in step S7 by the operator, when the robot 12 is positioned in a posture O that can be a reference during the execution of the operation, the operator can easily register the posture O as a reference posture Or in the database DBo. Then, the operator can use the posture O as a reference posture Or to execute the posture adjustment function in step S7. Thereby, the operation of adjusting the posture O of the robot 12 can be performed more efficiently.
[0136] Further, when the operator configures the posture O that can be a reference during the execution of the operation at a position P where the correspondence relationship with the operation target part and the desired posture O of the end effector 26 is clear or at a visually observable position P, the operator can register the posture O as a reference posture Or in the database DBo. Then, the operator can use the posture O as a reference posture Or to execute the posture adjustment function in step S7.
[0137] Accordingly, even when the situation during operation is such that there is no corresponding relationship serving as a reference between the operation target part and the desired posture O, or when it is difficult to visually observe, the operation of adjusting the posture O of the robot 12 can be performed more efficiently. Moreover, by using the direct teaching function when in the posture O that can be a reference during operation execution, the operator can make the operation more efficient.
[0138] In addition, in the apparatus 70, the image generation unit 54 generates image data 100( Figure 5 , Figure 7 ) that shows the current position Pc and the current posture Oc of the robot 12 that has performed an action through the direct teaching function (step S3). Then, the image generation unit 54 displays the target posture Ot determined by the action determination unit 60 on the image data 100 (step S13). With this configuration, in order to adjust the posture O of the robot 12, the operator can quickly and easily confirm the target posture Ot of the robot 12 determined based on the reference posture Or arbitrarily selected as a reference. Accordingly, the operation of teaching the posture O of the robot 12 can be performed more efficiently.
[0139] In addition, in the apparatus 70, the image generation unit 54 displays a reference posture selection image 126 for selecting the reference posture Or on the image data 100, and the input reception unit 58 receives an input such as an input of selecting the reference posture Or through the reference posture selection image 126. With this configuration, the operator can easily confirm the selectable reference postures Or through the reference posture selection image 126 and can easily select the desired reference posture Or.
[0140] In addition, in the apparatus 70, the action determination unit 60 obtains a movement path MPo from the current posture Oc to the target posture Ot, and the image generation unit 54 visually displays the movement path MPo in the image data 100. With this configuration, the operator can easily visually confirm the movement path MPo.
[0141] In addition, in the apparatus 70, as the display of the movement path MPo, the image generation unit 54 displays the robot 12 (specifically, the robot model 12M) in multiple postures Oc, Om, and Ot on the movement path MPo in different display forms (such as line type, color, or transparency)( Figure 9 ), or displays the robot 12 (robot model 12M) that is simulated to move on the movement path MPo in the virtual space VS. With this configuration, the operator can more easily identify the movement path MPo.
[0142] In addition, in the apparatus 70, the input reception unit 58 also receives the input of the selection condition CD (step S2), and the motion determination unit 60 determines the target posture Ot based on the reference posture Or and the condition CD received by the input reception unit 58. With this configuration, the operator can perform more diverse posture adjustments by arbitrarily setting the above various conditions CD (such as the axes for aligning the control coordinate system C and the reference coordinate system Cr, the intersection angle θ, etc.).
[0143] In addition, in the apparatus 70, as the condition CD, the input reception unit 58 receives the following inputs: an input for selecting one axis (for example, the z-axis) of the tool coordinate system C1 representing the posture O (coordinate system axis selection image 120); an input for selecting the axis for aligning this one axis (for example, the z-axis) in the reference coordinate system Cr representing the reference posture Or (coordinate system axis selection image 122).
[0144] Then, the motion determination unit 60 determines the posture O represented by the tool coordinate system C2 when aligning this one axis (the z-axis of the tool coordinate system C2) with the aligned axis (the z-axis of the reference coordinate system Cr) received by the input reception unit 58 Figure 8 ) as the target posture Ot. With this configuration, the operator can set the condition CD for posture adjustment in more detail based on the control coordinate system C (the tool coordinate system C2 in the present embodiment) and the reference coordinate system Cr. Therefore, it is possible to easily design various posture adjustments.
[0145] In addition, in the apparatus 70, the reference posture Or includes: the postures O1 and O2 pre-stored in the memory 44 Figure 4 ("Posture 1", "Posture 2" in), the posture O represented by the user coordinate system C3 c3 ( Figure 4 ("User coordinate system" in), and the postures Op1 and Op3 specified in the motion programs PG1 and PG2 Figure 4 ("Motion program 1P[1]", "Motion program 2P[3]" in).
[0146] With this configuration, when adjusting the posture O of the robot 12, the operator can arbitrarily select one of a variety of reference postures Or, and thus can easily perform more diverse posture adjustments. In addition, as the reference posture Or, the pre-stored postures O1 and O2, the posture O represented by the user coordinate system C3 c3 , and one (or both) of the postures Op1 and Op3 specified in the motion programs PG1 and PG2 can be stored in the database DBo.
[0147] In addition, in the apparatus 70, an input reception unit 58 receives an input of an operation start instruction for the robot 12 (step S14), and an operation execution unit 62 moves the robot 12 that has been operated through the direct teaching function from the current posture Oc to the target posture Ot according to the operation start instruction received by the input reception unit 58 (step S15).
[0148] According to this configuration, after an operator manually moves the robot 12 (e.g., the end effector 26) to a desired position P through the direct teaching function (step S3), the operator can adjust the posture O of the robot 12 based on an arbitrarily selected reference posture Or. Thus, the operator can easily perform the posture adjustment after the direct teaching function is executed.
[0149] In addition, during the execution of step S15 described above, when the robot operation button image 136 returns to the left end of its sliding stroke, the processor 42 of the teaching device 15 may send an operation stop instruction to the control device 14. And the processor 34 of the control device 14 may function as the operation execution unit 62 when receiving this operation stop instruction to stop the posture adjustment operation of the robot 12.
[0150] At this time, the processor 34 may stop the robot 12 by stopping the instructions to each servo motor 28. Instead, a braking mechanism for braking the joint shafts A1 to A6 that rotationally drive each servo motor 28 may be provided on the robot 12, and the processor 34 may urgently stop the robot 12 by operating each braking mechanism. As an example, during the execution of step S15 described above, the operator may operate the robot operation button image 136 on the image to return it to the left end of its sliding stroke, thereby stopping the posture adjustment operation.
[0151] As another example, the image data 100 may be configured such that the robot operation button image 136 can be continuously arranged at the right end of the sliding stroke while the operator continuously clicks the robot operation button image 136 through the input device 50, and on the other hand, when the operator releases the click on the robot operation button image 136, the robot operation button image 136 automatically returns to the left end of the sliding stroke. According to this configuration, it is possible to prevent the physical robot 12 from inadvertently performing the posture adjustment operation, and thus, the safety of the operator can be ensured.
[0152] In addition, the reference posture setting unit 64 may be omitted from the apparatus 70. In this case, the posture registration button image 134 is omitted from the parameter setting image area 106, and from Figure 6In the process shown, steps S16 and S17 are omitted. Additionally, in apparatus 70, a case where the image generation unit 54 displays the target posture Ot in the image data 100 in step S12 has been described. However, without being limited thereto, the processor 42 may not display the target posture Ot in the image data 100 and only store the target posture Ot (coordinates Qt) determined in step S12 in the memory 44. In this case, step S13 can be omitted from the Figure 6 process.
[0153] Additionally, in apparatus 70, the image generation unit 54 may not display the movement path MPo in the image data 100 in step S13. In this case, the processor 42 may display only the target posture Ot (i.e., Figure 9 the robot model 12M shown by the solid line in
[0154] ) in the image data 100 (model image area 102). Figure 8 , Figure 9 ) in the model image area 102.
[0155] Additionally, the model image area 102 (i.e., the display of the robot model 12M representing the current position Pc and the current posture Oc) may be omitted from the image data 100. Additionally, the reference posture selection image 126 may be omitted from the Figure 4 parameter setting image area 106. In this case, for example, the operator may also operate the input device 50 to input an identification code specifying the reference posture Or, and the processor 42 selects the reference posture Or based on the input identification code.
[0156] Additionally, a case has been described where in apparatus 70, the input reception unit 58 receives the input of the selection condition CD in step S11. However, without being limited thereto, the operator may also pre-determine the condition CD and store it in the memory 44. In this case, the coordinate system axis selection images 120 and 122 and the axis position relationship input image 124 may be omitted from the parameter setting image area 106. Additionally, the condition CD is not limited to the conditions related to the axes and the intersection angle θ for aligning the control coordinate system C and the reference coordinate system Cr described above, and may also include any conditions for posture adjustment based on the reference posture Or.
[0157] Additionally, the action execution unit 62 may be omitted from the apparatus 70. In this case, fromFigure 6 In the process, steps S14 and S15 are omitted. In this case, the processor 42 can also only display the target posture Ot determined in step S12 in step S13. Instead, the processor 34 can store the target posture Ot determined in step S12 in the memory 36 or 44, or provide it to the upper controller.
[0158] In addition, the following situation has been described: in the device 70, when the input reception unit 58 newly receives the input of the posture adjustment parameter PR from the operator (that is, it is determined to be "yes" in step S11), the image generation unit 54 displays the target posture Ot in the image data 100 in step S13. However, it is not limited to this. The image generation unit 54 can also display the posture display button image in the parameter setting image area 106.
[0159] In this case, when the input reception unit 58 receives the input that the operator operates the input device 50 to click the posture display button image, the image generation unit 54 can execute step S13 to display the target posture Ot in the image data 100. In addition, in step S13, in order to display the movement path MPo, the image generation unit 54 can also display a dynamic image (or frame-by-frame playback image) in which the robot model 12M repeatedly moves along the movement path MPo in the virtual space VS during the period when the operator continuously clicks the posture display button image in the image data 100.
[0160] In addition, the action teaching button image 108 can also be omitted from the image data 100. In this case, steps S18 and 19 are omitted from the Figure 3 process. Then, the functions of steps S18 and S19 can also be installed in other computers (for example, a PC or an upper controller).
[0161] In addition, in the present embodiment, the following situation has been described: the functions of the direct teaching execution unit 56, the action determination unit 60, and the action execution unit 62 of the device 70 are installed in the control device 14, while the functions of the image generation unit 54, the input reception unit 58, and the reference posture setting unit 64 of the device 70 are installed in the teaching device 15. However, it is not limited to this. For example, all the functions of the image generation unit 54, the direct teaching execution unit 56, the input reception unit 58, the action determination unit 60, the action execution unit 62, and the reference posture setting unit 64 can be installed in one of the control device 14 and the teaching device 15, or at least a part of these functions can be installed in a computer (PC or upper controller) different from the control device 14 and the teaching device 15.
[0162] In addition, in the present embodiment, as an example, the case where the processors 34 and 42 execute step S7 after the execution of the direct teaching function in step S3 has been described. However, it is not limited thereto, and it should be understood that the processors 34 and 42 can also execute step S7 after moving the robot 12 (end effector 26) by the jogging function in step S5.
[0163] In addition, in the present embodiment, the case where all the offsets OS are zero has been described, but the operator can arbitrarily input positive or negative offset values OS to the offset input images 128, 130, and 132. Hereinafter, such a method will be described. For example, in Figure 4 the image data 100 shown, offset values OS such as X = "1.000" mm are input to the offset input image 128, Y = "-3.000" mm are input to the offset input image 130, and Z = "2.000" mm are input to the offset input image 132.
[0164] In this case, the processor 42 of the teaching device 15 determines yes in step S11, and the processor 34 of the control device 14 executes step S12. However, in this step S12, the processor 34 functions as the motion determination unit 60 and determines Figure 8 and Figure 9 the target posture Or represented by the directions of the respective axes of the tool coordinate system C2 shown, and determines the target position Pt of the robot 12.
[0165] Specifically, the processor 34, based on the offset OS included in the posture adjustment parameter PR obtained from the teaching device 15, determines the position P where the robot 12 (specifically, the end effector 26) is displaced 1 mm in the positive x-axis direction, 3 mm in the negative y-axis direction, and 2 mm in the positive z-axis direction from the current position Pc: coordinate Qc (Xc, Yc, Zc) of the robot coordinate system C1 as the target position Pt.
[0166] Therefore, in this case, the processor 34 determines the coordinates Qt of the target position Pt and the target posture Ot in the robot coordinate system C1 as (Xc + 1, Yc - 3, Zc + 2, RXt, RYt, RZt). The processor 34 stores the determined coordinates Qt (Xc + 1, Yc - 1, Zc + 2, RXt, RYt, RZt) as the position data of the target position Pt and the target posture Ot in the memory 36.
[0167] Then, the processor 42 of the teaching device 15 obtains the position data of the target position Pt and the target posture Ot from the control device 14. In step S13, it functions as the image generation unit 54, and displays the robot model 12M configured at the target position Pt and the target posture Ot in the image data 100 (specifically, the model image area 102), and also displays the movement path MPo from the current position Pc and the current posture Oc to the target position Pt and the target posture Ot.
[0168] Then, the processor 34 of the control device 14 functions as the action execution unit 62 in step S15, while adjusting the posture O of the end effector 26 of the robot 12 to Figure 9 the shown target posture Ot, and shifts the position P of the end effector 26 by an offset amount OS (X = 1 mm, Y = -3 mm, Z = 2 mm). At this time, the processor 34 can execute: a linear motion LM that moves the end effector 26 linearly from the current position Pc to the target position Pt with the minimum movement amount.
[0169] In this way, in the present embodiment, the input reception unit 58 also accepts the following input: when moving the robot 12 that has performed an action through the direct teaching function from the current posture Oc to the target posture Ot, the input of the offset amount OS by which the position P of the robot 12 is displaced from the current position Pc. Then, the action determination unit 60 determines the position P displaced by the offset amount OS from the current position Pc as the target position Pt of the robot 12. According to this structure, when the operator adjusts the posture of the robot 12, the operator can also adjust the position P of the robot 12 (specifically, the end effector 26).
[0170] In addition, the input reception unit 58 can also accept: the offset amount of the posture O of the robot 12 input. For example, the image generation unit 54 can also display in the parameter setting image area 106: an offset amount input image for inputting the offset amount around the x-axis of the robot coordinate system C1 an offset amount input image for inputting the offset amount around the y-axis an offset amount input image for inputting the offset amount around the z-axis of the robot coordinate system C1.
[0171] Then, in step S12, the action determination unit 60 can determine the target posture Ot of the robot 12 as the following posture O: from Figure 8 and Figure 9 the posture O represented by the tool coordinate system C1, further rotating by the offset amount around the x-axis of the robot coordinate system C1 rotating by the offset amount around the y-axis rotating by the offset amount around the z-axis
[0172] In addition, in the above step S12, the motion determination unit 60 can obtain the movement path MPo of the linear motion LM in such a way that the rotation amounts of the respective joint axes A1 to A6 are minimized. Hereinafter, such a method will be described. In step S12, the processor 34 of the control device 14 functions as the motion determination unit 60, and obtains the target rotation positions R1t to R6t of the respective joint axes A1 to A6 corresponding to the determined target posture Ot.
[0173] Here, it is possible to obtain a plurality of combinations of the target rotation positions R1t to R6t of the joint axes A1 to A6 that achieve the target posture Ot. Specifically, the processor 34 obtains a total of j groups (j = 1, 2, 3,...) of combinations of the target rotation positions R1t to R6t as the combinations of the target rotation positions R1t to R6t that achieve the target posture Ot. For example, the processor 34 can obtain a first group of target rotation positions R1t1 to R6t1, a second group of target rotation positions R1t2 to R6t2, and a third group of target rotation positions R1t3 to R6t3 (i.e., j = 3).
[0174] Then, the processor 34 selects from the total of j groups obtained: the combination of the target rotation positions R1t to R6t with the smallest rotation amount starting from the current rotation positions R1c to R6c. As an example, the processor 34 selects from the total of j groups (for example, the first group, the second group, the third group): the k-th group of target rotation positions R1t k ~R6t k (for example, k = 1) that includes the target rotation position Rt with the smallest rotation amount starting from the current rotation position Rc of one joint axis A (for example, the first joint axis A1).
[0175] As another example, the processor 34 respectively obtains the sum ∑ξ of the rotation amounts ξ1 to ξ6 starting from the current rotation positions R1c to R6c for each of the target rotation positions R1t to R6t of each group. Then, it selects the k-th group of target rotation positions R1t k ~R6t k for which the obtained sum ∑ξ is the smallest from the total of j groups.
[0176] The processor 34 selects the target rotation positions R1t k ~R6t k of the respective joint axes A1 to A6 in this way, and thereby, the movement path MPo can be obtained. After that, in step S13, the processor 34 functions as the image generation unit 54, and displays the movement path MPo obtained in this way together with the target posture Ot in the model image area 102 in the image data 100 through the robot model 12M.
[0177] As described above, in the present embodiment, the motion determination unit 60 obtains the target rotation positions R1t to R6t of the joint axes A1 to A6 corresponding to the target posture Ot, and selects, from the obtained target rotation positions R1t to R6t, the target rotation positions R1t k ~R6t k corresponding to the current posture Oc and having the smallest rotation amount from the current rotation position Oc of the joint axes A1 to A6. Thus, the movement path MPo is obtained. With this configuration, the time required to adjust the robot 12 from the current posture Oc to the target posture Ot can be shortened.
[0178] In addition, the processor 42 of the teaching device 15 may be configured to be able to set whether to display or not display each reference posture Or displayed in the Figure 4 reference posture selection image 126 shown. Hereinafter, such a method will be described. The processor 42 functions as an image generation unit 54 and generates Figure 10 the display setting image data 140 shown according to the input operation of the operator on the input device 50, and displays it on the display device 48.
[0179] The display setting image data 140 is a GUI for selecting whether to display the reference posture Or on the reference posture selection image 126 or not. Specifically, the display setting image data 140 includes a reference posture image area 142 and a display setting image area 144. The list of the reference postures Or registered in the database DBo at this time is displayed in the reference posture image area 142 in a list form.
[0180] On the other hand, in the display setting image area 144, display setting button images 146 are displayed adjacent to the right side of each reference posture Or. The operator operates the input device 50 and clicks on the display setting button image 146 on the image, whereby it is possible to select whether to display the reference posture Or displayed on the left side thereof on the reference posture selection image 126 or not to display it. The processor 42 functions as an input reception unit 58 and receives the following input: an input for selecting whether to display or not display each reference posture Or on the reference posture selection image 126 through the display setting button image 146.
[0181] In addition, in the Figure 10 example shown, for the reference postures Or of "user coordinate system", "posture 2", and "motion program 1P[1]", "display" is selected on the reference posture selection image 126. On the other hand, for the reference postures Or of "posture 1", "motion program 2P[3]", and "global P[1]", "not display" is selected on the reference posture selection image 126.
[0182] Therefore, in this case, the processor 42 functions as the image generating unit 54 and generates Figure 4 When the image data 100 is selected, the "user coordinate system", "posture 2" and "action program 1P[1]" are displayed in the reference posture selection image 126 in list form, while the "posture 1", "action program 2P[3]" and "global P[1]" are not displayed.
[0183] As described above, in the present embodiment, a plurality of reference postures Or ("user coordinate system", "posture 1", "posture 2", "action program 1P[1]", "action program 2P[3]", "global P[1]" ...) selectable by the operator are displayed in the reference posture selection image 126, and the input acceptance unit 58 also accepts the following input: for each reference posture Or displayed in the reference posture selection image 126, an input for selecting whether to display it in the reference posture selection image 126 or not to display it in the reference posture selection image 126.
[0184] Then, the image generating unit 54 adds the reference posture Or (in the image data 100) in which the input accepting unit 58 accepts the input of selecting the display. Figure 10 In the example of "user coordinate system", "posture 2" and "action program 1P[1]") are displayed on the reference posture selection image 126, while the reference posture Or (in the example of "user coordinate system", "posture 2" and "action program 1P[1]") are not displayed when the input receiving unit 58 receives the input for selecting not to display. Figure 10 In the example, “Posture 1”, “Action Program 2P[3]” and “Global P[1]”) are displayed on the reference posture selection image 126.
[0185] According to this structure, when various reference postures Or are prepared, the operator selectively displays the desired reference posture Or on the reference posture selection image 126, thereby making it easy to select the reference posture Or and simplifying the display of the reference posture selection image 126 as a GUI, thereby also improving the visibility of the GUI.
[0186] Next, refer to Figure 11 , for the above Figure 6 In the present embodiment, the processor 34 of the control device 14 functions as the action determination unit 60, and in step S12, the execution Figure 11 Specifically, in step S21, similarly to the above-described embodiment, the processor 34 determines the target posture Ot based on the reference posture Or inputted in the most recent step S11 and the condition CD.
[0187] In step S22, the processor 34 obtains the movement path MPo1 of the linear motion LM. Specifically, similar to the above-described embodiment, the processor 34 obtains the movement path MPo1 (first movement path) when performing the linear motion LM that moves the end effector 26 from the current posture Oc to the target posture Ot with the minimum movement amount.
[0188] At this time, the processor 34 obtains the rotation directions D1 to D6 of the respective joint axes A1 to A6 for moving the end effector 26 along the movement path MPo1 to the target posture Ot by the linear motion LM, and the target rotation positions R1t to R6t of the respective joint axes A1 to A6 corresponding to the determined target posture Ot. Based on the rotation directions D1 to D6 and the target rotation positions R1t to R6t thus obtained, the movement path MPo1 is defined.
[0189] In step S23, the processor 34 determines whether there is a special point SP in the movement path MPo1 obtained in step S22. Here, when obtaining a certain specific movement path MP, for example, since at least two of the joint axes A1 to A6 of the robot 12 are in a straight-line arrangement posture, a special point SP where the position P and posture O of the end effector 26 cannot be controlled sometimes occurs on the movement path MP. If such a special point SP occurs, it is impossible to calculate at least one of the rotation directions D1 to D6 and the target rotation positions R1t to R6t of the joint axes A1 to A6 when moving the robot 12 from the current posture Oc to the target posture Ot along the movement path MP.
[0190] Therefore, in the present embodiment, in this step S23, the processor 34 determines whether there is a special point SP that the robot 12 cannot control in the movement path MPo1 obtained in the previous step S22. Specifically, in the previous step S22, the processor 34 determines that it is the case when at least one of the rotation directions D1 to D6 and the target rotation positions R1t to R6t of the respective joint axes A1 to A6 cannot be obtained. When the processor 34 determines that it is the case, it proceeds to step S24, and on the other hand, when it determines that it is not the case, it proceeds to step S27.
[0191] In step S24, the processor 34 obtains the movement path MPo2 (second movement path) when performing each axis movement SM in combination with the linear motion LM. Here, each axis movement SM is an action of rotating one joint axis A from the current rotation position Rc corresponding to the current posture Oc to the target rotation position Rt corresponding to the target posture Ot with the minimum rotation amount. According to this each axis movement SM, the above-described special point SP can be avoided.
[0192] Here, the special point SP has a high frequency of occurrence in the fourth to sixth joint axes A4 to A6. Therefore, in the present embodiment, the processor 34 causes the fourth to sixth joint axes A4 to A6 to perform the respective axis motions SM 4_6 , on the other hand, calculates the linear motion LM for causing the first to third joint axes A1 to A3 to perform a linear motion 1_3 . Specifically, the processor 34 generates the respective axis motions SM for causing the fourth joint axis A4, the fifth joint axis A5, and the sixth joint axis A6 to rotate from their current rotation positions R4c, R5c, and R6c to the target rotation positions R4t, R5t, and R6t corresponding to the target posture Ot with the minimum rotation amount respectively 4_6 .
[0193] If the respective axis motions SM are executed 4_6 , the position P of the end effector 26 (or TCP) is displaced from the current position Pc. Therefore, the processor 34 generates the linear motion LM for causing the first to third joint axes A1 to A3 to move 1_3 , so that the position P of the end effector 26 displaced by the respective axis motions SM 4_6 moves linearly along the shortest path to the current position Pc
[0194] . At this time, the processor 34 calculates the rotation directions D1 to D3 and the target rotation positions R1t to R3t of the joint axes A1 to A3 for moving the end effector 26 to the current position Pc by the linear motion LM 1_3 . In this way, the processor 34 can calculate the movement path MPo2 defined by the linear motion LM 1_3 and the respective axis motions SM 4_6 . According to this movement path MPo2, the fourth to sixth joint axes A4 to A6 that execute the respective axis motions SM 4_6 can avoid the special point SP
[0195] In step S25, the processor 34 determines whether there is a special point SP in the movement path MPo2 obtained in step S24. Specifically, the processor 34 determines that it is the case when at least one of the rotation directions D1 to D3 and the target rotation positions R1t to R3t of the joint axes A1 to A3 cannot be obtained in the previous step S24. When the determination is affirmative, the processor 34 proceeds to step S26, and on the other hand, when the determination is negative, the processor 34 proceeds to step S27
[0196] In step S26, the processor 34 obtains a movement path MPo3 (second movement path) for performing axis actions SM for all joint axes A1 to A6. Specifically, the processor 34 generates axis actions SM that cause the first joint axis A1 to the sixth joint axis A6 to rotate from their current rotation positions R1c to R6c to the target rotation positions R1t to R6t corresponding to the target posture Ot with the minimum rotation amount respectively. As a result, the processor 34 can obtain the movement path MPo3 defined by the axis actions SM. According to this movement path MPo3, special points SP can be avoided in all of the first joint axis A1 to the sixth joint axis A6.
[0197] In step S27, the processor 34 determines the movement path MPo. Specifically, when the processor 34 executes this step S27 after determining "No" in step S23, the movement path MPo is determined as the movement path MPo1 obtained in step S22. In addition, when the processor 34 executes this step S27 after determining "No" in step S25, the movement path MPo is determined as the movement path MPo2 obtained in step S24. In addition, when the processor 34 executes this step S27 after determining "Yes" in step S25, the movement path MPo is determined as the movement path MPo3 obtained in step S26.
[0198] After step S27, the processor 34 ends step S12. In Figure 6 step S13, the processor 42 of the teaching device 15 displays the target posture Ot determined in step S21 and the movement path MPo1, MPo2, or MPo3 determined in step S27 in the model image area 102 within the image data 100.
[0199] As described above, in the present embodiment, the motion determination unit 60 can obtain the first movement path MPo1 and the second movement paths MPo2, MPo3. The first movement path MPo is the path when the robot 12 that has performed an action through the direct teaching function executes a linear motion LM that moves from the current posture Oc to the target posture Ot with the minimum movement amount. The second movement paths MPo2, MPo3 are the paths when axis actions SM are executed that cause the joint axes A1 to A6 to rotate from the current rotation positions Rc of the joint axes A1 to A6 corresponding to the current posture Oc to the target rotation positions Rt of the joint axes A1 to A6 corresponding to the target posture Ot with the minimum rotation amount.
[0200] Here, if the joint axes A1 to A6 perform a linear motion LM, the end effector 26 can reach the target posture Ot most quickly with the minimum movement amount (i.e., the shortest path). On the other hand, when at least one of the joint axes A1 to A6 performs an axis motion SM, the time and movement amount required for the end effector 26 to reach the target posture Ot increase compared to the linear motion LM, but the above-mentioned special point SP can be avoided. According to the present embodiment, it is also possible to obtain the movement path MPo of either the linear motion LM or the axis motion SM. Therefore, the optimal movement path MPo can be adopted considering the time required for positioning, the movement amount, and the special point SP.
[0201] In addition, in the present embodiment, when the motion determination unit 60 obtains the first movement path MPo1 (step S22), it determines whether there is a special point SP that the robot 12 cannot control in the first movement path MPo1 (step S23). When it is determined that there is a special point SP (Yes in step S23), the second movement paths MPo2 and MPo3 are obtained in such a way as to avoid the special point SP (steps S24 and S26). According to this configuration, the special point SP can be avoided, and the movement path MPo that optimizes the time and movement amount required for positioning can be obtained.
[0202] In addition, in the present embodiment, the motion determination unit 60 executes the axis motion SM in which the first joint axes A4, A5, and A6 of the robot 12 are rotated from the current rotation positions R4c, R5c, and R6c corresponding to the current posture Oc to the target rotation positions R4t, R5t, and R6t corresponding to the target posture Ot with the minimum rotation amount 4_6 , and obtains the linear motion LM in which the second joint axes A4, A5, and A6 of the robot 12 are moved in such a way that the robot 12 (specifically, the end effector 26) displaced by the axis motion SM moves linearly 4_6 when obtaining the movement path MPo2 (step S24). 1_3 According to this configuration, the special point SP can be avoided as much as possible, and the movement path MPo that optimizes the time and movement amount required for positioning can be obtained. In addition, steps S22, S23, S25, and S26 can be omitted from step S12 shown in
[0203] FIG. 16, and the motion determination unit 60 determines the movement path MPo as the movement path MPo2 obtained in step S24 in step S27. Figure 11 In addition, in the present embodiment, the following case has been described: in step S24, the motion determination unit 60 obtains the axis motion SM in which the fourth joint axis A4 to the sixth joint axis A6 perform the axis motion
[0204] SM. 4_6, on the other hand, causing the first joint axis A1 to the third joint axis A3 to perform a linear motion LM 1_3 The movement path MPo2 when doing so. However, not limited to this, the motion determination unit 60 may also obtain in step S24: causing the fifth joint axis A5 and the sixth joint axis A6 to perform respective axis motions SM 5_6 , on the other hand, causing the first joint axis A1 to the fourth joint axis A4 to perform a linear motion LM 1_4 The movement path MPo2 when doing so. That is, the motion determination unit 60 obtains: the movement path MPo2 when causing a part of the first joint axis A1 to the sixth joint axis A6 to perform respective axis motions SM, and on the other hand, causing the other parts of the first joint axis A1 to the sixth joint axis A6 to perform a linear motion LM.
[0205] In addition, in Figure 4 When positive or negative offset values OS are input in the offset input images 128, 130, and 132, the motion determination unit 60 can also execute Figure 11 The process of. In this case, the motion determination unit 60 determines the target position Pt and the target posture Or of the robot 12 in step S21. Then, in steps S22, S24, or S26, the motion determination unit 60 obtains the movement paths MPo1, MPo2, or MPo3 from the current position Pc and the current posture Oc to the target position Pt and the target posture Ot.
[0206] Next, referring to Figure 12 , a robot system 10' of another embodiment will be described. In this robot system 10', a cable 72 is laid on the robot 12. The cable 72 includes, for example, a power line for supplying power to the servo motor 28, or a signal line for sending instructions to the servo motor 28 or the end effector 26. The cable 72 extends from the control device 14 and is connected to the end effector 26, and is constrained to the movable components of the robot 12 (in Figure 12 The example is the rotating body 18, the lower arm portion 20, and the base end arm portion 22a).
[0207] Here, in the present embodiment, the processor 34 of the control device 14 or the processor 42 of the teaching device 15 pre-observes the laying information IF of the cable 72. The laying information IF includes, for example, the specification information IF1 of the cable 72 and the rotation limit information IF2 for restricting the rotation of each joint axis A1 to A6 in order to avoid breakage of the cable 72. The specification information IF1 includes, for example, information related to the installation position of the restraint member 74 in the robot 12 (in other words, the restraint position of the cable 72 relative to the robot 12), and information related to the length, flexibility, torsional strength, and tensile strength of the cable 72.
[0208] On the other hand, the rotation limit information IF2 includes rotation limit ranges [Rα, Rβ] individually set for each of the rotation positions R1 to R6 of the first joint axis A1 to the sixth joint axis A6. The rotation limit ranges [Rα, Rβ], as the ranges of the rotation positions R of the respective joint axes A1 to A6 where there is a possibility of the cable 72 breaking, are determined in advance by an operator through an experimental method or simulation.
[0209] That is, when the rotation position R of at least one of the joint axes A1 to A6 is within the rotation limit range [Rα, Rβ] (i.e., Rα ≤ R ≤ Rβ), it means that the cable 72 is excessively twisted or stretched, and this cable 72 may break. These laying information IF (specification information IF1, rotation limit information IF2, etc.) are stored in the memory 44 in advance. In addition, the laying information IF is not limited to the specification information IF1 and the rotation limit information IF2, and may include any information related to the state of the cable 72 or the possibility of breaking.
[0210] In the present embodiment, the processor 34 of the control device 14 functions as the motion determination unit 60 in Figure 6 step S12 therein. After determining the target posture Ot as in the above-described embodiment, according to the laying information IF of the cable 72, the movement path MPo that can avoid the breakage of the cable 72 is obtained. As an example, the processor 34 is the same as the above-described embodiment (the method of selecting the k-th set of target rotation positions R1t k to R6t k with the smallest rotation amount from the current rotation position Rc), and obtains combinations of the total j sets of target rotation positions R1t to R6t that achieve the determined target posture Ot.
[0211] Next, the processor 34 selects the set having target rotation positions R1t to R6t outside the rotation limit range [Rα, Rβ] from the total j sets. More specifically, the processor 34 compares the target rotation positions R1t to R6t with the rotation limit range [Rα, Rβ] for each of the total j sets, and determines whether it is within the rotation limit range [Rα, Rβ]. Then, the processor 34 selects the q-th set of target rotation positions R1t q to R6t q where all target rotation positions R1t to R6t are outside the rotation limit range [Rα, Rβ] from the total j sets (for example, q = 2).
[0212] In addition, when there are multiple sets where all target rotation positions R1t to R6t are outside the rotation limit range [Rα, Rβ], the processor 34 may also obtain the rotation amounts ξ1 from the current rotation positions R1c to R6c to the target rotation positions R1t to R6t for each of these multiple sets j~ξ6 j The sum Σξ j Then, the processor 34 can select the calculated sum Σξ from the multiple groups j The q-th group target rotation position R1t with the smallest value q ~R6t q By selecting the target rotation positions R1t q ~R6t q of each joint axis A1 to A6 in this way, the processor 34 can obtain the movement path MPo.
[0213] As another example, the processor 34 transmits the data of the determined target posture Ot and the simulation execution instruction to the teaching device 15. According to the simulation execution instruction, the processor 42 of the teaching device 15 uses the specification information IF1 to simulate and lay a cable model 72M obtained by modeling the cable 72 in the robot model 12M arranged in the virtual space VS. At this time, the cable model 72M is simulatedly constrained relative to the robot model 12M at the same constraint positions as the cable 72 in the actual space shown in Figure 12 the specification information IF1.
[0214] Then, the processor 42 executes a simulation SL in the virtual space VS to simulate the movement of the robot model 12M from the current posture Oc to the target posture Ot obtained from the control device 14. When this simulation SL is executed, the processor 42 determines whether there is interference between the robot model 12M and the cable model 72M, or whether there is a possibility of the cable model 72M breaking, according to the specification information IF1 (constraint positions of the cable 72, and the length, flexibility, torsional strength, and tensile strength of the cable 72, etc.).
[0215] Based on the determination result, the processor 42 obtains the movement path MPo determined to have no interference or possibility of breaking, and supplies it to the control device 14. In addition, the processor 42 can also generate an alarm signal notifying this situation when it is impossible to obtain the movement path MPo with no interference or possibility of breaking. Through this simulation SL, the processor 34 of the control device 14 can obtain the movement path MPo that can avoid the breaking of the cable 72. In addition, the processor 34 of the control device 14 can also obtain the movement path MPo that can avoid the breaking of the cable 72 by executing the above simulation SL.
[0216] By the method described above, the processor 34 can obtain a movement path MPo that can avoid the disconnection of the cable 72. According to the movement path MPo thus obtained, even if the robot 12 moves along this movement path MPo toward the target posture Ot, the disconnection of the cable 72 can be avoided. Thereafter, the processor 42 of the teaching device 15 functions as an image generation unit 54 in step S13, and displays the movement path MPo and the target posture Ot obtained as described above together in the model image area 102 of the image data 100 through the robot model 12M.
[0217] As described above, in the present embodiment, the cable 72 is laid in the robot 12, and the motion determination unit 60 obtains a movement path MPo that can avoid the disconnection of the cable 72 according to the laying information IF (specification information IF1, rotation limit information IF2, etc.) of the cable 72. According to this structure, the disconnection of the cable 72 can be reliably avoided during the posture adjustment of the robot 12. In addition, in the present embodiment, it should be understood that even when positive or negative offset amounts OS are input to the offset input images 128, 130, and 132 in Figure 4 , the motion determination unit 60 can also obtain a movement path MPo that can avoid the disconnection of the cable 72 by the above method.
[0218] Next, with reference to Figure 13 and Figure 14 , a robot system 80 of another embodiment will be described. The robot system 80 is different from the above-described robot system 10 in that it further includes an environmental object 82. The environmental object 82 includes, for example, a workbench, a fixture, a bracket, a conveyor belt, or a locator, and is disposed around the robot 12. In the present embodiment, the environmental object 82 has an upper surface 84 and a cylindrical outer peripheral surface 86.
[0219] In the robot system 80, the processor 34 of the control device 14 and the processor 42 of the teaching device 15 cooperate with each other to execute the Figure 15 shown process. In addition, Figure 15 the shown process is different from the Figure 3 process in steps S1', S9, and S10. Specifically, in step S1', the processor 42 of the teaching device 15 functions as an image generation unit 54 to generate the Figure 16 shown image data 100' and display it on the display device 48.
[0220] In the image data 100’, a virtual space VS in which a robot model 12M and an environmental object model 82M obtained by modeling an environmental object 82 are displayed is shown in a model image area 102. The virtual space VS is defined by a robot coordinate system C1, and model components (surface models, edge models, vertices, center points, etc.) of the robot model 12M and the environmental object model 82M arranged in the virtual space VS are represented as coordinates of the robot coordinate system C1. The position of the environmental object model 82M in the robot coordinate system C1 within the virtual space VS is the same as the position of the environmental object 82 in the robot coordinate system C1 in the actual space.
[0221] The environmental object model 82M is, for example, a 3D CAD model, which is pre-made by an operator and stored in a memory 44. Specifically, the environmental object model 82M has an upper surface model 84M obtained by modeling an upper surface 84 and an outer peripheral surface model 86M obtained by modeling an outer peripheral surface 86 as model components. In addition, in this specification, the robot model 12M and the environmental object model 82M are referred to as object models MD. Further, in the image data 100’, a pose setting label image 138 is also displayed in a function selection image area 104. The operator operates an input device 50 and clicks on the pose setting label image 138 on the image, whereby the pose setting function can be selected.
[0222] On the other hand, in Figure 15 in the case where it is determined as No in step S6, in step S9, a processor 42 of the teaching device 15 determines whether the pose setting function has been selected. Specifically, the processor 42 determines as Yes when the pose setting label image 138 displayed in the function selection image area 104 of the image data 100’ is selected, and proceeds to step S10. On the other hand, the processor 42 determines as No when the pose setting label image 138 is not selected, and proceeds to step S8.
[0223] In step S10, the processor 42 of the teaching device 15 executes the pose setting function. Refer to Figure 17 This step S10 will be described. In step S31, the processor 42 functions as an input reception unit 58 and determines whether an input of selecting a model component of the object model MD displayed in the image data 100’ has been received. Here, the image data 100’ is configured to be able to select a model component of the object model MD (that is, the robot model 12M and the environmental object model 82M) displayed in the model image area 102 on the image.
[0224] The operator can select a model component of the robot model 12M or the environmental object model 82M displayed in the image data 100’ by performing a click operation on the image by operating the input device 50. Figure 18 IndicatesFigure 16 An enlarged view of the model image area 102. Hereinafter, a case where the operator selects the outer peripheral surface model 86M as a model component of the object model MD displayed in the model image area 102 by clicking on the point ρ on the outer peripheral surface model 86M will be described.
[0225] In this case, the processor 42 functions as the input reception unit 58, receives the input of selecting the outer peripheral surface model 86M, and determines that it is "yes" in this step S31. When the processor 42 determines that it is "yes", it proceeds to step S32. On the other hand, when the processor 42 does not receive the input of selecting the model component of the object model MD, it determines that it is "no" and proceeds to step S34.
[0226] In step S32, the processor 42 sets the reference coordinate system Cr for the model component received in the previous step S31 according to the preset setting conditions SC. The setting conditions SC stipulate the conditions for setting the reference coordinate system Cr for the selected model component.
[0227] For example, the setting conditions SC include the following condition SC1: when a surface model is selected as the model component, the first axis (e.g., the z-axis) of the set reference coordinate system Cr is set to be parallel to the normal direction of the surface model. In addition, the setting conditions SC may also include the following condition SC2: when the first axis of the reference coordinate system Cr is set, the second axis (e.g., the y-axis) of the reference coordinate system Cr orthogonal to the first axis is set to the vertical direction of the virtual space VS (i.e., the z-axis direction of the robot coordinate system C1) or the horizontal direction.
[0228] In the present embodiment, the processor 42 obtains the normal direction v of the point ρ on the outer peripheral surface model 86M selected in the previous step S31 based on the model data of the environmental object model 82M and the coordinates of the outer peripheral surface model 86M and the point ρ in the robot coordinate system C1. Then, the processor 42 determines the z-axis of the set reference coordinate system Cr to be parallel to the normal direction v according to the condition SC1, and determines the y-axis and x-axis of the reference coordinate system Cr according to the condition SC2.
[0229] As a result, the reference coordinate system Cr shown in Figure 19 is set for the outer peripheral surface model 86M. Thus, in the present embodiment, the processor 42 functions as the coordinate system setting unit 66 ( Figure 14 ), and the coordinate system setting unit 66 sets the reference coordinate system Cr for the model component (in the present embodiment, the outer peripheral surface model 86M) according to the setting conditions SC (specifically, the conditions SC1, SC2). Then, in step S33, the processor 42 functions as the image generation unit 54, as shown in Figure 19As shown, the reference coordinate system Cr set in step S32 is displayed together with the object model MD in the model image area 102 of the image data 100'.
[0230] In step S34, the processor 42 determines whether a pose registration instruction has been received. Specifically, the operator operates the input device 50 to click on the pose registration button image 134 displayed in the image data 100'. When the pose registration button image 134 is clicked, a pose registration instruction is sent to the processor 42, and the processor 42 functions as the input reception unit 58 to receive the pose registration instruction. When the processor 42 has received the pose registration instruction, it determines that it is "yes" and proceeds to step S35. On the other hand, when the pose registration instruction has not been received, it determines that it is "no" and proceeds to Figure 15 step S8 in
[0231] In step S35, the processor 42 functions as the reference pose setting unit 64 to register the pose O represented by the reference coordinate system Cr set in the most recent step S32 as the new reference pose Or in the database DBo. For example, when the reference coordinate system Cr shown in Figure 19 has been set in the most recently executed step S32, the processor 42 obtains the coordinates Qr (RXr, RYr, RZr) representing the pose of this reference coordinate system Cr in the robot coordinate system C1.
[0232] Then, the processor 42 registers the obtained coordinates Qr (RXr, RYr, RZr) as the new reference pose Or in the database DBo. The reference pose Or newly registered in the database DBo is displayed in Figure 16 the reference pose selection image 126 within the image data 100' shown, and can be selected by the operator.
[0233] On the other hand, when the processor 42 executes Figure 15 step S7 shown in Figure 6 in step S17 in Figure 19 it functions as the reference pose setting unit 64 and can register the current pose Oc of the robot 12 as the new reference pose Or in the database DBo according to the pose registration instruction received in the previous step S16. Thus, according to this embodiment, the operator can register the pose O of the arbitrarily set reference coordinate system Cr and the current pose Oc of the robot 12 during teaching as the reference pose Or in the database DBo.
[0234] Then, the processor 42 is in Figure 6In step S11, it functions as the input reception unit 58 and receives the following input: an input such as selecting one of the multiple reference postures Or registered in the database DBo. Then, the processor 34 of the control device 14 can determine the target posture Ot based on the reference posture Or and the condition CD received in step S11. In this way, the operator can arbitrarily select one of the various reference postures Or registered in the database DBo according to the progress of the teaching. For example, as in the above-described embodiment, after performing the direct teaching function of step S3, the posture O of the robot 12 can be efficiently adjusted.
[0235] In addition, the processor 42 of the teaching device 15 can register the reference posture Or as the "user coordinate system" in step S35 and automatically assign the identification number "n" of the user coordinate system C3 to the registered reference posture Or. In this case, the operator can specify the identification number "n" through the user coordinate system selection image 116, thereby being able to select the new reference posture Or (i.e., the "user coordinate system") in the reference posture selection image 126.
[0236] In addition, the processor 42 can function as the input reception unit 58 and receive the following input: an input for editing the posture name of the reference posture Or registered in step S35. In addition, the processor 42 can also function as the image generation unit 54. When it is determined to be the case in step S9, a GUI for inputting parameters related to the posture setting function is displayed in the parameter setting image area 106.
[0237] In this case, it can also be that in the parameter setting image area 106, for example, the above-described posture registration button image 134, a coordinate input image for specifying the coordinates in the robot coordinate system C1 of the origin of the reference coordinate system Cr (corresponding to the point ρ in Figure 18 ), a coordinate input image for specifying the posture of the reference coordinate system Cr: coordinates (RX, RY, RZ), and at least one of a posture name input image for inputting the posture name of the reference coordinate system Cr are displayed.
[0238] As described above, in the present embodiment, the processor 34 of the control device 14 and the processor 42 of the teaching device 15 cooperate with each other and function as the image generation unit 54, the direct teaching execution unit 56, the input reception unit 58, the motion determination unit 60, the motion execution unit 62, the reference posture setting unit 64, and the coordinate system setting unit 66 to execute Figure 15 the process of adjusting the posture O of the robot 12. Therefore, the image generation unit 54, the direct teaching execution unit 56, the input reception unit 58, the motion determination unit 60, the motion execution unit 62, the reference posture setting unit 64, and the coordinate system setting unit 66 constitute a device 90 for adjusting the posture O of the robot 12 during the teaching of the robot 12 (Figure 14 )。
[0239] In the apparatus 90, the image generation unit 54 generates image data 100' in which object models MD (robot model 12M, environment object model 82M) obtained by modeling the robot 12 and the environment object 82 are arranged in a virtual space VS defined by a control coordinate system C (robot coordinate system C1) (step S1').
[0240] In addition, the input reception unit 58 receives an input such as selecting a model component (outer peripheral surface model 86M) of the object model MD displayed in the image data 100' (step S31). In addition, the coordinate system setting unit 66 sets a reference coordinate system Cr for the model component received by the input reception unit 58 according to preset setting conditions SC (conditions SC1, SC2) (step S32). Then, the reference posture setting unit 64 registers the posture O represented by the reference coordinate system Cr set by the coordinate system setting unit 66 as a new reference posture Or in the database DBo (step S35).
[0241] According to this configuration, the operator can arbitrarily set a reference posture Or that serves as a basis for adjusting the posture of the robot 12 based on the model components (surface models, edge models, vertices, center points, etc.) of the object model MD (e.g., environment object model 82M) arranged in the virtual space VS. Therefore, it is possible to effectively assist the operation of adjusting the posture of the robot 12 during the teaching of the robot 12.
[0242] In addition, in the apparatus 90, the model components of the object model MD include a surface model (outer peripheral surface model 86M) obtained by modeling the surface of the robot 12 or the environment object 82, and the setting conditions SC include a condition SC1 in which one axis (z axis) of the reference coordinate system Cr is set to be parallel to the normal direction v of the surface model. And when the input reception unit 58 receives an input of selecting the surface model 86M as a model component, the coordinate system setting unit 66 sets the reference coordinate system Cr for the surface model 86M in such a manner that one axis (z axis) of the reference coordinate system Cr is parallel to the normal direction v according to the setting conditions SC (condition SC1).
[0243] According to this structure, this one axis (e.g., z axis) of the set reference coordinate system Cr is in a direction orthogonal to the surface model, so the operator can more easily identify the direction of this one axis. Therefore, the operator can set the reference coordinate system Cr more simply in a desired posture. In addition, the setting conditions SC may include a condition in which one axis of the reference coordinate system Cr is set to be parallel to the surface model or edge model of the model data MD, or may include any other arbitrary conditions. In addition, the processor 42 can also function as the input reception unit 58 and receive an input of the setting conditions SC through the parameter setting image area 106 of the image data 100'.
[0244] In addition, in the apparatus 90, the image generation unit 54 displays the reference coordinate system Cr set by the coordinate system setting unit 66 on the image data 100' (step S33). With this configuration, the operator can immediately confirm the set reference coordinate system Cr. In addition, the processor 42 may not display the reference coordinate system Cr on the image data 100', but only register the posture O of the set reference coordinate system Cr in the database DBo.
[0245] In addition, the motion determination unit 60 and the motion execution unit 62 may be omitted from the apparatus 90. In this case, steps S11 to S15 may also be omitted from the Figure 15 flow of step S7 in Figure 6 ). In this case, the processor 42 of the teaching device 15 executes the registration of the reference posture Or in step S17 and the posture setting function in step S10, thereby performing the process of registering the reference posture Or in the database DBo and creating the database DBo.
[0246] In addition, in the apparatus 90, the case where the coordinate system setting unit 66 sets the reference coordinate system Cr for the model component (specifically, the outer peripheral surface model 86M) selected in step S31 has been described. However, it is not limited to this. For example, the processor 42 may also manually specify the position and posture of the reference coordinate system Cr through a coordinate input image in the robot coordinate system C1 for specifying the origin (corresponding to the point ρ in Figure 18 ) and the posture of the set reference coordinate system Cr.
[0247] In addition, in the present embodiment, as an example, the case where the operator selects the outer peripheral surface model 86M as the model component has been described. However, it is not limited to this. The operator may also select any model component of the object model MD, such as the upper surface model 84M of the environmental object model 82M, the edge model, the center point or vertex, or the surface model, edge model, center point or vertex of the robot model 12M (for example, the robot base model 16M) as the model component.
[0248] In addition, in the present embodiment, the processor 34 or 42 may, when executing Figure 15 step S7, in step S12 ( Figure 6 ), every time the movement path MPo to the determined target posture Ot is repeatedly obtained, determine whether there is interference between the robot model 12M and the environmental object model 82M. Based on the determination result, the processor 34 or 42 may obtain the movement path MPo determined not to cause interference. At this time, the processor 34 or 42 may also generate an alarm signal notifying this situation when the movement path MPo that does not cause interference cannot be obtained.
[0249] In addition, in the present embodiment, the following case is described: the functions of the direct teaching execution unit 56, the motion determination unit 60, and the motion execution unit 62 of the device 90 are installed in the control device 14, while the functions of the image generation unit 54, the input reception unit 58, the reference posture setting unit 64, and the coordinate system setting unit 66 of the device 90 are installed in the teaching device 15.
[0250] However, it is not limited thereto. For example, all the functions of the image generation unit 54, the direct teaching execution unit 56, the input reception unit 58, the motion determination unit 60, the motion execution unit 62, the reference posture setting unit 64, and the coordinate system setting unit 66 may be installed in either the control device 14 or the teaching device 15, or at least a part of these functions may be installed in a computer (PC or upper controller) different from the control device 14 and the teaching device 15.
[0251] In addition, the processors 34 and 42 may execute according to the computer program CP pre-stored in the memories 36 or 44 Figure 3 , Figure 6 , Figure 11 , Figure 15 and Figure 17 the processes shown. In addition, the functions of the image generation unit 54, the direct teaching execution unit 56, the input reception unit 58, the motion determination unit 60, the motion execution unit 62, the reference posture setting unit 64, and the coordinate system setting unit 66 executed by the processors 34 and 42 may also be functional modules implemented by the computer program CP.
[0252] In addition, in the above embodiment, the case where the coordinates Qr (RXr, RYr, RZr) of the robot coordinate system C1 are stored in the database DBo as the position data of the reference posture Or is described. However, it is not limited thereto. It may also be that the rotational positions R1 to R6 of the respective joint axes A1 to A6 are stored in the database DBo as the position data of the reference posture Or.
[0253] In addition, the above-mentioned posture adjustment parameters PR are not limited to the selection information SIc, the selection information SIo, the condition CD, and the offset OS, and may also include any other parameters related to the posture adjustment of the robot 12. In addition, the control coordinate system C is not limited to the robot coordinate system C1, the tool coordinate system C2, and the user coordinate system C3, and may also include any other coordinate systems for controlling the robot 12, such as the workpiece coordinate system set for the workpiece and the world coordinate system of the three-dimensional space defining the work cell.
[0254] As described above, the present disclosure has been described in detail, but the present disclosure is not limited to the above-described embodiments. These embodiments can be subjected to various additions, substitutions, changes, partial deletions, etc. within the scope not departing from the spirit of the present disclosure, or within the scope not departing from the spirit of the present disclosure derived from the content described in the claims and its equivalents. In addition, these embodiments can also be implemented in combination. For example, in the above embodiments, the order of each action and the order of each process are shown as an example, but are not limited thereto. In addition, the same applies to the cases where numerical values or mathematical expressions are used in the description of the above embodiments.
[0255] Regarding the above embodiments, the following remarks are disclosed.
[0256] (Remark 1) An apparatus 70, 90 for adjusting the posture of a robot 12 during the teaching of the robot 12, wherein the apparatus 70, 90 has: a direct teaching execution unit 56 that executes a direct teaching function, and the direct teaching function causes the robot 12 to move according to an operating force F applied to the robot 12; an input reception unit 58 that, in order to adjust the posture of the robot 12 after the direct teaching execution unit 56 causes the robot 12 to move through the direct teaching function, receives an input such as a selection of a reference posture Or as a reference for the adjustment; and a motion determination unit 60 that determines a target posture Ot after adjustment based on the reference posture Or received by the input reception unit 58 and a condition CD for adjustment based on the reference posture Or.
[0257] (Remark 2) The apparatus 70, 90 according to Remark 1, wherein the apparatus 70, 90 further has: a reference posture setting unit 64 that registers a new reference posture Or in a database DBo, and the input reception unit 58 receives an input such as a selection of one reference posture Or from among a plurality of reference postures Or registered in the database DBo.
[0258] (Remark 3) The apparatus 70, 90 according to Remark 2, wherein the input reception unit 58 further receives a posture registration instruction for registering the current posture Oc of the robot 12 in the database DBo, and the reference posture setting unit 64 registers the current posture Oc as a new reference posture Or in the database DBO according to the posture registration instruction received by the input reception unit 58.
[0259] (Remark 4) The apparatus 70, 90 according to Remark 1 or 2, wherein the apparatus 70, 90 further has: an image generation unit 54 that generates image data 100 showing the current position Pc and the current posture Oc of the robot 12 that has moved through the direct teaching function, and the image generation unit 54 displays the target posture Ot determined by the motion determination unit 60 on the image data 100.
[0260] (Supplementary Note 5) For the devices 70 and 90 described in Supplementary Note 4, the image generation unit 54 also displays a reference pose selection image 126 for selecting the reference pose Or on the image data, and the input reception unit 58 receives the following input: an input for selecting the reference pose Or through the reference pose selection image 126.
[0261] (Supplementary Note 6) For the devices 70 and 90 described in Supplementary Note 4 or 5, a plurality of selectable reference poses Or are displayed in the reference pose selection image 126, and the input reception unit 58 also receives the following input: for each of the reference poses Or displayed in the reference pose selection image 126, an input for selecting to display or not to display it in the reference pose selection image 126. In the image data 100, the image generation unit 54 displays the reference pose Or for which the input reception unit 58 has received the input selection to display in the reference pose selection image 126. On the other hand, the image generation unit 54 does not display the reference pose Or for which the input reception unit 58 has received the input selection not to display in the reference pose selection image 126.
[0262] (Supplementary Note 7) For the devices 70 and 90 described in any one of Supplementary Notes 4 to 6, the motion determination unit 60 obtains a movement path MP from the current pose Oc to the target pose Ot, and the image generation unit 54 visually displays the movement path MP in the image data 100.
[0263] (Supplementary Note 8) For the devices 70 and 90 described in Supplementary Note 7, as the display of the movement path MP, the image generation unit 54 displays the robot 12 in a plurality of poses Oc, Om, and Ot on the movement path MP in different display forms, or the image generation unit 54 displays the robot 12 that is simulated to move on the movement path MP in the virtual space VS.
[0264] (Supplementary Note 9) For the apparatuses 70 and 90 according to any one of Supplementary Notes 1 to 8, the motion determination unit 60 can obtain a first movement path MPo1 and second movement paths MPo2 and MPo3 of the robot 12. The first movement path MPo1 is the movement path of the robot 12 when the robot 12 that has performed an action through the direct teaching function executes a linear motion LM. The linear motion LM means moving from the current posture Oc to the target posture Ot with the minimum movement amount. The second movement paths MPo2 and MPo3 are the movement paths of the robot 12 when the following respective axis motions SM are executed: the robot 12 rotates the joint axes A1 to A6 from the current rotation positions R1c to R6c of the joint axes A1 to A6 of the robot 12 to the target rotation positions R1t to R6t of the joint axes A1 to A6 with the minimum rotation amount, where the current rotation positions R1c to R6c correspond to the current posture Oc and the target rotation positions R1t to R6t correspond to the target posture Ot.
[0265] (Supplementary Note 10) For the apparatuses 70 and 90 according to Supplementary Note 9, when the motion determination unit 60 obtains the first movement path MPo1, it determines whether there is a special point SP on the first movement path MPo1 where the robot 12 cannot be controlled. When it is determined that there is a special point SP, the second movement paths MPo2 and MPo3 are obtained to avoid the special point SP.
[0266] (Supplementary Note 11) For the apparatuses 70 and 90 according to any one of Supplementary Notes 1 to 8, the motion determination unit 60 obtains the following respective axis motions SM 4_6 and executes the following linear motion LM 1_3 when obtaining the movement path MPo2. The respective axis motions SM 4_6 mean that the first joint axes A4, A5, and A6 of the robot 12 are rotated from the current rotation positions R4c, R5c, and R6c corresponding to the current posture Oc to the target rotation positions R4t, R5t, and R6t corresponding to the target posture Ot with the minimum rotation amount. The linear motion LM 1_3 means that the second joint axes A1, A2, and A3 of the robot 12 are actuated so that the robot 12 displaced by the respective axis motions SM 4_6 moves in a straight line.
[0267] (Supplementary Note 12) For the apparatuses 70 and 90 according to any one of Supplementary Notes 1 to 8, the motion determination unit 60 obtains a plurality of target rotation positions R1t to R6t of the joint axes A1 to A6 of the robot 12 corresponding to the target posture Ot. The motion determination unit 60 selects the following target rotation positions R1t k to R6t k, thereby obtaining the movement path MPo of the robot 12 from the current posture Oc to the target posture Ot, where the target rotation positions R1t k ~R6t k refer to: the positions with the smallest rotation amounts of the joint axes A1 to A6 starting from the current rotation positions R1c to R6c corresponding to the current posture Oc of the robot 12 that has performed an action through the direct teaching function.
[0268] (Supplementary Note 13) According to the device 70, 90 described in any one of Supplementary Notes 1 to 8, wherein a cable 72 is laid on the robot 12, and the motion determination unit 60 obtains the movement path MPo of the robot 12 from the current posture Oc to the target posture Ot that has performed an action through the direct teaching function according to the laying information IF of the cable 72 in order to avoid breakage of the cable 72.
[0269] (Supplementary Note 14) According to the device 70, 90 described in any one of Supplementary Notes 1 to 13, wherein the input reception unit 58 also receives the following input: an input such as a selection condition CD, and the motion determination unit 60 determines the target posture Ot according to the reference posture Or and the condition CD received by the input reception unit 58.
[0270] (Supplementary Note 15) According to the device 70, 90 described in Supplementary Note 14, wherein the input reception unit 58 receives the following input as the condition CD: an input for selecting one axis of the tool coordinate system C2 representing the posture O, and an input for selecting the axis corresponding to the one axis in the reference coordinate system Cr representing the reference posture Or. The motion determination unit 60 determines the following posture as the target posture Ot: the posture represented by the tool coordinate system C2 when one axis is aligned with the aligned axis received by the input reception unit 58.
[0271] (Supplementary Note 16) According to the device 70, 90 described in any one of Supplementary Notes 1 to 15, wherein the input reception unit 58 also receives the following input: an input of an offset amount OS for displacing the position P of the robot 12 from the current position Pc when the robot 12 that has performed an action through the direct teaching function moves from the current posture Oc to the target posture Ot. The motion determination unit 60 determines the position P displaced by the offset amount OS from the current position Pc as the target position Pt of the robot 12.
[0272] (Supplementary Note 17) According to the device 70, 90 described in any one of Supplementary Notes 1 to 16, wherein the reference posture Or includes at least one of the following postures: the postures O1, O2 pre-stored in the memory 44; the posture O represented by the user coordinate system C3 c3 , where the user coordinate system C3 is set at an arbitrary position of the robot coordinate system C1 set for the robot 12; the postures Op1, Op3 specified in the motion programs PG1, PG2 of the robot 12.
[0273] (Supplement Note 18) For the apparatuses 70 and 90 according to any one of Supplement Notes 1 to 17, the input reception unit 58 further receives the following input: an input of an operation start instruction for the robot 12, and the apparatuses 70 and 90 further include: an operation execution unit 62 that moves the robot 12 that has performed an operation through the direct teaching function from the current posture Oc to the target posture Ot according to the operation start instruction received by the input reception unit 58.
[0274] (Supplement Note 19)
[0275] An apparatus 70, 90 for adjusting the posture O of a robot 12 during the teaching of the robot 12, the apparatus 70, 90 including: an input reception unit 58 that receives an input of a posture registration instruction for registering a reference posture Or as a reference for adjustment in a database DBo; and a reference posture setting unit 64 that registers the current posture Oc of the robot 12 as a new reference posture Or in the database DBo according to the posture registration instruction received by the input reception unit 58.
[0276] (Supplement Note 20) For the apparatuses 70 and 90 according to Supplement Note 19, the input reception unit 58 further receives the following input: an input of selecting one reference posture Or from among a plurality of reference postures Or registered in the database DBo, and the apparatuses 70 and 90 further include: an operation determination unit 60 that determines a target posture Ot after adjustment according to the one reference posture Or received by the input reception unit 58 and a condition CD for adjustment based on the reference posture Or.
[0277] (Supplement Note 21) For the apparatus 90 according to Supplement Note 19 or 20, the apparatus 90 further includes: an image generation unit 54 that generates image data 100' in which an object model MD is arranged in a virtual space VS, where the virtual space VS is defined by a control coordinate system C for controlling the operation of the robot 12, and the object model MD is obtained by modeling at least one of the robot 12 and environmental objects 82 existing around the robot 12; and a coordinate system setting unit 66 that sets a reference coordinate system Cr for a model component of the object model MD displayed in the image data 100', the input reception unit 58 further receives the following input: an input of selecting a model component, and the coordinate system setting unit 66 sets a reference coordinate system Cr for the model component received by the input reception unit 58 according to a preset setting condition SC, and the reference posture setting unit 64 further registers the posture O represented by the reference coordinate system Cr set by the coordinate system setting unit 66 as a new reference posture Or in the database DBo.
[0278] (Supplementary Note 22) For the device 90 described in Supplementary Note 21, wherein the model component includes: a surface model 86M obtained by modeling the surface 86 of the robot 12 or the environmental object 82, and the setting condition SC includes: a condition SC1 of setting one axis of the reference coordinate system Cr to be parallel to the normal direction v of the surface model 86M. When the input receiving unit 58 receives an input of selecting the surface model 86M as the model component, the coordinate system setting unit 66 sets the reference coordinate system Cr for the surface model 86M according to the setting condition SC so that this one axis is parallel to the normal direction v.
[0279] (Supplementary Note 23) For the device 90 described in Supplementary Note 21 or 22, wherein the image generation unit 54 displays the reference coordinate system Cr set by the coordinate system setting unit 66 on the image data 100'.
[0280] (Supplementary Note 24)
[0281] A method for adjusting the posture O of the robot 12 during the teaching of the robot 12, wherein the processors 34, 42 perform the following operations: execute a direct teaching function, which refers to making the robot 12 act according to the operating force F applied to the robot 12; in order to adjust the posture O of the robot 12 that has acted through the direct teaching function, receive the following input: an input of selecting a reference posture Or as the basis for this adjustment; and determine the target posture Ot after adjustment according to the received reference posture Or and the adjustment condition CD based on the reference posture Or.
[0282] (Supplementary Note 25) A method for adjusting the posture of the robot 12 during the teaching of the robot 12, wherein the processors 34, 42 perform the following operations: receive an input of a posture registration instruction for registering the reference posture Or, which is the basis for adjustment, into the database DBo, and according to the received posture registration instruction, register the current posture Oc of the robot 12 as the new reference posture Or into the database DBo.
[0283] (Supplementary Note 26) A computer program CP, which causes the processors 34, 42 to execute the method described in Supplementary Note 24 or 25.
[0284] Symbol Explanation
[0285] 10, 10', 80 Robot system
[0286] 12 Robot
[0287] 12M Robot model
[0288] 14 Control device
[0289] 15 Teaching device
[0290] 34, 42 processors
[0291] 54 Image generation unit
[0292] 56 Direct teaching execution unit
[0293] 58 Input reception unit
[0294] 60 Motion decision unit
[0295] 62 Motion execution unit
[0296] 64 Reference posture setting unit
[0297] 66 Coordinate system setting unit
[0298] 70, 90 Devices
[0299] 72 Cable
[0300] 82 Environmental object
[0301] 82M Environmental object model
[0302] 86 Outer peripheral surface
[0303] 86M Outer peripheral surface model
Claims
1. An apparatus for adjusting the posture of a robot during teaching of the robot, characterized in that, The device has: A direct teaching execution unit that executes a direct teaching function, which refers to moving the robot according to the operating force applied to the robot; An input reception unit that, in order to adjust the posture of the robot after the direct teaching execution unit moves the robot through the direct teaching function, receives the following input: an input for selecting a reference posture as a reference for this adjustment; And A motion determination unit that determines the target posture after the adjustment based on the reference posture received by the input reception unit and the conditions for making the adjustment with the reference posture as a reference.
2. The device according to claim 1, characterized in that The device further has: a reference posture setting unit that registers a new reference posture in a database, The input reception unit receives the following input: an input for selecting one of the multiple reference postures registered in the database.
3. The device according to claim 2, characterized in that The input reception unit further receives a posture registration instruction for registering the current posture of the robot in the database, The reference posture setting unit registers the current posture as the new reference posture in the database according to the posture registration instruction received by the input reception unit.
4. The device according to claim 1, characterized in that The device further has: an image generation unit that generates image data showing the current position and current posture of the robot that has moved through the direct teaching function, The image generation unit displays the target posture determined by the motion determination unit in the image data.
5. The device according to claim 4, characterized in that The image generation unit also displays a reference posture selection image for selecting the reference posture in the image data, The input reception unit receives the following input: an input for selecting the reference posture through the reference posture selection image.
6. The device according to claim 5, characterized in that A plurality of selectable reference postures are displayed in the reference posture selection image, The input reception unit further receives the following input: for each of the reference postures displayed in the reference posture selection image, an input for selecting whether to display it in the reference posture selection image or not, In the image data, the image generation unit displays the reference posture for which the input reception unit has received an input for selecting the display in the reference posture selection image, and on the other hand, the image generation unit does not display the reference posture for which the input reception unit has received an input for selecting the non-display in the reference posture selection image.
7. The device according to claim 4, characterized in that The motion determination unit obtains a movement path from the current posture to the target posture, The image generation unit visually displays the movement path in the image data.
8. The device according to claim 7, characterized in that As a display of the movement path, the image generation unit displays the robot in a plurality of the postures on the movement path in different display forms, or the image generation unit displays the robot that moves in simulation on the movement path in a virtual space.
9. The apparatus according to claim 1, wherein the motion determination unit can obtain a first movement path of the robot and a second movement path of the robot, where the first movement path is the movement path of the robot when the robot that has performed an action through the direct teaching function performs a linear motion, and the linear motion means that the robot moves from the current posture to the target posture with a minimum movement amount, the second movement path is the movement path of the robot when performing the following respective axis motions: the robot rotates the joint axis from the current rotation position of the joint axis of the robot to the target rotation position of the joint axis with a minimum rotation amount, where the current rotation position corresponds to the current posture and the target rotation position corresponds to the target posture.
10. The apparatus according to claim 9, wherein when the motion determination unit obtains the first movement path, it determines whether there is a special point on the first movement path where the robot cannot be controlled, when it is determined that there is the special point, it obtains the second movement path so as to avoid the special point.
11. The apparatus according to claim 1, wherein the motion determination unit obtains the movement path when performing the following respective axis motions and performing the following linear motion, where the respective axis motions mean that the first joint axis of the robot rotates from the current rotation position corresponding to the current posture to the target rotation position corresponding to the target posture with a minimum rotation amount, the linear motion means that the second joint axis of the robot moves so that the robot displaced by the respective axis motions moves in a straight line.
12. The apparatus according to claim 1, wherein the motion determination unit obtains a plurality of target rotation positions of the joint axes of the robot corresponding to the target posture, the motion determination unit selects a target rotation position from the obtained plurality of target rotation positions, thereby obtaining the movement path of the robot from the current posture to the target posture, where the target rotation position is the position with the minimum rotation amount of the joint axis starting from the current rotation position corresponding to the current posture of the robot that has performed an action through the direct teaching function.
13. The apparatus according to claim 1, wherein when the robot lays a cable, the motion determination unit obtains the movement path from the current posture of the robot that has performed an action through the direct teaching function to the target posture according to the laying information of the cable so as to avoid breakage of the cable.
14. The apparatus according to claim 1, wherein the input reception unit also receives an input such as selecting the condition. The action determination unit determines the target posture based on the reference posture and the conditions received by the input reception unit.
15. The apparatus according to claim 14, wherein the input reception unit receives the following inputs as the conditions: an input for selecting one axis of the tool coordinate system representing the posture, and an input for selecting an axis corresponding to the one axis in the reference coordinate system representing the reference posture, the action determination unit determines the following posture as the target posture: the posture represented by the tool coordinate system when the one axis is aligned with the corresponding axis received by the input reception unit.
16. The apparatus according to claim 1, wherein the input reception unit further receives the following input: an input of an offset amount by which the position of the robot that has moved by the direct teaching function is displaced from the current position when the robot moves from the current posture to the target posture, the action determination unit determines the position displaced by the offset amount from the current position as the target position of the robot.
17. The apparatus according to claim 1, wherein the reference posture includes at least one of the following postures: the posture pre-stored in the memory; the posture represented by the user coordinate system, where the user coordinate system is set at an arbitrary position of the robot coordinate system set for the robot; the posture specified in the action program of the robot.
18. The apparatus according to claim 1, wherein the input reception unit further receives the following input: an input of an action start instruction for the robot, the apparatus further includes: an action execution unit that causes the robot that has moved by the direct teaching function to move from the current posture to the target posture according to the action start instruction received by the input reception unit.
19. A device for adjusting the posture of a robot during the teaching of the robot, characterized in that, The apparatus includes: an input reception unit that receives an input of a posture registration instruction for registering a reference posture as a basis for the adjustment in a database; and a reference posture setting unit that registers the current posture of the robot as a new reference posture in the database according to the posture registration instruction received by the input reception unit.
20. The apparatus according to claim 19, wherein the input reception unit further receives the following input: an input for selecting one of the multiple reference postures registered in the database, the apparatus further includes: an action determination unit that determines the adjusted target posture based on the one reference posture received by the input reception unit and the conditions for making the adjustment with the reference posture as a basis.
21. The apparatus according to claim 19, wherein the apparatus further includes: An image generation unit that generates image data in which an object model is arranged in a virtual space, where the virtual space is defined by a control coordinate system for controlling the operation of the robot, and the object model is obtained by modeling at least one of the robot and environmental objects existing around the robot; and A coordinate system setting unit that sets a reference coordinate system for a model component of the object model displayed in the image data, The input reception unit also receives an input such as selecting the model component, The coordinate system setting unit sets the reference coordinate system for the model component received by the input reception unit according to preset setting conditions, The reference posture setting unit also registers the posture represented by the reference coordinate system set by the coordinate system setting unit as a new reference posture in the database.
22. The apparatus according to claim 21, wherein The model component includes a surface model obtained by modeling a surface of the robot or the environmental object, The setting condition includes a condition of setting one axis of the reference coordinate system to be parallel to the normal direction of the surface model, When the input reception unit receives an input of selecting the surface model as the model component, the coordinate system setting unit sets the reference coordinate system for the surface model according to the setting condition so that the one axis is parallel to the normal direction.
23. The apparatus according to claim 21, wherein The image generation unit displays the reference coordinate system set by the coordinate system setting unit in the image data.
24. A method for adjusting the posture of a robot during teaching of the robot, characterized in that The processor performs the following operations: Execute a direct teaching function, which means that the robot moves according to the operating force applied to the robot; In order to adjust the posture of the robot that has moved through the direct teaching function, receive an input such as selecting a reference posture as a basis for the adjustment; Determine the target posture after the adjustment according to the received reference posture and the conditions for making the adjustment based on the reference posture.
25. A method for adjusting the posture of a robot during teaching of the robot, characterized in that The processor performs the following operations: Receive an input of a posture registration instruction for registering a reference posture as a basis for the adjustment in a database; According to the received posture registration instruction, register the current posture of the robot as a new reference posture in the database.
26. A computer program, characterized in that Cause the processor to execute the method according to claim 24 or 25.
Citation Information
Patent Citations
Robot controller
JP2000024968A
Teaching device for robot
JP2009066738A