JP2011131362A - Control method and control program for seven-axes multi-jointed robot - Google Patents

Control method and control program for seven-axes multi-jointed robot Download PDF

Info

Publication number
JP2011131362A
JP2011131362A JP2009295252A JP2009295252A JP2011131362A JP 2011131362 A JP2011131362 A JP 2011131362A JP 2009295252 A JP2009295252 A JP 2009295252A JP 2009295252 A JP2009295252 A JP 2009295252A JP 2011131362 A JP2011131362 A JP 2011131362A
Authority
JP
Japan
Prior art keywords
joint
axis
equation
solution
wrist
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009295252A
Other languages
Japanese (ja)
Other versions
JP5371733B2 (en
Inventor
Hidenori Tanaka
英紀 田中
Tetsuya Kubota
哲也 久保田
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.)
Kawasaki Heavy Industries Ltd
Original Assignee
Kawasaki Heavy Industries Ltd
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 Kawasaki Heavy Industries Ltd filed Critical Kawasaki Heavy Industries Ltd
Priority to JP2009295252A priority Critical patent/JP5371733B2/en
Publication of JP2011131362A publication Critical patent/JP2011131362A/en
Application granted granted Critical
Publication of JP5371733B2 publication Critical patent/JP5371733B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To avoid sudden changes in the configuration of a seven-axes multi-jointed robot when a wrist position is moved. <P>SOLUTION: A control method for a seven-axes multi-jointed robot includes steps of setting one of seven rotating shafts as a redundant shaft, three of the remaining rotating shafts as base shafts, and one of the three base shafts as a variable shaft, and solving a quadratic equation formalized with respect to a wrist position and the joint angle of the variable shaft to inversely convert the wrist position into the joint angle of the three base shafts, the wrist position being based on a linear distance from a base end to the wrist and on the distance from the base end to the wrist in the direction of extension of the rotating shaft closest to the base end. The steps of specifying and storing one of four first equation-solving arithmetic expressions, based on the initial configuration of the seven-axes multi-jointed robot when power is on, and performing inverse conversion using the stored one first equation-solving arithmetic expression after power is on, are performed to calculate the joint angles of the three base shafts based on the target position of the wrist, to thereby control the action of the seven-axes multi-jointed robot. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、7軸多関節ロボットの制御方法及び制御プログラムに関し、特に手首の位置を移動させる際に7軸多関節ロボットの形態の急激な変化を抑える制御方法及び制御プログラムに関する。   The present invention relates to a control method and a control program for a seven-axis articulated robot, and more particularly to a control method and a control program that suppress a sudden change in the form of the seven-axis articulated robot when the wrist position is moved.

近年、産業用ロボットの制御技術は、コンピュータ技術の進歩に伴って進歩しており、これに伴って産業用ロボットに要求される動作はますます複雑かつ高度化しており、またその精度についてもより高速かつ高精度化が必要とされている。例えば、従来から産業用ロボットとして広く用いられている6軸多関節ロボットの場合、ある決まった位置に移動する用途としては十分であるが、移動空間に存在するさまざまな障害物を巧みに回避しながら複雑な作業を行うことが困難であった。そこで、6軸多関節ロボットに更に1軸(冗長軸)を追加した7軸多関節ロボット(例えば、特許文献1を参照)の開発が近年盛んになってきている。   In recent years, control technology for industrial robots has progressed with the progress of computer technology, and as a result, the operations required for industrial robots have become increasingly complex and sophisticated, and the accuracy of the control technology has also increased. High speed and high precision are required. For example, in the case of a 6-axis articulated robot that has been widely used as an industrial robot in the past, it is sufficient for a purpose of moving to a certain position, but skillfully avoids various obstacles that exist in the moving space. However, it was difficult to perform complicated work. Therefore, development of a 7-axis articulated robot (see, for example, Patent Document 1) in which one axis (redundant axis) is further added to the 6-axis articulated robot has been actively performed in recent years.

7軸多関節ロボットの制御方法としては、従来の6軸多関節ロボットの場合と同様に、ロボットアーム先端の手首の位置がたどるべき経路上の点を順次指示する方法や、当該手首の初期位置及び目標位置のみを指示して途中の経路を問わない方法が用いられている。なお、これらの方法が用いられる場合には、当該手首の位置及び姿勢(手首座標)から各関節角(関節角座標)を求める逆変換(座標変換)が行われる。   As a control method for the 7-axis articulated robot, as in the case of the conventional 6-axis articulated robot, a method for sequentially indicating points on the path to be followed by the wrist position at the tip of the robot arm, or the initial position of the wrist In addition, a method is used in which only the target position is indicated and the route on the way is not questioned. In addition, when these methods are used, inverse transformation (coordinate transformation) for obtaining each joint angle (joint angle coordinate) from the wrist position and posture (wrist coordinate) is performed.

特開平6−315880号公報JP-A-6-315880

ところで、7軸多関節ロボットの場合、6軸多関節ロボットと異なって冗長軸(1軸)が存在するので、同じ手首の位置において逆変換により求められる各関節角は一義的に定まらない。   By the way, in the case of a 7-axis articulated robot, there is a redundant axis (1 axis) unlike a 6-axis articulated robot, so each joint angle obtained by inverse transformation at the same wrist position is not uniquely determined.

このため、手首の位置をある点Aから別の点Bに移動させる場合、例えば点Aと点Bとにおける第1関節の関節角が180°異なるというように、当該点Aの座標に基づく逆変換により求められかつ特定された各関節角と、当該点Bの座標に基づく逆変換により求められかつ特定された各関節角とが大きく乖離してしまい、ロボットの形態が急激に変化するという問題があった。   For this reason, when the wrist position is moved from one point A to another point B, for example, the joint angle of the first joint at point A and point B differs by 180 °, and the reverse based on the coordinates of the point A The problem is that each joint angle obtained and specified by transformation and each joint angle obtained and specified by inverse transformation based on the coordinates of the point B are greatly deviated, and the form of the robot changes rapidly. was there.

なお、特許文献1に開示された技術は、先端制御点の位置や姿勢を元のままで肘の部分を回転させる方法であり、手首の位置を移動させる際にロボットの形態の急激な変化を抑制することについては何ら示唆も開示もされていない。   The technique disclosed in Patent Document 1 is a method of rotating the elbow part while maintaining the position and posture of the tip control point, and when the wrist position is moved, a rapid change in the shape of the robot is performed. There is no suggestion or disclosure about suppression.

本発明は、このような課題を解決するためになされたもので、その目的は、手首の位置を移動させる際にロボットの形態の急激な変化を抑えることである。   The present invention has been made to solve such a problem, and an object thereof is to suppress a rapid change in the form of the robot when the position of the wrist is moved.

上記の課題を解決するための本発明に係る7軸多関節ロボットの制御方法は、先端に設けられた手首と基端から当該手首に向かって順に設けられた7つの関節とを具備し、前記7つの関節が回転軸をそれぞれ有しかつそれぞれの回転軸の周りに次の関節を回転させるように構成された7軸多関節ロボットの制御方法であって、前記7つの回転軸のうちのいずれか1つを冗長軸に、残りの回転軸のうちの3つを基軸に、かつ当該3つの基軸のうちのいずれか1つを変数軸に定め、かつ、前記基端から前記手首までの直線距離と前記基端に最も近い前記回転軸の延在方向における前記基端から前記手首までの距離とに基づく手首の位置と前記変数軸を有した関節の関節角とに関して定式化された4次方程式を解いて前記手首の位置を前記3つの基軸を有した各関節の関節角に逆変換するステップを含み、前記4次方程式は、その4つの解にそれぞれ対応する4つの第1求解演算式を用いて解くことが可能なものであり、かつ、前記7軸多関節ロボットが採り得る形態は、前記4つの解ひいては前記4つの第1求解演算式に対応して定まるものであり、電源オン時に、当該電源オン時における前記7軸多関節ロボットの初期形態に基づいて、前記4つの第1求解演算式のうちいずれか1つを特定して記憶し、前記電源オンの後、前記記憶した1つの第1求解演算式を用いて前記逆変換するステップを遂行して前記手首の目標位置から前記3つの基軸を有した各関節の関節角を算定し、それにより、前記7軸多関節ロボットの動作を制御する、ものである。   A control method of a seven-axis articulated robot according to the present invention for solving the above-described problem includes a wrist provided at a distal end and seven joints provided in order from the proximal end toward the wrist, A control method for a seven-axis articulated robot configured such that each of the seven joints has a rotation axis and the next joint is rotated around each rotation axis. One of them as a redundant axis, three of the remaining rotation axes as a base axis, and any one of the three base axes as a variable axis, and a straight line from the base end to the wrist A fourth order formulated with respect to the wrist position based on the distance and the distance from the base end to the wrist in the extending direction of the rotation axis closest to the base end and the joint angle of the joint having the variable axis Solve the equation to determine the position of the wrist And the step of inversely transforming into joint angles of each joint having the following equation, wherein the quartic equation can be solved by using four first solution calculation equations respectively corresponding to the four solutions, and The form that can be taken by the 7-axis articulated robot is determined in accordance with the four solutions, and thus the four first solution calculation formulas. When the power is turned on, the 7-axis articulated robot is turned on. One of the four first solution calculation formulas is specified and stored based on the initial form, and after the power is turned on, the inverse transformation is performed using the stored one first solution calculation formula And calculating the joint angle of each joint having the three basic axes from the target position of the wrist, thereby controlling the operation of the seven-axis articulated robot.

上記の制御方法であって、前記電源オン時に、前記4つの第1求解演算式を用いて前記4次方程式を解いて前記4つの解を求め、当該4つの解それぞれについて当該電源オン時における前記手首の位置を前記3つの基軸を有した各関節の関節角の少なくともいずれか1つに逆変換し、当該1つの基軸を有した関節の関節角と前記電源オン時の前記7軸多関節ロボットの初期形態に対応する前記3つの基軸のうちの1つを有した関節の関節角とを比較することにより、前記4次方程式の4つの第1求解演算式のうちいずれか1つを特定して記憶する、としてもよい。   In the above control method, when the power is turned on, the four first-order equations are used to solve the quaternary equation to obtain the four solutions, and each of the four solutions is obtained when the power is turned on. The wrist position is inversely transformed into at least one of the joint angles of each joint having the three base axes, and the joint angle of the joint having the one base axis and the 7-axis articulated robot when the power is turned on By comparing with the joint angle of the joint having one of the three basic axes corresponding to the initial form, one of the four first solving equations of the quaternary equation is specified. It is also possible to memorize.

上記の制御方法であって、全ての互いに隣り合う前記関節の回転軸が互いに垂直であり、前記基端から前記手首に向かって順に設けられた7つの関節を、それぞれ、第1関節、第2関節、第7関節、第3関節、第4関節、第5関節、及び第6関節と定義した場合、前記冗長軸は前記第7関節の回転軸であり、前記3つの基軸は前記第1関節の回転軸、前記第2関節の回転軸、及び前記第3関節の回転軸であり、かつ前記変数軸は前記第3関節の回転軸である、としてもよい。   In the above control method, the rotation axes of all the adjacent joints are perpendicular to each other, and seven joints provided in order from the proximal end toward the wrist are respectively a first joint and a second joint. When the joint, the seventh joint, the third joint, the fourth joint, the fifth joint, and the sixth joint are defined, the redundant axis is a rotational axis of the seventh joint, and the three base axes are the first joint. The rotation axis of the second joint, the rotation axis of the third joint, and the rotation axis of the third joint, and the variable axis may be the rotation axis of the third joint.

上記の制御方法によれば、4次方程式の4つの解を求めるための4つの第1求解演算式と、4つの解に応じてとり得る4つの形態とを予め対応付けておき、電源オン時の7軸多関節ロボットの初期形態に基づいて、4つの第1求解演算式のうちいずれか1つを、電源オンより後の逆変換処理において使用する。この結果、手首の位置を目標位置に移動する際に、7軸多関節ロボットの形態の急激な変化を抑えることが可能となる。さらに、電源オン時の7軸多関節ロボットの初期形態を特定するためには、4次方程式の4つの第1求解演算式それぞれについて1回限り演算すればよい。電源オンより後の逆変換処理においては、特定された1つの第1求解演算式以外の残りの3つの第1求解演算式については演算しなくても済むので、逆変換処理に要する演算量を抑えることができ、7軸多関節ロボットの制御の高速化が図られることとなる。   According to the above control method, the four first solution calculation expressions for obtaining four solutions of the quaternary equation are associated in advance with the four forms that can be taken according to the four solutions, and the power is turned on. Based on the initial form of the 7-axis articulated robot, any one of the four first solution calculation formulas is used in the inverse conversion process after the power is turned on. As a result, when the wrist position is moved to the target position, it is possible to suppress a sudden change in the form of the seven-axis articulated robot. Furthermore, in order to specify the initial form of the 7-axis articulated robot when the power is turned on, each of the four first solving equations of the quaternary equation may be calculated only once. In the inverse conversion process after power-on, it is not necessary to calculate the remaining three first solution calculation expressions other than the specified first solution calculation expression. Therefore, the control speed of the 7-axis articulated robot can be increased.

上記の制御方法であって、前記4つの第1求解演算式を用いて前記4次方程式を解く際に、フェラーリの解法に基づいた前記4次方程式を解くための分解方程式として定式化された3次方程式の3つの解に含まれる1つの実数解を求め、かつ当該求めた前記3次方程式の1つの実数解を用いて前記4つの第1求解演算式を演算する、としてもよい。   In the above control method, 3 is formulated as a decomposition equation for solving the quartic equation based on the Ferrari solution when the quartic equation is solved using the four first solving equations. One real solution included in the three solutions of the quadratic equation may be obtained, and the four first solving equations may be calculated using one real solution of the cubic equation obtained.

上記の制御方法であって、前記3次方程式の3つの解に含まれる1つの実数解を求める際に、前記3次方程式の判別式が0又は正の場合には、カルダノの解法により求まる前記3次方程式の1つの実数解と2つの虚数解のうち当該1つの実数解に対応した当該カルダノの解法に基づく第2求解演算式を使用し、前記3次方程式の判別式が負の場合には、ビエタの解法により求まる前記3次方程式の3つの実数解のうち絶対値が同一かつ符号の異なる2つの実数解以外の1つの実数解に対応した当該ビエタの解法に基づく第3求解演算式を使用する、としてもよい。   In the above control method, when one real solution included in three solutions of the cubic equation is obtained, if the discriminant of the cubic equation is 0 or positive, the solution is obtained by the Cardano solution. When the second solution calculation formula based on the Cardano solution corresponding to the one real solution among the one real solution and the two imaginary solutions of the cubic equation is used, and the discriminant of the cubic equation is negative Is a third solving equation based on the Vieta's solution corresponding to one real solution other than two real solutions having the same absolute value and different signs among the three real solutions of the cubic equation obtained by the Vieta's solution May be used.

上記の制御方法によれば、4次方程式を解くためにはフェラーリの解法に基づいた当該4次方程式を解くための分解方程式として定式化された3次方程式を解くことになるが、当該3次方程式であるので3つの解が必ず生じる。よって、3次方程式の3つの解に必ず含まれる1つの実数解を求めるように予めしておけば、4次方程式を解く際に3次方程式の3つの解が無秩序に選ばれることがなくなるので、4次方程式の4つの解を定常的に求めることが可能となる。この結果、7軸多関節ロボットについての急激な変動をさらに抑えることができる。また、3次方程式を解く場合に1つの実数解のみを求めることにしたので、複素数演算をしなくて済み、演算量を抑えることができ、システムへの実装が容易なものとなる。   According to the above control method, in order to solve the quartic equation, the cubic equation formulated as a decomposition equation for solving the quartic equation based on the Ferrari solution is solved. Since it is an equation, there are always three solutions. Therefore, if one real number solution that is always included in the three solutions of the cubic equation is obtained in advance, the three solutions of the cubic equation will not be selected randomly when solving the quartic equation. It is possible to constantly obtain four solutions of the quartic equation. As a result, it is possible to further suppress the rapid fluctuation of the 7-axis articulated robot. Further, since only one real number solution is obtained when solving the cubic equation, it is not necessary to perform complex number calculation, the amount of calculation can be suppressed, and the implementation in the system becomes easy.

上記の課題を解決するための本発明に係る7軸多関節ロボットの制御プログラムは、先端に設けられた手首と基端から当該手首に向かって順に設けられた7つの関節とを具備し、前記7つの関節が回転軸をそれぞれ有しかつそれぞれの回転軸の周りに次の関節を回転させるように構成された7軸多関節ロボットの制御方法をコンピュータに遂行させる、7軸多関節ロボットの制御プログラムであって、前記制御方法は、前記7つの回転軸のうちのいずれか1つを冗長軸に、残りの回転軸のうちの3つを基軸に、かつ当該3つの基軸のうちのいずれか1つを変数軸に定め、かつ、前記基端から前記手首までの直線距離と前記基端に最も近い前記回転軸の延在方向における前記基端から前記手首までの距離とに基づく手首の位置と前記変数軸を有した関節の関節角とに関して定式化された4次方程式を解いて前記手首の位置を前記3つの基軸を有した各関節の関節角に逆変換するステップを含み、前記4次方程式は、その4つの解にそれぞれ対応する4つの第1求解演算式を用いて解くことが可能なものであり、かつ、前記7軸多関節ロボットが採り得る形態は、前記4つの解ひいては前記4つの第1求解演算式に対応して定まるものであり、電源オン時に、当該電源オン時における前記7軸多関節ロボットの初期形態に基づいて、前記4つの第1求解演算式のうちいずれか1つを特定して記憶し、前記電源オンの後、前記記憶した1つの第1求解演算式を用いて前記逆変換するステップを遂行して前記手首の目標位置から前記3つの基軸を有した各関節の関節角を算定し、それにより、前記7軸多関節ロボットの動作を制御する、ものである。   A control program for a seven-axis articulated robot according to the present invention for solving the above-described problem includes a wrist provided at a distal end and seven joints provided in order from the proximal end toward the wrist, Control of a 7-axis articulated robot that causes a computer to perform a control method for a 7-axis articulated robot that is configured to have each of 7 joints have a rotation axis and rotate the next joint around each rotation axis In the program, the control method includes any one of the seven rotating shafts as a redundant shaft, three of the remaining rotating shafts as a base shaft, and any of the three base shafts. Position of the wrist based on a linear distance from the base end to the wrist and a distance from the base end to the wrist in the extending direction of the rotation shaft closest to the base end, with one as a variable axis And the variable axis Solving the quaternary equation formulated with respect to the joint angles of the joints, and converting the wrist position back to the joint angles of the joints having the three basic axes. It can be solved using the four first solving equations corresponding to each of the two solutions, and the form that the seven-axis articulated robot can take is that the four solutions and the four first finding solutions It is determined according to an arithmetic expression, and when the power is turned on, any one of the four first solving equations is specified based on the initial form of the seven-axis articulated robot when the power is turned on. And after the power is turned on, the inverse transformation step is performed using the stored first first solving equation, and the joint angles of the joints having the three base axes from the target position of the wrist And thereby Controlling the operation of the 7 shaft articulated robot is intended.

手首の位置を移動する際に7軸多関節ロボットの形態の急激な変化を抑制することができる。   When moving the position of the wrist, a rapid change in the form of the seven-axis articulated robot can be suppressed.

図1は、本発明の実施の形態に係る7軸多関節ロボットとロボット制御装置とによるロボットシステムの構成を示した図である。FIG. 1 is a diagram showing a configuration of a robot system including a seven-axis articulated robot and a robot control device according to an embodiment of the present invention. 図2は、図1に示した7軸多関節ロボットのリンク構造を模式的に表した図である。FIG. 2 is a diagram schematically showing the link structure of the seven-axis articulated robot shown in FIG. 図3は、4次方程式の4つの第1求解演算式のいずれか1つを特定する処理の流れを表すフローチャートである。FIG. 3 is a flowchart showing a flow of processing for specifying any one of the four first solving equations for the quaternary equation. 図4は、記憶された4次方程式の4つの求解方程式のうちのいずれか1つを用いて実行される逆変換処理の流れを示すフローチャートである。FIG. 4 is a flowchart showing the flow of the inverse transformation process executed using any one of the four solution equations of the stored quartic equation. 図5は、6軸多関節ロボットの第2関節と第3関節との間に第7関節が設けられた7軸多関節ロボットの構成を示した図である。FIG. 5 is a diagram illustrating a configuration of a seven-axis articulated robot in which a seventh joint is provided between the second joint and the third joint of the six-axis articulated robot. 図6は、4次方程式の4つの解に応じて採り得る7軸多関節ロボットの4つの形態を示した図である。FIG. 6 is a diagram showing four forms of a seven-axis articulated robot that can be taken according to four solutions of a quartic equation.

以下、本発明の好ましい実施の形態を、図面を参照しながら説明する。なお、以下では全ての図を通じて同一又は相当する要素には同一の参照符号を付して、その重複する説明を省略する。   Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings. In the following description, the same or corresponding elements are denoted by the same reference symbols throughout the drawings, and redundant description thereof is omitted.

(本発明の概念)
最初に本発明の概念を説明する。
(Concept of the present invention)
First, the concept of the present invention will be described.

図5は、基端から先端の手首に向って順に第1乃至第6回転軸A1乃至A6を有した第1乃至第6関節JT1乃至JT6を具備する6軸多関節ロボットにおいて、第2関節JT2(第2回転軸A2)と第3関節JT3(第3回転軸A3)との間に第7回転軸JT7を有した第7関節JT7を設けた場合の7軸多関節ロボット100の構成を示した図である。なお、図5において、7軸多関節ロボット100の手首を構成する第4乃至第6関節JT4〜JT6(手首軸:第4乃至第6回転軸A4〜A6)は、図面から省略している。   FIG. 5 shows a second joint JT2 in a six-axis articulated robot having first to sixth joints JT1 to JT6 having first to sixth rotation axes A1 to A6 in order from the proximal end to the wrist at the distal end. 7 shows a configuration of a seven-axis articulated robot 100 when a seventh joint JT7 having a seventh rotation axis JT7 is provided between the (second rotation axis A2) and the third joint JT3 (third rotation axis A3). It is a figure. In FIG. 5, the fourth to sixth joints JT4 to JT6 (wrist axis: fourth to sixth rotation axes A4 to A6) constituting the wrist of the seven-axis articulated robot 100 are omitted from the drawing.

7軸多関節ロボット100を対象とした逆変換を行う場合、手首の姿勢を規定する手首軸(A4〜A6)はひとまず無視しておき、当該手首の位置を規定する残りの4つの回転軸A1、A2、A7、A3のうち、1つの回転軸(例えば、第7回転軸A7)を冗長軸とし、かつ残りの3つの回転軸(例えば、第1乃至第3回転軸A1〜A3)を基軸とし、当該基軸を有した各関節の関節角を未知変数として取り扱う手法が考えられる。   When the inverse transformation is performed on the 7-axis articulated robot 100, the wrist axes (A4 to A6) that define the wrist posture are ignored for the time being, and the remaining four rotation axes A1 that define the position of the wrist. , A2, A7, A3, one rotating shaft (for example, the seventh rotating shaft A7) is a redundant shaft, and the remaining three rotating shafts (for example, the first to third rotating shafts A1 to A3) are the base shafts. And a method of handling the joint angle of each joint having the base axis as an unknown variable is conceivable.

ここで、図5に示す通り、基準座標系(XYZ座標系)における原点O(0,0,0)と7軸多関節ロボット100の手首の位置Pとの間の直線距離をRh、当該基準座標系における手首の位置PのZ軸方向の距離(基端に最も近い第1回転軸の延在方向における基端から手首までの距離)をZhとして表すこととする。さらに、基準座標系における手首の位置Pを(Xp,Yp,Zp)と表したときに、Rh及びZhについて次式が成立する。   Here, as shown in FIG. 5, the linear distance between the origin O (0, 0, 0) in the reference coordinate system (XYZ coordinate system) and the wrist position P of the 7-axis articulated robot 100 is Rh, and the reference The distance in the Z-axis direction of the wrist position P in the coordinate system (the distance from the base end to the wrist in the extending direction of the first rotation axis closest to the base end) is expressed as Zh. Further, when the wrist position P in the reference coordinate system is expressed as (Xp, Yp, Zp), the following equations are established for Rh and Zh.

Rh=Xp+Yp+Zp・・・式(1−1)
Zh=Zp ・・・式(1−2)
また、Rh、Zhは、上記の式(1−1)及び(1−2)とは別に、7軸多関節ロボット100の各リンク長と第1乃至第3及び第7回転軸A1〜A3、A7を有した第1乃至第3及び第7関節JT1〜JT3、JT7の関節角θ1、θ2、θ3、θ7を用いて表すことができる。
Rh 2 = Xp 2 + Yp 2 + Zp 2 (1)
Zh = Zp Formula (1-2)
Rh and Zh are the link lengths of the seven-axis articulated robot 100 and the first to third and seventh rotation axes A1 to A3, separately from the above formulas (1-1) and (1-2). This can be expressed by using the joint angles θ1, θ2, θ3, θ7 of the first to third and seventh joints JT1 to JT3, JT7 having A7.

よって、これらの式を整理すると、次式の通り変数t(=tanθ3)についての4次方程式を得ることが出来る。   Therefore, when these equations are arranged, a quaternary equation for the variable t (= tan θ3) can be obtained as follows.

+a・t+b・t+c・t+d=0 ・・・(2)
なお、式(2)の4次方程式における変数tの解は、以下の4つの第1求解演算式(3−1)〜(3−4)から求められる解t1、t2、t3、t4の計4通り存在する。
t 4 + a · t 3 + b · t 2 + c · t + d = 0 (2)
Note that the solution of the variable t in the quaternary equation of Equation (2) is the sum of the solutions t1, t2, t3, and t4 obtained from the following four first solving equations (3-1) to (3-4). There are four ways.

t1=(−M1−(M1−4・N1)0.5)/2−a/4 ・・・(3−1)
t2=(−M1+(M1−4・N1)0.5)/2−a/4 ・・・(3−2)
t3=(−M2−(M2−4・N2)0.5)/2−a/4 ・・・(3−3)
t4=(−M2+(M2−4・N2)0.5)/2−a/4 ・・・(3−4)
よって、4つの解t1乃至t4それぞれについて“θ3(n)=atan(t(n)):但し、n=1〜4”を算定することにより、関節角θ3として4つの解θ3(1)、θ3(2)、θ3(3)、θ3(4)を得ることができる。なお、関節角θ3が求まれば、関節角θ1及び関節角θ2についても一義的に求められるので、関節角θ3の4つの解θ3(1)、θ3(2)、θ3(3)、θ3(4)に対応した関節角θ1の4つの解θ1(n)(但し、n=1〜4)及び関節角θ2の4つの解θ2(n)(但し、n=1〜4)が求められる。この結果、同一の手首の位置Pであっても、7軸多関節ロボット100の形態としては、図6に示されるような4つの形態が考えられるので、7軸多関節ロボット100の合理的な動作が行われるためには、7軸多関節ロボットの形態の急激な変化を抑えることが求められる。
t1 = (− M1− (M1 2 −4 · N1) 0.5 ) / 2−a / 4 (3-1)
t2 = (− M1 + (M1 2 −4 · N1) 0.5 ) / 2−a / 4 (3-2)
t3 = (-M2- (M2 2 -4 · N2) 0.5 ) / 2-a / 4 (3-3)
t4 = (− M2 + (M2 2 −4 · N2) 0.5 ) / 2−a / 4 (3-4)
Therefore, by calculating “θ3 (n) = atan (t (n)): where n = 1 to 4” for each of the four solutions t1 to t4, the four solutions θ3 (1), θ3 (2), θ3 (3), and θ3 (4) can be obtained. If the joint angle θ3 is obtained, the joint angle θ1 and the joint angle θ2 are also obtained uniquely, so the four solutions θ3 (1), θ3 (2), θ3 (3), θ3 ( Four solutions θ1 (n) (where n = 1 to 4) of the joint angle θ1 corresponding to 4) and four solutions θ2 (n) (where n = 1 to 4) of the joint angle θ2 are obtained. As a result, even if the wrist position P is the same, there are four possible forms of the 7-axis articulated robot 100 as shown in FIG. In order to perform the operation, it is required to suppress a rapid change in the form of the seven-axis articulated robot.

ところで、式(2)の4次方程式の4つの解t1乃至t4に関する第1求解演算式(式(3−1)〜式(3−4))の中で、M1、M2、N1、N2は、式(2)の4次方程式の左辺中の(a,b,c,d)、及び4次方程式の「フェラーリの解法」に基づいた式(2)の4次方程式の分解方程式である3次方程式の解uによって求められる。なお、この3次方程式は、
p=−3a/8+b ・・・(4−1)
q=a/8−ab/2+c ・・・(4−2)
r=−3a/256+ab/16−ac/4+d ・・・(4−3)
とおいた場合に、次式のように、変数yについての3次方程式として表される。
By the way, in the first solution calculation formula (formula (3-1) to formula (3-4)) regarding the four solutions t1 to t4 of the quaternary equation of formula (2), M1, M2, N1, and N2 are , (A, b, c, d) in the left side of the quaternary equation of equation (2), and the decomposition equation of the quaternary equation of equation (2) based on “Ferrari's solution” of the quaternary equation 3 It is obtained by a solution u of the following equation. This cubic equation is
p = -3a 2/8 + b ··· (4-1)
q = a 3 / 8−ab / 2 + c (4-2)
r = -3a 4/256 + a 2 b / 16-ac / 4 + d ··· (4-3)
Is expressed as a cubic equation for the variable y, as in the following equation.

8y−4py−8ry+4pr−q=0 ・・・(5)
しかしながら、式(5)の3次方程式の解としてu1、u2、u3の3つが得られるので、これらの解u1乃至u3のうちどの解が用いられても、式(2)の4次方程式の解t1、t2、t3、t4を求めることができるという問題が生じる。そこで、式(5)の3次方程式を解く機会毎に、3つの解u1、u2、u3のうち異なるものが用いられてしまうと、式(2)の4次方程式の4つの解t1、t2、t3、t4の組合せが変化するという問題が発生する。
8y 3 -4py 2 -8ry + 4pr-q 2 = 0 (5)
However, since three solutions of u1, u2, and u3 are obtained as solutions of the cubic equation of equation (5), no matter which of these solutions u1 to u3 is used, the quaternary equation of equation (2) There arises a problem that the solutions t1, t2, t3, and t4 can be obtained. Therefore, if different ones of the three solutions u1, u2, and u3 are used every time the cubic equation of Equation (5) is solved, the four solutions t1 and t2 of the quaternary equation of Equation (2) are used. , T3, t4 change in combination.

例えば、以下の表1は式(5)の3次方程式の3つの解u1、u2、u3それぞれを用いたときの式(2)の4次方程式の4つの解t1、t2、t3、t4から得られる関節角θ3の組合せの例を示した表である。表1において、式(5)の3次方程式の解u1を採用した場合、式(2)の4次方程式の4つの解t1、t2、t3、t4から得られる関節角θ3の組合せは(−43°,51°,−20°,28°)である。一方、3次方程式の解u2を採用した場合、4次方程式の4つの解t1、t2、t3、t4から得られる関節角θ3の組合せは(−43°,−20°,51°,28°)であり、3次方程式の解u1を採用した場合と比べて、4次方程式の解t2、t3に対応する関節角θ3が真逆になっている。あるいは、3次方程式の解u3を採用した場合、4次方程式の解t1、t2、t3、t4から得られる関節角θ3の組合せは(−43°,−20°,51°,28°)であり、3次方程式の解u1を採用した場合と比べて、4次方程式の解t1、t4に対応する関節角θ3が真逆になっている。   For example, Table 1 below shows from four solutions t1, t2, t3, and t4 of the quaternary equation of Equation (2) when each of the three solutions u1, u2, and u3 of the cubic equation of Equation (5) is used. It is the table | surface which showed the example of the combination of joint angle (theta) 3 obtained. In Table 1, when the solution u1 of the cubic equation of equation (5) is adopted, the combination of the joint angles θ3 obtained from the four solutions t1, t2, t3, t4 of the quaternary equation of equation (2) is (− 43 °, 51 °, −20 °, 28 °). On the other hand, when the solution u2 of the cubic equation is adopted, the combination of the joint angles θ3 obtained from the four solutions t1, t2, t3, and t4 of the quaternary equation is (−43 °, −20 °, 51 °, 28 °). ), And the joint angle θ3 corresponding to the solutions t2 and t3 of the quaternary equation is directly opposite to the case where the solution u1 of the cubic equation is employed. Alternatively, when the solution u3 of the cubic equation is adopted, the combination of the joint angles θ3 obtained from the solutions t1, t2, t3, and t4 of the quaternary equation is (−43 °, −20 °, 51 °, 28 °). Yes, compared to the case where the solution u1 of the cubic equation is adopted, the joint angle θ3 corresponding to the solutions t1 and t4 of the quartic equation is opposite.

Figure 2011131362
Figure 2011131362

従って、式(5)の3次方程式における3つの解u1、u2、u3の中で常に同じ解(例えば、解u1)を採用し続け、かつ式(2)の4次方程式における4つの解t1、t2、t3、t4の中で常に同じ解(例えば、解t1)を採用し続けなければ、7軸多関節ロボット100の形態が大きく変化してしまう。詳述すると、表1はある手首位置Pxに対応する3つの解u1〜u3毎の4つの解t1、t2、t3、t4を表しているものとし、かつ手首位置Pxに関して4つの解t1〜t4の中から例えば解t1が選択されたものとする。この場合において、手首位置Pxから少しずれた手首位置Pyについて4つの解t1〜t4を演算により求めたところ、表1に示される値はそれぞれ少しずつずれた値となる。手首位置Pyに関し、手首位置Pxの場合と同様に解t1(少しずつずれた値)を選択すれば問題ない。しかし、解t1(少しずつずれた値)以外の例えば解t2(少しずつずれた値)を選択したとすると、関節角θ3、及びこの関節角θ3を用いて算出される関節角θ1、θ2の値が手首位置Pxのときの値と大きく異なってしまう。この結果、第1乃至第3関節JT1〜JT3及び第7関節JT7の移動量が大きくなるので、このような事態を避ける必要がある。   Therefore, the same solution (for example, solution u1) is always adopted among the three solutions u1, u2, and u3 in the cubic equation of Equation (5), and the four solutions t1 in the quaternary equation of Equation (2) are used. , T2, t3, and t4, unless the same solution (for example, the solution t1) is always used, the form of the seven-axis articulated robot 100 is greatly changed. More specifically, Table 1 represents four solutions t1, t2, t3, and t4 for every three solutions u1 to u3 corresponding to a wrist position Px, and four solutions t1 to t4 with respect to the wrist position Px. For example, it is assumed that the solution t1 is selected from among the above. In this case, when four solutions t1 to t4 are obtained by calculation for the wrist position Py slightly shifted from the wrist position Px, the values shown in Table 1 are slightly shifted from each other. As for the wrist position Py, there is no problem if the solution t1 (value slightly shifted) is selected as in the wrist position Px. However, if, for example, a solution t2 (value slightly shifted) other than the solution t1 (value slightly shifted) is selected, the joint angle θ3 and the joint angles θ1 and θ2 calculated using the joint angle θ3 are selected. The value is greatly different from the value at the wrist position Px. As a result, the movement amounts of the first to third joints JT1 to JT3 and the seventh joint JT7 increase, and it is necessary to avoid such a situation.

そこで、7軸多関節ロボット100の形態の急激な変化を抑えるための方法の一つとして、各関節角の条件(±90°以内であるか等)やその組合せに基づいて図6に示すような4つの形態の中で今どの形態となっているのかを常時把握するようにし、かつその把握した形態が得られるような一つの解を4つの解t1、t2、t3、t4の中から選択するという制御方法が考えられる。しかしながら、逆変換処理が行われる毎に、上記のような複雑な条件の判別が必要となり、逆変換処理が複雑になるという問題が生じる。   Therefore, as one of the methods for suppressing the rapid change in the form of the seven-axis articulated robot 100, as shown in FIG. 6 based on the condition of each joint angle (eg, within ± 90 °) or the combination thereof. It is always possible to grasp which form is present among the four forms, and one solution that can obtain the grasped form is selected from the four solutions t1, t2, t3, and t4 A control method is possible. However, each time the inverse transformation process is performed, it is necessary to determine the complicated conditions as described above, which causes a problem that the inverse transformation process becomes complicated.

その他の方法としては、式(2)の4次方程式を解くために必要となる式(5)の3次方程式の3つの解u1、u2、u3の中から常時同じ解(例えば、解u1)を採用することで、4つの第1求解演算式(式(3−1)乃至式(3−4))と図6に示すような4つの形態とをあらかじめ1対1に対応付けておくという方法が考えられる。しかしながら、この場合には、式(5)の3次方程式の解法として複素数を取り扱う必要が生じてくるので、システムへの実装が困難なものとなる。   As another method, the same solution (for example, solution u1) is always selected from the three solutions u1, u2, and u3 of the cubic equation of Equation (5) required for solving the quartic equation of Equation (2). By adopting, the four first solving equations (formulas (3-1) to (3-4)) and the four forms as shown in FIG. A method is conceivable. However, in this case, since it becomes necessary to handle complex numbers as a solution of the cubic equation of Equation (5), implementation in the system becomes difficult.

そこで、本発明者は、4つの第1求解演算式(式(3−1)乃至式(3−4))と図6に示すような4つの形態とをあらかじめ1対1に対応付けるとともに、式(5)の3次方程式について常に同じ解を採用し続ける方法として、3次方程式の解法として広く知られている「カルダノの解法」と「ビエタの解法」とを使い分けることを考えた。両者の解法は、ともに3つの解を得ることができるが、次の表2に示すように、3次方程式の判別式Dの条件(0より小、0と等しい、0より大)によっては負の√演算、つまり複素数演算を要する場合がある。なお、3次方程式の判別式Dの条件としては、次の3つの条件C1、C2、C3が挙げられる。   Therefore, the present inventor preliminarily associates the four first solving calculation expressions (formulas (3-1) to (3-4)) with the four forms as shown in FIG. As a method of always adopting the same solution for the cubic equation (5), we considered using the “Cardano solution” and the “Vieta solution”, which are widely known as the solution of the cubic equation. Both solutions can obtain three solutions. However, as shown in the following Table 2, depending on the condition of the discriminant D of the cubic equation (less than 0, equal to 0, greater than 0), it may be negative. √ operation, that is, complex number operation may be required. As the conditions of the discriminant D of the cubic equation, there are the following three conditions C1, C2, and C3.

条件C1(D<0):3つの実数解が得られる
条件C2(D=0):1つの実数解(3重解)が得られる
条件C3(D>0):1つの実数解と2つの虚数解(共役複素数)が得られる
Condition C1 (D <0): Three real solutions are obtained Condition C2 (D = 0): One real solution (triple solution) is obtained Condition C3 (D> 0): One real solution and two real solutions Imaginary solution (conjugate complex number) is obtained

Figure 2011131362
Figure 2011131362

表2に示すとおり、「カルダノの解法」を採用した場合、条件C1の場合には3つの実数解u1〜u3の全てにおいて負の√演算(複素数演算)が必要であり、条件C3の場合には2つの虚数解u2、u3において負の√演算が必要となり、かつ条件C2の場合には負の√演算が不要となるという特徴がある。   As shown in Table 2, when the “cardano solution” is adopted, in the case of the condition C1, a negative √ operation (complex number operation) is required in all three real number solutions u1 to u3, and in the case of the condition C3 Is characterized in that a negative √ operation is required for the two imaginary solutions u2 and u3, and a negative √ operation is not required in the case of the condition C2.

「ビエタの解法」を採用した場合、条件C2の場合には3重解である実数解u1において負の√演算が必要となる場合があり、条件C3の場合には全ての解(実数解u1、虚数解u2、u3)において負の√演算が必要となる場合があり、かつ条件C1の場合には負の√演算が不要となるという特徴がある。   When the “Vieta's solution” is adopted, a negative √ operation may be required in the real solution u1 that is a triple solution in the case of the condition C2, and all solutions (the real solution u1 in the case of the condition C3). In the imaginary solution u2, u3), a negative √ operation may be required, and in the case of the condition C1, the negative √ operation is unnecessary.

7軸多関節ロボットを制御するロボット制御装置の制御プログラム上、負の√演算を演算することは複雑かつ困難であるので、「カルダノの解法」と「ビエタの解法」とを上手く使い分ける必要がある。そこで、本出願人は、条件C2と条件C3との場合には、負の√演算を要さずに実数解u1が求められる「カルダノの解法」を用いればよいことに気付いた。   Since it is complicated and difficult to calculate the negative √ operation in the control program of the robot controller that controls the 7-axis articulated robot, it is necessary to use “Cardano's solution” and “Vieta's solution” properly. . Therefore, the present applicant has realized that in the case of the conditions C2 and C3, it is sufficient to use the “Cardano solution” in which the real solution u1 is obtained without requiring a negative √ operation.

一方、条件C1の場合には、負の√演算を必要としない「ビエタの解法」を用いればよいことになるが、この場合、3つの実数解(u1〜u3)が求められるので、それらの3つの実数解から1つの実数解を選定する必要がある。さらに、ロボットの形態変化を抑えるべく条件C1〜C3のいずれが成立しても常に同一の解u1を採用し続ける必要があるため、「ビエタの解法」により求められた3つの実数解(u1〜u3)のうちのどの解が「カエダノの解法」により求められた1つの実数解u1と対応づけられたものであるかを判断する必要がある。そこで、実数解u2と実数解u3は±が異なるものの絶対値が同じであるという特徴を利用して、両者ではない解を実数解u1として採用することとした。   On the other hand, in the case of the condition C1, it is sufficient to use a “Vieta's solution” that does not require a negative √ operation. In this case, three real solutions (u1 to u3) are obtained. One real solution needs to be selected from the three real solutions. Furthermore, since it is necessary to always use the same solution u1 regardless of which of the conditions C1 to C3 is satisfied in order to suppress a change in the form of the robot, the three real solutions (u1 to u1) obtained by the “Vieta's solution” are used. It is necessary to determine which solution of u3) is associated with one real solution u1 obtained by the “Caedano solution”. Therefore, the real number solution u2 and the real number solution u3 are different from each other but have the same absolute value, and a solution that is not both is adopted as the real number solution u1.

この結果、3次方程式の判別式Dの条件C1〜C3のいずれが成立しても、負の√演算が行われずに済み、かつ条件C1〜C3のいずれが成立しても同一の実数解u1が常時求められることとなる。さらに、この実数解u1を常時採用して4次方程式の4つの解t1、t2、t3、t4の組合せが求められることになるので、7軸多関節ロボットの形態の急激な変化が抑制される。   As a result, any of the conditions C1 to C3 of the discriminant D of the cubic equation is satisfied, the negative √ operation is not performed, and the same real number solution u1 regardless of which of the conditions C1 to C3 is satisfied. Is always required. Furthermore, since this real number solution u1 is always employed and a combination of four solutions t1, t2, t3, and t4 of the quaternary equation is obtained, a sudden change in the form of the 7-axis articulated robot is suppressed. .

(実施の形態)
次に、上述の本発明の概念に基づく本発明の実施の形態を説明する。
[ロボットシステムの構成]
図1は、本発明の実施の形態に係る7軸多関節ロボットとロボット制御装置とによるロボットシステムの構成を示した図である。図2は、図1に示した7軸多関節ロボット100のリンク構造を模式的に表した図である。
(Embodiment)
Next, an embodiment of the present invention based on the above-described concept of the present invention will be described.
[Robot system configuration]
FIG. 1 is a diagram showing a configuration of a robot system including a seven-axis articulated robot and a robot control device according to an embodiment of the present invention. FIG. 2 is a diagram schematically showing the link structure of the seven-axis articulated robot 100 shown in FIG.

図1及び図2に示すように、7軸多関節ロボット100は、先端に設けられた手首と所定の基端から当該手首に向かって順に設けられた7つの関節JT1〜JT7とを具備し、7つの関節JT1〜JT7が第1乃至第7回転軸A1〜A7をそれぞれ有しかつそれぞれの回転軸の周りに次の関節を回転させるように構成されている。なお、本実施の形態においては、7軸多関節ロボット100は、基台2が作業スペース下側の床面に設置される所謂床置き型の垂直多関節ロボットとして構成されている。さらに、7軸多関節ロボット100は、基端から手首に向って順に設けられた6つの関節JT1〜JT6を具備し、6つの関節JT1〜JT6が第1乃至第6回転軸A1〜A6をそれぞれ有し、かつそれぞれの回転軸の周りに次の関節を回転させるように構成された6軸多関節ロボットにおいて、第2関節JT2(第2回転軸A2)と第3関節JT3(第3回転軸A3)との間に第7関節JT7(第7回転軸A7)が設けられ、第7関節JT7の第7回転軸A7は第2回転軸A2及び第3回転軸A3に対して垂直であることにより構成されている。   As shown in FIGS. 1 and 2, the 7-axis articulated robot 100 includes a wrist provided at the tip and seven joints JT1 to JT7 provided in order from a predetermined base end toward the wrist, Seven joints JT1 to JT7 have first to seventh rotation axes A1 to A7, respectively, and are configured to rotate the next joint around each rotation axis. In the present embodiment, the seven-axis articulated robot 100 is configured as a so-called floor-standing vertical articulated robot in which the base 2 is installed on the floor surface below the work space. Further, the seven-axis articulated robot 100 includes six joints JT1 to JT6 provided in order from the base end to the wrist, and the six joints JT1 to JT6 respectively have the first to sixth rotation axes A1 to A6. In the 6-axis multi-joint robot having the rotation and the next joint around each rotation axis, the second joint JT2 (second rotation axis A2) and the third joint JT3 (third rotation axis) A seventh joint JT7 (seventh rotation axis A7) is provided between the third rotation axis A7 and the seventh rotation axis A7 of the seventh joint JT7 is perpendicular to the second rotation axis A2 and the third rotation axis A3. It is comprised by.

なお、7つの関節及び7つの回転軸に付与された符号は便宜上付したものであり、7つの関節及び7つの回転軸それぞれを識別可能であれば如何なる符号であってもよい。   In addition, the code | symbol provided to seven joints and seven rotating shafts was attached | subjected for convenience, and what code | symbol may be sufficient as long as each of seven joints and seven rotating shafts can be identified.

本実施の形態では、後述するX0軸、Y0軸、Z0軸による直交座標系を「基準座標系」と呼び、これをΣ0と表記する。また、後述するX6軸、Y6軸、Z6軸による直交座標系を「手首座標系」と呼び、これをΣRと表記する。Σ0の原点に対するΣR原点のX0軸、Y0軸、Z0軸方向への変位を「手首位置」と呼び、Σ0に対するΣRのX0軸、Y0軸、Z0軸周りの角変位を「手首姿勢」と呼ぶこととする。   In the present embodiment, an orthogonal coordinate system based on the X0 axis, the Y0 axis, and the Z0 axis, which will be described later, is referred to as a “reference coordinate system”, which is denoted as Σ0. Further, an orthogonal coordinate system based on an X6 axis, a Y6 axis, and a Z6 axis, which will be described later, is referred to as a “wrist coordinate system” and is denoted as ΣR. The displacement of the ΣR origin in the X0, Y0, and Z0 axis directions relative to the Σ0 origin is called “wrist position”, and the angular displacement of the ΣR relative to Σ0 around the X0, Y0, and Z0 axes is called “wrist posture”. I will do it.

また、ロボット先端のことを「手先」と呼ぶ。本実施の形態では、ツール部材11の先端が手先となる。また、主に手首姿勢に影響を及ぼす部分を「手首」と呼ぶこととすると、図1に示す7軸多関節ロボット100においては、後述のようにΣRの原点は第4乃至第6回転軸A4乃至A6が一点で交わった点とされているので、第4乃至第6関節JT4乃至JT6に関する部分が手首となる。他方、手首位置に影響を及ぼすのは第1乃至第3関節JT1乃至JT3、及び第7関節JT7に関する部分である。「手首」には、アタッチメント、ハンド、ツール、エンドエフェクタ等が含まれる。なお、本実施の形態において、「手首」は後述の手首装置10に対応している。   The tip of the robot is called “hand”. In the present embodiment, the tip of the tool member 11 is the tip. Also, assuming that the portion that mainly affects the wrist posture is called “wrist”, in the seven-axis articulated robot 100 shown in FIG. 1, the origin of ΣR is the fourth to sixth rotation axes A4 as described later. Since A6 to A6 intersect at a single point, the portion related to the fourth to sixth joints JT4 to JT6 is the wrist. On the other hand, it is the portion related to the first to third joints JT1 to JT3 and the seventh joint JT7 that affects the wrist position. “Wrist” includes attachments, hands, tools, end effectors, and the like. In the present embodiment, “wrist” corresponds to a wrist device 10 described later.

ΣRにおける手先位置を把握しておけば、手首位置及び手首姿勢が与えられた場合に、Σ0における手先位置を求めることができる。また、手首姿勢、Σ0における手先位置及び冗長軸の角度が与えられた場合に、これを実現するような第1乃至第6関節JT1乃至JT6の関節角θ1乃至θ6を求めることができる。   If the hand position at ΣR is grasped, the hand position at Σ0 can be obtained when the wrist position and the wrist posture are given. Further, when the wrist posture, the hand position at Σ0, and the angle of the redundant axis are given, the joint angles θ1 to θ6 of the first to sixth joints JT1 to JT6 that can realize this can be obtained.

なお、本実施の形態においては、三軸交点は、手首軸としての第4乃至第6回転軸A4乃至A6の3軸が交わった一点に対応している。三軸交点の特徴としては、ツール部材11に対する三軸交点の位置はツール部材11とアーム部材8との相対角(すなわち、第6回転軸A6の回転角)と無関係に一定であり、アーム部材6に対する三軸交点の位置についてもアーム部材6とアーム部材7との相対角(すなわち、第4回転軸A4の回転角)とは無関係に一定である。このようにすれば、手先(ツール部材11の先端)の所望の位置・姿勢が与えられた場合に、手首軸の位置を実現する手首軸以外の残りの軸を決定した上で、当該手先の所望の位置・姿勢を実現するような手首軸を決定できるという利点がある。   In the present embodiment, the triaxial intersection corresponds to one point where the four axes of the fourth to sixth rotation axes A4 to A6 as wrist axes intersect. As a feature of the three-axis intersection, the position of the three-axis intersection with respect to the tool member 11 is constant regardless of the relative angle between the tool member 11 and the arm member 8 (that is, the rotation angle of the sixth rotation axis A6). 6 is also constant regardless of the relative angle between the arm member 6 and the arm member 7 (that is, the rotation angle of the fourth rotation axis A4). In this way, when a desired position / posture of the hand (tip of the tool member 11) is given, after determining the remaining axis other than the wrist axis that realizes the position of the wrist axis, There is an advantage that it is possible to determine a wrist axis that realizes a desired position and posture.

基台2には、旋回台3、アーム部材(リンク)4、5、6、7、8、及びアタッチメント9がこの順に連設されている。なお、アタッチメント9の先端を成すフランジ面には、各種の作業内容に応じて適宜選択されたツール部材11が着脱可能に取り付けられている。基台2からアタッチメント9までの連設された部材2〜9は互いに相対回転可能となるよう連結されている。   On the base 2, a swivel base 3, arm members (links) 4, 5, 6, 7, 8 and an attachment 9 are connected in this order. A tool member 11 appropriately selected according to various work contents is detachably attached to the flange surface forming the tip of the attachment 9. The continuous members 2 to 9 from the base 2 to the attachment 9 are connected so as to be rotatable relative to each other.

詳述すると、基台2と旋回台3との連結部である第1関節JT1において基台2に対する旋回台3の第1回転軸A1周りの回転(旋回)が許容されている。なお、基台2の上面中央部には基端として基準座標系(X0軸、Y0軸、Z0軸による直交座標系)の原点O(0,0,0)が設定されている(図2参照)。また、第1関節JT1には、当該第1関節JT1の関節座標系(X1軸、Y1軸、Z1軸による直交座標系)が設定されている。   More specifically, rotation (turning) around the first rotation axis A <b> 1 of the turntable 3 with respect to the base 2 is allowed in the first joint JT <b> 1 that is a connecting portion between the base 2 and the turntable 3. Note that the origin O (0, 0, 0) of the reference coordinate system (orthogonal coordinate system based on the X0 axis, the Y0 axis, and the Z0 axis) is set as the base end at the center of the upper surface of the base 2 (see FIG. 2). ). The first joint JT1 is set with a joint coordinate system of the first joint JT1 (orthogonal coordinate system based on the X1, Y1, and Z1 axes).

旋回台3の上端部とアーム部材4の一端部との連結部である第2関節JT2において旋回台3に対するアーム部材4の第2回転軸A2周りの回転(回動)が許容されている。なお、第2関節JT2には、当該第2関節JT2の関節座標系(X2軸、Y2軸、Z2軸による直交座標系)が設定されている。ここで、基準座標系における第2関節JT2のZ軸方向の距離(以下、第1リンク長と呼ぶ)をL0と表すこととする。また、基準座標系における第1関節JT1と第2関節JT2との間におけるY軸方向の距離(以下、第2リンク長と呼ぶ)をL1と表すこととする。   In the second joint JT2, which is a connecting portion between the upper end portion of the swivel base 3 and one end portion of the arm member 4, rotation (turning) of the arm member 4 around the second rotation axis A2 with respect to the swivel base 3 is allowed. The second joint JT2 is set with a joint coordinate system (orthogonal coordinate system based on the X2, Y2, and Z2 axes) of the second joint JT2. Here, the distance in the Z-axis direction of the second joint JT2 in the reference coordinate system (hereinafter referred to as the first link length) is represented as L0. Further, a distance in the Y-axis direction (hereinafter referred to as a second link length) between the first joint JT1 and the second joint JT2 in the reference coordinate system is represented as L1.

アーム部材4の他端部とアーム部材5の一端部との連結部である第7関節JT7においてアーム部材4に対するアーム部材5の第7回転軸A7周りの回転(旋回)が許容されている。なお、第7関節JT7には、当該第7関節JT7の関節座標系(X7軸、Y7軸、Z7軸による直交座標系)が設定されている。   In the seventh joint JT7, which is a connecting portion between the other end portion of the arm member 4 and one end portion of the arm member 5, rotation (turning) around the seventh rotation axis A7 of the arm member 5 with respect to the arm member 4 is allowed. The seventh joint JT7 is set with the joint coordinate system of the seventh joint JT7 (orthogonal coordinate system based on the X7 axis, the Y7 axis, and the Z7 axis).

アーム部材5の他端部とアーム部材6の一端部との連結部である第3関節JT3においてアーム部材5に対するアーム部材6の第3回転軸A3周りの回転(回動)が許容されている。なお、第3関節JT3には、当該第3関節JT3の関節座標系(X3軸、Y3軸、Z3軸による直交座標系)が設定されている。ここで、基準座標系における第2関節JT2と第3関節JT3との間におけるZ軸方向の距離(以下、第3リンク長と呼ぶ)をL2と表すこととする。   In the third joint JT3 that is a connecting portion between the other end portion of the arm member 5 and one end portion of the arm member 6, the arm member 6 is allowed to rotate (turn) around the third rotation axis A3 with respect to the arm member 5. . The third joint JT3 is set with a joint coordinate system (orthogonal coordinate system based on the X3 axis, the Y3 axis, and the Z3 axis) of the third joint JT3. Here, a distance in the Z-axis direction (hereinafter referred to as a third link length) between the second joint JT2 and the third joint JT3 in the reference coordinate system is represented as L2.

アーム部材6の他端部とアーム部材7の一端部との連結部である第4関節JT4においてアーム部材6に対するアーム部材7の第4回転軸A4周りの回転(旋回)が許容されている。なお、第4関節JT4には、当該第4関節JT4の関節座標系(X4軸、Y4軸、Z4軸による直交座標系)が設定されている。ここで、基準座標系における第3関節JT3と第4関節JT4との間におけるZ軸方向の距離(以下、第4リンク長と呼ぶ)をL3と表すこととする。また、基準座標系における第3関節JT3と第4関節JT4との間におけるY軸方向の距離(以下、第5リンク長と呼ぶ)をL4と表すこととする。   In the fourth joint JT4 that is a connecting portion between the other end of the arm member 6 and one end of the arm member 7, the arm member 7 is allowed to rotate (turn) around the fourth rotation axis A4 with respect to the arm member 6. The fourth joint JT4 is set with a joint coordinate system of the fourth joint JT4 (orthogonal coordinate system based on the X4 axis, the Y4 axis, and the Z4 axis). Here, a distance in the Z-axis direction (hereinafter referred to as a fourth link length) between the third joint JT3 and the fourth joint JT4 in the reference coordinate system is represented as L3. Further, a distance in the Y-axis direction (hereinafter referred to as a fifth link length) between the third joint JT3 and the fourth joint JT4 in the reference coordinate system is represented as L4.

アーム部材7の他端部とアーム部材8の一端部との連結部である第5関節JT5においてアーム部材7に対するアーム部材8の第5回転軸A5周りの回転(回動)が許容されている。なお、第5関節JT5には、当該第5関節JT5の関節座標系(X5軸、Y5軸、Z5軸による直交座標系)が設定されている。   In the fifth joint JT5, which is a connecting portion between the other end of the arm member 7 and one end of the arm member 8, the arm member 8 is allowed to rotate (turn) around the fifth rotation axis A5 with respect to the arm member 7. . The fifth joint JT5 is set with the joint coordinate system of the fifth joint JT5 (orthogonal coordinate system based on the X5 axis, the Y5 axis, and the Z5 axis).

アーム部材8の他端部とアタッチメント9の一端部との連結部である第6関節JT6においてアーム部材8に対するアタッチメント9の第6回転軸A6周りの回転(旋回)が許容される。なお、第6関節JT6には、当該第6関節JT6の関節座標系としてX6軸、Y6軸、Z6軸による直交座標系が設定されている。このX6軸、Y6軸、Z6軸による直交座標系は、第4乃至第6回転軸A4乃至A6が一点で交わった点を原点に持っている。ここで、基準座標系における第5関節JT5と第6関節JT6との間におけるZ軸方向の距離(以下、第6リンク長と呼ぶ)をL5と表すこととする。   The sixth joint JT6, which is a connecting portion between the other end portion of the arm member 8 and one end portion of the attachment 9, is allowed to rotate (turn) around the sixth rotation axis A6 of the attachment 9 with respect to the arm member 8. In the sixth joint JT6, an orthogonal coordinate system based on the X6 axis, the Y6 axis, and the Z6 axis is set as the joint coordinate system of the sixth joint JT6. The orthogonal coordinate system using the X6 axis, the Y6 axis, and the Z6 axis has a point at which the fourth to sixth rotation axes A4 to A6 intersect at one point as the origin. Here, the distance in the Z-axis direction (hereinafter referred to as the sixth link length) between the fifth joint JT5 and the sixth joint JT6 in the reference coordinate system is represented as L5.

基台2が床面に適正に設置されると、基台2に最も近い第1回転軸A1は鉛直方向(基台2から第1関節JT1への延在方向)に指向し、第2回転軸A2は水平方向(床面と平行な方向)に指向する。また、第7回転軸A7は第2回転軸A2と直交する方向であって、かつアーム部材4の延在方向に指向する。また、第3回転軸A3は第7回転軸A7と直交する方向であって、かつ水平方向に指向する。また、第4回転軸A4は第3回転軸A3と直交する方向であって、かつアーム部材6の延在方向に指向する。また、第5回転軸A5は第4回転軸A4と直交する方向であって、かつ水平方向に指向する。また、第6回転軸A6は第5回転軸A5と直交する方向であって、かつアーム部材8の延在方向に指向する。よって、第1乃至第7回転軸A1〜A7は、全ての互いに隣り合う関節の回転軸が互いに垂直となるように配置されている。   When the base 2 is properly installed on the floor surface, the first rotation axis A1 closest to the base 2 is oriented in the vertical direction (extending direction from the base 2 to the first joint JT1), and the second rotation. The axis A2 is oriented in the horizontal direction (direction parallel to the floor surface). The seventh rotation axis A7 is oriented in the direction orthogonal to the second rotation axis A2 and in the extending direction of the arm member 4. Further, the third rotation axis A3 is a direction orthogonal to the seventh rotation axis A7 and is oriented in the horizontal direction. Further, the fourth rotation axis A4 is oriented in the direction orthogonal to the third rotation axis A3 and in the extending direction of the arm member 6. The fifth rotation axis A5 is a direction orthogonal to the fourth rotation axis A4 and is directed in the horizontal direction. The sixth rotation axis A6 is oriented in the direction orthogonal to the fifth rotation axis A5 and in the extending direction of the arm member 8. Therefore, the first to seventh rotation axes A1 to A7 are arranged so that the rotation axes of all adjacent joints are perpendicular to each other.

アーム部材7、8、及びアタッチメント9は、アタッチメント9に取り付けられるツール部材11に微細な動作を行わせるための人間の手首に似せた構造体10(以下、手首装置という。)を成している。第1回転軸A1、第2回転軸A2、第7回転軸A7、及び第3回転軸A3は、ツール部材11を手首装置10とともに水平旋回させたり揺動させたりするための回転軸として用いられ、7軸多関節ロボット100の主軸を成している。第4乃至第6回転軸A4〜A6は、手首装置10に設定される回転軸であり、所謂RBR(Roll−Bend−Roll)型の手首軸を成している。なお、手首装置10の手首軸は、RBR型に限られず、所謂BBR(Bend−Bend−Roll)型や3R(Roll−Roll−Roll)型の手首軸であってもよい。   The arm members 7 and 8 and the attachment 9 constitute a structure 10 (hereinafter referred to as a wrist device) resembling a human wrist for causing the tool member 11 attached to the attachment 9 to perform a fine operation. . The first rotation axis A1, the second rotation axis A2, the seventh rotation axis A7, and the third rotation axis A3 are used as rotation axes for horizontally turning or swinging the tool member 11 together with the wrist device 10. , The main axis of the seven-axis articulated robot 100. The fourth to sixth rotation axes A4 to A6 are rotation axes set in the wrist device 10, and form a so-called RBR (Roll-Bend-Roll) type wrist axis. The wrist shaft of the wrist device 10 is not limited to the RBR type, and may be a so-called BBR (Bend-Bend-Roll) type or 3R (Roll-Roll-Roll) type wrist shaft.

第1乃至第7関節JT1〜JT7にはそれぞれサーボモータM1〜M7及び位置検出器D1〜D7が設けられている。位置検出器D1〜D7は、例えば、ロータリーエンコーダで構成されている。上記の各サーボモータM1〜M7を駆動することにより、第1乃至第7関節JT1〜JT7においてそれぞれ許容される第1乃至第7回転軸A1〜A7周りの回転が行われる。なお、各サーボモータM1〜M7は互いに独立して駆動することが可能である。また、上記の各サーボモータM1〜M7が駆動されると、上記の各位置検出器D1〜D7によって上記の各サーボモータM1〜M7の第1乃至第7回転軸A1〜A7周りの回転位置の検出が行われる。   The first to seventh joints JT1 to JT7 are provided with servo motors M1 to M7 and position detectors D1 to D7, respectively. The position detectors D1 to D7 are composed of, for example, a rotary encoder. By driving the servo motors M1 to M7, the first to seventh joints JT1 to JT7 are allowed to rotate around the first to seventh rotation axes A1 to A7, respectively. Each servo motor M1 to M7 can be driven independently of each other. When the servo motors M1 to M7 are driven, the position detectors D1 to D7 set the rotational positions around the first to seventh rotation axes A1 to A7 of the servo motors M1 to M7. Detection is performed.

ロボット制御装置200は、演算器210と記憶器220とを少なくとも備えて構成されており、7軸多関節ロボット100の基台2の周辺に配置されている。ロボット制御装置200は、例えば、コンピュータで構成され、演算器210及び記憶器220は、それぞれ、CPU及び内部メモリで構成される。なお、ロボット制御装置200は、7軸多関節ロボット100と遠隔に配置されていてもよいし、7軸多関節ロボット100と物理的に着脱可能な形態で接続されてもよい。   The robot control device 200 is configured to include at least an arithmetic unit 210 and a storage unit 220, and is disposed around the base 2 of the seven-axis articulated robot 100. The robot control device 200 is configured by a computer, for example, and the arithmetic unit 210 and the storage unit 220 are each configured by a CPU and an internal memory. Note that the robot control device 200 may be disposed remotely from the 7-axis articulated robot 100, or may be physically connected to the 7-axis articulated robot 100 in a detachable form.

ロボット制御装置200は、7軸多関節ロボット100の動作を制御する。具体的には、ロボット制御装置200は、7軸多関節ロボット100の第1乃至第7関節JT1〜JT7が具備するサーボモータのサーボ制御により、アタッチメント9に取り付けられたツール部材11を任意の位置及び姿勢に任意の経路に沿って移動させる。   The robot control device 200 controls the operation of the seven-axis articulated robot 100. Specifically, the robot control device 200 moves the tool member 11 attached to the attachment 9 to an arbitrary position by servo control of the servo motors included in the first to seventh joints JT1 to JT7 of the 7-axis articulated robot 100. And move along any path to posture.

なお、ロボット制御装置200は、ティーチペンダント等の外部装置(図示せず)と接続可能である。この外部装置によって、ロボット制御装置200は、オペレータの操作に応じて7軸多関節ロボット100を並進又は回転運動させるための指令が入力される。演算器210は、制御時間毎に入力された上記の指令に基づいて、ツール部材11が当該制御時間の経過後に位置すべき目標位置を算出する。かかる目標位置は、制御時間と予め定められたツール部材11の制限移動速度等から求まる移動距離に基づいて算出された後、演算器210が演算可能となるようにツール座標系(Xt軸、Yt軸、Zt軸による直交座標系)において定義される座標データという形式に変換される。さらに、演算器210は、目標位置の座標データの逆変換処理を行い、制御時間の経過後にツール部材11を目標位置に移動させるために必要となる関節角θ1〜θ7を算定する。そして、演算器210は、これらの算定した関節角θ1〜θ7と上記の位置検出器D1〜D7により検出される電源オン時の回転位置との偏差に基づき、第1乃至第7関節JT1〜JT7に設けられたサーボモータの動作量の指令値を演算し、各サーボモータに供給する。これにより、ツール部材11が制御時間の経過毎に目標位置に移動されることとなる。
[逆変換式の定式化]
以下では、7軸多関節ロボット100の逆変換式の定式化を説明する。なお、手首装置10の姿勢を規定する手首軸(A4〜A6)はひとまず無視しておき、手首装置10の位置を規定する残りの4つの回転軸A1、A2、A7、A3のうち、第7回転軸A7を冗長軸とし、かつ残りの第1乃至第3回転軸A1〜A3を基軸とし、当該基軸A1〜A3を有した各関節JT1〜JT3の関節角θ1〜θ3を未知変数として取り扱う。また、第3回転軸A3を、後述の4次方程式の変数として用いられる関節角θ3を規定する変数軸とする。
The robot control device 200 can be connected to an external device (not shown) such as a teach pendant. By this external device, the robot control device 200 receives a command for translating or rotating the 7-axis articulated robot 100 in accordance with the operation of the operator. The computing unit 210 calculates a target position where the tool member 11 should be positioned after the control time has elapsed, based on the above-described command input every control time. Such a target position is calculated based on a control distance and a movement distance obtained from a predetermined limit movement speed of the tool member 11, and the tool coordinate system (Xt axis, Yt so that the calculator 210 can calculate the target position. Is converted into a format of coordinate data defined in an orthogonal coordinate system based on an axis and a Zt axis. Further, the computing unit 210 performs an inverse conversion process of the coordinate data of the target position, and calculates joint angles θ1 to θ7 necessary for moving the tool member 11 to the target position after the control time has elapsed. The computing unit 210 then calculates the first to seventh joints JT1 to JT7 based on the deviation between the calculated joint angles θ1 to θ7 and the rotational position at the time of power-on detected by the position detectors D1 to D7. The command value of the operation amount of the servo motor provided in is calculated and supplied to each servo motor. Thereby, the tool member 11 will be moved to a target position for every progress of control time.
[Formulation of inverse transformation formula]
Hereinafter, the formulation of the inverse transformation formula of the seven-axis articulated robot 100 will be described. Note that the wrist axis (A4 to A6) that defines the posture of the wrist device 10 is ignored for the time being, and the remaining four rotation axes A1, A2, A7, and A3 that define the position of the wrist device 10 are the seventh. The rotation axis A7 is used as a redundant axis, the remaining first to third rotation axes A1 to A3 are used as base axes, and the joint angles θ1 to θ3 of the joints JT1 to JT3 having the base axes A1 to A3 are handled as unknown variables. The third rotation axis A3 is a variable axis that defines a joint angle θ3 used as a variable of a quaternary equation described later.

まず、基準座標系から見た第1関節JT1の位置ベクトル[x0,y0,z0]、第2関節JT2の位置ベクトル[x1,y1,z1]、第3関節JT3の位置ベクトル[x3,y3,z3]を、それぞれ“xyz0”、“xyz1”、“xyz3”と表し、第i関節JTi(第i回転軸Ai)の関節座標系から見た第j関節JTj(第j回転軸Aj)の関節座標系を、同次変換行列(座標変換行列)である「」を用いて表したとき、次式が成り立つ。なお、同次変換行列とは、位置ベクトルとオイラー角を用いた回転行列とを組み合わせた行列であり、ロボットの運動学の定式化において広く用いられている行列のことである。 First, the position vector [x0, y0, z0] of the first joint JT1, the position vector [x1, y1, z1] of the second joint JT2, and the position vector [x3, y3 of the third joint JT3 as viewed from the reference coordinate system. z3] are represented as “xyz0”, “xyz1”, and “xyz3”, respectively, and the joint of the jth joint JTj (jth rotational axis Aj) viewed from the joint coordinate system of the i th joint JTi (ith rotational axis Ai) When the coordinate system is expressed using “ i T j ” that is a homogeneous transformation matrix (coordinate transformation matrix), the following equation holds. The homogeneous transformation matrix i T j is a matrix that combines a position vector and a rotation matrix using Euler angles, and is a matrix that is widely used in the formulation of robot kinematics.

xyz1=・xyz3 ・・・(6−1)
xyz0=・xyz3
・xyz1 ・・・(6−2)
式(6−2)の両辺に(−1を左から掛けるとすると、次式が成り立つ。
xyz1 = 1 T 2 · 2 T 7 · 7 T 3 · xyz 3 (6-1)
xyz0 = 0 T 1 · 1 T 2 · 2 T 7 · 7 T 3 · xyz 3
= 0 T 1 xyz1 (6-2)
When multiplying both sides of Equation (6-2) to (0 T 1) -1 from the left, the following equation holds.

−1・xyz0=xyz1 ・・・(7)
また、式(7)により、第2関節JT2の位置ベクトルの各要素であるx1、y1、z1についてそれぞれ次式の関係が得られる。なお、次式の中で、siは第i関節の関節角θに応じたsin(θ)を表しており、ciは第i関節の関節角θに応じたcos(θ)を表している。
(0 T 1) -1 · xyz0 = xyz1 ··· (7)
Further, according to the equation (7), the relationship of the following equations is obtained for each of the elements x1, y1, and z1 of the position vector of the second joint JT2. In the following equation, si represents sin (θ i ) corresponding to the joint angle θ i of the i-th joint, and ci represents cos (θ i ) corresponding to the joint angle θ i of the i-th joint. Represents.

x1=c1・x0+s1・y0 ・・・(8−1)
y1=−s1・x0+c1・y0 ・・・(8−2)
z1=z0−L0 ・・・(8−3)
ここで、第1関節JT1の関節座標系を基準とした場合、基準座標系の原点Oから手首装置10の位置に見立てた第3関節JT3から延設される第4関節JT4の関節座標系の原点までの距離Rh及び距離Zhについては、式(8−1)〜式(8−3)で表されたx1、y1、z1を用いて、次式の関係が成立する。
x1 = c1 · x0 + s1 · y0 (8-1)
y1 = −s1 · x0 + c1 · y0 (8-2)
z1 = z0−L0 (8-3)
Here, when the joint coordinate system of the first joint JT1 is used as a reference, the joint coordinate system of the fourth joint JT4 extended from the third joint JT3 assumed to be the position of the wrist device 10 from the origin O of the reference coordinate system. About the distance Rh and distance Zh to an origin, the relationship of following Formula is materialized using x1, y1, and z1 represented by Formula (8-1)-Formula (8-3).

Rh=x1+y1+z1=x0+y0+(z0−L0) ・・・(9−1)
Zh=z0−L0 ・・・(9−2)
一方、第2関節JT2の位置ベクトルの各要素であるx1、y1、z1については、式(8−1)〜式(8−3)とは別に、式(6−1)により、それぞれ次式の関係が得られる。
Rh 2 = x1 2 + y1 2 + z1 2 = x0 2 + y0 2 + (z0−L0) 2 (9-1)
Zh = z0−L0 (9-2)
On the other hand, with respect to x1, y1, and z1, which are elements of the position vector of the second joint JT2, the following formulas are respectively obtained by formula (6-1) separately from formulas (8-1) to (8-3). The relationship is obtained.

x1=−s3・s7・x3−c3・s7・y3−c7・z3 ・・・(10−1)
y1=(c2・s3・c7+s2・c3)・x3+(c2・c3・c7−s2・s3)・y3−c2・s7・z3+L1+L2・s2 ・・・(10−2)
z1=(−s2・s3・c7+c2・c3 )・x3−(s2・c3・c7+c2・s3)・y3+s2・s7・z3+L2・c2 ・・・(10−3)
これらを用いると、式(9−1)におけるRhは次式のとおり表すことができる。
x1 = -s3 * s7 * 3-c3 * s7 * y3-c7 * z3 (10-1)
y1 = (c2, s3, c7 + s2, c3), x3 + (c2, c3, c7-s2, s3), y3-c2, s7, z3 + L1 + L2, s2 (10-2)
z1 = (− s2 · s3 · c7 + c2 · c3) · x3- (s2 · c3 · c7 + c2 · s3) · y3 + s2 · s7 · z3 + L2 · c2 (10-3)
When these are used, Rh 2 in the formula (9-1) can be represented by the following formula.

Rh=x1+y1+z1
=2・L1・[(c3・x3−s3・y3+L2)・s2−{−c7・(s3・x3+c3・y3)+s7・z3}・c2]+2・L2・c3・x3−2・L2・s3・y3+L1+L2+x3+y3+z3・・・(11−1)
また、Zhは、z1を変形して次式のとおり表すことができる。
Rh 2 = x1 2 + y1 2 + z1 2
= 2 * L1 * [(c3 * x3-s3 * y3 + L2) * s2-{-c7 * (s3 * x3 + c3 * y3) + s7 * z3} * c2] + 2 * L2 * c3 * x3-2 * L2 * s3 * y3 + L1 2 + L2 2 + x3 2 + y3 2 + z3 2 (11-1)
Zh can be expressed as the following equation by modifying z1.

Zh=(c3・x3−s3・y3+L2)・c2+{−c7・(s3・x3+c3・y3)+s7・z3}・c2 ]・s2 ・・・(11−2)
ここで、
F1=c3・x3−s3・y3+L2 ・・・(12−1)
F2=−c7・(s3・x3+c3・y3)+s7・z3 ・・・(12−2)
F3=2・L2・c3・x3‐2・L2・s3・y3+L1+L2+x3+y3+z3 ・・・(12−3)
とおくと、式(11−1)及び式(11−2)については、それぞれ次式のとおり変形することができる。
Zh = (c3 * x3-s3 * y3 + L2) * c2 + {-c7 * (s3 * x3 + c3 * y3) + s7 * z3} * c2] * s2 (11-2)
here,
F1 = c3 · x3-s3 · y3 + L2 (12-1)
F2 = −c7 · (s3 · x3 + c3 · y3) + s7 · z3 (12-2)
F3 = 2 · L2 · c3 · x3−2 · L2 · s3 · y3 + L1 2 + L2 2 + x3 2 + y3 2 + z3 2 (12-3)
Then, about Formula (11-1) and Formula (11-2), it can each deform | transform as following Formula.

(Rh−F3)/(2・L1)=F1・s2−F2・c2 ・・・(13−1)
Zh=F1・c2+F2・s2 ・・・ (13−2)
ここで、式(13−1)及び式(13−2)それぞれの辺々を2乗して、それぞれの和をとると、次式が成立する。
(Rh 2 −F 3) / (2 · L 1) = F 1 · s 2 −F 2 · c 2 (13-1)
Zh = F1 · c2 + F2 · s2 (13-2)
Here, when the sides of the equations (13-1) and (13-2) are squared and summed, the following equation is established.

{(Rh−F3)/(2・L1)}+Zh=F1+F2 ・・・(14)
そして、式(14)に対し、式(11−1)、式(11−2)、式(12−1)〜式(12−3)を代入し、s3、c3について整理すると、次式が成立することとなる。
{(Rh 2 −F 3) / (2 · L 1)} 2 + Zh 2 = F1 2 + F2 2 (14)
Then, by substituting Equation (11-1), Equation (11-2), Equation (12-1) to Equation (12-3) into Equation (14) and arranging for s3 and c3, the following equation is obtained. It will be established.

A・c3+B・s3+C・s3・c3+D・c3+E・s3+F=0 ・・・(15)
なお、式(15)中のA、B、C、D、E、Fは以下の通りとなる。
A · c3 2 + B · s3 2 + C · s3 · c3 + D · c3 + E · s3 + F = 0 (15)
In addition, A, B, C, D, E, and F in Formula (15) are as follows.

A=4・L1・(x3+y3・c7)−4・L2・x3・・・(16−1)
B=4・L1・(y3+x3・c7)−4・L2・y3・・・(16−2)
C=4・L1・(−2・x3・y3+2・x3・y3・c7)+8・L2・x3・y3 ・・・(16−3)
D=4・L1・(2・x3・L2−2・y3・z3・s7・c7)−4・L2・x3・K ・・・(16−4)
E=4・L1・(−2・y3・L2−2・x3・z3・s7・c7)+4・L2・y3・K ・・・(16−5)
F=4・L1・(L2+z3・s7−Zh)−K・・・(16−6)
なお、式(16−1)〜式(16−6)中において、L1は上記の第1リンク長を表しており、L2は上記の第2リンク長を表している。また、Kは次式により得られる値である。
A = 4 · L1 2 · (x3 2 + y3 2 · c7 2 ) -4 · L2 2 · x3 2 (16-1)
B = 4 * L1 2 * (y3 2 + x3 2 * c7 2 ) -4 * L2 2 * y3 2 (16-2)
C = 4 · L1 2 · (−2 · x3 · y3 + 2 · x3 · y3 · c7 2 ) + 8 · L2 2 · x3 · y3 (16-3)
D = 4 · L1 2 · (2 · x3 · L2-2 · y3 · z3 · s7 · c7) -4 · L2 · x3 · K (16-4)
E = 4 · L1 2 · (−2 · y3 · L2-2 · x3 · z3 · s7 · c7) + 4 · L2 · y3 · K (16-5)
F = 4 * L1 2 * (L2 2 + z3 2 * s7 2 −Zh 2 ) −K 2 (16-6)
In Expressions (16-1) to (16-6), L1 represents the first link length and L2 represents the second link length. K is a value obtained by the following equation.

K=L1+L2+x3+y3+z3‐Rh・・・(17)
式(16−1)〜式(16−6)の各値は、s1,c1,s2,c2に無関係な値であり、各関節角の情報がなくても求めることができる。
K = L1 2 + L2 2 + x3 2 + y3 2 + z3 2 -Rh 2 (17)
Each value of Expression (16-1) to Expression (16-6) is a value irrelevant to s1, c1, s2, and c2, and can be obtained without information on each joint angle.

次に、t=tan(θ3)とおくと、第3関節JT3の関節角θ3に関するc3(余弦)及びs3(正弦)について次式が成立する。   Next, when t = tan (θ3), the following equations are established for c3 (cosine) and s3 (sine) related to the joint angle θ3 of the third joint JT3.

c3=2・t/(1+t)・・・(18−1)
s3=(1−t)/(1+t)・・・(18−2)
ここで、式(18−1)、式(18−2)を式(15)に代入し、変数t(=tan(θ3))の次数毎に項を整理すると、次式が成立する。
c3 = 2 · t / (1 + t 2 ) (18-1)
s3 = (1-t 2 ) / (1 + t 2 ) (18-2)
Here, when the expressions (18-1) and (18-2) are substituted into the expression (15) and the terms are arranged for each order of the variable t (= tan (θ3)), the following expression is established.

(B−E+F)・t+2(−C+D)・t+(2A−B+F)・t+2(C+D )・t+(B+E+F)=0 ・・・(19)
以上のとおり、式(19)により表される4次方程式を解くことで変数tを求め、θ3=atan(t)を演算することにより、関節角θ3を得ることができる。
(B−E + F) · t 4 +2 (−C + D) · t 3 + (2A−B + F) · t 2 +2 (C + D) · t + (B + E + F) = 0 (19)
As described above, the joint angle θ3 can be obtained by calculating the variable t by solving the quartic equation represented by the equation (19) and calculating θ3 = atan (t).

一方、関節角θ2については、次のように求めることができる。まず、式(19)により求められた関節角θ3を、式(12−1)、式(12−2)にそれぞれ代入すると、F1,F2が求められる。ここで、Zhは既知であるので、式(13−2)より、関節角θ2は次式により求められる。なお、次式の演算結果としては、式(13−1)、式(13−2)を満たすものを選択することとする。   On the other hand, the joint angle θ2 can be obtained as follows. First, when the joint angle θ3 obtained by Expression (19) is substituted into Expression (12-1) and Expression (12-2), F1 and F2 are obtained. Here, since Zh is known, the joint angle θ2 is obtained by the following equation from the equation (13-2). It should be noted that as a calculation result of the following equation, a result satisfying the equations (13-1) and (13-2) is selected.

θ2=atan2(F2,F1)±atan2((F2+F1−Zh0.5,Zh)・・・(20)
また、関節角θについては、次のように求めることができる。まず、式(8−1)〜(8−3)と式(10−1)〜(10−3)とを用いてx1を消去すると、次式が成立する。
θ2 = atan2 (F2, F1) ± atan2 ((F2 2 + F1 2 −Zh 2 ) 0.5 , Zh) (20)
Further, the joint angle θ 1 can be obtained as follows. First, when x1 is deleted using Expressions (8-1) to (8-3) and Expressions (10-1) to (10-3), the following expression is established.

c1・x0+s1・y0=−s3・s7・x3−c3・s7・y3−c7・z3 ・・・(21)
ここで、式(21)の右辺をQとおき、式(21)の両辺に式(19)により求められた関節角θ3を代入することで、θ1は次式により求められる。なお、次式の演算結果としては、式(8−1)〜式(8−3)を満たすものを選択することとする。
c1 * x0 + s1 * y0 = -s3 * s7 * x3-c3 * s7 * y3-c7 * z3 (21)
Here, assuming that the right side of Equation (21) is Q and substituting the joint angle θ3 obtained by Equation (19) for both sides of Equation (21), θ1 is obtained by the following equation. It should be noted that as a calculation result of the following equation, a value satisfying the equations (8-1) to (8-3) is selected.

θ1=atan2(y0,x0)±atan2((y0+x0−Q0.5 , Q)・・・(22)
以上のようにして、関節角θ1、θ2、θ3に関して、式(19)、式(21)、式(22)のとおり、7軸多関節ロボット100の逆変換式が定式化される。なお、この逆変換式の定式化は予め行われ、この定式化された逆変換式が制御プログラムに組み込まれている。
[4つの第1求解演算式と4つの形態との対応付け]
つぎに、式(19)の4次方程式の4つの解を求めるための4つの第1求解演算式と7軸多関節ロボット100の4つの形態との対応付けについて説明する。
θ1 = atan2 (y0, x0) ± atan2 ((y0 2 + x0 2 −Q 2 ) 0.5 , Q) (22)
As described above, the inverse transformation formula of the seven-axis articulated robot 100 is formulated with respect to the joint angles θ1, θ2, and θ3 as shown in the equations (19), (21), and (22). The inverse conversion formula is formulated in advance, and the formulated inverse conversion formula is incorporated in the control program.
[Association of four first solving equations and four forms]
Next, the correspondence between the four first solution calculation expressions for obtaining the four solutions of the quaternary equation of Expression (19) and the four forms of the seven-axis articulated robot 100 will be described.

まず、式(19)により表される4次方程式の各係数を整理して次式に変換する。   First, the coefficients of the quaternary equation represented by Expression (19) are arranged and converted into the following expression.

+at+bt+ct+d=0 ・・・(23)
また、
p=−3a/8+b ・・・(24−1)
q=a/8−ab/2+c ・・・(24−2)
r=−3a/256+ab/16−ac/4+d ・・・(24−3)
とおく。ここで、4次方程式の解法としてよく知られた「フェラーリの解法」に基づいて、式(23)の4次方程式の分解方程式である変数yについての3次方程式を次式のとおり定式化する。
t 4 + at 3 + bt 2 + ct + d = 0 (23)
Also,
p = -3a 2/8 + b ··· (24-1)
q = a 3 / 8−ab / 2 + c (24-2)
r = -3a 4/256 + a 2 b / 16-ac / 4 + d ··· (24-3)
far. Here, based on “Ferrari's solution”, which is well known as a solution of the quaternary equation, a cubic equation for the variable y, which is a decomposition equation of the quaternary equation of Equation (23), is formulated as the following equation: .

8y−4py−8ry+4pr−q=0 ・・・(25)
なお、式(25)の3次方程式の各係数を整理して次式に変換する。
8y 3 -4py 2 -8ry + 4pr-q 2 = 0 (25)
In addition, each coefficient of the cubic equation of Formula (25) is arranged and converted into the following formula.

+fx+gx+h=0 ・・・(26)
ここで、式(26)式の判別式Dは、次式の通り表される。
x 3 + fx 2 + gx + h = 0 (26)
Here, the discriminant D of the equation (26) is expressed as the following equation.

D=q+p ・・・(27)
なお、p及びqは次式の通りである。
D = q 2 + p 3 (27)
Note that p and q are as follows.

p=(g−f/3)/3 ・・・(28−1)
q=(h−g・f/3+2・f/27)/2 ・・・(28−2)
また、式(25)の3次方程式の解は、式(27)の判別式Dの解に基づいた3つの条件C1、C2、C3毎に分別される。
p = (g-f 2/ 3) / 3 ··· (28-1)
q = (h-g · f / 3 + 2 · f 3/27) / 2 ··· (28-2)
Further, the solution of the cubic equation of Expression (25) is classified for each of the three conditions C1, C2, and C3 based on the solution of the discriminant D of Expression (27).

条件C1(D<0の時):実数解3つ
条件C2(D=0の時):実数の重解と他の実数解又は実数の3重解
条件C3(D>0の時):実数解1つと虚数解2つ(共役複素数)
ここで、条件C2又は条件C3の場合には、負の√演算の必要がない「カルダノの解法」に従って、式(25)の3次方程式の解を求めることとする。なお、カルダノの解法とは3次方程式の代表的な解法である。具体的には、まず、
W1=(−1+30.5・i)/2 ・・・(29−1)
W2=W1・・・(29−2)
U1=−q+D0.5 ・・・(29−3)
U2=−q−D0.5 ・・・(29−4)
とおくと、カルダノの解法における式(25)の3次方程式の3つの解u1、u2、u3は、次式により求められる。
Condition C1 (when D <0): 3 real solutions
Condition C2 (when D = 0): real multiple solution and other real solution or real triple solution Condition C3 (when D> 0): one real solution and two imaginary solutions (conjugate complex number)
Here, in the case of the condition C2 or the condition C3, the solution of the cubic equation of the equation (25) is obtained according to the “cardano solution” that does not require the negative √ operation. The Cardano solution is a typical solution of a cubic equation. Specifically, first,
W1 = (− 1 + 3 0.5 · i) / 2 (29-1)
W2 = W1 2 (29-2)
U1 = −q + D 0.5 (29-3)
U2 = −q−D 0.5 (29-4)
In other words, the three solutions u1, u2, and u3 of the cubic equation of Equation (25) in the Cardano solution are obtained by the following equations.

u1=1・U1(1/3)+1・U2(1/3)−a/3 ・・・(30−1)
u2=W1・U1(1/3)+W2・U2(1/3)−a/3 ・・・(30−2)
u3=W2・U1(1/3)+W1・U2(1/3)−a/3 ・・・(30−3)
なお、式(30−1)〜式(30−3)中のU1(1/3)及びU2(1/3)は3つの値が考えられるが、実数の値であるものを用いることとする。つまり、U1又はU2が負の場合には、これらの絶対値の3乗根を求めた上で、それに−1をかけて算定することで、虚数の算定を避けることとする。また、条件C2又はC3の場合には、3つの解(u1、u2、u3)のうち、実数解となる解u1のみを演算することとする。なお、条件C2又はC3の場合において実数解u1を求めるための式(30−1)は、本発明に係る「第2求解演算式」に対応する。
u1 = 1 · U1 (1/3) + 1 · U2 (1/3) −a / 3 (30-1)
u2 = W1 · U1 (1/3) + W2 · U2 (1/3) −a / 3 (30-2)
u3 = W2 · U1 (1/3) + W1 · U2 (1/3) −a / 3 (30-3)
In addition, although U1 (1/3) and U2 (1/3) in Formula (30-1)-Formula (30-3) can consider three values, what is a real value shall be used. . In other words, when U1 or U2 is negative, the cube root of these absolute values is obtained and then multiplied by −1 to avoid calculation of an imaginary number. In the case of the condition C2 or C3, only the solution u1 that is a real number solution among the three solutions (u1, u2, u3) is calculated. In the case of the condition C2 or C3, the equation (30-1) for obtaining the real number solution u1 corresponds to the “second solution calculation equation” according to the present invention.

次に、条件C1の場合には、「ビエタの解法」により式(25)の3次方程式の解を求めることとする。なお、ビエタの解法とは三角関数の三倍角の公式を利用したカルダノの解法とは異なる3次方程式の既知の解法である。具体的には、式(28−1)及び式(28−2)を用いると、次式が成立する。なお、次式の中のΦは、同次変換行列を定義する場合に用いたオイラー角の一つを表している。   Next, in the case of the condition C1, the solution of the cubic equation of the equation (25) is obtained by “the solution method of Vieta”. The Vieta's solution is a known solution of a cubic equation which is different from the Cardano's method using the triple angle formula of the trigonometric function. Specifically, the following formula is established when formula (28-1) and formula (28-2) are used. Note that Φ in the following expression represents one of the Euler angles used when defining a homogeneous transformation matrix.

cos3Φ=−q/{(−p)(1/2) ・・・(31)
また、式(31)により次式が成立する。
cos3Φ = −q / {(− p) 3 } (1/2) (31)
Moreover, following Formula is materialized by Formula (31).

Φ=arccos[‐q/{(‐p)(1/2)]/3 ・・・(32)
なお、条件C1のときには式(27)の判別式D<0であるので、「p<0」となり、式(32)の右辺の平方根の中身は正の数となる。よって、負の√演算が行われることはない。ビエタの解法における式(25)の3次方程式の3つの解u1,u2,u3は、次式により求められる。
Φ = arccos [−q / {(− p) 3 } (1/2) ] / 3 (32)
In the condition C1, since the discriminant D <0 in the equation (27) is “p <0”, the content of the square root on the right side of the equation (32) is a positive number. Therefore, a negative √ operation is not performed. Three solutions u1, u2, and u3 of the cubic equation of Equation (25) in the Vieta's solution method are obtained by the following equations.

u1=2(−p)0.5 ・cosΦ−a/3 ・・・(33−1)
u2=2(−p)0.5 ・cos(Φ+2π/3)−a/3 ・・・(33−2)
u3=2(−p)0.5 ・cos(Φ+4π/3)−a/3 ・・・(33−3)
この場合、解u1,u2,u3は全て実数解となるが、無条件にどれでも採用していいわけではなく、たとえ条件C2又はC3になっても実数解となるものを選択する必要がある。そこで、条件C2又はC3のときには共役複素数(虚数)となる2つの実数解は絶対値が同一でかつ符号(±)が異なるという特徴を利用して、条件C1の場合には、3つの解u1,u2,u3のうち絶対値が同一かつ符号が異なる2つの実数解u2,u3以外の残りの1つの実数解u1のみを特定して演算することとする。なお、条件C1の場合において実数解u1を求めるための式(33−1)は、本発明に係る「第3求解演算式」に対応する。
u1 = 2 (−p) 0.5 · cos Φ−a / 3 (33-1)
u2 = 2 (-p) 0.5 · cos (Φ + 2π / 3) -a / 3 ··· (33-2)
u3 = 2 (−p) 0.5 · cos (Φ + 4π / 3) −a / 3 (33-3)
In this case, all the solutions u1, u2, and u3 are real solutions, but any solution can be used unconditionally, and it is necessary to select a solution that provides a real solution even if the condition C2 or C3 is satisfied. Therefore, in the case of the condition C1, three solutions u1 are obtained by using the feature that the two real solutions that are conjugate complex numbers (imaginary numbers) in the condition C2 or C3 have the same absolute value and different signs (±). , U2, u3, only the remaining one real solution u1 other than the two real solutions u2, u3 having the same absolute value and different signs is specified and calculated. Note that, in the case of the condition C1, the equation (33-1) for obtaining the real number solution u1 corresponds to the “third solution calculation equation” according to the present invention.

そして、以上のように「カルダノの解法」又は「ビエタの解法」により演算された式(25)の3次方程式の1つの実数解をuと表す。さらに、M1、M2、N1、N2を次式のとおり定義する。   One real solution of the cubic equation of the equation (25) calculated by the “Cardano solution” or the “Vieta solution” as described above is represented by u. Furthermore, M1, M2, N1, and N2 are defined as follows.

M1=−(2u−p)0.5 ・・・(34−1)
M2=(2u−p)0.5 ・・・(34−2)
N1=(2u−p)0.5・q/2(2u−p)+u ・・・(34−3)
N2=−(2u−p)0.5・q/2(2u−p)+u ・・・(34−4)
このとき、式(20)の4次方程式の4つの解は次式の第1求解演算式により求められる。
M1 =-(2up) 0.5 ... (34-1)
M2 = (2u−p) 0.5 (34-2)
N1 = (2up−p) 0.5 · q / 2 (2up−p) + u ... (34-3)
N2 = − (2up−p) 0.5 · q / 2 (2up−p) + u ... (34-4)
At this time, the four solutions of the quaternary equation of Equation (20) are obtained by the first solving equation of the following equation.

t1=(−M1−(M1−4・N1)0.5)/2−a/4 ・・・(35−1)
t2=(−M1+(M1−4・N1)0.5)/2−a/4 ・・・(35−2)
t3=(−M2−(M2−4・N2)0.5)/2−a/4 ・・・(35−3)
t4=(−M2+(M2−4・N2)0.5)/2−a/4 ・・・(35−4)
ここで、4つの解t1〜t4を求めるための4つの第1求解演算式(式(35−1)〜式(35−4))を、図6に示したようなロボットの4つの形態と対応付けることとする。なお、4つの解t1〜t4を求めるための4つの第1求解演算式(式(35−1)〜式(35−4))は、式(25)の3次方程式の3つの解u1、u2、u3のうち実数解u1のみが使用されているので、4つの解t1〜t4の組合せは一義的に求められることとなる。つまり、解u1〜u3がランダムに選択されるということがなく、常に同一の実数解u1のみに基づいて4つの第1求解演算式(式(35−1)〜式(35−4))の演算が行われて4つの解t1〜t4が求められるので、7軸多関節ロボット100の形態の急激な変化を抑えることができる。
[形態に応じた4次方程式の解(t1〜t4のいずれか1つ)の特定]
図3は、4つの第1求解演算式(式(35−1)〜式(35−4))のうち1つを特定するための処理の流れを示したフローチャートである。
t1 = (− M1− (M1 2 −4 · N1) 0.5 ) / 2−a / 4 (35-1)
t2 = (− M1 + (M1 2 −4 · N1) 0.5 ) / 2−a / 4 (35-2)
t3 = (-M2- (M2 2 -4 · N2) 0.5 ) / 2-a / 4 (35-3)
t4 = (− M2 + (M2 2 −4 · N2) 0.5 ) / 2−a / 4 (35-4)
Here, the four first solution calculation formulas (formulas (35-1) to (35-4)) for obtaining the four solutions t1 to t4 are represented by the four forms of the robot as shown in FIG. Assume that they are associated. The four first solution calculation formulas (formula (35-1) to formula (35-4)) for obtaining the four solutions t1 to t4 are the three solutions u1 of the cubic equation of formula (25), Since only the real number solution u1 is used among u2 and u3, the combination of the four solutions t1 to t4 is uniquely determined. That is, the solutions u1 to u3 are not randomly selected, and the four first solving equations (Equations (35-1) to (35-4)) are always based only on the same real solution u1. Since calculations are performed and four solutions t1 to t4 are obtained, a sudden change in the form of the seven-axis articulated robot 100 can be suppressed.
[Identification of solution of quaternary equation according to form (any one of t1 to t4)]
FIG. 3 is a flowchart showing a flow of processing for specifying one of the four first solution calculation formulas (formula (35-1) to formula (35-4)).

まず、7軸多関節ロボット100及びロボット制御装置200の電源をオンしたとき(ステップS301)、ロボット制御装置200の演算器210は、第1乃至第7関節JT1〜JT7に設けられている位置検出器D1〜D7により関節角θ1〜θ7を取得する。そして、演算器210は、取得した関節角θ1〜θ7を順変換処理することにより、7軸多関節ロボット100のロボットアームの電源オン時の先端位置(手首装置10の位置)を算定する(ステップS302)。   First, when the powers of the seven-axis articulated robot 100 and the robot controller 200 are turned on (step S301), the calculator 210 of the robot controller 200 detects the positions provided in the first to seventh joints JT1 to JT7. The joint angles θ1 to θ7 are acquired by the devices D1 to D7. Then, the arithmetic unit 210 performs forward conversion processing on the acquired joint angles θ1 to θ7, thereby calculating the tip position (position of the wrist device 10) when the power of the robot arm of the seven-axis articulated robot 100 is turned on (step). S302).

つぎに、演算器210は、算定したロボットアームの先端位置に基づいて上述した逆変換処理を行う。具体的には、まず、式(25)の3次方程式について、条件C1の場合にはビエタの解法に従って実数解u1のみを算定し、条件C2、C3の場合にはカルダノの解法に従って実数解u1のみを算定する。   Next, the arithmetic unit 210 performs the above-described inverse conversion process based on the calculated tip position of the robot arm. Specifically, for the cubic equation of equation (25), only the real solution u1 is calculated according to the Vieta's solution when the condition is C1, and the real solution u1 according to the Cardano solution when the conditions are C2 and C3. Calculate only.

つぎに、演算器210は、式(20)の4次方程式について、算定した式(25)の3次方程式の実数解u1のみを使用して、4つの第1求解演算式(式(35−1)〜式(35−4))を演算することにより4つの解t1〜t4をそれぞれ算定する(ステップS303)。また、これらの算定した4つの解t1〜t4を用いて、それぞれに対応する関節角θ3を算定する(ステップS304)。   Next, the computing unit 210 uses only the real number solution u1 of the calculated cubic equation of the equation (25) for the quaternary equation of the equation (20) to obtain four first solving equations (equation (35− The four solutions t1 to t4 are respectively calculated by calculating (1) to (35-4)) (step S303). Further, the joint angle θ3 corresponding to each of the calculated four solutions t1 to t4 is calculated (step S304).

そして、演算器210は、ステップS304において算定された4つの関節角θ3の中で、位置検出器D3により取得した関節角θ3に最も近い関節角θ3を特定するともに、この特定した関節角θ3を算定するときに用いられた、4つの解t1〜t4のうちの1つを特定する。なお、この1つの解を特定するのに、関節角θ3に代えて、関節角θ1又は関節角θ2を用いてもよい。さらに、この特定した1つの解t1〜t4を求めるための1つの第1求解演算式(式(35−1)〜式(35−4))を記憶器220に記憶する(ステップS305)。この結果、記憶器220に記憶された1つの第1求解演算式(式(35−1)〜式(35−4))が、電源オン後の逆変換処理において用い続けられる。   Then, the calculator 210 specifies the joint angle θ3 closest to the joint angle θ3 acquired by the position detector D3 among the four joint angles θ3 calculated in step S304, and determines the specified joint angle θ3. One of the four solutions t1 to t4 used when calculating is specified. In order to specify the one solution, the joint angle θ1 or the joint angle θ2 may be used instead of the joint angle θ3. Further, one first solution calculation formula (formula (35-1) to formula (35-4)) for obtaining the specified one solution t1 to t4 is stored in the storage device 220 (step S305). As a result, one first solving equation (Equation (35-1) to Equation (35-4)) stored in the storage device 220 is continuously used in the inverse conversion process after the power is turned on.

図4は、記憶器220に記憶された4つの第1求解演算式(式(35−1)〜式(35−4))のうちいずれか1つを用いて実行される逆変換処理の流れを示すフローチャートである。なお、図3に示される電源オン時の処理によって4次方程式の解t1を求めるための第1求解演算式(35−1)のみが記憶器220に記憶されているものとする。   FIG. 4 shows the flow of the inverse conversion process executed by using any one of the four first solution solving expressions (expressions (35-1) to (35-4)) stored in the storage device 220. It is a flowchart which shows. It is assumed that only the first solution equation (35-1) for obtaining the solution t1 of the quaternary equation is stored in the storage device 220 by the power-on process shown in FIG.

まず、演算器210は、外部装置からツール部材11の目標位置を取得すると(ステップS401)、この取得した目標位置を用いて式(25)の3次方程式の3つの解(u1〜u3)のうち実数解u1のみを算定する(ステップS402)。   First, when the computing unit 210 obtains the target position of the tool member 11 from an external device (step S401), using the obtained target position, three solutions (u1 to u3) of the cubic equation of Expression (25) are obtained. Only the real number solution u1 is calculated (step S402).

つぎに、演算器210は、算定した実数解u1を使用して記憶器220に記憶された式(20)の4次方程式の解t1に関する第1求解演算式(35−1)を演算する。これにより、式(20)の4次方程式の解t1が算定される(ステップS403)。   Next, the arithmetic unit 210 calculates the first solution calculation formula (35-1) related to the solution t1 of the quaternary equation of the formula (20) stored in the storage unit 220 using the calculated real solution u1. Thereby, the solution t1 of the quaternary equation of Expression (20) is calculated (Step S403).

そして、算定した解t1に対応する関節角θ3を算定する(ステップS404)。なお、算定した関節角θ3を用いて、式(22)により関節角θ1が算定され、式(21)により関節角θ2が算定される(ステップS405)。   Then, the joint angle θ3 corresponding to the calculated solution t1 is calculated (step S404). In addition, using the calculated joint angle θ3, the joint angle θ1 is calculated by the equation (22), and the joint angle θ2 is calculated by the equation (21) (step S405).

以上のとおり、式(20)の4次方程式の4つの解t1〜t4を求めるための4つの第1求解演算式(式(35−1)〜(35−4))と、4つの解t1〜t4に応じてとり得る4つの形態1〜4とを予め対応付けておき、電源オン時の形態に基づいて4つの第1求解演算式(式(35−1)〜(35−4))のうちいずれか1つを、電源オン後の逆変換処理において使用する。この結果、7軸多関節ロボット100の形態の急激な変化を抑えることが可能となる。   As described above, the four first solving equations (formulas (35-1) to (35-4)) and the four solutions t1 for obtaining the four solutions t1 to t4 of the quaternary equation of the formula (20). The four forms 1 to 4 that can be taken according to ~ t4 are associated in advance, and the four first solving equations (formulas (35-1) to (35-4)) are based on the form when the power is turned on. Any one of them is used in the inverse conversion process after the power is turned on. As a result, it is possible to suppress a sudden change in the form of the seven-axis articulated robot 100.

さらに、電源オン時の7軸多関節ロボット100の初期形態を特定するために、4つの第1求解演算式(式(35−1)〜(35−4))についてそれぞれ1回限り演算すればよく、電源オンより後の逆変換処理においては特定された1つの第1求解演算式以外の残りの3つの第1求解演算式については演算しなくても済むので、逆変換処理に要する演算量を抑えることができ、7軸多関節ロボット100の制御の高速化が図られることとなる。   Furthermore, in order to specify the initial form of the seven-axis articulated robot 100 when the power is turned on, each of the four first solving equations (Equations (35-1) to (35-4)) is calculated only once. In the inverse conversion process after power-on, it is not necessary to calculate the remaining three first solution calculation expressions other than the specified first solution calculation expression, so the amount of calculation required for the inverse conversion process Thus, the control of the seven-axis articulated robot 100 can be speeded up.

また、式(20)の4次方程式を解くためには式(25)の3次方程式を解くことになるが、当該3次方程式である以上、3つの解u1〜u3が生じてしまう。よって、この3つの解u1〜u3のうちいずれか1つを予め選定しておけば、4次方程式の4つの解t1〜t4の組合せについてのばらつきを抑えることができる。   Further, in order to solve the quaternary equation of Equation (20), the cubic equation of Equation (25) is solved. However, as long as it is the cubic equation, three solutions u1 to u3 are generated. Therefore, if any one of the three solutions u1 to u3 is selected in advance, it is possible to suppress variations in the combination of the four solutions t1 to t4 of the quaternary equation.

さらに、電源オン時に4次方程式を解くために3次方程式を解く際に、カルダノの解法とビエタの解法とを使い分けて複素数演算をしなくて済むようにしたので、演算量を抑えることができ、ロボットシステムへの実装が容易なものとなる。   In addition, when solving the quartic equation when the power is turned on, it is not necessary to perform the complex number calculation by using the Cardano method and the Vieta method separately, so the amount of calculation can be reduced. This makes it easy to mount on a robot system.

上記説明から、当業者にとっては、本発明の多くの改良や他の実施の形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本発明を実行する最良の態様を当業者に教示する目的で提供されたものである。本発明の精神を逸脱することなく、その構造及び/又は機能の詳細を実質的に変更できる。   From the foregoing description, many modifications and other embodiments of the present invention are apparent to persons skilled in the art. Accordingly, the foregoing description should be construed as illustrative only and is provided for the purpose of teaching those skilled in the art the best mode of carrying out the invention. The details of the structure and / or function may be substantially changed without departing from the spirit of the invention.

本発明は、7軸多関節ロボットの逆変換処理にとって有益である。   The present invention is useful for the inverse transformation processing of a seven-axis articulated robot.

2 基台
3 旋回台
4〜8 アーム部材
9 アタッチメント
10 手首装置
11 ツール部材
JT1〜JT7 第1乃至第7関節
A1〜A7 第1乃至第7回転軸
M1〜M7 サーボモータ
D1〜D7 位置検出器
L0〜L5 第1乃至第6リンク長
100 7軸多関節ロボット
200 ロボット制御装置
210 演算器
220 記憶器
2 base 3 swivel 4 to 8 arm member 9 attachment 10 wrist device 11 tool members JT1 to JT7 first to seventh joints A1 to A7 first to seventh rotation shafts M1 to M7 servo motors D1 to D7 position detector L0 ˜L5 1st to 6th link length 100 7-axis articulated robot 200 Robot control device 210 Computing unit 220 Memory

Claims (6)

先端に設けられた手首と基端から当該手首に向かって順に設けられた7つの関節とを具備し、前記7つの関節が回転軸をそれぞれ有しかつそれぞれの回転軸の周りに次の関節を回転させるように構成された7軸多関節ロボットの制御方法であって、
前記7つの回転軸のうちのいずれか1つを冗長軸に、残りの回転軸のうちの3つを基軸に、かつ当該3つの基軸のうちのいずれか1つを変数軸に定め、かつ、前記基端から前記手首までの直線距離と前記基端に最も近い前記回転軸の延在方向における前記基端から前記手首までの距離とに基づく手首の位置と前記変数軸を有した関節の関節角とに関して定式化された4次方程式を解いて前記手首の位置を前記3つの基軸を有した各関節の関節角に逆変換するステップを含み、
前記4次方程式は、その4つの解にそれぞれ対応する4つの第1求解演算式を用いて解くことが可能なものであり、かつ、前記7軸多関節ロボットが採り得る形態は、前記4つの解ひいては前記4つの第1求解演算式に対応して定まるものであり、
電源オン時に、当該電源オン時における前記7軸多関節ロボットの初期形態に基づいて、前記4つの第1求解演算式のうちいずれか1つを特定して記憶し、
前記電源オンの後、前記記憶した1つの第1求解演算式を用いて前記逆変換するステップを遂行して前記手首の目標位置から前記3つの基軸を有した各関節の関節角を算定し、それにより、前記7軸多関節ロボットの動作を制御する、7軸多関節ロボットの制御方法。
A wrist provided at the distal end and seven joints provided in order from the proximal end toward the wrist, the seven joints each having a rotation axis, and a next joint around each rotation axis. A control method for a seven-axis articulated robot configured to rotate,
Any one of the seven rotation axes as a redundant axis, three of the remaining rotation axes as a base axis, and any one of the three base axes as a variable axis; and The joint position having the variable axis and the position of the wrist based on the linear distance from the base end to the wrist and the distance from the base end to the wrist in the extending direction of the rotation shaft closest to the base end Solving the quaternary equation formulated with respect to angles and inversely transforming the wrist position into the joint angles of each of the joints having the three base axes;
The quaternary equation can be solved using the four first solution calculation equations corresponding to the four solutions, respectively, and the form that the 7-axis articulated robot can take is the four The solution is determined corresponding to the four first solving equations,
When turning on the power, based on the initial form of the 7-axis articulated robot at the time of turning on the power, any one of the four first solution calculation formulas is specified and stored,
After the power is turned on, the inverse transformation step is performed using the stored first first solving equation to calculate the joint angle of each joint having the three base axes from the wrist target position, Thereby, the control method of the 7-axis articulated robot, wherein the operation of the 7-axis articulated robot is controlled.
前記電源オン時に、前記4つの第1求解演算式を用いて前記4次方程式を解いて前記4つの解を求め、当該4つの解それぞれについて当該電源オン時における前記手首の位置を前記3つの基軸を有した各関節の関節角の少なくともいずれか1つに逆変換し、当該1つの基軸を有した関節の関節角と前記電源オン時の前記7軸多関節ロボットの初期形態に対応する前記3つの基軸のうちの1つを有した関節の関節角とを比較することにより、前記4次方程式の4つの第1求解演算式のうちいずれか1つを特定して記憶する、請求項1に記載の7軸多関節ロボットの制御方法。   When the power is turned on, the four first-order equations are used to solve the quartic equation to obtain the four solutions, and the position of the wrist when the power is turned on for each of the four solutions is determined based on the three basic axes. Is converted back to at least one of the joint angles of each joint having the above-mentioned three joint angles corresponding to the joint angle of the joint having the one base axis and the initial form of the seven-axis articulated robot when the power is turned on 2. The method according to claim 1, wherein one of the four first solving equations of the quaternary equation is specified and stored by comparing a joint angle of a joint having one of the basic axes. The control method of the 7-axis articulated robot as described. 全ての互いに隣り合う前記関節の回転軸が互いに垂直であり、
前記基端から前記手首に向かって順に設けられた7つの関節を、それぞれ、第1関節、第2関節、第7関節、第3関節、第4関節、第5関節、及び第6関節と定義した場合、前記冗長軸は前記第7関節の回転軸であり、前記3つの基軸は前記第1関節の回転軸、前記第2関節の回転軸、及び前記第3関節の回転軸であり、かつ前記変数軸は前記第3関節の回転軸である、請求項1に記載の7軸多関節ロボットの制御方法。
The rotation axes of all adjacent joints are perpendicular to each other;
Seven joints provided in order from the proximal end toward the wrist are defined as a first joint, a second joint, a seventh joint, a third joint, a fourth joint, a fifth joint, and a sixth joint, respectively. The redundant axis is a rotation axis of the seventh joint, the three base axes are a rotation axis of the first joint, a rotation axis of the second joint, and a rotation axis of the third joint; and The method of controlling a seven-axis articulated robot according to claim 1, wherein the variable axis is a rotation axis of the third joint.
前記4つの第1求解演算式を用いて前記4次方程式を解く際に、フェラーリの解法に基づいた前記4次方程式を解くための分解方程式として定式化された3次方程式の3つの解に含まれる1つの実数解を求め、かつ当該求めた前記3次方程式の1つの実数解を用いて前記4つの第1求解演算式を演算する、請求項1又は3に記載の7軸多関節ロボットの制御方法。   Included in the three solutions of the cubic equation formulated as a decomposition equation for solving the quartic equation based on the Ferrari solution when the quartic equation is solved using the four first solving equations. 4. The 7-axis articulated robot according to claim 1, wherein one real solution is calculated, and the four first solution calculation equations are calculated using one real solution of the calculated cubic equation. Control method. 前記3次方程式の3つの解に含まれる1つの実数解を求める際に、前記3次方程式の判別式が0又は正の場合には、カルダノの解法により求まる前記3次方程式の1つの実数解と2つの虚数解のうち当該1つの実数解に対応した当該カルダノの解法に基づく第2求解演算式を使用し、前記3次方程式の判別式が負の場合には、ビエタの解法により求まる前記3次方程式の3つの実数解のうち絶対値が同一かつ符号の異なる2つの実数解以外の1つの実数解に対応した当該ビエタの解法に基づく第3求解演算式を使用する、請求項4に記載の7軸多関節ロボットの制御方法。   When obtaining one real solution included in the three solutions of the cubic equation, if the discriminant of the cubic equation is 0 or positive, one real solution of the cubic equation obtained by the Cardano solution And the second solution calculation equation based on the Cardano solution corresponding to the one real solution among the two imaginary solutions, and when the discriminant of the cubic equation is negative, the solution obtained by the Vieta solution 5. The third solving equation based on the Vieta solution corresponding to one real solution other than two real solutions having the same absolute value and different signs among the three real solutions of the cubic equation is used. The control method of the 7-axis articulated robot as described. 先端に設けられた手首と基端から当該手首に向かって順に設けられた7つの関節とを具備し、前記7つの関節が回転軸をそれぞれ有しかつそれぞれの回転軸の周りに次の関節を回転させるように構成された7軸多関節ロボットの制御方法をコンピュータに遂行させる、7軸多関節ロボットの制御プログラムであって、
前記制御方法は、
前記7つの回転軸のうちのいずれか1つを冗長軸に、残りの回転軸のうちの3つを基軸に、かつ当該3つの基軸のうちのいずれか1つを変数軸に定め、かつ、前記基端から前記手首までの直線距離と前記基端に最も近い前記回転軸の延在方向における前記基端から前記手首までの距離とに基づく手首の位置と前記変数軸を有した関節の関節角とに関して定式化された4次方程式を解いて前記手首の位置を前記3つの基軸を有した各関節の関節角に逆変換するステップを含み、
前記4次方程式は、その4つの解にそれぞれ対応する4つの第1求解演算式を用いて解くことが可能なものであり、かつ、前記7軸多関節ロボットが採り得る形態は、前記4つの解ひいては前記4つの第1求解演算式に対応して定まるものであり、
電源オン時に、当該電源オン時における前記7軸多関節ロボットの初期形態に基づいて、前記4つの第1求解演算式のうちいずれか1つを特定して記憶し、
前記電源オンの後、前記記憶した1つの第1求解演算式を用いて前記逆変換するステップを遂行して前記手首の目標位置から前記3つの基軸を有した各関節の関節角を算定し、それにより、前記7軸多関節ロボットの動作を制御する、7軸多関節ロボットの制御プログラム。
A wrist provided at the distal end and seven joints provided in order from the proximal end toward the wrist, the seven joints each having a rotation axis, and a next joint around each rotation axis. A control program for a 7-axis articulated robot that causes a computer to execute a control method for a 7-axis articulated robot configured to rotate,
The control method is:
Any one of the seven rotation axes as a redundant axis, three of the remaining rotation axes as a base axis, and any one of the three base axes as a variable axis; and The joint position having the variable axis and the position of the wrist based on the linear distance from the base end to the wrist and the distance from the base end to the wrist in the extending direction of the rotation shaft closest to the base end Solving the quaternary equation formulated with respect to angles and inversely transforming the wrist position into the joint angles of each of the joints having the three base axes;
The quaternary equation can be solved using the four first solution calculation equations corresponding to the four solutions, respectively, and the form that the 7-axis articulated robot can take is the four The solution is determined corresponding to the four first solving equations,
When turning on the power, based on the initial form of the 7-axis articulated robot at the time of turning on the power, any one of the four first solution calculation formulas is specified and stored,
After the power is turned on, the inverse transformation step is performed using the stored first first solving equation to calculate the joint angle of each joint having the three base axes from the wrist target position, Thereby, a control program for the seven-axis articulated robot for controlling the operation of the seven-axis articulated robot.
JP2009295252A 2009-12-25 2009-12-25 7-axis articulated robot control method and control program Active JP5371733B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009295252A JP5371733B2 (en) 2009-12-25 2009-12-25 7-axis articulated robot control method and control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009295252A JP5371733B2 (en) 2009-12-25 2009-12-25 7-axis articulated robot control method and control program

Publications (2)

Publication Number Publication Date
JP2011131362A true JP2011131362A (en) 2011-07-07
JP5371733B2 JP5371733B2 (en) 2013-12-18

Family

ID=44344642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009295252A Active JP5371733B2 (en) 2009-12-25 2009-12-25 7-axis articulated robot control method and control program

Country Status (1)

Country Link
JP (1) JP5371733B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103252779A (en) * 2012-02-16 2013-08-21 精工爱普生株式会社 Robot control device, robot control method, robot control program, and robot system
JP2015037818A (en) * 2013-08-17 2015-02-26 セイコーエプソン株式会社 Robot, control method for robot, program, and route creation device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05303418A (en) * 1992-02-27 1993-11-16 Shin Meiwa Ind Co Ltd Method for controlling drive of cylindrical coordinate robot
JP2005193306A (en) * 2003-12-26 2005-07-21 Kawasaki Heavy Ind Ltd Industrial robot and its control method
JP2007136590A (en) * 2005-11-16 2007-06-07 Kawasaki Heavy Ind Ltd Control device and control method for redundant robot having redundant joint

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05303418A (en) * 1992-02-27 1993-11-16 Shin Meiwa Ind Co Ltd Method for controlling drive of cylindrical coordinate robot
JP2005193306A (en) * 2003-12-26 2005-07-21 Kawasaki Heavy Ind Ltd Industrial robot and its control method
JP2007136590A (en) * 2005-11-16 2007-06-07 Kawasaki Heavy Ind Ltd Control device and control method for redundant robot having redundant joint

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103252779A (en) * 2012-02-16 2013-08-21 精工爱普生株式会社 Robot control device, robot control method, robot control program, and robot system
JP2015037818A (en) * 2013-08-17 2015-02-26 セイコーエプソン株式会社 Robot, control method for robot, program, and route creation device

Also Published As

Publication number Publication date
JP5371733B2 (en) 2013-12-18

Similar Documents

Publication Publication Date Title
Lee et al. Geometric approach in solving inverse kinematics of PUMA robots
KR101498836B1 (en) Control device and teaching method for seven-shaft multi-joint robot
JP5701055B2 (en) 7-axis articulated robot control method, control program, and robot controller
Rezaei et al. Position, Jacobian and workspace analysis of a 3-PSP spatial parallel manipulator
Merlet et al. Parallel mechanisms
JP2014018912A (en) Robot control device, robot control method, robot control program and robot system
JP5371733B2 (en) 7-axis articulated robot control method and control program
Hung et al. Tele-operation of a 6-DOF serial robot using a new 6-DOF haptic interface
Zhu et al. Inverse kinematics solution of a new circumferential drilling machine for aircraft assembly
JP4230196B2 (en) Positioning calculation method and positioning calculation apparatus
JP3224839B2 (en) Manipulator control device
JPH02168303A (en) Control method for robot
JP2019093487A (en) Robot control device and robot reverse conversion processing method
JPS63267177A (en) Master/slave manipulator
Su et al. A heterogeneous master-slave teleoperation method for 7-DOF manipulator
JP4268035B2 (en) Industrial robot and control method thereof
JP3146463B2 (en) Elbow movement control device for redundant axis manipulator
JP2019093486A (en) Robot controller and robot inverse transformation processing method
Kendricks A kinematic analysis of the gmf a-510 robot: An introduction and application of groebner basis theory
Melchiorri Kinematic model of robot manipulators
JP2019093488A (en) Robot control device and robot reverse conversion processing method
Petrenko et al. Mathematical method of mapping configuration space for manipulator master-slave teleoperation
Wang et al. Kinematic and Static Analysis of a Coupled-Input Cable-Driven Force Feedback Master Manipulator
Wang et al. A universal and simple method to solve the velocity/acceleration of parallel mechanism
Prajapati Kinematics of parallel mechanism based robot manipulator with passive joints variables

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130905

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130917

R150 Certificate of patent or registration of utility model

Ref document number: 5371733

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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