JP2012196715A - Method and device of controlling robot - Google Patents
Method and device of controlling robot Download PDFInfo
- Publication number
- JP2012196715A JP2012196715A JP2011060618A JP2011060618A JP2012196715A JP 2012196715 A JP2012196715 A JP 2012196715A JP 2011060618 A JP2011060618 A JP 2011060618A JP 2011060618 A JP2011060618 A JP 2011060618A JP 2012196715 A JP2012196715 A JP 2012196715A
- Authority
- JP
- Japan
- Prior art keywords
- target position
- axis
- tool
- rotation angle
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
Description
本発明は、複数の軸を有するロボットの手先に取り付けられるツールの先端を現在位置から目標位置に向けて移動させる際におけるロボットの制御方法およびロボットの制御装置に関する。 The present invention relates to a robot control method and a robot control device for moving a tip of a tool attached to a hand of a robot having a plurality of axes from a current position toward a target position.
工場などにおいてロボットが導入される目的としては、生産効率の向上、つまり生産タクトタイムの短縮を図るという点が大きい。生産タクトタイムの短縮を図るためには、ロボットにより行われる1つ1つの作業における動作時間を短くする必要がある。そのため、ロボットの動作時間が極力短くなるようなティーチング(教示)が作業者により行われている。すなわち、現状においてロボットの動作時間を短くする作業は、ティーチングを担当する作業者の個人能力に大きく依存していることになる。 The purpose of introducing robots in factories and the like is to improve production efficiency, that is, to shorten production tact time. In order to shorten the production tact time, it is necessary to shorten the operation time in each work performed by the robot. Therefore, teaching (teaching) is performed by an operator so that the operation time of the robot is as short as possible. That is, in the present situation, the work for shortening the operation time of the robot greatly depends on the individual ability of the worker in charge of teaching.
ロボットの手先に取り付けられるツールの先端を現在位置から目標位置に向けて移動させるために行われるティーチングでは、目標位置におけるツールの先端位置および向きを決定するための各変数の値は、作業者により全て指定されるようになっている。上記各変数とは、ツール先端の各座標値に加え、ツール(手先)の所定軸まわりの回転角度(例えば、4軸の水平多関節型ロボットの場合であれば第4軸まわりの回転角度)のことである。 In teaching performed to move the tip of the tool attached to the hand of the robot from the current position toward the target position, the value of each variable for determining the tip position and orientation of the tool at the target position is determined by the operator. All are specified. Each of the above variables is a rotation angle around a predetermined axis of the tool (hand) in addition to each coordinate value of the tool tip (for example, a rotation angle around the fourth axis in the case of a 4-axis horizontal articulated robot) That's it.
さて、ロボットの手先に取り付けられるツールの種類および作業内容によっては、そのツールの向き(=手先の向き)にかかわらず、その作業を達成可能なケースがある。例えば、4軸の水平多関節型ロボットにツールとしてエアチャックが用いられる場合、ツールの向き(第4軸まわりの向き)にかかわらずワークを把持することができる。このように、ワークを把持可能な位置(目標位置)におけるツールの特定の向きが、どのような向きでもよい場合がある。 Now, depending on the type of tool attached to the hand of the robot and the work content, there are cases where the work can be achieved regardless of the direction of the tool (= the direction of the hand). For example, when an air chuck is used as a tool in a 4-axis horizontal articulated robot, the workpiece can be gripped regardless of the direction of the tool (the direction around the fourth axis). As described above, the specific direction of the tool at the position where the workpiece can be gripped (target position) may be any direction.
図7は、ツール先端を現在位置から目標位置に向けて移動させる際におけるロボットの態様を模式的に示している。図7に示すロボットは、4軸の水平多関節型ロボットであり、その手先にツールとしてエアチャックが取り付けられている。なお、図7では、各軸(各関節)および各リンクをそれぞれ丸印および直線で示すとともに、ツール先端を矢印で示している。図7において、実線で示す現在位置から点線または破線で示す目標位置までツール先端を移動させ、ツールであるエアチャックによりワークを把持する作業が行われる。 FIG. 7 schematically shows an aspect of the robot when the tool tip is moved from the current position toward the target position. The robot shown in FIG. 7 is a 4-axis horizontal articulated robot, and an air chuck is attached as a tool to the hand. In FIG. 7, each axis (each joint) and each link are indicated by a circle and a straight line, respectively, and the tip of the tool is indicated by an arrow. In FIG. 7, the tool tip is moved from the current position indicated by the solid line to the target position indicated by the dotted line or the broken line, and the work is gripped by the air chuck that is a tool.
ロボットが破線で示す状態となる場合、ツール先端がワークの正面(図7中、下側の面)に正対する向きになっている。一方、ロボットが点線で示す状態となる場合、ツール先端がワークの正面に対して斜め向きとなっている。これらの各状態では、互いに各軸(関節)の回転角度が異なっている。すなわち、ツールの向きに応じてロボットの姿勢が変化する。そのため、上記各状態では、現在位置からの移動時間が互いに異なる。具体的には、目標位置におけるロボットの姿勢を破線で示した状態とした場合に比べ、点線で示した状態とした場合のほうが、現在位置から目標位置までの移動時間が短くなる。その理由は、点線の状態のほうが、破線の状態に比べ、最も移動時間が長くなる第1軸の移動量(回転量)が小さくなるためである。 When the robot is in a state indicated by a broken line, the tip of the tool is oriented to face the front of the workpiece (the lower surface in FIG. 7). On the other hand, when the robot is in a state indicated by a dotted line, the tool tip is inclined with respect to the front surface of the workpiece. In each of these states, the rotation angles of the respective axes (joints) are different from each other. That is, the posture of the robot changes according to the direction of the tool. Therefore, in each of the above states, the movement times from the current position are different from each other. Specifically, the movement time from the current position to the target position is shorter when the posture of the robot at the target position is the state indicated by the broken line than when the posture is indicated by the dotted line. The reason is that the amount of movement (rotation amount) of the first axis that takes the longest movement time is smaller in the dotted line state than in the broken line state.
上記した目標位置のツール(手先)の向きを不問とするケースにおけるティーチングでも、目標位置におけるツールの先端位置および向きを決定するための変数の値は、作業者により全て指定されることになる。言い換えると、目標位置におけるロボットの姿勢(各軸の回転角度)が作業者により決定されることになる。しかし、前述したとおり、目標位置におけるツールの向きを不問とするケースでは、ツールの先端位置が同じ目標位置となるロボットの姿勢が多数存在する。作業者は、それら多数の姿勢の中から、最適な姿勢を選んで決定する必要がある。つまり、作業者は、ロボットの動作時間が出来るだけ短くなるように、目標位置におけるツールの向きを決定するための変数の値を設定する必要がある。図7のケースであれば、目標位置におけるロボットの姿勢(ツールの向き)を、破線で示した状態ではなく、点線で示した状態となるようなティーチング作業が要求される。 Even in the teaching in the case where the orientation of the tool (hand) at the target position is not questioned, the values of variables for determining the tip position and orientation of the tool at the target position are all designated by the operator. In other words, the posture of the robot at the target position (the rotation angle of each axis) is determined by the operator. However, as described above, in the case where the direction of the tool at the target position is unquestioned, there are many postures of the robot where the tip position of the tool is the same target position. The worker needs to select and determine the optimum posture from the many postures. That is, the operator needs to set the value of a variable for determining the direction of the tool at the target position so that the operation time of the robot is as short as possible. In the case of FIG. 7, teaching work is required so that the posture of the robot (the direction of the tool) at the target position is not the state indicated by the broken line but the state indicated by the dotted line.
このように、目標位置におけるツールの向きを不問とするケースにおいて、多数存在するロボットの姿勢の中から、動作時間が最短となる目標位置におけるロボットの姿勢(各軸の回転角度)を見つけ出す作業は非常に困難であり、たとえ熟練の作業者であっても、その作業に多大な時間を要することが多く、その作業負担が非常に大きい。 In this way, in cases where the orientation of the tool at the target position is unquestioned, the task of finding the robot posture (rotation angle of each axis) at the target position where the operation time is the shortest from among the many robot postures that exist It is very difficult, and even a skilled worker often requires a lot of time for the work, and the work load is very large.
ところで、ロボットを用いた作業のサイクルタイムを短縮するための従来技術としては、例えば特許文献1に記載された技術が挙げられる。特許文献1に記載の技術は、所定の方向や回転方向については位置制御を行わず、その代わりに、力やトルク値による制御を行うというものである。
By the way, as a prior art for shortening the cycle time of the operation | work using a robot, the technique described in
しかしながら、特許文献1に記載の技術は、正しく目標位置が計算可能となるように、ユーザにより位置情報および力やトルク値情報が与えられるということを前提としている。そのため、目標位置におけるロボットの姿勢を求める必要があると考えられる。つまり、特許文献1に記載の技術は、従来と手法が異なるだけで同じ程度の作業負担を要するものであり、ユーザによる作業負担が軽減されることは少ないと考えられるため、上記課題を解決する手段であるとは言えない。
However, the technique described in
本発明は上記事情に鑑みてなされたものであり、その目的は、目標位置におけるツールの向きを決定するための変数の値を設定する際におけるユーザの作業負担を軽減しつつ、ロボットの移動時間の短縮を図ることができるロボットの制御方法およびロボットの制御装置を提供することにある。 The present invention has been made in view of the above circumstances, and its object is to reduce the work load on the user when setting the value of a variable for determining the direction of the tool at the target position, while moving the robot. It is an object of the present invention to provide a robot control method and a robot control apparatus capable of shortening the length of the robot.
請求項1または3に記載の手段によれば、複数の軸を有するロボットの手先に取り付けられるツールの先端を現在位置から目標位置に向けて移動させる際の制御において、任意変数設定処理と、変数値決定処理とが実行される。一般的なティーチング作業では、ツールの先端位置および向きを決定するための各変数の値は、全てユーザにより指定される。なお、各変数の値とは、ツール先端の各座標値(X軸座標、Y軸座標およびZ軸座標の値)およびツール(手先)の所定軸まわりの回転角度(例えば、4軸の水平多関節型ロボットの場合であれば第4軸(Z軸)まわりの回転角度)の値である。しかし、手先に取り付けられるツールの種類および作業内容によっては、そのツールの向き(=手先の向き)にかかわらず、その作業を達成することが可能な場合もある。例えば、4軸の水平多関節型ロボットにツールとしてエアチャックが用いられる場合、ツールの向き(第4軸まわりの向き)にかかわらずワークを把持することができる。この場合、目標位置におけるツールの向きは、どのような向きでも構わないと言える。従来では、このような場合であっても、ツールの向きを決定するための変数(例えばZ軸まわりの回転角度)をユーザが指定していた。
According to the means of
これに対し、本手段によれば、ツールの向きを決定するための変数のうち、ユーザにより指定される1つまたは2つの変数が任意の値に設定可能な任意変数として設定される(任意変数設定処理)。そして、ツールの先端が現在位置から目標位置に移動する際に要する移動時間と、移動後のツールの先端位置の目標位置に対する位置誤差とに基づく評価指標が設定され、その評価指標が最適化されて任意変数の値が決定される(変数値決定処理)。例えば、4軸の水平多関節型ロボットの手先にエアチャックが取り付けられる場合において、ツール(手先)のZ軸まわりの回転角度が任意変数として指定されれば、目標位置におけるツールのZ軸まわりの回転角度は、ツールの移動時間が極力短くなるような値に自動的に決定される。 On the other hand, according to the present means, one or two variables designated by the user among variables for determining the direction of the tool are set as arbitrary variables that can be set to arbitrary values (arbitrary variables Setting process). Then, an evaluation index is set based on the movement time required for the tool tip to move from the current position to the target position and the position error of the tool tip position after movement relative to the target position, and the evaluation index is optimized. Thus, the value of the arbitrary variable is determined (variable value determination processing). For example, when an air chuck is attached to the tip of a 4-axis horizontal articulated robot, if the rotation angle around the Z axis of the tool (hand) is specified as an arbitrary variable, the tool around the Z axis of the tool at the target position The rotation angle is automatically determined to a value that minimizes the movement time of the tool.
すなわち、変数値決定処理では、現在位置が計算対象位置として設定され、その計算対象位置におけるツールの先端位置および向きを決定するための変数(X、Y、Z軸座標値およびZ軸まわりの回転角度)のうち任意変数に指定されたZ軸まわりの回転角度を除いた変数と、計算対象位置における各軸(関節)の回転角度とに関するヤコビ行列Jkが求められる。また、下記(1)式に示す評価指標Qkが設定される。ただし、位置誤差の座標値を要素とする行列をεkとし、各軸の回転角度の変化量を要素とする行列をΔkとし、対角成分が各軸の最大回転速度の逆数の二乗である対角行列をλとしている。なお、εk Tはεkの転置行列であり、Δk TはΔkの転置行列である。
Qk=εk T・εk+Δk T・λ・Δk …(1)
That is, in the variable value determination process, the current position is set as a calculation target position, and variables for determining the tip position and orientation of the tool at the calculation target position (X, Y, Z axis coordinate values and rotation around the Z axis) The Jacobian matrix J k relating to the variable excluding the rotation angle around the Z axis designated as an arbitrary variable and the rotation angle of each axis (joint) at the calculation target position is obtained. In addition, an evaluation index Q k shown in the following formula (1) is set. However, ε k is a matrix whose element is the coordinate value of the position error, Δ k is a matrix whose element is the amount of change in the rotation angle of each axis, and the diagonal component is the square of the reciprocal of the maximum rotation speed of each axis. A diagonal matrix is λ. Note that ε k T is a transposed matrix of ε k , and Δ k T is a transposed matrix of Δ k .
Q k = ε k T · ε k + Δ k T · λ · Δ k ... (1)
上記(1)式において、右辺第一項は位置誤差の二乗和である。また、右辺第二項は各軸の回転角度の変化量(移動量)の二乗和に対角行列λを乗じたものであり、移動時間の二乗和に対して各軸の最大回転速度に応じた重み付けが与えられたものである。すなわち、移動時間の概算値に相当する。このように設定された評価指標Qkを最小化することにより、下記(2)式に示す変化量Δkが演算される。ただし、目標位置の座標値を要素とする行列をPdとし、計算対象位置の座標値を要素とする行列をPkとしている。なお、Jk TはJkの転置行列である。
Δk=(λ+Jk T・Jk)−1・Jk T(Pd−Pk) …(2)
In the above equation (1), the first term on the right side is the sum of squares of the position error. The second term on the right-hand side is the sum of squares of the change amount (movement amount) of the rotation angle of each axis multiplied by the diagonal matrix λ, and corresponds to the maximum rotation speed of each axis with respect to the square sum of movement time. Given weights. That is, it corresponds to an approximate value of travel time. By minimizing the evaluation index Q k set in this way, a change amount Δ k shown in the following equation (2) is calculated. However, the matrix that the coordinate values of the target position and element and P d, the matrix of the coordinate values of the calculation target position and element is set to P k. J k T is a transposed matrix of J k .
Δ k = (λ + J k T · J k) -1 · J k T (P d -P k) ... (2)
計算対象位置における各軸の回転角度に対して上記演算された変化量Δkを加えた各軸の回転角度、つまり移動後の各軸の回転角度について順変換を行うことにより、移動後のツールの先端位置が演算される。そして、演算された移動後のツールの先端位置の目標位置に対する位置誤差が求められ、その位置誤差が所定の許容誤差以下であるか否かが判断される。つまり、演算により求められた移動後のツールの先端位置が十分に目標位置に近づいているか否かが判断される。その結果、位置誤差が許容誤差を超える場合、演算した移動後のツールの先端位置を次の計算対象位置とした上で、次の移動後のツールの先端位置を求めるための上記各演算が再度実行される。 By performing forward conversion on the rotation angle of each axis obtained by adding the calculated change amount Δk to the rotation angle of each axis at the calculation target position, that is, the rotation angle of each axis after movement, a tool after movement is obtained. The tip position of is calculated. Then, a position error with respect to the target position of the calculated tool tip position is obtained, and it is determined whether or not the position error is equal to or less than a predetermined allowable error. That is, it is determined whether or not the tip position of the moved tool obtained by the calculation is sufficiently close to the target position. As a result, if the position error exceeds the allowable error, the above calculation for obtaining the tool tip position after the next movement is performed again after setting the calculated tool tip position as the next calculation target position. Executed.
一方、上記判断の結果、位置誤差が許容誤差以下である場合、計算対象位置における各軸の回転角度に対して上記演算された変化量Δkを加えた各軸の回転角度(移動後の各軸の回転角度)に基づいて、目標位置におけるZ軸まわりの回転角度の値が決定される。すなわち、上記演算により求められた移動後のツールの先端位置が十分に目標位置に近づいていると判断された場合、そのときのZ軸まわりの回転角度(任意変数)の値が、目標位置におけるZ軸まわりの回転角度(任意変数)の値として設定される。その設定されたZ軸まわりの回転角度の値は、移動時間の概算値が含まれた評価指標Qkを最小化することにより設定されたものであるから、ツール(ロボット)の移動時間が極力短くなるような値となっている。 On the other hand, if the position error is equal to or less than the allowable error as a result of the above determination, the rotation angle of each axis (each moved position) obtained by adding the calculated change Δk to the rotation angle of each axis at the calculation target position. The value of the rotation angle around the Z axis at the target position is determined based on the rotation angle of the shaft. That is, when it is determined that the tip position of the tool after movement obtained by the above calculation is sufficiently close to the target position, the value of the rotation angle (arbitrary variable) around the Z axis at that time is the value at the target position. It is set as the value of the rotation angle (arbitrary variable) around the Z axis. Since the set value of the rotation angle around the Z axis is set by minimizing the evaluation index Q k including the approximate value of the moving time, the moving time of the tool (robot) is as much as possible. The value becomes shorter.
ロボット側において上記した制御が自動的に実行されるため、ユーザがティーチング時に行う作業としては、目標位置におけるツール先端の各座標値を指定するとともに、ツール(手先)のZ軸まわりの回転角度を任意変数として指定するだけでよい。そして、値が指定された目標位置におけるツール先端のX、Y、Z軸座標の値に加え、上記したように自動的に決定された目標位置におけるツールのZ軸まわりの回転角度(任意変数)の値に基づいて、ツールの先端を現在位置から目標位置に向けて移動させることにより、ティーチング時におけるユーザ(作業者)の作業負担を軽減しつつ、ロボットの移動時間の短縮を図ることができる。 Since the above-mentioned control is automatically executed on the robot side, the user performs the teaching operation by specifying each coordinate value of the tool tip at the target position and setting the rotation angle of the tool (hand) around the Z axis. Just specify it as an arbitrary variable. Then, in addition to the X, Y and Z axis coordinate values of the tool tip at the specified target position, the rotation angle of the tool around the Z axis at the target position automatically determined as described above (arbitrary variable) By moving the tip of the tool from the current position toward the target position based on the value of the robot, it is possible to reduce the work load on the user (operator) during teaching and shorten the movement time of the robot. .
なお、ここでは、4軸の水平多関節型ロボットの場合を例に説明したが、例えば6軸の垂直多関節型ロボットの場合であれば次のようになる。すなわち、ツールの向きを決定するための変数(X、Y、Z軸まわりの各回転角度)のうち、いずれか1つ、あるいは、いずれか2つが任意変数として指定されれば、目標位置におけるツール(手先)の特定の軸まわりの回転角度が、ロボットの移動時間が極力短くなるような値に自動的に決定される。その結果、上記した4軸の水平多関節型ロボットの場合と同様の効果が得られる。すなわち、本手段によれば、複数の軸を有するロボット全般について、上記した作用および効果が得られる。 Here, the case of a 4-axis horizontal articulated robot has been described as an example. However, for example, the case of a 6-axis vertical articulated robot is as follows. That is, if any one or two of variables for determining the direction of the tool (respective rotation angles around the X, Y, and Z axes) are designated as arbitrary variables, the tool at the target position The rotation angle of the (hand) around a specific axis is automatically determined to a value that minimizes the movement time of the robot. As a result, the same effects as those of the above-described 4-axis horizontal articulated robot can be obtained. That is, according to this means, the above-mentioned operation and effects can be obtained for all robots having a plurality of axes.
本手段では、移動時間の概算値が含まれた二次形式の評価指標Qkを用い、ヤコビ行列を用いた最適化演算を行っている。そのため、任意変数の値を決定するための演算処理を比較的高速に行うことができる。ところで、ヤコビ行列は、各軸(各関節)における微小変位と、それに伴う手先の位置および向き(姿勢)の微小変位との比率を表すものである。本手段においては、このようなヤコビ行列を用いた演算が繰り返される結果、その演算により求められる移動後のツールの先端位置が徐々に目標位置に近づいていくことになる。そのため、上記変数値決定処理により決定された任意変数の値に基づくロボットの目標位置における姿勢(形態)は、現在位置における姿勢に対し、大きく変化することはない。姿勢の変化が小さいということは、各軸(関節)の移動量が小さいことを意味する。このようなことからも、上述したロボットの移動時間短縮の効果が得られるということが明らかである。 In this means, an optimization calculation using a Jacobian matrix is performed using a quadratic evaluation index Q k including an approximate value of travel time. Therefore, it is possible to perform an arithmetic process for determining the value of an arbitrary variable at a relatively high speed. By the way, the Jacobian matrix represents a ratio between a minute displacement in each axis (each joint) and a minute displacement of the hand position and orientation (posture) associated therewith. In this means, as a result of repeating the calculation using such a Jacobian matrix, the tip position of the moved tool obtained by the calculation gradually approaches the target position. Therefore, the posture (form) of the target position of the robot based on the value of the arbitrary variable determined by the variable value determination process does not change significantly with respect to the posture at the current position. A small change in posture means that the amount of movement of each axis (joint) is small. From this, it is clear that the effect of shortening the movement time of the robot can be obtained.
請求項1または3に記載の手段では、ヤコビ行列を用いた演算により求められる移動後のツールの先端位置が十分に目標位置に近づいていると判断された場合、そのときの任意変数の値を、目標位置における任意変数として設定していた。しかし、ヤコビ行列は上記した特性を有しているため、上記演算による最終的な移動後のツールの先端位置であっても目標位置から僅かに外れることになる。そのため、決定した任意変数の値が、必ずしもロボットの移動時間を確実に最小化できるものであるとは言いきれない。このように、請求項1または3に記載の手段により決定される任意変数の値には改善の余地がある。
In the means according to
請求項2または4に記載の手段によれば、請求項1または3に記載の手段により決定された任意変数の値を変更する変数値変更処理が実行される。その変数値変更処理は、現在位置における各軸の回転角度を基準とした各軸の回転角度の変化量を示す各軸移動距離に基づく評価指標を設定し、ツールの先端位置を変化させないという束縛条件の下で、その評価指標を最適化して、決定された任意変数の値を変更するというものである。例えば、前述した4軸の水平多関節型ロボットのケースであれば、目標位置におけるツールの先端位置および向きを決定するための変数のうち、ツールのZ軸まわりの回転角度(任意変数)を除く変数の値が固定された上で、各軸移動距離に基づく評価指標を最小化する演算が繰り返し実行される。その結果、目標位置におけるツールのZ軸まわりの回転角度は、移動時間がさらに短くなるような値に変更される。
According to the means described in
具体的には、変数値変更処理では、ユーザにより指定されるツール先端の目標位置(X、Y、Z軸座標の値)と、決定された目標位置におけるツールのZ軸まわりの回転角度(任意変数)の値(ツールの向き)とが、計算対象位置として設定される。このように、本手段における計算対象位置は、ツール先端の各軸座標値だけでなく、ツールの向きについても含むものとなっている。そして、その計算対象位置を決定するための各変数のうち、任意変数であるZ軸まわりの回転角度を除いた変数と、計算対象位置における各軸の回転角度とに関するヤコビ行列Jkが求められる。また、下記(3)式に示す評価指標Qkが設定される。ただし、本手段では、各軸移動距離を要素とする行列をεkとしている。なお、εk Tはεkの転置行列である。
Qk=εk T・λ・εk …(3)
Specifically, in the variable value changing process, the target position (X, Y, Z-axis coordinate values) of the tool tip specified by the user and the rotation angle around the Z-axis of the tool at the determined target position (arbitrary) Variable) value (tool direction) is set as the calculation target position. As described above, the calculation target position in this means includes not only the respective axis coordinate values of the tool tip but also the direction of the tool. Then, among the variables for determining the calculation target position, a Jacobian matrix J k relating to a variable excluding the rotation angle around the Z axis, which is an arbitrary variable, and the rotation angle of each axis at the calculation target position is obtained. . In addition, an evaluation index Q k shown in the following equation (3) is set. However, in this means, a matrix whose elements are the movement distances of the respective axes is ε k . Note that ε k T is a transposed matrix of ε k .
Q k = ε k T · λ · ε k (3)
上記(3)式に示す評価指標Qkは、各軸移動距離の二乗和に対角行列λを乗じたものであり、移動時間の二乗和に対して各軸の最大回転速度に応じた重み付けが与えられたものである。すなわち、移動時間の概算値に相当する。このように設定された評価指標Qkを、ツールの先端位置を変化させないという束縛条件(Jk・Δk=0)を満たしつつ最小化することにより、下記(4)式に示す変化量Δkが演算される。ただし、計算対象位置における各軸の回転角度を要素とする行列をθkとし、現在位置における各軸の回転角度を要素とする行列をθcとしている。
Δk={λ−1・Jk T・(Jk・λ−1・Jk T)−1・Jk−I}(θk−θc)
…(4)
The evaluation index Q k shown in the above equation (3) is obtained by multiplying the sum of squares of the movement distances of each axis by the diagonal matrix λ, and weighting according to the maximum rotation speed of each axis with respect to the sum of squares of the movement times. Is given. That is, it corresponds to an approximate value of travel time. By minimizing the evaluation index Q k set in this way while satisfying the constraint condition that the tip position of the tool is not changed (J k · Δ k = 0), the change amount Δ shown in the following equation (4) k is calculated. However, a matrix having the rotation angle of each axis at the calculation target position as an element is θ k , and a matrix having the rotation angle of each axis at the current position as an element is θ c .
Δ k = {λ -1 · J k T · (J k · λ -1 · J k T) -1 · J k -I} (θ k -θ c)
... (4)
計算対象位置における各軸の回転角度に対して上記演算された変化量Δkを加えた各軸の回転角度(移動後の各軸の回転角度)について順変換を行うことにより、移動後のツールの向きが演算される。そして、評価指標Qkの変化の傾向が判断される。その結果、評価指標Qkが所定の傾き以上の減少傾向にある場合、評価指標Qkをさらに最小化する余地があると考えられる。その場合、目標位置および演算されたツールの向きを次の計算対象位置として設定した上で、次の移動後のツールの向きを求めるための上記各演算が再度実行される。 By performing forward conversion on the rotation angle (rotation angle of each axis after movement) of each axis obtained by adding the calculated change amount Δk to the rotation angle of each axis at the calculation target position, the tool after movement Is calculated. Then, the tendency of the change in the evaluation index Q k is determined. As a result, if the evaluation index Q k is above the decline predetermined inclination, it considered there is room for further minimizing the metric Q k. In that case, after setting the target position and the calculated tool direction as the next calculation target position, the above-described respective calculations for determining the direction of the tool after the next movement are executed again.
一方、上記判断の結果、評価指標Qkが所定の傾き未満の減少傾向にある場合、または、変化がない場合、評価指標Qkをさらに最小化する余地が少ないと考えられる。その場合、計算対象位置における各軸の回転角度に対して上記演算された変化量Δkを加えた各軸の回転角度(移動後の各軸の回転角度)に基づいて、目標位置におけるツールのZ軸まわりの回転角度の値が変更される。その変更されたツールのZ軸まわりの回転角度の値は、移動時間の概算値が含まれた評価指標Qkを最小化することにより決定された値であるから、ツール(ロボット)の移動時間が極力短くなるような値となっている。さらに、上記演算は、目標位置におけるツールの先端位置および向きを決定するための変数のうち、ツールのZ軸まわりの回転角度(任意変数)を除く変数の値が固定された上で行われている。つまり、ツール先端の位置を目標位置に固定した状態でもって、移動時間が極力短くなるツールのZ軸まわりの回転角度が求められている。従って、ロボットの移動時間を一層短縮することができるという効果が得られる。 On the other hand, the result of the determination, if the evaluation index Q k is decreasing below a predetermined slope, or, if there is no change, is believed to be less susceptible to further minimize the evaluation index Q k. In that case, based on the rotation angle (rotation angle of each axis after movement) of each axis obtained by adding the calculated change amount Δk to the rotation angle of each axis at the calculation target position, the tool at the target position is determined. The value of the rotation angle around the Z axis is changed. Since the value of the rotation angle around the Z-axis of the changed tool is a value determined by minimizing the evaluation index Q k including the approximate value of the movement time, the movement time of the tool (robot) The value is such that is as short as possible. Further, the above calculation is performed after fixing the values of variables excluding the rotation angle (arbitrary variable) around the Z axis of the tool among variables for determining the tip position and orientation of the tool at the target position. Yes. That is, the rotation angle around the Z-axis of the tool that requires the moving time as short as possible with the position of the tool tip fixed at the target position is required. Therefore, the effect that the movement time of the robot can be further shortened can be obtained.
(第1の実施形態)
以下、本発明の第1の実施形態について図1〜図4を参照しながら説明する。
図1は、一般的な産業用ロボットのシステム構成を示している。図1に示すロボットシステム1は、ロボット2と、ロボット2を制御するコントローラ3と、コントローラ3に接続されたティーチングペンダント4とから構成されている。
(First embodiment)
Hereinafter, a first embodiment of the present invention will be described with reference to FIGS.
FIG. 1 shows a system configuration of a general industrial robot. A
ロボット2は、例えば4軸の水平多関節型ロボットとして構成されている。ロボット2は、設置面に固定されるベース5と、ベース5上にZ軸(垂直軸)方向の軸心を持つ第1軸J1を中心に回転可能に連結された第1のアーム6と、第1のアーム6の先端部上にZ軸方向の軸心を持つ第2軸J2を中心に回転可能に連結された第2のアーム7と、第2のアーム7の先端部に上下動可能で且つ回転可能に設けられたシャフト8とから構成されている。シャフト8を上下動させる際の軸が第3軸J3であり、回転させる際の軸が第4軸J4である。シャフト8の先端部(下端部)には、フランジ9が位置決めされて着脱可能に取り付けられる。
The
ベース5、第1のアーム6、第2のアーム7、シャフト8およびフランジ9は、ロボット2のアームとして機能する。アーム先端であるフランジ9(手先に相当)には、図示はしないが、例えばエアチャックなどのツールが取り付けられる。ロボット2に設けられる複数の軸(J1〜J4)はそれぞれに対応して設けられるモータ(図示せず)により駆動される。各モータの近傍には、それぞれの回転軸の回転角度(回転位置)を検出するための位置検出器(図示せず)が設けられている。
The base 5, the first arm 6, the
一般に、産業用のロボットは、予めティーチングなどを実施することにより作成される所定の動作プログラムに従って動作するようになっている。コントローラ3(ロボットの制御装置に相当)は、その動作プログラムに基づいてモータの駆動をフィードバック制御し、ロボット2のアームの動作制御を行う。
In general, an industrial robot operates according to a predetermined operation program created by performing teaching or the like in advance. The controller 3 (corresponding to a control device for the robot) performs feedback control of the motor drive based on the operation program and controls the operation of the arm of the
ティーチングペンダント4は、例えば使用者が携帯あるいは手に所持して操作可能な程度の大きさで、例えば薄型の略矩形箱状に形成されている。ティーチングペンダント4には、各種のキースイッチが設けられており、使用者は、それらキースイッチにより種々の入力操作を行う。ティーチングペンダント4は、ケーブルを経由してコントローラ3に接続され、通信インターフェイスを経由してコントローラ3との間で高速のデータ転送を実行するようになっており、キースイッチの操作により入力された操作信号等の情報はティーチングペンダント4からコントローラ3へ送信される。
The
一般に、ロボット2の手先であるフランジ9に取り付けられるツールの先端を、現在位置から目標位置に向けて移動させる動作のティーチング作業が行われる際、目標位置におけるロボット2の姿勢をどのようなものにするかはユーザにより決定される。すなわち、このようなティーチング作業の際、ツール先端の目標位置を決定するための変数(ツール先端のX軸座標値、Y軸座標値およびZ軸座標値)と、目標位置におけるツール(手先)の向きを決定するための変数(ツールのZ軸まわりの回転角度)とは、全てユーザにより指定される。ただし、フランジ9に取り付けられるツールの種類(形状)およびそのツールを用いた作業の内容によっては、ツールの向きを不問とすることが可能である。例えば、ツールとしてエアチャックが用いられる場合、ツールのZ軸(第4軸J4)まわりの向きがどのような向きであっても、ワークを把持することができる。
In general, when a teaching operation is performed in which the tip of a tool attached to the
本実施形態のロボットシステム1では、上記したツールの向きを不問とすることが可能なケースにおいて、ユーザは、ツール先端の目標位置を示すX、Y、Z軸座標の値を指定するだけでよく、目標位置におけるツールのZ軸まわりの回転角度Rzの値を指定しなくてよい。その代わりに、ユーザは、ツールのZ軸まわりの回転角度Rzを任意変数として指定する。これを受けて、コントローラ3は、回転角度Rzを、コントローラ3側で任意の値に設定可能な任意変数として設定する(任意変数設定処理)。また、詳細は後述するが、コントローラ3は、ツールの先端が現在位置から目標位置に移動する際に要する移動時間と、移動後のツールの先端位置の目標位置に対する位置誤差とに基づく評価指標を設定し、その評価指標を最適化することで任意変数の値を決定する(変数値決定処理)。このように、コントローラ3は、任意変数設定処理手段および変数値決定処理手段として機能する。本実施形態では、コントローラ3により上記各処理が実行されることにより、目標位置におけるツールの向きが、ロボット2の移動時間が極力短くなるようなものに決定される。
In the
図2は、変数値決定処理の内容を示すフローチャートである。図2に示すように、変数値決定処理が開始されると(スタート)、現在位置が計算対象位置として設定される(ステップS1)。ステップS2では、計算対象位置におけるツールの先端位置および向きを決定するための変数(X、Y、Z軸座標値および回転角度Rz)のうち、任意変数に指定された回転角度Rzを除いた変数と、計算対象位置における各軸(関節)の回転角度とに関するヤコビ行列Jkが求められる。そのヤコビ行列Jkは、下記(5)式のように表される。ただし、X、Y、Z軸座標値をそれぞれXk、Yk、Zkとし、第1軸J1〜第4軸J4のそれぞれの回転角度をθ1k〜θ4kとしている。 FIG. 2 is a flowchart showing the contents of variable value determination processing. As shown in FIG. 2, when the variable value determination process is started (start), the current position is set as the calculation target position (step S1). In step S2, a variable excluding the rotation angle Rz designated as an arbitrary variable from among variables (X, Y, Z-axis coordinate values and rotation angle Rz) for determining the tip position and orientation of the tool at the calculation target position. And the Jacobian matrix J k related to the rotation angle of each axis (joint) at the calculation target position. The Jacobian matrix J k is expressed as the following equation (5). However, the X, Y, and Z axis coordinate values are X k , Y k , and Z k , respectively, and the rotation angles of the first axis J1 to the fourth axis J4 are θ1 k to θ4 k .
ステップS3では、下記(6)式に示す評価指標Qkが設定される。ただし、位置誤差の各座標値を要素とする行列をεkとし、各軸J1〜J4の各回転角度θ1〜θ4の変化量を要素とする行列をΔkとし、対角成分が各軸J1〜J4のそれぞれの最大回転速度の逆数の二乗である対角行列をλとし、位置誤差および変化量の重み付けのための定数をβとしている。また、εk Tはεkの転置行列を示し、Δk TはΔkの転置行列を示している。なお、εk、λは、それぞれ下記(7)、(8)式により表される。ただし、目標位置のX、Y、Z軸座標値を要素とする行列をPdとし、計算対象位置のX、Y、Z軸座標値を要素とする行列をPkとし、第1軸J1〜第4軸J4のそれぞれについての最大回転速度をV1max〜V4maxとしている。
Qk=εk T・εk+β・Δk T・λ・Δk …(6)
εk=Pd−Pk−Jk・Δk …(7)
In step S3, the evaluation index Q k shown in the following equation (6) is set. However, the matrix that the coordinate values of the position error between element and epsilon k, a matrix with variation elements of each rotation angle θ1~θ4 of each axis J1~J4 and delta k, diagonal components each axis J1 A diagonal matrix that is the square of the reciprocal of the maximum rotational speed of each of J4 is λ, and a constant for weighting the position error and the amount of change is β. Further, ε k T represents a transposed matrix of ε k , and Δ k T represents a transposed matrix of Δ k . Note that ε k and λ are expressed by the following equations (7) and (8), respectively. However, a matrix having the X, Y, Z axis coordinate values of the target position as elements is P d , a matrix having the X, Y, Z axis coordinate values of the calculation target position as elements is P k, and the first axes J1 to J1 The maximum rotation speed for each of the fourth axes J4 is set to V1 max to V4 max .
Q k = ε k T · ε k + β · Δ k T · λ · Δ k ... (6)
ε k = P d −P k −J k · Δ k (7)
上記(6)式において、右辺第一項は位置誤差の二乗和である。また、右辺第二項は各軸J1〜J4の回転角度の変化量(移動量)の二乗和に対角行列λを乗じたものであり、移動時間の概算値(近似値)に相当する。定数βは、ロボット2の各関節の可動範囲と動作速度に比例する。従って、定数βは、ロボット2の機種ごとに適宜設定すればよい。なお、評価指標Qkにおける位置誤差および移動時間の概算値の重み付けが均等であれば、定数βを省くことができる。ステップS4では、このように設定された評価指標Qkが最小化されることにより、下記(9)式に示す変化量Δkが演算される。ただし、Jk TはJkの転置行列を示している。
Δk=(β・λ+Jk T・Jk)−1・Jk T(Pd−Pk) …(9)
In the above equation (6), the first term on the right side is the sum of squares of the position error. The second term on the right side is obtained by multiplying the sum of squares of the change amounts (movement amounts) of the rotation angles of the axes J1 to J4 by the diagonal matrix λ, and corresponds to an approximate value (approximate value) of the movement time. The constant β is proportional to the movable range and operation speed of each joint of the
Δ k = (β · λ + J k T · J k) -1 · J k T (P d -P k) ... (9)
ステップS5では、下記(10)式に示すように、移動後の各軸の回転角度が求められる。ただし、移動後の各軸J1〜J4の回転角度を要素とする行列をθk+1とし、計算対象位置における各軸J1〜J4の回転角度を要素とする行列をθkとしている。また、定数γは目標位置への収束速度を調整するための定数を示している。なお、本実施形態では、定数γの値を1としているが、目標位置への収束速度を早くする場合には定数γの値を大きくすればよいし、収束速度を遅くする場合には定数γの値を小さくすればよい。
θk+1=θk+γ・Δk …(10)
In step S5, as shown in the following equation (10), the rotation angle of each axis after movement is obtained. However, a matrix having the rotation angles of the axes J1 to J4 after movement as elements is θ k + 1 , and a matrix having the rotation angles of the axes J1 to J4 at the calculation target position as elements is θ k . The constant γ is a constant for adjusting the convergence speed to the target position. In the present embodiment, the value of the constant γ is set to 1. However, when the convergence speed to the target position is increased, the constant γ may be increased, and when the convergence speed is decreased, the constant γ The value of can be reduced.
θ k + 1 = θ k + γ · Δ k (10)
ステップS6では、下記(11)式に示すように、移動後のツールの先端位置が求められる。すなわち、移動後の各軸の回転角度を要素とする行列θk+1について順変換を行うことにより、移動後のツールの先端位置のX、Y、Z軸座標値を要素とする行列Pk+1が求められる。ただし、ツールのオフセット長や各アームのリンク長などを考慮した上で各軸の回転角度からツール先端位置を求める関数をJ2Pとして表している。
Pk+1=J2P(θk+1) …(11)
In step S6, as shown in the following equation (11), the tip position of the moved tool is obtained. That is, by performing forward conversion on the matrix θ k + 1 having the rotation angle of each axis after movement as an element, a matrix P k + 1 having the X, Y, and Z-axis coordinate values of the tool tip position after movement as elements is obtained. It is done. However, the function for obtaining the tool tip position from the rotation angle of each axis in consideration of the offset length of the tool, the link length of each arm, etc. is represented as J2P.
P k + 1 = J2P (θ k + 1 ) (11)
ステップS7では、演算により求められた移動後のツールの先端位置Pk+1の目標位置Pdに対する位置誤差が求められる。ステップS8では、ステップS7で求められた位置誤差が所定の許容誤差以下であるか否かが判断される。つまり、演算により求められた移動後のツールの先端位置Pk+1が十分に目標位置Pdに近づいているか否かが判断される。その結果、位置誤差が許容誤差を超える場合(NO)、ステップS9に進む。ステップS9では、移動後のツールの先端位置Pk+1が次の計算位置に設定される。このように次の計算位置が設定された上で、ステップS2に戻り、次の移動後のツールの先端位置を求めるための各演算(ステップS2〜S8)が再度実行される。なお、上記許容誤差は、例えば、ロボット2における位置制御の精度に基づいて適宜設定すればよい。
In step S7, the position error after the movement determined by operation of the tool tip position P k + 1 of the relative target position P d is calculated. In step S8, it is determined whether or not the position error obtained in step S7 is equal to or smaller than a predetermined allowable error. That is, it is determined whether or not the tip position P k + 1 of the moved tool obtained by the calculation is sufficiently close to the target position P d . As a result, when the position error exceeds the allowable error (NO), the process proceeds to step S9. In step S9, the tool tip position P k + 1 after the movement is set as the next calculation position. After the next calculation position is set in this way, the process returns to step S2, and each calculation (steps S2 to S8) for determining the tip position of the tool after the next movement is executed again. The allowable error may be set as appropriate based on the accuracy of position control in the
一方、ステップS8による判断の結果、位置誤差が許容誤差以下である場合(YES)、ステップS10に進む。ステップS10では、上記(10)式に示した移動後の各軸J1〜J4の回転角度θk+1に基づいて、目標位置におけるZ軸まわりの回転角度Rzの値が決定され、処理が終了する(エンド)。すなわち、上記演算により求められた移動後のツールの先端位置が十分に目標位置に近づいていると判断された場合、そのときのZ軸まわりの回転角度Rzの値が、目標位置におけるZ軸まわりの回転角度Rzの値として設定される。その設定されたZ軸まわりの回転角度Rzは、移動時間の概算値が含まれた評価指標Qkを最小化することにより設定されたものであるから、ツール(ロボット2)の移動時間が極力短くなるような値になっている。 On the other hand, if the result of determination in step S8 is that the position error is less than or equal to the allowable error (YES), the process proceeds to step S10. In step S10, the value of the rotation angle Rz around the Z axis at the target position is determined based on the rotation angle θ k + 1 of each of the axes J1 to J4 after the movement shown in the above equation (10), and the process ends ( End). That is, when it is determined that the tip position of the tool after the movement obtained by the above calculation is sufficiently close to the target position, the value of the rotation angle Rz around the Z axis at that time is the value around the Z axis at the target position. Is set as the value of the rotation angle Rz. Since the set rotation angle Rz about the Z axis is set by minimizing the evaluation index Q k including the approximate value of the moving time, the moving time of the tool (robot 2) is as much as possible. The value is shorter.
コントローラ3により上記した制御が自動的に実行されるため、ユーザがティーチング時に行う作業としては、前述したように目標位置におけるツール先端の各座標値を指定するとともに、ツールのZ軸まわりの回転角度Rzを任意変数として指定するだけでよい。そして、コントローラ3は、値が指定された目標位置におけるツール先端のX、Y、Z軸座標の値に加え、上記した各処理により自動的に決定された目標位置におけるツールのZ軸まわりの回転角度Rzの値(ツールの向き)に基づいて、ツール先端を現在位置から目標位置に向けて移動させることができる。これにより、ティーチング時におけるユーザ(作業者)の作業負担が軽減されるとともに、ロボット2の移動時間が短縮されることになる。
Since the above-described control is automatically executed by the
変数値決定処理においては、移動時間の概算値が含まれた二次形式の評価指標を用い、ヤコビ行列を用いた最適化演算を行っている。そのため、変数値決定処理における各種演算処理を比較的高速に行うことが可能となっている。ところで、ヤコビ行列は、各軸(関節)における微小変位と、それに伴う手先の位置および向き(ロボット2の姿勢)の微小変位との比率を表すものである。本実施形態では、このようなヤコビ行列を用いた演算が繰り返される結果、その演算により求められる移動後のツールの先端位置が徐々に目標位置に近づいていくことになる。そのため、上記変数値決定処理により決定された任意変数の値に基づいて定まるロボット2の目標位置での姿勢は、現在位置での姿勢に対し、大きく変化することはない。姿勢の変化が小さいということは、各関節の移動量も小さいということになる。このようなことからも、本実施形態によれば、ロボット2の移動時間が短縮されるという効果が得られることが分かる。
In the variable value determination process, an optimization calculation using a Jacobian matrix is performed using a secondary-form evaluation index including an approximate value of travel time. For this reason, various arithmetic processes in the variable value determination process can be performed at a relatively high speed. By the way, the Jacobian matrix represents the ratio between the minute displacement in each axis (joint) and the minute displacement of the hand position and orientation (posture of the robot 2) associated therewith. In this embodiment, as a result of repeating the calculation using such a Jacobian matrix, the tip position of the tool after movement obtained by the calculation gradually approaches the target position. Therefore, the posture at the target position of the
次に、本実施形態のロボットシステム1により得られる具体的な効果について、図3および図4も参照して説明する。
図3は、ツール先端を現在位置Pcから目標位置Pdに向けて移動させる際におけるロボットの態様を模式的に示している。図3に示すロボットは、4軸の水平多関節型ロボットであり、その手先にツールとしてエアチャックが取り付けられている。なお、図3では、各軸および各リンクをそれぞれ丸印および直線で示すとともに、ツール先端を矢印で示している。また、現在位置におけるロボットの状態を点線で示すとともに、目標位置におけるロボットの状態を実線で示している。ここでは、現在位置Pcから目標位置Pdまでツール先端を移動させ、ツールであるエアチャックによりワークを把持する作業が行われるものとする。
Next, specific effects obtained by the
FIG. 3 schematically shows an aspect of the robot when the tool tip is moved from the current position Pc toward the target position Pd. The robot shown in FIG. 3 is a 4-axis horizontal articulated robot, and an air chuck is attached as a tool to the hand. In FIG. 3, each axis and each link are indicated by a circle and a straight line, respectively, and the tool tip is indicated by an arrow. In addition, the state of the robot at the current position is indicated by a dotted line, and the state of the robot at the target position is indicated by a solid line. Here, it is assumed that the tool tip is moved from the current position Pc to the target position Pd and the work is gripped by an air chuck that is a tool.
上記ケースにおけるティーチング作業は、従来の手法によれば次のように行われる。すなわち、ティーチングを担当する作業者は、まず、図3の(a)、(b)、(c)のそれぞれに示す状態(姿勢)について検討する。つまり、作業者は、ツールの向きを大まかに変えてみて、どの向きが良さそうであるかを推測する。その結果、(c)の状態が良さそうであると判断した場合、(c)の状態をベースにし、その(c)状態からツールの向きを少しずつ変化させたもの(図3の(d)、(e)、(f)のそれぞれに示す状態)について検討する。その結果、図3(f)の状態が最適である(移動時間が短くなる)という判断に至る。なお、ここでは、説明を簡略化するため、作業者が検討する状態の数を少なくするとともに、少ない繰り返し作業で最適な状態が見つかるケースとしている。実際には、さらに多くの状態について検討したり、繰り返し回数が増えたりすることもある。 The teaching work in the above case is performed as follows according to the conventional method. That is, the worker in charge of teaching first considers the states (postures) shown in FIGS. 3A, 3B, and 3C. That is, the worker roughly changes the direction of the tool and estimates which direction is likely to be good. As a result, when it is determined that the state of (c) looks good, the direction of the tool is gradually changed from the state of (c) based on the state of (c) ((d) of FIG. 3). , (E), and (f)). As a result, the state shown in FIG. 3F is determined to be optimal (movement time is shortened). Here, in order to simplify the description, the number of states examined by the operator is reduced, and the optimum state can be found with a small number of repeated operations. In practice, more states may be considered or the number of repetitions may increase.
これに対し、本実施形態のロボットシステム1によれば、目標位置Pdにおけるツールの向きは、コントローラ3により、ロボット2の移動時間が極力短くなるような向きに自動的に決定される。従って、従来の手法のような繰り返しの過程を経ることなく、図3の(f)の状態(ツールの向き)が最適である(移動時間を極力短くできる)という結果が容易に得られる。
On the other hand, according to the
このように、従来の手法によれば、ティーチングを担当する作業者の経験と推測により、少しずつ目標位置におけるロボットの状態(姿勢)を変化させる。そして、その作業を何回(例えば5回)か繰り返した結果、例えば、現在位置および目標位置におけるツールの向きが互いに同じロボットの姿勢(図3の(a))に比べ、ロボットの動作時間が短くなる(例えば25%程度の改善)ツールの向きを得ることが可能となっていた。これに対し、本実施形態のロボットシステム1によれば、ティーチングを担当する作業者の経験などに関係なく、従来の手法による効果と同程度の効果を得ることができる。さらに、その際、作業者は目標位置におけるロボットの姿勢について具体的に検討する必要がないため、その作業負担が大きく軽減されることになる。
Thus, according to the conventional method, the state (posture) of the robot at the target position is changed little by little based on the experience and guess of the worker in charge of teaching. Then, as a result of repeating the operation several times (for example, five times), for example, the robot operation time is longer than the robot posture (FIG. 3A) in which the tool orientations at the current position and the target position are the same. It has become possible to obtain a tool orientation that is shorter (for example, an improvement of about 25%). On the other hand, according to the
図4は、ツール先端を現在位置Pcから目標領域Ad内の任意の目標位置に向けて移動させる際における図3相当図である。この場合、図4の(a)に示す目標領域Ad内におけるどの位置に移動すればよいかについては実作業時にカメラなどの外部機器から与えられ、ティーチングの時点において作業者は知ることができないものとする。このようなケースでは、目標領域Ad内のどの位置に目標位置が設定されるかによってツールの最適な向きが変化する。そのため、従来の手法では、図4の(b)に示すように、目標領域Adを複数の小領域に分割し、それら小領域ごとに最適なツールの向きを教示するなど、非常に手間がかかっていた。また、どのように目標領域Adを分割するかによって、最適なツールの向きが得られるかどうかが変化するため、ティーチングを担当する作業者の個人能力に大きく依存する部分があった。 FIG. 4 is a view corresponding to FIG. 3 when the tool tip is moved from the current position Pc toward an arbitrary target position in the target area Ad. In this case, the position to be moved within the target area Ad shown in FIG. 4A is given from an external device such as a camera during actual work, and the worker cannot know at the time of teaching. And In such a case, the optimum direction of the tool changes depending on the position in the target area Ad where the target position is set. Therefore, in the conventional method, as shown in FIG. 4B, the target area Ad is divided into a plurality of small areas, and the optimum tool orientation is taught for each of the small areas. It was. Also, depending on how the target area Ad is divided, whether or not the optimum tool orientation can be obtained changes, and therefore there is a part that depends greatly on the individual ability of the worker in charge of teaching.
これに対し、本実施形態のロボットシステム1によれば、実作業時に初めてカメラなどの外部機器から目標位置が与えられるケースであっても、コントローラ3は、与えられた目標位置に基づいて、その目標位置における最適なツールの向きを自動的に決定する。そのため、従来の手法のように目標領域Adを小領域に分割し、それら小領域ごとにティーチングをするといった手間のかかる作業を省くことが可能となる。
On the other hand, according to the
(第2の実施形態)
以下、第1の実施形態に対し、コントローラ3の制御内容を変更した第2の実施形態について図5を参照しながら説明する。
第1の実施形態では、ヤコビ行列を用いた演算により求められる移動後のツールの先端位置が十分に目標位置に近づいていると判断された場合、そのときの任意変数(ツールのZ軸まわりの回転角度Rz)の値を、目標位置における任意変数の値として設定していた。しかし、ヤコビ行列は、第1の実施形態において述べたような特性を有しているため、上記演算による最終的な移動後のツールの先端位置であっても目標位置から僅かに外れることになる。そのため、決定された任意変数の値が、必ずしもロボット2の移動時間を確実に最小化できるものであるとは言いきれない。このように、変数値決定処理により決定される任意変数の値には改善の余地がある。
(Second Embodiment)
Hereinafter, a second embodiment in which the control content of the
In the first embodiment, when it is determined that the tip position of the moved tool obtained by calculation using the Jacobian matrix is sufficiently close to the target position, an arbitrary variable at that time (around the Z axis of the tool) The value of the rotation angle Rz) was set as the value of an arbitrary variable at the target position. However, since the Jacobian matrix has the characteristics as described in the first embodiment, even the tip position of the tool after the final movement by the above calculation slightly deviates from the target position. . Therefore, it cannot be said that the determined value of the arbitrary variable can surely minimize the movement time of the
本実施形態のコントローラ3は、図2に示した任意変数値決定処理の実行後、決定された目標位置におけるツールの回転角度Rz(任意変数)の値を変更する任意変数変更処理を実行する。つまり、本実施形態のコントローラ3は、変数値変更処理手段としても機能する。その変数値変更処理は、現在位置における各軸の回転角度を基準とした各軸の回転角度の変化量を示す各軸移動距離に基づく評価指標を設定し、ツールの先端位置を変化させないという束縛条件の下で、その評価指標を最適化して、決定された任意変数の値を変更するというものである。すなわち、目標位置におけるツールの先端位置および向きを決定するための変数のうち、ツールのZ軸まわりの回転角度Rzを除く変数(X、YZ軸座標値)の値が固定された上で、各軸移動距離に基づく評価指標を最小化する演算が繰り返し実行される。その結果、目標位置におけるツールのZ軸まわりの回転角度Rzは、移動時間がさらに短くなるような値に変更される。
The
図5は、任意変数変更処理の内容を示すフローチャートである。図5に示すように、任意変数変更処理が開始されると(スタート)、ステップT1が実行される。ステップT1では、ユーザにより指定されるツール先端の目標位置(X、Y、Z軸座標値)が計算対象位置として設定される。また、その計算対象位置におけるツールのZ軸まわりの回転角度Rz(ツールの向き)は、変数値決定処理にて決定された値に設定される。このように、変数値変更処理における計算対象位置は、ツール先端の各軸座標値だけでなく、ツールの向きについても含むものとなっている。ステップT2では、計算対象位置(ツールの向きも含む)を決定するための各変数のうち、任意変数であるZ軸まわりの回転角度Rzを除いた変数と、計算対象位置における各軸の回転角度とに関するヤコビ行列Jkが求められる。そのヤコビ行列Jkは、上記(5)式のように表される。 FIG. 5 is a flowchart showing the contents of the arbitrary variable changing process. As shown in FIG. 5, when the arbitrary variable changing process is started (start), step T1 is executed. In step T1, the target position (X, Y, Z axis coordinate values) of the tool tip designated by the user is set as the calculation target position. Further, the rotation angle Rz (tool direction) of the tool around the Z axis at the calculation target position is set to a value determined by the variable value determination process. As described above, the calculation target position in the variable value changing process includes not only each axis coordinate value at the tip of the tool but also the direction of the tool. In step T2, among the variables for determining the calculation target position (including the direction of the tool), a variable excluding the rotation angle Rz around the Z axis, which is an arbitrary variable, and the rotation angle of each axis at the calculation target position And the Jacobian matrix J k for. The Jacobian matrix J k is expressed as the above equation (5).
ステップT3では、下記(12)式に示す評価指標Qkが設定される。ただし、ここでは、各軸移動距離を要素とする行列をεkとしている。また、εk Tはεkの転置行列を示している。
Qk=εk T・λ・εk …(12)
In step T3, the evaluation index Q k shown in the following equation (12) is set. However, here, a matrix having the movement distance of each axis as an element is ε k . Ε k T represents a transposed matrix of ε k .
Q k = ε k T · λ · ε k (12)
上記(12)式に示す評価指標Qkは、各軸移動距離の二乗和に対角行列λを乗じたものであり、移動時間の二乗和に対して各軸の最大回転速度に応じた重み付けが与えられたものである。すなわち、移動時間の概算値(近似値)に相当する。ステップT4では、このように設定された評価指標Qkを、下記(13)式に示す束縛条件gkを満たしつつ、最小化することにより、下記(14)式に示す変化量Δkが演算される。ただし、現在位置における各軸J1〜J4の回転角度を要素とする行列をθcとしている。なお、上記演算の手法としては、例えばラグランジュの未定乗数法などを用いることができる。
Jk・Δk=0 …(13)
Δk={λ−1・Jk T・(Jk・λ−1・Jk T)−1・Jk−I}(θk−θc)
…(14)
The evaluation index Q k shown in the above equation (12) is obtained by multiplying the sum of squares of the movement distances of each axis by a diagonal matrix λ, and weighting according to the maximum rotation speed of each axis with respect to the square sum of the movement times. Is given. That is, it corresponds to an approximate value (approximate value) of travel time. In step T4, the evaluation index Q k set in this way is minimized while satisfying the constraint condition g k shown in the following equation (13), thereby calculating the change amount Δ k shown in the following equation (14). Is done. However, and a matrix with the rotation angle of each axis J1~J4 element at the current position and theta c. As a method of the above calculation, for example, Lagrange's undetermined multiplier method or the like can be used.
J k · Δ k = 0 (13)
Δ k = {λ -1 · J k T · (J k · λ -1 · J k T) -1 · J k -I} (θ k -θ c)
... (14)
ステップT5では、第1の実施形態におけるステップS5と同様に、上記(10)式に示した移動後の各軸の回転角度が求められる。ステップT6では、下記(15)式に示すように、移動後のツールの先端位置および向きが求められる。すなわち、移動後の各軸の回転角度θk+1について順変換を行うことにより、移動後のツールの先端位置のX、Y、Z軸座標値およびZ軸まわりの回転角度Rzを要素とする行列Pk+1が求められる。
Pk+1=J2P(θk+1) …(15)
In step T5, similarly to step S5 in the first embodiment, the rotation angle of each axis after movement shown in the above equation (10) is obtained. In step T6, as shown in the following equation (15), the tip position and orientation of the moved tool are obtained. That is, by performing forward conversion on the rotation angle θ k + 1 of each axis after movement, a matrix P whose elements are the X, Y, Z axis coordinate values of the tool tip position after movement and the rotation angle Rz around the Z axis. k + 1 is determined.
P k + 1 = J2P (θ k + 1 ) (15)
ステップT7、T8では、今回の最適化演算(ステップT3、T4)により最適化された評価指標Qkの値が、前回の最適化演算により最適化された評価指標Qk−1からどのように変化したのかが判断される。すなわち、ステップT7、T8は、評価指標の変化の傾向を判断するものである。従って、変数値変更処理が実行されてから最初にステップT7に移行した際には、それらステップT7、T8をスキップしてステップT9に移行する。2回目以降に実行されるステップT7では、今回の評価指標Qkの値が、前回の評価指標Qk−1の値から減少したか否かが判断される。 In steps T7 and T8, how is the value of the evaluation index Q k optimized by the current optimization calculation (steps T3 and T4) determined from the evaluation index Q k−1 optimized by the previous optimization calculation? It is judged whether it has changed. That is, steps T7 and T8 are for judging the tendency of change in the evaluation index. Therefore, when the process proceeds to step T7 for the first time after the variable value changing process is executed, the process skips steps T7 and T8 and proceeds to step T9. In step T7 is performed after the first time, the value of this metric Q k is whether decreased from the value of the evaluation index Q k-1 of the previous time is determined.
その結果、減少したと判断された場合(ステップT7で「YES」)、ステップT8に進む。ステップT8では、評価指標の減少量が所定のしきい値以上であるか否かが判断される。すなわち、ステップT8では、評価指標が所定の傾き以上の減少傾向にあるか否かが判断される。その結果、評価指標の減少量が所定のしきい値以上である、つまり評価指標が所定の傾き以上の減少傾向にあると判断された場合(ステップT8で「YES」)、ステップT9に進む。このような場合、評価指標をさらに最小化する余地が大きいと考えられる。 As a result, when it is determined that the number has decreased ("YES" in step T7), the process proceeds to step T8. In step T8, it is determined whether or not the reduction amount of the evaluation index is equal to or greater than a predetermined threshold value. That is, in step T8, it is determined whether or not the evaluation index has a decreasing tendency equal to or greater than a predetermined inclination. As a result, when it is determined that the amount of decrease in the evaluation index is equal to or greater than a predetermined threshold value, that is, the evaluation index is in a decreasing tendency equal to or greater than a predetermined slope (“YES” in step T8), the process proceeds to step T9. In such a case, it is considered that there is much room for further minimizing the evaluation index.
ステップT9では、次のように計算対象位置が再設定される。すなわち、ステップT9では、ツール先端のX、Y、Z軸座標値は目標位置のままとし、ステップT6で演算された移動後のツールの向きが、次の計算対象位置におけるツールの向きとして設定される。このように次の計算対象位置が設定された後、ステップT2に戻り、次の移動後のツールの向きを求めるための各演算(ステップT2〜T8)が再度実行される。 In step T9, the calculation target position is reset as follows. That is, in step T9, the X, Y, and Z axis coordinate values of the tool tip remain at the target position, and the direction of the moved tool calculated in step T6 is set as the direction of the tool at the next calculation target position. The After the next calculation target position is set in this way, the process returns to step T2, and each calculation (steps T2 to T8) for determining the direction of the tool after the next movement is executed again.
一方、ステップT7にて、評価指標が減少していないと判断された場合(NO)、または、ステップT8にて、評価指標の減少量が所定のしきい値未満である、つまり評価指標が所定の傾き未満の減少傾向にあると判断された場合(NO)、ステップT10に進む。これらの場合、評価指標をさらに最小化する余地が少ないと考えられる。なお、ステップT7にて、評価指標が減少していないと判断された場合、評価指標が変化していないと考えられる。なぜなら、ここでは評価指標を最小化する演算を行っているため、評価指標が増加することはほとんど考えられない。従って、評価指標が減少していないということは、すなわち評価指標が変化していないということになる。ステップT10では、上記(10)式に示した移動後の各軸J1〜J4の回転角度θk+1に基づいて、目標位置におけるZ軸まわりの回転角度Rzの値が変更され、処理が終了する(エンド)。 On the other hand, when it is determined in step T7 that the evaluation index has not decreased (NO), or in step T8, the amount of decrease in the evaluation index is less than a predetermined threshold, that is, the evaluation index is predetermined. If it is determined that there is a decreasing tendency less than the inclination of (NO), the process proceeds to step T10. In these cases, there is little room for further minimizing the evaluation index. If it is determined in step T7 that the evaluation index has not decreased, it is considered that the evaluation index has not changed. This is because the calculation for minimizing the evaluation index is performed here, and it is almost impossible to increase the evaluation index. Therefore, if the evaluation index has not decreased, that is, the evaluation index has not changed. In step T10, the value of the rotation angle Rz around the Z axis at the target position is changed based on the rotation angle θ k + 1 of each of the axes J1 to J4 after the movement shown in the above equation (10), and the process ends ( End).
ステップT10により変更された目標位置におけるツールのZ軸まわりの回転角度Rzの値は、移動時間の概算値が含まれた評価指標Qkを最小化することにより決定された値であるから、ツール(ロボット2)の移動時間が極力短くなるような値となっている。さらに、上記各演算(ステップT2〜T8)は、目標位置におけるツールの先端位置および向きを決定するための変数のうち、ツールのZ軸まわりの回転角度Rz(任意変数)を除く変数の値が固定された上で行われている。つまり、ツール先端の位置を目標位置に固定した状態でもって、移動時間が極力短くなるツールのZ軸まわりの回転角度Rzの値(ツールの向き)が求められている。従って、本実施形態によれば、ロボット2の移動時間を一層短縮することができるという効果が得られる。
The value of the rotation angle Rz around the Z axis of the tool in the changed target position in step T10, since the evaluation index Q k the estimated value is included in the travel time is a value determined by minimizing, tool The value is such that the movement time of (robot 2) is as short as possible. Further, in each of the above operations (steps T2 to T8), among the variables for determining the tip position and orientation of the tool at the target position, the values of variables excluding the rotation angle Rz (arbitrary variable) around the Z axis of the tool are It is done on a fixed basis. That is, the value (tool direction) of the rotation angle Rz around the Z-axis of the tool that minimizes the movement time with the position of the tool tip fixed at the target position is obtained. Therefore, according to this embodiment, the effect that the movement time of the
さて、上記しきい値を小さくするほど、評価指標の最適化(最小化)の精度が高まり、ロボット2の移動時間短縮の効果が高まる。しかし、しきい値を小さくし過ぎると、最適化演算に多大な時間を要することになる。上記しきい値は、このようなトレードオフの関係を考慮した上で適切な値に設定するとよい。ただし、しきい値をどれだけ小さくしても、ロボット2を移動させるための指令値の出力分解能により移動時間の短縮効果は制限される。そのため、例えば、コントローラ3における指令値の出力分解能に応じた値に設定するということも一案である。例えば、出力分解能が8msであれば、その十分の一の0.8msなどに設定すれば、最適化に要する演算時間がむやみに増大することなく、移動時間の短縮効果が十分に得られると考えられる。
Now, as the threshold value is reduced, the accuracy of optimization (minimization) of the evaluation index increases, and the effect of shortening the movement time of the
(第3の実施形態)
以下、上記各実施形態に対し、対象とするロボットの種類を変更した第3の実施形態について図6を参照しながら説明する。
図6は、第1の実施形態における図1相当図であり、上記各実施形態と同一部分には同一符号を付して説明を省略する。図6に示す本実施形態のロボットシステム21は、図1に示した第1の実施形態のロボットシステム1に対し、ロボット2に代えてロボット22を備えている点が異なる。
(Third embodiment)
Hereinafter, a third embodiment in which the target robot type is changed with respect to each of the above embodiments will be described with reference to FIG.
FIG. 6 is a view corresponding to FIG. 1 in the first embodiment, and the same parts as those of the above-described embodiments are denoted by the same reference numerals and description thereof is omitted. The
ロボット22は、例えば6軸の垂直多関節型ロボットとして構成されている。すなわち、ベース25上には、Z軸方向の軸心を持つ第1軸J21を介してショルダ部26が水平方向に回転可能に連結されている。ショルダ部26には、Y軸方向の軸心を持つ第2軸J22を介して上方に延びる下アーム27の下端部が垂直方向に回転可能に連結されている。下アーム27の先端部には、Y軸方向の軸心を持つ第3軸J23を介して第1の上アーム28が垂直方向に回転可能に連結されている。第1の上アーム28の先端部には、X軸方向の軸心を持つ第4軸J24を介して第2の上アーム29が捻り回転可能に連結されている。第2の上アーム29の先端部には、Y軸方向の軸心を持つ第5軸J25を介して手首30が垂直方向に回転可能に連結されている。手首30には、X軸方向の軸心を持つ第6軸J26を介してフランジ31が捻り回転可能に連結されている。
The
ベース25、ショルダ部26、下アーム27、第1の上アーム28、第2の上アーム29、手首30およびフランジ31は、ロボット22のアームとして機能する。アーム先端であるフランジ31(手先に相当)には、図示はしないが、例えばエアチャックなどのツールが取り付けられる。ロボット22に設けられる複数の軸(J21〜J26)は、第1の実施形態のロボット2と同様、それぞれに対応して設けられるモータ(図示せず)により駆動される。また、各モータの近傍には、それぞれの回転軸の回転位置を検出するための位置検出器(図示せず)が設けられている。
The
このような本実施形態の構成においても、コントローラ3は、上記各実施形態と同様の任意変数設定処理および変数値決定処理や、任意変数変更処理を実行することが可能である。例えば、ツールの向きを決定するための変数(X、Y、Z軸まわりの回転角度Rx、Ry、Rz)のうち、いずれか1つ、あるいは、いずれか2つが任意変数として指定されれば、その指定された変数が任意変数として設定される(任意変数設定処理)。そして、コントローラ3により変数値決定処理(および変数値変更処理)が行われる。
Also in the configuration of the present embodiment, the
なお、本実施形態では、図2のステップS2および図5のステップT2にて求められるヤコビ行列Jkについて、軸数の変更に基づいて変更すればよい。そのヤコビ行列Jkは、例えばツールのX軸まわりの回転角度RxおよびY軸まわりの回転角度Ryが任意変数として設定された場合、下記(16)式のように表される。ただし、第1軸J21〜第6軸J26のそれぞれの回転角度をθ1k〜θ6kとし、ツールのZ軸まわりの回転角度をRzkとしている。 In the present embodiment, the Jacobian matrix J k obtained at step T2 in step S2 and 5 of Figure 2, may be changed based on the change of the number of axes. The Jacobian matrix J k is expressed by the following equation (16), for example, when the rotation angle Rx around the X axis and the rotation angle Ry around the Y axis of the tool are set as arbitrary variables. However, the rotation angles of the first axis J21 to the sixth axis J26 are θ1 k to θ6 k, and the rotation angle around the Z axis of the tool is Rz k .
これにより、目標位置における任意変数の値(ツールの向き)が、ロボット22の移動時間が極力短くなるような値に自動的に決定される。その結果、本実施形態の構成においても、上記各実施形態と同様の作用および効果が得られる。
Thereby, the value of the arbitrary variable (tool direction) at the target position is automatically determined to a value that minimizes the movement time of the
(その他の実施形態)
なお、本発明は上記し且つ図面に記載した各実施形態に限定されるものではなく、次のような変形または拡張が可能である。
上記各実施形態では、本発明を4軸の水平多関節型のロボット2、または6軸の垂直多関節型のロボット22に適用した例を説明したが、本発明は、複数の軸を有するロボット全般に適用可能である。
(Other embodiments)
The present invention is not limited to the embodiments described above and illustrated in the drawings, and the following modifications or expansions are possible.
In each of the above embodiments, the example in which the present invention is applied to the 4-axis horizontal articulated
図面中、2、22はロボット、3はコントローラ(ロボットの制御装置、任意変数設定処理手段、変数値決定処理手段、変数値変更処理手段)、9、31はフランジ(手先)、J1〜J4、J21〜J26は軸を示す。 In the drawings, 2 and 22 are robots, 3 is a controller (robot control device, arbitrary variable setting processing means, variable value determination processing means, variable value change processing means), 9 and 31 are flanges (hands), J1 to J4, J21 to J26 indicate axes.
Claims (4)
移動後のツールの向きを決定するための各変数のうち、ユーザにより指定される1つまたは2つの変数を任意の値に設定可能な任意変数として設定する任意変数設定処理と、
ツールの先端が前記現在位置から前記目標位置に移動する際に要する移動時間と、移動後のツールの先端位置の前記目標位置に対する位置誤差とに基づく評価指標を設定し、その評価指標を最適化して前記目標位置における任意変数の値を決定する変数値決定処理と、
を含み、
前記変数値決定処理は、
前記現在位置を計算対象位置として設定する第1ステップと、
前記計算対象位置におけるツールの先端位置および向きを決定するための変数のうち前記任意変数を除いた変数と前記計算対象位置における各軸の回転角度とに関するヤコビ行列Jkを求める第2ステップと、
前記位置誤差の座標値を要素とする行列をεkとし、各軸の回転角度の変化量を要素とする行列をΔkとし、対角成分を各軸の最大回転速度の逆数の二乗とした対角行列をλとし、前記目標位置の座標値を要素とする行列をPdとし、前記計算対象位置の座標値を要素とする行列をPkとして、下記(1)式に示す評価指標Qkを最小化することにより、下記(2)式に示す変化量Δkを演算する第3ステップと、
Qk=εk T・εk+Δk T・λ・Δk …(1)
Δk=(λ+Jk T・Jk)−1・Jk T(Pd−Pk) …(2)
前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度について順変換を行うことにより、移動後のツールの先端位置を演算する第4ステップと、
前記演算した移動後のツールの先端位置の前記目標位置に対する位置誤差を求め、その位置誤差が所定の許容誤差以下であるか否か判断する第5ステップと、
を含み、
前記第5ステップによる判断の結果、前記位置誤差が前記許容誤差を超える場合、前記演算した移動後のツールの先端位置を次の計算対象位置として設定した上で、前記第2〜第5ステップを再度実行し、
前記第5ステップによる判断の結果、前記位置誤差が前記許容誤差以下である場合、前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度に基づいて、前記目標位置におけるツールの向きを決定するための前記任意変数の値を決定することを特徴とするロボットの制御方法。 A method for controlling a robot when moving the tip of a tool attached to the hand of a robot having a plurality of axes from a current position toward a target position,
Arbitrary variable setting processing for setting one or two variables designated by the user as arbitrary variables that can be set to arbitrary values among the variables for determining the orientation of the tool after movement,
An evaluation index is set based on a movement time required for the tool tip to move from the current position to the target position and a position error of the tool tip position after the movement with respect to the target position, and the evaluation index is optimized. Variable value determination processing for determining an arbitrary variable value at the target position,
Including
The variable value determination process includes:
A first step of setting the current position as a calculation target position;
A second step of obtaining a Jacobian matrix J k relating to a variable excluding the arbitrary variable among variables for determining a tool tip position and orientation at the calculation target position and a rotation angle of each axis at the calculation target position;
The matrix having the coordinate value of the position error as an element is ε k , the matrix having the change amount of the rotation angle of each axis as an element is Δ k , and the diagonal component is the square of the reciprocal of the maximum rotation speed of each axis. Assume that the diagonal matrix is λ, the matrix having the coordinate value of the target position as an element is P d , and the matrix having the coordinate value of the calculation target position as an element is P k , the evaluation index Q shown in the following equation (1) a third step of calculating a change amount Δ k shown in the following equation (2) by minimizing k ;
Q k = ε k T · ε k + Δ k T · λ · Δ k ... (1)
Δ k = (λ + J k T · J k) -1 · J k T (P d -P k) ... (2)
A fourth step of calculating the tip position of the moved tool by performing forward conversion on the rotation angle of each axis obtained by adding the calculated change amount Δk to the rotation angle of each axis at the calculation target position;
A fifth step of determining a position error of the calculated tool tip position with respect to the target position and determining whether the position error is equal to or less than a predetermined allowable error;
Including
When the position error exceeds the allowable error as a result of the determination in the fifth step, the calculated tip position of the moved tool is set as the next calculation target position, and then the second to fifth steps are performed. Run again,
As a result of the determination in the fifth step, when the position error is equal to or less than the allowable error, based on the rotation angle of each axis obtained by adding the calculated change amount Δk to the rotation angle of each axis at the calculation target position. And determining a value of the arbitrary variable for determining the direction of the tool at the target position.
前記変数値変更処理は、
前記目標位置および前記決定した任意変数の値に基づいて定まるツールの向きを、計算対象位置として設定する第6ステップと、
前記計算対象位置を決定するための変数のうち前記任意変数を除いた変数と、前記計算対象位置における各軸の回転角度とに関するヤコビ行列Jkを求める第7ステップと、
前記各軸移動距離を要素とする行列をεkとし、前記計算対象位置における各軸の回転角度を要素とする行列をθkとし、前記現在位置における各軸の回転角度を要素とする行列をθcとして、下記(3)式に示す評価指標Qkを、前記束縛条件を満たしつつ最小化することにより、下記(4)式に示す変化量Δkを演算する第8ステップと、
Qk=εk T・λ・εk …(3)
Δk={λ−1・Jk T・(Jk・λ−1・Jk T)−1・Jk−I}(θk−θc)
…(4)
前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度について順変換を行うことにより、移動後のツールの向きを演算する第9ステップと、
前記評価指標Qkの変化の傾向を判断する第10ステップと、
を含み、
前記第10ステップによる判断の結果、前記評価指標Qkが所定の傾き以上の減少傾向にある場合、前記目標位置および前記演算した移動後のツールの向きを次の計算対象位置として設定した上で、前記第7〜第10ステップを再度実行し、
前記第10ステップによる判断の結果、前記評価指標Qkが所定の傾き未満の減少傾向にある場合または前記評価指標Qkに変化がない場合、前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度に基づいて、前記目標位置におけるツールの向きを決定するための前記任意変数の値を変更することを特徴とする請求項1に記載のロボットの制御方法。 An evaluation index is set based on the movement distance of each axis indicating the amount of change in the rotation angle of each axis with respect to the rotation angle of each axis at the current position, and under the constraint that the tip position of the tool is not changed, A variable value changing process for optimizing the evaluation index and changing the value of the determined arbitrary variable,
The variable value changing process is:
A sixth step of setting a direction of a tool determined based on the target position and the determined value of the arbitrary variable as a calculation target position;
A seventh step of obtaining a Jacobian matrix J k relating to a variable excluding the arbitrary variable among variables for determining the calculation target position and a rotation angle of each axis at the calculation target position;
A matrix having the movement distance of each axis as an element is ε k , a matrix having a rotation angle of each axis at the calculation target position as an element is θ k, and a matrix having a rotation angle of each axis at the current position as an element. An eighth step of calculating a change amount Δ k shown in the following equation (4) by minimizing an evaluation index Q k shown in the following equation (3) as θ c while satisfying the constraint condition;
Q k = ε k T · λ · ε k (3)
Δ k = {λ -1 · J k T · (J k · λ -1 · J k T) -1 · J k -I} (θ k -θ c)
... (4)
A ninth step of calculating the direction of the tool after movement by performing forward conversion on the rotation angle of each axis obtained by adding the calculated change amount Δk to the rotation angle of each axis at the calculation target position;
A tenth step of determining a tendency of change in the evaluation index Q k ;
Including
As a result of the determination in the tenth step, when the evaluation index Q k tends to decrease more than a predetermined inclination, the target position and the calculated direction of the moved tool are set as the next calculation target position. , Execute the seventh to tenth steps again,
As a result of the determination in the tenth step, when the evaluation index Q k tends to decrease below a predetermined inclination or when the evaluation index Q k does not change, the rotation angle of each axis at the calculation target position is based on the rotation angle of each axis plus the variation delta k computed, robot according to claim 1, characterized in that to change the value of the arbitrary variables for determining the orientation of the tool at the target position Control method.
移動後のツールの向きを決定するための各変数のうち、ユーザにより指定される1つまたは2つの変数を任意の値に設定可能な任意変数として設定する任意変数設定処理手段と、
ツールの先端が前記現在位置から前記目標位置に移動する際に要する移動時間と、移動後のツールの先端位置の前記目標位置に対する位置誤差とに基づく評価指標を設定し、その評価指標を最適化して前記目標位置における任意変数の値を決定する変数値決定処理手段と、
を備え、
前記変数値決定処理手段は、
前記現在位置を計算対象位置として設定し、
前記計算対象位置におけるツールの先端位置および向きを決定するための変数のうち前記任意変数を除いた変数と、前記計算対象位置における各軸の回転角度とに関するヤコビ行列Jkを求め、
前記位置誤差の座標値を要素とする行列をεkとし、各軸の回転角度の変化量を要素とする行列をΔkとし、対角成分を各軸の最大回転速度の逆数の二乗とした対角行列をλとし、前記目標位置の座標値を要素とする行列をPdとし、前記計算対象位置の座標値を要素とする行列をPkとして、下記(1)式に示す評価指標Qkを最小化することにより、下記(2)式に示す変化量Δkを演算し、
Qk=εk T・εk+Δk T・λ・Δk …(1)
Δk=(λ+Jk T・Jk)−1・Jk T(Pd−Pk) …(2)
前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度について順変換を行うことにより、移動後のツールの先端位置を演算し、
前記演算した移動後のツールの先端位置の前記目標位置に対する位置誤差を求め、その位置誤差が所定の許容誤差以下であるか否か判断し、
前記位置誤差が前記許容誤差を超える場合、前記演算した移動後のツールの先端位置を次の計算対象位置として設定した上で、次の移動後のツールの先端位置を求めるための前記各演算を再度実行し、
前記位置誤差が前記許容誤差以下である場合、前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度に基づいて、前記目標位置におけるツールの向きを決定するための前記任意変数の値を決定することを特徴とするロボットの制御装置。 A control device for a robot that moves a tip of a tool attached to a hand of a robot having a plurality of axes from a current position toward a target position,
Of the variables for determining the orientation of the tool after movement, one or two variables designated by the user are set as arbitrary variables that can be set to arbitrary values, arbitrary variable setting processing means,
An evaluation index is set based on a movement time required for the tool tip to move from the current position to the target position and a position error of the tool tip position after the movement with respect to the target position, and the evaluation index is optimized. Variable value determination processing means for determining the value of an arbitrary variable at the target position;
With
The variable value determination processing means includes:
Set the current position as a calculation target position,
Obtaining a Jacobian matrix J k related to a variable excluding the arbitrary variable among variables for determining the tip position and orientation of the tool at the calculation target position, and a rotation angle of each axis at the calculation target position;
The matrix having the coordinate value of the position error as an element is ε k , the matrix having the change amount of the rotation angle of each axis as an element is Δ k , and the diagonal component is the square of the reciprocal of the maximum rotation speed of each axis. Assume that the diagonal matrix is λ, the matrix having the coordinate value of the target position as an element is P d , and the matrix having the coordinate value of the calculation target position as an element is P k , the evaluation index Q shown in the following equation (1) By minimizing k , the change amount Δ k shown in the following equation (2) is calculated,
Q k = ε k T · ε k + Δ k T · λ · Δ k ... (1)
Δ k = (λ + J k T · J k) -1 · J k T (P d -P k) ... (2)
By performing forward conversion on the rotation angle of each axis obtained by adding the calculated change amount Δk to the rotation angle of each axis at the calculation target position, the tip position of the moved tool is calculated,
Obtaining a position error of the calculated tool tip position relative to the target position, and determining whether the position error is a predetermined allowable error or less;
When the position error exceeds the allowable error, the calculated tool tip position is set as the next calculation target position, and then each calculation for obtaining the tool tip position after the next movement is performed. Run again,
When the position error is equal to or less than the allowable error, the orientation of the tool at the target position based on the rotation angle of each axis obtained by adding the calculated change amount Δk to the rotation angle of each axis at the calculation target position. A control apparatus for a robot, wherein a value of the arbitrary variable for determining the value is determined.
前記変数値変更処理手段は、
前記目標位置および前記決定した任意変数の値に基づいて定まるツールの向きを、計算対象位置として設定し、
前記計算対象位置を決定するための変数のうち前記任意変数を除いた変数と、前記計算対象位置における各軸の回転角度とに関するヤコビ行列Jkを求め、
前記各軸移動距離を要素とする行列をεkとし、前記計算対象位置における各軸の回転角度を要素とする行列をθkとし、前記現在位置における各軸の回転角度を要素とする行列をθcとして、下記(3)式に示す評価指標Qkを、前記束縛条件を満たしつつ最小化することにより、下記(4)式に示す変化量Δkを演算し、
Qk=εk T・λ・εk …(3)
Δk={λ−1・Jk T・(Jk・λ−1・Jk T)−1・Jk−I}(θk−θc)
…(4)
前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度について順変換を行うことにより、移動後のツールの向きを演算し、
前記評価指標Qkの変化の傾向を判断し、
前記評価指標Qkが所定の傾き以上の減少傾向にある場合、前記目標位置および前記演算した移動後のツールの向きを次の計算対象位置として設定した上で、次の移動後のツールの向きを求めるための前記各演算を再度実行し、
前記評価指標Qkが所定の傾き未満の減少傾向にある場合または前記評価指標Qkに変化がない場合、前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度に基づいて、前記目標位置におけるツールの向きを決定するための前記任意変数の値を変更することを特徴とする請求項3に記載のロボットの制御装置。 An evaluation index is set based on the movement distance of each axis indicating the amount of change in the rotation angle of each axis with respect to the rotation angle of each axis at the current position, and under the constraint that the tip position of the tool is not changed, Variable value change processing means for optimizing the evaluation index and changing the value of the determined arbitrary variable,
The variable value change processing means includes:
The direction of the tool determined based on the target position and the value of the determined arbitrary variable is set as a calculation target position,
Obtaining a Jacobian matrix J k related to a variable excluding the arbitrary variable among variables for determining the calculation target position and a rotation angle of each axis at the calculation target position;
A matrix having the movement distance of each axis as an element is ε k , a matrix having a rotation angle of each axis at the calculation target position as an element is θ k, and a matrix having a rotation angle of each axis at the current position as an element. As θ c , the evaluation index Q k shown in the following formula (3) is minimized while satisfying the constraint condition, thereby calculating the change amount Δ k shown in the following formula (4),
Q k = ε k T · λ · ε k (3)
Δ k = {λ -1 · J k T · (J k · λ -1 · J k T) -1 · J k -I} (θ k -θ c)
... (4)
By performing forward conversion on the rotation angle of each axis obtained by adding the calculated change amount Δk to the rotation angle of each axis at the calculation target position, the direction of the tool after movement is calculated,
Determining a tendency of change in the evaluation index Q k ;
When the evaluation index Q k tends to decrease beyond a predetermined inclination, the target position and the calculated tool direction after movement are set as the next calculation target position, and then the tool direction after the next movement is set. Re-execute each of the operations for obtaining
When the evaluation index Q k is in a decreasing tendency less than a predetermined inclination or when the evaluation index Q k is not changed, the calculated change amount Δ k is added to the rotation angle of each axis at the calculation target position. 4. The robot control apparatus according to claim 3, wherein a value of the arbitrary variable for determining a direction of the tool at the target position is changed based on a rotation angle of each axis.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011060618A JP5708091B2 (en) | 2011-03-18 | 2011-03-18 | Robot control method and robot control apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011060618A JP5708091B2 (en) | 2011-03-18 | 2011-03-18 | Robot control method and robot control apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012196715A true JP2012196715A (en) | 2012-10-18 |
JP5708091B2 JP5708091B2 (en) | 2015-04-30 |
Family
ID=47179466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011060618A Active JP5708091B2 (en) | 2011-03-18 | 2011-03-18 | Robot control method and robot control apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5708091B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017030067A (en) * | 2015-07-30 | 2017-02-09 | ファナック株式会社 | Control device-added machining apparatus with machining time measuring function and on-machine measuring function |
JP2019111604A (en) * | 2017-12-22 | 2019-07-11 | セイコーエプソン株式会社 | Control device, robot and robot system |
JP2019529132A (en) * | 2016-09-09 | 2019-10-17 | デュール システムズ アーゲーDurr Systems AG | Coating robot optimization method and corresponding coating system |
CN116551684A (en) * | 2023-05-17 | 2023-08-08 | 南京航空航天大学 | Multi-robot collaborative planning method for processing large cabin components of spacecraft |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07334228A (en) * | 1994-06-10 | 1995-12-22 | Komatsu Ltd | Teaching data corrector for robot |
JP2005352643A (en) * | 2004-06-09 | 2005-12-22 | Kawasaki Heavy Ind Ltd | Robot operation plan method, robot operation plan device, program and recording medium |
-
2011
- 2011-03-18 JP JP2011060618A patent/JP5708091B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07334228A (en) * | 1994-06-10 | 1995-12-22 | Komatsu Ltd | Teaching data corrector for robot |
JP2005352643A (en) * | 2004-06-09 | 2005-12-22 | Kawasaki Heavy Ind Ltd | Robot operation plan method, robot operation plan device, program and recording medium |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017030067A (en) * | 2015-07-30 | 2017-02-09 | ファナック株式会社 | Control device-added machining apparatus with machining time measuring function and on-machine measuring function |
US10180667B2 (en) | 2015-07-30 | 2019-01-15 | Fanuc Corporation | Controller-equipped machining apparatus having machining time measurement function and on-machine measurement function |
JP2019529132A (en) * | 2016-09-09 | 2019-10-17 | デュール システムズ アーゲーDurr Systems AG | Coating robot optimization method and corresponding coating system |
JP6991201B2 (en) | 2016-09-09 | 2022-01-12 | デュール システムズ アーゲー | Coating robot optimization method and corresponding coating system |
US11230008B2 (en) | 2016-09-09 | 2022-01-25 | Dürr Systems Ag | Optimisation method for a coating robot and corresponding coating system |
JP2019111604A (en) * | 2017-12-22 | 2019-07-11 | セイコーエプソン株式会社 | Control device, robot and robot system |
CN116551684A (en) * | 2023-05-17 | 2023-08-08 | 南京航空航天大学 | Multi-robot collaborative planning method for processing large cabin components of spacecraft |
CN116551684B (en) * | 2023-05-17 | 2024-05-24 | 南京航空航天大学 | Multi-robot collaborative planning method for processing large cabin components of spacecraft |
Also Published As
Publication number | Publication date |
---|---|
JP5708091B2 (en) | 2015-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5327722B2 (en) | Robot load estimation apparatus and load estimation method | |
US10751874B2 (en) | Method of teaching robot and robotic arm control device | |
US9156164B2 (en) | Method for adjusting parameters of impedance control | |
CN210678714U (en) | Robot system with mobile robot | |
US20070030271A1 (en) | Robot controller and robot control method using spline interpolation | |
JP6859756B2 (en) | Control systems, controllers, control methods, and control programs | |
CN103118842A (en) | Robot, robot control apparatus, control method, and control program | |
JP5708091B2 (en) | Robot control method and robot control apparatus | |
JP2010076074A (en) | Robot control method | |
CN111515928B (en) | Mechanical arm motion control system | |
JP2017124455A (en) | Robot device, robot control method, program and record medium | |
JP6697544B2 (en) | Optimizer and vertical articulated robot equipped with the same | |
JPH1139019A (en) | Off-line teaching method | |
JPH10138187A (en) | Automatic computing method of load weight and load center-of-gravity position of articulated robot | |
JP5803179B2 (en) | Robot control method and robot control apparatus | |
JP2004025387A (en) | Loading weight of articulated robot and automatic calculation method for position of gravity center of loading weight | |
US11890759B2 (en) | Robot control method | |
JP5803178B2 (en) | Robot control method and robot control apparatus | |
WO2020149020A1 (en) | Robot control device, robot control method, and robot control program | |
JP2021142596A (en) | Simulation device and program | |
JP6050565B2 (en) | Robot control method and robot control apparatus | |
EP4067012B1 (en) | Method for controlling robot, robot system, and program for controlling robot | |
JP2012196717A (en) | Method and device for controlling robot | |
Stolt et al. | Force controlled assembly of flexible aircraft structure | |
US20240316763A1 (en) | Applied force control for robots |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140306 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141226 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150203 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150216 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5708091 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |