Operation path setting device and program

JPWO2024071235A5Pending Publication Date: 2025-06-24
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024550408
Authority / Receiving Office
JP · JP
Patent Type
Applications
Priority Date
2023-09-27
Filing Date
2023-09-27
Publication Date
2025-06-24

AI Technical Summary

Technical Problem

Existing robot motion path planning technologies face challenges in efficiently setting collision-free paths in multidimensional workspaces with obstacles, as they often require complex calculations and may not adequately account for the robot's posture and the shape of both the robot and obstacles.

Method used

A device and program that includes a candidate acquisition unit, a determination unit, and a route setting unit to acquire multiple motion route candidates based on a hypothetical minimum distance path between start and end points, determine interference with obstacles, and set a collision-free motion path for the robot by selecting appropriate route candidates.

Benefits of technology

This approach enables efficient and accurate setting of robot motion paths that avoid obstacles, improving operational safety and efficiency by systematically evaluating and selecting from multiple path candidates based on interference determination.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

This operation path setting device comprises a candidate acquisition unit, a determination unit, and a path setting unit. The candidate acquisition unit is capable of acquiring a plurality of operation path candidates from a start point to an end point on the basis of a first assumed operation path having the smallest distance linking the start point and end point of robot operation in a real working space of the robot or a multidimensional space as a configuration space for the robot. The determination unit determines whether the robot will interfere with an obstacle in at least one of a plurality of operation path candidates. The path setting unit sets an operation path for the robot on the basis of the result of determination by the determination unit.
Need to check novelty before this filing date? Find Prior Art

Description

Operation path setting device and program

[0001] The present disclosure relates to a technique for setting a motion path for a robot.

[0002] Patent Document 1 describes a technique related to planning a motion path for a robot.

[0003] Japanese Patent Application Laid-Open No. 2000-20117

[0004] A movement path setting device and a program are disclosed. In one embodiment, the movement path setting device includes a candidate acquisition unit, a determination unit, and a path setting unit. The candidate acquisition unit is capable of acquiring multiple movement path candidates from a start point to an end point of the robot movement based on a first assumed movement path that is the shortest distance connecting the start point and the end point in a multidimensional space that is the actual working space of the robot or the configuration space of the robot. The determination unit determines whether the robot will interfere with an obstacle in at least one of the multiple movement path candidates. The path setting unit sets the movement path of the robot based on the determination result of the determination unit.

[0005] In one embodiment, the program causes a computer device to execute an acquisition process to acquire multiple movement path candidates from a start point to an end point of the robot movement based on an assumed movement path with the shortest distance connecting the start point and the end point in a multidimensional space that is the actual workspace of the robot or the configuration space of the robot. The program also causes the computer device to execute a determination process to determine whether the robot will interfere with an obstacle in at least one of the multiple movement path candidates. The program also causes the computer device to execute a setting process to set the movement path of the robot based on the determination result of the determination process.

[0006] 1 is a schematic diagram showing an example of the configuration of a movement path setting device. FIG. 1 is a schematic diagram showing an example of an actual workspace. FIG. 1 is a schematic diagram showing an example of the configuration of a robot. FIG. 2 is a schematic diagram showing an example of how the shape of a robot is represented by a plurality of rectangular parallelepipeds. FIG. 3 is a flowchart showing an example of the operation of the movement path setting device. FIG. 4 is a schematic diagram for explaining an example of a method for acquiring movement path candidates. FIG. 5 is a schematic diagram for explaining an example of a method for acquiring movement path candidates. FIG. 6 is a schematic diagram for explaining an example of a method for acquiring movement path candidates. FIG. 7 is a schematic diagram for explaining an example of a method for acquiring movement path candidates. FIG. 8 is a schematic diagram for explaining an example of a method for acquiring movement path candidates. FIG. 9 is a schematic diagram for explaining an example of a method for acquiring movement path candidates. FIG. 10 is a schematic diagram for explaining an example of a method for acquiring movement path candidates. FIG. 11 is a schematic diagram for explaining an example of a method for acquiring movement path candidates. 1 is a schematic diagram for explaining an example of a method for acquiring movement path candidates. FIG. 1 is a schematic diagram for explaining an example of a method for acquiring movement path candidates. FIG. 1 is a schematic diagram for explaining an example of a method for setting a movement path. FIG. 1 is a schematic diagram for explaining an example of a method for setting a movement path. FIG. 2 is a flowchart showing an example of an operation of a control unit. FIG. 2 is a schematic diagram for explaining an example of a method for setting a movement path. FIG. 2 is a schematic diagram for explaining an example of a method for setting a movement path. FIG. 3 is a schematic diagram for explaining an example of a method for setting a movement path. FIG. 3 is a flowchart showing an example of an operation of a movement path setting device. FIG. 4 is a schematic diagram showing an example of a configuration space. FIG. 5 is a schematic diagram for explaining an example of an operation of a determination unit. FIG. 6 is a schematic diagram showing an example of a limited configuration space. FIG. 7 is a schematic diagram for explaining an example of an operation of a determination unit.

[0007] Fig. 1 is a schematic diagram showing an example of the configuration of a movement path setting device 1 that sets a movement path for a robot 10. Fig. 2 is a schematic diagram showing an example of an actual working space (also referred to as a working environment or working range) 100 in which the robot 10 performs work. The actual working space 100 is a multidimensional space. Specifically, the actual working space 100 is a three-dimensional space.

[0008] The robot 10 performs a task of moving, for example, a work object 50 (also simply referred to as the object 50) from a source area to a destination area in the actual workspace 100. The robot 10 holds the object 50 in the source area and moves the held object 50 from the source area to the destination area. For example, the robot 10 moves the held object 50 from the source area to the destination area by changing the posture of the robot 10. The object 50 is also referred to as, for example, a workpiece. Hereinafter, the posture of the robot 10 will also be referred to as the robot posture.

[0009] The source area and the destination area are, for example, trays. A plurality of work objects 50 are present in a tray 17 (also referred to as the source tray 17) as the source area. The robot 10, for example, holds each of the work objects 50 in the source tray 17 and moves them to a tray 18 (also referred to as the destination tray 18) as the destination area. The source tray 17 and the destination tray 18 are, for example, placed on a work table 15 and a work table 16, respectively. The work table 15 can also be referred to as the work start table 15, and the work table 16 can also be referred to as the work target table 16. It can also be said that the robot 10 moves the object 50 on the work start table 15 to the work target table 16. Note that at least one of the source area and the destination area may be something other than a tray. For example, at least one of the source area and the destination area may be a conveyor belt or a shelf.

[0010] The robot 10 includes, for example, an arm 11 and a robot hand 12 (also simply referred to as a hand 12) connected to the arm 11. The robot hand 12 is also called an end effector. The robot hand 12 is capable of holding an object 50. The robot hand 12 is capable of pinching the object 50 between, for example, two fingers. Such a robot hand 12 is also called a gripper. However, the configuration of the robot hand 12 is not limited to this. For example, the robot hand 12 may include a suction nozzle that suctions the object 50.

[0011] The robot 10 holds the object 50 on the source tray 17 with the robot hand 12. Then, the robot 10 moves the arm 11 while the robot hand 12 is holding the object 50, thereby moving the object 50 to the destination tray 18. For example, the robot 10 moves the object 50 to the destination tray 18 by changing the posture of the arm 11. Note that the work performed by the robot 10 is not limited to this.

[0012] The robot 10 is, for example, a six-axis robot. The number of movable axes of the robot 10 is, for example, six. The degrees of freedom of the robot 10 are, for example, six. The arm 11 of the robot 10 has, for example, six joints, and each joint has a movable axis.

[0013] FIG. 3 is a schematic diagram showing an example of six movable axes 101, 102, 103, 104, 105, and 106 provided in the robot 10. In FIG. 3, the rotation angles of the arm 11 around the movable axes 101, 102, 103, 104, 105, and 106 are represented by θa, θb, θc, θd, θe, and θf, respectively. The robot posture is represented by the parameters of rotation angles θa, θb, θc, θd, θe, and θf. Note that 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, and θf representing the robot posture may be referred to as parameters θa, θb, θc, θd, θe, and θf. Furthermore, when it is not necessary to distinguish between the rotation angles θa, θb, θc, θd, θe, and θf, each may be referred to as the rotation angle θ.

[0014] The movement path setting device 1 is, for example, a type of computer device. The movement path setting device 1 is capable of not only setting a movement path for the robot 10 but also controlling the robot 10 so that the robot 10 moves along the set movement path. In other words, the movement path setting device 1 can also function as a robot control device that controls the robot 10. The movement path setting device 1 sets the movement of the robot 10 based on the set movement path. Then, the movement path setting device 1 outputs set robot movement data indicating the set movement to the robot 10. The robot 10 moves based on the input set robot movement data. Note that a robot control device that controls the robot 10 may be provided separately from the movement path setting device 1. In this case, the movement path set by the movement path setting device 1 is notified to the robot control device. Then, the robot control device generates set robot movement data based on the notified movement path and outputs it to the robot 10. Hereinafter, the movement path simply refers to the movement path of the robot 10.

[0015] 1, the movement path setting device 1 includes, for example, a control unit 2, a storage unit 3, an interface 4, and an input unit 5. The movement path setting device 1 can also be called, for example, a movement path setting circuit.

[0016] The interface 4 is capable of exchanging signals with the robot 10. The control unit 2 is able to control the robot 10 through the interface 4. The interface 4 can also be considered, for example, as an interface circuit. Note that when a robot control device that controls the robot 10 is provided separately from the movement path setting device 1, the movement path setting device 1 may be provided with an interface that exchanges signals with the robot control device instead of the interface 4.

[0017] The control unit 2 can generally manage the operation of the motion path setting device 1 by controlling the other components of the motion path setting device 1. The control unit 2 can also be referred to as a control circuit, for example. The control unit 2 includes at least one processor to provide control and processing power for performing various functions, as will be described in more detail below.

[0018] According to various embodiments, the at least one processor may be implemented as a single integrated circuit (IC) or as multiple communicatively connected integrated circuits ICs and / or discrete circuits. The at least one processor may be implemented according to various known techniques.

[0019] In one embodiment, a processor includes one or more circuits or units configured to perform one or more data computational procedures or processes, for example, by executing instructions stored in associated memory. In other embodiments, a processor may be firmware (e.g., discrete logic components) configured to perform one or more data computational procedures or processes.

[0020] According to various embodiments, the processor may include one or more processors, controllers, microprocessors, microcontrollers, application specific integrated circuits (ASICs), digital signal processors, programmable logic devices, field programmable gate arrays, or any combination of these devices or configurations, or other known devices and configurations, to perform the functions described below.

[0021] The control unit 2 may include, for example, a CPU (Central Processing Unit) as a processor. The storage unit 3 may include a non-transitory 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 stores, for example, a program 30 for controlling the operation path setting device 1. The various functions of the control unit 2 are realized, for example, by the CPU of the control unit 2 executing the program 30 in the storage unit 3.

[0022] In addition to the program 30, the memory unit 3 also stores, for example, robot information 31 and obstacle information 32 used in setting a movement path. The robot information 31 is information about the robot 10. The robot information 31 includes, for example, information representing the shape of the robot 10. The obstacle information 32 is information about obstacles that hinder the movement of the robot 10 when the robot 10 is working. 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 present in the actual workspace 100. The obstacle includes, for example, the work table 15, the work table 16, the tray 17, and the tray 18. The obstacle may also include objects other than the work table 15, the work table 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 pillar, a chair, a desk, a shelf, a partition, and a lighting fixture.

[0023] The configuration of the control unit 2 is not limited to the above example. For example, the control unit 2 may include multiple CPUs. The control unit 2 may also include at least one DSP (Digital Signal Processor). All or some of the functions of the control unit 2 may be realized by a hardware circuit that does not require software to realize the function. The storage unit 3 may also include a computer-readable non-transitory recording medium other than ROM and RAM. The storage unit 3 may also include, for example, a small hard disk drive or SSD (Solid State Drive).

[0024] The input unit 5 can accept various inputs from the user. The input unit 5 may include, for example, a mouse and a keyboard. The input unit 5 may also include a touch sensor that accepts touch operations by the user. In this case, if the movement path setting device 1 includes a display unit such as a liquid crystal display, the display unit and the touch sensor may form a touch panel display having a display function and a touch detection function. The input unit 5 may also include a microphone that accepts voice input from the user. The control unit 2 recognizes the content of the user input accepted by the input unit 5 based on the output signal from the input unit 5. Note that, if the movement path setting device 1 includes an interface for communicating with an external device, it may accept input from the user through the interface.

[0025] The control unit 2 includes, for example, a candidate acquisition unit 20, a determination unit 21, and a route setting unit 22. The candidate acquisition unit 20, the determination unit 21, and the route setting unit 22 are functional blocks formed in the control unit 2, for example, when the CPU of the control unit 2 executes a program 30 in the storage unit 3. Note that all or some of the functions of the candidate acquisition unit 20 may be realized by a hardware circuit that does not require software to realize the function. The same applies to the determination unit 21 and the route setting unit 22.

[0026] The candidate acquisition unit 20 executes an acquisition process to acquire multiple movement path candidates from a starting point to an end point of the robot movement based on an assumed movement path that has the shortest distance connecting the starting point and the end point in the actual workspace 100. The determination unit 21 executes a determination process to determine whether or not the robot 10 will interfere with an obstacle in at least one of the multiple movement path candidates acquired by the candidate acquisition unit 20. The path setting unit 22 executes a setting process to set a movement path for the robot 10 based on the determination result by the determination unit 21.

[0027] In the interference determination process executed by the determination unit 21 to determine whether the robot 10 will interfere with an obstacle along one of the candidate movement paths, for example, not only is it determined whether the robot 10 will interfere with an obstacle, but also whether an object 50 held by the robot 10 will interfere with the obstacle. As shown in Fig. 4, the shape of the robot 10 is approximated by, for example, a plurality of rectangular parallelepipeds 110 (for example, five rectangular parallelepipeds 110). The shape of the object 50 is also approximated by, for example, a single rectangular parallelepiped 111.

[0028] In this example, the interference detection process is performed by including the object 50 held by the robot 10 in the robot 10. That is, in the interference detection process, the object 50 held by the robot 10 is treated as part of the robot 10, and it is determined whether the robot 10 will interfere with an obstacle. Hereinafter, unless otherwise specified, the term "robot 10" refers to both the robot 10 and the object 50 held by the robot 10. Furthermore, the term "robot 10 alone" refers to the robot 10 alone, excluding the object 50. The robot 10 alone can be said to be the robot 10 not holding the object 50. Furthermore, the rectangular parallelepiped 111 representing the shape of the object 50 may also be referred to as a rectangular parallelepiped 110. In the example of FIG. 4 , the shape of the robot 10 is represented by six rectangular parallelepipeds 110. The robot information 31 in the storage unit 3 includes information representing the positional relationship of the six rectangular parallelepipeds 110 representing the shape of the robot 10 and the shape of each of the six rectangular parallelepipeds. The control unit 2 can identify the shape of the robot 10 based on the robot information 31.

[0029] Furthermore, the shape of the obstacle is approximated, for example, by at least one rectangular parallelepiped. For example, if the obstacle includes multiple objects, the shape of the obstacle is approximated by multiple rectangular parallelepipeds. The obstacle information 32 stored in the memory unit 3 includes information representing the position and shape of at least one rectangular parallelepiped that represents the shape of the obstacle. The control unit 2 can identify the position and shape of the obstacle based on the obstacle information 32.

[0030] An example of the operation of the candidate acquisition unit 20, the determination unit 21, and the route setting unit 22 will be described in detail below.

[0031] 5 is a flowchart showing an example of a movement path setting process executed by the control unit 2 to set a movement path of the robot 10. First, an overview of the movement path setting process will be described, and then the details of the movement path setting process will be described.

[0032] 5, in step s1, the candidate acquisition unit 20 acquires one movement path candidate. Next, in step s2, the determination unit 21 performs interference determination processing to determine whether or not the robot 10 will interfere with an obstacle along the movement path candidate acquired in step s1. That is, the determination unit 21 performs interference determination processing to determine whether or not the robot 10 will interfere with an obstacle when the robot 10 operates along the movement path candidate acquired in step s1.

[0033] If it is determined in the interference determination process of step s2 that the robot 10 will not interfere with an obstacle, step s3 is executed. In step s3, the path setting unit 22 sets a movement path for the robot 10 based on the movement path candidates acquired in step s1. For example, the path setting unit 22 sets the movement path candidates acquired in step s1 as the movement path as is. This ends the movement path setting process.

[0034] On the other hand, if it is determined in the interference determination process of step s2 that the robot 10 will interfere with an obstacle, step s4 is executed. In step s4, the candidate acquisition unit 20 determines whether or not a new movement path candidate can be acquired. As will be described later, the candidate acquisition unit 20 is capable of acquiring a predetermined number T (T is an integer equal to or greater than 2) of movement path candidates. If the candidate acquisition unit 20 finds that an unacquired movement path candidate exists among the obtainable predetermined number T of movement path candidates, it determines that a new movement path candidate can be acquired. On the other hand, if all of the obtainable predetermined number T of movement path candidates have already been acquired, the candidate acquisition unit 20 determines that a new movement path candidate cannot be acquired.

[0035] If the determination in step s4 is YES, step s1 is executed again to obtain a new movement path candidate. That is, a movement path candidate different from the movement path candidates obtained so far is obtained. Then, step s2 is executed, and thereafter, the control unit 2 operates in the same manner. If the determination in step s4 is NO, the movement path setting process ends.

[0036] In the above example, the candidate acquisition unit 20 acquires one movement path candidate, and the determination unit 21 acquires another movement path candidate when the robot 10 interferes with an obstacle or the like along that movement path candidate, but the present disclosure is not limited to this. For example, the candidate acquisition unit 20 may acquire multiple movement path candidates, and the determination unit 21 may sequentially determine whether or not there is interference for the multiple movement path candidates.

[0037] <Example of Method for Acquiring Movement Path Candidates> The candidate acquisition unit 20 can acquire, for example, a plurality of movement path candidates for a predetermined position P of the robot 10 in the actual workspace 100. As shown in Fig. 3 , the predetermined position P is set, for example, at the tip of the robot 10 alone, that is, at the tip of the robot hand 12. In this case, the movement path candidates acquired by the candidate acquisition unit 20 can be said to be movement path candidates for the tip of the robot 10 alone. In the example of Fig. 3 , the predetermined position P is set, for example, on the movable shaft 106, at the midpoint between two fingers of the robot hand 12.

[0038] Fig. 6 is a schematic diagram for explaining an example of the operation of the candidate acquisition unit 20. As shown in Fig. 6, the candidate acquisition unit 20 can acquire a plurality of candidate movement paths from a start point 120 to an end point 121 of the robot movement in the actual workspace 100, based on an assumed movement path 130 that is the shortest distance connecting the start point 120 and the end point 121. The assumed movement path 130 is represented by a line segment connecting the start point 120 and the end point 121. Fig. 6 schematically shows an example of an obstacle 60 present in the actual workspace 100.

[0039] A starting point 120 of robot movement in the actual workspace 100 indicates, for example, the position of the robot 10 when the robot 10 holding the target object 50 starts a movement operation to move the target object 50 to the tray 18. The starting point 120 indicates, for example, the position of a predetermined location P of the robot 10 when the robot 10 starts the movement operation. Furthermore, an ending point 121 of robot movement in the actual workspace 100 indicates, for example, the position of the robot 10 when the robot 10 ends the movement operation. The ending point 121 indicates, for example, the position of the predetermined location P of the robot 10 when the robot 10 ends the movement operation. A line connecting the starting point 120 and the ending point 121 indicates the change in the position of the predetermined location P of the robot 10 from the start to the end of the movement operation. In other words, the line connecting the starting point 120 and the ending point 121 indicates the trajectory of the position of the predetermined location P of the robot 10 from the start to the end of the movement operation. 5, for example, one movement path candidate 135 connecting the start point 120 and the end point 121 is set as the movement path of the robot 10. The movement path of the robot 10 set by the path setting unit 22 is expressed as a change in the position of a predetermined location P of the robot 10 (in other words, a position trajectory).

[0040] The start point 120 can also be considered, for example, as the starting point of a robot operation of moving the object 50 after the holding operation of the object 50 is completed. The start point 120 can also be, for example, a point at which a program controlling a holding operation is switched to a program controlling a moving operation. The start point 120 is set, for example, directly above the tray 17 and slightly above the tray 17. The end point 121 can also be, for example, a point at which a program controlling a moving operation is switched to a program controlling a releasing operation. The end point 121 can also be considered, for example, as the starting point of a robot operation of releasing the object 50 after the moving operation is completed. The end point 121 is set, for example, directly above the tray 18 and slightly above the tray 18. The start point 120 can be set inside the tray 17, and the end point 121 can be set inside the tray 18.

[0041] The assumed movement path 130 can be said to be the shortest movement path from the start point 120 to the end point 121 for a predetermined position P of the robot 10. The candidate acquisition unit 20 can acquire multiple movement path candidates, for example, by moving the assumed movement path 130, in other words, by moving a line segment representing the assumed movement path 130. The candidate acquisition unit 20 can acquire multiple movement path candidates, for example, by translating the assumed movement path 130. The candidate acquisition unit 20 can acquire multiple movement path candidates, for example, by translating the assumed movement path 130 in a first direction 141 perpendicular to the assumed movement path 130 (in other words, the first direction 141 perpendicular to the line segment representing the assumed movement path 130). In this example, multiple first directions 141 perpendicular to the assumed movement path 130 are set. Then, the candidate acquisition unit 20 acquires multiple movement path candidates by translating the assumed movement path 130 in each of the multiple first directions 141. The assumed movement path 130, the movement path candidates, and the movement paths set by the path setting unit 22 are each represented by a set of a plurality of points (for example, several tens of points) set in the actual workspace 100, for example.

[0042] When acquiring movement path candidates by moving the assumed movement path 130, the candidate acquisition unit 20 connects, with a straight path 132a, one end 131a of the assumed movement path 130 after the movement is completed (also referred to as an assumed movement path 130f after the movement is completed) that was connected to the starting point 120 when the assumed movement path 130 was in its initial position to the starting point 120. The initial position of the assumed movement path 130 is the position of the assumed movement path 130 before the movement, that is, the position of the assumed movement path 130 connecting the starting point 120 and the ending point 121. Furthermore, the candidate acquisition unit 20 connects, with a straight path 132b, one end 131b of the assumed movement path 130 that was connected to the ending point 121 when the assumed movement path 130 was in its initial position to the ending point 121. Each of the straight path 132a and 132b is represented by a line segment. Then, the candidate acquisition unit 20 determines a path from the start point 120 to the end point 121, which is composed of the assumed movement path 130f after the movement is completed, the straight line path 132a, and the straight line path 132b, as one movement path candidate 135. In other words, the candidate acquisition unit 20 determines a path obtained by connecting one end and the other end of the assumed movement path 130f after the movement with the start point 120 and the end point 121, respectively, as one movement path candidate 135. One movement path candidate 135 is represented by a line connecting the start point 120 and the end point 121. In FIG. 7 , the assumed movement path 130 before the movement, that is, the assumed movement path 130 connecting the start point 120 and the end point 121, is shown by a two-dot chain line. Hereinafter, the assumed movement path 130 of the initial position may be referred to as the assumed movement path 130i of the initial position.

[0043] In this example, as shown in Fig. 6 , a virtual plane 150 perpendicular to the assumed movement path 130 is set. In the example of Fig. 6 , the outer shape of the plane 150 is circular, but it may be rectangular or another shape. The candidate acquisition unit 20 translates the assumed movement path 130 in a first direction 141 so that the assumed movement path 130 passes through a passing point set on the plane 150, thereby acquiring one movement path candidate 135 as shown in the example of Fig. 7 . When acquiring a new movement 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 translates the assumed movement path 130 in the first direction 141 so that the assumed movement path 130 passes through the passing point after the change in position, thereby acquiring the new movement path candidate 135.

[0044] 8 is a schematic diagram illustrating an example of a method for setting the position of a pass-through point 155 on a plane 150. The position of the pass-through point 155 on the plane 150 is expressed, for example, in polar coordinate format. As shown in FIG. 8 , a start line 152 extending from an intersection 151 between the plane 150 and the assumed motion path 130 is set on the plane 150. The start line 152 is perpendicular to the assumed motion path 130. The position of the pass-through point 155 on the plane 150 is expressed, for example, by a pair (r, α) of a distance r from the intersection 151 to the pass-through point 155 and an angle α from the start line 152 to the pass-through point 155. The distance r and the angle α are variables.

[0045] 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 movement path candidate 135 changes. Therefore, the candidate acquisition unit 20 can acquire multiple movement path candidates 135 by changing the combination of the set values ​​of the distance r and the deflection angle α.

[0046] The orientation of the first direction 141 in which the assumed movement path 130 moves in parallel is determined by α. The first direction 141 in which the assumed movement path 130 moves in parallel is a direction in which the deflection angle from the starting line 152 to the first direction 141 is α. The assumed movement path 130 moves in the first direction 141 in which the deflection angle from the starting line 152 is α. Furthermore, the movement distance of the assumed movement path 130 is determined by r. The assumed movement path 130 moves in parallel by the distance r.

[0047] The candidate acquisition unit 20 changes the value of α by a predetermined angle between 0 degrees and less than 360 degrees, for example. The predetermined angle may be 10 degrees, 1 degree, or another value. The predetermined angle may be set according to the length of the shortest side of each of the six rectangular parallelepipeds 110 that represent the shape of the robot 10, for example.

[0048] The candidate acquisition unit 20 varies the value of r within a predetermined range by a predetermined distance, for example. The lower limit of the predetermined range is set to be greater than 0, for example. The upper limit of the predetermined range may be set according to the size of the actual workspace 100, for example. Alternatively, the upper limit of the predetermined range may be set according to the length of the longest side of at least one rectangular parallelepiped representing the shape of the obstacle 60. The predetermined distance may be set according to the length of the shortest side of each of the six rectangular parallelepipeds 110 representing the shape of the robot 10, for example.

[0049] In this example, for example, U1 setting values ​​(U1 is an integer equal to or greater than 2) are prepared as the setting values ​​of α, and U2 setting values ​​(U2 is an integer equal to or greater than 2) are prepared as the setting values ​​of r. In this case, there are (U1 x U2) combinations of the setting values ​​of r and α. Therefore, the candidate acquisition unit 20 can set (U1 x U2) passing points 155 on the plane 150. Therefore, the candidate acquisition unit 20 can acquire (U1 x U2) movement path candidates. In this example, the predetermined number T of movement path candidates that the candidate acquisition unit 20 can acquire is U1 x U2.

[0050] Hereinafter, the total number of passing points 155 that the candidate acquisition unit 20 can set on the plane 150 is defined as S (an integer equal to or greater than 2). In this example, S=T=U1×U2.

[0051] Fig. 9 is a schematic diagram showing an example of (U1 x U2) passing points 155. In the example of Fig. 9, U1 = 12 and U2 = 5. In the example of Fig. 9, the setting values ​​of α are prepared as 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.

[0052] In step s1 of the movement path setting process, the candidate acquisition unit 20 first sets a combination of the set values ​​of r and α to a combination that has not yet been set among the S combinations. Next, the candidate acquisition unit 20 uses a passing point 155 whose position is determined by the combination of the set values ​​of r and α, and translates the assumed movement path 130 in the first direction 141 so that the assumed movement path 130 passes through the passing point 155. In other words, the candidate acquisition unit 20 translates the assumed movement path 130 in the first direction 141 so that the assumed movement path 130 passes through an unused passing point 155 among the S settable passing points 155, that is, a passing point 155 that the assumed movement path 130 has not passed through before. 7 , the candidate acquisition unit 20 connects one end 131a of the assumed movement path 130f after the completion of movement to the starting point 120 with a straight line path 132a, and connects one end 131b of the assumed movement path 130f after the completion of movement to the ending point 121 with a straight line path 132b. Then, the candidate acquisition unit 20 sets the path from the starting point 120 to the ending point 121, which is made up of the assumed movement path 130f after the completion of movement, the straight line path 132a, and the straight line path 132b, as one movement path candidate 135. As a result, in step s1, one movement path candidate 135 that has not yet been acquired from the predetermined number T of movement path candidates is acquired as a new movement path candidate 135.

[0053] In step S4 of the movement path setting process, if all (U1 × U2) combinations of the set values ​​of r and α have been set, the candidate acquisition unit 20 determines that all of the predetermined number T of movement path candidates have already been acquired and determines that a new movement path candidate 135 cannot be acquired. In other words, if all of the settable S pass points 155 have been used, the candidate acquisition unit 20 determines that all of the predetermined number T of movement path candidates have already been acquired and determines that a new movement path candidate 135 cannot be acquired. On the other hand, if there is any (U1 × U2) combination that has not yet been set as a combination of the set values ​​of r and α, the candidate acquisition unit 20 determines that a new movement path candidate 135 can be acquired. In other words, if there is an unused pass point 155 among the settable S pass points 155, the candidate acquisition unit 20 determines that a new movement path candidate 135 can be acquired.

[0054] Note that the assumed movement path 130 at the initial position, i.e., the assumed movement path 130 connecting the start point 120 and the end point 121 by the shortest distance, may be adopted as one movement path candidate 135. The assumed movement path 130 at the initial position can also be said to be the assumed movement path 130 that passes through the passing point 155 when r=0.

[0055] In the above example, the position of the passing point 155 is expressed in polar coordinate format, but the method for setting the position of the passing point 155 is not limited to this. Figure 10 is a schematic diagram for explaining another example of the method for setting the position of the passing point 155.

[0056] 10 , the candidate acquisition unit 20 sets grid lines 156 (also referred to as lattice lines 156) on, for example, a rectangular plane 150, and divides the plane 150 into a grid. At this time, the grid lines 156 are set on the plane 150 so that, for example, an intersection 151 between the plane 150 and the assumed motion path 130 is located at the center of the grid lines 156.

[0057] The candidate acquisition unit 20 sequentially sets each of the plurality of lattice points 157 on the grid line 156 as a passing point 155. The plurality of lattice points 157 on the grid line 156 become a plurality of passing points 155 that can be set on the plane 150. The plurality of lattice points 157 may or may not include an intersection 151 as shown in FIG. 10 . The candidate acquisition unit 20 can change the movement path candidate 135 used in step s2 by changing the lattice point 157 set as the passing point 155. The candidate acquisition unit 20 can acquire the same number of movement path candidates as the number of the plurality of lattice points 157. When the plurality of lattice points 157 includes an intersection 151, the assumed movement path 130i of the initial position is used as one movement path candidate 135.

[0058] In step s1 of the movement path setting process, the candidate acquisition unit 20 first sets, as pass points 155, those of the multiple lattice points 157 that have not yet been set as pass points 155. Next, the candidate acquisition unit 20 translates the assumed movement path 130 in the first direction 141 so that the assumed movement path 130 passes through the set pass points 155. Next, as in the example of FIG. 7 , the candidate acquisition unit 20 sets, as one movement path candidate 135, a path obtained by connecting both ends of the assumed movement path 130f after completion of the movement with the start point 120 and the end point 121, respectively. As a result, in step s1, one movement path candidate 135 that has not yet been acquired among the predetermined number T of movement path candidates 135 is acquired as a new movement path candidate 135.

[0059] In step s4 of the movement path setting process, if all of the plurality of lattice points 157 are set as pass points 155 (in other words, if all of the settable S pass points 155 are in use), the candidate acquisition unit 20 determines that all of the predetermined number T of movement path candidates have already been acquired and determines that one new movement path candidate cannot be acquired. On the other hand, if there is a lattice point 157 among the plurality of lattice points 157 that has not yet been set as a pass point 155 (in other words, if there is an unused pass point 155 among the settable S pass points 155), the candidate acquisition unit 20 determines that it is possible to acquire one new movement path candidate.

[0060] <Example of Interference Determination Processing> In step s2, the determination unit 21 determines whether or not the robot 10 will interfere with the obstacle 60 when a predetermined position P of the robot 10 is present at a certain position (also referred to as a focus position) on the movement path candidate 135. The focus position on the movement path candidate 135 is the position of one point included in multiple points representing the movement path candidate 135. In this example, the posture of the robot 10 is uniquely set according to the position of the predetermined position P of the robot 10. The robot information 31 in the storage unit 3 includes information for identifying the posture of the robot 10 according to each position of the predetermined position P of the robot 10 in the actual workspace 100. Based on the robot information 31, the determination unit 21 identifies the posture and shape of the robot 10 when the predetermined position P of the robot 10 is present at the focus position on the movement path candidate 135. Furthermore, the determination unit 21 identifies the position and shape of the obstacle 60 based on the obstacle information 32 in the storage unit 3. Then, the judgment unit 21 judges whether the robot 10 will interfere with the obstacle 60 when the specified location P of the robot 10 is located at the target position on the candidate movement path 135, based on the posture and shape of the robot 10 when the specified location P of the robot 10 is located at the target position on the candidate movement path 135, and the position and shape of the obstacle 60.

[0061] The determination unit 21 sequentially sets each position from the start point 120 to the end point 121 on the movement path candidate 135 (in other words, each position of a plurality of points representing the movement path candidate 135) as a focus position, and determines whether or not the robot 10 will interfere with the obstacle 60 when a predetermined position P of the robot 10 is present at the focus position. Then, when the determination unit 21 determines that the robot 10 will not interfere with the obstacle 60 for all positions on the movement path candidate 135 (in other words, for all positions of a plurality of points representing the movement path candidate 135), it determines that the robot 10 will not interfere with the obstacle on the movement path candidate 135 (determines NO in step s2). On the other hand, when the judgment unit 21 determines that the robot 10 will interfere with the obstacle 60 if a specified point P exists at any position on the movement path candidate 135 (in other words, if a specified point P exists at the position of any of the multiple points representing the movement path candidate 135), it determines that the robot 10 will interfere with the obstacle on the movement path candidate 135 (determines YES in step s2).

[0062] Note that, due to the performance of the robot 10, the predetermined position P of the robot 10 may not be present at the target position on the movement path candidate 135. For example, if the target position on the movement path candidate 135 is outside the range of motion of the robot 10 in the actual workspace 100, the predetermined position P of the robot 10 cannot be present at the target position. The range of motion of the robot 10 is the range that the tip of the robot hand 12 can reach when the arm 11 rotates in a fully extended state. Furthermore, if the target position on the movement path candidate 135 is located within an inaccessible area, the predetermined position P of the robot 10 cannot be present at the target position. The inaccessible area is a range that is within the range of motion but cannot be entered by the tip of the robot hand 12. The inaccessible area includes, for example, the base of the arm 11. Furthermore, when the robot 10 is in a specific posture, the robot 10 may not be able to move in a specific direction. This specific posture is also called a singular point. Due to a singularity in the posture of the robot 10, the predetermined position P of the robot 10 may not be located at the position of interest on the movement path candidate 135.

[0063] In this way, if the predetermined position P of the robot 10 cannot be located at the target position on the movement path candidate 135, that movement path candidate 135 cannot be used to set the movement path of the robot 10. In other words, a movement path candidate 135 (also referred to as a special movement path candidate 135) that includes a point where the predetermined position P of the robot 10 cannot be located cannot be used to set the movement path of the robot 10. Therefore, the determination unit 21 may perform interference detection processing only on movement path candidates 135 that do not fall under the special movement path candidates 135. In this case, the special movement path candidates 135 are not used in setting the movement path. The robot information 31 includes information for specifying a location where the predetermined position P of the robot 10 cannot be located. Based on this information, the determination unit 21 can determine whether or not the movement path candidate 135 falls under the special movement path candidate 135.

[0064] Hereinafter, a movement path candidate determined that the robot 10 will not interfere with the obstacle 60 may be referred to as a non-interference path candidate. Also, a movement path candidate determined that the robot 10 will interfere with the obstacle 60 may be referred to as an interference path candidate.

[0065] Note that, when a predetermined number T of movement path candidates can be acquired, the determination unit 21 may perform interference detection processing on the predetermined number T of movement path candidates, for example, in order starting from the candidate closest to the assumed movement path 130 of the initial position. Then, once the determination unit 21 finds a non-interfering path candidate first, it is not necessary to perform interference detection processing thereafter. In this case, the determination unit 21 may perform interference detection processing on only some of the predetermined number T of movement path candidates acquired by the candidate acquisition unit 20. The path setting unit 22 may set the non-interfering path candidate found first by the determination unit 21 as the movement path.

[0066] As described above, in this example, multiple movement path candidates are obtained based on the assumed movement path 130 with the shortest distance connecting the starting point 120 and the end point 121 of the robot movement, so the movement path setting device 1 can efficiently set the movement path of the robot 10.

[0067] Furthermore, in this example, the candidate acquisition unit 20 moves the assumed operation path 130 to acquire multiple operation path candidates 135, and therefore, multiple operation path candidates 135 can be acquired by relatively simple processing of the assumed operation path 130.

[0068] Once the path setting unit 22 has set the movement path of the robot 10 in this manner, the control unit 2 sets the movement of the robot 10 along the set movement path based on the set movement path (also referred to as the set movement path). Specifically, the control unit 2 sets the movement of each joint of the arm 11 along the set movement path.

[0069] Here, each of the multiple points representing the set movement path is referred to as a set path point. Also, the time elapsed from the start of the movement of the robot 10 is referred to as the movement elapsed time. For each set path point on the set movement path, the control unit 2 first determines the robot posture when a predetermined position P of the robot 10 is located at the set path point. Specifically, for each set path point on the set movement path, the control unit 2 determines, as the set rotation angle θ, the rotation angle θ of each joint of the arm 11 when the predetermined position P of the robot 10 is located at the set path point.

[0070] Hereinafter, the set rotation angle θ of a certain joint of the arm 11 when a predetermined position P of the robot 10 is located at a certain set path point will be referred to as the set rotation angle θ of the certain joint at the certain set path point. Also, the set path point of interest will be referred to as the set path point of interest, and the joint of the robot 10 of interest will be referred to as the joint of interest.

[0071] The control unit 2 determines an elapsed motion time corresponding to the set rotation angle θ of the joint of interest at a set path point of interest. The elapsed motion time corresponding to the set rotation angle θ of the joint of interest means the elapsed motion time during which the joint of interest should take the set rotation angle θ. The set rotation angle θ of the joint of interest corresponding to a certain movement path time on the set movement path means the rotation angle θ that the joint of interest should take at that certain movement elapsed time. The control unit 2 determines an elapsed motion time corresponding to the set rotation angle θ of the joint of interest at the set path point for each of a plurality of set path points representing the set movement path. This roughly sets when and what rotation angle θ the joint of interest should take when the robot 10 moves along the set movement path. In other words, a rough movement of the joint of interest on the set movement path is set.

[0072] Here, the memory unit 3 stores upper limit values ​​of rotational speed and rotational acceleration for each joint of the arm 11. When setting the general movement of the joint of interest along the set movement path, the control unit 2 prevents the rotational speed and rotational acceleration of the joint of interest from exceeding the upper limit values ​​of rotational speed and rotational acceleration, respectively. The control unit 2 determines, for each set path point of the set movement path, a movement elapsed time corresponding to the set rotation angle θ of the joint of interest at that set path point, based on the upper limit values ​​of rotational speed and rotational acceleration in the memory unit 3. In other words, the control unit 2 sets the general movement of the joint of interest along the set movement path based on the upper limit values ​​of rotational speed and rotational acceleration. The control unit 2 similarly sets the general movement of each joint of the arm 11 along the set movement path. As a result, multiple combinations of movement path time and set rotation angle θ are obtained for each joint of the arm 11.

[0073] Next, the control unit 2 considers a two-dimensional orthogonal coordinate system (called a specific coordinate system) with the horizontal axis representing the elapsed motion time and the vertical axis representing the set rotation angle θ corresponding to the elapsed motion time. The control unit 2 plots all combinations of the elapsed motion time and the set rotation angle θ for the joint of interest in the specific coordinate system. As a result, multiple points representing the change in the set rotation angle θ of the joint of interest according to the elapsed motion time are set in the specific coordinate system. Each of these multiple points is called a provisional motion point. The number of multiple provisional motion points set in the specific coordinate system matches the number of multiple set path points representing the set motion path. Hereinafter, the number of multiple provisional motion points will be represented by N1 (N1 is an integer greater than or equal to 2).

[0074] Next, the control unit 2 sets an interpolation curve that interpolates N1 provisional operation points of the target joint in a specific coordinate system. The interpolation curve may be, for example, a spline curve or another curve. The control unit 2 then sets N2 points on the set interpolation curve. Each of these N2 points is called a final operation point. N2 is an integer greater than N1 and is set to, for example, several thousand. The control unit 2 sets, for example, several thousand final operation points on the interpolation curve. Hereinafter, a combination of the elapsed operation time and the set rotation angle θ at a certain final operation point will be called operation point data representing that certain final operation point.

[0075] The control unit 2 generates joint setting motion data indicating the set motion of the target joint based on the N2 final motion points. The joint setting motion data includes N2 pieces of motion point data representing the N2 final motion points, respectively. The control unit 2 generates joint setting motion data for each joint in the same manner. Then, the control unit 2 sets the joint setting motion data for the multiple joints of the arm 11 as robot setting motion data indicating the set motion of the robot 10 along the set motion path. The robot setting motion data includes multiple pieces of joint setting motion data indicating the motion of each of the multiple joints.

[0076] In this way, in this example, the set motion path is represented by N1 points, which is fewer than the N2 motion point data directly used in the motion control of the robot 10, and therefore, for example, the amount of calculation required in the above-mentioned interference detection process can be reduced.

[0077] <Other operation examples of the candidate acquisition unit> In the examples of Figures 9 and 10 above, the movement direction of the assumed action 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 movement direction of the assumed action path 130.

[0078] For example, the user inputs non-required information indicating that it is not necessary to acquire a movement path candidate that passes through a certain range to the movement path setting device 1 through the input unit 5. For example, consider a case where it is known in advance that an obstacle 60 is necessarily present below the assumed movement path 130i of the initial position. In this case, it is difficult to set the movement path of the robot 10 below the assumed movement path 130i of the initial position. Therefore, the user inputs non-required information indicating that it is not necessary to acquire a movement path candidate that passes below the assumed movement path 130i of the initial position to the movement path setting device 1 through the input unit 5. The candidate acquisition unit 20 limits the movement range of the assumed movement path 130 based on the non-required information input by the user. For example, if the non-required information indicates that it is not necessary to acquire a movement path candidate that passes below the assumed movement path 130i of the initial position, the candidate acquisition unit 20 does not set a passing point 155 below the assumed movement path 130i of the initial position. For example, consider a case where the side below the intersection 151 is below the assumed movement path 130i of the initial position in FIG. 10 . In this case, the candidate acquisition unit 20 does not set the lattice point 157 below the intersection point 151 in Fig. 10 as the passing point 155. As a result, the assumed movement path 130 is not moved below its initial position when acquiring movement path candidates. Therefore, no movement path candidates that pass below the assumed movement path 130 at its initial position are acquired.

[0079] Furthermore, the candidate acquisition section 20 may translate the assumed movement path 130 in a second direction 142 parallel to the assumed movement path 130 in addition to the first direction 141 to acquire a plurality of movement path candidates.

[0080] Here, there are two types of second directions 142 parallel to the assumed motion path 130: second direction 142a (see Figure 11 described below) from the end point 121 side toward the start point 120 side, and second direction 142b (see Figure 12 described below) from the start point 120 side toward the end point 121 side.

[0081] The candidate acquisition unit 20 may acquire a plurality of movement path candidates by, for example, translating the assumed movement path 130 in the first direction 141, the second direction 142 a, and the second direction 142 b. In this case, the methods by which the candidate acquisition unit 20 acquires one movement path candidate 135 in step s1 include a method of translating the assumed movement path 130 only in the first direction 141 to acquire one movement path candidate 135 (also referred to as a first acquisition method using translation), a method of translating the assumed movement path 130 in the first direction 141 and the second direction 142 a to acquire one movement path candidate 135 (also referred to as a second acquisition method using translation), and a method of translating the assumed movement path 130 in the first direction 141 and the second direction 142 b to acquire one movement path candidate 135 (also referred to as a third acquisition method using translation). The candidate acquisition unit 20 can acquire a predetermined number T of candidate movement paths 135 by translating the assumed movement path 130 in the first direction 141, the second direction 142a, and the second direction 142b using the first acquisition method, the second acquisition method, and the third acquisition method using parallel movement.

[0082] In the first acquisition method using parallel movement, one movement path candidate 135 is acquired in the same manner as in the example of FIG. 7 . In the second acquisition method using parallel movement, the candidate acquisition unit 20, for example, first translates the assumed movement path 130 in a first direction 141 as shown in FIG. 7 . At this point, the movement of the assumed movement path 130 is not complete. Next, as shown in FIG. 11 , the candidate acquisition unit 20 further translates the assumed movement path 130 translated in the first direction 141 (also referred to as the assumed movement path 130v after movement in the first direction) in a second direction 142a. This completes the movement of the assumed movement path 130. Next, the candidate acquisition unit 20 connects one end 131a of the assumed movement path 130f after the movement is completed to the starting point 120 with a straight path 132a, and connects one end 131b of the assumed movement path 130f after the movement is completed to the end point 121 with a straight path 132b. Then, the candidate acquisition unit 20 determines a path consisting of the assumed movement path 130f after the movement is completed, the straight path 132a, and the straight path 132b as one movement path candidate 135.

[0083] In the third acquisition method using parallel movement, the candidate acquisition unit 20 first translates the assumed movement path 130 in a first direction 141 as shown in FIG. 7 . Next, as shown in FIG. 12 , the candidate acquisition unit 20 further translates the assumed movement path 130v after the movement in the first direction in a second direction 142b. This completes the movement of the assumed movement path 130. Next, the candidate acquisition unit 20 connects one end 131a of the assumed movement path 130f after the movement is completed to the starting point 120 with a straight path 132a, and connects one end 131b of the assumed movement path 130f after the movement is completed to the end point 121 with a straight path 132b. The candidate acquisition unit 20 then determines a path consisting of the assumed movement path 130f after the movement is completed, the straight path 132a, and the straight path 132b as one movement path candidate 135.

[0084] In the second acquisition method using translation, the candidate acquirer 20 may translate the assumed movement path 130 in the second direction 142a, and then translate it in the first direction 141. In the third acquisition method using translation, the candidate acquirer 20 may translate the assumed movement path 130 in the second direction 142b, and then translate it in the first direction 141.

[0085] In the second acquisition method using parallel movement, the candidate acquisition unit 20 can change the movement path candidate to be acquired by changing the amount of movement of the assumed movement path 130 in the second direction 142a. Furthermore, in the third acquisition method using parallel movement, the candidate acquisition unit 20 can change the movement path candidate to be acquired by changing the amount of movement of the assumed movement path 130 in the second direction 141b. For example, V1 (V1 is an integer equal to or greater than 1) set values ​​are prepared as the set value of the movement amount of the assumed movement path 130 in the second direction 142a. Furthermore, for example, V2 (V2 is an integer equal to or greater than 1) set values ​​are prepared as the set value of the movement amount of the assumed movement path 130 in the second direction 141b. The values ​​V1 and V2 may be the same or different from each other.

[0086] In the following description, the passing point 155 of interest (in other words, the passing point 155 to be described) will be referred to as the passing point of interest 155. Furthermore, the assumed movement path 130 translated in the first direction 141 so that the assumed movement path 130 passes through the passing point of interest 155 will be referred to as the assumed movement path of interest 130v after movement in the first direction.

[0087] In the first acquisition method using parallel movement, the candidate acquisition unit 20 can acquire one movement path candidate 135 by using the assumed movement path of interest 130v after movement in the first direction (see FIG. 7). In the second acquisition method using parallel movement, the candidate acquisition unit 20 can acquire one movement path candidate 135 by using the assumed movement path of interest 130v after movement in the first direction translated in the second direction 142a by a set value (see FIG. 11). Since V1 set values ​​are prepared as set values ​​for the movement amount of the assumed movement path 130 in the second direction 142a, the candidate acquisition unit 20 can acquire V1 movement path candidates 135 by translating the assumed movement path of interest 130v after movement in the first direction in the second direction 142a by each set value. Similarly, in the second acquisition method using parallel movement, the candidate acquisition unit 20 can acquire V2 movement path candidates 135 by parallel moving the target assumed movement path 130v after movement in the first direction in the second direction 141b by each set value.

[0088] In this way, when focusing on one passing point 155, the candidate acquisition unit 20 can acquire (1+V1+V2) movement path candidates 135. Therefore, the candidate acquisition unit 20 can acquire a total of (S×(1+V1+V2)) movement path candidates 135. In this case, the predetermined number T of movement path candidates 135 that the candidate acquisition unit 20 can acquire is S×(1+V1+V2).

[0089] In step s1 of the movement path setting process, the candidate acquisition unit 20 acquires one movement path candidate 135 that has not been acquired so far from the acquireable (S×(1+V1+V2)) movement path candidates 135. In step s4 of the movement path setting process, if there is an unacquired movement path candidate 135 among the acquireable (S×(1+V1+V2)) movement path candidates 135, the candidate acquisition unit 20 determines that it is possible to acquire a new movement path candidate 135. On the other hand, if all of the acquireable (S×(1+V1+V2)) movement path candidates 135 have already been acquired, the candidate acquisition unit 20 determines that it is not possible to acquire a new movement path candidate 135.

[0090] The candidate acquisition unit 20 does not have to translate the assumed movement path 130 in 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)) movement path candidates 135. The candidate acquisition unit 20 does not have to translate the assumed movement path 130 in 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)) movement path candidates 135.

[0091] In this way, the candidate acquisition unit 20 acquires a plurality of movement path candidates 135 by translating the assumed movement path 130 in the first direction 141 and the second direction 142, thereby acquiring a variety of movement path candidates 135. Therefore, the movement path of the robot 10 can be appropriately set.

[0092] In the above example, the movement of the assumed movement path 130 when the movement path candidates 135 are acquired is a translational movement, but it may also be a rotational movement. That is, the candidate acquisition unit 20 may acquire multiple movement path candidates 135 by rotationally moving the assumed movement path 130. For example, the candidate acquisition unit 20 may acquire multiple movement path candidates 135 by rotationally moving the assumed movement path 130 around the first rotation axis 161 and the second rotation axis 162.

[0093] Fig. 13 is a schematic diagram showing an example of how the assumed movement path 130 is rotated around the first rotation axis 161. Fig. 14 is a schematic diagram showing an example of how the assumed movement path 130 is rotated around the second rotation axis 162. Fig. 13 shows an example of how the actual work space 100 is viewed from the side of the work tables 15 and 16, and Fig. 14 shows an example of how the actual work space 100 is viewed from above the work tables 15 and 16.

[0094] 13 and 14 , the first rotation axis 161 is set, for example, perpendicular to the assumed movement path 130 of the initial position and parallel to the floor on which the work tables 15 and 16 are placed. The second rotation axis 162 is set, for example, perpendicular to the assumed movement path 130 of the initial position and perpendicular 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.

[0095] In this example, the first rotation axis 161 passes through the starting point 120, so when the assumed movement path 130 rotates around the first rotation axis 161, one end of the assumed movement path 130 on the end point 121 side moves, but the one end of the assumed movement path 130 on the start point 120 side does not move. Also, because the second rotation axis 162 passes through the starting point 120, when the assumed movement path 130 rotates around the second rotation axis 162, one end of the assumed movement path 130 on the end point 121 side moves, but the one end of the assumed movement path 130 on the start point 120 side does not move.

[0096] The candidate acquisition unit 20 can change the acquired movement path candidate 135 by changing the rotation angle β1 of the assumed movement path 130 around the first rotation axis 161. The candidate acquisition unit 20 can also change the acquired movement path candidate 135 by changing the rotation angle β2 of the assumed movement path 130 around the second rotation axis 162.

[0097] For example, the candidate acquisition unit 20 changes the set value of the rotation angle β1 by a first predetermined angle between greater than 0 degrees and less than 360 degrees. The first predetermined angle may be 10 degrees, 1 degree, or another value. The first predetermined angle may be set, for example, in accordance with the length of the shortest side of each of the six rectangular parallelepipeds 110 representing the shape of the robot 10. Furthermore, the candidate acquisition unit 20 changes the set value of the rotation angle β2 by a second predetermined angle between greater than 0 degrees and less than 360 degrees. The second predetermined angle may be 10 degrees, 1 degree, or another value. The second predetermined angle may be set, for example, in accordance with the length of the shortest side of each of the six rectangular parallelepipeds 110 representing the shape of the robot 10. The second predetermined angle may be the same as or different from the first predetermined angle.

[0098] In this example, for example, W1 setting values ​​(W1 is an integer greater than or equal to 1) are prepared as setting values ​​for β1, and for example, W2 setting values ​​(W2 is an integer greater than or equal to 1) are prepared as setting values ​​for β2.

[0099] In this example, the methods by which the candidate acquisition unit 20 acquires one movement path candidate 135 in step s1 include a method of acquiring one movement path candidate 135 by rotating and moving the assumed movement path 130 only around the first rotation axis 161 (also referred to as a first acquisition method using rotational movement), a method of acquiring one movement path candidate 135 by rotating and moving the assumed movement path 130 only around the second rotation axis 162 (also referred to as a second acquisition method using rotational movement), and a method of acquiring one movement path candidate 135 by rotating and moving the assumed movement path 130 around the first rotation axis 161 and the second rotation axis 162 (also referred to as a third acquisition method using rotational movement). The candidate acquisition unit 20 can acquire a predetermined number T of movement path candidates 135 by rotating and moving the assumed movement path 130 around the first rotation axis 161 and the second rotation axis 162 using the first acquisition method, the second acquisition method, and the third acquisition method using rotational movement.

[0100] In the first acquisition method using rotational movement, the candidate acquisition unit 20 first rotates the assumed movement path 130 around the first rotation axis 161 by a certain set value of β1, as shown in FIG. 13 . This completes the movement of the assumed movement path 130. Next, the candidate acquisition unit 20 connects one end 131b of the assumed movement path 130f after the movement is completed to the end point 121 with a straight path 132b. In this example, when the assumed movement path 130 rotates around the first rotation axis 161, the one end of the assumed movement path 130 on the starting point 120 side does not move, and therefore the straight path 132a is not set. Then, the candidate acquisition unit 20 determines a path consisting of the assumed movement path 130f after the movement is completed and the straight path 132b as one movement path candidate 135. Since W1 setting values ​​are prepared as the setting values ​​of β1, the candidate acquisition unit 20 can acquire W1 operation path candidates 135 using the first acquisition method using rotational movement.

[0101] In the second acquisition method using rotational movement, as shown in FIG. 14 , the candidate acquisition unit 20 first rotates the assumed movement path 130 around the second rotation axis 162 by a certain set value of β2. This completes the movement of the assumed movement path 130. Next, the candidate acquisition unit 20 connects one end 131b of the assumed movement path 130f after the movement is completed to the end point 121 with a straight path 132b. In this example, when the assumed movement path 130 rotates around the second rotation axis 162, the one end of the assumed movement path 130 on the starting point 120 side does not move, so the straight path 132a is not set. Then, the candidate acquisition unit 20 sets a path consisting of the assumed movement path 130f after the movement is completed and the straight path 132b as one movement path candidate 135. Since W2 setting values ​​are prepared as the setting values ​​of β2, the candidate acquisition unit 20 can acquire W2 operation path candidates 135 using the second acquisition method using rotational movement.

[0102] In the third acquisition method using rotational movement, the candidate acquisition unit 20 first rotates the assumed movement path 130 around the first rotation axis 161 by a certain set value of β1, as shown in FIG. 13 . At this point, the movement of the assumed movement path 130 is not complete. Next, the candidate acquisition unit 20 rotates the assumed movement path 130, which has been rotated around the first rotation axis 161, around the second rotation axis 162 by a certain set value of β2. This completes the movement of the assumed movement path 130. Next, the candidate acquisition unit 20 connects one end 131b of the assumed movement path 130f after the movement is completed to the end point 121 with a straight path 132b. Then, the candidate acquisition unit 20 defines a path consisting of the assumed movement path 130f after the movement is completed and the straight path 132b as one movement path candidate 135. Since W1 setting values ​​are prepared as the setting values ​​for β1 and W2 setting values ​​are prepared as the setting values ​​for β2, the candidate acquisition unit 20 can use the third acquisition method using rotational movement to acquire (W1 × W2) movement path candidates 135. Note that in the third acquisition method using rotational movement, the assumed movement path 130 may be rotated around the first rotation axis 161 after being rotated around the second rotation axis 162.

[0103] In this way, the candidate acquisition unit 20 can acquire W1 movement path candidates 135 using the first acquisition method using rotational movement, can acquire W2 movement path candidates 135 using the second acquisition method using rotational movement, and can acquire (W1 x W2) movement path candidates 135 using the third acquisition method using rotational movement. Therefore, the predetermined number T of movement path candidates 135 that the candidate acquisition unit 20 can acquire is T = (W1 + W2 + (W1 x W2)).

[0104] In the above example, the candidate acquisition unit 20 rotates the assumed movement path 130 around the first rotation axis 161 and the second rotation axis 162, but the assumed movement path 130 may be rotated only around the first rotation axis 161 to acquire multiple movement path candidates 135. In this case, T = W1. The candidate acquisition unit 20 may also rotate the assumed movement path 130 only around the second rotation axis 162 to acquire multiple movement path candidates 135. In this case, T = W2.

[0105] The positions of the first rotation axis 161 and the second rotation axis 162 are not limited to the above example. 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 movement 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 movement path 130f after the movement is completed moves from the start point 120, and one end 131b of the assumed movement 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, as one movement path candidate 135, a path consisting of the assumed movement path 130f after the movement is completed and a straight path 132a connecting the one end 131a of the assumed movement path 130f and the start point 120. Furthermore, the first rotation axis 161 and the second rotation axis 162 may pass through a point (e.g., a midpoint) on the assumed movement path 130i of the initial position excluding both ends of the assumed movement path 130i. In this case, when the assumed movement path 130 rotates around at least one of the first rotation axis 161 and the second rotation axis 162, both ends 131a and 131b of the assumed movement path 130f after movement is completed move from the start point 120 and the end point 121, respectively. In such a case, the candidate acquisition unit 20 acquires, as one movement path candidate 135, a path made up of the assumed movement path 130f after movement is completed, a straight line path 132a connecting one end 131a of the assumed movement path 130f to the start point 120, and a straight line path 132b connecting one end 131b of the assumed movement path 130f to the end point 121.

[0106] Furthermore, the candidate acquisition unit 20 may acquire a plurality of movement path candidates 135 by translating and rotating the assumed movement path 130. For example, the candidate acquisition unit 20 may acquire a plurality of movement path candidates 135 by translating and rotating the assumed movement path 130 in a first direction 141. In this case, there are roughly three methods by which the candidate acquisition unit 20 acquires one movement path candidate 135. As a first method, the candidate acquisition unit 20 acquires one movement path candidate 135 by translating the assumed movement path 130 in the first direction 141 as shown in FIG. 7. As a second method, the candidate acquisition unit 20 acquires one movement path candidate 135 by rotating the assumed movement path 130 as shown in FIGS. 13 and 14. As a third method, the candidate acquisition unit 20 acquires one movement path candidate 135 by translating and rotating the assumed movement path 130 in the first direction 141. The candidate acquisition unit 20 can acquire a predetermined number T of candidate movement paths 135 by translating and rotating the assumed movement path 130 using the first, second, and third methods.

[0107] Fig. 15 is a schematic diagram showing an example of an assumed movement path 130 that has moved parallel to a first direction 141 and then rotated. In the example of Fig. 15, the assumed movement path 130 has moved parallel to the first direction 141 and then rotated around a first rotation axis 161. In other words, an assumed movement path 130v after moving in the first direction has rotated around the first rotation axis 161.

[0108] 15 , when acquiring one movement path candidate 135, the candidate acquisition unit 20 connects one end 131a of an assumed movement path 130f after completion of movement, which is obtained by translating the assumed movement path 130f in the first direction 141 and then rotating the assumed movement path 130f around the first rotation axis 161, to the starting point 120 with a straight path 132a. The candidate acquisition unit 20 also connects one end 131b of the assumed movement path 130f after completion of movement to the ending point 121 with a straight path 132b. The candidate acquisition unit 20 then sets the path consisting of the assumed movement path 130f after completion of movement, the straight path 132a, and the straight path 132b as one movement path candidate 135.

[0109] Note that the assumed motion path 130 may be subjected to a parallel translation and a rotational movement about the second rotation axis 162. The assumed motion path 130 may be subjected to a parallel translation, a rotational movement about the first rotation axis 161, and a rotational movement about the second rotation axis 162. The order in which the parallel translation and rotational movement are performed on the assumed motion path 130 is not limited to the above.

[0110] Furthermore, the candidate acquisition unit 20 may acquire a plurality of movement path candidates 135 by translating the assumed movement path 130 in a first direction 141, translating the assumed movement path 130 in a second direction 142, and rotating the assumed movement path 130. In this case, there are roughly five methods by which the candidate acquisition unit 20 acquires one movement path candidate 135. As a first method, the candidate acquisition unit 20 acquires one movement path candidate 135 by translating the assumed movement path 130 in the first direction 141 as shown in FIG. 7. As a second method, the candidate acquisition unit 20 acquires one movement path candidate 135 by translating the assumed movement path 130 in the first direction 141 and the second direction 142 as shown in FIGS. 11 and 12. As a third method, the candidate acquisition unit 20 acquires one movement path candidate 135 by rotating the assumed movement path 130 as shown in FIGS. 13 and 14. As a fourth method, as in the example of Fig. 15 , the candidate acquisition unit 20 translates and rotates the assumed movement path 130 in a first direction 141 to acquire one movement path candidate 135. As a fifth method, the candidate acquisition unit 20 translates and rotates the assumed movement path 130 in the first direction 141 and the second direction 142 to acquire one movement path candidate 135. The candidate acquisition unit 20 can acquire a predetermined number T of movement path candidates 135 using the first, second, third, fourth, and fifth methods.

[0111] In this way, when the candidate acquisition section 20 acquires a plurality of movement path candidates 135 by rotating and moving the assumed movement path 130, the plurality of movement path candidates 135 can be acquired by relatively simple processing of the assumed movement path 130.

[0112] Furthermore, the candidate acquisition unit 20 may acquire a plurality of movement path candidates 135 by transforming the assumed movement path 130. For example, the candidate acquisition unit 20 may acquire a plurality of movement path candidates 135 by transforming the assumed movement path 130 into a curve. 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 by three points on the actual workspace 100. The candidate acquisition unit 20 may transform the assumed movement path 130 into a plurality of curves, and set each of the plurality of curves as one movement path candidate 135.

[0113] FIG. 16 is a schematic diagram showing an example of a state in which an assumed movement path 130 has been transformed into a quadratic Bezier curve connecting a start point 120 and an end point 121. When acquiring one movement path candidate 135, the candidate acquisition unit 20, for example, sets one control point of the Bezier curve in addition to the start point 120 and the end point 121 in the actual workspace 100. Furthermore, the candidate acquisition unit 20 sets the start point 120 as one of the start point and the end point of the Bezier curve, and sets the end point 121 as the other of the start point and the end point of the Bezier curve. In this way, three points are set in the actual workspace 100, and the candidate acquisition unit 20 can transform the assumed movement path 130 into a quadratic Bezier curve connecting the start point 120 and the end point 121. The candidate acquisition unit 20 regards the assumed movement path 130 transformed into a quadratic Bezier curve as one movement path candidate 135. The shape of the quadratic Bezier curve is determined by the positions of the control points. Therefore, the candidate acquisition unit 20 can change the movement path candidate 135 to be acquired by changing the position of the control point. By providing multiple setting values ​​for the position of the control point, the candidate acquisition unit 20 can transform the assumed movement path 130 into multiple Bezier curves with different shapes. Like the passing points 155, the control points may be set on a plane 150 that is orthogonal to the assumed movement path 130i of the initial position. The positions of the control points on the plane 150 may be expressed in polar coordinate format, as shown in FIG. 8, for example. Furthermore, as shown in FIG. 10, lattice points 157 set on the plane 150 may be set as control points.

[0114] Furthermore, the candidate acquisition unit 20 may acquire multiple movement path candidates 135 by moving and deforming the assumed movement path 130. In this case, there are roughly three methods by which the candidate acquisition unit 20 acquires one movement path candidate 135. As a first method, the candidate acquisition unit 20 acquires one movement path candidate 135 by moving the assumed movement path 130 as shown in FIGS. 7, 11 to 15, etc. As a second method, the candidate acquisition unit 20 acquires one movement path candidate 135 by deforming the assumed movement path 130 as shown in FIG. 16. As a third method, the candidate acquisition unit 20 acquires one movement path candidate 135 by moving and deforming the assumed movement path 130. The candidate acquisition unit 20 can acquire a predetermined number T of movement path candidates 135 by moving and deforming the assumed movement path 130 using the first, second, and third methods.

[0115] FIG. 17 is a schematic diagram illustrating an example of an operation in which the candidate acquisition unit 20 moves and deforms the assumed movement path 130 to acquire one movement path candidate 135. When acquiring one movement path candidate 135, the candidate acquisition unit 20, for example, moves the assumed movement path 130. In the example of FIG. 17 , the candidate acquisition unit 20 translates the assumed movement path 130 in a first direction 141. Next, the candidate acquisition unit 20 deforms the assumed movement path 130 into a curve. In the example of FIG. 17 , the candidate acquisition unit 20 deforms the assumed movement path 130v after movement in the first direction into a quadratic Bezier curve. The candidate acquisition unit 20 sets one end 131a of the assumed movement path 130v after movement in the first direction to one of the start point and end point of the Bezier curve, and sets one end 131b of the assumed movement path 130v after movement in the first direction to the other of the start point and end point of the Bezier curve.

[0116] Next, the candidate acquisition unit 20 connects one end 131a of the assumed movement path 130 (also referred to as assumed movement path 130g) for which movement and deformation have been completed to the starting point 120 with a straight path 132a. The candidate acquisition unit 20 also connects one end 131b of the assumed movement path 130g for which movement and deformation have been completed to the ending point 121 with a straight path 132b. The candidate acquisition unit 20 then sets a path made up of the assumed movement path 130g for which movement and deformation have been completed, the straight path 132a, and the straight path 132b as one movement path candidate 135. Note that the candidate acquisition unit 20 may acquire one movement path candidate 135 by moving the assumed movement path 130 after transforming it.

[0117] In this way, when the candidate acquisition section 20 acquires a plurality of movement path candidates 135 by modifying the assumed movement path 130, the plurality of movement path candidates 135 can be acquired by performing a relatively simple process on the assumed movement path 130.

[0118] In the above example, the candidate acquisition unit 20 acquires a plurality of movement path candidates 135 by at least one of moving and transforming the entire region of the assumed movement path 130, but it may also acquire at least one movement path candidate 135 from the predetermined number T of movement path candidates 135 by at least one of moving and transforming only a portion of the assumed movement path 130. For example, the candidate acquisition unit 20 may acquire a new movement path candidate 135 different from the assumed movement path 130i by at least one of moving and transforming a partial path of the assumed movement path 130i for the initial position that includes a region where the assumed movement path 130i interferes with the obstacle 60. The region of the assumed movement path 130i for the initial position where the assumed movement path 130i interferes with the obstacle 60 can also be said to be the region of the assumed movement path 130i for the initial position where the assumed movement path 130i hits the obstacle 60.

[0119] 18 and 19 are schematic diagrams illustrating an example of an operation in which the candidate acquisition unit 20 moves a partial path of the assumed operation path 130i of the initial position that includes an area where the assumed operation path 130i interferes with an obstacle 60, and acquires an operation path candidate 135 that is different from the assumed operation path 130i.

[0120] For example, the determination unit 21 sets a partial path 1310 of the movement target, which includes an area 1300 that interferes with the obstacle 60 (in other words, an area that hits the obstacle 60) on the assumed motion path 130i of the initial position. Specifically, the determination unit 21 extracts, as an overlapping portion, the range of a line obtained by projecting the shape of the obstacle 60 onto the assumed motion path 130i of the initial position. Then, the determination unit 21 sets this overlapping portion as the partial path 1310. The determination unit 21 can set the partial path 1310 based on the obstacle information 32.

[0121] The candidate acquisition unit 20 acquires at least one new movement path candidate 135 by moving the partial path 1310 set by the determination unit 21, in the same manner as when moving the entire assumed movement path 130. The movement of the partial path 1310 may be a translational movement, a rotational movement, or a combination of a translational movement and a rotational movement. Hereinafter, the partial path 1310 before movement, which is included in the assumed movement path 130i of the initial position, may be referred to as the partial path 1310i of the initial position.

[0122] 19 is a schematic diagram illustrating an example of an operation in which the candidate acquisition unit 20 acquires one movement path candidate 135 by moving a partial path 1310 in a first direction 141. In the example of FIG. 19 , the initial position partial path 1310i included in the assumed movement path 130i for the initial position does not include the start point 120 or the end point 121. In such a case, the candidate acquisition unit 20 connects, with a straight path 132a, one end 1311a, which is located on the start point 120 side of the partial path 1310i for the initial position, of the two ends 1311a and 1311b of the partial path 1310 moved in the first direction 141, to the start point 120. Furthermore, the candidate acquisition unit 20 connects, with a straight path 132b, one end 1311b, which is located on the end point 121 side of the partial path 1310i for the initial position, to the end point 121. Then, the candidate acquisition unit 20 sets the partial path 1310 moved in the first direction 141, that is, the path consisting of the partial path 1310 after the movement is completed, the straight path 132a, and the straight path 132b, as one operation path candidate 135.

[0123] The candidate acquisition unit 20 may acquire a plurality of movement path candidates 135 by deforming the partial path 1310, similar to the case where the entire assumed movement path 130 is deformed as shown in Fig. 16. Furthermore, the candidate acquisition unit 20 may acquire a plurality of movement path candidates 135 by moving and deforming the partial path 1310, similar to the case where the entire assumed movement path 130 is moved and deformed as shown in Fig. 17.

[0124] Fig. 20 is a schematic diagram showing an example of how a partial path 1310 is transformed to obtain one movement path candidate 135. In the example of Fig. 20, one movement path candidate 135 is a path configured by a first portion 1321 of the assumed movement path 130i at the initial position that connects one end of the transformed partial path 1310 to the start point 120, a second portion 1322 of the assumed movement path 130i at the initial position that connects the other end of the transformed partial path 1310 to the end point 121, and the transformed partial path 1310.

[0125] 21 is a schematic diagram showing an example of how a partial path 1310 is moved and transformed to obtain one movement path candidate 135. In the example of FIG. 21 , the partial path 1310 is translated in a first direction 141 and then transformed to obtain one movement path candidate 135. In the example of FIG. 21 , one end 1311a of the partial path 1310 after the movement and transformation is connected to the start point 120 by a straight path 132a. Furthermore, one end 1311b of the partial path 1310 after the movement and transformation is connected to the end point 121 by a straight path 132b. Then, a path consisting of the partial path 1310 after the movement and transformation, the straight path 132a, and the straight path 132b is set to be one movement path candidate 135.

[0126] In this way, when the candidate acquisition unit 20 acquires at least one new movement path candidate 135 by at least one of moving and transforming a partial path of the assumed movement path 130i of the initial position, which includes an area where the assumed movement path 130i interferes with the obstacle 60, it becomes possible to efficiently set the movement path of the robot 10.

[0127] The candidate acquisition unit 20 may use a partial path including a region in the assumed motion path 130i for the initial position where the robot 10 interferes with the obstacle 60, instead of the partial path 1310. That is, the candidate acquisition unit 20 may acquire at least one movement path candidate 135 by at least one of moving and transforming a partial path (also referred to as a second partial path) including a region in the assumed motion path 130i for the initial position where the robot 10 interferes with the obstacle 60. The region in the assumed motion path 130i for the initial position where the robot 10 interferes with the obstacle 60 is a region in which the robot 10 would interfere with the obstacle 60 if the robot 10 were to operate in that region. The determination unit 21 performs the above-described interference determination process on the assumed motion path 130i for the initial position, and can identify a region in the assumed motion path 130i where the robot 10 interferes with the obstacle 60 based on the result of the interference determination process. In addition, the candidate acquisition unit 20 may move and / or deform the partial path 1310 to acquire at least one operation path candidate 135, and may also move and / or deform the second partial path to acquire at least one operation path candidate 135.

[0128] Furthermore, if the new movement path candidate 135 still interferes with the obstacle 60, the candidate acquisition unit 20 may acquire a further new movement path candidate 135 by using a part of the new movement path candidate 135 as a partial path, or may acquire a further new movement path candidate 135 based on the partial path set in the new movement path candidate 135.

[0129] <Another Operation Example of the Path Setting Unit> In the above example, the path setting unit 22 sets the non-interference path candidate 135 as the movement path of the robot 10 as is, but the non-interference path candidate 135 may be modified to set a movement path. For example, the path setting unit 22 may modify the non-interference path candidate 135 by rounding off the corners of the non-interference path candidate 135 and set it as the movement path. Figure 22 is a schematic diagram for explaining an example of the operation of the path setting unit 22 in this case. Hereinafter, the non-interference path candidate 135 may be referred to as a non-interference path candidate 135n.

[0130] For example, consider a case where a movement path is set by transforming a non-interfering path candidate 135n as shown in the upper part of Fig. 22. The non-interfering path candidate 135 includes, for example, an assumed movement path 130f after the movement is completed. The path setting unit 22 sets the movement path by transforming the non-interfering path candidate 135n so as to remove the angle formed between the assumed movement path 130f after the movement is completed and the straight path 132a (in other words, to round off the angle).

[0131] 22, the path setting unit 22 sets, for example, a point 138x on the assumed motion path 130f that is a predetermined distance away from the one end 131a toward the one end 131b. Also, for example, the path setting unit 22 sets, for example, a point 138y on the straight path 132a that is a predetermined distance away from the one end 131a toward the starting point 120. Then, the path setting unit 22 sets a straight path 139 that connects the point 138x and the point 138y.

[0132] Next, the determination unit 21 determines whether or not the robot 10 will interfere with an obstacle 60 on the straight path 139 set by the path setting unit 22. That is, the determination unit 21 determines whether or not the robot 10 will interfere with an obstacle when a predetermined position P of the robot 10 moves on the straight path 139. The determination unit 21 can determine whether or not the robot 10 will interfere with an obstacle 60 on the straight path 139 in the same manner as the above-described interference determination process.

[0133] When the determination unit 21 determines that the robot 10 will interfere with the obstacle 60 on the straight-line path 139, the path setting unit 22 sets the non-interfering path candidate 135n as the movement path of the robot 10 without modifying it. On the other hand, when the path setting unit 22 determines that the robot 10 will not interfere with the obstacle 60 on the straight-line path 139, the path setting unit 22 moves the point 138x by a predetermined distance toward the one end 131b on the assumed movement path 130f so that the point 138x is further separated from the one end 131a by the predetermined distance, as shown in the lower diagram of FIG. 22 . Furthermore, the path setting unit 22 moves the point 138y by a predetermined distance toward the starting point 120 on the straight-line path 132a so that the point 138y is further separated from the one end 131a by the predetermined distance. Then, the path setting unit 22 sets a new straight-line path 139 connecting the moved point 138x and the moved point 138y. The predetermined distance by which the points 138 a and 138 y are moved may be set, for example, according to the length of the shortest side of each of the six rectangular parallelepipeds 110 that represent the shape of the robot 10 .

[0134] If the position of point 138x exceeds one end 131b when point 138x is moved a predetermined distance toward one end 131b, path setting unit 22 sets point 138x at one end 131b. Furthermore, if the position of point 138y exceeds the starting point 120 when point 138y is further moved a predetermined distance toward starting point 120, path setting unit 22 sets point 138y at starting point 120.

[0135] Next, the determination unit 21 determines whether or not the robot 10 will interfere with the obstacle 60 on the straight-line path 139 newly set by the path setting unit 22. If it is determined that the robot 10 will not interfere with the obstacle 60 on the newly set straight-line path 139, the path setting unit 22 moves the point 138x a further predetermined distance toward the one end 131b, and moves the point 138y a further predetermined distance toward the starting point 120. Thereafter, the path setting unit 22 operates in the same manner.

[0136] On the other hand, when it is determined that the robot 10 will interfere with the obstacle 60 on the newly set straight-line path 139, the path setting unit 22 modifies the non-interfering path candidate 135n based on the previously set straight-line path 139, i.e., the last straight-line path 139 on which it is determined that the robot 10 will not interfere with the obstacle 60. The path setting unit 22 modifies the non-interfering path candidate 135n so as to use the previously set straight-line path 139 instead of the portion 301a of the assumed motion path 130f connecting the previously set point 138x and one end 131a, and the portion 302a of the straight-line path 132a connecting the previously set point 138y and one end 131a. Then, the path setting unit 22 sets the modified non-interfering path candidate 135n as the motion path of the robot 10. As a result, as shown in Figure 23, a path consisting of the previously set straight path 139, a partial path 130ff of the assumed motion path 130f connecting the previously set point 138x and one end 131b, a 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.

[0137] In the above example, the path setting unit 22 sets the non-interfering path candidate 135n, which is deformed so as to reduce the angle formed between the assumed motion path 130f and the straight path 132a, as the motion path. However, the non-interfering path candidate 135n, which is deformed so as to reduce the angle formed between the assumed motion path 130f and the straight path 132b, may also be set as the motion path. The method of deforming the non-interfering path candidate 135n so as to reduce the angle formed between the assumed motion path 130f and the straight path 132b is similar to the method of deforming the non-interfering path candidate 135n so as to reduce the angle formed between the assumed motion path 130f and the straight path 132a. Furthermore, the path setting unit 22 may set the non-interfering path candidate 135n, which is deformed so as to reduce both the angle formed between the assumed motion path 130f and the straight path 132a (also referred to as the first angle) and the angle formed between the assumed motion path 130f and the straight path 132b (also referred to as the second angle), as the motion path. Furthermore, when the path setting unit 22 transforms the non-interfering path candidate 135n so as to remove at least one of the first corner and the second corner, the path setting unit 22 may use a curved path instead of the straight path 139. For example, in the examples of FIGS. 22 and 23 , 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 removed so as to be rounded. Note that the second corner may also be removed so as to be rounded.

[0138] <Example of operation of path setting unit when no non-interfering path candidate exists> Fig. 24 is a flowchart showing an example of the operation of the control unit 2 when it is determined that the robot 10 will interfere with the obstacle 60 in each of the predetermined number T of movement path candidates 135. The processing shown in Fig. 24 is executed when all of the predetermined number T of movement 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-end point direction.

[0139] 5 ends without executing step s3, the path setting unit 22 executes step s11. In step s11, the path setting unit 22 identifies, among the predetermined number T of interference path candidates 135, the interference path candidate 135 in which the interference point 136 (also referred to as the initial interference point 136) where the robot 10 first interferes with the obstacle 60 is farthest from the start point 120 in the start-end point direction, as the target interference path candidate 135. As described above, in the interference detection process, for each position from the start point 120 to the end point 121 on the movement path candidate 135, if a predetermined position P of the robot 10 is present at that position, it is determined whether or not the robot 10 will interfere with the obstacle 60. The path setting unit 22 can identify the target interference path candidate 135 based on the execution content of the interference detection process for the predetermined number T of movement path candidates 135. Hereinafter, the initial interference point 136 of the target interference path candidate 135 will be referred to as the target interference point 136.

[0140] For example, consider four interference path candidates 135 as shown in Fig. 25 when T = 4. The four interference path candidates 135 shown in Fig. 25 are referred to as interference path candidates 135a, 135b, 135c, and 135d, respectively. Furthermore, the initial interference points 136 of the interference path candidates 135a, 135b, 135c, and 135d are referred to as initial interference points 136a, 136b, 136c, and 136d, respectively. Note that in Fig. 25, for convenience of explanation, the position where the interference path candidate 135 first hits the obstacle 60 is set as the position of the initial interference point 136, but the position of the initial interference point 136 is not necessarily this position.

[0141] In the example of Fig. 25 , of the initial interference points 136a, 136b, 136c, and 136d, the initial interference point 136a is located at a position farthest from the starting point 120 in the start-point-end-point direction (the left-right direction in Fig. 25 ). Therefore, the path setting unit 22 sets the interference path candidate 135a as the target interference path candidate 135. Furthermore, the initial interference point 136a of the interference path candidate 135a becomes the target interference point 136a.

[0142] After step s11, in step s12, the path setting unit 22 sets a partial path 137 from the start point 120 to the target interference point 136 in the target interference path candidate 135 as part of the movement path of the robot 10. In other words, the path setting unit 22 sets the partial path 137 from one end of the target interference path candidate 135 opposite to the end point 121 to the target interference point 136 as part of the movement path of the robot 10. In the example of Fig. 25 , the path setting unit 22 sets the partial path 137 (also referred to as partial path 137a) from the start point 120 to the first interference point 136a in the interference path candidate 135a as part of the movement path.

[0143] Next, in step s13, the candidate acquisition unit 20 acquires a predetermined number T of movement path candidates 235 from the target interference point 136 of the target interference path candidate 135 to the end point 121. In step s13, the candidate acquisition unit 20 first sets an assumed movement path 230 of the shortest distance connecting the target interference point 136 (here, the target interference point 136a) and the end point 121, as shown in FIG. 26 . The assumed movement path 230 is represented by a line segment connecting the target interference point 136 and the end point 121. It can be said that the assumed movement path 230 is the shortest movement path from the target interference point 136 to the end point 121 for a predetermined point P of the robot 10. Then, the candidate acquisition unit 20 moves and / or transforms at least a portion of the assumed movement path 230 to acquire the predetermined number T of movement path candidates 235. The candidate acquisition unit 20 can acquire a predetermined number T of movement path candidates 235 by moving and / or transforming at least a portion of the assumed movement path 230, in the same way as when acquiring a predetermined number T of movement path candidates 135 by moving and / or transforming at least a portion of the assumed movement path 130. Figure 27 is a schematic diagram showing an example of one movement path candidate 235.

[0144] After step s13, in step s14, the determination unit 21 determines whether the robot 10 will interfere with the obstacle 60 in each of the predetermined number T of movement path candidates 235, in the same manner as the above-described interference determination process. In step s14, the determination unit 21 selects, for example, one movement path candidate 235 from the predetermined number T of movement path candidates 235. Next, the determination unit 21 determines whether the robot 10 will interfere with the obstacle 60 in the selected movement path candidate 235. If the determination unit 21 determines that the robot 10 will not interfere with the obstacle 60 in the selected movement 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 will interfere with the obstacle 60 in the selected movement path candidate 235, the determination unit 21 selects another new movement path candidate 235 from the predetermined number T of movement path candidates 235. Then, the determination unit 21 determines whether the robot 10 will interfere with the obstacle 60 in the selected new movement path candidate 235. When the determination unit 21 determines that the robot 10 will not interfere with the obstacle 60 in the selected new movement path candidate 235 (NO in step s14), step s15 is executed. On the other hand, when the determination unit 21 determines that the robot 10 will interfere with the obstacle 60 in the selected new movement path candidate 235, it selects another new movement path candidate 235 from the predetermined number T of movement path candidates 235. Thereafter, the determination unit 21 operates in the same manner, and when it determines that the robot 10 will interfere with the obstacle 60 in each of the predetermined number T of movement path candidates 235 (YES in step s14), step s11 is executed again. In this case, all of the predetermined number T of movement path candidates 235 become interference path candidates 235.

[0145] In step s11 again, the path setting unit 22 performs the same process on a predetermined number T of interference path candidates 235. Specifically, the path setting unit 22 identifies, among the predetermined number T of interference path candidates 235, the interference path candidate 235 in which an interference point 236 where the robot 10 first interferes with the obstacle 60 (also referred to as the initial interference point 236) is farthest from the start point 120 in the start-end point direction, as the target operation path candidate 235. The path setting unit 22 can identify the target interference path candidate 235 based on the execution content of step s14. Hereinafter, the initial interference point 236 of the target interference path candidate 235 will be referred to as the target interference point 236.

[0146] After step s11, the path setting unit 22 executes step s12 again. In step s12, the path setting unit 22 performs the same process on the target interference path candidate 235. Specifically, the path setting unit 22 sets a partial path 237 from one end 238 on the opposite side from the end point 121 to the target interference point 236 in the target interference path candidate 235 as a part of the movement path of the robot 10.

[0147] 28 is a schematic diagram showing an example of how a partial path 237 from an end 238 on the opposite side from the end point 121 to the target interference point 236 in the target interference path candidate 235 is set as part of the movement path of the robot 10. In the example of Fig. 28, the end 238 on the opposite side from the end point 121 in the target interference path candidate 235 coincides with the first interference point 136a.

[0148] 28 , the candidate acquisition unit 20 determines, in step s13, the shortest distance path connecting the target interference point 236 of the target interference path candidate 235 and the end point 121 as a new assumed operation path 230. Then, the candidate acquisition unit 20 moves and / or transforms at least a part of the new assumed operation path 230 to acquire a predetermined number T of new operation path candidates 235 from the target interference point 236 to the end point 121.

[0149] Next, in step s14, the determination unit 21 determines whether the robot 10 will interfere with the obstacle 60 in each of the predetermined number T of new movement path candidates 235 obtained in step s13. If the determination in step s14 is NO, the path setting unit 22 executes step s15. On the other hand, if the determination in step s14 is YES, step s11 is executed again. In step s11, the path setting unit 22 identifies, among the predetermined number T of new interference path candidates 235, the interference path candidate 235 whose initial interference point 236 is farthest from the start point 120 in the start-end point direction, as a new target interference path candidate 235. Next, in step s12, the path setting unit 22 sets, as part of the movement path of the robot 10, a partial path 237 from one end 238 on the opposite side from the end point 121 to the new target interference point 236 in the new target interference path candidate 235. Thereafter, the candidate acquisition unit 20, the determination unit 21, and the route setting unit 22 operate in the same manner.

[0150] In step s15, which is executed when the determination in step s14 is NO, the path setting unit 22 sets a movement path of the robot 10 from the start point 120 to the end point 121. Specifically, the path setting unit 22 sets a path consisting of a part of the movement path set up to now and a non-interfering path candidate 235 as the movement path of the robot 10 from the start point 120 to the end point 121. For example, as shown in FIG. 29 , if a non-interfering path candidate 235 connecting a first interference point 236 and the end point 121 exists, a path consisting of partial paths 137a and 237 (thick line portions) set as part of the movement path and the non-interfering path candidate 235 is set as the movement path of the robot 10 from the start point 120 to the end point 121.

[0151] As described above, in the example of FIG. 24 , when it is determined that the robot 10 will interfere with the obstacle 60 in each of the plurality of movement path candidates 135, the path setting unit 22 identifies, as a target movement path candidate 135, the movement path candidate 135 in which the interference point 136 where the robot 10 first interferes with the obstacle 60 is farthest from the start point 120 in the start-end point direction. The path setting unit 22 sets, as a part of the movement path, a partial path 137 from the start point 120 to the first interference point 136 in the identified target movement path candidate 135. Then, the candidate acquisition unit 20 moves and / or transforms at least a part of the assumed movement path 230 that connects the first interference point 136 and the end point 121 with the shortest distance, to set at least a part of the remaining part of the movement path of the robot 10. In this way, even when it is determined that the robot 10 will interfere with the obstacle 60 in each of the plurality of movement path candidates 135, it is possible to appropriately set the movement path of the robot 10.

[0152] <Another example of movement path setting processing by control unit> Fig. 30 is a flowchart showing an example of movement path setting processing executed by the control unit 2. As shown in Fig. 30 , in step s21, the candidate acquisition unit 20 acquires a predetermined number T of movement path candidates 135 as described above. Next, in step s22, the determination unit 21 performs interference determination processing for each of the predetermined number T of movement path candidates 135, as described above, to determine whether or not the robot 10 will interfere with an obstacle 60 on the movement path candidate 135.

[0153] Next, in step s23, the path setting unit 22 determines, based on the result of step s22, whether or not at least one non-interfering path candidate 135 is included in the predetermined number T of operation path candidates 135. 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 operation path setting process ends.

[0154] In step s24, the path setting unit 22 determines whether the number of non-interfering path candidates 135 included in the predetermined number T of operation path candidates 135 is one or more. If the number of non-interfering path candidates 135 is one, the path setting unit 22 executes step s25. On the other hand, if the number of non-interfering path candidates 135 is more than one, the path setting unit 22 executes step s26.

[0155] In step s25, the path setting unit 22 sets, for example, one non-interfering path candidate 135 included in the predetermined number T of movement path candidates 135 as the movement path of the robot 10. Note that the path setting unit 22 may set, as the movement path of the robot 10, a modified version of the non-interfering path candidate 135, as shown in FIGS.

[0156] In step s26, the path setting unit 22 sets a movement path of the robot 10 based on one non-interference path candidate 135 selected from the plurality of non-interference path candidates 135 included in the predetermined number T of movement path candidates 135. In step s26, the path setting unit 22 calculates a predetermined evaluation value for each of the plurality of non-interference path candidates 135. Next, the path setting unit 22 selects one 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 a movement path of the robot 10 based on the selected one non-interference path candidate 135. The path setting unit 22 may set the selected one non-interference path candidate 135 as the movement path of the robot 10. Alternatively, as in the examples of FIGS. 22 and 23 , the path setting unit 22 may set a modified version of the selected one non-interference path candidate 135 as the movement path of the robot 10. Hereinafter, the movement path candidate 135 of interest will be referred to as the interest movement path candidate 135. The non-interference path candidate 135 of interest is referred to as the non-interference path candidate of interest 135 .

[0157] The evaluation value of the selected non-interference path candidate 135 indicates, for example, the appropriateness of using the selected non-interference path candidate 135 to set a movement path of the robot 10. For example, the larger the evaluation value of the selected non-interference path candidate 135, the more appropriate it is to use the selected non-interference path candidate 135 to set a movement 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 multiple non-interference path candidates 135, and sets a movement path based on the selected non-interference path candidate 135.

[0158] Various methods for calculating the evaluation value are conceivable. For example, when the robot 10 moves along the considered non-interference path candidate 135, if the robot 10 passes near an obstacle 60, it is not particularly appropriate to use the considered non-interference path candidate 135 in setting the movement path of the robot 10. Therefore, the path setting unit 22 may calculate the evaluation value of the considered non-interference path candidate 135 based on, for example, the distance between the robot 10 and the obstacle 60 on the considered non-interference path candidate 135. In this case, the path setting unit 22 calculates, for each position on the considered non-interference path candidate 135, the shortest distance between the robot 10 and the obstacle 60 when a predetermined position P of the robot 10 is located at that position, based on, for example, the robot information 31 and the obstacle information 32. Then, the path setting unit 22 determines the minimum value of the calculated shortest distances as the shortest distance D between the robot 10 and the obstacle 60 on the considered non-interference path candidate 135. The path setting unit 22 determines the shortest distance D as the evaluation value.

[0159] Furthermore, the assumed movement path 130 for the initial position is the shortest path from the start point 120 to the end point 121. Therefore, the farther the target non-interference path candidate 135 is from the assumed movement path 130 for the initial position, the longer the target non-interference path candidate 135 becomes, and the longer the movement path of the robot 10 based on the target non-interference path candidate 135 may become. In such a case, it is not very appropriate to use the target non-interference path candidate 135 for setting the movement path of the robot 10. Therefore, the path setting unit 22 may calculate an evaluation value based on the proximity between the target non-interference path candidate 135 and the assumed movement path 130 for the initial position. In this case, the path setting unit 22 calculates, for example, the distance between the portion of the target non-interference path candidate 135 that corresponds to the assumed movement path 130 that has been moved and / or transformed (also referred to as the assumed movement path equivalent portion) and the assumed movement path 130 for the initial position. Here, the direction perpendicular to the assumed movement path 130 for the initial position is referred to as the vertical direction. The path setting unit 22 calculates the straight-line distance in the vertical direction from each position on the assumed movement path 130 of the initial position to the portion corresponding to the assumed movement path. Then, the path setting unit 22 sets the sum of the calculated straight-line distances as the degree of proximity (also referred to as the degree of closeness) C between the assumed movement path 130 of the initial position and the noted non-interference path candidate 135. The path setting unit 22 sets the negative value of the degree of closeness C as the evaluation value of the noted non-interference path candidate 135. As a result, the smaller the degree of closeness C, that is, the closer the noted non-interference path candidate 135 is to the assumed movement path 130 of the initial position, the larger the evaluation value becomes.

[0160] The route setting unit 22 may calculate the evaluation value based on the shortest distance D and the degree of closeness C. For example, the route setting unit 22 may use the following formula: evaluation value = D - q × C. q is a coefficient, and the influence of the shortest distance D and the degree of closeness C on the evaluation value is determined by the value of q.

[0161] In this way, the path setting unit 22 can appropriately set the movement path of the robot 10 based on a non-interference path candidate 135 selected from multiple non-interference path candidates 135 based on the evaluation value.

[0162] In addition, if 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 of 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.

[0163] Note that the path setting unit 22 may set the operation 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 the plurality of non-interference path candidates 135, and set the operation path based on the selected non-interference path candidate 135.

[0164] Furthermore, the path setting unit 22 may set a movement path based on the evaluation value in the process shown in FIG. 24 described above. In this case, in step s14, the path setting unit 22 performs interference determination processing for each of the predetermined number T of assumed movement paths 235. If the result of step s14 indicates that the predetermined number T of assumed movement paths 235 includes multiple non-interference path candidates 235, the path setting unit 22 calculates evaluation values ​​for the multiple non-interference path candidates 235 in the same manner as described above in step s15. The evaluation value may be calculated based on, for example, the distance between the robot 10 and the obstacle 60 in the non-interference path candidate 235, or may be calculated based on the proximity between the assumed movement 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 multiple non-interference path candidates 235. The path setting unit 22 sets a path consisting of a portion of the movement path set so far and the selected non-interference path candidate 235 as the movement path of the robot 10 from the start point 120 to the end point 121.

[0165] <Example of setting a movement path based on a configuration space> In the above example, the control unit 2 sets the movement path of the robot 10 based on the actual working space 100, but the movement path of the robot 10 may also be set based on the configuration space (also called C space) 500 of the robot 10.

[0166] The C space 500 is, for example, an N-dimensional space in which N parameters (N is an integer equal to or greater than 2) representing the posture of the robot 10 are used as axis values. For example, N=6. The C space 500 is a six-dimensional space in which six parameters θa, θb, θc, θd, θe, and θf are used as axis values. The N axes of the C space 500 are orthogonal to one another. The actual working space 100 can be said to be an N-dimensional space in which N=3.

[0167] 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 and is, for example, an integer equal to or greater than 0. The coordinates of a certain point in C space 500 (in other words, the coordinates of a certain position) are represented by (an, bn, cn, dn, en, fn).

[0168] A certain position in the C space 500 corresponds to a specific posture of the robot 10 in the actual workspace 100. In other words, the coordinates of a certain position in the C space 500 represent a specific posture of the robot 10 in the actual workspace 100. For example, the coordinates of a certain position in the C space 500 are (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. Once the posture of the robot 10 in the actual workspace 100 is determined, the position of a predetermined location P of the robot 10 in the actual workspace 100 is determined. Therefore, it can be said that the coordinates of each position in the C space 500 represent the position of a predetermined location P of the robot 10 in the actual workspace 100.

[0169] The operation of the control unit 2 when the movement path of the robot 10 is set based on the C space 500 (i.e., the operation of the candidate acquisition unit 20, the determination unit 21, and the path setting unit 22) is basically the same as when the movement path of the robot 10 is set based on the actual workspace 100. Below, the operation of the control unit 2 when the movement path of the robot 10 is set based on the C space 500 will be described, focusing on the differences from the operation of the control unit 2 when the movement path of the robot 10 is set based on the actual workspace 100. In the following description, the above description in three-dimensional space will be generalized to the description in N-dimensional space as necessary.

[0170] <Example of operation of the candidate acquisition unit> As shown in Fig. 31 , the candidate acquisition unit 20 can acquire a plurality of movement path candidates 135 from a start point 120 to an end point 121 of a robot movement in a C space 500, based on an assumed movement path 130 that is the shortest distance connecting the start point 120 and the end point 121. For ease of explanation, in Fig. 31 and figures described later, the C space 500 is represented by a circle. Here, the coordinates of the start 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).

[0171] The coordinates of the start 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 movement 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 of the movement operation are a1, b1, c1, d1, e1, and f1, respectively. The end point 121 in the C space 500 represents, for example, the posture of the robot 10 when the robot 10 ends the movement operation. The values ​​of the rotation angles θa, θb, θc, θd, θe, and θf of the arm 11 at the end of the movement operation are a2, b2, c2, d2, e2, and f2, respectively. In the C space 500, the line connecting the start point 120 to the end point 121 represents the change in posture of the robot 10 from the start to the end of the movement operation. When the C-space 500 is used, the motion path of the robot 10 is expressed as a change in the posture of the robot 10 .

[0172] In the C-space 500 , the assumed motion path 130 with the shortest 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 .

[0173] Here, the coordinates of one point in N-dimensional space are represented by (H1, H2, ..., HN). A line segment (in other words, a straight line) from one point to another in N-dimensional space can be seen as a set of points whose coordinates are represented by the following equation (1) using a parameter t.

[0174]

[0175] In equation (1), k1 to kN and h1 to hN represent constants. The position and length of the line segment in N-dimensional space are determined by the range of values ​​of parameter t. The coordinates of each point on the assumed movement path 130 in C space 500 can be expressed in the same way as equation (1). Furthermore, the coordinates of each point on the assumed movement path 130 in the actual workspace 100 can be expressed in the same way as equation (1).

[0176] In the C space 500, the candidate acquisition unit 20 can acquire a predetermined number T of movement path candidates 135 by moving and / or transforming at least a part of the assumed movement path 130 in the same manner as described above.

[0177] A plane in a three-dimensional space such as the actual workspace 100 is called a hyperplane when generalized to an expression in an N-dimensional space. A hyperplane has (N-1) dimensions. The above plane 150 can also be called a hyperplane 150. Since figures and some spaces in an N-dimensional space are called manifolds, a hyperplane can be said to be a type of manifold. A hyperplane can be said to be an (N-1)-dimensional manifold.

[0178] In the C-space 500, the candidate acquisition unit 20 can acquire one movement path candidate 135 by translating the assumed movement path 130 in a first direction 141 perpendicular to the assumed movement path 130 so as to pass through a passing point set on a hyperplane 150 perpendicular to the assumed movement path 130, as described above. In an N-dimensional space, a hyperplane perpendicular to a line segment is a hyperplane such that, no matter what vector is set on the hyperplane connecting two points, the dot product of the vector and the vector connecting both ends of the line segment is zero. Therefore, no matter what vector is set on the hyperplane 150 connecting two points, the dot product of the vector and the vector connecting both ends of the assumed movement path 130 is zero.

[0179] The position of the passing point on the hyperplane 150 can be expressed in polar coordinate format, as described above. Here, for the (N-1)-dimensional hyperplane 150, (N-1) mutually orthogonal axes are set in addition to the N axes of the C-space 500. Then, the position of the passing point in the (N-1)-dimensional manifold (space) represented by the (N-1) axes is expressed in polar coordinate format. In this case, the position of the passing point on the hyperplane 150 is expressed by a set (r, γ1, γ2, ..., γN-2) of the distance r from the origin of the (N-1)-dimensional manifold to the passing point and (N-2) angles γ1 to γ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 movement path candidates 135 in the C space 500 by changing the combination of the set values ​​of the distance r and the angles γ1 to γN-2.

[0180] Similarly to the above, the candidate acquisition unit 20 can also divide the hyperplane 150 in the C space 500 into a lattice shape and set each lattice point on the hyperplane 150 as a passing point. When dividing the (N-1)-dimensional hyperplane 150 into a lattice shape, (N-1) mutually orthogonal axes are set for the (N-1)-dimensional hyperplane 150 in addition to the N axes of the C space 500. Then, for each of the (N-1) axes, the hyperplane 150 is divided into Q parts (Q is an integer greater than or equal to 2) along the axis. As a result, a number of lattice points equal to Q to the (N-1) power are set on the (N-1)-dimensional hyperplane 150. The candidate acquisition unit 20 can acquire multiple movement path candidates 135 in the C space 500 by changing the lattice points set as passing points among the number of lattice points equal to Q to the (N-1) power.

[0181] The candidate acquisition unit 20 can also acquire a plurality of movement path candidates 135 by rotating and moving the assumed movement path 130 in the C-space 500 in the same manner as described above. Here, the rotation axis of the manifold in the N-dimensional space can be expressed as follows, using a symbol representing the number of combinations: N C 2 The candidate acquisition unit 20 can define the assumed motion path 130 as follows, for example: N C 2 A motion path candidate 135 can be obtained by rotating the object around at least one of the rotation axes. N C 2 If the rotation axes include a rotation axis parallel to the assumed movement path 130, the candidate acquisition unit 20 does not need to rotate the assumed movement path 130 around that rotation axis. N C 2 By changing which of the rotation axes to rotate around, it is possible to obtain a plurality of movement path candidates 135. Furthermore, when rotating the assumed movement path 130 around a certain rotation axis, the candidate acquisition unit 20 can obtain a plurality of movement path candidates 135 by changing the rotation angle of the assumed movement path 130.

[0182] The candidate acquisition unit 20 can also acquire multiple movement path candidates 135 by transforming the assumed movement path 130 in the C space 500 in the same manner as described above. For example, the candidate acquisition unit 20 can acquire multiple movement path candidates 135 by transforming the assumed movement path 130 into a Bezier curve, a quadratic curve, or a spline curve in the C space 500. Even in an N-dimensional space, a Bezier curve, a quadratic curve, or a spline curve can be realized by setting three points. For example, by setting one more point in the C space 500 in addition to the start point 120 and the end point 121, a Bezier curve, a quadratic curve, or a spline curve connecting the start point 120 and the end point 121 can be obtained. The assumed movement path 130 in the C space 500, the movement path candidates, and the movement path set by the path setting unit 22 are each represented by a set of multiple points (e.g., several tens of points) set in the C space 500.

[0183] <Example of Operation of Determination Unit> First, the representation direction of the obstacle 60 in the C space 500 will be described. Here, a point on the obstacle 60 in the actual workspace 100 is called an obstacle point. The determination unit 21 determines all postures of the robot 10 in the actual workspace 100 in which one obstacle point is included in the robot 10. In other words, the determination unit 21 determines all postures of the robot 10 in the actual workspace 100 in which one obstacle point interferes with the robot 10. The determination unit 21 performs this process for each obstacle point of the obstacle 60. Then, the determination unit 21 sets multiple points in the C space 500 corresponding to the multiple postures of the robot 10 that have been determined. An area consisting of these multiple points becomes the obstacle 60 in the C space 500. Hereinafter, this area may be referred to as a C space obstacle 60c.

[0184] The region in the C space 500 where the C space obstacle 60c exists represents a robot posture in which the robot 10 interferes with the obstacle 60 in the actual workspace 100. The C space obstacle 60c can also be referred to as an interference region. In the interference determination process, as shown in FIG. 32 , if the noted movement path candidate 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 noted movement path candidate 135. In other words, if the noted movement path candidate 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 noted movement path candidate 135. In further other words, if at least one of the multiple points representing the noted movement path candidate 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 noted movement path candidate 135. On the other hand, if the noticeable movement path candidate 135 does not interfere with the C space obstacle 60c in the C space 500, in other words, if the noticeable movement path candidate 135 does not collide with the C space obstacle 60c in the C space 500, the determination unit 21 determines that the robot 10 will not interfere with the obstacle 60 in the noticeable movement path candidate 135. In further other words, if all of the multiple points representing the noticeable movement path candidate 135 in the C space 500 are not included in the C space obstacle 60c, the determination unit 21 determines that the robot 10 will not interfere with the obstacle 60 in the noticeable movement path candidate 135.

[0185] Similarly to the above, the candidate acquisition unit 20 can also acquire multiple movement path candidates 135 by at least one of moving and deforming a part of the assumed movement path 130 in the C space 500. For example, the candidate acquisition unit 20 can acquire multiple movement path candidates 135 by moving a partial path in the C space 500 that includes a region of the assumed movement path 130 that interferes with the C space obstacle 60c (in other words, a region that hits the C space obstacle 60c).

[0186] In this way, the determination unit 21 can perform interference detection processing in the C space 500. Note that when performing interference detection processing, the determination unit 21 takes into consideration the range of motion and inaccessible area of ​​the robot 10, and singular points of the robot posture in the actual working space 100, but it is also necessary to take into consideration constraint conditions related to the posture of the robot 10 in the interference detection processing in the C space 500. In this case, the constraint conditions are, for example, coordinates in the C space 500 that correspond to the range of motion of the robot 10.

[0187] <Example of operation of the path setting unit> The path setting unit 22 can set a movement path by modifying 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 may set, as a movement path, a path obtained by modifying the non-interference path candidate 135 so as to round off corners of the non-interference path candidate 135 in the C space 500. The way in which corners of the non-interference path candidate 135 in the C space 500 are rounded off is the same as the way in which corners of the non-interference path candidate 135 in the actual workspace space 100 are rounded off.

[0188] 24 also in the C space 500. In the C space 500, an interference point 136 where the robot 10 first interferes with the C space obstacle 60c in the movement path candidate 135 is geometrically the point where the movement path candidate 135 first hits the C space obstacle 60c when viewed from the start point 120 side to the end point 121 side.

[0189] <Others> In the above example, the candidate acquisition unit 20 acquired multiple movement path candidates 135 in the C space 500, which has six parameters θa, θb, θc, θd, θe, and θf as axis values. However, multiple movement path candidates 135 may be similarly acquired in a limited configuration space (also referred to as a limited C space) 510, which has axis values ​​based on some of the six parameters θa, θb, θc, θd, θe, and θ. In the limited C space 510, for example, multiple main parameters that determine the robot posture among the six parameters θa, θb, θc, θd, θe, and θf are used as axis values. In this example, because rotation of the tip of the arm 11 has almost no effect on the robot posture, the multiple main parameters that determine the robot posture are the parameters θa, θb, and θc. The candidate acquisition unit 20 acquires movement path candidates 135 in the limited C space 510, which has axis values ​​based on the parameters θa, θb, and θc. The coordinates of a point in the limited C-space 510 are expressed as (an, bn, cn).

[0190] FIG. 33 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 multiple movement path candidates 135 from a start point 120 to an end point 121 of the robot movement based on an assumed movement path 130 that is the shortest distance connecting the start point 120 and the end point 121. The coordinates of the start point 120 in the limited C space 510 represent, for example, the general posture of the robot 10 when the robot starts a movement movement. The coordinates of the start point 120 in the limited C space 510 represent the rotation angles θa, θb, and θc of the arm 11 at the start of the movement movement. 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 movement movement. The coordinates of the end point 121 in the limited C space 510 represent the rotation angles θa, θb, and θc of the arm 11 at the end of the movement movement. In the limited space C 510, the candidate acquisition unit 20 moves and / or transforms at least a part of the assumed movement path 130 in the same manner as described above to acquire a plurality of movement path candidates 135. In Fig. 33 , the coordinates of one corner of the movement path candidate 135 are represented by (a3, b3, c3), and the coordinates of the other corner of the movement path candidate 135 are represented by (a4, b4, c4).

[0191] The determination unit 21 performs the interference determination process in the C space 500, as described above, instead of the limited C space 510. In this case, the determination unit 21 first resets the motion path candidate 135 set in the limited C space 510 to the C space 500.

[0192] Fig. 34 is a schematic diagram showing an example of a state in which the movement path candidate 135 shown in Fig. 33 is reset in the C space 500. For each position of the target movement path candidate 135, the determination unit 21 sets the values ​​of θa, θb, and θc of the coordinates in the limited C space 510 as the values ​​of θa, θb, and θc of the coordinates in the C space 500 without any change.

[0193] Next, the determination unit 21 sets the values ​​of θd, θe, and θf of the coordinates of each position of the noticeable movement 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 noticeable movement 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 noticeable movement path candidate 135 in the C space 500.

[0194] The determination unit 21 sets, for example, the θd value of the coordinates of each position of the target movement path candidate 135 in the C space 500 based on the θd values ​​of the coordinates of the start point 120 and the end point 121 in the C space 500. Similarly, the determination unit 21 sets, for example, the θe value of the coordinates of each position of the target movement path candidate 135 in the C space 500 based on the θe values ​​of the coordinates of the start point 120 and the end point 121 in the C space 500. Similarly, the determination unit 21 sets, for example, the θf value of the coordinates of each position of the target movement path candidate 135 in the C space 500 based on the θf values ​​of the coordinates of the start point 120 and the end point 121 in the C space 500.

[0195] The robot postures at the start and end of a work movement are determined in advance. Therefore, the values ​​of θa, θb, θc, θd, θe, and θf of the coordinates of the start point 120 and the end point 121 in the C space 500 are set in advance. In the C space 500, the values ​​of θd, θe, and θf of the coordinates of one end of the noted movement path candidate 135 connected to the start point 120 are set to d1, e1, and f1, respectively. Furthermore, in the C space 500, the values ​​of θd, θe, and θf of the coordinates of one end of the noted movement path candidate 135 connected to the end point 121 are set to d2, e2, and f2, respectively.

[0196] The determination unit 21 may determine the set value of θd of the coordinates of each position such that, for example, the set value of θd of the coordinates of each position of the target movement path candidate 135 in the C space 500 gradually changes (for example, linearly) from d1 (i.e., the value of θd of the coordinates of the start point 120) to d2 (i.e., the value of θd of the coordinates of the end point 121) when viewed from the start point 120 to the end point 121. Similarly, the determination unit 21 may determine the set value of θe of the coordinates of each position such that, for example, the set value of θe of the coordinates of each position of the target movement path candidate 135 in the C space 500 gradually changes (for example, linearly) from e1 to e2 when viewed from the start point 120 to the end point 121. Similarly, the judgment unit 21 may determine the setting value of θf of the coordinates of each position of the target movement path candidate 135 in the C space 500 so that the setting value of θf of the coordinates of each position gradually (for example, linearly) changes from f1 to f2 when viewed from the starting point 120 to the end point 121.

[0197] In the example of Fig. 34, in the C space 500, the coordinates of the corner on the starting point 120 side of the movement path candidate 135 are represented by (a3, b3, c3, d3, e3, f3), and the coordinates of the corner on the end point 121 side of the movement 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.

[0198] In the interference determination process, the determination unit 21 determines whether or not the robot 10 will interfere with the obstacle 60 in the movement path candidate 135 reset in the C space 500. The path setting unit 22 sets the movement path of the robot 10 in the C space 500 based on the determination result by the determination unit 21.

[0199] In this way, when the candidate acquisition unit 20 acquires multiple movement path candidates 135 in the limited C space 510 in which the axis values ​​are multiple main parameters θa, θb, and θc that determine the robot posture, the movement path can be efficiently set using a small number of movement path candidates 135.

[0200] Even when the movement 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 on the set movement path in the same manner as described above. When the movement 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 on the set movement path in the C space 500 become the set rotation angle θ of each joint at the certain set path point.

[0201] It should be noted that the control unit 2 may perform a mixture of processing in the actual workspace 100 and processing in the C space 500. For example, the determination unit 21 may reset the movement path candidate 135 set in the C space 500 to the actual workspace 100, and perform interference detection processing for the movement path candidate 135 in the actual workspace 100. Alternatively, the determination unit 21 may reset the movement path candidate set in the actual workspace 100 to the C space 500, and perform interference detection processing for the movement path candidate 135 in the C space 500.

[0202] Although the motion path setting device has been described in detail as above, the above description is merely an example in all respects, and the present disclosure is not limited thereto. Furthermore, the various examples described above can be applied in combination as long as they are not mutually contradictory. It is understood that countless examples not illustrated can be envisioned without departing from the scope of this disclosure.

[0203] This disclosure includes the following:

[0204] In one embodiment, (1) the movement path setting device includes a candidate acquisition unit capable of acquiring multiple movement path candidates from a starting point to an end point of robot movement based on a first assumed movement path that is the shortest distance connecting the starting point and the end point in a multidimensional space that is an actual working space of the robot or a configuration space of the robot, a determination unit that determines whether the robot will interfere with an obstacle in at least one of the multiple movement path candidates, and a path setting unit that sets the movement path of the robot based on the determination result of the determination unit.

[0205] (2) In the movement path setting device of (1) above, the candidate acquisition unit acquires the plurality of movement path candidates by at least one of moving and transforming at least a part of the first assumed movement path in the multidimensional space.

[0206] (3) In the movement path setting device of (2) above, the candidate acquisition unit acquires at least one movement path candidate by translating at least a part of the first assumed movement path.

[0207] (4) In the movement path setting device of (3) above, the candidate acquisition unit acquires at least one movement path candidate by translating at least a portion of the first assumed movement path in a first direction perpendicular to the first assumed movement path.

[0208] (5) In the movement path setting device of (4) above, the candidate acquisition unit acquires at least one movement path candidate by translating at least a portion of the first assumed movement path in a second direction parallel to the first assumed movement path and in the first direction.

[0209] (6) In the movement path setting device according to any one of (2) to (5) above, the candidate acquisition unit acquires at least one movement path candidate by rotating and moving at least a part of the first assumed movement path.

[0210] (7) In any one of the movement path setting devices (2) to (6) above, the candidate acquisition unit acquires at least one movement path candidate by moving a partial path including an area where the robot interferes with the obstacle on the first assumed movement path connecting the starting point and the end point.

[0211] (8) In any one of the movement path setting devices (2) to (7) above, the candidate acquisition unit acquires at least one movement path candidate by moving a partial path of the first assumed movement path connecting the starting point and the end point, the partial path including an area where the first assumed movement path interferes with the obstacle.

[0212] (9) In any one of the movement path setting devices described in (2) to (8) above, the candidate acquisition unit determines a path obtained by connecting one end and the other end of at least a portion of the first assumed movement path after movement to the starting point and the ending point, respectively, in the multidimensional space as one movement path candidate, and the path setting unit sets the movement path by transforming a movement path candidate that is determined not to cause interference of the robot with the obstacle.

[0213] (10) In any one of the movement path setting devices described in (2) to (9) above, when it is determined that the robot will interfere with the obstacle in each of the plurality of movement path candidates, the path setting unit identifies, among the plurality of movement path candidates, a movement path candidate in which the interference point where the robot first interferes with the obstacle is farthest from the starting point in a direction connecting the starting point and the end point, sets a partial path from the starting point to the interference point in the identified movement path candidate as part of the movement path, and sets at least a portion of the remaining part of the movement path based on a result of at least one of moving and / or deforming at least a portion of a second assumed movement path with a shortest distance connecting the interference point and the end point.

[0214] (11) In any one of the above-mentioned (1) to (10) movement path setting devices, the path setting unit calculates a predetermined evaluation value for each of a plurality of non-interference path candidates among the plurality of movement path candidates that are determined to be such that the robot will not interfere with the obstacle, and sets the movement path based on a non-interference path selected from the plurality of non-interference path candidates based on the evaluation value.

[0215] (12) In the motion path setting device of (11) above, the evaluation value is based on at least one of the distance between the robot and the obstacle on the candidate non-interference path and the proximity between the first assumed motion path connecting the start point and the end point and the candidate non-interference path.

[0216] (13) In any one of the movement path setting devices (1) to (12) above, the candidate acquisition unit acquires the plurality of movement path candidates for a predetermined location of the robot in the actual working space as the multidimensional space.

[0217] (14) In the movement path setting device of either (1) or (13) above, the judgment unit judges whether the robot will interfere with an obstacle in each of the plurality of movement path candidates in a configuration space in which a plurality of parameters representing the posture of the robot are axis values.

[0218] (15) In the movement path setting device described in (1) to (14) above, the candidate acquisition unit is capable of acquiring the plurality of movement path candidates based on the first assumed movement path in a limited configuration space as the multidimensional space in which axis values ​​are a plurality of main parameters that are part of a plurality of parameters that represent the posture of the robot and that determine the posture.

[0219] (16) The program causes a computer device to execute an acquisition process for acquiring multiple candidate movement paths from a starting point to an end point of a robot movement based on an assumed movement path of the shortest distance connecting the starting point and the end point in a multidimensional space that is the actual working space of the robot or the configuration space of the robot; a determination process for determining whether the robot will interfere with an obstacle in at least one of the multiple candidate movement paths; and a setting process for setting the movement path of the robot based on the determination result of the determination process.

[0220] 1 Movement path setting device 10 Robot 20 Candidate acquisition unit 21 Determination unit 22 Path setting unit 30 Program 60 Obstacle 100 Actual working space 120 Start point 121 End point 130, 130f, 130i, 130v, 230 Assumed movement path 135, 135a, 135b, 135c, 135d, 235 Movement path candidate 136, 136a, 136b, 136c, 136d Interference point 137, 137a, 1300 Partial path 141 First direction 142, 142a, 142b Second direction 500 Configuration space 510 Limited configuration space θa, θb, θc, θd, θe, θf Parameters

Claims

1. In a multi-dimensional space serving as the actual working space of a robot or the configuration space of the robot, 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 hypothetical motion path having the minimum distance connecting the start point and the end point of the robot motion; A determination unit that determines whether or not the robot interferes with an obstacle in at least one of the plurality of motion path candidates; A path setting unit that sets the motion path of the robot based on the determination result of the determination unit A motion path setting device comprising.

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 movement and deformation of at least a part of the first hypothetical motion path in the multi-dimensional space. A motion path setting device.

3. The motion path setting device according to claim 2, wherein The candidate acquisition unit acquires at least one motion path candidate by translating at least a part of the first hypothetical motion path. A motion path setting device.

4. The motion path setting device according to claim 3, wherein The candidate acquisition unit acquires at least one motion path candidate by translating at least a part of the first hypothetical motion path in a first direction orthogonal to the first hypothetical motion path. A motion path setting device.

5. The motion path setting device according to claim 4, wherein The candidate acquisition unit acquires at least one motion path candidate by translating at least a part of the first hypothetical motion path in a second direction parallel to the first hypothetical motion path and the first direction. A motion path setting device.

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 part of the first hypothetical motion path. A motion path setting device.

7. 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 moving a partial path including a region where the robot interferes with the obstacle in the first hypothetical motion path connecting the start point and the end point. A motion path setting device.

8. The motion path setting device according to any one of claims 2 to 5, wherein The candidate acquisition unit is a motion path setting device that acquires at least one motion path candidate by moving a partial path including a region where the first hypothetical motion path connecting the start point and the end point interferes with the obstacle among the first hypothetical motion paths.

9. A motion path setting device according to any one of Claims 2 to 5, wherein the candidate acquisition unit uses, in the multi-dimensional space, a path obtained by connecting one end and the other end of at least a part of the moved first hypothetical motion path to the start point and the end point, respectively, as one motion path candidate. The path setting unit is a motion path setting device that deforms a motion path candidate determined not to interfere with the obstacle by the robot to set the motion path.

10. A motion path setting device according to any one of Claims 2 to 5, wherein the path setting unit, when it is determined that the robot interferes with the obstacle in each of the plurality of motion path candidates, among the plurality of motion path candidates, identifies a motion path candidate in which an interference location where the robot first interferes with the obstacle is the farthest from the start point in the direction connecting the start point and the end point, sets a partial path from the start point to the interference location in the identified motion path candidate as a part of the motion path, and sets at least a part of the remaining part of the motion path based on a result of performing at least one of movement and deformation of at least a part of a second hypothetical motion path having a minimum distance connecting the interference location and the end point. The motion path setting device.

11. A motion path setting device according to any one of Claims 1 to 5, wherein the path setting unit, calculates a predetermined evaluation value for each of a plurality of non-interference path candidates determined not to interfere with the obstacle among the plurality of motion path candidates, and sets the motion path based on a non-interference path selected from the plurality of non-interference path candidates based on the evaluation value. The motion path setting device.

12. A 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 hypothetical motion path connecting the start point and the end point and the non-interference path candidate. The motion path setting device.

13. A motion path setting device according to any one of Claims 1 to 5, The candidate acquisition unit is an operation path setting device that acquires a plurality of operation path candidates for a predetermined position of the robot in the actual operation space as the multi-dimensional space.

14. An operation path setting device according to any one of Claims 1 to 5, wherein the determination unit determines whether or not the robot interferes with an obstacle in each of the plurality of operation path candidates in a configuration space having a plurality of parameters representing the posture of the robot as axis values.

15. An operation path setting device according to any one of Claims 1 to 5, wherein the candidate acquisition unit can acquire the plurality of operation path candidates based on the first assumed operation path in a limited configuration space as the multi-dimensional space, the limited configuration space having, as axis values, a plurality of main parameters that are part of a plurality of parameters representing the posture of the robot and that determine the posture.

16. A program for causing a computer device to execute an acquisition process of acquiring a plurality of operation path candidates from a start point to an end point based on an assumed operation path having a minimum distance connecting the start point and the end point of the robot operation in a multi-dimensional space that is the actual operation space of the robot or the configuration space of the robot, a determination process of determining whether or not the robot interferes with an obstacle in at least one of the plurality of operation path candidates, and a setting process of setting an operation path of the robot based on a determination result in the determination process. ​