Path generation device, path generation method, and storage medium storing path generation program
By dynamically setting the gap amount and generating non-interference path information, the problem of difficulty in improving the success rate and safety of robots in the prior art is solved, and a more efficient and safe path generation is achieved.
Patent Information
- Application Number
- CN201980059699.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-01-15
- Filing Date
- 2019-11-27
- Publication Date
- 2025-02-07
- Estimated Expiration
- 2039-11-27
AI Technical Summary
In the prior art, when generating robot paths, it is difficult to improve the success rate and safety of the operation at the same time. Setting the gap amount uniformly will increase the probability of selection failure or reduce the safety.
By obtaining the positional relationship between the robot and the obstacle, dynamically set the gap amount used to avoid interference, and generate non-interference path information based on the shape and positional relationship between the robot and the obstacle.
It realizes the safety of the movement without reducing the success rate of the robot's movement, and avoids the risk of interference between the robot and obstacles.
Smart Images

Figure CN112672857B_ABST
Abstract
Description
Technical Field
[0001] The invention relates to a path generating device, a path generating method and a storage medium storing a path generating program. Background Art
[0002] Patent document 1 discloses a robot simulation device, comprising: a motion path acquisition unit, which executes a simulation of the robot's motion program to acquire a first motion path; a teaching point determination unit, which detects interference in the first motion path and determines the teaching points before and after the interference occurs, namely, the first teaching point and the second teaching point; a motion path generation unit, which automatically inserts at least one third teaching point between the first and second teaching points based on a search direction and a search distance determined by random numbers to generate a second motion path without interference; an evaluation unit, which evaluates each second motion path based on at least one predetermined parameter; and a motion path selection unit, which selects the best motion path from multiple second motion paths based on the evaluation.
[0003] When generating a path for the robot to move, the path is generated so that the robot does not interfere with obstacles, that is, the robot and the obstacle are kept at a safe distance. Conventionally, a clearance amount indicating the safe distance between the robot and the obstacle is uniformly set for the robot or the obstacle.
[0004] Prior Art Literature
[0005] Patent Literature
[0006] Patent Document 1: Japanese Patent Application Publication No. 2015-160277
[0007] However, in the case where the gap amount is uniformly set for the robot or the obstacle, for example, in a pick-and-place device, if the gap amount of the box containing the workpiece is set larger to improve safety, the probability of picking failure of the workpiece in the corner of the box increases. Therefore, the overall picking success rate decreases. On the other hand, if the gap amount is set smaller to improve the picking success rate, safety decreases. That is, the risk of interference between the robot and the obstacle increases.
[0008] As described above, the success rate of robot operations such as picking and the safety of the robot operations are in a trade-off relationship, and it is difficult to achieve both at the same time. Summary of the invention
[0009] The present invention has been made in view of the above-mentioned problems, and an object of the present invention is to provide a path generation device and a storage medium storing a path generation program that can prevent a decrease in the success rate of a robot's operation and a decrease in the safety of the robot's operation.
[0010] According to a first aspect of the disclosure, there is provided a path generating device comprising: an acquiring unit for acquiring posture information related to an initial posture and a target posture of a robot, position information related to the position of the robot, obstacle information including the position of obstacles existing within a range interfering with the robot, and specification information related to specifications including a shape of the robot; a setting unit for setting a gap amount representing the amount of gap used to avoid the interference for at least one of the robot and an obstacle existing within a range interfering with the robot based on a positional relationship between the robot and the obstacle; and a path generating unit for generating path information related to the path of the robot based on the initial posture and the target posture of the robot, the position of the robot, the position of the obstacle, the shape of the robot, and the gap amount set by the setting unit.
[0011] In the above-mentioned first aspect, the setting unit reduces the gap amount when the path generated by the path generating unit does not satisfy the predetermined path condition. The path generating unit may also regenerate the path information based on the initial posture and target posture of the robot, the position of the robot, the position of the obstacle, the shape of the robot, and the gap amount set by the setting unit.
[0012] In the first aspect, when the obstacle has a recess and accommodates or places a workpiece to be operated by the robot, the setting unit may set a clearance amount smaller than a clearance amount of an obstacle without a recess.
[0013] In the above-mentioned first aspect, the setting unit may also calculate the speed or acceleration of the joints of the robot based on the path information, and when the calculated speed or acceleration of the joints of the robot is above a predetermined threshold, increase the gap amount so that the speed or acceleration is less than a predetermined threshold.
[0014] In the first aspect, the setting unit may receive an adjustment coefficient for adjusting the gap amount, and adjust the plurality of gap amounts based on the received adjustment coefficient.
[0015] In the first aspect described above, a configuration may be provided that includes a display control unit configured to perform control so that the display of the obstacle differs according to the gap amount.
[0016] According to a second aspect of the disclosure, a path generation method is provided, which enables a computer to execute processing including the following steps: an acquisition step, which acquires posture information related to an initial posture and a target posture of a robot, position information related to the position of the robot, obstacle information including the position of obstacles existing within a range of interference with the robot, and specification information related to specifications including the shape of the robot; a setting step, which sets a gap amount representing the amount of gap used to avoid the interference for at least one of the robot and the obstacle existing within a range of interference with the robot based on the positional relationship between the robot and the obstacle; and a path generation step, which generates path information related to the path of the robot based on the initial posture and the target posture of the robot, the position of the robot, the position of the obstacle, the shape of the robot, and the gap amount set by the setting step.
[0017] According to the third aspect of the disclosure, a storage medium storing a path generation program is provided, which enables a computer to function as the following components: an acquisition unit, which acquires posture information related to an initial posture and a target posture of a robot, position information related to the position of the robot, obstacle information including the position of obstacles existing within a range of interference with the robot, and specification information related to specifications including the shape of the robot; a setting unit, which sets a gap amount representing the amount of gap used to avoid the interference for at least one of the robot and the obstacle existing within a range of interference with the robot based on the positional relationship between the robot and the obstacle; and a path generation unit, which generates path information related to the path of the robot based on the initial posture and the target posture of the robot, the position of the robot, the position of the obstacle, the shape of the robot, and the gap amount set by the setting unit.
[0018] According to the present invention, it is possible to prevent the success rate of the operation of the robot from being reduced, and to prevent the safety of the operation of the robot from being reduced. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] Figure 1 It is a diagram showing a schematic configuration of a robot and a robot control device.
[0020] Figure 2 It is a diagram showing the structure of a robot which is a vertical multi-joint robot.
[0021] Figure 3 is a block diagram showing the hardware configuration of a robot control device.
[0022] Figure 4 This is a block diagram showing an example of the functional structure of a robot control device.
[0023] Figure 5 This is a diagram for explaining types of obstacles.
[0024] Figure 6 : is a flowchart showing the flow of the robot control process of the robot control device.
[0025] Figure 7 It is a diagram showing an example of gap amount setting information.
[0026] Figure 8 It is a diagram for explaining a display example of the gap amount.
[0027] Fig.9A It is a side view of the box with the gap set.
[0028] Fig. 9B This is a top view of the box with the gap set.
[0029] Fig.10 It is a diagram showing a display example in the case where the display is made different according to the gap amount.
[0030] Fig.11 It is a diagram for explaining the case where the gap amounts are uniformly set.
[0031] Fig. 12A It is a diagram showing an example of a reception screen for accepting an adjustment coefficient.
[0032] Fig. 12B It is a diagram showing an example of a reception screen for accepting an adjustment coefficient.
[0033] Fig. 12C It is a diagram showing an example of a reception screen for accepting an adjustment coefficient. DETAILED DESCRIPTION
[0034] Hereinafter, an example of an embodiment of the present invention will be described with reference to the accompanying drawings. In addition, in each of the drawings, the same reference numerals are given to the same or equivalent components and parts. In addition, the dimensional ratios of the drawings are sometimes exaggerated for the convenience of description and sometimes differ from the actual ratios.
[0035] Figure 1 It is a diagram showing a schematic configuration of a robot and a robot control device.
[0036] like Figure 1 As shown, the robot control device 10 is connected to the robot RB and controls the movement of the robot RB. The robot control device 10 controls the movement of the robot RB by outputting various parameters (movement command values) for controlling the movement of the robot RB to the robot RB. In addition, the robot control device 10 has a function as a path generation device for generating a path for the robot RB. The detailed structure of the robot control device 10 will be described later.
[0037] The robot RB moves along multiple teaching points taught by the user or multiple passing points generated according to the path plan. When moving, the robot RB follows various motion instruction values. The various motion instruction values include, for example, speed, acceleration, deceleration, rotation angles of the joints of the robot RB, etc.
[0038] As one example, the robot RB is equipped with a robot hand H as an end effector at the front end. In this case, the robot RB is a so-called pick-and-place robot that, for example, holds a workpiece W as an operation object of the robot RB at a predetermined position, and transports and places it at a predetermined destination. As another example, the robot RB is equipped with a tool as an end effector. In this case, the robot RB moves along a taught path or a path based on a path plan, and performs predetermined processing such as welding, screw fixing, and inspection at a predetermined location.
[0039] Before describing the details of the robot control device 10, the structure of the robot RB is described. In the present embodiment, as an example, the case where the robot RB is a vertical multi-joint robot is described. However, the present invention can also be applied to a horizontal multi-joint robot (SCARA robot), a parallel link robot, an orthogonal robot, a mobile robot, a flying robot (drone), and a humanoid robot.
[0040] Figure 2 It is a diagram showing the structure of a robot which is a vertical multi-joint robot.
[0041] like Figure 2 As shown, the robot RB is a six-axis robot with six degrees of freedom, including a base link BL, links L1 to L6, and joints J1 to J6. In addition, a joint refers to a joint that connects the links to each other. The joints J1 to J6 connect the links to each other in a rotatable manner through a motor not shown in the figure. In this embodiment, a six-axis robot is used as an example for explanation, but the number of axes is not limited to six, and can be any number greater than two. The number of links also varies with the number of axes.
[0042] The basic connecting rod BL and the connecting rod L1 are connected by Figure 2 The base link BL is connected to the link L1 by a joint J1 that rotates in the direction of arrow C1 about the vertical axis S1. Therefore, the link L1 rotates in the direction of arrow C1 about the base link BL as a fulcrum.
[0043] The connecting rod L1 and the connecting rod L2 are connected by Figure 2 The connecting rod L2 is connected to the joint J2 which rotates in the direction of arrow C2 around the horizontal axis S2. Therefore, the connecting rod L2 rotates in the direction of arrow C2 around the joint J1 as a fulcrum.
[0044] The connecting rod L2 and the connecting rod L3 are connected by Figure 2The connecting rod L3 is connected to the joint J3 which rotates in the direction of arrow C3 around the axis S3. Therefore, the connecting rod L3 rotates in the direction of arrow C3 around the joint J2 as a fulcrum.
[0045] The connecting rod L3 and the connecting rod L4 are connected by Figure 2 The connecting rod L4 is connected to the joint J4 that rotates in the direction of arrow C4 around the axis S4. Therefore, the connecting rod L4 rotates in the direction of arrow C4 with the joint J3 as the fulcrum.
[0046] The connecting rod L4 and the connecting rod L5 are connected by Figure 2 The connecting rod L5 is connected to the joint J5 which rotates in the direction of arrow C5 around the axis S5. Therefore, the connecting rod L5 rotates in the direction of arrow C5 around the joint J4 as a fulcrum.
[0047] The connecting rod L5 and the connecting rod L6 are connected by Figure 2 The connecting rod L6 is connected to the joint J6 which rotates in the direction of arrow C6 with the shaft S6 as the center. Therefore, the connecting rod L6 rotates in the direction of arrow C6 with the joint J5 as the fulcrum. Figure 2 Although not shown in the figure, a robot hand H is mounted on the link L6.
[0048] The joints J1 to J6 each have a predetermined rotation angle range set as a movable region.
[0049] The position of the fingers of the robot RB or the posture of the robot RB is determined by the respective rotation angles of the joints J1 to J6. Therefore, when teaching the robot RB a path, the angle value of the rotation angle of each joint J1 to J6 is expressed as a vector of a dimension corresponding to the number of axes of the robot (a six-dimensional vector in the case of the present embodiment), and the vector is sequentially taught as a teaching point. In the case of generating the path instead of teaching, similarly, the passing points through which the robot RB passes are generated as vectors of a dimension corresponding to the number of axes of each joint J1 to J6. In addition, as a motion path, sometimes vector data with each angle value of a teaching point or a passing point is not provided, but vector data with each coordinate value on an orthogonal coordinate system is provided. In this case, the coordinate values on the orthogonal coordinate system can be transformed into angle values of the joints J1 to J6 based on the inverse kinematics of the robot.
[0050] Next, the robot control device 10 will be described.
[0051] Figure 3 2 is a block diagram showing the hardware configuration of the robot control device 10 .
[0052] like Figure 3As shown, the robot control device 10 includes a CPU (Central Processing Unit) 11, a ROM (Read Only Memory) 12, a RAM (Random Access Memory) 13, a memory 14, an input unit 15, a monitor 16, an optical disk drive 17, and a communication interface 18. Each structure is connected via a bus 19 so as to be able to communicate with each other.
[0053] In this embodiment, a robot control program for controlling the robot RB is stored in the ROM 12 or the memory 14. The CPU 11 is a central processing unit that executes various programs or controls various structures. That is, the CPU 11 reads the program from the ROM 12 or the memory 14 and executes the program using the RAM 13 as a work area. The CPU 11 controls the above-mentioned structures and performs various calculations according to the program recorded in the ROM 12 or the memory 14.
[0054] The ROM 12 stores various programs and various data. The RAM 13 temporarily stores programs and data as a work area. The memory 14 is composed of a HDD (Hard Disk Drive) or an SSD (Solid State Drive), and stores various programs including an operating system and various data.
[0055] The input unit 15 includes pointing devices such as a keyboard 151 and a mouse 152, which are used to perform various inputs. The monitor 16 is, for example, a liquid crystal display, which displays various information such as whether the adsorption of the workpiece W is successful. The monitor 16 can also be a touch panel to function as the input unit 15. The optical disk drive device 17 reads data stored in various recording media (CD-ROM or Blu-ray disc, etc.), writes data to the recording media, etc.
[0056] The communication interface 18 is an interface for communicating with other devices, and uses a standard such as Ethernet (registered trademark), FDDI, or Wi-Fi (registered trademark).
[0057] Next, the functional structure of the robot control device 10 will be described.
[0058] Figure 4 : is a block diagram showing an example of the functional configuration of the robot controller 10 .
[0059] like Figure 4As shown, the robot control device 10 includes an acquisition unit 20, a setting unit 22, a path generation unit 24, and a display control unit 26 as functional components. Each functional component is implemented by CPU 11 reading a robot control program stored in ROM 12 or memory 14, expanding it in RAM 13, and executing it.
[0060] The acquiring unit 20 acquires posture information, position information, obstacle information, and specification information. These information may be acquired by reading information pre-stored in the memory 14 or may be acquired from an external device.
[0061] The posture information is information on the initial posture and target posture of the robot RB.
[0062] The position information is information related to the position of the robot RB, and includes, for example, coordinate values of the position of the robot RB in a three-dimensional space.
[0063] The obstacle information includes obstacles existing within the range of interference with the robot RB, that is, information about the positions of structures that become obstacles in the movement of the robot RB, for example, including the coordinate values of the positions of the obstacles in the three-dimensional space. Here, interference refers to contact with the robot RB. In this embodiment, for example, Figure 5 As shown, the case where the robot control device 10 is applied to a pick-and-place device is described. Types of obstacles include: a box 30 containing workpieces, a rack 32 on which workpieces are placed, a base 34 on which the box 30 is installed, a base 36 on which the rack 32 is installed, a camera 38 for photographing the movement of the robot RB, and a camera bracket 40 on which the camera 38 is mounted. In addition, in the present embodiment, the obstacle information includes, for example, three-dimensional shape data indicating the three-dimensional shape and size of the obstacle or the type of the obstacle in addition to information related to the position of the obstacle.
[0064] The specification information is information related to specifications including the shape of the robot RB. In the present embodiment, as an example, the specification information includes information indicating specifications such as the maximum speed, maximum acceleration, maximum deceleration, and the angle range of the rotation angle in addition to the shapes of the joints J1 to J6 of the robot RB.
[0065] The setting unit 22 sets a gap amount indicating the amount of gap for avoiding interference between the robot RB and the obstacle for at least one of the robot RB and the obstacle existing in the range interfering with the robot RB based on the positional relationship between the robot RB and the obstacle.
[0066] In addition, the gap amount may be set for the entire robot RB, or may be set for each of the joints J1 to J6. In the present embodiment, a case where the gap amount is set for each joint will be described.
[0067] In addition, the gap amount may be set only for the robot RB, the gap amount may be set only for the obstacle, or the gap amount may be set for both the robot RB and the obstacle. In addition, when there are multiple obstacles, the gap amount may be set for all obstacles, or the gap amount may be set for only some obstacles.
[0068] The path generation unit 24 generates path information related to the path of the robot RB based on the initial posture and target posture of the robot RB, the position of the robot RB, the position of the obstacle, the shape of the robot, and the gap amount set by the setting unit 22. The path information refers to information related to the path from the initial posture of the robot RB to the target posture and the speed of the robot RB when moving on the path. Here, the path refers to a list of postures when the robot RB moves from the initial posture to the target posture. The posture of the robot RB is determined by the angle value of the rotation angle of each joint J1 to J6, so the path is a list of the angle values of the rotation angle of each joint J1 to J6 of the teaching point or the via point of the robot RB from the initial posture of the robot RB to the target posture.
[0069] The information on the speed is, for example, a speed curve showing the change in speed when the robot RB moves from the initial posture to the target posture. The robot RB moves on the path by controlling the speed according to the speed curve.
[0070] The display control unit 26 executes various display control processes such as displaying the robot RB and the obstacle for which the gap amount is set on the monitor 16 .
[0071] Next, the operation of the robot control device 10 will be described.
[0072] Figure 6 1 is a flowchart showing the flow of the robot control process of the robot control device 10. The CPU 11 reads out the robot control program from the ROM 12 or the memory 14, expands it in the RAM 13, and executes it, thereby performing the robot control process. The robot control process includes a path generation process.
[0073] The CPU 11 as the acquisition unit 20 acquires posture information of the robot RB, position information of the robot RB, obstacle information on obstacles, and specification information of the robot RB (step S100 ).
[0074] The CPU 11 sets a gap amount indicating the amount of gap for avoiding interference between the robot RB and the obstacle, for at least one of the robot RB and an obstacle existing in a range interfering with the robot RB (step S102 ).
[0075] Next, a method for setting the gap amount will be described.
[0076] First, for example, the gap amount can be set by the user. In this case, for example, the display control unit 26 displays the robot RB on the monitor 16 based on the specification information, and displays the obstacle on the monitor 16 based on the obstacle information. Then, the user inputs the gap amount for at least one of the joints of the robot RB and the obstacle based on the positional relationship between the robot RB and the obstacle through the input unit 15. In this way, the gap amount can be set for at least one of the robot RB and the obstacle.
[0077] It can also be based on, for example Figure 7 The gap amount setting information 50 shown in FIG. 1 automatically sets the gap amount. Figure 7 As shown, the gap amount setting information 50 is table data showing the correspondence between the gap setting object and the gap amount. Figure 7 As shown in the figure, if it is robot RB, the gap amount is set for each joint J1 to J6. Here, the gap amount of joints J1 to J3, which are joints on the root side, is set to 10 mm. In addition, setting a gap amount of 10 mm for joint J1 means that the thickness is increased by 10 mm in the normal direction relative to the surface of joint J1.
[0078] On the other hand, the gap amount of the joints J4 to J6 on the finger side is set to 5 mm. That is, the gap amount on the finger side is set smaller than the gap amount on the root side. Figure 5 Therefore, if the gap amount is set to be large, the picking of workpieces existing in the corner of the box 30 may fail. Therefore, the gap amount of the joints J4 to J6 on the finger side is made smaller than the gap amount of the joints J1 to J3 on the root side. In addition, if the gap amount is set to be large, the picking of workpieces existing in the corner of the box 30 may fail. Figure 7 As shown, the gap amount of the camera bracket 40 is set to 10 mm, while the gap amount of the box 30 and the rack 32 is set to 5 mm, which is smaller than the camera bracket 40. In this way, the gap amount setting information 50 sets the gap amount based on the positional relationship between the robot RB and the obstacle. This can prevent the success rate of picking the workpiece from decreasing.
[0079] Next, another method for setting the gap amount is described. First, for example, the path generation unit 24 generates path information of a path from an initial posture to a target posture based on the posture information of the robot RB, the position information of the robot RB, the obstacle information related to the obstacle, and the specification information of the robot RB acquired in step S100, and performs a simulation for causing the robot RB to move according to the generated path information. In addition, the setting unit 22 may also set the gap amount for at least one of the robot RB and the obstacle according to the execution result of the simulation. Specifically, a joint that protrudes into an obstacle having a depression such as the box 30 and the rack 32 is determined, and the gap amount of the joint that protrudes into the obstacle is set to be smaller than the gap amount of the joint that does not protrude into the obstacle. That is, the gap amount is set according to the positional relationship between the robot RB and the obstacle. In addition, the path information may be generated by the same process as step S106 described later, and the acceleration of the joint may be calculated based on the generated path information. When the calculated acceleration is above a predetermined threshold, the gap amount is increased so that the acceleration is less than the predetermined threshold. Thus, the robot RB can be moved more safely. Alternatively, the speed of the joint may be calculated instead of the acceleration, and the gap amount may be set based on the calculated speed.
[0080] The CPU 11 as the display control unit 26 displays the robot RB and the obstacle on the monitor 16 based on the specification information and obstacle information acquired in step S100 (step S104). At this time, the display is performed so that it can be recognized that the gap is set according to the gap amount set in step S102. Figure 8 An example of obstacle display with a clearance set is shown. Figure 8 In the example of FIG. 1 , gaps are set for the boxes 60, 62, and the support 64, respectively, and the areas where the gaps are set are indicated by double-dashed lines. Figure 8 In the example, the gap between the box 60 with a recess and containing the workpiece and the box 62 with the workpiece is smaller than the gap between the support 64 without the recess. In addition, the boxes 60 and 62 have recesses. Therefore, for example, when the box 60 is viewed from the side, Fig.9A As shown in FIG. 1 , not only is a gap set on the outside of the box 60, but also when the box 60 is viewed from the upper side, Fig. 9B As shown, a gap is also set inside the box 60.
[0081] In addition, the obstacle display may be controlled in a manner that varies according to the gap amount. Fig.10 As shown, when the gap amount between the boxes 60 and 62 is smaller than the gap amount between the support 64, the color of the boxes 60 and 62 is made different from the color of the support 64. This makes it easy to recognize that different gap amounts are set.
[0082] In addition, the clearance amount set for one obstacle can also be uniformly set for other obstacles. Fig.11 As shown, the gap amount set for the support 64 may be set uniformly for the boxes 60 and 62 .
[0083] In addition, the setting unit 22 may also accept an adjustment coefficient for adjusting the gap amount, and adjust the plurality of gap amounts based on the accepted adjustment coefficient. Fig. 12A As shown in FIG. 1 , a reception screen 70 for receiving the adjustment coefficient is displayed on the monitor 16. Fig. 12A In the example of FIG. 1 , by sliding the adjustment lever 72 left and right, the adjustment coefficient can be set within the range of 0 to 2. In addition, the setting range of the adjustment coefficient is not limited to this, and it can be set appropriately. When the setting unit 22 receives the adjustment coefficient, it sets the value obtained by multiplying the gap amount by the adjustment coefficient as the adjusted gap amount.
[0084] For example, Fig. 12A In the example, the adjustment factor is set to "1". Figure 7 As shown in FIG. 1 , when the gap amounts between the robot RB and the obstacle are set, the gap amounts do not change.
[0085] In addition, Fig. 12B In the example, the adjustment factor is set to "2". Figure 7 The clearance of the box is doubled to 10mm, the clearance of the camera bracket is also doubled to 20mm. The other clearances are also doubled.
[0086] In addition, Fig. 12C In the example, the adjustment factor is set to "0.5". Figure 7 The clearance of the box is 0.5 times 2.5mm, the clearance of the camera bracket is also 0.5 times 5mm. The other clearances are also 0.5 times.
[0087] As described above, by setting the adjustment coefficient, a plurality of gap amounts can be adjusted.
[0088] The CPU 11 as the path generation unit 24 generates path information on the path and speed of the robot RB based on the posture information, position information, obstacle information, and specification information acquired in step S100 and the gap amount set in step S102 (step S106 ).
[0089] As a method for generating path information, various well-known methods can be used. For example, as a method for generating a path, there are: RRT (Rapidly exploring random tree), RRT*, RRT connect, PRM (Probabilistic Roadmap Method), STOMP (Stochastic Trajectory Optimization for Motion Planning), CHOMP (Covariant Hamiltonian Optimization for Motion Planning), EET (Exploring / Exploiting Tree), etc.
[0090] The CPU 11 as the path generation unit 24 determines whether the robot RB interferes with an obstacle in the path generated in step S106 based on the path information and obstacle information generated in step S100 (step S108). In determining the interference, for example, a known interference determination technology for determining the interference between the robot RB and the obstacle is used. As a known interference determination technology, for example, the technology described in Japanese Patent Laid-Open No. 2002-273675 can be used.
[0091] In addition, if it is determined that the robot RB does not interfere with the obstacle (step S108: NO), the process proceeds to step S110. On the other hand, if the robot RB interferes with the obstacle (step S108: YES), the process proceeds to step S106, and a path is generated again so that the robot RB does not interfere with the obstacle. Then, the processes of steps S106 and S108 are repeated until the robot RB does not interfere with the obstacle.
[0092] The CPU 11, as the path generation unit 24, determines whether the path generated in step S106 satisfies a predetermined path condition (step S110). The situation where the path condition is satisfied refers to, for example, a situation where the path length of the path is less than a predetermined reference path length. Here, the path length refers to the length of the path from the initial posture to the target posture generated in step S106. In addition, the reference path length may be, for example, a value obtained by adding a predetermined margin value to the path length of the path taught by teaching, or a value obtained by adding a predetermined margin value to the path length of the path without setting a gap. In this way, the path length can be prevented from becoming too long.
[0093] In addition, the case where the path condition is satisfied may be set as the case where the path action time is less than a predetermined reference action time. Here, the path action time refers to the time for the robot RB to move on the path from the initial posture to the target posture generated in step S106. In addition, the reference action time may be, for example, a value obtained by adding a predetermined margin value to the action time of the path taught by teaching, or a value obtained by adding a predetermined margin value to the action time of the path when the gap is not set. In this way, the action time of the robot RB can be prevented from becoming too long.
[0094] Alternatively, the case where the path condition is satisfied may be a case where the path length of the path is less than or equal to a reference path length and the operation time of the path is less than or equal to a reference operation time.
[0095] In addition, if the path generated in step S106 satisfies the predetermined path condition, the process proceeds to step S112. On the other hand, if the path generated in step S106 does not satisfy the predetermined path condition, the process proceeds to step S102 and the gap amount is set again. That is, the gap amount is reduced. Then, the process of steps S102 to S110 is repeated until the generated path satisfies the predetermined path condition.
[0096] In step S112, an operation command value is output to the robot RB based on the generated path information. As a result, the robot RB operates according to the path information.
[0097] As described above, in this embodiment, the gap amount is set for at least one of the robot RB and the obstacle, respectively. This can prevent the success rate of the robot's operation from decreasing and the safety of the robot's operation from decreasing, compared with the case where the gap amount is set uniformly.
[0098] In addition, in this embodiment, the case of obtaining obstacle information is described, but it is also possible to obtain obstacle information based on, for example, Figure 5 The image captured by the camera 38 shown in the figure generates obstacle information related to obstacles such as the box 30 and the rack 32. In this case, the camera 38 may be a camera that captures two-dimensional images or a camera that captures three-dimensional images.
[0099] The acquisition unit 20 acquires the image captured by the camera 38. The setting unit 22 generates obstacle information based on the acquired image, and sets the gap amount based on the generated obstacle information. In generating the obstacle information, a known method such as template matching can be used.
[0100] As described above, by setting the gap amount based on the obstacle information generated based on the image captured by the camera 38 , it is not necessary to prepare the obstacle information in advance.
[0101] In addition, for Figure 6 The gap amount set in step S102 may also be adjusted according to at least one of the weight and size of the workpiece. For example, the gap amount may be adjusted to increase as the weight of the workpiece increases, and to decrease as the weight of the workpiece decreases. In addition, the gap amount may be set to increase as the size of the workpiece increases, and to decrease as the size of the workpiece decreases.
[0102] Furthermore, in the present embodiment, the case where the robot RB that is the control target of the robot control device is a real machine has been described, but the control target of the robot control device may be a robot that operates in simulation.
[0103] In addition, the robot control processing executed by reading the software (program) by the CPU in the above-mentioned embodiments may also be executed by various processors other than the CPU. As the processor in this case, a PLD (Programmable Logic Device) whose circuit structure can be changed after the manufacture of an FPGA (Field-Programmable Gate Array) or the like, and a processor having a circuit structure specially designed for executing specific processing such as an ASIC (Application Specific Integrated Circuit), i.e., a dedicated circuit, etc. are exemplified. In addition, the robot control processing may also be executed by one of these various processors, or by a combination of two or more processors of the same or different types (for example, a plurality of FPGAs, and a combination of a CPU and an FPGA, etc.). In addition, more specifically, the hardware structure of these various processors is a circuit that combines circuit elements such as semiconductor elements.
[0104] In addition, in the above-mentioned embodiments, the robot control program is pre-stored (installed) in the memory 14 or ROM 12, but the present invention is not limited to this. The program can also be provided in a recording medium such as a CD-ROM (Compact Disk Read Only Memory), a DVD-ROM (Digital Versatile Disk Read Only Memory), and a USB (Universal Serial Bus) memory. In addition, the program can also be downloaded from an external device via a network.
[0105] Description of reference numerals:
[0106] 10: Robot control device 20: Acquisition unit
[0107] 22: Setting unit 24: Path generation unit
[0108] 26: Display control unit 30, 60, 62: Box
[0109] 32: Frame 38: Camera
[0110] 40: Camera bracket 50: Gap setting information
[0111] 64: Pillar 70: Receiving Screen
[0112] 72: Adjustment rod.
Claims
1. A path generation device, comprising: an acquisition unit that acquires posture information related to an initial posture and a target posture of a robot, position information related to a position of the robot, obstacle information including a position of an obstacle existing within a range interfering with the robot, and specification information related to specifications including a shape of the robot; a setting unit that sets a gap amount indicating an amount of gap for avoiding the interference for at least one of the robot and the obstacle existing in a range interfering with the robot based on a positional relationship between the robot and the obstacle; and a path generating unit that generates path information related to the path of the robot based on the initial posture and target posture of the robot, the position of the robot, the position of the obstacle, the shape of the robot, and the gap amount set by the setting unit, The setting unit sets the gap amount of the joint that protrudes into the obstacle with the recess among the multiple joints constituting the robot to be smaller than the gap amount of the joint that does not protrude into the obstacle with the recess, and adjusts the gap amount based on at least one of the weight and size of the workpiece that is the operation object of the robot.
2. The path generation device according to claim 1, wherein: The setting unit reduces the gap amount when the path generated by the path generating unit does not satisfy a predetermined path condition. The path generation unit regenerates the path information based on the initial posture and target posture of the robot, the position of the robot, the position of the obstacle, the shape of the robot, and the gap amount set by the setting unit.
3. The path generation device according to claim 1, wherein: When the obstacle has a recess and accommodates or places a workpiece to be operated by the robot, the setting unit sets a clearance amount that is smaller than a clearance amount for an obstacle that does not have a recess.
4. The path generation device according to claim 1, wherein: The setting unit calculates the speed or acceleration of the joint of the robot based on the path information, and when the calculated speed or acceleration of the joint of the robot is greater than a predetermined threshold, increases the gap amount so that the speed or acceleration is less than the predetermined threshold.
5. The path generation device according to claim 1, wherein: The setting unit receives an adjustment coefficient for adjusting the gap amount, and adjusts the plurality of gap amounts based on the received adjustment coefficient.
6. The path generation device according to any one of claims 1 to 5, wherein: The path generation device includes a display control unit configured to perform control so that display of the obstacle differs according to the gap amount.
7. A path generation method, causing a computer to execute a process comprising the following steps: an acquisition step of acquiring posture information related to an initial posture and a target posture of the robot, position information related to the position of the robot, obstacle information including the position of obstacles existing within a range interfering with the robot, and specification information related to specifications including a shape of the robot; a setting step of setting a gap amount indicating an amount of gap for avoiding the interference for at least one of the robot and the obstacle existing in a range interfering with the robot based on a positional relationship between the robot and the obstacle; and a path generating step of generating path information related to the path of the robot based on the initial posture and target posture of the robot, the position of the robot, the position of the obstacle, the shape of the robot, and the gap amount set in the setting step, In the setting process, the gap amount of the joints that protrude into the obstacle with the recess among the multiple joints constituting the robot is set to be smaller than the gap amount of the joints that do not protrude into the obstacle with the recess, and the gap amount is adjusted based on at least one of the weight and size of the workpiece that is the operation object of the robot.
8. A storage medium storing a path generation program, wherein the path generation program causes a computer to function as: an acquisition unit that acquires posture information related to an initial posture and a target posture of a robot, position information related to a position of the robot, obstacle information including a position of an obstacle existing within a range interfering with the robot, and specification information related to specifications including a shape of the robot; a setting unit that sets a gap amount indicating an amount of gap for avoiding the interference for at least one of the robot and the obstacle existing in a range interfering with the robot based on a positional relationship between the robot and the obstacle; and a path generating unit that generates path information related to the path of the robot based on the initial posture and target posture of the robot, the position of the robot, the position of the obstacle, the shape of the robot, and the gap amount set by the setting unit, The setting unit sets the gap amount of the joint that protrudes into the obstacle with the recess among the multiple joints constituting the robot to be smaller than the gap amount of the joint that does not protrude into the obstacle with the recess, and adjusts the gap amount based on at least one of the weight and size of the workpiece that is the operation object of the robot.
Citation Information
Patent Citations
Robot control method and robot control system
JP2002273675A
Robot simulation device for creating motion path of robot
JP2015160277A
System and method for dynamic virtual collision objects
CN106255471A
Automatic obstruction avoidance method and control device for arm-type robot
CN107000223A
Robot simulator, robot system and simulation method
CN108453702A