Robot system, robot control method, and robot control program
The robot system addresses the challenge of environmental divergence by simulating and adjusting its posture to prevent joint limits and singularities, ensuring accurate end effector positioning.
Patent Information
- Application Number
- JP2024010397
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-26
- Publication Date
- 2025-08-07
AI Technical Summary
Existing robot systems struggle to operate appropriately when the actual situation differs from the pre-assumed environment, leading to potential joint limit exceedance or motion through singular points.
A robot system with multiple drive axes and a simulation unit that virtually simulates the robot's posture, determining constraint conditions based on a margin from the simulated posture and limit posture, and a robot control unit that adjusts the robot's operation accordingly.
Enables the robot to operate appropriately even when the actual environment diverges from the simulated one, preventing joint limit exceedance and singular points, ensuring accurate positioning of the end effector.
Smart Images

Figure 2025115762000001_ABST
Abstract
Description
[Technical Field]
[0001] One aspect of the present disclosure relates to a robot system, a robot control method, and a robot control program. [Background technology]
[0002] Patent Document 1 describes a method for generating a posture of an industrial robot when the posture of a tool attached to the industrial robot has one redundant degree of freedom. Patent Document 2 describes a robot control method that defines an evaluation function that indicates the degree of approach to a blind spot caused by the wrist offset of the wrist relative to the robot arm, determines the length or angle of a redundant axis so that the value of the evaluation function is always small, and determines the length or angle of other non-redundant axes based on this determined value to avoid blind spots. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent No. 3902310 [Patent Document 2] Japanese Patent Application Publication No. 05-220681 Summary of the Invention [Problem to be solved by the invention]
[0004] There is a need for a mechanism that allows a robot to operate appropriately even when the actual situation surrounding the robot differs from what was previously assumed. [Means for solving the problem]
[0005] A robot system according to one aspect of the present disclosure includes a robot that is placed in a real workspace and has multiple drive axes with degrees of freedom for moving an end effector; a simulation unit that virtually executes a simulation posture, which is the posture of the robot when the end effector is positioned at a specified point, by simulation based on a robot model representing the robot; a determination unit that determines a constraint condition for at least one drive axis of the multiple drive axes at the specified point based on a margin obtained from the simulation posture and the limit posture of the robot; and a robot control unit that controls the robot based on the constraint condition.
[0006] A robot control method according to one aspect of the present disclosure is a robot control system that controls a robot that is placed in a real workspace and has multiple drive axes with degrees of freedom for moving an end effector, the robot control method being executed by the robot control system having at least one processor. The robot control method includes the steps of virtually executing a simulation posture, which is the posture of the robot when the end effector is positioned at a specified point, by simulating a robot model representing the robot, determining a constraint condition for at least one drive axis of the multiple drive axes at the specified point based on a margin obtained from the simulation posture and a limit posture of the robot, and controlling the robot based on the constraint condition.
[0007] A robot control program according to one aspect of the present disclosure causes a computer to function as a robot control system that controls a robot that is placed in a real workspace and has multiple drive axes with degrees of freedom for moving an end effector. The robot control program causes the computer to execute the following steps: virtually executing a simulation posture, which is the posture of the robot when the end effector is positioned at a specified point, by simulation based on a robot model representing the robot; determining a constraint condition for at least one drive axis of the multiple drive axes at the specified point based on a margin obtained from the simulation posture and the limit posture of the robot; and controlling the robot based on the constraint condition. [Effects of the Invention]
[0008] According to one aspect of the present disclosure, even when the actual situation surrounding the robot differs from what was previously assumed, the robot can be operated appropriately. [Brief explanation of the drawings]
[0009] [Figure 1] FIG. 1 illustrates an example of a robot system. [Figure 2] FIG. 1 is a diagram illustrating an example of a functional configuration of a robot control system. [Figure 3] FIG. 1 is a diagram illustrating an example of a hardware configuration of a computer used for a robot control system. [Figure 4] 10 is a flowchart illustrating an example of processing executed by the robot system. [Figure 5] FIG. 10 is a diagram for explaining setting of a designated point. [Figure 6] FIG. 10 is a diagram illustrating an example of a manipulability ellipsoid. [Figure 7] FIG. 10 is a diagram for explaining a process for determining a constraint condition common to two or more tasks. DETAILED DESCRIPTION OF THE INVENTION
[0010] Various examples of the present disclosure will be described in detail below with reference to the accompanying drawings. In the description of the drawings, the same or equivalent elements are designated by the same reference numerals, and redundant description will be omitted.
[0011] [System Overview] The robot system according to the present disclosure is a control system for appropriately operating a real robot equipped with an end effector even when the surrounding situation of the robot differs from a pre-determined situation. In one example, the robot system includes one or more real robots arranged in a real workspace and a robot control system that is a computer system for controlling the robots.
[0012] The robot control system calculates the robot's posture when the end effector is positioned at a specified point through simulation. In this disclosure, this posture is referred to as the "simulated posture." Simulation is a process that simulates the movement of a robot on a computer, rather than actually operating a real robot. The specified point that is the premise of the simulation is, for example, the position where the end effector acts on a workpiece. The robot control system determines a constraint condition at the specified point for at least one of the robot's multiple drive axes based on the margin for the simulated posture. The robot control system then controls the robot based on the constraint condition to position the end effector at the specified point. The robot control system may further control the robot with the end effector positioned at the specified point.
[0013] The margin is an index that indicates how far the simulated posture is from the robot's limit posture. A limit posture is a posture at which the robot can no longer operate properly. Examples of limit postures include a singularity, which is a posture at which the robot cannot be controlled according to the calculations, and a posture at which the limit of the range of motion is reached for at least one drive axis. A constraint is a restriction that must be met when controlling a real robot.
[0014] In simulation, a robot control system generates a simulated posture by simulating not only the robot's motion but also the environment of the real workspace. The robot control system then controls the real robot based on the simulated posture. However, in some cases, the real environment may differ from the simulated environment. For example, if the real position of a workpiece differs from the position assumed in the simulation, the coordinates of a specified point in real life may deviate from the coordinates in the simulation. Therefore, it is necessary to correct the robot's posture from the simulated posture to match the real environment, and then control the real robot so that the end effector is positioned at the specified point in real life using this corrected posture.
[0015] However, if only task efficiency, such as operating time and operating distance, is considered in the simulation, constraint conditions may be determined based on a simulated posture close to the limit posture. As a result, in the actual workspace, the robot posture may exceed the pulse limit, reaching the limit of the joint's range of motion, or the robot's motion may pass through a singular point.
[0016] The robot control system determines constraint conditions by taking into account the margin obtained from the simulated posture and the limit posture. Through this process, the robot posture for positioning the end effector at a specified point is a posture with margin that takes into account the possibility that the environment may differ between reality and the simulation (i.e., a posture that can be corrected in real time in the real workspace). Therefore, even if the real environment, such as the position of the workpiece, differs from the simulation, the difference can be absorbed and the real robot can operate appropriately.
[0017] [System Configuration] FIG. 1 is a diagram showing an example of a robot system. The robot system 1 shown in this example includes a real robot 2 that is placed in a real workspace 9 and processes a real workpiece 8, a robot control system 10 for controlling the robot 2, and a robot controller 3 that controls the robot 2 based on instructions from the robot control system 10. The robot control system 10 is connected to the robot controller 3 and a camera 4 that captures images of the workspace 9 via a communication network. The communication network may be a wired network or a wireless network. The communication network may be configured to include at least one of the Internet and an intranet. Alternatively, the communication network may be simply implemented by a single communication cable.
[0018] In the example of FIG. 1, the workpiece 8 is an H-beam, and the robot 2 performs welding in one or more predetermined working areas on the H-beam. The robot 2 can move on rails that extend along the H-beam. The robot 2 may be an autonomous mobile robot (AMR) or may be supported by an automated guided vehicle (AGV). The robot 2 may operate in cooperation with a positioner that holds the workpiece 8. In the example of FIG. 1, the robot system 1 treats the traveling axis along the rail as a redundant axis, and determines the position on this redundant axis as a constraint condition.
[0019] The robot 2 is a device that receives power and performs a predetermined action according to a purpose to perform a useful task. In one example, the robot 2 includes multiple joints, an arm, and an end effector 2a attached to the end of the arm. The robot 2 processes a workpiece using the end effector 2a. Examples of the end effector 2a include a welding gun and a screwdriver. Each of the multiple joints is provided with a drive axis (joint axis). Some components of the robot 2, such as the arm and rotating unit, rotate around the drive axis, allowing the robot 2 to change the position and posture of the end effector 2a within a predetermined range. In other words, the robot 2 has multiple drive axes with degrees of freedom for moving the end effector 2a. In this disclosure, the degree of freedom of a drive axis refers to the drive axis having a movable range defined by two distinct limit values. If the drive axis is a rotation axis, the degree of freedom can be expressed by the range of rotation angles. If the drive axis is a traveling axis, the degree of freedom can be expressed by the range of reachable positions. The robot 2 has multiple drive axes, each with a degree of freedom, and can assume a variety of postures when the end effector 2 a is positioned at a specified point. The robot 2 may have two or more arms, each equipped with the same or different end effectors 2 a.
[0020] In one example, the robot 2 is a multi-axis serial link vertical articulated robot. The robot 2 may be a vertical articulated robot with six drive axes, i.e., a six-axis robot. Alternatively, the robot 2 may be equipped with multiple drive axes including a redundant axis. The robot 2 may be a vertical articulated robot with seven or more drive axes, for example, a seven-axis vertical articulated robot with six axes plus one redundant axis. As described above, the robot 2 may be a self-propelled mobile robot, for example, an autonomous mobile robot (AMR) or a robot supported by an automated guided vehicle (AGV). Such a mobile robot is an example of a robot in which the travel axis is set as a redundant axis, or an example of a robot having a travel axis as a drive axis. Such a mobile robot may be a six-axis robot that can move along the travel axis. Alternatively, the robot 2 may be a stationary robot fixed in a predetermined location.
[0021] The robot controller 3 is a device that controls the robot 2 in accordance with a pre-generated operation program. In one example, the robot controller 3 calculates joint angle target values (target angle values of each joint of the robot 2) for matching the position and posture of the end effector 2a with target values indicated in the operation program, and controls the robot 2 in accordance with the angle target values.
[0022] The camera 4 is a device that captures an image of at least a portion of the area within the workspace 9 and generates image data that shows the situation within that area. In one example, the camera 4 captures at least an image of the workpiece 8 present in the workspace 9 and generates image data that shows the actual position of the workpiece 8 as the workpiece position. The camera 4 transmits the image data to the robot control system 10. The camera 4 may be fixed to a pillar, a ceiling, or the like, or may be attached near the tip of the arm of the robot 2. The camera 4 is an example of a sensor that detects the actual position of the workpiece 8 present in the workspace 9 as the workpiece position.
[0023] FIG. 2 illustrates an example of the functional configuration of a robot control system 10. In this example, the robot control system 10 includes functional components including a simulation unit 11, a task memory unit 12, a determination unit 13, an adjustment unit 14, a path generation unit 15, and a robot control unit 16. The simulation unit 11 is a functional module that virtually executes a simulated posture of the robot 2 through simulation. The task memory unit 12 is a functional module that stores task information indicating a task for processing a workpiece. A task refers to an operation to be performed by the robot to achieve a certain purpose. The determination unit 13 is a functional module that determines constraint conditions at a specified point based on the margin obtained from the simulated posture and the limit posture. The adjustment unit 14 is a functional module that adjusts the specified point based on the workpiece position detected by the camera 4. The path generation unit 15 is a functional module that generates a path for moving the end effector 2a to the adjusted specified point. The path refers to information indicating the trajectory, which is the path of movement of the robot 2 or its components (e.g., the end effector 2a). The robot control unit 16 is a functional module that controls the robot 2 based on at least the constraint conditions.
[0024] The robot control system 10 can be realized by any type of computer. The computer may be a general-purpose computer such as a personal computer or a business server, or may be incorporated into a dedicated device that executes a specific process.
[0025] 3 is a diagram showing an example of the hardware configuration of a computer 100 used for the robot control system 10. In this example, the computer 100 includes a main body 110, a monitor 120, and an input device .
[0026] The main body 110 is a device having a circuit 160. The circuit 160 has a processor 161, a memory 162, a storage 163, an input / output port 164, and a communication port 165. The number of each hardware component may be one or more. The storage 163 records programs for configuring each functional module of the main body 110. The storage 163 is a computer-readable recording medium such as a hard disk, a non-volatile semiconductor memory, a magnetic disk, or an optical disk. The memory 162 temporarily stores programs loaded from the storage 163, calculation results of the processor 161, and the like. The processor 161 configures each functional module by executing programs in cooperation with the memory 162. The input / output port 164 inputs and outputs electrical signals to and from the monitor 120 or the input device 130 in response to instructions from the processor 161. The communication port 165 performs data communication with other devices, such as the robot controller 3, via a communication network N in response to instructions from the processor 161.
[0027] The monitor 120 is a device for displaying information output from the main body 110. For example, the monitor 120 is a device capable of displaying graphics, such as a liquid crystal panel.
[0028] The input device 130 is a device for inputting information to the main body 110. Examples of the input device 130 include operation interfaces such as a keypad, a mouse, and an operation controller.
[0029] The monitor 120 and the input device 130 may be integrated as a touch panel. For example, the main body 110, the monitor 120, and the input device 130 may be integrated as a tablet computer.
[0030] Each functional module of the robot control system 10 is realized by loading a robot control program onto the processor 161 or memory 162 and having the processor 161 execute the program. The robot control program includes code for realizing each functional module of the robot control system 10. The processor 161 operates the input / output port 164 and the communication port 165 in accordance with the robot control program, and reads and writes data from and to the memory 162 or the storage 163.
[0031] The robot control program may be provided in the form of a non-transitory recording medium such as a CD-ROM, a DVD-ROM, or a semiconductor memory, or may be provided via a communications network as a data signal superimposed on a carrier wave.
[0032] [Robot control method] As an example of a robot control method according to the present disclosure, an example of processing executed by the robot system 1 will be described with reference to Fig. 4. Fig. 4 is a flowchart showing this example as processing flow S1. That is, the robot system 1 executes processing flow S1.
[0033] In step S11, the simulation unit 11 sets designated points in the task. In one example, the simulation unit 11 reads task information for the task to be simulated from the task storage unit 12, and sets designated points in the task based on the task information. For example, the simulation unit 11 sets one or more positions where the end effector 2a acts on the workpiece 8 in the task as designated points.
[0034] FIG. 5 is a diagram illustrating the setting of designated points. In this example, the task is to weld a linear working area 80 on a workpiece 8. The task information includes an approach position 201, a start position 202, an end position 203, and a retract position 204 set to perform the welding. The path of the end effector 2a in the task runs from the approach position 201 to the retract position 204 via the start position 202 and the end position 203. In this disclosure, the approach position refers to the start point of the task path. The start position refers to the position where the end effector starts acting on the workpiece (working area). The end position refers to the position where the end effector ends acting on the workpiece (working area). The retract position refers to the end point of the task path. The approach position and retract position are set slightly away from the workpiece (working area), and the start position and end position are set on the workpiece (working area). In one example, the simulation unit 11 sets at least the start position 202 as a designated point. The simulation unit 11 may set the end position 203 as a designated point in addition to the start position 202, or may set one or more intermediate positions on the working area 80 between the start position 202 and the end position 203 as designated points. In either case, the designated points are positions where the end effector acts on the workpiece 8.
[0035] Returning to Fig. 4, in step S12, the simulation unit 11 sets one candidate position on the redundant axis. As described above, the redundant axis may be the traveling axis of a six-axis robot or the redundant axis of a seven-axis robot. In the example of Fig. 1, the simulation unit 11 processes the traveling axis as a redundant axis and sets a candidate position on this redundant axis.
[0036] In one example, for the configuration of the simulation unit 11, a robot model representing the robot 2 having the end effector 2a and a workpiece model representing the workpiece 8 are used. Both of these models are represented by electronic data. The robot model indicates specifications for the robot 2 and the end effector 2a. The specifications may include a group of parameters relating to the structure of the robot 2 and the end effector 2a, such as shape, dimensions, etc., and a group of parameters relating to the function of the robot 2 and the end effector 2a, such as the range of motion of each joint and the performance of the end effector 2a. The workpiece model may indicate one or more working areas on the workpiece 8, the processing sequence of the one or more working areas, and other attributes of the workpiece 8, such as shape, dimensions, etc.
[0037] The simulation unit 11 generates a virtual space corresponding to the real workspace 9, generates a virtual workpiece 8 based on the workpiece model, and generates a virtual robot 2 based on the robot model. The simulation unit 11 places the generated workpiece 8 and robot 2 in the virtual space. The simulation unit 11 sets a redundant axis for the robot 2 and sets one candidate position on this redundant axis. In one example, the simulation unit 11 sets the candidate position using an optimization method that optimizes the position on the redundant axis. The simulation unit 11 may use Bayesian optimization as the optimization method. The simulation unit 11 uses Gaussian process regression to estimate a function that indicates the relationship between the candidate position and an evaluation value and calculates the variance that indicates the uncertainty of the function. The simulation unit 11 uses an evaluation value that reflects at least the margin. The simulation unit 11 may also use an evaluation value that reflects a physical quantity related to the operation of the robot 2 in addition to the margin. Examples of such physical quantities include the distance or time required for operation (so-called playback time). The simulation unit 11 calculates a predetermined acquisition function based on the results of the Gaussian process regression. The simulation unit 11 sets the candidate position where the acquisition function is maximized as a new candidate position. As another example, the simulation unit 11 may set candidate positions at predetermined intervals, or may set candidate positions randomly.
[0038] In step S13, the simulation unit 11 executes a simulation based on the set candidate positions to identify a simulation posture. As described above, the simulation posture is the posture of the robot 2 when the end effector 2a is positioned at a specified point. The simulation unit 11 virtually executes the simulation posture by a simulation based on a robot model.
[0039] The simulation unit 11 may virtually execute, by simulation, a work scene in which the robot 2 positions the end effector 2a at a task start position in a simulation posture and processes the workpiece 8. In the example of FIG. 5 , the simulation unit 11 virtually operates the robot 2 so that the end effector 2a passes through the approach position 201, the start position 202, the end position 203, and the retract position 204 in this order, thereby virtually executing a work scene in which the robot 2 welds the work area 80. The simulation unit 11 identifies a simulation posture at each of one or more specified points through this simulation. For example, the simulation unit 11 may identify at least a simulation posture at the start position 202, and further identify a simulation posture at the end position 203 or an intermediate position. That is, the simulation unit 11 may identify multiple simulation postures in the work area 80.
[0040] In step S14, the determination unit 13 calculates the margin of safety from the simulation posture and the limit posture.
[0041] As an example, the determination unit 13 may calculate the margin based on the simulation posture and the median of the movable range (i.e., the median of the joint angle for each drive axis) of each of the multiple drive axes (joints) of the robot 2. In this example, the margin z can be defined by the following formula (1).
number
[0042] In equation (1), the margin z becomes smaller as the simulation posture approaches the median value of the joint angle, that is, as the simulation posture deviates from the limit posture.
[0043] As another example, the determination unit 13 may evaluate how far the simulation posture is from a singular point, i.e., the distance between the simulation posture and the singular point, using the concept of a manipulability ellipsoid, and calculate the evaluation value as the margin of error. The manipulability ellipsoid is an ellipsoid that represents in which direction the hand (end effector 2 a) of the robot 2 is easy to move in Cartesian space. The manipulability ellipsoid indicates that the hand is easier to move in the direction in which the width of the ellipsoid is wider. The volume of the manipulability ellipsoid represents the proximity (distance) from the singular point. A posture in which the width of the manipulability ellipsoid in a certain direction is 0, i.e., a posture in which the volume of the manipulability ellipsoid is 0, is a singular point.
[0044] 6 is a diagram showing an example of a manipulability ellipsoid. This example shows a manipulability ellipsoid 311 corresponding to the posture of the robot 2 in scene 301, and a manipulability ellipsoid 312 corresponding to the posture of the robot 2 in scene 302. The center of each manipulability ellipsoid is the tip of the end effector 2a. The manipulability ellipsoid 311 in scene 301 is relatively large, which indicates that the posture of the robot 2 is far from the singular point and there is relatively large room to change the posture. On the other hand, the manipulability ellipsoid 312 in scene 302 is relatively small, which indicates that the posture of the robot 2 is close to the singular point and there is relatively little room to change the posture.
[0045] The manipulability ellipsoid is calculated using a Jacobian matrix J obtained from kinematic information and posture information of the robot 2. The determination unit 13 calculates the Jacobian matrix J based on a robot model and a simulated posture. The determination unit 13 then performs singular value decomposition on the Jacobian matrix J. This singular value decomposition is expressed by the following equation (2).
number
[0046] The determining unit 13 calculates the margin ω by using each singular value σ indicated by the matrix Σ according to the following equation (3).
number
[0047] The larger the manipulability ellipsoid, the larger the product of the singular values σ. Therefore, in equation (3), the larger the manipulability ellipsoid, that is, the further the simulation posture is from the limit posture (specific point), the smaller the margin ω becomes.
[0048] The determination unit 13 may calculate the margin from the simulated posture and the limit posture at the start position. Alternatively, the determination unit 13 may calculate the margin for each of two or more positions including the start position from the simulated posture and the limit posture at that position, and calculate a statistical value (for example, an average value) of the calculated two or more margins as the final margin. In other words, the simulation unit 11 may calculate the margin in the simulated work scene based on multiple margins in the region from the start position to the end position.
[0049] In step S15, the determination unit 13 determines whether to terminate the search for candidate positions and simulation postures based on a predetermined termination condition. The termination condition may be that a predetermined number of candidate positions have been set, or that a predetermined calculation time has elapsed. When candidate positions are set using an optimization method, the termination condition may be that the difference between the previously obtained evaluation value and the currently obtained evaluation value has become equal to or less than a predetermined threshold, i.e., that the evaluation value has stagnated or converged. Alternatively, the termination condition may be that an evaluation value that satisfies a predetermined criterion has been obtained. Alternatively, the termination condition may be that the uncertainty (e.g., variance) in the overall relationship between the candidate positions and the evaluation value has become equal to or less than a predetermined threshold.
[0050] If the search is to be continued (NO in step S15), the process returns to step S12. In the repeated step S12, the simulation unit 11 sets a new candidate position on the redundant axis. In the repeated step S13, the simulation unit 11 executes a simulation based on the candidate position to identify a new simulation posture. In the repeated step S14, the determination unit 13 calculates the margin for the simulation posture.
[0051] As described in relation to step S15, the simulation unit 11 virtually executes a simulation posture for each of the plurality of candidate positions set on the redundant axis. The determination unit 13 calculates the margin for each of the plurality of candidate positions based on the simulation posture and the limit posture at each of the plurality of candidate positions.
[0052] If the search is to be terminated (YES in step S15), the process proceeds to step S16. In step S16, the determination unit 13 determines one of the multiple candidate positions as a constraint condition at the specified point based on the margin of each of the multiple candidate positions. As described above, in one example, the specified point is the position where the end effector 2a acts on the workpiece 8. Therefore, the determination unit 13 can determine the constraint condition for causing the end effector 2a to act on the workpiece 8. The candidate position determined as the constraint condition is a position on the redundant axis. For example, the determination unit 13 determines the candidate position at which the simulation posture farthest from the limit posture is obtained as the constraint condition. When the above formula (1) is used, the determination unit 13 determines the candidate position at which the smallest margin z is obtained as the constraint condition. When the above formulas (2) and (3) are used, the determination unit 13 determines the candidate position at which the smallest margin ω is obtained as the constraint condition.
[0053] In step S17, the adjustment unit 14 adjusts the designated point based on the workpiece position obtained from the camera 4. The adjustment unit 14 analyzes the image data sent from the camera 4 and identifies the workpiece position in the workspace 9 detected by the camera 4. The adjustment unit 14 then adjusts the designated point used in the simulation based on the identified workpiece position. For example, as part of the adjustment, the adjustment unit 14 calculates the difference between the coordinates of the designated point in the simulation and the coordinates of the workpiece position indicated by the image data, and adjusts the coordinates of the designated point based on this difference so that the designated point coincides with the workpiece position.
[0054] In step S18, the path generation unit 15 generates a path based on the adjusted specified point. In one example, the path generation unit 15 generates a path for moving the end effector 2a to the adjusted specified point. The generated path may be a path in air cutting, which is a process for guiding the robot 2 to a position where a certain task is to be started, i.e., an air cutting path. The path generation unit 15 generates a path so that the robot 2 can maintain a normal posture (i.e., operate normally) and so that interference is not detected. Interference refers to a phenomenon in which an object comes into contact with or collides with an object other than the workpiece 8. It should be noted that when the robot 2 attempts to process the workpiece 8, contact between the robot 2 and the workpiece 8 does not constitute interference.
[0055] In step S19, the robot control unit 16 controls the real robot 2 in the workspace 9 based on the constraint conditions. The robot control unit 16 controls the position or posture of the robot 2 so that the robot 2 satisfies the constraint conditions on the drive axes for which the constraint conditions are set. The robot control unit 16 generates an operation program for controlling the real robot 2 based on the constraint conditions. The operation program includes data for controlling the robot 2, such as a path. In one example, the robot control unit 16 generates an operation program that causes the robot 2 to move along the generated path and position the end effector 2a at a specified point.
[0056] The robot control unit 16 controls the robot 2 to process the real workpiece 8 based on the constraint conditions and the workpiece position detected by the camera 4. That is, the robot control unit 16 controls the robot 2 based not only on the constraint conditions but also on the real position of the workpiece 8 in the workspace 9. For example, the robot control unit 16 controls the robot 2 to process the workpiece 8 based on the adjusted designated point. In this case, the robot control unit 16 generates an operation program that causes the robot 2 to move along the generated path and position the end effector 2 a at the adjusted designated point. The robot control unit 16 may generate or update the operation program so that the coordinates of the designated point in the simulation are replaced with the coordinates of the adjusted designated point. This operation program enables the end effector 2 a to be accurately positioned on the real workpiece 8.
[0057] The robot control unit 16 controls the real robot 2 based on the operation program. The robot control unit 16 outputs the operation program to the robot controller 3, causing the robot controller 3 to control the robot 2. The robot controller 3 operates the robot 2 based on the operation program. As a result, the robot 2 operates according to a position or posture that satisfies the constraint conditions, and in one example, accurately positions the end effector 2a at the real position of the workpiece 8. The operation program can be generated based on the adjusted specified point. Therefore, the real posture of the robot 2, in which the end effector 2a is positioned at the real coordinates corresponding to the specified point, may differ from the simulated posture.
[0058] The robot control unit 16 can further output an operation program for causing the robot 2 to execute a task from a specified point to the robot controller 3. The robot controller 3 operates the robot 2 based on the operation program, and as a result, the robot 2 executes the task.
[0059] The robot system 1 may also execute the process flow S1 to determine a constraint condition common to two or more tasks. Hereinafter, such a constraint condition will be simply referred to as a "common constraint condition." When determining the common constraint condition, the task storage unit stores task information for each of the two or more tasks.
[0060] In step S11, the simulation unit 11 sets one or more designated points for each of two or more tasks based on the task information.
[0061] In step S12, the simulation unit 11 sets one candidate position on the redundant axis as a common position that is the same among two or more tasks. This candidate position (common position) is a position that is fixed and does not change among two or more tasks.
[0062] In step S13, the simulation unit 11 executes a simulation based on the set candidate positions to identify a simulation posture. The simulation unit 11 virtually executes a work scene including two or more tasks by simulating a situation in which the candidate positions on the redundant axis are fixed (i.e., without changing the candidate positions).
[0063] In step S14, the determination unit 13 calculates the margin of safety for each of the two or more tasks from the simulation posture and the limit posture.
[0064] As shown in step S15, the processes of steps S12 to S14 can be repeatedly executed when determining a common constraint condition.
[0065] In step S16, the determination unit 13 determines a common constraint condition based on the margin for each of the two or more tasks. For example, the determination unit 13 may calculate, for each of a plurality of candidate positions, statistical values (e.g., average values) of two or more margins corresponding to the two or more tasks, and determine, as the common constraint condition, the candidate position that obtains a simulation posture that is statistically farthest from the limit posture.
[0066] In step S17, the adjustment unit 14 adjusts the designated points of each of the two or more tasks based on the workpiece position obtained from the camera 4.
[0067] In step S18, the path generation unit 15 generates paths for sequentially processing two or more tasks based on each of the adjusted specified points. For example, the path generation unit 15 generates an air-cut path between two adjacent tasks so that two or more tasks, from the first task to the last task, which are processed under a common constraint condition, are connected by a continuous path.
[0068] In step S19, the robot control unit 16 controls the actual robot 2 in the workspace 9 based on the common constraint condition. The robot control unit 16 outputs an operation program to the robot controller 3, causing the robot controller 3 to operate the robot 2. Through this control, the robot 2 operates according to a position or posture that satisfies the common constraint condition, and executes each of the two or more tasks in accordance with the actual position of the workpiece 8.
[0069] An example of a process for determining a common constraint condition will be described with further reference to FIG. 7. FIG. 7 is a diagram for explaining the process. In this example, the simulation unit 11 sets one or more designated points in a first task for welding a first working area 81 of the workpiece 8 and one or more designated points in a second task for welding a second working area 82 of the workpiece 8 (step S11). The simulation unit 11 treats the traveling axis as a redundant axis and sets a candidate position common to the first task and the second task on the redundant axis (step S12). The simulation unit 11 executes a simulation based on the candidate position (step S13). The simulation unit 11 virtually executes a first working scene in which the robot 2 positions the end effector 2 a at a start position (designated point) in the first task using a first simulation posture and welds the first working area 81. The simulation unit 11 further virtually executes a second working scene in which the robot 2 positions the end effector 2 a at a start position (designated point) in the second task using a second simulation posture and welds the second working area 82. 7 shows two such consecutive tasks. The determination unit 13 calculates the margin for each of the first task and the second task (step S14).
[0070] After the search while changing the candidate positions is completed (YES in step S15), the determination unit 13 determines a common constraint condition based on the margins in each of the first task and the second task (step S16). The adjustment unit 14 adjusts the designated points in each of the first task and the second task (step S17). The path generation unit 15 generates a path for sequentially processing the first task and the second task based on the adjusted designated points (step S18). The robot control unit 16 causes the real robot 2 to execute the first task and the second task based on the common constraint condition (step S19). As a result, the robot 2 operates in accordance with the real position of the workpiece 8 to accurately weld the first working area 81 and the second working area 82.
[0071] [Variations] The technology according to the present disclosure has been described in detail above based on various examples. However, the present disclosure is not limited to the above examples. The technology according to the present disclosure can be modified in various ways without departing from the spirit of the present disclosure.
[0072] In the above example, the camera 4 detects the workpiece position, but other types of sensors such as a laser sensor may also detect the workpiece position.
[0073] In the above example, the robot system 1 (robot control system 10) controls the robot 2 based on the workpiece position, but the robot system does not have to have such a function. In relation to this modification, the robot system does not have to adjust the designated point based on the workpiece position. Therefore, the robot system does not have to have a functional module equivalent to the adjustment unit 14. In relation to this, the robot system does not have to have a functional module equivalent to the path generation unit 15.
[0074] The simulation unit does not need to virtually execute a task, i.e., a work scene in which the robot processes a workpiece, and therefore the robot system does not need to include a functional module equivalent to the task memory unit 12.
[0075] A robot system (robot control system) may determine constraints to control two or more robots operating in coordination. Each of the two or more robots has one or more drive axes. Thus, a robot system may include two or more robots, each having one or more drive axes, as a robot with multiple drive axes. For example, a robot system may include a main robot that performs a main task on a workpiece, such as welding or painting, and an auxiliary robot that supports or moves the workpiece for that task. Each of the main robot and the auxiliary robot may have any number of drive axes. For example, the main robot may be a six-axis robot or a seven-axis robot. Examples of auxiliary robots include a one-axis, two-axis, or three-axis positioner and a robot with four or more axes.
[0076] In such an example of cooperative operation, the robot system virtually executes the posture of each robot when the end effector of one of the two or more robots is positioned at a specified point as a simulated posture of each robot in cooperative operation. The robot system calculates the margin for each robot obtained from the simulated posture and the limit posture, and determines constraint conditions based on each margin. The robot system may set a drive axis of one of the two or more robots in cooperative operation as a redundant axis and determine a position on the redundant axis as a constraint condition. For example, the robot system may set one of one or more drive axes of the main robot or one of one or more drive axes of the auxiliary robot as a redundant axis and determine a position on the redundant axis as a constraint condition. The above process flow S1 can also be used when determining constraint conditions for cooperative operation and controlling each robot.
[0077] The hardware configuration of the system is not limited to the implementation of each functional module by executing a program. For example, at least some of the functional modules may be configured with logic circuits specialized for the respective functions, or may be configured with an ASIC (Application Specific Integrated Circuit) that integrates such logic circuits.
[0078] The processing steps of the method executed by at least one processor are not limited to the above examples. For example, some of the steps or processes described above may be omitted, or the steps may be performed in a different order. Furthermore, any two or more of the steps described above may be combined, or some of the steps may be modified or deleted. Alternatively, other steps may be performed in addition to the steps described above.
[0079] When comparing the magnitude of two numbers within a computer system or computer, either of the two criteria "greater than or equal to" and "greater than" can be used, or either of the two criteria "less than or equal to" and "under".
[0080] [Note] As can be seen from the various examples above, the present disclosure includes the following aspects. (Appendix 1) a robot disposed in a real workspace and having a plurality of drive axes with degrees of freedom for moving an end effector; a simulation unit that virtually executes a simulation posture, which is the posture of the robot when the end effector is positioned at a specified point, by simulating the posture based on a robot model representing the robot; a determination unit that determines a constraint condition for at least one of the plurality of drive axes at the specified point based on a margin obtained from the simulation posture and a limit posture of the robot; a robot control unit that controls the robot based on the constraint conditions; A robot system comprising: (Appendix 2) the plurality of drive shafts includes a redundant shaft; the determination unit determines one position on the redundant axis as the constraint condition. 10. The robotic system of claim 1. (Appendix 3) Further, a sensor is provided to detect the actual position of a workpiece present in the actual working space as a workpiece position, the robot control unit controls the robot to process the workpiece based on the constraint condition and the workpiece position detected by the sensor. 3. The robotic system of claim 1 or 2. (Appendix 4) an adjustment unit that adjusts the designated point based on the work position detected by the sensor; the robot control unit controls the robot to process the workpiece based on the adjusted designated point. 4. The robotic system of claim 3. (Appendix 5) 5. The robot system of claim 4, further comprising a path generating unit that generates a path for moving the end effector to the adjusted designated point. (Appendix 6) further comprising a task storage unit that stores a task for processing the work, The simulation unit a start position where the end effector starts to act on the workpiece in the task is set as the specified point; a work scene in which the robot processes the workpiece by positioning the end effector at the start position in the simulation posture is virtually executed by the simulation; the determination unit determines the constraint condition for causing the end effector to act on the workpiece. 6. A robot system according to any one of appendices 1 to 5. (Appendix 7) the task storage unit stores two or more of the tasks; The simulation unit setting the designated point for each of the two or more tasks; Virtually executing the work scene including the two or more tasks under a condition in which the position of each of the at least one drive shaft among the plurality of drive shafts is fixed at a common position that is the same between the two or more tasks; the determination unit determines the constraint condition common to the two or more tasks based on the margin for each of the two or more tasks. 7. The robotic system of claim 6. (Appendix 8) the simulation unit virtually executes the simulation posture for each of a plurality of candidate positions set on the redundant axis, The determination unit calculating the margin for each of the plurality of candidate positions based on the simulation attitude and the limit attitude at each of the plurality of candidate positions; determining one of the plurality of candidate positions as the constraint condition based on the margin of each of the plurality of candidate positions; 10. The robotic system of claim 2. (Appendix 9) the robot has a traveling axis as the drive axis, The redundant axis is the traveling axis. 10. The robotic system of claim 2. (Appendix 10) the robot is a vertical articulated robot, the robot has seven or more drive shafts as the plurality of drive shafts, The redundant shaft is one of the seven or more drive shafts. 10. The robotic system of claim 2. (Appendix 11) The robots are two or more robots that operate in cooperation with each other, each of the two or more robots has one or more of the drive shafts; The redundant axis is the drive axis of one of the two or more robots in the cooperative operation. 10. The robotic system of claim 2. (Appendix 12) A robot control system for controlling a robot arranged in a real workspace and having a plurality of drive axes with degrees of freedom for moving an end effector, the robot control method being executed by the robot control system having at least one processor, the method comprising: a step of virtually executing a simulation posture, which is a posture of the robot when the end effector is positioned at a specified point, by simulation based on a robot model representing the robot; determining a constraint condition for at least one of the plurality of drive axes at the specified point based on a margin obtained from the simulation posture and a limit posture of the robot; controlling the robot based on the constraints; A robot control method comprising: (Appendix 13) A robot control program for causing a computer to function as a robot control system that controls a robot that is placed in a real workspace and has a plurality of drive axes with degrees of freedom for moving an end effector, a step of virtually executing a simulation posture, which is a posture of the robot when the end effector is positioned at a specified point, by simulation based on a robot model representing the robot; determining a constraint condition for at least one of the plurality of drive axes at the specified point based on a margin obtained from the simulation posture and a limit posture of the robot; controlling the robot based on the constraints; A robot control program that causes the computer to execute the above.
[0081] According to Supplements 1, 12, and 13, a simulated posture of the robot, which is the posture when the end effector is positioned at a specified point, is obtained by simulation. Then, a constraint condition for at least one drive axis to be imposed when controlling the robot is determined based on a margin obtained from the simulated posture and the limit posture of the robot. Because the constraint condition for the robot is determined taking into account this margin, even if the actual situation around the robot differs from a pre-assumed situation, the posture of the robot can be corrected to match the actual situation, and the end effector can be positioned at the specified point as planned. In other words, the robot can be operated appropriately even if the actual situation around the robot differs from a pre-assumed situation.
[0082] According to Supplementary Note 2, since the position on the redundant axis is determined as a constraint condition, each of one or more drive axes other than the redundant axis that are directly related to the basic operation of the robot can be corrected according to the actual situation, thereby making it possible to position the end effector at a specified point as expected.
[0083] According to Appendix 3, in addition to the constraint conditions determined based on the simulation, the actual position (workpiece position) of the actual workpiece to be processed by the robot is taken into consideration, and the robot is controlled to process the workpiece under the constraint conditions. The actual situation may differ from the situation assumed in the simulation, for example, the actual position of the workpiece may differ from the position assumed in the simulation. By detecting the actual position of the actual workpiece as the workpiece position using a sensor and referring to that workpiece position, it is possible to reliably align the robot's posture with the workpiece position and position the end effector at the specified point as planned.
[0084] According to Supplementary Note 4, the designated point at which the end effector is positioned is adjusted based on the actual position of the actual workpiece (workpiece position), and the robot is controlled based on the adjusted designated point. Since the designated point used in the simulation is corrected based on the workpiece position, the end effector can be positioned at the designated point as planned.
[0085] According to Supplementary Note 5, a path for moving the end effector to the adjusted specified point is generated, so that the real end effector can be reliably guided to the specified point.
[0086] According to Supplementary Note 6, the starting position where the end effector begins to act on the workpiece in a task is set as a specified point, and the execution of the task based on that setting is simulated. Then, based on the results of the simulation, constraint conditions for the end effector to act on the workpiece are determined. Since the constraint conditions are determined taking into consideration not only the simulation posture but also the entire task (i.e., the entire processing of the workpiece), the robot posture can be corrected to suit the actual situation while completing the actual task.
[0087] According to Supplementary Note 7, two or more tasks are each simulated, and a constraint condition (common constraint condition) common to the two or more tasks is determined based on the margin of each task. For each task, the common constraint condition is determined taking into consideration not only the simulated posture but also the entire task, so that two or more real tasks can be efficiently completed while correcting the posture of the robot in accordance with the actual situation.
[0088] According to Supplementary Note 8, the margin at each candidate position is calculated while changing the candidate position, and one candidate position is determined as a constraint condition based on the margin at each of the multiple candidate positions. By such a search process, it is possible to more reliably determine constraint conditions that enable the robot to operate appropriately even when the actual situation around the robot differs from what was previously assumed.
[0089] According to Supplementary Note 9, since the position on the traveling axis is determined as a constraint condition, each of the remaining drive axes directly related to the basic operation of the robot can be corrected according to the actual situation. Therefore, it becomes possible to position the end effector at a specified point as planned.
[0090] According to Supplementary Note 10, since the position of one drive axis of a vertical articulated robot having seven or more drive axes is determined as a constraint condition, each of the remaining drive axes directly related to the basic operation of the robot can be corrected in accordance with the actual situation, thereby making it possible to position the end effector at a specified point as planned.
[0091] According to Supplementary Note 11, in a cooperative operation by two or more robots, the position of one drive axis of one robot is determined as a constraint condition. As a result, each of the remaining drive axes directly related to the basic operation of each robot in the cooperative operation can be corrected in accordance with the actual situation. Therefore, it becomes possible to position the end effector at a specified point as planned in the cooperative operation. [Explanation of symbols]
[0092] 1...robot system, 2...robot, 2a...end effector, 3...robot controller, 4...camera, 8...work, 9...work space, 10...robot control system, 11...simulation unit, 12...task memory unit, 13...determination unit, 14...adjustment unit, 15...path generation unit, 16...robot control unit, 80...work area, 81...first work area, 82...second work area, 201...approach position, 202...start position, 203...end position, 204...retraction position.
Claims
1. a robot disposed in a real workspace and having a plurality of drive axes with degrees of freedom for moving an end effector; a simulation unit that virtually executes a simulation posture, which is the posture of the robot when the end effector is positioned at a specified point, by simulating the posture based on a robot model representing the robot; a determination unit that determines a constraint condition for at least one of the plurality of drive axes at the specified point based on a margin obtained from the simulation posture and a limit posture of the robot; a robot control unit that controls the robot based on the constraint conditions; A robot system comprising:
2. the plurality of drive shafts includes a redundant shaft; the determination unit determines one position on the redundant axis as the constraint condition. The robot system of claim 1 .
3. Further, a sensor is provided to detect the actual position of a workpiece present in the actual working space as a workpiece position, the robot control unit controls the robot to process the workpiece based on the constraint condition and the workpiece position detected by the sensor. The robot system of claim 1 .
4. an adjustment unit that adjusts the designated point based on the work position detected by the sensor; the robot control unit controls the robot to process the workpiece based on the adjusted designated point. The robot system according to claim 3 .
5. The robot system according to claim 4 , further comprising a path generating unit that generates a path for moving the end effector to the adjusted designated point.
6. further comprising a task storage unit that stores a task for processing the work, The simulation unit a start position where the end effector starts to act on the workpiece in the task is set as the specified point; a work scene in which the robot processes the workpiece by positioning the end effector at the start position in the simulation posture is virtually executed by the simulation; the determination unit determines the constraint condition for causing the end effector to act on the workpiece. The robot system according to any one of claims 1 to 5.
7. the task storage unit stores two or more of the tasks; The simulation unit setting the designated point for each of the two or more tasks; Virtually executing the work scene including the two or more tasks under a condition in which a position of each of the at least one drive shaft among the plurality of drive shafts is fixed at a common position that is the same between the two or more tasks; the determination unit determines the constraint condition common to the two or more tasks based on the margin of each of the two or more tasks. The robot system according to claim 6 .
8. the simulation unit virtually executes the simulation posture for each of a plurality of candidate positions set on the redundant axis, The determination unit calculating the margin for each of the plurality of candidate positions based on the simulation attitude and the limit attitude at each of the plurality of candidate positions; determining one of the plurality of candidate positions as the constraint condition based on the margin of each of the plurality of candidate positions; The robot system according to claim 2 .
9. the robot has a traveling axis as the drive axis, The redundant axis is the traveling axis. The robot system according to claim 2 .
10. the robot is a vertical articulated robot, the robot has seven or more drive shafts as the plurality of drive shafts, the redundant shaft is one of the seven or more drive shafts; The robot system according to claim 2 .
11. the robots are two or more robots that operate in cooperation with each other, each of the two or more robots has one or more of the drive shafts; the redundant axis is the drive axis of one of the two or more robots in the cooperative operation; The robot system according to claim 2 .
12. A robot control system for controlling a robot arranged in a real workspace and having a plurality of drive axes with degrees of freedom for moving an end effector, the robot control method being executed by the robot control system having at least one processor, the method comprising: a step of virtually executing a simulation posture, which is a posture of the robot when the end effector is positioned at a specified point, by simulation based on a robot model representing the robot; determining a constraint condition for at least one of the plurality of drive axes at the specified point based on a margin obtained from the simulation posture and a limit posture of the robot; controlling the robot based on the constraints; A robot control method comprising:
13. A robot control program for causing a computer to function as a robot control system that controls a robot that is placed in a real workspace and has a plurality of drive axes with degrees of freedom for moving an end effector, a step of virtually executing a simulation posture, which is a posture of the robot when the end effector is positioned at a specified point, by simulation based on a robot model representing the robot; determining a constraint condition for at least one of the plurality of drive axes at the specified point based on a margin obtained from the simulation posture and a limit posture of the robot; controlling the robot based on the constraints; A robot control program that causes the computer to execute the above.
Citation Information
Patent Citations
Robot and its control method
JP1993220681A
Posture generation method for industrial robots
JP3902310B2