Movement planning device, information updating method, and program
The motion planning device addresses the high computational load in determining robot postures by simulating operations and determining optimal postures to avoid contact, thereby enhancing efficiency and reducing processing time.
Patent Information
- Application Number
- PCT/JP2024/041721
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-07
- Filing Date
- 2024-11-26
- Publication Date
- 2025-06-12
AI Technical Summary
Existing motion planning systems for robots in manufacturing environments face high computational loads when determining the posture of a robot's working unit to avoid interference with storage units, requiring checks across all possible position postures.
A motion planning device that generates operation planning information for a robot's working unit based on its work content, simulates the operation to identify contact points and timing, and determines the optimal posture of the working unit to avoid contact by considering its reach range and contact position.
This approach reduces the computational load by focusing on postures where contact is avoided, thereby enhancing efficiency and reducing processing time in determining safe and efficient robot operations.
Smart Images

Figure JP2024041721_12062025_PF_FP_ABST
Abstract
Description
Motion planning device, information update method and program
[0001] The present disclosure relates to a motion planning device, a communication system, an information updating method, and a program.
[0002] Robots are being introduced into manufacturing plants and other facilities to improve productivity. When introducing robots, it is necessary to set up the robots' efficient and safe operations in advance when the robots perform predetermined tasks.
[0003] Patent Literature 1 discloses a mutual interference verification method for verifying mutual interference between robots when multiple robots are made to perform tasks. Patent Literature 2 discloses a configuration of a robot device that determines whether or not there is interference between a gripping means of a robot and a storage unit. Specifically, Patent Literature 2 discloses checking whether or not interference occurs between the gripping means and a storage unit for all possible positions and orientations of the gripping means.
[0004] JP 2003-103491 A JP 2016-020011 A
[0005] However, in the robot device disclosed in Patent Document 2, in order to avoid interference between the gripping means and the storage unit, a check is made to see whether interference occurs between the gripping means and the storage unit for all possible positions and orientations of the gripping means, which results in a problem of a high load of calculation processing executed to determine a position and orientation of the gripping means that will not cause interference.
[0006] An object of the present disclosure is to provide a motion planning device, a communication system, an information updating method, and a program that can reduce the load of calculation processing for determining a posture that will not cause contact.
[0007] A motion planning device according to a first aspect of the present disclosure includes: a motion planning unit that generates motion planning information for a working unit that constitutes part of a robot based on work content to be performed by the working unit; an acquisition unit that acquires simulation results generated by simulating the operation of the working unit based on the motion planning information, the simulation results including position information where contact will occur between the working unit and an object and timing information about when the contact will occur; and a posture determination unit that determines the posture of the working unit based on the reach range of the working unit, which is determined based on the motion planning information and the timing information of the working unit, and the position where the contact will occur; and the motion planning unit updates the motion planning information based on the determined posture.
[0008] A communication system according to a second aspect of the present disclosure includes a motion planning device configured to: generate motion planning information for a working unit constituting part of a robot based on work content to be performed by the working unit; acquire simulation results generated by simulating the motion of the working unit based on the motion planning information, the simulation results including position information where contact will occur between the working unit and an object and timing information about the timing at which the contact will occur; determine a posture of the working unit based on the reachable range of the working unit determined based on the motion planning information and the timing information of the working unit and the position at which the contact will occur; and update the motion planning information based on the determined posture; and a simulation device configured to simulate the motion of the working unit based on the motion planning information and transmit the simulation results to the motion planning device.
[0009] An information updating method according to a third aspect of the present disclosure generates motion planning information for a working unit that constitutes part of a robot based on the work content to be performed by the working unit, acquires simulation results generated by simulating the operation of the working unit based on the motion planning information, including position information where contact will occur between the working unit and an object and timing information about the timing at which the contact will occur, determines the posture of the working unit based on the reach of the working unit, which is determined based on the motion planning information and the timing information of the working unit, and the position at which the contact will occur, and updates the motion planning information based on the determined posture.
[0010] A program according to a fourth aspect of the present disclosure generates motion planning information for a working unit that constitutes part of a robot based on the work content to be performed by the working unit, acquires simulation results generated by simulating the operation of the working unit based on the motion planning information, including position information where contact will occur between the working unit and an object and timing information about the timing at which the contact will occur, determines the posture of the working unit based on the reach of the working unit, which is determined based on the motion planning information and the timing information of the working unit, and the position at which the contact will occur, and updates the motion planning information based on the determined posture.
[0011] The present disclosure makes it possible to provide a motion planning device, a communication system, an information updating method, and a program that can reduce the load of calculation processing for determining a contact-free posture.
[0012] FIG. 1 is a diagram of a motion planning device according to the present disclosure. FIG. 2 is a diagram showing a flow of information update processing related to motion planning information executed in a motion planning device according to the present disclosure. FIG. 3 is a diagram of a motion planning device according to the present disclosure. FIG. 4 is a diagram showing target task information according to the present disclosure. FIG. 5 is a diagram showing target task information according to the present disclosure. FIG. 6 is a diagram showing motion planning information according to the present disclosure. FIG. 7 is a diagram showing a simulation result according to the present disclosure. FIG. 8 is a diagram showing a hand posture according to the present disclosure. FIG. 9 is a diagram showing a hand posture according to the present disclosure. FIG. 10 is a diagram showing motion planning information according to the present disclosure. FIG. 11 is a diagram showing a configuration of a simulation device according to the present disclosure. FIG. 12 is a diagram showing a flow of update processing of motion planning information executed in a motion planning device according to the present disclosure. FIG. 13 is a diagram showing a flow of update processing of motion planning information executed in a motion planning device according to the present disclosure. FIG. 14 is a diagram explaining constraints related to the movable range of a hand of a robot according to the present disclosure. FIG. 15 is a diagram showing a configuration of a motion planning device etc. according to the present disclosure.
[0013] First Embodiment An example of the configuration of a motion planning device 10 will be described below with reference to Fig. 1. The motion planning device 10 may be a computer device that operates when a processor executes a program stored in a memory. The motion planning device 10 may also be, for example, a server device.
[0014] The motion planning device 10 has a motion planning unit 11, an acquisition unit 12, and a posture determination unit 13. The motion planning unit 11, the acquisition unit 12, and the posture determination unit 13 may be software or modules whose processes are performed by a processor executing a program stored in a memory. Alternatively, the motion planning unit 11, the acquisition unit 12, and the posture determination unit 13 may be hardware such as a circuit or a chip.
[0015] The motion planning unit 11 generates motion plan information for a working unit that constitutes a part of the robot based on the content of the work to be performed by the working unit. The motion planning unit 11 may be used as a means for generating motion plan information. The working unit may be, for example, a removable part or tool attached to the tip of the robot, or a part or tool molded integrally with the robot at the tip of the robot or another location. The working unit may be an object of different shapes depending on the content of the work, such as grasping an object, lifting an object, blowing air onto an object, or processing an object. The working unit may have a shape appropriate for the content of the work, for example, a shape similar to a human hand.
[0016] The motion plan information may include information indicating a time schedule for the working unit to perform the work, a location where the work will start, a location where the work will end, a path along which the working unit will move, etc. The motion planning unit 11 may generate the motion plan information using, for example, a learning model that inputs the work content and outputs the motion plan information. The learning model may be a trained model that uses the work content and the motion plan information as training data. The learning model may be a model generated using AI (Artificial Intelligence) technology. Alternatively, the motion planning unit 11 may generate the motion plan information based on predetermined criteria or algorithms, etc.
[0017] The robot may be a computer device that operates by a processor executing a program stored in a memory. For example, the robot operates autonomously by a processor executing a program that executes the contents of the motion plan information.
[0018] The robot may be, for example, an arm-type robot. An arm-type robot is a robot fixed to a predetermined position and may be composed of a support part called an arm and a working part called a hand. One robot may have multiple arms and multiple hands.
[0019] The support unit includes multiple joints and realizes various movements in order to execute the motion plan information. The working unit can assume various postures in order to perform a predetermined task. The posture may be information indicating the direction in which a specific surface of the working unit faces relative to an object or obstacle to be worked on, the position of the working unit, etc. The direction in which a specific surface of the working unit faces may be expressed, for example, using an angle relative to a reference direction. The support unit may realize various movements in order to realize the posture of the working unit.
[0020] Alternatively, the robot may not be fixed to a predetermined position but may move to a predetermined position, or may be installed on a moving means such as a vehicle.
[0021] The acquisition unit 12 acquires a simulation result generated by simulating the operation of the working unit based on the operation plan information, the simulation result including position information where contact between the working unit and an object occurs and timing information where the contact occurs. The acquisition unit 12 may be used as a means for acquiring the simulation result.
[0022] The simulation of the operation of the working unit may be executed in a simulation device, which is a computer device different from the motion planning device 10, or may be executed in the motion planning device 10. When the simulation is executed in the simulation device, the acquisition unit 12 may receive or acquire the simulation results from the simulation device via a network.
[0023] The object that may cause contact may be an obstacle. The obstacle may be, for example, a stationary object such as a shelf, pillar, wall, or floor located in a factory. Alternatively, the obstacle may be a moving object such as another robot or a vehicle traveling in a factory.
[0024] Contact between the working unit and the object may be an event that prevents the working unit from performing an operation in accordance with the operation plan information. Specifically, contact between the working unit and the object may include a collision between the working unit and the object. Alternatively, contact between the working unit and the object may be the presence of an object on the movement path of the working unit.
[0025] The simulation is performed taking into account the presence of an object. Therefore, the simulation device or the motion planning device 10 simulates the motion of the working unit, and generates a simulation result including position information where contact between the working unit and the object occurs and timing information about the timing of the contact. The position information may be position information determined using a predetermined coordinate system. The position information may be two-dimensional information or three-dimensional information. The timing information may be time information or information indicating the elapsed time from when the motion of the working unit according to the motion planning information is started until when the contact occurs.
[0026] The posture determination unit 13 determines the posture of the working unit based on the reachable range of the working unit, which is determined based on the motion plan information and timing information of the working unit, and the position where contact occurs. The reachable range is the range or area that the working unit can reach. The reachable range may be rephrased as, for example, the range or area where the working unit can move. The posture determination unit 13 may determine the posture of the working unit, for example, using a condition that the reachable range of the working unit and the position where contact occurs do not overlap. In other words, the posture determination unit 13 may determine the posture of the working unit using a condition that a position where contact occurs exists outside the reachable range of the working unit. The working unit is an object having a shape with a specific size. The specific size may be rephrased as a specific area or volume. Therefore, the reachable range of the outer periphery of the working unit, which indicates the shape of the working unit, varies depending on the shape of the working unit. The reachable range may be rephrased as a movement range, a presence range, etc.
[0027] Here, the motion plan information includes the movement path of the working unit. The movement path indicates the position of the working unit at a certain time. Therefore, the location of the working unit at the time when contact occurs is determined or estimated based on the motion plan information. For example, the location of the working unit at the time when contact occurs may be estimated to be near a predetermined position before and after the time when contact occurs. The vicinity of the predetermined position before and after the time when contact occurs may be, for example, the midpoint of the predetermined positions before and after the time when contact occurs. Alternatively, the vicinity of the predetermined position before and after the time when contact occurs may be a position estimated based on the movement speed of the working unit and the elapsed time from the time before the time when contact occurred to the time when contact occurred.
[0028] The location of the working unit may be a position within the space that constitutes the working unit. For example, the location of the working unit may be the center of the space that constitutes the working unit. Or, the location of the working unit may be an edge of the space that constitutes the working unit. For example, if the working unit is simply considered to have a rectangular parallelepiped shape, the location of the working unit may be the center of the rectangular parallelepiped or any position on the surface of the rectangular parallelepiped. For example, the reachable range of the outer periphery of the working unit is specified by the central position of the working unit and the shape of the working unit at the time when contact occurs. In other words, the posture determination unit 13 determines or estimates the central position of the working unit using the motion plan information of the working unit and the timing information of the contact occurrence, and further determines or estimates the reachable range of the outer periphery of the working unit using the shape of the working unit that was recognized in advance. Instead of the central position of the working unit, any position within the working unit, such as the edge of the working unit, may be used as the reachable range of the outer periphery of the working unit.
[0029] The posture of the working unit may be, for example, a posture of the working unit that ensures that the reachable range of the working unit and the position where contact occurred do not overlap. The reachable range of the working unit changes depending on the posture of the working unit. Therefore, the posture determination unit 13 may select a posture of the working unit from among a plurality of postures that the working unit can assume, such that the outer periphery of the reachable range of the working unit that is closest to the position where contact occurred does not overlap the position where contact occurred.
[0030] The motion planning unit 11 updates the created motion plan information based on the posture determined by the posture determination unit 13. When the motion planning unit 11 generates the motion plan information before updating, any posture may be used as the posture of the working unit. In other words, when the motion planning unit 11 first generates the motion plan information, it may use a posture determined as an initial setting.
[0031] Here, the process of determining the posture of the working unit in the posture determination unit 13 may be executed in the process of updating the motion plan information by the motion planning unit 11. For example, assume that the learning model used when the motion planning unit 11 generates a motion plan performs learning using information included in the simulation results and information related to the shape of the working unit. In this case, the learning model may input the simulation results and information related to the shape of the working unit, and output motion plan information that reflects the posture of the working unit that ensures that the reach range of the working unit and the position where contact occurs do not overlap.
[0032] Next, the flow of information update processing for the motion planning information executed by the motion planning device 10 will be described with reference to FIG. 2 . First, the motion planning unit 11 generates motion planning information for the working unit based on the content of the work to be performed by the working unit constituting part of the robot (S11). Next, the acquisition unit 12 acquires simulation results, generated by simulating the motion of the working unit based on the motion planning information, including position information for when contact will occur between the working unit and an object and timing information for the contact (S12). Next, the posture determination unit 13 determines the posture of the working unit based on the reachable range of the working unit determined based on the motion planning information and timing information for the working unit and the position where the contact will occur (S13). Next, the motion planning unit 11 updates the motion planning information based on the determined posture (S14).
[0033] As described above, the motion planning device 10 uses the reachable range of the working unit and the position where contact will occur when determining the posture of the working unit that will prevent contact between the working unit and an object. This allows the posture determination unit 13 to determine, from among multiple postures that the working unit can take, a posture in which the reachable range of the working unit and the position where contact will occur do not overlap. This makes it possible to reduce the amount of calculation compared to processing that calculates whether or not contact will occur with an object for all postures that the working unit can take.
[0034] Second Embodiment Next, a configuration example of the motion planning device 20 will be described with reference to Fig. 3. The motion planning device 20 may be a computer device that operates when a processor executes a program stored in a memory.
[0035] The motion planning device 20 has a motion planning unit 11, a posture determination unit 13, a data storage unit 21, a communication unit 22, and a constraint adjustment unit 23. The motion planning unit 11 and the posture determination unit 13 have functions similar to those of the motion planning unit 11 and the posture determination unit 13 in the motion planning device 10. The communication unit 22 corresponds to the acquisition unit 12 of the motion planning device 10. In the explanation of the motion planning device 20, functions or operations different from those of the motion planning device 10 will be mainly explained, and detailed explanations of functions or operations similar to those of the motion planning device 10 will be omitted.
[0036] The motion planning unit 11, the posture determination unit 13, the communication unit 22, and the constraint adjustment unit 23 may be software or modules whose processes are performed by a processor executing a program stored in a memory. Alternatively, the motion planning unit 11, the posture determination unit 13, the communication unit 22, and the constraint adjustment unit 23 may be hardware such as a circuit or a chip. The data storage unit 21 may be an internal memory or the like mounted on the motion planning device 20. Alternatively, the data storage unit 21 may be an external memory or the like attached to the motion planning device 20.
[0037] The data storage unit 21 stores target task information and environmental information. "Storing" may be rephrased as "recording," "memorizing," "storing," "having," or the like.
[0038] The target task information will be described with reference to Fig. 4. The target task information may indicate, for example, the content of a task to be performed by an arm-type robot using a hand attached to the tip of the robot.
[0039] The target work information consists of a task name, task type, start position, end position, and execution time. Figure 4 shows details of a blowing operation that mainly removes dust and other debris adhering to products, etc. The blowing operation may be an air blowing operation. The task name is identification information that identifies the work to be performed by the hand. In Figure 4, blow1 to blow5 are defined as identification information.
[0040] The task type indicates the work content. The work content may be simply referred to as a task. In FIG. 4, spot blowing and moving blowing are shown as task types. Spot blowing is a work in which the robot's hand does not move, but blows air onto a predetermined location on a product, etc. Moving blowing is a work in which the robot's hand moves, and blows air onto multiple locations on a product, etc.
[0041] The start position and end position indicate the position of the hand when it starts the work indicated by the task type and the position when the work is completed. P10, P20, etc. written in the start position and end position may be, for example, information identifying a sub-area when the robot's work area is divided into multiple sub-areas. The robot's work area is the area where the robot performs work. The robot's work area may be, for example, the movement area, reach area, or movable area of the robot's hand. The hand movement area is the area where the hand can move. The hand reach area and movable area are the area where the hand can reach and move. The area may also be referred to as a range. The work area and sub-areas may be two-dimensional areas or three-dimensional spaces. Alternatively, the start position and end position may use coordinates in a predetermined coordinate system.
[0042] The execution time indicates the time from the start to the end of the work indicated by each task name. In Fig. 4, it is shown that each work requires one second to complete.
[0043] Furthermore, the data storage unit 21 may store the start and end positions of the hands of each robot as target task information, as shown in Fig. 5. Fig. 5 shows that the hand of robot A starts the task shown in Fig. 4 from position P00, and returns to position P00 when the task shown in Fig. 4 is completed. Similarly, the hand of robot B starts the task from position P01, and returns to position P01 when the task is completed.
[0044] The environmental information stored in the data storage unit 21 may include, for example, information regarding the installation position of the robot, the reachable range of the hand, the general shape of the hand, and the position of obstacles.
[0045] The installation position of the robot may be indicated using a sub-region or may be indicated using coordinates of a predetermined coordinate system. The reachable range of the hand may be indicated using a sub-region or may be indicated using coordinates of the coordinate system used to indicate the installation position of the robot. Alternatively, if the hand is attached to the end of an arm, the reachable range of the hand may be indicated using a coordinate system based on the end of the arm. The general shape of the hand may be simply indicated using, for example, a rectangular parallelepiped, a sphere, or the like as a shape indicating the reachable range of the hand. If multiple robots are present, the environment information may include the installation positions of the multiple robots, the reachable range of each hand, the general shape of each hand, etc.
[0046] The position of an obstacle may be indicated using a sub-region or may be indicated using coordinates in a predetermined coordinate system. Alternatively, an obstacle may be simply indicated using a rectangular parallelepiped, a sphere, etc. When multiple obstacles exist, the environmental information may include information indicating the positions of the multiple obstacles and the general shapes of each of the obstacles.
[0047] Returning to FIG. 3 , the motion planning unit 11 generates motion planning information for a hand constituting a part of a robot using the target task information and environmental information stored in the data storage unit 21. In an environment where multiple robots operate, the motion planning unit 11 generates motion planning information so that the robot hands do not come into contact with each other. Furthermore, in an environment where obstacles are present, the motion planning information is generated so that the robot hands do not come into contact with the obstacles. The motion planning unit 11 may generate motion planning information using a learning model that receives the target task and environmental information as input and outputs motion planning information. The learning model outputs motion planning information so as to satisfy basic conditions, such as preventing the robot hands from coming into contact with each other, preventing the hands from coming into contact with obstacles, and ensuring that the hands operate within the robot's range of motion. The learning model may output a motion planning method so as to satisfy at least one basic condition out of multiple basic conditions.
[0048] Alternatively, the motion planning unit 11 may generate motion plan information based on a predetermined standard or algorithm, without using a learning model.
[0049] Fig. 6 shows an example of the motion plan information generated by the motion planning unit 11. The motion plan in Fig. 6 is assumed to be created so as to satisfy, for example, that the hand of robot A and the hand of robot B do not come into contact with each other. For example, the motion planning unit 11 may generate the motion plan information so as to comply with the criterion that the hand of robot A and the hand of robot B do not exist in the same area at the same time.
[0050] FIG. 6 shows that the tasks performed by robots A and B and the positions at which the tasks are performed are associated with each time. Furthermore, FIG. 6 also shows the hand posture at each time. The time at which the robot starts the task is set to 0.0, and the time shown is the elapsed time from the start of the task. The time in FIG. 6 increases in units of one second. A time with a blank task name indicates a hand movement that does not involve blowing. For example, the posture is set to an initial value, which may be a posture value or identification information defined as fA0 and fB0. The posture identification information may have multiple values, such as fA1, fA2, fB1, and fB2.
[0051] For example, the hand of robot A starts its operation from position P00 and moves to position P20 after one second. Furthermore, two seconds after starting its operation, the hand of robot A performs a spot blow, which is the task specified in blow2. Three seconds after starting its operation, the hand of robot A moves to position P10. After that, the hand of robot A performs the tasks specified in blow1 and blow5, and then returns to position P00 seven seconds after starting its operation, completing its operation. As shown in Figure 6, the hand of robot B also performs a moving blow and a spot blow, which are the tasks specified in blow3 and blow4, and then returns to position P01, completing its operation.
[0052] 3 , the communication unit 22 transmits the operation plan information to the simulation device 30. The communication unit 22 may transmit the operation plan information to the simulation device 30 via a network. The network may be, for example, an IP (Internet Protocol) network, the so-called Internet, or an intranet.
[0053] After transmitting the operation plan information, the communication unit 22 receives the simulation result from the simulation device 30. Here, the simulation result will be described with reference to FIG. 7. The simulation result received by the communication unit 22 indicates that contact occurred as a result of simulating the operation plan information in the simulation device 30. The simulation result in FIG. 7 includes the time when the contact occurred, the contacted object, and the contact position. The contact position may be referred to as a collision position or a contact position.
[0054] FIG. 7 shows that 2.5 seconds after the operations of Robot A and Robot B started, the arm of Robot A and the hand of Robot B came into contact at position P31.
[0055] If the simulation device 30 simulates the operation plan information and no contact occurs, the communication unit 22 may receive a message from the simulation device 30 indicating that no contact occurred.
[0056] Returning to FIG. 3 , the constraint adjustment unit 23 may generate constraint information used to determine the posture based on the simulation results. The constraint information may be information that specifies that the hand assumes a posture that does not pass through the position where contact occurred. The constraint information may include information about the position where contact occurred. The posture determination unit 13 may determine the posture of the robot's hand so as to satisfy the constraint information based on a predetermined standard, algorithm, or the like. The motion planning unit 11 may update the motion planning information based on the determined posture. Specifically, the motion planning unit 11 may update the motion planning information by changing the posture of the robot's hand at the time when contact occurred to the determined posture.
[0057] Alternatively, the motion planning unit 11 may update the motion planning information by inputting the constraint information into a learning model that generates the motion planning information. The learning model is assumed to have been machine-learned in advance to generate motion planning information that satisfies the constraint information that can be generated by the constraint adjustment unit 23. The constraint information may be information that the hand assumes a posture that does not pass through the position where contact occurred. The constraint information may include information about the position where contact occurred. Alternatively, the motion planning unit 11 may update the motion planning information so as to satisfy the constraint information based on a predetermined standard, algorithm, or the like.
[0058] Here, the posture of the hand will be explained using Figure 8. Figure 8 shows that the arm RA1 of robot A and the hand RH2 of robot B are in contact at position P31. Also, assume that the hand RH2 of robot B is connected to the arm RA2 of robot B at position RC2. RC2 corresponds to the end of the hand of robot B.
[0059] 6, the position of the hand RH2 of the robot B indicates the position of RC2. In this case, the reachable range of the hand of the robot B is determined based on the posture, the position RC2, and the shape of the hand RH2.
[0060] 9 also shows postures that the hand RH2 can take to avoid overlapping with position P31. The postures that the hand RH2 can take to avoid overlapping with position P31 are indicated by dotted lines in FIG. 9. For example, as shown in FIG. 9, possible postures that the hand RH2 can take to avoid overlapping with position P31 include postures fB1 to fB4. fB1 to fB4 are postures extracted as postures that the hand RH2 does not overlap with position P31, and when postures that overlap with position P31 are also included, the hand RH2 can take multiple postures in addition to fB1 to fB4 and the initial value fB0.
[0061] The posture determination unit 13 may extract fB1 to fB4 as postures of robot B that do not include position P31 within the reachable range of the hand of robot B. Furthermore, the posture determination unit 13 may determine any posture from fB1 to fB4. The motion planning unit 11 may change the posture of the hand of robot B at the time of contact to the determined posture and update the motion planning information.
[0062] Alternatively, the motion planning unit 11 may input constraint information to the learning model that the hand must assume a posture that does not pass through the position where contact occurred. In this case, the learning model may determine one of fB1 to fB4 as the posture that the hand RH2 of robot B can assume, change the posture of the hand of robot B at the time when contact occurred to the determined posture, and output motion planning information.
[0063] Alternatively, it is assumed that the motion planning unit 11 identifies the position of the arm of robot A based on the current motion planning information and environmental information of robot A. In this case, the motion planning unit 11 may include the position of the arm of robot A in the constraint information.
[0064] 9 shows that hand RH2 of robot B can avoid contact with arm RA1 of robot A by having hand RH2 assume the posture fB1 or fB2. In other words, hand RH2 of robot B needs to assume the posture fB1 or fB2 to avoid contact with arm RA1 of robot A. Therefore, when the motion planning unit 11 inputs constraint information, including the position of the arm of robot A, that specifies that the hand should assume a posture that will not contact an obstacle or another robot, to the learning model, the learning model outputs motion planning information that specifies fB1 or fB2.
[0065] Furthermore, if the learning model has learned a condition that a posture that shortens the distance between the hand and an obstacle or another robot is selected, the learning model may output fB2 as the posture of the hand RH2 of robot B. Alternatively, if the learning model has learned a condition that a posture that lengthens the distance between the hand and an obstacle or another robot is selected, the learning model may output motion plan information that specifies fB1 as the posture of the hand RH2 of robot B.
[0066] Alternatively, the motion planning unit 11 may determine fB1 or fB2 as the posture of hand RH2 in which hand RH2 of robot B and arm RA1 of robot A do not come into contact with each other, based on a predetermined standard or algorithm, etc.
[0067] 10 shows the motion plan information updated by the motion planning unit 11. The updated motion plan information indicates that the posture of robot B in the task of blow3 has been updated from fB0 to fB2.
[0068] The communication unit 22 transmits the updated operation plan information to the simulation device 30. The communication unit 22 receives the simulation results from the simulation device 30. When the simulation results indicate that contact has occurred, the constraint adjustment unit 23 may generate constraint information including information about the posture at which contact has occurred. The posture determination unit 13 may select a posture that is not reflected in the operation plan information from among multiple postures extracted as postures that do not include position P31 in the reach position of the hand of robot B.
[0069] Alternatively, the motion planning unit 11 may input constraint information including information about the posture at which contact occurred into the learning model, and output motion planning information that has been changed to the posture of the specified hand of robot B.
[0070] When the action planning unit 11 receives a simulation result indicating that no contact will occur, it may output the generated action plan information to a display device or the like that can be checked by an administrator or an operator of the action planning device 20. Alternatively, when the action planning unit 11 receives a simulation result indicating that no contact will occur, it may output the generated action plan information to a folder or the like that can be accessed by an administrator or an operator of the action planning device 20.
[0071] Next, an example configuration of the simulation device 30 will be described with reference to FIG. 11 . The simulation device 30 has a communication unit 31, an execution unit 32, and a data storage unit 33. The communication unit 31 and the execution unit 32 may be software or modules that perform processing when a processor executes a program stored in a memory. Alternatively, the communication unit 31 and the execution unit 32 may be hardware such as a circuit or a chip. The data storage unit 33 may be an internal memory or the like installed in the simulation device 30. Alternatively, the data storage unit 33 may be an external memory or the like attached to the simulation device 30.
[0072] The data storage unit 33 stores detailed environment information related to the robot and obstacles in order to execute the simulation. The detailed environment information may include, for example, three-dimensional structural data related to the robot's hands and arms, three-dimensional structural data of obstacles, and a motion model of the arm. The three-dimensional structural data may be data expressed using, for example, computer-aided design (CAD) data. The motion model of the arm may be, for example, a motion model that reproduces the axial direction and range of motion of each joint constituting the arm.
[0073] The communication unit 31 receives motion plan information related to the robot's hand from the motion planning device 20. The execution unit 32 simulates the motion of the robot set in the motion plan information using the detailed environment information stored in the data storage unit 33. The execution unit 32 transmits the simulation result to the motion planning device 20 via the communication unit 31.
[0074] Next, the flow of the process of updating the motion plan information executed in the motion planning device 20 will be described with reference to Fig. 12. First, the motion planning unit 11 generates motion plan information for each hand of robot A and robot B (S21). The motion planning unit 11 generates motion plan information for the hands that constitute part of the robots using target task information and environmental information. The environmental information is information that mainly indicates the shape of the robot's hands, etc., and may be simpler information than the detailed environmental information used to reproduce detailed robot movements using CAD data.
[0075] Next, the communication unit 22 transmits the operation plan information to the operation planning apparatus 20, and then receives the simulation result from the operation planning apparatus 20 (S22).
[0076] Next, the constraint adjustment unit 23 determines whether the simulation result includes information indicating that contact has been detected (S23). If the posture determination unit 13 determines that the simulation result includes information indicating that contact has been detected, it changes the posture of the hand involved in the contact based on the constraint information generated by the constraint adjustment unit 23 (S24). In other words, the posture determination unit 13 determines a posture of the hand that satisfies the condition that the hand involved in the contact does not pass through the position where the contact occurred.
[0077] Next, the motion planning unit 11 updates the motion planning information so as to reflect the posture of the robot determined in step S24 (S25). In other words, the motion planning unit 11 generates the motion planning information based on the posture of the robot determined in step S24.
[0078] After step S25 is executed, the processes from step S22 onward are executed. In step S23, if the simulation result does not include information indicating that contact has been detected, the operation planning unit 11 outputs operation plan information (S26).
[0079] As described above, the simulation device 30 simulates the motion planning information generated based on the posture of the hand selected by the motion planning device 20. Furthermore, the motion planning device 20 outputs the motion planning information when the simulation result does not include information indicating that contact has been detected. This eliminates the need for the simulation device 30 to determine whether or not contact will occur for all postures that the hand can take, thereby reducing the processing load compared to when determining whether or not contact will occur for all postures.
[0080] Furthermore, by using a learning model that has learned the distance between the hand and other robots, etc., the constraint adjustment unit 23 can determine a posture that will prevent contact between the hand and other robots, etc. This allows the number of simulations in the simulation device 30 to be further reduced.
[0081] Third Embodiment Next, an example of updated motion plan information will be described with reference to Fig. 13. When the constraint adjustment unit 23 receives the simulation result shown in Fig. 7, the constraint adjustment unit 23 may generate a constraint condition that specifies that movements or tasks are not performed simultaneously when contact occurs.
[0082] The motion planning unit 11 inputs a constraint to the learning model that the movements or tasks that occur when contact occurs must not be performed simultaneously. In this case, the learning model may generate motion planning information such as that shown in Fig. 13. Fig. 13 shows that blow 2 for robot A, which was being performed when contact occurred, and blow 3 for robot B, were being performed at different times.
[0083] Here, an example of the generation process in Fig. 13 will be described. The generation process in Fig. 13 may be, for example, a process in which the action planning unit 11 updates the action plan information in accordance with a predetermined action plan information update procedure or algorithm without using a learning model.
[0084] As shown in FIG. 14 , the motion planning unit 11 distinguishes or separates the motion planning information from time 0.0 to time 3.0, when the task in which contact occurred is executed, from the motion planning information from time 4.0 onward. Furthermore, the motion planning unit 11 updates information regarding the start and end positions of the robots, as shown in FIGS. 15 and 16 . FIG. 15 shows the start and end positions of the hands of robot A and robot B in the motion planning information from time 0.0 to time 3.0. FIG. 15 indicates that the end positions of each hand are the positions of each hand at time 4.0. Furthermore, FIG. 16 shows the start and end positions of the hands of robot A and robot B in the motion planning information from time 4.0 onward. FIG. 16 indicates that the start positions of each hand are the positions of each hand at time 4.0.
[0085] The action planning unit 11 causes blow2 and blow3, which are tasks executed from time 0.0 to time 3.0 shown in Fig. 14, to be executed at different timings. For example, the action planning unit 11 updates the action plan information so that blow3 is executed after blow2 is completed.
[0086] The operation planning unit 11 may change the timing of the tasks to be executed from time 0.0 to time 3.0, and further generate new operation planning information as shown in FIG. 13 by combining the information in FIGS. 15 and 16.
[0087] Next, the flow of the generation process of the operation plan information shown in Fig. 13 will be described with reference to Fig. 17. In Fig. 17, the process of step S24 in Fig. 12 is replaced with step S31. That is, the processes other than step S31 in Fig. 17 are the same as those in Fig. 12, and therefore detailed description thereof will be omitted.
[0088] In step S31, if the constraint adjustment unit 23 determines in step S23 that the simulation result includes information indicating that contact has been detected, a constraint condition is generated that specifies that movements or tasks are not performed simultaneously when contact occurs. In step S25, the motion plan information is updated so as to satisfy the constraint condition generated in step S31.
[0089] Next, a flow of a process for generating motion plan information different from that of Fig. 17 will be described with reference to Fig. 18. Fig. 18 shows an example in which a change in the hand posture in Fig. 12 is combined with a process in which a constraint is added that movement or a task when contact occurs in Fig. 17 is not performed simultaneously.
[0090] Steps S21 to S25 in Fig. 18 are similar to steps S21 to S25 in Fig. 12, and therefore detailed description thereof will be omitted. After the operation plan information is updated in step S25, steps S41 and S42 are executed. In steps S41 and S42, the same processing as in steps S22 and S23 is performed.
[0091] If contact is detected in step S42, the process of step S43 is executed. In step S43, the same process as step S31 in Fig. 17 is executed. Thereafter, the processes from step S25 onwards are executed. In step S25, as shown in Fig. 19, motion plan information in which the posture has been changed and the task execution timing has been updated is generated. If the simulation results in steps S23 and S42 do not include information indicating that contact has been detected, the motion planning unit 11 outputs a motion plan (S26).
[0092] As described above, the motion planning device 20 can update the motion plan information so as to satisfy the constraint that tasks that cause contact are not executed simultaneously. By adding the constraint in this way, the motion planning unit 11 can autonomously generate motion plan information that does not cause contact.
[0093] Furthermore, the motion planning device 20 may add a constraint that, if a contact occurs while executing a task assigned to a certain robot, the robot is not allowed to execute the task that caused the contact. In this way, the motion planning device 20 can update the motion plan information so as to change the robot in charge of the task that caused the contact.
[0094] (Fourth Embodiment) Next, referring to FIG. 20 , constraints on the movable range of the robot's hand will be described. FIG. 20 shows that the installation position of robot A is P100 and the position of robot A's hand is P20. Furthermore, FIG. 20 shows area A1 including robot A's installation position P100 and robot A's hand position P20. Area A1 is represented as a rectangle including robot A's installation position P100 and robot A's hand position P20. Area A1 may be represented using a three-dimensional shape such as a rectangular parallelepiped instead of a two-dimensional shape. Furthermore, FIG. 20 shows area A2, which is obtained by enlarging area A1 by M in each direction. M is a positive value and may be expressed in centimeters, millimeters, or the like.
[0095] Area A1 is defined as an exclusive area that the hands of robot B cannot enter. Area A2 is defined as an extended exclusive area that is an extension of the exclusive area, area A1. The exclusive area and extended exclusive area are not limited to the shapes shown in Figure 20, but may also be shapes represented using curves or as polygons other than rectangles.
[0096] When the simulation result includes information indicating that contact has been detected, the constraint adjustment unit 23 may generate a constraint condition that the hand of robot B does not enter the exclusive area of robot A. The constraint condition that the hand of robot B does not enter the exclusive area of robot A may be rephrased as the hand of robot B being located outside the exclusive area of robot A.
[0097] The motion planning unit 11 updates the motion planning information based on the constraint that the hand of robot B does not enter the exclusive area of robot A. If the simulation results for the updated motion planning information include information indicating that contact has been detected again, the constraint adjustment unit 23 generates a constraint that the hand of robot B does not enter the extended exclusive area of robot A. The motion planning unit 11 updates the motion planning information based on the constraint that the hand of robot B does not enter the extended exclusive area of robot A.
[0098] The motion planning unit 11 may acquire motion planning information output from the learning model by adding to the learning model a constraint that the hand of robot B does not enter the exclusive area of robot A. Alternatively, the motion planning unit 11 may identify the coordinates or sub-area of the area defined as area A1, and generate motion planning information so that the identified coordinates or area do not overlap with the position of the hand of robot B.
[0099] After this, if the simulation result includes information indicating that contact has been detected, the constraint adjuster 23 generates a constraint condition that further expands the extended exclusive area.
[0100] As described above, the motion planning device 20 can update the motion planning information so as to satisfy the constraint that the hand of a robot does not enter the exclusive area of another robot. By adding the constraint in this way, the motion planning unit 11 can autonomously generate motion planning information that does not cause contact.
[0101] Furthermore, the constraint that the robot's hand does not enter the exclusive area of another robot may be generated, for example, in step S43 of FIG. 18 , instead of the constraint that tasks that could cause contact are not executed simultaneously. Alternatively, the constraint that the robot's hand does not enter the exclusive area of another robot may be generated after a simulation is performed on the operation plan information generated based on the constraint that tasks that could cause contact are not executed simultaneously. In other words, the constraint that the robot's hand does not enter the exclusive area of another robot may be generated when contact occurs in the operation plan information generated based on other constraints.
[0102] FIG. 21 is a block diagram showing a configuration example of the motion planning apparatus 10, the motion planning apparatus 20, and the simulation apparatus 30 (hereinafter referred to as the motion planning apparatus 10, etc.) described in the above-mentioned embodiments. Referring to FIG. 21, the motion planning apparatus 10, etc. includes a network interface 1201, a processor 1202, and a memory 1203. The network interface 1201 may be used to communicate with a network node. The network interface 1201 may include, for example, a network interface card (NIC) conforming to the IEEE 802.3 series. IEEE stands for Institute of Electrical and Electronics Engineers.
[0103] The processor 1202 reads and executes software (computer programs) from the memory 1203 to perform the processing of the motion planning device 10 and the like described using the flowcharts. The processor 1202 may be, for example, a microprocessor, an MPU, or a CPU. The processor 1202 may include multiple processors.
[0104] The memory 1203 is configured by a combination of volatile memory and non-volatile memory. The memory 1203 may include storage located remotely from the processor 1202. In this case, the processor 1202 may access the memory 1203 via an I / O (Input / Output) interface (not shown).
[0105] 21 , the memory 1203 is used to store software modules. The processor 1202 reads and executes these software modules from the memory 1203, thereby performing the processing of the motion planning apparatus 10 and the like described in the above-described embodiment.
[0106] As described using FIG. 21 , each of the processors possessed by the motion planning apparatus 10, etc. in the above-described embodiment executes one or more programs including a group of instructions for causing a computer to execute the algorithm described using the drawings.
[0107] In the above examples, the program includes instructions (or software code) that, when loaded into a computer, cause the computer to perform one or more functions described in the embodiments. The program may be stored on a non-transitory computer-readable medium or a tangible storage medium. By way of example and not limitation, computer-readable medium or tangible storage medium includes random-access memory (RAM), read-only memory (ROM), flash memory, solid-state drive (SSD) or other memory technology, CD-ROM, digital versatile disc (DVD), Blu-ray disc or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device. The program may also be transmitted on a transitory computer-readable medium or communication medium. By way of example and not limitation, transitory computer-readable medium or communication medium includes electrical, optical, acoustic, or other forms of propagated signals.
[0108] Although the present disclosure has been described above with reference to the embodiments, the present disclosure is not limited to the above-described embodiments. Various modifications that can be understood by those skilled in the art can be made to the configuration and details of the present disclosure within the scope of the present disclosure. Furthermore, each embodiment can be combined with other embodiments as appropriate.
[0109] Each drawing is merely an example for describing one or more embodiments. Each drawing may not relate to only one particular embodiment, but may also relate to one or more other embodiments. As will be understood by those skilled in the art, various features or steps described with reference to any one drawing can be combined with features or steps shown in one or more other drawings to create, for example, an embodiment not explicitly shown or described. Not all features or steps shown in any one drawing are necessary to describe an exemplary embodiment, and some features or steps may be omitted. The order of steps described in any drawing may be changed as appropriate.
[0110] Some or all of the above embodiments can be described as, but are not limited to, the following supplementary notes. (Supplementary Note 1) A motion planning device comprising: a motion planning unit that generates motion plan information for a working unit constituting a part of a robot based on a task to be performed by the working unit; an acquisition unit that acquires a simulation result, generated by simulating the motion of the working unit based on the motion plan information, the simulation result including position information where contact will occur between the working unit and an object and timing information about the timing of the contact; and a posture determination unit that determines a posture of the working unit based on a reachable range of the working unit determined based on the motion plan information and the timing information of the working unit and a position where the contact will occur, wherein the motion planning unit updates the motion plan information based on the determined posture. (Supplementary Note 2) The motion planning device according to Supplementary Note 1, wherein the posture determination unit determines the posture of the working unit using a position condition that states that a position where the contact will occur exists outside the reachable range of the working unit. (Supplementary Note 3) The motion planning device according to Supplementary Note 2, wherein the posture determination unit selects a posture that satisfies the position condition from a plurality of predetermined postures. (Supplementary Note 4) The motion planning device according to any one of Supplements 1 to 3, wherein the posture determination unit estimates the position of the working unit at the time when the contact occurs based on the motion planning information and the timing information, and determines a reachable range of the working unit based on information indicating the estimated position of the working unit and the shape of the working unit. (Supplementary Note 5) The motion planning device according to any one of Supplements 1 to 4, wherein the motion planning unit updates the motion planning information using a constraint condition for avoiding the contact. (Supplementary Note 6) The motion planning device according to Supplementary Note 5, wherein the constraint condition includes the working unit being located outside an exclusive area that includes the object. (Supplementary Note 7) The motion planning device according to Supplementary Note 6, wherein the size of the exclusive area is changeable. (Supplementary Note 8) The motion planning device according to any one of Supplements 5 to 7, wherein the constraint condition includes assigning the task that the working unit was performing at the time when the contact occurred to another robot.(Supplementary Note 9) A communication system comprising: a motion planning device configured to: generate motion planning information for a working unit constituting a part of a robot based on work content to be performed by the working unit; acquire simulation results generated by simulating the motion of the working unit based on the motion planning information, the simulation results including position information where contact will occur between the working unit and an object and timing information about the timing at which the contact will occur; determine a posture of the working unit based on the reachable range of the working unit determined based on the motion planning information and the timing information of the working unit and the position at which the contact will occur; and update the motion planning information based on the determined posture; and a simulation device configured to simulate the motion of the working unit based on the motion planning information and transmit the simulation results to the motion planning device. (Supplementary Note 10) An information updating method comprising: generating motion plan information for a working unit constituting part of a robot based on a task to be performed by the working unit; acquiring simulation results generated by simulating the motion of the working unit based on the motion plan information, the simulation results including position information where contact will occur between the working unit and an object and timing information about the contact; determining a posture of the working unit based on a reachable range of the working unit determined based on the motion plan information and the timing information of the working unit, and a position where the contact will occur; and updating the motion plan information based on the determined posture. (Supplementary Note 11) The information updating method according to Supplementary Note 10, wherein, when determining the posture of the working unit, the posture of the working unit is determined using a position condition that a position where the contact will occur exists outside the reachable range of the working unit. (Supplementary Note 12) The information updating method according to Supplementary Note 11, wherein, when determining the posture of the working unit, a posture that satisfies the position condition is selected from a plurality of predetermined postures. (Appendix 13) An information update method described in any one of Appendices 10 to 12, wherein, when determining the posture of the working unit, the position of the working unit at the time when the contact occurs is estimated based on the motion plan information and the timing information, and the reach range of the working unit is determined based on information indicating the estimated position of the working unit and the shape of the working unit.(Supplementary Note 14) The information updating method according to any one of Supplements 10 to 13, wherein, when updating the motion plan information, the motion plan information is updated using a constraint condition that avoids the contact. (Supplementary Note 15) The information updating method according to Supplementary Note 14, wherein the constraint condition includes that the working unit is located outside an exclusive area that includes the object. (Supplementary Note 16) The information updating method according to Supplementary Note 15, wherein the size of the exclusive area is changeable. (Supplementary Note 17) The information updating method according to any one of Supplements 14 to 16, wherein the constraint condition includes that the work that the working unit was performing at the time the contact occurred is assigned to another robot. (Supplementary Note 18) A program that causes a computer to execute the following steps: generate motion plan information for a working unit that constitutes part of a robot based on work content to be performed by the working unit; acquire simulation results generated by simulating the movement of the working unit based on the motion plan information, the simulation results including position information where contact will occur between the working unit and an object and timing information about the contact; determine a posture of the working unit based on a reachable range of the working unit determined based on the motion plan information and the timing information of the working unit, and a position where the contact will occur; and update the motion plan information based on the determined posture. (Supplementary Note 19) The program according to Supplementary Note 18, which, when determining the posture of the working unit, determines the posture of the working unit using a position condition that a position where the contact will occur exists outside the reachable range of the working unit. (Supplementary Note 20) The program according to Supplementary Note 19, which, when determining the posture of the working unit, selects a posture that satisfies the position condition from a plurality of predetermined postures.
[0111] Some or all of the elements (e.g., configurations and functions) described in Supplementary Notes 11 to 17 that are dependent on Supplementary Note 10 may also be dependent on Supplementary Note 18 in the same dependency relationship as Supplementary Notes 11 to 17. Some or all of the elements described in any Supplementary Note may be applied to various hardware, software, recording means for recording software, systems, and methods.
[0112] This application claims priority based on Japanese Patent Application No. 2023-206888, filed December 7, 2023, the disclosure of which is incorporated herein in its entirety by reference.
[0113] REFERENCE SIGNS LIST 10 Motion planning device 11 Motion planning unit 12 Acquisition unit 13 Attitude determination unit 20 Motion planning device 21 Data storage unit 22 Communication unit 23 Constraint adjustment unit 30 Simulation device 31 Communication unit 32 Execution unit 33 Data storage unit
Claims
1. A motion planning device comprising: a motion planning means for generating motion planning information for a working unit constituting part of a robot based on the work content to be performed by the working unit; an acquisition means for acquiring a simulation result generated by simulating the motion of the working unit based on the motion planning information, the simulation result including position information where contact between the working unit and an object will occur and timing information where the contact will occur; and a posture determination means for determining the posture of the working unit based on the reach of the working unit, which is determined based on the motion planning information and the timing information of the working unit, and the position where the contact will occur, wherein the motion planning means updates the motion planning information based on the determined posture.
2. The motion planning device according to claim 1, wherein the posture determination means determines the posture of the working unit using a position condition that a position at which the contact occurs exists outside the reachable range of the working unit.
3. The motion planning device according to claim 2, wherein the posture determination means selects a posture that satisfies the position condition from among a plurality of predetermined postures.
4. A motion planning device as described in any one of claims 1 to 3, wherein the posture determination means estimates the position of the working part at the time when the contact occurs based on the motion planning information and the timing information, and determines the reach of the working part based on information indicating the estimated position of the working part and the shape of the working part.
5. A motion planning device according to any one of claims 1 to 3, wherein the motion planning means updates the motion planning information using a constraint condition for avoiding the contact.
6. The motion planning device according to claim 5, wherein the constraint condition includes that the working unit is located outside an exclusion area that includes the object.
7. The motion planning device according to claim 6, wherein the size of the exclusion area is changeable.
8. The motion planning device according to claim 5, wherein the constraint condition includes allocating to another robot the task being performed by the working unit at the time the contact occurred.
9. An information updating method comprising: generating motion plan information for a working unit constituting part of a robot based on the work content to be performed by the working unit; acquiring a simulation result generated by simulating the operation of the working unit based on the motion plan information, the simulation result including position information where contact between the working unit and an object will occur and timing information where the contact will occur; determining a posture of the working unit based on the reach of the working unit and the position where the contact will occur, which are determined based on the motion plan information and the timing information of the working unit; and updating the motion plan information based on the determined posture.
10. A program that causes a computer to execute the following steps: generate motion plan information for a working unit that constitutes part of a robot based on the work content to be performed by the working unit; acquire simulation results generated by simulating the operation of the working unit based on the motion plan information, the simulation results including position information where contact between the working unit and an object will occur and timing information where the contact will occur; determine the posture of the working unit based on the reach of the working unit and the position where the contact will occur, which are determined based on the motion plan information and the timing information of the working unit; and update the motion plan information based on the determined posture.
Citation Information
Patent Citations
Robot control device
JP1999347984A
Interlock automatic setting device and automatic setting method between a plurality of robots
JP2007164417A
Planning system, robot system, planning method, and planning program
JP2022110711A
Trajectory planning device and trajectory planning method
JP2023125754A