(57)【特許請求の範囲】
【請求項１】
複数のリンク（１０８）と前記リンクを接続する複数のジョイント（１１２）とを有する運動学的リンク機構（１００）を含む多軸機械（２４）をヤコビ行列Ｊ（２００）を用いて数値制御（ＮＣ）する方法であって、
前記リンク機構の１つ以上のジョイントによる特異点への接近を検出するために前記リンク機構を監視するステップであって、
（ａ）ヤコビ行列Ｊ（２００）の特異値分解Ｊ＝Ｕ＊Ｓ＊ＶＴを求めるステップ（ＵおよびＶは正規直交行列であり、Ｕの列は左特異ベクトル（２０８）を、Ｖの列は右特異ベクトル（２２８）を構成し、Ｓは対角行列であり特異値（２３６）が降順に対角に配置される）（３１２）と、
（ｂ）特異値分解から求められる特異値のうち最大特異値を求め、各特異値を該最大特異値で除した値を条件数の逆数として求め（３１６）、所定のしきい値以下（３２０）となる条件数の逆数の数を接近される特異点の度数ｎとして求める（３２４）ステップと、
（ｃ）最後のｎ個の右特異ベクトル（２２８）の最大成分の位置を特定することにより特異であるまたは特異に近いｎ個のジョイント（１１２）を決定し（３２８）、最後のｎ個の左特異ベクトル（２０８）を最大特異値（２３６）で乗算し、ｎ個の仮想ジョイントを得（３３２）、前記ｎ個のジョイント（１１２）と関連付けられるヤコビ行列Ｊの列（２０４）を該仮想ジョイントと置き換えることにより、修正されたヤコビ行列を求めるステップ（３３６）と、
（ｄ）最初のリンク位置ベクトルＱ（ｉ）を求めるステップ（３４０）と、
（ｅ）前記修正されたヤコビ行列を用いてリンクの位置ベクトルの変化ΔＱを計算し（３５２）、ΔＱとＱ（ｉ）から、新しいリンク位置ベクトルＱ（ｉ＋１）を求める（３５６）ステップと、
（ｆ）Ｑ（ｉ＋１）によりＱ（ｉ）を更新し、更新後のＱ（ｉ）を用いて前記（ｅ）を収斂に達するまで繰り返すステップとを備える、方法。
【請求項２】
（ｇ） (ｆ)のステップの後に、前記リンク機構が特異点に接近しているかどうかを判定し（３６４）接近していると判定された場合、前記ｎ個の仮想ジョイントを表わす１つ以上の値を、前記リンク位置ベクトルＱ（ｉ＋１）から取り除く（３６８）ステップと、
（ｈ）前記Ｑ（ｉ＋１）を用いて、非特異ジョイント（１１２）を補正するステップ（３７２）とをさらに含む、請求項１に記載された方法。
【請求項３】
数値制御（ＮＣ）される処理システムであって、前記ＮＣ処理システムは、
複数のリンク（１０８）と前記リンクを接続する複数のジョイント（１１２）とを有する運動学的リンク機構（１００）を含む多軸機械（２４）と、
プロセッサ（３２）とを備え、前記プロセッサは、
前記リンク機構の１つ以上のジョイントによる特異点への接近を検出するために前記リンク機構を監視し、前記監視は、ヤコビ行列（２００）を用いて行なわれ、
（ａ）ヤコビ行列Ｊ（２００）の特異値分解Ｊ＝Ｕ＊Ｓ＊ＶＴを求め（ＵおよびＶは正規直交行列であり、Ｕの列は左特異ベクトル（２０８）を、Ｖの列は右特異ベクトル（２２８）を構成し、Ｓは対角行列であり特異値（２３６）が降順に対角に配置される）（３１２）、
（ｂ）特異値分解から求められる特異値のうち最大特異値を求め、各特異値を該最大特異値で除した値を条件数の逆数として求め（３１６）、所定のしきい値以下（３２０）となる条件数の逆数の数を接近される特異点の度数ｎとして求め（３２４）、
（ｃ）最後のｎ個の右特異ベクトル（２２８）の最大成分の位置を特定することにより特異であるまたは特異に近いｎ個のジョイント（１１２）を決定し（３２８）、最後のｎ個の左特異ベクトル（２０８）を最大特異値（２３６）で乗算し、ｎ個の仮想ジョイントを得（３３２）、前記ｎ個のジョイント（１１２）と関連付けられるヤコビ行列Ｊの列（２０４）を該仮想ジョイントと置き換えることにより、修正されたヤコビ行列を求め（３３６）、
（ｄ）最初のリンク位置ベクトルＱ（ｉ）を求め（３４０）、
（ｅ）前記修正されたヤコビ行列を用いてリンクの位置ベクトルの変化ΔＱを決定し（３５２）、ΔＱとＱ（ｉ）から、新しいリンク位置ベクトルＱ（ｉ＋１）を求め（３５６）、
（ｆ）Ｑ（ｉ＋１）によりＱ（ｉ）を更新し、更新後のＱ（ｉ）を用いて前記（ｅ）を収斂に達するまで繰り返すように構成される、システム。
【請求項４】
前記プロセッサはさらに、
（ｇ） (ｆ)の後に、前記リンク機構が特異点に接近しているかどうかを判定し（３６４）、接近していると判定された場合、前記ｎ個の仮想ジョイントを表わす１つ以上の値を、前記リンク位置ベクトルＱ（ｉ＋１）から取り除き（３６８）、
（ｈ）前記Ｑ（ｉ＋１）を用いて、非特異ジョイント（１１２）を補正することを含むように構成される、請求項３に記載されたシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
この開示は、多軸機械に関し、より具体的には、機械操作中に運動学的特異点に対処するためのシステムおよび方法に関する。この項における記述は、この開示に関連する背景情報を提供するのみであって、先行技術を構成するものではない。
【背景技術】
【０００２】
多くの工作機械設備は、数値制御（ＮＣ）下で操作され、航空機部品などの高精度品目を生産する。このような設備において、多軸機械は、ソフトウェア駆動され、１つ以上の工作機械をワークピースに対して移動させることがある。この機械の多軸運動学的リンク機構は、工具を複数の規定の座標軸に関して移動させることができる。具体的には、複数の並進および／または回転ジョイントは、単独でおよび／または協調的に動作可能であることがあり、１つ以上のリンクを移動させ工具を所望の場所に位置決めする。しかしながら時として、多軸リンク機構は、１以上の自由度が失われる位置（すなわち「特異点」）に移動されることがある。特異点において、１つ以上のジョイントは、ソフトウェアが指示するように工具を移動させることができないことがある。
【発明の概要】
【課題を解決するための手段】
【０００３】
概要
この開示は、１つの実現例においては、多軸機械の操作方法に関する。この機械の運動学的リンク機構が監視される。リンク機構は、複数のジョイントおよびリンクを含む。リンク機構は、リンク機構の１つ以上のジョイントによる特異点への接近を検出するために監視される。この監視は、ヤコビ行列を用いて行なわれる。接近される特異点の度数ｎが求められる。特異点に接近している１つ以上のジョイントが識別される。この方法は、ｎ個の仮想ジョイントを得るステップと、識別される１つ以上のジョイントを、ヤコビ行列中の仮想ジョイントと置き換え、ヤコビ行列を修正するステップと、修正されたヤコビ行列を用いてリンク機構のリンクの位置変更を決定するステップとを含む。
【０００４】
さらなる適用可能な分野は、本明細書中に記載される説明から明らかとなるであろう。説明および特定の例は、例示目的のみを意図するものであり、この開示の範囲を限定することを意図しないものであることが理解されるべきである。
【０００５】
本明細書中に説明される図面は例示目的のみのためのものであり、この開示の範囲を限定することは全く意図しない。
【図面の簡単な説明】
【０００６】
【図１】この開示の１つの実現例に従う数値制御される（ＮＣ）処理システムの図である。
【図２】この開示の１つの実現例に従い制御される機械の多軸運動学的リンク機構の一部分の正面斜視図である。
【図３】この開示の１つの実現例に従うヤコビ行列の特異値分解の図である。
【図４Ａ】この開示の１つの実現例に従う多軸機械の操作方法のフロー図である。
【図４Ｂ】この開示の１つの実現例に従う多軸機械の操作方法のフロー図である。
【発明を実施するための形態】
【０００７】
好ましい実施例の詳細な説明
以下の説明は、本質的に単に例示的なものであり、この開示、説明、または使用を限定することを意図しない。図面全体を通して、対応する参照番号は、同様のまたは対応する部品または特徴を示すことが理解されるべきである。
【０００８】
「運動学的特異点補正システムおよび方法（Kinematic Singular Point Compensation Systems and Methods）」と題される、米国特許公開番号第２００６０２７１２４１号において、多軸運動学的リンク機構の先端部を特異点の近くに位置決めするためのさまざまなシステムおよび方法が記載される。この開示は、１つの実現例において、（１）機械のリンク機構が特異点に接近しているかどうか、およびこのリンク機構は特異点にどれ程近いか、（２）このリンク機構のどのジョイントが特異点に接近しているのか、および（３）どの自由度がこの特異点において失われるであろうか、をリアルタイムで、自動的に求める方法に関する。
【０００９】
この開示の１つの実現例に従う数値制御（ＮＣ）処理システムを、図１に全般的に参照番号２０で示す。システム２０は、１つ以上の多軸機械２４を含み、その１つを図１に示す。機械２４は、たとえば、ワークピース（図示せず）に対する多軸機械加工作業を行なうよう構成されてもよい。加えてまたはこれに代えて、システム２０は、たとえば数値制御される組立てロボットといった、部品配置を行なうことができる他の種類の多軸機械を含んでもよい。
【００１０】
システム２０は、１つ以上のコンピュータ２８を含み、その１つを図１に示す。コンピュータ２８は、適切にプログラムされたコンピュータプロセッサ３２とメモリ３６とを含む。コンピュータ２８は、この開示の１つの実現例に従いプログラムされ、多軸機械２４の動作を監視し、制御してもよい。コンピュータ２８を用いて、以下にさらに説明するように、多軸機械２４の位置決めを調節可能に補正するためのソフトウェアを実行してもよい。ソフトウェア補正を用いて、たとえば、機械２４の動作を、理想のまたは「完全な」機械を基準として規定される許容範囲内にするために、機械２４の一定の「完成状態」（“as-built”）条件に合わせて調整してもよい。
【００１１】
キーボード、ポインティングデバイス、およびモニタを含むコンピュータ端末などのユーザインターフェイス４０が設けられ、これによりユーザは、システム２０と情報のやり取りをしてもよい。この開示は、米国特許公開番号第２００６０２７１２４１号に開示された材料処理設備構成を含むがこれに限定されない多くのおよびさまざまな種類の設備に関して、実現化可能であることが注目されるべきである。多くの異なる種類および構成の多軸機械、コンピュータ、プロセッサ、入出力装置、通信システムなどが、この開示のさまざまな実現例に従って、ＮＣ処理システムに含まれる得ることが当業者には理解されるはずである。
【００１２】
機械２４の多軸運動学的リンク機構の一部分を、図２に全般的に参照番号１００で示す。リンク機構１００は、６個のジョイント１１２ａ−１１２ｆにより相互に接続される６個の可動リンク１０８ａ−１０８ｆを含む。ジョイント１１２ａ−１１２ｅは回転し（revolute）（すなわち回動する）、ジョイント１１２ｆは直進する（prismatic）（すなわち摺動する）。リンク機構１００はコンピュータ２８により操作可能であり、先端部１１６を規定の通路に沿って作業工程中に位置決めし、制御する。先端部１１６は、先端部１１６の上に据付けられたたとえば切削工具または他の種類の工具（図示せず）を有してもよい。リンク機構１００は、単なる例示であることが理解されるべきである。機械２４は、リンク機構１００よりも多少複雑なリンク機構を有してもよく、より多い、より少ないおよび／または異なる種類のリンクおよび／またはジョイントを含んでもよく、および／
またはより多い、より少ないおよび／または異なる自由度および／または自由度の種類を提供してもよい。
【００１３】
操作中、リンク機構１００は、コンピュータ２８によって、たとえば１以上の電動機である駆動装置（図示せず）を介して駆動される。リンク１０８が駆動されるにつれて、他のリンク１０８の位置決めも影響を受けるであろう。先端部１１６の位置および姿勢は、Ｘ＝ｆ（Ｑ）というように、関数集合ｆ（）でリンク位置ベクトルＱに関係付けられるベクトルＸで表わすことができる。Ｊ（Ｑ）＝（∂ｘi／∂ｑj）で定義される関数集合ｆ（）のヤコビ行列は、ジョイント１１２の差分動作を、先端部１１６の位置および姿勢に対する差分動作それぞれの影響に写像する。前述の関係を線形化により近似すると、ＪΔＱ＝ΔＸとなり、これにより先端部１１６のデカルト位置Ｘの変化は、リンク位置Ｑの変化に関連付けられる。リンク機構１００が特異点に接近するにつれて、ヤコビ行列Ｊ（Ｑ）は、次第により悪条件となる。特異点に達すると、ヤコビ行列Ｊ（Ｑ）は、階数落ちとなる。
【００１４】
この開示に従うリンク機構１００の操作方法の１つの実現例において、特異値分解（ＳＶＤ）が用いられ、（１）リンク機構１００は特異点に接近しているかどうか、およびこのリンク機構は特異点にどれ程近いのか、（２）このリンク機構のどのジョイント１１２が特異点に接近しているのか、および（３）どの自由度がこの特異点において失われるであろうか、が求められる。概して、特異値分解（ＳＶＤ）を用いて、Ｕ＊Ｓ＊ＶT＝Ａというように任意の行列Ａを３つの行列Ｕ、Ｓ、およびＶの集合に分解することができ、式中ＵおよびＶは正規直交であり、Ｓは対角であり成分が降順に対角に配置される。行列Ａが与えられたとき、既知のアルゴリズムを用いて、本質的に効率的で安定した方法で、Ｕ、Ｓ、およびＶを計算してもよい。Ｓの対角成分は、Ａの特異値と呼んでもよい。Ｕの列は、左特異ベクトルと呼んでもよい。Ｖの列（すなわちＶTの行）は、右特異ベクトルと呼んでもよい。
【００１５】
この開示の１つの実現例に従うヤコビ行列Ｊの特異値分解の図を、図３に全般的に参照番号２００で示す。図２および図３を参照して、ヤコビ行列Ｊによって、ジョイント１１２の差分動作は、先端部１１６の位置決めに対する差分動作それぞれの影響に関連付けられる。Ｊの各列２０４は、対応するジョイント１１２に関連付けられる。行列Ｊの行列Ｕ、Ｓ、およびＶへの特異値分解の結果、リンク機構１００の直交自由度を、最も影響を受けやすい２１６から最も影響を受けにくい２２４の順に表わす行列Ｕ中の左特異ベクトル２０８がもたらされる。行列Ｖ（行列ＶTの転換行列）において、Ｕによって表わされる方向にリンク機構１００を移動させるジョイント動作の組合せを表わす右特異ベクトル２２８が得られる。行列Ｓにおいて、リンク機構１００の「可操作度」の程度を表わすＪの特異値２３６が得られる。したがって、Ｖの最後の列２４２（すなわち行列ＶTの最後の行）において優位であると表わされるジョイント１１２は、リンク機構１００の最も特異なジョイント１１２であり、Ｕの最後の列２２４に表わされる方向は、リンク機構１００において潜在的に失われる自由度である。さらに、ヤコビ行列Ｊの条件数は、最も大きな特異値２３６を、最も小さな特異値２３６により除算することにより計算されてもよい。この条件数は、完全条件の行列に対する１から、特異行列に対する無限大までである場合がある。いくつかの実現例においては、数値の安定のために、条件数の逆数が用いられ、これは完全な条件の行列に対する１から、特異行列に対する０までとなる。
【００１６】
この開示の１つの実現例に従う機械２４の操作方法のフロー図を、図４Ａおよび図４Ｂに全般的に参照番号３００で示す。操作３０８において、先端部１１６を所定の経路に沿って移動させるための運動学的ジョイント位置が計算される。操作３１２において、計算されたジョイント１１２の位置に対応するヤコビ行列Ｊが計算され、次にＳＶＤを用いて分解される。操作３１６において、条件数の逆数が求められる。操作３２０において、条件数の逆数は、たとえば０．００１という予め定義されたしきい値と比較される。条件数の逆数がしきい値よりも大きい場合は、リンク機構１００は、如何なる特異点にも接近していないと見なされ、制御は操作３４０へ進む。
【００１７】
条件数の逆数が閾値よりも小さいまたは等しい場合は、リンク機構１００の１つ以上のジョイント１１２が、特異点に接近していると見なされる。したがって、操作３２４において、特異点の度数ｎは、次の方法で求められる。条件数の逆数をしきい値より大きくする最も小さな特異値２３６が求められる。たとえば、特異値２３６が｛０．７、０．４、０．２、０．１、０．０００６、０．０００１｝の場合、条件数の逆数をしきい値０．００１より大きくする最も小さな特異値は、０．１（０．１／０．７＝０．１４３、しかし０．０００６／０．７＝０．０００８６）であり、特異点の度数ｎは２である（つまり、２つの特異方向が示される）。
【００１８】
操作３２８において、どのジョイント１１２が特異および／またはほぼ特異であるかが、最後のｎ個の右特異ベクトル２２８の最大成分の位置を特定することにより求められる。操作３３２において、ｎ個の「仮想ジョイント」が、最後のｎ個の左特異ベクトル２０８を取り、これらを最大特異値２３６で乗算することにより得られる。操作３３６において、操作３２８において求められたジョイント１１２と関連付けられるＪの列２０４は、操作３３２において得られた「仮想ジョイント」と置き換えられる。
【００１９】
操作３４０から３６０において、リンク機構１００の補正が、米国特許公開番号第２００６０２７１２４１号に記載されるように、たとえばシステムＪ＊ｄｑ＝ｄｘの収斂するまでの反復解法により計算される。具体的にはたとえば、操作３４０において、名目逆運動学計算を用いて、最初のリンク位置ベクトルＱiが得られる。操作３４４において完成状態順運動学計算およびリンク位置ベクトルＱiを用いて、実際の先端位置ベクトルＸが得られる。操作３４８において、ΔＸベクトルが計算され、これは所望の先端位置ベクトルと実際の先端位置ベクトルの差を示す。操作３５２において、操作３１２において得られたヤコビ行列を用いて（ヤコビ行列は操作３３６において修正されているかもしれないが）、ΔＱベクトルが計算される。操作３５６において、操作３５２において計算されたΔＱベクトルおよびリンク位置ベクトルＱiを用いて、新しいリンク位置ベクトルＱi+1が得られる。操作３６０において、収斂は、ベクトルＱi+1とＱiの絶対差を、所定の収斂基準εと比較することにより調べられる。まだ収斂に達していない場合は、ベクトルＱi+1を用いてベクトルＱiが更新され、制御は、操作３４４へ戻る。操作３６０において収斂に達すると、操作３６４において条件数の逆数はしきい値よりも小さいかどうか、つまりリンク機構は特異点に接近しているかどうかが判定される。もしそうであれば、操作３６８において、「仮想ジョイント」を表わしている値はベクトルＱi+1から除かれ、これは次に操作３７２において非特異ジョイント１１２を補正するために用いられる。ＳＶＤは各点に対して一度のみ行なわれ反復解法工程の一部ではないので、前述の方法およびシステムは、線形二次レギュレータ（ＬＱＲ）または減衰最小二乗法よりも計算コストが低い。
【００２０】
前述の方法およびシステムは、数多くの利点を有する。たとえば、左特異ベクトルは、機械の位置または複雑さにかかわらずリンク機構を正確に特異方向に動かすという点で理想の「仮想ジョイント」を提供する。別の利点は、この「仮想ジョイント」を最大特異値に調整することにより、得られる新しいヤコビ行列の条件が最適化され、これにより安定して高速で収束する解が、たとえば前述の方法３００の操作３４０から３６０において確実なものとされる。さらに、前述の方法の実現例は、特異点の位置の先見的知識を機械に対して要求しないので、同じアルゴリズムを、さまざまな機械に対して変更なしに用いることができる。
【００２１】
この開示の実現例は、自身の特異点近くで作業する自動化装置の位置決めの精度を向上
させる手段を提供する。精度を向上させることができると、新しい資本設備の取得費用および既存設備の維持費用を少なくすることができる。さらに、この開示のさまざまな実現例は、いくつかの異なる機械形状に対して有効な単一の方法を提供することができ、これにより新たな機械形状に対処するためのソフトウェア開発およびメンテナンスの必要性が低減される。
【００２２】
より精密な工作物を生産することができる調整された工作機械を提供することができる。したがって、より高度に精密な部品を、より少ない廃棄物を伴って作ることができる。航空機の製造に関連して実現化すると、より高度に精密な部品の製造により、航空機の重量の減少および性能の向上をもたらすことができる。この開示の実現例により、設定時間の減少と工作機械のより生産的な使用がもたらされ、これにより機械加工費が減少される。
【００２３】
前述の方法およびシステムのさまざまな実現例により、ソフトウェアを用いて複雑な特異点構成を有する機械（たとえば回転ジョイントを有する６軸多関節ロボット）を補正することが可能となる。補正は、所与の機械に対するすべての特異点の位置または性質の厳密な先見的知識はなくても、多様な機械構成に対して「進行中に」（“on the fly”）提供することができる。同一の中核的な補正ソフトウェアを、機械形状に基づいてこのソフトウェアを書き換える必要なしに、広範な機械構成に対して使用することができる。
【図１】
0005393461.tif 000002
【図２】
0005393461.tif 000003
【図３】
0005393461.tif 000004
【図４Ａ】
0005393461.tif 000005
【図４Ｂ】
0005393461.tif 000006