Robot control system, robot control device, robot control method, and program
The integrated robot control system addresses accuracy issues in multi-robot systems by using an integrated controller to distribute correction amounts based on actual robot states, enhancing work efficiency and task success rates through improved end effector positioning.
Patent Information
- Application Number
- JP2024042680
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-18
- Publication Date
- 2025-10-01
AI Technical Summary
Conventional robot control systems with individual controllers for multiple robots lack accuracy, leading to reduced work efficiency and task success rates, particularly in tasks requiring precise fingertip positioning.
A robot control system that integrates multiple robots with individual controllers, utilizing an integrated controller to acquire and distribute correction amounts based on actual robot states and performance, prioritizing high-tracking axes for improved accuracy and efficiency.
Enhances work efficiency and task success rates by improving the position tracking ability of the end effector, especially in scenarios involving robot arms, hands, and carts, by preferentially using high-tracking performance axes for feedback compensation.
Smart Images

Figure 2025143013000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a robot control system, a robot control device, a robot control method, and a program. [Background technology]
[0002] Systems have been proposed that integrate and control robots and peripheral devices (see, for example, Patent Document 1). In such systems, for example, when a robot arm, hand, and cart are combined and used as a single robot, each has its own individual controller. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent Publication No. 2021-20259 Summary of the Invention [Problem to be solved by the invention]
[0004] However, conventional technologies have individual controllers, so they cannot guarantee the accuracy of the entire system, for example, the position of the fingertip in three-dimensional space, which results in reduced work efficiency and task success rates.
[0005] The present invention has been made in consideration of the above-mentioned problems, and aims to provide a robot control system, a robot control device, a robot control method, and a program that can improve work efficiency and task success rates. [Means for solving the problem]
[0006] (1) In order to achieve the above object, a robot control system according to one embodiment of the present invention is a control system for a composite robot that uses a combination of two or more robots, each controlled by an individual controller, and includes: a controller that acquires the state of the robot and issues drive commands for the robot; and an integrated controller that controls the combined state of the two or more robots, wherein the integrated controller includes an acquisition unit that acquires the robot command values and the state of the robot held by each of the controllers; a calculation unit that calculates, from the state of the robot, an appropriate correction amount for the composite robot that combines two or more robots; and a distribution unit that distributes the correction amount to each of the controllers.
[0007] (2) In the robot control system according to one aspect of (1) above, the calculation unit may calculate the correction amount from actual information on any one of the tracking performance and movable angle limit of each drive axis of the robot.
[0008] (3) In the robot control system according to one aspect of (1) or (2), the calculation unit: The correction amount may be calculated by giving priority to an axis of the robot with high tracking performance.
[0009] (4) In a robot control system according to any one of the above (1) to (3), the integrated controller may include a part designation unit that designates a part on one of the plurality of robots to be operated, a degree of freedom determination unit that determines the degrees of freedom to be used among the plurality of robots, and a joint angle calculation unit that receives as input the state quantity of the robot, the part on the robot to be operated, a target position of the part on the robot to be operated, and the degrees of freedom to be used, and calculates a joint angle target for moving the part on the robot of the plurality of robots to a target value of the specific part.
[0010] (5) In order to achieve the above object, a robot control device according to one embodiment of the present invention is a controller that acquires the state of the robot and issues drive commands for the robot, and is a control device for a composite robot that uses a combination of two or more robots, each of which is controlled by an individual controller, and is equipped with an acquisition unit that controls the combined state of the two or more robots and acquires the robot command values and the states of the robots held by each of the controllers, a calculation unit that calculates, from the state of the robots, an appropriate correction amount for the composite robot that combines two or more robots, and a distribution unit that distributes the correction amount to each of the controllers.
[0011] (6) In order to achieve the above object, a robot control method according to one embodiment of the present invention is a control method for a control device of a composite robot that uses a combination of two or more robots, each of which is controlled by an individual controller, and the controller acquires the state of the robot and issues drive commands for the robot, wherein an acquisition unit acquires the robot command values and the state of the robot held by each of the controllers, a calculation unit calculates an appropriate correction amount for the composite robot that combines two or more of the robots from the state of the robot, and a distribution unit distributes the correction amount to each of the controllers.
[0012] (7) In order to achieve the above object, a program according to one embodiment of the present invention is a controller that acquires the state of a robot and issues drive commands for the robot, and the program causes a computer of a control device for a composite robot that uses a combination of two or more robots, each controlled by an individual controller, to acquire the robot command values and the state of the robot held by each controller, calculate an appropriate correction amount for the composite robot that combines two or more robots from the state of the robot, and distribute the correction amount to each controller. [Effects of the Invention]
[0013] According to the above (1) to (7), it is possible to improve work efficiency and the success rate of tasks. [Brief explanation of the drawings]
[0014] [Figure 1] 1 is a diagram illustrating an example of a schematic configuration of a robot control system according to a first embodiment. [Figure 2] 1 is a diagram illustrating an example of the configuration of a robot control system according to a first embodiment. [Figure 3] 3 is a flowchart of processing performed by the robot control device according to the first embodiment. [Figure 4] FIG. 10 is a diagram illustrating an example of the configuration of a robot control system according to a second embodiment. [Figure 5] 10A and 10B are diagrams illustrating examples of parts and behaviors when parts are changed in the second embodiment. [Figure 6] This is an example of changing the degree of freedom depending on the contact point, and is a diagram showing the robot as seen from the front. [Figure 7] 10 is a flowchart of a process performed by a robot control system according to a second embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0015] Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the drawings used in the following description, the scale of each component is appropriately changed so that each component can be recognized. In all the drawings for explaining the embodiments, the same reference numerals are used for components having the same functions, and repeated explanations will be omitted. Furthermore, in this application, "based on XX" means "based on at least XX," and includes cases where it is based on other elements in addition to XX. Furthermore, "based on XX" is not limited to cases where XX is used directly, but also includes cases where it is based on XX that has been calculated or processed. "XX" is any element (for example, any information).
[0016] First Embodiment In this embodiment, two or more robots, each having a controller, are combined and controlled as shown in Fig. 1. Fig. 1 is a diagram showing an example of a schematic configuration of a robot control system in this embodiment. As shown in Fig. 1, the robot control system 1 includes, for example, a first robot 2-1, a second robot 2-2, a third robot 2-3, a first controller 3-1, a second controller 3-2, a third controller 3-3, a motion generation unit 4 (robot control device), and an integrated controller 5 (robot control device).
[0017] The first robot 2-1 is, for example, a hand. The second robot 2-2 is, for example, an arm. The third robot 2-3 is a cart. Each robot 2 (2-1, 2-2, 2-3) is provided with sensors such as encoders, force sensors, etc. at joints, etc. It is preferable that a combination of multiple robots 2 is one that interacts with each other when working together.
[0018] The first controller 3-1 acquires actual measurements detected by the sensors of the first robot 2-1, and outputs command values in accordance with the control of the motion generator 4 and the integrated controller 5 to control the first robot 2-1. The second controller 3-2 acquires actual measurements detected by the sensors of the second robot 2-2, and outputs command values in accordance with the control of the motion generator 4 and the integrated controller 5 to control the second robot 2-2. The third controller 3-3 acquires the actual measurement values detected by the sensors of the first robot 2-1, and outputs command values according to the control of the motion generator 4 and the integrated controller 5 to control the third robot 2-3.
[0019] The action generator 4 outputs the generated command values to the first controller 3-1, the second controller 3-2, the third controller 3-3 and the integrated controller 5.
[0020] The central controller 5 acquires command values from the motion controller 4, acquires actual measured values from each robot 2 (2-1, 2-2, 2-3), and generates a correction amount (also called a "compensation amount") to be fed back using the acquired information. The central controller 5 distributes the generated correction amount and outputs it to the first controller 3-1, the second controller 3-2, and the third controller 3-3.
[0021] That is, in this embodiment, the individual controllers 3 (3-1, 3-2, 3-3) remain independent, and the integrated controller 5 acquires the command values and measured values of the entire system and distributes the correction amounts to each controller 3 (3-1, 3-2, 3-3).
[0022] [Robot control system configuration] Next, a description will be given of an example of the configuration of the robot control system 1. Fig. 2 is a diagram showing an example of the configuration of the robot control system according to this embodiment. As shown in FIG. 2, the robot control system 1 includes, for example, a first robot 2-1, a second robot 2-2, a first control unit 3-1, a second control unit 3-2, and a control device 6 (robot control device).
[0023] The robot 2-n (n is an integer equal to or greater than 1) includes, for example, an actuator 21-n, a sensor 22-n, and a communication unit 23-n. The number of robots 2 may be two or more. The robot 2 may include a drive circuit that drives the actuator 21-n. The controller 3-n includes, for example, a control unit 31-n and a communication unit 32-n. The control device 6 includes, for example, an action generator 4, an integrated controller 5, an acquisition unit 61, an output unit 62, and a storage unit 63. The integrated controller 5 also includes, for example, a calculation unit 51 and a distribution unit 52.
[0024] The robot 2-n transmits and receives various information to and from the controller 3-n via a wired or wireless network NW-1, and transmits and receives various information to and from the control device 6 via a wired or wireless network NW-2.
[0025] [Functions of each device in the robot control system] Next, the functions of each device in the robot control system 1 will be described with reference to FIG. (Robot 2) An actuator 21-n is attached to each joint. The sensor 22-n is, for example, a six-axis sensor attached to a joint, a tactile sensor attached to a finger, a force sensor, etc. The six-axis sensor detects forces along three axes (x, y, z) and moments along three axes (α, β, γ).
[0026] The communication unit 23-n transmits the actual measurement value detected by the sensor 22-n to the controller 3-n corresponding to the robot 2-n and to the control device 6. The communication unit 23-n acquires the drive command value output by the corresponding controller 3-n. The data output by the robot 2-n includes identification information that can identify the robot 2-n. The data acquired by the robot 2-n also includes identification information that can identify that the data is addressed to the robot 2-n.
[0027] (Controller 3) The control unit 31-n generates a drive command value using the actual measurement value acquired by the communication unit 32-n, the command value output by the action generator 4, and the correction amount output by the integrated control device 5, and controls the movement of the corresponding robot 2-n according to the generated drive command value. That is, each control unit 31 acquires the state of the respective robot (at least the actual measurement value), and outputs a drive command for the robot based on the acquired state of the robot.
[0028] The communication unit 32-n acquires actual measurements from the corresponding robot 2-n. The communication unit 32-n outputs drive command values to the corresponding robot 2-n. The communication unit 32-n acquires command values from the motion generator 4. The communication unit 32-n acquires correction amounts from the central controller 5.
[0029] (Control device 6) The motion generator 4 generates a command value for each robot 2 in response to, for example, an instruction from an operator. The motion generator 4 outputs the generated command value to the corresponding controller 3-n. The motion generator 4 also outputs a command value for the entire system to the integrated controller 5. Note that the command value generated by the motion generator 4 is a command value that does not take into account the tracking ability of each robot 2.
[0030] The central controller 5 acquires the command values held by each controller 3 and the state (actual measured values) of the robot from the information acquired by the acquisition unit 61. The central controller 5 may have some of the functions of the acquisition unit 61 and acquire the command values held by each controller 3 and the state (actual measured values) of the robot. The central controller 5 may also be equipped with the motion generator 4. The central controller 5 acquires and uses actual measured values that are not input to the motion generator 4, and therefore generates correction amounts taking into account the responsiveness of each robot 2, etc.
[0031] The calculation unit 51 of the central controller 5 calculates the amount of correction using the actual measurement values acquired from each robot 2 and the command value for the entire system acquired from the motion generator 4. The calculation unit 51 calculates the amount of correction by, for example, preferentially using an axis of the robot 2 with high tracking performance. Note that, for example, if there is a non-negligible amount of delay between the central controller 5, the controller 3, and the robot 2, the calculation unit 51 may also calculate the amount of correction taking the amount of delay into consideration.
[0032] The distribution unit 52 of the integrated controller 5 distributes the calculated correction amount to each robot 2 and outputs it to the controller 3 via the output unit 62. The distribution unit 52 distributes the correction amount to each robot 2 based on, for example, the tracking performance and movable angle limit of each drive axis stored in the memory unit 63. As a result, the central controller 5 controls a combination of multiple robots 2. The central controller 5 may also use information on tasks, work contents, and environments to distribute the amount of correction.
[0033] The acquisition unit 61 acquires actual measured values from each robot 2. The acquisition unit 61 acquires command values for the entire system from the motion generator 4.
[0034] The output unit 62 outputs the correction amounts distributed to each robot 2 output by the integrated control unit 5 to the controller 3.
[0035] The storage unit 63 stores, for example, programs, mathematical formulas, thresholds, identification information of the robot 2, identification information of the controller 3, etc. used by each part of the control device 6. The storage unit 63 stores, for each robot 2, the tracking performance and movable angle limit of each drive axis.
[0036] [Example of processing procedure] Next, a description will be given of an example of a processing procedure performed by the robot control system 1. Fig. 3 is a flowchart of the processing performed by the robot control device according to this embodiment.
[0037] (Step S1) The action generation unit 4 of the control device 6 acquires, for example, an instruction input by an operator. Note that if an environmental sensor equipped with, for example, an image capture device is installed in the robot workspace, the action generation unit 4 may estimate the work content based on an image captured by the environmental sensor and generate an instruction based on the estimated work content.
[0038] (Step S2) Based on the acquired instructions, the motion generator 4 generates command values for each robot 2. Subsequently, the motion generator 4 outputs the generated command values to each of the controllers 3.
[0039] (Step S3) The controller 3 acquires an actual measurement value from the corresponding robot 2. The speed value includes the state of the robot 2. For example, if the robot 2 is a hand, the state of the robot 2 includes information such as the finger joint angles and positions. For example, if the robot 2 is an arm, the state of the robot 2 includes information such as the arm joint angles, positions, and shoulder joint angles. The controller 3 uses the acquired actual measurement value and command value to generate a drive command value for the corresponding robot 2.
[0040] (Step S4) The controller 3 drives the corresponding robot 2 using the generated drive command value.
[0041] (Step S5) The integrated controller 5 acquires the command values for the entire system from the motion controller 4, and acquires the actual measured values from each of the robots 2.
[0042] (Step S6) The calculation unit 51 of the integrated controller 5 calculates the amount of correction using the acquired command value of the entire system and the actual measurement value.
[0043] (Step S7) The distribution unit 52 of the central controller 5 distributes the acquired correction amount to the plurality of controllers 3 based on the tracking performance and movable angle limit of each drive axis.
[0044] (Step S8) The controller 3 outputs the drive command value to which the acquired correction amount has been added.
[0045] (Step S9) The controller 3 drives the corresponding robot 2 using the generated drive command value.
[0046] <Example of correction amount distribution> The plurality of robots 2 are assumed to be composed of, for example, a hand, an arm, and a cart. The integrated controller 5 performs feedback compensation by, for example, not using cart axes with low tracking performance, but preferentially using arm axes with high tracking performance.
[0047] Assume that the multiple robots 2 are composed of, for example, a first robot 2-1, a second robot 2-2, and a third robot 2-3. Assume that one task is performed using these three robots 2. Also, assume that the three robots 2-1, 2-2, and 2-3 have variations in tracking ability. In such a case, the integrated controller 5 may improve the tracking ability by, for example, allocating a larger amount of correction to the robot 2 with poor tracking ability than to the robot 2 with good tracking ability.
[0048] The distribution priority and the like may be stored in advance in the storage unit 63, or may be input or set by the worker. Alternatively, the integrated controller 5 may set the priority and the like according to the task, work content, environment (for example, the relationship between the robot 2 and surrounding walls, etc.) based on an image captured by an environmental sensor (not shown) installed in the robot work space. Furthermore, the central controller 5 may be configured to sequentially change the distribution ratio depending on the working state.
[0049] As described above, in this embodiment, an integrated controller 5 is added in addition to the individual controllers 3. The integrated controller 5 acquires information on command values and actual measurement values individually held by each controller 3. The integrated controller 5 also calculates an appropriate feedback correction amount for the entire system from actual machine information such as the tracking performance and movable angle limit of each drive axis. Furthermore, the integrated controller 5 distributes the calculated correction amount to each controller.
[0050] As a result, according to this embodiment, the position tracking ability of the end effector is improved for the entire system, thereby improving work efficiency and the success rate of tasks. For example, in a situation where the fingertip position of a robot 2 consisting of a robot arm, hand, and cart is important, this embodiment can improve the success rate of tasks in which the fingertip position is important by using arm axes with high tracking performance preferentially for feedback compensation, rather than using cart axes with low tracking performance.
[0051] [Variations] The robot 2 may be operated, for example, by an operator operating an operation unit (not shown) while watching the robot 2, or the robot 2 may perform the work automatically. Alternatively, a worker may wear an HMD (head mounted display) on his / her head and an operation unit such as a data glove on his / her hand to remotely control a plurality of robots 2.
[0052] Second Embodiment In this embodiment, for example, in a robot with a hand equipped with multiple fingers, the tip of the hand is not fixed as an end effector as in conventional technology, but the end effector is switched depending on the operation content and the scene. Thus, in this embodiment, an "end effector" is a part that can be used in a task. The usable part is, for example, the fingertips, wrist, arm, etc. of the end effector (hand) equipped on the robot.
[0053] [Robot control system configuration] Next, a configuration example of the robot control system 1A will be described. Fig. 4 is a diagram showing a configuration example of the robot control system according to this embodiment. As shown in FIG. 2, the robot control system 1A includes, for example, a first robot 2-1, a second robot 2-2, a first control unit 3-1, a second control unit 3-2, a control device 6A (robot control device), and an environment sensor 7.
[0054] The controller 3 (3-1, 3-2, . . . ) includes, for example, a control unit 31 (31-1, 31-2, . . . ) and a communication unit 32 (32-1, 32-2, . . . ). The control device 6A includes, for example, a motion generator 4, an integrated controller 5A, an acquisition unit 61, an output unit 62A, and a storage unit 63. The integrated controller 5A includes, for example, a calculation unit 51, a distribution unit 52, a part designation unit 53, a degree of freedom determination unit 54, and a joint angle calculation unit 55. The environment sensor 7 includes, for example, a sensor 71 and a communication unit 72.
[0055] (Environmental Sensor 7) The environmental sensor 7 is installed, for example, in the robot workspace. The sensor 71 is, for example, an RGB-D camera that acquires RGB (red, green, blue) information and depth information. Note that the information is acquired, for example, at predetermined time intervals. The communication unit 72 outputs the detection value detected by the sensor 71 to the controller 3A (3A-1, 3A-2, ...). The data output by the environmental sensor 7 includes identification information that can identify the environmental sensor 7. The environmental sensor 7 may also output the detection value to the control device 6.
[0056] (Control device 6A) The part designation unit 53 designates the part and number of parts on a specific robot 2 to be operated among the robots 2. The part designation unit 53 may designate a part by acquiring information indicating the part input by the operator. Alternatively, the part designation unit 53 may designate a part by estimating the relationship between the operator's operation intention (see, for example, Japanese Patent Application No. 2022-006498) and the operation target object based on information acquired from the environmental sensor 7. The part to be set is not limited to one, and may be multiple (for example, the thumb and index finger). The part designation unit 53 designates a part for at least one of the multiple robots 2.
[0057] The degree of freedom determination unit 54 determines the degrees of freedom to be used for each designated part, for example, depending on the task or the environment. The degree of freedom determination unit 54 may determine the degrees of freedom based on, for example, the detection results of the environmental sensor 7 or the estimated operation content, or may determine the degrees of freedom based on the degrees of freedom input by the operator. For example, when the robot 2 performs a task while the arm is in contact with a wall, the contact with the wall may be detected based on the detection results of the force sensor or the environmental sensor 7 provided in the robot 2, or may be input by the operator. The degree of freedom determination unit 54 determines the degrees of freedom for at least one of the multiple robots 2.
[0058] The joint angle calculation unit 55 receives as input the robot state quantity, the part on the robot 2 to be operated, the target position of the part on the robot 2 to be operated, and the degrees of freedom to be used, and calculates the target joint angle value of the robot 2 moving a specific part on the robot 2.
[0059] The output unit 62A outputs the joint angle target value calculated by the joint angle calculation unit 55 to the controller 3A corresponding to the robot 2 being used, or to each of the controllers 3A.
[0060] (Controller 3A) In addition to the processing performed by the control unit 31, the control unit 31A generates a drive command by correcting, for example, the joint angle target value calculated by the joint angle calculation unit 55 as a command value with a correction amount. Note that the correction target and correction amount are not limited to the joint angle, and may be at least one of the joint angle, velocity, acceleration, and hand position. Note that the correction amount is used as a correction amount for the command value received by each control unit 31A from the movement generation unit 4. For example, if the correction amount is x' and the original command value is x, then x+x' becomes the corrected command value.
[0061] In addition to the information acquired by the communication unit 32, the communication unit 32A acquires from the robot 2 a first sensor value detected by the sensor 213, acquires a first sensor value detected by the environment sensor 7, and acquires the operation result of the operator. The communication unit 32A acquires a joint angle target value from the control device 6A. The communication unit 32A outputs a drive command calculated by the control unit 31A to the robot 2.
[0062] The part designation unit 53, the degree of freedom determination unit 54, and the joint angle calculation unit 55 may be included in each controller 3A. Alternatively, the part designation unit 53, the degree of freedom determination unit 54, and the joint angle calculation unit 55 may be included in the motion generator 4. In this case, the integrated controller 5A may be equipped with the motion generator 4.
[0063] [Joint angle target value] Next, we will explain an example of a method for generating a joint angle target value performed by the joint angle calculation unit 55. The joint angle calculation unit 55 includes, for example, an inverse kinematics calculation unit 552. A determiner 551 corresponds to the part designation unit 53 and the degree of freedom determination unit .
[0064] The decision unit 551 is, for example, a trained model. The first decision unit 551-1 corresponds to the part designation unit 53, and the second decision unit 551-2 corresponds to the degree of freedom determination unit 54. Note that the decision unit 551 outputs the end effector command value as it is, since the end effector command value is a command value indicating where to move the designated end effector part.
[0065] During learning, the first decision device 551-1 receives "information necessary to determine the part of the end effector (part on the robot)" and training data that is the correct answer to output, and outputs "the part of the end effector." When in use, the first determiner 551-1 receives "information necessary to determine the part of the end effector (part on the robot)" and outputs "part of the end effector." The "information necessary to determine the end effector's location" refers to at least one of the following: objects around the robot, the work content, objects around each of the candidate locations, and the position information or posture information of each of the candidate locations.
[0066] During learning, the second decision device 551-2 receives "information necessary to determine usable degrees of freedom" and training data that is the correct answer to output, and outputs "usable degrees of freedom." When in use, the second decision device 551-2 receives "information necessary to determine the usable degrees of freedom" and outputs "usable degrees of freedom." Furthermore, "information necessary to determine the available degrees of freedom" refers to at least one of the degrees of freedom of each candidate part, objects around the robot, the work content, objects around each candidate part, and position information or posture information of each candidate part.
[0067] The information required to determine the available degrees of freedom may be setting information set by the operator, or may be information based on the detection values of the sensor 22 and the environmental sensor 7. Here, the available degrees of freedom refer to the degrees of freedom of the joints of the specified part, excluding, for example, directions in which they cannot be moved due to the environment. For example, if there is a wall or other object around the specified part, moving the joint in that direction may result in a collision with the wall or other object. For this reason, the degree of freedom determination unit 34 sets the degrees of freedom based on, for example, the detection results of the environmental sensor 7.
[0068] The inverse kinematics calculation unit 552 calculates the objective function C of the following equation (1) using the input "end effector part, available degrees of freedom, end effector command value": all is solved to calculate the joint angle target value.
[0069]
number
[0070] In equation (1), W1 and W2 are weights for the joint angular acceleration task, and are expressed as vectors for the degrees of freedom, so the magnitude of the weights represents the degrees of freedom that can be used. Also, in equation (1), W1 and W2 are parameters to be updated. As shown in equation (1), the objective function is composed of, for example, C1 related to the end effector position and C2 related to the joint angle. Each cost is expressed, for example, by a weighted norm, and the dimension of the weight vector corresponds to the dimension of the cost. For example, the dimension of the weight vector of C2 corresponds to the joint degrees of freedom, and by changing this for each joint, the degrees of freedom that are actively used are controlled. As shown in equation (1), the objective function is composed of, for example, C1 related to the end effector position and C2 related to the joint angle. Each cost is expressed, for example, by a weighted norm, and the dimension of the weight vector corresponds to the dimension of the cost. For example, the dimension of the weight vector of C2 corresponds to the joint degrees of freedom, and by changing this for each joint, the degrees of freedom that are actively used are controlled.
[0071] As shown in equation (1), the end effector part is the objective function of the quadratic programming problem, and the available degrees of freedom are reflected in the weights of the quadratic programming problem. In other words, in this embodiment, mathematical optimization is used to solve the inverse kinematics, an objective function related to the end effector target is added according to the set part, and the weights of the objective function related to the joint angle are changed according to the determined degrees of freedom. Minimizing the norm of the first term in equation (1) means placing (moving) the specified part to a certain position in three-dimensional space. Then, by changing the weights W1 and W2, the weights for the first and second terms are changed, thereby actively controlling the degrees of freedom.
[0072] In the control, the coordinate system used is, for example, a robot coordinate system. Positions in different coordinate systems are converted into the robot coordinate system using a well-known method.
[0073] [Examples of parts and behavior when changing parts] Next, examples of parts and examples of behavior when the parts are changed will be described. Fig. 5 is a diagram showing examples of parts in this embodiment and examples of behavior when the parts are changed. In FIG. 5, reference symbol g11 denotes a fingertip, reference symbol g12 denotes a hand 211, reference symbol g13 denotes a wrist, and reference symbol g14 denotes an arm 212.
[0074] Reference symbol g20 is an example of behavior when the tip g11 of the index finger is set as the part. In this case, the control device 6A issues a joint angle command centered on the tip g11 of the index finger, as shown by the circle g21. In this case, since the specified part is the fingertip, control is performed using the degrees of freedom of the arm and the finger, for example, to achieve this.
[0075] Reference symbol g30 is an example of behavior when the wrist g13 is set as the part. In this case, the control device 6A issues a joint angle command centered on the wrist g13, as shown in circle g31. In this case, since the specified part is the wrist, to achieve this, for example, control is performed using the degrees of freedom of each of the arm and hand.
[0076] [Example of changing the degrees of freedom depending on the contact point] Next, an example of changing the degree of freedom depending on the contact point will be described using the following. Figure 6 shows an example of changing the degree of freedom depending on the contact point, and is a front view of the robot. Note that Figure 6 is an example of the results of a simulation.
[0077] Image g50 in Fig. 6 is a diagram showing the degrees of freedom etc. before the contact point is changed, and image g60 in Fig. 6 is a diagram showing the degrees of freedom etc. after the contact point is changed. Symbol g71 is the fingertip joint, symbol g72 is the wrist joint, symbol g73 is the arm joint, symbol g74 is the first shoulder joint, and symbol g75 is the second shoulder joint. Symbol g76 represents the contact point. Symbol g77 represents the direction of each degree of freedom at each joint.
[0078] Before contact, as shown by the dashed rectangle g51 in the diagram of reference symbol g50, for example, the arm, hand, and fingers are controlled without any restrictions so that all degrees of freedom can be used. In contrast, after contact, as shown by the dashed-line rectangle g61 of symbol g60, the area below the contact point g71 is used without moving the area above the contact point g71, so the available degrees of freedom are restricted (applied to). Note that such switching of the available degrees of freedom is determined by the degree-of-freedom determination unit 54, which determines whether or not an object has come into contact with the contact point based on the detection results of, for example, a sensor provided in the robot 2 or the environmental sensor 7.
[0079] In the above example, an example of controlling one manipulator has been described, but when controlling two manipulators, each manipulator is controlled by the above-mentioned control method. Note that the number of manipulators may be three or more, and in that case, each manipulator may be controlled by the above-mentioned control method.
[0080] [Example of processing procedure] Next, an example of the processing procedure performed by the robot control system 1A will be described with reference to Fig. 7. Fig. 7 is a flowchart of the processing performed by the robot control system according to this embodiment.
[0081] (Step S101) The acquisition unit 61 acquires the operation result input by the operator.
[0082] (Step S102) The acquisition unit 61 acquires a first sensor value (robot state quantity) detected by the sensor 22 from the robot 2. The acquisition unit 61 acquires a first sensor value detected by the environment sensor .
[0083] (Step S103) The part designation unit 53 estimates the relationship between the operator's operation intention and the operation target object based on, for example, information acquired from the environment sensor 7 and the operation result of the operator.
[0084] (Step S104) The part designation unit 53 sets the number and the parts of the robot 2 to be operated based on the estimated operation intention, the detection results of the environmental sensor 7, etc. The part designation unit 53 may also designate the parts by acquiring information indicating the parts designated by the operator.
[0085] (Step S105) The degree of freedom determining unit 54 determines the degree of freedom to be used among the joints of the specified part based on the specified part and the detection results of the environmental sensor 7, for example.
[0086] (Step S106) The inverse kinematics calculation unit 552 of the joint angle calculation unit 55 calculates the joint angle target value using the “part of the end effector, the available degrees of freedom, and the end effector command value” and equation (1). Subsequently, the control device 6A outputs the joint angle target value to the controller 3.
[0087] (Step S107) The control unit 31A of the controller 3A generates a drive command by correcting the joint angle target value as a command value using the correction amount. As described above, the correction target and correction amount are not limited to the joint angle, but may be at least one of the joint angle, velocity, acceleration, and hand position. The control unit 31A transmits the generated drive command to the robot 2 via the communication unit 32A.
[0088] As described above, in this embodiment, the position and number of end effectors are determined based on the judgment of a person or the control device 6A. Also, in this embodiment, the degrees of freedom that can be used are actively determined based on the judgment of a person or the control device 6A. Furthermore, in this embodiment, mathematical optimization is used to solve the inverse kinematics, an objective function related to the end effector target is added according to the determined position and number, and the weight of the objective function related to the joint angle is changed according to the determined degrees of freedom.
[0089] As a result, according to this embodiment, by changing the end effector part depending on the situation, it becomes possible to perform operations suited to the task or scene. Furthermore, according to this embodiment, even when the degrees of freedom are limited due to contact with the environment (for example, when contacting or being close to a wall), it is possible to continue moving with the remaining degrees of freedom, thereby expanding the range of applications.
[0090] In this embodiment, the robot 2 may also be remotely controlled by an operator.
[0091] In addition, a program for implementing all or part of the functions of the control device 6 (or 6A) and the control device 3 in the present invention may be recorded on a computer-readable recording medium, and the program recorded on the recording medium may be loaded into a computer system and executed to perform all or part of the processing performed by the control device 6 (or 6A) and the control device 3. Note that the term "computer system" as used herein includes hardware such as an OS and peripheral devices. The term "computer system" also includes a WWW system equipped with a homepage provision environment (or display environment). The term "computer-readable recording medium" refers to portable media such as flexible disks, optical magnetic disks, ROMs, and CD-ROMs, as well as storage devices such as hard disks built into computer systems. The term "computer-readable recording medium" also includes devices that retain a program for a certain period of time, such as volatile memory (RAM) within a computer system that acts as a server or client when the program is transmitted via a network such as the Internet or a communication line such as a telephone line. Alternatively, some or all of these components may be realized by LSI (Large Scale Integration) such as ASIC (Application Specific Integrated Circuit), FPGA (Field-Programmable Gate Array), GPU (Graphics Processing Unit), or SOC (System On Chip) or hardware (including circuitry), or may be realized by a combination of software and hardware.
[0092] The program may also be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by transmission waves in the transmission medium. Here, the "transmission medium" that transmits the program refers to a medium that has the function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line. The program may also be a program that realizes part of the above-mentioned functions. Furthermore, the program may be a so-called differential file (differential program) that can realize the above-mentioned functions in combination with a program already recorded in the computer system.
[0093] The above describes the form for carrying out the present invention using an embodiment, but the present invention is not limited to such an embodiment, and various modifications and substitutions can be made within the scope that does not deviate from the gist of the present invention. [Explanation of symbols]
[0094] 1, 1A... robot control system, 2, 2-1, 2-2... robot, 3, 3-1, 3-2... , 3A, 3A-1, 3A-2... control unit, 6, 6A... control device, 7... environment sensor, 21, 21-1, 21-2... actuator, 22, 22-1, 22-2... sensor, 23, 23-1, 23-2... communication unit, 31, 31-1, 31-2... , 31A , 31A-1, 31A-2, ··· ...control unit, 32, 32-1, 32-2, ···, 32A, 32A-1, 32A-2, ··· ...communication unit, 4...motion generator, 5...integrated controller, 51...calculation unit, 52...distribution unit, 53...part designation unit, 54...degree of freedom determination unit, 55...joint angle calculation unit, 61...acquisition unit, 62...output unit, 63...storage unit, 71...sensor, 72...communication unit, NW, NW-1, NW-2...network
Claims
1. A control system for a composite robot that uses a combination of two or more robots, each of which is controlled by a separate controller, comprising: a controller that acquires the state of the robot and issues a drive command for the robot; an integrated controller that controls two or more of the robots in a combined state, The integrated controller an acquisition unit that acquires the robot command values and the states of the robots held by the respective controllers; a calculation unit that calculates an appropriate correction amount for the composite robot that is a combination of two or more of the robots based on the state of the robot; a distribution unit that distributes the correction amount to each of the controllers; A robot control system comprising:
2. The calculation unit calculating the correction amount from actual machine information on either one of the tracking performance and movable angle limit of each drive axis of the robot; The robot control system of claim 1 .
3. The calculation unit calculating the correction amount by preferentially using an axis of the robot having high tracking performance; The robot control system according to claim 1 or 2.
4. The integrated controller a part designation unit that designates a part on the robot to be operated among the plurality of robots; a degree of freedom determination unit that determines the degrees of freedom to be used among the plurality of robots; a joint angle calculation unit that receives as input the state quantity of the robot, a part on the robot to be operated, a target position of the part on the robot to be operated, and the degrees of freedom to be used, and calculates a target joint angle for moving the part on the robot of the plurality of robots to a target value of a specific part; The robot control system according to claim 1 or 2, comprising:
5. A control device for a composite robot that uses a combination of two or more robots, each of which is controlled by a separate controller, and a controller that acquires a state of the robot and issues a drive command for the robot, Controlling two or more of the robots in combination, an acquisition unit that acquires the robot command values and the states of the robots held by the respective controllers; a calculation unit that calculates an appropriate correction amount for the composite robot that is a combination of two or more of the robots based on the state of the robot; a distribution unit that distributes the correction amount to each of the controllers; A robot control device comprising:
6. A control method for a control device of a composite robot using a combination of two or more robots, each of which is controlled by a separate controller, and each of which acquires a state of the robot and issues a drive command for the robot, comprising: an acquisition unit acquires the robot command values and the states of the robot held by each of the controllers; a calculation unit calculates an appropriate correction amount for the composite robot that is a combination of two or more of the robots based on the state of the robot; a distribution unit that distributes the correction amount to each of the controllers; Robot control method.
7. A controller acquires the state of a robot and issues a drive command for the robot, and a computer of a control device for a composite robot uses two or more robots in combination, each of which is controlled by a separate controller, Acquire the robot command values and the states of the robots held by each of the controllers; calculating an appropriate correction amount for the composite robot that is a combination of two or more of the robots based on the state of the robot; Distributing the correction amount to each of the controllers. program.
Citation Information
Patent Citations
Peripheral device integrated robot system
JP2021020259A