Operation path setting device and program
By designing the action path setting device, the coordinated work of the candidate acquisition unit, the determination unit and the path setting unit is solved, and the problem of setting the robot's action path in a multi-dimensional space is achieved, and a safe and reasonable action path setting is achieved.
Patent Information
- Application Number
- CN202380069001.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-30
- Filing Date
- 2023-09-27
- Publication Date
- 2025-05-06
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
The prior art is difficult to effectively set the action path of a robot in a multi-dimensional space, especially in the presence of obstacles, which leads to inappropriate or unsafe operation paths.
An operation path setting device is designed, including a candidate acquisition unit, a determination unit and a path setting unit. The device assumes an action path based on the minimum distance in the multi-dimensional space, acquires multiple action path candidates, and judges whether these paths interfere with obstacles through the determination unit, and finally sets the robot action path by the path setting unit.
It realizes efficient setting of the robot's action path in a multi-dimensional space to avoid interference with obstacles and ensure the safety and rationality of the action path.
Smart Images

Figure CN119947866A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a technology for setting a motion path of a robot. Background Art
[0002] Patent Document 1 describes a technique related to motion path planning of a robot.
[0003] Prior Art Literature
[0004] Patent Literature
[0005] Patent Document 1: Japanese Patent Application Publication No. 2000-20117 Summary of the invention
[0006] Disclosed are a motion path setting device and a program. In one embodiment, the motion path setting device includes a candidate acquisition unit, a determination unit, and a path setting unit. The candidate acquisition unit can acquire a plurality of motion path candidates from a starting point to an end point in a multidimensional space that is a real working space of the robot or a configuration space of the robot based on a first assumed motion path of a minimum distance connecting a starting point and an end point of the robot's motion. The determination unit determines whether the robot interferes with an obstacle in at least one of the plurality of motion path candidates. The path setting unit sets the motion path of the robot based on the determination result in the determination unit.
[0007] In one embodiment, the program causes the computer device to perform an acquisition process to acquire a plurality of motion path candidates from a start point to an end point based on an assumed motion path of a minimum distance connecting a start point and an end point of a robot motion in a multidimensional space that is a real work space of the robot or a configuration space of the robot. In addition, the program causes the computer device to perform a determination process to determine whether the robot interferes with an obstacle in at least one of the plurality of motion path candidates. In addition, the program causes the computer device to perform a setting process to set the motion path of the robot based on a determination result in the determination process. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Figure 1 This is a schematic diagram showing an example of the structure of the action path setting device.
[0009] Figure 2 This is a schematic diagram showing an example of a real work space.
[0010] Figure 3 This is a schematic diagram showing an example of the structure of a robot.
[0011] Figure 4 This is a schematic diagram showing an example of how the shape of a robot is represented by a plurality of rectangular parallelepipeds.
[0012] Figure 5This is a flowchart showing an example of the operation of the operation path setting device.
[0013] Figure 6 This is a schematic diagram for explaining an example of a method for obtaining motion path candidates.
[0014] Figure 7 This is a schematic diagram for explaining an example of a method for acquiring motion path candidates.
[0015] Figure 8 This is a schematic diagram for explaining an example of a method for obtaining motion path candidates.
[0016] Fig. 9 This is a schematic diagram for explaining an example of a method for acquiring motion path candidates.
[0017] Fig.10 This is a schematic diagram for explaining an example of a method for obtaining motion path candidates.
[0018] Fig.11 This is a schematic diagram for explaining an example of a method for acquiring motion path candidates.
[0019] Fig.12 This is a schematic diagram for explaining an example of a method for acquiring motion path candidates.
[0020] Fig.13 This is a schematic diagram for explaining an example of a method for obtaining motion path candidates.
[0021] Fig.14 This is a schematic diagram for explaining an example of a method for acquiring motion path candidates.
[0022] Fig.15 This is a schematic diagram for explaining an example of a method for obtaining motion path candidates.
[0023] Fig.16 This is a schematic diagram for explaining an example of a method for obtaining motion path candidates.
[0024] Fig.17 This is a schematic diagram for explaining an example of a method for obtaining motion path candidates.
[0025] Fig.18 This is a schematic diagram for explaining an example of a method for acquiring motion path candidates.
[0026] Fig.19 This is a schematic diagram for explaining an example of a method for acquiring motion path candidates.
[0027] Fig. 20 This is a schematic diagram for explaining an example of a method for obtaining motion path candidates.
[0028] Fig.21 This is a schematic diagram for explaining an example of a method for obtaining motion path candidates.
[0029] Fig. 22 This is a schematic diagram for explaining an example of a method for setting an action path.
[0030] Fig.23 This is a schematic diagram for explaining an example of a method for setting an action path.
[0031] Fig.24 This is a flowchart showing an example of the operation of the control unit.
[0032] Fig.25 This is a schematic diagram for explaining an example of a method for setting an action path.
[0033] Fig.26 This is a schematic diagram for explaining an example of a method for setting an action path.
[0034] Fig. 27 This is a schematic diagram for explaining an example of a method for setting an action path.
[0035] Fig.28 This is a schematic diagram for explaining an example of a method for setting an action path.
[0036] Fig.29 This is a schematic diagram for explaining an example of a method for setting an action path.
[0037] Fig.30 This is a flowchart showing an example of the operation of the operation path setting device.
[0038] Fig.31 This is a schematic diagram showing an example of a configuration space.
[0039] Fig.32 This is a schematic diagram for explaining an example of the operation of the determination unit.
[0040] Fig.33 This is a schematic diagram showing an example of a limited configuration space.
[0041] Fig.34 This is a schematic diagram for explaining an example of the operation of the determination unit. DETAILED DESCRIPTION
[0042] Figure 1 1 is a schematic diagram showing an example of the configuration of a motion path setting device 1 for setting a motion path of a robot 10 . Figure 2 1 is a schematic diagram showing an example of a real work space (also referred to as a work environment or a work range) 100 in which the robot 10 performs work. The real work space 100 is a multi-dimensional space. Specifically, the real work space 100 is a three-dimensional space.
[0043] The robot 10 performs a task of, for example, moving a work object 50 (also referred to as the object 50) from a moving source area to a moving destination area in a real working space 100. The robot 10 holds the object 50 in the moving source area and moves the held object 50 from the moving source area to the moving destination area. For example, the robot 10 moves the held object 50 from the moving source area to the moving destination area by changing the posture of the robot 10. The object 50 is also referred to as a workpiece, for example. Hereinafter, the posture of the robot 10 is also referred to as the robot posture.
[0044] The moving source area and the moving destination area are, for example, pallets. There are a plurality of work objects 50 in the pallet 17 (also referred to as the moving source pallet 17) serving as the moving source area. The robot 10 holds the work objects 50 in the moving source pallet 17 one by one, and moves to the pallet 18 (also referred to as the moving destination pallet 18) serving as the moving destination area. The moving source pallet 17 and the moving destination pallet 18 are, for example, placed on a workbench 15 and a workbench 16, respectively. The workbench 15 can also be referred to as a work start table 15, and the workbench 16 can also be referred to as a work target table 16. The robot 10 can also be referred to as moving the object 50 on the work start table 15 to the work target table 16. In addition, at least one of the moving source area and the moving destination area can also be other than a pallet. For example, at least one of the moving source area and the moving destination area can be a belt conveyor or a rack.
[0045] The robot 10 includes, for example, an arm 11 and a robot hand 12 (also simply referred to as the hand 12) connected to the arm 11. The robot hand 12 is also referred to as an end effector. The robot hand 12 can hold an object 50. The robot hand 12 can, for example, grip the object 50 with two fingers. Such a robot hand 12 is also referred to as a clamp. In addition, the structure of the robot hand 12 is not limited thereto. For example, the robot hand 12 may also include a suction nozzle for sucking the object 50.
[0046] The robot 10 holds the object 50 on the movement source tray 17 with the robot hand 12. The robot 10 moves the object 50 to the movement destination tray 18 by moving the arm 11 while the robot hand 12 holds the object 50. For example, the robot 10 moves the object 50 to the movement destination tray 18 by changing the posture of the arm 11. In addition, the work performed by the robot 10 is not limited to this.
[0047] The robot 10 is, for example, a six-axis robot. The number of movable axes of the robot 10 is, for example, six. The degree of freedom of the robot 10 is, for example, six. The arm 11 of the robot 10 has, for example, six joints, and each joint has a movable axis.
[0048] Figure 3 1 is a schematic diagram showing an example of six movable axes 101, 102, 103, 104, 105, and 106 included in the robot 10. Figure 3 , the rotation angles of the arm 11 around the movable axes 101, 102, 103, 104, 105, 106 are represented by θa, θb, θc, θd, θe, θf, respectively. The robot posture is represented by the rotation angles θa, θb, θc, θd, θe, θf as parameters. In addition, the number of movable axes of the robot 10 (in other words, the degrees of freedom of the robot 10) is not limited to this. Hereinafter, the rotation angles θa, θb, θc, θd, θe, θf representing the robot posture may be referred to as parameters θa, θb, θc, θd, θe, θf. In addition, when it is not necessary to distinguish the rotation angles θa, θb, θc, θd, θe, θf from each other, they may be referred to as rotation angles θ.
[0049] The motion path setting device 1 is, for example, a type of computer device. The motion path setting device 1 can not only set the motion path of the robot 10, but also control the robot 10 so that the robot 10 moves on the set motion path. That is, the motion path setting device 1 can also function as a robot control device that controls the robot 10. The motion path setting device 1 sets the activity of the robot 10 based on the set motion path. Then, the motion path setting device 1 outputs the robot setting motion data representing the set activity to the robot 10. The robot 10 performs the action based on the input robot setting motion data. In addition, a robot control device that controls the robot 10 can also be set separately from the motion path setting device 1. In this case, the motion path set in the motion path setting device 1 is notified to the robot control device. Then, the robot control device generates the robot setting motion data based on the notified motion path and outputs it to the robot 10. Hereinafter, if only the motion path is mentioned, it means the motion path of the robot 10.
[0050] like Figure 1 As shown, the operation path setting device 1 includes, for example, a control unit 2, a storage unit 3, an interface 4, and an input unit 5. The operation path setting device 1 can also be referred to as an operation path setting circuit, for example.
[0051] The interface 4 can exchange signals with the robot 10. The control unit 2 can control the robot 10 via the interface 4. The interface 4 can also be said to be an interface circuit, for example. In addition, when a robot control device for controlling the robot 10 is provided separately from the motion path setting device 1, the motion path setting device 1 may also include an interface for exchanging signals with the robot control device instead of the interface 4.
[0052] The control unit 2 can manage the operation of the action path setting device 1 in an overall manner by controlling other components of the action path setting device 1. The control unit 2 can also be referred to as a control circuit, for example. As described in further detail below, the control unit 2 includes at least one processor in order to provide control and processing capabilities for executing various functions.
[0053] According to various embodiments, at least one processor may be implemented as a single integrated circuit (IC), or as a plurality of communicatively connected integrated circuits (ICs) and / or discrete circuits. The at least one processor may be implemented according to various known techniques.
[0054] In one embodiment, the processor includes, for example, one or more circuits or components configured to perform one or more data calculation procedures or processes by executing instructions stored in an associated memory. In other embodiments, the processor may be firmware (e.g., discrete logic components) configured to perform one or more data calculation procedures or processes.
[0055] According to various embodiments, the processor includes one or more processors, controllers, microprocessors, microcontrollers, application-specific integrated circuits (ASICs), digital signal processing devices, programmable logic devices, field programmable gate arrays, or any combination of these devices or structures, or a combination of other known devices and structures, and can perform the functions described below.
[0056] The control unit 2 may include, for example, a CPU (Central Processing Unit) as a processor. The storage unit 3 may include a non-temporary recording medium readable by the CPU of the control unit 2, such as a ROM (Read Only Memory) and a RAM (Random Access Memory). The storage unit 3 may store, for example, a program 30 for controlling the motion path setting device 1. Various functions of the control unit 2 are realized by, for example, the CPU of the control unit 2 executing the program 30 in the storage unit 3.
[0057] The storage unit 3 stores, in addition to the program 30, robot information 31 and obstacle information 32 used in setting the motion path, for example. The robot information 31 is information related to the robot 10. The robot information 31 includes, for example, information representing the shape of the robot 10. The obstacle information 32 is information related to obstacles that become obstacles to the motion of the robot 10 when the robot 10 performs the work. The obstacle information 32 includes, for example, information representing the position of the obstacle and information representing the shape of the obstacle. The obstacle includes at least one object existing in the real work space 100. The obstacles include, for example, the workbench 15, the workbench 16, the tray 17, and the tray 18. In addition, the obstacles may include objects other than the workbench 15, the workbench 16, the tray 17, and the tray 18. For example, the obstacle may include at least one of a structure such as a wall or a column, a chair, a table, a shelf, a screen, and a lighting fixture.
[0058] In addition, the structure of the control unit 2 is not limited to the above-mentioned example. For example, the control unit 2 may include a plurality of CPUs. In addition, the control unit 2 may include at least one DSP (Digital Signal Processor). In addition, all functions of the control unit 2 or a part of the functions of the control unit 2 may also be implemented by a hardware circuit that does not require software in the implementation of the function. In addition, the storage unit 3 may include a computer-readable non-temporary recording medium other than ROM and RAM. The storage unit 3 may include, for example, a small hard disk drive and an SSD (Solid State Drive).
[0059] The input unit 5 can accept various inputs from the user. The input unit 5 may include, for example, a mouse and a keyboard. In addition, the input unit 5 may include a touch sensor for accepting touch operations from the user. In this case, when the action path setting device 1 includes a display unit such as a liquid crystal display, the display unit and the touch sensor may constitute a touch panel display having a display function and a touch detection function. In addition, the input unit 5 may include a microphone for accepting voice input from the user. The control unit 2 identifies the content of the user input received by the input unit 5 based on the output signal from the input unit 5. In addition, when the action path setting device 1 includes an interface for communicating with an external device, it may also accept input from the user through the interface.
[0060] The control unit 2 includes, for example, a candidate acquisition unit 20, a determination unit 21, and a path setting unit 22. The candidate acquisition unit 20, the determination unit 21, and the path setting unit 22 are, for example, functional blocks formed in the control unit 2 by the CPU of the control unit 2 executing the program 30 in the storage unit 3. In addition, all functions of the candidate acquisition unit 20 or a part of the functions of the candidate acquisition unit 20 can be realized by a hardware circuit that does not require software in the realization of the functions. The same is true for the determination unit 21 and the path setting unit 22.
[0061] The candidate acquisition unit 20 performs acquisition processing to acquire a plurality of motion path candidates from the start point to the end point in the real work space 100 based on the assumed motion path of the minimum distance connecting the start point and the end point of the robot motion. The determination unit 21 performs determination processing to determine whether the robot 10 interferes with an obstacle in at least one of the plurality of motion path candidates acquired by the candidate acquisition unit 20. The path setting unit 22 performs setting processing to set the motion path of the robot 10 based on the determination result of the determination unit 21.
[0062] In the interference determination process performed by the determination unit 21 to determine whether the robot 10 interferes with an obstacle in one action path candidate, for example, not only is it determined whether the robot 10 interferes with the obstacle, but it is also determined whether the object 50 held by the robot 10 interferes with the obstacle. Figure 4 As shown, the shape of the robot 10 is approximated by, for example, a plurality of rectangular parallelepipeds 110 (for example, five rectangular parallelepipeds 110 ). In addition, the shape of the object 50 is also approximated by, for example, a single rectangular parallelepiped 111 .
[0063] In this example, the object 50 held by the robot 10 is included in the robot 10 to perform the interference determination process. That is, in the interference determination process, the object 50 held by the robot 10 is treated as a part of the robot 10 to determine whether the robot 10 interferes with the obstacle. Hereinafter, unless there are special circumstances, whenever the robot 10 is mentioned, it means both the object 50 held by the robot 10 and the robot 10. In addition, if the robot 10 alone is mentioned, it means that there is only the robot 10 without the object 50. The robot 10 alone can be said to be the robot 10 that does not hold the object 50. In addition, the rectangular parallelepiped 111 representing the shape of the object 50 is sometimes referred to as the rectangular parallelepiped 110. In Figure 4 In the example of , the shape of the robot 10 is represented by six rectangular parallelepipeds 110. The robot information 31 in the storage unit 3 includes the positional relationship of the six rectangular parallelepipeds 110 representing the shape of the robot 10 and information representing the shape of each of the six rectangular parallelepipeds. The control unit 2 can determine the shape of the robot 10 based on the robot information 31.
[0064] In addition, the shape of the obstacle is approximated into at least one cuboid, for example. For example, when the obstacle includes a plurality of objects, the shape of the obstacle is approximated into a plurality of cuboids. The obstacle information 32 stored in the storage unit 3 includes information indicating the position and shape of at least one cuboid representing the shape of the obstacle. The control unit 2 can determine the position and shape of the obstacle based on the obstacle information 32.
[0065] Hereinafter, an operation example of the candidate acquisition unit 20 , the determination unit 21 , and the path setting unit 22 will be described in detail.
[0066] <Operation Example of Candidate Acquisition Unit, Determination Unit, and Path Setting Unit>
[0067] Figure 5 1 is a flowchart showing an example of a motion path setting process executed by the control unit 2 to set the motion path of the robot 10. First, the outline of the motion path setting process will be described, and then the details of the motion path setting process will be described.
[0068] like Figure 5 As shown in FIG. 1 , in step s1, the candidate acquisition unit 20 acquires one motion path candidate. Next, in step s2, the determination unit 21 performs interference determination processing to determine whether the robot 10 interferes with an obstacle in the motion path candidate acquired in step s1. That is, when the robot 10 is moving in the motion path candidate acquired in step s1, the determination unit 21 performs interference determination processing to determine whether the robot 10 interferes with an obstacle.
[0069] In the interference determination process of step s2, if it is determined that the robot 10 does not interfere with the obstacle, step s3 is executed. In step s3, the path setting unit 22 sets the motion path of the robot 10 based on the motion path candidate obtained in step s1. For example, the path setting unit 22 sets the motion path candidate obtained in step s1 as the motion path as it is. Thus, the motion path setting process ends.
[0070] On the other hand, if the interference determination process in step s2 determines that the robot 10 interferes with the obstacle, step s4 is executed. In step s4, the candidate acquisition unit 20 determines whether a new motion path candidate can be acquired. As described later. The candidate acquisition unit 20 can acquire a given number T (T is an integer greater than) of motion path candidates. When there are unacquired motion path candidates among the acquisible given number T of motion path candidates, the candidate acquisition unit 20 determines that a new motion path candidate can be acquired. On the other hand, when all of the acquisible given number T of motion path candidates have been acquired, the candidate acquisition unit 20 determines that a new motion path candidate cannot be acquired.
[0071] If the result of step s4 is "yes", step s1 is executed again to obtain a new motion path candidate. That is, a motion path candidate different from the motion path candidate obtained so far is obtained. Then, step s2 is executed, and the control unit 2 operates in the same manner thereafter. If the result of step s4 is "no", the motion path setting process ends.
[0072] In addition, in the above example, the candidate acquisition unit 20 acquires one motion path candidate, and when the determination unit 21 finds that the robot 10 interferes with an obstacle or the like in the motion path candidate, it acquires another motion path candidate, but the present disclosure is not limited thereto. For example, the candidate acquisition unit 20 may acquire multiple motion path candidates, and the determination unit 21 may sequentially determine whether the multiple motion path candidates interfere with each other.
[0073] <Example of a method for obtaining motion path candidates>
[0074] The candidate acquisition unit 20 can acquire, for example, a plurality of motion path candidates for a given part P of the robot 10 in the real work space 100. Figure 3 As shown, the given part P is set to the front end of the robot 10 alone, that is, the front end of the robot hand 12. In this case, the motion path candidates acquired by the candidate acquisition unit 20 can be said to be candidates for the motion paths of the front end of the robot 10 alone. Figure 3 In the example of , the predetermined position P is set to, for example, a middle point between two fingers of the robot hand 12 on the movable axis 106 .
[0075] Figure 6 2 is a schematic diagram for explaining an example of the operation of the candidate acquisition unit 20. Figure 6 As shown in FIG. 1 , the candidate acquisition unit 20 can acquire multiple motion path candidates from the starting point 120 to the end point 121 in the real workspace 100 based on the assumed motion path 130 of the minimum distance connecting the starting point 120 and the end point 121 of the robot motion. The assumed motion path 130 is represented by a line segment connecting the starting point 120 and the end point 121. Figure 6 , an example of an obstacle 60 existing in the real work space 100 is schematically shown.
[0076] In the real work space 100, the starting point 120 of the robot action, for example, indicates the position of the robot 10 when the robot 10 holding the object 50 starts the moving action of moving the object 50 to the pallet 18. The starting point 120, for example, indicates the position of a given part P of the robot 10 when the robot 10 starts the moving action. In addition, in the real work space 100, the end point 121 of the robot action, for example, indicates the position of the robot 10 when the robot 10 ends the moving action. The end point 121, for example, indicates the position of a given part P of the robot 10 when the robot 10 ends the moving action. The line connecting the starting point 120 and the end point 121 indicates the change in the position of the given part P of the robot 10 from the beginning to the end of the moving action. That is, the line connecting the starting point 120 and the end point 121 indicates the trajectory of the position of the given part P of the robot 10 from the beginning to the end of the moving action. In the above-mentioned Figure 5 In step s3, for example, a motion path candidate 135 connecting the starting point 120 and the end point 121 is set as the motion path of the robot 10. The motion path of the robot 10 set by the path setting unit 22 is represented by the change in the position of the given part P of the robot 10 (in other words, the trajectory of the position).
[0077] The starting point 120 can also be said to be, for example, the starting place of the moving action that starts after the holding action of the object 50 is completed among the robot actions. In addition, the starting point 120 can be, for example, the point where the switch is made from the program that controls the holding action to the program that controls the moving action. The starting point 120 is set, for example, at a position just above the tray 17 and slightly above the tray 17. In addition, the end point 121 can be, for example, the point where the switch is made from the program that controls the moving action to the program that controls the releasing action. The end point 121 can also be said to be, for example, the starting place of the release action of the object 50 that starts after the moving action is completed among the robot actions. The end point 121 is set, for example, at a position just above the tray 18 and slightly above the tray 18. In addition, the starting point 120 can also be set in the tray 17, and the end point 121 can also be set in the tray 18.
[0078] The assumed motion path 130 can be said to be the shortest motion path from the starting point 120 to the end point 121 with respect to a given part P of the robot 10. The candidate acquisition unit 20 can, for example, move the assumed motion path 130, in other words, move the line segment representing the assumed motion path 130, to obtain a plurality of motion path candidates. The candidate acquisition unit 20 can, for example, parallel move the assumed motion path 130 to obtain a plurality of motion path candidates. The candidate acquisition unit 20 can, for example, parallel move the assumed motion path 130 in a first direction 141 orthogonal to the assumed motion path 130 (in other words, in a first direction 141 orthogonal to the line segment representing the assumed motion path 130) to obtain a plurality of motion path candidates. In this example, a plurality of first directions 141 orthogonal to the assumed motion path 130 are set. And, for each of the plurality of first directions 141, the candidate acquisition unit 20 parallel moves the assumed motion path 130 in the first direction 141 to obtain a plurality of motion path candidates. The temporary motion path 130 , the motion path candidates, and the motion path set in the path setting unit 22 are each represented by, for example, a set of a plurality of points (eg, several tens of points) set in the real work space 100 .
[0079] When the candidate acquisition unit 20 moves the provisional action path 130 to acquire action path candidates, Figure 7 As shown in FIG. 1 , one end 131a of the assumed motion path 130 after the movement is completed (also referred to as the assumed motion path 130f after the movement is completed) that is connected to the starting point 120 when the assumed motion path 130 is in the initial position is connected to the starting point 120 by a straight path 132a. The so-called initial position of the assumed motion path 130 is the position of the assumed motion path 130 that connects the position of the assumed motion path 130 before the movement, that is, the starting point 120 and the end point 121. In addition, the candidate acquisition unit 20 connects one end 131b of the assumed motion path 130 after the movement is completed that is connected to the end point 121 by a straight path 132b. The straight paths 132a and 132b are represented by line segments, respectively. Then, the candidate acquisition unit 20 sets the path from the starting point 120 to the end point 121, which is composed of the assumed action path 130f after the movement is completed, the straight path 132a, and the straight path 132b, as one action path candidate 135. That is, the candidate acquisition unit 20 sets the path obtained by connecting one end and the other end of the assumed action path 130f after the movement to the starting point 120 and the end point 121, respectively, as one action path candidate 135. One action path candidate 135 is represented by a line connecting the starting point 120 and the end point 121. Figure 7In FIG. 1 , a presumed motion path 130 before the movement, that is, a presumed motion path 130 connecting the start point 120 and the end point 121 is indicated by a two-dot chain line. Hereinafter, the presumed motion path 130 at the initial position may be referred to as a presumed motion path 130i at the initial position.
[0080] In this example, if Figure 6 As shown in FIG. 1 , a virtual plane 150 is set to be orthogonal to the assumed motion path 130. Figure 6 In the example of FIG. 1 , the plane 150 is circular in shape, but may be rectangular or in other shapes. The candidate acquisition unit 20 moves the assumed motion path 130 in parallel to the first direction 141 so that the assumed motion path 130 passes through the passing point set on the plane 150, as shown in FIG. Figure 7 . When acquiring a new motion path candidate 135, the candidate acquisition unit 20 changes the position of the passing point on the plane 150. Then, the candidate acquisition unit 20 moves the assumed motion path 130 in parallel in the first direction 141 so that the assumed motion path 130 passes through the passing point after the position change, thereby acquiring a new motion path candidate 135.
[0081] Figure 8 1 is a schematic diagram for explaining an example of a method for setting the position of the passing point 155 on the plane 150. The position of the passing point 155 on the plane 150 is represented, for example, in polar coordinate form. Figure 8 As shown in FIG. 1 , a starting line 152 extending from an intersection point 151 of the plane 150 and the assumed motion path 130 is set on the plane 150. The starting line 152 is perpendicular to the assumed motion path 130. The position of the passing point 155 on the plane 150 is represented by a set (r, α) of a distance r from the intersection point 151 to the passing point 155 and a deflection angle α from the starting line 152 to the passing point 155. The distance r and the deflection angle α are variables.
[0082] The candidate acquisition unit 20 can change the position (r, α) of the passing point 155 by changing the combination of the set values of the distance r and the deflection angle α. If the position (r, α) of the passing point 155 is changed, the acquired motion path candidate 135 changes. Therefore, the candidate acquisition unit 20 can acquire a plurality of motion path candidates 135 by changing the combination of the set values of the distance r and the deflection angle α.
[0083] It is assumed that the direction of the first direction 141 in which the motion path 130 moves in parallel is determined by α. It is assumed that the first direction 141 in which the motion path 130 moves in parallel is a direction in which the angle of deviation from the starting line 152 to the first direction 141 is α. It is assumed that the motion path 130 moves in the first direction 141 in which the angle of deviation from the starting line 152 is α. In addition, it is assumed that the moving distance of the motion path 130 is determined by r. It is assumed that the motion path 130 moves in parallel by a distance r.
[0084] The candidate acquisition unit 20 changes the value of α by a given angle between 0 degrees and less than 360 degrees, for example. The given angle may be 10 degrees, 1 degree, or other values. The given angle may be set, for example, based on the length of the shortest side of each side of the six rectangular parallelepipeds 110 representing the shape of the robot 10.
[0085] The candidate acquisition unit 20, for example, changes the value of r by a given distance within a given range. The lower limit value of the given range is, for example, set to be greater than 0. The upper limit value of the given range can be set, for example, according to the size of the real workspace 100. Alternatively, the upper limit value of the given range can be set, for example, according to the length of the longest side among the sides of at least one rectangular parallelepiped representing the shape of the obstacle 60. The given distance can be set, for example, according to the length of the shortest side among the sides of the six rectangular parallelepipeds 110 representing the shape of the robot 10.
[0086] In this example, as the setting value of α, for example, U1 setting values (U1 is an integer greater than or equal to 2) are prepared, and as the setting value of r, for example, U2 setting values (U2 is an integer greater than or equal to 2) are prepared. In this case, there are (U1×U2) combinations of the setting values of r and α. Therefore, the candidate acquisition unit 20 can set (U1×U2) passing points 155 on the plane 150. Therefore, the candidate acquisition unit 20 can obtain (U1×U2) motion path candidates. In this example, the given number T=U1×U2 of motion path candidates that the candidate acquisition unit 20 can obtain.
[0087] Thereafter, the candidate acquisition unit 20 sets the total number of the passing points 155 that can be set on the plane 150 to S (an integer equal to or greater than 2). In this example, S=T=U1×U2.
[0088] Fig. 9 1 is a schematic diagram showing an example of (U1×U2) passing points 155. Fig. 9 In the example, U1=12, U2=5. Fig. 9 In the example of , 0 degrees, 30 degrees, 60 degrees, 90 degrees, 120 degrees, 150 degrees, 180 degrees, 210 degrees, 240 degrees, 270 degrees, 300 degrees, and 330 degrees are prepared as setting values of α.
[0089] In step s1 of the motion path setting process, the candidate acquisition unit 20 first sets the combination of the setting values of r and α to a combination that has not been set among the S combinations. Next, the candidate acquisition unit 20 uses the passing point 155 whose position is determined by the combination of the setting values of r and α to move the assumed motion path 130 parallel to the first direction 141 so that the assumed motion path 130 passes through the passing point 155. In other words, the candidate acquisition unit 20 moves the assumed motion path 130 parallel to the first direction 141 so that the assumed motion path 130 passes through an unused passing point 155 among the S passing points 155 that can be set, that is, a passing point 155 that has not passed through the assumed motion path 130 so far. Next, as Figure 7 As in the example of FIG. 1 , the candidate acquisition unit 20 connects one end 131a of the assumed action path 130f after the movement is completed and the starting point 120 with a straight path 132a, and connects one end 131b of the assumed action path 130f after the movement is completed and the end point 121 with a straight path 132b. Then, the candidate acquisition unit 20 sets the path from the starting point 120 to the end point 121, which is composed of the assumed action path 130f after the movement is completed, the straight path 132a, and the straight path 132b, as one action path candidate 135. Thus, in step s1, one action path candidate 135 that has not yet been obtained among the given number T of action path candidates is obtained as a new action path candidate 135.
[0090] In step s4 of the motion path setting process, when all of the (U1×U2) combinations are set as the combinations of the set values of r and α, the candidate acquisition unit 20 determines that all of the given number T of motion path candidates have been acquired, and determines that a new motion path candidate 135 cannot be acquired. In other words, when all of the S settable through points 155 are used, the candidate acquisition unit 20 determines that all of the given number T of motion path candidates have been acquired, and determines that a new motion path candidate 135 cannot be acquired. On the other hand, when there is a combination that has not been set as the combination of the set values of r and α among the (U1×U2) combinations, the candidate acquisition unit 20 determines that a new motion path candidate 135 can be acquired. In other words, when there is an unused through point 155 among the S settable through points 155, the candidate acquisition unit 20 determines that a new motion path candidate 135 can be acquired.
[0091] In addition, the assumed motion path 130 at the initial position, the assumed motion path 130 connecting the start point 120 and the end point 121 with the shortest distance, can be used as a motion path candidate 135. The assumed motion path 130 at the initial position can also be said to be the assumed motion path 130 passing through the passing point 155 when r=0.
[0092] In the above example, the position of the passing point 155 is represented by polar coordinates, but the method of setting the position of the passing point 155 is not limited thereto. Fig.10 This is a schematic diagram for explaining another example of the method of setting the position of the passing point 155.
[0093] like Fig.10 As shown in FIG. 1 , the candidate acquisition unit 20 sets grid lines 156 (also referred to as grid lines 156) on, for example, a square plane 150 to divide the plane 150 into a grid. At this time, for example, the grid lines 156 are set on the plane 150 so that the intersection 151 between the plane 150 and the provisional action path 130 is located at the center of the grid lines 156.
[0094] The candidate acquisition unit 20 sequentially sets the plurality of grid points 157 in the grid lines 156 as the passing points 155. The plurality of grid points 157 in the grid lines 156 become the plurality of passing points 155 that can be set in the plane 150. Fig.10 The candidate acquisition unit 20 may include the intersection 151 as shown, or may not include the intersection 151. The candidate acquisition unit 20 can change the motion path candidate 135 used in step s2 by changing the grid point 157 set as the through point 155. The candidate acquisition unit 20 can acquire the same number of motion path candidates as the number of the plurality of grid points 157. When the plurality of grid points 157 include the intersection 151, the tentative motion path 130i at the initial position is used as one motion path candidate 135.
[0095] In step s1 of the motion path setting process, the candidate acquisition unit 20 first sets the grid points 157 that have not been set as the passing points 155 among the plurality of grid points 157 as the passing points 155. Next, the candidate acquisition unit 20 moves the assumed motion path 130 parallel to the first direction 141 so that the assumed motion path 130 passes through the set passing points 155. Next, as shown in FIG. Figure 7 As in the example of , the candidate acquisition unit 20 generates a path obtained by connecting the two ends of the assumed action path 130f after the movement is completed to the starting point 120 and the end point 121, respectively, and generates an action path candidate 135. Thus, in step s1, an action path candidate 135 that has not been obtained among the given number T of action path candidates 135 is obtained as a new action path candidate 135.
[0096] In step s4 of the action path setting process, when all of the plurality of grid points 157 are set as the through points 155 (in other words, when all of the S through points 155 that can be set are used), the candidate acquisition unit 20 determines that all of the given number T of action path candidates have been acquired, and determines that a new action path candidate cannot be acquired. On the other hand, when there is a grid point 157 that has not been set as the through point 155 among the plurality of grid points 157 (in other words, when there is an unused through point 155 among the S through points 155 that can be set), the candidate acquisition unit 20 determines that a new action path candidate can be acquired.
[0097] <An Example of Interference Determination Processing>
[0098] In step s2, the determination unit 21 determines whether the robot 10 and the obstacle 60 interfere with each other when the given part P of the robot 10 exists at a certain position (also referred to as a focus position) on the motion path candidate 135. The focus position on the motion path candidate 135 is the position of one point included in a plurality of points representing the motion path candidate 135. In this example, the posture of the robot 10 is uniquely set according to the position of the given part P of the robot 10. The robot information 31 in the storage unit 3 contains information for determining the posture of the robot 10 corresponding to each position in the real work space 100 of the given part P of the robot 10. The determination unit 21 determines the posture and shape of the robot 10 when the given part P of the robot 10 exists at the focus position on the motion path candidate 135 based on the robot information 31. In addition, the determination unit 21 determines the position and shape of the obstacle 60 based on the obstacle information 32 in the storage unit 3. Then, the determination unit 21 determines whether the robot 10 interferes with the obstacle 60 when the given part P of the robot 10 is located at the focus position on the motion path candidate 135 based on the posture and shape of the robot 10 when the given part P of the robot 10 is located at the focus position on the motion path candidate 135, and the position and shape of the obstacle 60.
[0099] The determination unit 21 sequentially uses each position from the starting point 120 to the end point 121 on the motion path candidate 135 (in other words, the position of each of the plurality of points representing the motion path candidate 135) as the focus position, and determines whether the robot 10 and the obstacle 60 interfere with each other when the given part P of the robot 10 exists at the focus position. Then, when the determination unit 21 determines that the robot 10 and the obstacle 60 do not interfere with each other at all positions on the motion path candidate 135 (in other words, all positions of the plurality of points representing the motion path candidate 135), it determines that the robot 10 does not interfere with the obstacle in the motion path candidate 135 (determined as "No" in step s2). On the other hand, when the determination unit 21 determines that the robot 10 and the obstacle 60 interfere with each other when the given part P exists at any position on the motion path candidate 135 (in other words, when the given part P exists at the position of any of the plurality of points representing the motion path candidate 135), it determines that the robot 10 interferes with the obstacle in the motion path candidate 135 (determined as "Yes" in step s2).
[0100] In addition, sometimes, due to the performance of the robot 10, a given part P of the robot 10 cannot exist at the position of interest on the motion path candidate 135. For example, when the position of interest on the motion path candidate 135 exists outside the movable range of the robot 10 in the real workspace 100, the given part P of the robot 10 cannot exist at the position of interest. The movable range of the robot 10 is the range that the front end of the robot hand 12 can reach when the arm 11 turns in the state of maximum extension. In addition, when the position of interest on the motion path candidate 135 is located in the inaccessible area, the given part P of the robot 10 cannot exist at the position of interest. The inaccessible area is a range that the front end of the robot hand 12 cannot enter although it is within the movable range. The inaccessible area includes, for example, the base of the arm 11. In addition, when the posture of the robot 10 is a specific posture, the robot 10 cannot move in a specific direction. This specific posture is also called a singular point. Since there is a singular point in the posture of the robot 10, the given part P of the robot 10 cannot exist at the position of interest on the motion path candidate 135.
[0101] In this way, when the given part P of the robot 10 cannot exist at the position of interest on the motion path candidate 135, the motion path candidate 135 cannot be used in the setting of the motion path of the robot 10. That is, the motion path candidate 135 (also referred to as the special motion path candidate 135) including the point where the given part P of the robot 10 cannot be located cannot be used in the setting of the motion path of the robot 10. Therefore, the determination unit 21 can perform interference determination processing only on the motion path candidate 135 that does not meet the special motion path candidate 135. In this case, the special motion path candidate 135 is not used in the setting of the motion path. The robot information 31 includes information for determining the place where the given part P of the robot 10 cannot be located. The determination unit 21 determines whether the motion path candidate 135 meets the special motion path candidate 135 based on the information.
[0102] Hereinafter, an operation path candidate determined that the robot 10 does not interfere with the obstacle 60 may be referred to as a non-interference path candidate. Also, an operation path candidate determined that the robot 10 interferes with the obstacle 60 may be referred to as an interference path candidate.
[0103] In addition, when the determination unit 21 can obtain a given number T of action path candidates, it can perform interference determination processing on the given number T of action path candidates, for example, in order from near to far relative to the assumed action path 130 of the initial position. Then, if the determination unit 21 initially finds a non-interference path candidate, it may not perform interference determination processing thereafter. In this case, the determination unit 21 sometimes performs interference determination processing on only a part of the given number T of action path candidates obtained by the candidate acquisition unit 20. The path setting unit 22 can set the non-interference path candidate initially found by the determination unit 21 as the action path.
[0104] As described above, in this example, since a plurality of motion path candidates are obtained based on the assumed motion path 130 of the minimum distance connecting the start point 120 and the end point 121 of the robot motion, the motion path setting device 1 can efficiently set the motion path of the robot 10 .
[0105] In addition, in this example, since the candidate acquisition unit 20 acquires the plurality of motion path candidates 135 by moving the tentative motion path 130 , it is possible to acquire the plurality of motion path candidates 135 through a simple process of comparing the tentative motion paths 130 .
[0106] As described above, when the path setting unit 22 sets the motion path of the robot 10, the control unit 2 sets the movement of the robot 10 in the set motion path based on the set motion path (also referred to as the set motion path). Specifically, the control unit 2 sets the movement of each joint of the arm 11 in the set motion path.
[0107] Here, the multiple points representing the set motion path are respectively referred to as set path points. In addition, the elapsed time from the start of the operation of the robot 10 is referred to as the motion elapsed time. The control unit 2 first obtains the robot posture when the given part P of the robot 10 is located at the set path point for each set path point of the set motion path. Specifically, the control unit 2 obtains the rotation angle θ of each joint of the arm 11 when the given part P of the robot 10 is located at the set path point for each set path point of the set motion path, as the set rotation angle θ.
[0108] Hereinafter, the set rotation angle θ of a certain joint of the arm 11 when a given part P of the robot 10 is located at a certain set path point is referred to as the set rotation angle θ of the certain joint at the certain set path point. In addition, the set path point of interest is referred to as the set path point of interest, and the joint of interest of the robot 10 is referred to as the joint of interest.
[0109] The control unit 2 determines the elapsed time of the action corresponding to the set rotation angle θ of the joint of interest at the set path point of interest. The so-called elapsed time of the action corresponding to the set rotation angle θ of the joint of interest means the elapsed time of the action when the joint of interest should take the set rotation angle θ. The set rotation angle θ of the joint of interest corresponding to a certain action path time in the set action path means the rotation angle θ that the joint of interest should take at the certain action elapsed time. The control unit 2 determines the elapsed time of the action corresponding to the set rotation angle θ of the joint of interest at the set path point for each of the multiple set path points representing the set action path. Thus, when the robot 10 sets the action path action, it is roughly set what kind of rotation angle θ the joint of interest should take. That is, the general action of the joint of interest in the set action path is set.
[0110] Here, the upper limit value of the rotation speed and the upper limit value of the rotation acceleration of each joint of the arm 11 are stored in the storage unit 3. When the control unit 2 sets the approximate movement of the joint of interest in the set motion path, the rotation speed and the rotation acceleration of the joint of interest do not exceed the upper limit value of the rotation speed and the upper limit value of the rotation acceleration, respectively. The control unit 2 determines the motion elapsed time corresponding to the set rotation angle θ of the joint of interest at each set path point of the set motion path based on the upper limit value of the rotation speed and the upper limit value of the rotation acceleration in the storage unit 3. That is, the control unit 2 sets the approximate movement of the joint of interest in the set motion path based on the upper limit value of the rotation speed and the upper limit value of the rotation acceleration. The control unit 2 similarly sets the approximate movement of each joint of the arm 11 in the set motion path. Thus, for each joint of the arm 11, a plurality of combinations of motion path times and set rotation angles θ can be obtained.
[0111] Next, the control unit 2 considers a two-dimensional orthogonal coordinate system (referred to as a specific coordinate system) in which the horizontal axis is set to the elapsed time of the action and the vertical axis is set to the set rotation angle θ corresponding to the elapsed time of the action. The control unit 2 depicts all combinations of the elapsed time of the action and the set rotation angle θ about the joint of interest in the specific coordinate system. Thus, a plurality of points representing the change of the set rotation angle θ of the joint of interest corresponding to the elapsed time of the action are set in the specific coordinate system. The plurality of points are respectively referred to as provisional action points. The number of the plurality of provisional action points set in the specific coordinate system is consistent with the number of the plurality of set path points representing the set action path. In the future, the number of the plurality of provisional action points is represented by N1 (N1 is an integer greater than 2).
[0112] Next, the control unit 2 sets an interpolation curve for interpolating N1 provisional action points of the joint of interest in a specific coordinate system. The interpolation curve may be, for example, a spline curve or other curves. Then, the control unit 2 sets N2 points for the set interpolation curve. The N2 points are respectively referred to as final action points. N2 is an integer greater than N1, for example, set to several thousand. The control unit 2 sets, for example, several thousand points of final action points for the interpolation curve. Hereinafter, the combination of the action elapsed time at a certain final action point and the set rotation angle θ is referred to as action point data representing the certain final action point.
[0113] The control unit 2 generates joint setting motion data representing the setting motion of the joint of interest based on the N2 final motion points. The joint setting motion data includes N2 motion point data representing the N2 final motion points respectively. The control unit 2 similarly generates joint setting motion data for each joint. Then, the control unit 2 sets the joint setting motion data for the multiple joints of the arm 11 as the robot setting motion data representing the setting motion of the robot 10 in the setting motion path. The robot setting motion data includes multiple joint setting motion data representing the motions of the multiple joints respectively.
[0114] As described above, in this example, since the set motion path is represented by N1 points which is smaller than the number of N2 motion point data directly used in the motion control of the robot 10, for example, the amount of calculation in the above-mentioned interference determination process can be reduced.
[0115] <Other Operation Examples of the Candidate Acquisition Unit>
[0116] In the above Fig. 9 as well as Fig.10 In the example of , the moving direction of the assumed motion path 130 is set over a range of 360 degrees around the intersection 151 , but for example, the candidate acquisition unit 20 may limit the moving direction of the assumed motion path 130 .
[0117] For example, the user inputs unnecessary acquisition information indicating that it is not necessary to acquire a motion path candidate passing through a certain range into the motion path setting device 1 through the input unit 5. For example, consider a case where it is known in advance that there must be an obstacle 60 below the assumed motion path 130i of the initial position. In this case, it is difficult to set the motion path of the robot 10 below the assumed motion path 130i of the initial position. Therefore, the user inputs unnecessary acquisition information indicating that it is not necessary to acquire a motion path candidate below the assumed motion path 130i of the initial position into the motion path setting device 1 through the input unit 5. The candidate acquisition unit 20 limits the moving range of the assumed motion path 130 based on the unnecessary acquisition information input from the user. For example, when the unnecessary acquisition information indicates that it is not necessary to acquire a motion path candidate below the assumed motion path 130i of the initial position, the candidate acquisition unit 20 does not set the passing point 155 below the assumed motion path 130i of the initial position. For example, in Fig.10 In the example, the case where the lower side of the intersection 151 is lower than the assumed motion path 130i of the initial position is considered. In this case, the candidate acquisition unit 20 does not Fig.10 The grid point 157 below the intersection point 151 is set as the passing point 155. Thus, in acquiring the motion path candidate, the provisional motion path 130 is not moved below its initial position. Therefore, the motion path candidate below the provisional motion path 130 passing through the initial position is not acquired.
[0118] Furthermore, the candidate acquisition unit 20 may acquire a plurality of motion path candidates by moving the provisional motion path 130 in parallel to the second direction 142 parallel to the provisional motion path 130 in addition to the first direction 141 .
[0119] Here, as the second direction 142 parallel to the provisional motion path 130, there is a second direction 142a (see later described) from the end point 121 side to the start point 120 side. Fig.11 ), and a second direction 142b from the starting point 120 side to the end point 121 side (see below) Fig.12 ) These two types.
[0120] The candidate acquisition unit 20 may, for example, move the assumed motion path 130 in parallel to the first direction 141, the second direction 142a, and the second direction 142b to acquire a plurality of motion path candidates. In this case, the candidate acquisition unit 20 may acquire one motion path candidate 135 in step s1 by: a method of acquiring one motion path candidate 135 by moving the assumed motion path 130 in parallel only to the first direction 141 (also referred to as the first acquisition method using parallel movement); a method of acquiring one motion path candidate 135 by moving the assumed motion path 130 in parallel to the first direction 141 and the second direction 142a (also referred to as the second acquisition method using parallel movement); and a method of acquiring one motion path candidate 135 by moving the assumed motion path 130 in parallel to the first direction 141 and the second direction 142b (also referred to as the third acquisition method using parallel movement). The candidate acquisition unit 20 can acquire a predetermined number T of motion path candidates 135 by parallel-translating the provisional motion path 130 in the first direction 141 , the second direction 142 a , and the second direction 142 b using the first, second, and third acquisition methods using parallel translation.
[0121] In the first acquisition method using parallel movement, Figure 7 In the second acquisition method using parallel movement, the candidate acquisition unit 20 first makes the tentative action path 130 as shown in FIG. Figure 7 At this point in time, it is assumed that the movement of the motion path 130 is not completed. Fig.11 As shown in FIG. 1 , the candidate acquisition unit 20 causes the assumed motion path 130 (also referred to as the assumed motion path 130v after the movement in the first direction) to move further in parallel to the second direction 142a. Thus, the movement of the assumed motion path 130 is completed. Next, the candidate acquisition unit 20 connects one end 131a of the assumed motion path 130f after the movement is completed and the starting point 120 with a straight path 132a, and connects one end 131b of the assumed motion path 130f after the movement is completed and the end point 121 with a straight path 132b. Then, the candidate acquisition unit 20 sets the path composed of the assumed motion path 130f after the movement is completed, the straight path 132a, and the straight path 132b as a motion path candidate 135.
[0122] In the third acquisition method using parallel movement, the candidate acquisition unit 20 first makes the tentative motion path 130 as shown in FIG. Figure 7 Then, the first direction 141 is parallel to the first direction 141. Fig.12As shown in FIG. 1 , the candidate acquisition unit 20 further moves the assumed motion path 130v after the movement in the first direction in parallel to the second direction 142b. Thus, the movement of the assumed motion path 130 is completed. Next, the candidate acquisition unit 20 connects one end 131a of the assumed motion path 130f after the movement is completed and the starting point 120 with a straight path 132a, and connects one end 131b of the assumed motion path 130f after the movement is completed and the end point 121 with a straight path 132b. Then, the candidate acquisition unit 20 sets the path composed of the assumed motion path 130f after the movement is completed, the straight path 132a, and the straight path 132b as a motion path candidate 135.
[0123] In the second acquisition method using parallel movement, the candidate acquisition unit 20 may move the assumed motion path 130 in parallel to the second direction 142a and then move it in parallel to the first direction 141. In the third acquisition method using parallel movement, the candidate acquisition unit 20 may move the assumed motion path 130 in parallel to the second direction 142b and then move it in parallel to the first direction 141.
[0124] In the second acquisition method using parallel movement, the candidate acquisition unit 20 can change the acquired motion path candidate by changing the amount of movement of the assumed motion path 130 in the second direction 142a. In addition, in the third acquisition method using parallel movement, the candidate acquisition unit 20 can change the acquired motion path candidate by changing the amount of movement of the assumed motion path 130 in the second direction 141b. As the setting value of the amount of movement of the assumed motion path 130 in the second direction 142a, for example, V1 setting values (V1 is an integer greater than 1) are prepared. In addition, as the setting value of the amount of movement of the assumed motion path 130 in the second direction 141b, for example, V2 setting values (V2 is an integer greater than 1) are prepared. The value of V1 and the value of V2 may be the same as or different from each other.
[0125] In the following description, the passing point 155 of interest (in other words, the passing point 155 of the description object) is referred to as the passing point of interest 155. In addition, the assumed motion path 130 that is moved parallel to the first direction 141 so that the assumed motion path 130 passes through the passing point of interest 155 is referred to as the assumed motion path of interest 130v after the movement in the first direction.
[0126] In the first acquisition method using parallel movement, the candidate acquisition unit 20 can use the tentative action path of interest 130v after the first direction movement to acquire a motion path candidate 135 (see Figure 7In the second acquisition method using parallel movement, the candidate acquisition unit 20 can use the result of parallel moving the assumed action path 130v of interest after moving in the first direction by a set value in the second direction 142a to acquire a motion path candidate 135 (reference Fig.11 ). Since V1 set values are prepared as set values of the movement amount of the assumed action path 130 in the second direction 142a, the candidate acquisition unit 20 can obtain V1 action path candidates 135 by parallel moving the assumed action path 130v of interest after moving in the first direction by each set value in the second direction 142a. Similarly, in the second acquisition method using parallel movement, the candidate acquisition unit 20 can obtain V2 action path candidates 135 by parallel moving the assumed action path 130v of interest after moving in the first direction by each set value in the second direction 141b.
[0127] Thus, when focusing on a certain passing point 155, the candidate acquisition unit 20 can acquire (1+V1+V2) action path candidates 135. Therefore, the candidate acquisition unit 20 can acquire a total of (S×(1+V1+V2)) action path candidates 135. In this case, the given number of action path candidates 135 that the candidate acquisition unit 20 can acquire is T=S×(1+V1+V2).
[0128] In step s1 of the motion path setting process, the candidate acquisition unit 20 can acquire one motion path candidate 135 that has not been acquired so far from the (S×(1+V1+V2)) motion path candidates 135 that can be acquired. In step s4 of the motion path setting process, the candidate acquisition unit 20 determines that a new motion path candidate 135 can be acquired when there is an unacquired motion path candidate 135 among the (S×(1+V1+V2)) motion path candidates 135 that can be acquired. On the other hand, the candidate acquisition unit 20 determines that a new motion path candidate 135 cannot be acquired when all of the (S×(1+V1+V2)) motion path candidates 135 that can be acquired have been acquired.
[0129] In addition, the candidate acquisition unit 20 may not move the assumed motion path 130 in parallel to the second direction 142a. In this case, T=S×(1+V2), and the candidate acquisition unit 20 can acquire a total of (S×(1+V2)) motion path candidates 135. In addition, the candidate acquisition unit 20 may not move the assumed motion path 130 in parallel to the second direction 142b. In this case, T=S×(1+V1), and the candidate acquisition unit 20 can acquire a total of (S×(1+V1)) motion path candidates 135.
[0130] In this way, the candidate acquisition unit 20 can acquire a plurality of motion path candidates 135 by parallel-moving the provisional motion path 130 in the first direction 141 and the second direction 142, thereby acquiring various motion path candidates 135. Therefore, the motion path of the robot 10 can be appropriately set.
[0131] In the above example, the movement of the assumed motion path 130 in the case of acquiring the motion path candidate 135 is parallel movement, but it may also be rotational movement. That is, the candidate acquisition unit 20 may also rotate the assumed motion path 130 to acquire a plurality of motion path candidates 135. For example, the candidate acquisition unit 20 may rotate the assumed motion path 130 around the first rotation axis 161 and around the second rotation axis 162 to acquire a plurality of motion path candidates 135.
[0132] Fig.13 This is a schematic diagram showing an example of how the temporary motion path 130 is rotationally moved around the first rotation axis 161 . Fig.14 1 is a schematic diagram showing an example of how the virtual motion path 130 is rotated and moved around the second rotation axis 162. Fig.13 FIG. 1 shows an example of the actual work space 100 as viewed from the side of the work tables 15 and 16. Fig.14 2 shows an example of how the real work space 100 is viewed from above the work tables 15 and 16 .
[0133] like Fig.13 as well as Fig.14 As shown, the first rotation axis 161 is set, for example, to be perpendicular to the assumed motion path 130 of the initial position and parallel to the floor on which the work tables 15 and 16 are installed. The second rotation axis 162 is set, for example, to be perpendicular to the assumed motion path 130 of the initial position and orthogonal to the first rotation axis 161. The first rotation axis 161 and the second rotation axis 162 pass through the starting point 120, for example.
[0134] In this example, since the first rotation axis 161 passes through the starting point 120, when the motion path 130 is assumed to rotate about the first rotation axis 161, although the end of the motion path 130 on the end point 121 side is assumed to move, the end of the motion path 130 on the starting point 120 side is assumed not to move. In addition, since the second rotation axis 162 passes through the starting point 120, when the motion path 130 is assumed to rotate about the second rotation axis 162, although the end of the motion path 130 on the end point 121 side is assumed to move, the end of the motion path 130 on the starting point 120 side is assumed not to move.
[0135] The candidate acquisition unit 20 can change the acquired motion path candidate 135 by changing the rotation angle β1 of the assumed motion path 130 around the first rotation axis 161 . The candidate acquisition unit 20 can also change the acquired motion path candidate 135 by changing the rotation angle β2 of the assumed motion path 130 around the second rotation axis 162 .
[0136] The candidate acquisition unit 20, for example, changes the set value of the rotation angle β1 by a first given angle between greater than 0 degrees and less than 360 degrees. The first given angle may be 10 degrees, 1 degree, or other values. The first given angle may be set, for example, based on the length of the shortest side of each of the six rectangular parallelepipeds 110 representing the shape of the robot 10. In addition, the candidate acquisition unit 20, for example, changes the set value of the rotation angle β2 by a second given angle between greater than 0 degrees and less than 360 degrees. The second given angle may be 10 degrees, 1 degree, or other values. The second given angle may be set, for example, based on the length of the shortest side of each of the six rectangular parallelepipeds 110 representing the shape of the robot 10. The second given angle may be the same as or different from the first given angle.
[0137] In this example, for example, W1 (W1 is an integer greater than or equal to 1) setting values are prepared as the setting value of β1, and for example, W2 (W2 is an integer greater than or equal to 1) setting values are prepared as the setting value of β2.
[0138] In this example, as methods for the candidate acquisition unit 20 to acquire a motion path candidate 135 in step s1, there are: a method of acquiring a motion path candidate 135 by rotating the assumed motion path 130 only around the first rotation axis 161 (also referred to as the first acquisition method using rotational movement); a method of acquiring a motion path candidate 135 by rotating the assumed motion path 130 only around the second rotation axis 162 (also referred to as the second acquisition method using rotational movement); and a method of acquiring a motion path candidate 135 by rotating the assumed motion path 130 around the first rotation axis 161 and the second rotation axis 162 (also referred to as the third acquisition method using rotational movement). The candidate acquisition unit 20 can use the first acquisition method using rotational movement, the second acquisition method, and the third acquisition method to rotate the assumed motion path 130 around the first rotation axis 161 and the second rotation axis 162 to acquire a given number T of motion path candidates 135.
[0139] In the first acquisition method using rotational movement, Fig.13As shown, the candidate acquisition unit 20 first rotates the assumed action path 130 around the first rotation axis 161 by a certain set value of β1. As a result, the movement of the assumed action path 130 is completed. Next, the candidate acquisition unit 20 connects one end 131b of the assumed action path 130f after the movement is completed and the end point 121 with a straight path 132b. In this example, when the assumed action path 130 rotates around the first rotation axis 161, since the end on the starting point 120 side of the assumed action path 130 does not move, the straight path 132a is not set. Then, the candidate acquisition unit 20 sets the path composed of the assumed action path 130f after the movement is completed and the straight path 132b as an action path candidate 135. Since W1 set values are prepared as the set value of β1, the candidate acquisition unit 20 can use the first acquisition method using rotational movement to obtain W1 action path candidates 135.
[0140] In the second acquisition method using rotational movement, Fig.14 As shown, the candidate acquisition unit 20 first rotates the assumed action path 130 around the second rotation axis 162 by a certain set value of β2. As a result, the movement of the assumed action path 130 is completed. Next, the candidate acquisition unit 20 connects one end 131b of the assumed action path 130f after the movement is completed and the end point 121 with a straight path 132b. In this example, when the assumed action path 130 rotates around the second rotation axis 162, since the end on the starting point 120 side of the assumed action path 130 does not move, the straight path 132a is not set. Then, the candidate acquisition unit 20 sets the path composed of the assumed action path 130f after the movement is completed and the straight path 132b as an action path candidate 135. Since W2 set values are prepared as the set values of β2, the candidate acquisition unit 20 can use the second acquisition method using rotational movement to obtain W2 action path candidates 135.
[0141] In the third acquisition method using rotational movement, for example, Fig.13As shown, the candidate acquisition unit 20 first rotates the assumed action path 130 around the first rotation axis 161 by a certain set value of β1. Here, the movement of the assumed action path 130 is not completed. Next, the candidate acquisition unit 20 rotates the assumed action path 130 that has been rotated around the first rotation axis 161 by a certain set value of β2 around the second rotation axis 162. As a result, the movement of the assumed action path 130 is completed. Next, the candidate acquisition unit 20 connects one end 131b of the assumed action path 130f after the movement is completed and the end point 121 with a straight path 132b. Then, the candidate acquisition unit 20 sets the path composed of the assumed action path 130f after the movement is completed and the straight path 132b as an action path candidate 135. Since W1 set values are prepared as the set values of β1 and W2 set values are prepared as the set values of β2, the candidate acquisition unit 20 can use the third acquisition method using rotational movement to acquire (W1×W2) motion path candidates 135. In the third acquisition method using rotational movement, it is also possible to rotate the motion path 130 around the first rotation axis 161 after rotating it around the second rotation axis 162.
[0142] In this way, the candidate acquisition unit 20 can use the first acquisition method using rotational movement to acquire W1 motion path candidates 135, can use the second acquisition method using rotational movement to acquire W2 motion path candidates 135, and can use the third acquisition method using rotational movement to acquire (W1×W2) motion path candidates 135. Therefore, the given number T of motion path candidates 135 that the candidate acquisition unit 20 can acquire is (W1+W2+(W1×W2)).
[0143] In the above example, the candidate acquisition unit 20 rotates the assumed motion path 130 around the first rotation axis 161 and the second rotation axis 162, but the assumed motion path 130 may be rotated only around the first rotation axis 161 to acquire a plurality of motion path candidates 135. In this case, T=W1. In addition, the candidate acquisition unit 20 may also rotate the assumed motion path 130 around the second rotation axis 162 to acquire a plurality of motion path candidates 135. In this case, T=W2.
[0144] The positions of the first rotation axis 161 and the second rotation axis 162 are not limited to the above-mentioned examples. For example, the first rotation axis 161 and the second rotation axis 162 may pass through the end point 121. In this case, when the assumed motion path 130 rotates around at least one of the first rotation axis 161 and the second rotation axis 162, one end 131a of the assumed motion path 130f after the movement is completed moves from the starting point 120, and one end 131b of the assumed motion path 130f after the movement is completed does not move from the end point 121. In such a case, the candidate acquisition unit 20 acquires a path consisting of the assumed motion path 130f after the movement is completed and a straight path 132a connecting the one end 131a thereof and the starting point 120 as a motion path candidate 135. In addition, the first rotation axis 161 and the second rotation axis 162 may pass through a portion other than the two ends (for example, a midpoint) of the assumed motion path 130i at the initial position. In this case, when the assumed motion path 130 rotates around at least one of the first rotation axis 161 and the second rotation axis 162, the two ends 131a and 131b of the assumed motion path 130f after the movement respectively move from the starting point 120 and the end point 121. In this case, the candidate acquisition unit 20 acquires a path consisting of the assumed motion path 130f after the movement, a straight path 132a connecting one end 131a of the assumed motion path 130f and the starting point 120, and a straight path 132b connecting one end 131b of the assumed motion path 130f and the end point 121 as one motion path candidate 135.
[0145] In addition, the candidate acquisition unit 20 may parallel move and rotate the assumed motion path 130 to acquire a plurality of motion path candidates 135. For example, the candidate acquisition unit 20 may parallel move and rotate the assumed motion path 130 in the first direction 141 to acquire a plurality of motion path candidates 135. In this case, there are generally three methods for the candidate acquisition unit 20 to acquire one motion path candidate 135. As a first method, the candidate acquisition unit 20 may perform a first method such as: Figure 7 The provisional motion path 130 is moved parallel to the first direction 141 to obtain a motion path candidate 135. As a second method, the candidate acquisition unit 20 may Fig.13 as well as Fig.14 In this way, the assumed motion path 130 is rotated to obtain a motion path candidate 135. As a third method, the candidate acquisition unit 20 moves the assumed motion path 130 parallel to the first direction 141 and rotates it to obtain a motion path candidate 135. The candidate acquisition unit 20 can use the first method, the second method, and the third method to move the assumed motion path 130 parallel to and rotate it to obtain a given number T of motion path candidates 135.
[0146] Fig.151 is a schematic diagram showing an example of a hypothetical motion path 130 in which the object moves in rotation after parallel movement in the first direction 141. Fig.15 In the example of FIG. 1 , the assumed motion path 130 is rotationally moved about the first rotation axis 161 after being parallel-moved in the first direction 141 . That is, the assumed motion path 130 v is rotationally moved about the first rotation axis 161 after being moved in the first direction.
[0147] exist Fig.15 In the example of , when the candidate acquisition unit 20 acquires one motion path candidate 135, the end 131a of the assumed motion path 130f that has completed movement, which is a rotational movement around the first rotation axis 161 after parallel movement in the first direction 141, and the start point 120 are connected by a straight path 132a. In addition, the candidate acquisition unit 20 connects one end 131b of the assumed motion path 130f that has completed movement and the end point 121 by a straight path 132b. Then, the candidate acquisition unit 20 sets the path composed of the assumed motion path 130f after the movement, the straight path 132a, and the straight path 132b as one motion path candidate 135.
[0148] In addition, the assumed motion path 130 may be parallel moved and rotated about the second rotation axis 162. In addition, the assumed motion path 130 may be parallel moved, rotated about the first rotation axis 161, and rotated about the second rotation axis 162. The order of parallel moving and rotating the assumed motion path 130 is not limited to the above.
[0149] Alternatively, the candidate acquisition unit 20 may perform parallel movement in the first direction 141, parallel movement in the second direction 142, and rotational movement on the assumed action path 130 to acquire a plurality of action path candidates 135. In this case, there are generally five methods for the candidate acquisition unit 20 to acquire one action path candidate 135. As a first method, the candidate acquisition unit 20 may perform parallel movement in the first direction 141, parallel movement in the second direction 142, and rotational movement. Figure 7 The provisional motion path 130 is moved parallel to the first direction 141 to obtain a motion path candidate 135. As a second method, the candidate acquisition unit 20 may Fig.11 as well as Fig.12 As a third method, the candidate acquisition unit 20 moves in parallel in the first direction 141 and the second direction 142 to obtain one motion path candidate 135. Fig.13 as well as Fig.14 The provisional motion path 130 is rotated and moved in this way to obtain a motion path candidate 135. As a fourth method, the candidate acquisition unit 20 may Fig.15As in the example of the example of the present invention, the assumed motion path 130 is parallel moved in the first direction 141 and rotated to obtain a motion path candidate 135. As a fifth method, the candidate acquisition unit 20 makes the assumed motion path 130 parallel moved in the first direction 141 and the second direction 142 and rotated to obtain a motion path candidate 135. The candidate acquisition unit 20 can use the first method, the second method, the third method, the fourth method, and the fifth method to obtain a given number T of motion path candidates 135.
[0150] In this way, when the candidate acquisition unit 20 rotationally moves the tentative motion path 130 to acquire a plurality of motion path candidates 135 , the plurality of motion path candidates 135 can be acquired by a simple process of comparing the tentative motion paths 130 .
[0151] In addition, the candidate acquisition unit 20 may deform the assumed motion path 130 to obtain a plurality of motion path candidates 135. For example, the candidate acquisition unit 20 may deform the assumed motion path 130 into a curve to obtain a plurality of motion path candidates 135. The curve may be a Bezier curve, a spline curve, or a quadratic curve. The shapes of the Bezier curve, the quadratic curve, and the spline curve are set at three points on the real workspace 100. The candidate acquisition unit 20 may deform the assumed motion path 130 into a plurality of curves, and set each of the plurality of curves as a motion path candidate 135.
[0152] Fig.161 is a schematic diagram showing an example of how the assumed motion path 130 is deformed into a quadratic Bezier curve connecting the starting point 120 and the end point 121. When the candidate acquisition unit 20 acquires a motion path candidate 135, for example, on the real work space 100, it sets a control point of the Bezier curve other than the starting point 120 and the end point 121. In addition, the candidate acquisition unit 20 sets the starting point 120 as one of the starting point and the end point of the Bezier curve, and sets the end point 121 as the other of the starting point and the end point of the Bezier curve. Thus, by setting three points on the real work space 100, the candidate acquisition unit 20 can deform the assumed motion path 130 into a quadratic Bezier curve connecting the starting point 120 and the end point 121. The candidate acquisition unit 20 sets the assumed motion path 130 deformed into a quadratic Bezier curve as a motion path candidate 135. The shape of the quadratic Bezier curve is determined by the position of the control point. Therefore, the candidate acquisition unit 20 can change the acquired motion path candidate 135 by changing the position of the control point. By preparing a plurality of setting values for the position of the control point, the candidate acquisition unit 20 can deform the assumed motion path 130 into a plurality of Bezier curves of different shapes. The control point can be set, for example, on a plane 150 orthogonal to the assumed motion path 130i at the initial position, similarly to the through point 155. The position of the control point on the plane 150 can be, for example, Figure 8 In addition, Fig.10 As shown, grid points 157 set on the plane 150 can be set as control points.
[0153] In addition, the candidate acquisition unit 20 may move and deform the provisional motion path 130 to acquire a plurality of motion path candidates 135. In this case, there are generally three methods for the candidate acquisition unit 20 to acquire one motion path candidate 135. As a first method, the candidate acquisition unit 20 may Figure 7 , Figure 11 to Figure 15 As a second method, the candidate acquisition unit 20 moves the provisional motion path 130 as shown in FIG. Fig.16 In this way, the assumed motion path 130 is deformed to obtain one motion path candidate 135. As a third method, the candidate acquisition unit 20 moves and deforms the assumed motion path 130 to obtain one motion path candidate 135. The candidate acquisition unit 20 can use the first method, the second method, and the third method to move and deform the assumed motion path 130 to obtain a given number T of motion path candidates 135.
[0154] Fig.171 is a schematic diagram for explaining an example of the operation of the candidate acquisition unit 20 moving and deforming the provisional motion path 130 to acquire one motion path candidate 135. When acquiring one motion path candidate 135, the candidate acquisition unit 20 moves the provisional motion path 130, for example. Fig.17 In the example of , the candidate acquisition unit 20 moves the tentative motion path 130 parallel to the first direction 141. Next, the candidate acquisition unit 20 deforms the moved tentative motion path 130 into a curve. Fig.17 In the example of , the candidate acquisition unit 20 deforms the assumed motion path 130v after the movement in the first direction into a quadratic Bezier curve. The candidate acquisition unit 20 sets one end 131a of the assumed motion path 130v after the movement in the first direction as one of the starting point and the end point of the Bezier curve, and sets one end 131b of the assumed motion path 130v after the movement in the first direction as the other of the starting point and the end point of the Bezier curve.
[0155] Next, the candidate acquisition unit 20 connects one end 131a of the assumed motion path 130 (also referred to as the assumed motion path 130g) that has been moved and deformed and the starting point 120 with a straight path 132a. In addition, the candidate acquisition unit 20 connects one end 131b of the assumed motion path 130g that has been moved and deformed and the end point 121 with a straight path 132b. Then, the candidate acquisition unit 20 sets the path consisting of the assumed motion path 130g that has been moved and deformed, the straight path 132a, and the straight path 132b as one motion path candidate 135. Alternatively, the candidate acquisition unit 20 may deform the assumed motion path 130 and then move it to obtain one motion path candidate 135.
[0156] In this way, when the candidate acquisition unit 20 deforms the tentative motion path 130 to acquire a plurality of motion path candidates 135 , the plurality of motion path candidates 135 can be acquired by a simple process of comparing the tentative motion paths 130 .
[0157] In the above example, the candidate acquisition unit 20 performs at least one of moving and deforming the entire region of the assumed motion path 130 to acquire a plurality of motion path candidates 135, but it is also possible to perform at least one of moving and deforming only a portion of the assumed motion path 130 to acquire at least one motion path candidate 135 of the given number T of motion path candidates 135. For example, the candidate acquisition unit 20 may perform at least one of moving and deforming a portion of the assumed motion path 130i at the initial position, including the region where the assumed motion path 130i interferes with the obstacle 60, to acquire a new motion path candidate 135 different from the assumed motion path 130i. The region where the assumed motion path 130i interferes with the obstacle 60 among the assumed motion paths 130i at the initial position can also be referred to as the region where the assumed motion path 130i hits the obstacle 60 among the assumed motion paths 130i at the initial position.
[0158] Fig.18 as well as Fig.19 This is a schematic diagram for explaining an example of the operation of the candidate acquisition unit 20 moving a partial path including an area where the assumed action path 130i interferes with the obstacle 60 in the assumed action path 130i at the initial position to acquire an action path candidate 135 different from the assumed action path 130i.
[0159] For example, the determination unit 21 sets a partial path 1310 of the moving object including an area 1300 interfering with the obstacle 60 (in other words, an area hitting the obstacle 60) in the assumed action path 130i at the initial position. Specifically, the determination unit 21 extracts, for example, a range of a line obtained by projecting the shape of the obstacle 60 onto the assumed action path 130i at the initial position as an overlapping portion. Then, the determination unit 21 sets the overlapping portion as the partial path 1310. The determination unit 21 can set the partial path 1310 based on the obstacle information 32.
[0160] The candidate acquisition unit 20 moves the partial path 1310 set in the determination unit 21 in the same manner as when the entire provisional action path 130 is moved, and acquires at least one new action path candidate 135. The movement of the partial path 1310 may be parallel movement, rotational movement, or a combination of parallel movement and rotational movement. Hereinafter, the partial path 1310 before movement included in the provisional action path 130i at the initial position may be referred to as the partial path 1310i at the initial position.
[0161] Fig.19 1 is a schematic diagram for explaining an example of the operation of the candidate acquisition unit 20 moving the partial path 1310 in the first direction 141 to acquire one action path candidate 135. Fig.19In the example of , the initial position partial path 1310i included in the initial position provisional motion path 130i does not include the starting point 120 and the end point 121. In this case, the candidate acquisition unit 20 connects the end 1311a located on the starting point 120 side of the initial position partial path 1310i among the two ends 1311a and 1311b of the partial path 1310 moving in the first direction 141 and the starting point 120 with a straight path 132a. In addition, the candidate acquisition unit 20 connects the end 1311b located on the end point 121 side of the initial position partial path 1310i among the two ends 1311a and 1311b of the partial path 1310 moving in the first direction 141 and the end point 121 with a straight path 132b. Then, the candidate acquisition unit 20 sets a path composed of the partial path 1310 moving in the first direction 141 , that is, the partial path 1310 after the movement, the straight path 132 a , and the straight path 132 b as one motion path candidate 135 .
[0162] The candidate acquisition unit 20 may Fig.16 In the case where the entire assumed motion path 130 is deformed, the partial path 1310 is deformed in the same manner to obtain a plurality of motion path candidates 135. Fig.17 In this way, when the entire assumed motion path 130 is moved and deformed, the partial path 1310 is moved and deformed in the same manner, thereby obtaining a plurality of motion path candidates 135 .
[0163] Fig. 20 1 is a schematic diagram showing an example of how a motion path candidate 135 is obtained by deforming a partial path 1310. Fig. 20 In the example, the first part 1321 of the assumed action path 130i at the initial position connecting one end of the deformed partial path 1310 and the starting point 120, the second part 1322 of the assumed action path 130i at the initial position connecting the other end of the deformed partial path 1310 and the end point 121, and the path formed by the deformed partial path 1310 are set as an action path candidate 135.
[0164] Fig.21 1 is a schematic diagram showing an example of how a motion path candidate 135 is obtained by moving and deforming a partial path 1310. Fig.21 In the example of , the partial path 1310 is parallel moved in the first direction 141 and then deformed to obtain a motion path candidate 135. Fig.21In the example of FIG. 1 , one end 1311a of the moved and deformed partial path 1310 and the starting point 120 are connected by a straight path 132a. In addition, one end 1311b of the moved and deformed partial path 1310 and the end point 121 are connected by a straight path 132b. Then, a path consisting of the moved and deformed partial path 1310, the straight path 132a, and the straight path 132b is set as one motion path candidate 135.
[0165] In this way, when the candidate acquisition unit 20 obtains at least one new motion path candidate 135 by moving and deforming at least one of the partial paths of the assumed motion path 130i of the initial position, including the area where the assumed motion path 130i interferes with the obstacle 60, the motion path of the robot 10 can be efficiently set.
[0166] In addition, the candidate acquisition unit 20 uses a partial path including an area where the robot 10 and the obstacle 60 interfere with each other in the assumed motion path 130i at the initial position, instead of the above-mentioned partial path 1310. That is, the candidate acquisition unit 20 can obtain at least one motion path candidate 135 by performing at least one of movement and deformation of a partial path (also referred to as a second partial path) including an area where the robot 10 and the obstacle 60 interfere with each other in the assumed motion path 130i at the initial position. In the assumed motion path 130i at the initial position, the area where the robot 10 and the obstacle 60 interfere with each other is an area where the robot 10 and the obstacle 60 interfere with each other when the robot 10 moves in the area. The determination unit 21 can perform the above-mentioned interference determination processing on the assumed motion path 130i at the initial position, and based on the result, determine the area where the robot 10 and the obstacle 60 interfere with each other in the assumed motion path 130i. Furthermore, the candidate acquisition unit 20 may acquire at least one of the motion path candidate 135 by performing at least one of moving and deforming the partial path 1310 , and acquire at least one of the motion path candidate 135 by performing at least one of moving and deforming the second partial path.
[0167] In addition, when the new action path candidate 135 still interferes with the obstacle 60, the candidate acquisition unit 20 can use a part of the new action path candidate 135 as a partial path to obtain a further new action path candidate 135, or can obtain a further new action path candidate 135 based on the partial path set in the new action path candidate 135.
[0168] <Other Operation Examples of Path Setting Section>
[0169] In the above example, the path setting unit 22 sets the non-interference path candidate 135 as the motion path of the robot 10 as it is, but the motion path may be set by deforming the non-interference path candidate 135. For example, the path setting unit 22 may set the motion path by deforming the non-interference path candidate 135 into a path that cuts off the corner of the non-interference path candidate 135. Fig. 22 1 is a schematic diagram for explaining an example of the operation of the path setting unit 22 in this case.
[0170] For example, consider Fig. 22 The non-interference path candidate 135n is deformed to set the motion path as shown on the upper side of the figure. The non-interference path candidate 135 includes, for example, the assumed motion path 130f after the movement is completed. The path setting unit 22 sets the motion path by, for example, deforming the non-interference path candidate 135n so that the angle formed by the assumed motion path 130f after the movement is completed and the straight path 132a is removed (in other words, the angle is removed).
[0171] like Fig. 22 As shown in the center of the figure, the path setting unit 22 sets, for example, a point 138x that is away from one end 131a to one end 131b on the assumed action path 130f. In addition, the path setting unit 22 sets, for example, a point 138y that is away from one end 131a to the starting point 120 on the straight path 132a. Then, the path setting unit 22 sets a straight path 139 that connects the point 138x and the point 138y.
[0172] Next, the determination unit 21 determines whether the robot 10 interferes with the obstacle 60 in the straight path 139 set in the path setting unit 22. That is, the determination unit 21 determines whether the robot 10 interferes with the obstacle when the given part P of the robot 10 moves on the straight path 139. The determination unit 21 can determine whether the robot 10 interferes with the obstacle 60 in the straight path 139 in the same manner as the above-mentioned interference determination process.
[0173] When the determination unit 21 determines that the robot 10 interferes with the obstacle 60 in the straight path 139, the path setting unit 22 sets the non-interference path candidate 135n as the motion path of the robot 10 without changing it. On the other hand, when the determination unit 21 determines that the robot 10 does not interfere with the obstacle 60 in the straight path 139, the path setting unit 22 sets the non-interference path candidate 135n as the motion path of the robot 10 without changing it. Fig. 22As shown in the figure below, the path setting unit 22 moves the point 138x on the assumed motion path 130f toward the end 131b by a given distance so that the point 138x is further away from the end 131a by a given distance. Furthermore, the path setting unit 22 moves the point 138y on the straight path 132a toward the starting point 120 by a given distance so that the point 138y is further away from the end 131a by a given distance. Then, the path setting unit 22 newly sets a straight path 139 connecting the moved point 138x and the moved point 138y. The given distance to move the points 138a and 138y can be set, for example, based on the length of the shortest side of each side of the six rectangular parallelepipeds 110 representing the shape of the robot 10.
[0174] In addition, the path setting unit 22 sets the point 138x at the one end 131b when the point 138x is moved toward the one end 131b by a given distance and the position of the point 138x exceeds the one end 131b. In addition, the path setting unit 22 sets the point 138y at the starting point 120 when the point 138y is further moved toward the starting point 120 by a given distance and the position of the point 138y exceeds the starting point 120.
[0175] Next, the determination unit 21 determines whether the robot 10 interferes with the obstacle 60 in the straight path 139 newly set by the path setting unit 22. When the path setting unit 22 determines that the robot 10 does not interfere with the obstacle 60 in the newly set straight path 139, the point 138x is further moved by a given distance toward the one end 131b, and the point 138y is further moved by a given distance toward the starting point 120. Thereafter, the path setting unit 22 operates in the same manner.
[0176] On the other hand, when the path setting unit 22 determines that the robot 10 interferes with the obstacle 60 in the newly set straight path 139, the path setting unit 22 deforms the non-interference path candidate 135n based on the previously set straight path 139, that is, the last straight path 139 in which it is determined that the robot 10 does not interfere with the obstacle 60. The path setting unit 22 deforms the non-interference path candidate 135n so that the previously set straight path 139 is used to replace the portion 301a connecting the previously set point 138x and one end 131a in the assumed action path 130f and the portion 302a connecting the previously set point 138y and one end 131a in the straight path 132a. Then, the path setting unit 22 sets the deformed non-interference path candidate 135n as the action path of the robot 10. Thus, as Fig.23As shown, a path consisting of the previously set straight path 139, the partial path 130ff of the assumed motion path 130f connecting the previously set point 138x and one end 131b, the partial path 132aa of the straight path 132a connecting the previously set point 138y and the starting point 120, and the straight path 132b is set as the motion path of the robot 10.
[0177] In the above example, the path setting unit 22 sets the non-interference path candidate 135n that is deformed so as to eliminate the angle formed by the assumed action path 130f and the straight path 132a as the action path, but the non-interference path candidate 135n that is deformed so as to eliminate the angle formed by the assumed action path 130f and the straight path 132b may be set as the action path. The method of deforming the non-interference path candidate 135n so as to eliminate the angle formed by the assumed action path 130f and the straight path 132b is the same as the method of deforming the non-interference path candidate 135n so as to eliminate the angle formed by the assumed action path 130f and the straight path 132a. In addition, the path setting unit 22 may set the non-interference path candidate 135n that is deformed so as to eliminate both the angle formed by the assumed action path 130f and the straight path 132a (also referred to as the first angle) and the angle formed by the assumed action path 130f and the straight path 132b (also referred to as the second angle) as the action path. Furthermore, when the path setting unit 22 deforms the non-interference path candidate 135n so as to eliminate at least one of the first angle and the second angle, the path setting unit 22 may use a curved path instead of the straight path 139. Fig. 22 as well as Fig.23 In the example of , the path setting unit 22 may connect the point 138x and the point 138y with a curved path that curves toward the one end 131a. In this case, the first corner is cut off to be rounded. In addition, the second corner is cut off to be rounded.
[0178] <Operation Example of the Path Setting Unit When There Are No Non-interference Path Candidates>
[0179] Fig.24 1 is a flowchart showing an example of the operation of the control unit 2 when it is determined that the robot 10 interferes with the obstacle 60 in each of the predetermined number T of motion path candidates 135 . Fig.24 The processing shown is executed when all of the predetermined number T of action path candidates 135 are interference path candidates 135. In the following description, the direction connecting the start point 120 and the end point 121 is referred to as the start point end point direction.
[0180] If the path setting unit 22 Figure 5If the process shown in FIG. 1 ends without executing step s3, step s11 is executed. In step s11, the path setting unit 22 determines the interference path candidate 135 farthest from the starting point 120 in the starting point and end point direction among the interference path candidates 135 of the given number T, where the interference part 136 (also referred to as the initial interference part 136) at which the robot 10 and the obstacle 60 first interfere with each other, as the target interference path candidate 135. As described above, in the interference determination process, for each position from the starting point 120 to the end point 121 on the motion path candidate 135, when the given part P of the robot 10 exists at the position, it is determined whether the robot 10 and the obstacle 60 interfere with each other. The path setting unit 22 can determine the target interference path candidate 135 based on the execution content of the interference determination process for the motion path candidates 135 of the given number T. Hereinafter, the initial interference part 136 of the target interference path candidate 135 is referred to as the target interference part 136.
[0181] For example, if T=4, consider Fig.25 There are four interference path candidates 135 as shown. Fig.25 The four interference path candidates 135 shown are referred to as interference path candidates 135a, 135b, 135c, and 135d, respectively. In addition, the initial interference locations 136 of the interference path candidates 135a, 135b, 135c, and 135d are referred to as initial interference locations 136a, 136b, 136c, and 136d, respectively. Fig.25 In the figure, for convenience of explanation, the position where the obstacle 60 first hits the interference path candidate 135 is set as the position of the first interference part 136, but the position of the first interference part 136 is not limited to this position.
[0182] exist Fig.25 In the example of FIG. 1 , the initial interference part 136a among the initial interference parts 136a, 136b, 136c, and 136d is in the starting point end direction ( Fig.25 Therefore, the path setting unit 22 sets the interference path candidate 135a as the target interference path candidate 135. In addition, the first interference part 136a of the interference path candidate 135a becomes the target interference part 136a.
[0183] After step s11, in step s12, the path setting unit 22 sets the partial path 137 from the starting point 120 to the target interference part 136 in the target interference path candidate 135 as a part of the motion path of the robot 10. In other words, the path setting unit 22 sets the partial path 137 from the end on the side opposite to the end point 121 to the target interference part 136 in the target interference path candidate 135 as a part of the motion path of the robot 10. Fig.25In the example of , the path setting unit 22 sets the partial path 137 (also referred to as the partial path 137 a ) from the starting point 120 to the first interference location 136 a in the interference path candidate 135 a as a part of the operation path.
[0184] Next, in step s13, the candidate acquisition unit 20 acquires the motion path candidate 235 of the given number T from the object interference part 136 to the end point 121 of the object interference path candidate 135. Fig.26 As shown, an assumed motion path 230 of the minimum distance connecting the object interference part 136 (here, the object interference part 136a) and the end point 121 is set. The assumed motion path 230 is represented by a line segment connecting the object interference part 136 and the end point 121. The assumed motion path 230 can be said to be the shortest motion path from the object interference part 136 to the end point 121 with respect to a given part P of the robot 10. Then, the candidate acquisition unit 20 moves at least a part of the assumed motion path 230 and deforms at least one side to obtain a motion path candidate 235 of a given number T. The candidate acquisition unit 20 can obtain a motion path candidate 235 of a given number T by moving at least a part of the assumed motion path 130 and deforming at least one side in the same manner as obtaining the motion path candidate 135 of a given number T by moving at least a part of the assumed motion path 130. Fig. 27 It is a schematic diagram showing an example of an action path candidate 235.
[0185] After step s13, in step s14, the determination unit 21 determines whether the robot 10 interferes with the obstacle 60 in each of the given number T of motion path candidates 235, in the same manner as the above-mentioned interference determination process. In step s14, the determination unit 21 selects, for example, one motion path candidate 235 from the given number T of motion path candidates 235. Next, the determination unit 21 determines whether the robot 10 interferes with the obstacle 60 in the selected one motion path candidate 235. If the determination unit 21 determines that the robot 10 does not interfere with the obstacle 60 in the selected one motion path candidate 235 ("No" in step s14), step s15 is executed. On the other hand, if the determination unit 21 determines that the robot 10 interferes with the obstacle 60 in the selected one motion path candidate 235, it selects another new motion path candidate 235 from the given number T of motion path candidates 235. Then, the determination unit 21 determines whether the robot 10 interferes with the obstacle 60 in the selected new one motion path candidate 235. If the determination unit 21 determines that the robot 10 does not interfere with the obstacle 60 in the selected new motion path candidate 235 ("No" in step s14), step s15 is executed. On the other hand, if the determination unit 21 determines that the robot 10 interferes with the obstacle 60 in the selected new motion path candidate 235, it selects another new motion path candidate 235 from the given number T of motion path candidates 235. Thereafter, the determination unit 21 operates in the same manner, and if it is determined that the robot 10 interferes with the obstacle 60 in each of the given number T of motion path candidates 235 ("Yes" in step s14), step s11 is executed again. In this case, all of the given number T of motion path candidates 235 become interference path candidates 235.
[0186] In step s11 again, the path setting unit 22 performs the same processing on the given number T of interference path candidates 235. Specifically, the path setting unit 22 determines the interference path candidate 235 farthest from the starting point 120 in the starting point and end point direction among the given number T of interference path candidates 235. The path setting unit 22 can determine the target interference path candidate 235 based on the execution content of step s14. Hereinafter, the initial interference part 236 of the target interference path candidate 235 is referred to as the target interference part 236.
[0187] After step s11, the path setting unit 22 executes step s12 again. In step s12, the path setting unit 22 performs the same processing on the target interference path candidate 235. Specifically, the path setting unit 22 sets the partial path 237 from the end 238 on the side opposite to the end point 121 to the target interference part 236 in the target interference path candidate 235 as a part of the motion path of the robot 10.
[0188] Fig.28 1 is a schematic diagram showing an example of setting a partial path 237 from one end 238 on the opposite side of the end point 121 to the target interference part 236 in the target interference path candidate 235 as a part of the motion path of the robot 10. Fig.28 In the example of , in the target interference path candidate 235 , one end 238 on the side opposite to the end point 121 side coincides with the initial interference location 136 a .
[0189] After step s12, in step s13, if Fig.28 As shown, the candidate acquisition unit 20 sets the path of the minimum distance connecting the object interference part 236 of the object interference path candidate 235 and the end point 121 as the new assumed action path 230. Then, the candidate acquisition unit 20 moves at least a part of the new assumed action path 230 and deforms at least one side, and obtains a new action path candidate 235 of a given number T from the object interference part 236 to the end point 121.
[0190] Next, in step s14, the determination unit 21 determines whether the robot 10 interferes with the obstacle 60 in each of the new motion path candidates 235 of a given number T obtained in step s13. If the determination in step s14 is "no", step s15 is executed in the path setting unit 22. On the other hand, if the determination in step s14 is "yes", step s11 is executed again. In this step s11, the path setting unit 22 determines the interference path candidate 235 whose initial interference part 236 is farthest from the starting point 120 in the starting point and end point direction among the new interference path candidates 235 of a given number T as a new target interference path candidate 235. Next, in step s12, the path setting unit 22 sets the partial path 237 from one end 238 on the side opposite to the end point 121 to the new target interference part 236 in the new target interference path candidate 235 as a part of the motion path of the robot 10. Thereafter, the candidate acquisition unit 20, the determination unit 21 and the path setting unit 22 operate in the same manner.
[0191] In step s15 executed when the determination in step s14 is "No", the path setting unit 22 sets the motion path of the robot 10 from the starting point 120 to the end point 121. Specifically, the path setting unit 22 sets a path consisting of a part of the motion path set so far and the non-interference path candidate 235 as the motion path of the robot 10 from the starting point 120 to the end point 121. For example, Fig.29 As shown, in the presence of a non-interference path candidate 235 connecting the initial interference portion 236 and the end point 121, a path consisting of a partial path 137a and 237 (bold line portion) set as a part of the motion path, and the non-interference path candidate 235 is set as the motion path of the robot 10 from the starting point 120 to the end point 121.
[0192] As above, in Fig.24 In the example of FIG. 1 , when it is determined that the robot 10 and the obstacle 60 interfere with each other in each of the plurality of motion path candidates 135, the path setting unit 22 determines the motion path candidate 135 in which the interference portion 136 where the robot 10 and the obstacle 60 first interfere with each other is farthest from the starting point 120 in the starting point and end point direction among the plurality of motion path candidates 135 as the target motion path candidate 135. The path setting unit 22 sets the partial path 137 from the starting point 120 to the initial interference portion 136 in the determined target motion path candidate 135 as a part of the motion path. Then, the candidate acquisition unit 20 moves and deforms at least a part of the assumed motion path 230 of the minimum distance connecting the initial interference portion 136 and the end point 121, and sets at least a part of the remaining part of the motion path of the robot 10. Thus, even when it is determined that the robot 10 and the obstacle 60 interfere with each of the plurality of motion path candidates 135, the motion path of the robot 10 can be appropriately set.
[0193] <Other Examples of Action Path Setting Processing of the Control Unit>
[0194] Fig.30 2 is a flowchart showing an example of the action path setting process performed by the control unit 2. Fig.30 As shown, in step s21, the candidate acquisition unit 20 acquires the given number T of motion path candidates 135 as described above. Next, in step s22, the determination unit 21 performs interference determination processing on the given number T of motion path candidates 135 as described above to determine whether the robot 10 interferes with the obstacle 60 in the motion path candidate 135.
[0195] Next, in step s23, the path setting unit 22 determines whether at least one non-interference path candidate 135 is included in the given number T of action path candidates 135 based on the result of step s22. If the determination in step s23 is "yes", step s24 is executed. On the other hand, if the determination in step s23 is "no", the action path setting process ends.
[0196] In step s24, the path setting unit 22 determines whether the number of non-interference path candidates 135 included in the given number T of action path candidates 135 is one or more. When the number of non-interference path candidates 135 is one, the path setting unit 22 executes step s25. On the other hand, when the number of non-interference path candidates 135 is more than one, the path setting unit 22 executes step s26.
[0197] In step s25, the path setting unit 22 sets, for example, one non-interference path candidate 135 included in the given number T of action path candidates 135 as the action path of the robot 10. Fig. 22 as well as Fig.23 In this way, the path setting unit 22 may set a path obtained by deforming the non-interference path candidate 135 as the operation path of the robot 10 .
[0198] In step s26, the path setting unit 22 sets the motion path of the robot 10 based on a non-interference path candidate 135 selected from a plurality of non-interference path candidates 135 included in a given number T of motion path candidates 135. In step s26, the path setting unit 22 calculates given evaluation values for each of the plurality of non-interference path candidates 135. Next, the path setting unit 22 selects a non-interference path candidate 135 from the plurality of non-interference path candidates 135 based on the calculated plurality of evaluation values. Then, the path setting unit 22 sets the motion path of the robot 10 based on the selected non-interference path candidate 135. The path setting unit 22 may set the selected non-interference path candidate 135 as the motion path of the robot 10. Alternatively, the path setting unit 22 may also Fig. 22 as well as Fig.23 As in the example of , the path in which the selected non-interference path candidate 135 is deformed is set as the motion path of the robot 10. Hereinafter, the motion path candidate 135 of interest is referred to as the motion path candidate 135 of interest. In addition, the non-interference path candidate 135 of interest is referred to as the non-interference path candidate 135 of interest.
[0199] The evaluation value of the non-interference path candidate 135 of interest indicates, for example, the suitability of using the non-interference path candidate 135 of interest in setting the motion path of the robot 10. For example, the larger the evaluation value of the non-interference path candidate 135 of interest, the more suitable it is to use the non-interference path candidate 135 of interest in setting the motion path of the robot 10. In step s26, the path setting unit 22 selects the non-interference path candidate 135 with the largest evaluation value from the plurality of non-interference path candidates 135, and sets the motion path based on the selected non-interference path candidate 135.
[0200] Various methods are considered as a method for calculating the evaluation value. For example, when the robot 10 is moving in the non-interference path candidate 135 of interest, when the robot 10 passes near the obstacle 60, it is not appropriate to use the non-interference path candidate 135 of interest in setting the motion path of the robot 10. Therefore, the path setting unit 22 may calculate the evaluation value of the non-interference path candidate 135 of interest based on the distance between the robot 10 and the obstacle 60 in the non-interference path candidate 135 of interest, for example. In this case, the path setting unit 22 obtains the shortest distance between the robot 10 and the obstacle 60 when a given part P of the robot 10 is located at each position of the non-interference path candidate 135 of interest, based on the robot information 31 and the obstacle information 32. Then, the path setting unit 22 sets the minimum value of the obtained multiple shortest distances as the shortest distance D between the robot 10 and the obstacle 60 in the non-interference path candidate 135 of interest. The path setting unit 22 sets the shortest distance D as the evaluation value.
[0201] In addition, the assumed motion path 130 at the initial position is the shortest path from the starting point 120 to the end point 121. Therefore, the farther the non-interference path candidate 135 of interest is from the assumed motion path 130 at the initial position, the longer the non-interference path candidate 135 of interest is, and there is a possibility that the motion path of the robot 10 based on the non-interference path candidate 135 of interest becomes longer. In such a case, it is not appropriate to use the non-interference path candidate 135 of interest in setting the motion path of the robot 10. Therefore, the path setting unit 22 can calculate the evaluation value based on the proximity between the assumed motion path 130 at the initial position and the non-interference path candidate 135 of interest. In this case, the path setting unit 22, for example, obtains the distance between the portion of the assumed motion path 130 (also referred to as the assumed motion path equivalent portion) included in the non-interference path candidate 135 of interest, which corresponds to at least one of the assumed motion paths that have been moved and deformed, and the assumed motion path 130 at the initial position. Here, the direction perpendicular to the assumed motion path 130 at the initial position is referred to as the vertical direction. The path setting unit 22 obtains the straight-line distance in the vertical direction from each position of the assumed motion path 130 at the initial position to the equivalent portion of the assumed motion path. Then, the path setting unit 22 sets the sum of the obtained plurality of straight-line distances as the degree of proximity (also referred to as proximity degree) C between the assumed motion path 130 at the initial position and the non-interference path candidate 135 of interest. The path setting unit 22 sets the negative value of the proximity degree C as the evaluation value of the non-interference path candidate 135 of interest. Thus, the smaller the proximity degree C is, that is, the closer the non-interference path candidate 135 of interest is to the assumed motion path 130 at the initial position, the greater the value of the evaluation value.
[0202] In addition, the path setting unit 22 may calculate the evaluation value based on the shortest distance D and the degree of proximity C. For example, the path setting unit 22 may set the evaluation value=Dq×C. q is a coefficient, and the influence of the shortest distance D and the degree of proximity C on the evaluation value is determined by the value of q.
[0203] In this way, the path setting unit 22 can appropriately set the motion path by setting the motion path of the robot 10 based on the non-interference path candidate 135 selected based on the evaluation value from among the plurality of non-interference path candidates 135 .
[0204] In addition, when the evaluation value is based on at least one of the distance between the robot 10 and the obstacle 60 in the non-interference path candidate 135 and the proximity between the assumed motion path 130 at the initial position and the non-interference path candidate 135, a non-interference path candidate 135 suitable for use in setting the motion path of the robot 10 can be selected.
[0205] In addition, the path setting unit 22 may set the action path without using the evaluation value in step s26 . For example, the path setting unit 22 may select any one non-interference path candidate 135 from a plurality of non-interference path candidates 135 and set the action path based on the selected non-interference path candidate 135 .
[0206] In addition, the path setting unit 22 may be Fig.24 In the process shown, the motion path is set based on the evaluation value. In this case, the path setting unit 22 performs interference determination processing on the given number T of assumed motion paths 235 in step s14. When the result of step s14 is that a plurality of non-interference path candidates 235 are included in the given number T of assumed motion paths 235, the path setting unit 22 obtains evaluation values for the plurality of non-interference path candidates 235 in step s15 in the same manner as described above. The evaluation value can be calculated, for example, based on the distance between the robot 10 and the obstacle 60 in the non-interference path candidate 235, or based on the proximity between the assumed motion path 235 and the non-interference path candidate 235. Then, the path setting unit 22 selects the non-interference path candidate 235 with the largest evaluation value from the plurality of non-interference path candidates 235. The path setting unit 22 sets the path consisting of a portion of the motion path set so far and the selected non-interference path candidate 235 as the motion path of the robot 10 from the starting point 120 to the end point 121.
[0207] <Example of setting the action path based on the configuration space>
[0208] In the above example, the control unit 2 sets the motion path of the robot 10 based on the real workspace 100 , but the motion path of the robot 10 may be set based on the configuration space (also referred to as C space) 500 of the robot 10 .
[0209] The C space 500 is, for example, an N-dimensional space with N (N is an integer greater than or equal to 2) parameters representing the posture of the robot 10 as axis values. For example, N=6. The C space 500 is a 6-dimensional space with 6 parameters θa, θb, θc, θd, θe, and θf as axis values. The N axes of the C space 500 are orthogonal to each other. In addition, the real work space 100 can be said to be an N-dimensional space with N=3.
[0210] Here, the values of the parameters θa, θb, θc, θd, θe, and θf are represented by an, bn, cn, dn, en, and fn, respectively. n is a variable, for example, an integer greater than 0. Furthermore, the coordinates of a certain point in the C space 500 (in other words, the coordinates of a certain position) are represented by (an, bn, cn, dn, en, fn).
[0211] A certain position in the C space 500 corresponds to a specific posture of the robot 10 in the real work space 100. That is, the coordinates of a certain position in the C space 500 represent a specific posture of the robot 10 in the real work space 100. For example, the coordinates of a certain position in the C space 500 are set to (a0, b0, c0, d0, e0, f0). The coordinates (a0, b0, c0, d0, e0, f0) represent the posture of the robot 10 when the values of the rotation angles θa, θb, θc, θd, θe, and θf of the arm 11 of the robot 10 are a0, b0, c0, d0, e0, and f0, respectively. If the posture of the robot 10 in the real work space 100 is determined, the position of a given part P of the robot 10 in the real work space 100 is determined. Therefore, the coordinates of each position in the C space 500 can be said to represent the position of a given part P of the robot 10 in the real work space 100.
[0212] The operation of the control unit 2 (i.e., the operation of the candidate acquisition unit 20, the determination unit 21, and the path setting unit 22) in the case of setting the motion path of the robot 10 based on the C space 500 is basically the same as that in the case of setting the motion path of the robot 10 based on the real work space 100. The operation of the control unit 2 in the case of setting the motion path of the robot 10 based on the C space 500 will be described below, centering on the differences between the operation of the control unit 2 in the case of setting the motion path of the robot 10 based on the real work space 100. In the following description, the above description in the three-dimensional space is generalized to the description in the N-dimensional space as needed.
[0213] <Operation Example of Candidate Acquisition Unit>
[0214] like Fig.31 As shown in FIG. 1 , the candidate acquisition unit 20 can acquire a plurality of motion path candidates 135 from the starting point 120 to the end point 121 based on the assumed motion path 130 of the minimum distance connecting the starting point 120 and the end point 121 of the robot motion in the C space 500. Fig.31 In the following figures, for convenience of explanation, the C space 500 is shown as a circle. Here, the coordinates of the starting point 120 are represented by (a1, b1, c1, d1, e1, f1), and the coordinates of the end point 121 are represented by (a2, b2, c2, d2, e2, f2).
[0215] The coordinates of the starting point 120 in the C space 500 represent, for example, the posture of the robot 10 when the robot 10 holding the object 50 starts a moving operation to move the object 50 to the tray 18. The values of the rotation angles θa, θb, θc, θd, θe, and θf of the arm 11 at the start time of the moving operation are respectively a1, b1, c1, d1, e1, and f1. The end point 121 in the C space 500 represents, for example, the posture of the robot 10 when the robot 10 ends the moving operation. The values of the rotation angles θa, θb, θc, θd, θe, and θf of the arm 11 at the end time of the moving operation are respectively a2, b2, c2, d2, e2, and f2. In the C space 500, a line connecting the starting point 120 to the end point 121 represents a change in the posture of the robot 10 from the start to the end of the moving operation. When the C space 500 is used, the motion path of the robot 10 is represented as a change in the posture of the robot 10.
[0216] In the C space 500 , the assumed motion path 130 of the minimum distance connecting the start point 120 and the end point 121 is represented by a line segment connecting the start point 120 and the end point 121 .
[0217] Here, the coordinates of a point in N-dimensional space are represented by (H1, H2, ..., HN). A line segment (in other words, a straight line) from a point in N-dimensional space to another point can be regarded as a set of points whose coordinates are represented by the following equation (1) using the mediating variable t.
[0218] [Mathematical formula 1]
[0219]
[0220] In formula (1), k1~kN and h1~hN represent constants. The position and length of the line segment in the N-dimensional space are determined by the range of the value of the intermediate variable t. The coordinates of each point on the assumed motion path 130 in the C space 500 can be represented in the same way as formula (1). In addition, the coordinates of each point on the assumed motion path 130 in the real work space 100 can be represented in the same way as formula (1).
[0221] The candidate acquisition unit 20 can also acquire a predetermined number T of motion path candidates 135 by performing at least one of moving and deforming at least a portion of the provisional motion path 130 in the C space 500 in the same manner as described above.
[0222] If a plane in a three-dimensional space such as the real workspace 100 is generalized to a representation in an N-dimensional space, it is called a hyperplane. A hyperplane has (N-1) dimensions. The above-mentioned plane 150 is also called a hyperplane 150. Since a figure and a part of a space in an N-dimensional space are called a manifold, a hyperplane can be said to be a type of manifold. A hyperplane can be said to be a (N-1)-dimensional manifold.
[0223] The candidate acquisition unit 20 can move the assumed motion path 130 in parallel in the first direction 141 orthogonal to the assumed motion path 130 in the C space 500 in the same manner as described above, so as to obtain a motion path candidate 135 by passing through a passing point set on a hyperplane 150 orthogonal to the assumed motion path 130. In an N-dimensional space, a hyperplane orthogonal to a line segment is a hyperplane on which the inner product of any vector connecting two points is zero with the vector connecting the two ends of the line segment. Therefore, no matter what vector is set on the hyperplane 150 to connect two points, the inner product of the vector connecting the two ends of the assumed motion path 130 is zero.
[0224] The position of the passing point on the hyperplane 150 can be represented in polar coordinate form, similarly to the above. Here, for the (N-1)-dimensional hyperplane 150, mutually orthogonal (N-1) axes are set separately from the N axes of the C space 500. Furthermore, the position of the passing point in the (N-1)-dimensional manifold (space) represented by the (N-1) axes is represented in polar coordinate form. In this case, the position of the passing point on the hyperplane 150 is represented by a distance r from the origin of the (N-1)-dimensional manifold to the passing point and a group of (N-2) angles γ1 to γN-2 (r, γ1, γ2, ..., γN-2). The candidate acquisition unit 20 can change the position of the passing point (r, γ1, γ2, ..., γN-2) by changing the combination of the set values of the distance r and the angles γ1 to γN-2. That is, the candidate acquisition unit 20 can acquire a plurality of motion path candidates 135 in the C space 500 by changing the combination of the distance r and the set values of the angles γ1 to γN-2.
[0225] In addition, the candidate acquisition unit 20 can also divide the hyperplane 150 into a grid in the C space 500 and set each grid point on the hyperplane 150 as a passing point in the same manner as described above. When the (N-1)-dimensional hyperplane 150 is divided into a grid, (N-1) axes that are orthogonal to each other are set separately from the N axes of the C space 500 for the (N-1)-dimensional hyperplane 150. Then, for each of the (N-1) axes, the hyperplane 150 is divided into Q (Q is an integer greater than 2) along the axis. Thus, a number of grid points to the power of Q (N-1) is set on the (N-1)-dimensional hyperplane 150. The candidate acquisition unit 20 can obtain a plurality of action path candidates 135 in the C space 500 by changing the number of grid points to the power of Q (N-1) to the grid points to be passing points.
[0226] The candidate acquisition unit 20 can also rotate and move the provisional motion path 130 in the C space 500 in the same manner as described above to acquire a plurality of motion path candidates 135. Here, regarding the rotation axis of the manifold in the N-dimensional space, if a symbol representing the number of combinations is used, it can be defined, for example, N The candidate acquisition unit 20 can, for example, make the tentative motion path 130 revolve around N At least one of the C2 rotation axes is rotated to obtain a motion path candidate 135. N When the C2 rotation axes include a rotation axis parallel to the assumed motion path 130, the candidate acquisition unit 20 may not rotate the assumed motion path 130 around the rotation axis. N The candidate acquisition unit 20 can acquire a plurality of motion path candidates 135 by rotating which of the C2 rotation axes. In addition, when rotating the provisional motion path 130 about a certain rotation axis, the candidate acquisition unit 20 can acquire a plurality of motion path candidates 135 by changing the rotation angle of the provisional motion path 130.
[0227] In the C space 500, the candidate acquisition unit 20 can also acquire a plurality of motion path candidates 135 by deforming the assumed motion path 130 in the same manner as described above. For example, the candidate acquisition unit 20 can deform the assumed motion path 130 into a Bezier curve, a quadratic curve, or a spline curve in the C space 500 to acquire a plurality of motion path candidates 135. In the N-dimensional space, if three points are set, a Bezier curve, a quadratic curve, or a spline curve can be realized. For example, in the C space 500, if another point is set in addition to the starting point 120 and the end point 121, a Bezier curve, a quadratic curve, or a spline curve connecting the starting point 120 and the end point 121 can be obtained. The assumed motion path 130 in the C space 500, the motion path candidates, and the motion path set by the path setting unit 22 are each represented by a set of multiple points (e.g., dozens of points) set in the C space 500.
[0228] <Operation Example of Determination Unit>
[0229] First, the direction in which the obstacle 60 in the C space 500 appears will be described. Here, a certain point of the obstacle 60 in the real work space 100 is referred to as an obstacle point. The determination unit 21 obtains all postures of the robot 10 when one obstacle point is included in the robot 10 in the real work space 100. In other words, the determination unit 21 obtains all postures of the robot 10 when one obstacle point interferes with the robot 10 in the real work space 100. The determination unit 21 performs this processing on each obstacle point of the obstacle 60. Then, the determination unit 21 sets a plurality of points in the C space 500 corresponding to the plurality of postures of the robot 10 obtained. The area formed by the plurality of points becomes the obstacle 60 in the C space 500. Hereinafter, this area is sometimes referred to as the C space obstacle 60c.
[0230] The area in the C space 500 where the C space obstacle 60c exists represents the robot posture where the robot 10 interferes with the obstacle 60 in the real work space 100. The C space obstacle 60c can also be called an interference area. Fig.32 As shown in FIG. 1 , when the candidate action path of interest 135 interferes with the C-space obstacle 60c in the C-space 500, the determination unit 21 determines that the robot 10 interferes with the obstacle 60 in the candidate action path of interest 135. In other words, when the candidate action path of interest 135 hits the C-space obstacle 60c in the C-space 500, the determination unit 21 determines that the robot 10 interferes with the obstacle 60 in the candidate action path of interest 135. In other words, when at least one of the plurality of points representing the candidate action path of interest 135 in the C-space 500 is included in the C-space obstacle 60c, the determination unit 21 determines that the robot 10 interferes with the obstacle 60 in the candidate action path of interest 135. On the other hand, when the candidate action path of interest 135 does not interfere with the C space obstacle 60c in the C space 500, in other words, when the candidate action path of interest 135 does not hit the C space obstacle 60c in the C space 500, the determination unit 21 determines that the robot 10 does not interfere with the obstacle 60 in the candidate action path of interest 135. In other words, when all of the multiple points representing the candidate action path of interest 135 in the C space 500 are not included in the C space obstacle 60c, the determination unit 21 determines that the robot 10 does not interfere with the obstacle 60 in the candidate action path of interest 135.
[0231] In addition, the candidate acquisition unit 20 can also acquire a plurality of motion path candidates 135 by performing at least one of a partial movement and a deformation of the assumed motion path 130 in the C space 500 as described above. For example, the candidate acquisition unit 20 can also acquire a plurality of motion path candidates 135 by moving a portion of the assumed motion path 130 in the C space 500 that includes an area interfering with the C space obstacle 60c (in other words, an area that hits the C space obstacle 60c).
[0232] In this way, the determination unit 21 can perform interference determination processing in the C space 500. In addition, when the determination unit 21 performs interference determination processing, the movable range of the robot 10 and the non-intrusive area and the singular points of the robot posture are considered in the interference determination processing in the real work space 100, but the constraints related to the posture of the robot 10 also need to be considered in the interference determination processing in the C space 500. In this case, the so-called constraints are, for example, coordinates on the C space 500 equivalent to the movable range of the robot 10.
[0233] <Operation Example of Path Setting Section>
[0234] The path setting unit 22 can set the action path by deforming the non-interference path candidate 135 in the C space 500 in the same manner as described above. For example, the path setting unit 22 can also set the action path by deforming the non-interference path candidate 135 in the C space 500 so as to remove the corner of the non-interference path candidate 135. The method of removing the corner of the non-interference path candidate 135 in the C space 500 is the same as the method of removing the corner of the non-interference path candidate 135 in the real work space 100.
[0235] In addition, the path setting unit 22 can also perform the above-mentioned Fig.24 In the C space 500, the interference portion 136 where the robot 10 in the motion path candidate 135 first interferes with the C space obstacle 60c is the portion where the motion path candidate 135 first hits the C space obstacle 60c when viewing the end point 121 side from the starting point 120 side geometrically.
[0236] <Others>
[0237] In the above example, the candidate acquisition unit 20 acquires a plurality of motion path candidates 135 in the C space 500 with the six parameters θa, θb, θc, θd, θe, and θf as axis values. However, the candidate acquisition unit 20 may also acquire a plurality of motion path candidates 135 in the limited configuration space (also referred to as a limited C space) 510 with the six parameters θa, θb, θc, θd, θe, and a part of the θ as axis values. The limited C space 510, for example, uses a plurality of main parameters that determine the robot posture among the six parameters θa, θb, θc, θd, θe, and θf as axis values. In this example, since the rotation of the front end of the arm 11 does not affect the robot posture, the plurality of main parameters that determine the robot posture are the parameters θa, θb, and θc. The candidate acquisition unit 20 acquires the motion path candidates 135 in the limited C space 510 with the parameters θa, θb, and θc as axis values. The coordinates of a point in the defined C space 510 are represented by (an, bn, cn).
[0238] Fig.33 1 is a schematic diagram showing an example of a limited C space 510. In the limited C space 510, the candidate acquisition unit 20 can acquire a plurality of motion path candidates 135 from the starting point 120 to the end point 121 based on the assumed motion path 130 of the minimum distance connecting the starting point 120 and the end point 121 of the robot motion. The coordinates of the starting point 120 in the limited C space 510 represent, for example, the general posture of the robot 10 when the robot starts the moving motion. The coordinates of the starting point 120 in the limited C space 510 represent the rotation angles θa, θb, θc of the arm 11 at the start time of the moving motion. The end point 121 in the limited C space 510 represents, for example, the general posture of the robot 10 when the robot 10 ends the moving motion. The coordinates of the end point 121 in the limited C space 510 represent the rotation angles θa, θb, θc of the arm 11 at the end time of the moving motion. The candidate acquisition unit 20 performs at least one of moving and deforming at least a portion of the tentative motion path 130 in the limited C space 510 in the same manner as described above, and acquires a plurality of motion path candidates 135. Fig.33 , the coordinates of one corner of the motion path candidate 135 are represented by (a3, b3, c3), and the coordinates of the other corner of the motion path candidate 135 are represented by (a4, b4, c4).
[0239] The determination unit 21 performs interference determination processing in the C space 500 as described above, not in the limited C space 510. In this case, the determination unit 21 first resets the action path candidate 135 set in the limited C space 510 in the C space 500.
[0240] Fig.34 It means that Fig.33The schematic diagram of an example of how the motion path candidate 135 is reset in the C space 500. The determination unit 21 sets the values of θa, θb, and θc of the coordinates in the C space 510 as the values of θa, θb, and θc of the coordinates in the C space 500 for each position of the motion path candidate 135 of interest.
[0241] Next, the determination unit 21 sets the values of θd, θe, and θf of the coordinates of each position of the target action path candidate 135 in the C space 500. The determination unit 21 sets the values of θd, θe, and θf of the coordinates of each position of the target action path candidate 135 in the C space 500 independently of the values of θa, θb, and θc of the coordinates of each position of the target action path candidate 135 in the C space 500.
[0242] The determination unit 21 sets the value of θd of the coordinates of each position of the candidate action path of interest 135 in the C space 500, for example, based on the value of θd of the coordinates of the starting point 120 and the end point 121 in the C space 500. Similarly, the determination unit 21 sets the value of θe of the coordinates of each position of the candidate action path of interest 135 in the C space 500, for example, based on the value of θe of the coordinates of the starting point 120 and the end point 121 in the C space 500. Similarly, the determination unit 21 sets the value of θf of the coordinates of each position of the candidate action path of interest 135 in the C space 500, for example, based on the value of θf of the coordinates of the starting point 120 and the end point 121 in the C space 500.
[0243] In addition, the robot posture at the start time point and the end time point of the working action is predetermined. Therefore, the values of θa, θb, θc, θd, θe, and θf of the coordinates of the starting point 120 and the end point 121 in the C space 500 are preset. In the C space 500, the values of θd, θe, and θf of the coordinates of the end connected to the starting point 120 of the candidate action path of interest 135 are set to d1, e1, and f1, respectively. In addition, in the C space 500, the values of θd, θe, and θf of the coordinates of the end connected to the end point 121 in the candidate action path of interest 135 are set to d2, e2, and f2, respectively.
[0244] The determination unit 21 may, for example, determine the set value of θd of the coordinates of each position so that the set value of θd of the coordinates of each position of the candidate action path of interest 135 in the C space 500 changes slowly (e.g., linearly) from d1 (i.e., the value of θd of the coordinates of the starting point 120) to d2 (i.e., the value of θd of the coordinates of the end point 121) when the start point 120 is observed to the end point 121. Similarly, the determination unit 21 may, for example, determine the set value of θe of the coordinates of each position so that the set value of θe of the coordinates of each position of the candidate action path of interest 135 in the C space 500 changes slowly (e.g., linearly) from e1 to e2 when the start point 120 is observed to the end point 121. Similarly, the determination unit 21 can, for example, determine the set value of θf of the coordinates of each position so that when the set value of θf of the coordinates of each position of the focus action path candidate 135 in the C space 500 is observed from the starting point 120 to the end point 121, it slowly (e.g., linearly) changes from f1 to f2.
[0245] exist Fig.34 In the example, in the C space 500, the coordinates of the corner on the side of the starting point 120 of the motion path candidate 135 are represented by (a3, b3, c3, d3, e3, f3), and the coordinates of the corner on the side of the end point 121 of the motion path candidate 135 are represented by (a4, b4, c4, d4, e4, f4). For example, d3 is set to a value closer to d1 than d4, and d4 is set to a value closer to d2 than d3. Similarly, for example, e3 is set to a value closer to e1 than e4, and e4 is set to a value closer to e2 than e3. Similarly, for example, f3 is set to a value closer to f1 than f4, and f4 is set to a value closer to f2 than f3.
[0246] In the interference determination process, the determination unit 21 determines whether the robot 10 interferes with the obstacle 60 in the motion path candidate 135 newly set in the C space 500 . The path setting unit 22 sets the motion path of the robot 10 in the C space 500 based on the determination result of the determination unit 21 .
[0247] In this way, when the candidate acquisition unit 20 acquires a plurality of motion path candidates 135 in the limited C space 510 having the values of the plurality of main parameters θa, θb, θc that determine the robot posture as axes, the motion path can be efficiently set using a small number of motion path candidates 135 .
[0248] Even when the motion path of the robot 10 is set in the C space 500, the control unit 2 can set the movement of each joint of the arm 11 in the set motion path in the same manner as described above. When the motion path of the robot 10 is set in the C space 500, the values of θa, θb, θc, θd, θe, and θf of the coordinates of a certain set path point of the set motion path in the C space 500 become the set rotation angle θ of each joint at the certain set path point.
[0249] In addition, in the control unit 2, the processing in the real work space 100 and the processing in the C space 500 may be mixed. For example, the determination unit 21 may reset the motion path candidate 135 set in the C space 500 in the real work space 100, and perform the interference determination process of the motion path candidate 135 in the real work space 100. Alternatively, the determination unit 21 may reset the motion path candidate set in the real work space 100 in the C space 500, and perform the interference determination process of the motion path candidate 135 in the C space 500.
[0250] As described above, the action path setting device is described in detail, but the above description is illustrative in all situations, and the present disclosure is not limited to this. In addition, the above various examples can be combined and used as long as there is no contradiction between each other. And it is known that countless examples that are not exemplified can be conceived without departing from the scope of the present disclosure.
[0251] The present disclosure includes the following contents.
[0252] In one embodiment, (1) the motion path setting device comprises: a candidate acquisition unit, which can acquire a plurality of motion path candidates from the starting point to the end point in a multidimensional space which is the real working space of the robot or the configuration space of the robot based on a first assumed motion path of the minimum distance connecting the starting point and the end point of the robot's motion; a determination unit, which determines whether the robot interferes with an obstacle in at least one of the plurality of motion path candidates; and a path setting unit, which sets the motion path of the robot based on the determination result of the determination unit.
[0253] (2) In the motion path setting device of (1) above, the candidate acquisition unit acquires the plurality of motion path candidates by performing at least one of movement and deformation of at least a portion of the first tentative motion path in the multidimensional space.
[0254] (3) In the motion path setting device according to (2) above, the candidate acquisition unit acquires at least one motion path candidate by parallel translation of at least a portion of the first provisional motion path.
[0255] (4) In the motion path setting device of (3) above, the candidate acquisition unit acquires at least one motion path candidate by parallel moving at least a portion of the first provisional motion path in a first direction orthogonal to the first provisional motion path.
[0256] (5) In the motion path setting device of (4) above, the candidate acquisition unit moves at least a portion of the first provisional motion path in a second direction parallel to the first provisional motion path and in parallel with the first direction to acquire at least one motion path candidate.
[0257] (6) In any one of the motion path setting devices described in (2) to (5), the candidate acquisition unit may rotationally move at least a portion of the first provisional motion path to acquire at least one motion path candidate.
[0258] (7) In any one of the motion path setting devices described in (2) to (6) above, the candidate acquisition unit moves a portion of the first assumed motion path connecting the start point and the end point that includes an area where the robot interferes with the obstacle, to acquire at least one motion path candidate.
[0259] (8) In any one of the motion path setting devices described in (2) to (7) above, the candidate acquisition unit moves a portion of the first assumed motion path connecting the starting point and the end point that includes an area where the first assumed motion path interferes with the obstacle, to acquire at least one motion path candidate.
[0260] (9) In any one of the motion path setting devices described in (2) to (8) above, the candidate acquisition unit sets a path obtained by connecting one end and the other end of at least a portion of the first assumed motion path after movement to the starting point and the end point, respectively, as a motion path candidate in the multidimensional space, and the path setting unit sets the motion path by deforming the motion path candidate determined as not interfering with the obstacle.
[0261] (10) In any one of the motion path setting devices of (2) to (9) above, the path setting unit performs the following processing: when it is determined that the robot interferes with the obstacle in each of the multiple motion path candidates, determine the motion path candidate among the multiple motion path candidates where the interference part where the robot initially interferes with the obstacle is farthest from the starting point in the direction connecting the starting point and the end point, set a partial path from the starting point to the interference part in the determined motion path candidate as a part of the motion path, and set at least a part of the remaining part of the motion path based on the result of at least one of moving and deforming at least a part of a second assumed motion path of the minimum distance connecting the interference part and the end point.
[0262] (11) In any one of the motion path setting devices described in (1) to (10) above, the path setting unit performs the following processing: calculating given evaluation values for each of the plurality of non-interference path candidates among the plurality of motion path candidates for which it is determined that the robot does not interfere with the obstacle, and setting the motion path based on the non-interference path selected from the plurality of non-interference path candidates based on the evaluation values.
[0263] (12) In the motion path setting device of (11) above, the evaluation value is based on at least one of a distance between the robot and the obstacle in the non-interference path candidate and a proximity between the first assumed motion path connecting the start point and the end point and the non-interference path candidate.
[0264] (13) In any one of the motion path setting devices described in (1) to (12), the candidate acquisition unit acquires the plurality of motion path candidates for a given part of the robot in the real work space that is the multi-dimensional space.
[0265] (14) In any one of the motion path setting devices described in (1) to (13), the determination unit determines whether the robot interferes with an obstacle in each of the plurality of motion path candidates in a configuration space having a plurality of parameters representing the posture of the robot as axis values.
[0266] (15) In the motion path setting device of (1) to (14) above, the candidate acquisition unit can acquire the multiple motion path candidates based on the first assumed motion path in a limited configuration space, wherein the limited configuration space sets the multiple main parameters that determine the posture as part of the multiple parameters characterizing the posture of the robot as the values of the axes as the multidimensional space.
[0267] (16) The program causes the computer device to perform the following processing: an acquisition processing, in which a plurality of motion path candidates from a starting point to an end point are acquired based on an assumed motion path of a minimum distance connecting a starting point and an end point of the robot's motion in a multidimensional space which is a real working space of the robot or a configuration space of the robot; a determination processing, in which it is determined whether the robot interferes with an obstacle in at least one of the plurality of motion path candidates; and a setting processing, in which the motion path of the robot is set based on a determination result in the determination processing.
[0268] Explanation of symbols
[0269] 1 Motion path setting device
[0270] 10. Robot
[0271] 20 Candidate Acquisition Department
[0272] 21 Judgment Department
[0273] 22 Path setting unit
[0274] 30 Programs
[0275] 60 Obstacles
[0276] 100 Real work space
[0277] 120 Starting Point
[0278] 121 End
[0279] 130, 130f, 130i, 130v, 230 Assumed Action Path
[0280] 135, 135a, 135b, 135c, 135d, 235 Action path candidates
[0281] 136, 136a, 136b, 136c, 136d Interference area
[0282] 137, 137a, 1300 Partial routes
[0283] 141 Direction 1
[0284] 142, 142a, 142b Second direction
[0285] 500 Configuration Space
[0286] 510 Limited Configuration Space
[0287] θa, θb, θc, θd, θe, θf parameters.
Claims
1. An action path setting device, comprising: a candidate acquisition unit capable of acquiring a plurality of motion path candidates from the start point to the end point based on a first assumed motion path of a minimum distance connecting the start point and the end point of the robot motion in a multidimensional space which is a real working space of the robot or a configuration space of the robot; a determination unit configured to determine whether the robot interferes with an obstacle in at least one of the plurality of motion path candidates; and A path setting unit sets an action path of the robot based on the determination result of the determination unit.
2. The motion path setting device according to claim 1, wherein: The candidate acquisition unit acquires the plurality of motion path candidates by performing at least one of moving and deforming at least a portion of the first tentative motion path in the multi-dimensional space.
3. The motion path setting device according to claim 2, wherein: The candidate acquisition unit acquires at least one motion path candidate by parallel translation of at least a portion of the first provisional motion path.
4. The motion path setting device according to claim 3, wherein: The candidate acquisition unit acquires at least one motion path candidate by parallel moving at least a portion of the first provisional motion path in a first direction orthogonal to the first provisional motion path.
5. The motion path setting device according to claim 4, wherein: The candidate acquisition unit acquires at least one motion path candidate by moving at least a portion of the first provisional motion path in parallel to a second direction parallel to the first provisional motion path and to the first direction.
6. The motion path setting device according to any one of claims 2 to 5, wherein: The candidate acquisition unit acquires at least one motion path candidate by rotationally moving at least a portion of the first provisional motion path.
7. The motion path setting device according to any one of claims 2 to 6, wherein: The candidate acquisition unit acquires at least one motion path candidate by moving a partial path including an area where the robot interferes with the obstacle in the first tentative motion path connecting the start point and the end point.
8. The motion path setting device according to any one of claims 2 to 7, wherein: The candidate acquisition unit acquires at least one motion path candidate by moving a partial path including an area where the first tentative motion path and the obstacle interfere with each other, of the first tentative motion path connecting the start point and the end point.
9. The motion path setting device according to any one of claims 2 to 8, wherein: The candidate acquisition unit sets a path obtained by connecting one end and the other end of at least a part of the first tentative action path after the movement to the start point and the end point, as a single action path candidate in the multidimensional space, The path setting unit sets the motion path by deforming a motion path candidate determined that the robot does not interfere with the obstacle.
10. The motion path setting device according to any one of claims 2 to 9, wherein: The path setting unit performs the following processing: When it is determined that the robot interferes with the obstacle in each of the plurality of motion path candidates, a motion path candidate is determined, among the plurality of motion path candidates, at which the interference portion where the robot initially interferes with the obstacle is farthest from the starting point in the direction connecting the starting point and the end point; setting a partial path from the starting point to the interference part in the determined action path candidate as a part of the action path, At least a portion of the remaining portion of the motion path is set based on a result of at least one of moving and deforming at least a portion of a second provisional motion path of a minimum distance connecting the interference portion and the end point.
11. The motion path setting device according to any one of claims 1 to 10, wherein: The path setting unit performs the following processing: calculating a given evaluation value for each of a plurality of non-interference path candidates among the plurality of action path candidates for which it is determined that the robot does not interfere with the obstacle, The operation path is set based on a non-interference path selected from the plurality of non-interference path candidates based on the evaluation value.
12. The motion path setting device according to claim 11, wherein: The evaluation value is based on at least one of a distance between the robot and the obstacle in the non-interference path candidate and a proximity between the first tentative motion path connecting the start point and the end point and the non-interference path candidate.
13. The motion path setting device according to any one of claims 1 to 12, wherein: The candidate acquisition unit acquires the plurality of motion path candidates for a given part of the robot in the real work space which is the multi-dimensional space.
14. The motion path setting device according to any one of claims 1 to 13, wherein: The determination unit determines whether the robot interferes with an obstacle in each of the plurality of motion path candidates in a configuration space having a plurality of parameters representing the posture of the robot as axis values.
15. The motion path setting device according to any one of claims 1 to 14, wherein: The candidate acquisition unit can acquire the multiple motion path candidates based on the first assumed motion path in a limited configuration space which is the multidimensional space, wherein the limited configuration space sets multiple main parameters that determine the posture as part of the multiple parameters characterizing the posture of the robot as axis values.
16. A program causing a computer device to execute: Acquisition processing, in a multidimensional space which is a real working space of the robot or a configuration space of the robot, acquiring a plurality of motion path candidates from the starting point to the end point based on an assumed motion path of a minimum distance connecting the starting point and the end point of the robot motion; Determination processing, determining whether the robot interferes with an obstacle in at least one of the plurality of motion path candidates; and The setting process sets the motion path of the robot based on the determination result in the determination process.
Citation Information
Patent Citations
Method and device for planning operation route of robot
JP2000020117A