JP2676721B2 - Control device for articulated robot - Google Patents

Control device for articulated robot

Info

Publication number
JP2676721B2
JP2676721B2 JP58128929A JP12892983A JP2676721B2 JP 2676721 B2 JP2676721 B2 JP 2676721B2 JP 58128929 A JP58128929 A JP 58128929A JP 12892983 A JP12892983 A JP 12892983A JP 2676721 B2 JP2676721 B2 JP 2676721B2
Authority
JP
Japan
Prior art keywords
vector
joint
robot
hand
arm
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.)
Expired - Lifetime
Application number
JP58128929A
Other languages
Japanese (ja)
Other versions
JPS6020876A (en
Inventor
進 川上
嘉輝 中村
誠 荒木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP58128929A priority Critical patent/JP2676721B2/en
Publication of JPS6020876A publication Critical patent/JPS6020876A/en
Application granted granted Critical
Publication of JP2676721B2 publication Critical patent/JP2676721B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)
  • Control Of Position Or Direction (AREA)

Description

【発明の詳細な説明】 (発明の技術分野) 本発明は、多関節型ロボットの手先位置及び姿勢の制
御装置に関する。 (従来技術と問題点) 従来において、例えば、多関節型ロボットは第1図に
示すように複数個のアーム10,11,12,……と、各アーム
を連結する屈曲関節21,22,……と、アームに組み込まれ
た回転関節31,32,……と、アーム先端に取り付けられた
手先40からなる。この他にアームにスライド機構を組み
込んでアームの長さを可変にしたものもある。作業内容
はある位置で部品を把持し、それを他の位置へ運んでそ
こへ置く若しくは取り付ける等であるが、かかる運動に
必要な自由度は手先位置決定用に3軸、手先の姿勢制御
用に3軸、合わせて6軸である。第1図の例では屈曲関
節が21,22,23の3つ、回転関節が31,32,33の3つあるの
で6関節型であり、上記作業が可能である。 各関節にある屈曲または回転角を与えれば、それに応
じて手先の位置および姿勢が定まる。各関節の屈曲、回
転角を知って手先の位置、姿勢を求めるという方法がロ
ボットの1制御法であり、これとは逆に、先ず手先の位
置、姿勢を定め、かかる位置、姿勢にするのに必要な各
関節の屈曲、回転角を求めるという方法が、ロボットの
他の制御法である。前者は計算が比較的容易であり、各
アームの長さ、各関節の屈曲回転角、座標変換行列など
を用いて手先の位置、姿勢を求めることができる。以下
に、手先の位置、姿勢を求める方法について説明する。 第1図において、O0−x0y0x0はロボットに対して定義
された絶対座標系、Oi−xiyizi(1≦i≦6;以下同様と
する)は各関節およびハンドに定義された座標系であ
る。θ12345は、アームをX0軸方向に
ねじれなく真直ぐに伸ばしたときを初期状態(θi=
0)とする、つまり屈曲関節θ、θ、θの各回転
中心軸が平行に整列した状態の時、各回転関節θ、θ
、θが回転していてもそれらの回転角度を0゜とし
て扱い、同時に各屈曲関節の回転角度を0゜とする、各
関節の回転角度を表し、L1,L2,L3+L4,L5+L6は、それ
ぞれ腰の高さを示すアーム10の長さ(回転関節31の上下
両側のアームを含む長さ)、上腕のアーム11の長さ、前
腕のアーム12の長さ、手首からハンドの根本までのアー
ム13の長さを表す。 手先の位置・姿勢のベクトルを (ここで、「α,β,γ角」=「オイラー角」であり、
は転置ベクトルを意味する。なお「オイラー角」の定
義は“合田周平、木下源一郎共著「ロボット工学」(コ
ロナ社,昭和52年8月10日発行)第159頁”の記載に従
い、絶対座標系であるO0−x0y0z0に対して姿勢ベクトル
がなす角をオイラー角としている)と表すと、関節角ベ
クトルΘ=(θ12345が与えられ
た時、 の値は次のようにして求められる。第2図にオイラー角
α,β,γを示す。Oi-1−xi-1yi-1zi-1からOi−xiyizi
への座標変換行列を とすると、Oi-1−xi-1yi-1zi-1でのある点の座標値を Oi−xiyiziでのそれを としたとき、 の関係が成り立つ。ここで は、次のような4×4行列である。 但し、Riは座標系の回転を表す3×3行列、 は座標系の平行移動を表す3次元ベクトル、 は3次元零ベクトルである。は次のようになる。 従って、O0−x0y0z0からO6−x6y6z6へのトータルな座
標変換行列 は、 と表されるから、絶対座標系O0−x0y0z0における手先の
位置 は、ハンドに定義された座標系O6−x6y6z6におけるその
位置を とすると、次のように計算される。 また、第2図に示すようにx0軸、y0軸、z0軸に対する
x6軸、y6軸、z6軸の方向余弦を順にH1,H2,H3とし、O6
x6y6z6の原点の座標値を とすると、前述した座標変換行列 とは、次の関係が成り立つ。 従って、絶対座標系O0−x0y0z0における手先の姿勢 を、ハンドに定義された座標系O5−x5y6z6の姿勢と同じ
であると定義することにより、α,β,γはオイラー角
の定義より、 と計算される。 以上のように、関節角ベクトルΘが与えられると、手
先の位置・姿勢ベクトル は一意に求めることができる。 しかしながら、ロボットの使用上からは後者の方法が
重要視される。 すなわち、ロボットにおいては、その動作指定は教示
データで行っている。 つまり、ティーチングボックス等を用い、またはロボ
ットの先端を持ってロボットを移動させ、各点の座標に
おける各アームの関節角を記憶させた後、この記憶させ
た教示データに基づいて、ロボットを動作させている。 しかしながら、このようなロボットのティーチング動
作は、時間がかかると共に、その操作は、大変煩わしい
という欠点がある。このため、近年、ロボットの動作指
定は、ロボット言語あるいは、CAD(Computer Aided De
sign)出力に応じて行おうとしている。 つまり、この出力は具体的な移動量だけの指令値であ
り、ロボットは、この指令値に応じた動作を行えること
が要求されている。しかしながら、この方法は、与えら
れた手先の位置、姿勢から各関節の回転角を求めなけれ
ばならず、計算が厄介である。 以下に、従来の手先の位置、姿勢のベクトルが与えら
れたときの各関節の回転角を行列を用いて求める方法に
ついて説明する。 前述したように、本発明ではオイラー角は絶対座標系
O0−x0y0z0で定義されるから、第1図に示すように、手
先の位置、姿勢ベクトル が与えられたとき、ハンドに定義された座標系の原点 は、次のように求められる。 オイラー角(α,β,γ)の定義より、絶対座標系O0
−x0y0z0におけるz0軸、y0軸、x0軸回りの回転の変換行
列は、順に である。 このとき、ハンドに定義された座標系O6−x6y6z6のX6
軸、Y6軸、Z6軸に対する方向余弦 となる。ここで、座標変換行列 とは、次の関係が成り立つ。 以上により、 が得られる。 上記得られた▲x0 6▼,▲y0 6▼,▲z0 6▼に関する
各式を用いて、各関節の関節角を求める。まず、 より第5関節に定義された座標系の原点 を求める。 これよりθは、 次に、 の第4列ベクトルは等値であるから、 これを変形して、次のようにする。 次に、の演算を行い、 を得る。 このに,を代入して を得る。 左辺に正弦・余弦の合成公式を適用して (ここで、φ=tan-1(Q/R)) ゆえに、θは、 また、,より、θは、 より得られる。 次に、X6軸に対するの第1列ベクトルは等値であるから、 次に、 cosθ×+sinθ×の演算を行い、 cos(α−θ)・cosβ= cos(θ+θ)・cosθ −sin(θ+θ)・cosθ・sinθ …… sin(θ+θ)×+cos(θ+θ)× sinβ・sin(θ+θ) +cos(α−θ)cosβ・cos(θ+θ) =cosθ … これより、θは、 θ=cos-1〔sinβ・sin(θ+θ) +cos(α−θ)・cosβ・cos(θ+θ)〕 次に、−sinθ×+cosθ×の演算を行い、 sin(α−θ)・cosβ=sinθ・sinθをに代入して sinβ・cos(θ+θ) −cos(α−θ)・cosβ・sin(θ+θ) =cosθ・sinθ これより、θは、 次に、 の第3行ベクトルの関係より、 次に、cosθ×−sinθ×の演算を行い、 cosβ・sin(θ−γ)= −cos(θ+θ)・sinθ 次に、sinθ×−cosθ×の演算を行い、 cosβ・cos(θ−γ)= cos(θ+θ)・cosθ・cosθ −sin(θ+θ)・sinθ これより、θは、 上述したように、θ〜θの計算は非常に厄介であ
り、ハードウェア化が困難であると共に、ソフトウェア
による処理時間が長大化するという欠点がある。また、
ハードウェア化したとしても専用化してしまい、他の関
節構成のロボットを作った時にこのハードウェアを利用
できないという欠点がある。 また関節型ロボットは6関節あれば手先の位置、姿勢
を所望通りにすることができるが、周囲に障害物があり
それは回避しながら任意の姿勢をとる、あるいは関節型
ロボットが2つあり、2本腕で強調動作をするなどの場
合には6関節では困難がある。これに対しては自由度を
更に増して、即ち冗長自由度を持たせた7関節型が有効
である。 (発明の目的) 本発明の目的は手先の位置、姿勢を所望通りにするた
めの各関節の屈曲、回転角を、ハードウェア化が容易で
計算機による演算時間が長大化することなく求めること
ができ、高速動作が可能で精度を向上し得る多関節ロボ
ットの制御方法を提供することにある。 (発明の構成) 本発明は複数個のアームを関節により連結して構成し
た多関節型ロボットの制御装置において、上位装置より
指示される前記複数個のアームのうちの手先の位置ベク
トル及び姿勢ベクトルに基づいて各アームの方向単位ベ
クトル及び各アームをそれぞれ含む複数の面の各法線単
位ベクトルを求めるベクトル算出手段と、前記方向単位
ベクトル及び前記法線単位ベクトルに基づいて各関節の
回転角を求める回転角算出手段と、前記求められた回転
角に応じて各関節を駆動する駆動手段とを具備してなる
ことを特徴とする。 (発明の実施例) 以下、本発明の多関節型ロボットの制御装置がその基
礎としている、多関節ロボットの制御方法の実施例を図
面を用いて詳細に説明する。 第3図は第1図に示す6関節型ロボットのベクトルの
定義を示す図である。第3図を用いてベクトルを用いた
関節角の算出方法について説明する。 (1)面ベクトルの導入による関節の拘束規約 第3図に示すように、各回転関節毎に対象とする面が
切り替わるので、回転関節の切れ目毎に、π123,
π面のように複数の面πiを設定し、各ベクトルを次の
ように定義する。 L1,L2,L3+L4,L5+L6:順に、腰の高さ、上腕の長さ、前
腕の長さ、手首からハンド根本までの長さ なお第3図において、 のベクトルはx6軸からずれた位置にあるが、これはロボ
ットのハンドにエアーガンやエアードライバーを取り付
けた場合、その先端位置がO6−x6y6z6の座標系から だけ平行移動した位置にあるからである。 (a)屈曲関節の拘束規約 第4図(a)に示すように屈曲関節は面を共有してい
るから、 と直交しているから、 また、関節角θkは次式で与えられる。 (b)回転関節の拘束規約 第4図(b)に示すように回転関節は軸を共有してい
るから、 と直交しているから、 また、関節角θkは次式で与えられる。 したがって、第3図に示す構成の6関節ロボットの場
合、 が求まれば、関節角ベクトルΘ=(θ1234
5を決定することができる。 (2)面ベクトル、方向ベクトルの決定条件 (a)面ベクトルと方向ベクトルの直交関係 上段に面ベクトル、下段に方向ベクトルを配置し、直
交しているベクトルを線で結んで表示した図を直交ダイ
ヤグラムと呼ぶ。第3図に示す構成の多完成ロボットの
場合、(1)で示した関節の拘束規約(,)を用い
て直交関係を摘出すると第5図に示す直交ダイヤグラム
となる。 (b)位置ベクトル と方向ベクトルの関係 (c)各アームの長さの規約 アームは回転関節、屈曲関節で連結して構成されてい
るから、各アームの長さは不変である。従って、 以上の3条件を用いて、面ベクトル、方向ベクトルを
決定する。 (3)関節角の導出(面ベクトル、方向ベクトルの決
定) (a)根本ベクトル は定義によって決められているベクトルであり、値は不
変である。 ここで、位置ベクトル は、第1図を用いて説明した、手先の位置、姿勢ベクト
が与えられたときのハンドに定義された座標系の原点 であり、 ハンドに定義された座標系における手先の位置 が与えられると、次式で求められる。 また、手先の姿勢ベクトル をハンドに定義された座標系の姿勢ベクトルと同じであ
ると定義しているので、 はオイラー角の定義から、 である。結果として は第3図のx6と同一の方向を持つ単位ベクトルとなり、 はy6と同一の方向を持つ単位ベクトルとなる。 (c)面ベクトル の決定 第3図に示すベクトル を導入する。 はπ面上に存在し、π面の法線ベクトルが である。そのためロボットの関節がどのように屈曲回転
しても、 と直交(直交ダイヤグラムは第5図に示す)している。
このベクトル は、次式で表される既知ベクトルである。 従って、 は次式で決定される。 (d)方向ベクトル の決定 前述した はπ面上にあるから、次のように表せる。 ここで、π面上に新たに、互いに直交するベクトル を定義する。 このとき、 を用いて表せる。 ,を,に代入して、 との内積を求めると A=L2a1+(L3+L4)・b1 …… 0=L2a2+(L3+L4)・b2 …… また、 であるから ,,より の係数を,に代入して、 が得られる。 (e) の決定 以上の を用いて関節角Θは決定される。 次に、第6図を用いて7関節型ロボットの場合につい
て説明する。第3図と比較すれば明らかなようにアーム
11にも回転関節を加えて屈曲関節3、回転関節4の7関
節としている。このロボットは人間の腕によく似た動作
を行うことができる。 図において、21,22,23は屈曲関節、31,32,33,34は回
転関節、 は夫々アーム10〜13の方向単位ベクトル、L1,L2+L7,L3
+L4,L5+L6は夫々アーム10〜13の長さ、θ〜θ
各関節の屈曲、回転(以下回転と称する)角、 はアームの手先40の目標位置、 は手先40の位置及び姿勢ベクトルである。 また、各回転関節毎に対象とする面が切り替わる(本
実施例の場合、屈曲関節は面が切り替わらないと定義し
て説明しているが、後で第7図(a)と共に説明するよ
うに面の定義の仕方により、屈曲関節毎に面が切り替わ
る)ので、回転関節の切れ目毎に、π1234
面とし、これらの法線ベクトルを とする。また、アーム11と12は腕と肘に相当するが、こ
れらのアーム及び屈曲関節21と23を結ぶ線分(このベク
トルをとする。 ベクトル は、不変ベクトルともいう)が構成する三角形の、 を軸とする傾斜角をη(η=0は関節22を上にして該三
角形がZ軸と整列した状態とする)とする。つまり第11
図(a)に示すように、ベクトル を軸としてθを右ネジの進む方向へ回転させたときの
回転角がηであり、このときの回転方向が回転角の増加
方向となる。第6図に示される構成のロボットでは、適
当な回転関節と屈曲関節の間のアームの長さを0にする
ことにより、ベクトル を軸にして関節22を回転させることができる。例えば第
6図において、回転関節θと屈曲関節θの間のアー
ムの長さを0として2自由度運動機構とすればよく、同
様にθとθの間あるいはθとθの間の各アーム
の長さを0にすれば、θは第11図(b)に示すように
ベクトル を軸にして回転することができる。 このロボットではアーム10の始端は直交座標軸の原点
0に固定され、アーム10は上向き(Z軸方向)に固定さ
れている。従って方向単位ベクトル 面πの法線単位ベクトル であり、アーム10をベクトル表示すると となる。 ここで との関係を第7図で説明するに、第7図(a)は屈曲関
節24,25が90゜方向を変えてアーム14〜16に取り付けら
れた例を示し、アーム14と15はπ面に、アーム15と16
はπ面にあるとしている。屈曲関節ではアーム例えば
14,15のなす角に拘わらず、該アーム14,15は同じ平面上
にあるから面πとπは直交しており、従って面π6,
πの法線単位ベクトル の内積は0即ち、 である。また方向単位ベクトル は面πとπを共有しているから の関係もある。ここで などの添字5,6,……はi,j,……(これらは1,2,3,……の
1つ)と一般化できるものであり、この点は以下でも同
様である。関節24における屈折角θは で与えられる。第7図(b)は回転関節35と屈曲関節24
を用いた例で、アーム14はπ面にあり、アーム15と16
はπ面にあるとしている。この場合の方向単位ベクト
ルは に直交しているから である。関節35の回転角θは である。 第7図(c),(d)はスライド関節を示し、(c)
は平行スライド、(d)は一般スライドである。45はス
ライドを示す。平行スライドでは であり、アームの長さはスライド量だけ伸縮する。一般
スライドでは などは構造により定まる値をとる。 なお一般的には、面ベクトルや方向ベクトルからスラ
イド関節のスライド量を演算することはできない。しか
し、スライド関節のスライド量が、他の関節角θ12,
θとは独立に定められる条件、即ち,面ベクトルや方
向ベクトルを用いることなくスライド関節のスライド量
を定められるような条件がある場合、例えば、スカラー
型(水平多関節型)ロボットで水平方向にはスライド関
節がなく先端部分にのみ鉛直方向のスライド関節を持っ
ている場合などには、本発明をスライド関節を有するロ
ボットに適用することが可能にある。 方向単位ベクトル(方向ベクトルと略) と法線単位ベクトル(面ベクトルと略す) とは直交し、多関節型ロボットではこれらが継続して行
くことになる。この関係は第8図に示すように上段に面
ベクトル、下段に方向ベクトルを配置し、直交関係にあ
るベクトルを直線で結んで表すと、全体の関係が一目で
分かるようになる。第8図(a)は第6図のロボットを
例にとったものである。 に直交し、 に直交し……という関係が一目瞭然である。第8図
(b)は同図(c)のロボットの 関係図である。このロボットでは回転関節のないアーム
があり、また90゜向きを変えた屈曲関節25があるので 関係は複雑であるが、第8図(b)の関係図を画いてみ
ると、 は同一平面上にあり、また、 は同一平面上にあり、 は正規直交系を形成する。等が直ちに分かる。この第8
図の直交ダイヤグラムはロボットのアーム方向及び全関
節間の規約を全て表している。 再び第6図に戻ると、アーム10のベクトルは であり、同様な方法でアーム11〜13を表すと、ハンドに
定義された座標系の原点を表すベクトルは である。これはベクトル ηにほかならず(なお手先ベクトル はハンドに取り付けられた塗装用エアーガンやネジ締め
ドライバーなどの先端を示す)、ハンドに定義された座
標系を表す方向ベクトルは ハンドに定義された座標系を表す面ベクトルは であり、これらより各部の方向ベクトル を求めることができる。式で示すと次の如くなる。 ハンドに定義された座標系、姿勢、傾き角 結果として、 は第3図のx6と同一の方向を持つ単位ベクトルとなり、 はy6と同一の方向を持つ単位ベクトルとなる。 (ただしZ1は+1または−1をとる符号であり、詳細は
後述される。) を軸にして関節22が回転しπ面が回転したときのπ
面の回転につれて回転したπ面の法線ベクトル を与える。 ところで第6図の7関節ロボットは1冗長関節を含ん
でおり、このままでは解析的に解くことはできない。そ
こでここではηを外部から与えた。そしてθ=0のと
きη=0とし、このときの とした。従ってηは とのなす角即ちcosηとなる。 と直交するので またベクトル に垂直な は同一平面に存在するので、これより上述の が得られる。 ここで の演算中に導入されている符号Z1はロボットを円滑に動
かすために有効なもので後で説明する の演算中にもそれぞれZ2,Z3として導入されている。こ
れらの符号Z(Z1,Z2,Z3)はたとえば第7図(a)の24
の如き屈曲関節なら、この関節24の屈曲角をθとして θ=Z|θ| により求まり、また第7図(b)の35の如き回転関節な
らばこの関節の回転角をθとして θ=Z|θ| により求まる。ここでSingは、 との内積の符号のみをとることを示す。 と同方向または逆方向であり、従ってその内積には正、
負があり、この正、負はθの正、負を示している。 次に の演算におけるZ1の意味を説明する。前述したように、 であり、これについて第12図(a),(b),(c)に
示すθ>0、θ=0、θ<0の3つの場合を考え
る。なお説明を簡単にするために、第6図においてθ
=0゜、θ=0゜、θ=0゜とする。これにより第
12図(a)の場合 の方向はY0軸の方向と同一になりり、第12図(b)の場
となる。また第12図(c)の場合 は−Y0軸の方向と同一になる。 ここで、ロボットが第12図(a)の状態から第12図
(c)の状態へ連続的に動いた場合を想定すると、 の方向はY0軸の方向を向いていたものが急に−Y0軸方向
へ向いてしまう。ところでθ=0゜のとき であり、符号Z1を考える前の であるから、符号Z1を考慮しない 用いてθを求めると、 であり、第12図(a)の場合θ=0゜なので、 となり、 θ=cos-1(1)=0゜ となる。次に第12図(c)の場合を考える。θ=0
゜, なので、 になり、 θ=cos-1(1)=180゜ となってしまい、最初の仮定であるθ=0゜を満足す
ることができず、矛盾を起こす。これは制御を不安定に
する要因となり得る。 そこでこのようなことにならないように、第12図
(a)の始点の状態の符号を保存しておいて、ロボット
が連続動作しているときの の符号が変化した時点で符号を元に戻している。符号Z1
はこのために用いられ、第12図(a)の状態でZ1=1と
しておき、 とする。そして の符号が変化した時点でZ=−1とし、 とすることにより、上述した矛盾が起こらないようにす
る。また第12図(b)の状態は一般に特異点といわれる
状態であり、θηの解が不定となる。しかしこの場合は を予め一意に決定することにより回避することができ
る。 の演算 a1={A2+(L2+L7−(L3+L4}/2A(L2+L
7 b2=−a2・L2/L3 (ただしZ2,Z3は+1または−1をとる符号であり、詳
細は後述される。) ここでZ2の意味を説明する。説明を簡単にするため、
第6図においてθ=0゜、θ=0゜と仮定し、θ
については、第13図(a),(b),(c)に示すよう
にθ>0,θ=0,θ<0の3つの場合を考える。第
13図(a)の場合、 の方向はY0の方向(0,1,0)と同一となり、第13図
(b)の場合は、 そして第13図(c)の場合 の方向は−Y0軸の方向(0,−1,0)と同一になる。θ
のなす角であり、 であるから、ここでロボットが第13図(a)の状態から
第13図(c)の状態へ連続に動いた場合、 の方向はY軸方向から−Y軸方向に変わり、θは0゜
から180゜に急に変化して、θ=0゜とした最初の仮
定との矛盾が起こる。Z2はこの の符号が変わった時点で符号を元に戻し、矛盾が起こら
ないようにする。 次にZ3の意味を説明する。この場合も説明を簡単にす
るためθ=0゜と仮定し、θについて、第14図
(a),(b),(c)の3つの場合を考える。第14図
(a)では はY0軸方向を向き、第14図(b)では 第14図(c)では−Y0軸方向を向く。Z1,Z2の場合と同
様にロボットが第14図(a)の状態から第14図(c)の
状態へ動い場合、 の向きが変わり、θ=0゜とした仮定との矛盾が生じ
るのでこれを回避するためにZ3が用いられている。 Z1,Z2,Z3の意味については上述した通りであり、今用
いる所の符号Zを記憶しておいて次に進むべき所の符号
Zと比較し、符号が変化した場合のみZの符号を元の符
号に強制的に戻すものであるが、このようなZを用いて
符号を強制的に元に戻すことをしなかった場合にどうな
るかというと、一般のロボットでは、ロボットの操作者
によって与えられた目標の位置・姿勢に到達すべく,現
在いる位置・姿勢と目標位置・姿勢の間を50msecから10
0msec位(この時間間隔は、ロボットの制御計算機の能
力による)のサンプリング間隔で補間しながら移動する
が、符号が反転したことによって50msecから100msec位
の間に180゜近い関節の回転が要求されることになり、
現在あるモータの性能ではとても回転しきれない値とな
ってしまう。つまり高速制御性能に悪影響が生じる。 θiの演算 上記演算状況をみれば明らかなように、殆どが単純な
計算で済みsin,cosが入り組んだ複雑な式ではない。従
って解析は容易で、短時間で済む。 例えば、 のような外積演算、 のような内積演算と逆三角関数の組み合わせ演算がほと
んどであり、この部分をハードウェア化することによ
り、高速演算が可能である。また、この演算は、6関節
でも7関節ロボットでも共通した部分でこの部分をハー
ドウェア化してもこのハードウェアを汎用的に使うこと
が出来る。ロボットは最終位置、姿勢の指定だけでな
く、中間点も幾つか指定し、該中間的の間は補間すると
いう方法で所望の軌跡に沿った運動をさせるので、計算
量は膨大である。従って迅速に計算できる関係式でない
とロボットの動きは遅く、鈍くならざるを得ないが、こ
れを改善することができる。また計算が迅速に済めば中
間点を多数指定でき、予定の軌跡に沿った正確なロボッ
ト制御が可能になる。 第9図は、本発明にかかる多関節型ロボットの制御装
置の実施例を説明するブロック図であり、第10図は、6
関節型ロボットの場合の各関節角を求めるブロック図で
ある。 図において、50は上位装置からの指令値に基づいて、
各関節の方向単位ベクトル、法線単位ベクトルを求める
ベクトル算出手段、60はベクトル算出手段により求めら
れた各ベクトルに基づいて、各関節の関節角度θiを求
める回転角算出手段、70はロボットアーム80に回転角算
出手段60により求めた関節角度をとらせるための駆動手
段である。 (発明の効果) 以上説明したように本発明では手先の目標位置及び姿
勢ベクトルから各アームの方向ベクトルおよび面ベクト
ルを求め、これらより各関節の回転角を求めるようにし
たので、計算を容易、迅速になし得、ひいてはロボット
の動作を正確、迅速にすることができる。尚、本発明は
上記実施例に示す構成のロボットに限られるものではな
く、各種適用できることは云うまでもない。
TECHNICAL FIELD OF THE INVENTION The present invention relates to a hand position and posture control device for an articulated robot. (Prior Art and Problems) Conventionally, for example, an articulated robot has a plurality of arms 10, 11, 12, ... As shown in FIG. 1, and bending joints 21, 22 ,. ..., revolving joints 31, 32, ... incorporated in the arm, and a hand 40 attached to the tip of the arm. In addition to this, there is also one in which a slide mechanism is incorporated into the arm to make the length of the arm variable. The work content is to grasp a part at a certain position, carry it to another position and place it or attach it, etc., but the freedom required for such movement is 3 axes for determining the hand position, posture control of the hand There are 3 axes and 6 axes in total. In the example of FIG. 1, since there are three flexion joints 21, 22, 23 and three rotary joints 31, 32, 33, it is a 6-joint type, and the above work is possible. If a certain bending or rotation angle is given to each joint, the position and posture of the hand are determined accordingly. One method of controlling the robot is to obtain the position and orientation of the hand by knowing the flexion and rotation angle of each joint. On the contrary, first, the position and orientation of the hand are determined and the position and orientation are set. Another control method of the robot is to obtain the bending and rotation angles of each joint required for the robot. The former is relatively easy to calculate, and the position and orientation of the hand can be obtained using the length of each arm, the bending rotation angle of each joint, the coordinate conversion matrix, and the like. Hereinafter, a method for obtaining the position and orientation of the hand will be described. In FIG. 1, O 0 −x 0 y 0 x 0 is an absolute coordinate system defined for the robot, and O i −x i y i z i (1 ≦ i ≦ 6; the same applies below) is each joint. And the coordinate system defined for the hand. θ 1 , θ 2 , θ 3 , θ 4 , θ 5 and θ 6 are in the initial state (θi = 0) when the arm is straightened in the X 0 axis direction without twisting.
0), that is, when the rotation center axes of the flexion joints θ 2 , θ 3 , and θ 5 are aligned in parallel, the rotation joints θ 1 , θ
4. Even if θ 6 rotates, the rotation angle of each joint is treated as 0 °, and the rotation angle of each flexion joint is 0 ° at the same time. It represents the rotation angle of each joint, and L1, L2, L3 + L4, L5 + L6 are The length of the arm 10 indicating the waist height (the length including the upper and lower arms of the rotary joint 31), the length of the upper arm 11, the length of the forearm 12 and the wrist to the root of the hand. Indicates the length of the arm 13. Vector of hand position / posture (Here, “α, β, γ angle” = “Euler angle”,
T means a transposed vector. The definition of “Euler angle” is the absolute coordinate system O 0 −x 0 according to the description in “Shuhei Goda and Genichiro Kinoshita,“ Robot Engineering ”(Corona Publishing Co., Ltd., August 10, 1977), page 159” The angle formed by the posture vector with respect to y 0 z 0 is the Euler angle), and the joint angle vector Θ = (θ 1 , θ 2 , θ 3 , θ 4 , θ 5 , θ 6 ) T is given. When The value of is calculated as follows. Fig. 2 shows Euler angles α, β, γ. O i-1 −x i-1 y i-1 z i-1 to O i −x i y i z i
Coordinate transformation matrix to Then, the coordinate value of a point at O i-1 −x i-1 y i-1 z i-1 is O i −x i y i z i And when Holds. here Is a 4 × 4 matrix as follows. However, Ri is a 3 × 3 matrix that represents the rotation of the coordinate system, Is a three-dimensional vector that represents the translation of the coordinate system, Is a three-dimensional zero vector. Is as follows. Therefore, the total coordinate transformation matrix from O 0 −x 0 y 0 z 0 to O 6 −x 6 y 6 z 6 Is Therefore, the position of the hand in the absolute coordinate system O 0 −x 0 y 0 z 0 Is its position in the coordinate system O 6 −x 6 y 6 z 6 defined in the hand. Then, it is calculated as follows. Also, as shown in FIG. 2, with respect to the x 0 axis, y 0 axis, and z 0 axis
x 6-axis, y 6 axes, the direction cosine of z 6 axes sequentially and H1, H2, H3, O 6 -
the coordinates of the origin of x 6 y 6 z 6 Then, the coordinate transformation matrix described above The following relations hold. Therefore, the posture of the hand in the absolute coordinate system O 0 −x 0 y 0 z 0 Is the same as the posture of the coordinate system O 5 −x 5 y 6 z 6 defined in the hand, α, β, γ are Is calculated. As described above, given the joint angle vector Θ, the hand position / orientation vector Can be uniquely determined. However, the latter method is considered important from the viewpoint of using the robot. That is, in the robot, the operation is designated by teaching data. That is, the robot is moved by using a teaching box or the like, or by holding the tip of the robot to store the joint angle of each arm at the coordinates of each point, and then operating the robot based on the stored teaching data. ing. However, such a teaching operation of the robot takes time and the operation is very troublesome. For this reason, in recent years, robot movements have been designated by robot language or CAD (Computer Aided Decode).
sign) I am trying to do according to the output. That is, this output is a command value only for a specific movement amount, and the robot is required to be able to perform an operation according to this command value. However, with this method, the rotation angle of each joint must be obtained from the given position and posture of the hand, and the calculation is difficult. Hereinafter, a conventional method for obtaining the rotation angle of each joint when a vector of the position and orientation of the hand is given will be described. As described above, according to the present invention, the Euler angle is the absolute coordinate system.
Since it is defined by O 0 −x 0 y 0 z 0 , as shown in FIG. The origin of the coordinate system defined for the hand, given Is determined as follows. From the definition of Euler angles (α, β, γ), the absolute coordinate system O 0
The transformation matrix of the rotation around the z 0 axis, the y 0 axis, and the x 0 axis in −x 0 y 0 z 0 is It is. At this time, X 6 of the coordinate system O 6 −x 6 y 6 z 6 defined by the hand
Direction cosine for axis, Y 6 axis, Z 6 axis Becomes Where the coordinate transformation matrix The following relations hold. From the above, Is obtained. The joint angles of the respective joints are obtained by using the respective expressions relating to ▲ x 0 6 ▼, ▲ y 0 6 ▼, and ▲ z 0 6 ▼ obtained above. First, Origin of the coordinate system defined by the fifth joint Ask for. From this, θ 1 is next, Since the fourth column vector of is equal, This is transformed into the following. Next, perform 2 + 2 calculation, Get. Substitute in Get. Apply the composite formula of sine and cosine to the left side (Here, φ = tan -1 (Q / R)) Therefore, θ 2 is Also, from the above, θ 3 is Is obtained. Then for the X 6 axis Since the first column vector of is equal, Next, the operation of cos θ 1 × + sin θ 1 × is performed, and cos (α−θ 1 ) · cos β = cos (θ 2 + θ 3 ) · cos θ 5 −sin (θ 2 + θ 3 ) · cos θ 4 · sin θ 5 ...... sin (θ 2 + θ 3 ) × + cos (θ 2 + θ 3 ) × sin β · sin (θ 2 + θ 3 ) + cos (α−θ 1 ) cosβ · cos (θ 2 + θ 3 ) = cos θ 5 ... From this, θ 5 is, θ 5 = cos -1 [sinβ · sin (θ 2 + θ 3) + cos (α-θ 1) · cosβ · cos (θ 2 + θ 3) ] Next, the operation of -sinθ 1 × + cosθ 1 × , Sin (α−θ 1 ) · cos β = sin θ 4 · sin θ 5 is substituted into sin β · cos (θ 2 + θ 3 ) −cos (α−θ 1 ) · cos β · sin (θ 2 + θ 3 ) = cos θ 4 · sin θ 5 From this, θ 4 is next, From the relation of the third row vector of Next, the operation of cosθ 5 × -sinθ 6 ×, cosβ · sin (θ 6 -γ) = -cos (θ 2 + θ 3) · sinθ 4 Next, the operation of sinθ 6 × -cosθ 6 × , Cos β · cos (θ 6 −γ) = cos (θ 2 + θ 3 ) · cos θ 4 · cos θ 5 −sin (θ 2 + θ 3 ) · sin θ 5 From this, θ 6 is As described above, the calculation of θ 1 to θ 6 is very troublesome, and it is difficult to realize hardware, and there is a drawback that the processing time by software becomes long. Also,
Even if it is made into hardware, it will be specialized, and there is a drawback that this hardware cannot be used when making robots with other joint configurations. Also, the articulated robot can have the position and posture of the hand as desired if it has six joints, but there are obstacles around it and it can take an arbitrary posture while avoiding it, or there are two articulated robots. It is difficult to use 6 joints when performing an emphasizing operation with the main arm. For this purpose, a 7-joint type having more degrees of freedom, that is, having redundant degrees of freedom is effective. (Object of the Invention) An object of the present invention is to obtain the flexion and the rotation angle of each joint for making the position and posture of the hand as desired, without hardware and without increasing the calculation time by a computer. An object of the present invention is to provide a control method for an articulated robot that can perform high-speed operation and can improve accuracy. (Structure of the Invention) The present invention relates to a control device for a multi-joint robot in which a plurality of arms are connected by joints, and a position vector and a posture vector of a hand of the plurality of arms instructed by a host device. Vector calculation means for obtaining the direction unit vector of each arm and each normal unit vector of a plurality of surfaces including each arm, and the rotation angle of each joint based on the direction unit vector and the normal unit vector. It is characterized by comprising a rotation angle calculation means to be obtained and a driving means for driving each joint according to the rotation angle thus obtained. (Embodiment of the Invention) Hereinafter, an embodiment of a control method for an articulated robot on which the control device for an articulated robot of the present invention is based will be described in detail with reference to the drawings. FIG. 3 is a diagram showing the definition of the vector of the 6-joint type robot shown in FIG. A method of calculating a joint angle using a vector will be described with reference to FIG. (1) Joint constraint rule by introduction of surface vector As shown in FIG. 3, the target surface is switched for each rotary joint, so that π 1 , π 2 , π 3 ,
A plurality of planes πi are set like the π plane, and each vector is defined as follows. L 1 , L 2 , L 3 + L 4 , L 5 + L 6 : In order, waist height, upper arm length, forearm length, wrist to hand root The vector of is in a position shifted from the x 6 axis, but this is because when the air gun or air driver is attached to the robot's hand, its tip position is from the coordinate system of O 6 −x 6 y 6 z 6. This is because it is in a position that is translated in parallel. (A) Flexion joint restraint rules As shown in FIG. 4 (a), the flexion joints share a surface, Because it is orthogonal to The joint angle θk is given by the following equation. (B) Restriction rules for rotary joints As shown in FIG. 4 (b), rotary joints share an axis, Because it is orthogonal to The joint angle θk is given by the following equation. Therefore, in the case of the 6-joint robot having the configuration shown in FIG. Then, the joint angle vector Θ = (θ 1 , θ 2 , θ 3 , θ 4 , θ
5 , θ 6 ) T can be determined. (2) Determining conditions for plane vector and direction vector (a) Orthogonal relationship between plane vector and direction vector Arranging plane vectors in the upper row and direction vectors in the lower row, and connecting orthogonal vectors with lines Call it a diagram. In the case of the multi-finished robot having the configuration shown in FIG. 3, when the orthogonal relation is extracted using the joint restriction rule (,) shown in (1), the orthogonal diagram shown in FIG. 5 is obtained. (B) Position vector And the direction vector relationship (C) Rule of length of each arm Since the arms are connected by a rotary joint and a bending joint, the length of each arm is invariable. Therefore, The plane vector and the direction vector are determined using the above three conditions. (3) Derivation of joint angle (determination of plane vector and direction vector) (a) Root vector Is a vector determined by definition and its value is invariant. Where the position vector Is the position and orientation vector of the hand described with reference to FIG. Origin of the coordinate system defined for the hand when is given And Position of the hand in the coordinate system defined for the hand When is given, it is calculated by the following formula. Also, the hand posture vector Since it is defined to be the same as the pose vector of the coordinate system defined in the hand, From the definition of Euler angles, It is. as a result Is a unit vector with the same direction as x 6 in Fig. 3, Is a unit vector with the same direction as y 6 . (C) Plane vector The vector shown in Fig. 3 Is introduced. Present on the [pi 2 surface, the normal vector of [pi 2 sides It is. Therefore, no matter how the robot joint bends and rotates, Are orthogonal to each other (the orthogonal diagram is shown in FIG. 5).
This vector Is a known vector represented by the following equation. Therefore, Is determined by the following equation. (D) Direction vector The decision above Is on the π 2 plane, so it can be expressed as follows. Here, a new vector orthogonal to each other on the π 2 plane Is defined. At this time, Can be expressed using. Substitute, for, The inner product of and is A = L 2 a 1 + (L 3 + L 4 ) ・ b 1 …… 0 = L 2 a 2 + (L 3 + L 4 ) ・ b 2 …… Because ,,Than Substituting the coefficient of into, Is obtained. (E) Decision More than Is used to determine the joint angle Θ. Next, the case of a 7-joint type robot will be described with reference to FIG. As is clear from comparison with FIG. 3, the arm
In addition to 11, the rotary joint is added to make the flexion joint 3 and the rotary joint 4 7 joints. This robot is able to perform a movement very similar to that of a human arm. In the figure, 21,22,23 are flexion joints, 31,32,33,34 are rotary joints, Are the direction unit vectors of arms 10 to 13, L 1 , L 2 + L 7 , L 3 respectively.
+ L 4 , L 5 + L 6 are the lengths of the arms 10 to 13, respectively, θ 1 to θ 7 are the bending and rotation (hereinafter referred to as rotation) angles of each joint, Is the target position of arm tip 40, Is the position and orientation vector of the hand 40. Further, the target surface is switched for each rotary joint (in the present embodiment, it is defined that the surface of the flexion joint is not switched, but as described later with reference to FIG. 7A). The surface is switched for each flexion joint depending on how the surface is defined.) Therefore, π 1 , π 2 , π 3 , π 4 , π for each cut of the rotary joint.
5 planes and these normal vectors And The arms 11 and 12 correspond to the arms and elbows, but the line segment connecting these arms and the flexion joints 21 and 23 (this vector is And vector Is also called an invariant vector) The angle of inclination with respect to the axis is η (η = 0 indicates that the triangle is aligned with the Z axis with the joint 22 facing upward). That is the eleventh
As shown in Figure (a), the vector The rotation angle when θ 3 is rotated in the direction in which the right-hand screw advances about is η, and the rotation direction at this time is the increasing direction of the rotation angle. In the robot having the configuration shown in FIG. 6, by setting the length of the arm between the appropriate rotary joint and flexion joint to 0, the vector The joint 22 can be rotated about the axis. For example, in FIG. 6, the arm length between the rotary joint θ 1 and the flexion joint θ 2 may be set to 0 to provide a two-degree-of-freedom motion mechanism. Similarly, between θ 7 and θ 3 or between θ 4 and θ 5 If the length of each arm between is set to 0, θ 3 becomes a vector as shown in Fig. 11 (b). Can be rotated about the axis. In this robot, the starting end of the arm 10 is fixed to the origin 0 of the orthogonal coordinate axis, and the arm 10 is fixed upward (Z-axis direction). Therefore the direction unit vector Normal unit vector of plane π 1 And, when displaying arm 10 as a vector Becomes here Referring to FIG. 7 in relation to FIG. 7, FIG. 7 (a) shows an example in which the bending joints 24 and 25 are attached to the arms 14 to 16 by changing the direction by 90 °, and the arms 14 and 15 have π 6 On the surface, arms 15 and 16
Is on the π 7 plane. In flexion joints arms
Regardless of the angle formed by 14,15, since the arms 14,15 are on the same plane, the planes π 6 and π 7 are orthogonal to each other, and thus the planes π 6 ,
π 7 normal unit vector The inner product of is 0, that is, It is. Also the direction unit vector Because they share the planes π 6 and π 7. There is also a relationship. here Subscripts, such as 5, 6, ... are i, j, ... are those (these 1, 2, 3, one ...) can as a generalization, the point is the same even less. The refraction angle θ at the joint 24 is Given by FIG. 7 (b) shows a rotary joint 35 and a flexion joint 24.
In the example using, the arm 14 is on the π 6 plane, and the arms 15 and 16
Is on the π 7 plane. The direction unit vector in this case is Because it is orthogonal to It is. The rotation angle θ of the joint 35 is It is. 7 (c) and 7 (d) show a slide joint, and FIG.
Is a parallel slide, and (d) is a general slide. 45 indicates a slide. With parallel slides The length of the arm expands and contracts by the amount of slide. On a general slide Takes a value determined by the structure. In general, the slide amount of the slide joint cannot be calculated from the surface vector and the direction vector. However, if the sliding amount of the slide joint is different from the other joint angles θ 1 , θ 2 ,
If there is a condition that is determined independently of θ 3, that is, a condition that the slide amount of the slide joint can be determined without using a surface vector or a direction vector, for example, in a scalar type (horizontal multi-joint type) robot, The present invention can be applied to a robot having a slide joint in the case where there is no slide joint and the vertical end has a slide joint only in the case. Direction unit vector (abbreviated as direction vector) And normal unit vector (abbreviated as surface vector) Are orthogonal to, and these will continue in an articulated robot. This relationship can be seen at a glance by arranging the surface vector in the upper part and the direction vector in the lower part as shown in FIG. 8 and connecting the vectors in the orthogonal relationship by connecting them with straight lines. FIG. 8 (a) is an example of the robot shown in FIG. Orthogonal to It is obvious that the relationship is orthogonal to. FIG. 8 (b) shows the robot of FIG. It is a relationship diagram. This robot has an arm with no revolute joint, and also has a flexion joint 25 with a 90 ° reorientation. Although the relationship is complicated, drawing the relationship diagram in Fig. 8 (b) shows that Are on the same plane, and Are on the same plane, Forms an orthonormal system. Etc. can be immediately understood. This 8th
The orthogonal diagram in the figure shows all the directions of the robot arm direction and all joints. Returning to FIG. 6 again, the vector of the arm 10 is And, if the arms 11 to 13 are represented in a similar manner, the vector representing the origin of the coordinate system defined in the hand is It is. This is a vector It is nothing but η (note that the hand vector Indicates the tip of a painting air gun or screwdriver attached to the hand), and the direction vector representing the coordinate system defined in the hand is The surface vector that represents the coordinate system defined in the hand is And the direction vector of each part from these Can be requested. The formula is as follows. Coordinate system, posture, and tilt angle defined for the hand as a result, Is a unit vector with the same direction as x 6 in Fig. 3, Is a unit vector with the same direction as y 6 . (However, Z 1 is a code that takes +1 or -1, and details will be described later.) The in the axial [pi 3 when the joint 22 is rotated is rotated [pi 3 sides
Normal vector of π 3 plane rotated as the plane rotates give. By the way, the 7-joint robot shown in FIG. 6 includes one redundant joint and cannot be solved analytically as it is. Therefore, η is given from the outside here. Then, when θ 7 = 0, η = 0, and at this time And Therefore η is It is the angle between and, that is, cos η. Because it is orthogonal to Also vector of Perpendicular to Are in the same plane, so Is obtained. here The code Z 1 introduced during the calculation of is effective for moving the robot smoothly and will be explained later. Are introduced as Z 2 and Z 3 respectively during the calculation of. These symbols Z (Z 1 , Z 2 , Z 3 ) are, for example, 24 in FIG. 7 (a).
If it is a flexion joint such as, the flexion angle of this joint 24 is θ, and θ = Z | θ | If a rotary joint such as 35 in FIG. 7 (b) is used, the rotation angle of this joint is θ, and θ = Z | θ | Is determined by Where Sing is Indicates that only the sign of the inner product of and is taken. Same direction or opposite direction, so the inner product is positive,
There is a negative value, and the positive and negative values indicate the positive and negative values of θ. next The meaning of Z 1 in the calculation of is explained. As previously mentioned, Consider the three cases of θ 2 > 0, θ 2 = 0, and θ 2 <0 shown in FIGS. 12 (a), (b), and (c). Note that in order to simplify the explanation, θ 1 in FIG.
= 0 °, θ 7 = 0 °, and θ 4 = 0 °. This allows
In the case of Figure 12 (a) The direction of is the same as that of the Y 0 axis, and in the case of Fig. 12 (b) Becomes In the case of Fig. 12 (c) Is the same as the direction of the −Y 0 axis. Assuming that the robot continuously moves from the state of FIG. 12 (a) to the state of FIG. 12 (c), The direction of was oriented toward the Y 0 axis, but suddenly turned toward the −Y 0 axis. By the way, when θ 7 = 0 ° And before considering the sign Z 1 . Therefore, do not consider the code Z 1. If we obtain θ 7 using And in the case of FIG. 12 (a), θ 1 = 0 °, And θ 7 = cos −1 (1) = 0 °. Next, consider the case of FIG. 12 (c). θ 0 = 0
゜, So, Then, θ 7 = cos −1 (1) = 180 °, and the initial assumption of θ 7 = 0 ° cannot be satisfied, causing a contradiction. This can be a factor that makes control unstable. Therefore, in order to prevent this from happening, the sign of the state of the starting point in FIG. The code is returned to the original when the code changes. Code Z 1
Is used for this purpose, and Z 1 = 1 in the state of FIG. 12 (a), And And When the sign of changes, Z = -1, Therefore, the above-mentioned contradiction does not occur. The state of FIG. 12 (b) is generally called a singular point, and the solution of θη becomes indefinite. But in this case Can be avoided by uniquely determining in advance. Operation of a 1 = {A 2 + ( L 2 + L 7) 2 - (L 3 + L 4) 2} / 2A (L 2 + L
7 ) b 2 = -a 2 · L 2 / L 3 (However, Z 2 and Z 3 are codes that take +1 or −1, and details will be described later.) Here, the meaning of Z 2 will be described. For simplicity,
In FIG. 6, assuming θ 1 = 0 ° and θ 7 = 0 °, θ 2
As for the above, three cases of θ 2 > 0, θ 2 = 0, θ 2 <0 are considered as shown in FIGS. 13 (a), 13 (b) and 13 (c). No.
In the case of Fig. 13 (a), Direction is the same as the Y 0 direction (0,1,0), and in the case of FIG. 13 (b), And in the case of FIG. 13 (c) The direction of is the same as the direction of the −Y 0 axis (0, −1,0). θ 1
Is Is the angle formed by Therefore, when the robot continuously moves from the state of FIG. 13 (a) to the state of FIG. 13 (c), Direction changes from the Y-axis direction to the -Y-axis direction, and θ 1 suddenly changes from 0 ° to 180 °, which is inconsistent with the first assumption that θ 1 = 0 °. Z 2 is this When the sign of is changed, the sign is restored and the contradiction does not occur. Next, the meaning of Z 3 will be explained. In this case as well, in order to simplify the explanation, it is assumed that θ 4 = 0 °, and regarding θ 5 , the three cases of FIGS. 14 (a), (b), and (c) are considered. In Figure 14 (a) Faces the Y 0 axis, and in FIG. 14 (b) In FIG. 14 (c), it faces the −Y 0 axis direction. As in the case of Z 1 and Z 2 , when the robot moves from the state of FIG. 14 (a) to the state of FIG. 14 (c), Since the direction of is changed and there is a contradiction with the assumption that θ 4 = 0 °, Z 3 is used to avoid this. The meanings of Z 1 , Z 2 and Z 3 are as described above. The code Z of the place currently used is stored and compared with the code Z of the place to proceed to. Only when the code changes, the Z The code is forcibly returned to the original code. What happens when the code is not forcibly returned to the original code by using such a Z? In order to reach the target position / posture given by the person, the distance between the current position / posture and the target position / posture is reduced from 50 msec to 10 msec.
The robot moves while interpolating at a sampling interval of about 0 msec (this time interval depends on the ability of the robot control computer), but due to the sign reversal, rotation of the joint near 180 ° is required between about 50 msec and 100 msec. And then
With the performance of existing motors, it will be a value that can not be fully rotated. That is, the high-speed control performance is adversely affected. Calculation of θi As is clear from the above calculation situation, most of the calculations are simple, and they are not complicated expressions in which sin and cos are complicated. Therefore, the analysis is easy and can be completed in a short time. For example, Cross product operation, such as Most of the combinational operations of the inner product calculation and the inverse trigonometric function are as follows, and high-speed calculation is possible by making this part hardware. Further, this calculation is common to both the 6-joint robot and the 7-joint robot, and even if this portion is implemented as hardware, this hardware can be used for general purposes. The robot not only specifies the final position and orientation, but also specifies some intermediate points and interpolates during the intermediate points to move along a desired trajectory, so the amount of calculation is enormous. Therefore, unless it is a relational expression that can be calculated quickly, the movement of the robot is slow and unavoidable, but this can be improved. In addition, if the calculation is completed quickly, a large number of intermediate points can be specified, and accurate robot control along the planned trajectory becomes possible. FIG. 9 is a block diagram for explaining an embodiment of a control device for an articulated robot according to the present invention, and FIG.
It is a block diagram which calculates each joint angle in the case of a joint type robot. In the figure, 50 is based on the command value from the host device,
Vector calculation means for obtaining a direction unit vector and a normal unit vector of each joint, 60 is a rotation angle calculation means for obtaining a joint angle θi of each joint based on each vector obtained by the vector calculation means, and 70 is a robot arm 80. It is a drive means for causing the joint angle obtained by the rotation angle calculation means 60 to be obtained. (Effects of the Invention) As described above, in the present invention, the direction vector and the surface vector of each arm are obtained from the target position and posture vector of the hand, and the rotation angle of each joint is obtained from these, so that the calculation is easy. It can be done quickly, and thus the movement of the robot can be made accurate and quick. Needless to say, the present invention is not limited to the robot having the configuration shown in the above embodiment, but can be applied in various ways.

【図面の簡単な説明】 第1図は6関節型ロボットの概略説明図、第2図はオイ
ラー角を説明するための図、第3図は第1図に示す関節
型ロボットのベクトルの定義を示す図、第4図、第7図
は方向ベクトルと面ベクトルの説明図、第5図、第8図
は直交ダイヤグラムの説明図、第6図は7関節型ロボッ
トのベクトルの定義を示す図、第9図、第10図、第11図
は、本発明の実施例を説明するための第12図,第13図,
第14図は符号Zの説明図である。 図において、10〜13はアーム、21〜23は屈曲関節、31〜
34は回転関節、 θ〜θは各関節の回転角、40は手先、50はベクトル
算出手段、60は回転角算出手段、70は駆動手段、80はロ
ボットアームである。
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a schematic explanatory view of a 6-joint robot, FIG. 2 is a diagram for explaining Euler angles, and FIG. 3 is a vector definition of the joint robot shown in FIG. Fig. 4, Fig. 7, Fig. 7 are explanatory diagrams of direction vector and plane vector, Fig. 5 and Fig. 8 are explanatory diagrams of orthogonal diagram, and Fig. 6 is a diagram showing vector definition of 7-joint robot, FIGS. 9, 10 and 11 are FIGS. 12 and 13 for explaining the embodiment of the present invention.
FIG. 14 is an explanatory diagram of reference numeral Z. In the figure, 10 to 13 are arms, 21 to 23 are flexion joints, and 31 to
34 is a rotary joint, θ 1 to θ 7 are rotation angles of each joint, 40 is a hand, 50 is a vector calculation means, 60 is a rotation angle calculation means, 70 is a drive means, and 80 is a robot arm.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 荒木 誠 川崎市中原区上小田中1015番地 富士通 株式会社内 (56)参考文献 特開 昭52−25365(JP,A) 特開 昭57−3102(JP,A) 特開 昭57−33989(JP,A) 「機械の研究」第25巻 第7号 (1973)第76〜80頁   ────────────────────────────────────────────────── ─── Continuation of front page    (72) Inventor Makoto Araki               Fujitsu, 1015 Ueodanaka, Nakahara-ku, Kawasaki-shi               Inside the corporation                (56) References JP-A-52-25365 (JP, A)                 JP-A-57-3102 (JP, A)                 JP-A-57-33989 (JP, A)                 "Research on Machinery" Vol. 25, No. 7               (1973) pp. 76-80

Claims (1)

(57)【特許請求の範囲】 1.複数個のアーム(10〜13,40)を関節(21〜23,31〜
34)により連結して構成した多関節型ロボットの制御装
置において、 上位装置より指示される前記複数個のアーム(10〜13,4
0)のうちの手先(40)の位置ベクトル 及び姿勢ベクトル 根本ベクトル 及びこれらのベクトルより求めた外側屈曲関節間の不変
ベクトル に基づいて各アームの方向単位ベクトル を求め、該不変ベクトル 及び該方向単位ベクトル に基づいて回転関節で区切られた各アームを夫々含む複
数の面(π〜π)の各法線単位ベクトルを求めるベクトル算出手段(50)と、 前記方向単位ベクトル に基づいて各屈曲関節の回転角(θ23)を求
め、前記法線単位ベクトル に基づいて各回転関節の回転角(θ146)を
求める回転角算出手段(60)と、 前記求められた回転角(θ〜θ)に応じて各関節を
駆動する駆動手段とを具備してなる多関節型ロボットの
制御装置。
(57) [Claims] Joint multiple arms (10-13,40) (21-23,31-)
34) In the control device of the articulated robot connected to each other, the plurality of arms (10 to 13
Position vector of minion (40) of (0) And posture vector Root vector And the invariant vector between the lateral flexion joints obtained from these vectors Direction unit vector for each arm based on The invariant vector And the direction unit vector Normal vectors of a plurality of planes (π 1 to π 5 ) each including each arm divided by a rotary joint based on Vector calculating means (50) for obtaining the direction unit vector The rotation angle (θ 2 , θ 3 , θ 5 ) of each flexion joint is calculated based on The rotation angle calculation means (60) for obtaining the rotation angles (θ 1 , θ 4 , θ 6 , θ 7 ) of each rotary joint based on the above, and the rotation angles according to the obtained rotation angles (θ 1 to θ 7 ). A control device for an articulated robot, comprising a drive means for driving a joint.
JP58128929A 1983-07-15 1983-07-15 Control device for articulated robot Expired - Lifetime JP2676721B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58128929A JP2676721B2 (en) 1983-07-15 1983-07-15 Control device for articulated robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58128929A JP2676721B2 (en) 1983-07-15 1983-07-15 Control device for articulated robot

Publications (2)

Publication Number Publication Date
JPS6020876A JPS6020876A (en) 1985-02-02
JP2676721B2 true JP2676721B2 (en) 1997-11-17

Family

ID=14996882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58128929A Expired - Lifetime JP2676721B2 (en) 1983-07-15 1983-07-15 Control device for articulated robot

Country Status (1)

Country Link
JP (1) JP2676721B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6270913A (en) * 1985-09-24 1987-04-01 Kobe Steel Ltd Articulated robot device
JP5190983B2 (en) * 2007-11-27 2013-04-24 株式会社安川電機 Robot system
JP5473060B2 (en) * 2010-01-26 2014-04-16 株式会社ダイヘン Welding robot

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6038721B2 (en) * 1975-08-20 1985-09-03 株式会社日立製作所 Control method for industrial robots
JPS573398A (en) * 1980-06-06 1982-01-08 Nippon Electric Co Strobe flasher controlling circuit
JPH0230041B2 (en) * 1980-06-09 1990-07-04 Daihen Corp KOGYOYOROBOTSUTONOSEIGYOSOCHI

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
「機械の研究」第25巻 第7号(1973)第76〜80頁

Also Published As

Publication number Publication date
JPS6020876A (en) 1985-02-02

Similar Documents

Publication Publication Date Title
JP3207728B2 (en) Control method of redundant manipulator
JP3655083B2 (en) Interface device for positioning the robot
US4680519A (en) Recursive methods for world-to-joint transformation for a robot manipulator
JP2694669B2 (en) Robot motion control method
EP0086950A1 (en) Method of controlling an industrial robot
JPH0820894B2 (en) Industrial robot operation control method
KR20110041950A (en) Teaching and playback method using redundancy resolution control for manipulator
CN106844951B (en) Method and system for solving inverse kinematics of super-redundant robot based on segmented geometric method
JP2874238B2 (en) Control method of articulated robot
JP2676721B2 (en) Control device for articulated robot
JPH01267706A (en) Method for controlling robot
JPH0693209B2 (en) Robot&#39;s circular interpolation attitude control device
JPH0553590B2 (en)
JP3206765B2 (en) Control method of master-slave manipulator
JP4230196B2 (en) Positioning calculation method and positioning calculation apparatus
JPH035605B2 (en)
JPH08155647A (en) Weaving controller of welding robot
JPH07200018A (en) Controller for robot
KR102520793B1 (en) Method for blending motion route of robot and apparatus thereof
JPH0310781A (en) Articulated type robot
JPH0468646B2 (en)
RU2725930C1 (en) Complex of mastering control of anthropomorphic robot manipulators
JPH07132474A (en) Manipulator control device
JP2576176B2 (en) Robot control method
Petrenko et al. Mathematical method of mapping configuration space for manipulator master-slave teleoperation