Information processing device, information processing method, and program

The robot simulator optimizes path generation by setting distinct clearance amounts for each section and determining interference based on the larger value, ensuring efficient and interference-free paths.

JP2025163783APending Publication Date: 2025-10-30KONICA MINOLTA INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024067300
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-04-18
Publication Date
2025-10-30

AI Technical Summary

Technical Problem

Existing robot simulators set a uniform clearance amount for all sections, leading to unnecessarily long paths due to excessive clearance in sections that do not require it, or risk interference if different clearance amounts are applied to postures.

Method used

A robot simulator that sets different clearance amounts for each section and determines interference based on the larger of these amounts, ensuring no interference occurs during path generation.

Benefits of technology

Eliminates the certainty of interference during path generation by applying the larger clearance amount for each posture, optimizing path efficiency and avoiding unnecessary length.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025163783000001_ABST
    Figure 2025163783000001_ABST
Patent Text Reader

Abstract

To provide an information processing device which can solve a situation where interference inevitably occurs in path generation when determining that there is no interference occurring in a set attitude.SOLUTION: An information processing device 10 of the invention includes: an acquisition part 11 which acquires each information on a robot 20 and an obstacle 30; a setting unit 12 which sets a first clearance amount in a section where the robot 20 changes from a first attitude to a second attitude and a second clearance amount in a section where the robot 20 changes from the second attitude to the third attitude; and a determination unit 13 which determines whether or not the robot 20 and the obstacle 30 interfere with each other in each attitude based on the information acquired by the acquisition part 11 and the clearance amounts set by the setting unit 12. The determination unit 13 makes a determination in the second attitude based on the larger one of the first clearance amount and the second clearance amount.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing device, an information processing method, and a program. [Background technology]

[0002] One example of an information processing device is a robot simulator that reproduces a real environment in a virtual environment before actually moving a robot. The robot simulator is a simulator that can automatically generate a path for moving a robot through a section connecting different postures while avoiding interference with obstacles (see, for example, Patent Document 1). Patent Document 1 discloses a technology for acquiring information about a robot and obstacles, setting a clearance amount for avoiding interference between the robot and obstacles based on the acquired information, and generating a path for the robot based on the set clearance amount. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent No. 7147571 Summary of the Invention [Problem to be solved by the invention]

[0004] To generate a robot path, it is necessary to determine the orientation of the sections in advance and verify that the orientation does not interfere with obstacles. When generating a path with multiple sections, simulators that set a uniform clearance amount for all sections will set a large clearance amount to match the other sections, even for sections that do not require a large clearance amount. In this way, if a clearance amount larger than necessary is set for a section that does not require a large clearance amount, the generated path will be unnecessarily large, resulting in a longer takt time.

[0005] On the other hand, if it is possible to set a different clearance amount for each section of a path to be generated, the clearance amount set for each section will be applied to each posture to perform an interference check to confirm that the posture does not interfere with obstacles. In this case, depending on which section's clearance amount is applied to each posture, there may be a situation where interference will inevitably occur in the subsequent path generation.

[0006] The present invention aims to provide an information processing device, an information processing method, and a program that, when setting different clearance amounts for each section of a route to be generated, can eliminate a situation in which interference is bound to occur during route generation if it is determined that there is no interference with the set attitude. [Means for solving the problem]

[0007] In order to solve the above problem, the information processing device of the present invention comprises an acquisition unit that acquires various information related to the robot and obstacles; a setting unit that sets a first clearance amount in the section where the robot changes from a first posture to a second posture and a second clearance amount in the section where the robot changes from the second posture to a third posture; and a determination unit that makes a determination based on the larger of the first clearance amount and the second clearance amount when determining whether the robot and the obstacle will interfere in the second posture based on the information acquired by the acquisition unit and the clearance amount set by the setting unit.

[0008] In addition, the information processing method of the present invention for solving the above problem executes the following processes: an acquisition step of acquiring information about the robot and obstacle; a setting step of setting a first clearance amount in the section where the robot changes from a first posture to a second posture and a second clearance amount in the section where the robot changes from the second posture to a third posture; and a determination step of making a determination based on the larger of the first clearance amount and the second clearance amount when determining whether the robot and the obstacle will interfere in the second posture based on the information acquired in the acquisition step and the clearance amount set in the setting step.

[0009] Further, a program according to the present invention for solving the above-mentioned problems is a program for causing a computer to execute the processing of each step of the above-mentioned information processing method. [Effects of the Invention]

[0010] According to the present invention, when setting different clearance amounts for each section of a route to be generated, if it is determined that there is no interference with the set attitude, it is possible to eliminate the situation in which interference is sure to occur during route generation. Problems, configurations, and effects other than those described above will become apparent from the following description of the mode for carrying out the invention (hereinafter referred to as "embodiments"). [Brief explanation of the drawings]

[0011] [Figure 1] FIG. 2 is a functional block diagram showing an example of the functional configuration of a robot simulator according to an embodiment of the present invention. [Figure 2] FIG. 1 is a block diagram showing an example of a hardware configuration when a robot simulator according to an embodiment of the present invention is configured using a computer. [Figure 3] FIG. 1 is a schematic perspective view showing an example of the configuration of a robot that is an object to be controlled by a robot simulator. [Figure 4] This is a diagram showing the joint numbers and angles of each joint of a six-joint (six-axis) robot. [Figure 5] FIG. 5 is a diagram showing another joint state that can achieve the same hand position and angle as in FIG. 4. [Figure 6] FIG. 1 is a diagram showing a state in which waypoints connect nodes. [Figure 7] This is a diagram showing the state when generating a path for the robot to move from posture a to posture b, and from posture b to posture c. [Figure 8] 1 is a flowchart showing a flow of processing according to Example 1 in a robot simulator according to an embodiment of the present invention. [Figure 9] 10 is a flowchart showing a flow of processing according to Example 2 in a robot simulator according to an embodiment of the present invention. [Figure 10] 10 is a flowchart showing a flow of processing according to Example 3 in a robot simulator according to an embodiment of the present invention. [Figure 11] 10 is a flowchart showing a flow of processing according to Example 4 in a robot simulator according to an embodiment of the present invention. [Figure 12] 10 is a flowchart showing a processing flow according to Example 5 in a robot simulator according to an embodiment of the present invention. [Figure 13] 13 is a flowchart showing a flow of processing according to Example 6 in a robot simulator according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION

[0012] Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. In this specification and drawings, components having substantially the same functions or configurations are designated by the same reference numerals, and redundant explanations will be omitted.

[0013] <Robot simulator according to one embodiment of the present invention> A robot simulator according to an embodiment of the present invention is an example of an information processing device, and is a simulator that reproduces a real environment in a virtual environment before actually operating a robot.

[0014] [Example of robot simulator function configuration] Fig. 1 is a functional block diagram showing an example of the functional configuration of a robot simulator according to an embodiment of the present invention. As shown in Fig. 1, a robot simulator 10 according to this embodiment includes an acquisition unit 11, a setting unit 12, a determination unit 13, and a control unit 14, and controls a robot 20 and an obstacle 30. The robot 20 is, for example, an industrial robot. The robot simulator 10, the robot 20, and the obstacle 30 may be configured as an integrated system.

[0015] In the robot simulator 10 configured as described above, the acquisition unit 11 acquires information about the robot 20 and information about the obstacle 30. The information about the robot 20 is, for example, posture information and position information about the robot 20. The information about the obstacle 30 is, for example, position information and shape information about the obstacle 30. These pieces of information are useful for automatically generating a path for moving through sections connecting each posture of the robot 20 while avoiding interference with the obstacle.

[0016] Based on the information acquired by the acquisition unit 11, the setting unit 12 sets a different clearance amount for each section connecting the postures as a clearance amount for avoiding interference between the robot 20 and the obstacle 30 when the robot 20 changes between each posture. More specifically, the setting unit 12 sets a first clearance amount in the section where the robot 20 changes from the first posture to the second posture and a second clearance amount in the section where the robot 20 changes from the second posture to the third posture, among the consecutive first posture, second posture, and third posture.

[0017] The determination unit 13 determines whether or not the robot 20 will interfere with the obstacle 30 in the section connecting each posture of the robot 20, based on the information acquired by the acquisition unit 11 and the clearance amount set by the setting unit 12. In the determination for the second posture, the determination unit 13 determines whether or not the robot 20 will interfere with the obstacle 30, based on the larger of the first clearance amount and the second clearance amount. Details of the determination process by the determination unit 13 will become clear in the description below.

[0018] Based on the determination result of the determination unit 13, the control unit 14 controls the position of the robot 20, the position of the obstacle 30, or the clearance amount set by the setting unit 12. Details of the control by the control unit 14 will become clear from the description below.

[0019] The information processing method of the present invention is an information processing method for the robot simulator 10 according to this embodiment having the above-described configuration.

[0020] [Example of robot simulator hardware configuration] FIG. 2 is a block diagram showing an example of the hardware configuration of a robot simulator 10 according to an embodiment of the present invention when the robot simulator 10 is configured by a computer.

[0021] 2, the robot simulator 10 according to this embodiment is configured by a computer having a CPU 10a, memory 10b, storage 10c, input unit 10d, output unit 10e, and display unit 10f. The CPU 10a, memory 10b, storage 10c, input unit 10d, output unit 10e, and display unit 10f are each connected to a bus 10g. CPU stands for Central Processing Unit.

[0022] The CPU 10a is an arithmetic processing unit that reads out from the memory 10b and executes the program code of the software that realizes the functions performed by the robot simulator 10. The functions performed by the robot simulator 10 are the functions of the functional units of the acquisition unit 11, setting unit 12, determination unit 13, and control unit 14 shown in FIG. 1. Furthermore, the information processing method of the present invention can be executed by the functions performed by the robot simulator 10. The program code of the software that realizes the functions performed by the robot simulator 10 may also be read out from the storage 10c by the CPU 10a.

[0023] The CPU 10a reads out the program code and executes arithmetic processing in the work area of ​​the memory 10b, thereby configuring various processing function units in the memory 10b. For example, the memory 10b, which stores the program code of software that realizes the functions performed by the robot simulator 10, configures the function units of the acquisition unit 11, setting unit 12, determination unit 13, and control unit 14 shown in FIG.

[0024] The storage 10c is a large-capacity information storage medium such as a hard disk drive (HDD), a solid state drive (SSD), a memory card, etc. The storage 10c stores software that realizes the functions of the robot simulator 10 and data obtained by executing the program.

[0025] The input unit 10d is an input device such as a keyboard, a mouse, etc. The user operates the input unit 10d to input various pieces of information.

[0026] The output unit 10e outputs the processing results of the robot simulator 10 to the outside. The output unit 10e also directly controls the robot 20 based on the processing results of the robot simulator 10. In this case, the output unit 10e supplies the processing results of the robot simulator 10 to a drive mechanism such as a joint.

[0027] The display unit 10f performs processing to display the processing results of the robot simulator 10. Note that the robot simulator 10 controlling the robot 20 is just an example, and the robot simulator 10 may simply output the calculation results.

[0028] [Robot configuration example] 3 is a schematic perspective view showing an example of the configuration of a robot 20 that is the control target of the robot simulator 10. The robot 20 shown here is an articulated robot in which multiple links are rotatably connected at joints. The robot 20 is connected to a robot simulator 10 according to one embodiment of the present invention.

[0029] As shown in Fig. 3, the robot 20 has a configuration in which arm-shaped links 23, 24, 25, and 26 are connected to a base 21. The links 23, 24, 25, and 26 are connected in order via joints J1, J2, J3, J4, and J5. A hand 27, which is a distal tool, is attached to the distal link 26 via a joint J6. The hand 27 performs tasks such as grasping an object.

[0030] Each of the joints J1 to J6 is movable within a movable range indicated by angles θa to θf in Fig. 3. In other words, the robot 20 according to this example is a multi-joint robot equipped with multiple joints, such as six joints (six axes), and the tip of the distal link 26 or the tip of the hand 27 can be freely moved in three axial directions, the X-axis, the Y-axis, and the Z-axis. The rotation of the joints J1 to J6 and the operation of the hand 27 are performed under the control of a control unit 14 (see Fig. 1) of a robot simulator 10 connected to the robot 20.

[0031] As described above, the robot 20 is basically composed of a plurality of links 23, 24, 25, and 26 and joints J1, J2, J3, J4, and J5. When the joints J1, J2, J3, J4, and J5 move within the movable range of angles θa to θf, the links 23, 24, 25, and 26 connected to the joints J1, J2, J3, J4, and J5 move. Furthermore, by appropriately controlling the angles of the joints J1, J2, J3, J4, and J5, the entire robot 20 can be made to move in a meaningful way.

[0032] [Robot posture and joint state] Fig. 4 is a diagram showing the posture and joint states of the robot 20. Fig. 4 shows joint numbers 1 to 6 and the angles of each joint J1, J2, J3, J4, J5, and J6 of the six-joint (six-axis) robot 20. The control unit 14 can determine the posture of the robot 20 by changing the angles of each joint J1, J2, J3, J4, J5, and J6.

[0033] A hand 27 suited to the task is attached via a joint J6 to a link 26 at the tip of the robot 20. In order for the robot 20 to perform a task, it is first necessary to set the working point of the hand 27 (often the tip) at a desired position and angle. There is not just one, but multiple combinations of angles of the joints of the robot 20 that satisfy the working point in Figure 4.

[0034] Figure 5 is a diagram showing other joint states that can achieve the same position and angle of the hand 27 as in Figure 4. As shown in Figure 5, it can be seen that there are other sets of joint angles that can achieve the exact same hand position and angle as the position and angle of the hand 27 in Figure 4.

[0035] In order for the robot 20 to perform its work, it is not enough for the hand 27 to remain stationary at a desired position and angle; the hand 27 must be moved to another predetermined position and angle.

[0036] In this way, the position and angle are specified for each target of the hand 27, and this information on position and angle is collectively called a "node." The robot 20 can accomplish a task by following the specified nodes in a specified order.

[0037] [About the route creation algorithm] Since nodes are usually spaced apart to some extent, a path planning algorithm is used to determine how to move each joint J1, J2, J3, J4, J5, and J6 when moving from one node to another.

[0038] The path planning algorithm calculates the angles of each joint J1, J2, J3, J4, J5, and J6 so that the robot does not interfere with obstacles at several intermediate points between nodes when moving from one node to another. A set of the angles of multiple joints at these intermediate points is called a "waypoint."

[0039] Figure 6 shows how waypoints connect nodes. The process of creating waypoints using a path creation algorithm is the process of generating a path.

[0040] Path generation algorithm: A real robot is given waypoint information in order. The robot moves its joints to achieve the joint angles of the given waypoints in the correct order.

[0041] [Issues when applying the clearance amount set for a section to the posture] In a robot simulator that allows a different clearance amount to be set for each section of a path to be generated, it is necessary to determine the posture of the robot 20 that will create the section before generating the path and to confirm that the posture does not interfere with any obstacles. To confirm that the posture of the robot 20 does not interfere with any obstacles 30, the clearance amount set for each section is also applied to each posture to perform an interference check. In this case, there are conditions under which subsequent path generation will inevitably fail, depending on which section's clearance amount is applied to each posture. These conditions will be made clear using the explanation in FIG. 7.

[0042] Fig. 7 shows the state when generating a path for the robot 20 to move from posture a to posture b and from posture b to posture c. Fig. 7A shows the state when the clearance amount set for the section is applied to the goal posture, and Fig. 7B shows the state of interference check when generating a path with the clearance amount set for the section.

[0043] As an example, assume that the clearance amount in the ab section, where the robot 20 moves from posture a to posture b, is set to 10 mm, and the clearance amount in the bc section, where the robot 20 moves from posture b to posture c, is set to 20 mm. The path generation algorithm applies the clearance amount set for the section to each posture to check whether each of postures a, b, and c interferes with the obstacle 30 before generating a path. In this case, the path generation algorithm applies the clearance amount of the ab section to postures a and b included in the ab section, which is the first section, and sets the clearance amount for posture a to 10 mm and the clearance amount for posture b to 10 mm. The path generation algorithm applies the clearance amount of the bc section to posture c, which does not have a clearance amount set for posture b and c included in the next section, bc, and sets the clearance amount for posture c to 20 mm.

[0044] When an interference check is performed using the clearance amounts applied to orientations a, b, and c in this way, it is determined that there is no interference because no obstacle 30 exists within the clearance area for any orientation, as shown in Fig. 7A. However, if an attempt is made to generate a path in this state, as shown in Fig. 7B, the obstacle 30 exists within the clearance area of ​​section bc, and path generation will inevitably fail.

[0045] Therefore, the robot simulator 10 according to this embodiment is premised on the premise that a different clearance amount can be set for each section for generating a path. When setting the clearance amount for a posture spanning multiple sections, the robot simulator 10 according to this embodiment applies the larger clearance amount among the clearance amounts for the sections including the posture.

[0046] In the above example, the path generation algorithm applies the larger of the clearance amounts for the ab section and the bc section, 20 mm, as the clearance amount for the corresponding orientation b, and performs an interference check using this applied clearance amount. This makes it possible to eliminate the situation where interference is guaranteed to occur during path generation if there is no interference in the set orientation.

[0047] The processing in the robot simulator 10 according to this embodiment, specifically, specific examples 1 to 6 of the determination processing by the determination unit 13 and the control by the control unit 14 in FIG. 1 will be described below.

[0048] [Example 1] The first embodiment is a processing example in which the amount of clearance in the section for generating a path is applied to the orientation to perform an interference check for the orientation. n This is an example of processing when generating a path that passes through n postures in order.

[0049] 8 is a flowchart showing the flow of processing according to Example 1 in the robot simulator 10 according to this embodiment. The processing according to Example 1 is processing by the determination unit 13 in FIG.

[0050] The determination unit 13 first sets 1 as the posture number i (step S11), and then determines whether i = 1 (step S12). If i = 1 (YES in S12), the posture P1 is included only in the P1-P2 section, and therefore the clearance amount of the P1-P2 section is applied to the posture P1 (step S13).

[0051] Next, the determination unit 13 executes an interference check for the orientation P1 using the clearance amount applied to the orientation P1 (step S14). Then, the determination unit 13 determines whether the orientation number i is equal to or greater than n (i≧n) (step S15). If the orientation number i is equal to or greater than n (YES in S15), the determination unit 13 ends the series of processes, and if the orientation number i is not equal to or greater than n (NO in S15), the determination unit 13 increments the orientation number i (step S16) and returns to step S12.

[0052] If it is determined in step S12 that i is not 1 (NO in S12), the determination unit 13 determines whether i is n (step S17). If i is n (YES in S17), the determination unit 13 determines that the final posture P n HA P n-1 -P n Since it is included only in the interval, the posture P n P n-1 -P n The clearance amount of the section is applied (step S18). Then, the process proceeds to step S14 and the posture P n The amount of clearance applied to the attitude P n Perform an interference check.

[0053] If it is determined in step S17 that i=n is not true (NO in S17), the determination unit 13 i-1 -P i The clearance amount of the section is P i -P i+1Then, the determination unit 13 determines whether the clearance amount is larger than the clearance amount of the section (step S19). i-1 -P i The clearance amount of the section is P i -P i+1 If it is larger than the clearance amount of the section (YES in S19), P i-1 -P i The clearance amount of the section is set to P i (Step S20). After that, the determination unit 13 proceeds to Step S14 and applies the posture P i The amount of clearance applied to the attitude P i Perform an interference check.

[0054] In step S19, the determination unit 13 i-1 -P i The clearance amount of the section is P i -P i+1 If it is determined that the clearance amount is not larger than the clearance amount of the section (NO in S19), P i -P i+1 The clearance amount of the section is set to P i Then, the determination unit 13 proceeds to step S14 and applies the posture P i The amount of clearance applied to the attitude P i Perform an interference check.

[0055] In the above series of processes, the determination unit 13 determines the orientation of the image from the leading orientation P1 to the trailing orientation P n This is performed for all postures.

[0056] As mentioned above, even in the initial posture P1, the final posture P n Not a posture P i is P i-1 -P i Section and P i -P i+1The processing according to the first embodiment compares the clearance amounts set for the two sections and applies the larger clearance amount to the posture included in the two sections, and then performs an interference check for the posture included in the two sections. This makes it possible to eliminate the situation where interference always occurs in path generation if there is no interference in the set posture.

[0057] [Example 2] Example 2 is a processing example in which, when interference occurs in the posture, the angle of the joint is changed to an angle that eliminates the interference. Fig. 9 is a flowchart showing the flow of processing according to Example 2 in the robot simulator 10 according to this embodiment. The processing according to Example 2 is processing by the determination unit 13 and the control unit 14 in Fig. 1.

[0058] In the flowchart of Fig. 9, the processes of steps S31 to S33 and steps S39 to S43 are the same as the processes of steps S11 to S13 and steps S17 to S21 in the flowchart of Fig. 8. Here, overlapping explanations will be omitted.

[0059] After each of the processes in steps S33, S40, S42, and S43, the determination unit 13 sets the value of the built-in inverse motion calculation loop counter to 0 (step S34). Next, the determination unit 13 calculates the posture P i An interference check is performed (step S35).

[0060] Next, the determination unit 13 determines whether or not the result of the interference check indicates interference (step S36), and if there is no interference (NO in S36), determines whether or not the posture number i is n or greater (i≧n) (step S37). If the posture number i is n or greater (YES in S37), the series of processes ends, and if the posture number i is not n or greater (NO in S37), the posture number i is incremented (step S38) and the process returns to step S32.

[0061] In step S36, if the determination unit 13 determines that interference exists as a result of the interference check (YES in S36), the control unit 14 receives the determination result and calculates, by inverse kinematics calculation, angles of the joints of the robot 20 at which the interference is resolved (step S44).The control unit 14 then changes the angles of the joints of the robot 20 to the calculated angles (step S45).

[0062] Thereafter, the determination unit 13 increments the value of the inverse motion calculation loop counter (step S46), and then determines whether the value of the inverse motion calculation loop counter is equal to or greater than a predetermined value (step S47). If the value is equal to or greater than the predetermined value (YES in S47), the determination unit 13 ends the series of processes, and if the value is not equal to or greater than the predetermined value (NO in S47), the process returns to step S35.

[0063] As described above, in the process according to the second embodiment, if it is determined that interference occurs in the posture interference check, the angles of the joints of the robot 20 are calculated by inverse kinematics calculation until the interference is resolved. As a result, when interference occurs in the posture, the angles of the joints can be changed to angles that resolve the interference.

[0064] If the interference is not resolved even after repeating the above-described series of processes a predetermined number of times (the predetermined value in step S47), the process is terminated. If an obstacle 30 is present at the target position of the robot 20, or if the base of the robot 20 is interfering with the obstacle 30, the interference cannot be resolved no matter how much the angles of the joints of the robot 20 are changed. Therefore, the determination unit 13 terminates the process after repeating the process a predetermined number of times to avoid an infinite loop. The determination unit 13 executes this series of processes the number of times as many times as the number of postures. Here, the target position of the robot 20 is the position of the tip of the robot 20.

[0065] [Example 3] Example 3 is a processing example in which, when interference occurs in the posture, the target position of the robot 20 is changed to a position that eliminates the interference. Fig. 10 is a flowchart showing the flow of processing according to Example 3 in the robot simulator 10 according to this embodiment. The processing according to Example 3 is processing by the determination unit 13 and the control unit 14 in Fig. 1.

[0066] In the flowchart of Fig. 10, the processes of steps S51 to S53 and steps S59 to S63 are the same as the processes of steps S11 to S13 and steps S17 to S21 in the flowchart of Fig. 8. Here, overlapping explanations will be omitted.

[0067] After each of the processes in steps S53, S60, S62, and S63, the determination unit 13 sets the value of the built-in target position change counter to 0 (step S54). Next, the determination unit 13 determines the posture P i An interference check is performed (step S55).

[0068] Next, the determination unit 13 determines whether or not the result of the interference check indicates interference (step S56), and if there is no interference (NO in S56), determines whether or not the posture number i is n or greater (i≧n) (step S57). If the posture number i is n or greater (YES in S57), the series of processes ends, and if the posture number i is not n or greater (NO in S57), the posture number i is incremented (step S58) and the process returns to step S52.

[0069] In step S56, if the determination unit 13 determines that interference is present as a result of the interference check (YES in S56), the control unit 14 receives the determination result and changes the target position of the robot 20 to a different position (step S64).

[0070] Next, based on the changed target position, the control unit 14 calculates the angle of the joint of the robot 20 by inverse kinematics calculation to eliminate interference (step S65), and then changes the angle of the joint of the robot 20 to the calculated angle (step S66).

[0071] Thereafter, the determination unit 13 increments the value of the target position change counter (step S67), and then determines whether the value of the target position change counter is equal to or greater than a predetermined value (step S68). If the value is equal to or greater than the predetermined value (YES in S68), the determination unit 13 ends the series of processes, and if the value is not equal to or greater than the predetermined value (NO in S68), the process returns to step S55.

[0072] As described above, in the process according to the third embodiment, if it is determined that interference occurs in the posture interference check, the target position of the robot 20 is changed to a different position, i.e., a position that eliminates the interference. Then, in the process according to the third embodiment, inverse kinematic calculation is performed based on the changed target position to calculate the angles of the joints of the robot 20, and an interference check is performed in the posture with the calculated joint angles. As a result, if interference occurs in the posture, the target position of the robot 20 can be changed to a position that eliminates the interference.

[0073] The above-described process is repeated until the interference is resolved, and if the interference is not resolved even after a predetermined number of repetitions (a predetermined value in step S68), the process is terminated. If the base of the robot 20 and the obstacle 30 are interfering with each other, the interference cannot be resolved no matter how much the target position is changed. Therefore, in the process according to the third embodiment, the process is terminated after a predetermined number of repetitions to avoid an infinite loop. The determination unit 13 and the control unit 14 perform this series of processes as many times as there are postures.

[0074] [Example 4] Example 4 is a processing example in which, when interference occurs in the posture, the position of the robot 20 is changed to a position that eliminates the interference. Fig. 11 is a flowchart showing the flow of processing according to Example 4 in the robot simulator 10 according to this embodiment. The processing according to Example 4 is processing by the determination unit 13 and the control unit 14 in Fig. 1.

[0075] In the flowchart of Fig. 11, the processes of steps S71 to S73 and steps S79 to S83 are the same as the processes of steps S11 to S13 and steps S17 to S21 in the flowchart of Fig. 8. Here, overlapping explanations will be omitted.

[0076] After each of the processes in steps S73, S80, S82, and S83, the determination unit 13 sets the value of the built-in robot position change counter to 0 (step S74). Next, the determination unit 13 determines the posture P i An interference check is performed (step S75).

[0077] Next, the determination unit 13 determines whether or not the result of the interference check indicates interference (step S76), and if there is no interference (NO in S76), determines whether or not the posture number i is n or greater (i≧n) (step S77). If the posture number i is n or greater (YES in S77), the series of processes ends, and if the posture number i is not n or greater (NO in S77), the posture number i is incremented (step S78) and the process returns to step S72.

[0078] In step S76, if the determination unit 13 determines that interference is present as a result of the interference check (YES in S76), the control unit 14 receives the determination result and changes the robot position to a different position (step S84).

[0079] Next, based on the changed position of the robot 20, the control unit 14 calculates the angles of the joints of the robot 20 by inverse kinematics calculation to eliminate interference (step S85), and then changes the angles of the joints of the robot 20 to the calculated angles (step S86).

[0080] Thereafter, the determination unit 13 increments the value of the robot position change counter (step S87), and then determines whether the value of the robot position change counter is equal to or greater than a predetermined value (step S88). If the value is equal to or greater than the predetermined value (YES in S88), the determination unit 13 ends the series of processes, and if the value is not equal to or greater than the predetermined value (NO in S88), the determination unit 13 returns to step S75.

[0081] As described above, in the process according to the fourth embodiment, if it is determined that there is interference in the posture interference check, the robot position is changed to a different position. Here, the robot position is the position where the robot 20 is installed. The control unit 14 performs inverse motion calculation based on the changed robot position and the already set target position, and calculates the angles of the joints of the robot 20. Then, the determination unit 13 executes an interference check with the posture of the calculated joint angles. As a result, if interference occurs in the posture, the position of the robot 20 can be changed to a position that eliminates the interference.

[0082] The above-mentioned process is repeated until the interference is resolved, and if the interference is not resolved even after a predetermined number of repetitions (a predetermined value in step S88), the process is terminated. If an obstacle 30 is present at the target position, the interference cannot be resolved no matter how much the robot position is changed. Therefore, in the process according to the fourth embodiment, the process is terminated after a predetermined number of repetitions to avoid an infinite loop. The determination unit 13 and the control unit 14 perform this series of processes as many times as there are postures.

[0083] [Example 5] Example 5 is a processing example in which, when interference occurs in the posture, the position of the interfering obstacle 30 is changed to a position that eliminates the interference. Fig. 12 is a flowchart showing the flow of processing according to Example 5 in the robot simulator 10 according to this embodiment. The processing according to Example 5 is processing by the determination unit 13 and the control unit 14 in Fig. 1.

[0084] In the flowchart of Fig. 12, the processes of steps S91 to S93 and steps S98 to S102 are the same as the processes of steps S11 to S13 and steps S17 to S21 in the flowchart of Fig. 8. Here, overlapping explanations will be omitted.

[0085] After each of the processes in steps S93, S99, S101, and S102, the determination unit 13 determines the posture P i An interference check is performed (step S94).

[0086] Next, the determination unit 13 determines whether or not the result of the interference check indicates interference (step S95), and if there is no interference (NO in S95), determines whether or not the posture number i is n or greater (i≧n) (step S96). If the posture number i is n or greater (YES in S96), the series of processes ends, and if the posture number i is not n or greater (NO in S96), the posture number i is incremented (step S97) and the process returns to step S92.

[0087] In step S95, if the determination unit 13 determines that interference exists as a result of the interference check (YES in S95), the control unit 14 receives the determination result and changes the position of the interfering obstacle 30 to a different position (step S103). Specifically, the control unit 14 changes the position of the interfering obstacle 30 in a direction away from the robot 20. After changing the position of the interfering obstacle 30, the determination unit 13 returns to step S94 and repeats the interference check.

[0088] As described above, in the process according to the fifth embodiment, if it is determined that interference occurs in the posture interference check, the position of the interfering obstacle 30 is changed to a different position and an interference check is performed. This process is repeated until the interference is resolved. As a result, when interference occurs in the posture, the position of the interfering obstacle 30 can be changed to a position that will resolve the interference.

[0089] By repeating the above-described process, a position where no interference occurs will always be found by moving the obstacle 30 away from the robot 20, so the process may or may not be terminated after a predetermined number of repetitions.

[0090] [Example 6] Example 6 is a processing example in which, when interference occurs in the posture, the applied clearance amount is reduced to eliminate the interference. Fig. 13 is a flowchart showing the flow of processing according to Example 6 in the robot simulator 10 according to this embodiment. The processing according to Example 6 is processing by the determination unit 13 and the control unit 14 in Fig. 1.

[0091] In the flowchart of Fig. 13, the processes of steps S111 to S113 and steps S118 to S122 are the same as the processes of steps S11 to S13 and steps S17 to S21 in the flowchart of Fig. 8. Here, overlapping explanations will be omitted.

[0092] After each of the processes in steps S113, S119, S121, and S122, the determination unit 13 determines the posture P i An interference check is performed (step S114).

[0093] Next, the determination unit 13 determines whether or not the result of the interference check indicates interference (step S115), and if there is no interference (NO in S115), determines whether or not the posture number i is n or greater (i≧n) (step S116). If the posture number i is n or greater (YES in S116), the series of processes ends, and if the posture number i is not n or greater (NO in S116), the posture number i is incremented (step S117) and the process returns to step S112.

[0094] In step S115, if the determination unit 13 determines that interference is present as a result of the interference check (YES in S115), the control unit 14 receives the determination result and reduces the clearance amount applied to the section including the interfering posture (step S123). Specifically, the control unit 14 causes the setting unit 12 to execute a process of subtracting 0.1 mm from the applied clearance amount, for example.

[0095] Next, the determination unit 13 determines whether the clearance amount applied in the process of step S123 is 0 mm or less (step S124). If the clearance amount applied is 0 mm or less (YES in S124), the process ends, and if it is not 0 mm or less (NO in S124), the process returns to step S114 and repeats the interference check.

[0096] As described above, in the process according to the sixth embodiment, if it is determined that interference occurs in the orientation interference check, the applied clearance amount is reduced by, for example, 0.1 mm, and the interference check is repeatedly executed. This process is repeated until the interference is eliminated or the clearance amount value becomes 0 mm or less. As a result, when interference occurs in the orientation, the applied clearance amount can be changed to a value that will eliminate the interference.

[0097] In the above-described process, if the clearance amount value becomes 0 mm or less, the determination unit 13 terminates the process because the interference cannot be resolved. The amount by which the clearance amount value is reduced does not have to be 0.1 mm, and may be greater or smaller than that.

[0098] <Program> The program of the present invention is a program for causing a computer to execute the processing of each functional unit of the robot simulator 10 shown in Fig. 1. More specifically, the program of the present invention is a program for causing a computer constituting the robot simulator 10 to execute the processing of each function of the acquisition unit 11, setting unit 12, determination unit 13, and control unit 14 shown in Fig. 1. This program is stored on recording media such as various types of memories, IC cards, SD cards, and optical discs.

[0099] <<Variations>> The present invention is not limited to the above-described embodiments, but includes various modifications. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to those including all of the described configurations. Furthermore, it is possible to replace part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. [Explanation of symbols]

[0100] 10...robot simulator, 10a...CPU, 10b...memory, 10c...storage, 10d...input unit, 10e...output unit, 10f...display unit, 10g...bus, 11...acquisition unit, 12...setting unit, 13...determination unit, 14...control unit, 20...robot, 21...base, 23, 24, 25, 26...link, 27...hand, 30...obstacle, J1, J2, J3, J4, J5, J6...joint

Claims

1. an acquisition unit that acquires information about the robot and obstacles; a setting unit that sets a first clearance amount in a section where the robot changes from a first posture to a second posture and a second clearance amount in a section where the robot changes from the second posture to a third posture; a determination unit that, when determining whether or not the robot will interfere with the obstacle in the second posture based on the information acquired by the acquisition unit and the clearance amount set by the setting unit, makes a determination based on the larger of the first clearance amount and the second clearance amount; An information processing device comprising:

2. the information about the robot is posture information and position information about the robot, The information about the obstacle is position information and shape information about the obstacle. The information processing device according to claim 1 .

3. The robot further includes a control unit that controls the position of the robot, the position of the obstacle, or the clearance amount set by the setting unit based on the determination result of the determination unit. The information processing device according to claim 1 .

4. When the determination unit determines that the robot will interfere with the obstacle, the control unit changes the posture of the robot to a posture that will not interfere with the obstacle. The information processing device according to claim 3 .

5. When the determination unit determines that the robot will interfere with the obstacle, the control unit changes the target position of the interfering posture to a position where no interference will occur. The information processing device according to claim 3 .

6. When the determination unit determines that the robot will interfere with the obstacle, the control unit changes the position of the robot to a position where interference will not occur. The information processing device according to claim 3 .

7. When the determination unit determines that the robot will interfere with the obstacle, the control unit changes the position of the obstacle to a position where no interference will occur. The information processing device according to claim 3 .

8. When the determination unit determines that the robot and the obstacle will interfere with each other, the control unit changes the value of the clearance amount in the section including the interfering posture to a value that will eliminate the interference. The information processing device according to claim 3 .

9. an acquisition step of acquiring information about the robot and obstacles; a setting step of setting a first clearance amount in a section where the robot changes from a first posture to a second posture and a second clearance amount in a section where the robot changes from the second posture to a third posture; a determining step of determining whether or not the robot will interfere with the obstacle in the second posture based on the information acquired in the acquiring step and the clearance amount set in the setting step, based on the larger of the first clearance amount and the second clearance amount; An information processing method for performing each of the above processes.

10. an acquisition step of acquiring information about the robot and obstacles; a setting step of setting a first clearance amount in a section where the robot changes from a first posture to a second posture and a second clearance amount in a section where the robot changes from the second posture to a third posture; a determining step of determining whether or not the robot will interfere with the obstacle in the second posture based on the information acquired in the acquiring step and the clearance amount set in the setting step, based on the larger of the first clearance amount and the second clearance amount; A program that causes a computer to execute the processing of each step.

Citation Information

Patent Citations

  • Route generation device, route generation method, and route generation program

    JP7147571B2