This application claims the benefit of priority to Japanese Patent Application No. 2018-067235 filed on Mar. 30, 2018. The entire contents of this application are hereby incorporated herein by reference.
The present disclosure relates to a robot control apparatus, and a method and program for obtaining an angle of a joint of a robot.
A Programmable Universal Machine for Assembly (PUMA)-type robot is generally known as a robot having an axis configuration in which rotation axes of three joints of hand tips intersect at one point.
The analysis of inverse kinematics of a PUMA-type robot is thought to be analytically determined. However, when there is an offset in a wrist portion of the robot, a processing load of calculation of the inverse kinematics is heavy and it takes time. For this reason, a high-speed processor is required to perform real-time calculation suitable for the robot to operate smoothly.
An example embodiment of the present disclosure is a robot control apparatus for obtaining an angle of each joint of a 6-axis vertical articulated robot when a position and a posture of an end effector attached on a sixth axis are given, wherein, in the 6-axis vertical articulated robot, the sixth axis of a sixth joint and a fifth axis of a fifth joint perpendicularly intersect each other, the fifth axis and a fourth axis of a fourth joint perpendicularly intersect each other, the fourth axis and a third axis of a third joint perpendicularly intersect each other, and there is a predetermined amount of offset between the sixth axis and the fourth axis. The robot control apparatus includes a determiner to sequentially determine a point of interest, which is a point on a circumference of a circle having the predetermined amount as a radius, around a first intersection point on a plane including the first intersection point which is an intersection point of the sixth axis, and the fifth axis and the plane which is orthogonal to the sixth axis. The robot control apparatus includes a first calculator to calculate a second intersection point, which is an intersection point of the fourth axis and the third axis, when it is assumed that the point of interest is an intersection point of the fifth axis and the fourth axis, and a second calculator to calculate an inner product value of a first vector directed from the second intersection point calculated by the first calculator to the point of interest and a second vector directed from the point of interest to the first intersection point. The robot control apparatus includes an estimator to estimate that the point of interest, when an absolute value of the inner product value is less than or equal to a predetermined threshold, is an intersection point of the fifth axis and the fourth axis.
The above and other elements, features, steps, characteristics and advantages of the present disclosure will become more apparent from the following detailed description of the example embodiments with reference to the attached drawings.
Hereinafter, robot systems including robot control apparatuses according to example embodiments of the present disclosure will be described.
In the following description, unless otherwise indicated, points refer to points in a world coordinate system (robot coordinate system).
First, a configuration of a robot system 1 according to a first embodiment will be described with reference to
A robot R according to the present embodiment is an articulated robot which is used for assembling or manufacturing predetermined products and is installed and used, for example, on an assembly line or a production line.
As shown in
Further, the robot R includes a support member B constituting a base end portion of the robot R. The support member B is relatively rotatably connected to a first joint 11. The first arm 21 and the second arm 22 are formed to have a thinly elongated longitudinal shape. Specifically, each of the first arm 21 and the second arm 22 is formed to have a thinly elongated cylindrical shape.
In the robot R, the following fixed or connected relationships are established.
(i) The first joint 11 and a second joint 12 are relatively rotatably connected to each other.
(ii) The second joint 12 and a first end 211 of the first arm 21 are fixed to each other.
(iii) A second end 212 of the first arm 21 and a third joint 13 are fixed to each other.
(iv) The third joint 13 and a fourth joint 14 are relatively rotatably connected to each other.
(v) The fourth joint 14 and a first end 221 of the second arm 22 are relatively rotatably connected to each other.
(vi) A second end 222 of the second arm 22 and a fifth joint 15 are fixed to each other.
(vii) The fifth joint 15 and a sixth joint 16 are relatively rotatably connected to each other.
(viii) The sixth joint 16 and the end effector attaching portion 18 are relatively rotatably connected to each other.
An end effector such as a hand or a tool may be attached to the end effector attaching portion 18.
Hereinafter, in order to describe a mechanism of the robot R according to the present embodiment, Denavit-Hartenberg (DH) parameters are shown as link parameters of the robot R according to the present embodiment, and forward kinematics of the robot R according to the present embodiment will be described with reference to
In the robot R shown in
As shown in
The DH parameters of the robot R are as shown in Table 1 below. In
A homogeneous transformation matrix T1 for the Link1 coordinate system ΣL1 from a world coordinate diameter is obtained using the DH parameters as follows.
Hereinafter, when it is assumed that equations, Sn=sin (θn) and Cn=cos(θn), are established, homogeneous transformation matrixes T1, T2, T3, T4, T5, and T6 among the respective link coordinate systems are as follows.
From the above, a homogeneous transformation matrix Tee of the end effector is calculated from the homogeneous transformation matrixes among the respective link coordinate systems using the following Equation 1. By applying Equation 1, a position and a posture of the end effector may be obtained when the rotation angle of each joint is known.
Tee=T
1
T
2
T
3
T
4
T
5
T
6 (1)
Next, a calculation algorithm (hereinafter, simply referred to as “an algorithm according to the present embodiment”) of analysis of inverse kinematics of the robot R according to the present embodiment will be described with reference to
Since the algorithm according to the present embodiment is based on a calculation algorithm of analysis of inverse kinematics of a reference robot, the reference robot will be described below in addition to the description of the robot R according to the present embodiment. Unlike the robot R according to the present embodiment, the reference robot refers to a robot (commonly known as a Programmable Universal Machine for Assembly (PUMA)-type robot) having no offset in a wrist, that is, a robot in which the interlink distance d3 in
First, the robot R according to the present embodiment is modeled as shown in
In
An intersection point of the axis Ax3 and the axis Ax4 is an intersection point O3, an intersection point of the axis Ax4 and the axis Ax5 is an intersection point O4, and an intersection point of the axis Ax5 and the axis Ax6 is an intersection point O5. A point O6 is an installation position of an end effector on the axis Ax6.
As shown in
Meanwhile,
In
Next, a calculation algorithm of analysis of inverse kinematics of the reference robot model will be described with reference to
The reference robot model, which is a model of a PUMA-type robot, has the following features.
In the reference robot model, regardless of rotation angles θ1, θ2, θ3, θ5, and θ6 of the joints J1, J2, J3, J5, and J6, unless the joint J4 rotates, intersection points O1, O3, O4, and O5 and a point O6 are on the same plane. The same plane is hereinafter referred to as “an arm plane.” That is, as the joint J1 rotates, the arm plane itself rotates around the joint J1. However, unless the joint J4 rotates, the intersection point O1, O3, O4, and O5 and the point O6 are always on the arm plane. When the rotation angle θ4 of the joint J4 is changed, the point O6 at an installation position of the end effector deviates from the arm plane.
In the reference robot model, even when the rotation angle θ4 of the joint J4 is changed and the end effector deviates from the arm plane, a position of the intersection point O4, which is an intersection point of the axis Ax4, the axis Ax5, and the axis Ax6 on the arm plane, may be calculated when a position and a posture of the end effector are given. That is, since the point, which is moved by a distance d6 along the axis Ax6 from the point O6 at the installation position of the end effector, becomes a common point between the intersection point O4 and the intersection point O5, the position of the intersection point O4 may be easily calculated.
After the position of the intersection point O4 is calculated, the rotation angles of the joints J1 to J3 may be calculated from geometry on the arm plane as follows.
First, referring to
Further, in the arm plane shown in
Lx=√{square root over (O4·x2+O4·y2)} (3)
Ly=√{square root over (O4·x2+O4·y2+(O4·z−d1)2)} (4)
Therefore, since angles θa, θb, and θc may be geometrically calculated from
Next, an algorithm in the present embodiment will be described with reference to
In the robot model according to the present embodiment, since there is an offset between the axis Ax4 and the axis Ax6, the intersection point O4 and the intersection point O5 do not coincide. When the position and the posture of the end effector are given, since an interlink distance d6 is known, the intersection point O5 may be obtained from the point O6, but the intersection point O4 may not be obtained from the intersection point O5. This is because it is not possible to know in which direction the axis Ax5 is directed.
Therefore, convergence calculation is performed while estimation is performed on the position of the intersection point O4. It is considered that the intersection point O4 is positioned on a circumference of a circle (the circle is indicated by a circle C5 in
As shown in
Since the axis Ax4 and the axis Ax5 are orthogonal to each other due to constraint conditions of the links of the robot R, it may be determined that the point O4t of interest is the intersection point O4 when an inner product value of a vector (an example of a first vector) directed from the candidate point O3t to the point O4t of interest and a vector (an example of a second vector) directed from the point O4t of interest to the intersection point O5 is zero. Therefore, the point O4t of interest is sequentially moved on the circumference of the circle C5, and processing is performed so as to search for a point at which the inner product value becomes zero. In addition, in consideration of a calculation time, when an absolute value of the inner product value is less than or equal to a predetermined threshold as a convergence condition, it may be estimated that the point O4t of interest is the intersection point O4.
After coordinates of the intersection point O4 are specified, the rotation angles θ1 to θ3 of the joints J1 to J3 may be calculated using the same algorithm as that used in the reference robot model.
Next, a configuration of a robot control apparatus 3 according to the present embodiment will be described with reference to
As shown in
The controller 31 includes a central processing unit (CPU), a read only memory (ROM), and a random access memory (RAM) The CPU receives a robot program from an external information processing apparatus (not shown), stores the robot program in the storage 32, and loads and executes the robot program in the RAM. Each function which will be described below is realized by the robot program executed by the CPU of the controller 31. The algorithm according to the present embodiment is included in the robot program.
The controller 31 generates a control pulse for operating each of the joints 11 to 16 by executing the robot program.
The storage 32 is a mass storage device such as a hard disk drive (HDD) or a solid state drive (SSD). The robot program, the above-described DH parameters (or the link parameters), and execution log data, which is an execution record of the robot program, are stored in the storage 32.
The communication unit 33 includes a communication interface circuit, which communicates with another communication device and receives the robot program. The communication unit 33 is communicably connected to, for example, a robot teaching device (not shown) operated by an operator, and receives the robot program from the robot teaching device.
As shown in
Next, functions realized by the robot program which is executed by the controller 31 of the robot control apparatus 3 will be described with reference to
As shown in
As described above, the robot R according to the present embodiment is a 6-axis vertical articulated robot in which an axis Ax6 of a joint J6 and an axis Ax5 of a joint J5 perpendicularly intersect each other, the axis Ax5 and an axis Ax4 of a joint J4 perpendicularly intersect each other, the axis Ax4 and an axis Ax3 of a joint J3 perpendicularly intersect each other, and there is a predetermined amount of offset between the axis Ax6 and the axis Ax4. The controller 31 of the robot control apparatus 3 according to the present embodiment executes the robot program to obtain an angle of each joint of the robot R when the position and the posture of the end effector are given to the axis Ax6.
The point of interest determination unit 311 has a function of sequentially determining a point O4t of interest, which is a point on a circumference of a circle having the interlink distance d5 (an example of a predetermined amount) as a radius, around the intersection point O5, on a plane which includes the intersection point O5 (an example of a first intersection point) which is an intersection point of the axis Ax6 and the axis Ax5 and is orthogonal to the axis Ax6. The plane, which includes the intersection point O5 and is orthogonal to the axis Ax6, refers to a xy plane of the link coordinate system with the axis Ax5 as a Z axis. The controller 31 determines, for example, a point which is sequentially moved on the circumference of the circle C5 shown in
The first calculation unit 312 has a function of calculating a candidate point O3t (an example of a second intersection point), which is an intersection point of the axis Ax4 and the axis Ax3, when it is assumed that the point O4t of interest determined by the point of interest determination unit 311 is the intersection point O4 of the axis Ax5 and the axis Ax4. As shown in
The second calculation unit 313 has a function of calculating an inner product value of a first vector directed from the candidate point O3t calculated by the first calculation unit 312 to the point O4t of interest and a second vector directed from the point O4t of interest to the intersection point O5. Since coordinates of the point O4t of interest, the candidate point O3t, and the intersection point O5 in the robot coordinate system are known, the inner product value may be calculated.
The estimation unit 314 has a function of estimating that the point O4t of interest when an absolute value of the inner product value calculated by the second calculation unit 313 is less than or equal to a predetermined threshold is the intersection point O4 of the axis Ax5 and the axis Ax4.
Next, processing of the robot control apparatus 3, on which the algorithm according to the present embodiment is implemented, will be described with reference to a flowchart of
In the robot program, values of the position and the posture of the end effector, which are required from teaching information of the robot, are described. The controller 31 of the robot control apparatus 3 calculates the intersection point O5 of the axis Ax6 and the axis Ax5 from the required values of the position and the posture of the end effector (S10). Since the point O6 at the installation position of the end effector, the direction of the axis Ax6, and the interlink distance d6 are known, the controller 31 may calculate coordinates of the intersection point O5.
Next, the controller 31 determines the point O4t of interest, which is a point on a circumference of a circle having the interlink distance d5 as a radius, around the intersection point O5 on a plane which includes the intersection point O5 (an example of the first intersection point) and the plane which is orthogonal to the axis Ax6 (S12). A setting start position of the point O4t of interest on the circumference of the circle C5 may be arbitrarily determined.
When the point O4t of interest is determined, the controller 31 calculates the candidate point O3t of the intersection point O3 on the basis of the geometric relationship on the arm plane shown in
Next, the controller 31 calculates an inner product value of a vector directed from the candidate point O3t to the point O4t of interest and a vector directed from the point O4t of interest to the intersection point O5 (S16). When an absolute value of the obtained inner product value is less than or equal to a predetermined threshold (NO in operation S18), the controller 31 moves the point O4t of interest (i.e., changes the point O4t of interest) on the circumference of the circle C5 at a predetermined interval (pitch) and re-performs processing of operations S12 to S18.
When the inner product value obtained in operation S16 is less than or equal to the predetermined threshold (YES in operation S18), it may be determined that a line connecting the candidate point O3t to the point O4t of interest and a line connecting the point O4t of interest to the intersection point O5 are substantially orthogonal to each other and the constraint conditions of the links are satisfied. Therefore, the controller 31 determines that the candidate point O3t and the point O4t of interest when the inner product value is less than or equal to the predetermined threshold are the intersection point O3 and the intersection point O4 (S20).
Next, the controller 31 calculates the rotation angles θ1 to θ3 of the joints J1 to J3 on the basis of the geometric relationship on the arm plane shown in
As described above, according to the robot control apparatus 3 according to the present embodiment, even when there is an offset (i.e., the interlink distance d5 in
Although the embodiments of the robot control apparatus of the present disclosure have been described, the present disclosure is not limited to the above embodiments.
According to the above description, it is understood by those skilled in the art that a program for causing a computer to implement the functions described in the functional block diagram of
Features of the above-described preferred embodiments and the modifications thereof may be combined appropriately as long as no conflict arises.
While preferred embodiments of the present invention have been described above, it is to be understood that variations and modifications will be apparent to those skilled in the art without departing from the scope and spirit of the present invention. The scope of the present invention, therefore, is to be determined solely by the following claims.
Number | Date | Country | Kind |
---|---|---|---|
2018-067235 | Mar 2018 | JP | national |