JPH0785203B2 - 多関節ロボットの制御のための座標変換方法,演算方法,座標変換装置および演算装置 - Google Patents

多関節ロボットの制御のための座標変換方法,演算方法,座標変換装置および演算装置

Info

Publication number
JPH0785203B2
JPH0785203B2 JP58183297A JP18329783A JPH0785203B2 JP H0785203 B2 JPH0785203 B2 JP H0785203B2 JP 58183297 A JP58183297 A JP 58183297A JP 18329783 A JP18329783 A JP 18329783A JP H0785203 B2 JPH0785203 B2 JP H0785203B2
Authority
JP
Japan
Prior art keywords
matrix
register
freedom
obtaining
coordinate system
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
JP58183297A
Other languages
English (en)
Other versions
JPS6075904A (ja
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.)
Shinmaywa Industries Ltd
Original Assignee
Shinmaywa 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 Shinmaywa Industries Ltd filed Critical Shinmaywa Industries Ltd
Priority to JP58183297A priority Critical patent/JPH0785203B2/ja
Publication of JPS6075904A publication Critical patent/JPS6075904A/ja
Publication of JPH0785203B2 publication Critical patent/JPH0785203B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/408Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
    • G05B19/4086Coordinate conversions; Other special calculations
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33263Conversion, transformation of coordinates, cartesian or polar
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45083Manipulators, robot

Description

【発明の詳細な説明】 発明の分野 この発明は、多関節ロボットの座標変換方法,演算方
法,座標変換装置および演算装置に関し、特に、位置情
報についてだけではなく、速度情報および加速度情報に
ついても直角座標系と関節座標系との間で座標変換を行
ない、かつ、運動方程式の逆問題を解くことによって予
測制御をも行ない、さらに力制御をも行なうことができ
る。多関節ロボットの座標変換方法,演算方法,座標変
換装置および演算装置に関する。
先行技術の説明 多関節ロボットは、据付面積が小さく大きな作業領域が
得られるという極めて優れた特徴を有するものである
が、その運動を制御するにあたっては座標変換が必要で
あり、制御のための演算時間、特に座標変換に要する時
間が長いという欠点がある。これをもう少し説明する。
まず座標系につき説明する。多関節ロボットの制御に用
いる座標系には、表1に示すように、直角座標系(互い
に直角に交わった3本の軸に関する成分で座標が定ま
る)とそれに対する関節座標系(各関節の角度によって
座標が定まる)とがあり、さらに、絶対座標系(静止し
た座標系)とそれに対するハンド座標系(各ハンドに固
定されていてハンドの動きに従って動く座標系)とがあ
る。この明細書においては、直角座標系はXYZ座標系あ
るいはX座標系とも呼ばれている。また、関節座標系
は、角度座標系あるいはα座標系とも呼ばれている。さ
らに、ハンド座標系は、局所座標系とも呼ばれている。
次に、座標変換の必要性につき説明する。たとえば産業
用ロボットで加工されるワークピースの加工線たとえば
アーク溶接の溶接線は、一般に、互いに直角方向に延ば
されており、かつ、この加工線に沿って連続して加工す
ることが多い。多関節ロボットでは、このようなワーク
ピースの加工線に沿ってたとえば溶接トーチなどの被制
御体(エンドエフェクタ)を移動させる際、このような
直線を小区間に分け、それぞれの分割点の位置を求め、
その分割点の間を補間して、その位置へ被制御体が移動
するよう指令するのであるが、このような直線を直角座
標系で取扱うと1次式になるのに対し、関節座標系で取
扱うと非線形の複雑な式になってしまう。それゆえ、被
制御体の移動を指令するための位置情報の演算は、簡単
で有利な直角座標系で行なった後、その直角座標系での
位置情報を関節座標系へ座標変換して各関節軸を移動さ
せるための指令情報とする必要がある。また、逆に、関
節座標系による位置情報を直角座標系の位置情報に変換
することも必要である。要するに、多関節ロボットにお
いては、位置情報等を直角座標系と関節座標系との間で
相互に座標変換することが必要である。この座標変換、
特に、直角座標系から関節座標系への座標変換には膨大
な演算が必要であり、そのために多くの時間がかかる。
なお、この明細書において、関節とは回転あるいは旋回
する部分だけではなく、スライドする部分も含んでい
る。そして、そのような関節は、軸あるいは自由度と呼
ぶ場合もある。
そこで、このような演算時間を短縮するために従来から
大別して2つの方式が提案されている。その1つは、た
とえば特開昭53−100561号などに開示される、近似的座
標変換制御方式である。この方式では、厳密な座標変換
式から或る近似式を求め、その近似式に基づいて多関節
ロボットの各関節角を回動させる。この方式によれば、
たしかに演算時間の短縮は可能であるけれども、相当大
きなエラー(たとえば7mm)が生じ、厳密な位置制御を
必要とするものには利用できないという欠点があった。
他の1つは、たとえば特開昭53−121362号などに開示さ
れているような、5ないし6自由度を有するものであっ
てもすべての軸を同時に座標変換するのではなく、その
うちのたとえば3自由度のみを厳密な座標変換式に基づ
いて同時に制御するものである。この方式によれば、位
置決め精度は向上するものの、達成し得る機能ないし位
置決めの態様が当然少なくなるという問題がある。これ
らとは別に、使用する演算素子をたとえばジョセフソン
素子のような高速のものにすることも考えられるが、実
用化には程遠くしかも高価になってしまう。それゆえ、
第1に、簡単でかつ高速度の演算が可能な座標変換方法
およびそのための装置が望まれていた。
一方、従来からの位置制御はフィードバック制御が基本
であった。フィードバック制御では、目標位置と現在位
置とに差が生じて初めて駆動力が発生する。特に、ロボ
ットのアーム自身の慣性およびエンドエフェクタの慣性
が大きいと、このエンドエフェクタの目標位置と現在位
置との偏差が大きくなる。この偏差を最小とすべく、位
置偏差に乗ずる荷重(フィードバックゲイン)や駆動最
大トルクを大きくとろうとしても、フィードバック制御
の安定性の問題から限界があった。これは特に2軸以上
の制御のときに、エンドエフェクタの径路のずれとなっ
て現われ顕著な問題となっていた。これはアームの直線
的運動に伴う慣性力によるものであるが、この他にも、
遠心力,コリオリの力など他の腕の回転的な動きによっ
ても発生する力やアーム自身およびエンドエフェクタの
質量によって発生する重力によってロボットの実際の動
きと所望の動きとの間に差が発生し、特に高速かつ高精
度が要求される実施例においては重大な問題となってき
た。この問題は、指令値と現在値との、つまり、制御入
力としての目標位置と制御結果としての現在位置との因
果関係を運動方程式として前もって知り、所望の結果を
生むような制御入力を与えることによってのみ解決され
るもので、これをフィードフォワード制御、あるいは予
測制御あるいは最適制御と呼んでいる。それゆえ、第2
に、エンドエフェクタが所望のパスを移動するような予
測制御方法およびそのための装置が望まれていた。
さらに、位置のフィードバックによってのみ制御される
ロボットが何らかの障害物に対したときにロボットのア
ームに発生する力は、その力の方向の位置偏差によって
変わってしまうが、組立や面仕上げに類する応用におい
ては、或る方向には一定の力で押し付けそれに垂直な方
向には位置制御する要求があった。また、その方向はロ
ボットの機構の設計上の都合で決まる方向ではなく、被
加工物によって決まる方向である。したがって、任意の
被加工物で決まる座標系で位置制御と力制御の切換また
は荷重の選択を行なう必要がある。それゆえに、第3
に、そのための装置と被加工物で決まる座標系での力か
らロボット機構で決まる座標系での力(トルク)への変
換の手段が望まれていた。さらに、特に組立作業におい
て、挿入する部品によって決まる座標系での回転を含め
たいくつかの方向のうちの或る方向について、柔かい位
置決め(偏差が生じても反力が小さいこと)をすること
により、部品の挿入作業が容易になる現象があり、これ
を特別なエンドエフェクタ上のメカニズムで実現したも
のがRCC(Remote Center of Compliance)である。3つ
の異なる形のRCC装置が、米国特許第4,098,001号、第4,
155,169号および1980年4月16日に出願された米国特許
出願第140,768号中に開示されている。これらの米国特
許および特許出願は、ここに参考として組入れられてい
る。しかし、RCCを特別なエンドエフェクタとしてでは
なく、アーム自身で実現する要求があった。
好ましい実施例の説明 この発現は、前述した第1ないし第3の要望を満たすこ
とを企図しており、そのために、この発明は、要約すれ
ば、次のことを行なう方法およびそのための装置を含
む。
まず第1の要望に対しては、少なくとも専用のハードウ
ェアでヤコビアンJ()を求め、かつ関節座標系での
位置データから直角座標系での位置データへの座標
変換の演算を行なう。さらに好ましくは、専用のハード
ウェアでヤコビアンインバース[J()]-1を求め、
かつ直角座標系での速度データdから関節座標系での
速度データdへの座標変換の演算そのものをも行な
う。
次に第2の要望に対しては、運動方程式の逆問題を解
き、予測制御を行なう。運動方程式は関節座標系で書か
れているので、これを解くためには関節座標系での情報
が必要である。そのため、直角座標系での速度データd
から関節座標系での速度データdへの変換および直
角座標系での加速度データd2から関節座標系での加速
度データd2への変換を行なう。これらの変換および運
動方程式での逆問題を解くことも、専用のハードウェア
で行なう。
さらに第3の要望に対しては、力のフィードバック制御
を行なう。そのため、直角座標系での力データから関
節座標系でのトルクデータへの変換を行なう。この変
換も専用のハードウェアで行なう。
全体システムの構成 上記処理のすべてを実施する全体システムの構成につき
概略説明する。第1A図および第1B図は、それぞれ、多関
節ロボットの制御装置の全体システムの構成を概略的に
示すブロック図である。図において、一点鎖線より左側
は直角座標系で表わされる量を取扱う部分であり、右側
は関節座標系で表わされる量を取扱う部分である。
まず、第1A図に示すシステムにつき説明する。ホストシ
ステム4からは、時々刻々の直角座標系における指令値
がマトリクスの形で出力される。ホストシステム4は、
図示しないけれども、マイクロコンピュータを備える。
ホストシステム4から出力される指令値には、大きく分
けて、パスの指令値と押付け力の指令値とがある。パス
の指令値は、位置指令データ,速度指令データdお
よび加速度指令データd2を含み、押付け力の指令値
は、力指令データを含む。ホストシステム4からの位
置指令データは、後述の位置フィードバックデータが
差引かれた後、ゲイン調整部14でゲイン調整され、後述
の速度指令データに補正分として加算される。ホストシ
ステム4からの速度指令データdは、ゲイン調整部14
からの補正分と加算され、座標変換部6において関節座
標系に変換され、運動方程式演算部9に与えられる。座
標変換部6からの速度指令データは、さらに、後述の速
度フィードバック信号が差引かれた後、ゲイン調整部15
でゲイン調整され、その結果が補正分として関節部10に
与えられる。ホストシステム4からの加速度指令データ
d2は、座標変換部7において関節座標系に変換されて
運動方程式演算部9に与えられる。運動方程式演算部9
においては、与えられた速度データおよび加速度データ
に基づいて運動方程式の逆問題が解かれ、各関節に与え
られるべきトルクデータが出力され、このデータが関節
部10に与えられる。関節部10は、アンプおよびモータを
含む。関節部10の位置は、エンコーダ11によって検出さ
れ、エンコーダ11からは位置フィードバックデータが出
力されこれが座標変換部5において直角座標系に変換さ
れ、前述したとおりホストシステム4からの位置指令デ
ータから差引かれる。同様に、関節部10の速度はタコ
メータ12によって検出され、タコメータ12は速度フィー
ドバックデータを出力し、これが前述したように座標変
換部6からの速度指令データに加算される。一方、ホス
トシステム4からは、力指令データが出力され、これ
に後述する力フィードバックデータが差引かれて両者の
偏差が求められ、ゲイン調整部16においてゲイン調整さ
れる。力の偏差dHはハンド座標系で表現されている
ため、これが座標変換部17において絶対座標系に変換さ
れてdXとなる。このdXがさらに座標変換部8にお
いて関節座標系に変換されてdとなり、補正分として
関節部10に与えられる。関節部10に生じる力は力検出器
13によって検出され、力検出器13は前述の力フィードバ
ックデータを出力する。
次に、第1B図に示すシステムにつき、第1A図のシステム
との相違点を主に説明する。第1A図のシステムにおいて
は、位置フィードバックは、運動方程式演算部9を介し
て調節部10にかけられている。ところが、運動方程式演
算部9には複雑な要素が含まれているため、この方式で
は、フィードバックの効き具合が明瞭でないという欠点
がある。これに対して、第1B図のシステムにおいては、
位置フィードバックは、運動方程式演算部9を介さずに
直接関節部10にかけられている。この方式では、余分の
座標変換部18が必要になるものの、フィードバックの効
き具合が明瞭になるという長所がある。
第1A図および第1B図に示したシステムの特徴は、簡単に
言えば次のとおりである。第1に、直角座標系と関節座
標系との間の座標変換を行なう座標変換部5ないし8を
備えていることである。第2に、ホストシステム4から
座標変換部6を経由して運動方程式演算部9に至るフィ
ードフォワードラインおよびホストシステム4から座標
変換部7を経由して運動方程式演算部9に至るフィード
フォワードラインを備えていることである。第3に、位
置のフィードバックが直角座標系においてかけられてい
ることである。従って、演算を行なうことが不可能に近
い、直角座標系での位置データから関節座標系での位
置データへの座標変換を行なう必要がない。さらに、
速度のフィードバックもかけられている。第4に、ホス
トシステム4から座標変換部8を経由して関節部10に至
る力のフィードバック制御ラインを備えていることであ
る。
以下、第1A図および第1B図のうちで特徴のある各部分を
詳細に説明する。第2A図および第2B図は、全体システム
の構成を詳細に示すブロック図である。第2A図の右端
は、第2B図の左端につながっている。このブロック図
は、第1A図および第1B図に示した座標変換部5ないし8
および運動方程式演算部9に相当する。この第2A図およ
び第2B図の説明をこれ以降において詳細に行なう。
座標変換の一般論 まず、座標変換の一般論につき説明する。第3図は、多
関節ロボットの模式図である。この第3図の例では、多
関節ロボットは6つは自由度あるいは関節角α
α,α,α,α,αを有する。絶対座標系が
XYZで規定され、エンドエフェクタの局所座標系(ハン
ド座標系)がxyzで規定されている。
絶対座標系の位置ベクトルとハンド座標系の位置ベク
トルとの関係は、その間の座標変換マトリクスをMで
表わすと、次式(1)で与えられる。
=M× …(1) 変換マトリクスMは、次式(2)で与えられる。
但し、Ci=cosα、Si=sinαであり、li,miおよび
niは、各関節の座標系の原点間の関係を示す。ここで、
i=1,…,6である。
したがって、上記(1)式は、次の(3)式で与えられ
る。
=M1×M2×M3×M4×M5×M6× …(3) 但し、M1ないしM6は、各腕についての変換マトリクスを
示す。
一方、ハンド座標系は、第4図に示すベクトル(PX
PY,PZ)の点に位置している。そして、絶対座標系の各
軸の単位ベクトルをi,j,kとし、ハンド座標系の各軸の
単位ベクトルをi′,j′,k′とすると、第4図における
ベクトル,およびは次式(4)で与えられる。
=+とするとき、絶対座標系()とハンド座標
系()の相互関係は、次式(5)で与えられる。
但し、i・j′は、ベクトルiとべクトルj′との内積
を意味する。
これらのことから、(1)式の座標変換マトリクスM
は、次のように要約される。
(i)Mは、それぞれの関節角α,α,α
α,αおよびαの関数であるが、それぞれの腕に
ついての変換マトリクスMi(i=1,…,6)は、その軸の
関節角αだけの関数である。
(ii)PX,PYおよびPZは、ハンド座標系の原点位置を示
す。
(iii)Mブロックマトリクスm(たとえば、(5)式
の点線で囲んだ部分)は、座標系の姿勢情報(方向余
弦)を持っていて、m-1=mTなる関係が成立する。但
し、右肩の添字−1およびTはそれぞれ逆マトリクスお
よび転置マトリクスを示す。すなわち、方向余弦に着目
すると、座標系の回転を表わすブロックマトリクスm
は、第5図に示す関係にあるので、逆変換は、このブロ
ックマトリクスを転置するだけでよいことがわかる(直
交マトリクス)。
エンドエフェクタの位置・姿勢を実現するのは各自由度
の回転角であるため、絶対座標系から各軸のα座標系へ
の変換が必要である。ロボットのエンドエフェクタの姿
勢・位置ベクトル()は、位置情報をX,Y,Zとし、姿
勢情報をnX,nY,nZとすると、 で表わすことができる。また、各軸の回転角度はまた で表わされる。したがって、前記位置情報および姿勢情
報は、それぞれ(7)式で表わされる。
この(7)式を要約すれば、(8)式が得られる。
=F() …(8) この(8)式は、絶対座標系の姿勢位置ベクトルが各
関節角ベクトルの関数であることを示している。
からへの変換 次に、ベクトルからベクトルへの座標変換の方法お
よびそのための装置につき説明する。これは、第1A図お
よび第1B図の座標変換部5に相当する。
(2)式からわかるように、M1は、,l1,m1および
n1で表現されたマトリクスである。また、M2は、α
l2,m2およびn2で表現されており、M3ないしM6も同様で
ある。したがって、それらの積M1×M2×M3×M4×M5×
M6、すなわちMは、α,li,mi,ni(i=1ないし
6)を含んだマトリクスとなっている。このうち、li
miおよびniは、各関節間の距離、すなわち、各腕の長さ
に関係した量であり、ここでは、定数である。このた
め、Mの各要素は、変数としてα(i=1ないし6)
を含んだ量となっている。このことから、Mは、 M=[ajk(α)] …(9) のように書くことができる。Mのjk要素ajk(α
は、具体的には(2)式のマトリクス乗算を実行し、そ
の結果として得られる第j行第k列の要素である。とこ
ろで、このようにして得られるajk(α)がどのよう
な意味を持っているかを考える。
Mは、その定義(1)式から、空間中の任意の点のハン
ド座標系での位置ベクトルと、同じ点の絶対座標系で
の位置ベクトルとの関係を示すものである。そこで、
ハンド座標系での原点すなわちエンドエフェクタの先端
が絶対座標系でどのように表わされるかを考える。この
点は、ハンド座標系ではx=0,y=0,z=0であるから、
絶対座標系でのこの点の座標X0,Y0,Z0とすると、
(1)式より なる式が得られる。この式の右辺の乗算を実行すれば、 となる。したがって、 なる式が得られる。すなわち、マトクスMのa
14(α),a24(α),a34(α)はそれぞれエン
ドエフェクタの先端の絶対座標系における座標成分に対
応していることになる。そして、(12)式の左辺は絶対
座標系における量であり、右辺はα(i=1ないし
6)によって書かれていることから、αを与えれば
X0,Y0,Z0がわかることになる。エンドエフェクタの姿
勢情報を表わす量nX0,nY0,nZ0についても同様にMの
中のブロックマトリクスmに含まれる要素との関係が得
られる。多関節ロボットの制御において重要な役割を演
ずるのは、エンドエフェクタの先端の位置およびその姿
勢であるから、(12)式でX0,Y0,Z0と沿え字0を付け
て書いたものを改めてX,Y,Zと書いて使用することとす
ば(nX0,nY0,nZ0についても同様)、(12)式等によ
なる関係があることになる。すなわち、 (i)αで書かれたMiの乗算を行なってMを求め(こ
のMはαで書かれている)、 (ii)Mの各要素のうちa12(α),a13(α)、a
14(α),a23(α),…,a34(α)を取出せ
ば、これらはそれぞれ、nX,nY,nZ,…,Zに対応してい
るため、(12)式等の関係式が得られ、 (iii)(12)式等の関係式は、の関係を示す式
であるため、との相互の変換式が得られたことにな
る。すなわち、からへの変換を行なうためには、前
記(2)式の演算、すなわち、 M1×M2×M3×M4×M5×M6=M …(14) なる演算を行なえばよい。さらに換言すれば、αから
への変換は、ロボットの各自由度の動きを座標変換マト
リクスMiとして表現し、そのマトリクスの自由度の数
(たとえば6自由度の場合、i=1ないし6)だけの積
マトリクスMを求めればよい。
そこで、前記(14)式の演算を行なう装置につき説明す
る。第6図は、からへの座標交換装置を説明するた
めのブロック図である。この図は、第2A図に相当し、点
線で囲んだ部分が第1A図および第1B図に示した座標変換
部5である。
座標変換部5は、マトリクスシストレジスタ25と、それ
に接続されたマトリクス乗算器41と、それに接続された
マトリクスレジスタ42と、それに接続されたマトリクス
レジスタ43およびバッファレジスタ44とを備える。マト
リクスシフト25は、自由度の数だけの、たとえば6自由
度の場合6個のマトリクスレジスタ251ないし256から構
成されている。マトリクスレジスタ251ないし256は、そ
れぞれ、各自由度の動きを座標変換マトリクスとして保
持する。マトリクス乗算器41は、2つのマトリクスを入
力とし、その2つのマトリクスの積のマトリクスを出力
する。このマトリクス乗算器41については後でさらに詳
しく説明する。マトリクスレジスタ42は、マトリクス乗
算器41での乗算結果を保持する。
ここで、クロック信号につき説明する。座標変換部5に
タイミング回路(図示せず)から2種類のクロック信号
φAおよびφBが与えられる。すなわち、マトリクスレ
ジスタ42にはクロック信号φAが与えられ、マトリクス
シフトレジスタ25,マトリクス乗算器41,マトリクスレジ
スタ43およびバッファレジスタ44にはクロック信号φB
が与えられる。クロック信号φAは、マトリクスの積を
とるためのものであり、細かく見れば64個のパルスから
なる。クロック信号φBは、レジスタをシフトさせるた
めのものであり、細かく見れば16個のパルスからなる。
なお、これらのクロックφAおよびφBは、以上と同様
の考え方で、第2A図および第2B図に示したすべてのブロ
ックに入力される。すなわち、マトリクスの積を受ける
レジスタにはクロック信号φAが入力され、それ以外の
ブロックにはクロック信号φBが入力される。
次に、座標変換部5の動作につき説明する。マイクロコ
ンピュータ(図示せず)から、各マトリクスレジスタ25
1ないし256に変換マトリクスM1ないしM6がそれぞれ与え
られる。図において、▽は、マイクロコンピュータから
の入力を示している。つまり、マイクロコンピュータ内
のリードオンメモリ内には、各自由度の正弦および余弦
を求めるためのテーブルがあり、そのテーブルに基づい
てソフトウェアによる補間が行なわれ、これによって上
述のようにマイクロコンピュータからマトリクスレジス
タ251ないし256に変換マトリクスM1ないしM6が与えられ
る。まず始めに、マトリクスレジスタ251内にはマトリ
クスM1が保持されており、マトリクスレジスタ43は単位
マトリクスEにイニシャライズされている。したがっ
て、マトリクス乗算器41は、マトリクスM1と単位マトリ
クスEとの乗算を行ない、その結果であるマトリクスM1
がマトリクスレジスタ42内に保持される。第6図は、こ
の状態を示している。次に、前記クロック信号によりマ
トリクスシフトレジスタ25内のマトリクスは図において
右の方向に1ブロックだけシフトされ、すなわち、マト
リクスレジスタ251内にはマトリクスM2がロードされ、
さらにマトリクスレジスタ43にはマトリクスレジスタ42
からのマトリクスM1がロードされ、そしてマトリクス乗
算器41においてマトリクスレジスタ251からのマトリク
スM2とマトリクスレジスタ43からのマトリクスM1との乗
算が行なわれ、その結果マトリクスM1×M2がマトリクス
レジスタ42中にロードされる。以降同様の動作が繰返さ
れ、所定の6クロックタイムの後には、マトリクスレジ
スタ42およびバッファレジスタ44中にはマトリクスM1×
M2×M3×M4×M5×M6が、すなわちマトリクスMがロード
される。これにより、からへの変換が行なわれたこ
とになる。なお、バッファレジスタ44は必ずしも必要な
ものではなく、さらにマトリクスレジスタ43の代りに最
小限1行(または1列)分のバッファ機能をマトリクス
レジスタ42中に含めることあるいはマトリクス乗算器41
に付加することにより省略することができる。この場
合、マトリクスレジスタ42は、単位マトリクスEにイニ
シャライズされるものとする。
以上のようなからへの変換をマイクロコンピュータ
のソフトウェアのみで行なうとすれば、その演算時間は
たとえば50〜100m sec程度必要とするが、同様の演算を
この実施例ように専用のハードウェアで実施すると非常
に高速度で、たとえば1m sec以下で行なうことができる
という効果がある。
次に、前述したマトリクス乗算器41の詳細につき説明す
る。第7図は、マトリクス乗算器を説明するためのブロ
ック図である。このブロックの全体の運用でマトリクス
乗算器の機能が達成される。第6図のマトリクス乗算器
41は、そのような機能を達成するものを適宜上1つのマ
トリクス乗算器41として表わしたものである。第2A図お
よび第2B図に示し、後で説明する他のマトリクス乗算器
についても同様である。
4×4のマトリクスレジスタ80および81が乗算・加算器
82の入力部に接続されており、乗算・加算器82の出力部
には4×4のマトリクスレジスタ83が接続されている。
このマトリクスレジスタ80,81および83は、それぞれ、
第6図のマトリクスレジスタ43,マトリクスシフトレジ
スタ25およびマトリクスレジスタ42に対応している。乗
算・加算器82は、乗算器821と、それに接続された加算
器822と、それに接続されたバッファレジスタ823とを備
える。マトリクスレジスタ80からの乗算・加算器82への
入力をxiとし、マトリクスレジスタ81からの乗算・加算
器82への入力をyiとし、乗算・加算器82からのマトリク
スレジスタ83への出力をziとした場合、乗算・加算器82
においては次の式に示す演算が行なわれる。
zi=zi-1+xi×yi …(15) ここでは、iは1乗算時間単位のタイミングを示し、i
=1ないし4である。このブロック図の装置は、2つの
機能を有している。第1は、次の式に示すようなマトリ
クス乗算の機能である。
[X]×[Y]=[Z] 第2は、マトリクスレジスタ83の内容をマトリクスレジ
スタ80中に転送する機能である。
第8図は、マトリクスレジスタの一例を示すブロック図
である。この図は4×4のマトリクスレジスタについて
示しているが、6×6のマトリクスレジスタについても
同様である。ここでは、マトリクスレジスタ80を例にし
て説明する。4×4のシフトレジスタ802の入力部およ
び出力部に、それぞれ、ゲート801および803が接続され
ている。さらに、ゲート801および803ならびにシフトレ
ジスタ802には、制御装置804が接続されている。このマ
トリクスレジスタ80は、次に示す4つの機能を有する。
(i)2つのモードを選択することが可能である。1つ
は、シフトレジスタ802の各要素をシフトさせるシフト
モードであり、このシフトは指定された1つの行または
列についてのみ行なわれる。他の行または列は巡回(ロ
ーテート)する。他の1つは、シフトレジスタ802の各
要素を巡回させるローテーションモードである。このロ
ーテーションは、全部の行または全部の列について行な
われる。
(ii)データを横方向にシフトまたはローテーションさ
せる横シフトモードと、データを縦方向にシフトまたは
ローテーションさせる縦シフトモードとを選択すること
ができる。
(iii)シフトレジスタ802が外部からデータを受取る要
素を指定することができる。すなわち、シフトレジスタ
802において、シフトする行または列を指定することが
できる(残りの部分はローテートする)。
(iv)シフトレジスタ802において外部へデータを出力
する要素を指定することができる。
上記の4つの機能は、制御装置804によって制御され
る。
第9図は、制御装置とマトリクス乗算器との接続を示す
ブロック図である。マトリクスレジスタ80,81および83
は、データラッチ回路84に接続されており、データラッ
チ回路84は制御用リードオンリメモリ(ROM)85に接続
されている。制御用ROM85には、アドレスカウンタ86が
接続されており、アドレスカウンタ86にはナンドゲート
87が接続されている。
各マトリクスレジスタ80,81および83において、データ
ラッチ回路84からの信号により、前記4つの機能を選択
が行なわれる。制御用ROM85内には、各マトリクスレジ
スタ80,81および83を制御するための所定のデータが記
憶されている。そのデータは、アドレスカウンタ86によ
り指定されたアドレスから順次読出される。アドレスカ
ウンタ86の内容は、ホストシステム(図示せず)からの
クロック信号CLKにより更新される。
第10図は、マトリクスレジスタの運用方法を説明するた
めの図である。この図と下に示す表2とを用いて、マト
リクスレジスタがいかに運用され、それによってマトリ
クス乗算が行なわれるかを説明する。
マトリクスレジスタ80,81および83のモードを選択す
る。すなわち、マトリクスレジスタ80のモードとして、
横モードおよびローテーションモードを選択する。マト
リクスレジスタ81のモードとして、縦モードおよびロー
テーションモードを選択する。マトリクスレジスタ83の
モードとして、横モードおよびシフトモードを選択す
る。
まず、マトリクスレジスタ80の第4行の各要素と、マト
リクスレジスタ81の第4列の各要素との乗算が行なわ
れ、各積の和がマトリクスレジスタ83の第4行第1列に
ロードされる。これは、前記(15)式の演算を行なうこ
とにより達成される。次に、マトリクスレジスタ80の第
4行の各要素とマトリクスレジスタ81の第3列の各要素
との演算が前述と同様に行なわれる。その演算結果は、
マトリクスレジスタ83の第4行第1列にロードされてい
た先のデータを第4行第2列にシフトするとともに、マ
トリクスレジスタ83の第4行第1列にロードされる。以
後同様にして、マトリクスレジスタ80の第4行の各要素
とマトリクスレジスタ81の第2列あるいは第1列の各要
素との演算が行なわれ、その演算結果はマトリクスレジ
スタ83の第4行にロードされる。
次に、マトリクスレジスタ80の第3行の各要素とマトリ
クスレジスタ81の各列の要素との演算が前述と同様に行
なわれ、その演算結果がマトリクスレジスタ83の第3行
にロードされる。以後同様にして、マトリクスレジスタ
80の第2行あるいは第1行の各要素とマトリクスレジス
タ81の各列との演算が行なわれ、その演算結果がマトリ
クスレジスタ83の第2行あるいは第1行にロードされ
る。以上により次式のマトリクス乗算がなされたことに
なる。
[X]×[Y]=[Z] J()の求め方 次に、ヤコビアンJ()を専用ハードで求める方法お
よびそのための装置を説明する。これは、第1A図および
第1B図の座標変換部6の一部分に相当する。
前記(8)式は、についての方程式であり、絶対座標
系の姿勢・位置ベクトルと各関節角ベクトルとの間
には、非線形の関係が存在する。したがって、(8)式
から→の直接変換を求めることは一般に複雑であ
る。
そこで、この実施例では上記(8)式について微小変化
dおよびdに限定すれば、線形で取扱い得ることに
着目し、ヤコビアンJ()を利用する。なお、このヤ
コビアン(Jacobian)は、たとえば、IEEE TRANSACTION
S ON MAN−MACHINE SYSTEMS,VOL.MMS−10,NO.2,JUNE196
9のDaniel E.Whitneyによる“Resolved Motion Rate Co
ntrol of Manipulators and Human Prosthesis"という
記事でよく知られている。dとdとの間の変換のヤ
コビアンは、(7)式の右辺を微小なdについてテー
ラー展開し、その最低次の項のみを残すことによって、
次式(16)で表わされることがわかる。
ここで、 d=J()・d …(17) であるから、連立方程式を解けば、 d=[J()]-1・d …(18) が成立する。この発明の実施例では、(17)および(1
8)式を利用して、直角座標系からα系への座標変換を
行なう。上記2式は微小変化についてのものであり、し
たがってそのための演算は、少なくともサーボレートで
行なう必要がある。
そこで、この実施例では、上記のようなアルゴリズムを
演算回路で実現せんとするものである。
前述の(3)式に戻って、をαないしαで偏微分
すると、(19)式が得られる。
変換マトリクスを微分するということはその中の各要素
を微分することであり、したがって上記(19)式の∂
/∂αは、(5)式を用い次式(20)式で表わされ
る。
これを前述の(16)式と対応させると、 また、∂f4/∂α,∂f5/∂αおよび∂f6/∂α
は、上記ブロックマトリクス∂m/∂αの中から適当な
3つを選択する。(19)式の残りのものについても(2
0)および(21)式と同様に処理できる。このようにし
て∂M/∂αi(i=1,2,…,6)を計算することによって
カコビアンJ(α)の各々の要素が求まる。このように
して求めた要素を、前述の(17)式に代入することによ
って、微小区間での座標変換が達成される。
この実施例では、前述のヤコビアンマトリクスの各要素
を求めるために、(19)式は同じ演算過程の繰り返しが
多いことに着目して、マイクロコンピュータやマイクロ
プロセサとは別のすなわち専用のハードウェアで演算
し、マイクロコンピュータないしマイクロプロセサはそ
の求めた要素を代入して、最終的に座標変換を行なうよ
うにする。したがって、マイクロプロセサないしマイク
ロコンピュータにおいて、座標変換のために必要な処理
が非常に少なくなる。したがって、高速の素子を用いる
必要がないばかりか、マイクロコンピュータやマイクロ
プロセサのCPUに対して別の機能を付加することができ
る。従来のものでは、座標変換のための演算時間が非常
に長かったので、CPUの処理速度が高速でなければ、あ
まり細かく内分補間することができなかった。また、他
の機能を付加しようとすれば補間点の演算時間を制限し
なければならずそのためには補間間隔を大きくすること
が考えられたが、軌跡の正確さに欠けるという欠点があ
った。これに対して、この実施例のように座標変換のた
めに必要な演算要素を別の演算回路で行なうようにすれ
ば、マイクロプロセサやマイクロコンピュータに高速の
ものが必要ではなくなり、あるいは他の機能を付加する
ことが簡単にできる。
さらに、このような座標変換の方法によれば、多関節ロ
ボットの構造の変更および自由度の増減に比較的容易に
対処できる。たとえばエンドエフェクタの種類によって
要求される自由度は異なる場合はあるが、このような場
合でもこの実施例の装置によれば、マイクロコンピュー
タなどのソフトウェアを多少修正するだけでよいので、
汎用性が増強されることになる。
第11図はこの実施例の概念を説明するためのブロック図
である。マイクロプロセサ1は演算回路2に接続され
る。マイクロプロセサ1から、演算回路2に、前述の
(19)式の各腕ごとの変換マトリクスM1〜M6およびM1
〜M6′が与えられ、演算回路2では、この(19)式に基
づいて演算を行なう。演算回路2は、バッファレジスタ
B1〜B12およびb1〜b11を含み、乗算器MP1〜MP4によっ
て、これらバッファレジスタにストアされたデータが乗
算される。乗算器MP1はバッファレジスタB5の内容とバ
ッファレジスタB6の内容とを乗算し、その結果をバッフ
ァレジスタB6に再びロードする。乗算器MP2はバッファ
レジスタB6の内容とバッファレジスタb5の内容とを乗算
し、その結果をバッファレジスタb6にロードする。乗算
器MP3はバッファレジスタB7の内容とバッファレジスタB
8の内容とを乗算し、その結果を再びバッファレジスタB
7にロードする。そして乗算器MP4はバッファレジスタB7
の内容とバッファレジスタb7の内容とを乗算し、その結
果をバッファレジスタb6にロードする。この演算回路2
においては、2つの演算過程を含み、その1つはデータ
の流れが第11図における右方向であり、他の過程は逆方
向のデータの流れを有する。そして、それぞれの演算動
作および或るバッファレジスタから他のバッファレジス
タへのデータのシフトは、所定の1ユニットタイムごと
に行なわれる。バッファレジスタB6およびB7は、バッフ
ァレジスタB5からのデータを受け、バッファレジスタB6
はさらにバッファレジスタB8からのデータを受ける。バ
ッファレジスタB1〜B12とそれらに関連する乗算器MP1
よびMP3とが(20)式の変換マトリクスM1〜M6の演算の
ために用いられ、バッファレジスタb1〜b11と乗算器MP2
およびMP4とが(20)式における微分された変換マトリ
クスM1′〜M6′の演算のために利用される。
マイクロプロセサ1からのデータの入力が完了した状態
では、バッファレジスタB1,B2,B3,B4,B5,B6および
B7に、それぞれ、変換マトリクスM1,M2,M3,M4,M5
M6およびM6がロードされ、バッファレジスタb1,b2
b3,b4,b5,b6に、それぞれ、微分された変換マトリク
スM1′,M2′,M3′,M4′,M5′,M6′がロードされて
いる。次のユニットタイム間にバッファレジスタB5にロ
ードされた変換マトリクスM5とバッファレジスタB6にロ
ードされた変換マトリクスM6とが乗算器MP1で乗算さ
れ、同時にバッファレジスタb5にロードされている微分
された変換マトリクスM5′とバッファレジスタB6にロー
ドされている変換マトリクスM6とが乗算器MP2によって
乗算され、その結果M5×M6およびM5′×M6′が、それぞ
れ、バッファレジスタB6およびb6にロードされる。ま
た、この間に、各バッファレジスタにロードされている
変換マトリクス(微分されたものも含む)は、次の乗算
に備えて、第11図の右方向へ1ブロックシフトされてい
る。そして、バッファレジスタB7〜B12にそれぞれ変換
マトリクスM1〜M6がロードされ、バッファレジスタB6
はすべての変換マトリクスの乗算結果すなわちM1×M2×
M3×M4×M5×M6がロードされ、バッファレジスタb11,b
10,b9,b8,b7およびb6には、それぞれ、M6′,M5′×
M6,M4′×M5×M6,M3′×M4×M5×M6,M2′×M3×M4×
M5×M6およびM1′×M2×M3×M4×M5×M6がロードされて
いる。そして、この時点で第1の演算過程が終了する。
次の演算過程の流れは第11図の左方向であり、乗算器MP
3およびMP4によって処理される。先の演算過程で第11図
の右側のバッファレジスタに移ったそれぞれのデータ
は、次のユニットタイム間にすべて、左側へ再びシフト
される。その結果、バッファレジスタB1,b1,b2,…b6
には、それぞれ、各マトリクスの積すなわちM1×M2×M3
×M4×M5×M6,M1′×M2×M3×M4×M5×M6,M1×M2′×
M3×M4×M5×M6,…M1×M2×M3×M4×M5×M6′がロード
されることになる。
このようにして演算された(19)式の要素はバッファレ
ジスタb1からマイクロプロセサ1に順次転送される。こ
れらのマトリクスが各々∂M/∂α,∂M/∂α,…,
∂M/∂αであることは前述した通りである。これらの
うち、例えば∂M/∂αについて考えてみると、このマ
トリクスは(20)式において[ ]で示したマトリクス
である。このマトリクスの∂PX/∂α,∂PY/∂
α,∂PZ/∂α等の要素は、(21)式によって(1
6)式のヤコビアンJ(α)の一部の要素に対応してい
る。∂M/∂α,…,∂M/∂αについても同様であ
る。従って上記ロードされた6つのマトリクス積のそれ
ぞれから必要な要素を取り出すことにより、(16)式の
ヤコビアンJ()のすべての要素が得られる。ヤコビ
アンJ()が得られれば、(18)式を用いて各関節角
の変化量が得られる。これらの処理がマイクロプロセッ
サ1によって行なわれる。
このように、ヤコビアンの各要素を計算するために別の
演算回路2を用いるようにすれば、演算回路2における
演算速度はマイクロプロセサ1のソフトウェア処理によ
る演算速度に比べて非常に早いので、マイクロプロセサ
1の負担すべき演算時間が少なくて済み、dからd
の変換がサーボレートで行なえる。また、このように別
のハードウェア構成による演算回路を設けるようにすれ
ば、ロボットの構造の変更および自由度の増減に対して
容易に対処できる。なぜならば、自由度の増減に対処す
るにはハードウェア回路を増減するだけでよいからであ
る。
なお、バッファレジスタB1から得られるデータM1×M2×
M3×M4×M5×M6は、前記(1)および(3)式の変換マ
トリクスであり、CPUはこのデータを用いて、ハンド座
標系から絶対座標系への変換も行なうことができる。
第12図はこの実施例の概念を説明するための他のブロッ
ク図である。この第12図の回路は、第11図の回路よりも
演算時間を短縮することができる。たとえばこの第12図
の回路によれば、同じようにヤコビアンマトリクスの各
要素を演算するについて、第11図の回路に比べて、回路
規模を減少することができる。なぜならば、データ転送
数を大幅に減らすことができるからである。この第12図
に示す演算回路2はバッファレジスタB1〜B7およびb1
b6を含み、マイクロプロセサ1(第11図)はバッファレ
ジスタB1とb1とに結合される。乗算回路MP1は、バッフ
ァレジスタB5の内容とバッファレジスタB6の内容とを乗
算しその結果をバッファレジスタB6に再びロードすると
ともに、バッファレジスタB1の内容とバッファレジスタ
B7の内容とを乗算しその結果を再びバッファレジスタB7
にロードすることができる。同じように、乗算回路MP2
は、バッファレジスタB6の内容とバッファレジスタb5
内容とを乗算してその結果をバッファレジスタb6にロー
ドするとともに、バッファレジスタB7の内容とバッファ
レジスタb1の内容とを乗算し、その結果を同じくバッフ
ァレジスタb6にロードすることができる。
マイクロプロセサ(図示せず)からのデータ入力が完了
した状態では、バッファレジスタB1,B2,B3,B4,B5
B6およびB7には、それぞれ、(19)式の変換マトリクス
M1,M2,M3,M4,M5,M6およびM6がロードされ、バッフ
ァレジスタb1〜b6には、ぞれぞれ、微分された変換マト
リクスM1′〜M6′がロードされる。次のユニットタイム
では、乗算回路MP1によってバッファレジスタB5にロー
ドされていたM5とバッファレジスタB6にロードされてい
たM6とが乗算され、バッファレジスタB6にはM5×M6がロ
ードされる。同じように、乗算回路MP2によって、バッ
ファレジスタb6には、M5′×M6がロードされる。またこ
の間に、各ブロックのマトリクス(微分されたものも含
む)は次の乗算に備えて1ブロックずつシフトされる。
次のユニットタイムでは、バッファレジスタB6にM4×M5
×M6がロードされ、バッファレジスタb6にはM4′×M5×
M6がロードされる。このとき、バッファレジスタb1
は、先にバッファレジスタb6にロードされていたM5′×
M6がロードされている。また、バッファレジスタB7には
最初にバッファレジスタB4にロードされていたM4がロー
ドされているであろう。以後このことが繰返されて、最
終的にはバッファレジスタB1,B2,B3,B4,B5,B6およ
びB7には、それぞれ、M1×M2×M3×M4×M5×M6,M2
M3,M4,M5,M6およびM1×M2×M3×M4×M5×M6がロード
される。一方、バッファレジスタb1,b2,b3,b4,b5
よびb6には、それぞれ、M1′×M2×M3×M4×M5×M6,M1
×M2′×M3×M4×M5×M6,M1×M2×M3′×M4×M5×M6
M1×M2×M3×M4′×M5×M6,M1×M2×M3×M4×M5′×M6
およびM1×M2×M3×M4×M5×M6′がロードされる。そし
て、マイクロプロセサへはバッファレジスタb1からデー
タが転送される。
マイクロプロセサはこのようにして求められたヤコビア
ンJ()のインバース[J()]-1を求め、さらに
(18)式を用いて各関節角の変化量を求める。
上記バッファレジスタB7に得られたデータM1×M2×M3×
M4×M5×M6を用いてハンド座標系から絶対座標系への変
換を行ない得ることは前述のとおりである。
好ましい実施例では、第12図の回路に従ったハードウェ
ア回路をCPUとは別の集積回路で構成する。
第13図はこの発明の実施例に用いられる集積回路の一例
を示すブロック図である。この集積回路3は、後に詳細
に説明するがその中には8ビットレジスタが16個配置さ
れたシフトレジスタである。そして、この集積回路3は
マイクロプロセサないしCPUに接続され、入力バスBiに
接続された入力ポートI0〜I7を有し、出力バスBoに接続
された出力ポートO0〜O7を有する。マイクロプロセサな
いしCPUからのデータは入力バスBiの入力ポートI0〜I7
によって与えられ、CPUへは出力バスBoの出力ポートO0
〜O7を通してデータが与えられる。他の集積回路からの
データはデータバスD1またはD2によってそれぞれに対応
する入力ポートD10〜D17またはD20〜D27に与えられる。
他の集積回路へのデータ出力はDout(D0〜D7)から得ら
れる。データの選択はCPUから与えられる信号D1/D2
よって行なわれる。集積回路3は、さらに、その中に含
まれるシフトレジスタのためのシフトクロックCKおよび
その他の信号▲▼,▲▼,R/W,▲▼お
よび▲▼を受ける。
第14図はこの集積回路の詳細を示すブロック図である。
集積回路3は16の8ビットレジスタ300〜315を含み、各
々のレジスタは8つのフリップフロップからなる。たと
えばレジスタ300はフリップフロップ300a〜300hからな
り、レジスタ315はフリップフロップ315a〜315hからな
る。レジスタ300の各々のフリップフロップ300a〜300h
は、各々のデータセレクタ316a〜316hからのデータ出力
を受け、これらフリップフロップ300a〜300hの出力は、
ナンドゲート317a〜317hのそれぞれの1入力に与えられ
るとともに、次段のレジスタ301を構成するそれぞれの
フリップフロップ301a〜301hに与えられる。そして、レ
ジスタ301の内容は順次レジスタ302,…314,315に送られ
る。このようにしてレジスタ300〜315によってシフトレ
ジスタが構成される。レジスタ315の各々のフリップフ
ロップ315a〜315hの出力は、対応のデータセレクタ316a
〜316hに与えられるとともに、データ出力Doutの各ビッ
トD0〜D7となる。データセレクタ316a〜316hには、それ
ぞれ、データ入力D1およびD2すなわちD10〜D17およびD2
0〜D27が与えられ、さらに、入力バスBiすなわちI0〜I7
が与えられる。データセレクタ316a〜316hには、さら
に、コントローラ318を経た信号D1/D2および信号R/Wの
反転と信号▲▼の反転との論理積▲/▼・CSが
与えられ、さらに信号▲▼が与えられる。ここ
で、信号D1/D2は、データ入力D10〜D17およびD20〜D27
のいずれかを選択的に取込むための指令信号であり、た
とえばこの信号「1」でデータ入力D10〜D17が選択さ
れ、「0」でD20〜D27が選択される。信号R/Wは、レジ
スタへのデータ書込みまたはレジスタからのデータ読出
しの選択を行ない、「1」で読出し「0」で書込みとな
る。信号▲▼はチップセレクト信号であり、「0」
でこの素子が選択される。信号▲▼は、ローテー
ション信号であり、レジスタ300〜315の内容をそれぞれ
次段のレジスタにシフトさせるためのものであり、
「0」でそのシフト動作が指令される。このようにシフ
トさせる必要があるのは、データ書込みおよび読出しの
両方においてであり、レジスタ300からしかデータ書込
みやデータ読出しができない構成であるからである。
レジスタ300のフリップフロップ300a〜300hの出力を受
けるナンドゲート317a〜317bのそれぞれの残余の2入力
には、コントローラ318を通して、信号▲▼の反転
と信号R/Wとの論理積CS・R/Wおよび信号▲▼の反
転STBが与えられる。信号▲▼はストローブ信号
である。また、レジスタ300〜315を構成するフリップフ
ロップ300a〜315hには、信号▲▼が与えられ、こ
の信号▲▼はクリア信号である。レジスタ301〜3
15のフリップフロップ301a〜315hには、クロックCKが与
えられる。レジスタ300のフリップフロップ300a〜300h
には、クロックCKに代えて、コントローラ318を通し
て、クロックCKとストローブ信号▲▼の反転とチ
ップセレクト信号▲▼の反転との論理積すなわちCK
・STB・CSが与えられる。
ナンドゲート317a〜317hの出力は出力バスBoの各ビット
B0〜B7となる。
第14図に示す集積回路3では、レジスタ300〜315間の16
回のシフトすなわちローテーション動作が、先の第12図
に示すバッファレジスタB0〜B7およびb0〜b6間の1シフ
トに相当する。そして、信号▲▼の「0」で当該チ
ップが能動化され、信号R/Wが「0」のときデータセレ
クタ316a〜316hを通して、信号D1/D2に依って、データ
入力D1(D10〜D17)またはD2(D20〜D27)が、レジスタ
300に与えられる。また、信号R/Wが「1」のとき、ナン
ドゲート317a〜317hが有効化され、レジスタ300のフリ
ップフロップ300a〜300hから、出力バスB0〜B7へデータ
が読出される。なお、信号D1/D2は第12図に示す概念図
におけるデータシフト方向を表わす。
レジスタ300〜315間のデータのローテーションは信号▲
▼に応答して行なわれ、信号▲▼に応答し
てすべてのレジスタ300〜315がクリアされる。
第15図は第13図および第14図に示す集積回路3を用いて
第12図の回路を実現するための構成の一例を示すブロッ
ク図である。第12図の回路と機能的に対応する部分には
同じ参照符号を付している。第15図において、バッファ
レジスタB1〜B7およびb1〜b6が、それぞれ、第12図の対
応の参照符号のものに相当する。それぞれのバッファレ
ジスタは第14図に示す集積回路3を2個ずつ並列に含
み、したがって16ビットの16段シフトレジスタとして構
成されている。乗算回路MP1は、データセレクタ41およ
び51ならびに乗算器61を含み、乗算回路MP2はデータセ
レクタ42および52ならびに乗算器62を含む。データセレ
クタ41には、バッファレジスタB5の出力がXRとしてまた
レジスタB7の出力がXLとして与えられる。データセレク
タ51には、レジスタB6の出力がYRとしてまたレジスタB1
の出力がYLとして与えられる。乗算器61は、指令信号CM
に応答して、データセレクタ41および51からの入力を乗
算し、その乗算結果は一時記憶レジスタR1にロードされ
る。一方、乗算回路MP2に含まれるデータセレクタ42に
はバッファレジスタb5の出力がXRとしてまたバッファレ
ジスタB7の出力がXLとして与えられる。データセレクタ
52にはバッファレジスタB6の出力がYRとしてまたバッフ
ァレジスタb1の出力がYLとして与えられる。乗算器62
は、指令信号CMに応答して、データセレクタ42および52
からのデータを乗算し、その結果を一時記憶レジスタR2
にロードする。データセレクタ41,51,42および52には、
それぞれ、データ選択信号D1/D2が与えられ、この信号
によって信号XR,YRまたはXL,YLが選択される。なお、
一時記憶レジスタR1およびR2もまた他のバッファレジス
タと同じように第14図に示す集積回路の組合わせからな
り16ビットのシフトレジスタである。
シフトレジスタB1〜B7,b1〜b6,R1およびR2には、入力
バスBiおよび出力バスBoが連結される。そして、レジス
タB1およびb1には後述の第16図回路からのシフトタイミ
ング信号Vが与えられ、レジスタB5およびb5には、シフ
トタイミング信号Uが与えられ、一時記憶レジスタすな
わちバッファレジスタR1およびR2にはシフトタイミング
信号Wが与えられ、他のレジスタB2〜B4およびb2〜b4
は、クロック信号φが与えられる。
第16図は第15図に示す演算回路に接続されるべきマイク
ロプロセサに関連する回路を示すブロック図である。第
16図において、発振器101は、クォーツ101aを有し、2
相クロックφ1およびφ2を出力する。一方のクロック
φ1はシフトタイミング発生回路102(後述)に与えら
れ、クロックφ2は乗算指令発生回路103に与えられ
る。シフトタイミング発生回路102からは、シフトタイ
ミング信号U,VおよびWおよびクロックφが出力される
とともに各レジスタB1〜B7,b1〜b6,R1およびR2内にお
いて、一連のシフトが行なわれたことを表わす信号Sが
出力される。シフトタイミング発生回路102からの信号
Sはシフト回数検出回路104,シフト方向検出回路105お
よびフリプフロップ107に与えられる。シフト回数検出
回路104は16進カウンタとフリップフロップとを含み、
シフトタイミング発生回路102からの信号Sを16カウン
トするごとに出力を出す。すなわち、この回路104は第1
4図に示すレジスタ300〜315間でデータが1循環したこ
とを検出する。シフト方向検出回路105は、5進カウン
タを含み、第12図,第15図に示すバッァレジスタ間にお
いて左方向または右方向に5回シフト動作が行なわれる
ごとに出力を出す。このシフト方向検出回路105の出力
はフリップフロップ106に与えられ、このフリップフロ
ップ106はたとえばトグルフリップフロップからなり、
回路105からの信号が与えられるごとにその出力Qを反
転する。このフリップフロップ106の出力はデータ選択
信号D1/D2となる。フリップフロップ107は、たとえばJ
−Kフリップフロップからなり、シフト動作をさせるか
または乗算動作をさせるかを区別するもので、出力が
「0」のときバッファレジスタ間のデータシフト動作
を、出力が「1」のとき乗算動作を行なわせる。
シフト回数検出回路104の出力は、フリップフロップ106
の出力とともにアンドゲート108の入力に与えられる。
アンドゲート108のの出力はフリップフロップ109のリセ
ット入力に与えられる。フリップフロップ109はCPU1か
らのスタート信号STARTによってセットされ、その出力
がエンド信号END(または割込信号)としてCPU1に与
えられる。
フリップフロップ107の出力は4つのアンドゲート11
0,111,112および113のそれぞれの一方入力として与えら
れ、これらアンドゲートの他方入力にはそれぞれシフト
タイミング発生回路102からの信号U,V,Wおよびφが与え
られる。したがってフリップフロップ107の出力が
「1」のとき各バッファレジスタ内のシフトレジスタが
シフトされてそのために乗算動作されることになるのは
前述のとおりである。
CPU1はレジスタ呼出タイミング発生回路114にアドレス
デコーダ(図示せず)からの信号を与える。このレジス
タ呼出タイミング発生回路114は第15図の各レジスタ内
のアドレスを指定するためのものであり、アドレス入力
に対応して初期値をロードすべきレジスタを指定し、第
14図に示す各レジスタ間のデータのシフト動作すなわち
ローテーションを行なわせるための信号▲▼を出
力する。この信号▲▼が「0」のとき各レジスタ
がシフト動作され、「1」のときはシフト動作が行なわ
れない。
CPU1に含まれるアドレスデコーダからの指定信号は、こ
のレジスタ呼出タイミング発生回路114を通してオアゲ
ート115の一方入力に与えられ、このオアゲート115の他
方入力にはアンドゲート113の出力が与えられる。オア
ゲート115の出力はまたオアゲート116,117および118の
一方入力として与えられ、これらオアゲートにはそれぞ
れアンドゲート110,111および112の出力が与えられる。
このようにして、オアゲート115,116,117および118の出
力が、シフトタイミング信号φ,U,VおよびWとなる。
また、CPU1からは、信号▲▼,▲▼,▲
▼およびR/Wが出力される。
ここで、第17図を参照してシフトタイミング発生回路10
2について詳細に説明する。まず初期状態としてフリッ
プフロップ130,133および136はすべてリセットされてい
る。したがってそれぞれの出力は[1]である。応じ
て、アンドゲート121,122および123の入力が「1」であ
り、アンドゲート124の入力が「0」であり、アンドゲ
ート125の入力が「1」であり、アンドゲート126および
127の入力が「0」である。
アンドゲート121にクロックφ1が与えられると、アン
ドゲート122および125を通して4進カウンタ128にクロ
ックφが与えられる。なお、カウンタ128は、他のカウ
ンタ129,131,132および134と同じように、与えられるカ
ウント入力がそのまま出力される端子と所定のカウント
した後信号を出力するカウントアップ出力端子とを含
む。クロックφがカウンタ128に1個入ると、したがっ
てそのときオアゲート138に出力が出る。このオアゲー
ト138の出力がシフトタイミング信号Vとなる。そし
て、カウンタ128に4つのクロックφが与えられると、
このカウンタ128からカウントアップ信号が出力されて
それが4進カウンタ129に入力される。したがって、4
進カウンタ129からオアゲート137を通して、シフトタイ
ミング信号Uが出力される。したがって、或る場合に
は、このシフトタイミング信号Uは4つのシフトタイミ
ング信号Vごとに1つ出力されることになる。カウンタ
129がカウントアップするとすなわちアッゲート125から
16個のクロックφが出力されると、フリップフロップ13
0がセットされ、その出力Qが「1」となる。このフリ
ップフロップ130の出力QがレジスタR1,R2(第15図)
へのデータロード信号すなわちシフトタイミング信号W
である。
フリップフロップ130の出力Qが「1」となり、出力
が「0」となることによって、アンドゲート125および1
27が開かれる。しかしながら、アンドゲート127には、
フリップフロップ133の出力が「1」であるので、こ
のときはアンドゲート124からの出力φは与えられな
い。他方アンドゲート125はこのフリップフロップ130の
出力の「0」によって閉じられる。したがって、この
状態ではアンドゲート121からのクロックφはアンドゲ
ート123および126を介してカウンタ131に与えられる。
そして、ゲート126からクロックφが与えられるごとに
カウンタ131からオアゲート137を通してシフトタイミン
グ信号Uが出力される。カウンタ131は12進カウンタで
あり、12個のクロックφがシフトタイミング信号Uとし
て出力され、このカウンタ131が12クロックをカウント
すると、カウントアップ出力をカウンタ132およびフリ
ップフロップ130のリセット入力に与える。
したがって、フリップフロップ130がリセットされ、再
びカウンタ128および129が能動化される。そして、前述
の16のクロックφのカウントを繰返し、再びフリップフ
ロップ130がセットされ、カウンタ131が能動化される。
カウンタ131がカウントアップするごとにこのことが繰
返され、その都度カウンタ132に信号が与えられる。こ
の信号を3進カウンタ132によってカウントすると、こ
のカウンタ132がフリップフロップ133をセットする。な
お、カウンタ132にカウンタ131から信号が与えられるご
とに、このカウタン132からオアゲート138を通してシフ
トタイミング信号Vが出力される。
フリップフロップ133がリセットされることによって、
その出力が「0」となり、アンドゲート122および123
が閉じられ、アンドゲート124のみが開く。このとき、
フリップフロップ130がリセットされているので、アン
ドゲート127が開いている。したがって、アンドゲート1
21からのクロックφがカウンタ134に与えられる。カウ
ンタ134にクロックが与えられるごとに、オアゲート138
を通してシフトタイミング信号Vが出力される。カウン
タ134は13進カウンタであり、クロックφを13カウント
するごとにカウントアップ出力を導出する。このカウン
タ134からのカウントアップ出力がカウンタ135に与えら
れるとともに、フリップフロップ133のリセット入力に
与えられる。カウンタ135は4進カウンタであり、その
カウントアップ出力はフリップフロップ136のセット入
力に与えられる。このフリップフロップ136のリセット
入力にはCPUからのリセット信号が与えられる。フリッ
プフロップ136の出力Qが、第16図の信号Sである。フ
リップフロップ136がリセットされると、その出力が
「1」となり、アンドゲート121が再び開かれて、先の
動作が繰返される。
ここで、第18図〜第20図を参照して、シフトタイミング
発生回路102からのシフトタイミング信号U,VおよびWが
持つ意味についてやや詳しく説明する。一般に第18図に
示すようなマトリクスの乗算は、下記の式に従って行な
われる。
ところで、第15図に示すような集積回路では、第18図お
よび前式に示すマトリクスの乗算を一斉にすることはで
きないので、たとえばまずU44・V44を行ない、次にU43
→U44,U42→U43,…V34→V44,V24→V34,…のように
データをシフトして行なう。すなわち、この実施例で
は、第18図に示すU44の位置とV44の位置との乗算を行な
いこのそれぞれの位置に必要なデータをシフトないしロ
ーテートさせるのである。
このようなマトリクスにおけるU,VおよびWのデータの
ローテートないしシフト動作は、シフトタイミング発生
回路(第16図)からのそれぞれ対応のシフトタイミング
信号ごとに1回行なわれる。そして、上記1つの演算が
終わると、データは順次シフトされるが、その順序は第
19図に示す。Uについては、1つのシフトタイミング信
号Uごとに一列ずつシフトする。したがって、たとえば
第18図の例で、U43の位置にあるデータをU44の位置にシ
フトするためには、1つのシフトタイミング信号Uを与
えるだけでよい。このとき、U42は同時にU43の位置に移
されるので、次にUのデータをU44の位置に移すために
は、再度1つのタイミング信号Uを加えるだけでよい。
すなわち、Uについては、それぞれのデータをU44の位
置にもたらすためには、それぞれ1つのシフトタイミン
グ信号Uを加えるだけでよい。
Vについては、4つのシフトタイミング信号Vが必要で
ある。たとえば、第18図の例において、V34の位置にあ
るデータをV44の位置にシフトするためには、4つのシ
フトタイミング信号Vが必要である。
また、Wについては、1つのシフトタイミング信号で1
つずつシフトされる。したがって、第18図の例でいえ
ば、W44の位置にあるデータをWの位置に移すために
は、1つのシフトタイミング信号Wが加えられればよ
い。
簡単に言うと、上記式のW44については、シフトタイミ
ング信号Wが1回出力され、続いてシフトタイミング信
号Uが1回そしてVが4回与えられると1つ項たとえば
U44・V44が行なわれるので、このW44のすべての項の演
算のためにはこのことを4回繰返せばよい。そして、次
のW43の演算のために、シフトタイミング信号Uを12回
出力するとともにVを1回シフトしてそのW43の演算の
ための初期状態を設定する。続いてW43の演算のためにW
44の演算と同じようにW=1,U=1およびV=4を4回
繰返せばよい。以下同様である。
このことが第20図のタイミングチャートに表わされてい
る。
そして、第17図のシフトタイミング発生回路は、第20図
に従って、それぞれのタイミング信号U,VおよびWを出
力されるように構成されている。すなわち、カウンタ12
8によってタイミング信号Vを、カウンタ129によってタ
イミング信号Uを、そしてフリップフロップ130によっ
てタイミング信号Wを出力する。その後の12個のタイミ
ング信号Uはカウンタ131から出力される。
第21図は第15図および第16図に示す実施例の動作を説明
するためのフロー図である。ここで、第21図を参照し
て、この実施例の動作について説明する。まず、CPU1
(第16図)は、動作の最初において、初期設定を行な
う。このとき、必要に応じて信号▲▼を出力し、
第15図に示す各レジスタをクリアする。そして、ステッ
プ201において、このCPU1に含まれるカウンタ(図示せ
ず)の値nを1にセットする。なお、この値nは0〜15
をとり得る。続くステップ202において、CPU1は第14図
に示すレジスタ300〜315を、カウンタの値nに従って指
定する。これはこのCPU1からレジスタ呼出タイミング発
生回路114にレジスタ指定アドレスを出力することによ
って行なわれ得る。したがって、このステップ202で
は、レジスタ呼出タイミング発生回路114(第16図)か
ら、信号▲▼が出力され、該当のレジスタが選択
される。すなわち、第15図に示す各レジスタB1〜B7およ
びb1〜b6のそれぞれn番目のレジスタが指定される。続
くステップ203において、前記(19)式の変換マトリク
スM1〜M6およびM1′〜M6′をそれぞれ対応のレジスタB1
〜B7およびb1〜b6(第15図)にストアする。すなわち、
まずそれぞれのレジスタのn番目のレジスタ(第14図)
に、Mk,Mk′(k=1〜6)の1つの要素をストアす
る。したがって、このときは、チップセレクト信号▲
▼によって第15図のそれぞれのレジスタB1〜B6および
b1〜b6が順次指定される。このようにして、それぞれの
レジスタB1〜B7およびb1〜b6のそれぞれのn番目のレジ
スタにそれぞれ対応の変換マトリクスの1つの要素がス
トアされる。そして、続くステップ204において、カウ
ンタの値が16(これは第14図に示すレジスタの数に対応
する)であるかどうかを判断する。そして、n=16でな
ければ、ステップ205においてそのカウンタをインクリ
メントし、再び同じことを繰返す。したがって、ステッ
プ204において、n=16であるということは、すべての
レジスタB1〜B7およびb1〜b6のすべてのレジスタ300〜3
15(第14図)にそれぞれの変換マトリクスM1〜M6および
M1′〜M6′のすべての要素がストアされたことを意味す
る。
続いて、CPU1は演算スタート指令STARTを出力する。応
じて、フリップフロップ109がセットされるとともにフ
リップフロップ107がリセットされ、このフリップフロ
ップ107の出力が「1」となる。したがって、アンド
ゲート110〜113が開き、シフトタイミング発生回路102
からのシフトタイミング信号U,VおよびWおよびクロッ
クφが出力可能となる。すなわち、この状態で乗算が行
なわれる。
乗算は、シフトタイミング発生回路102から、第20図で
示すようなタイミングで各々シフトタイミング信号が発
生し第19図に従ってシフト動作が行なわれることによっ
て、第18図に従ってマトリクスの乗算が行なわれる。こ
の間に、シフト方向検出回路105およびデータ選択フリ
ップフロップ106によって、第15図に示す回路における
データ転送(シフト)方向が制御される。すなわち、第
12図の回路に示すデータシフト方向がこのシフト方向検
出回路105およびフリップフロップ106で制御される。デ
ータシフトを5回繰返すことに応じてフリップフロップ
106の出力がデータ選択信号D1/D2として導出されるが、
このときシフト回数検出回路104からはまだ信号が出さ
れていないので、アンドゲート108は出力を出さない。
前式のW44,W43,…のそれぞれの演算が終わるごとにシ
フトタイミング信号発生回路102からシフト回数検出回
路104に信号が与えられる。シフト回数検出回路104は、
前述のように16進カウンタを含むので、シフトタイミン
グ発生回路102から16個の信号が得られたとき、すなわ
ち前(19)式の演算がすべて行なわれたとき、「1」の
信号を出す。このときフリップフロップ106の出力もま
た「1」であり、アンドゲート108から「1」の信号が
フリップフロップ109のリセット信号として与えられ
る。したがって、このフリップフロップ109からの出力
が「1」となり、それがCPU1に与えられる。CPU1で
は、このフリップフロップ109の出力の状態に応じ
て、ステップ207において、演算終了がどうかを判断す
る。
上述のようにして演算が終了すると、ステップ208,209,
210,211および212において、先のステップ201,202,203,
204および205と同じようにして、第15図に示す各々のレ
ジスタB1〜B7およびb1〜b6のそれぞれのレジスタ300〜3
15(第14図)からデータを読込む。このとき、データの
書込みと異なり、CPU1からの信号R/Wは「0」とされる
のはもちろんである。このようにして、CPUは、ヤコビ
アンの各々の要素を演算回路2から取込み、前記(18)
式に基づいて各関節角の変化量を求める。このとき、CP
Uは第22図に示すような演算を行なう。
第22図は、Resolved Motion Rate Controlにおける処理
演算ループを示す。すなわち、CPUは第22図に示すよう
に、直角座標系での変化量di+1i+1を求
め、次いで前述のようにして求めたヤコビアンJ
)の逆マトリクス[J()]-1とdi+1
を用いて関節座標系の変化量di+1を演算する。最後
に、直前の関節系による位置dαと上記変化量d
i+1とを加算して、次の点の関節系による位置i+1を得
る。このようにして、直角座標系から関節座標系への座
標変換がヤコビアンを用いて行なわれる。
第23図はシフトタイミング発生回路の別の例を示す回路
図である。この実施例では、シフトタイミング発生回路
102は7ビットのカウンタ141を含む、このカウンタ141
のカウント入力にはクロックφが与えられる。そして、
最上位ビットAから最下位ビットGまで7ビットA,B,C,
D,E,FおよびGを有するバイナリカウンタとして構成さ
れる。そして、シフトタイミング信号U,VおよびWは、
それぞれ(22)式に従って導出される。
なお、クロックφが、それぞれのシフトタイミング信号
とクロックとの同期をとるために、適当なゲートに入れ
られている。この第23図のようなシフトタイミング発生
回路を用いれば、第17図に示すものに比べて非常に簡単
な回路構成となる。
以上ように、この実施例によれば、直角座標系と関節座
標系との間の座標変換のために、マトリクスの各々の要
素は別のハードウェアで構成した演算回路で演算し、CP
Uではその演算結果を取込んで適当な変換式に代入する
だけでよいので、CPUが座標変換のために演算に利用さ
れる時間が非常に短くなる。したがって、CPUたとえば
マイクロプロセサやマイクロコンピュータとして高速の
ものを用いなくても、極めて正確な座標変換が行なわれ
る。したがって従来のもののように相当大きなエラーが
出たり、同時制御可能な自由度が制限されたりすること
はなく、追随の正確性が期待できる。また、CPUが座標
変換の演算のために利用される時間が非常に短くなるの
で、CPUに対して別の機能を付加することが簡単にでき
る。しかも、演算回路は、ほとんど類似した演算を何回
も繰返すだけであり、制御すべき自由度の増減に対して
も簡単に対応することができる。なぜならば、演算回路
で利用可能な演算機能を単に増減するだけで、CPUのソ
フトウェア(プログラム)についてはほとんど変更が不
要であるからである。このことは、特に、関節を有する
ロボットにおいて、エンドエフェクタの種類を変更する
際に要求される自由度が異なる場合、そのような自由度
の変化に容易に追随できるという極めて大きな効果であ
る。
以上に説明したヤコビアンJ()の求め方を、理解を
より完全なものとするためここに整理してみる。
→の変換は、一般には、implicitにしか表現できな
いので、Newton−Raphson等の方法で解く例が過去にあ
った。まだ、それがexplicitに表現できたとしても、複
雑な非線形な方程式となり、それの演算には多大の時間
を要した。そこで、d→dの変換を位置フィードバ
ックループの中で行なうことが提案されている。これを
Resolved Motion Rate Controlという。このとき、d
→dの関係は線型となり演算時間は短縮されるが、フ
ィードバックのサンプル周波数を実用に耐えるだけに上
げるために、変換は高速で行なう必要がある。このプロ
セスは次の3段階に分割できる。
(i)ヤコビアンJ()の係数を求める。
(ii)ヤコビアンのインンバース[J()]-1を求め
る。
(iii)d=[J()]-1・dを求める。 …(1
8) 特に(i)のプロセスはソフトウェアを用いる従来の方
法では非常に時間がかかっていた。そこで、ヤコビアン
J()を専用ハードで求めたのが上記実施例である。
上記実施例では、ヤコビアンインバース[J()]-1
を求めることおよび(18)式の計算はマイクロコンピュ
ータのソフトウェアで行なっている。
次に、ヤコビアンJ()を専用ハードで求める他の実
施例を説明する。この実施例は、要約すれば、各自由度
の動きを座標変換マトリクスとして保持するマトリクス
レジスタを自由度の数(たとえばN)だけシフトレジス
タとして連結し、同様に前記各自由度の座標変換マトリ
クスのその軸の動きに関する微分を保持するマトリクス
レジスタを自由度の数だけシフトレジスタとして連結
し、マトリクス乗算器を備え、各マトリクスシフトレジ
スタにおいてマトリクスのシフトを行なう過程で適宜マ
トリクス乗算を行ない、N個のマトリクスのうち1つの
マトリクスだけは微分のマトリクスを用いた積マトリク
スをN種類求めることにより、N×Nのヤコビアンマト
リクスの係数を求めるものである。以下、これを図面を
用いて説明する。
第24A図および24B図は、ヤコビアンJ()を求める装
置を説明するためのブロック図である。この図は、第2A
図および2B図に相当し、点線で囲んだ部分がヤコビアン
演算部90である。マトリクスシフトレジスタ25および32
がマトリクスマルチプレクサ45の入力部に接続されてお
り、マトリクスマルチプレクサ45の出力部はマトリクス
乗算器47の入力部に接続されている。マトリクス乗算器
47の入力部には、さらに、マトリクスレジスタ46が接続
されている。マトリクス乗算器47の出力部には、マトリ
クスレジスタ48が接続されており、マトリクスレジスタ
48の出力部には、マトリクスレジスタ67が接続されてい
る。マトリクスシフトレジスタ25は、6つのマトリクレ
ジスタ251ないし256を備える。同様に、マトリクスシフ
トレジスタ32は、6つのマトリクレジスタ321ないし326
を備える。
マトリクスシフトレジスタ25は、各自由度の座標変換マ
トリクスM1ないしM6を保持する。これらの座標変換マト
リクスは、マイクロコンピュータ(図示せず)から与え
られる。マトリクスシフトレジスタ32は、各自由度の座
標変換マトリクスのその軸の動きに関する微分のマトリ
クスM1′ないしM6′を保持する。これらの微分のマトリ
クスもまた、マイクロコンピュータから与えられる。マ
トリクスマルチプレクサ45は、一種のセレクタであり、
マトリクスシフトレジスタ25あるいは32のいずれか一方
を切換えてマトリクス乗算器47に接続する。マトリクス
乗算器47,マトリクスレジスタ48および46は、それぞ
れ、第6図で説明したマトリクス乗算器41およびマトリ
クスレジスタ42および43と同様のものである。マトリク
スレジスタ67は、6×6のマトリクスレジスタである。
次に動作につき説明する。第25Aないし第25C図は、ヤコ
ビアン演算部90の動作を説明するための図である。まず
第25A図を参照して、マトリクスシフトレジスタ25内の
マトリクスレジスタ251ないし256には、それぞれ、マト
リクスM1ないしM6が保持されている。マトリクスシフト
レジスタ32内のマトリクスレジスタ321ないし326には、
それぞれ、マトリクスM1′ないしM6′が保持されてい
る。マトリクスマルチプレクサ45は、マトリクスシフト
レジスタ32側に切換えられている。マトリクスレジスタ
46は、単位マトリクスEにイニシャライズされている。
したがって、マトリクス乗算器47においては、マトリク
スM1′と単位マトリクスEとの積が求められ、その結果
であるマトリクスM1′がマトリクスレジスタ48中にロー
ドされる。
次に第25B図を参照して、前述したクロック信号φAお
よびφBに応答して、マトリクスシフトレジスタ25およ
び32の中身は、1ブロックだけ図面上で右にローテート
される。マトリクスマルチプレクサ45は、マトリクスシ
フトレジスタ25側に切換えられる(これ以降もこのまま
である)。マトリクスレジスタ46中には、マトリクスレ
ジスタ48中の中身であるマトリクスM1′がロードされ
る。マトリクス乗算器47においては、マトリクスM2とマ
トリクスM1′との積が求められ、その結果であるマトリ
クスM1′・M2がマトリクスレジスタ48中にロードされ
る。
以降同様にして、マトリクスM1′・M2・M3,M1′・M2
M3・M4,M1′・M2・M3・M4・M5がマトリクスレジスタ48
中に順次ロードされ、最後に M1′・M2・M3・M4・M5・M6 …(23) がマトリクスレジスタ48中にロードされる。この時点で
第1の演算過程が終了する。この(23)式は、前記(1
9)式のマトリクス積のうちの1つである。(23)式に
より、ヤコビアンJ()の6つの要素∂PX/∂α
∂PY/∂α,∂PZ/∂α,∂nX/∂α,∂nY/∂
αおよび∂nZ/∂αが求められるので、これらをマ
トリクスレジスタ67の適当な場所、たとえば、第6列に
ロードしておく。
次に、第2の演算過程につき第25C図を参照して説明す
る。まずマトリクスレジスタ251ないし256には、それぞ
れ、マトリクスM1ないしM6が保持されており、マトリク
スレジスタ321ないし326には、それぞれ、マトリクス
M1′ないしM6′が保持されている。マトリクスマルチプ
レクサ45は、マトリクスシフトレジスタ25側に切換えら
れており、マトリクスレジスタ46中には単位マトリクス
Eで初期化されている。マトリクス乗算器47での演算に
より、マトリクスレジスタ48中にはマトリクスM1がロー
ドされる。
次に、前述と同様に、クロック信号φAおよびφBに応
答して、マトリクスシフトレジスタ25および32の中身が
1ブロックだけ図面上で右にローテートされ、マトリク
スレジスタ46にはマトリクスM1がロードされ、マトリク
スマルチプレクサ45はマトリクスシフトレジスタ32側に
切換えられる。マトリクス乗算器47での演算により、マ
トリクスM1・M2′がマトリクスレジスタ48中にロードさ
れる。
さらにマトリクスマルチプレクサ45はマトリクスシフト
レジスタ25側に切換えられ、前述と同様の動作が行なわ
れ、最終的にはマトリクスレジスタ48中に M1・M2′・M3・M4・M5・M6 …(24) がロードされる。この(24)式もまた、前記(19)式の
マトリクス積のうちの1つである。したがって、(24)
式により、ヤコビアンJ()のα微分に関する6つ
の要素が求まる。そこで、マトリクスレジスタ67の前記
第6列の中身を第5列にシフトするとともに、上記6つ
の要素を第6列にロードする。
以後同様に前述と同様の演算過程を第6まで行なうこと
により、マトリクスレジスタ67にはヤコビアンJ()
のすべての要素がロードされ、これによりヤコビアンJ
()が求められたことになる。
この実施例によっても、上記実施例と同様に、演算時間
の高速化が図られるとともに、装置の汎用化もが図られ
る。
[J()]-1の求め方 次に、ヤコビアンインバース[J()]-1を求める方
法およびそのための装置につき説明する。これは、第1A
図および第1B図の座標変換部6の一部分に相当する。
ヤコビアンインバースを求めることは、元連立1次方程
式を解くことに他ならない。そのためには、Gauβ−Jor
danの方法のように、ある種の掃き出しを行なって一気
に解を求める方法が一般的であるが、繰返し近似法によ
る方法もある。この実施例においては、ヤコビアンイン
バースを求めることがサーボレート、つまりResolved M
otion Rateで行なわれるため、アームの状態は微小量ず
つしか変化しない。したがって本実施例は、ヤコビアン
およびヤコビアンインバースが微小変化しかしないこと
を最大限に利用し、繰返し近似法を1回またはせいぜい
数回行なえば充分であるとの見地に立って、ヤコビアン
インバースを求める手段をハードウェア化するものであ
る。これを以下に詳しく説明する。
まず、ヤコビアンJからヤコビアンインバース(ヤコビ
アンの逆マトリクス)J-1を近似的に求める方法につい
て説明する。
ここでは最急降下法と呼ばれる近似法を使用するが、こ
の近似法の数学的な意味を明確にするために、任意のM
×Nマトリクス[A](ij要素はAij)から、その逆マ
トリクス[B](ij要素はBij)を求める場合について
説明する。
マトリクス[B]がマトリクス[A]の逆マトリクスで
あるとは、この2つのマトリクスの間に[A]×[B]
=[E] …(25) なる関係式が成立することを意味する。ここで、[E]
(ij要素はEij)は単位マトリクスである。この関係式
を要素の間の関係式として表わせば、周知のマトリクス
の乗算の定義に従って、 となる。この(26)式を変形すれば、 が得られる。(27)式は、すべてのi,jの組に対して成
立しており、したがって(27)式は,M×N個の方程式よ
りなる連立方程式である。
ところで、今考えようとしているのは、実空間の座標変
換に関係したヤコビアンであるから、方程式(27)の各
係数およびその解は実数である。したがって、方程式
(27)から なる量Vを定義すれば、このVは方程式(27)の解に対
して0、他の実数値に対しては正の値となる。そして、
V>0の場合においては、Vがより0に近いほど良い近
似解となっていることになる。
最急降下法では、求めるべきBmnに初期値を与えた後、
s番目の近似解から(s+1)番目の近似解を求める式 によって繰返し行ない、より高い精度を持つ近似解を求
める。(28)式の右辺の第2項は、V(S)の▲B(S) mn
についての偏微分を含んでいることからわかるように、
s番目の近似解をVの勾配の方向に移動させて(s+
1)番目の近似解を得ようとするものである。(29)式
のλ(S)は、▲B(S) mn▼においてV(S)が微小となるよう
に定める。すなわち方程式 からλ(S)を求めればよい。(30)式をλ(S)について解
くことは一般に複雑となることから、V(S)をλ(S)につ
いてテーラー展開し、最低次項のみを残すという近似を
行なえば が得られる。
と置けば、 λ(S)=V(S)/U(S) …(33) となる。V(S)は、(33)式で定義されるから具体的には となる。
以上の方法をまとめると、 (i)s番目の近似解である逆マトリクス[B(S)]を用
いて [A(S)]×[B(S)]=[A(S)B(S)] …(35) を求め、これからマトリクス[E−A(S)B(S)]を求め
る。このマトリクスの各成分の自乗和を計算してこれを
V(S)とする。
(ii)式 [AT]×[E−A(S)B(S)]=[AT(E−A(S)B(S))] …
(36) によって右辺のマトリクスを作る。具体的な計算からわ
かるように、右辺のマトリクスのmn成分要素は∂V(S)
∂▲B(S) mn▼となっている。このマトリクスの各成分
の自乗和を計算するとU(S)となっている。但しTは、転
置マトリクスを表わす。
(iii)V(S)とU(S)からλ(S)=V(S)/U(S)を作る。
(iv)以上の諸量を(29)式に対応する式 [B(S+1)]=[B(S)]−λ(3)[AT(S)(E-A(S)B(S))]…
(37) の右辺に代入すれば、(s+1)番目の近似逆マトリク
ス[B(S+1)]が得られる。
以上は任意のマトリクス[A]の逆マトリクス[B]を
求める方法につき説明した。したがって、以上の方法に
よりヤコビアンJのインバースJ-1を求めるには、マト
リクス[A]をヤコビアンJと、マトリクス[B]をヤ
コビアンインバースJ-1と考えればよい。
次に、以上説明した方法を用いてヤコビアンインバース
J-1を求める装置につき説明する。
第26図は、ヤコビアンインバースJ-1を求める装置を説
明するためのブロック図である。この図は第2B図に相当
し、点線で囲んだ部分がヤコビアンインバース演算部40
0である。第27A図ないし第27D図は、ヤコビアンインバ
ース演算部400の動作を説明するための図である。
まず第26図を参照して、バッファレジスタ69の入力部は
マイクロコンピュータ(図示せず)に接続されており、
出力部はマトリクス乗算器70の一方の入力部に接続され
ている。マトリクス乗算器70の他方の入力部は、後述す
るマトリクスレジスタ75の出力部に接続されている。マ
トリクス乗算器70の出力部は、マトリクス加算器71の一
方の入力部に接続されており、マトリクス加算器71の他
方の入力部はマトリクスレジスタ72の出力部に接続され
ている。マトリクス加算器71の出力部は、マトリクスレ
ジスタ72の入力部に接続されており、マトリクスレジス
タ72の出力部はマトリクスマルチプレクサ73の一方の入
力部に接続されている。マトリクスマルチプレクサ73の
他方の入力部は、後述するマトリクスレジスタ77の出力
部に接続されている。マトリクスマルチプレクサ73の出
力部は、マトリクス乗算器74の一方の入力部に接続され
ており、マトリクス乗算器74の他方の入力部はマトリク
スレジスタ68の出力部に接続されている。マトリクスレ
ジスタ68の入力部は、前述したマトリクスレジスタ67の
出力部に接続されている。マトリクス乗算器74の出力部
はマトリクスレジスタ75の入力部に接続されており、マ
トリクスレジスタ75の出力部はマトリクス減算器76の一
方の入力部に接続されている。マトリクス減算器76の他
方の入力部にはマトリクスレジスタ88が接続されてい
る。このマトリクスレジスタ88は、マイクロコンピュー
タから与えられる0または単位マトリクスEを保持す
る。このマトリクスレジスタ88は、このように、定数マ
トリクスを保持するためのレジスタであるので、ホスト
システムからの制御信号を利用することにより、マトリ
クスレジスタ88を用いないでこれと同等の動作を実現す
ることも可能である。マトリクス減算器76の出力部は、
乗算・加算器78の2つの入力部およびマトリクスレジス
タ77の入力部に接続されている。乗算・加算器78の出力
部はバッファレジスタ79を介してマイクロコンピュータ
(図示せず)に接続されている。これらの各機器の個々
の機能は先に説明したものと同様である。たとえば、マ
トリクス乗算器70および74の機能は、先に説明したマト
リクス乗算器41の機能と同様である。すなわち、後述す
るように、バッファレジスタ69からはスカラー量λが、
マトリクスレジスタ75からはマトリクス[AT(E−A
B)]がそれぞれ出力され、それらの積がマトリクス乗
算器70において求められるのであるが、スカラー量λと
マトリクス[AT(E−AB)]との積λ[AT(E−AB)]
は、 λ[AT(E−AB)]=λE×[AT(E−AB)]と書くこ
とができる。ここで、Eは単位マトリクスである。した
がって、バッファレジスタ69に保持されているスカラー
量λを次のマトリクスλEとみなすことができる。
したがって、マトリクス乗算器70の機能はマトリクス乗
算器41の機能と同様であると言っても差支えはない。マ
トリクスレジスタ68,72,75および77は、それぞれ6×6
のマトリクスレジスタであり、その機能は先に説明した
マトリクスレジスタ67のそれと同様である。マトリクス
マルチプレクサ73の機能は、先に説明したマトリクスマ
ルチプレクサ45の機能と同様である。乗算・加算器78の
機能は、先に説明した乗算・加算器82の機能と同様であ
る。マトリクス加算器71は、2つのマトリクスの加算を
行なう。なお、このマトリクス加算器71に、2つのマト
リクス間の減算を行なわせることは容易である。マトリ
クス減算器76は、2つのマトリクス間の減算を行なう。
次にヤコビアンインバース演算部400の動作につき説明
する。なお、以下の動作は、前述したクロック信号φA
およびφBに応答して行なわれる。
まず第27A図を参照して、マトリクス乗算プロセスとそ
の結果につき説明する。マトリクスレジスタ68は、たと
えばマトリクスレジスタ67から先に説明した(35)式の
マトリクス[A(S)]を受取る。マトリクスレジスタ72に
は(35)式のマトリクス[B(S)]が保持されているもの
とする。マトリクスマルチプレクサ73はマトリクスレジ
スタ72側に切換えられており、マトリクス乗算器74にお
いて(35)式の乗算が行なわれ、その結果がマトリクス
レジスタ75中に保持される。
次に第27B図を参照して、シフトプロセスとその結果に
つき説明する。マトリクスレジスタ88中には単位マトリ
クスEが保持されており、マトリクス減算器76において
[E−A(S)B(S)]を求める演算が行なわれ、その結果が
マトリクスレジスタ77中に保持される。さらに、乗算・
加算器78においてこのマトリクスの各成分の自乗和が計
算され、その結果であるV(S)がバッファレジスタ79中に
保持され、そこからそれがマイクロコンピュータに出力
される。
さらに第27C図を参照して、他のマトリクス乗算プロセ
スとその結果につき説明する。マトリクス乗算プロセス
において、マトリクスレジスタ68からデータを供給する
順序を制御することにより、マトリクスレジスタ68中に
はみかけ上転置マトリクスAT(S)があったようにするこ
とができる。マトリクスマルチプレクサ73はマトリクス
レジスタ77側に切換えられる。マトリクス乗算器74にお
いて前述した(36)式の演算が行なわれ、その結果がマ
トリクスレジスタ75中に保持される。
最後に第27D図を参照して、他のシフトプロセスとその
結果につき説明する。マトリクスレジスタ88から出力は
与えられず、それゆえ乗算・加算器78においては上述し
た(36)式の右辺の各成分の自乗和が計算され、その結
果であるU(S)がバッファレジスタ79中に保持される。こ
のU(S)はマイクロコンピュータに与えられ、マイクロコ
ンピュータにおいて先の演算過程で求めたV(S)とこのU
(S)とを用いて(33)式のλ(S)が求められる。一方、バ
ッファレジスタ69中にはマイクロコンピュータから与え
られたλ(s-1)が保持されている。(s−1)は前回の
演算結果を意味している。これは、今回の演算結果が間
に合わないために前回の演算結果を用いるものである
が、大きな問題はない。マトリクス乗算器70において先
に説明した(37)式の第2項の演算が行なわれ、さらに
マトリクス加算器71において(37)式の演算が行なわれ
その結果がマトリクスレジスタ72中に保持される。
したがって、以上に説明したすべての演算を行なうこと
により、マトリクスレジスタ72の出力部に、前回の演算
によるマトリクス[B]を初期値とした、マトリクス
[A]の逆マトリクスの新しい近似マトリクス[B]を
得ることができる。それゆえ、マトリクス[A]をヤコ
ビアンJとすれば、すなわちマトリクスレジスタ68がマ
トリクスレジスタ67からヤコビアンJを受取るようにす
れば、マトリクスレジスタ72の出力部にヤコビアンイン
バースJ-1を得ることができる。
以上のようなヤコビアンインバースJ-1をもしもコンピ
ュータのソフトウェアを用いて求めるとすれば、その演
算時間は非常に長いもの、たとえば30m sec程度となる
が、この実施例のように専用のハードウェアによって求
める場合には演算時間が非常に短く、たとえば1m secあ
るいはそれ以下になることが確認されている。
dからdへの変換 次に、dからdへの座標変換の方法およびそのため
の装置につき説明する。これは、第1A図および第1B図の
座標変換部6に相当する。
第28図は、dからdへの座標変換部を説明するため
のブロック図である。この図は、第2B図に相当する。座
標変換部6は、前述したヤコビアン演算部90,ヤコビア
ンインバース演算部400に加えてさらにバッファレジス
タ60,マトリクス乗算器61およびバッファレジスタ62を
備える。バッファレジスタ60の入力部はマイクロコンピ
ュータ(図示せず)に接続されており、その出力部はマ
トリクス乗算器61の一方の入力部に接続されている。マ
トリクス乗算器61の他方の入力部は前述したマトリクス
レジスタ72の出力部に接続されている。マトリクス乗算
器61の出力部はバッファレジスタ62の入力部に接続され
ており、バッファレジスタ62の出力部はマイクロコンピ
ュータに接続されている。
マトリクス乗算器61は、前述したマトリクス乗算器41と
同様の機能を有しており、2つのマトリクスの乗算を行
なう。すなわち、後述するように、バッファレジスタ60
からはベクトル量dが、マトリクスレジスタ72からは
マトリクス[J()]-1がそれぞれ出力され、それら
の積がマトリクス乗算器61において求められるのである
が、ベクトル量dとマトリクス[J()]-1との積
[J()]-1dは、 [J()]-1d =[J()]-1×[d] と書くことができる。したがって、バッファレジスタ60
に保持されているベクトル量dを次のマトリクスとみ
なすことができる。
[d] したがって、マトリクス乗算器61の機能はマトリクス乗
算器41の機能と同様であると言っても差支えない。この
ことは、後述するマトリクス乗算器58および65について
も同様である。前述したように、ヤコビアン演算部90内
のマトリクスレジスタ67の出力部にヤコビアンJ()
が与えられ、かつ、ヤコビアンインバース演算部400内
のマトリクスレジスタ72の出力部にヤコビアンインバー
ス[J()]-1が与えられる。一方、ホストシステム
4内のマイクロコンピュータからバッファレジスタ60に
対してdが与えられる。マトリクス乗算器61におい
て、前述した(18)式の演算が行なわれその結果がバッ
ファレジスタ62中に保持される。以上によってdから
dへの座標変換が行なわれる。
以上の座標変換装置によれば、座標変換に要する時間は
1m sec以下になる。従来においては、演算速度があまり
にも遅いため、5次元あるいは6次元においてこのよう
な座標変換を行なうことができなかった。またソフトウ
ェアを用いて座標変換を行なう場合には演算時間が20m
sec程度要していたけれども、この実施例によれば前述
したように演算時間が1m sec以下となり、ソフトウェア
よりも制御性能がはるかに向上する。これは、ヤコビア
ンJ()を求めるプロセス,ヤコビアンインバース
[J()]-1を求めるプロセスおよび座標変換のプロ
セスの各プロセスでの演算速度が非常に速いからであ
る。
d2からd2への変換 次に、d2からd2への座標変換の方法およびそのため
の装置につき説明する。これは、第1A図および第1B図の
座標変換部7に相当する。d2は、後で説明する運動方
程式の逆問題を解いてフィードフォワード制御を行なう
ために必要である。
まず、d2からd2に変換する方法につき説明する。フ
ィードフォワード制御とは、各関節の動き、したがって
エンドエフェクタの動きを指示し、その動きを達成する
ためにどのような力を与えればよいかを演算し、その力
を発生させるようにするものである。したがって、d
2α,dαおよびα,すなわち、,,α,というα系
での運動を記述する量を与えてその動きを実現するため
のトルクτを演算しなければならない。
ところで、ロボットの応用側の要求としては、エンドエ
フェクタの動きは絶対座標系で与えることが便宜であ
る。このためd2X,dXすなち,の形でエンドエフェク
タの先端の動きを定めることとなり、,から,
への変換を必要とする。このうちからへの変換が既
に述べたので、ここではからへの変換について説明
する。
まず、マトリクス[M]を時間で微分すると となり、さらにこれを時間で微分すれば となる。これの右辺の第2項を左辺に移行すれば となる。ところで、(40)式の左辺の第1項は[M]の
2階の時間微分であって、これはに関係する量であ
る。左辺の第2項のうち については から求められる。ところで(40)式の右辺は と書けるから、(40)式の両辺に左からヤコビアンイン
バース[J1]を掛ければ が得られる。したがって、(42)式の左辺の各量を演算
すれば右辺の が得られる。(42)式はベクトル形式で書かれており であるから、(43)式は連立方程式である。
(43)式の左辺の諸量のうち、ΣΣすなわち、 を新たに求めることが必要である。ここで(44)式の各
項をHijと書けば、(44)式は、 ただし、 Hij=Hji …(48) となる。このHijを用いて(44)式、すなわち(46)式
を具体的に書き下せば、 となる。ここでは、(48)式の関係を利用している。
(49)式の各項の一例を具体的に示せば、H11=(M″1
2 1▼)M2M3M4M5M6 H12=(M′1 )(M′2 )M3M4M5M6である。(4
6)式は36個の項を含み、これが(49)式においては、
(48)式の関係を用いて21個の項へと書替えられてい
る。ところが、これらの項の間には一定の規則性があ
り、M1ないしM6,M1′ないしM6′,M1″ないしM6″を規
則的に組合わせることによって比較的簡単に(49)式の
値を得ることができる。
次に、以上に説明した方法を実現してd2からd2に変
換する装置につき説明する。
第29A図は、(44)式に示したΣΣの演算を行なう装置
を説明するためのブロック図である。この図は、第2A図
に相当する。点線で囲んだ部分がΣΣ演算部500であ
る。第29B図は、d2の演算を行なう装置を説明するた
めのブロック図である。この図は、第2B図に相当する。
点線で囲んだ部分がd2演算部600である。ΣΣ演算部5
00およびd2演算部600で第1A図および第1B図の座標変
換部7が構成される。
第30A図および第30B図は、ΣΣ演算部500の動作を説明
するための図である。
まず第29A図を参照して、バッファレジスタ19の入力部
はマイクロコンピュータ(図示せず)に接続されてお
り、さらにその入力部と出力部は結合されている。バッ
ファレジスタ19の出力部は、マトリクス乗算器20の2つ
の入力部およびマトリクスマルチプレクサ22の一方の入
力部に接続されている。マトリクス乗算器20の出力部は
マトリクス乗算器30の一方の入力部に接続されており、
マトリクス乗算器30の他方の入力部にはマトリクスシフ
トレジスタ35の出力部が接続されている。マトリクスマ
ルチプレクサ22の出力部はマトリクス乗算器23の一方の
入力部に接続されており、マトリクス乗算器23の他方の
入力部はマトリクスシフトレジスタ32の出力部に接続さ
れている。マトリクス乗算器23の出力部は、マトリクス
乗算器24の一方の入力部およびマトリクス乗算器34の一
方の入力部に接続されている。マトリクス乗算器24の他
方の入力部は、マトリクスレジスタ43の出力部に接続さ
れている。マトリクス乗算器27の一方の入力部はマトリ
クスシフトレジスタ25の出力部に接続されており、他方
の入力部はマトリクスレジスタ26の出力部に接続されて
いる。マトリクス加算器28の2つの入力部はそれぞれマ
トリクス乗算器24の出力部およびマトリクス乗算器27の
出力部に接続されており、マトリクス加算器28の出力部
はマトリクスレジスタ29の入力部に接続されており、マ
トリクスレジスタ29の出力部はマトリクスレジスタ26の
入力部に接続されている。マトリクス乗算器31,34およ
び36,マトリクス加算器33および37およびマトリクスレ
ジスタ38および39の接続については前述とほぼ同様であ
る。マトリクスレジスタ38の出力部にはバッファレジス
タ40の入力部が接続されている。
マトリクスシフトレジスタ25,マトリクス乗算器41,マト
リクスレジスタ42および43については、第6図において
座標変換部5として既に説明した。さらに、マトリクス
シフトレジスタ32についても、第24A図においてヤコビ
アン演算部90の一部分として既に説明した。マトリクス
シフトレジスタ35の機能は、既に説明したマトリクスシ
フトレジスタ25および32の機能と同様である。マトリク
ス乗算器20,23,24,27,30,31,34および36は、既に説明し
たマトリクス乗算器41の機能と同様である。マトリクス
マルチプレクサ22の機能は、第24A図において説明した
マトリクスマルチプレクサ45の機能と同様である。マト
リクス加算器28,33および37の機能は、第26図において
説明したマトリクス加算器71の機能と同様である。マト
リクスレジスタ29および38の機能は、既に説明したマト
リクスレジスタ42の機能と同様である。マトリクスレジ
スタ26および39の機能は、既に説明したマトリクスレジ
スタ43の機能と同様である。バッファレジスタ19および
40の機能もまた、第6図において既に説明したバッファ
レジスタ44の機能と同様である。
次に第29B図を参照して、バッファレジスタ63の入力部
はマイクロコンピュータ(図示せず)に接続されてお
り、その出力部はマトリクス減算器64の一方の入力部に
接続されている。マトリクス減算器64の他方の入力部は
前述したバッファレジスタ40の出力部に接続されてい
る。マトリクス減算器64の出力部はマトリクス乗算器65
の一方の入力部に接続されており、マトリクス乗算器65
の他方の入力部は前述したマトリクスレジスタ72の出力
部に接続されている。マトリクス乗算器65の出力部はバ
ッファレジスタ66の入力部に接続されており、バッファ
レジスタ66の出力部はマイクロコンピュータに接続され
ている。
バッファレジスタ19は、マイクロコンピュータから与え
られた1ないし6を保持し、かつそれらをローテート
させている。マトリクス減算器64の機能は、第26図にお
いて説明したマトリクス減算器76の機能と同様である。
バッファレジスタ63,マトリクス乗算器65およびバッフ
ァレジスタ66の機能についても、第28図において説明し
たバッファレジスタ60,マトリクス乗算器61およびバッ
ファレジスタ62の機能とそれぞれ同様である。
次に、第30A図および第30B図を参照して、マトリクスレ
ジスタ38内に前述したΣΣがロードされる動作につき説
明する。なお、以下の動作は、前述したクロック信号φ
AおよびφBに応答して行なわれる。
まず30A図を参照して、第1のユニットタイム間の動作
につき説明する。バッファレジスタ19に保持されていた
1がマトリクス乗算器20に与えられ、マトリクス乗算
器20において1/21 2が求められる。マトリクスマルチ
プチレクサ22はバッファレジスタ19側に切換えられてお
り、これ以降も同様である。マトリクスシフトレジスタ
25内のマトリクスレジスタ251ないし256には、マイクロ
コンピュータからそれぞれマトリクスM1ないしM6がロー
ドされる。マトリクスシフトレジスタ32内のマトリクス
レジスタ321ないし326には、マイクロコンピュータから
マトリクスMの1階の時間微分であるマトリクスM1′な
いしM6′がロードされる。同様に、マトリクスシフトレ
ジスタ35内のマトリクスレジスタ351ないし356には、マ
イクロコンピュータからマトリクスMの2階の時間微分
であるマトリクスM1″ないしM6″がロードされる。マト
リクス乗算器23においてマトリクスマルチプレクサ22か
らの1とマトリクスシフトレジスタ32からのM1′との
積が求められる。マトリクスレジスタ43には単位マトリ
クスEがロードされている。したがってマトリクス乗算
器24においてはM11が求められる。マトリクスレジ
スタ26には0がロードされており、したがってマトリク
ス乗算器27での演算結果は0となる。マトリクス加算器
28においてマトリクス乗算器24からのM11とマトリ
クス乗算器27からの0とが加算されその結果がマトリク
スレジスタ29にロードされる。
マトリクス乗算器30において、マトリクス乗算器20から
とマトリクスシフトレジスタ35からのM1″との乗算が行
なわれその結果 が求められる。マトリクス乗算器31においてはマトリク
ス乗算器30からの とマトリクスレジスタ43からの単位マトリクスEとの積
が求められる。マトリクス乗算器34の一方の入力はマト
リクスレジスタ26からの0であるので、そこでの演算結
果は0である。同様に、マトリクス乗算器36の一方の入
力はマトリクスレジスタ39からの0であるので、そこで
の演算結果は0である。したがってマトリクスレジスタ
38には がロードされる。
次に第30B図を参照して、第2のユニットタイム間の動
作につき説明する。バッファレジスタ19は、その保持し
ていた内容を1ブロックだけローテートさせ、2を出
力する。マトリクスシフトレジスタ25,32および35にロ
ードされているマトリクスは右方向へ1ブロックだけシ
フトされる。したがって、マトリクスレジスタ251,321
および351には、それぞれ、マトリクスM2,M2′およびM
2″がロードされる。マトリクスレジスタ26には、第1
のユニットタイム間の演算結果であるM11がマトリ
クスレジスタ29からロードされる。同様に、マトリクス
レジスタ39には がロードされ、マトリクスレジスタ43にはM1がロードさ
れる。そして前述と同様の演算により、マトリクスレジ
スタ29にはM1M22+M11M2がロードされる。マト
リクスレジスタ38には、 がロードされる。マトリクスレジスタ42には、M1M2がロ
ードされる。
以降同様にして第6のユニットタイムの後には、前述し
たΣΣがマトリクスレジスタ38中にロードされる。
次に第29B図を参照して、その次のユニットタイム間の
動作につき説明する。マイクロコンピュータからはバッ
ファレジスタ63に対してd2が与えられ、これがさらに
マトリクス減算器64の一方の入力部に与えられる。一
方、マトリクス減算器64の他方の入力部には、バッファ
レジスタ40を介して、先のユニットタイム間に求められ
たΣΣが与えられる。マトリクス減算器64において、先
に説明した(40)式の左辺の演算が行なわれその結果が
マトリクス乗算器65の一方の入力部に与えられる。マト
リクス乗算器65の他方の入力部には、マトリクスレジス
タ72からヤコビアンインバースJ-1が与えられる。この
ヤコビアンインバースJ-1の求め方については既に説明
した。マトリクス乗算器65において先に説明した(42)
式の演算が行なわれ、その結果であるd2がバッファレ
ジスタ66にロードされる。このd2はさらにマイクロコ
ンピュータに与えられる。これによってd2からd2
の変換が行なわれたことになる。
運動方程式 次に、前述したdおよびd2を使用して運動方程式の
逆問題を解く方法およびそのための装置につき説明す
る。これは、第1A図および第1B図の運動方程式演算部9
に相当する。
運動方程式の逆問題とは、対象としている力学系の運動
を条件として与え、その運動を実現するためにはいかな
る力をその力学系を加えればよいかを求める手続をい
う。ここでは、運動方程式を導くためにラグランジェ形
式を採用することにする。
ラグランジェ形式においては、まず、考えている力学系
の運動エネルギをK,ポテンシャルエネルギをPとして、
ラグランジアンLを L=K−P …(50) によって求める。ラグランジェの方程式には一般化座標
が現われるが、ここで考えている一般化座標はαiであ
る。このαiに対する一般化力をFiとすると、ラグラン
ジェの運動方程式は で与えられる。運動方程式の逆問題を解くということ
は、(51)式の右辺を計算してFiを求めることに他なら
ない。
次に、KおよびPを具体的に求め、(51)式の具体的な
形を導くこととする。
(a)運動エネルギK 絶対座標系におけるロボットの各部分の座標を とし、ロボットの各部分の微小部分の質量をdmとする
と、全運動エネルギKは で与えられる。但しRは、ロボットの腕の位置状態に依
存しない項であり、たとえばローターのイナーシャ等で
ある。ここで、 となることに注意すると、 となる。但し、Trはトレース(対角和)を意味する。こ
の積分において、絶対座標系から見たi番目の腕の各部
分の座標をiとすれば、(55)式は、各腕についての
積分の和として書換えることができ、 となる。ところで、 i=M1×M2×…×Mi i 0 …(57) と書ける。但し、i 0は、i番目の関節に固定された座
標系から見たi番目の腕の各部分の位置ベクトルであ
る。したがって、 Mi=M1×M2×…×Mi …(58) なる量Miを定義すれば、Xi=Mii 0▼であるから、 と書くことができる。また、Rは (aiは定数)の形に書けるから、 となる。但し、Qiは慣性テンソルであり、 で定義される。
(b)ポテンシャルエネルギP ポテンシャルエネルギとしては、重力エネルギが考えら
れる。したがって、重力の加速度を表わすベクトルを
とし、重力の方向に絶対軸の第3成分をとれば、 となる。重力マトリクスYiによって定義すれが、Pは と書くことができる。
(c)ラグランジェの運動方程式 (a)(b)で用いたK,Pを(50)式に代入してLを求
め、これを(51)式に代入することによって が得られる。これを整理すれば となる。但し、 であって、(67)式および(68)式の各項をそれぞれ▲
(j) km▼,▲W(j) k▼と書けば、これらの式は具体的
には次の形となる。
ただし、 であり、▲W(j) km▼=▲R(j) mk▼が成立している。
(66)式のうち第1項は角度変数の時間微分の2次形式
を含む項であって、遠心力およびコリオリの力を表わ
し、第2項は角度変数の2階の時間微分を含むために慣
性項である。第3項は重力項そして第4項は先に述べた
ようにロボットの腕の位置状態に依存しない項である。
ところで、(66)式に従って演算を行なえば、一般化力
Fiを得ることができるわけであるが、この演算をハード
ウェアで行なうことを考慮して、漸化式による方法を採
用することにする。すなわち、 aj=aj-1×Mj,a0=E…(70)として、繰返しを行なえ
ば aj=M1×M2×…×Mj …(71) が得られる。また、 としてjについて繰返しを行なえば ▲bi j▼=M1×M2×…×Mi′×…×Mj …(73) が得られる。さらに、 によって繰返しを行なえば、同様に(66)式の各項に現
われる量を求めることができ、結局、 のようになり、これによってFiを求めることができる。
このうちIai iの項はロボットの腕の位置状態に依存し
ない項であるためその演算はソフトウェアで行ない、ハ
ードウェアではこれを無視することとする。
すなわち、Fiを求めるにあたっては、(75)式のFi 1,F
i 2,Fi 3の( )の中にあるマトリクスの積を計算し、
そのトレース(対角和)を求めて和をとればよい。ここ
で対角和をとるべき( )の中がA・BTの形をしている
ことに注目すると、対角和の演算はマトリクスAおよび
Bの要素を抜き出してそれらの積の和をとればよいこと
になる。これは次式より明らかである。
次に、前述した(75)式のFi 1,Fi 2,Fi 3を求める装置
につき説明する。そのような演算を行なうためには先に
示した第2A図内のすべての装置を用いる。第2A図内の装
置のほとんどは既に説明したので、ここではまだ説明し
ていない部分についてのみ説明する。
マトリクスシフトレジスタ50の出力部がマトリクス乗算
器51の一方の入力部に接続されている。マトリクスシフ
トレジスタ50は、先に説明したマトリクスシフトレジス
タ25,32および35と同様であり、マトリクスレジスタ501
ないし506を備える。マトリクス乗算器51の他方の入力
部にはマトリクスマルチプレクサ49の出力部が接続され
ており、マトリクスマルチプレクサ49の2つの入力部は
先に説明したマトリクスレジスタ26および39の出力部に
接続されている。マトリクス乗算器51の出力部は、マト
リクスレジスタ52を介してマトリクスマルチプレクサ54
の一方の入力部に接続されている。マトリクスマルチプ
レクサ54の他方の入力部には、マトリクスシフトレジス
タ53の出力部が接続されている。このマトリクスシフト
レジスタ53もマトリクスシフトレジスタ50と同様に、マ
トリクスレジスタ531ないし536を備える。マトリクスマ
ルチプレクサ54の出力部はトレース演算回路55の一方の
入力部に接続されており、それの他方の入力部には先に
説明したマトリクスレジスタ48の出力部が接続されてい
る。トレース演算回路55の出力部はバッファレジスタ56
を介してマイクロコンピュータ(図示せず)に接続され
ている。
マトリクスシフトレジスタ50および53の機能は、既に説
明したマトリクスシフトレジスタ25等の機能と同様であ
る。マトリクスマルチプレクサ49および54の機能は、既
に説明したマトリクスマルチプレクサ45等の機能と同様
である。マトリクス乗算器51の機能は、既に説明したマ
トリクス乗算器41等の機能と同様である。マトリクスレ
ジスタ52の機能は、既に説明したマトリクスレジスタ42
等の機能と同様である。バッファレジスタ56の機能は、
既に説明したバッファレジスタ44等の機能と同様であ
る。トレース演算回路55の機能は、(75)式に示したよ
うなトレースTrを求めるものである。
次に、運動方程式を解く動作につき説明する。第31A図
ないし31C図は、運動方程式演算部9の動作を説明する
ための図である。運動方程式を解く動作は、3つのフェ
ーズからなる。
まず、第31A図を参照して、第1のフェーズにつき説明
する。このフェーズにおいては、Fi 3の演算の他に、同
時に、先に説明したからへの変換,d2を求めるた
めのΣΣの計算およびヤコビアンJの係数を求める動作
も行なわれている。これは、演算の時間を最短にするた
めである。マトリクスシフトレジスタ25内には先には説
明したようにマトリクスMjがロードされている。マトリ
クスシフトレジスタ32内には、先に説明したマトリクス
Mj′がロードされている。マトリクスマルチプレクサ45
は、j=iのときはマトリクスシフトレジスタ32側に切
換えられ、j≠iのときはマトリクスシフトレジスタ25
側に切換えられる。マトリクス乗算器47においてマトリ
クスMjとマトリクスMj′との乗算が(72)式に従って行
なわれ、その結果である▲bi j▼がマトリクスレジスタ
48にロードされる。一方、マトリクスシフトレジスタ53
にはマイクロコンピュータ(図示せず)から先に説明し
たマトリクスYjがロードされている。マトリクスマルチ
プレクサ54はマトリクスシフトレジスタ53側に切換えら
れており、したがってトレース演算回路55の入力部には
▲bi j▼とYjが入力され、そこにおいて(75)式のFi 3
の演算が行なわれる。この場合、Fi 3は36のクロック期
間(i=1ないし6,j=1ないし6)で求められる。こ
の場合、最初のクロック期間ではまだマトリクスレジス
タ48にはいかなるbもロードされていないので、マトリ
クスYjの出力は1クロック期間だけ遅延させる必要があ
る。それには、マトリクスシフトレジスタ53とマトリク
スマルチプレクサ54との間にそのような遅延回路を設け
てもよいし、あるいはそのようにしなくてもマトリクス
シフトレジスタ53の動作を1クロック期間だけ止めても
よい。
なお、以上の演算と同時に次の演算が行なわれる。すな
わち、バッファレジスタ19にはがロードされており、
このフェーズにおいてはマトリクスマルチプレクサ22は
バッファレジスタ19側に切換えられているので、はマ
トリクス乗算器23に与えられる。したがって、マトリク
ス乗算器23においては、jMj′の演算が行なわれそれ
がマトリクス乗算器24の一方の入力部に与えられる。マ
トリクス乗算器24の他方の入力部には、前のクロック期
間中に求められた後述するaj-1がマトリクスレジスタ43
から与えられる。マトリクス乗算器27の一方の入力部に
は、マトリクスシフトレジスタ25からマトリクスMjが与
えられ、他方の入力部にはマトリクスレジスタ26中に保
持されている前回のクロック期間中に求められた▲c*
j-1▼が与えられる。したがってマトリクス乗算器27お
よびマトリクス加算器28において(74)式に示した▲c
* j▼の演算が行なわれその結果がマトリクスレジスタ29
にロードされる。一方、マトリクス乗算器41の一方の入
力部にはマトリクスシフトレジスタ25からのマトリクス
Mが与えられており、他方の入力部にはマトリクスレジ
スタ43中に保持されている前回のクロック期間中に求め
られたaj-1が与えられる。したがって、マトリクス乗算
器41においては(70)式に示した演算が行なわれ、その
結果がマトリクスレジスタ42にロードされる。このマト
リクスレジスタ42にロードされるajは、言い換えれば、
先に説明したからへ変換した結果ということもでき
る。さらに、マトリクス乗算器20においては(1/2)2
が求められこれがマトリクス乗算器30の一方の入力部に
与えられる。マトリクス乗算器30の他方の入力部にはマ
トリクスシフトレジスタ35からのMj″が与えられる。前
述と同様の考えで、マトリクス乗算器30および31,マト
リクス加算器33,マトリクス乗算器34および36,マトリク
ス加算器37において(74)式に示したdjを求める演算が
行なわれ、その結果がマトリクスレジスタ38にロードさ
れる。このdjは、言い換えれば先に説明したΣΣという
こともできる。
次に、第31B図を参照して、第2のフェーズにつき説明
する。マトリクスシフトレジスタ50には、マイクロコン
ピュータ(図示せず)から先に説明した慣性テンソルQj
がロードされている。マトリクスシフトレジスタ50とマ
トリクス乗算器51との間には、第31A図で説明したよう
な遅延手段が設けられても良い。その理由もまた先に示
した通りである。マトリクスマルチプレクサ49は、この
フェーズにおいてはマトリクスレジスタ39側に切換えら
れており、したがってマトリクス乗算器51においては、
マトリクスシフトレジスタ50からのQjとマトリクスレジ
スタ39からのdjとの積が求められる。マトリクスマルチ
プレクサ54は、このフェーズにおいてはマトリクスレジ
スタ52側に切換えられており、したがってトレース演算
回路55においては、マトリクスマルチプレクサ54からの
djQjとマトリクスレジスタ48からの▲bi j▼とを用いて
(75)式に示したFi 2を求める演算が行なわれる。このF
i 2を求める演算もまた、36のクロック期間(i=1ない
し6,j=1ないし6)において行なわれる。
さらに、第31C図を参照して、第3のフェーズにつき説
明する。バッファレジスタ21にはjがロードされてい
る。このフェーズにおいてはマトリクスマルチプレクサ
22はバッファレジスタ21側に切換えられており、したが
ってjはマトリクス乗算器23の一方の入力部に与えら
れる。マトリクス乗算器23の他方の入力部にはマトリク
スシフトレジスタ32からのMj′が与えられる。前述と同
様の考え方により、マトリクスレジスタ29には(74)式
に示したcjがロードされる。このフェーズにおいては、
第2のフェーズの場合と反対に、マトリクスマルチプレ
クサ49はマトリクスレジスタ26側に切換えられている。
マトリクスマルチプレクサ54は、このフェーズにおいて
もマトリクスレジスタ52側に切換えられている。したが
って、マトリクス乗算器51において、マトリクスシフト
レジスタ50からの慣性テンソルQjとマトリクスレジスタ
26からのcjとの積が求められ、その結果であるcjQjがト
レース演算回路55の一方の入力部に与えられる。トレー
ス演算回路55の他方の入力部にはマトリクスレジスタ48
からの▲bi j▼が与えられており、トレース演算回路55
において(75)式に示したFi 1を求める演算が行なわれ
る。このFi 1を求める演算もまた、36のクロック期間
(i=1ないし6,j=1ないし6)において行なわれ
る。
以上のような動作によって求めたFi 3,Fi 2およびF
i 1は、それぞれバッファレジスタ56からマイクロコンピ
ュータに与えられ、マイクロコンピュータはそれらのも
のを用いて(75)式に示したFiを求める演算を行なう。
従来は、運動方程式を計算するのには非常に時間がかか
っていた。その計算は実時間では不可能だった。これ
は、関節が複雑に干渉し合い、運動方程式の中に座標変
換が入ってきており、運動方程式の計算には非常に長い
時間を要していたからである。したがって、運動方程式
を解くことは、制御として実用に供し得なかった。しか
しながら、上に説明したようなこの実施例による方法お
よび装置によれば、運動方程式を解くことが実時間で可
能になった。
dからdへの変換 次に、dからdへの変換の方法およびそのための装
置につき説明する。これは、第1A図および第1B図の座標
変換部8に相当する。
まず、dからdに変換する方法につき説明する。仮
想仕事の原理を用いると、X系においてエンドエフェク
タに加える力とそれによる微小変位dがなせる仕事
δWxと、α系において各軸に加える力とそれによる微
小変位dがなせる仕事δWαとは等しい。すなわち、 δWxTδ=δW=T・d …(76) が成立する。ここでdは先に(17)式で示されている
がこれを改めて表わせば d=・d …(77) となる。したがって上の(76)式および(77)式から次
の(78)式の関係が得られる。
T・ …(78) この(78)式において、α系における力はトルクと
表わしてもよく、また(78)式は微小量についても成立
するので、(78)式は次の(79)式と表わすことができ
る。
d=T・d …(79) したがって、(143)式の演算を行なえば、dからd
への変換が行なわれることになる。
次に、上に述べたような変換を行なう装置につき説明す
る。第32図は、dからdへの座標変換部8を説明す
るためのブロック図である。この図は、第2B図に相当す
る。座標変換部8は、バッファレジスタ57,マトリクス
乗算器58およびバッファレジスタ59を備える。バッファ
レジスタ57の入力部は、マイクロコンピュータ(図示せ
ず)に接続されており、出力部はマトリクス乗算器58の
一方の入力部に接続されている。マトリクス乗算器58の
他方の入力部は、先に説明したヤコビアンインバース演
算部400内のマトリクスレジスタ68の出力部に接続され
ている。マトリクス乗算器58の出力部はバッファレジス
タ59の入力部に接続されており、バッファレジスタ59の
出力部はマイクロコンピュータに接続されている。
前述したように、ヤコビアン演算部90内のマトリクスレ
ジスタ67の出力部にはヤコビアンが出力され、ヤコビ
アンインバース演算部400内のマトリクスレジスタ68の
出力部には、第27C図において説明したように、見かけ
上ヤコビアンの転置マトリクスであるTが出力され
る。一方マイクロコンピュータからバッファレジスタ57
に対してdから与えられる。マトリクス乗算器58にお
いて、前述した(79)式の演算が行なわれ、その結果で
あるdがバッファレジスタ59にロードされ、かつマイ
クロコンピュータに与えられる。以上によりdからd
への変換が行なわれたことになる。
以上に述べた座標変換も非常に高速度で行なうことがで
きる。
発明の効果 この発明の1つの特徴は、座標変換は簡単な構成のハー
ドウェアで行なわれるので、座標変換を非常に高速で行
なうことができることである。この演算時間の短縮は、
制御の質的変化を生ずるほどである。
この発明の他の特徴は、座標変換は簡単な構成のハード
ウェアで行なわれるので、マイクロコンピュータが座標
変換に利用される時間が非常に短くなることである。し
たがって、マイクロコンピュータに高速のものを用いな
くても極めて正確な座標変換が行なわれる。さらに、そ
のマイクロコンピュータを用いて別の機能を行なわせる
ことが簡単にできる。
この発明のさらに他の特徴は、座標変換のための演算回
路はほとんど類似した演算を何回も繰返すだけであり、
従って演算回路の構成が簡単になり、かつ、制御すべき
自由度の変更や増減に対しても簡単に対応することがで
きることである。つまり、汎用性が大きいことである。
なぜならば、その演算回路で利用可能な演算機能を単に
増減するだけで、マイクロコンピュータのソフトウェア
(プログラム)についてはほんどん変更が不要だからで
ある。このことは、自由度の種類や数の変更に容易に追
随できることになる。
この発明のさらに他の特徴は、運動方程式の逆問題を解
くことによりフィードフォワード制御を行なうことがで
きることである。したがって、エンドエフェクタが所望
のパスを移動するような制御を行なうことができる。
この発明のさらに他の特徴は、全体システムにおいて
は、位置のフィードバックが直角座標系においてかけら
れていることである。一般に直角座標系での位置データ
を関節座標系での位置データに変換することは非常
に長い演算時間を要し、実時間でそれを行なうことは不
可能に近いけれども、このシステムにおいてはそのよう
な座標変換を用いる必要がない。
この発明のさらに他の特徴は、全体システムにおいて
は、力制御と位置制御とを直角座標系で切換えることが
できることである。したがって、RCCのようなものをロ
ボット自身で実現することができる。
この発明のさらに他の特徴は、この発明に係る制御装置
を、関節にダイレクトドライブモータを用いた多関節ロ
ボットに用いると、予測制御の効果が顕著になることで
ある。というのは、従来のハーモニックドライブにおい
てはそこに抵抗やガタが非常に多くあり、これらは運動
方程式に組み入れることはできないけれども、ダイレク
トドライブモータにおいてはそのような抵抗やガタが非
常に少なくなるからである。
【図面の簡単な説明】
第1A図および第1B図は、それぞれ、多関節ロボットの制
御装置の全体システムの構成を概略的に示すブロック図
である。 第2A図および第2B図は、全体システムの構成を詳細に示
すブロック図である。ここで、第2A図の右端は、第2B図
の左端につながっている。 第3図ないし第5図は、多関節ロボットの座標変換を説
明するための模式図である。 第6図は、からへの座標変換装置を説明するための
ブロック図である。 第7図は、マトリクス乗算器を説明するためのブロック
図である。 第8図は、マトリクスレジスタの一例を示すブロック図
である。 第9図は、制御装置とマトリクス乗算器との接続を示す
ブロック図である。 第10図は、マトリクスレジスタの運用方法を説明するた
めの図である。 第11図は、演算回路の基本的な考え方を示す概念図であ
る。 第12図は、一実施例の基礎となる演算回路の考え方を説
明する概念図である。 第13図は、この発明の一実施例に利用される集積回路を
示すブロック図である。 第14図は、第13図の集積回路のより詳細な内部構成を示
す回路図である。 第15図は、第14図に示した集積回路を利用した演算回路
のブロック図である。 第16図は、演算回路を制御するためのCPU関連回路を示
すブロック図である。 第17図は、シフトタイミング発生回路の一例を示す回路
図である。 第18図ないし第20図は、マトリクスの乗算過程を説明
し、シフトタイミング発生回路の考え方を説明する図で
あり、特に第18図はマトリクスの乗算の原理を示し、第
19図は演算過程におけるシフト動作を示し、第20図はマ
トリクスの乗算に必要なシフトタイミング信号のタイミ
ングチャートを示す。 第21図は、この発明の一実施例の動作を説明するための
フローチャートである。 第22図は、Resolved Motion Rate Controlにおける処理
演算ループを示す。 第23図は、シフトタイミング発生回路の別の例を示す回
路図である。 第24A図および第24B図は、ヤコビアンJ(α)を求める
装置を説明するためのブロック図である。 第25A図ないし第25C図は、ヤコビアン演算部の動作を説
明するための図である。 第26図は、ヤコビアンインバースJ-1を求める装置を説
明するためのブロック図である。 第27A図ないし第27D図は、ヤコビアンインバース演算部
の動作を説明するための図である。 第28図は、dからdへの座標変換部を説明するため
のブロック図である。 第29A図は、(44)式に示したΣΣの演算を行なう装置
を説明するためのブロック図である。 第29B図は、d2の演算を行なう装置を説明するための
ブロック図である。 第30A図および第30B図は、ΣΣ演算部の動作を説明する
ための図である。 第31A図ないし第31C図は、運動方程式演算部の動作を説
明するための図である。 第32図は、dからdへの座標変換部を説明するため
のブロック図である。 図において、4はホストシステム、5〜8および17〜18
は座標変換部、10は関節部、11はエンコーダ、12はタコ
メータ、13は力検出器、14〜16はゲイン調整部、B1〜B
12およびb1〜b11はバッファレジスタ、MP1〜MP4は乗算
回路、90はヤコビアン演算部、400はヤコビアンインバ
ース演算部、500はΣΣ演算部、600はd2演算部であ
る。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 B25J 13/00 G05B 19/18 G05D 3/12 306 Z 7740−3H (72)発明者 山本 裕敏 兵庫県西宮市田近野町6番107号 新明和 工業株式会社開発センター内 (72)発明者 近藤 隆彦 兵庫県西宮市田近野町6番107号 新明和 工業株式会社開発センター内 (56)参考文献 特開 昭57−120112(JP,A)

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】回転や旋回やスライドなどの複数Nの自由
    度を有する多関節ロボット関節座標系での位置データを
    直角座標系での位置データに変換するための座標変換装
    置であって、 前記各自由度の動きに対応する関節座標系を直角座標系
    に変換するための座標変換マトリクスMjが各自由度ごと
    に設定され、かつ各座標変換マトリクスをシフトして順
    次出力するマトリクスシフト手段と、 2つのマトリクス入力を含み、一方のマトリクス入力に
    入力される前記マトリクスシフト手段からの座標変換マ
    トリクスMjと他方のマトリクス入力に入力されるマトリ
    クスとを乗算して出力するマトリクス乗算手段と、 前記マトリクス乗算手段によって乗算されたマトリクス
    をストアして、前記マトリクス乗算手段の出力に与える
    マトリクスレジスタ手段と、 前記マトリクスレジスタ手段を単位マトリクスEに初期
    化した後、前記マトリクスシフト手段から出力された各
    座標変換マトリクスと前記マトリクスレジスタ手段の出
    力とを前記マトリクス乗算手段によって乗算させ、関節
    座標系を直角座標系に変換し、次式で表わされる各関節
    のトルクを計算するために必要な積マトリクスajを求め
    るように制御する制御手段とを備えた、座標変換装置。 aj=aj-1×Mj,a0=E ここで、jは0ないしNの整数であり、Eは単位マトリ
    クスである。
  2. 【請求項2】前記マトリクスシフトレジスタ手段は、前
    記自由度の数だけ直列に接続されたマトリクスレジスタ
    を含む、特許請求の範囲第1項記載の座標変換装置。
  3. 【請求項3】複数Nの自由度を有する多関節ロボットの
    直角座標系での速度データを関節座標系での速度データ
    に変換するのに用いるヤコビアンマトリクスを求める演
    算方法であって、 前記各自由度の動きをそれぞれ関節座標系における座標
    変換マトリクスMjとして変換する第1のステップと、 前記各自由度の座標変換マトリクスのその自由度の動き
    に関する微分マトリクスM′jを求める第2のステップ
    と、 前記座標変換マトリクスMjおよび前記微分マトリクス▲
    ▼を用いて次式で表わされる各関節のトルクを計
    算するために必要な積マトリクス▲bi j▼を求める第3
    のステップとを備える、ヤコビアンマトリクス演算方
    法。 ここで、jは0ないしNの整数であり、iは0ないしN
    の整数であり、Eは単位マトリクスである。
  4. 【請求項4】複数Nの自由度を有する多関節ロボットの
    直角座標系での速度データを関節座標系での速度データ
    に変換するのに用いるヤコビアンマトリクスを求める演
    算装置であって、 前記各自由度の動きに対応する関節座標系における座標
    変換マトリクスMjを自由度の数だけ求める座標変換マト
    リクス演算手段と、 前記自由度の座標変換マトリクスのその自由度の動きに
    関する微分マトリクス▲M ▼を求める微分マトリク
    ス演算手段と、 前記座標変換マトリクスをそれぞれ保持する、相互に接
    続された複数の第1の群のマトリクスレジスタとを備
    え、ここで前記第1の群のマトリクスレジスタのうちの
    1つは前記座標変換マトリクス演算手段に接続されてお
    り、さらに 前記微分マトリクスをそれぞれ保持する、相互に接続さ
    れた複数の第2の群のマトリクスレジスタを備え、ここ
    で前記第2の群のマトリクスレジスタのうちの1つは前
    記微分マトリクス演算手段に接続されており、さらに それぞれが前記第1および第2の群のマトリクスレジス
    タ内の中央のマトリクスレジスタに接続されていて、前
    記第1の群のマトリクスレジスタ内の中央のマトリクス
    レジスタに保持されている座標変換マトリクスMjの乗算
    結果と、前記第2の群のマトリクスレジスタからの微分
    マトリクス▲M ▼とを乗算して、前記第2の群のマ
    トリクスレジスタ内の中央のマトリクスレジスタに出力
    する複数のマトリクス乗算手段と、 前記第1および第2の群のマトリクスレジスタおよび前
    記マトリクス乗算手段に接続されていて、それらを制御
    することにより前記マトリクス乗算手段において次式で
    表わされる各関節のトルクを計算するために必要な積マ
    トリクス▲bi j▼が求められるように制御する制御手段
    とを備える、ヤコビアンマトリクス演算装置。 ここで、jは0ないしNの整数であり、iは0ないしN
    の整数であり、Eは単位マトリクスである。
  5. 【請求項5】前記第1の群のマトリクスレジスタは、双
    方向にシフト可能な第1および第2のマトリクスシフト
    レジスタを形成しており、 前記第2の群のマトリクスレジスタは、双方向にシフト
    可能な第3および第4のマトリクスシフトレジスタを形
    成しており、 前記第1のマトリクスシフトレジスタ内の一方端のマト
    リクスレジスタは、前記座標変換マトリクス演算手段に
    接続されており、 前記第3のマトリクスシフトレジスタ内の一方端のマト
    リクスレジスタは、前記微分マトリクス演算手段に接続
    されており、 前記複数のマトリクス乗算手段は、第1ないし第4のマ
    トリクス乗算手段を備え、 前記第1のマトリクス乗算手段は前記第1のマトリクス
    シフトレジスタからシフトされてくる演算マトリクスを
    保持し、次にシフトされてくる新たな演算マトリクスと
    乗算結果とを乗算して前記第2のマトリクスシフトレジ
    スタに出力する第1のマトリクス乗算・保持手段を含
    み、 前記第2のマトリクス乗算手段は、前記第2のマトリク
    スシフトレジスタからシフトされてくる演算マトリクス
    を乗算して保持し、次にシフトされてくる新たな演算マ
    トリクスと乗算結果とを乗算して前記第1のマトリクス
    シフトレジスタに出力する第2のマトリクス乗算・保持
    手段を含み、 前記第3のマトリクス乗算手段は、2つの入力部がそれ
    ぞれ前記第3のマトリクスシフトレジスタ内の他方端の
    マトリクスレジスタと前記第1のマトリクス乗算・保持
    手段に接続されており、出力部が前記第4のマトリクス
    シフトレジスタ内の一方端のマトリクスレジスタに接続
    されており、 前記第4のマトリクス乗算手段は、2つの入力部がそれ
    ぞれ前記第4のマトリクスシフトレジスタ内の前記一方
    端のマトリクスレジスタと前記第2のマトリクス乗算・
    保持手段に接続されており、出力部が前記第3のマトリ
    クスシフトレジスタ内の他方端に接続されており、 前記制御手段は、前記第1ないし第4のマトリクスシフ
    トレジスタを往復シフトさせる、特許請求の範囲第4項
    記載のヤコビアンマトリクス演算装置。
  6. 【請求項6】前記第1の群のマトリクスレジスタは第1
    から第2Nのマトリクスレジスタを備え、ここで第1から
    第Nのマトリクスレジスタは相互に直列に接続されてお
    り、第N+1から第2Nのマトリクスの相互に直列に接続
    されており、さらに第N−1から第N+2のマトリクス
    レジスタは相互にループ状に接続されており、かつ第1
    のマトリクスレジスタは前記座標変換マトリクス演算手
    段に接続されており、 前記第2の群のマトリクスレジスタは第1から第2N−1
    の互いに直列に接続されたマトリクスレジスタを備え、
    ここで第1のマトリクスレジスタは前記微分マトリクス
    演算手段に接続されており、 前記複数のマトリクス乗算手段は、 2つの入力部がそれぞれ前記第1の群の第N−1と第N
    のマトリクスレジスタに接続され、出力部が前記第1の
    群の第Nのマトリクスレジスタに接続された第1のマト
    リクス乗算手段と、 2つの入力部がそれぞれ前記第1の群の第Nと第N+1
    のマトリクスレジスタに接続され、出力部が前記第1の
    群の第N+1のマトリクスレジスタに接続された第2の
    マトリクス乗算手段と、 2つの入力部がそれぞれ前記第1の群の第Nのマトリク
    スレジスタと前記第2の群の第N−1のマトリクスレジ
    スタに接続され、出力部が前記第2の群の第Nのマトリ
    クスレジスタに接続された第3のマトリクス乗算手段
    と、 2つの入力部がそれぞれ前記第1の群の第N+1のマト
    リクスレジスタと前記第2の群の第N+1のマトリクス
    レジスタに接続され、出力部が前記第2の群の第Nのマ
    トリクスレジスタに接続された第4のマトリクス乗算手
    段とを備える、特許請求の範囲第4項記載のヤコビアン
    マトリクス演算装置。
  7. 【請求項7】前記第1および第2の群のマトリクスレジ
    スタは、それぞれ、双方向に循環可能な第1および第2
    のマトリクス循環レジスタを形成しており、 前記複数のマトリクス乗算手段は、第1および第2のマ
    トリクス乗算手段を備え、 前記第1のマトリクス乗算手段は、マトリクスレジスタ
    と組合わされて、既に保持していたマトリクスと新たに
    入力されたマトリクスとの積を求めその結果を改めて保
    持するマトリクス乗算・保持手段を形成し、 前記マトリクス乗算・保持手段は、前記第1のマトリク
    ス循環レジスタ内の1つのマトリクスレジスタの出力を
    入力とし、 前記第2のマトリクス循環レジスタで形成される循環ル
    ープは、そのループ内の1つのマトリクスレジスタの出
    力と前記マトリクス乗算・保持手段の出力とを乗算する
    前記第2のマトリクス乗算手段を経て閉じられており、 前記制御手段は、前記第1および第2のマトリクス循環
    レジスタを方向を変えて各々1循環させる、特許請求の
    範囲第4項記載のヤコビアンマトリクス演算装置。
  8. 【請求項8】前記第1の群のマトリクスレジスタは第1
    から第N+1のマトリクスレジスタを備え、ここで第1
    から第Nのマトリクスレジスタは相互にループ状に接続
    されており、さらに第1から第N−1および第N+1の
    マトリクスレジスタも相互にループ状に接続されてお
    り、かつ第1のマトリクスレジスタは前記座標変換マト
    リクス演算手段に接続されており、 前記第2の群のマトリクスレジスタは第1から第Nの互
    いにループ状に接続されたマトリクスレジスタを備え、
    ここで第1のマトリクスレジスタは前記微分マトリクス
    演算手段に接続されており、 前記複数のマトリクス乗算手段は、 2つの入力部がそれぞれ前記第1の群の第N−1と第N
    のマトリクスレジスタに接続され、出力部が前記第1の
    群の第Nのマトリクスレジスタに接続された第1のマト
    リクス乗算手段と、 2つの入力部がそれぞれ前記第1の群の第1と第N+1
    のマトリクスレジスタに接続され、出力部が前記第1の
    群の第N+1のマトリクスレジスタに接続された第2の
    マトリクス乗算手段と、 2つの入力部がそれぞれ前記第1の群の第Nのマトリク
    スレジスタと前記第2の群の第N−1のマトリクスレジ
    スタに、出力部が前記第2の群の第Nのマトリクスレジ
    スタに接続された第3のマトリクス乗算手段と、 2つの入力部がそれぞれ前記第1の群の第N+1のマト
    リクスレジスタと前記第2の群の第1のマトリクスレジ
    スタに接続され、出力部が前記第2の群の第Nのマトリ
    クスレジスタに接続された第4のマトリクス乗算手段と
    を備える、特許請求の範囲第4項記載のヤコビアンマト
    リクス演算装置。
  9. 【請求項9】回転や旋回やスライドなどの複数のNの自
    由度を有する多関節ロボットの直角座標系での速度デー
    タを関節座標系での速度データに変換するのに用いるヤ
    コビアンマトリクスを求める演算装置であって、 前記各自由度の動きに対応する関節座標系における座標
    変換マトリクスMjを自由度の数だけ求める座標変換マト
    リクス演算手段と、 前記各自由度の座標変換マトリクスのその自由度の動き
    に関する微分マトリクス▲M ▼を求める微分マトリ
    クス演算手段と、 前記座標変換マトリクス演算手段に接続されていて、前
    記自由度の数だけの座標変換マトリクスを保持し、かつ
    それらのマトリクスを1つずつシフトして順次出力する
    第1のマトリクスシフトレジスタと、 前記微分マトリクス演算手段に接続されていて、前記自
    由度の数だけの微分マトリクスを保持し、かつそれらの
    マトリクスを1つずつシフトして順次出力する第2のマ
    トリクスシフトレジスタと、 前記第1および第2のマトリクスシフトレジスタに接続
    されていて、そのいずれか一方からのマトリクスを切換
    えて出力するスイッチ手段と、 2つの入力部を有し、それのそれぞれに入力されるマト
    リクスの積を求めて積マトリクスを出力するマトリクス
    乗算手段と、 前記マトリクス乗算手段に接続されていて、前記積マト
    リクスを保持しかつ出力するマトリクスレジスタとを備
    え、ここで前記マトリクスレジスタは単位マトリクスに
    初期化されることができ、前記マトリクス乗算手段の一
    方の入力部は前記スイッチ手段の出力部に接続されてお
    り、他方の入力部は前記マトリクスレジスタの出力部に
    接続されており、さらに 前記第1および第2のマトリクスシフトレジスタ,前記
    スイッチ手段,前記マトリクス乗算手段および前記マト
    リクスレジスタに接続されていて、それらを制御するこ
    とにより前記マトリクス乗算手段において次式で表わさ
    れる各関節のトルクを計算するために必要な積マトリク
    ス▲bi j▼を求めるように制御する制御手段を備える、
    ヤコビアンマトリクス演算装置。 ここで、jは0ないしNの整数であり、iは0ないしN
    の整数であり、Eは単位マトリクスである。
  10. 【請求項10】複数の自由度を有する多関節ロボットの
    直角座標系での速度データを関節座標系での速度データ
    に変換することを含む用途に用いるヤコビアンマトリク
    スAの逆マトリクスBを求める演算方法であって、 s番目のヤコビアンマトリクスA(s)と、その近似解であ
    る逆マトリクスB(s)とを用いて、マトリクス〔A
    (s)B(s)〕を求める第1のステップを備え、ここでsは
    任意の整数であり、さらに 前記マトリクス〔A(s)B(s)〕と単位マトリクスEとを用
    いてマトリクス〔E−A(s)B(s)〕を求める第2のステッ
    プと、 前記マトリクス〔E−A(s)B(s)〕の各要素の自乗和を計
    算してスカラー量V(s)を求める第3のステップと、 前記マトリクスA(s)の転置マトリクスAT(s)と、前記マ
    トリクス〔E−A(s)B(s)〕とを用いてマトリクス〔A
    T(s)(E−A(s)B(s))〕を求める第4のステップと、 前記マトリクス〔AT(s)(E−A(s)B(s))〕の各要素の
    自乗和を計算してスカラー量U(s)を求める第5のステッ
    プと、 前記スカラー量V(s)およびU(s)を用いてスカラー量λ
    (s)=V(s)/U(s)を求める第6のステップと、 前記諸量を用いて次式で表わされる(s+1)番目の近
    似マトリクス〔B(s+1)〕を求める第7のステップとを備
    える、逆マトリクス演算方法。 〔B(s+1)〕=〔B(s)〕−λ(s)〔AT(s)(E−A
    (s)B(s))〕
  11. 【請求項11】複数の自由度を有する多関節ロボットの
    直角座標系での速度データを関節座標系での速度データ
    へ変換するのに用いるヤコビアンマトリクスAの逆マト
    リクスBを求める演算装置であって、 s番目のヤコビアンマトリクスA(s)を保持する第1のマ
    トリクスレジスタを備え、ここでsは任意の整数であ
    り、さらに 前記マトリクスA(s)の近似解である逆マトリクスB(s)
    保持する第2のマトリクスレジスタと、 前記第1および第2のマトリクスレジスタに接続されて
    いて、前記ヤコビアンマトリクスAと前記逆マトリクス
    Bとを用いて、マトリクス〔A(s)B(s)〕を求める第1の
    マトリクス乗算手段と、 単位マトリクスEを与える初期化手段と、 前記第1のマトリクス乗算手段と前記初期化手段に接続
    されていて、前記マトリクス〔A(s)B(s)〕と前記単位マ
    トリクスEとを用いてマトリクス〔E−A(s)B(s)〕を求
    める第1のマトリクス減算手段と、 前記第1のマトリクス演算手段に接続されていて、前記
    マトリクス〔E−A(s)B(s)〕の各要素の自乗和を計算し
    てスカラー量V(s)を求める第1の乗算・加算手段と、 前記第1のマトリクスレジスタと前記第1のマトリクス
    減算手段に接続されていて、前記マトリクスA(s)の転置
    マトリクスAT(s)と、前記マトリクス〔E−A(s)B(s)
    とを用いてマトリクス〔AT(s)(E−A(s)B(s))〕を求
    める第2のマトリクス乗算手段と、 前記第2のマトリクス乗算手段に接続されていて、前記
    マトリクス〔AT(s)(E−A(s)B(s))〕の各要素の自乗
    和を計算してスカラー量U(s)を求める第2の乗算・加算
    手段と、 前記第1および第2の乗算・加算手段に接続されてい
    て、前記スカラー量V(s)およびU(s)を用いてスカラー量
    λ(s)=V(s)/U(s)を求める演算手段と、 前記第2のマトリクス乗算手段および前記演算手段に接
    続されていて、前記マトリクス〔AT(s)(E−A
    (s)B(s))〕および前記スカラー量λ(s)を用いてマトリ
    クスλ(s)〔AT(s)(E−A(s)B(s))〕を求める第3のマ
    トリクス乗算手段と、 前記第2のマトリクスレジスタおよび前記第3のマトリ
    クス乗算手段に接続されていて、前記マトリクスB(s)
    前記マトリクスλ(s)〔AT(s)(E−A(s)B(s))〕を用い
    て次式で表わされる(s+1)番目の近似マトリクス
    〔B(s+1)〕を求める第2のマトリクス減算手段とを備え
    る、逆マトリクス演算装置。 〔B(s+1)〕=〔B(s)−λ(s)(AT(s)(E−A(s)B(s))〕
  12. 【請求項12】複数の自由度を有する多関節ロボットの
    直角座標系での速度データを関節座標系での速度データ
    に変換することを含む用途に用いるヤコビアンマトリク
    スの逆マトリクスを求める演算装置であって、 マトリクスを保持する第1のマトリクスレジスタと、 マトリクスを保持する第2のマトリクスレジスタと、 2つの入力部を有し、その一方の入力部が前記第2のマ
    トリクスレジスタの出力部に接続されていて、入力の切
    換えを行なうスイッチ手段と、 2つの入力部を有し、それらは前記スイッチ手段および
    前記第1のマトリクスレジスタの出力部にそれぞれ接続
    されていて、前記2つの入力部に入力される2つのマト
    リクスの乗算を行なう第1のマトリクス乗算手段と、 前記第1のマトリクス乗算手段の出力部に入力部が接続
    されていて、マトリクスを保持する第3のマトリクスレ
    ジスタと、 単位マトリクスを与える初期化手段と、 2つの入力部を有し、それらは前記第3のマトリクスレ
    ジスタおよび前記初期化手段の出力部にそれぞれに接続
    されていて、前記2つの入力部に入力される2つのマト
    リクス間の減算を行なうマトリクス減算手段と、 前記マトリクス減算手段の出力部に入力部が接続されて
    いて、マトリクスを保持し、その出力が前記スイッチ手
    段の他方の入力部に接続される第4のマトリクスレジス
    タと、 2つの入力部を有し、それらが共に前記マトリクス減産
    手段の出力部に接続されていて、前記2つの入力部に入
    力されるマトリクスの各要素の自乗和を求めるマトリク
    ス乗算・加算手段と、 2つの入力部を有し、その一方の入力部が前記第3のマ
    トリクスレジスタの出力部に接続されていて、他方の入
    力部にはスカラー量が与えられていて、前記2つの入力
    部に入力される2つのマトリクスの乗算を行なう第2の
    マトリクス乗算手段と、 2つの入力部を有し、それらが前記第2のマトリクス乗
    算手段および前記第2のマトリクスレジスタの出力部に
    それぞれ接続されていて、出力部が前記第2のマトリク
    スレジスタの入力部に接続されていて、前記2つの入力
    部に入力される2つのマトリクス間の加算を行なうマト
    リクス加算手段とを備える、逆マトリクス演算装置。
  13. 【請求項13】複数の自由度を有する多関節ロボットの
    直角座標系での速度データdを関節座標系での速度デ
    ータdに変換する座標変換方法であって、 各自由度の動きをそれぞれ関節座標系における座標変換
    マトリクスMjとして表現する第1のステップと、 前記各自由度の座標変換マトリクスのその自由度の動き
    に関する微分マトリクス▲M ▼を求める第2のステ
    ップと、 前記座標変換マトリクスMjおよび前記微分マトリクス▲
    ▼を用いて次式で表わされる各関節のトルクを計
    算するために必要な積マトリクス▲bi j▼を求める第3
    のステップとを備え、 ここで、jは0ないしNの整数であり、iは0ないしN
    の整数であり、Eは単位マトリクスであり、さらに、 前記積マトリクス▲bi j▼からヤコビアンマトリクスA
    を求める第4のステップと、 s番目の前記ヤコビアンマトリクスA(s)と、その近似解
    である逆マトリクスB(s)とを用いて、マトリクス〔A(s)
    B(s)〕を求める第5のステップとを備え、ここでsは任
    意の整数であり、さらに 前記マトリクス〔A(s)B(s)〕と単位マトリクスEとを用
    いて〔E−A(s)B(s)〕を求める第6のステップと、 前記マトリクス〔E−A(s)B(s)〕の各要素の自乗和を計
    算してスカラー量V(s)を求める第7のステップと、 前記マトリクスA(s)の転置マトリクスAT(s)と、前記マ
    トリクス〔E−A(s)B(s)〕とを用いてマトリクス〔A
    T(s)(E−A(s)B(s))〕を求める第8のステップと、 前記マトリクス〔AT(s)(E−A(s)B(s))〕の各要素の
    自乗和を計算してスカラー量U(s)を求める第9のステッ
    プと、 前記スカラーV(s)およびおよびU(s)を用いてスカラー量
    λ(s)=V(s)/U(s)を求める第10のステップと、 前記諸量を用いて次式で表わされる(s+1)番目の近
    似マトリクス〔B(s+1)〕を求める第11のステップと、 〔B(s+1)〕=〔B(s)〕−λ(s)〔AT(s)(E−A
    (s)B(s))〕 前記マトリクスBと前記直角座標系での速度データd
    との積を求め、それによって前記速度データdを前記
    関節座標系での速度データdに変換する第12のステッ
    プとを備える、座標変換方法。
  14. 【請求項14】複数のNの自由度を有する多関節ロボッ
    トの直角座標系での速度データdを関節座標系での速
    度データdに変換する座標変換装置であって、 前記各自由度の動きに対応する関節座標系における座標
    変換マトリクスMjを自由度の数だけ求める座標変換マト
    リクス演算手段と、 前記各自由度の座標変換マトリクスのその自由度の動き
    に関する微分マトリクス▲M ▼を求める微分マトリ
    クス演算手段と、 前記座標変換マトリクスをそれぞれ保持する、相互に接
    続された複数の第1の群のマトリクスレジスタとを備
    え、ここで前記第1の群のマトリクスレジスタのうちの
    1つは前記座標変換マトリクス演算手段に接続されてお
    り、さらに、 前記微分マトリクスをそれぞれ保持する、相互に接続さ
    れた複数の第2の群のマトリクスレジスタを備え、ここ
    で前記第2の群のマトリクスレジスタのうちの1つは前
    記微分マトリクス演算手段に接続されており、さらに、 それぞれが前記第1および第2の群のマトリクスレジス
    タ内の中央のマトリクスレジスタに接続されていて、前
    記第1の群のマトリクスレジスタ内の中央のマトリクス
    レジスタに保持されている座標変換マトリクスMjの乗算
    結果と、前記第2の群のマトリクスレジスタからの微分
    マトリクス▲M ▼とを乗算して、前記第2の群のマ
    トリクスレジスタ内の中央のマトリクスレジスタに出力
    する複数のマトリクス乗算手段と、 前記第1および第2の群のマトリクスレジスタおよび前
    記マトリクス乗算手段に接続されていて、それらを制御
    することにより前記マトリクス乗算手段において次式で
    表わされる各関節のトルクを計算するために必要な積マ
    トリクス▲bi j▼が求められるように制御する制御手段
    とを備え、 ここで、jは0ないしNの整数であり、iは0ないしN
    の整数であり、Eは単位マトリクスであり、さらに、 前記第1の群のマトリクスレジスタのうちの1つおよび
    前記第2の群のマトリクスレジスタのうちの1つに接続
    されていて、前記積マトリクス▲bi j▼に基づいてヤコ
    ビアンマトリクスを求め、そのヤコビアンマトリクスか
    ら逆マトリクスを求める逆マトリクス演算手段と、 前記逆マトリクス演算手段に接続されていて、前記逆マ
    トリクスと前記直角座標系での速度データdとの積を
    求め、それによって前記速度データdを前記関節座標
    系での速度データdに変換する乗算手段とを備える、
    座標変換装置。
  15. 【請求項15】複数のNの自由度を有する多関節ロボッ
    トの直角座標系での速度データdを関節座標系での速
    度データdに変換する座標変換装置であって、 前記各自由度の動きに対応する関節座標系における座標
    変換マトリクスMjを自由度の数だけ求める座標変換マト
    リクス演算手段と、 前記各自由度の座標変換マトリクスのその自由度の動き
    に関する微分マトリクス▲M ▼を求める微分マトリ
    クス演算手段と、 前記座標変換マトリクス演算手段に接続されていて、前
    記自由度の数だけの座標変換マトリクスを保持し、かつ
    それらのマトリクスを1つずつシフトして順次出力する
    第1のマトリクスシフトレジスタと、 前記微分マトリクス演算手段に接続されていて、前記自
    由度の数だけの微分マトリクスを保持し、かつそれらの
    マトリクスを1つずつシフトして順次出力する第2のマ
    トリクスシフトレジスタと、 前記第1および第2のマトリクスシフトレジスタに接続
    されていて、そのいずれか一方からのマトリクスを切換
    えて出力するスイッチ手段と、 2つの入力部を有し、それのそれぞれに入力されるマト
    リクスの積を求めて積マトリクスを出力する第1のマト
    リクス乗算手段と、 前記第1のマトリクス乗算手段に接続されていて、前記
    積マトリクスを保持しかつ出力する第1のマトリクスレ
    ジスタとを備え、ここで前記第1のマトリクスレジスタ
    は単位マトリクスに初期化されることができ、前記第1
    のマトリクス乗算手段の一方の入力部は前記スイッチ手
    段の出力部に接続されており、他方の入力部は前記第1
    のマトリクスレジスタの出力部に接続されており、さら
    に、 前記第1および第2のマトリクスシフトレジスタ,前記
    スイッチ手段,前記第1のマトリクス乗算手段および前
    記第1のマトリクスレジスタに接続されていて、それら
    を制御することにより前記第1のマトリクス乗算手段に
    おいて次式で表わされる各関節のトルクを計算するため
    に必要な積マトリクス▲bi j▼が求められるように制御
    する制御手段を備え、 ここで、jは0ないしNの整数であり、iは0ないしN
    の整数であり、Eは単位マトリクスであり、さらに、 前記第1のマトリクスレジスタに接続されていて、前記
    積マトリクス▲bi j▼から得られるs番目のヤコビアン
    マトリクスA(s)を保持する第2のマトリクスレジスタを
    備え、ここでsは任意の整数であり、さらに 前記マトリクスA(s)の近似解である逆マトリクスB(s)
    保持する第3のマトリクスレジスタと、 前記ヤコビアンマトリクスA(s)とB(s)とを用いて、マト
    リクス〔A(s)B(s)〕を求める第2のマトリクス乗算手段
    と、 単位マトリクスEを与える初期化手段と、 前記マトリクス〔A(s)B(s)〕と前記単位マトリクスEを
    用いてマトリクス〔E−A(s)B(s)〕を求める第1のマト
    リクス減算手段と、 前記マトリクス〔E−A(s)B(s)〕の各要素の自乗和を計
    算してスカラー量V(s)を求める第1の乗算・加算手段
    と、 前記マトリクスA(s)の転置マトリクスAT(s)と前記マト
    リクス〔E−A(s)B(s)〕とを用いてマトリクス〔AT(s)
    (E−A(s)B(s))〕を求める第3のマトリクス乗算手段
    と、 前記マトリクス〔AT(s)(E−A(s)B(s))〕の各要素の
    自乗和を計算してスカラー量U(s)を求める第2の乗算・
    加算手段と、 前記スカラー量V(s)およびU(s)を用いてスカラー量λ
    (s)=V(s)/U(s)を求める演算手段と、 前記マトリクス〔AT(s)(E−A(s)B(s))〕および前記
    スカラー量λ(s)を用いてマトリクスλ(s)〔AT(s)(E
    −A(s)B(s))〕を求める第4のマトリクス乗算手段と、 前記マトリクスB(s)と前記マトリクスλ(s)〔AT(s)(E
    −A(s)B(s))〕を用いて次式で表わされる(s+1)番
    目の近似マトリクス〔B(s+1)〕を求める第2のマトリク
    ス減算手段と、 〔B(s+1)〕=〔B(s)〕λ(s)〔AT(s)(E−A(s)B(s))〕 前記第2のマトリクス減算手段の出力部に接続されてい
    て、前記逆マトリクスBと前記直角座標系での速度デー
    タdとの積を求め、それによって前記速度データd
    を前記関節座標系での速度データdに変換する第5の
    マトリクス乗算手段とを備える、座標変換装置。
  16. 【請求項16】複数のNの自由度を有する多関節ロボッ
    トにおいて、一般化力Fiで表わされたラグランジェの運
    動方程式の逆問題を解く演算方法であって、 前記各自由度の動きをそれぞれ関節座標系における座標
    変換マトリクスMjとして表現する第1のステップと、 前記各自由度の座標変換マトリクスのその自由度の動き
    に関する1階の微分マトリクス▲M ▼を求める第2
    のステップと、 前記各自由度の座標変換マトリクスのその自由度の動き
    に関する2階の微分マトリクス▲M ▼を求める第3
    のステップと、 前記各自由度の次式で表わされる慣性テンソルQjを求め
    る第4のステップとを備え、 ここで、は、i番目の前記自由度に固定された座標
    系から見た位置ベクトルであり、dmは前記ロボットの各
    部分の微小部分の質量であり、Tは転置マトリクスを意
    味しており、さらに 前記各自由度の次式で表わされる重力マトリクスYjを求
    める第5のステップを備え、 ここで、gは重力加速度であり、さらに 前記マトリクスMjを用いて、次式で表わされる各関節の
    トルクを計算するために必要なマトリクスajを求める第
    6のステップを備え、 aj=aj-1×Mj,a0=E ここで、jは0ないしNの整数であり、Eは単位マトリ
    クスであり、さらに 前記マトリクスMjおよび▲M ▼を用いて、次式で表
    わされる各関節のトルクを計算するために必要なマトリ
    クス▲bi j▼を求める第7のステップを備え、 ここで、iは0ないしNの整数であり、さらに 前記マトリクス▲bi j▼を用いてマトリクスを求め、そ
    の逆マトリクスと単位マトリクスとを用いてヤコビアン
    の逆マトリクスBを求める第8のステップと、 前記逆マトリクスBを用いて、前記各自由度の関節座標
    系での速度マトリクスを求める第9のステップと、 前記マトリクスMj,▲M ▼,ajおよびを用い
    て、次式で表わされる各関節のトルクを計算するために
    必要なマトリクス▲c* j▼を求める第10のステップと、 ▲c* j▼=▲c* j-1▼×Mj+aj-1×▲M ▼,▲
    * 0▼=0 前記マトリクスMj,▲M ▼,▲M ▼,aj
    および▲c* j▼を用いて、次式で表わされる各関節のト
    ルクを計算するために必要なマトリクスdjを求める第11
    のステップと、 前記マトリクスdjを用いて、前記各自由度の関節座標系
    での加速度マトリクスを求める第12のステップと、 前記マトリクスMj,▲M ▼,ajおよびを用い
    て、次式で表わされる各関節のトルクを計算するために
    必要なマトリクスcjを求める第13のステップと、 cj=cj-1×Mj+aj-1×▲M ▼,c0=0 前記マトリクスYjおよび▲bi j▼を用いて、次式で表わ
    される一般化力▲F3 i▼を求める第14のステップとを備
    え、 ここで、Trはトレースを意味し、さらに 前記マトリクスcjおよび▲bi j▼および前記慣性テンソ
    ルQjを用いて、次式で表わされる一般化力▲F1 i▼求め
    る第15のステップと、 前記一般化力▲F1 i▼および▲F3 i▼を加算することに
    より、前記一般化力Fiを求める第16のステップとを備え
    る、運動方程式演算方法。
  17. 【請求項17】前記マトリクスdjおよび▲bi j▼および
    前記慣性テンソルQjを用いて、次式で表わされる一般化
    力▲F2 i▼を求める第17のステップをさらに備え、 前記第16のステップにおいて、前記一般化力▲F1 i▼,
    ▲F2 i▼および▲F3 i▼を用いて次式で表わされる演算
    を行なうことにより、前記一般化力Fiが求められる、特
    許請求の範囲第16項記載の運動方程式演算方法。 Fi=▲F1 i▼+▲F2 i▼+▲F3 i
  18. 【請求項18】複数Nの自由度を有する多関節ロボット
    において、一般化力Fiで表わされたラグランジェの運動
    方程式の逆問題を解く演算装置であって、 前記各自由度の動きをそれぞれ座標変換マトリクスMj
    して表現する第1の演算手段と、 前記各自由度の座標変換マトリクスのその自由度の動き
    に関する1階の微分マトリクス▲M ▼を求める第2
    の演算手段と、 前記各自由度の座標変換マトリクスのその自由度の動き
    に関する2階の微分マトリクス▲M ▼を求める第3
    の演算手段と、 前記マトリクスMjを用いて、次式で表わされるマトリク
    スajを求める第4の演算手段とを備え、 aj=aj-1×Mj,a0=E ここで、jは0ないしNの整数であり、Eは単位マトリ
    クスであり、さらに 前記マトリクスMjおよび▲M ▼を用いて、次式で表
    わされる▲bi j▼を求める第5の演算手段を備え、 ここで、iは0ないしNの整数であり、さらに 前記マトリクス▲bi j▼を用いてヤコビアンマトリクス
    を求め、その逆マトリクスと単位マトリクスとを用いて
    ヤコビアンの逆マトリクスBを求める第6の演算手段
    と、 前記逆マトリクスBを用いて、前記各自由度の関節座標
    系での速度マトリクスを求める第7の演算手段と、 前記マトリクスMj,▲M ▼,ajおよびを用い
    て、次式で表わされるマトリクス▲c* j▼を求める第8
    の演算手段と、 ▲c* j▼=▲c* j-1▼Mj+aj-1×▲M ▼,▲c
    * 0▼=0 前記マトリクスMj,▲M ▼,▲M ▼,aj
    および▲cい* j▼を用いて、次式で表わされるマトリク
    スdjを求める第9の演算手段と、 前記マトリクスdjを用いて、前記各自由度の関節座標系
    での加速度マトリクスを求める第10の演算手段と、 前記マトリクスMj,▲M ▼,ajおよびを用い
    て、次式で表わされる各関節のトルクを計算するために
    必要なマトリクスcjを求める第11の演算手段と、 cj=cj-1×Mj+aj-1×▲M ▼,c0=0 前記ロボット固有の各自由度の次式で表わされるマトリ
    クスYjおよび前記▲bi j▼を用いて、次式で表わされる
    一般化力▲F3 i▼を求める第12の演算手段とを備え ここで、gは重力加速度であり、さらに 前記マトリクスcjおよび▲bi j▼および前記ロボット固
    有の各自由度の次式で表わされる慣性テンソルQjを用い
    て、次式で表わされる一般化力▲F1 i▼を求める第13の
    演算手段を備え、 ここで、▲i j▼は、i番目の前記自由度に固定された
    座標系から見た位置ベクトルであり、dmは前記ロボット
    の各部分の微小部分の質量であり、Tは転置マトリクス
    を意味し、さらに 前記一般化力▲F1 i▼および▲F3 i▼を加算することに
    より、前記一般化力Fiを求める第14の演算手段を備え
    る、運動方程式演算装置。
  19. 【請求項19】前記マトリクスdjおよび▲bi j▼および
    前記慣性テンソルQjを用いて、次式で表わされる一般化
    力▲F2 i▼を求める第15の演算手段をさらに備え、 前記第14の演算手段において、前記一般化力▲F1 i▼,
    ▲F2 i▼および▲F3 i▼を用いて次式で表わされる演算
    を行なうことにより、前記一般化力Fiが求められる、特
    許請求の範囲第18項記載の運動方程式演算装置。 Fi=▲F1 i▼+▲F2 i▼+▲F3 i
  20. 【請求項20】複数の自由度を有する多関節ロボットの
    直角座標系での力データdを関節座標系でのトルクデ
    ータdに変換する座標変換装置であって、 ヤコビアンマトリクスAの転置マトリクスATを求める演
    算手段と、 前記力データdおよび前記転置マトリクスATを入力と
    し、それらの入力の積を求めるマトリクス乗算手段とを
    備える、座標変換装置。
JP58183297A 1983-09-30 1983-09-30 多関節ロボットの制御のための座標変換方法,演算方法,座標変換装置および演算装置 Expired - Lifetime JPH0785203B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58183297A JPH0785203B2 (ja) 1983-09-30 1983-09-30 多関節ロボットの制御のための座標変換方法,演算方法,座標変換装置および演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58183297A JPH0785203B2 (ja) 1983-09-30 1983-09-30 多関節ロボットの制御のための座標変換方法,演算方法,座標変換装置および演算装置

Publications (2)

Publication Number Publication Date
JPS6075904A JPS6075904A (ja) 1985-04-30
JPH0785203B2 true JPH0785203B2 (ja) 1995-09-13

Family

ID=16133201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58183297A Expired - Lifetime JPH0785203B2 (ja) 1983-09-30 1983-09-30 多関節ロボットの制御のための座標変換方法,演算方法,座標変換装置および演算装置

Country Status (1)

Country Link
JP (1) JPH0785203B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4718078A (en) * 1985-08-19 1988-01-05 Siemens Aktiengesellschaft System for controlling motion of a robot
JP3283650B2 (ja) * 1993-07-05 2002-05-20 ファナック株式会社 ロボット制御装置
JP4940905B2 (ja) * 2006-11-24 2012-05-30 トヨタ自動車株式会社 関節駆動型ロボット、及びその制御方法
CN102886781A (zh) * 2011-07-18 2013-01-23 鲁东大学 一种控制多自由度工业机器人关节运动启停的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4344127A (en) * 1980-08-28 1982-08-10 The Bendix Corporation Microprocessor based process control system
JPS57120112A (en) * 1980-12-22 1982-07-27 Fujitsu Ltd Locus control method of arm
DE3130746C2 (de) * 1981-08-04 1985-01-31 Dr. Johannes Heidenhain Gmbh, 8225 Traunreut Verfahren zur Programmsteuerung bei einer freiprogrammierbaren Steuerung und Anordnung zur Durchführung des Verfahrens

Also Published As

Publication number Publication date
JPS6075904A (ja) 1985-04-30

Similar Documents

Publication Publication Date Title
US4580229A (en) Method and apparatus for control of an articulated robot
Field et al. Iterative dynamic programming: an approach to minimum energy trajectory planning for robotic manipulators
Vukobratovic et al. Applied dynamics and CAD of manipulation robots
Tarn et al. Design of dynamic control of two cooperating robot arms: Closed chain formulation
Kanade et al. Real-time control of CMU direct-drive arm II using customized inverse dynamics
Wang et al. Kinematics and dynamics of a 6 degree-of-freedom fully parallel manipulator with elastic joints
Liu et al. Real-time grasping-force optimization for multifingered manipulation: theory and experiments
WO2009027673A1 (en) Inverse kinematics
Mathew et al. A MATLAB toolbox for hybrid rigid soft robots based on the geometric variable strain approach
CN110053044B (zh) 一种并联机器人串类水果夹取无模型自适应光滑滑模阻抗控制方法
Tsai et al. A strictly convergent real‐time solution for inverse kinematics of robot manipulators
Lees et al. An efficient method for computing the forward kinematics of binary manipulators
JPH0785203B2 (ja) 多関節ロボットの制御のための座標変換方法,演算方法,座標変換装置および演算装置
Pikalov et al. Vector model for solving the inverse kinematics problem in the system of external adaptive control of robotic manipulators
JP2004230530A (ja) 宇宙ロボットの姿勢制御方法及び装置
Jean et al. Efficient adaptive hybrid control strategies for robots in constrained manipulation
Machado et al. Robot Manipulator Dynamics—Towards Better Computational Algorithms
Chappell et al. Kinematic control of a three-fingered and fully adaptive end-effector using a Jacobian matrix
Gudiño-Lau et al. Dynamic model, control and simulation of cooperative robots: A case study
Kuchmin Test model of a warehouse loader robot for situational control analysis system
Nof et al. Now it's time for rate‐fixing for robots
Květoslav et al. The direct kinematics of redundant parallel robot for predictive control
Yoshikawa et al. Application of DSP to real-time computation for dynamic control of robot manipulators
Guo et al. A Combinational Optimization Algorithm for Inverse Kinematics of an 8-DOF Redundant Manipulators
Raju Real-Time Control Of Manipulators