Robot motion planning support system, robot motion planning support method, and computer program
The robot motion planning support system uses Petri nets to analyze procedure data and determine efficient operation plans, addressing the challenge of complex task automation in robot systems by reducing operator dependency and optimizing task performance.
Patent Information
- Application Number
- JP2022078971
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-05-12
- Publication Date
- 2026-02-27
- Estimated Expiration
- 2042-05-12
AI Technical Summary
Existing robot systems struggle to autonomously select optimal operation procedures for complex tasks, requiring skilled operators for teaching playback, which increases costs and limits flexibility.
A robot motion planning support system that utilizes a process model generated by Petri nets to analyze procedure data, randomly selects paths, and calculates the required time for each path to determine the most efficient operation plan.
Enables operators to easily select efficient robot operation procedures, reducing the need for skilled labor and optimizing task performance.
Smart Images

Figure 0007821435000001 
Figure 0007821435000002 
Figure 0007821435000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a technique for assisting in motion planning when making a robot perform a task. [Background technology]
[0002] Conventionally, robots such as industrial robots have been used for the high-speed mass production of products such as automobiles, machinery, electrical equipment, electronic devices, food, cosmetics, and pharmaceuticals. Robots have been used to reduce manpower and labor, but a wide variety of products are being developed one after another to meet consumer needs, and introducing dedicated robots for each product would increase costs.
[0003] Therefore, general-purpose robots have been introduced to perform tasks tailored to each product. In this case, a method called "teaching playback" is widely adopted, in which a human (operator) teaches the robot the work procedures by directly touching the robot or operating it via an operating terminal, thereby preparing a program. Teaching playback is sometimes called "online teaching" or "playback teaching."
[0004] However, when operating a robot, a program corresponding to the product must be specified in advance, and the robot only operates according to the program. In other words, it is not easy for a robot to autonomously select the optimal operation depending on the situation.
[0005] Furthermore, the more complex the work process, the more difficult it is for the operator to teach it, meaning that teaching playback must be performed by an experienced operator.
[0006] Therefore, systems have been proposed that control robots using Petri nets, as described in Non-Patent Documents 1 and 2. Petri nets are graphical models of the workflow to be performed by a robot. Therefore, the use of Petri nets can facilitate the control of robots. [Prior art documents] [Non-patent literature]
[0007] [Non-Patent Document 1] Genichi Yasuda, "Control of Industrial Robot Systems Based on Petri Nets", 51st Japan Joint Conference on Automatic Control, pp.974-975, (2008), https: / / www.jstage.jst.go.jp / article / jacc / 51 / 0 / 51_0_213 / _pdf [Non-patent document 2] Y. Funami, T. Kudo, and K. Watanabe, “Control of Robot Systems Using Petri Nets,” 170th Research Meeting of the Tohoku Branch of the Society of Instrument and Control Engineers, pp. 1-8, (1997), https: / / www.topic.ad.jp / sice / htdocs / papers / 170 / 170-6.pdf Summary of the Invention [Problem to be solved by the invention]
[0008] Incidentally, even one specific task can have multiple procedures. For example, when moving a first workpiece and a second workpiece that are in separate positions to a predetermined position, there are multiple procedures, such as a procedure in which the first workpiece is moved to the predetermined position and then the second workpiece is moved to the predetermined position, or a procedure in which the first workpiece is placed on top of the second workpiece and then both workpieces are moved to the predetermined position together.
[0009] In order to have a robot perform a task as efficiently as possible, it is necessary to select a procedure that is as close to optimal as possible.
[0010] In view of the above problems, the present invention has an object to support an operator so that the operator can more easily select an efficient procedure for making a robot perform a specific task than before. [Means for solving the problem]
[0011] A robot motion planning support system according to one embodiment of the present invention is a system for supporting a robot motion planning process. Each step and its completion time a procedure data acquisition means for acquiring procedure data representing the plurality of procedures; and a process model generation means for generating a process model of the work based on the procedure data for each of the plurality of procedures. a qualified path selection means for randomly selecting N paths from among a plurality of paths that can be taken from an initial node to a target node in the process model, calculating a required time for the robot to complete each of the N selected paths based on the difference between the completion times of two consecutive steps among the steps, and selecting the path with the shortest required time from among the N paths as a qualified path suitable for the task; It has.
[0012] Preferably, The process model generating means generates a Petri net as the process model by an α algorithm, and the eligible path selecting means selects the N paths by randomly advancing a token through a place having a branch in the Petri net.
[0013] A robot motion planning support system according to another aspect of the present invention includes: procedure data acquisition means for acquiring procedure data indicating each of a plurality of procedures for having a robot perform a specific task; process model generation means for generating a process model of the task based on the procedure data for each of the plurality of procedures; and eligible path selection means for selecting, as a first eligible path suitable for having the robot perform the task, a path that satisfies predetermined requirements from all or part of a plurality of paths that can be taken in the process model from an initial node to a target node, and for randomly selecting N paths from the plurality of paths as second eligible paths suitable for having a second robot different from the first robot perform the task, and selecting, from the N paths, a path that requires the second robot the shortest time or cost. [Effects of the Invention]
[0014] According to the present invention, an operator can more easily select an efficient procedure for making a robot perform a specific task than before. [Brief explanation of the drawings]
[0015] [Figure 1] 1 is a diagram illustrating an example of the overall configuration of a motion plan optimization system 1. FIG. [Figure 2] 1A and 1B are diagrams illustrating examples of a mechanical model and a control model of a robot. [Figure 3] FIG. 1 illustrates an example of a hardware configuration of a computer. [Figure 4] FIG. 2 is a diagram illustrating an example of a functional configuration of a computer. [Figure 5] FIG. 10 is a diagram illustrating an example of movement of a first workpiece and a second workpiece. [Figure 6] FIG. 10 is a diagram illustrating an example of a work log. [Figure 7] FIG. 1 is a diagram illustrating an example of a Petri net. [Figure 8] FIG. 1 is a diagram illustrating an example of a Petri net having multiple branches. [Figure 9] 10 is a flowchart illustrating an example of the overall processing flow by the motion planning program. [Figure 10]FIG. 10 is a diagram illustrating an example of a firing sequence. DETAILED DESCRIPTION OF THE INVENTION
[0016] [1. Overall system configuration] Fig. 1 is a diagram showing an example of the overall configuration of a motion plan optimization system 1. Fig. 2 is a diagram showing examples of a mechanical model and a control model of a robot 3. Fig. 3 is a diagram showing an example of the hardware configuration of a computer 2. Fig. 4 is a diagram showing an example of the functional configuration of the computer 2.
[0017] The motion plan optimization system 1 is a system for optimizing a motion plan for a robot, and is configured by a computer 2 and a robot 3 as shown in FIG.
[0018] The robot 3 is a target robot for which an optimal motion plan is calculated. In the following, an example will be described in which the robot 3 is a six-axis robot installed on a horizontal plane.
[0019] 1 or 2, the robot 3 is composed of a base 30, a first arm 311, a second arm 312, a third arm 313, a fourth arm 314, a fifth arm 315, a tool 32, a first drive unit 331, a second drive unit 332, a third drive unit 333, a fourth drive unit 334, a fifth drive unit 335, a sixth drive unit 336, a controller 34, and a communication interface 35. In FIG. 2, dotted lines represent wired or wireless communication paths.
[0020] In this embodiment, the base 30 is installed on a horizontal plane. The base end of the first arm 311 is supported by the base 30, and the first arm 311 rotates around a first axis 391 that is perpendicular to the installation surface (horizontal plane) of the base 30. The first drive unit 331 is configured with a motor, a reducer, an angle sensor, etc., and rotates the first arm 311. Note that, like the first drive unit 331, the second drive unit 332 to the sixth drive unit 336 are also configured with a motor, a reducer, an angle sensor, etc.
[0021] The second arm 312 has its base end supported by the tip end of the first arm 311, and rotates about a second axis 392 that is perpendicular to both the first axis 391 and the longitudinal direction of the second arm 312. The second drive unit 332 rotates the second arm 312.
[0022] The third arm 313 has its base end supported by the tip end of the second arm 312, and rotates about a third axis 393 that is parallel to the second axis 392. The third drive unit 333 rotates the third arm 313.
[0023] The base end of the fourth arm 314 is supported by the tip end of the third arm 313, and rotates about a fourth axis 394 that is parallel to the longitudinal direction of the third arm 313. The fourth drive unit 334 rotates the fourth arm 314.
[0024] The fifth arm 315 has its base end supported by the tip end of the fourth arm 314, and rotates about a fifth axis 395 that is perpendicular to the fourth axis 394. A fifth drive unit 335 rotates the fifth arm 315.
[0025] Tool 32 has its base end supported by the tip end of fifth arm 315, and rotates about a sixth axis 396 that is parallel to the longitudinal direction of fifth arm 315. A sixth drive unit 336 rotates tool 32. Tool 32 also has a hand with multiple fingers and a motor that opens and closes the hand, allowing it to pick up and release objects.
[0026] The angle sensor of the first drive unit 331 detects the angle θ1 between the reference posture and the current posture of the first arm 311 in the coordinate system of the base 30. In other words, it detects how much the first arm 311 has rotated from the reference posture. The angle sensor of the second drive unit 332 detects the angle θ2 between the first arm 311 and the second arm 312.
[0027] The angle sensor of the third drive unit 333 detects the angle θ3 between the second arm 312 and the third arm 313. The angle sensor of the fourth drive unit 334 detects the angle θ4 between the reference posture and the current posture of the fourth arm 314 in the coordinate system of the third arm 313. In other words, it detects how much the fourth arm 314 has rotated from the reference posture.
[0028] The angle sensor of the fifth drive unit 335 detects the angle θ5 between the fourth arm 314 and the fifth arm 315. The angle sensor of the sixth drive unit 336 detects the angle θ6 between the reference posture and the current posture of the tool 32 in the coordinate system of the fifth arm 315. In other words, it detects how much the tool 32 has rotated from the reference posture.
[0029] The angle sensors of the first drive unit 331 to the sixth drive unit 336 transmit the detected angles θ1 to θ6 to the computer 2 via the communication interface 35. The posture of the robot 3 is determined by the posture of the first arm 311 relative to the base 30, the posture of the second arm 312 relative to the first arm 311, the posture of the third arm 313 relative to the second arm 312, the posture of the fourth arm 314 relative to the third arm 313, the posture of the fifth arm 315 relative to the fourth arm 314, and the posture of the tool 32 relative to the fifth arm 315. Therefore, the posture of the robot 3 is specified by the angles θ1 to θ6.
[0030] The controller 34 controls the first drive unit 331 to the sixth drive unit 336 so that the first arm 311 to the fifth arm 315 and the tool 32 assume postures according to commands from the computer 2. The controller 34 also controls the motor of the tool 32 so that the hand of the tool 32 opens and closes according to commands from the computer 2.
[0031] The communication interface 35 is a wired interface device such as a USB (Universal Serial Bus) adapter or a NIC (Network Interface Card), or a wireless communication device such as a Bluetooth adapter or a Wi-Fi adapter, and sends and receives data to and from the computer 2.
[0032] The computer 2 uses process mining to calculate an optimal operation plan for the robot 3. In the following, an example will be described in which a laptop-type personal computer is used as the computer 2.
[0033] As shown in FIG. 3, the computer 2 is composed of a main processor 20, a RAM (Random Access Memory) 21, a ROM (Read Only Memory) 22, an auxiliary storage device 23, a communication interface 24, a display 25, a keyboard 26, a pointing device 27, and the like.
[0034] In the ROM 22 or the auxiliary storage device 23, computer programs such as an operating system and a motion planning program 40 are installed.
[0035] The RAM 21 is the main memory of the computer 2. Computer programs such as the motion planning program 40 are loaded into the RAM 21 as needed.
[0036] The main processor 20 executes a computer program loaded into the RAM 21. As the main processor 20, a GPU (Graphics Processing Unit) or a CPU (Central Processing Unit) or the like is used.
[0037] The communication interface 24 transmits and receives data to and from the robot 3. As the communication interface 24, a communication device conforming to the standard adopted by the robot 3 is used.
[0038] The display 25 displays a screen for inputting commands or data, a screen showing the results of calculations performed by the main processor 20, and the like.
[0039] The keyboard 26 and the pointing device 27 are input devices that allow the operator to input commands, data, and the like.
[0040] 4, functions such as an operation log acquisition unit 401, an operation log storage unit 402, an identifier assignment unit 403, an event log generation unit 404, a Petri net generation unit 405, a Petri net storage unit 406, an optimal operation plan determination unit 407, an operation verification unit 408, and an operation program generation unit 409 are realized. The following five services are provided to optimize the operation plan of the robot 3. -Getting the event log of Robot 3 Petri net generation -Determining optimal motion plans using Petri net simulation -Generating operation programs -Implementing a motion program for Robot 3 Below, each function of the work log acquisition unit 401 through the operation program generation unit 409 and each of the five services will be explained in order.
[0041] [2. Processing of each part] [2.1 Acquiring the event log of Robot 3]
[0042] (1) Collection of raw data 5 is a diagram showing an example of the movement of a first workpiece 51 and a second workpiece 52. FIG.
[0043] The work log acquisition unit 401 acquires work logs when the robot 3 performs a specific work in various procedures. Hereinafter, collection of work logs will be described using as an example the work of moving a first workpiece 51 and a second workpiece 52 from a first position and a second position to a third position, respectively.
[0044] Various procedures can be considered as a procedure for accomplishing this task. There are multiple ways to move the first workpiece 51 and the second workpiece 52. For example, the first workpiece 51 and the second workpiece 52 can be moved as shown in FIG. 5(A) or FIG. 5(B). When the first workpiece 51 is moved to the third position as shown in FIG. 5(A) and then the second workpiece 52 is moved to the third position, the robot 3 operates, for example, as follows. #01: Take the initial position #02: The tool 32 hand assumes a pick (pick up) position for the first workpiece 51. #03: Close your hand and pick the first workpiece 51 #04: Assume a posture to relay the first workpiece 51 from the first position to the second position #05: Assume a position to place the first workpiece 51 on the second workpiece 52. #06: Open the hand and place the first work 51 onto the second work 52 #07: Take a position to pick the first work 51 and the second work 52 #08: Pick both pieces #09: Take a position to relay both workpieces from the second position to the third position #10: Place both workpieces in the third position #11: Open your hands and place both pieces in the third position #12: Assume an end position In this embodiment, the initial posture is assumed to be an open state for the hand of the tool 32. The "relay posture" in steps #04 and #09 is the posture when the tool 32 passes through a relay position when moving the workpiece from the source (position before relay) to the destination (position after relay). The relay position may be exactly in the middle of the line connecting the source and destination, or, if there is an obstacle between the source and destination, it may be a position above the obstacle to avoid it. The same applies to steps #24, #27, and #30 described below.
[0045] Alternatively, when placing a first workpiece 51 on a second workpiece 52 and moving both workpieces together to a third position as shown in FIG. 5(B), the robot 3 operates, for example, as follows. #21: Take the initial stance #22: Assume a position to pick the first workpiece 51 with the hand of tool 32 #23: Close your hand and pick the first piece 51 #24: Assume a posture to relay the first workpiece 51 from the first position to the third position #25: Assume a position to place the first work 51 in the third position #26: Open your hand and place the first work 51 in the third position #27: Take a posture (relay posture) to move tool 32 from the third position to the second position #28: Assume a position to pick the second workpiece 52 with your hand #29: Close your hand and pick the second piece, 52 #30: Assume a posture to transfer the second workpiece 52 from the second position to the third position #31: Assume a position to place the second work 52 in the third position #32: Open the hand and place the second work 52 in the third position #33: Assume end position Incidentally, the first workpiece 51 and the second workpiece 52 may be moved in a procedure other than steps #01 to #12 and steps #21 to #33. For example, the second workpiece 52 may be moved before the first workpiece 51. Alternatively, the first workpiece 51 and the second workpiece 52 may be temporarily placed at a fourth position, and then both workpieces may be moved together from the fourth position to the third position. There are also multiple ways to avoid an obstacle. For example, the tool 32 may assume a position that straddles the obstacle, or may assume a position that bypasses the obstacle.
[0046] Therefore, the procedure for moving two workpieces to a predetermined position (third position) can be any number of ways other than the two ways of steps #01 to #12 and steps #21 to #33. However, in this embodiment, for simplicity of explanation, an example will be described in which work logs are acquired for two ways of steps #01 to #12 and steps #21 to #33.
[0047] The operator teaches the robot 3 how to move in each of steps #01 to #12, and the work log acquisition unit 401 acquires information obtained from the robot 3 at that time and stores it as a work log in the work log storage unit 402. Similarly, the operator teaches the robot 3 how to move in each of steps #21 to #33, and the work log acquisition unit 401 acquires information obtained from the robot 3 at that time and stores it as a work log in the work log storage unit 402. The teaching method is the same as in conventional online teaching, and the operator may teach by directly touching and moving each part of the robot 3 (that is, manually), or may teach by giving commands to move the robot from an operation terminal.
[0048] For example, the operator instructs each step of the work according to the procedure of steps #01 to #12 as follows, and the work log acquisition unit 401 acquires the work log as follows.
[0049] The operator makes the robot 3 assume an initial posture to teach the movement in step #01, and then inputs "pose" as the movement type into the computer 2 or an operation terminal.
[0050] Then, the work log acquisition unit 401 causes the robot 3 to detect and acquire the angles θ1 to θ6 at the time when the initial posture is assumed. Then, the work log acquisition unit 401 generates movement data that indicates the time when the initial posture is assumed as the completion time, indicates the acquired angles θ1 to θ6 as parameters, and indicates the input movement type, and stores this in the work log storage unit 402 (see FIG. 6(A)).
[0051] To teach the motion of step #02, the operator makes the robot 3 assume a posture that allows it to pick up the first workpiece 51 with the tool 32. Then, the operator inputs "pose" as the motion type.
[0052] Then, the work log acquisition unit 401, as in step #10, causes the robot 3 to detect and acquire the angles θ1 to θ6 at the time when this posture is assumed. Then, the work log acquisition unit 401 generates movement data that indicates this time as the completion time, indicates the acquired angles θ1 to θ6 as parameters, and indicates the input movement type, and stores this data in the work log storage unit 402.
[0053] To teach the operation in step #03, the operator closes the hand of the tool 32 to pick the first workpiece 51. Then, the operator inputs "grasp" as the operation type.
[0054] Then, the work log acquisition unit 401 generates operation data indicating the time when the hand is closed as the completion time and indicating the input operation type, and stores this in the work log storage unit 402. Note that a value indicating the degree to which the hand of the tool 32 is closed may be indicated as a parameter in the operation data. The same applies below.
[0055] To teach the movement in step #04, the operator makes the robot 3 assume a posture in which the tool 32 is placed at a relay position to the second position, and then inputs "pose" as the movement type.
[0056] Then, as in steps #01 and #02, the work log acquisition unit 401 causes the robot 3 to detect and acquire the angles θ1 to θ6 at the time when this posture was assumed. Then, the work log acquisition unit 401 generates movement data that indicates this time as the completion time, indicates the acquired angles θ1 to θ6 as parameters, and indicates the input movement type, and stores this data in the work log storage unit 402.
[0057] To teach the movement of step #05, the operator makes the robot 3 assume a posture that allows the robot 3 to place the first workpiece 51 on the second workpiece 52. Then, the operator inputs "pose" as the movement type.
[0058] Then, as in steps #01, #02, and #04, the work log acquisition unit 401 causes the robot 3 to detect and acquire the angles θ1 to θ6 at the time when this posture was assumed. Then, the work log acquisition unit 401 generates movement data that indicates this time as the completion time, indicates the acquired angles θ1 to θ6 as parameters, and indicates the input movement type, and stores this data in the work log storage unit 402.
[0059] To teach the operation in step #06, the operator opens the hand of the tool 32 so as to place the first workpiece 51. Then, the operator inputs "release" as the operation type.
[0060] Then, the work log acquisition unit 401 generates motion data that indicates the time when the hand is opened as the completion time and indicates the input motion type, and stores this in the work log storage unit 402.
[0061] Instead of the operator inputting the motion type, the work log acquisition unit 401 may determine the motion type based on the movement of the robot 3. For example, if the operator stops moving the robot 3, it is determined to be a "pose." Alternatively, if the operator moves the hand of the tool 32 in a closing direction, it is determined to be a "grasp." Alternatively, if the operator moves the hand of the tool 32 in an opening direction, it is determined to be a "release."
[0062] From step #06 onwards, the operator instructs the robot 3 on how to operate in a similar manner, and the work log acquisition unit 401 generates operation data and stores it in the work log storage unit 402. As a result, 12 pieces of operation data as shown in FIG. 6(A) are stored in the work log storage unit 402. A collection of these pieces of operation data constitutes the work log 61 relating to the procedures of steps #01 to #12. Note that the "identifier" is assigned later in order to generate the Petri net. At the time the operation data is generated, the identifier is Null.
[0063] Similarly, for work according to the procedure of steps #21 to #33, the operator instructs the robot 3, and the work log acquisition unit 401 generates operation data and stores it in the work log storage unit 402. As a result, 13 pieces of operation data as shown in FIG. 6(B) are stored in the work log storage unit 402. A collection of these pieces of operation data is the work log 62 relating to the procedure of steps #21 to #33.
[0064] Instead of moving each part of the robot 3, the operator may teach the robot 3 a task by inputting a motion (posture, opening / closing, etc.) into a simulator of the robot 3. The work log acquisition unit 401 may then generate motion data by determining the angles θ1 to θ6 or the motion type based on the motion input to the simulator. Furthermore, the motion of the robot 3 may be simulated on the simulator exactly as input, and the time at which the motion of each step is completed may be indicated in the motion data as the completion time.
[0065] (2) Data processing The identifier assigning unit 403 and the event log generating unit 404 process the data stored in the work log storage unit 402 to generate a Petri net. Below, the processing of the identifier assigning unit 403 and the event log generating unit 404 will be described using an example in which work logs 61 and 62 shown in FIG. 6 are processed.
[0066] The identifier assigning unit 403 assigns unique identifiers to the actions represented by the action data included in the work log 61 and the actions represented by the action data included in the work log 62. However, the same identifier is assigned to the same action. For example, identifiers are assigned as follows:
[0067] The identifier assigning unit 403 assigns a unique identifier to each action represented by each piece of action data included in the work log 61. That is, since the work log 61 includes 12 pieces of action data, the identifiers "a", "b", "c", ..., "j", "k", and "l" are assigned to each of the 12 actions.
[0068] Furthermore, the identifier assigning unit 403 selects, from among the actions represented by the action data included in the work log 62, those actions that are identical to those represented by any of the action data included in the work log 61. Specifically, it selects those actions that have the same action type and posture during the action. Then, it assigns an identifier to the selected action.
[0069] For example, completion time T21 The action in (Step #21) is that the action type is "pose" and the angles (θ1, θ2, θ3, θ4, θ5, θ6) are (θ 1_21 ,θ 2_21 ,θ 3_21 ,θ 4_21 ,θ 5_21 ,θ 6_21 ) is the posture at which the completion time T 01 The action in (Step #01) is that the action type is "pose" and the angles (θ1, θ2, θ3, θ4, θ5, θ6) are (θ 1_01 ,θ 2_01 ,θ 3_01 ,θ 4_01 ,θ 5_01 ,θ 6_01 ) is an attitude that
[0070] That is, the completion time T 21 The operation type is completed at time T 01 Therefore, the completion time T 21 The posture at the completion time T 01 If the posture is the same as that at the completion time T 01 The operation is the same as that at completion time T 21 The action in is selected.
[0071] However, when an operator operates the robot 3 to acquire a work log, even if the operator intends to make the robot 3 assume the same posture at both completion times, a slight discrepancy may occur.
[0072] Therefore, the identifier assigning unit 403 determines the angle θ 1_01 and angle θ 1_21 Absolute value of the difference between the angle θ 2_01 and angle θ 2_21 Absolute value of the difference between the angle θ 3_01 and angle θ 3_21 Absolute value of the difference between the angle θ 4_01 and angle θ 4_21 Absolute value of the difference between the angle θ 5_01 and angle θ 5_21 The absolute value of the difference between the angle θ and 6_01 and angle θ 6_21If the absolute values of the differences between the 21 Attitude and completion time T 01 The following description will be given taking the case where both postures are considered to be the same as an example. Therefore, the identifier assigning unit 403 assigns the identifier at the completion time T 21 The operation is the same as the operation of 01 Then, select the operation with completion time T 21 For the operation, completion time T 01 In this example, we assign an identifier to the action.
[0073] Completion time T 22 The same method is used for each subsequent action, and by comparing the action type and posture of each action shown in the work log 61, the same ones are selected and assigned identifiers. However, the posture of an action whose type is "grasp" or "release" is represented by the parameters of the action data of the most recent action whose type is "pose". For example, if the completion time T 03 The posture of the operation is 02 The parameters of the operational data are expressed as follows:
[0074] Further, the completion time T 22 , T 23 , T 28 , T 29 , T 30 , T 31 , T 32 , and T 33 Each operation is the same as the other operation, and the completion time is T 02 , T 03 , T 07 , T 08 , T 09 , T 10 , T 11 , and T 12 An example will be described in which each action is selected and assigned an identifier as shown in FIG. 6(B).
[0075] Furthermore, the identifier assigning unit 403 assigns a unique identifier to an action indicated in the action data included in the work log 62 that is not identical to any of the actions indicated in the action data included in the work log 61. Hereinafter, the completion time T 24 ~T 27 Each operation is completed at time T 01 ~T 12 Therefore, the identifier assigning unit 403 assigns the completion time T 24 ~T 27 A unique identifier is assigned to each action.
[0076] As will be described later, this embodiment uses the α algorithm. In the α algorithm, the operation of each step corresponds to a "task." Therefore, hereinafter, the operation of each step may be referred to as a "task."
[0077] The event log generation unit 404 generates an event log L based on the work logs 61 and 62 and the identifiers assigned by the identifier assignment unit 403. The event log L includes: {(a,b,c,d,e,f,g,h,i,j,k,l),(a,b,c,n,o,p,m,g,h,i,j,k,l)} Among these, (a, b, c, d, e, f, g, h, i, j, k, l) are identifiers of each task (action) indicated in the action data included in the work log 61, arranged in chronological order. Also, (a, b, c, n, o, p, m, g, h, i, j, k, l) are identifiers of each task indicated in the action data included in the work log 62, arranged in chronological order.
[0078] The serial path in the event log L By summarizing A={a,b,c} B={d,e,f} C={n,o,p,m} D={g,h,i,j,k,l}, the event log L can be expressed as {(A,B,D),(A,C,D)}.
[0079] [2.2 Petri Net Generation] FIG. 7 is a diagram showing an example of a Petri net 7.
[0080] The Petri net generation unit 405 generates a Petri net 7 as shown in Fig. 7 by outputting model components from the order relationships between tasks in the event log L based on the α algorithm. The Petri net 7 is stored in the Petri net storage unit 406.
[0081] The α algorithm is a known process mining algorithm for generating a Petri net (Petri net model) as a process model, and is described in the following publicly known documents 1 and 2. Also, an example of a method for implementing the α algorithm in a computer program is described in publicly known document 3. [Known Document 1] W. van der Aalst, T. Weijters, L. Maruster, “Workflow mining: discovering process models from event logs”, IEEE Transactions on Knowledge and Data Engineering, Vol. 16, No. 9, pp. 1128-1142, (2004). [Publication 2] Tadashi Iijima, Keiichi Tabata, Shinobu Saito, "Process Mining Survey (4th: Algorithm (1))", Journal of Information Systems, Vol. 13, No. 1, pp. 43-45, (2017). https: / / www.issj.net / journal / jissj / Vol13_No1_Open / A4V13N1.pdf [Publication 3] "Implementing and Understanding the Process Mining Alpha Algorithm in Python", https: / / ownsearch-and-study.xyz / 2019 / 11 / 06 / python-processmining-alpha-implementation / A Petri Net7 is a mathematical model for representing concurrent, asynchronous, distributed, parallel, deterministic, and probabilistic systems. It is a bipartite directed graph with two types of nodes: places, which represent conditions, and transitions, which represent events. It can also be said to be a model of a discrete event system. In Figure 7, the circular nodes are places, and the rectangular nodes are transitions. Places and transitions are connected by arcs, which are represented by line segments with arrows. In this way, the structure of a Petri Net7 is specified by the places, transitions, and arcs.
[0082] The black dots in the places are tokens. Multiple arcs (two) extend from place p4, but this does not mean that multiple tokens will be generated, but rather that the token will selectively proceed to only one of them. Although not shown in Figure 7, if multiple arcs extend from a transition, multiple tokens will be generated, and one token will proceed to each of the connected places.
[0083] The Petri net generation unit 405 generates a set of places, transitions, and arcs from the event log L based on the α algorithm. L , T L , and F L In this example, P L , T L , and F L but P L =[[A,{B,C}],[{B,C},D],i L ,o L ] T L ={A,B,C,D} F L =[A[A,{B,C}],[[A,{B,C}]B],[[A,{B,C}]C],[B[{B,C},D]], [C[{B,C},D], [[{B,C},D],D],[i L ,A],[D,o L ]]] It is calculated as follows: P L , TL , and F L Based on this, the Petri net 7 can be drawn as shown in FIG. 7. In the Petri net simulation described below, the Petri net 7 is T ×M P The incidence matrix M T " and "M P " are the number of transitions and places of the Petri net 7, respectively, and in the example of FIG. 7, both are "16".
[0084] The Petri net 7 is visualized as shown in Fig. 7 and displayed on a display 25, or printed out by a printer.
[0085] [2.3 Determining optimal motion plans using Petri net simulation] The optimal motion plan determination unit 407 determines an optimal motion plan for the work to be performed by the robot 3. Hereinafter, the processing of the optimal motion plan determination unit 407 will be described using as an example a case where an optimal motion plan is determined for the work of moving the first workpiece 51 and the second workpiece 52 from the first position and the second position to the third position, respectively.
[0086] The optimal motion plan determination unit 407 randomly selects N firing sequences from the Petri net 7, with the positions of the initial token and the target token set as the place of p1 and the place of p16, respectively.
[0087] Specifically, the optimal motion plan determination unit 407 places a token at the position of place p1 and transitions the token to place p16 according to the firing rules of the Petri net. Along the way, each time the token reaches a place that branches into multiple arcs, it randomly selects one of these arcs and advances the token to the transition to which the selected arc is connected. By performing this transition once, one firing sequence can be obtained. By repeatedly performing this transition, N firing sequences can be obtained and selected. The firing sequence can be said to be a path from the initial place to the target place. N is an integer greater than or equal to 2. If the specifications of the computer 2 or the processing time allow, all firing sequences may be obtained and selected.
[0088] In this embodiment, as shown in Fig. 7, the arc branches into only one place, place p4, and the number of branches is two. Therefore, a maximum of two firing sequences are selected. Below, we will explain an example in which two firing sequences, {A, B, D} and {A, C, D}, are selected.
[0089] The optimal operation plan determination unit 407 verifies the transition of tokens for each selected firing sequence in accordance with the firing rules of the Petri net, and calculates the time required for the token to reach p16 after being placed at p1 (hereinafter referred to as the "total firing transition time").
[0090] In order to calculate the total firing transition time, it is necessary to know the firing transition time of each transition in the firing sequence. Therefore, in this embodiment, the firing transition time of each transition is determined as follows.
[0091] The firing transition time of the transition (the "grasp" task) corresponding to the action of picking up the workpiece is a predetermined time T a Similarly, the firing transition time of the transition (the “release” task) corresponding to the workpiece placement action is set to a predetermined time T b Time T a , Tb Both may be the same length, for example, "1 second," or may be different lengths.
[0092] The firing transition time of the transition (the "pose" task) corresponding to the action of taking a posture specified by the angles θ1 to θ6 is the difference between the time when the task is completed and the time when the task immediately preceding it is completed. For example, the firing transition time of the "b" transition is the time when the task of the "b" transition is completed. 02 (See Figure 6) and the task completion time T of the previous transition, i.e., transition "a". 01 The difference between "T 02 -T 01 However, the firing transition time of the first transition is the difference between the time of the task of that transition and the start time of the work. For example, if the start time of the work of steps #01 to #12 is T 00 Then, the firing transition time of the transition of "a" is "T 01 -T 00 "
[0093] There are transitions for which the firing transition time can be calculated based on either the work log 61 or the work log 62. In such cases, either may be used. For example, the firing transition time of the transition "b" is calculated based on "T 02 -T 01 " or "T 22 -T 21 However, it is preferable to use either one consistently.
[0094] The optimal operation plan determination unit 407 then selects the firing sequence with the shortest total firing transition time as the optimal firing sequence, and determines (estimates) that the operation procedure specified by the optimal firing sequence is the optimal operation plan for the task.
[0095] The optimal operation plan determination unit 407 calculates the sum of the firing transition times of the transitions (a, b, c, d, e, f, g, h, i, j, k, l) as the total firing transition time of the firing sequence of {A, B, D}, and calculates the sum of the firing transition times of the transitions (a, b, c, n, o, p, m, g, h, i, j, k, l) as the total firing transition time of the firing sequence of {A, C, D}, and selects the firing sequence with the shortest total firing transition time as the optimal firing sequence.
[0096] In this embodiment, both the firing sequence of {A, B, D} and the firing sequence of {A, C, D} match the procedure by which the operator moved the robot 3 to obtain the work log 61 or the work log 62, and therefore the optimal firing sequence also matches either procedure.
[0097] FIG. 8 is a diagram showing an example of a Petri net 71 having a plurality of branches.
[0098] However, if a Petri net is generated based on the activity log (a0, b1, c0, d1, e0, f1, g0, h1, i0, j1, k0) and the activity log (a0, b2, c0, d2, e0, f2, g0, h2, i0, j2, k0), for example, Petri net 71 shown in Figure 8 is obtained. Because Petri net 71 contains three branches that split into two, there are 2^3, or eight, possible firing sequences. Therefore, it is possible that a firing sequence that does not match either activity log is the optimal firing sequence. As the number of activity logs included in the event log increases or the number of branches within the activity logs increases, the number of firing sequence patterns tends to increase exponentially.
[0099] [2.4 Generating an Operation Program] The operation verification unit 408 is a simulator that verifies the consistency of the model, and verifies by simulation whether the robot 3 can complete a task in accordance with the optimal firing sequence selected by the optimal operation plan determination unit 407. For example, if the firing sequence of {A, C, D} is selected as the optimal firing sequence, it verifies whether the robot 3 can complete the task according to the specifications by performing the tasks (operations) corresponding to each transition of (a, b, c, n, o, p, m, g, h, i, j, k, l).
[0100] In particular, as shown in Figure 8, when the number of firing sequences selectable from the Petri net is greater than the number of work logs, the optimal firing sequence may not match any of the work log procedures. Therefore, it is important to have operation verification unit 408 simulate and verify the work performed by robot 3 based on the optimal firing sequences. Furthermore, as will be described later, Petri net 7 may be applied to other work or other robots. In such cases, it is also important to simulate and verify the work.
[0101] Once operation verification unit 408 has verified that robot 3 can be made to perform the task in accordance with specifications based on the optimal firing sequence, operation program generation unit 409 generates operation program 80 for operating robot 3 in accordance with the optimal firing sequence. Note that operation program 80 is tuned so that robot 3 can more reliably move first workpiece 51 and second workpiece 52.
[0102] [2.5 Implementation of the operation program for Robot 3] The computer 2 controls the robot 3 based on the operation program 80, thereby making the robot 3 perform a task.
[0103] 3. Overall Processing Flow and Effects of This Embodiment FIG. 9 is a flowchart illustrating an example of the overall processing flow by the motion planning program 40.
[0104] Next, the overall processing flow of the computer 2 according to the operation planning program 40 will be described with reference to a flowchart. The computer 2 executes processing based on the operation planning program 40 in the procedure shown in FIG.
[0105] The operator instructs the robot 3 through multiple work procedures for a specific purpose. The computer 2 acquires the data for each procedure as a work log (#101 in FIG. 9), generates an event log (#102), and generates a Petri net based on the event log (#103).
[0106] Furthermore, computer 2 selects N firing sequences based on the Petri net, calculates the total firing transition time for each firing sequence, and selects the firing sequence with the shortest total firing transition time as the optimal firing sequence (#104). Operation verification is performed by simulating the work of robot 3 according to the optimal firing sequence (#105).
[0107] If the operation verification is successful, the computer 2 generates an operation program 80 for operating the robot 3 in accordance with the optimal firing sequence (#106) and applies the program to the robot 3 (#107). The robot 3 is controlled based on the operation program 80 and performs a task for a specific purpose.
[0108] According to this embodiment, the motion plan optimization system 1 generates a Petri net 7 for a specific task based on the task logs 61 and 62. The Petri net 7 can visually represent, as a single graph, multiple firing sequences (paths) that can be taken to complete the specific task, as shown in FIG. 7. Therefore, by referring to the Petri net 7, the operator can select an efficient procedure more easily than before.
[0109] Furthermore, an optimal firing sequence is selected from Petri net 7, its feasibility on robot 3 is verified, and it is applied to robot 3. Thus, the operator can more easily select an efficient procedure from multiple firing sequences depending on the situation.
[0110] [4. Modifications and Applications] FIG. 10 is a diagram showing an example of a firing sequence 72.
[0111] In this embodiment, as shown in FIG. 7, a Petri net using only one token has been described as an example, but the present invention can also be applied to Petri nets using multiple tokens. In this case, the optimal motion plan determination unit 407 (see FIG. 4) can calculate the total firing transition time as the time required for a token to transition from the initial place in the firing sequence to the target place in accordance with the firing rule. For example, if the firing sequence 72 shown in FIG. 10 is selected from the Petri net, the total firing transition time can be calculated as follows:
[0112] In the firing sequence 72, the tokens split into two at transition t1 and proceed to places p2 and p4, respectively. They then merge at place p6. The optimal motion plan determination unit 407 calculates the total firing transition time of the firing sequence 72 as the sum of the firing transition time T1 of transition t1, the firing transition time T2 of transition t2, and the firing transition time T3 of transition t3, whichever is longer, and the firing transition time T4 of transition t4. In other words, the total firing transition time is calculated as the longer of T1+T2+T4 and T1+T3+T4.
[0113] For example, transition t2 corresponds to the task of assuming a posture to pick up the workpiece with the hand of tool 32, and transition t3 corresponds to the task of photographing the workpiece with the camera of tool 32 to confirm that there are no defects in the workpiece.
[0114] Although the Petri net 7 was generated for optimizing the motion plan for the task of moving the first workpiece 51 and the second workpiece 52 from the first position and the second position to the third position, respectively, the Petri net 7 can be applied to other tasks. For example, the Petri net 7 may be used for optimizing the motion plan for the task of moving the first workpiece 51 and the second workpiece 52 from the fourth position and the fifth position to the sixth position, respectively.
[0115] In this case, the parameters of the work logs 61, 62 (see FIG. 6) are changed to match the posture of the robot 3 at each position. Furthermore, the operation time of each step is changed. The posture and operation time may be obtained by manually moving the robot 3, or by using a simulator. Alternatively, they may be obtained by substituting them into a mathematical formula for conversion. The operation planning program 40 may be configured to implement a work log changing means (not shown), and the parameters and operation times may be changed by the work log changing means.
[0116] Then, the optimal operation plan determination unit 407 calculates the total firing transition time for each of the N firing sequences based on the changed parameters and operation times, and selects the optimal firing sequence.
[0117] Alternatively, Petri net 7 may be used for optimal motion planning when a robot other than robot 3 is made to perform a similar task. In this case, the parameters of task logs 61, 62 (see FIG. 6) may be changed in accordance with the posture that the robot will take at each position, and the motion time of each step may also be changed. Then, optimal motion plan determination unit 407 may calculate the total firing transition time for each of the N firing sequences based on the changed parameters and motion times, and select the optimal firing sequence.
[0118] In this way, the Petri net 7 can be extended for use for other tasks on the robot 3 or for tasks on other robots.
[0119] In this embodiment, the Petri net 7 is generated based on two work logs 61 and 62, but it may be generated based on three or more work logs.
[0120] In this embodiment, an example has been described in which a motion plan is optimized to have the robot 3 perform the task of moving two workpieces that are located in different positions, but the present invention can also be applied to the optimization of a motion plan to perform tasks such as assembly or machining.
[0121] In this embodiment, the optimal operation plan determination unit 407 selects the firing sequence with the shortest total firing transition time as the optimal firing sequence. However, it may also be possible to select multiple firing sequences whose total firing transition time falls within the requested time period, present them to the operator, and have the operator select the optimal firing sequence from these firing sequences.
[0122] The data of the Petri net 7 may be output from the computer 2 to another computer, and the other computer may use the Petri net 7 to optimize the motion plan of the robot.
[0123] In this embodiment, the robot 3 is described as a six-axis robot, but the present invention can also be applied to a multi-joint robot with seven or more axes, a dual-arm robot, a SCARA robot, or a parallel link robot. In this embodiment, the firing sequence with the shortest total firing transition time, i.e., the shortest required time, is selected as the optimal firing sequence, but it may also be selected based on other indices. For example, the firing sequence with the least amount of power consumption required for a change in posture or the firing sequence with the shortest travel distance of the tool 32 may be selected as the optimal firing sequence. Alternatively, the overall travel cost may be calculated based on the total firing transition time, power consumption, travel distance, etc., and the firing sequence with the lowest travel cost may be selected as the optimal firing sequence.
[0124] In addition, the overall or individual configurations of the motion planning optimization system 1, computer 2, and robot 3, the processing content, processing order, data configuration, and method of determining firing transition times can be modified as appropriate in accordance with the spirit of the present invention. [Explanation of symbols]
[0125] 1. Motion planning optimization system 3. Robot 401 Work log acquisition unit (procedure data acquisition means) 405 Petri net generation unit (process model generation means) 407 Optimal motion plan determination unit (optimal path selection means) 408 Operation verification unit (verification means) 61 Work log (procedure data) 62 Work log (procedure data) 7 Petri Net (Process Model)
Claims
1. a procedure data acquisition means for acquiring procedure data indicating each step constituting each of a plurality of procedures for causing a robot to perform a specific task and the time at which each step is completed; a process model generating means for generating a process model of the work based on the procedure data for each of the plurality of procedures; a qualified path selection means for randomly selecting N paths from among a plurality of paths that can be taken from an initial node to a target node in the process model, calculating a required time for the robot to complete each of the N selected paths based on the difference between the completion times of two consecutive steps among the steps, and selecting the path with the shortest required time from among the N paths as a qualified path suitable for the task; A robot motion planning support system comprising:
2. the process model generating means generates a Petri net as the process model by an α algorithm; the eligible path selection means selects the N paths by randomly advancing a token through a place in the Petri net that has a branch; The robot motion planning support system according to claim 1 .
3. a verification means for verifying whether the task can be completed by simulating the operation of the robot according to the qualified path; having 3. A robot motion planning support system according to claim 1.
4. a procedure data acquisition means for acquiring procedure data indicating each of a plurality of procedures for causing a robot to perform a specific task; a process model generating means for generating a process model of the work based on the procedure data for each of the plurality of procedures; a qualified path selection means for selecting, as a first qualified path suitable for having the robot perform the task, a path that satisfies predetermined requirements from all or part of a plurality of paths that can be taken in the process model from an initial node to a target node, and for randomly selecting N paths from the plurality of paths as second qualified paths suitable for having a second robot different from the first robot perform the task, and selecting, from the N paths, a path that requires the second robot the shortest time or cost; A robot motion planning support system comprising:
5. providing a computer with procedure data indicating each step constituting a plurality of procedures for causing a robot to perform a specific task and the time at which the steps are completed; causing the computer to execute a process of generating a process model of the work based on the procedure data for each of the plurality of procedures; randomly selecting N routes from among a plurality of routes that can be taken from an initial node to a target node in the process model, calculating a required time for the robot to complete each of the N selected routes based on the difference between the completion times of two consecutive steps among the steps, and selecting the route with the shortest required time from among the N routes as a qualified route suitable for the task; A robot motion planning support method comprising:
6. Providing procedure data indicating each of a plurality of procedures for causing a robot to perform a specific task to a computer; causing the computer to execute a process of generating a process model of the work based on the procedure data for each of the plurality of procedures; selecting, as a first eligible path suitable for having the robot perform the task, a path that satisfies predetermined requirements from all or part of a plurality of paths that can be taken in the process model from an initial node to a target node; randomly selecting N paths from the plurality of paths as second eligible paths suitable for having a second robot different from the first robot perform the task; and selecting, from the N paths, a path that requires the second robot the shortest time or cost. A robot motion planning support method comprising:
7. A computer program used in a computer to assist in motion planning for causing a robot to perform a specific task, The computer, executes a process of acquiring procedure data indicating each step constituting each of a plurality of procedures for causing the robot to perform the work and the time of completion of the steps; executing a process for generating a process model of the work based on the procedure data for each of the plurality of procedures; randomly selecting N routes from among a plurality of routes that can be taken from an initial node to a target node in the process model, calculating a required time for the robot to complete each of the N selected routes based on the difference between the completion times of two consecutive steps among the steps, and selecting the route with the shortest required time from among the N routes as a qualified route suitable for the task; A computer program characterized by:
8. A computer program used in a computer to assist in motion planning for causing a robot to perform a specific task, The computer, executes a process of acquiring procedure data indicating each of a plurality of procedures for causing the robot to perform the work; executing a process for generating a process model of the work based on the procedure data for each of the plurality of procedures; select, as a first eligible path suitable for causing the robot to perform the task, a path that satisfies predetermined requirements from all or part of a plurality of paths that can be taken in the process model from an initial node to a target node, and execute a process of randomly selecting N paths from the plurality of paths as second eligible paths suitable for causing a second robot different from the first robot to perform the task, and selecting, from the N paths, a path that requires the shortest time or cost for the second robot. A computer program characterized by:
Citation Information
Patent Citations
Assembling device
JP1998263957A
Job analyzing program and method, and job analyzing apparatus
JP2011128828A
Operation planning device, operation planning method and operation planning program
JP2022067006A
Generating a process model
US20210216925A1