Articulated robot control device, articulated robot control method, and program
The multi-joint robot control device efficiently calculates a finite number of joint angle combinations by using a seed storage unit and inverse kinematic processing, addressing the challenge of infinitely many solutions and ensuring optimal robot posture is achieved quickly.
Patent Information
- Application Number
- JP2023202316
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-11-30
- Publication Date
- 2025-06-11
AI Technical Summary
Existing technologies face challenges in efficiently calculating a finite number of combinations of joint angles for articulated robots, especially when there are infinitely many solutions, leading to prolonged calculation times and failure to present optimal solutions to users.
A multi-joint robot control device and method that utilizes a seed storage unit to store reference angles of joints, and an inverse kinematic operation processing unit to find combinations of joint angles that realize target coordinates and orientations by solving the inverse kinematic equation, thereby extracting a finite number of solutions close to the seed angles.
This approach allows for the efficient extraction of a finite number of joint angle combinations that achieve the desired position and orientation of an articulated robot's tip tool, reducing calculation time and ensuring optimal solutions are presented to users.
Smart Images

Figure 2025087965000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to an articulated robot control device, an articulated robot control method, and a program, and particularly to a technique for obtaining a combination of angles of each joint of an articulated robot.
Background Art
[0002] In recent years, articulated robots have become widespread in various applications. An articulated robot rotatably connects a plurality of links at joint portions. Then, the articulated robot executes an operation such as grasping an article with a tip tool such as a hand attached to the tip of the tip link. An articulated robot includes a large number of joints such as six joints (six axes), and can freely move the tip of the tip link or the tip of the hand in three axial directions of the X-axis, Y-axis, and Z-axis.
[0003] When the position and orientation of a hand (tip tool) are given, there are usually a plurality of solutions for the angles of the respective joints for realizing it. Therefore, it is necessary to realize the position and orientation of the hand that the robot actually aims at by obtaining the solutions of the angles of the respective joints. However, the angles of the respective joints for realizing this are not uniquely determined only by specifying the position and angle of the tip tool (hand) of the articulated robot.
[0004] Therefore, it takes an enormous amount of time for the user to find the solutions of the angles of the respective joints while actually moving the robot. The user also does not know whether all possibilities have been considered. Therefore, preparing options for the robot posture (joint angle combination) in advance and showing them to the user is convenient for the user. However, in some cases, the solutions of the angles of the respective joints are not uniquely determined, but rather there may be an infinite number of combinations. Presenting all of the combinations of joint angles to the user actually impairs the convenience of the articulated robot.
[0005] Patent Document 1 describes a technique for solving inverse kinematics for three degrees of freedom of position and orientation, such as a position matrix and an orientation matrix. In the technique described in Patent Document 1 (hereinafter referred to as the "prior art"), the angles of each joint of a six-axis robot arm are calculated. This prior art calculates the inverse matrices of two partial matrices of a position matrix and an orientation matrix of three joints corresponding to the target position and orientation of the hand, respectively. Then, the prior art evaluates the error during iterative calculation between the composition of these two inverse matrices and the inverse kinematics matrix of six joints to calculate a weighting coefficient. Further, the prior art feeds back the weighting coefficient to the iterative calculation of the two inverse matrices with respect to the target position and orientation. Then, the prior art sequentially reflects the non-linear relationship of the inverse kinematics of three joints with respect to the translational position and orientation of the hand in numerical calculation.
Prior Art Documents
Patent Documents
[0006]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0007] The prior art can perform calculations to obtain solutions for target positions and orientations. However, depending on the conditions for giving positions and orientations, there may be infinitely many angles at which the solution evaluation function becomes zero. In such a case, in the prior art, the calculation will not end. That is, even if the prior art is applied, when there are infinitely many combinations of joint angles, the calculation takes time. Even if the calculation is carried out for a long time, the optimal solution will not be presented to the user.
[0008] In view of this point, an object of the present invention is to provide a multi-joint robot control device, a multi-joint robot control method, and a program that can appropriately extract a finite number of combinations of the angles of each joint of a robot at a target position and orientation.
Means for Solving the Problems
[0009] The multi-joint robot control device of the present invention is a multi-joint robot control device that controls a multi-joint robot in which a plurality of links are sequentially connected by a plurality of joints and a tip tool is attached to the tip link. And, the multi-joint robot control device of the present invention includes a target input unit for designating any one input value of the coordinates and orientation of the tip tool or a combination of angles of a plurality of joints that realizes the coordinates and orientation of the tip tool by a user operation, a seed storage unit for storing a seed that is a combination of reference angles of a plurality of joints, and an inverse kinematic operation processing unit for finding a combination of angles of a plurality of joints that realizes the coordinates and orientation of the tip tool based on the input value designated by the target input unit by solving the inverse kinematic equation. Here, as the seeds stored in the seed storage unit, a total combination of angles obtained by sparsely dividing the movable range of each of the plurality of joints is prepared, and the inverse kinematic operation processing unit obtains the solution of the inverse kinematic equation for each seed and obtains a solution close to the seed that achieves the target.
[0010] Further, the multi-joint robot control method of the present invention is a multi-joint robot control method that controls a multi-joint robot in which a plurality of links are sequentially connected by a plurality of joints and a tip tool is attached to the tip link. And, the multi-joint robot control method of the present invention includes a target input process for receiving any one input value of the coordinates and orientation of the tip tool or a combination of angles of a plurality of joints that realizes the coordinates and orientation of the tip tool, a seed storage process for storing a seed that is a combination of reference angles of a plurality of joints, and an inverse kinematic operation process for finding a combination of angles of a plurality of joints that realizes the coordinates and orientation of the tip tool based on the input value designated by the target input process by solving the inverse kinematic equation. Here, as the seeds stored by the seed storage process, a total combination of angles obtained by sparsely dividing the movable range of each of the plurality of joints is prepared, and in the inverse kinematic operation process, the solution of the inverse kinematic equation for each seed is obtained, and a solution close to the seed that achieves the target is obtained.
[0011] In addition, the program of the present invention causes a computer to execute each process of the above robot control method as a procedure.
Effects of the Invention
[0012] According to the present invention, based on the combination given as a seed, it is possible to extract a finite number of combinations of joint angles that realize the position and posture of the target tip tool.
Brief Description of the Drawings
[0013]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Mode for Carrying Out the Invention
[0014] Hereinafter, an exemplary embodiment of the present invention (hereinafter referred to as "this example") will be described with reference to the accompanying drawings. [Configuration of Multi-Joint Robot Control Device] FIG. 1 is a functional block diagram showing the configuration of the multi-joint robot control device 10 of this example. The multi-joint robot control device 10 of this example includes a target input unit 11, an inverse kinematics calculation processing unit 12, a robot data storage unit 13, a seed storage unit 14, and an output unit 15.
[0015] The target input unit 11 performs target input processing for receiving input values regarding the coordinates and orientation of the hand at the tip of the target multi-joint robot by a user's operation. It is an example that the target input unit 11 receives input values regarding the coordinates and orientation of the hand. The target input unit 11 may receive, as an input value, one of combinations of a plurality of joints that realize the target coordinates and orientation of the hand. For example, the target input unit 11 receives, as the tip position of the hand, data represented by XYZ coordinates with the base of the robot as the origin. XYZ coordinate axes are also defined for the hand itself to represent the orientation of the hand tip. The XYZ coordinate axes represent the orientation of the hand set in a desired direction. That is, it shows how the XYZ coordinates of the base of the robot should be rotated to make the orientation of the XYZ axes of the hand set in the desired direction. At this time, if the XYZ coordinates of the base of the robot are rotated by α around the X axis, then the XYZ axes resulting from the rotation are rotated by β around the Y axis, and then the XYZ axes resulting from the rotation are rotated by γ around the Z axis, and as a result, if the desired orientation of the hand is obtained, the orientation of the hand is represented by (α, β, γ).
[0016] The inverse kinematics processing unit 12 performs inverse kinematics processing to achieve the target hand position and orientation obtained by the target input unit 11. For this purpose, the inverse kinematics processing unit 12 performs an operation to obtain the solutions of the angles of the respective joints of the multi-joint robot. When obtaining the solutions of the angles of the respective joints, the inverse kinematics processing unit 12 finds only one that is close to the joint angle as the seed given by the seed storage unit 14. The one close to the joint angle of the seed means the one with the smallest sum of the differences of the angles of the seeds of the respective joints.
[0017] The robot data storage unit 13 stores data about the multi-joint robot. The robot data storage unit 13 supplies the data necessary when the inverse kinematics processing unit 12 obtains the solutions of combinations of the angles of a plurality of joints. Specifically, the robot data storage unit 13 stores data on the positional relationship between the respective joints, data on the rotation axes of the respective joints, data on the movable ranges of the respective joints, and the like. The inverse kinematics processing unit 12 refers to these data when performing inverse kinematics processing.
[0018] The seed storage unit 14 stores the seeds (seed storage process) when the inverse kinematics processing unit 12 obtains the solutions. Then, the seed storage unit 14 supplies the stored seeds to the inverse kinematics processing unit 12. The seeds stored in the seed storage unit 14 are the specific angles of the respective joints. For example, when the multi-joint robot has six joints, the seed storage unit 14 stores a plurality of angles set for each of the six joints as seeds. Specific examples of the angles as seeds will be described later. Note that when the seeds are fixed values, the seeds stored in the seed storage unit 14 are prepared in advance. Also, as will be described later, when the seeds change, the seeds stored in the seed storage unit 14 are updated as needed. The inverse kinematics processing unit 12 of this example finds only one close to the joint angle as the seed as the solution by inverse kinematics processing.
[0019] The output unit 15 outputs data on the angles of the respective joints, which is a solution close to the seed for achieving the coordinates and orientation of the target hand obtained by the inverse kinematics calculation processing unit 12 (output processing). The output processing in the output unit 15 is, for example, processing for displaying the data on the angles of the respective joints on a display device connected to the multi-joint robot control device 10. Alternatively, the output processing in the output unit 15 may be processing for transmitting the data on the angles of the respective joints to another device (not shown).
[0020] [Hardware Configuration Example of Multi-Joint Robot Control Device] FIG. 2 shows a hardware configuration example when the multi-joint robot control device 10 is configured by a computer which is an information processing device. The computer 10 shown in FIG. 2 corresponds to the multi-joint robot control device 10 shown in FIG. 1. The computer 10 shown in FIG. 2 includes a CPU 10a, a memory 10b, a storage 10c, an input unit 10d, an output unit 10e, and a display unit 10f, which are respectively connected to a bus. The CPU is an abbreviation for Central Processing Unit.
[0021] The CPU 10a reads out and executes the program code of the software that realizes the functions performed by the multi-joint robot control device 10 from the memory 10b (arithmetic processing unit). The program code of the software may also be read out from the storage 10c. By the CPU 10a reading out the program code and executing arithmetic processing in the work area of the memory 10b, various processing function units are configured in the memory 10b. For example, the inverse kinematics calculation processing unit 12 shown in FIG. 1 is configured in the memory 10b.
[0022] For the storage 10c, for example, a large-capacity information storage medium such as an HDD (Hard Disk Drive), an SSD (Solid State Drive), or a memory card is used. The storage 10c stores the software that realizes the functions of the multi-joint robot control device 10 and the data obtained by the execution of the program. Further, the storage data of the robot data storage unit 13 and the seed storage unit 14 shown in FIG. 1 is stored in the storage 10c.
[0023] The input unit 10d is composed of input devices such as a keyboard and a mouse. The input unit 10d receives data input by a user operation. The output unit 10e transmits the calculation processing result and the like to the outside. Further, when directly controlling the multi-joint robot 100 based on the calculation result in the multi-joint robot control device 10, the output unit 10e supplies the calculation result to a drive mechanism such as a joint. The display unit 10f performs display processing on the calculation processing result and the like. Note that the multi-joint robot control device 10 controlling the multi-joint robot 100 is an example, and the multi-joint robot control device 10 may only output the calculation result.
[0024] [Configuration Example of Multi-Joint Robot] FIG. 3 shows a configuration example of the multi-joint robot 100. In the multi-joint robot 100 shown in FIG. 3, arm-shaped links 120, 130, 140, 150, 160 are connected to a base 110. The links 120, 130, 140, 150, 160 are sequentially connected via joints J1, J2, J3, J4, J5. And a hand 170, which is a tip tool, is connected to the tip link 160 via a joint J6.
[0025] Each of the joints J1 to J6 rotates as shown by angles θa to θf shown in FIG. 3. The rotation of each of the joints J1 to J6 and the operation of the hand 170 are performed under the control of a multi-joint robot control device 10 (or another control device) connected to the multi-joint robot 100.
[0026] FIGS. 4 and 5 show examples in which the coordinate positions and postures (directions) of the hand 170 of this multi-joint robot 100 are the same and the joint angles are different. That is, as shown in FIG. 4, the position and posture of the hand 170 are set by a combination of predetermined angles of each of the joints J1 to J6. Also, as shown in FIG. 5, the position and posture of the hand 170 can also be realized by another combination of angles of each of the joints J1 to J6.
[0027] [Example of Seed Arrangement for Covering Three Dimensions] Next, the seeds stored in the seed storage unit 14 will be described. In this example, the articulated robot 100 has six joints J1 to J6 as shown in FIG. 3. However, for simplicity of explanation, here it is assumed that the articulated robot 100 has three joints. At this time, as shown in FIG. 6, a three-dimensional space is assumed. In order to cover the three-dimensional space (XYZ space) with these three joints, the seed storage unit 14 is provided with a combination of seeds sparsely arranged in the three-dimensional space. The square points in the space of FIG. 6 correspond to the prepared seeds.
[0028] In the example of FIG. 6, for each of the X, Y, and Z joints, three seeds of 1, 0, and -1 are prepared. That is, the three seeds include a seed at the reference angle and two seeds shifted in the + direction and - direction from it. These three seeds are sparsely arranged in the three-dimensional space. In the example of FIG. 6, it is 3×3×3, and 27 combinations are prepared.
[0029] The articulated robot 100 in this example actually has six joints J1 to J6. Therefore, for example, if each of the joints J1 to J6 has three seeds (three angles), the total number of combinations is 3 to the 6th power, which is 729 (3 6 = 729).
[0030] FIG. 7 is a diagram showing the relationship between the movable ranges of the six joints J1 to J6 of the articulated robot 100 and the seeds. That is, the seed storage unit 14 sparsely sets three seeds S11, S12, and S13 within the movable angle range θa of the joint J1. Also, the seed storage unit 14 sparsely sets three seeds S21, S22, and S23 within the movable angle range θb of the joint J2 and stores them.
[0031] Similarly, the seed storage unit 14 sets and stores seeds S31, S32, and S33 within the movable angle range θc of the joint J3. Further, the seed memory unit 14 sets and stores S41, S42, and S43 within the movable angle range θd of the indirect joint J4. Also, the seed memory unit 14 sets and stores seeds S51, S52, and S53 within the movable angle range θe of the joint J5. Furthermore, the seed memory unit 14 sets and stores seeds S61, S62, and S63 within the movable angle range θf of the joint J6.
[0032] Here, the seeds S11, S21, S31, S41, S51, and S61 are reference positions (reference angles) as substantially the median values of the movable angle ranges of the respective joints. The seeds S12, S22, S32, S42, S52, and S62 are seeds that are shifted by a certain angle in the - direction from their respective reference positions for each joint. Also, the seeds S13, S23, S33, S43, S53, and S63 are seeds that are shifted by a certain angle in the + direction.
[0033] In the example of FIG. 7, the movable ranges of the six joints J1 to J6 are different, but the shift angles when setting the seeds are the same. However, making the shift angles the same for each joint is just an example. The shift angle when setting the seeds may be changed according to the movable range of each joint. Also, taking substantially the median value of the movable angle range of each joint as the reference position (reference angle) is just an example, and other positions may be used as the reference position. For example, the reference position may be the position of a predetermined pose by a plurality of links as the reference position. Also, the reference position may be set by the joint angles (reference angles) of the reference posture of the multi-joint robot 100.
[0034] Furthermore, before instructing the input value to the target input unit 11, the multi-joint robot 100 may use the angles of a plurality of joints that the multi-joint robot 100 itself has taken as the reference angles of the respective joints. However, in this case, the reference angles of the six joints J1 to J6 change every time an operation is performed. For this reason, the seed memory unit 14 needs to update the seeds once for each seed corresponding to the stored seeds.
[0035] In the example of FIG. 7, the number of seeds for each joint J1 to J6 is set to three. However, the multi-joint robot 100 may change the number of seeds for each joint. For example, the multi-joint robot 100 may set the number of seeds to three when the movable angle range is narrow, and may increase the number of seeds from three when the movable angle range is wide. Also, in the multi-joint robot 100, arranging each seed at equal angles is just an example, and they do not have to be arranged at equal angles.
[0036] [Processing to obtain a solution in the inverse kinematics processing unit] Next, the processing in which the inverse kinematics processing unit 12 obtains a combination of the angles of the six joints J1 to J6 of the multi-joint robot 100 using the seeds described so far will be described. First, the inverse kinematics processing unit 12 refers to the six joints J1 to J6 from the robot data storage unit 13. Here, the inverse kinematics processing unit 12 can obtain and refer to data such as the positional relationship between each joint, the direction of the rotation axis of the joint, and the movable range of the joint.
[0037] Then, the inverse kinematics processing unit 12 sets the target input to the target input unit 11. This target is the position of the tip of the hand 170 and the direction in which the hand tip points. Alternatively, the target may be a joint combination that realizes the position and direction of its tip. The tip position of the hand 170 is represented by XYZ coordinates with the base of the multi-joint robot 100 as the origin. Also, XYZ coordinate axes are defined for the hand itself to represent the direction of the tip of the hand 170. The XYZ coordinate axes represent the direction of the hand 170. That is, it represents how the XYZ coordinates of the base of the multi-joint robot 100 should be rotated to obtain the direction of the XYZ axes of the hand 170. At this time, if the XYZ coordinates of the base 100 of the multi-joint robot are rotated by α around the X axis, then the XYZ axes obtained after the rotation are rotated by β around the Y axis, and then the XYZ axes obtained after the rotation are rotated by γ around the Z axis, and as a result, the direction of the hand 170 is obtained, then the direction of the hand 170 is specified by (α, β, γ).
[0038] The inverse kinematics processing unit 12 performs a process of finding only one solution of the joint angles that is close to the joint angles given as seeds, as a solution for realizing the target hand position and orientation. That is, the inverse kinematics processing unit 12 performs inverse kinematics processing, which is a process of finding only one solution close to the angles of the seeds of the respective joints shown in FIG. 7. Here, being close to the joint angles given as seeds means that the sum of the differences of the respective angles of each of the joints J1 to J6 is the smallest. In the inverse kinematics processing performed by the inverse kinematics processing unit 12 in this example, since only one solution is found, the same solution is returned when the same seeds are given or when seeds close to the seeds are given.
[0039] The inverse kinematics processing unit 12 obtains a finite number of solutions of the joint angles for realizing the target hand position and orientation using such a mechanism. Therefore, as shown in FIGS. 6 and 7, the seeds are arranged evenly and sparsely so as to cover the necessary area. Thereby, the inverse kinematics processing unit 12 can extract solutions close to the seeds. For this reason, the inverse kinematics processing unit 12 can obtain solutions of combinations of the angles of each joint within a desired range and with a desired granularity.
[0040] FIG. 8 shows an example in which the display unit 10f of FIG. 2 corresponding to the output unit 15 of FIG. 1 displays the solutions obtained by the inverse kinematics processing unit 12. When the output unit 15 transmits the solutions to an external terminal, a similar display is performed on the external terminal. This example of FIG. 8 shows six solutions of combinations of the angles of the joints J1 to J6 (Joint_1 to Joint_6) when a certain hand position and orientation are given as targets. As shown in FIG. 8, the six solutions are ranked from rank 1 to rank 6, and rank 1 is the combination of joint angles with the highest rank.
[0041] Here, the output unit 15 calculates an evaluation value, which is the total value of the degree of deviation from the reference angle, for six solutions. Then, the output unit 15 performs a display sorted in the order of ranking based on that value. The reference angle here is the reference angle (reference position) described in the process of setting the seed. As a result, when a user (an operator of the multi-joint robot) who checks this display sees many solutions displayed, the user can consider only several solutions with high ranks. Then, the user can select a combination of angles to actually instruct each joint J1 to J6 of the multi-joint robot 100 from the candidates of solutions with high ranks.
[0042] Note that when performing the display or output of the result as shown in FIG. 8, the inverse kinematic calculation processing unit 12 may exclude and output those having an angle exceeding a predetermined angle from among the candidates of combinations of a plurality of joint angles obtained by solving the inverse kinematic equation. Further, the inverse kinematic calculation processing unit 12 may output the candidates having an angle exceeding a predetermined angle from among the candidates of combinations of a plurality of joint angles in a manner distinguishable from other candidates. For example, the display column of the candidates having an angle exceeding a predetermined angle may have its background color changed so as to give a warning display.
[0043] Alternatively, the inverse kinematic calculation processing unit 12 may add only the candidates having an angle exceeding a predetermined angle according to an operation instruction by the user received by the target input unit 11 to the list of the display examples shown in FIG. 8. However, this is limited to the case where there is an operation instruction by the user to display the candidates having an angle exceeding a predetermined angle. Furthermore, as shown in FIG. 8, instead of displaying a plurality of ranked combinations, only the one with the highest rank may be displayed. In this case, when the candidate is not appropriate by an operation by the user, the ones with the next rank may be displayed in order.
[0044] [Specific Example when Setting the Seed] Next, with reference to FIGS. 9 to 12, an example of setting seeds at a plurality of locations within the movable ranges of each of the joints J1 to J6 will be described. FIG. 9 shows an example in which the seed S11 at the reference position is set to 0°, the seed S12 at +120° therefrom, and the seed S13 at -120°. Thus, the points of each seed can cover ±180° as a whole by covering ±60°. Such a setting is applied, for example, when it is not desired to extract solutions outside ±180°.
[0045] The example of FIG. 10 is an example when it is desired to extract solutions up to the outer solutions. In this case, the inverse kinematic operation processing unit 12 sets the seed S71 at the reference position to 0°, the seed S72 at +180° therefrom, and the seed S83 at -180°. Thereby, the inverse kinematic operation processing unit 12 can extract solutions outside ±180°.
[0046] The example of FIG. 11 is a countermeasure example when it becomes too sparse by expanding the angle of the set position of the seeds. In the case of FIG. 11, the inverse kinematic operation processing unit 12 increases the number of seeds to 4, for example, the seed S81 at +210°, the seed S82 at +70°, the seed S83 at -70°, and the seed S84 at -210°. Thereby, the angular difference between the seeds does not increase even if the angle of the set position of the seeds is expanded.
[0047] FIG. 12 shows an example in which 53 seeds S91(0°), S92(+120°), S93(-120°) are set as seeds. Here, when there is an instruction from the user to exclude the angle of the large change from the reference, the inverse kinematic operation processing unit 12 excludes the solutions having an angle greater than 180° or less than -180° among the solutions. Also, when there is an instruction from the user to include the angle of the large change from the reference, the inverse kinematic operation processing unit 12 treats all the obtained solutions as solutions.
[0048] As described above, the multi-joint robot control device 10 of this example can extract a finite number of combinations of joint angles that achieve the position and orientation of the target end effector based on the given combination as a seed. Therefore, the multi-joint robot control device 10 of this example can present a finite number of appropriate candidates to the user with relatively simple arithmetic processing.
[0049] In addition, in the example shown in FIG. 3, the multi-joint robot control device 10 is a device that directly controls the multi-joint robot 100. In contrast, the multi-joint robot control device 10 of this example may be applied when simulating the multi-joint robot 100 on a computer that does not have a robot control function. A program for operating as the multi-joint robot control device 10 can be created by executing, as a procedure, the process of giving the above-described seed and performing calculations. Further, this program can be stored in a recording medium such as various memories, IC cards, SD cards, and optical disks.
Explanation of Reference Numerals
[0050] 10…Multi-joint robot control device, 10a…CPU, 10b…Memory, 10c…Storage, 10d…Input unit, 10e…Output unit, 10f…Display unit, 11…Target input unit, 12…Inverse kinematics calculation processing unit, 13…Robot data storage unit, 14…Seed storage unit, 15…Output unit, 100…Multi-joint robot, 110…Base, 120…Link, 130, 140, 150, 160…Links, 170…Hand, J1, J2, J3, J4, J5, J6, Joints
Claims
1. A multi-joint robot control device for controlling a multi-joint robot in which a plurality of links are sequentially connected by a plurality of joints and a tip tool is attached to the tip link, a target input unit for designating, by a user operation, any one input value of a target coordinate and orientation of the tip tool or a combination of angles of a plurality of joints that realizes the target coordinate and orientation of the tip tool, a seed storage unit for storing a seed that is a combination of reference angles of a plurality of the joints, an inverse kinematic operation processing unit that finds, by solving an inverse kinematic equation, a combination of angles of the plurality of joints that realizes the target coordinate and orientation of the tip tool based on the input value designated by the target input unit, and as the seed stored in the seed storage unit, a total combination of angles obtained by sparsely dividing the movable range of each of the plurality of joints is prepared, the inverse kinematic operation processing unit obtains a solution of the inverse kinematic equation for each of the seeds and obtains a solution close to the seed that achieves the target multi-joint robot control device.
2. Furthermore, it includes an output unit that displays or outputs candidates for combinations of angles of the plurality of joints obtained by solving the inverse kinematic equation in the inverse kinematic operation processing unit The multi-joint robot control device according to claim 1.
3. As the seed stored in the seed storage unit, the joint angles obtained by sparsely dividing the movable range of each of the plurality of joints are set by extracting a plurality of points from the movable range of each joint, The plurality of points are at least three points for each joint, namely a reference angle, an angle obtained by adding a predetermined angle to the reference angle, and an angle obtained by subtracting a predetermined angle from the reference angle. The multi-joint robot control device according to claim 2.
4. The reference angle is set for each joint. The multi-joint robot control device according to claim 3.
5. The reference angle for each joint is set to approximately the median value of the movable range of each joint. The multi-joint robot control device according to claim 4.
6. The reference angle is a joint angle of a predetermined pose by a plurality of links or a reference posture of the robot. The multi-joint robot control device according to claim 3.
7. Before instructing an input value to the target input unit, the angles of the plurality of joints that the robot has taken are used as the reference angles of the respective joints. The multi-joint robot control device according to claim 3.
8. The output unit ranks the candidates for combinations of the angles of the plurality of joints according to the total value of the degree of separation from the reference angles, and displays or outputs them. The multi-joint robot control device according to claim 2.
9. The inverse kinematic calculation processing unit changes the range of options of the seeds stored in the seed storage unit or the number of options of the seeds for each of the plurality of joints. The multi-joint robot control device according to claim 1.
10. The output unit excludes, from the candidates for combinations of the angles of the plurality of joints obtained by solving the inverse kinematic equation in the inverse kinematic calculation processing unit, those having an angle exceeding a predetermined angle, and then displays or outputs them. The multi-joint robot control device according to claim 2.
11. The output unit displays or outputs the candidates having an angle exceeding the predetermined angle in a manner distinguishable from other candidates. The multi-joint robot control device according to claim 10.
12. When there is a predetermined instruction in the input unit, the output unit displays or outputs the candidates having an angle exceeding the predetermined angle. The multi-joint robot control device according to claim 10.
13. A multi-joint robot control method for controlling a multi-joint robot in which a plurality of links are sequentially connected by a plurality of joints and a tip tool is attached to the tip link, a target input process for receiving as an input value any one of the coordinates and orientation of the target of the tip tool or a combination of the angles of the plurality of joints that realizes the coordinates and orientation of the target of the tip tool, a seed storage process for storing seeds that are combinations of reference angles of the plurality of joints, including an inverse kinematic calculation process for finding, by solving an inverse kinematic equation, a combination of the angles of the plurality of joints that realizes the coordinates and orientation of the target of the tip tool based on the input value specified by the target input process, as the seeds stored by the seed storage process, preparing a total combination of angles obtained by sparsely dividing the movable range of each of the plurality of joints, In the inverse kinematic calculation process, the solution of the inverse kinematic equation for each of the seeds is obtained, and a solution close to the seed that achieves the target is obtained. Multi-joint robot control method.
14. A program for implementing and executing on a computer a procedure for controlling a multi-joint robot in which a plurality of links are sequentially connected by a plurality of joints and a tip tool is attached to the tip link. A target input procedure for receiving any one of the input values of the target coordinates and orientation of the tip instrument, or a combination of angles of a plurality of joints that realizes the target coordinates and orientation of the tip instrument; A seed storage procedure for storing a seed that is a combination of reference angles of a plurality of the joints; An inverse kinematic operation procedure for finding, by solving an inverse kinematic equation, a combination of angles of the plurality of joints that realizes the target coordinates and orientation of the tip instrument based on the input value specified by the target input procedure; and As the seed stored by the seed storage procedure, prepare a total number of combinations of angles obtained by sparsely dividing the movable range of each of the plurality of joints; In the inverse kinematic operation procedure, obtain a solution of the inverse kinematic equation for each of the seeds, and obtain a solution close to the seed that achieves the target; Program.
Citation Information
Patent Citations
Inverse kinematics of sixth degree of freedom robot arm by successive retrieval method, and system, control method, and program for robot using the same
JP2008036742A