JPH0424196B2 - - Google Patents
Info
- Publication number
- JPH0424196B2 JPH0424196B2 JP57182002A JP18200282A JPH0424196B2 JP H0424196 B2 JPH0424196 B2 JP H0424196B2 JP 57182002 A JP57182002 A JP 57182002A JP 18200282 A JP18200282 A JP 18200282A JP H0424196 B2 JPH0424196 B2 JP H0424196B2
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- register
- registers
- group
- joint
- 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
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/18—Numerical 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 program data in numerical form
- G05B19/408—Numerical 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 program data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
- G05B19/4086—Coordinate conversions; Other special calculations
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/18—Numerical 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 program data in numerical form
- G05B19/19—Numerical 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 program data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
- G05B19/21—Numerical 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 program data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device
- G05B19/25—Numerical 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 program data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for continuous-path control
- G05B19/251—Numerical 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 program data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for continuous-path control the positional error is used to control continuously the servomotor according to its magnitude
- G05B19/258—Numerical 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 program data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for continuous-path control the positional error is used to control continuously the servomotor according to its magnitude with a combination of feedback covered by G05B19/253 - G05B19/256
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33263—Conversion, transformation of coordinates, cartesian or polar
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/37—Measurements
- G05B2219/37357—Force, pressure, weight or deflection
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/41—Servomotor, servo controller till figures
- G05B2219/41434—Feedforward FFW
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/45—Nc applications
- G05B2219/45083—Manipulators, robot
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
Description
この発明は、多関節ロボツトの座標変換方法お
よびそのための装置に関し、特に、多関節ロボツ
トの直角座標系(XYZ系)での微小区間、たと
えば速度データを関節座標系(α系)での微小区
間に変換するのに用いるヤコビアンマトリクスを
求めることによる座標変換方法およびそのための
装置に関する。 多関節ロボツトは、据付け面積が小さく大きな
作業領域が得られるという極めて優れた特徴を有
するものであるが、演算時間特に座標変換に多く
の時間がかかるという欠点がある。 そこで、このような演算時間を短縮するために
従来から、大別して2つの方式が提案されてい
る。その1つは、たとえば特開昭53−100561号な
どに開示される、近似的座標変換制御方式であ
る。この方式では、厳密な座標変換式から或る近
似式を求め、その近似式に基づいて多関節ロボツ
トの各関節角を回動させる。この方式によれば、
確かに演算時間の短縮は可能であるけれども、相
当大きなエラー(たとえば7mm)が生じ、精密な
位置制御を必要とするものには利用できないとい
う欠点があつた。他の1つは、たとえば特開昭53
−121362号などに開示されているヤコビ行列(偏
微分マトリクス)を用いた座標変換方式である。
通常、多関節ロボツトのマニユピレータ(多関節
アーム)では、直角座標系で規定される作業空間
と関節座標系で規定される物理的制御量との間に
多関節アーム固有の複雑な非線形的関係が存在し
ている。そのため、直角座標系で指示された変位
指令を関節座標系での各軸ごとの制御量に変換す
るためには、膨大な量の演算処理が必要となる。
しかし、多関節アームの変位を微小区間の変位の
連続として捉えた場合、各微小区間については、
直角座標系と関節座標系との関係を線形的に表現
することが可能である。すなわち、各微小区間に
ついては、直角座標系と関節座標系との関係をい
わゆるヤコビ行列によつて関連付けることができ
る。上記特開昭53−121362号は、このような微小
区間での線形関係に着目し、それを表すヤコビ行
列を用いることにより、座標変換のための演算量
を縮小化するようにしている。ところで、上記特
開昭53−121362号では、多関節ロボツトの各関節
の連結状態および自由度の数をある特定の条件
(たとえば、自由度の数は3)に限定して、その
際の座標変換方式のみを記述している。なぜなら
ば、多関節ロボツトの各関連の連結状態および自
由度の数を固定化しておけば、そのロボツトにお
ける直角座標系と関節座標系との関係を一義的に
定義できるため、ヤコビ行列の各要素を求める演
算過程の大部分を予め紙上で行なうことができる
からである。すなわち、多関節ロボツトの制御装
置としては、紙上計算で求められた最終的な演算
公式による演算のみを実行すればよく、途中の複
雑は演算過程を省略することができる。 しかしながら、多関節ロボツトの各関節の連結
状態や自由度の数が変更された場合、当然に、ヤ
コビ行列の各要素を求めるための演算公式も大幅
に異なつてくる。そのため、特開昭53−121362号
に示されたような座標変換方式では、多関節ロボ
ツトの構成が異なるごとにメーカー側の設計変更
を余儀なくされ、フレキシビリテイに欠けるとい
う問題点があつた。一方、ユーザ側にとつては、
生産ラインの効率化を図るために、多関節ロボツ
トのバージヨンアツプを図ることはよくあること
であるが、特開昭53−121362号に示された座標変
換方式では、そのたびごとに多関節ロボツトの制
御部分全体を新たに付け替えなければならず、設
備負担が大きくなるという問題点があつた 一方、多関節ロボツトにおける座標変換装置の
フレキシビリテイを向上させるために、前述の紙
上計算をも座標変換装置で行なわせる事が考えら
れるが、それでは、演算量が大幅に増加し、演算
時間が長くなり過ぎるという別の問題点が生じ
る。特に、ヤコビ行列を用いる座標変換方式で
は、微小区間ごとに変換演算を行なわなければな
らないので、演算の高速性(たとえばサーボレー
トでの演算速度)が要求される。 それゆえに、この発明の目的は、多関節ロボツ
トの構成変更に対するフレキシビリテイを保ちな
がら、しかも簡単な回路構成で高速演算が可能
な、多関節ロボツトの座標変換方法およびそのた
めの装置を提供することである。 この発明は、多関節ロボツトの各関節の連結状
態および自由度の数を限定することなく、一般的
な多関節ロボツトを対象として座標変換演算を行
なうようにしたものである。また、この発明で
は、多関節ロボツトの各腕のそれぞれの局所座標
系の変換を順次行なつて最終的に絶対座標系で表
すようにした場合は、同種の演算の繰返しが生じ
ることに着目し、所定の演算機能を有する演算回
路を別に設け、この回路で上記繰返しの演算を行
ない、それによつてたとえばマイクロコンピユー
タやマイクロプロセツサのような制御装置におい
て必要な演算時間を大幅に短縮するようにしたも
のである。 第1図はこの発明の概念を説明するための多関
節ロボツトの模式図である。この第1図の例で
は、多関節ロボツトは5つの自由度α1、α2、α3、
α4およびα5を有する。絶対座標系がXYZで規定
され、エンドエフエクタの局所座標系(ハンド座
標系)がxyzで規定される。 絶対座標系の位置ベクトルY→とハンド座標系の
位置ベクトルy→は、その間の座標変換マトリクス
をMで表わすと、次式(1)で与えられる。 Y→=M×y→ ………(1) 変換マトリクスMは、次式(2)で与えられる。
よびそのための装置に関し、特に、多関節ロボツ
トの直角座標系(XYZ系)での微小区間、たと
えば速度データを関節座標系(α系)での微小区
間に変換するのに用いるヤコビアンマトリクスを
求めることによる座標変換方法およびそのための
装置に関する。 多関節ロボツトは、据付け面積が小さく大きな
作業領域が得られるという極めて優れた特徴を有
するものであるが、演算時間特に座標変換に多く
の時間がかかるという欠点がある。 そこで、このような演算時間を短縮するために
従来から、大別して2つの方式が提案されてい
る。その1つは、たとえば特開昭53−100561号な
どに開示される、近似的座標変換制御方式であ
る。この方式では、厳密な座標変換式から或る近
似式を求め、その近似式に基づいて多関節ロボツ
トの各関節角を回動させる。この方式によれば、
確かに演算時間の短縮は可能であるけれども、相
当大きなエラー(たとえば7mm)が生じ、精密な
位置制御を必要とするものには利用できないとい
う欠点があつた。他の1つは、たとえば特開昭53
−121362号などに開示されているヤコビ行列(偏
微分マトリクス)を用いた座標変換方式である。
通常、多関節ロボツトのマニユピレータ(多関節
アーム)では、直角座標系で規定される作業空間
と関節座標系で規定される物理的制御量との間に
多関節アーム固有の複雑な非線形的関係が存在し
ている。そのため、直角座標系で指示された変位
指令を関節座標系での各軸ごとの制御量に変換す
るためには、膨大な量の演算処理が必要となる。
しかし、多関節アームの変位を微小区間の変位の
連続として捉えた場合、各微小区間については、
直角座標系と関節座標系との関係を線形的に表現
することが可能である。すなわち、各微小区間に
ついては、直角座標系と関節座標系との関係をい
わゆるヤコビ行列によつて関連付けることができ
る。上記特開昭53−121362号は、このような微小
区間での線形関係に着目し、それを表すヤコビ行
列を用いることにより、座標変換のための演算量
を縮小化するようにしている。ところで、上記特
開昭53−121362号では、多関節ロボツトの各関節
の連結状態および自由度の数をある特定の条件
(たとえば、自由度の数は3)に限定して、その
際の座標変換方式のみを記述している。なぜなら
ば、多関節ロボツトの各関連の連結状態および自
由度の数を固定化しておけば、そのロボツトにお
ける直角座標系と関節座標系との関係を一義的に
定義できるため、ヤコビ行列の各要素を求める演
算過程の大部分を予め紙上で行なうことができる
からである。すなわち、多関節ロボツトの制御装
置としては、紙上計算で求められた最終的な演算
公式による演算のみを実行すればよく、途中の複
雑は演算過程を省略することができる。 しかしながら、多関節ロボツトの各関節の連結
状態や自由度の数が変更された場合、当然に、ヤ
コビ行列の各要素を求めるための演算公式も大幅
に異なつてくる。そのため、特開昭53−121362号
に示されたような座標変換方式では、多関節ロボ
ツトの構成が異なるごとにメーカー側の設計変更
を余儀なくされ、フレキシビリテイに欠けるとい
う問題点があつた。一方、ユーザ側にとつては、
生産ラインの効率化を図るために、多関節ロボツ
トのバージヨンアツプを図ることはよくあること
であるが、特開昭53−121362号に示された座標変
換方式では、そのたびごとに多関節ロボツトの制
御部分全体を新たに付け替えなければならず、設
備負担が大きくなるという問題点があつた 一方、多関節ロボツトにおける座標変換装置の
フレキシビリテイを向上させるために、前述の紙
上計算をも座標変換装置で行なわせる事が考えら
れるが、それでは、演算量が大幅に増加し、演算
時間が長くなり過ぎるという別の問題点が生じ
る。特に、ヤコビ行列を用いる座標変換方式で
は、微小区間ごとに変換演算を行なわなければな
らないので、演算の高速性(たとえばサーボレー
トでの演算速度)が要求される。 それゆえに、この発明の目的は、多関節ロボツ
トの構成変更に対するフレキシビリテイを保ちな
がら、しかも簡単な回路構成で高速演算が可能
な、多関節ロボツトの座標変換方法およびそのた
めの装置を提供することである。 この発明は、多関節ロボツトの各関節の連結状
態および自由度の数を限定することなく、一般的
な多関節ロボツトを対象として座標変換演算を行
なうようにしたものである。また、この発明で
は、多関節ロボツトの各腕のそれぞれの局所座標
系の変換を順次行なつて最終的に絶対座標系で表
すようにした場合は、同種の演算の繰返しが生じ
ることに着目し、所定の演算機能を有する演算回
路を別に設け、この回路で上記繰返しの演算を行
ない、それによつてたとえばマイクロコンピユー
タやマイクロプロセツサのような制御装置におい
て必要な演算時間を大幅に短縮するようにしたも
のである。 第1図はこの発明の概念を説明するための多関
節ロボツトの模式図である。この第1図の例で
は、多関節ロボツトは5つの自由度α1、α2、α3、
α4およびα5を有する。絶対座標系がXYZで規定
され、エンドエフエクタの局所座標系(ハンド座
標系)がxyzで規定される。 絶対座標系の位置ベクトルY→とハンド座標系の
位置ベクトルy→は、その間の座標変換マトリクス
をMで表わすと、次式(1)で与えられる。 Y→=M×y→ ………(1) 変換マトリクスMは、次式(2)で与えられる。
【表】
〓0 0 0 1〓 〓0 0 0 1
〓 〓0 0 0 1〓
ただし、Ci=cos αi、Si=sin αiとする。ここ
で、liは各関節の座標系の原点間の関係を示し、
i=1、………、5である。 したがつて、上記(1)式は次の(3)式で与えられ
る。 Y→=M1×M2×M3×M4×M5×y→ ………(3) ただし、M1は多関節アームの基端から1本目
の腕の局所座標系を絶対座標系X、Y、Zに変換
するための座標変換マトリクスであり、M2は2
本目の腕の局所座標系を1本目の腕の局所座標系
に変換するための座標変換マトリクスであり、
M3は3本目の腕の局所座標系を2本目の腕の局
所座標系に変換するための座標変換マトリクスで
あり、M4は4本目の腕の局所座標系を3本目の
腕の局所座標系に変換するための座標変換マトリ
クスであり、M5は5本目の腕の局所座標系を4
本目の腕の局所座標系に変換するための座標変換
マトリクスである。 一方、ハンド座標系の原点は、第2図に示すベ
クトルP→(Px、Py、Pz)の点に位置している。
そして、絶対座標系の各軸単位ベクトルをi、
j、kとし、ハンド座標系の各軸単位ベクトルを
i′、j′、k′とすると、第2図におけるベクトルA→
、
B→およびP→は次式(4)で与えられる。 A→=Xi+Yj+Zk B→=xi′+yj′+zk′ P→=Pxi+Pyj+Pzk ………(4) A→=B→+P→とするとき、絶対座標系(X→、Y
→、
Z→)とハンド座標系(x→、y→、z→)の相互関係
は、次式(5)および(6)で与えられる。 x y z i=i・i′ i・j′ i・k′ 0 j・i′ j・j′ j・k′ 0 k・j′ k・j′ k・k′ 0 P′x P′y P′z 1x y z 1 ………(6) ただし、i・j′は、ベクトルiとベクトルj′の
内積を意味する。 これらのことから、以下の()〜()のこ
とがわかる。 () まず、(2)式からMはそれぞれの関節角α1、
α2、α3、α4、α5の関数であるが、それぞれの腕
についての変換マトリクスMi(i=1、………
5)は、その軸の関節角αiだけの関数であるこ
とがわかる。 () 次に、(5)式にx=0、y=0、=0を代入
すると、Px、PyおよびPzはハンド座標系の原
点位置を示していることがわかる。 () さらに、(5)式にハンド座標系の各軸方向の
単位ベクトルを代入すると、Mのブロツクマト
リクスm(たとえば、(5)式の点線で囲んだ部分)
は、座標系の姿勢情報(方向余弦)を持つてい
ることがわかる。 また、この変換マトリクスMは、このまま6自
由度に拡張できる。 エンドエフエクタの位置・姿勢を実現するのは
各自由度の回転角であるため、絶対座標系から各
軸のα座標系への変換が必要である。6自由度ロ
ボツトのエンドエフエクタの姿勢位置ベクトル
(X→)は、位置情報をx、y、zとし、姿勢情報
(5自由度でのφおよびθに相当する)をnx、
ny、nzとすると X→=x y z nx ny nz で表わすことができる。また、6自由度の各軸回
転角度ベクトルはまた α→=α1 α2 α3 α4 α5 α6 で表わされる。したがつて、前記位置情報および
姿勢情報はそれぞれ(7)式で表わされる。 x=f1(α1、…α6) y=f2(α1、…α6) z=f3(α1、…α6) nx=f4(α1、…α6) ny=f5(α1、…α6) nz=f6(α1、…α6) ………(7) この(7)式を要約すれば(8)式が得られる。 X→=F(α→) ………(8) この(8)式はαについての方程式であり、絶対座
標系の姿勢位置ベクトルX→と各関節角ベクトルα→
とは、非線形の関係が存在する。このようなX→→
α→の直接変換は一般に複雑である。 そこで、この発明では上記(8)式について微小区
間△X→および△α→に限定すれば、線形で取扱い得
ることに着目し、ヤコビアンJ(α→)を利用する。
なお、このヤコビアン(Jacobian)は、たとえ
ば、IEEE TRANSACTIONS ON MAN−
MACHINE SYSTEMS、VOL.MMS−10、No.
2、JUNE1969のDaniel E.Whitneyによる
“Resolved Motion Rate Control of
Manipulators and Human Prostheses”という
記事でよく知られている。このヤコビアンは、次
式(9)で表わされる。 また、 △X→=J(α→)・△α→ ………(10) であるから、連立方程式を解けば、 △α→=[J(α→)]-1・△X→ ………(11) が成立する。この発明の実施例では、(10)および(11)
式を利用して、直角座標系からα系への座標変換
を行なう。上記2式は微小区間についてのもので
あり、したがつてそのための演算は、少なくとも
サーボレートで行なう必要がある。 そこで、この発明では、上記のようなアルゴリ
ズムを演算回路で実現せんとするものである。 前述の(3)式に戻つて、Y→をα1ないしα6で偏微分
すると、(12)式が得られる。 ∂Y/∂α1=M1′×M2×M3×M4×M5×M6×y→ ∂Y/∂α2=M1×M2′×M3×M4×M5×M6×y→ 〓 ∂Y/∂α6=M1×M2×M3×M4×M5×M6′×y→ ………(12) 変換マトリクスを微分するということはその中
の各要素を微分することであり、したがつて上記
(12)式の∂Y→/∂α1は、(5)式を用いて次の(13)式
で表わされる。 前述の(9)式と対応すると、 また、∂f4/∂α1、∂f5/∂α1および∂f6/∂α1
は、
上記ブロツクマトリクス∂m/∂α1の中から適当
な3つを選択する。(12)式の残りのものについても
(13)および(14)式と同様に処理できる。この
ようにして∂M/∂αi(i=1、2、………、6)を 計算することによつてヤコビアンJ(α→)の各々
の要素が求まる。このようにして求めた要素を、
前述の(10)式に代入することによつて、微小区間で
の座標変換が達成される。 ところで、(9)式で示されるようなヤコビアンマ
トリクスの各要素は、(12)式で示されるような演算
式によつて求めることができる。ここで(12)式を見
ると、ヤコビアンマトリクスの各要素は、多関節
アームの各軸ごとの座標変換マトリクスMjとそ
の微分マトリクスMj′との規則的な組合せ演算に
よつて達成されることがわかる。このような規則
的なマトリクスの組合せ演算は、簡単な構成のハ
ード回路によつて高速に演算することが可能であ
る。そのため、この発明では、ヤコビアンマトリ
クスの各要素の演算については、マイクロコンピ
ユータやマイクロプロセツサとは別のすなわち専
用のハード回路で演算し、マイクロコンピユータ
ないしマイクロプロセツサはその求めた要素を代
入して、最終的に座標変換を行なうようにする。
したがつて、マイクロプロセツサないしマイクロ
コンピユータにおいて、座標変換のために必要な
処理が非常に少なくなる。したがつて、高速の素
子を用いる必要がないばかりか、マイクロコンピ
ユータやマイクロプロセサのCPUに対して別の
機能を付加することができる。従来のものでは、
座標変換のための演算時間が非常に長かつたの
で、CPUの処理速度が高速でなければ、あまり
細かく内分補間することができなかつた。また、
他の機能を付加しようとすれば補間点の演算時間
を制限しなければならずそのためには補間間隔を
大きくすることが考えられたが、軌跡の正確さに
欠けるという欠点があつた。これに対して、この
発明のように座標変換のために必要な演算要素を
別の演算回路で行なうようにすれば、マイクロプ
ロセサやマイクロコンピユータに高速のものが必
要ではなくなり、あるいは他の機能を付加するこ
とが簡単にできる。 さらに、このような座標変換の方法によれば、
多関節ロボツトの自由度の増減に比較的容易に対
処できる。たとえばエンドエフエクタの種類によ
つて要求される自由度は異なる場合があるが、こ
のような場合でもこの発明の装置によれば、マイ
クロコンピユータなどのソフトウエアを多少修正
するだけでよいので、汎用性が増強されることに
なる。 第4図はこの発明の概念を説明するためのブロ
ツク図である。マイクロプロセサ1は演算回路2
に接続される。マイクロプロセサ1から、演算回
路2に、前述の(12)式の各腕ごとの変換マトリクス
M1〜M6およびM1′〜M6′が与えられ、演算回路
2では、この(12)式に基づいて演算を行なう。演算
回路2は、バツフアレジスタB1〜B12およびb1〜
b11を含み、乗算器MP1〜MP4によつて、これら
バツフアレジスタにストアされたデータが乗算さ
れる。乗算器MP1はバツフアレジスタB5の内容
とバツフアレジスタB6の内容とを乗算し、その
結果をバツフアレジスB6に再びロードする。乗
算器MP2はバツフアレジスタB6の内容とバツフ
アレジスタb6の内容とを乗算し、その結果をバツ
フアレジスタb6にロードする。乗算器MP3はバツ
フアレジスタB7の内容とバツフアレジスタB8の
内容とを乗算し、その結果を再びバツフアレジス
タB7にロードする。そして乗算器MP4はバツフ
アレジスタB7の内容とバツフアレジスタb7の内
容とを乗算し、その結果をバツフアレジスタb6に
ロードする。この演算回路2においては、2つの
演算過程を含み、その1つはデータの流れが第4
図における右方向であり、他の過程は逆方向のデ
ータの流れを有する。そして、それぞれの演算動
作および或るバツフアレジスタから他のバツフア
レジスタへのデータのシフトは、所定の1ユニツ
トタイムごとに行なわれる。バツフアレジスタ
B6およびB7は、バツフアレジスタB5からのデー
タを受け、バツフアレジスタB6はさらにバツフ
アレジスタB8からのデータを受ける。バツフア
レジスタB1〜B12とそれらに関連する乗算器MP1
およびMP3とが(13)式の変換マトリクスM1〜
M6の演算のために用いられ、バツフアレジスタ
b1〜b11と乗算器MP2およびMP4とが(13)式に
おける微分され変換マトリクスM1′〜M6′の演算
のために利用される。 マイクロプロセサ1からのデータの入力が完了
した状態では、バツフアレジスタB1,B2,B3,
B4,B5,B6およびB7に、それぞれ、変換マトリ
クスM1,M2,M3,M4,M5,M5およびM6がロ
ードされ、バツフアレジスタb1,b2,b3,b4,
b5,b6に、それぞれ、微分された変換マトリクス
M1′,M2′,M3′,M4′,M5′,M6′がロードされて
いる。次のユニツトタイム間にバツフアレジスタ
B5にロードされた変換マトリクスM5とバツフア
レジスタB6にロードされた変換マトリクスM6と
が乗算器MP1で乗算され、同時にバツフアレジ
スタb5にロードされている微分された変換マトリ
クスM5′とバツフアレジスタB5にロードされてい
る変換マトリクスM6とが乗算器MP2によつて乗
算され、その結果M5×M6およびM5′×M6が、そ
れぞれ、バツフアレジスタB6およびb5にロード
される。また、この間に、各バツフアレジスタに
ロードされている変換マトリクス(微分されたも
のも含む)は、次の乗算に備えて、第4図の右方
向へ1ブロツクシフトされている。5ユニツトタ
イム間この操作を繰返し、バツフアレジスタB1
〜B5およびb1〜b5はブランクとなる。そして、
バツフアレジスタB7〜B12にそれぞれ変換マトリ
クスM1〜M6がロードされ、バツフアレジスタB6
にはすべての変換マトリクスの乗算結果すなわち
M1×M2×M3×M4×M5×M6がロードされ、バ
ツフアレジスタb11,b10,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の演算過程が
終了する。 次の演算過程の流れは第4図の左方向であり、
乗算器MP3およびMP4によつて処理される。先
の演算過程で第4図の右側のバツフアレジスタに
移つたそれぞれのデータは、次の5ユニツトタイ
ム間にすべて、左側へ再びシフトされる。その結
果、バツフアレジスタ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′がロードされる
ことになる。 このようにして演算された(12)式の要素はバツフ
アレジスタb1からマイクロプロセサ1に順次転送
される。これらのマトリクスが各々∂M/∂α1、∂M/
∂α2、 ………、∂M/∂α6であることは前述したとおりであ る。これらのうち、たとえば∂M/∂α1について考え てみると、このマトリクスは(13)式において
[ ]で示したマトリクスである。このマトリク
スの∂Px/∂α1・∂Py/∂α1、∂Pz/∂α1等の要素
は、(14)式に よつて(9)式のヤコビアンJ(α→)の一部の要素に
対応している。∂M/∂α2、………、∂M/∂α6につい
ても 同様である。したがつて上記ロードされた6つの
マトリクス積のそれぞれから必要な要素を取出す
ことにより、(9)式のヤコビアンJ(α→)のすべて
の要素が得られる。ヤコビアンJ(α→)が得られ
れば、(11)式を用いて各関節角の変化量が得られ
る。これらの処理がマイクロプロセサ1によつて
行なわれる。 このように、ヤコビアンの各要素を計算するた
めに別の演算回路2を用いるようにすれば、演算
回路2における演算速度はマイクロプロセサ1の
ソフトウエア処理による演算速度に比べて非常に
早いので、マイクロプロセサ1の負担すべき演算
時間が少なくて済み、△X→から△α→の変換がサー
ボレートで行なえる。また、このように別のハー
ドウエア構成による演算回路を設けるようにすれ
ば、自由度の増減に対して容易に対処できる。な
ぜならば、自由度の増減に対処するにはハードウ
エア回路を増減するだけでよいからである。 なお、バツフアレジスタB1から得られるデー
タM1×M2×M3×M4×M5×M6は、前(1)および
(3)式の変換マトリクスであり、CPUはこのデー
タを用いて、ハンド座標系から絶対座標系への変
換も行なうことができる。 第5図はこの発明の好ましい実施例の概念を説
明するブロツク図である。この第5図の回路は、
第4図回路よりも演算時間を短縮することができ
る。たとえばこの第5図回路によれば、同じよう
にヤコビアンマトリクスの各要素を演算するにつ
いて、第4図回路に比べて、回路規模を減少する
ことができる。なぜならば、データ転送数を大幅
に減らすことができるからである。この第5図に
示す演算回路2はバツフアレジスタB1〜B7およ
びb1〜b6を含み、マイクロプロセサ1(第4図)
はバツフアレジスタB1とb1とに結合される。乗
算回路MP1は、バツフアレジスタB5の内容とバ
ツフアレジスタB6の内容とを乗算しその結果を
バツフアレジスタB6に再びロードするとともに、
バツフアレジスタB1の内容とバツフアレジスタ
B7の内容とを乗算しその結果を再びバツフアレ
ジスタB7にロードすることができる。同じよう
に、乗算回路MP2は、バツフアレジスタB6の内
容とバツフアレジスタb5の内容とを乗算してその
結果をバツフアレジスタb6にロードするととも
に、バツフアレジスタB7の内容とバツフアレジ
スタb1の内容とを乗算し、その結果を同じくバツ
フアレジスタb6にロードすることができる。 マイクロプロセサ(図示せず)からのデータ入
力が完了した状態では、バツフアレジスタB1,
B2,B3,B4,B5,B6およびB7には、それぞれ、
(12)式の変換マトリクス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
を
求め、さらに(11)式を用いて各関節角の変化量を求
める。 上記バツフアレジスタB7に得られたデータM1
×M2×M3×M4×M5×M6を用いてハンド座標系
から絶対座標系への変換を行ない得ることは前述
のとおりである。 この発明の好ましい実施例では、第5図回路に
従つたハードウエア回路をCPUとは別の集積回
路で構成する。 第6図はこの発明の実施例に用いられる集積回
路の一例を示すブロツク図である。この集積回路
3は、後に詳細に説明するがその中には8ビツト
レジスタが16個配置されたシフトレジスタであ
る。そして、この集積回路3はマイクロプロセサ
ないしCPUに接続され、入力バスBiに接続され
た入力ポートI0〜I7を有し、出力バスB0に接続さ
れた出力ポートO0〜O7を有する。マイクロプロ
セサないしCPUからのデータは入力バスBiの入
力ポートI0〜I7によつて与えられ、CPUへは出力
バスB0の出力ポートO0〜O7を通してデータが与
えられる。他の集積回路からのデータはデータバ
スD1またはD2によつてそれぞれに対応する入
力ポートD10〜D17またはD20〜D27に与え
られる。他の集積回路へのデータ出力はDout(D0
〜D7)から得られる。データの選択はCPUから
与えられる信号D1/D2によつて行なわれる。集
積回路3は、さらに、その中に含まれるシフトレ
ジスタのためのシフトクロツクCKおよびその他
の信号、、R/W、およびを
受ける。 第7図はこの集積回路の詳細を示すブロツク図
である。集積回路3は16の8ビツトレジスタ30
0〜315を含み、各々のレジスタは8つのフリ
ツプフロツプからなる。たとえばレジスタ300
はフリツプフロツプ300a〜300hからな
り、レジスタ315はフリツプフロツプ315a
〜315hからなる。レジスタ300の各々のフ
リツプフロツプ300a〜300hは、各々のデ
ータセレクタ316a〜316hからのデータ出
力を受け、これらフリツプフロツプ300a〜3
00hの出力は、ナンドゲート317a〜317
hのそれぞれの1入力に与えられるとともに、次
段のレジスタ301を構成するそれぞれのフリツ
プフロツプ301a〜301hに与えられる。そ
して、レジスタ301の内容は順次レジスタ30
2,………314,315に送られる。このよう
にしてレジスタ300〜315によつてシフトレ
ジスタが構成される。レジスタ315の各々のフ
リツプフロツプ315a〜315hの出力は、対
応のデータセレクタ316a〜316hに与えら
れるとともに、データ出力Doutの各ビツトD0〜
D7となる。データセレクタ316a〜316h
には、それぞれ、データ入力D1およびD2すな
わちD10〜D17およびD20〜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」でそのシフト動作が指令される。このよう
にシフトさせる必要があるのは、データ書込みお
よび読出しの両方においてであり、レジスタ30
0からしかデータ書込みやデータ読出しができな
い構成であるからである。 レジスタ300のフリツプフロツプ300a〜
300hの出力を受けるナンドゲート317a〜
317bのそれぞれの残余の2入力には、コント
ローラ318を通して、信号の反転と信号
R/Wとの論理積CS・R/Wおよび信号の
反転STBが与えられる。信号はストロープ
信号である。また、レジスタ300〜315を構
成するフリツプフロツプ300a〜315hに
は、信号が与えられ、この信号はクリ
ア信号である。レジスタ301〜315のフリツ
プフロツプ301a〜315hには、クロツク
CKが与えられる。レジスタ300のフリツプフ
ロツプ300a〜300hには、クロツクCKに
代えて、コントローラ318を通して、クロツク
CKとストローブ信号の反転とチツプセレク
ト信号の反転との論理積すなわちCK・STB・
CSが与えられる。 ナンドゲート317a〜317hの出力は出力
バスB0の各ビツトB0〜B7となる。 第7図に示す集積回路3では、レジスタ300
〜315間の16回のシフトすなわちローテーシヨ
ン動作が、先の第5図に示すバツフアレジスタ
B0〜B7およびb0〜b6間の1シフトに相当する。
そして、信号の「0」で当該チツプが能動化
され、信号R/Wが「0」のときデータセレクタ
316a〜316hを通して、信号D1/D2に依
つて、データ入力D1(D10〜D17)またはD
2(D20〜D27)が、レジスタ300に与えら
れる。また、信号R/Wが「1」のとき、ナンド
ゲート317a〜317hが有効化され、レジス
タ300のフリツプフロツプ300a〜300h
から、出力バスB0〜B7へデータが読出される。
なお、信号D1/D2は第5図に示す概念図におけ
るデータシフト方向を表わす。 レジスタ300〜315間のデータのローテー
シヨンは信号に応答して行なわれ、信号
CLAに応答してすべてのレジスタ300〜31
5がクリアされる。 第8図は第6図および第7図に示す集積回路3
を用いて第5図回路を実現するための構成の一例
を示すブロツク図である。第5図回路と機能的に
対応する部分には同じ参照符号を付している。第
8図において、バツフアレジスタB1〜B7および
b1〜b6が、それぞれ、第5図の対応の参照符号の
ものに相当する。それぞれのバツフアレジスタは
第7図に示す集積回路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もま
た他のバツフアレジスタと同じように第7図に示
す集積回路の組合わせからなり16ビツトのシフト
レジスタである。 シフトレジスタB1〜B7,b1〜b6,R1およびR2
には、入力バスBiおよび出力バスB0が連結され
る。そして、レジスタB1およびb1には後述の第
9図回路からのシフトタイミング信号Vが与えら
れ、レジスタB5およびb5には、シフトタイミン
グ信号Uが与えられ、一時記憶レジスタすなわち
バツフアレジスタR1およびR2にはシフトタイミ
ング信号Wが与えられ、他のレジスタB2〜B4お
よびb2〜b4には、ロツクツ信号φが与えられる。 第9図は第8図に示す演算回路に接続されるべ
きマイクロプロセサに関連する回路を示すブロツ
ク図である。第9図において、発振器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は第7
図に示すレジスタ300〜315間でデータが1
循環したことを検出する。シフト方向検出回路1
05は、5進カウンタを含み、第5図、第8図に
示すバツアレジスタ間において左方向または右方
向に5回シフト動作が行なわれるごとに出力を出
す。このシフト方向検出回路105の出力はフリ
ツプフロツプ106に与えられ、このフリツプフ
ロツプ106はたとえばトグルフリツプフロツプ
からなり、回路105からの信号が与えられるご
とにその出力Qを反転する。このフリツプフロツ
プ106の出力はデータ選択信号D1/D2とな
る。フリツプフロツプ107は、たとえばJ−K
フリツプフロツプからなり、シフト動作をさせる
かまたは乗算動作をさせるかを区別するもので、
出力が「0」のときバツフアレジスタ間のデー
タシフト動作を、出力が「1」のとき乗算動作
を行なわせる。 シフト回数検出回路104の出力は、フリツプ
フロツプ106の出力とともにアンドゲート10
8の入力に与えられる。アンドゲート108の出
力はフリツプフロツプ109のリセツト入力に与
えられる。フリツプフロツプ109はCPU1か
らのスタート信号STARTによつてセツトされ、
その出力がエンド信号END(または割込信号)
としてCPU1に与えられる。 フリツプフロツプ107の出力は4つのアン
ドゲート110,111,112および113の
それぞれの一方入力として与えられ、これらアン
ドゲートの他方入力にはそれぞれシフトタイミン
グ発生回路102からの信号U,V,Wおよびφ
が与えられる。したがつてフリツプフロツプ10
7の出力が「1」のとき各バツフアレジスタ内
のシフトレジスタがシフトされてそのために乗算
動作されることになるのは前述のとおりである。 CPU1はレジスタ呼出タイミング発生回路1
14にアドレスデコーダ(図示せず)からの信号
を与える。このレジスタ呼出タイミング発生回路
114は第8図の各レジスタ内のアドレスを指定
するためのものであり、アドレス入力に対応して
初期値をロードすべきレジスタを指定し、第7図
に示す各レジスタ間のデータのシフト動作すなわ
ちローテーシヨンを行なわせるための信号
を出力する。この信号が「0」のとき各レ
ジスタがシフト動作され、「1」のときはシフト
動作が行なわれない。 CPU1に含まれるアドレスデコーダからの指
定信号は、このレジスタ呼出タイミング発生回路
114を通してオアゲート115の一方入力に与
えられ、このオアゲート115の他方入力にはア
ンドゲート113の出力が与えられる。オアゲー
ト115の出力はまたオアゲート116,117
および118の一方入力として与えられ、これら
オアゲートにはそれぞれアンドゲート110,1
11および112の出力が与えられる。このよう
にして、オアゲート115,116,117およ
び118の出力が、シフトタイミング信号φ,
U,VおよびWとなる。 また、CPU1からは、信号,,お
よびR/Wが出力される。 ここで、第10図を参照してシフトタイミング
発生回路102について詳細に説明する。まず初
期状態としてフリツプフロツプ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と同じように、与え
られるカウント入力がそのまま出力される端子と
所定のカウントした後信号を出力するカウントア
ツプ出力端子とを含む。クロツクφがカウンタ1
28に1個入ると、したがつてそのときオアゲー
ト138に出力が出る。このオアゲート138の
出力がシフトタイミング信号Vとなる。そして、
カウンタ128に4つのブロツクφが与えられる
と、このカウンタ128からカウントアツプ信号
が出力されてそれが4進カウンタ129に入力さ
れる。したがつて、4進カウンタ129からオア
ゲート137を通して、シフトタイミング信号U
が出力される。したがつて、或る場合には、この
シフトタイミング信号Uは4つのシフトタイミン
グ信号Vごとに1つ出力されることになる。カウ
ンタ129がカウントアツプするとすなわちアン
ドゲート125から16個のクロツクφが出力され
ると、フリツプフロツプ130がセツトされ、そ
の出力Qが「1」となる。このフリツプフロツプ
130の出力QがレジスタR1,R2(第8図)への
データロード信号すなわちシフトタイミング信号
Wである。 フリツプフロツプ130の出力Qが「1」とな
り、出力が「0」となることによつて、アンド
ゲート126および127が開かれる。しかしな
がら、アンドゲート127には、フリツプフロツ
プ133の出力が「1」であるので、このとき
はアンドゲート124からの出力φは与えられな
い。他方アンドゲート125はこのフリツプフロ
ツプ130の出力の「0」によつて閉じられ
る。したがつて、この状態ではアンドゲート12
1からのクロツクφはアンドゲート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が開いている。したがつて、アンドゲー
ト121からのクロツクφがカウンタ134に与
えられる。カウンタ134にクロツクが与えられ
るごとに、オアゲート138を通してシフトタイ
ミング信号Vが出力される。カウンタ134は13
進カウンタであり、クロツクφを13カウントする
ごとにカウントアツプ出力を導出する。このカウ
ンタ134からのカウントアツプ出力がカウンタ
135に与えられるとともに、フリツプフロツプ
133のリセツト入力に与えられる。カウンタ1
35は4進カウンタであり、そのカウントアツプ
出力はフリツプフロツプ136のセツト入力に与
えられる。このフリツプフロツプ136のリセツ
ト入力にはCPUからのリセツト信号が与えられ
る。フリツプフロツプ136の出力Qが、第9図
の信号Sである。フリツプフロツプ136がリセ
ツトされると、その出力が「1」となり、アン
ドゲート121が再び開かれて、先の動作が繰返
される。 ここで、第11図〜第13図を参照して、シフ
トタイミング発生回路102からのシフトタイミ
ング信号U/VおよびWが持つ意味についてやや
詳しく説明する。一般に第11図に示すようなマ
トリクスの乗算は、下記の式に従つて行なわれ
る。 w44=u41・v14 +u42・v24+u43・v33+u44・v44 w43=u41・v13 +u42・v23+u43・v33+u44・w43 〓 w11=u11・v11 +u12・v21+u13・v31+u14・w41 ところで、第8図に示すような集積回路では、
第11図および前式に示すマトリクスの乗算を一
斉にすることはできないので、たとえばまず
u44・v44を行ない、次にu43→u44、u42→u43、……
…v34→v44、v24→v34、………のようにデータを
シフトして行なう。すなわち、この実施例では、
第11図に示すu44の位置とv44の位置との乗算を
行ないこのそれぞれの位置に必要なデータをシフ
トないしローテートさせるのである。 このようなマトリクスにおけるU,VおよびW
のデータのローテートないしシフト動作は、シフ
トタイミング発生回路(第9図)からのそれぞれ
対応のシフトタイミング信号ごとに1回行なわれ
る。そして、上記1つの演算が終わると、データ
は順次シフトされるが、その順序は第12図に示
す。Uについては、1つのシフトタイミング信号
Uごとに一列ずつシフトする。したがつて、たと
えば第11図の例で、u43の位置にあるデータを
u44の位置にシフトするためには、1つのシフト
タイミング信号Uを与えるだけでよい。このと
き、u42は同時にu43の位置に移されるので、次に
u42のデータをu44の位置に移すためには、再度1
つのタイミング信号Uを加えるだけでよい。すな
わち、Uについては、それぞれのデータをu44の
位置にもたらすためには、それぞれ1つのシフト
タイミング信号Uを加えるだけでよい。 Vについては、4つのシフトタイミング信号V
が必要である。たとえば、第11図の例におい
て、v34の位置にあるデータをv44の位置にシフト
するためには、4つのシフトタイミング信号Vが
必要である。 また、Wについては、1つのシフトタイミング
信号で1つずつシフトされる。したがつて、第1
図の例でいえば、w44の位置にあるデータをw11
の位置に移すためには、1つのシフトタイミング
信号Wが加えられればよい。 簡単に言うと、上記式のw44については、シフ
トタイミング信号Wが1回出力され、続いてシフ
トタイミング信号Uが1回そしてVが4回与えら
れると1つ項たとえばu44・v44が行なわれるの
で、このw44のすべての項の演算のためにはこの
ことを4回繰返せばよい。そして、次のw43の演
算のために、シフトタイミング信号Uを12回出力
するとともにVを1回シフトしてそのw43の演算
のための初期状態を設定する。続いてw43の演算
のためにw44の演算と同じようにW=1、U=1
およびV=4を4回繰返せばよい。以下同様であ
る。 このことが第13図のタイミングチヤートに表
わされている。 そして、第13図のシフトタイミング発生回路
は、第13図に従つて、それぞれのタイミング信
号U,VおよびWを出力されるように構成されて
いる。すなわち、カウンタ128によつてタイミ
ング信号Vを、カウンタ129によつてタイミン
グ信号Uを、そしてフリツプフロツプ130によ
つてタイミング信号Wを出力する。その後の12個
のタイミング信号Uはカウンタ131から出力さ
れる。 第14図は第8図および第9図に示す実施例の
動作を説明するためのフロー図である。ここで、
第14図を参照して、この実施例の動作について
説明する。まず。CPU1(第9図)は、動作の
最初において、初期設定を行なう。このとき、必
要に応じて信号を出力し、第8図に示す各
レジスタをクリアする。そして、ステツプ201
において、このCPU1に含まれるカウンタ(図
示せず)の値nを1にセツトする。なお、この値
nは0〜15をとり得る。続くステツプ202にお
いて、CPU1は第7図に示すレジスタ300〜
315を、カウンタの値nに従つて指定する。こ
れはこのCPU1からレジスタ呼出タイミング発
生回路114にレジスタ指定アドレスを出力する
ことによつて行なわれ得る。したがつて、このス
テツプ202では、レジスタ呼出タイミング発生
回路114(第9図)から、信号が出力さ
れ、該当のレジスタが選択される。すなわち、第
8図に示す各レジスタB1〜B7およびb1〜b6のそ
れぞれn番目のレジスタが指定される。続くステ
ツプ203において、前(12)式の変換マトリクス
M1〜M6およびM1′〜M6′をそれぞれの対応のレ
ジスタB1〜B7およびb1〜b6(第8図)にストアす
る。すなわち、まずそれぞれのレジスタのn番目
のレジスタ(第7図)に、Mk、Mk′(k=1〜
6)の1つの要素をストアする。したがつて、こ
のときは、チツプセレクト信号によつて第8
図のそれぞれのレジスタB1〜B6およびb1〜b6が
順次指定される。このようにして、それぞれのレ
ジスタB1〜B7およびb1〜b6のそれぞれのn番目
のレジスタにそれぞれ対応の変換マトリクスの1
つの要素がストアされる。そして、続くステツプ
204において、カウンタの値が16(これは第7
図に示すレジスタの数に対応する)であるかどう
かを判断する。そして、n=16でなければ、ステ
ツプ205においてそのカウンタをインクリメン
トし、再び同じことを繰返す。したがつて、ステ
ツプ204において、n=16であるということ
は、すべてのレジスタB1〜B7およびb1〜b6のす
べてのレジスタ300〜315(第7図)にそれ
ぞれの変換マトリクスM1〜M6およびM1′〜
M6′のすべての要素がストアされたことを意味す
る。 続いて、CPU1は演算スタート指令START
を出力する。応じて、フリツプフロツプ109が
セツトされるとともにフリツプフロツプ107が
リセツトされ、このフリツプフロツプ107の出
力が「1」となる。したがつて、アンドゲート
110〜113が開き、シフトタイミング発生回
路102からのシフトタイミング信号U,Vおよ
びWおよびクロツクφが出力可能となる。すなわ
ち、この状態で乗算が行なわれる。 乗算は、シフトタイミング発生回路102か
ら、第13図で示すようなタイミングで各々シフ
トタイミング信号が発生し第12図に従つてシフ
ト動作が行なわれることによつて、第11図に従
つてマトリクスの乗算が行なわれる。この間に、
シフト方向検出回路105およびデータ選択フリ
ツプフロツプ106によつて、第8図に示す回路
におけるデータ転送(シフト)方向が制御され
る。すなわち、第5図回路に示すデータシフト方
向がこのシフト方向検出回路105およびフリツ
プフロツプ106で制御される。データシフトを
5回繰返すことに応じてフリツプフロツプ106
の出力がデータ選択信号D1/D2として導出され
るが、このときシフト回数検出回路104からは
まだ信号が出されていないので、アンドゲート1
08は出力を出さない。 前式のw44,w43,………のそれぞれの演算が
終わるごとにシフトタイミング信号発生回路10
2からシフト回数検出回路104に信号が与えら
れる。シフト回数検出回路104は、前述のよう
に16進カウンタを含むので、シフトタイミング発
生回路102から16個の信号が得られたとき、す
なわち前(12)式の演算がすべて行なわれたとき、
「1」の信号を出す。このときフリツプフロツプ
106の出力もまた「1」であり、アンドゲート
108から「1」の信号がフリツプフロツプ10
9のリセツト信号として与えられる。したがつ
て、このフリツプフロツプ109からの出力が
「1」となり、それがCPU1に与えられる。CPU
1では、このフリツプフロツプ109の出力の
状態に応じて、ステツプ207において、演算終
了がどうかを判断する。 上述のようにして演算が終了すると、ステツプ
208,209,210,211および212に
おいて、先のステツプ201,202,203,
204および205と同じようにして、第8図に
示す各々のレジスタB1〜B7およびb1〜b6のそれ
ぞれのレジスタ300〜315(第7図)からデ
ータを読込む。このとき、データの書込みと異な
り、CPU1からの信号R/Wは「0」とされる
のはもちろんである。このようにして、CPUは、
ヤコビアンの各々の要素を演算回路2から取込
み、前(11)式に基づいて各関節角の変化量を求め
る。すなわち、CPUは第15図に示すように、
直角座標系での変化量△X→i+1=X→i+1−X→iを求
め、
次いで前述のようにして求めたヤコビアンJ(α→
i)の逆数[J(α→i)]-1と△X→i+1とを用いて関
節座
標系の変化量△α→i+1を演算する。最後に、直前
の関節系による位置△α→iと上記変化量△α→i+1と
を加算して、次の点の関節系による位置α→i+1を
得る。このようにして、直角座標系から関節座標
系への座標変換がヤコビアンを用いて行なわれ
る。 第16図はシフトタイミング発生回路の別の例
を示す回路図である。この実施例では、シフトタ
イミング発生回路102は7ビツトのカウンタ1
41を含み、このカウンタ141のカウント入力
にはクロツクφが与えられる。そして、最上位ビ
ツトAから最下位ビツトGまで7ビツトA、B、
C、D、E、FおよびGを有するバイナリカウン
タとして構成される。そして、シフトタイミング
信号U,VおよびWは、それぞれ(15)式に従つ
て導出される。 U=・・+C(・+AB) V=+C{・・AB ・(+)} W=・DE ………(15) なお、クロツクφが、それぞれのシフトタイミ
ング信号とクロツクとの同期をとるために、適当
なゲートに入れられている。この第16図のよう
なシフトタイミング発生回路を用いれば、第10
図に示すものに比べて非常に簡単な回路構成とな
る。 以上ように、この発明によれば、直角座標系と
関節座標系との間の座標変換のために、マトリク
スの各々の要素は別のハードウエアで構成した演
算回路で演算し、CPUではその演算結果を取込
んで適当な変換式に代入するだけでよいので、
CPUが座標変換のために演算に利用される時間
が非常に短くなる。したがつて、CPUたとえば
マイクロプロセサやマイクロコンピユータとして
高速のものを用いなくても、極めて正確な座標変
換が行なわれる。したがつて従来のもののように
相当大きなエラーが出たり、同時制御可能な自由
度が制限されたりすることはなく、追随の正確性
が期待できる。また、CPUが座標変換の演算の
ために利用される時間が非常に短くなるので、
CPUに対して別の機能を付加することが簡単に
できる。しかも、演算回路は、ほとんど類似した
演算を何回も繰返すだけであり、制御すべき自由
度の増減に対しても簡単に対応することができ
る。なぜならば、演算回路で利用可能な演算機能
を単に増減するだけで、CPUのソフトウエア
(プログラム)についてはほとんど変更が不要で
あるからである。このことは、特に、関節を有す
るロボツトにおいて、エンドエフエクタの種類を
変更する際に要求される自由度が異なる場合、そ
のような自由度の変更に容易に追随できるという
極めて大きな効果である。
〓 〓0 0 0 1〓
ただし、Ci=cos αi、Si=sin αiとする。ここ
で、liは各関節の座標系の原点間の関係を示し、
i=1、………、5である。 したがつて、上記(1)式は次の(3)式で与えられ
る。 Y→=M1×M2×M3×M4×M5×y→ ………(3) ただし、M1は多関節アームの基端から1本目
の腕の局所座標系を絶対座標系X、Y、Zに変換
するための座標変換マトリクスであり、M2は2
本目の腕の局所座標系を1本目の腕の局所座標系
に変換するための座標変換マトリクスであり、
M3は3本目の腕の局所座標系を2本目の腕の局
所座標系に変換するための座標変換マトリクスで
あり、M4は4本目の腕の局所座標系を3本目の
腕の局所座標系に変換するための座標変換マトリ
クスであり、M5は5本目の腕の局所座標系を4
本目の腕の局所座標系に変換するための座標変換
マトリクスである。 一方、ハンド座標系の原点は、第2図に示すベ
クトルP→(Px、Py、Pz)の点に位置している。
そして、絶対座標系の各軸単位ベクトルをi、
j、kとし、ハンド座標系の各軸単位ベクトルを
i′、j′、k′とすると、第2図におけるベクトルA→
、
B→およびP→は次式(4)で与えられる。 A→=Xi+Yj+Zk B→=xi′+yj′+zk′ P→=Pxi+Pyj+Pzk ………(4) A→=B→+P→とするとき、絶対座標系(X→、Y
→、
Z→)とハンド座標系(x→、y→、z→)の相互関係
は、次式(5)および(6)で与えられる。 x y z i=i・i′ i・j′ i・k′ 0 j・i′ j・j′ j・k′ 0 k・j′ k・j′ k・k′ 0 P′x P′y P′z 1x y z 1 ………(6) ただし、i・j′は、ベクトルiとベクトルj′の
内積を意味する。 これらのことから、以下の()〜()のこ
とがわかる。 () まず、(2)式からMはそれぞれの関節角α1、
α2、α3、α4、α5の関数であるが、それぞれの腕
についての変換マトリクスMi(i=1、………
5)は、その軸の関節角αiだけの関数であるこ
とがわかる。 () 次に、(5)式にx=0、y=0、=0を代入
すると、Px、PyおよびPzはハンド座標系の原
点位置を示していることがわかる。 () さらに、(5)式にハンド座標系の各軸方向の
単位ベクトルを代入すると、Mのブロツクマト
リクスm(たとえば、(5)式の点線で囲んだ部分)
は、座標系の姿勢情報(方向余弦)を持つてい
ることがわかる。 また、この変換マトリクスMは、このまま6自
由度に拡張できる。 エンドエフエクタの位置・姿勢を実現するのは
各自由度の回転角であるため、絶対座標系から各
軸のα座標系への変換が必要である。6自由度ロ
ボツトのエンドエフエクタの姿勢位置ベクトル
(X→)は、位置情報をx、y、zとし、姿勢情報
(5自由度でのφおよびθに相当する)をnx、
ny、nzとすると X→=x y z nx ny nz で表わすことができる。また、6自由度の各軸回
転角度ベクトルはまた α→=α1 α2 α3 α4 α5 α6 で表わされる。したがつて、前記位置情報および
姿勢情報はそれぞれ(7)式で表わされる。 x=f1(α1、…α6) y=f2(α1、…α6) z=f3(α1、…α6) nx=f4(α1、…α6) ny=f5(α1、…α6) nz=f6(α1、…α6) ………(7) この(7)式を要約すれば(8)式が得られる。 X→=F(α→) ………(8) この(8)式はαについての方程式であり、絶対座
標系の姿勢位置ベクトルX→と各関節角ベクトルα→
とは、非線形の関係が存在する。このようなX→→
α→の直接変換は一般に複雑である。 そこで、この発明では上記(8)式について微小区
間△X→および△α→に限定すれば、線形で取扱い得
ることに着目し、ヤコビアンJ(α→)を利用する。
なお、このヤコビアン(Jacobian)は、たとえ
ば、IEEE TRANSACTIONS ON MAN−
MACHINE SYSTEMS、VOL.MMS−10、No.
2、JUNE1969のDaniel E.Whitneyによる
“Resolved Motion Rate Control of
Manipulators and Human Prostheses”という
記事でよく知られている。このヤコビアンは、次
式(9)で表わされる。 また、 △X→=J(α→)・△α→ ………(10) であるから、連立方程式を解けば、 △α→=[J(α→)]-1・△X→ ………(11) が成立する。この発明の実施例では、(10)および(11)
式を利用して、直角座標系からα系への座標変換
を行なう。上記2式は微小区間についてのもので
あり、したがつてそのための演算は、少なくとも
サーボレートで行なう必要がある。 そこで、この発明では、上記のようなアルゴリ
ズムを演算回路で実現せんとするものである。 前述の(3)式に戻つて、Y→をα1ないしα6で偏微分
すると、(12)式が得られる。 ∂Y/∂α1=M1′×M2×M3×M4×M5×M6×y→ ∂Y/∂α2=M1×M2′×M3×M4×M5×M6×y→ 〓 ∂Y/∂α6=M1×M2×M3×M4×M5×M6′×y→ ………(12) 変換マトリクスを微分するということはその中
の各要素を微分することであり、したがつて上記
(12)式の∂Y→/∂α1は、(5)式を用いて次の(13)式
で表わされる。 前述の(9)式と対応すると、 また、∂f4/∂α1、∂f5/∂α1および∂f6/∂α1
は、
上記ブロツクマトリクス∂m/∂α1の中から適当
な3つを選択する。(12)式の残りのものについても
(13)および(14)式と同様に処理できる。この
ようにして∂M/∂αi(i=1、2、………、6)を 計算することによつてヤコビアンJ(α→)の各々
の要素が求まる。このようにして求めた要素を、
前述の(10)式に代入することによつて、微小区間で
の座標変換が達成される。 ところで、(9)式で示されるようなヤコビアンマ
トリクスの各要素は、(12)式で示されるような演算
式によつて求めることができる。ここで(12)式を見
ると、ヤコビアンマトリクスの各要素は、多関節
アームの各軸ごとの座標変換マトリクスMjとそ
の微分マトリクスMj′との規則的な組合せ演算に
よつて達成されることがわかる。このような規則
的なマトリクスの組合せ演算は、簡単な構成のハ
ード回路によつて高速に演算することが可能であ
る。そのため、この発明では、ヤコビアンマトリ
クスの各要素の演算については、マイクロコンピ
ユータやマイクロプロセツサとは別のすなわち専
用のハード回路で演算し、マイクロコンピユータ
ないしマイクロプロセツサはその求めた要素を代
入して、最終的に座標変換を行なうようにする。
したがつて、マイクロプロセツサないしマイクロ
コンピユータにおいて、座標変換のために必要な
処理が非常に少なくなる。したがつて、高速の素
子を用いる必要がないばかりか、マイクロコンピ
ユータやマイクロプロセサのCPUに対して別の
機能を付加することができる。従来のものでは、
座標変換のための演算時間が非常に長かつたの
で、CPUの処理速度が高速でなければ、あまり
細かく内分補間することができなかつた。また、
他の機能を付加しようとすれば補間点の演算時間
を制限しなければならずそのためには補間間隔を
大きくすることが考えられたが、軌跡の正確さに
欠けるという欠点があつた。これに対して、この
発明のように座標変換のために必要な演算要素を
別の演算回路で行なうようにすれば、マイクロプ
ロセサやマイクロコンピユータに高速のものが必
要ではなくなり、あるいは他の機能を付加するこ
とが簡単にできる。 さらに、このような座標変換の方法によれば、
多関節ロボツトの自由度の増減に比較的容易に対
処できる。たとえばエンドエフエクタの種類によ
つて要求される自由度は異なる場合があるが、こ
のような場合でもこの発明の装置によれば、マイ
クロコンピユータなどのソフトウエアを多少修正
するだけでよいので、汎用性が増強されることに
なる。 第4図はこの発明の概念を説明するためのブロ
ツク図である。マイクロプロセサ1は演算回路2
に接続される。マイクロプロセサ1から、演算回
路2に、前述の(12)式の各腕ごとの変換マトリクス
M1〜M6およびM1′〜M6′が与えられ、演算回路
2では、この(12)式に基づいて演算を行なう。演算
回路2は、バツフアレジスタB1〜B12およびb1〜
b11を含み、乗算器MP1〜MP4によつて、これら
バツフアレジスタにストアされたデータが乗算さ
れる。乗算器MP1はバツフアレジスタB5の内容
とバツフアレジスタB6の内容とを乗算し、その
結果をバツフアレジスB6に再びロードする。乗
算器MP2はバツフアレジスタB6の内容とバツフ
アレジスタb6の内容とを乗算し、その結果をバツ
フアレジスタb6にロードする。乗算器MP3はバツ
フアレジスタB7の内容とバツフアレジスタB8の
内容とを乗算し、その結果を再びバツフアレジス
タB7にロードする。そして乗算器MP4はバツフ
アレジスタB7の内容とバツフアレジスタb7の内
容とを乗算し、その結果をバツフアレジスタb6に
ロードする。この演算回路2においては、2つの
演算過程を含み、その1つはデータの流れが第4
図における右方向であり、他の過程は逆方向のデ
ータの流れを有する。そして、それぞれの演算動
作および或るバツフアレジスタから他のバツフア
レジスタへのデータのシフトは、所定の1ユニツ
トタイムごとに行なわれる。バツフアレジスタ
B6およびB7は、バツフアレジスタB5からのデー
タを受け、バツフアレジスタB6はさらにバツフ
アレジスタB8からのデータを受ける。バツフア
レジスタB1〜B12とそれらに関連する乗算器MP1
およびMP3とが(13)式の変換マトリクスM1〜
M6の演算のために用いられ、バツフアレジスタ
b1〜b11と乗算器MP2およびMP4とが(13)式に
おける微分され変換マトリクスM1′〜M6′の演算
のために利用される。 マイクロプロセサ1からのデータの入力が完了
した状態では、バツフアレジスタB1,B2,B3,
B4,B5,B6およびB7に、それぞれ、変換マトリ
クスM1,M2,M3,M4,M5,M5およびM6がロ
ードされ、バツフアレジスタb1,b2,b3,b4,
b5,b6に、それぞれ、微分された変換マトリクス
M1′,M2′,M3′,M4′,M5′,M6′がロードされて
いる。次のユニツトタイム間にバツフアレジスタ
B5にロードされた変換マトリクスM5とバツフア
レジスタB6にロードされた変換マトリクスM6と
が乗算器MP1で乗算され、同時にバツフアレジ
スタb5にロードされている微分された変換マトリ
クスM5′とバツフアレジスタB5にロードされてい
る変換マトリクスM6とが乗算器MP2によつて乗
算され、その結果M5×M6およびM5′×M6が、そ
れぞれ、バツフアレジスタB6およびb5にロード
される。また、この間に、各バツフアレジスタに
ロードされている変換マトリクス(微分されたも
のも含む)は、次の乗算に備えて、第4図の右方
向へ1ブロツクシフトされている。5ユニツトタ
イム間この操作を繰返し、バツフアレジスタB1
〜B5およびb1〜b5はブランクとなる。そして、
バツフアレジスタB7〜B12にそれぞれ変換マトリ
クスM1〜M6がロードされ、バツフアレジスタB6
にはすべての変換マトリクスの乗算結果すなわち
M1×M2×M3×M4×M5×M6がロードされ、バ
ツフアレジスタb11,b10,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の演算過程が
終了する。 次の演算過程の流れは第4図の左方向であり、
乗算器MP3およびMP4によつて処理される。先
の演算過程で第4図の右側のバツフアレジスタに
移つたそれぞれのデータは、次の5ユニツトタイ
ム間にすべて、左側へ再びシフトされる。その結
果、バツフアレジスタ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′がロードされる
ことになる。 このようにして演算された(12)式の要素はバツフ
アレジスタb1からマイクロプロセサ1に順次転送
される。これらのマトリクスが各々∂M/∂α1、∂M/
∂α2、 ………、∂M/∂α6であることは前述したとおりであ る。これらのうち、たとえば∂M/∂α1について考え てみると、このマトリクスは(13)式において
[ ]で示したマトリクスである。このマトリク
スの∂Px/∂α1・∂Py/∂α1、∂Pz/∂α1等の要素
は、(14)式に よつて(9)式のヤコビアンJ(α→)の一部の要素に
対応している。∂M/∂α2、………、∂M/∂α6につい
ても 同様である。したがつて上記ロードされた6つの
マトリクス積のそれぞれから必要な要素を取出す
ことにより、(9)式のヤコビアンJ(α→)のすべて
の要素が得られる。ヤコビアンJ(α→)が得られ
れば、(11)式を用いて各関節角の変化量が得られ
る。これらの処理がマイクロプロセサ1によつて
行なわれる。 このように、ヤコビアンの各要素を計算するた
めに別の演算回路2を用いるようにすれば、演算
回路2における演算速度はマイクロプロセサ1の
ソフトウエア処理による演算速度に比べて非常に
早いので、マイクロプロセサ1の負担すべき演算
時間が少なくて済み、△X→から△α→の変換がサー
ボレートで行なえる。また、このように別のハー
ドウエア構成による演算回路を設けるようにすれ
ば、自由度の増減に対して容易に対処できる。な
ぜならば、自由度の増減に対処するにはハードウ
エア回路を増減するだけでよいからである。 なお、バツフアレジスタB1から得られるデー
タM1×M2×M3×M4×M5×M6は、前(1)および
(3)式の変換マトリクスであり、CPUはこのデー
タを用いて、ハンド座標系から絶対座標系への変
換も行なうことができる。 第5図はこの発明の好ましい実施例の概念を説
明するブロツク図である。この第5図の回路は、
第4図回路よりも演算時間を短縮することができ
る。たとえばこの第5図回路によれば、同じよう
にヤコビアンマトリクスの各要素を演算するにつ
いて、第4図回路に比べて、回路規模を減少する
ことができる。なぜならば、データ転送数を大幅
に減らすことができるからである。この第5図に
示す演算回路2はバツフアレジスタB1〜B7およ
びb1〜b6を含み、マイクロプロセサ1(第4図)
はバツフアレジスタB1とb1とに結合される。乗
算回路MP1は、バツフアレジスタB5の内容とバ
ツフアレジスタB6の内容とを乗算しその結果を
バツフアレジスタB6に再びロードするとともに、
バツフアレジスタB1の内容とバツフアレジスタ
B7の内容とを乗算しその結果を再びバツフアレ
ジスタB7にロードすることができる。同じよう
に、乗算回路MP2は、バツフアレジスタB6の内
容とバツフアレジスタb5の内容とを乗算してその
結果をバツフアレジスタb6にロードするととも
に、バツフアレジスタB7の内容とバツフアレジ
スタb1の内容とを乗算し、その結果を同じくバツ
フアレジスタb6にロードすることができる。 マイクロプロセサ(図示せず)からのデータ入
力が完了した状態では、バツフアレジスタB1,
B2,B3,B4,B5,B6およびB7には、それぞれ、
(12)式の変換マトリクス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
を
求め、さらに(11)式を用いて各関節角の変化量を求
める。 上記バツフアレジスタB7に得られたデータM1
×M2×M3×M4×M5×M6を用いてハンド座標系
から絶対座標系への変換を行ない得ることは前述
のとおりである。 この発明の好ましい実施例では、第5図回路に
従つたハードウエア回路をCPUとは別の集積回
路で構成する。 第6図はこの発明の実施例に用いられる集積回
路の一例を示すブロツク図である。この集積回路
3は、後に詳細に説明するがその中には8ビツト
レジスタが16個配置されたシフトレジスタであ
る。そして、この集積回路3はマイクロプロセサ
ないしCPUに接続され、入力バスBiに接続され
た入力ポートI0〜I7を有し、出力バスB0に接続さ
れた出力ポートO0〜O7を有する。マイクロプロ
セサないしCPUからのデータは入力バスBiの入
力ポートI0〜I7によつて与えられ、CPUへは出力
バスB0の出力ポートO0〜O7を通してデータが与
えられる。他の集積回路からのデータはデータバ
スD1またはD2によつてそれぞれに対応する入
力ポートD10〜D17またはD20〜D27に与え
られる。他の集積回路へのデータ出力はDout(D0
〜D7)から得られる。データの選択はCPUから
与えられる信号D1/D2によつて行なわれる。集
積回路3は、さらに、その中に含まれるシフトレ
ジスタのためのシフトクロツクCKおよびその他
の信号、、R/W、およびを
受ける。 第7図はこの集積回路の詳細を示すブロツク図
である。集積回路3は16の8ビツトレジスタ30
0〜315を含み、各々のレジスタは8つのフリ
ツプフロツプからなる。たとえばレジスタ300
はフリツプフロツプ300a〜300hからな
り、レジスタ315はフリツプフロツプ315a
〜315hからなる。レジスタ300の各々のフ
リツプフロツプ300a〜300hは、各々のデ
ータセレクタ316a〜316hからのデータ出
力を受け、これらフリツプフロツプ300a〜3
00hの出力は、ナンドゲート317a〜317
hのそれぞれの1入力に与えられるとともに、次
段のレジスタ301を構成するそれぞれのフリツ
プフロツプ301a〜301hに与えられる。そ
して、レジスタ301の内容は順次レジスタ30
2,………314,315に送られる。このよう
にしてレジスタ300〜315によつてシフトレ
ジスタが構成される。レジスタ315の各々のフ
リツプフロツプ315a〜315hの出力は、対
応のデータセレクタ316a〜316hに与えら
れるとともに、データ出力Doutの各ビツトD0〜
D7となる。データセレクタ316a〜316h
には、それぞれ、データ入力D1およびD2すな
わちD10〜D17およびD20〜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」でそのシフト動作が指令される。このよう
にシフトさせる必要があるのは、データ書込みお
よび読出しの両方においてであり、レジスタ30
0からしかデータ書込みやデータ読出しができな
い構成であるからである。 レジスタ300のフリツプフロツプ300a〜
300hの出力を受けるナンドゲート317a〜
317bのそれぞれの残余の2入力には、コント
ローラ318を通して、信号の反転と信号
R/Wとの論理積CS・R/Wおよび信号の
反転STBが与えられる。信号はストロープ
信号である。また、レジスタ300〜315を構
成するフリツプフロツプ300a〜315hに
は、信号が与えられ、この信号はクリ
ア信号である。レジスタ301〜315のフリツ
プフロツプ301a〜315hには、クロツク
CKが与えられる。レジスタ300のフリツプフ
ロツプ300a〜300hには、クロツクCKに
代えて、コントローラ318を通して、クロツク
CKとストローブ信号の反転とチツプセレク
ト信号の反転との論理積すなわちCK・STB・
CSが与えられる。 ナンドゲート317a〜317hの出力は出力
バスB0の各ビツトB0〜B7となる。 第7図に示す集積回路3では、レジスタ300
〜315間の16回のシフトすなわちローテーシヨ
ン動作が、先の第5図に示すバツフアレジスタ
B0〜B7およびb0〜b6間の1シフトに相当する。
そして、信号の「0」で当該チツプが能動化
され、信号R/Wが「0」のときデータセレクタ
316a〜316hを通して、信号D1/D2に依
つて、データ入力D1(D10〜D17)またはD
2(D20〜D27)が、レジスタ300に与えら
れる。また、信号R/Wが「1」のとき、ナンド
ゲート317a〜317hが有効化され、レジス
タ300のフリツプフロツプ300a〜300h
から、出力バスB0〜B7へデータが読出される。
なお、信号D1/D2は第5図に示す概念図におけ
るデータシフト方向を表わす。 レジスタ300〜315間のデータのローテー
シヨンは信号に応答して行なわれ、信号
CLAに応答してすべてのレジスタ300〜31
5がクリアされる。 第8図は第6図および第7図に示す集積回路3
を用いて第5図回路を実現するための構成の一例
を示すブロツク図である。第5図回路と機能的に
対応する部分には同じ参照符号を付している。第
8図において、バツフアレジスタB1〜B7および
b1〜b6が、それぞれ、第5図の対応の参照符号の
ものに相当する。それぞれのバツフアレジスタは
第7図に示す集積回路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もま
た他のバツフアレジスタと同じように第7図に示
す集積回路の組合わせからなり16ビツトのシフト
レジスタである。 シフトレジスタB1〜B7,b1〜b6,R1およびR2
には、入力バスBiおよび出力バスB0が連結され
る。そして、レジスタB1およびb1には後述の第
9図回路からのシフトタイミング信号Vが与えら
れ、レジスタB5およびb5には、シフトタイミン
グ信号Uが与えられ、一時記憶レジスタすなわち
バツフアレジスタR1およびR2にはシフトタイミ
ング信号Wが与えられ、他のレジスタB2〜B4お
よびb2〜b4には、ロツクツ信号φが与えられる。 第9図は第8図に示す演算回路に接続されるべ
きマイクロプロセサに関連する回路を示すブロツ
ク図である。第9図において、発振器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は第7
図に示すレジスタ300〜315間でデータが1
循環したことを検出する。シフト方向検出回路1
05は、5進カウンタを含み、第5図、第8図に
示すバツアレジスタ間において左方向または右方
向に5回シフト動作が行なわれるごとに出力を出
す。このシフト方向検出回路105の出力はフリ
ツプフロツプ106に与えられ、このフリツプフ
ロツプ106はたとえばトグルフリツプフロツプ
からなり、回路105からの信号が与えられるご
とにその出力Qを反転する。このフリツプフロツ
プ106の出力はデータ選択信号D1/D2とな
る。フリツプフロツプ107は、たとえばJ−K
フリツプフロツプからなり、シフト動作をさせる
かまたは乗算動作をさせるかを区別するもので、
出力が「0」のときバツフアレジスタ間のデー
タシフト動作を、出力が「1」のとき乗算動作
を行なわせる。 シフト回数検出回路104の出力は、フリツプ
フロツプ106の出力とともにアンドゲート10
8の入力に与えられる。アンドゲート108の出
力はフリツプフロツプ109のリセツト入力に与
えられる。フリツプフロツプ109はCPU1か
らのスタート信号STARTによつてセツトされ、
その出力がエンド信号END(または割込信号)
としてCPU1に与えられる。 フリツプフロツプ107の出力は4つのアン
ドゲート110,111,112および113の
それぞれの一方入力として与えられ、これらアン
ドゲートの他方入力にはそれぞれシフトタイミン
グ発生回路102からの信号U,V,Wおよびφ
が与えられる。したがつてフリツプフロツプ10
7の出力が「1」のとき各バツフアレジスタ内
のシフトレジスタがシフトされてそのために乗算
動作されることになるのは前述のとおりである。 CPU1はレジスタ呼出タイミング発生回路1
14にアドレスデコーダ(図示せず)からの信号
を与える。このレジスタ呼出タイミング発生回路
114は第8図の各レジスタ内のアドレスを指定
するためのものであり、アドレス入力に対応して
初期値をロードすべきレジスタを指定し、第7図
に示す各レジスタ間のデータのシフト動作すなわ
ちローテーシヨンを行なわせるための信号
を出力する。この信号が「0」のとき各レ
ジスタがシフト動作され、「1」のときはシフト
動作が行なわれない。 CPU1に含まれるアドレスデコーダからの指
定信号は、このレジスタ呼出タイミング発生回路
114を通してオアゲート115の一方入力に与
えられ、このオアゲート115の他方入力にはア
ンドゲート113の出力が与えられる。オアゲー
ト115の出力はまたオアゲート116,117
および118の一方入力として与えられ、これら
オアゲートにはそれぞれアンドゲート110,1
11および112の出力が与えられる。このよう
にして、オアゲート115,116,117およ
び118の出力が、シフトタイミング信号φ,
U,VおよびWとなる。 また、CPU1からは、信号,,お
よびR/Wが出力される。 ここで、第10図を参照してシフトタイミング
発生回路102について詳細に説明する。まず初
期状態としてフリツプフロツプ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と同じように、与え
られるカウント入力がそのまま出力される端子と
所定のカウントした後信号を出力するカウントア
ツプ出力端子とを含む。クロツクφがカウンタ1
28に1個入ると、したがつてそのときオアゲー
ト138に出力が出る。このオアゲート138の
出力がシフトタイミング信号Vとなる。そして、
カウンタ128に4つのブロツクφが与えられる
と、このカウンタ128からカウントアツプ信号
が出力されてそれが4進カウンタ129に入力さ
れる。したがつて、4進カウンタ129からオア
ゲート137を通して、シフトタイミング信号U
が出力される。したがつて、或る場合には、この
シフトタイミング信号Uは4つのシフトタイミン
グ信号Vごとに1つ出力されることになる。カウ
ンタ129がカウントアツプするとすなわちアン
ドゲート125から16個のクロツクφが出力され
ると、フリツプフロツプ130がセツトされ、そ
の出力Qが「1」となる。このフリツプフロツプ
130の出力QがレジスタR1,R2(第8図)への
データロード信号すなわちシフトタイミング信号
Wである。 フリツプフロツプ130の出力Qが「1」とな
り、出力が「0」となることによつて、アンド
ゲート126および127が開かれる。しかしな
がら、アンドゲート127には、フリツプフロツ
プ133の出力が「1」であるので、このとき
はアンドゲート124からの出力φは与えられな
い。他方アンドゲート125はこのフリツプフロ
ツプ130の出力の「0」によつて閉じられ
る。したがつて、この状態ではアンドゲート12
1からのクロツクφはアンドゲート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が開いている。したがつて、アンドゲー
ト121からのクロツクφがカウンタ134に与
えられる。カウンタ134にクロツクが与えられ
るごとに、オアゲート138を通してシフトタイ
ミング信号Vが出力される。カウンタ134は13
進カウンタであり、クロツクφを13カウントする
ごとにカウントアツプ出力を導出する。このカウ
ンタ134からのカウントアツプ出力がカウンタ
135に与えられるとともに、フリツプフロツプ
133のリセツト入力に与えられる。カウンタ1
35は4進カウンタであり、そのカウントアツプ
出力はフリツプフロツプ136のセツト入力に与
えられる。このフリツプフロツプ136のリセツ
ト入力にはCPUからのリセツト信号が与えられ
る。フリツプフロツプ136の出力Qが、第9図
の信号Sである。フリツプフロツプ136がリセ
ツトされると、その出力が「1」となり、アン
ドゲート121が再び開かれて、先の動作が繰返
される。 ここで、第11図〜第13図を参照して、シフ
トタイミング発生回路102からのシフトタイミ
ング信号U/VおよびWが持つ意味についてやや
詳しく説明する。一般に第11図に示すようなマ
トリクスの乗算は、下記の式に従つて行なわれ
る。 w44=u41・v14 +u42・v24+u43・v33+u44・v44 w43=u41・v13 +u42・v23+u43・v33+u44・w43 〓 w11=u11・v11 +u12・v21+u13・v31+u14・w41 ところで、第8図に示すような集積回路では、
第11図および前式に示すマトリクスの乗算を一
斉にすることはできないので、たとえばまず
u44・v44を行ない、次にu43→u44、u42→u43、……
…v34→v44、v24→v34、………のようにデータを
シフトして行なう。すなわち、この実施例では、
第11図に示すu44の位置とv44の位置との乗算を
行ないこのそれぞれの位置に必要なデータをシフ
トないしローテートさせるのである。 このようなマトリクスにおけるU,VおよびW
のデータのローテートないしシフト動作は、シフ
トタイミング発生回路(第9図)からのそれぞれ
対応のシフトタイミング信号ごとに1回行なわれ
る。そして、上記1つの演算が終わると、データ
は順次シフトされるが、その順序は第12図に示
す。Uについては、1つのシフトタイミング信号
Uごとに一列ずつシフトする。したがつて、たと
えば第11図の例で、u43の位置にあるデータを
u44の位置にシフトするためには、1つのシフト
タイミング信号Uを与えるだけでよい。このと
き、u42は同時にu43の位置に移されるので、次に
u42のデータをu44の位置に移すためには、再度1
つのタイミング信号Uを加えるだけでよい。すな
わち、Uについては、それぞれのデータをu44の
位置にもたらすためには、それぞれ1つのシフト
タイミング信号Uを加えるだけでよい。 Vについては、4つのシフトタイミング信号V
が必要である。たとえば、第11図の例におい
て、v34の位置にあるデータをv44の位置にシフト
するためには、4つのシフトタイミング信号Vが
必要である。 また、Wについては、1つのシフトタイミング
信号で1つずつシフトされる。したがつて、第1
図の例でいえば、w44の位置にあるデータをw11
の位置に移すためには、1つのシフトタイミング
信号Wが加えられればよい。 簡単に言うと、上記式のw44については、シフ
トタイミング信号Wが1回出力され、続いてシフ
トタイミング信号Uが1回そしてVが4回与えら
れると1つ項たとえばu44・v44が行なわれるの
で、このw44のすべての項の演算のためにはこの
ことを4回繰返せばよい。そして、次のw43の演
算のために、シフトタイミング信号Uを12回出力
するとともにVを1回シフトしてそのw43の演算
のための初期状態を設定する。続いてw43の演算
のためにw44の演算と同じようにW=1、U=1
およびV=4を4回繰返せばよい。以下同様であ
る。 このことが第13図のタイミングチヤートに表
わされている。 そして、第13図のシフトタイミング発生回路
は、第13図に従つて、それぞれのタイミング信
号U,VおよびWを出力されるように構成されて
いる。すなわち、カウンタ128によつてタイミ
ング信号Vを、カウンタ129によつてタイミン
グ信号Uを、そしてフリツプフロツプ130によ
つてタイミング信号Wを出力する。その後の12個
のタイミング信号Uはカウンタ131から出力さ
れる。 第14図は第8図および第9図に示す実施例の
動作を説明するためのフロー図である。ここで、
第14図を参照して、この実施例の動作について
説明する。まず。CPU1(第9図)は、動作の
最初において、初期設定を行なう。このとき、必
要に応じて信号を出力し、第8図に示す各
レジスタをクリアする。そして、ステツプ201
において、このCPU1に含まれるカウンタ(図
示せず)の値nを1にセツトする。なお、この値
nは0〜15をとり得る。続くステツプ202にお
いて、CPU1は第7図に示すレジスタ300〜
315を、カウンタの値nに従つて指定する。こ
れはこのCPU1からレジスタ呼出タイミング発
生回路114にレジスタ指定アドレスを出力する
ことによつて行なわれ得る。したがつて、このス
テツプ202では、レジスタ呼出タイミング発生
回路114(第9図)から、信号が出力さ
れ、該当のレジスタが選択される。すなわち、第
8図に示す各レジスタB1〜B7およびb1〜b6のそ
れぞれn番目のレジスタが指定される。続くステ
ツプ203において、前(12)式の変換マトリクス
M1〜M6およびM1′〜M6′をそれぞれの対応のレ
ジスタB1〜B7およびb1〜b6(第8図)にストアす
る。すなわち、まずそれぞれのレジスタのn番目
のレジスタ(第7図)に、Mk、Mk′(k=1〜
6)の1つの要素をストアする。したがつて、こ
のときは、チツプセレクト信号によつて第8
図のそれぞれのレジスタB1〜B6およびb1〜b6が
順次指定される。このようにして、それぞれのレ
ジスタB1〜B7およびb1〜b6のそれぞれのn番目
のレジスタにそれぞれ対応の変換マトリクスの1
つの要素がストアされる。そして、続くステツプ
204において、カウンタの値が16(これは第7
図に示すレジスタの数に対応する)であるかどう
かを判断する。そして、n=16でなければ、ステ
ツプ205においてそのカウンタをインクリメン
トし、再び同じことを繰返す。したがつて、ステ
ツプ204において、n=16であるということ
は、すべてのレジスタB1〜B7およびb1〜b6のす
べてのレジスタ300〜315(第7図)にそれ
ぞれの変換マトリクスM1〜M6およびM1′〜
M6′のすべての要素がストアされたことを意味す
る。 続いて、CPU1は演算スタート指令START
を出力する。応じて、フリツプフロツプ109が
セツトされるとともにフリツプフロツプ107が
リセツトされ、このフリツプフロツプ107の出
力が「1」となる。したがつて、アンドゲート
110〜113が開き、シフトタイミング発生回
路102からのシフトタイミング信号U,Vおよ
びWおよびクロツクφが出力可能となる。すなわ
ち、この状態で乗算が行なわれる。 乗算は、シフトタイミング発生回路102か
ら、第13図で示すようなタイミングで各々シフ
トタイミング信号が発生し第12図に従つてシフ
ト動作が行なわれることによつて、第11図に従
つてマトリクスの乗算が行なわれる。この間に、
シフト方向検出回路105およびデータ選択フリ
ツプフロツプ106によつて、第8図に示す回路
におけるデータ転送(シフト)方向が制御され
る。すなわち、第5図回路に示すデータシフト方
向がこのシフト方向検出回路105およびフリツ
プフロツプ106で制御される。データシフトを
5回繰返すことに応じてフリツプフロツプ106
の出力がデータ選択信号D1/D2として導出され
るが、このときシフト回数検出回路104からは
まだ信号が出されていないので、アンドゲート1
08は出力を出さない。 前式のw44,w43,………のそれぞれの演算が
終わるごとにシフトタイミング信号発生回路10
2からシフト回数検出回路104に信号が与えら
れる。シフト回数検出回路104は、前述のよう
に16進カウンタを含むので、シフトタイミング発
生回路102から16個の信号が得られたとき、す
なわち前(12)式の演算がすべて行なわれたとき、
「1」の信号を出す。このときフリツプフロツプ
106の出力もまた「1」であり、アンドゲート
108から「1」の信号がフリツプフロツプ10
9のリセツト信号として与えられる。したがつ
て、このフリツプフロツプ109からの出力が
「1」となり、それがCPU1に与えられる。CPU
1では、このフリツプフロツプ109の出力の
状態に応じて、ステツプ207において、演算終
了がどうかを判断する。 上述のようにして演算が終了すると、ステツプ
208,209,210,211および212に
おいて、先のステツプ201,202,203,
204および205と同じようにして、第8図に
示す各々のレジスタB1〜B7およびb1〜b6のそれ
ぞれのレジスタ300〜315(第7図)からデ
ータを読込む。このとき、データの書込みと異な
り、CPU1からの信号R/Wは「0」とされる
のはもちろんである。このようにして、CPUは、
ヤコビアンの各々の要素を演算回路2から取込
み、前(11)式に基づいて各関節角の変化量を求め
る。すなわち、CPUは第15図に示すように、
直角座標系での変化量△X→i+1=X→i+1−X→iを求
め、
次いで前述のようにして求めたヤコビアンJ(α→
i)の逆数[J(α→i)]-1と△X→i+1とを用いて関
節座
標系の変化量△α→i+1を演算する。最後に、直前
の関節系による位置△α→iと上記変化量△α→i+1と
を加算して、次の点の関節系による位置α→i+1を
得る。このようにして、直角座標系から関節座標
系への座標変換がヤコビアンを用いて行なわれ
る。 第16図はシフトタイミング発生回路の別の例
を示す回路図である。この実施例では、シフトタ
イミング発生回路102は7ビツトのカウンタ1
41を含み、このカウンタ141のカウント入力
にはクロツクφが与えられる。そして、最上位ビ
ツトAから最下位ビツトGまで7ビツトA、B、
C、D、E、FおよびGを有するバイナリカウン
タとして構成される。そして、シフトタイミング
信号U,VおよびWは、それぞれ(15)式に従つ
て導出される。 U=・・+C(・+AB) V=+C{・・AB ・(+)} W=・DE ………(15) なお、クロツクφが、それぞれのシフトタイミ
ング信号とクロツクとの同期をとるために、適当
なゲートに入れられている。この第16図のよう
なシフトタイミング発生回路を用いれば、第10
図に示すものに比べて非常に簡単な回路構成とな
る。 以上ように、この発明によれば、直角座標系と
関節座標系との間の座標変換のために、マトリク
スの各々の要素は別のハードウエアで構成した演
算回路で演算し、CPUではその演算結果を取込
んで適当な変換式に代入するだけでよいので、
CPUが座標変換のために演算に利用される時間
が非常に短くなる。したがつて、CPUたとえば
マイクロプロセサやマイクロコンピユータとして
高速のものを用いなくても、極めて正確な座標変
換が行なわれる。したがつて従来のもののように
相当大きなエラーが出たり、同時制御可能な自由
度が制限されたりすることはなく、追随の正確性
が期待できる。また、CPUが座標変換の演算の
ために利用される時間が非常に短くなるので、
CPUに対して別の機能を付加することが簡単に
できる。しかも、演算回路は、ほとんど類似した
演算を何回も繰返すだけであり、制御すべき自由
度の増減に対しても簡単に対応することができ
る。なぜならば、演算回路で利用可能な演算機能
を単に増減するだけで、CPUのソフトウエア
(プログラム)についてはほとんど変更が不要で
あるからである。このことは、特に、関節を有す
るロボツトにおいて、エンドエフエクタの種類を
変更する際に要求される自由度が異なる場合、そ
のような自由度の変更に容易に追随できるという
極めて大きな効果である。
第1図〜第3図は関節型ロボツトの座標変換に
ついて説明するための模式図である。第4図は演
算回路の基本的な考え方を示す概念図である。第
5図は実施例の基礎となる演算回路の考え方を説
明する概念図である。第6図はこの発明に利用さ
れ得る集積回路を示すブロツク図である。第7図
はこの集積回路のより詳細な内部構成を示す回路
図である。第8図はこのような集積回路を利用し
た演算回路のブロツク図である。第9図は演算回
路を制御するためためのCPU関連回路を示すブ
ロツク図である。第10図はシフトタイミング発
生回路の一例を示す回路図である。第11図〜第
13図はマトリクスの乗算過程を説明しシフトタ
イミング発生回路の考え方を説明する図であり、
特に第11図はマトリクスの乗算の原理を、第1
2図は演算過程におけるシフト動作を示し、第1
3図はマトリクスの乗算に必要なシフトタイミン
グ信号のタイミングチヤートである。第14図は
実施例の動作を説明するためのフロー図である。
第15図はCPUにおける座標変換の過程を示す
図である。第16図はシフトタイミング発生回路
の別の例を示す回路図である。 図において、1はCPU(マイクロプロセサ)、
2は演算回路、3は集積回路、300〜315は
レジスタ、B1〜B7,b1〜b6は演算回路のバツフ
アレジスタ、MP1,MP2は乗算回路、102は
シフトタイミング発生回路を示す。
ついて説明するための模式図である。第4図は演
算回路の基本的な考え方を示す概念図である。第
5図は実施例の基礎となる演算回路の考え方を説
明する概念図である。第6図はこの発明に利用さ
れ得る集積回路を示すブロツク図である。第7図
はこの集積回路のより詳細な内部構成を示す回路
図である。第8図はこのような集積回路を利用し
た演算回路のブロツク図である。第9図は演算回
路を制御するためためのCPU関連回路を示すブ
ロツク図である。第10図はシフトタイミング発
生回路の一例を示す回路図である。第11図〜第
13図はマトリクスの乗算過程を説明しシフトタ
イミング発生回路の考え方を説明する図であり、
特に第11図はマトリクスの乗算の原理を、第1
2図は演算過程におけるシフト動作を示し、第1
3図はマトリクスの乗算に必要なシフトタイミン
グ信号のタイミングチヤートである。第14図は
実施例の動作を説明するためのフロー図である。
第15図はCPUにおける座標変換の過程を示す
図である。第16図はシフトタイミング発生回路
の別の例を示す回路図である。 図において、1はCPU(マイクロプロセサ)、
2は演算回路、3は集積回路、300〜315は
レジスタ、B1〜B7,b1〜b6は演算回路のバツフ
アレジスタ、MP1,MP2は乗算回路、102は
シフトタイミング発生回路を示す。
Claims (1)
- 【特許請求の範囲】 1 複数の腕が相互に回動可能に連結されたN自
由度の多関節アームを有し、当該多関節アームに
おける各関節角を制御することにより、多関節ア
ームの先端の腕に取付けられた被制御体の位置制
御を行なうような多関節ロボツトにおいて、当該
多関節アームの直角座標系での微小変位を関節座
標系での微小変位に変換するための座標変換方法
であつて、 前記多関節アームの各関節角に基づいて、隣接
する前記腕相互間の座標位置を関連付ける座標変
換マトリクスMjを、前記多関節アームの各関節
について独立的に生成する第1のステツプと、 前記座標変換マトリクスMjの微分マトリクス
Mj′を、前記多関節アームの各関節について独立
的に生成する第2のステツプと、 前記座標変換マトリクスMjおよび前記微分マ
トリクスMj′との規則的な組合せ演算を行なうこ
とにより、その結果としてヤコビ行列の各要素を
求める第3のステツプと、 前記第3のステツプで求めた各要素で規定され
るヤコビ行列を用いて、前記多関節アームの直角
座標系での微小変位を関節座標系での微小変位に
変換する第4のステツプとを備える、座標変換方
法。 2 複数の腕が相互に回動可能に連結されたN自
由度の多関節アームを有し、当該多関節アームに
おける各関節角を制御することにより、多関節ア
ームの先端の腕に取付けられた被制御体の位置制
御を行なうような多関節ロボツトにおいて、当該
多関節アームの直角座標系での微小変位を関節座
標系での微小変位に変換するための座標変換装置
であつて、 前記多関節アームの各関節角に基づいて、隣接
する前記腕相互間の座標位置を関連付ける座標変
換マトリクスMjを、前記多関節アームの各関節
について独立的に生成する座標変換マトリクス演
算手段と、 前記座標変換マトリクスMjの微分マトリクス
Mj′を、前記多関節アームの各関節について独立
的に生成する微分マトリクス演算手段と、 前記座標変換マトリクスをそれぞれ保持する、
相互に接続された複数の第1の群のマトリクスレ
ジスタとを備え、ここで前記第1の群のマトリク
スレジスタのうちの1つは前記座標変換マトリク
ス演算手段に接続されており、さらに 前記微分マトリクスをそれぞれ保持する、相互
に連結された複数の第2の群のマトリクスレジス
タを備え、ここで前記第2の群のマトリクスレジ
スタのうちの1つは前記微分マトリクス演算手段
に接続されており、さらに 前記第1および第2の群のマトリクスレジスタ
内の特定のマトリクスレジスタに接続されてい
て、2つのマトリクス間の乗算を行なう複数のマ
トリクス乗算手段と、 前記第1および第2の群のマトリクスレジスタ
および前記マトリクス乗算手段に接続されてい
て、それらを制御することにより前記マトリクス
乗算手段において前記座標変換マトリクスおよび
前記微分マトリクスの規則的な組合せ演算を実行
させる制御手段と、 前記マトリクス乗算手段の演算結果に基づい
て、ヤコビ行列の各要素を生成し、当該生成され
た各要素で規定されるヤコビ行列を用いて前記多
関節アームの直角座標系での微小変位を関節座標
系での微小変位に変換する演算を行なう座標変換
演算手段とを備え、 少なくとも、前記第1および第2の群のマトリ
クスレジスタと、前記マトリクス乗算手段とが、
ハード回路によつて構成されていることを特徴と
する、多関節ロボツトの座標変換装置。 3 前記第1の群のマトリクスレジスタは、双方
向にシフト可能な第1および第2のマトリクスシ
フトレジスタを形成しており、 前記第2の群のマトリクスレジスタは、双方向
にシフト可能な第3および第4のマトリクスシフ
トレジスタを形成しており、 前記第1のマトリクスシフトレジスタ内の一方
端のマトリクスレジスタは、前記座標変換マトリ
クス演算手段に接続されており、 前記第3のマトリクスシフトレジスタ内の一方
端のマトリクスレジスタは、前記微分マトリクス
演算手段に接続されており、 前記複数のマトリクス乗算手段は、第1ないし
第4のマトリクス乗算手段を備え、 前記第1および第2のマトリクス乗算手段は、
それぞれ、マトリクスレジスタと組合わされて、
既に保持していたマトリクスと新たに入力された
マトリクスとの積を求めその結果を改めて保持す
る第1および第2のマトリクス乗算・保持手段を
形成し、 前記第1および第2のマトリクス乗算・保持手
段は、ともに、前記第1のマトリクスレジスタ内
の他方端のマトリクスレジスタおよび前記第2の
マトリクスシフトレジスタ内の一方端のマトリク
スレジスタに接続されており、 前記第3のマトリクス乗算手段は、2つの入力
部がそれぞれ前記第3のマトリクスシフトレジス
タ内の他方端のマトリクスレジスタと前記第1の
マトリクス乗算・保持手段に接続されており、出
力部が前記第4のマトリクスシフトレジスタ内の
一方端のマトリクスレジスタに接続されており、 前記第4のマトリクス乗算手段は、2つの入力
部がそれぞれ前記第4のマトリクスシフトレジス
タ内の前記一方端のマトリクスレジスタと前記第
2のマトリクス乗算・保持手段に接続されてお
り、出力部が前記第3のマトリクスシフトレジス
タ内の前記他方端に接続されており、 前記制御手段は、前記第1ないし第4のマトリ
クスシフトレジスタを往復シフトさせる、特許請
求の範囲第2項記載の座標変換装置。 4 前記第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+
1と第N+2のマトリクスレジスタに接続され、
出力部が前記第1の群の第N+1のマトリクスレ
ジスタに接続された第2のマトリクス乗算手段
と、 2つの入力部がそれぞれ前記第1の群の第Nの
マトリクスレジスタと前記第2の群の第N−1の
マトリクスレジスタに接続され、出力部が前記第
2の群の第Nのマトリクスレジスタに接続された
第3のマトリクス乗算手段と、 2つの入力部がそれぞれ前記第1の群の第N+
1のマトリクスレジスタと前記第2の群の第N+
1のマトリクスレジスタに接続され、出力部が前
記第2の群の第Nのマトリクスレジスタに接続さ
れた第4のマトリクス乗算手段とを備える、特許
請求の範囲第2項記載の座標変換装置。 5 前記第1および第2の群のマトリクスレジス
タは、それぞれ、双方向に循環可能な第1および
第2のマトリクス循環レジスタを形成しており、 前記複数のマトリクス乗算手段は、第1および
第2のマトリクス乗算手段を備え、 前記第1のマトリクス乗算手段は、マトリクス
レジスタと組合されて、既に保持していたマトリ
クスと新たに入力されたマトリクスとの積を求め
その結果を改めて保持するマトリクス乗算・保持
手段を形成し、 前記マトリクス乗算・保持手段は、前記第1の
マトリクス循環レジスタ内の1つのマトリクスレ
ジスタの出力を入力とし、 前記第2のマトリクス循環レジスタで形成され
る循環ループは、そのループ内の1つのマトリク
スレジスタの出力と前記マトリクス乗算・保持手
段の出力とを乗算する前記第2のマトリクス乗算
手段を経て閉じられており、 前記制御手段は、前記第1および第2のマトリ
クス循環レジスタを方向を変えて各々1循環させ
る、特許請求の範囲第2項記載の座標変換装置。 6 前記第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のマトリクス乗算手段とを備える、特許請求
の範囲第2項記載の座標変換装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP57182002A JPS5988279A (ja) | 1982-10-15 | 1982-10-15 | 多関節ロボットの座標変換方法およびそのための装置 |
| US06/540,177 US4580229A (en) | 1982-10-15 | 1983-10-07 | Method and apparatus for control of an articulated robot |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP57182002A JPS5988279A (ja) | 1982-10-15 | 1982-10-15 | 多関節ロボットの座標変換方法およびそのための装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS5988279A JPS5988279A (ja) | 1984-05-22 |
| JPH0424196B2 true JPH0424196B2 (ja) | 1992-04-24 |
Family
ID=16110599
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP57182002A Granted JPS5988279A (ja) | 1982-10-15 | 1982-10-15 | 多関節ロボットの座標変換方法およびそのための装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US4580229A (ja) |
| JP (1) | JPS5988279A (ja) |
Families Citing this family (34)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6125207A (ja) * | 1984-07-12 | 1986-02-04 | Fanuc Ltd | ツ−ル座標系の設定方式 |
| JPS61110204A (ja) * | 1984-11-02 | 1986-05-28 | Hitachi Ltd | 自動化装置の制御方法 |
| US4823279A (en) * | 1986-02-27 | 1989-04-18 | Unimation, Inc. | Coordinate conversion system and method for controlling an industrial robot |
| US4763276A (en) * | 1986-03-21 | 1988-08-09 | Actel Partnership | Methods for refining original robot command signals |
| US5117348A (en) * | 1986-03-28 | 1992-05-26 | The Ingersoll Milling Machine Company | Method for alignment of a representative surface to an actual surface for a tape laying machine |
| US4714400A (en) * | 1986-04-14 | 1987-12-22 | Ibm Corporation | Plural robotic drive |
| US4857816A (en) * | 1987-02-05 | 1989-08-15 | Joseph Rogozinski | Precise positioning apparatus |
| JPS63223869A (ja) * | 1987-03-13 | 1988-09-19 | Hitachi Ltd | プログラム生成方法 |
| US5023808A (en) * | 1987-04-06 | 1991-06-11 | California Institute Of Technology | Dual-arm manipulators with adaptive control |
| US4860215A (en) * | 1987-04-06 | 1989-08-22 | California Institute Of Technology | Method and apparatus for adaptive force and position control of manipulators |
| EP0289836B1 (de) * | 1987-05-04 | 1991-11-06 | Siemens Aktiengesellschaft | Verfahren zur Positionierung eines Werkzeugs eines mehrgelenkigen Roboters |
| US5129044A (en) * | 1988-03-01 | 1992-07-07 | Hitachi Construction Machinery Co., Ltd. | Position/force controlling apparatus for working machine with multiple of degrees of freedom |
| EP0398704B1 (en) * | 1989-05-17 | 1996-08-14 | Fujitsu Limited | Profile control system for robots |
| US5053976A (en) * | 1989-05-22 | 1991-10-01 | Honda Giken Kogyo Kabushiki Kaisha | Method of teaching a robot |
| JP2566665B2 (ja) * | 1990-06-27 | 1996-12-25 | 川崎重工業株式会社 | 慣性系におけるロボットの制御装置 |
| DE69207627T2 (de) * | 1991-04-09 | 1996-05-30 | Hewlett Packard Co | Hybrides Lage- und Kraftregelsystem |
| EP0518303B1 (en) * | 1991-06-14 | 1998-01-07 | Honeywell Inc. | Rate mode hand controller with force reflection |
| US5276390A (en) * | 1991-10-04 | 1994-01-04 | Hewlett-Packard Company | System for hybrid position and force control |
| SE9400579L (sv) * | 1994-02-21 | 1995-08-22 | Asea Brown Boveri | Förfarande för att styra en industrirobots rörelse i och i närheten av singulariteter |
| DE19636102A1 (de) * | 1996-09-05 | 1998-03-12 | Fraunhofer Ges Forschung | Verfahren und Vorrichtung zur Steuerung der Bewegung eines Trägers |
| US5886494A (en) * | 1997-02-06 | 1999-03-23 | Camelot Systems, Inc. | Positioning system |
| JP3519253B2 (ja) * | 1997-10-28 | 2004-04-12 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、および情報処理方法 |
| DE10016317A1 (de) * | 2000-03-31 | 2001-10-04 | Emco Maier Gmbh | Verfahren zum Regeln der Bahnbewegung eines angetriebenen Organs |
| FR2919382B1 (fr) * | 2007-07-24 | 2012-10-12 | Profile Controles Ind | Dispositif de mesure et de cartographie a ultrasons |
| US8417755B1 (en) | 2008-05-28 | 2013-04-09 | Michael F. Zimmer | Systems and methods for reducing memory traffic and power consumption in a processing environment by solving a system of linear equations |
| WO2013099031A1 (ja) * | 2011-12-28 | 2013-07-04 | 株式会社安川電機 | エンジニアリングツール |
| US10551179B2 (en) | 2018-04-30 | 2020-02-04 | Path Robotics, Inc. | Reflection refuting laser scanner |
| CN111002306B (zh) * | 2019-11-15 | 2021-04-09 | 杭州项淮机械科技有限公司 | 一种基于电子凸轮的机器人运动控制方法及控制系统 |
| WO2022016152A1 (en) | 2020-07-17 | 2022-01-20 | Path Robotics, Inc. | Real time feedback and dynamic adjustment for welding robots |
| EP4297923A4 (en) | 2021-02-24 | 2025-05-14 | Path Robotics, Inc. | AUTONOMOUS WELDING ROBOTS |
| US12277369B2 (en) | 2021-10-18 | 2025-04-15 | Path Robotics, Inc. | Generating simulated weld paths for a welding robot |
| EP4433264A1 (en) | 2021-11-19 | 2024-09-25 | Path Robotics, Inc. | Machine learning logic-based adjustment techniques for robots |
| US12508665B2 (en) | 2022-04-19 | 2025-12-30 | Path Robotics, Inc. | Autonomous assembly robots |
| US12521884B2 (en) | 2022-07-26 | 2026-01-13 | Path Robotics, Inc. | Techniques for multipass welding |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3763358A (en) * | 1971-10-21 | 1973-10-02 | D Cargille | Interweaved matrix updating coordinate converter |
| US4156835A (en) * | 1974-05-29 | 1979-05-29 | Massachusetts Institute Of Technology | Servo-controlled mobility device |
| JPS53121362A (en) * | 1977-03-30 | 1978-10-23 | Hitachi Ltd | Method of controlling each articulation angle of articulated robot |
| US4380696A (en) * | 1980-11-12 | 1983-04-19 | Unimation, Inc. | Method and apparatus for manipulator welding apparatus with vision correction for workpiece sensing |
-
1982
- 1982-10-15 JP JP57182002A patent/JPS5988279A/ja active Granted
-
1983
- 1983-10-07 US US06/540,177 patent/US4580229A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPS5988279A (ja) | 1984-05-22 |
| US4580229A (en) | 1986-04-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0424196B2 (ja) | ||
| US3882304A (en) | Parametric interpolation of three-dimensional surfaces | |
| Kanade et al. | Real-time control of CMU direct-drive arm II using customized inverse dynamics | |
| US5019968A (en) | Three-dimensional vector processor | |
| EP0060563A1 (en) | Industrial articulated robot linear interpolation control device | |
| JP2874238B2 (ja) | 多関節形ロボットの制御方法 | |
| CN113341724A (zh) | 一种多模态机械臂的异步滑模控制方法 | |
| Starns et al. | Five-bar path generation synthesis by continuation methods | |
| McInnis et al. | Kinematics and dynamics in robotics: a tutorial based upon classical concepts of vectorial mechanics | |
| JPS5822410A (ja) | 数値制御方式 | |
| JPH0785203B2 (ja) | 多関節ロボットの制御のための座標変換方法,演算方法,座標変換装置および演算装置 | |
| Machado et al. | Robot Manipulator Dynamics—Towards Better Computational Algorithms | |
| JP3431026B2 (ja) | 冗長軸を有する7軸以上のマニピュレータの制御方法 | |
| Stanišié et al. | Inverse velocity and acceleration solutions of serial robot arm subassemblies using the canonical coordinate system | |
| JPS5823186B2 (ja) | ヨウセツヨウロボツトノ セイギヨソウチ | |
| Hroncová et al. | Complete Kinematic Analysis of the Joint Variables of the Robot Mechanism During the End-Effector's Movement Along a Circular Path | |
| Yoshikawa et al. | Application of DSP to real-time computation for dynamic control of robot manipulators | |
| SU1291388A1 (ru) | Устройство дл управлени адаптивным роботом-манипул тором | |
| JPH0256682B2 (ja) | ||
| Śmiarowski Jr et al. | A fast computer architecture for the control of robots | |
| JPS6228807A (ja) | デイジタル・サ−ボ制御装置 | |
| Roth | Quasilinearization and terminal observation | |
| Trantham | Problem definition for control of a finger in the articulated gripper | |
| JPH04267409A (ja) | コンプライアンス制御方法及び制御装置 | |
| JPS6245562B2 (ja) |