JP5803179B2 - Robot control method and robot control apparatus - Google Patents

Robot control method and robot control apparatus Download PDF

Info

Publication number
JP5803179B2
JP5803179B2 JP2011060624A JP2011060624A JP5803179B2 JP 5803179 B2 JP5803179 B2 JP 5803179B2 JP 2011060624 A JP2011060624 A JP 2011060624A JP 2011060624 A JP2011060624 A JP 2011060624A JP 5803179 B2 JP5803179 B2 JP 5803179B2
Authority
JP
Japan
Prior art keywords
value
axis
tool
target position
robot
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.)
Active
Application number
JP2011060624A
Other languages
Japanese (ja)
Other versions
JP2012196720A (en
Inventor
大介 川瀬
大介 川瀬
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 JP2011060624A priority Critical patent/JP5803179B2/en
Publication of JP2012196720A publication Critical patent/JP2012196720A/en
Application granted granted Critical
Publication of JP5803179B2 publication Critical patent/JP5803179B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)

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 is.

さて、ロボットの手先に取り付けられるツールの種類および作業内容によっては、そのツールの向き(=手先の向き)にかかわらず、その作業を達成可能なケースがある。例えば、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.

図15は、ツール先端を現在位置から目標位置に向けて移動させる際におけるロボットの態様を模式的に示している。図15に示すロボットは、4軸の水平多関節型ロボットであり、その手先にツールとしてエアチャックが取り付けられている。なお、図15では、各軸(各関節)および各リンクをそれぞれ丸印および直線で示すとともに、ツール先端を矢印で示している。図15において、実線で示す現在位置から点線または破線で示す目標位置までツール先端を移動させ、ツールであるエアチャックによりワークを把持する作業が行われる。   FIG. 15 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. 15 is a 4-axis horizontal articulated robot, and an air chuck is attached as a tool to the hand. In FIG. 15, 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. 15, the tool tip is moved from the current position indicated by the solid line to the target position indicated by the dotted line or broken line, and the work is gripped by the air chuck, which is a tool.

ロボットが破線で示す状態となる場合、ツール先端がワークの正面(図15中、下側の面)に正対する向きになっている。一方、ロボットが点線で示す状態となる場合、ツール先端がワークの正面に対して斜め向きとなっている。これらの各状態では、互いに各軸(関節)の回転角度が異なっている。すなわち、ツールの向きに応じてロボットの姿勢が変化する。そのため、上記各状態では、現在位置からの移動時間が互いに異なる。具体的には、目標位置におけるロボットの姿勢を破線で示した状態とした場合に比べ、点線で示した状態とした場合のほうが、現在位置から目標位置までの移動時間が短くなる。その理由は、点線の状態のほうが、破線の状態に比べ、最も移動時間が長くなる第1軸の移動量(回転量)が小さくなるためである。   When the robot is in a state indicated by a broken line, the tip of the tool is oriented to face the front surface of the workpiece (the lower surface in FIG. 15). 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.

上記した目標位置のツール(手先)の向きを不問とするケースにおけるティーチングでも、目標位置におけるツールの先端位置および向きを決定するための変数の値は、作業者により全て指定されることになる。言い換えると、目標位置におけるロボットの姿勢(各軸の回転角度)が作業者により決定されることになる。しかし、前述したとおり、目標位置におけるツールの向きを不問とするケースでは、ツールの先端位置が同じ目標位置となるロボットの姿勢が多数存在する。作業者は、それら多数の姿勢の中から、最適な姿勢を選んで決定する必要がある。つまり、作業者は、ロボットの動作時間が出来るだけ短くなるように、目標位置におけるツールの向きを決定するための変数の値を設定する必要がある。図15のケースであれば、目標位置におけるロボットの姿勢(ツールの向き)を、破線で示した状態ではなく、点線で示した状態となるようなティーチング作業が要求される。   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. 15, teaching work is required so that the posture of the robot at the target position (the direction of the tool) is not in a state indicated by a broken line but in a state indicated by a 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 multiple) 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つの変数が任意の値に設定可能な任意変数として設定される(任意変数設定処理)。そして、手先が現在位置から目標位置に移動する際に要する移動時間に基づく第1評価指標が設定され、その第1評価指標が最適化されて任意変数の値が決定される(変数値決定処理)。例えば、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, a first evaluation index based on the movement time required for the hand to move from the current position to the target position is set, and the first evaluation index is optimized to determine the value of the arbitrary variable (variable value determination process). ). 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.

さて、目標位置における任意変数(例えばツールのZ軸まわりの回転角度)が取り得る全ての値について第1評価指標を演算し、任意変数の関数(以下では評価関数と言う)として表す(グラフ化する)と、次のようなことが分かる。すなわち、その評価関数において、第1評価指標の最小値(最適値)の部分が谷の底になるとともに、第1評価指標の最小値ではない別の値(最小値に準ずる値であり、以下では局所値と言う)の部分も谷の底になる。このようになる理由は次のとおりである。   Now, the first evaluation index is calculated for all possible values of an arbitrary variable (for example, the rotation angle around the Z axis of the tool) at the target position, and expressed as a function of the arbitrary variable (hereinafter referred to as an evaluation function) (graphed) Then, you can see the following. That is, in the evaluation function, the portion of the minimum value (optimum value) of the first evaluation index is the bottom of the valley, and another value that is not the minimum value of the first evaluation index (a value according to the minimum value, Then, the local value) is also the bottom of the valley. The reason for this is as follows.

ロボットは、ツール先端の位置(各座標値)が同じであっても、その姿勢が全く異なることがある。そのため、ロボットが取り得る様々な姿勢を、複数の形態に分けて区別するということが通常行われている。例えば4軸の水平多関節型ロボットの場合、第2軸の回転角度の極性が互いに異なる2種類の形態(腕形態)が存在する。つまり、4軸の水平多関節型ロボットの姿勢は、2種類の形態に分類される。また、6軸の垂直多関節型ロボットの場合、第1軸の回転角度が互いに180度異なる2種類の形態(腕形態)、第3軸の回転角度の極性が互いに異なる2種類の形態(肘形態)および第4軸の回転角度が互いに180度異なる2種類の形態(手首形態)が存在する。つまり、それら腕形態、肘形態および手首形態の組み合わせにより合計で8種類の形態に分類される。   Even if the position of the tool tip (each coordinate value) is the same, the robot may have a completely different posture. Therefore, various postures that can be taken by the robot are usually divided into a plurality of forms. For example, in the case of a 4-axis horizontal articulated robot, there are two types of forms (arm forms) with different polarities of the rotation angle of the second axis. That is, the posture of the 4-axis horizontal articulated robot is classified into two types. Further, in the case of a 6-axis vertical articulated robot, two types of configurations (arm configuration) in which the rotation angle of the first axis is 180 degrees different from each other, and two types of configurations (elbow) in which the polarities of the rotation angle of the third axis are different from each other There are two forms (wrist forms) in which the rotation angle of the fourth axis and the fourth axis are different from each other by 180 degrees. That is, it is classified into 8 types in total by the combination of these arm forms, elbow forms, and wrist forms.

このような形態が同じであれば、ロボットの姿勢はあまり変化しない。しかし、形態が異なれば、ロボットの姿勢は大きく異なる。ロボットの姿勢が大きく異なるということは、移動時間に基づく第1評価指標の変化の傾向についても大きく異なることになる。そのため、ロボットの形態ごとに評価関数の谷が存在することになる。言い換えると、上記評価関数には、ロボットの形態が切り替わる境界である特異点を中心として、その両側に谷の部分が存在することになる。このようなことから、例えば、4軸の水平多関節型ロボットの場合、評価関数は少なくとも2つの谷を有し、6軸の垂直多関節型ロボットの場合、評価関数は少なくとも8つの谷を有することになる。   If such a form is the same, the posture of the robot does not change much. However, if the form is different, the posture of the robot is greatly different. The fact that the posture of the robot is greatly different also means that the tendency of the change in the first evaluation index based on the movement time is also greatly different. Therefore, there is a valley of evaluation functions for each robot form. In other words, the evaluation function has a valley portion on both sides of a singular point that is a boundary where the form of the robot changes. For this reason, for example, in the case of a 4-axis horizontal articulated robot, the evaluation function has at least two valleys, and in the case of a 6-axis vertical articulated robot, the evaluation function has at least 8 valleys. It will be.

変数値決定処理において、最小値ではなく局所値に対応した値が目標位置における任意変数の値として設定されてしまうと、ロボットの動作時間を極力短くするという効果が若干低減する。上述したとおり、ロボットには形態という概念があり、その形態が切り替わる境界の特異点を中心として両側に評価関数の谷の部分が存在する。つまり、形態の境界である特異点が谷の境界である。そこで、本手段では、このようなロボットに特有の点を考慮し、以下のように、目標位置の任意変数の値として第1評価指標の局所値に対応した値が設定されることを避けつつ(局所値回避)、第1評価指標の最小値に対応した値が設定されるようにしている(最適化)。   In the variable value determination process, if a value corresponding to the local value instead of the minimum value is set as the value of the arbitrary variable at the target position, the effect of shortening the robot operation time as much as possible is slightly reduced. As described above, the robot has a concept of form, and there are valleys of the evaluation function on both sides around the singular point of the boundary where the form changes. That is, the singular point that is the boundary of the form is the boundary of the valley. Therefore, in this means, taking into consideration such points peculiar to the robot, the value corresponding to the local value of the first evaluation index is set as the value of the arbitrary variable of the target position as follows. (Local value avoidance), a value corresponding to the minimum value of the first evaluation index is set (optimization).

すなわち、変数値決定処理では、ロボットが所定の形態をとり且つ目標位置にツール先端が到達する各軸の回転角度の値が、ロボットがとり得る全ての形態のそれぞれについて取得される。なお、それら各軸の回転角度の値は、第1評価指標を最小化する値である必要はなく、任意の値でよいため、ユーザが準備することは容易である。そして、全ての形態のうち、いずれか1つの形態が、目標位置における任意変数の候補値を求める演算の演算対象として設定される。   That is, in the variable value determination process, the values of the rotation angles of the respective axes at which the robot takes a predetermined form and the tool tip reaches the target position are acquired for all the forms that the robot can take. Note that the values of the rotation angles of these axes do not have to be values that minimize the first evaluation index, and may be arbitrary values, so that the user can easily prepare them. And any one form among all the forms is set as a calculation object of the calculation which calculates | requires the candidate value of the arbitrary variable in a target position.

演算対象として設定された形態について取得された各軸の回転角度の値から、任意変数(例えばツールのZ軸まわりの回転角度)の値が演算される。目標位置における任意変数の値として、上記演算された値を設定した場合における第1評価指標が演算される。そして、その演算された第1評価指標の値を初期値とし、第1評価指標の微分値または微小変分がゼロになるときの任意変数(例えばツールのZ軸まわりの回転角度)の値が求められ、その求めた値が目標位置における任意変数の候補値とされる。すなわち、演算対象の形態に対応した第1評価指標の値を起点として任意変数の変化に応じた第1評価指標の変化が確認され、その結果、第1評価指標が変化しなくなるときの値が目標位置における任意変数の候補値として設定される。このような演算を実現するためには、例えば、最急降下法、最適勾配法、ニュートン法などを用いるとよい。この候補値は、第1評価指標の最小値に対応するもの、あるいは、第1評価指標の局所値に対応するもののうち、いずれかとなる。   The value of an arbitrary variable (for example, the rotation angle around the Z axis of the tool) is calculated from the value of the rotation angle of each axis acquired for the form set as the calculation target. As the value of the arbitrary variable at the target position, the first evaluation index when the calculated value is set is calculated. Then, the value of the calculated first evaluation index is set as an initial value, and the value of an arbitrary variable (for example, the rotation angle around the Z axis of the tool) when the differential value or minute variation of the first evaluation index becomes zero is obtained. The obtained value is set as a candidate value of an arbitrary variable at the target position. That is, a change in the first evaluation index corresponding to a change in an arbitrary variable is confirmed starting from the value of the first evaluation index corresponding to the calculation target form, and as a result, a value when the first evaluation index does not change is determined. It is set as a candidate value for an arbitrary variable at the target position. In order to realize such a calculation, for example, a steepest descent method, an optimum gradient method, a Newton method, or the like may be used. This candidate value is either one corresponding to the minimum value of the first evaluation index or one corresponding to the local value of the first evaluation index.

このようにして候補値が求められた後、全ての形態のうち、演算対象に設定されていない形態が存在する場合、それら形態のうち、いずれか1つが次の演算対象に設定された上で、上記した候補値を求めるための各演算が再度実行される。一方、全ての形態のうち、演算対象に設定されていない形態が存在しない場合、求められた各候補値のうち、第1評価指標を最も小さくする値が、目標位置における任意変数の値として決定される。   After candidate values are obtained in this way, if there is a form that is not set as a calculation target among all the forms, one of those forms is set as the next calculation target. Each operation for obtaining the candidate value is executed again. On the other hand, if there is no form that is not set as a calculation target among all forms, the value that makes the first evaluation index the smallest among the obtained candidate values is determined as the value of the arbitrary variable at the target position. Is done.

このようにして決定された目標位置における任意変数(例えばツールのZ軸まわりの回転角度)の値は、移動時間に基づく第1評価指標が最小となる値、あるいは、それに極めて近い値である。すなわち、決定された目標位置における任意変数の値は、現在位置から目標位置に移動する際におけるツール(ロボット)の移動時間が極力短くなるような値となっている。ロボット側において上記した制御が自動的に実行されるため、ユーザがティーチング時に行う作業としては、例えば4軸の水平多関節型ロボットの場合であれば、目標位置におけるツール先端の各座標値を指定するとともに、ツール(手先)のZ軸まわりの回転角度を任意変数として指定するだけでよい。そして、値が指定された目標位置におけるツール先端のX、Y、Z軸座標の値に加え、上記したように自動的に決定された目標位置におけるツールのZ軸まわりの回転角度(任意変数)の値に基づいて、現在位置から目標位置に向けてツールが移動されることにより、ティーチング時におけるユーザ(作業者)の作業負担を軽減しつつ、ロボットの移動時間の短縮を図ることができる。   The value of the arbitrary variable (for example, the rotation angle around the Z axis of the tool) at the target position determined in this way is a value at which the first evaluation index based on the movement time is minimum or a value very close to it. That is, the value of the arbitrary variable at the determined target position is such that the movement time of the tool (robot) when moving from the current position to the target position is as short as possible. Since the above-mentioned control is automatically executed on the robot side, as the work performed by the user during teaching, for example, in the case of a 4-axis horizontal articulated robot, each coordinate value of the tool tip at the target position is designated. In addition, the rotation angle around the Z axis of the tool (hand) need only be specified 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) Based on this value, the tool is moved from the current position toward the target position, thereby reducing the work load on the user (operator) during teaching and shortening 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.

また、本手段によれば、ロボットの形態ごとに第1評価指標の最小値または局所値(評価関数の谷)が存在するという点を考慮し、ロボットの形態ごとに任意変数の値が最適化され、最適化された各任意変数の値のうち、第1評価指標を最も小さくすることができる値が、目標位置における任意変数の値に設定される。これにより、目標位置における任意変数の値として第1評価指標の局所値に対応した値が設定されることを確実に防止することができる。つまり、ロボットの動作時間を極力短くするという効果が最大限に得られるように、目標位置における任意変数の値が設定されるようになっている。   Further, according to this means, the value of the arbitrary variable is optimized for each robot form in consideration of the fact that the minimum value or the local value (valley of the evaluation function) of the first evaluation index exists for each robot form. Then, among the optimized values of each arbitrary variable, the value that can minimize the first evaluation index is set as the value of the arbitrary variable at the target position. Thereby, it can be surely prevented that a value corresponding to the local value of the first evaluation index is set as the value of the arbitrary variable at the target position. That is, the value of the arbitrary variable at the target position is set so that the effect of shortening the operation time of the robot as much as possible is obtained to the maximum.

また、変数値決定処理では、ツールの先端が現在位置から目標位置まで移動する際に要する移動時間に基づく第1評価指標を用いるようになっている。従って、例えば加速度まで考慮した詳細な(正確な)移動時間を第1評価指標とすることも可能であるし、例えば速度のみを考慮した移動時間の概算値を第1評価指標とすることも可能である。このうち、前者のように第1評価指標を設定すれば、任意変数を決定する際の精度が高まる。すなわち、ロボットの動作時間を一層確実に短縮できる任意変数の値を設定することが可能となる。一方、後者のように第1評価指標を設定すれば、その演算を比較的容易に行い得るようになるため、演算時間の短縮を図ることが可能となる。   In the variable value determination process, the first evaluation index based on the movement time required when the tip of the tool moves from the current position to the target position is used. Accordingly, for example, a detailed (accurate) moving time considering even the acceleration can be used as the first evaluation index, and an approximate value of the moving time considering only the speed can be used as the first evaluation index. It is. Among these, if the 1st evaluation index is set like the former, the accuracy at the time of determining an arbitrary variable will increase. That is, it is possible to set an arbitrary variable value that can shorten the operation time of the robot more reliably. On the other hand, if the first evaluation index is set as in the latter case, the calculation can be performed relatively easily, so that the calculation time can be shortened.

請求項2または4に記載の手段によれば、変数値決定処理では、ロボットが所定の形態をとる各軸の回転角度が与えられることにより、ロボットが上記所定の形態をとり且つ目標位置にツール先端が到達する各軸の回転角度の値が求められる。すなわち、ロボットが所定の形態をとる各軸の回転角度の値が、ロボットがとり得る全ての形態のそれぞれについて与えられると、それら全ての形態のうちいずれか1つが、目標位置にツール先端が到達する各軸の回転角度を求めるための演算の演算対象として設定される。なお、上記与えられる各軸の回転角度の値は、第1評価指標を最小化する値である必要はなく、また、ツール先端が目標位置に到達する値である必要もなく、任意の値でよい。   According to the means of claim 2 or 4, in the variable value determination process, given the rotation angle of each axis in which the robot takes a predetermined form, the robot takes the predetermined form and places the tool at the target position. The value of the rotation angle of each axis reached by the tip is obtained. That is, when the value of the rotation angle of each axis in which the robot takes a predetermined form is given for each of all forms that the robot can take, the tool tip reaches the target position in any one of those forms. Is set as a calculation target for calculating the rotation angle of each axis. Note that the value of the rotation angle of each axis given above does not have to be a value that minimizes the first evaluation index, and does not have to be a value at which the tool tip reaches the target position. Good.

そして、演算対象として設定された形態について与えられた各軸の回転角度の値からツールの先端位置を求め、そのツールの先端位置が計算対象位置として設定される。続いて、その計算対象位置におけるツールの先端位置および向きを決定するための変数のうち任意変数に指定された変数を除いた変数と、計算対象位置における各軸(各関節)の回転角度とに関するヤコビ行列Jが求められる。また、下記(1)式に示す第2評価指標Qが設定される。ただし、移動後のツールの先端位置の目標位置に対する位置誤差の座標値を要素とする行列をεとし、各軸の回転角度の変化量を要素とする行列をΔとし、対角成分が各軸の最大回転速度の逆数の二乗である対角行列をλとしている。なお、ε はεの転置行列であり、Δ はΔの転置行列である。
=ε ・ε+Δ ・λ・Δ …(1)
Then, the tip position of the tool is obtained from the rotation angle value of each axis given for the form set as the calculation target, and the tip position of the tool is set as the calculation target position. Subsequently, regarding variables for determining the tip position and orientation of the tool at the calculation target position, excluding the variables designated as arbitrary variables, and the rotation angle of each axis (each joint) at the calculation target position A Jacobian matrix Jk is obtained. Further, a second evaluation index Q k shown in the following formula (1) is set. However, a matrix whose element is the coordinate value of the position error of the tool tip position after the movement with respect to the target position is ε k , a matrix whose element is the amount of change in the rotation angle of each axis is Δ k , and the diagonal component is A diagonal matrix that is the square of the reciprocal of the maximum rotation speed of each axis 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)式において、右辺第一項は位置誤差の二乗和である。また、右辺第二項は各軸の回転角度の変化量(移動量)の二乗和に対角行列λを乗じたものであり、移動時間の二乗和に対して各軸の最大回転速度に応じた重み付けが与えられたものである。すなわち、移動時間の概算値に相当する。このように設定された第2評価指標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 second 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.

一方、上記判断の結果、位置誤差が許容誤差以下である場合、計算対象位置における各軸の回転角度に対して上記演算された変化量Δを加えた各軸の回転角度(移動後の各軸の回転角度)の値を、ロボットが演算対象の形態をとり且つ目標位置にツール先端が到達する各軸の回転角度の値として取得する。すなわち、上記演算により求められた移動後のツールの先端位置が十分に目標位置に近づいていると判断された場合、そのときの各軸の回転角度の値が、ロボットが演算対象の形態をとり且つ目標位置にツール先端が到達する各軸の回転角度の値として取得される。このように各軸の回転角度の値が取得された後、演算対象に設定されていない形態が存在しなくなるまで、それら形態のうち、いずれか1つを次の演算対象として設定した上で、各軸の回転角度を取得するための上記各演算が再度実行される。その結果、ロボットが所定の形態をとり且つ目標位置にツール先端が到達する各軸の回転角度の値が、ロボットがとり得る全ての形態のそれぞれについて取得されることになる。 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 of the axis is acquired as the value of the rotation angle of each axis where the robot takes the form of the calculation target and the tool tip reaches the target position. 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 of each axis at that time takes the form of the calculation target of the robot. And it is acquired as the value of the rotation angle of each axis at which the tool tip reaches the target position. After the value of the rotation angle of each axis is acquired in this way, until there is no form that is not set as the calculation target, after setting any one of these forms as the next calculation target, Each of the above operations for obtaining the rotation angle of each axis is executed again. As a result, the value of the rotation angle of each axis at which the robot takes a predetermined form and the tool tip reaches the target position is acquired for each of all the forms that the robot can take.

上記した各演算では、ヤコビ行列を用いている。ヤコビ行列は、各軸(各関節)における微小変位と、それに伴う手先の位置および向き(姿勢)の微小変位との比率を表すものである。このようなヤコビ行列を用いるとともに、移動時間の概算値が含まれた第2評価指標Qを最小化する演算が繰り返される結果、その演算により求められる移動後のツールの先端位置が徐々に目標位置に近づいていくことになる。そのため、最終的に取得される各軸の回転角度に基づく目標位置におけるロボットの姿勢は、最初に与えられた各軸の回転角度に基づくロボットの姿勢から大きく変化することがない。すなわち、目標位置におけるロボットの形態は、当初の形態と同じになる。このように、本手段によれば、ロボットが所定の形態をとる各軸の回転角度が与えられるだけで、ロボットが上記所定の形態をとり且つ目標位置にツール先端が到達する各軸の回転角度の値を求めることが可能となる。上記与えられる各軸の回転角度の値は、ロボットが所定の形態をとる値であれば任意の値でよい。そのため、ツール先端の目標位置にかかわらず、そのロボットがとり得る形態ごとに1種類ずつの値が予め準備されていればよいことになり、このような面からもユーザ(作業者)の作業負担の軽減を図ることができる。 In each calculation described above, a Jacobian matrix is used. The Jacobian matrix represents the ratio between the minute displacement in each axis (each joint) and the minute displacement of the hand position and orientation (posture) associated therewith. While using such a Jacobian matrix and repeating the calculation for minimizing the second evaluation index Q k including the approximate value of the movement time, the tip position of the tool after movement obtained by the calculation is gradually set to the target. It will approach the position. Therefore, the posture of the robot at the target position based on the finally obtained rotation angle of each axis does not change significantly from the posture of the robot based on the rotation angle of each axis given first. That is, the form of the robot at the target position is the same as the original form. Thus, according to the present means, only the rotation angle of each axis in which the robot takes a predetermined form is given, and the rotation angle of each axis in which the robot takes the predetermined form and the tool tip reaches the target position. Can be obtained. The given value of the rotation angle of each axis may be any value as long as the robot takes a predetermined form. Therefore, regardless of the target position of the tool tip, it is sufficient that one type of value is prepared in advance for each form that the robot can take, and the work burden on the user (operator) is also from this point of view. Can be reduced.

本発明の第1の実施形態を示すもので、ロボットシステムの概略構成図The 1st Embodiment of this invention is shown, The schematic block diagram of a robot system 評価指標を任意変数の関数として表す図A figure that represents an evaluation index as a function of an arbitrary variable 4軸の水平多関節型ロボットの各形態を示す図The figure which shows each form of a 4-axis horizontal articulated robot 変数値決定処理の内容を示すフローチャートFlow chart showing the contents of variable value decision processing 現在位置および目標位置におけるロボットの態様を模式的に表す図A diagram schematically showing the robot mode at the current position and target position 目標領域内のいずれかの位置に目標位置が設定される場合の図5相当図FIG. 5 equivalent diagram when the target position is set at any position within the target area 本発明の第2の実施形態を示すもので、図4のステップS1に相当するフローチャートThe 2nd Embodiment of this invention is shown, and the flowchart corresponded to step S1 of FIG. 本発明の第3の実施形態を示す図1相当図FIG. 1 equivalent view showing a third embodiment of the present invention 6軸の垂直多関節型ロボットの腕形態を示す図The figure which shows the arm form of a 6-axis vertical articulated robot 6軸の垂直多関節型ロボットの肘形態を示す図The figure which shows the elbow form of a 6-axis vertical articulated robot 6軸の垂直多関節型ロボットの手首形態を示す図The figure which shows the wrist form of a 6-axis vertical articulated robot 本発明の第4の実施形態を示すもので、図4のステップS1に相当するフローチャートThe 4th Embodiment of this invention is shown, and the flowchart corresponded to step S1 of FIG. 4軸の水平多関節型ロボットを模式的に示す図A diagram schematically showing a 4-axis horizontal articulated robot 図13相当図Figure 13 equivalent 従来技術を示す図5相当図FIG. 5 equivalent diagram showing the prior art

(第1の実施形態)
以下、本発明の第1の実施形態について図1〜図6を参照しながら説明する。
図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) which is the arm tip. 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は、ツールの先端が現在位置から目標位置に移動する際に要する移動時間に基づく第1評価指標を設定し、その第1評価指標を最適化することで任意変数の値を決定する(変数値決定処理)。このように、コントローラ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 sets a first evaluation index based on a movement time required when the tip of the tool moves from the current position to the target position, and optimizes the first evaluation index. The value of the arbitrary variable is determined (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は、目標位置におけるツールのZ軸まわりの回転角度Rz(任意変数)が取り得る全ての値について評価指標を演算し、任意変数の関数(以下では評価関数と言う)として表した(グラフ化した)ものである。この図2に示すように、評価関数は、2つの谷を有しており、評価指標の最小値(最適値)の部分が一方の谷の底に位置し、評価指標の最小値ではない他の値(最小値に準ずる値であり、以下では局所値と言う)の部分が他方の谷の底に位置している。評価関数にこのような2つの谷が存在する理由は、次のとおりである。   FIG. 2 calculates evaluation indexes for all possible values of the rotation angle Rz (arbitrary variable) of the tool around the Z-axis at the target position, and represents it as a function of the arbitrary variable (hereinafter referred to as an evaluation function) (graph). ). As shown in FIG. 2, the evaluation function has two valleys, and the minimum value (optimum value) portion of the evaluation index is located at the bottom of one valley and is not the minimum value of the evaluation index. The portion of the value (which is a value according to the minimum value, hereinafter referred to as a local value) is located at the bottom of the other valley. The reason why such two valleys exist in the evaluation function is as follows.

図3は、4軸の水平多関節型ロボットの各形態を示している。なお、図3では、各軸および各リンクをそれぞれ丸印および直線で示すとともに、ツールの図示を省略している。ロボットは、ツール先端の位置(X、Y、Z軸座標値)が同じであっても、その姿勢が全く異なることがある。そのため、通常、ロボットが取り得る様々な姿勢を、複数の形態に分けて区別するということが行われている。例えば、本実施形態のロボット2(4軸の水平多関節型ロボット)の場合、2つの形態に分類される。すなわち、第2軸J2の回転角度がプラス(+)になる腕形態(図3(a)参照)と、第2軸J2の回転角度がマイナス(−)になる腕形態(図3(b)参照)とに分類される。このような形態が同じであれば、ロボット2の姿勢はあまり変化しない。しかし、形態が異なれば、ロボット2の姿勢は大きく異なる。ロボット2の姿勢が大きく異なるということは、移動時間に基づく評価指標の変化の傾向についても大きく異なることになる。そのため、ロボット2の形態ごとに前述した評価関数の谷が存在することになる。言い換えると、上記評価関数には、ロボット2の形態が切り替わる境界である特異点を中心として、その両側に谷の部分が存在することになる。このようなことから、本実施形態のロボット2の場合、評価関数は少なくとも2つの谷を有することになる。   FIG. 3 shows each form of a 4-axis horizontal articulated robot. In FIG. 3, each axis and each link are indicated by a circle and a straight line, respectively, and the illustration of the tool is omitted. Even if the position of the tool tip (X, Y, Z coordinate values) is the same, the robot may have a completely different posture. For this reason, various postures that can be taken by a robot are usually divided into a plurality of forms. For example, the robot 2 (four-axis horizontal articulated robot) of this embodiment is classified into two forms. That is, an arm configuration in which the rotation angle of the second axis J2 is plus (+) (see FIG. 3A) and an arm configuration in which the rotation angle of the second axis J2 is minus (−) (FIG. 3B). Reference). If such a form is the same, the posture of the robot 2 does not change much. However, if the form is different, the posture of the robot 2 is greatly different. The fact that the posture of the robot 2 is greatly different also means that the tendency of change in the evaluation index based on the movement time is greatly different. Therefore, the valley of the evaluation function described above exists for each form of the robot 2. In other words, the evaluation function includes valley portions on both sides of a singular point that is a boundary where the form of the robot 2 switches. For this reason, in the case of the robot 2 of the present embodiment, the evaluation function has at least two valleys.

変数値決定処理において、最小値ではなく局所値が目標位置における任意変数の値として設定されてしまうと、ロボット2の動作時間を極力短くするという効果が若干低減する。上述したとおり、ロボットには形態という概念があり、その形態が切り替わる境界(特異点)を中心として両側に評価関数の谷の部分が存在する。つまり、形態の境界である特異点が谷の境界である。そこで、本実施形態では、このようなロボットに特有の点を考慮し、以下のように、目標位置の任意変数の値として第1評価指標の局所値に対応した値が設定されることを避けつつ(局所値回避)、第1評価指標の最小値(最適値)に対応した値が設定されるようにしている(最適化)。   In the variable value determination process, if the local value instead of the minimum value is set as the value of the arbitrary variable at the target position, the effect of shortening the operation time of the robot 2 as much as possible is slightly reduced. As described above, the robot has a concept of form, and there are valleys of the evaluation function on both sides around the boundary (singular point) where the form changes. That is, the singular point that is the boundary of the form is the boundary of the valley. Therefore, in the present embodiment, in consideration of such points peculiar to the robot, it is avoided that a value corresponding to the local value of the first evaluation index is set as the value of the arbitrary variable of the target position as follows. However, a value corresponding to the minimum value (optimum value) of the first evaluation index is set (optimization).

図4は、変数値決定処理の内容を示すフローチャートである。図4に示すように、変数値決定処理が開始されると(スタート)、ロボット2が所定の形態をとり且つ目標位置にツール先端が到達する各軸の回転角度の値が、ロボット2がとり得る全ての形態(図3に示した2つの腕形態)のそれぞれについて取得される(ステップS1)。なお、それら各軸の回転角度の値は、ユーザにより予め準備されているものとする。ただし、準備する各軸の回転角度の値は、第1評価指標を最小化する値である必要はなく、上記各条件を満たすものであれば任意の値でよい。そのため、上記値をユーザが準備することは比較的容易である。   FIG. 4 is a flowchart showing the contents of the variable value determination process. As shown in FIG. 4, when the variable value determination process is started (start), the robot 2 takes a predetermined form and the value of the rotation angle of each axis at which the tool tip reaches the target position is taken by the robot 2. It is acquired for each of all the obtained forms (two arm forms shown in FIG. 3) (step S1). In addition, the value of the rotation angle of each axis shall be prepared in advance by the user. However, the value of the rotation angle of each axis to be prepared does not need to be a value that minimizes the first evaluation index, and may be any value as long as the above conditions are satisfied. Therefore, it is relatively easy for the user to prepare the above value.

ステップS2では、全ての形態のうち、いずれか1つの形態が、目標位置におけるツールのZ軸まわりの回転角度Rz(任意変数)の候補値を求める演算の演算対象として設定される。ステップS3では、設定された演算対象について取得された各軸の回転角度の値から、ツールのZ軸まわりの回転角度Rzの値が演算される。そして、ステップS4では、目標位置におけるツールのZ軸まわりの回転角度Rzの値として、ステップS3で演算された値を設定した場合における第1評価指標が演算される。ステップS5では、ステップS4で演算された第1評価指標の値を起点として回転角度Rzの変化に応じた評価指標の変化が確認される。その結果、第1評価指標が変化しなくなるときの回転角度Rz(任意変数)の値が求められる。このようなステップS5の処理を実現するためには、最急降下法、最適勾配法、ニュートン法などを用い、下記(3)式の条件を満たすツールのZ軸まわりの回転角度Rzを求めればよい。ただし、f(Pc、Pd)は、ツール先端を現在位置Pcから目標位置Pdに向けて移動させる際の評価指標(評価関数)を示している。   In step S2, any one of all forms is set as a calculation target for calculating a candidate value of the rotation angle Rz (arbitrary variable) around the Z axis of the tool at the target position. In step S3, the value of the rotation angle Rz around the Z axis of the tool is calculated from the value of the rotation angle of each axis acquired for the set calculation target. In step S4, the first evaluation index when the value calculated in step S3 is set as the value of the rotation angle Rz around the Z axis of the tool at the target position is calculated. In step S5, the change of the evaluation index according to the change of the rotation angle Rz is confirmed using the value of the first evaluation index calculated in step S4 as a starting point. As a result, the value of the rotation angle Rz (arbitrary variable) when the first evaluation index does not change is obtained. In order to realize the processing in step S5, the rotation angle Rz about the Z axis of the tool that satisfies the following expression (3) may be obtained using the steepest descent method, the optimum gradient method, the Newton method, or the like. . Here, f (Pc, Pd) represents an evaluation index (evaluation function) when the tool tip is moved from the current position Pc toward the target position Pd.

Figure 0005803179
Figure 0005803179

ステップS6では、ステップS5で求められた値が目標位置におけるツールのZ軸まわりの回転角度Rzの候補値として設定される。この候補値は、移動時間の概算値が含まれた第1評価指標を最小化することにより決定された値である。そのため、ロボット2が演算対象の形態(所定の形態)となっている状態で、ツール先端を目標位置まで移動する際の移動時間が極力短くなる値になっている。すなわち、第1評価指標の最小値に対応するもの、あるいは、第1評価指標の局所値に対応するもののうち、いずれかとなっている。   In step S6, the value obtained in step S5 is set as a candidate value for the rotation angle Rz around the Z axis of the tool at the target position. This candidate value is a value determined by minimizing the first evaluation index including the approximate value of travel time. Therefore, the movement time when moving the tool tip to the target position in a state in which the robot 2 is in a calculation target form (predetermined form) is a value that is as short as possible. That is, it is either one corresponding to the minimum value of the first evaluation index or one corresponding to the local value of the first evaluation index.

ステップS7では、全ての形態のうち未だ演算対象に設定されていない形態が存在するか否かが判断される。その判断の結果、演算対象に設定されていない形態が存在する場合(YES)、ステップS8に進む。ステップS8では、未だ演算対象に設定されていない形態のうちいずれか1つが次の演算対象に設定される。このように次の演算対象が設定された上で、ステップS3に戻り、次の候補値を求めるための各演算(ステップS3〜S6)が再度実行される。一方、ステップS7による判断の結果、演算対象に設定されていない形態が存在しない場合(NO)、ステップS9に進む。ステップS9では、求められた各候補値のうち、第1評価指標を最も小さくする値が、目標位置におけるZ軸まわりの回転角度Rz(任意変数)の値として決定され、処理が終了する(エンド)。   In step S7, it is determined whether or not there is a form that has not yet been set as a calculation target among all the forms. As a result of the determination, if there is a form that is not set as a calculation target (YES), the process proceeds to step S8. In step S8, any one of the forms not yet set as the calculation target is set as the next calculation target. After the next calculation target is set in this way, the process returns to step S3, and each calculation (steps S3 to S6) for obtaining the next candidate value is executed again. On the other hand, as a result of the determination in step S7, if there is no form that is not set as a calculation target (NO), the process proceeds to step S9. In step S9, the value that makes the first evaluation index the smallest among the obtained candidate values is determined as the value of the rotation angle Rz (arbitrary variable) around the Z axis at the target position, and the process ends (end). ).

このようにして決定された目標位置におけるツールのZ軸まわりの回転角度Rzの値は、移動時間の概算値が含まれた第1評価指標が最小となる値、あるいは、それに極めて近い値である。すなわち、決定された目標位置における任意変数の値は、現在位置から目標位置に移動する際におけるツール(ロボット2)の移動時間が極力短くなるような値となっている。   The value of the rotation angle Rz around the Z-axis of the tool at the target position determined in this way is a value at which the first evaluation index including the approximate value of the movement time is minimum or very close to it. . That is, the value of the arbitrary variable at the determined target position is such that the moving time of the tool (robot 2) when moving from the current position to the target position is as short as possible.

コントローラ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.

また、本実施形態では、ロボットの形態ごとに第1評価指標の最小値または局所値(評価関数の谷)が存在するという点を考慮し、ロボット2の形態ごとに任意変数の値を最適化し、それら最適化された任意変数の値のうち、第1評価指標を最も小さくすることができる値を、目標位置における任意変数の値に設定する。これにより、目標位置における任意変数の値として第1評価指標の局所値に対応した値が設定されることを確実に防止することができる。つまり、ロボット2の動作時間を極力短くするという効果が最大限に得られるように、目標位置における任意変数の値が設定されるようになっている。   In the present embodiment, the value of the arbitrary variable is optimized for each form of the robot 2 in consideration of the fact that the minimum value or the local value (valley of the evaluation function) of the first evaluation index exists for each form of the robot. Among the optimized values of the arbitrary variable, a value that can make the first evaluation index the smallest is set as the value of the arbitrary variable at the target position. Thereby, it can be surely prevented that a value corresponding to the local value of the first evaluation index is set as the value of the arbitrary variable at the target position. That is, the value of the arbitrary variable at the target position is set so that the effect of shortening the operation time of the robot 2 is maximized.

変数値決定処理においては、ツール先端が現在位置から目標位置まで移動する際に要する移動時間に基づく第1評価指標を用いるようにしている。従って、例えば各軸の加速度まで考慮した詳細な(正確な)移動時間を第1評価指標とすることも可能であるし、例えば各軸の速度のみを考慮した移動時間の概算値(近似値)を第1評価指標とすることも可能である。つまり、第1評価指標を設定する上での自由度が高い。このうち、前者のように第1評価指標を設定すれば、任意変数を決定する際の精度が高まる。すなわち、ロボット2の動作時間を一層確実に短縮できる任意変数の値を設定することが可能となる。一方、後者のように第1評価指標を設定すれば、その評価指標を求める演算を比較的容易に行い得るようになるため、演算時間の短縮を図ることが可能となる。   In the variable value determination process, the first evaluation index based on the movement time required when the tool tip moves from the current position to the target position is used. Therefore, for example, a detailed (accurate) moving time considering the acceleration of each axis can be used as the first evaluation index, and an approximate value (approximate value) of the moving time considering only the speed of each axis, for example. Can be used as the first evaluation index. That is, the degree of freedom in setting the first evaluation index is high. Among these, if the 1st evaluation index is set like the former, the accuracy at the time of determining an arbitrary variable will increase. That is, it is possible to set the value of an arbitrary variable that can shorten the operation time of the robot 2 more reliably. On the other hand, if the first evaluation index is set as in the latter case, the calculation for obtaining the evaluation index can be performed relatively easily, so that the calculation time can be shortened.

次に、本実施形態のロボットシステム1により得られる具体的な効果について、図5および図6も参照して説明する。
図5は、ツール先端を現在位置Pcから目標位置Pdに向けて移動させる際におけるロボットの態様を模式的に示している。図5に示すロボットは、4軸の水平多関節型ロボットであり、その手先にツールとしてエアチャックが取り付けられている。なお、図5では、各軸および各リンクをそれぞれ丸印および直線で示すとともに、ツール先端を矢印で示している。また、現在位置におけるロボットの状態を点線で示すとともに、目標位置におけるロボットの状態を実線で示している。ここでは、現在位置Pcから目標位置Pdまでツール先端を移動させ、ツールであるエアチャックによりワークを把持する作業が行われるものとする。
Next, specific effects obtained by the robot system 1 of the present embodiment will be described with reference to FIGS.
FIG. 5 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. 5 is a 4-axis horizontal articulated robot, and an air chuck is attached as a tool to the hand. In FIG. 5, 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.

上記ケースにおけるティーチング作業は、従来の手法によれば次のように行われる。すなわち、ティーチングを担当する作業者は、まず、図5の(a)、(b)、(c)のそれぞれに示す状態(姿勢)について検討する。つまり、作業者は、ツールの向きを大まかに変えてみて、どの向きが良さそうであるかを推測する。その結果、(c)の状態が良さそうであると判断した場合、(c)の状態をベースにし、その(c)状態からツールの向きを少しずつ変化させたもの(図5の(d)、(e)、(f)のそれぞれに示す状態)について検討する。その結果、図5(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. 5A, 5B, and 5C. 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. 5). , (E), and (f)). As a result, the state shown in FIG. 5F 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の移動時間が極力短くなるような向きに自動的に決定される。従って、従来の手法のような繰り返しの過程を経ることなく、図5の(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, a result that the state (direction of the tool) in FIG. 5 (the direction of the tool) is optimal (moving time can be shortened as much as possible) can be easily obtained without going through a repeating process as in the conventional method.

このように、従来の手法によれば、ティーチングを担当する作業者の経験と推測により、少しずつ目標位置におけるロボットの状態(姿勢)を変化させる。そして、その作業を何回(例えば5回)か繰り返した結果、例えば、現在位置および目標位置におけるツールの向きが互いに同じロボットの姿勢(図5の(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. 5A) 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.

図6は、ツール先端を現在位置Pcから目標領域Ad内の任意の目標位置に向けて移動させる際における図5相当図である。この場合、図6の(a)に示す目標領域Ad内におけるどの位置に移動すればよいかについては実作業時にカメラなどの外部機器から与えられ、ティーチングの時点において作業者は知ることができないものとする。このようなケースでは、目標領域Ad内のどの位置に目標位置が設定されるかによってツールの最適な向きが変化する。そのため、従来の手法では、図6の(b)に示すように、目標領域Adを複数の小領域に分割し、それら小領域ごとに最適なツールの向きを教示するなど、非常に手間がかかっていた。また、どのように目標領域Adを分割するかによって、最適なツールの向きが得られるかどうかが変化するため、ティーチングを担当する作業者の個人能力に大きく依存する部分があった。   FIG. 6 is a diagram corresponding to FIG. 5 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 in the target area Ad shown in FIG. 6A 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. 6 (b), 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の実施形態に対し、変数値決定処理の内容を変更した第2の実施形態について図7を参照しながら説明する。
本実施形態では、ロボット2が所定の形態をとる各軸の回転角度が与えられることにより、ロボット2が上記形態をとり且つ目標位置にツール先端が到達する各軸の回転角度の値が求められる。すなわち、変数値決定処理において、図4のステップS1に代えて図7のフローチャートに示す内容の処理が実行される。
(Second Embodiment)
Hereinafter, a second embodiment in which the content of the variable value determination process is changed with respect to the first embodiment will be described with reference to FIG.
In this embodiment, given the rotation angle of each axis in which the robot 2 takes a predetermined form, the value of the rotation angle of each axis in which the robot 2 takes the above form and the tool tip reaches the target position is obtained. . That is, in the variable value determination process, the process shown in the flowchart of FIG. 7 is executed instead of step S1 of FIG.

図7の処理が開始されると(スタート)、ロボット2が所定の形態をとる各軸の回転角度の値が、ロボット2がとり得る全ての形態(2種類の腕形態)のそれぞれについて取得される(ステップT1)。なお、それら各軸の回転角度の値は、ユーザにより予め準備されているものとする。ただし、準備する各軸の回転角度の値は、第1評価指標を最小化する値である必要はなく、また、ツール先端が目標位置に到達する値である必要もなく、上記各条件を満たすものであれば任意の値でよい。そのため、上記値をユーザが準備することは非常に容易である。   When the process of FIG. 7 is started (start), the values of the rotation angles of the respective axes in which the robot 2 takes a predetermined form are acquired for each of all forms (two types of arm forms) that the robot 2 can take. (Step T1). In addition, the value of the rotation angle of each axis shall be prepared in advance by the user. However, the value of the rotation angle of each axis to be prepared does not have to be a value that minimizes the first evaluation index, and does not have to be a value at which the tool tip reaches the target position. Any value can be used. Therefore, it is very easy for the user to prepare the above values.

ステップT2では、全ての形態のうち、いずれか1つの形態が、目標位置にツール先端が到達する各軸の回転角度を取得するための演算の演算対象として設定される。ステップT3では、演算対象に設定された形態について与えられた各軸の回転角度の値からツールの先端位置が求められる。ステップT4では、ステップT3で求められたツールの先端位置が計算対象位置として設定される。   In step T2, any one of all the forms is set as a calculation target for calculation for obtaining the rotation angle of each axis at which the tool tip reaches the target position. In step T3, the tip position of the tool is obtained from the value of the rotation angle of each axis given for the form set as the calculation target. In step T4, the tip position of the tool obtained in step T3 is set as the calculation target position.

ステップT5では、計算対象位置におけるツールの先端位置および向きを決定するための変数(X、Y、Z軸座標値および回転角度Rz)のうち、任意変数に指定された回転角度Rzを除いた変数と、計算対象位置における各軸(関節)の回転角度とに関するヤコビ行列Jが求められる。そのヤコビ行列Jは、下記(4)式のように表される。ただし、X、Y、Z軸座標値をそれぞれX、Y、Zとし、第1軸J1〜第4軸J4のそれぞれの回転角度をθ1〜θ4としている。 In step T5, 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 (4). 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 0005803179
Figure 0005803179

ステップT6では、下記(5)式に示す第2評価指標Qが設定される。ただし、移動後のツールの先端位置の目標位置に対する位置誤差の座標値を要素とする行列をεとし、各軸J1〜J4の各回転角度θ1〜θ4の変化量を要素とする行列をΔとし、対角成分が各軸J1〜J4のそれぞれの最大回転速度の逆数の二乗である対角行列をλとし、位置誤差および変化量の重み付けのための定数をβとしている。また、ε はεの転置行列を示し、Δ はΔの転置行列を示している。なお、ε、λは、それぞれ下記(6)式、(7)式により表される。ただし、目標位置のX、Y、Z軸座標値を要素とする行列をPとし、計算対象位置のX、Y、Z軸座標値を要素とする行列をPとし、第1軸J1〜第4軸J4のそれぞれについての最大回転速度をV1max〜V4maxとしている。
=ε ・ε+β・Δ ・λ・Δ …(5)
ε=P−P−J・Δ …(6)
In step T6, a second evaluation index Q k shown in the following equation (5) is set. However, a matrix whose element is the coordinate value of the position error with respect to the target position of the tip position of the tool after movement is ε k , and a matrix whose element is the change amount of each rotation angle θ1 to θ4 of each axis J1 to J4. k is a diagonal matrix whose diagonal component is the square of the reciprocal of the maximum rotation speed of each of the axes J1 to J4, and λ is a constant for weighting the position error and the amount of change. Further, ε k T represents a transposed matrix of ε k , and Δ k T represents a transposed matrix of Δ k . Ε k and λ are expressed by the following formulas (6) and (7), 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 ... (5)
ε k = P d −P k −J k · Δ k (6)

Figure 0005803179
Figure 0005803179

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

ステップT8では、下記(9)式に示すように、移動後の各軸の回転角度が求められる。ただし、移動後の各軸J1〜J4の回転角度を要素とする行列をθk+1としている。また、定数γは目標位置への収束速度を調整するための定数を示している。なお、本実施形態では、定数γの値を1としているが、目標位置への収束速度を早くする場合には定数γの値を大きくすればよいし、収束速度を遅くする場合には定数γの値を小さくすればよい。
θk+1=θ+γ・Δ …(9)
In step T8, as shown in the following equation (9), 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 . 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 (9)

ステップT9では、下記(10)式に示すように、移動後のツールの先端位置が求められる。すなわち、移動後の各軸の回転角度を要素とする行列θk+1について順変換を行うことにより、移動後のツールの先端位置のX、Y、Z軸座標値を要素とする行列Pk+1が求められる。ただし、ツールのオフセット長や各アームのリンク長などを考慮した上で各軸の回転角度からツール先端位置を求める関数をJ2Pとして表している。
k+1=J2P(θk+1) …(10)
In step T9, as shown in the following formula (10), 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, a 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, and the like is represented as J2P.
P k + 1 = J2P (θ k + 1 ) (10)

ステップT10では、演算により求められた移動後のツールの先端位置Pk+1の目標位置Pに対する位置誤差が求められる。ステップT11では、ステップT10で求められた位置誤差が所定の許容誤差以下であるか否かが判断される。つまり、演算により求められた移動後のツールの先端位置Pk+1が十分に目標位置Pに近づいているか否かが判断される。その結果、位置誤差が許容誤差を超える場合(NO)、ステップT12に進む。ステップT12では、移動後のツールの先端位置Pk+1が次の計算位置に設定される。このように次の計算位置が設定された上で、ステップT5に戻り、次の移動後のツールの先端位置を求めるための各演算(ステップT5〜T11)が再度実行される。なお、上記許容誤差は、例えば、ロボット2における位置制御の精度に基づいて適宜設定すればよい。 In step T10, the position error of the tool tip position P k + 1 after movement obtained by calculation with respect to the target position P d is obtained. In step T11, it is determined whether or not the position error obtained in step T10 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 T12. In step T12, the tip position P k + 1 of the moved tool is set as the next calculation position. After the next calculation position is set in this way, the process returns to step T5, and each calculation (steps T5 to T11) 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.

一方、ステップT11による判断の結果、位置誤差が許容誤差以下である場合(YES)、ステップT13に進む。ステップT13では、上記(9)式に示した移動後の各軸J1〜J4の回転角度θk+1の値が、ロボット2が演算対象の形態をとり且つ目標位置にツール先端が到達する各軸の回転角度の値として取得される。そして、ステップT14では、全ての形態のうち未だ演算対象に設定されていない形態が存在するか否かが判断される。その判断の結果、演算対象に設定されていない形態が存在する場合(YES)、ステップT15に進む。ステップT15では、未だ演算対象に設定されていない形態のうちいずれか1つが次の演算対象に設定される。このように次の演算対象が設定された上で、ステップT3に戻り、各軸の回転角度を取得するための各演算(ステップT3〜T13)が再度実行される。一方、ステップT14による判断の結果、演算対象に設定されていない形態が存在しない場合(NO)、処理が終了する(エンド)。このような処理が実行される結果、ロボット2が所定の形態をとり且つ目標位置にツール先端が到達する各軸の回転角度の値が、ロボット2がとり得る全ての形態のそれぞれについて取得されることになる。 On the other hand, if the position error is equal to or smaller than the allowable error as a result of the determination in step T11 (YES), the process proceeds to step T13. In step T13, the value of the rotation angle θ k + 1 of each of the axes J1 to J4 after the movement shown in the above equation (9) is the value of each axis where the robot 2 takes the form of the calculation target and the tool tip reaches the target position. Obtained as the value of the rotation angle. In step T14, it is determined whether or not there is a form that has not yet been set as a calculation target among all the forms. As a result of the determination, if there is a form that is not set as a calculation target (YES), the process proceeds to step T15. In step T15, any one of the forms not yet set as the calculation target is set as the next calculation target. After the next calculation target is set in this way, the process returns to step T3, and each calculation (steps T3 to T13) for acquiring the rotation angle of each axis is executed again. On the other hand, if the result of determination in step T14 is that there is no form that is not set as a calculation target (NO), the process ends (end). As a result of executing such processing, the values of the rotation angles of the axes at which the robot 2 takes a predetermined form and the tool tip reaches the target position are acquired for all the forms that the robot 2 can take. It will be.

上記した各演算では、ヤコビ行列を用いている。ヤコビ行列は、各軸(各関節)における微小変位と、それに伴う手先の位置および向き(姿勢)の微小変位との比率を表すものである。このようなヤコビ行列を用いるとともに、移動時間の概算値が含まれた第2評価指標を最小化する演算が繰り返される結果、その演算により求められる移動後のツールの先端位置が徐々に目標位置に近づいていくことになる。そのため、最終的に取得される各軸の回転角度に基づく目標位置におけるロボット2の姿勢は、最初に与えられた各軸の回転角度に基づくロボット2の姿勢から大きく変化することがない。すなわち、目標位置におけるロボット2の形態は、当初の形態と同じになる。   In each calculation described above, a Jacobian matrix is used. The Jacobian matrix represents the ratio between the minute displacement in each axis (each joint) and the minute displacement of the hand position and orientation (posture) associated therewith. While using such a Jacobian matrix and repeating the calculation to minimize the second evaluation index including the approximate value of the movement time, the tip position of the tool after movement obtained by the calculation gradually becomes the target position. It will approach. Therefore, the posture of the robot 2 at the target position based on the rotation angle of each axis finally obtained does not change greatly from the posture of the robot 2 based on the rotation angle of each axis given first. That is, the form of the robot 2 at the target position is the same as the original form.

このように、本実施形態によれば、ロボット2が所定の形態をとる各軸の回転角度が与えられるだけで、ロボット2が上記所定の形態をとり且つ目標位置にツール先端が到達する各軸の回転角度の値を求めることが可能になる。上記与えられる各軸の回転角度の値は、ロボット2が所定の形態をとる値であれば任意の値でよい。そのため、ツール先端の目標位置にかかわらず、そのロボット2がとり得る形態ごとに1種類ずつの値が予め準備されていればよいことになり、このような面からもユーザ(作業者)の作業負担の軽減を図ることができる。   As described above, according to the present embodiment, each axis where the robot 2 takes the predetermined form and the tool tip reaches the target position only by giving the rotation angle of each axis that the robot 2 takes a predetermined form. The value of the rotation angle can be obtained. The given value of the rotation angle of each axis may be any value as long as the robot 2 takes a predetermined form. Therefore, regardless of the target position of the tool tip, it is sufficient that one type of value is prepared in advance for each form that the robot 2 can take. The burden can be reduced.

(第3の実施形態)
以下、上記各実施形態に対し、対象とするロボットの種類を変更した第3の実施形態について図8〜図11を参照しながら説明する。
図8は、第1の実施形態における図1相当図であり、第1の実施形態と同一部分には同一符号を付して説明を省略する。図8に示す本実施形態のロボットシステム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 FIGS.
FIG. 8 is a view corresponding to FIG. 1 in the first embodiment, and the same parts as those in the first embodiment are denoted by the same reference numerals and description thereof is omitted. The robot system 21 of this embodiment shown in FIG. 8 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.

図9〜図11は、第1の実施形態における図3相当図であり、それぞれ6軸の垂直多関節型ロボットの腕形態、肘形態および手首形態を示している。図9(a)は正面から目標位置にあるワークなどを取りに行くケースであり、図9(b)は背中越しにワークなどを取りに行くケースである。つまり、図9(a)および図9(b)では、点線で示した部分の面が、上下入れ替わる。このように、第1軸J21の回転角度が互いに180度異なる2種類の腕形態が存在する。図10(a)は第3軸J23が上方に存在するケースであり、図10(b)は第3軸J23が下方に存在するケースである。なお、ここで言う上下は、Z軸方向の位置を示している。このように、第3軸J23の回転角度の極性が互いに異なる2種類の肘形態が存在する。図11(a)および図11(b)は、点線で示した部分の面が、上下入れ替わる。このように、第4軸J24の回転角度が互いに180度異なる2種類の手首形態が存在する。   FIGS. 9 to 11 are diagrams corresponding to FIG. 3 in the first embodiment, and show an arm form, an elbow form, and a wrist form of a 6-axis vertical articulated robot, respectively. FIG. 9A shows a case where the workpiece at the target position is taken from the front, and FIG. 9B shows a case where the workpiece is taken over the back. That is, in FIG. 9A and FIG. 9B, the surface of the portion indicated by the dotted line is switched up and down. As described above, there are two types of arm forms in which the rotation angle of the first axis J21 is different from each other by 180 degrees. FIG. 10A shows a case where the third axis J23 exists above, and FIG. 10B shows a case where the third axis J23 exists below. In addition, the upper and lower sides mentioned here have shown the position of the Z-axis direction. As described above, there are two types of elbow forms having different polarities of the rotation angle of the third axis J23. In FIG. 11A and FIG. 11B, the surface of the portion indicated by the dotted line is switched up and down. As described above, there are two types of wrist forms in which the rotation angle of the fourth axis J24 is different from each other by 180 degrees.

本実施形態のロボット22(6軸の垂直多関節型ロボット)の場合、腕形態、肘形態および手首形態がそれぞれ2種類ずつ存在するため、それらの組み合わせにより合計で8つの形態に分類される。このようなことから、本実施形態のロボット22の場合、評価関数は少なくとも8つの谷を有することになる。このような本実施形態の構成においても、コントローラ3は、上記各実施形態と同様の任意変数設定処理および変数値決定処理を実行することが可能である。例えば、ツールの向きを決定するための変数(X、Y、Z軸まわりの回転角度Rx、Ry、Rz)のうち、いずれか1つ、あるいは、いずれか2つが任意変数として指定されれば、その指定された変数が任意変数として設定される(任意変数設定処理)。そして、コントローラ3により変数値決定処理が行われる。   In the case of the robot 22 (6-axis vertical articulated robot) of the present embodiment, there are two types of arm form, elbow form and wrist form, respectively, and therefore, they are classified into 8 forms in total by their combination. For this reason, in the case of the robot 22 of this embodiment, the evaluation function has at least eight valleys. Also in the configuration of this embodiment, the controller 3 can execute the same arbitrary variable setting process and variable value determination process as those of 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.

ただし、ツールの向きを決定するための変数のうち、いずれか2つが任意変数として指定された場合、図4のステップS5の処理において、(3)式に代えて下記(11)式〜(13)式のうちいずれかの条件を満たす任意変数の値を求めればよい。(11)式はX、Y軸まわりの回転角度Rx、Ryが任意変数として指定された場合の条件式を示し、(12)式はY、Z軸まわりの回転角度Ry、Rzが任意変数として指定された場合の条件式を示し、(13)式はX、Z軸まわりの回転角度Rx、Rzが任意変数として指定された場合の条件式を示す。   However, when any two of the variables for determining the direction of the tool are designated as arbitrary variables, the following formulas (11) to (13) are substituted for the formula (3) in the process of step S5 in FIG. ) The value of an arbitrary variable that satisfies one of the conditions may be obtained. Expression (11) shows a conditional expression when the rotation angles Rx and Ry around the X and Y axes are designated as arbitrary variables, and Expression (12) shows the rotation angles Ry and Rz around the Y and Z axes as arbitrary variables. The conditional expression when specified is shown, and the expression (13) shows the conditional expression when the rotation angles Rx and Rz around the X and Z axes are specified as arbitrary variables.

Figure 0005803179
Figure 0005803179

また、本実施形態の構成では、図7のステップT5にて求められるヤコビ行列Jについて、軸数の変更に基づいて変更すればよい。そのヤコビ行列Jは、例えばツールのX軸まわりの回転角度RxおよびY軸まわりの回転角度Ryが任意変数として設定された場合、下記(14)式のように表される。ただし、第1軸J21〜第6軸J26のそれぞれの回転角度をθ1〜θ6とし、ツールのZ軸まわりの回転角度をRzとしている。 In the configuration of this embodiment, the Jacobian matrix J k obtained at step T5 of FIG. 7, may be changed based on the change of the number of axes. The Jacobian matrix J k is expressed by the following equation (14) 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, for example. 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 0005803179
Figure 0005803179

これにより、目標位置における任意変数の値(ツールの向き)が、ロボット22の移動時間が極力短くなるような値に自動的に決定される。その結果、本実施形態の構成においても、第1の実施形態および第2の実施形態と同様の作用および効果が得られる。   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 in the first embodiment and the second embodiment can be obtained.

(第4の実施形態)
以下、第1の実施形態に対し、変数値決定処理の内容を変更した第4の実施形態について図12〜図14を参照しながら説明する。
本実施形態では、ツール先端の目標位置(X、Y、Z軸座標値)が与えられることにより、ロボット2が所定の形態をとり且つ目標位置にツール先端が到達する各軸の回転角度の値が、ロボット2がとり得る全ての形態(図3に示した2つの腕形態)のそれぞれについて求められる。すなわち、変数値決定処理において、図4のステップS1に代えて図12のフローチャートに示す内容の処理が実行される。図13および図14は、設定されるツール先端の目標位置に応じたロボット2の姿勢(各軸の回転角度)を模式的に示している。なお、図13および図14では、ロボット2のベース5およびフランジ9(手先)を丸印で示し、その他のアームなどの図示は省略している。
(Fourth embodiment)
Hereinafter, a fourth embodiment in which the content of the variable value determination process is changed with respect to the first embodiment will be described with reference to FIGS.
In this embodiment, given the target position (X, Y, Z axis coordinate values) of the tool tip, the robot 2 takes a predetermined form and the value of the rotation angle of each axis at which the tool tip reaches the target position. However, it is calculated | required about each of all the forms (two arm forms shown in FIG. 3) which the robot 2 can take. That is, in the variable value determination process, the process shown in the flowchart of FIG. 12 is executed instead of step S1 of FIG. 13 and 14 schematically show the posture of the robot 2 (the rotation angle of each axis) according to the target position of the set tool tip. 13 and 14, the base 5 and the flange 9 (hands) of the robot 2 are indicated by circles, and the other arms and the like are not shown.

図12の処理が開始されると(スタート)、ツール先端距離にツール長を加えた長さが、ロボット2のリンク長より長いか否かが判断される(ステップU1)。ツール先端距離とは、ロボット2のベース5からツール先端の目標位置までの距離である。また、ツール長とは、手先(フランジ9)に取り付けられたツールのオフセット長のことである(図13および図14参照)。すなわち、ツール長は、図13および図14において点線で描かれた円の半径に相当する。また、リンク長は、図13および図14において一点鎖線で描かれた円の半径に相当する。なお、本実施形態における長さ(距離)とは、X−Y平面上での長さ(距離)に相当する。   When the processing of FIG. 12 is started (start), it is determined whether or not the length obtained by adding the tool length to the tool tip distance is longer than the link length of the robot 2 (step U1). The tool tip distance is a distance from the base 5 of the robot 2 to the target position of the tool tip. The tool length is an offset length of the tool attached to the hand (flange 9) (see FIGS. 13 and 14). That is, the tool length corresponds to the radius of a circle drawn by a dotted line in FIGS. Further, the link length corresponds to the radius of a circle drawn by a one-dot chain line in FIGS. Note that the length (distance) in the present embodiment corresponds to the length (distance) on the XY plane.

ステップU1による判断の結果、ツール先端距離+ツール長のほうがリンク長よりも長い場合(YES)、ステップU2に進む。ロボット2のリンク長よりも遠くには、手先位置を動かすことはできない。従って、この場合には、ステップU2で移動不可能と判断され、処理が終了する(エンド)。   If the result of determination in step U1 is that the tool tip distance + tool length is longer than the link length (YES), the process proceeds to step U2. The hand position cannot be moved farther than the link length of the robot 2. Accordingly, in this case, it is determined in step U2 that the movement is impossible, and the process ends (END).

一方、ステップU1による判断の結果、ツール先端距離+ツール長よりもリンク長のほうが長い場合(NO)、ステップU3に進む。この場合、ツール先端が目標位置に到達するように手先を動かすことが可能である。ただし、手先位置がベース5に近付き過ぎると、手先およびベース5が衝突するおそれがある。そこで、ベース5から手先(フランジ9)までの距離の目標値(目標距離)を下記(21)式のとおり定める。
ベースと衝突するおそれのある距離<目標距離<リンク長 …(21)
On the other hand, if the result of determination in step U1 is that the link length is longer than the tool tip distance + tool length (NO), the process proceeds to step U3. In this case, it is possible to move the hand so that the tool tip reaches the target position. However, if the hand position is too close to the base 5, the hand and the base 5 may collide. Therefore, a target value (target distance) for the distance from the base 5 to the hand (flange 9) is determined as in the following equation (21).
Distance that may collide with base <target distance <link length (21)

上記(21)式に示す目標距離は、図13および図14において実線で描かれた円の半径に相当する。ステップU3では、下記(22)式の条件を満たしているか否かが判断される。すなわち、図13(a)の状態のように、点線および実線の円が互いに交差し、且つ、実線の円の外側から一点鎖線の円の内側までの間にツール先端の目標位置があるという条件を満たしているか否かが判断される。
ツール先端距離−ツール長≦目標距離≦ツール先端距離 …(22)
The target distance shown in the above equation (21) corresponds to the radius of a circle drawn by a solid line in FIGS. In step U3, it is determined whether or not the condition of the following equation (22) is satisfied. That is, as in the state of FIG. 13A, the dotted line and the solid line circle intersect with each other, and the target position of the tool tip is between the outside of the solid line circle and the inside of the dashed line circle. It is determined whether or not
Tool tip distance-Tool length ≤ Target distance ≤ Tool tip distance (22)

上記(22)式の条件を満たしていない場合(ステップU3で「NO」)、ステップU4に進む。ステップU4では、下記(23)式の条件を満たしているか否かが判断される。すなわち、図13(b)の状態のように、点線および実線の円が互いに交差し、且つ、実線の円の内側にツール先端の目標位置があるという条件を満たしているか否かが判断される。
ツール先端距離+ツール長≧目標距離≧ツール先端距離 …(23)
When the condition of the above expression (22) is not satisfied (“NO” in step U3), the process proceeds to step U4. In Step U4, it is determined whether or not the condition of the following equation (23) is satisfied. That is, as in the state of FIG. 13B, it is determined whether or not the condition that the dotted line and the solid line circle intersect each other and the target position of the tool tip is inside the solid line circle is satisfied. .
Tool tip distance + tool length ≧ target distance ≧ tool tip distance (23)

上記(22)式の条件または上記(23)式の条件を満たしている場合(ステップU3またはU4で「YES」)、ステップU5に進む。ステップU5では、ベース5から手先(フランジ9)までの距離(手先距離)が目標距離に一致するとともに、手先からツール先端までの距離がツール長に一致するという条件を満たす手先の位置が導出される。すなわち、図13において、点線および実線の円が交差する2つの点(図13で、白抜きの丸印および黒塗りの丸印で示す点)に位置するフランジ9の位置が候補値として導出される。ステップU6では、ステップU5で導出された2つの手先位置(候補値)のうち、正面を指す方向ベクトル(1,0)との内積が最大になるものが選択される。つまり、候補値のうち、よりロボット2の正面に近い側の値(図13で白抜きの丸印で示す点)が選択される。   When the condition of the above expression (22) or the condition of the above expression (23) is satisfied (“YES” in step U3 or U4), the process proceeds to step U5. In step U5, the position of the hand that satisfies the condition that the distance (hand distance) from the base 5 to the hand (flange 9) matches the target distance and the distance from the hand to the tool tip matches the tool length is derived. The That is, in FIG. 13, the position of the flange 9 positioned at two points where the dotted and solid circles intersect (the point indicated by the white circle and the black circle in FIG. 13) is derived as a candidate value. The In step U6, the two hand positions (candidate values) derived in step U5 that have the maximum inner product with the direction vector (1, 0) pointing to the front are selected. That is, among the candidate values, a value closer to the front of the robot 2 (a point indicated by a white circle in FIG. 13) is selected.

一方、上記(22)式の条件および上記(23)式の条件をいずれも満たしていない場合(ステップU3およびU4の双方で「NO」)、ステップU7に進む。すなわち、図14(a)、(b)の状態のように、点線および実線の円が互いに交差していない場合、ステップU7に進む。この場合、ベース5から手先(フランジ9)までの距離が目標距離に一致するように、手先の位置を設定することが不可能である。ステップU7では、ツール先端距離が目標距離以上であるか否かが判断される。すなわち、ツール先端の目標位置が実線の円の外側に位置する状態(図14(a)の状態)か、または、ツール先端の目標位置が実線の円の内側に位置する状態(図14(b)の状態)かが判断される。その結果、ツール先端距離が目標距離以上であると判断された場合(YES)、つまり図14(a)のような状態である場合、ステップU8に進む。   On the other hand, if neither the condition of the above expression (22) nor the condition of the above expression (23) is satisfied (“NO” in both steps U3 and U4), the process proceeds to step U7. That is, as shown in FIGS. 14A and 14B, when the dotted and solid circles do not intersect each other, the process proceeds to step U7. In this case, it is impossible to set the position of the hand so that the distance from the base 5 to the hand (flange 9) matches the target distance. In step U7, it is determined whether or not the tool tip distance is greater than or equal to the target distance. That is, the target position of the tool tip is located outside the solid circle (the state shown in FIG. 14A), or the target position of the tool tip is located inside the solid circle (see FIG. 14B). ) State). As a result, when it is determined that the tool tip distance is greater than or equal to the target distance (YES), that is, when the tool tip state is as shown in FIG. 14A, the process proceeds to step U8.

ステップU8では、下記(24)式に基づいて手先の位置が導出される。すなわち、点線の円上であり、且つ、実線の円との距離が最も短くなる位置(図14(a)におけるフランジ9の位置)が手先の位置として導出される。ただし、ツール先端位置は、ツール先端のX、Y軸座標値である。つまり、下記(24)式では、距離(ツール先端距離およびツール長)から求まる比率を、ツール先端位置(X、Y軸座標値)にかけることで、手先位置(X、Y軸座標値)を算出している。
手先位置=((ツール先端距離−ツール長)÷ツール先端距離)×ツール先端位置
…(24)
In step U8, the position of the hand is derived based on the following equation (24). That is, the position (the position of the flange 9 in FIG. 14A) that is on the dotted circle and has the shortest distance from the solid circle is derived as the hand position. However, the tool tip position is the X and Y axis coordinate values of the tool tip. That is, in the following equation (24), the hand position (X, Y axis coordinate value) is obtained by multiplying the ratio obtained from the distance (tool tip distance and tool length) by the tool tip position (X, Y axis coordinate value). Calculated.
Hand position = ((tool tip distance-tool length) ÷ tool tip distance) x tool tip position
... (24)

一方、ステップU7による判断の結果、ツール先端距離が目標距離未満であると判断された場合(NO)、つまり図14(b)のような状態であると判断された場合、ステップU9に進む。ステップU9では、下記(25)式に基づいて手先の位置が導出される。すなわち、点線の円上であり、且つ、実線の円との距離が最も短くなる位置(図14(b)におけるフランジ9の位置)が手先の位置として導出される。下記(25)式についても、上記(24)式と同様の考えに基づいて手先位置(X、Y軸座標値)を算出している。
手先位置=((ツール先端距離+ツール長)÷ツール先端距離)×ツール先端位置
…(25)
On the other hand, as a result of the determination in step U7, if it is determined that the tool tip distance is less than the target distance (NO), that is, if it is determined as shown in FIG. 14B, the process proceeds to step U9. In step U9, the position of the hand is derived based on the following equation (25). That is, the position (the position of the flange 9 in FIG. 14B) that is on the dotted circle and has the shortest distance from the solid circle is derived as the hand position. For the following formula (25), the hand position (X and Y axis coordinate values) is calculated based on the same idea as the formula (24).
Hand position = ((tool tip distance + tool length) ÷ tool tip distance) x tool tip position
... (25)

ステップU10では、ステップU6で選択された手先位置またはステップU8、U9で導出された手先位置を実現するための各軸の回転角度が、全ての形態(2つの腕形態)のそれぞれについて求められ、処理が終了する(エンド)。このような処理が実行される結果、ロボット2が所定の形態をとり且つ目標位置にツール先端が到達する各軸の回転角度の値が、ロボット2がとり得る全ての形態のそれぞれについて取得される。 In step U10, the rotation angle of each axis for realizing the hand position selected in step U6 or the hand position derived in steps U8 and U9 is obtained for each of all the forms (two arm forms), Processing ends (END). As a result of executing such processing, the values of the rotation angles of the axes at which the robot 2 takes a predetermined form and the tool tip reaches the target position are acquired for all the forms that the robot 2 can take. .

このように、本実施形態によれば、ツール先端の目標位置(各軸座標値)が与えられるだけで、4軸の水平多関節型ロボットであるロボット2が所定の形態をとり且つ目標位置にツール先端が到達する各軸の回転角度の値を、ロボット2がとり得る全ての形態(2つの腕形態)のそれぞれについて求めることが可能になる。そのため、ユーザ(作業者)の作業負担が一層軽減されるという効果が得られる。   As described above, according to the present embodiment, the robot 2 that is a 4-axis horizontal articulated robot takes a predetermined form only at the target position (each axis coordinate value) of the tool tip and takes the target position. The value of the rotation angle of each axis reached by the tool tip can be obtained for each of all forms (two arm forms) that the robot 2 can take. Therefore, the effect that the work burden of the user (operator) is further reduced 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 drawing, 2 and 22 are robots, 3 is a controller (robot control device, arbitrary variable setting processing means, variable value determination processing means), 9 and 31 are flanges (hands), and J1 to J4 and J21 to J26 are axes. Show.

Claims (4)

複数の軸を有するロボットの手先に取り付けられるツールの先端を現在位置から目標位置に向けて移動させる際におけるロボットの制御方法であって、
移動後のツールの向きを決定するための各変数のうち、ユーザにより指定される1つまたは2つの変数を任意の値に設定可能な任意変数として設定する任意変数設定処理と、
ツールの先端が前記現在位置から前記目標位置に移動する際に要する移動時間に基づく第1評価指標を設定し、その第1評価指標を最適化して前記目標位置における任意変数の値を決定する変数値決定処理と、
を含み、
前記変数値決定処理は、
前記ロボットの姿勢を各軸の回転角度に基づいて予め複数に区別した形態に従って、前記ロボットが所定の形態をとり且つ前記目標位置にツールの先端が到達する各軸の回転角度の値を、前記ロボットがとり得る全ての形態のそれぞれについて取得する第1ステップと、
前記全ての形態のうちいずれか1つを、前記目標位置における任意変数の候補値を求める演算の演算対象として設定する第2ステップと、
前記演算対象について取得された前記各軸の回転角度の値から前記任意変数の値を演算する第3ステップと、
前記目標位置における任意変数の値として、前記演算された値を設定した場合における前記第1評価指標を演算する第4ステップと、
前記演算された第1評価指標の値を初期値として前記第1評価指標の微分値または微小変分がゼロになるときの前記任意変数の値を求め、その求めた値を前記目標位置における任意変数の候補値とする第5ステップと、
を含み、
前記第5ステップの実行後、前記演算対象に設定されていない形態が存在する場合、それら形態のうち、いずれか1つを次の演算対象として設定した上で、前記第3〜第5ステップを再度実行し、
前記第5ステップの実行後、前記演算対象に設定されていない形態が存在しない場合、前記候補値のうち、前記第1評価指標を最も小さくする値を、前記目標位置における任意変数の値として決定することを特徴とするロボットの制御方法。
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,
A variable that sets a first evaluation index based on a moving time required for the tip of the tool to move from the current position to the target position, optimizes the first evaluation index, and determines a value of an arbitrary variable at the target position The value determination process,
Including
The variable value determination process includes:
In accordance with a form in which the posture of the robot is previously divided into a plurality based on the rotation angle of each axis, the value of the rotation angle of each axis at which the robot takes a predetermined form and the tip of the tool reaches the target position, A first step of acquiring for each of all possible forms of the robot;
A second step of setting any one of all the forms as a calculation target of a calculation for obtaining a candidate value of an arbitrary variable at the target position;
A third step of calculating the value of the arbitrary variable from the value of the rotation angle of each axis acquired for the calculation target;
A fourth step of calculating the first evaluation index when the calculated value is set as the value of the arbitrary variable at the target position;
Using the calculated value of the first evaluation index as an initial value, the value of the arbitrary variable when the differential value or minute variation of the first evaluation index becomes zero is obtained, and the obtained value is arbitrarily set at the target position. A fifth step as a variable candidate value;
Including
After execution of the fifth step, when there is a form that is not set as the calculation target, after setting any one of the forms as the next calculation target, the third to fifth steps are performed. Run again,
After execution of the fifth step, when there is no form that is not set as the calculation target, a value that makes the first evaluation index the smallest among the candidate values is determined as a value of an arbitrary variable at the target position And a robot control method.
前記変数値決定処理の第1ステップは、
前記ロボットが所定の形態をとる各軸の回転角度の値が、前記ロボットがとり得る全ての形態のそれぞれについて与えられると、それら全ての形態のうちいずれか1つを、前記目標位置にツールの先端が到達する各軸の回転角度を取得するための演算の演算対象として設定する第6ステップと、
前記演算対象について与えられた前記各軸の回転角度の値から前記ツールの先端位置を求める第7ステップと、
前記求められたツールの先端位置を計算対象位置として設定する第8ステップと、
前記計算対象位置におけるツールの先端位置および向きを決定するための変数のうち前記任意変数を除いた変数と、前記計算対象位置における各軸の回転角度とに関するヤコビ行列Jkを求める第9ステップと、
移動後のツールの先端位置の前記目標位置に対する位置誤差の座標値を要素とする行列をεkとし、各軸の回転角度の変化量を要素とする行列をΔkとし、対角成分を各軸の最大回転速度の逆数の二乗とした対角行列をλとし、前記目標位置の座標値を要素とする行列をPdとし、前記計算対象位置の座標値を要素とする行列をPkとして、下記(1)式に示す第2評価指標Qkを最小化することにより、下記(2)式に示す変化量Δkを演算する第10ステップと、
k=εk T・εk+Δk T・λ・Δk …(1)
Δk=(λ+Jk T・Jk-1・Jk T(Pd−Pk) …(2)
前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度について順変換を行うことにより、移動後のツールの先端位置を演算する第11ステップと、
前記演算した移動後のツールの先端位置の前記目標位置に対する位置誤差を求め、その位置誤差が所定の許容誤差以下であるか否か判断する第12ステップと、
を含み、
前記第12ステップによる判断の結果、前記位置誤差が前記許容誤差を超える場合、前記演算した移動後のツールの先端位置を次の計算対象位置として設定した上で、前記第9〜第12ステップを再度実行し、
前記第12ステップによる判断の結果、前記位置誤差が前記許容誤差以下である場合、前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度の値を、前記ロボットが前記演算対象の形態をとり且つ前記目標位置にツールの先端が到達する各軸の回転角度の値として取得し、
前記各軸の回転角度の値を取得した後、前記演算対象に設定されていない形態が存在しなくなるまで、それら形態のうち、いずれか1つを次の演算対象として設定した上で、前記第7〜第12ステップを再度実行することを特徴とする請求項1に記載のロボットの制御方法。
The first step of the variable value determination process is:
When the value of the rotation angle of each axis that the robot takes a predetermined form is given for each of all the forms that the robot can take, any one of those forms is placed at the target position of the tool. A sixth step of setting as a calculation target for calculation for obtaining the rotation angle of each axis to which the tip reaches;
A seventh step of obtaining the tip position of the tool from the value of the rotation angle of each axis given for the calculation object;
An eighth step of setting the obtained tip position of the tool as a calculation target position;
A ninth step of obtaining a Jacobian matrix J k relating 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; ,
Ε k is a matrix whose element is the coordinate value of the position error of the tool tip position relative to the target position after movement, Δ k is a matrix whose element is the amount of change in the rotation angle of each axis, and each diagonal component is A diagonal matrix that is the square of the reciprocal of the maximum rotational speed of the axis is λ, a matrix having the coordinate value of the target position as an element is P d, and a matrix having the coordinate value of the calculation target position as an element is P k A tenth step of calculating a change amount Δ k shown in the following equation (2) by minimizing a second evaluation index Q k shown in the following equation (1):
Q k = ε k T · ε k + Δ k T · λ · Δ k (1)
Δ k = (λ + J k T · J k ) −1 · J k T (P d −P k ) (2)
An eleventh 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 Δk to the rotation angle of each axis at the calculation target position;
A twelfth 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 a predetermined allowable error or less;
Including
As a result of the determination in the twelfth step, when the position error exceeds the allowable error, the calculated tip position of the moved tool is set as the next calculation target position, and then the ninth to twelfth steps are performed. Run again,
If the position error is equal to or smaller than the allowable error as a result of the determination in the twelfth step, the value of the rotation angle of each axis obtained by adding the calculated change Δk to the rotation angle of each axis at the calculation target position Is acquired as the value of the rotation angle of each axis where the robot takes the form of the calculation target and the tip of the tool reaches the target position,
After acquiring the value of the rotation angle of each axis, until there is no form that is not set as the calculation target, after setting any one of these forms as the next calculation target, 7. The robot control method according to claim 1, wherein the seventh to twelfth steps are executed again.
複数の軸を有するロボットの手先に取り付けられるツールの先端を現在位置から目標位置に向けて移動させるロボットの制御装置であって、
移動後のツールの向きを決定するための各変数のうち、ユーザにより指定される1つまたは2つの変数を任意の値に設定可能な任意変数として設定する任意変数設定処理手段と、
ツールの先端が前記現在位置から前記目標位置に移動する際に要する移動時間に基づく第1評価指標を設定し、その第1評価指標を最適化して前記目標位置における任意変数の値を決定する変数値決定処理手段と、
を備え、
前記変数値決定処理手段は、
前記ロボットの姿勢を各軸の回転角度に基づいて予め複数に区別した形態に従って、前記ロボットが所定の形態をとり且つ前記目標位置にツールの先端が到達する各軸の回転角度の値を、前記ロボットがとり得る全ての形態のそれぞれについて取得し、
前記全ての形態のうちいずれか1つを、前記目標位置における任意変数の候補値を求める演算の演算対象として設定し、
前記演算対象について取得された前記各軸の回転角度の値から前記任意変数の値を演算し、
前記目標位置における任意変数の値として、前記演算された値を設定した場合における前記第1評価指標を演算し、
前記演算された第1評価指標の値を初期値として前記第1評価指標の微分値または微小変分がゼロになるときの前記任意変数の値を求め、その求めた値を前記目標位置における任意変数の候補値とし、
前記任意変数の候補値を求めた後、前記演算対象に設定されていない形態が存在する場合、それら形態のうち、いずれか1つを次の演算対象として設定した上で、前記任意変数の候補値を求めるための前記各演算を再度実行し、
前記任意変数の候補値を求めた後、前記演算対象に設定されていない形態が存在しない場合、前記候補値のうち、前記第1評価指標を最も小さくする値を、前記目標位置における任意変数の値として決定することを特徴とするロボットの制御装置。
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,
A variable that sets a first evaluation index based on a moving time required for the tip of the tool to move from the current position to the target position, optimizes the first evaluation index, and determines a value of an arbitrary variable at the target position A value determination processing means;
With
The variable value determination processing means includes:
In accordance with a form in which the posture of the robot is previously divided into a plurality based on the rotation angle of each axis, the value of the rotation angle of each axis at which the robot takes a predetermined form and the tip of the tool reaches the target position, Acquire for each of all possible forms that the robot can take,
Any one of the above forms is set as a calculation target of a calculation for obtaining a candidate value of an arbitrary variable at the target position,
The value of the arbitrary variable is calculated from the value of the rotation angle of each axis acquired for the calculation target,
As the value of the arbitrary variable at the target position, the first evaluation index when the calculated value is set is calculated,
Using the calculated value of the first evaluation index as an initial value, the value of the arbitrary variable when the differential value or minute variation of the first evaluation index becomes zero is obtained, and the obtained value is arbitrarily set at the target position. Variable candidate values,
After obtaining the candidate value of the arbitrary variable, when there is a form that is not set as the calculation target, after setting any one of these forms as the next calculation target, the candidate of the arbitrary variable Re-execute each of the above operations to obtain a value,
After obtaining the candidate value of the arbitrary variable, if there is no form that is not set as the calculation target, the value that makes the first evaluation index the smallest among the candidate values is determined as the value of the arbitrary variable at the target position. A control device for a robot, characterized in that the value is determined as a value.
前記変数値決定処理手段は、
前記ロボットが所定の形態をとる各軸の回転角度の値が、前記ロボットがとり得る全ての形態のそれぞれについて与えられると、それら全ての形態のうちいずれか1つを、前記目標位置にツールの先端が到達する各軸の回転角度を取得するための演算の演算対象として設定し、
前記演算対象について与えられた前記各軸の回転角度の値から前記ツールの先端位置を求め、
前記求められたツールの先端位置を計算対象位置として設定し、
前記計算対象位置におけるツールの先端位置および向きを決定するための変数のうち前記任意変数を除いた変数と、前記計算対象位置における各軸の回転角度とに関するヤコビ行列Jkを求め、
移動後のツールの先端位置の前記目標位置に対する位置誤差の座標値を要素とする行列をεkとし、各軸の回転角度の変化量を要素とする行列をΔkとし、対角成分を各軸の最大回転速度の逆数の二乗とした対角行列をλとし、前記目標位置の座標値を要素とする行列をPdとし、前記計算対象位置の座標値を要素とする行列をPkとして、下記(1)式に示す第2評価指標Qkを最小化することにより、下記(2)式に示す変化量Δkを演算し、
k=εk T・εk+Δk T・λ・Δk …(1)
Δk=(λ+Jk T・Jk-1・Jk T(Pd−Pk) …(2)
前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度について順変換を行うことにより、移動後のツールの先端位置を演算し、
前記演算した移動後のツールの先端位置の前記目標位置に対する位置誤差を求め、その位置誤差が所定の許容誤差以下であるか否か判断し、
前記位置誤差が前記許容誤差を超える場合、前記演算した移動後のツールの先端位置を次の計算対象位置として設定した上で、次の移動後のツールの先端位置を求めるための前記各演算を再度実行し、
前記位置誤差が前記許容誤差以下である場合、前記計算対象位置における各軸の回転角度に対し前記演算した変化量Δkを加えた各軸の回転角度の値を、前記ロボットが前記演算対象の形態をとり且つ前記目標位置にツールの先端が到達する各軸の回転角度の値として取得し、
前記各軸の回転角度の値を取得した後、前記演算対象に設定されていない形態が存在しなくなるまで、それら形態のうち、いずれか1つを次の演算対象として設定した上で、各軸の回転角度を取得するための前記各演算を再度実行することを特徴とする請求項3に記載のロボットの制御装置。
The variable value determination processing means includes:
When the value of the rotation angle of each axis that the robot takes a predetermined form is given for each of all the forms that the robot can take, any one of those forms is placed at the target position of the tool. Set as the calculation target of calculation to obtain the rotation angle of each axis that the tip reaches,
Obtain the tip position of the tool from the value of the rotation angle of each axis given for the calculation object,
Set the calculated tool tip position as the position to be calculated,
Obtaining a Jacobian matrix J k relating to a variable excluding the arbitrary variable among variables for determining a tip position and an orientation of the tool at the calculation target position and a rotation angle of each axis at the calculation target position;
Ε k is a matrix whose element is the coordinate value of the position error of the tool tip position relative to the target position after movement, Δ k is a matrix whose element is the amount of change in the rotation angle of each axis, and each diagonal component is A diagonal matrix that is the square of the reciprocal of the maximum rotational speed of the axis is λ, a matrix having the coordinate value of the target position as an element is P d, and a matrix having the coordinate value of the calculation target position as an element is P k Then, by minimizing the second evaluation index Q k shown in the following formula (1), a change amount Δ k shown in the following formula (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 Δk to the rotation angle of each axis at the calculation target position, the tip position of the tool after movement 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 robot calculates the rotation angle value of each axis obtained by adding the calculated change Δk to the rotation angle of each axis at the calculation target position. Obtaining the value of the rotation angle of each axis that takes the form and the tip of the tool reaches the target position;
After obtaining the value of the rotation angle of each axis, until there is no form that is not set as the calculation target, after setting any one of those forms as the next calculation target, The robot control apparatus according to claim 3, wherein each of the operations for acquiring the rotation angle is executed again.
JP2011060624A 2011-03-18 2011-03-18 Robot control method and robot control apparatus Active JP5803179B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011060624A JP5803179B2 (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
JP2011060624A JP5803179B2 (en) 2011-03-18 2011-03-18 Robot control method and robot control apparatus

Publications (2)

Publication Number Publication Date
JP2012196720A JP2012196720A (en) 2012-10-18
JP5803179B2 true JP5803179B2 (en) 2015-11-04

Family

ID=47179471

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011060624A Active JP5803179B2 (en) 2011-03-18 2011-03-18 Robot control method and robot control apparatus

Country Status (1)

Country Link
JP (1) JP5803179B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014240106A (en) * 2013-06-12 2014-12-25 セイコーエプソン株式会社 Robot, robot control device, and driving method of robot
CN105883116B (en) * 2016-03-31 2017-11-03 河北科技大学 The optimization method of robot putting position in automatic labeling system
JP7046531B2 (en) * 2017-09-04 2022-04-04 キヤノン株式会社 Robot control method, robot control device, information processing method, information processing device, teaching method, teaching device, manufacturing method of articles using robot control method, program and recording medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0380307A (en) * 1989-08-24 1991-04-05 Toshiba Corp Industrial robot controller
US4999553A (en) * 1989-12-28 1991-03-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Method and apparatus for configuration control of redundant robots
JP3560670B2 (en) * 1995-02-06 2004-09-02 富士通株式会社 Adaptive recognition system
JP4451725B2 (en) * 2004-06-09 2010-04-14 川崎重工業株式会社 Robot motion planning method, robot motion planning device, program, and recording medium
JP4304495B2 (en) * 2004-08-04 2009-07-29 トヨタ自動車株式会社 Route planning method

Also Published As

Publication number Publication date
JP2012196720A (en) 2012-10-18

Similar Documents

Publication Publication Date Title
KR101498835B1 (en) Control method for seven-shaft multi-joint robot, control program, and robot control device
CN210678714U (en) Robot system with mobile robot
US20070030271A1 (en) Robot controller and robot control method using spline interpolation
KR20130066689A (en) Control device and teaching method for seven-shaft multi-joint robot
JP6248544B2 (en) Robot, control device, robot system
JP7237447B2 (en) Information processing method, program, recording medium, information processing device, robot system, and article manufacturing method
JP2019135076A (en) Locus generation method and device
JP2010076074A (en) Robot control method
JP2018158418A (en) Estimation device for load gravity center position of robot and method for estimating load gravity center position of robot
JP5803179B2 (en) Robot control method and robot control apparatus
JP5708091B2 (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
JP6697544B2 (en) Optimizer and vertical articulated robot equipped with the same
WO2020149020A1 (en) Robot control device, robot control method, and robot control program
JP5513146B2 (en) Robot simulator
JP5803178B2 (en) Robot control method and robot control apparatus
JP6050565B2 (en) Robot control method and robot control apparatus
JP2020011317A (en) Gripping posture evaluation device and gripping posture evaluation program
JP5513145B2 (en) Robot posture determination method
JP2012196717A (en) Method and device for controlling robot
JP2006075931A (en) Controlling method of robot
JP7424122B2 (en) Simulation equipment and programs
Cao et al. Novel humanoid dual-arm grinding robot
JP7447568B2 (en) Simulation equipment and programs
WO2022137581A1 (en) Simulation device and simulation program

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150212

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: 20150804

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150817

R150 Certificate of patent or registration of utility model

Ref document number: 5803179

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