JP2012196715A - Method and device of controlling robot - Google Patents

Method and device of controlling robot Download PDF

Info

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
Application number
JP2011060618A
Other languages
Japanese (ja)
Other versions
JP5708091B2 (en
Inventor
Daisuke Kawase
大介 川瀬
Kazuhiro Niimi
和弘 新美
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Wave Inc
Original Assignee
Denso Wave Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Denso Wave Inc filed Critical Denso Wave Inc
Priority to JP2011060618A priority Critical patent/JP5708091B2/en
Publication of JP2012196715A publication Critical patent/JP2012196715A/en
Application granted granted Critical
Publication of JP5708091B2 publication Critical patent/JP5708091B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

PROBLEM TO BE SOLVED: To reduce the workload of a user for setting a value of a variable for determining the direction of a tool at a target position and furthermore to reduce the movement time of a robot.SOLUTION: When a user sets a rotational angle of the tool around a predetermined axis as an optional variable, a controller sets the rotational angle around the predetermined axis as the optional variable settable to an optional value by the controller side. The controller sets an evaluation index which is based on the movement time required when a leading end of the tool moves from the present position to the target position and a positional error of the leading end of the tool after movement in relation to the target position, and determines the value of the optional variable by optimizing the evaluation index. Since each of the above processing is executed by the controller, the direction of the tool at the target position is automatically determined to a direction for minimizing the movement time of the robot.

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 patent document 1 is mentioned, for example. The technique described in Patent Document 1 does not perform position control for a predetermined direction or rotation direction, but instead performs control based on force or torque value.

特開平5−23982号公報JP-A-5-23982

しかしながら、特許文献1に記載の技術は、正しく目標位置が計算可能となるように、ユーザにより位置情報および力やトルク値情報が与えられるということを前提としている。そのため、目標位置におけるロボットの姿勢を求める必要があると考えられる。つまり、特許文献1に記載の技術は、従来と手法が異なるだけで同じ程度の作業負担を要するものであり、ユーザによる作業負担が軽減されることは少ないと考えられるため、上記課題を解決する手段であるとは言えない。   However, the technique described in Patent Document 1 is based on the premise that position information, force, and torque value information are given by the user so that the target position can be calculated correctly. For this reason, it is considered necessary to obtain the posture of the robot at the target position. That is, the technique described in Patent Document 1 requires the same work load only by using a different method from the conventional technique, and it is considered that the work load on the user is unlikely to be reduced. It cannot be said that it is a means.

本発明は上記事情に鑑みてなされたものであり、その目的は、目標位置におけるツールの向きを決定するための変数の値を設定する際におけるユーザの作業負担を軽減しつつ、ロボットの移動時間の短縮を図ることができるロボットの制御方法およびロボットの制御装置を提供することにある。   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 claim 1 or 3, in the control for moving the tip of the tool attached to the hand of the robot having a plurality of axes from the current position toward the target position, an arbitrary variable setting process, a variable A value determination process is executed. In general teaching work, the values of the variables for determining the tip position and orientation of the tool are all specified by the user. Note that the values of each variable are the coordinate values (X-axis coordinates, Y-axis coordinates, and Z-axis coordinates) of the tool tip and the rotation angle (for example, four-axis horizontal multiples) around a predetermined axis of the tool (hand). In the case of an articulated robot, this is the value of the rotation angle around the fourth axis (Z axis). However, depending on the type of tool attached to the hand and the work content, the work may be able to be achieved regardless of the orientation of the tool (= the orientation 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). In this case, it can be said that the orientation of the tool at the target position may be any orientation. Conventionally, even in such a case, the user has specified a variable (for example, a rotation angle around the Z axis) for determining the direction of the tool.

これに対し、本手段によれば、ツールの向きを決定するための変数のうち、ユーザにより指定される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軸まわりの回転角度を除いた変数と、計算対象位置における各軸(関節)の回転角度とに関するヤコビ行列Jが求められる。また、下記(1)式に示す評価指標Qが設定される。ただし、位置誤差の座標値を要素とする行列をεとし、各軸の回転角度の変化量を要素とする行列をΔとし、対角成分が各軸の最大回転速度の逆数の二乗である対角行列をλとしている。なお、ε はεの転置行列であり、Δ はΔの転置行列である。
=ε ・ε+Δ ・λ・Δ …(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)式において、右辺第一項は位置誤差の二乗和である。また、右辺第二項は各軸の回転角度の変化量(移動量)の二乗和に対角行列λを乗じたものであり、移動時間の二乗和に対して各軸の最大回転速度に応じた重み付けが与えられたものである。すなわち、移動時間の概算値に相当する。このように設定された評価指標Qを最小化することにより、下記(2)式に示す変化量Δが演算される。ただし、目標位置の座標値を要素とする行列をPとし、計算対象位置の座標値を要素とする行列をPとしている。なお、J はJの転置行列である。
Δ=(λ+J ・J−1・J (P−P) …(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)

計算対象位置における各軸の回転角度に対して上記演算された変化量Δを加えた各軸の回転角度、つまり移動後の各軸の回転角度について順変換を行うことにより、移動後のツールの先端位置が演算される。そして、演算された移動後のツールの先端位置の目標位置に対する位置誤差が求められ、その位置誤差が所定の許容誤差以下であるか否かが判断される。つまり、演算により求められた移動後のツールの先端位置が十分に目標位置に近づいているか否かが判断される。その結果、位置誤差が許容誤差を超える場合、演算した移動後のツールの先端位置を次の計算対象位置とした上で、次の移動後のツールの先端位置を求めるための上記各演算が再度実行される。 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.

一方、上記判断の結果、位置誤差が許容誤差以下である場合、計算対象位置における各軸の回転角度に対して上記演算された変化量Δを加えた各軸の回転角度(移動後の各軸の回転角度)に基づいて、目標位置におけるZ軸まわりの回転角度の値が決定される。すなわち、上記演算により求められた移動後のツールの先端位置が十分に目標位置に近づいていると判断された場合、そのときのZ軸まわりの回転角度(任意変数)の値が、目標位置におけるZ軸まわりの回転角度(任意変数)の値として設定される。その設定されたZ軸まわりの回転角度の値は、移動時間の概算値が含まれた評価指標Qを最小化することにより設定されたものであるから、ツール(ロボット)の移動時間が極力短くなるような値となっている。 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.

本手段では、移動時間の概算値が含まれた二次形式の評価指標Qを用い、ヤコビ行列を用いた最適化演算を行っている。そのため、任意変数の値を決定するための演算処理を比較的高速に行うことができる。ところで、ヤコビ行列は、各軸(各関節)における微小変位と、それに伴う手先の位置および向き(姿勢)の微小変位との比率を表すものである。本手段においては、このようなヤコビ行列を用いた演算が繰り返される結果、その演算により求められる移動後のツールの先端位置が徐々に目標位置に近づいていくことになる。そのため、上記変数値決定処理により決定された任意変数の値に基づくロボットの目標位置における姿勢(形態)は、現在位置における姿勢に対し、大きく変化することはない。姿勢の変化が小さいということは、各軸(関節)の移動量が小さいことを意味する。このようなことからも、上述したロボットの移動時間短縮の効果が得られるということが明らかである。 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 claim 1 or 3, when it is determined that the tip position of the moved tool obtained by the calculation using the Jacobian matrix is sufficiently close to the target position, the value of the arbitrary variable at that time is set. This was set as an arbitrary variable at the target position. However, since the Jacobian matrix has the above-described characteristics, 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 value of the determined arbitrary variable can surely minimize the moving time of the robot. Thus, there is room for improvement in the value of the arbitrary variable determined by the means described in claim 1 or 3.

請求項2または4に記載の手段によれば、請求項1または3に記載の手段により決定された任意変数の値を変更する変数値変更処理が実行される。その変数値変更処理は、現在位置における各軸の回転角度を基準とした各軸の回転角度の変化量を示す各軸移動距離に基づく評価指標を設定し、ツールの先端位置を変化させないという束縛条件の下で、その評価指標を最適化して、決定された任意変数の値を変更するというものである。例えば、前述した4軸の水平多関節型ロボットのケースであれば、目標位置におけるツールの先端位置および向きを決定するための変数のうち、ツールのZ軸まわりの回転角度(任意変数)を除く変数の値が固定された上で、各軸移動距離に基づく評価指標を最小化する演算が繰り返し実行される。その結果、目標位置におけるツールのZ軸まわりの回転角度は、移動時間がさらに短くなるような値に変更される。   According to the means described in claim 2 or 4, a variable value changing process for changing the value of the arbitrary variable determined by the means described in claim 1 or 3 is executed. The variable value change process sets the evaluation index based on the movement distance of each axis that indicates the amount of change in the rotation angle of each axis with the rotation angle of each axis at the current position as a reference, and does not change the tip position of the tool. Under the condition, the evaluation index is optimized, and the value of the determined arbitrary variable is changed. For example, in the case of the 4-axis horizontal articulated robot described above, the rotation angle (arbitrary variable) around the Z axis of the tool is excluded from the variables for determining the tip position and orientation of the tool at the target position. After the value of the variable is fixed, an operation for minimizing the evaluation index based on the movement distance of each axis is repeatedly executed. As a result, the rotation angle of the tool around the Z axis at the target position is changed to a value that further shortens the movement time.

具体的には、変数値変更処理では、ユーザにより指定されるツール先端の目標位置(X、Y、Z軸座標の値)と、決定された目標位置におけるツールのZ軸まわりの回転角度(任意変数)の値(ツールの向き)とが、計算対象位置として設定される。このように、本手段における計算対象位置は、ツール先端の各軸座標値だけでなく、ツールの向きについても含むものとなっている。そして、その計算対象位置を決定するための各変数のうち、任意変数であるZ軸まわりの回転角度を除いた変数と、計算対象位置における各軸の回転角度とに関するヤコビ行列Jが求められる。また、下記(3)式に示す評価指標Qが設定される。ただし、本手段では、各軸移動距離を要素とする行列をεとしている。なお、ε はεの転置行列である。
=ε ・λ・ε …(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)式に示す評価指標Qは、各軸移動距離の二乗和に対角行列λを乗じたものであり、移動時間の二乗和に対して各軸の最大回転速度に応じた重み付けが与えられたものである。すなわち、移動時間の概算値に相当する。このように設定された評価指標Qを、ツールの先端位置を変化させないという束縛条件(J・Δ=0)を満たしつつ最小化することにより、下記(4)式に示す変化量Δが演算される。ただし、計算対象位置における各軸の回転角度を要素とする行列をθとし、現在位置における各軸の回転角度を要素とする行列をθとしている。
Δ={λ−1・J ・(J・λ−1・J −1・J−I}(θ−θ
…(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)

計算対象位置における各軸の回転角度に対して上記演算された変化量Δを加えた各軸の回転角度(移動後の各軸の回転角度)について順変換を行うことにより、移動後のツールの向きが演算される。そして、評価指標Qの変化の傾向が判断される。その結果、評価指標Qが所定の傾き以上の減少傾向にある場合、評価指標Qをさらに最小化する余地があると考えられる。その場合、目標位置および演算されたツールの向きを次の計算対象位置として設定した上で、次の移動後のツールの向きを求めるための上記各演算が再度実行される。 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.

一方、上記判断の結果、評価指標Qが所定の傾き未満の減少傾向にある場合、または、変化がない場合、評価指標Qをさらに最小化する余地が少ないと考えられる。その場合、計算対象位置における各軸の回転角度に対して上記演算された変化量Δを加えた各軸の回転角度(移動後の各軸の回転角度)に基づいて、目標位置におけるツールのZ軸まわりの回転角度の値が変更される。その変更されたツールのZ軸まわりの回転角度の値は、移動時間の概算値が含まれた評価指標Qを最小化することにより決定された値であるから、ツール(ロボット)の移動時間が極力短くなるような値となっている。さらに、上記演算は、目標位置におけるツールの先端位置および向きを決定するための変数のうち、ツールの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の実施形態を示すもので、ロボットシステムの概略構成図The 1st Embodiment of this invention is shown, The schematic block diagram of a robot system 変数値決定処理の内容を示すフローチャートFlow chart showing the contents of variable value decision processing 現在位置および目標位置におけるロボットの態様を模式的に表す図A diagram schematically showing the robot mode at the current position and target position 目標領域内のいずれかの位置に目標位置が設定される場合の図3相当図FIG. 3 equivalent view when the target position is set at any position within the target area 本発明の第2の実施形態を示すもので、変数値変更処理の内容を示すフローチャートThe flowchart which shows the 2nd Embodiment of this invention and shows the content of the variable value change process 本発明の第3の実施形態を示す図1相当図FIG. 1 equivalent view showing a third embodiment of the present invention 従来技術を示す図3相当図3 equivalent diagram showing the prior art

(第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 robot system 1 shown in FIG. 1 includes a robot 2, a controller 3 that controls the robot 2, and a teaching pendant 4 connected to the controller 3.

ロボット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 robot 2 is configured as, for example, a 4-axis horizontal articulated robot. The robot 2 includes a base 5 fixed to the installation surface, a first arm 6 connected to the base 5 so as to be rotatable about a first axis J1 having an axis in the Z-axis (vertical axis) direction, A second arm 7 that is rotatably connected around a second axis J2 having an axis center in the Z-axis direction on the tip of the first arm 6 and can be moved up and down to the tip of the second arm 7 And a shaft 8 that is rotatably provided. The axis when moving the shaft 8 up and down is the third axis J3, and the axis when rotating the shaft 8 is the fourth axis J4. A flange 9 is positioned and attached to the tip (lower end) of the shaft 8 so as to be detachable.

ベース5、第1のアーム6、第2のアーム7、シャフト8およびフランジ9は、ロボット2のアームとして機能する。アーム先端であるフランジ9(手先に相当)には、図示はしないが、例えばエアチャックなどのツールが取り付けられる。ロボット2に設けられる複数の軸(J1〜J4)はそれぞれに対応して設けられるモータ(図示せず)により駆動される。各モータの近傍には、それぞれの回転軸の回転角度(回転位置)を検出するための位置検出器(図示せず)が設けられている。   The base 5, the first arm 6, the second arm 7, the shaft 8 and the flange 9 function as an arm of the robot 2. Although not shown in the drawing, a tool such as an air chuck is attached to the flange 9 (corresponding to the hand) that is the tip of the arm. A plurality of axes (J1 to J4) provided in the robot 2 are driven by motors (not shown) provided corresponding to the respective axes. In the vicinity of each motor, a position detector (not shown) for detecting the rotation angle (rotation position) of each rotation shaft is provided.

一般に、産業用のロボットは、予めティーチングなどを実施することにより作成される所定の動作プログラムに従って動作するようになっている。コントローラ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 robot 2.

ティーチングペンダント4は、例えば使用者が携帯あるいは手に所持して操作可能な程度の大きさで、例えば薄型の略矩形箱状に形成されている。ティーチングペンダント4には、各種のキースイッチが設けられており、使用者は、それらキースイッチにより種々の入力操作を行う。ティーチングペンダント4は、ケーブルを経由してコントローラ3に接続され、通信インターフェイスを経由してコントローラ3との間で高速のデータ転送を実行するようになっており、キースイッチの操作により入力された操作信号等の情報はティーチングペンダント4からコントローラ3へ送信される。   The teaching pendant 4 is, for example, a size that can be operated by being carried by a user or carried by a hand, and is formed in, for example, a thin, substantially rectangular box shape. The teaching pendant 4 is provided with various key switches, and the user performs various input operations using these key switches. The teaching pendant 4 is connected to the controller 3 via a cable, and performs high-speed data transfer with the controller 3 via a communication interface. An operation input by operating a key switch Information such as signals is transmitted from the teaching pendant 4 to the controller 3.

一般に、ロボット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 flange 9 that is the hand of the robot 2 is moved from the current position toward the target position, the posture of the robot 2 at the target position is set to any type. Whether to do so is determined by the user. That is, in such teaching work, variables for determining the target position of the tool tip (X-axis coordinate value, Y-axis coordinate value and Z-axis coordinate value of the tool tip) and the tool (hand) at the target position All variables for determining the direction (the rotation angle of the tool around the Z axis) are specified by the user. However, depending on the type (shape) of the tool attached to the flange 9 and the content of work using the tool, the direction of the tool can be made unquestioned. For example, when an air chuck is used as a tool, the workpiece can be gripped regardless of the orientation of the tool around the Z axis (fourth axis J4).

本実施形態のロボットシステム1では、上記したツールの向きを不問とすることが可能なケースにおいて、ユーザは、ツール先端の目標位置を示すX、Y、Z軸座標の値を指定するだけでよく、目標位置におけるツールのZ軸まわりの回転角度Rzの値を指定しなくてよい。その代わりに、ユーザは、ツールのZ軸まわりの回転角度Rzを任意変数として指定する。これを受けて、コントローラ3は、回転角度Rzを、コントローラ3側で任意の値に設定可能な任意変数として設定する(任意変数設定処理)。また、詳細は後述するが、コントローラ3は、ツールの先端が現在位置から目標位置に移動する際に要する移動時間と、移動後のツールの先端位置の目標位置に対する位置誤差とに基づく評価指標を設定し、その評価指標を最適化することで任意変数の値を決定する(変数値決定処理)。このように、コントローラ3は、任意変数設定処理手段および変数値決定処理手段として機能する。本実施形態では、コントローラ3により上記各処理が実行されることにより、目標位置におけるツールの向きが、ロボット2の移動時間が極力短くなるようなものに決定される。   In the robot system 1 of the present embodiment, in the case where the orientation of the tool can be made unquestioned, the user only has to specify the values of the X, Y, and Z axis coordinates indicating the target position of the tool tip. The value of the rotation angle Rz around the Z axis of the tool at the target position need not be specified. Instead, the user specifies the rotation angle Rz about the Z axis of the tool as an arbitrary variable. Receiving this, the controller 3 sets the rotation angle Rz as an arbitrary variable that can be set to an arbitrary value on the controller 3 side (arbitrary variable setting process). Although details will be described later, the controller 3 calculates an evaluation index 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 the movement with respect to the target position. The value of an arbitrary variable is determined by setting and optimizing the evaluation index (variable value determination process). Thus, the controller 3 functions as an arbitrary variable setting processing unit and a variable value determination processing unit. In the present embodiment, the controller 3 executes the processes described above, so that the direction of the tool at the target position is determined such that the movement time of the robot 2 is as short as possible.

図2は、変数値決定処理の内容を示すフローチャートである。図2に示すように、変数値決定処理が開始されると(スタート)、現在位置が計算対象位置として設定される(ステップS1)。ステップS2では、計算対象位置におけるツールの先端位置および向きを決定するための変数(X、Y、Z軸座標値および回転角度Rz)のうち、任意変数に指定された回転角度Rzを除いた変数と、計算対象位置における各軸(関節)の回転角度とに関するヤコビ行列Jが求められる。そのヤコビ行列Jは、下記(5)式のように表される。ただし、X、Y、Z軸座標値をそれぞれX、Y、Zとし、第1軸J1〜第4軸J4のそれぞれの回転角度をθ1〜θ4としている。 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 .

Figure 2012196715
Figure 2012196715

ステップS3では、下記(6)式に示す評価指標Qが設定される。ただし、位置誤差の各座標値を要素とする行列をεとし、各軸J1〜J4の各回転角度θ1〜θ4の変化量を要素とする行列をΔとし、対角成分が各軸J1〜J4のそれぞれの最大回転速度の逆数の二乗である対角行列をλとし、位置誤差および変化量の重み付けのための定数をβとしている。また、ε はεの転置行列を示し、Δ はΔの転置行列を示している。なお、ε、λは、それぞれ下記(7)、(8)式により表される。ただし、目標位置のX、Y、Z軸座標値を要素とする行列をPとし、計算対象位置のX、Y、Z軸座標値を要素とする行列をPとし、第1軸J1〜第4軸J4のそれぞれについての最大回転速度をV1max〜V4maxとしている。
=ε ・ε+β・Δ ・λ・Δ …(6)
ε=P−P−J・Δ …(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)

Figure 2012196715
Figure 2012196715

上記(6)式において、右辺第一項は位置誤差の二乗和である。また、右辺第二項は各軸J1〜J4の回転角度の変化量(移動量)の二乗和に対角行列λを乗じたものであり、移動時間の概算値(近似値)に相当する。定数βは、ロボット2の各関節の可動範囲と動作速度に比例する。従って、定数βは、ロボット2の機種ごとに適宜設定すればよい。なお、評価指標Qにおける位置誤差および移動時間の概算値の重み付けが均等であれば、定数βを省くことができる。ステップS4では、このように設定された評価指標Qが最小化されることにより、下記(9)式に示す変化量Δが演算される。ただし、J はJの転置行列を示している。
Δ=(β・λ+J ・J−1・J (P−P) …(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 robot 2. Therefore, the constant β may be set as appropriate for each model of the robot 2. Note that if uniform weighting approximate value of the position error and the moving time in the evaluation index Q k, it is possible to omit the constant beta. In step S4, by the set evaluation index Q k thus is minimized, the amount of change delta k shown in the following equation (9) is calculated. However, J k T represents a transposed matrix of J k .
Δ k = (β · λ + J k T · J k) -1 · J k T (P d -P k) ... (9)

ステップS5では、下記(10)式に示すように、移動後の各軸の回転角度が求められる。ただし、移動後の各軸J1〜J4の回転角度を要素とする行列をθk+1とし、計算対象位置における各軸J1〜J4の回転角度を要素とする行列をθとしている。また、定数γは目標位置への収束速度を調整するための定数を示している。なお、本実施形態では、定数γの値を1としているが、目標位置への収束速度を早くする場合には定数γの値を大きくすればよいし、収束速度を遅くする場合には定数γの値を小さくすればよい。
θk+1=θ+γ・Δ …(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として表している。
k+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の目標位置Pに対する位置誤差が求められる。ステップS8では、ステップS7で求められた位置誤差が所定の許容誤差以下であるか否かが判断される。つまり、演算により求められた移動後のツールの先端位置Pk+1が十分に目標位置Pに近づいているか否かが判断される。その結果、位置誤差が許容誤差を超える場合(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 robot 2, for example.

一方、ステップS8による判断の結果、位置誤差が許容誤差以下である場合(YES)、ステップS10に進む。ステップS10では、上記(10)式に示した移動後の各軸J1〜J4の回転角度θk+1に基づいて、目標位置におけるZ軸まわりの回転角度Rzの値が決定され、処理が終了する(エンド)。すなわち、上記演算により求められた移動後のツールの先端位置が十分に目標位置に近づいていると判断された場合、そのときのZ軸まわりの回転角度Rzの値が、目標位置におけるZ軸まわりの回転角度Rzの値として設定される。その設定されたZ軸まわりの回転角度Rzは、移動時間の概算値が含まれた評価指標Qを最小化することにより設定されたものであるから、ツール(ロボット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 controller 3, the work performed by the user during teaching is to specify each coordinate value of the tool tip at the target position as described above, and to rotate the tool around the Z axis. It is only necessary to specify Rz as an arbitrary variable. Then, the controller 3 rotates the tool around the Z-axis at the target position automatically determined by the above-described processes in addition to the X, Y, and Z-axis coordinate values of the tool tip at the specified target position. Based on the value of the angle Rz (tool direction), the tool tip can be moved from the current position toward the target position. As a result, the burden on the user (operator) during teaching is reduced, and the movement time of the robot 2 is shortened.

変数値決定処理においては、移動時間の概算値が含まれた二次形式の評価指標を用い、ヤコビ行列を用いた最適化演算を行っている。そのため、変数値決定処理における各種演算処理を比較的高速に行うことが可能となっている。ところで、ヤコビ行列は、各軸(関節)における微小変位と、それに伴う手先の位置および向き(ロボット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 robot 2 determined 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 joint is also small. Also from such a thing, according to this embodiment, it turns out that the effect that the movement time of the robot 2 is shortened is acquired.

次に、本実施形態のロボットシステム1により得られる具体的な効果について、図3および図4も参照して説明する。
図3は、ツール先端を現在位置Pcから目標位置Pdに向けて移動させる際におけるロボットの態様を模式的に示している。図3に示すロボットは、4軸の水平多関節型ロボットであり、その手先にツールとしてエアチャックが取り付けられている。なお、図3では、各軸および各リンクをそれぞれ丸印および直線で示すとともに、ツール先端を矢印で示している。また、現在位置におけるロボットの状態を点線で示すとともに、目標位置におけるロボットの状態を実線で示している。ここでは、現在位置Pcから目標位置Pdまでツール先端を移動させ、ツールであるエアチャックによりワークを把持する作業が行われるものとする。
Next, specific effects obtained by the robot system 1 of the present embodiment will be described with reference to FIGS.
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 robot system 1 of the present embodiment, the direction of the tool at the target position Pd is automatically determined by the controller 3 so that the movement time of the robot 2 is as short as possible. Therefore, the result of the state (tool direction) in FIG. 3 (optimized) (optimized movement time can be shortened as much as possible) can be easily obtained without going through an iterative process as in the conventional method.

このように、従来の手法によれば、ティーチングを担当する作業者の経験と推測により、少しずつ目標位置におけるロボットの状態(姿勢)を変化させる。そして、その作業を何回(例えば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 robot system 1 of the present embodiment, the same effect as that obtained by the conventional method can be obtained regardless of the experience of the worker in charge of teaching. Further, at that time, the operator does not need to specifically examine the posture of the robot at the target position, so that the work load is greatly reduced.

図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 robot system 1 of the present embodiment, even in a case where a target position is given from an external device such as a camera for the first time during actual work, the controller 3 The optimum tool orientation at the target position is automatically determined. For this reason, it is possible to save the time-consuming work of dividing the target area Ad into small areas and teaching for each small area as in the conventional method.

(第2の実施形態)
以下、第1の実施形態に対し、コントローラ3の制御内容を変更した第2の実施形態について図5を参照しながら説明する。
第1の実施形態では、ヤコビ行列を用いた演算により求められる移動後のツールの先端位置が十分に目標位置に近づいていると判断された場合、そのときの任意変数(ツールのZ軸まわりの回転角度Rz)の値を、目標位置における任意変数の値として設定していた。しかし、ヤコビ行列は、第1の実施形態において述べたような特性を有しているため、上記演算による最終的な移動後のツールの先端位置であっても目標位置から僅かに外れることになる。そのため、決定された任意変数の値が、必ずしもロボット2の移動時間を確実に最小化できるものであるとは言いきれない。このように、変数値決定処理により決定される任意変数の値には改善の余地がある。
(Second Embodiment)
Hereinafter, a second embodiment in which the control content of the controller 3 is changed with respect to the first embodiment will be described with reference to FIG.
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 robot 2. Thus, there is room for improvement in the value of the arbitrary variable determined by the variable value determination process.

本実施形態のコントローラ3は、図2に示した任意変数値決定処理の実行後、決定された目標位置におけるツールの回転角度Rz(任意変数)の値を変更する任意変数変更処理を実行する。つまり、本実施形態のコントローラ3は、変数値変更処理手段としても機能する。その変数値変更処理は、現在位置における各軸の回転角度を基準とした各軸の回転角度の変化量を示す各軸移動距離に基づく評価指標を設定し、ツールの先端位置を変化させないという束縛条件の下で、その評価指標を最適化して、決定された任意変数の値を変更するというものである。すなわち、目標位置におけるツールの先端位置および向きを決定するための変数のうち、ツールのZ軸まわりの回転角度Rzを除く変数(X、YZ軸座標値)の値が固定された上で、各軸移動距離に基づく評価指標を最小化する演算が繰り返し実行される。その結果、目標位置におけるツールのZ軸まわりの回転角度Rzは、移動時間がさらに短くなるような値に変更される。   The controller 3 of the present embodiment executes an arbitrary variable change process for changing the value of the rotation angle Rz (arbitrary variable) of the tool at the determined target position after the execution of the arbitrary variable value determination process shown in FIG. That is, the controller 3 of this embodiment also functions as variable value change processing means. The variable value change process sets the evaluation index based on the movement distance of each axis that indicates the amount of change in the rotation angle of each axis with the rotation angle of each axis at the current position as a reference, and does not change the tip position of the tool. Under the condition, the evaluation index is optimized, and the value of the determined arbitrary variable is changed. That is, among the variables for determining the tip position and orientation of the tool at the target position, the values of the variables (X and YZ axis coordinate values) excluding the rotation angle Rz around the Z axis of the tool are fixed. An operation for minimizing the evaluation index based on the axis movement distance is repeatedly executed. As a result, the rotation angle Rz around the Z axis of the tool at the target position is changed to a value that further shortens the movement time.

図5は、任意変数変更処理の内容を示すフローチャートである。図5に示すように、任意変数変更処理が開始されると(スタート)、ステップT1が実行される。ステップT1では、ユーザにより指定されるツール先端の目標位置(X、Y、Z軸座標値)が計算対象位置として設定される。また、その計算対象位置におけるツールのZ軸まわりの回転角度Rz(ツールの向き)は、変数値決定処理にて決定された値に設定される。このように、変数値変更処理における計算対象位置は、ツール先端の各軸座標値だけでなく、ツールの向きについても含むものとなっている。ステップT2では、計算対象位置(ツールの向きも含む)を決定するための各変数のうち、任意変数であるZ軸まわりの回転角度Rzを除いた変数と、計算対象位置における各軸の回転角度とに関するヤコビ行列Jが求められる。そのヤコビ行列Jは、上記(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)式に示す評価指標Qが設定される。ただし、ここでは、各軸移動距離を要素とする行列をεとしている。また、ε はεの転置行列を示している。
=ε ・λ・ε …(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)式に示す評価指標Qは、各軸移動距離の二乗和に対角行列λを乗じたものであり、移動時間の二乗和に対して各軸の最大回転速度に応じた重み付けが与えられたものである。すなわち、移動時間の概算値(近似値)に相当する。ステップT4では、このように設定された評価指標Qを、下記(13)式に示す束縛条件gを満たしつつ、最小化することにより、下記(14)式に示す変化量Δが演算される。ただし、現在位置における各軸J1〜J4の回転角度を要素とする行列をθとしている。なお、上記演算の手法としては、例えばラグランジュの未定乗数法などを用いることができる。
・Δ=0 …(13)
Δ={λ−1・J ・(J・λ−1・J −1・J−I}(θ−θ
…(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が求められる。
k+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)により最適化された評価指標Qの値が、前回の最適化演算により最適化された評価指標Qk−1からどのように変化したのかが判断される。すなわち、ステップT7、T8は、評価指標の変化の傾向を判断するものである。従って、変数値変更処理が実行されてから最初にステップT7に移行した際には、それらステップT7、T8をスキップしてステップT9に移行する。2回目以降に実行されるステップT7では、今回の評価指標Qの値が、前回の評価指標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の値は、移動時間の概算値が含まれた評価指標Qを最小化することにより決定された値であるから、ツール(ロボット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 robot 2 can be further shortened is acquired.

さて、上記しきい値を小さくするほど、評価指標の最適化(最小化)の精度が高まり、ロボット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 robot 2 increases. However, if the threshold is made too small, the optimization operation will take a great deal of time. The threshold value may be set to an appropriate value in consideration of such a trade-off relationship. However, no matter how small the threshold is, the effect of shortening the movement time is limited by the output resolution of the command value for moving the robot 2. Therefore, for example, setting the value according to the output resolution of the command value in the controller 3 is one idea. For example, if the output resolution is 8 ms, setting it to one-tenth of 0.8 ms, etc., the calculation time required for optimization will not increase unnecessarily, and the effect of shortening the travel time can be sufficiently obtained. It is done.

(第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 robot system 21 of this embodiment shown in FIG. 6 differs from the robot system 1 of the first embodiment shown in FIG. 1 in that a robot 22 is provided instead of the robot 2.

ロボット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 robot 22 is configured as, for example, a 6-axis vertical articulated robot. In other words, the shoulder portion 26 is coupled to the base 25 so as to be rotatable in the horizontal direction via a first axis J21 having an axis in the Z-axis direction. A lower end portion of a lower arm 27 extending upward is connected to the shoulder portion 26 via a second axis J22 having an axis in the Y-axis direction so as to be rotatable in the vertical direction. A first upper arm 28 is connected to the distal end portion of the lower arm 27 via a third axis J23 having an axis in the Y-axis direction so as to be rotatable in the vertical direction. A second upper arm 29 is connected to the distal end portion of the first upper arm 28 via a fourth axis J24 having an axis in the X-axis direction so as to be able to rotate. A wrist 30 is connected to the tip of the second upper arm 29 via a fifth axis J25 having an axis in the Y-axis direction so as to be rotatable in the vertical direction. A flange 31 is connected to the wrist 30 via a sixth axis J26 having an axis in the X-axis direction so as to be able to rotate.

ベース25、ショルダ部26、下アーム27、第1の上アーム28、第2の上アーム29、手首30およびフランジ31は、ロボット22のアームとして機能する。アーム先端であるフランジ31(手先に相当)には、図示はしないが、例えばエアチャックなどのツールが取り付けられる。ロボット22に設けられる複数の軸(J21〜J26)は、第1の実施形態のロボット2と同様、それぞれに対応して設けられるモータ(図示せず)により駆動される。また、各モータの近傍には、それぞれの回転軸の回転位置を検出するための位置検出器(図示せず)が設けられている。   The base 25, the shoulder portion 26, the lower arm 27, the first upper arm 28, the second upper arm 29, the wrist 30 and the flange 31 function as an arm of the robot 22. Although not shown, a tool such as an air chuck is attached to the flange 31 (corresponding to the hand) that is the tip of the arm. The plurality of axes (J21 to J26) provided in the robot 22 are driven by motors (not shown) provided corresponding to the respective axes, similarly to the robot 2 of the first embodiment. Further, in the vicinity of each motor, a position detector (not shown) for detecting the rotational position of each rotating shaft is provided.

このような本実施形態の構成においても、コントローラ3は、上記各実施形態と同様の任意変数設定処理および変数値決定処理や、任意変数変更処理を実行することが可能である。例えば、ツールの向きを決定するための変数(X、Y、Z軸まわりの回転角度Rx、Ry、Rz)のうち、いずれか1つ、あるいは、いずれか2つが任意変数として指定されれば、その指定された変数が任意変数として設定される(任意変数設定処理)。そして、コントローラ3により変数値決定処理(および変数値変更処理)が行われる。   Also in the configuration of the present embodiment, the controller 3 can execute the arbitrary variable setting process, the variable value determining process, and the arbitrary variable changing process similar to those in the above embodiments. For example, if any one or two of the variables for determining the direction of the tool (the rotation angles Rx, Ry, Rz around the X, Y, and Z axes) are designated as arbitrary variables, The designated variable is set as an arbitrary variable (arbitrary variable setting process). Then, the controller 3 performs variable value determination processing (and variable value change processing).

なお、本実施形態では、図2のステップS2および図5のステップT2にて求められるヤコビ行列Jについて、軸数の変更に基づいて変更すればよい。そのヤコビ行列Jは、例えばツールのX軸まわりの回転角度RxおよびY軸まわりの回転角度Ryが任意変数として設定された場合、下記(16)式のように表される。ただし、第1軸J21〜第6軸J26のそれぞれの回転角度をθ1〜θ6とし、ツールのZ軸まわりの回転角度をRzとしている。 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 .

Figure 2012196715
Figure 2012196715

これにより、目標位置における任意変数の値(ツールの向き)が、ロボット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 robot 22. As a result, also in the configuration of the present embodiment, the same operations and effects as those of the above embodiments can be obtained.

(その他の実施形態)
なお、本発明は上記し且つ図面に記載した各実施形態に限定されるものではなく、次のような変形または拡張が可能である。
上記各実施形態では、本発明を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 robot 2 or the 6-axis vertical articulated robot 22 has been described. However, the present invention is a robot having a plurality of axes. Applicable in general.

図面中、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ステップと、
前記計算対象位置におけるツールの先端位置および向きを決定するための変数のうち前記任意変数を除いた変数と前記計算対象位置における各軸の回転角度とに関するヤコビ行列Jを求める第2ステップと、
前記位置誤差の座標値を要素とする行列をεとし、各軸の回転角度の変化量を要素とする行列をΔとし、対角成分を各軸の最大回転速度の逆数の二乗とした対角行列をλとし、前記目標位置の座標値を要素とする行列をPとし、前記計算対象位置の座標値を要素とする行列をPとして、下記(1)式に示す評価指標Qを最小化することにより、下記(2)式に示す変化量Δを演算する第3ステップと、
=ε ・ε+Δ ・λ・Δ …(1)
Δ=(λ+J ・J−1・J (P−P) …(2)
前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δを加えた各軸の回転角度について順変換を行うことにより、移動後のツールの先端位置を演算する第4ステップと、
前記演算した移動後のツールの先端位置の前記目標位置に対する位置誤差を求め、その位置誤差が所定の許容誤差以下であるか否か判断する第5ステップと、
を含み、
前記第5ステップによる判断の結果、前記位置誤差が前記許容誤差を超える場合、前記演算した移動後のツールの先端位置を次の計算対象位置として設定した上で、前記第2〜第5ステップを再度実行し、
前記第5ステップによる判断の結果、前記位置誤差が前記許容誤差以下である場合、前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δを加えた各軸の回転角度に基づいて、前記目標位置におけるツールの向きを決定するための前記任意変数の値を決定することを特徴とするロボットの制御方法。
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ステップと、
前記計算対象位置を決定するための変数のうち前記任意変数を除いた変数と、前記計算対象位置における各軸の回転角度とに関するヤコビ行列Jを求める第7ステップと、
前記各軸移動距離を要素とする行列をεとし、前記計算対象位置における各軸の回転角度を要素とする行列をθとし、前記現在位置における各軸の回転角度を要素とする行列をθとして、下記(3)式に示す評価指標Qを、前記束縛条件を満たしつつ最小化することにより、下記(4)式に示す変化量Δを演算する第8ステップと、
=ε ・λ・ε …(3)
Δ={λ−1・J ・(J・λ−1・J −1・J−I}(θ−θ
…(4)
前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δを加えた各軸の回転角度について順変換を行うことにより、移動後のツールの向きを演算する第9ステップと、
前記評価指標Qの変化の傾向を判断する第10ステップと、
を含み、
前記第10ステップによる判断の結果、前記評価指標Qが所定の傾き以上の減少傾向にある場合、前記目標位置および前記演算した移動後のツールの向きを次の計算対象位置として設定した上で、前記第7〜第10ステップを再度実行し、
前記第10ステップによる判断の結果、前記評価指標Qが所定の傾き未満の減少傾向にある場合または前記評価指標Qに変化がない場合、前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δを加えた各軸の回転角度に基づいて、前記目標位置におけるツールの向きを決定するための前記任意変数の値を変更することを特徴とする請求項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つの変数を任意の値に設定可能な任意変数として設定する任意変数設定処理手段と、
ツールの先端が前記現在位置から前記目標位置に移動する際に要する移動時間と、移動後のツールの先端位置の前記目標位置に対する位置誤差とに基づく評価指標を設定し、その評価指標を最適化して前記目標位置における任意変数の値を決定する変数値決定処理手段と、
を備え、
前記変数値決定処理手段は、
前記現在位置を計算対象位置として設定し、
前記計算対象位置におけるツールの先端位置および向きを決定するための変数のうち前記任意変数を除いた変数と、前記計算対象位置における各軸の回転角度とに関するヤコビ行列Jを求め、
前記位置誤差の座標値を要素とする行列をεとし、各軸の回転角度の変化量を要素とする行列をΔとし、対角成分を各軸の最大回転速度の逆数の二乗とした対角行列をλとし、前記目標位置の座標値を要素とする行列をPとし、前記計算対象位置の座標値を要素とする行列をPとして、下記(1)式に示す評価指標Qを最小化することにより、下記(2)式に示す変化量Δを演算し、
=ε ・ε+Δ ・λ・Δ …(1)
Δ=(λ+J ・J−1・J (P−P) …(2)
前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δを加えた各軸の回転角度について順変換を行うことにより、移動後のツールの先端位置を演算し、
前記演算した移動後のツールの先端位置の前記目標位置に対する位置誤差を求め、その位置誤差が所定の許容誤差以下であるか否か判断し、
前記位置誤差が前記許容誤差を超える場合、前記演算した移動後のツールの先端位置を次の計算対象位置として設定した上で、次の移動後のツールの先端位置を求めるための前記各演算を再度実行し、
前記位置誤差が前記許容誤差以下である場合、前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δを加えた各軸の回転角度に基づいて、前記目標位置におけるツールの向きを決定するための前記任意変数の値を決定することを特徴とするロボットの制御装置。
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.
前記現在位置における各軸の回転角度を基準とした各軸の回転角度の変化量を示す各軸移動距離に基づく評価指標を設定し、ツールの先端位置を変化させないという束縛条件の下で、その評価指標を最適化して前記決定した任意変数の値を変更する変数値変更処理手段を備え、
前記変数値変更処理手段は、
前記目標位置および前記決定した任意変数の値に基づいて定まるツールの向きを、計算対象位置として設定し、
前記計算対象位置を決定するための変数のうち前記任意変数を除いた変数と、前記計算対象位置における各軸の回転角度とに関するヤコビ行列Jを求め、
前記各軸移動距離を要素とする行列をεとし、前記計算対象位置における各軸の回転角度を要素とする行列をθとし、前記現在位置における各軸の回転角度を要素とする行列をθとして、下記(3)式に示す評価指標Qを、前記束縛条件を満たしつつ最小化することにより、下記(4)式に示す変化量Δを演算し、
=ε ・λ・ε …(3)
Δ={λ−1・J ・(J・λ−1・J −1・J−I}(θ−θ
…(4)
前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δを加えた各軸の回転角度について順変換を行うことにより、移動後のツールの向きを演算し、
前記評価指標Qの変化の傾向を判断し、
前記評価指標Qが所定の傾き以上の減少傾向にある場合、前記目標位置および前記演算した移動後のツールの向きを次の計算対象位置として設定した上で、次の移動後のツールの向きを求めるための前記各演算を再度実行し、
前記評価指標Qが所定の傾き未満の減少傾向にある場合または前記評価指標Qに変化がない場合、前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δを加えた各軸の回転角度に基づいて、前記目標位置におけるツールの向きを決定するための前記任意変数の値を変更することを特徴とする請求項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.
JP2011060618A 2011-03-18 2011-03-18 Robot control method and robot control apparatus Active JP5708091B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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 (7)

* Cited by examiner, † Cited by third party
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

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
US9434073B2 (en) Robot apparatus and control method therefor
US20070030271A1 (en) Robot controller and robot control method using spline interpolation
JP6859756B2 (en) Control systems, controllers, control methods, and control programs
JPH079606B2 (en) Robot controller
JP5708091B2 (en) Robot control method and robot control apparatus
JP2010076074A (en) Robot control method
JP2017124455A (en) Robot device, robot control method, program and record medium
CN111515928B (en) Mechanical arm motion control system
JPH1139019A (en) Off-line teaching method
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
JP3766484B2 (en) Automatic calculation method of load weight and load center of gravity position of articulated robot
CN101870104B (en) Manipulator inverse moving method
JP6697544B2 (en) Optimizer and vertical articulated robot equipped with the same
JP5803178B2 (en) Robot control method and robot control apparatus
JP6050565B2 (en) Robot control method and robot control apparatus
JP2012196717A (en) Method and device for controlling robot
Stolt et al. Force controlled assembly of flexible aircraft structure
JP2020110884A (en) Robot control device, robot control method, and robot control program
JP7384005B2 (en) Control method and robot system

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