The present invention relates to a control of a robot having a multi-joint manipulator.
A robot having a multi-joint manipulator (a multi-joint arm) is known.
Specifically, one end of a supporting section 103 is attached to a fixed base section 102. One side of a first joint J101 is attached to the other end of the supporting section 103. One end of the first link L101 is attached to the other side of the first joint J101. One side of a second joint J102 is attached to the other end of the first link L101. Hereinafter, in the same way, one side of a sixth joint J106 is attached to the other end of a fifth link L105. One end of the sixth link L106 is attached to the other side of the sixth joint J106. An end effector 104 is attached to the other end of the link L106.
An operator specifies a position of the distal end (a position of the tip of the end effector and so on) in the world coordinate system (as a position command value) to a control device. The control device calculates an angle command value of each of the joints J101 to J106 by inverse kinematics calculation, so that the distal end moves to a direction of a position command value. Each of the joints J101 to J106 is driven by a motor and so on in response to the angle command value. Through such a control, the distal end of the multi-joint manipulator 101 can be moved to a desired position.
As a position control method of a robot, Non-Patent Literature 1 describes a linear feedback control method and a method using a 2-step control of linearization and servo compensation.
In some embodiments, a simulation apparatus is a simulation apparatus for a multi-joint manipulator having a plurality of joints. The simulation apparatus has a storing section configured to store a movable range of angle of each of the plurality of joints and a safety region defined within the movable range in a storage unit; and a processing unit as an angle command value calculating section. The angle command calculating section generates an angle command value for each of the plurality of joints, based on current angle data indicating a current angle of each of the plurality of joints and a distal end position command value of the multi-joint manipulator. The angle command value calculating section carries out a fault avoidance control to make a change rate of the angle command value small, when the angle command value is generated to a stop joint candidacy which is either of the plurality of joints and the angle command value of which exceeds the safety region.
In some embodiments, a simulation method is a simulation method of a multi-joint manipulator having a plurality of joints. The simulation method includes storing in a storage unit, a movable range of angle of each of the plurality of joints and a safety region defined within the movable range; and generating, by a processing unit, an angle command value of each of the plurality of joints based on current angle data indicating current angle of each of the plurality of joints and a distal end position command value of the multi-joint manipulator. The generating the angle command value includes carrying out a fault avoidance control to make a change rate of the angle command value small, when the angle command value is generated to a stop joint candidacy which is either of the plurality of joints and the angle command value of which exceeds the safety region.
By the present invention, the technique which relaxes the restriction of movement in the movable range of the joint in the control of the multi-joint manipulator is provided.
The attached drawings are incorporated into the Specification to help the description of embodiments. Note that the drawings should not be interpreted to limit the present invention to examples shown in the Drawings and described.
In such a control, the control unit gives a command value of position and attitude of the distal end 105, and a command value of angle of each joint is calculated through the inverse kinematics based on the command value. The multi-joint manipulator 101 is driven based on the command value of each of the joint angles.
In the inverse kinematics calculation of calculating each joint angle, when the Jacobian matrix is used that gives a relation of a distal end velocity and a joint angular velocity, the command value can be calculated easily and systematically. In this case, by integrating the joint angular velocity which is calculated using the Jacobian matrix, with respect to time, a command value of angle change (variation of angle) δθ of each joint is calculated. By adding the command value of the angle change δθ and a current value of angle of the joint, a command value of angle of the joint is obtained.
Next, a problem that could be caused in case of calculating the command value in this way will be described. To simplify the description, it is supposed that only three joints J102, J104, and J106 are driven in the multi-joint manipulator 101 of
When a movable range of each of the joints J102, J104, and J106 of the multi-joint manipulator 101 is narrow, there is a possibility that it is difficult that the distal end 105 approaches a target point 110. The movable range of each of the joints J102, J104, and J106 is shown in
In an example of
In an example of
Note that
Hereinafter, embodiments will be described with reference to the attached drawings. Many specific items are disclosed for the purpose of the description in the following detailed description to provide the comprehensive understanding of the embodiments. However, it would be apparent that one or plural embodiments can be implemented without these detailed specific items.
The other end of the supporting section 3 is fixed on one side of a joint J1. One end of a first link L1 is attached to the other side of the first joint J1. One side of a second joint J2 is attached to the other end of the first link L1. Hereinafter, in the same way, the connection is repeated, and one side of a sixth joint J6 is attached to the other end of a fifth link L5. One end of a sixth link L6 is attached to the other side of the sixth joint J6. An end effector 4 is attached to the other end of the sixth link L6. In an example of
The operator specifies and outputs to the control unit, a position command value indicating a desired position (a movement target position) in the world coordinate system and an attitude command value (a final target value) indicating a desired attitude (a target attitude) of the distal end 5 set at the tip of the end effector 4 of the multi-joint manipulator 1 and so on. The control unit generates an angle command value for each of the joints J1 to J6 for the distal end 5 to head for a state specified by the position command value and the attitude command value. Each of the joints J1 to J6 is driven by a motor and so on in response to the angle command value. Through such a control, the distal end 5 of the multi-joint manipulator 1 can be moved to the desired position.
The computer D1 is connected with the multi-joint manipulator 1. The computer D1 has a non-transitory recording medium (a storage unit) such as a hard disk and a processing unit which contains a hardware processor. The computer D1 (more specifically, the processing unit of the computer) executes a software program stored in the recording medium so that the state or operation of the multi-joint manipulator 1 can be virtually displayed on the display device D2 (simulation display). The operator can confirm the state and operation of the multi-joint manipulator 1 previously on the screen of the display device D2 through the simulation. The operator can see a multi-joint manipulator image 6 displayed on the screen and moves the distal end 5 on the screen to a desired place by Graphical User Interface such as a pointer and specifies the attitude of the distal end 5. By such a screen operation, the position command value and attitude command value of the distal end 5 of the multi-joint manipulator 1 can be set.
By the computer D1 (or the computer D1 and the display device D2), a simulation apparatus which carries out simulation of the multi-joint manipulator 1, a control data generation apparatus of the multi-joint manipulator 1 and a control unit of the multi-joint manipulator 1 are realized. A robot system is configured from the computer D1, the display device D2 and the multi-joint manipulator 1.
On the other hand, the operator uses the computer D1 to input the distal end command indicating a final target position and a final target attitude of the distal end 5 while viewing the simulation image of the display device D2. The computer D1 generates trajectory data indicating a trajectory from the current position and the current attitude to the final target position and the final target attitude with respect to the distal end 5 of the multi-joint manipulator 1. Note that the trajectory may include data indicating a time change of position of the distal end and data indicating a time change of attitude of the distal end. A command value of the position and attitude of the distal end (distal end command value) as a target in the next control period is issued to the current distal end 5 based on the trajectory data (A8). The computer D1 calculates a deviation E (the deviation E contains a position deviation and an attitude deviation) of a command value of position and attitude of the distal end to the current position and current attitude of the distal end calculated in A1 (A2). The computer D1 multiplies the deviation E by a proportional gain KP for a predetermined set position and attitude control (A3).
A Jacobian matrix [J] is calculated which shows a relation between an angular velocity of the joint and a distal end velocity of the rectangular coordinate system based on a detection value of the current angle of each of the joints J1 to J6 (A4). Moreover, an inverse matrix [J]−1 of the Jacobian matrix is calculated (a pseudo inverse matrix when the multi-joint manipulator 1 has redundant degrees of freedom) (A5). A command value of the joint angular velocity is calculated from the position and attitude deviation KP·E multiplied by the gain by using the inverse Jacobian matrix [J]−1 (A6).
By integrating the command value of the joint angular velocity with respect to time, a command value of variation of angle of each of the joints J1 to J6 is calculated. A command value of the joint angle is obtained by adding the command value of variation of angle to the current value of angle of each of the joints J1 to J6 inputted in block A0 (A7). Note that “K” in A7 of
Next, a control near a movable limit of each of the joints J1 to J6 will be described in this embodiment. First, with reference to
A command value is calculated through the forward kinematics calculation and the inverse kinematics calculation for control in a region where the angle 21 of the joint takes a value between the virtual upper limit UL2 and the virtual lower limit LL2, because there are excess widths to the actual upper limit UL1 and lower limit LL1.
In an example of
In such a control, it is wanted to take some measure when the angle 21 of the joint approaches the upper limit UL1 or the lower limit LL1. Therefore, when the angle 21 falls below the virtual lower limit LL2 or exceeds the virtual upper limit UL2, a fault avoidance control is carried out. For example, in
In
The above-mentioned fault avoidance control will specifically be described below.
That is, the computer D1 (more specifically, the processing unit of the computer) carries out trajectory data generation processing, angle command value calculation processing, virtual limit determination processing, simulation processing, limit determination processing, trajectory correction processing, fault joint display processing and so on, by executing the above-mentioned program.
A detection device such as an encoder which detects a rotation angle and so on is attached to each of the joints J1 to J6 of the multi-joint manipulator 1. The computer D1 reads the detection value of the rotation angle of each of the joints J1 to J6 from the multi-joint manipulator 1 in realtime (e.g. in the period of 10 ms). The detection value of this angle is shown as the current angle data C1 to Cn indicating the current angle of each of the plurality of joints in the data table 24.
The angle command value calculating section 12 carries out the calculation of a joint angle command value by a method shown in
An angular velocity command value Vθ (unit is radian per second [rad/s]) indicating a rotation velocity to each of the joints J1 to J6 is calculated by carrying out calculation of A2 to A5 in
The command value δθ [rad] of variation of the joint angle in the next control period is calculated by integrating with respect to time, a product of the joint angular velocity command value Vθ of each of the joints J1 to J6 and the coefficient K as in A7 of
[Step S5: Check Virtual Limit with of Joint Angle Command Value]
The fault avoidance control section 13 carries out virtual limit determination processing of determining whether the angle command value calculated at step S5 for each of the joints J1 to J6 falls within a range between the virtual limits (the range between virtual lower limit LL2 and the virtual upper limit UL2). This determination is carried out by using values of the safety region of each of the joints J1 to Jn registered on the safety region table 25. Alternately, as another method, the determination may be carried out to have entered a range between the virtual limits, by using the upper limit and lower limit of the movable range of each of the joints J1 to Jn registered on the safety region table 25, when the angle command value of each of the joints has entered a predetermined range which is near the upper limit or the lower limit in the movable range (for example, a predetermined range where a margin to the upper limit is within 10 percent of the whole movable range, or a predetermined range where a margin to the lower limit is within 10 percent of the whole movable range).
When the angle command values to all the joints J1 to J6 are within the virtual limit (Step S6: Yes), the control advances to step S8 to carry out the normal control to all the joints J1 to J6 (in other words, non-fault avoidance control). When the angle command value corresponding to either joint of the joints J1 to J6 exceeds the virtual limit, the joint is determined to be a stop joint candidacy which has a possibility to be stopped. To carry out the fault avoidance control to the stop joint candidacy, the processing advances to step S7.
The fault avoidance control is applied to the joint, the angle command value of which is determined to be outside the virtual limit in step S6. Specifically, the integration coefficient K used in the calculation of step S4 is made small (decreased). For example, K is set to K=0.1. In other words, the value (e.g. K=0.1) of the coefficient to be used in the fault avoidance control is smaller than the value (K=1) of the coefficient to be used in the normal control. The normal control is continued to the other joints. By such a setting, a rate when the rotation angle of the joint calculated at step S4 (A7 of
Supposing that the coefficient used in the integration to generate a joint angle command value at step S5 is K, K is set to a value of the normal control (ex.: K=1). The value of K=1 is not changed to the joint to which the normal control has been carried out until the previous control period. The value of the integration coefficient is returned from the value (ex.: K=0.1) at the time of the fault avoidance control to the value K=1 at the time of the normal control when the current new angle command value is determined to fall within the virtual limit at step S7 with respect to the joint to which the fault avoidance control has been carried out until the previous control period.
The computer D1 outputs the angle command value of each of the joints J1 to J6 calculated at step S4 to the multi-joint manipulator 1. The controller of the multi-joint manipulator 1 controls the angles of the joints J1 to J6 by using the angle command values.
Next, the simulation of the operation of the multi-joint manipulator 1 will be described. In the above-mentioned
The simulation section 15 of
(1) Feedback processing FB is added in which the angle command value θ of the joint generated in block A7 is fed back as the current value θ of each joint angle.
(2) The current value of angle of each of the joints J1 to J6 is acquired from the actual machine of the multi-joint manipulator 1 in block A0 of
The difference between the calculations in
(b) On the other hand, in
Such a simulation can be carried out as follows by referring to the data table 24 of
By such a simulation, the operation of the distal end 5 of the multi-joint manipulator 1 from the current position and attitude to a final target position and attitude can be realized virtually and approximately. Therefore, it is possible to confirm whether or not there is a possibility that each of the joints steps out from the movable range in case of the operation.
The computer D1 carries out the simulation shown in
In such a simulation, the determination of whether or not the joint reached the limit of the movable range is carried out (in other words, the simulation section 15 carries out the limit determination processing of determining whether or not at least one of the plurality of joints reached the limit of the movable range). The fault joint displaying section 16 of
It is possible to virtually realize fault avoidance processing described with reference to
In such a simulation, it is wanted that when the angle of either of the joints J1 to J4 exceeds the movable range, the trajectory 31 is corrected so that the angles of all the joints J1 to J4 fall within the movable range.
Like step S1 of
The simulation section 15 determines whether or not the angle command value calculated at step S22 to each of the joints J1 to J4 falls within the movable range (in other words, the simulation section 15 carries out the limit determination processing of determining whether or not at least one of the joints reached the limit of the movable range). This determination is carried out by using the upper limit and lower limit of the movable range registered on the safety region table 25 (Step S23).
When the angle command value falls within the movable range as for each of the joints J1 to J4 (step S24: Yes), the processing advances to step S27. When the angle command value Bi of either of the joints J1 to J4 at time Ti exceeds the movable range, the processing advances to step S25 (Step S24: No).
When the angle command value Bi of either of the joints J1 to J4 exceeds the movable range, the simulation is stopped and the multi-joint manipulator image 6 at the point is displayed.
Next, the distal end command value of the joint J3, the angle of which reached a limit, is corrected to go away from the limit, that is, to head for the center of the movable range and is stored. Specifically, the correction is carried out so that the angle of the joint J3 falls within the movable range, by setting a new through-point on the trajectory of the distal end.
Next, a front point 35 is set as exemplified in
Next, a through-point 36 is set. The through-point 36 is set for the joint J3 reached the limit at the stop point 33 (the direction 37 of the leaving of
For example, when an angle of the joint J3 has reached the upper limit at the time that the distal end 5 is situated on a stop point 33, a through-point 36 is set to a position of the distal end 5 when the angle of the joint J3 is made smaller by a predetermined angle A in the condition that the other joints J1, J2, and J4 are fixed (for example, fixed on the angles of the joints J1, J2, and J4 in the stop point 33) (Step S34). The corrected trajectory is generated by connecting the front point 35 and the through-point 36 by the trajectory 38 such as a straight line, by connecting the through-point 36 and the target point 32 in the trajectory 39 such as the straight line. The setting of such a through-point 36 (step S35) may be automatically carried out by the trajectory correcting section 17 and at least a part of the setting may be carried out by the input operation by the operator (for example, the setting of the through-point 36 may be implemented by the input operation by the operator).
The trajectory correcting section 17 stores the distal end command values of the corrected trajectories 38 and 39 (step S26 of
When the corrected trajectory is generated, processing from step S21 is repeated. However, the following calculation is carried out by using the corrected trajectory in the condition that the position has been returned to the trajectory 31 at the time of the front point 35.
Returning to
When the trajectory correction is carried out at step S26, the distal end command value is generated to show the corrected trajectory, by connecting the trajectories which passes through the through-point 36 (in an example of
The computer D1 transmits the distal end command value to the multi-joint manipulator 1 (actually existing multi-joint manipulator) as an actual operation command (Step S29). Because the distal end command value is corrected in the simulation so that each of the joints J1 to J4 does not exceed the movable range, there is a high probability that the distal end 5 can reach the target point 32 without stopping of the operation of the actual machine.
The fault avoidance processing described with reference to
Through such processing, when the angle of either of the joints approaches the virtual limit, the fault avoidance processing is executed first. However, only when the joint reaches an actual limit, the trajectory correction processing at step S26 is carried out. Therefore, the number of times of execution of the trajectory correction processing reduces and the distal end 5 can be led to the target point 32 in a natural route which is near the original trajectory.
The present invention is not limited to each of the above embodiments. It would be apparent that each embodiment can be changed or modified appropriately in the range of the technical thought of the present invention. Also, various techniques used in each embodiment or a modification example can be applied to another embodiment and another modification example in a range with no technical contradiction.
This application is based on Japanese Patent Application (JP 2014-52546) filed on Mar. 14, 2014 and claims a priority based on it. The disclosure of the Patent Application is incorporated herein by reference.
Number | Date | Country | Kind |
---|---|---|---|
2014-052546 | Mar 2014 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2015/055929 | 2/27/2015 | WO | 00 |