Origin Reset Device

By generating a reset trajectory tree through the origin reset device, the process of resetting the robot from multiple work positions to the origin is simplified, solving the problem of complex and time-consuming reset procedures in the existing technology, and realizing efficient and fast origin reset.

CN115003459BActive Publication Date: 2025-12-02MITSUBISHI ELECTRIC CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202080092758.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-01-30
Publication Date
2025-12-02
Estimated Expiration
2040-01-30

AI Technical Summary

Technical Problem

Existing technologies require industrial robots to undergo numerous unnecessary movements when resetting them from multiple work positions to their origin, resulting in complex and time-consuming reset procedures, which are particularly difficult to perform efficiently in multiple work scenarios.

Method used

An origin reset device is used, which generates a reset trajectory tree through a movement position extraction unit, an origin setting unit, a reset trajectory tree setting unit, and a corresponding node determination unit, and enables the robot to efficiently reset to the origin according to the set movement conditions.

Benefits of technology

It reduces the robot's movement when resetting from a non-origin position, simplifies the reset procedure, improves reset efficiency, and enables a rapid response to reset requests within seconds.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115003459B_ABST
    Figure CN115003459B_ABST
Patent Text Reader

Abstract

This invention provides an origin reset device that allows for simple and efficient pre-preparation for resetting a robot to its origin. In the origin reset device, a movement position extraction unit extracts multiple movement positions from the robot program. An origin setting unit sets any one of the multiple movement positions as the origin. A reset trajectory tree setting unit sets the reset trajectory tree. The reset trajectory tree contains multiple nodes. Multiple movement positions are assigned to each of the multiple nodes. The reset trajectory tree contains branches connecting child nodes and their parent nodes. Movement conditions are set on each branch. The origin is assigned to the root node. A corresponding node determination unit determines the corresponding node assigned a movement position corresponding to the robot's current position. The origin reset movement unit moves the robot to reset it to the origin according to the movement conditions set on the branches in the reset trajectory tree that connect the corresponding nodes and their parent nodes.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to an origin reset device for resetting a robot to its origin. Background Technology

[0002] An industrial robot has an initial position, also known as the origin. To reset the industrial robot from its current position to the origin, the robot is moved from the origin back to its current position by reversing the order of the intermediate movement points. The technique described in Patent Document 1 is one example.

[0003] Patent Document 1: Japanese Patent Application Publication No. 2000-061870 Summary of the Invention

[0004] The method described above for resetting an industrial robot to its origin is suitable for situations where the industrial robot is performing a single task repeatedly, but problems may arise when the industrial robot is performing multiple tasks.

[0005] For example, consider the following scenario: an industrial robot repeatedly performs a series of tasks consisting of picking up and assembling parts. In this case, the industrial robot does not return to the origin but continuously performs the tasks of picking up and assembling parts. Furthermore, after performing a series of tasks, the industrial robot does not return to the origin but performs another series of tasks. Therefore, if the assembly task fails, during the period from the current position to the origin, the robot either passes through the locations it must have traversed during the picking up of parts in reverse order, or it passes through the locations it must have traversed during the repeated series of tasks in reverse order. Thus, the number of locations the industrial robot must traverse during the period from its current position to the origin increases.

[0006] In addition, we also considered programming the industrial robot to move from any position other than the origin back to the origin, but this programming task is not simple.

[0007] These problems typically occur with devices that have multiple drive units, in addition to industrial robots.

[0008] This invention was made in view of these problems. The object of this invention is to provide an origin reset device that enables simple pre-preparation for efficiently resetting a robot to its origin.

[0009] The origin reset device has a moving position extraction unit, an origin setting unit, a reset trajectory tree setting unit, a corresponding node determination unit, and an origin reset moving unit.

[0010] The movement position extraction unit extracts multiple movement positions from the robot program.

[0011] The origin setting department sets any one of the multiple moving positions as the origin.

[0012] The reset trajectory tree setting unit sets the reset trajectory tree. The reset trajectory tree contains multiple nodes. Multiple movement positions are assigned to each of the multiple nodes. The reset trajectory tree contains branches connecting the child nodes and parent nodes of the multiple nodes to each other. The movement conditions for moving the robot from the movement position assigned to the child node to the movement position assigned to the parent node of the child node are set on each branch. An origin is assigned to the root node contained in the multiple nodes.

[0013] The corresponding node determination unit determines the corresponding node that is assigned a movement position corresponding to the robot's current position.

[0014] The origin reset movement unit moves the robot to the origin according to the movement conditions set in the reset trajectory tree, which connects the corresponding nodes and their parent nodes to each other.

[0015] The effects of the invention

[0016] According to the present invention, the number of movement points traversed when resetting the robot from a position other than the origin to the origin can be reduced. Furthermore, for all movement points other than the origin, it is not necessary to create a separate program for each movement point used to move the robot from a position other than the origin to the origin. Thus, pre-preparation for efficiently resetting the robot body to the origin can be simplified.

[0017] The objectives, features, methods, and advantages of the present invention will become more apparent from the following detailed description and accompanying drawings. Attached Figure Description

[0018] Figure 1 This is a schematic perspective view of a robot controlled by the origin reset device of Embodiment 1.

[0019] Figure 2 This is a diagram showing an example of a robot program referenced by the origin reset device of Implementation 1.

[0020] Figure 3 This is a block diagram schematically illustrating the origin reset device of Embodiment 1.

[0021] Figure 4This is a diagram showing an example of an origin reset tree generated by the origin reset device of Embodiment 1.

[0022] Figure 5 This is a schematic diagram illustrating an example of a setting screen used when setting the reset trajectory tree by the origin reset device of Embodiment 1.

[0023] Figure 6 This is a flowchart illustrating the process of origin reset processing performed by the origin reset device of Embodiment 1.

[0024] Figure 7 This diagram illustrates an example of the input used when the origin reset device of Implementation 1 sets the reset trajectory tree.

[0025] Figure 8 This diagram illustrates an example of the input used when the origin reset device of Implementation 1 sets the reset trajectory tree.

[0026] Figure 9 This is a block diagram schematically illustrating a computer capable of constituting the origin reset device of Embodiment 1.

[0027] Figure 10 This is a block diagram schematically illustrating the origin reset device of Embodiment 2.

[0028] Figure 11 This is a flowchart illustrating an example of an origin reset procedure set by the origin reset device of Embodiment 2.

[0029] Figure 12 This is a block diagram schematically illustrating the origin reset device of Embodiment 3.

[0030] Figure 13 This is a flowchart illustrating an example of the origin reset procedure set by the origin reset device of Embodiment 3.

[0031] Figure 14 This is a flowchart illustrating an example of the origin reset procedure set by the origin reset device of Embodiment 3.

[0032] Figure 15 This is a block diagram schematically illustrating the origin reset device of Embodiment 4.

[0033] Figure 16 This is a block diagram schematically illustrating the origin reset device of Embodiment 5. Detailed Implementation

[0034] 1 Implementation Method 1

[0035] 1.1 Robot

[0036] Figure 1This is a schematic perspective view of a robot controlled by the origin reset device of Embodiment 1.

[0037] Figure 1 The robot 100 shown in the diagram is an industrial robot. Robot 100 can be a device that has multiple drive units found in production equipment other than industrial robots.

[0038] Robot 100 Figure 1 As shown in the figure, it has a robot body 111, a robot hand 112, a robot controller 113, and a cable 114.

[0039] The robot body 111 has multiple motors and multiple links. Additionally, the robot body 111 has a wrist 121. The wrist 121 is located at the front end of the robot body 111. A robot hand 112 is mounted on the wrist 121. The robot body 111 has a tool center point 122. The tool center point 122 is the position where the fingertips of the robot hand 112 are positioned for operation.

[0040] Cable 114 electrically connects robot controller 113 to robot body 111. Thus, robot controller 113 can control robot body 111.

[0041] The position and orientation of robot 100 are represented by the angles of the rotation axes of the multiple motors on the robot body 111 and the 3D position and orientation of the tool center point 122.

[0042] The robot 100 can be installed in the devices of the production equipment. In addition to the robot 100, the devices of the production equipment also include a drive unit, sensors, and a controller for controlling them.

[0043] 1.2 Robot Program

[0044] Figure 2 This is a diagram showing an example of a robot program referenced by the origin reset device of Implementation 1.

[0045] Figure 2 The robot program P shown includes a set of teaching positions P1 and the robot program body P2.

[0046] The set of teaching positions, P1, is described at the bottom of the robot program P. The main body of the robot program, P2, is described at the top of the robot program P.

[0047] The set of teaching locations P1 contains teaching locations Phome, P1, P2, P3(1) and P3(2). The teaching locations Phome, P1, P2, P3(1) and P3(2) have values ​​(300, 0, 450, 180, 0, 0), (500, 200, 20, 180, 0, 30), (500, -150, 15, 180, 0, 15), (400, -350, 15, 180, 0, 0) and (400, -320, 15, 180, 0, 0) respectively.

[0048] The teaching positions Phome, P1, P2, P3(1), and P3(2) specify the position and orientation of the robot 100. Each teaching position is represented using various representation methods. For example, each teaching position is represented using a construct that can be used in programming languages ​​such as C. When the position and orientation of the robot 100 is represented by the angles of the rotation axes of multiple motors, each teaching position is represented by a construct formed by summing the angles of the rotation axes of multiple motors. When the position and orientation of the robot 100 is represented by the 3D position and orientation of the tool center point 122, each teaching position is represented by a construct formed by summing additional information that can uniquely determine the position and orientation of the tool center point 122 and the orientation of the robot body 111. The additional information includes the position of the elbow, multiple rotation information of rotation axes that can rotate greater than or equal to 360°, etc. Figure 2 In the robot program P shown, each taught position is represented by a construct formed by summarizing the position and orientation of the tool center point 122 and additional information. However, in Figure 2 The robot program P shown describes the position and orientation of the tool center point 122 that constitutes each teaching position, but for convenience, the additional information constituting each teaching position is not described above.

[0049] Teaching positions P3(1) and P3(2) are the two elements that constitute the permutation P3. Teaching positions P3(1) and P3(2) are identified by indices consisting of the numerical values ​​“1” and “2” written in parentheses.

[0050] The teaching positions Phome, P1, P2, P3(1) and P3(2) are preferably not hard-coded into the robot program body P2, but are managed in a state detached from the robot program body P2. As a result, it is possible to suppress the operation of correcting the robot program body P2 when the teaching positions Phome, P1, P2, P3(1) and P3(2) are set by physical adjustment in order to absorb the mechanical errors of the robot body 111.

[0051] The main body of the robot program P2 includes the movement commands “Mov Phome”, “Mov P1, -50”, “Mvs P1”, “Mvs P1, -50”, “Mov P2, -50”, “Mvs P2” and “Mvs P2, -50”, the auxiliary commands “HandOpen 1”, “HandClose1” and “GoTo*PICK”, the labels “*INITIAL”, “*PICK” and “*PUT”, and the comment “ / / ”.

[0052] The movement commands “Mov Phome”, “Mov P1, -50”, “Mvs P1”, “Mvs P1, -50”, “Mov P2, -50”, “Mvs P2”, and “Mvs P2, -50” are respectively located on lines 2, 6, 7, 9, 12, 13, and 15 of the robot program body P2. The auxiliary command “HandOpen 1” is located on lines 3 and 14 of the robot program body P2. The auxiliary command “HandClose 1” is located on line 8 of the robot program body P2. The auxiliary command “GoTo*PICK” is located on line 16 of the robot program body P2. The labels “*INITIAL”, “*PICK”, and “*PUT” are located on lines 1, 5, and 11 of the robot program body P2, respectively. The comment “ / / ” is located on lines 4 and 10 of the robot program body P2.

[0053] The movement commands “Mov Phome”, “Mov P1, -50”, “Mvs P1”, “Mvs P1, -50”, “Mov P2, -50”, “Mvs P2”, and “Mvs P2, -50” are commands that cause robot 100 to move.

[0054] The movement commands “Mov Phome”, “Mov P1, -50”, “Mvs P1”, “Mvs P1, -50”, “Mov P2, -50”, “Mvs P2”, and “Mvs P2, -50” respectively contain the movement command categories “Mov”, “Mov”, “Mvs”, “Mvs”, “Mov”, “Mvs”, and “Mvs”, and respectively contain the target locations “Phome”, “P1, -50”, “P1”, “P1, -50”, “P2, -50”, “P2”, and “P2, -50”.

[0055] The movement command categories "Mov" and "Mvs" specify the movement method for moving robot 100. The movement command category "Mov" specifies the movement method for rotating the motors of robot body 111 in a trapezoidal speed pattern. According to the movement command category "Mov", robot 100 can move in the shortest possible time. The movement command category "Mvs" specifies the movement method for moving tool center point 122 along a straight line.

[0056] The target positions “Phome”, “P1, -50”, “P1”, “P2, -50” and “P2” specify the position and orientation of robot 100 after it moves.

[0057] The target locations “Phome”, “P1, -50”, “P1”, “P2, -50” and “P2” respectively contain the teaching locations Phome, P1, P1, P2 and P2. The target locations “P1, -50” and “P2, -50” respectively contain the target location change information “, -50” and “, -50”.

[0058] The target locations “Phome”, “P1” and “P2” are the same as the teaching locations Phome, P1 and P2, respectively.

[0059] The target location change information ", -50" contained in the target locations "P1, -50" and "P2, -50" is recorded after the teaching locations P1 and P2, respectively.

[0060] The target position change information indicates that the target position is changed from the teaching position described before the target position change information by a distance determined by the target position change information, in the direction determined by the target position change information. For example, the target position change information ",-50" described after the teaching position P1 indicates that the target position is changed from the teaching position P1 to the proximal side by 50 mm.

[0061] The auxiliary commands “HandOpen 1” and “HandClose 1” are commands that open and close the robot hand 112.

[0062] The auxiliary commands “HandOpen 1” and “HandClose 1” contain the auxiliary command categories “HandOpen” and “HandClose”, respectively, and contain the robot hand numbers “1” and “1”, respectively.

[0063] The auxiliary command categories "HandOpen" and "HandClose" specify the type of opening and closing that causes the robot hand 112 to open or close. The auxiliary command category "HandOpen" specifies that the robot hand 112 should be opened. The auxiliary command category "HandClose" specifies that the robot hand 112 should be closed.

[0064] The robot hand number is used to assign the opening and closing robot hand 112. The robot hand number "1" is used to assign the robot hand 112 with robot hand number "1".

[0065] The helper command "GoTo*PICK" contains the helper command category "GoTo" and the jump destination "*PICK". The tags "*INITIAL", "*PICK", and "*PUT" are strings that begin with the character "*".

[0066] The auxiliary command "GoTo*PICK" is a command that moves the execution point of robot program P to the 5th line, which contains the label "*PICK" that matches the jump destination "*PICK".

[0067] The comment " / / " is a line break inserted to improve the readability of the robot program P.

[0068] Figure 2 The robot program P shown can be modified into a more complex robot program. A more complex robot program may include, in addition to the aforementioned types of movement commands, control statements, subroutine calls, and various auxiliary commands, mounted on the robot controller 113. Control statements include If statements, For statements, etc. Various auxiliary commands include commands for communicating with other instruments, etc.

[0069] 1.3 Request to the origin reset device

[0070] In the past, Robot 100 was mostly installed in production lines, logistics lines, etc., to repeatedly perform the same task.

[0071] However, the performance of robot 100 and the sensors attached to it has been continuously improving recently. Therefore, robot 100 has begun to perform various tasks. For example, robot 100 may perform multiple tasks while changing the object and content of the task. Additionally, robot 100 may continuously perform multiple tasks across multiple processes.

[0072] When robot 100 performs multiple tasks, the origin reset procedure executed when returning robot 100 to its origin is generalized across multiple tasks, independent of the task procedures executed when robot 100 performs multiple tasks. However, when robot 100 performs multiple tasks, the number of taught positions to robot 100 increases accordingly with the number of tasks performed by robot 100. Therefore, when robot 100 performs multiple tasks, the number of tasks required to create an origin reset procedure for all taught positions increases. Consequently, creating an origin reset procedure becomes difficult.

[0073] Furthermore, in the production environment, production equipment is frequently restarted by reconnecting its power supply. Therefore, it is difficult to reverse-execute a work procedure containing if statements based on the complete execution history of the program stored in volatile memory or similar materials. Therefore, it is desirable to reset the robot 100 to its origin based on information stored in non-volatile memory and information indicating the state of the production equipment, including the position and orientation of the robot 100.

[0074] As a method for resetting robot 100 to its origin based on information representing the state of the production equipment, the following approach is considered: dividing the space to which the robot 100's position and orientation may belong into multiple regions, and defining the movement commands required to reset robot 100 to its origin when the robot 100's position and orientation belong to each of the multiple regions. In this approach, the position and orientation of the robot 100 are determined using the position and orientation of the tool center point 122. However, with this approach, it is often impossible to adequately verify whether the robot body 111 can be properly reset to its origin. This is because each region is a 3D space. Furthermore, with this approach, as a result of resetting robot body 111 to its origin when the space to which the robot 100's position and orientation may belong is not properly divided into multiple regions, sometimes robot body 111 may collide with the environment, causing damage to the production equipment.

[0075] One known method for resetting robot 100 to its origin is to effectively use 3D simulation to move robot 100 along a generated path. However, this method requires significant computational resources to reset robot 100 to its origin. Furthermore, the time required to reset robot 100 to its origin can be several minutes in exceptional circumstances not anticipated when creating the origin reset procedure, but only a few seconds in typical circumstances. For example, if production equipment stops due to a problem with a supplied component during manufacturing, the time required to reset robot 100 to its origin is several seconds. Therefore, in typical cases, the time required to reset robot 100 to its origin using this method of effectively using 3D simulation becomes excessively long. Therefore, it is desirable to have a pre-defined origin reset procedure that allows the process of resetting robot 100 to its origin to begin immediately when it is necessary.

[0076] Below, we disclose an origin reset device capable of responding to the above request.

[0077] 1.4 Origin Reset Device

[0078] Figure 3 This is a block diagram schematically illustrating the origin reset device of Embodiment 1.

[0079] Figure 3 The origin reset device 1 of Embodiment 1 shown in the figure has a reset trajectory tree generation unit 11 and an origin reset command unit 12.

[0080] The reset trajectory tree generation unit 11 generates a reset trajectory tree T based on the robot program P.

[0081] The generated reset trajectory tree T specifies the next moving position that the robot 100 must move to in order to reset each of the multiple moving positions to the origin. The specified next target position is a moving position other than the multiple moving positions. Additionally, the reset trajectory tree T specifies the movement conditions for moving the robot 100 from each moving position to the next moving position. The specified movement condition is a single condition. The data construction of the reset trajectory tree T is arbitrary, as long as these requirements are met.

[0082] The origin reset command unit 12 commands robot 100 to reset to the origin according to the generated reset trajectory tree T.

[0083] 1.5 Origin Reset Tree

[0084] Figure 4This is a diagram showing an example of a reset trajectory tree generated by the origin reset device of Implementation 1.

[0085] Figure 4 The reset trajectory tree T shown has a tree structure.

[0086] The reset trajectory tree T contains multiple nodes N0, N1, N2, N3, N4, N5, N6 and N7.

[0087] Multiple mobile positions “Phome”, “P1, -50”, “P1”, “P3(1), -50”, “P3(1)”, “P2”, “P3(2), -50” and “P3(2)” are assigned to multiple nodes N0, N1, N2, N3, N4, N5, N6 and N7 respectively.

[0088] Multiple nodes N0, N1, N2, N3, N4, N5, N6, and N7 contain the root node N0. Multiple move positions “Phome”, “P1, -50”, “P1”, “P3(1), -50”, “P3(1)”, “P2”, “P3(2), -50”, and “P3(2)” contain the origin “Phome”. The origin “Phome” is assigned to the root node N0.

[0089] The reset trajectory tree T contains multiple branches B1, B2, B3, B4, B5, B6 and B7.

[0090] Branch B1 connects child node N1 and its parent node N0. Branch B1 is configured with a movement condition "Mov" that causes robot 100 to move from the movement position "P1, -50" assigned to child node N1 to the movement position "Phome" assigned to parent node N0. Branch B2 connects child node N2 and its parent node N1. Branch B2 is configured with a movement condition "Mvs" that causes robot 100 to move from the movement position "P1" assigned to child node N2 to the movement position "P1, -50" assigned to parent node N1. Branch B3 connects child node N5 and its parent node N0. Branch B3 is configured with a movement condition "Mov" that causes robot 100 to move from the movement position "P2" assigned to child node N5 to the movement position "Phome" assigned to parent node N0. Branch B4 connects child node N3 and its parent node N5. Branch B4 is configured with the movement condition "Mov / H2close" that causes robot 100 to move from the movement position "P3(1), -50" assigned to child node N3 to the movement position "P2" assigned to parent node N5. Branch B5 connects child node N4 and its parent node N3 to each other. Branch B5 is configured with the movement condition "Mvs / H2 close" that causes robot 100 to move from the movement position "P3(1)" assigned to child node N4 to the movement position "P3(1), -50" assigned to parent node N3. Branch B6 connects child node N6 and its parent node N5 to each other. Branch B6 is configured with the movement condition "Mov / Y1000 Off / X1000 On" that causes robot 100 to move from the movement position "P3(2), -50" assigned to child node N6 to the movement position "P2" assigned to parent node N5. Branch B7 connects child node N7 and parent node N6 of child node N7 to each other. Branch B7 is set with the movement condition "Mvs / Y1000 Off / X1000 On" that causes robot 100 to move from the movement position "P3(2)" assigned to child node N7 to the movement position "P3(2), -50" assigned to parent node N6.

[0091] In the pair of child node N1 and parent node N0, child node N1 is relatively far from root node N0, and parent node N0 is relatively close to root node N0. The same applies to the pairs of child node N2 and parent node N1, child node N5 and parent node N0, child node N3 and parent node N5, child node N4 and parent node N3, child node N6 and parent node N5, and child node N7 and parent node N6.

[0092] The number of parent nodes connected to child nodes other than the root node N0 is one. However, the number of child nodes connected to the parent node is not limited to one; sometimes it is two or more.

[0093] The movement conditions “Mov”, “Mvs”, “Mov / H2 close”, “Mvs / H2 close”, “Mov / Y1000 Off / X1000 On”, and “Mvs / Y1000 Off / X1000 On” respectively contain the movement command categories “Mov”, “Mvs”, “Mov”, “Mvs”, “Mov”, and “Mvs”. The movement conditions “Mov / H2 close”, “Mvs / H2 close”, “Mov / Y1000Off / X1000On”, and “Mvs / Y1000 Off / X1000 On” respectively contain the signal conditions “H2close”, “H2 close”, “Y1000 Off / X1000 On”, and “Y1000 Off / X1000On”.

[0094] The movement command categories “Mov” and “Mvs” constitute movement commands that can be executed by the robot controller 113. Each movement command category can be described in the robot program P. When a movement command requires an independent variable other than the target position, the movement command category can include that independent variable.

[0095] The signal conditions “H2 close”, “H2 close”, “Y1000 Off / X1000 On”, and “Y1000 Off / X1000 On” are respectively listed after the forward slash “ / ” following the movement command categories “Mov”, “Mvs”, “Mov”, and “Mov”. If the movement conditions do not include signal conditions, neither the forward slash “ / ” nor the signal conditions are listed after the movement command category.

[0096] The movement command categories “Mov” and “Mvs” specify the movement method for making robot 100 move.

[0097] The signal conditions “H2 close” and “Y1000 Off / X1000 On” represent the signal conditions that must be met for the robot 100 to begin moving. These conditions are related to the output signal or the acknowledged signal. The output signal or the acknowledged signal is a signal managed by the robot controller 113, but it can also be a signal managed by a controller other than the robot controller 113. A controller other than the robot controller 113 could be, for example, a controller that controls the instruments in a production device having the robot 100.

[0098] The signal condition "H2 close" indicates that the robot hand 112 with robot hand number "2" has been closed. The signal condition "Y1000 Off / X1000 On" indicates that the instruction to turn off the signal with signal number "Y1000" output by the robot controller 113 has been output to the robot controller 113, and the signal with signal number "X1000" input to the robot controller 113 is not turned on.

[0099] The reset trajectory tree T can have the same characteristics as... Figure 4 The tree structure of the reset trajectory tree T shown is different from the tree structure shown.

[0100] 1.6 Origin Reset Tree Generation Unit

[0101] Reset trajectory tree generation unit 11 as follows Figure 3 As shown in the figure, it includes a moving position extraction unit 13, an origin setting unit 14, and a reset trajectory tree setting unit 15.

[0102] The movement position extraction unit 13 extracts multiple movement positions from the robot program P. For example, in the robot program P is... Figure 2 In the case of the robot program P shown, the movement position extraction unit 13 extracts five movement positions from the robot program P: "Phome", "P1", "P1, -50", "P2", and "P2, -50".

[0103] The extracted movement position is the movement position recorded in robot program P. The extracted movement position includes the target position contained in robot program body P2. This target position includes the same position as the taught position, i.e., the target position, and the target position after changing from the taught position, calculated by executing robot program body P2.

[0104] The motion position extraction unit 13 can extract all taught positions contained in the robot program P. In this case, the extracted motion positions may include taught positions that are not described in the robot program body P2.

[0105] The extracted multiple movement positions become candidates for multiple movement positions to be assigned to multiple nodes contained in the reset trajectory tree T.

[0106] The origin setting unit 14 sets any one of the extracted multiple movement positions as the origin. At this time, the origin setting unit 14 automatically sets the teaching position with the same name as the pre-set teaching position as the origin. The origin setting unit 14 can prompt the operator with candidate movement positions that will become the origin, allowing the operator to select the origin from these candidate positions. The prompting to the operator and the selection by the operator can be performed through a common interface provided by a computer.

[0107] The reset trajectory tree setting unit 15 sets the reset trajectory tree T. The reset trajectory tree setting unit 15 then performs a first process, which generates a reset trajectory tree T including a root node with a set origin. After performing the first process, the reset trajectory tree setting unit 15 adds child nodes connected to the parent node and branches connecting the child nodes and the parent node to each other to the generated reset trajectory tree T. It assigns movement positions to the added child nodes and performs a second process, setting movement conditions on the added branches a required number of times.

[0108] 1.7 The settings screen used when setting the reset trajectory tree

[0109] Figure 5 This is a schematic diagram illustrating an example of a setting screen used when setting the reset trajectory tree by the origin reset device of Embodiment 1.

[0110] By Figure 5 The settings screen S shown in the middle provides a graphical user interface (GUI).

[0111] Setting screen S indicates adding to the reset track tree T. Figure 4 The diagram shows node N7 and branch B7. A movement position "P3(2)" is assigned to node N7, and the second processing screen is executed when the signal condition "Mvs / Y1000 Off / X1000 On" is set in branch B7. During this second processing, the reset trajectory tree T contains... Figure 4 The diagram shows nodes N0, N1, N2, N3, N4, N5, and N6, as well as branches B1, B2, B3, B4, B5, and B6. Additionally, nodes N0, N1, N2, N3, N4, N5, and N6 are assigned the movement positions “Phome”, “P1, -50”, “P1”, “P3(1), -50”, “P3(1)”, “P2”, and “P3(2), -50”, respectively. Furthermore, branches B1, B2, B3, B4, B5, and B6 are assigned the signal conditions “Mov”, “Mvs”, “Mov”, “Mov / H2close”, “Mvs / H2close”, and “Mov / Y1000 Off / X1000 On”, respectively.

[0112] The reset trajectory tree setting unit 15 performs the second processing according to the operation performed by the operator referring to the setting screen S.

[0113] The settings screen S includes a tree-view window W1, a command selection window W2, a signal condition window W3, a movement position overview window W4, and an additional button B.

[0114] The tree-view window W1 displays the reset trajectory tree T. Additionally, the tree-view window W1 is used to select the parent node N6 connected to the added child node N7. The selected parent node N6 is highlighted.

[0115] Command selection window W2 is used to set the movement command category "Mvs" included in the movement condition "Mvs / Y1000 Off / X1000 On" set in the additional branch B7. Command selection window W2 displays multiple candidate movement command categories C2 at this time. The reset track tree setting unit 15 sets the movement command category "Mvs" selected from the multiple candidate movement command categories C2 according to the selection operation performed by the operator referring to the displayed multiple candidate movement command categories C2. The selected movement command category "Mvs" is highlighted. If the multiple candidate movement command categories C2 include candidates for movement command categories requiring setting items other than the target position, the setting screen S may include display elements used to add that setting item. The reset track tree setting unit 15 can set the directly input movement command category "Mvs" according to the direct input operation performed by the operator.

[0116] The signal condition window W3 is used to set the signal condition "Y1000 Off / X1000 On" included in the movement condition "Mvs / Y1000 Off / X1000 On" set in branch B7. The signal condition window W3 displays candidate C3s for multiple signal conditions. The reset track tree setting unit 15 sets the signal condition "Y1000 Off / X1000 On" selected from the candidate C3s of the multiple signal conditions by the operator's selection operation. The selected signal condition "Y1000 Off / X1000 On" is highlighted. The signal condition window W3 is used to set signal conditions related to the output signal or the confirmed signal. The reset track tree setting unit 15 can also set the directly input signal condition "Y1000 Off / X1000 On" according to the direct input operation performed by the operator.

[0117] The movement position overview window W4 is used to set the movement position "P3(2)" assigned to the child node N7. The movement position overview window W4 displays the candidate movement positions C4 extracted by the movement position extraction unit 13. The trajectory tree setting unit 15 sets the movement position "P3(2)" selected from the candidate movement positions C4 according to the selection operation performed by the operator referring to the candidate movement positions C4. The selected movement position "P3(2)" is highlighted. The movement position overview window W4 displays multiple states D4, multiple line numbers E4, and multiple commands F4. The displayed multiple states D4 represent the states of the candidate movement positions C4. The displayed multiple line numbers E4 represent the line numbers in the robot program body P2 that record the candidate movement positions C4. The displayed multiple commands F4 represent the movement command categories included in the movement commands that include the candidate movement positions C4 as target positions. The candidate state of the move position becomes "origin" when the move position is the origin. The candidate state of the move position becomes "completed" when the move position has been assigned. In addition, the candidate state of the move position becomes "incomplete" when the move position has not been assigned. The trajectory tree setting unit 15 can set the directly input move position "P3(2)" according to the direct input operation performed by the operator.

[0118] The operator presses the add button B, thereby adding child nodes N7 and others, which are depicted in the area surrounded by dashed lines inside the tree-shaped window W1, to the reset trajectory tree T.

[0119] 1.8 Origin Reset Command Section

[0120] Origin reset command unit 12 as follows Figure 3 As shown in the figure, it has an origin reset command receiving unit 16, a corresponding node determination unit 17, and an origin reset moving unit 18.

[0121] The origin reset command receiving unit 16 receives the origin reset command. The origin reset command is sent from an external source. The origin reset command is sent to the origin reset command unit 12, for example, through input by the operator or through communication with a controller that controls the device having the robot 100.

[0122] The origin reset command receiving unit 16 is linked to receive the origin reset command and output the corresponding node determination request to the corresponding node determination unit 17.

[0123] The corresponding node determination unit 17 determines the corresponding nodes included in the set reset trajectory tree T that are assigned movement positions corresponding to the current position of the robot 100. The corresponding node determination unit 17 determines the corresponding node in conjunction with receiving a sent corresponding node determination request. At this time, the corresponding node determination unit 17 obtains the current position of the robot 100 from the robot controller 113. Furthermore, the corresponding node determination unit 17 compares the obtained current position of the robot 100 with the movement positions assigned to each node included in the reset trajectory tree T. Additionally, if the difference between the current position and the movement position of the robot 100 is less than or equal to a preset value, the corresponding node determination unit 17 determines that the node assigned that movement position is a corresponding node. The preset value is, for example, the sum of the distance the robot body 111 moves until it stops due to mechanical braking after the supply of drive power to the motor of the robot body 111 is stopped, and the required margin.

[0124] The origin reset movement unit 18 moves the robot 100 to the origin according to the movement commands included in the movement conditions set in the set reset trajectory tree T, which connect the corresponding node and its parent node to each other. At this time, the origin reset movement unit 18 starts moving the robot 100 according to the movement conditions set in the branch if the signal conditions are met, but does not start moving the robot 100 according to the movement conditions if the signal conditions set in the branch are not met.

[0125] Figure 6 This is a flowchart illustrating the process of origin reset processing performed by the origin reset device of Embodiment 1.

[0126] When performing origin reset processing, the origin reset moving unit 18 performs the following: Figure 6 The steps S101 to S107 are shown in the diagram.

[0127] In step S101, the origin reset movement unit 18 acquires the movement position of the parent node assigned to the corresponding node. Additionally, the origin reset movement unit 18 acquires the movement conditions set in the branches connecting the corresponding node and its parent node. In the reset trajectory tree T... Figure 4 The reset trajectory tree T shown in the figure has the following corresponding nodes: Figure 4 In the case of node N7 in the diagram, the obtained move position is "P3(2), -50", and the obtained move condition is "Mvs / Y1000Off / X1000 On".

[0128] Next, in step S102, the origin reset movement unit 18 determines whether the corresponding node is the root node N0. If the corresponding node is determined to be the root node N0, the robot 100 has already reset to the origin, and therefore the origin reset process ends. On the other hand, if the corresponding node is determined not to be the root node N0, step 103 is executed. When resetting the trajectory tree T... Figure 4 The reset trajectory tree T shown has the following corresponding nodes: Figure 4 In the case of node N7 shown, node N7 is not the root node N0, so step S103 is executed.

[0129] Next, in step S103, the origin reset movement unit 18 determines whether the movement conditions set for the branches connecting the corresponding node and its parent node include a signal condition. If it is determined that a signal condition is included, then steps S104 and S105 are executed sequentially, followed by step S106. If it is determined that a signal condition is not included, steps S104 and S105 are not executed, but step S106 is executed instead. When resetting the trajectory tree T is... Figure 4 The reset trajectory tree T shown has the following corresponding nodes: Figure 4 In the case of node N7, the movement condition “Mvs / Y1000 Off / X1000On” set in branch B7 includes the signal condition “Y1000 Off / X1000 On”, so step S106 is executed after steps S104 and S105 are executed in sequence.

[0130] In step S104, the origin reset device 1 outputs a command to the robot controller 113 to modify the internal variables within the robot controller 113. The modified internal variable is a typical internal variable, which may be an internal variable recorded in a signal output from the robot controller 113 to an external instrument connected to the robot controller 113, or it may not be. If the modified internal variable is an internal variable recorded in a signal, it is an internal variable of a signal whose name is written before the forward slash " / " in the signal condition. In step S104, the origin reset device 1 sends the command essentially only once, confirming whether the robot controller 113 has received the command due to communication errors, etc., but not confirming that the internal variable has actually been modified. The reason for not confirming that the internal variable has actually been modified is that the modified internal variable may be overwritten by other processing within the robot controller 113, making it difficult to confirm that the internal variable has actually been modified. For example, if an internal variable corresponds to a flag used to invoke a series of processes, the state of the modified internal variable is maintained for only a moment, making it difficult to confirm that the internal variable has actually been modified. In Embodiment 1, the internal variable to be changed is set to an internal variable recorded in the signal output from the robot controller 113 to the robot 100. Therefore, in order to set the signal output by the robot controller 113 to a specified state, the origin reset movement unit 18 outputs a command to the robot controller 113 to change the internal variable recorded in that signal. When resetting the trajectory tree T is... Figure 4 The reset trajectory tree T shown in the figure has the following corresponding nodes: Figure 4 In the case of node N7 shown in the diagram, the origin reset movement unit 18 outputs an instruction to the robot controller 113 to change the internal variable recorded in the signal in order to turn off the signal with signal number "Y1000". The instruction output in step S104 can be multiple instructions.

[0131] In step S105, the origin reset device 1 enters a state where the internal variables inside the robot controller 113, which controls the robot 100, are specified, and remains in standby until the specified state of the robot 100 is confirmed. The confirmed internal variable is a general internal variable, which may be an internal variable recorded in a signal input to the robot controller 113 from an external instrument connected to the robot controller 113, or it may not be one. When the confirmed internal variable is an internal variable recorded in a signal input to the robot controller 113 from an external instrument connected to the robot controller 113, the confirmed internal variable is an internal variable recorded in a signal whose signal name is written after the forward slash " / " in the signal conditions. Generally, the time from outputting an action command to the robot 100 to the completion of the robot 100's action is longer than the operation cycle of the robot controller 113. Furthermore, in most cases, the completion of the robot 100's action is confirmed by a position signal or a signal input to the robot controller 113 from an external instrument such as an optical sensor. In Embodiment 1, the confirmed internal variable is set to be an internal variable recorded in a signal input to the robot controller 113 from an external instrument connected to the robot controller 113. Therefore, the origin reset movement unit 18 becomes a state specified by the signal input to the robot controller 113. To confirm that the robot 100 has become a specified state, the internal variables recorded in that signal are also confirmed to be in a specified state. In the reset trajectory tree T... Figure 4 The reset trajectory tree T shown in the figure has the following corresponding nodes: Figure 4 In the case of node N7 shown in the diagram, the origin reset movement unit 18 confirms that the signal with signal number "X1000" is turned on by confirming that the internal variable recorded in the signal is in a specified state. The signal confirmed in step S105 can be a combination of multiple signals.

[0132] When using robot 100, the processing of outputting commands to open and close robot arm 112 and the processing of confirming the opening and closing of robot arm 112 are mostly a series of processes. Therefore, in the signal condition, the signal name describing the internal variable that changes in order to output the command to open and close robot arm 112, and the signal name describing the internal variable that needs to be confirmed in order to confirm the opening and closing of robot arm 112 are summarized and described. The signal condition "H2 close" is an example, omitting the repetitive descriptions included in the signal condition "H2 close / H2 close". However, in the signal condition "H2 close / H2 close", the "H2 close" described before the forward slash " / " is the signal name describing the internal variable that changes in order to output the command to close robot arm 112. In addition, the "H2 close" described after the forward slash " / " in the signal condition "H2 close / H2 close" is the signal name describing the internal variable that needs to be confirmed in order to confirm the closing of robot arm 112. Therefore, in the signal condition "H2 close / H2 close", the two "H2 close" entries before and after the forward slash " / " are the signal names of different signals.

[0133] In step S106, the origin reset movement unit 18 outputs a movement command to the robot controller 113. This movement command includes the movement command category included in the movement conditions set for the branches connecting the corresponding node and its parent node, and the movement position assigned to the parent node of the corresponding node. In the reset trajectory tree T... Figure 4 The reset trajectory tree T shown has the following corresponding nodes: Figure 4 In the case of node N7, the output movement command is the movement command "Mvs P3(2), -50", which contains the movement command category "Mvs" contained in the movement condition "Mvs / Y1000 Off / X1000 On" set in branch B7 and the movement position "P3(2), -50" assigned to node N6.

[0134] Next, in step S107, the origin reset moving unit 18 confirms that the robot 100 moves according to the output moving command.

[0135] From step S101 to step S107, the origin reset movement unit 18 moves the robot body 111 from the movement position assigned to the corresponding node to the movement position assigned to the parent node of the corresponding node, except when it has already been reset to the origin. Then, the origin reset movement unit 18 again moves from step S101 to step S107, thus the parent node of the corresponding node becomes the new corresponding node, and the robot body 111 moves from the movement position assigned to the new corresponding node to the position assigned to the parent node of the new corresponding node, except when it has already been reset to the origin. Thus, the robot 100 moves from the movement position assigned to the corresponding node to the origin assigned to the root node N0. In the reset trajectory tree T is... Figure 4 The reset trajectory tree T shown has the following corresponding nodes: Figure 4 In the case of node N7, robot 100 moves from the movement position "P3(2)" assigned to node N7, through the movement position "P3(2), -50" assigned to node N6, and the movement position "P2" assigned to node N5, until it reaches the origin "Phome" assigned to the root node N0. However, the movement condition "Mov" set in the branch B3 that connects nodes N5 and N0 does not include a signal condition, so when robot 100 moves from the movement position "P2" assigned to node N5 to the origin "Phome" assigned to node N0, steps S104 and S105 are not executed.

[0136] 1.9 Variation Example

[0137] When the teaching positions included in the movement positions of the nodes included in the multiple nodes N0, N1, N2, N3, N4, N5, N6, and N7 are elements constituting the arrangement, the index of the teaching position can be set as a wildcard. For example, the index "2" of the teaching position P3(2) included in the movement position "P3(2), -50" assigned to node N6 can be set as a wildcard. In addition, the index "2" of the teaching position P3(2) included in the movement position "P3(2)" assigned to node N7 can be set as a wildcard. The teaching position with the index set as a wildcard is any teaching position other than the teaching position with the index set to "1" as explicitly stated in the index. However, when the index of the teaching position included in the movement position assigned to the child node and the index of the teaching position included in the movement position assigned to the parent node of the child node are both set as wildcards, and the robot 100 moves from the former movement position to the latter movement position, the former teaching position and the latter teaching position are the same teaching position. When the index of the teaching position included in the movement position assigned to the child node is not set to a wildcard, but the index of the teaching position included in the movement position assigned to the parent node is set to a wildcard, and the robot 100 moves from the former movement position to the latter movement position, the latter teaching position is the teaching position with the smallest index number.

[0138] Figure 7 and Figure 8 This diagram illustrates an example of the input used when the origin reset device of Implementation 1 sets the reset trajectory tree.

[0139] In the reset track tree setting unit 15, instead of using the setting screen S that provides a GUI to set the reset track tree T, other methods can be used to set the reset track tree T. For example, in the reset track tree setting unit 15, one can use... Figure 7 The input I1 or shown Figure 8 The input I2 shown sets the reset trajectory tree T. Figure 7 The input I1 shown in the diagram is a table created by the table calculation software. Figure 8 The input I2 shown in the diagram is text.

[0140] 1.10 Computer constituting the origin reset device

[0141] Figure 9 This is a block diagram schematically illustrating a computer capable of constituting the origin reset device of Embodiment 1.

[0142] Origin reset device 1 can be generated by Figure 9 The computer 1000 shown in the diagram is composed of [something].

[0143] Computer 1000 Figure 9As shown in the figure, it includes a processor 1020, a memory 1022, and a storage device 1024.

[0144] Install program 1040 in storage 1024. Installation of program 1040 can be performed by writing program 1040 read from external recording medium 1060 to storage 1024, or by writing program 1040 received via network 1062 to storage 1024.

[0145] Processor 1020 is a central processing unit (CPU), graphics processing unit (GPU), digital signal processing unit (DSP), etc. Memory 1022 is random access memory (RAM), etc. Storage 1024 is a hard disk drive, solid-state drive, RAM disk, etc. External recording media 1060 is a CD, DVD, Blu-ray disc (BD), Universal Serial Bus (USB) storage, etc.

[0146] Program 1040 is a program used to make computer 1000 operate as origin reset device 1.

[0147] In computer 1000, program 1040, installed in storage 1024, is downloaded to memory 1022, and the downloaded program 1040 is executed by processor 1020. This constitutes the elements of origin reset device 1, and computer 1000 operates as origin reset device 1. All or part of the elements of origin reset device 1 can be constituted by hardware that does not execute programs.

[0148] The memory 1022, storage 1024, and external recording medium 1060 are non-volatile, computer-readable recording media on which the program 1040 is recorded.

[0149] 1.11 Effects of Implementation Method 1

[0150] According to Embodiment 1, the number of movement positions traversed when resetting the robot 100 from a movement position other than the origin to the origin can be reduced. Furthermore, for all movement positions other than the origin, there is no need for separate pre-preparation, such as programming, to reset the robot 100 to the origin for each movement position. Therefore, pre-preparation for efficiently resetting the robot 100 to the origin can be performed simply.

[0151] 2 Implementation Method 2

[0152] Figure 10 This is a block diagram schematically illustrating the origin reset device of Embodiment 2. Figure 11 This is a flowchart illustrating an example of an origin reset procedure set by the origin reset device of Embodiment 2.

[0153] Figure 10 The origin reset device 2 of embodiment 2 shown in the figure is... Figure 3 The origin reset device 1 of Embodiment 1 shown in the figure differs mainly in the following aspects. Regarding aspects not described below, the origin reset device 2 employs the same structure as the origin reset device 1.

[0154] The reset trajectory tree setting unit 15 of the origin reset device 2 is as follows: Figure 10 As shown in the diagram, multiple reset trajectory trees T and T' are set. The first reset trajectory tree T is as follows: Figure 11 As shown in the diagram, this is the same reset trajectory tree T generated by the origin reset device 1, containing the root node N0 assigned the origin Phome. The second reset trajectory tree T' is as follows... Figure 11 As shown in the diagram, this is a reset trajectory tree different from the reset trajectory tree T generated by the origin reset device 1, containing a root node N0' assigned a sub-target position Pkari that is different from the origin Phome. The sub-target position Pkari is the temporary placement position of the workpiece held by the robot arm 112. The reset trajectory tree generation unit 11 repeats the processing of the origin setting unit 14 and the reset trajectory tree setting unit 15, thereby generating multiple reset trajectory trees T and T'.

[0155] Origin reset device 2, as shown Figure 10 As shown in the figure, it also has an origin reset program setting unit 21.

[0156] The origin reset program setting unit 21 sets the origin reset program PRG. At this time, the origin reset program setting unit 21 combines multiple reset trajectory trees T and T' to set the origin reset program PRG.

[0157] The set origin reset procedure PRG is as follows: Figure 13 As shown, it includes the start part "Start", conditional branch S201, first program block S203, second program block S202 and end part "End".

[0158] In conditional branch S201, the processing branches according to whether the condition of the set state, which is a signal managed by the robot controller 113, is met. In conditional branch S201, the processing branches according to whether the condition of the state "0", which is a signal managed by the robot controller 113 and has the signal number "X9000", indicating that the robot hand 112 is holding a workpiece, is met. The processing may also branch according to whether the condition of the set state, which is a signal managed by a controller other than the robot controller 113, is met. A controller other than the robot controller 113 could be, for example, a controller that controls the instruments in a production device having the robot 100. Conditional branch S201 has a first branch destination if the condition is not met and a second branch destination if the condition is met. The second branch destination is a different branch destination from the first branch destination.

[0159] Program block S203 and program block S202 are configured at the first branch destination and the second branch destination, respectively. Program block S203 and program block S202 specify the first reset trajectory tree T and the second reset trajectory tree T', respectively.

[0160] The origin reset command unit 12 of the origin reset device 2 is as follows: Figure 10 As shown in the figure, it also has an origin reset processing request unit 22.

[0161] The origin reset request unit 22 executes the origin reset procedure PRG.

[0162] The origin reset processing request unit 22 is linked to the origin reset command receiving unit 16 receiving the origin reset command and begins processing at the start position "Start".

[0163] In the condition branch S201, the origin reset processing request unit 22, after the start of processing, determines whether the condition that the signal with signal number "X9000" indicates that the state "0" of the workpiece is grasped by the robot arm 112 is met.

[0164] The origin reset processing request unit 22 executes program block S202 if the conditions are met. When executing program block S202, the origin reset processing request unit 22 requests the origin reset movement unit 18 to perform processing according to the second reset trajectory tree T'. The origin reset movement unit 18, requesting processing according to the second reset trajectory tree T', performs workpiece temporary placement position movement processing according to the second reset trajectory tree T'. When performing workpiece temporary placement position movement processing, the origin reset movement unit 18 performs the same processing as the origin reset processing performed in Embodiment 1, except that it replaces the first reset trajectory tree T and processes according to the second reset trajectory tree T'. As a result, the robot 100 moves to the workpiece temporary placement position Pkari.

[0165] Furthermore, the origin reset processing request unit 22 executes program block S203 if it determines that the conditions are not met. Additionally, the origin reset processing request unit 22 executes program block S203 after executing program block S202. When executing program block S203, the origin reset processing request unit 22 requests the origin reset movement unit 18 to process according to the first reset trajectory tree T. The origin reset movement unit 18, requesting processing according to the first reset trajectory tree T, performs the same processing as the origin reset processing performed according to the first reset trajectory tree T in Embodiment 1. As a result, the robot 100 moves to the origin Phome. When executing program block S203 after executing program block S202, the origin reset movement unit 18 begins processing from the node assigned a movement position corresponding to the temporary workpiece placement position Pkari.

[0166] After the origin reset movement unit 18 processes the robot 100 to the origin according to the first reset trajectory tree T, the origin reset processing request unit 22 completes the processing at the end point "End" when the specified completion condition is met.

[0167] Implementation method 2 has the same effect as implementation method 1.

[0168] Furthermore, according to Embodiment 2, the processing to be performed can be changed according to the state of the signal managed by the robot controller 113 or a controller other than the robot controller 113. As a result, complex origin reset processing can be performed.

[0169] 3 Implementation Method 3

[0170] Figure 12 This is a block diagram schematically illustrating the origin reset device of Embodiment 3. Figure 13 and Figure 14 This is a flowchart illustrating an example of the origin reset procedure set by the origin reset device of Embodiment 3.

[0171] Figure 12 The origin reset device 3 of embodiment 3 shown in the figure is... Figure 10 The origin reset device 2 of Embodiment 2 shown in the figure differs mainly in the following aspects. Regarding aspects not described below, the origin reset device 3 employs the same structure as the origin reset device 2.

[0172] Origin reset device 3, as shown Figure 12 As shown in the figure, it also has a controller program addition unit 32.

[0173] When setting the origin reset program PRG, the origin reset program setting unit 21 of the origin reset device 3 calls the controller program addition unit 32. The called controller program addition unit 32 will... Figure 13 The program block S301 shown or Figure 14 The program block S302 shown is appended to the origin reset program PRG. Program block S301 contains the controller program. Program block S302 contains commands that call the controller program.

[0174] The origin reset device 3 has an origin reset command unit 12 and a controller program command unit 34.

[0175] The origin reset processing request unit 22 executes program block S301 or S302 after executing program block S202 and before executing program block S203. When executing program block S301 or S302, the origin reset processing request unit 22 calls the controller program command unit 34. The controller program command unit 34, called when executing program block S301, commands the controller to execute the controller program contained in program block S301. The controller program command unit 34, called when executing program block S302, commands the controller to execute the controller program called by the command contained in program block S302. Thus, the controller program command unit 34 commands the controller to execute the controller program when executing program block S301 or S302.

[0176] The controller program is executed by the robot controller 113 or a controller other than the robot controller 113. A controller other than the robot controller 113 could be, for example, a controller that controls instruments in a production facility equipped with the robot 100. The controller executing the controller program can be specified within the origin reset program PRG or within system structure information other than the origin reset program PRG. The controller program can be written internally within the origin reset device 3 or written by dedicated software that writes the controller program. The controller program written by the dedicated software is read into the origin reset device 3. The controller program can be a main program section executed by the controller.

[0177] Implementation method 3 has the same effect as implementation method 2.

[0178] Based on this, according to Embodiment 3, the controller program contained in the origin reset procedure PRG, or the controller program invoked by commands contained in the origin reset procedure PRG, is executed by the controller. Therefore, control of the controller can be performed during the origin reset process.

[0179] 4 Implementation Methods

[0180] Figure 15 This is a block diagram schematically illustrating the origin reset device of Embodiment 4.

[0181] Figure 15 The origin reset device 4 of embodiment 4 shown in the figure is... Figure 3 The origin reset device 1 of Embodiment 1 shown in the figure differs mainly in the following aspects. Regarding aspects not described below, the origin reset device 4 employs the same structure as the origin reset device 1.

[0182] Origin reset device 4 Figure 15 The diagram also shows a final move command storage unit 42.

[0183] The final movement command storage unit 42 stores the last executed final movement command in the robot 100. The final movement command storage unit 42 saves the final movement command while it is being executed. The saved final movement command includes the movement start position, movement target position, movement command type, and independent variable information representing the independent variables required for the movement command. The final movement command storage unit 42 saves the final movement command while the origin reset command receiving unit 16 is able to receive the origin reset command. Therefore, the final movement command storage unit 42 sometimes saves the final movement command during origin reset processing and sometimes saves it during periods when origin reset processing is not performed.

[0184] The origin reset command unit 12 of the origin reset device 4 is as follows: Figure 15 As shown in the figure, it also has a movement start position reset unit 41.

[0185] The movement start position reset unit 41 is invoked when the origin reset command receiving unit 16 receives an origin reset command after the robot 100 stops moving, but the corresponding node determination unit 17 cannot determine the corresponding node. The invoked movement start position reset unit 41 retrieves the final movement command stored in the final movement command storage unit 42. Furthermore, the movement start position reset unit 41 calculates the trajectory of the robot 100 when the final movement command is executed based on the retrieved final movement command. Additionally, the movement start position reset unit 41 calculates the nearest nearest position to the robot 100's current position on the calculated trajectory. Furthermore, the movement start position reset unit 41 moves the robot 100 from its current position, through the calculated nearest nearest position, to the movement start position of the final movement command, thus resetting the robot 100 to the movement start position. While moving the robot 100 from the nearest nearest position to the movement start position of the final movement command, the movement start position reset unit 41 reverses the calculated trajectory, thus moving the robot 100. When the starting position of the final movement command becomes the target of the origin reset process, it is assigned to a node contained in the reset trajectory tree T. Therefore, after the robot 100 moves to the starting position of the final movement command, the origin reset process can be performed in the same way as the origin reset process performed in Embodiment 1.

[0186] The final movement command is preferably stored in non-volatile memory. This allows the final movement command to be retrieved even after the power is disconnected. Furthermore, the final movement command is preferably saved before the robot 100 begins to move. The final movement command storage unit 42 can store completion information indicating that the robot 100 has completed its movement. Additionally, if the corresponding node determination unit 17 can retrieve the saved completion information, that is, if the robot 100 has completed its movement, it can process the target position of the final movement command as the current position.

[0187] Implementation method 4 has the same effect as implementation method 1.

[0188] Based on this, according to embodiment 4, after the robot 100 stops moving, it can be reset to the origin via the starting position of the movement.

[0189] 5 Implementation Methods

[0190] Figure 16 This is a block diagram schematically illustrating the origin reset device of Embodiment 5.

[0191] Figure 16 The origin reset device 5 of embodiment 5 shown in the figure is... Figure 3The origin reset device 1 of Embodiment 1 shown in the figure differs mainly in the following aspects. Regarding aspects not described below, the origin reset device 5 employs the same structure as the origin reset device 1.

[0192] The reset trajectory tree generation unit 11 of the origin reset device 5 is as follows: Figure 16 As shown in the figure, it also has a candidate generation unit 51.

[0193] The candidate generation unit 51 generates candidates for the reset trajectory tree T. At this time, the candidate generation unit 51 generates candidates for the reset trajectory tree T based on the robot program P. For example, the candidate generation unit 51 parses the main body of the robot program P2 and generates candidates for the reset trajectory tree T based on the calling order of movement commands, auxiliary commands, etc. The candidate generation unit 51 can generate candidates for the reset trajectory tree T based on other robot programs and other reset trajectory trees. Alternatively, the candidate generation unit 51 can combine and execute the movement between multiple movement positions extracted by the movement position extraction unit 13 with collision detection in a 3D simulation environment to generate candidates for the reset trajectory tree T. Furthermore, the candidate generation unit 51 can also generate candidates for the reset trajectory tree T by combining these methods. Finally, the candidate generation unit 51 prompts the operator with the generated candidates for the reset trajectory tree T.

[0194] The reset trajectory tree setting unit 15 can set the generated reset trajectory tree T as the desired reset trajectory tree T.

[0195] Implementation method 5 has the same effect as implementation method 1.

[0196] Furthermore, according to embodiment 5, the reset trajectory tree T can be easily set.

[0197] Furthermore, it is possible to freely combine the various implementation methods or to appropriately modify or omit them.

[0198] The implementation methods have been described in detail, but all the schemes described above are illustrative and the implementation methods are not limited thereto. It can be understood that numerous variations not shown can be conceived.

[0199] Explanation of the label

[0200] 1, 2, 3, 4, 5 Origin reset device; 11 Reset trajectory tree generation unit; 12 Origin reset command unit; 13 Movement position extraction unit; 14 Origin setting unit; 15 Reset trajectory tree setting unit; 16 Origin reset command receiving unit; 17 Corresponding node determination unit; 18 Origin reset movement unit; 21 Origin reset program setting unit; 22 Origin reset processing request unit; 32 Controller program appending unit; 34 Controller program command unit; 41 Movement start position reset unit; 42 Final movement command storage unit; 51 Candidate generation unit; 100 Robot and P robot programs; S201 Conditional branch; S202, S203, S301, S302 program blocks; T, T' Reset trajectory tree; N0, N1, N2, N3, N4, N5, N6, N7, N0' nodes; B1, B2, B3, B4, B5, B6, B7 branches; PRG Origin reset program.

Claims

1. A home point reset device, comprising: The movement position extraction unit extracts multiple movement positions from the robot program; The origin setting unit sets any one of the plurality of moving positions as the origin; The reset trajectory tree setting unit sets a reset trajectory tree, which includes multiple nodes that are respectively assigned multiple movement positions and branches that are set to connect the child nodes included in the multiple nodes and the parent nodes of the child nodes to each other, so that the robot moves from the movement position assigned to the child node to the movement position assigned to the parent node of the child node. The reset trajectory tree includes a root node that is assigned to the origin among the multiple nodes. The corresponding node determination unit determines the corresponding nodes in the reset trajectory tree that are assigned a movement position corresponding to the robot's current position. The origin reset movement unit moves the robot to reset it to the origin according to the movement conditions set in the reset trajectory tree, which includes branches that connect the corresponding nodes and the parent nodes of the corresponding nodes to each other. The movement conditions include signal conditions that specify the output signal or the acknowledged signal before the robot starts to move. An origin reset procedure setting unit sets an origin reset procedure, which includes a conditional branch with a branch destination and a program block configured at the branch destination to specify the reset trajectory tree; and The origin reset processing request unit executes the origin reset procedure. When executing the program block, it requests the origin reset movement unit to process the data according to the reset trajectory tree. The branch destination is the first branch destination. The conditional branch has a second branch destination that is different from the first branch destination. The reset trajectory tree is the first reset trajectory tree. The reset trajectory tree setting unit also sets a second reset trajectory tree that is different from the first reset trajectory tree. The program block is the first program block. The origin reset procedure also includes a second program block configured at the second branch destination to specify the second reset trajectory tree. When executing the second program block, the origin reset processing request unit requests the origin reset movement unit to process the data according to the second reset trajectory tree. The second reset trajectory tree contains a root node assigned to a sub-target that is different from the origin.

2. The origin reset device according to claim 1, wherein, It also has: The controller program appending unit appends a program block, including the controller program or commands calling the controller program, to the origin reset program; and The controller program command unit, when executing a program block that includes the controller program or a command that calls the controller program, commands the controller to execute the controller program.

3. The origin reset device according to claim 1 or 2, wherein, It also has: The final movement command storage unit stores the last final movement command executed in the robot. as well as The movement start position reset unit calculates the nearest position of the nearest position on the robot's trajectory when the final movement command is executed, and resets the robot to the movement start position by moving the robot from the current position to the movement start position of the final movement command via the nearest position.

4. The origin reset device according to claim 1 or 2, wherein, It also includes a candidate generation unit that generates candidates for the reset trajectory tree. The reset trajectory tree setting unit can set the candidates of the reset trajectory tree to the reset trajectory tree.

5. The origin reset device according to claim 3, wherein, It also includes a candidate generation unit that generates candidates for the reset trajectory tree. The reset trajectory tree setting unit can set the candidates of the reset trajectory tree to the reset trajectory tree.

Citation Information

Patent Citations

  • Return-to-origin method for robot

    JP2000061870A

  • Method, device and program for generating moving route, and device and program for controlling robot arm

    JP2012106335A

  • Method for returning horizontal multi-joint robot to original position

    JP2019084627A