(57)【要約】【課題】ユーザに負担を課すことなく、特異点について各軸角度を決定できる６軸ロボットの各軸角度決定方法を提供する。【解決手段】コントローラは、６軸ロボットについて、ＰＴＰティーチングにより手先の位置姿勢を教示した結果に基づいて各軸の角度又は位置を決定する際に、次に各軸の角度又は位置を決定すべきロボットの姿勢が第４軸及び第６軸の回転軸が一致する状態となる特異点を示すと（Ｓ１：ＹＥＳ）、その特異点に移動させるための第４軸及び第６軸の角度については、何れか一方の軸の角度を現在値に固定して、他方の軸の角度を決定する（Ｓ２，Ｓ３）。【選択図】図１
2015085427.tif 000002
【特許請求の範囲】
【請求項１】
第４軸と第６軸との回転軸が一致する姿勢（以下、特異点と称す）を取り得る６軸ロボットを、ＰＴＰ（Point To Point）ティーチングにより手先の位置姿勢を教示した結果に基づいて各軸の角度又は位置を決定する方法において、
次に各軸の角度又は位置を決定すべき前記ロボットの姿勢が前記特異点を示すと、前記特異点に移動させるための前記第４軸及び前記第６軸の角度については、何れか一方の軸の角度を現在値に固定して、他方の軸の角度を決定することを特徴とする６軸ロボットの各軸角度決定方法。
【請求項２】
前記６軸ロボットの第１軸から第３軸が、互いに直交する直動軸で構成されているものを対象とすることを特徴とする請求項１記載の６軸ロボットの各軸角度決定方法。
【請求項３】
前記角度を現在値に固定する軸を、第４軸とすることを特徴とする請求項１又は２記載の６軸ロボットの各軸角度決定方法。
【請求項４】
第４軸と第６軸との回転軸が一致する姿勢（以下、特異点と称す）を取り得る６軸ロボットを、ＰＴＰ（Point To Point）ティーチングにより手先の位置姿勢を教示した結果に基づいて各軸の角度又は位置を決定するロボットの制御装置において、
次に各軸の角度又は位置を決定すべき前記ロボットの姿勢が前記特異点を示すと、前記特異点に移動させるための前記第４軸及び前記第６軸の角度については、何れか一方の軸の角度を現在値に固定して、他方の軸の角度を決定する角度決定手段を備えたことを特徴とする６軸ロボットの制御装置。
【請求項５】
前記６軸ロボットの第１軸から第３軸が、互いに直交する直動軸で構成されているものを制御対象とすることを特徴とする請求項４記載の６軸ロボットの制御装置。
【請求項６】
前記角度を現在値に固定する軸を、第４軸とすることを特徴とする請求項４又は５記載の６軸ロボットの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第４軸と第６軸との回転軸が一致する姿勢を取り得る６軸ロボットを、ティーチングにより手先の位置姿勢を教示した結果に基づいて各軸の角度を決定する方法及び装置に関する。
【背景技術】
【０００２】
例えば、垂直多関節型の６軸ロボットでは、手先が鉛直方向を向く姿勢を取るような場合は第４軸と第６軸との回転軸が一致する。この姿勢については、第４軸，第６軸それぞれの角度の組み合わせが無数に存在することになり、解が一意に定まらない特異点となる。６軸ロボットのティーチングをＣＰ（Continuous Pass）ティーチングで行う際には、各位置姿勢について各軸の角度が一意に定まるため、特異点は問題とならない。また、ＰＴＰ（Point To Point）ティーチングを行う場合でも、ユーザが各位置姿勢について各軸の角度を指定すれば、同じく特異点は問題とならない。ＰＴＰティーチングにおいて、各位置姿勢のみが指定され、そこから各軸の角度を逆変換して求めようとすると、特異点が問題となる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従来、特異点についてはエラーとして処理されていたため、ユーザは、特異点を回避するか、第４軸，第６軸のみならずその他の軸も含めて、それぞれの角度を個別に指定するなどの対応を強いられていた。尚、このような技術課題に対応した先行技術文献は特段見当たらなかったため、記載は省略している。
【０００４】
本発明は上記事情に鑑みてなされたものであり、その目的は、ユーザに負担を課すことなく、特異点について各軸角度を決定できる６軸ロボットの各軸角度決定方法及び６軸ロボットの制御装置を提供することにある。
【課題を解決するための手段】
【０００５】
請求項１記載の６軸ロボットの各軸角度決定方法によれば、ＰＴＰティーチングにより手先の位置姿勢を教示した結果に基づいて各軸の角度又は位置を決定する際に、次に各軸の角度又は位置を決定すべきロボットの姿勢が第４軸及び第６軸の回転軸が一致する状態となる特異点を示すと、その特異点に移動させるための第４軸及び第６軸の角度については、何れか一方の軸の角度を現在値に固定して、他方の軸の角度を決定する。
すなわち、第４軸及び第６軸の何れか一方の角度を現在値に定めれば、他方の軸だけを所定角度だけ回転させて６軸ロボットが特異点の位置姿勢を取るように決定できる。したがって、この方法によれば特異点についてエラー処理することなく、第４軸及び第６軸の角度を確実に決定することができる。
【０００６】
請求項２記載の６軸ロボットの各軸角度決定方法によれば、６軸ロボットの第１軸から第３軸が、互いに直交する直動軸で構成されているものを対象とする。このような構成の６軸ロボットでは、第１軸から第３軸がＸ，Ｙ，Ｚの３次元座標にそれぞれ対応しており、第４軸から第６軸を上記各座標軸方向に移動させる。そして、６軸ロボットに例えばピック・アンド・プレイスのような作業をさせることを想定すると、手先のアプローチベクトルがＺ軸の負方向を示す、第４軸及び第６軸の回転軸が一致する姿勢を取ることが多くなる。これを従来技術のようにエラー処理で対応すればエラー処理が頻発することになり、ユーザの作業負担を増大させてしまう。そこで、上記構成の６軸ロボットを対象とすればユーザの作業負担の増大を回避できるようになり、本願発明が極めて有効となる。
【０００７】
請求項３記載の６軸ロボットの各軸角度決定方法によれば、角度を現在値に固定する軸を第４軸とする。すなわち、一般的な６軸ロボットの構成では、基部側の第４軸の回動範囲が例えば±１８０度以内に制限されていることが多いのに対し、手先側の第６軸の回動範囲には第４軸のような制限がなく、例えば一方向に３６０度以上回転可能となっていることが多い。これは、ロボットに付属する配線等が、一般に、手先に向かうほど少なくなるという事情にもよっている。つまり、例えば特異点の姿勢を取るために、第４軸では回動範囲の制限に掛かると半周以上回転させる必要があるが、第６軸を回転させれば、僅かな回転量で済むことが多くなる。したがって、より短い時間で６軸ロボットに特異点の姿勢を取らせることができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態であり、６軸ロボットの第４軸及び第６軸の角度を決定する処理を示すフローチャート
【図２】６軸ロボットの（ａ）特異点、（ｂ）非特異点を示す関節モデル図
【図３】６軸ロボットの構成を示す斜視図
【図４】コントローラ及びロボットの駆動部の構成を示す機能ブロック図
【図５】第２実施形態を示す図１相当図
【発明を実施するための形態】
【０００９】
（第１実施形態）
以下、第１実施形態について図１から図４を参照して説明する。図３は、６軸ロボットの構成を示す斜視図である。このロボット１は、第１軸から第３軸が互いに直交する直動軸で構成されている。第１軸Ｊ１は図中のＸ軸方向に沿って配置され、内蔵されているボールねじ（図示せず）が駆動用モータ２０（１）（図４参照）により回転されることで、前記ボールねじと螺合するナット（図示せず）を有し、第１軸Ｊ１の上面側に配置されている移動体２が、第１軸Ｊ１に沿って直動する。
【００１０】
移動体２の上面には、図中のＹ軸方向に沿って配置される第２軸Ｊ２の一端側が固定されている。第２軸Ｊ２も、第１軸Ｊ１と同様にボールねじ及び駆動用モータ２０（２）を内蔵しており、駆動用モータがボールねじを回転させると、第２軸Ｊ２の図中Ｘ軸正方向側面に配置されている移動体３が、第２軸Ｊ２に沿って直動する。移動体３のＸ軸正方向側面には、図中のＺ軸方向に沿って配置される第３軸Ｊ３の下端側が固定されている。第３軸Ｊ３も上記と同様にボールねじ及び駆動用モータ２０（３）を内蔵しており、駆動用モータ２０（３）がボールねじを回転させると、第３軸Ｊ３のＸ軸正方向側面に配置されている移動体４が、第３軸Ｊ３に沿って直動する。
【００１１】
移動体４には、第４軸Ｊ４〜第６軸Ｊ６からなるアーム部５が連結されている。アーム部５の基部側にある第４軸Ｊ４は、移動体４に内蔵されている駆動用モータ２０（４）によりＺ軸を回転軸として回転する。第４軸Ｊ４の先端側（図中下端側）には第５軸Ｊ５が連結されており、第５軸Ｊ５の先端側には第６軸Ｊ６が連結されている。第５軸Ｊ５の回転軸は第４軸Ｊ４の回転軸と直交しており、前記回転軸の一端側に配置されている駆動モータ２０（５）により駆動されると、第５軸Ｊ５は、その先端側を回動させる。
【００１２】
第６軸Ｊ６の回転軸は第５軸Ｊ５の回転軸と直交しており、内蔵されている駆動モータ２０（６）により回転駆動される。ロボット１は、例えば第１軸Ｊ１の両端が工場等の天井から吊り下げられた状態で固定され、各軸を移動又は回転させて第６軸Ｊ６の先端である手先の位置や姿勢を変化させる。
【００１３】
ロボット１には、コントローラ１０（制御装置）及びティーチングペンダント１１が接続されている。コントローラ１０は、図４に示すように、ＣＰＵ１２，ＲＯＭ１３及びＲＡＭ１４，駆動回路１５，位置検出回路１６等を備えている。ＣＰＵ１２は、ＲＯＭ１３或いはＲＡＭ１４等に記憶されているプログラムに基づいてコントローラ１０全体を制御するとともに、周知のように、ロボット１予め定められている作業サイクルを繰り返し実行させるための各種の指令を出力する。
【００１４】
駆動回路１５は、ＣＰＵ１２から出力された指令をロボット２に与えるための電気信号に変換する例えばインバータ回路等により構成されている。ロボット１は、第１軸Ｊ１〜第６軸Ｊ６をそれぞれ駆動するための複数のモータ２０（１〜６）、及び各モータ２０に対応して設けられているエンコーダ２１（１〜６）を備えている。位置検出回路１６は、モータ２０の回転位置を検出するエンコーダ２１からの信号が入力され、モータ２０の回転位置を検出する。ＣＰＵ１２は、位置検出回路１６で検出されたモータ２０の回転位置に基づいて、モータ２０をフィードバック制御する。ロボット１では、モータ２０（１〜６）の出力は、減速機２２（１〜６）を介して各軸Ｊ１〜Ｊ６に伝達される。これらのモータ２０及び減速機２２は、駆動部２３を構成している。
【００１５】
尚、図３に示す姿勢のように、第６軸Ｊ６の回転軸が、第４軸Ｊ４と同じくＺ軸に一致している状態が特異点となる姿勢である。この姿勢は、図２（ａ）に６軸ロボット１の関節モデルで示すように、手先のアプローチベクトルがＺ軸のマイナス方向を示す状態である。また、同図（ｂ）は、第６軸Ｊ６の回転軸が、第４軸Ｊ４の回転軸と一致しない非特異点の姿勢を示している。図３に示すような構造の６軸ロボット１について、例えばピック・アンド・プレイスのような動作を教示することを想定すると、位置姿勢が特異点となるケースが頻発することが容易に想起される。
【００１６】
次に、本実施形態の作用について図１を参照して説明する。図１は、ロボット１をＰＴＰティーチングした各位置姿勢について、第４軸Ｊ４及び第６軸Ｊ６の角度を決定する処理を示すフローチャートである。尚、その他の軸の角度又は移動体２〜４の位置の決定については、従来と同様に決定されるため省略する。
【００１７】
先ず、教示した位置姿勢が特異点であるか否かを判断する（Ｓ１）。ここで、教示した姿勢のアプローチベクトルをＡ＝（Ｘ，Ｙ，Ｚ）とすると、特異点となるアプローチベクトルＡは、図２（ａ）に示すようにＡ＝（０，０，−１）を示す。したがって、Ｚ≒−１であれば特異点と判定し（ＹＥＳ）、ステップＳ２に移行する。一方、特異点でなければ（ＮＯ）従来通り通常の角度計算を行い、第４軸Ｊ４及び第６軸Ｊ６の角度を決定する（Ｓ４）。
【００１８】
ステップＳ２では、教示姿勢のノーマルベクトルから第４軸Ｊ４及び第６軸Ｊ６の角度の合計を求める。以下、この処理について説明する。６軸ロボット１における第４〜第６軸の姿勢行列は、以下のように表現される。
【数１】
2015085427.tif 000003
ここで、Ｃｉ，Ｓｉは、それぞれｉ（＝４〜６）軸の角度の余弦,正弦である。そして、特異点では、第５軸Ｊ５の角度が０度であるからＣ５＝１，Ｓ５＝０となり、姿勢行列は、以下のようになる。
【数２】
2015085427.tif 000004
【００１９】
第４軸Ｊ４及び第６軸Ｊ６の角度の合計値θ４＋６は、ノーマルベクトルの成分から、以下のように求められる。
【数３】
2015085427.tif 000005
尚、ｔａｎｉ＝Ｓｉ／Ｃｉである。
【００２０】
ステップＳ２で角度の合計値θ４＋６を得ると、第４軸Ｊ４については、現在の角度θ４を保持して、第６軸Ｊ６の角度θ６を求める（Ｓ３）。すなわち、
θ６＝θ４＋６−θ４
で角度θ６が求められる。尚、ステップＳ２及びＳ３は、角度決定手段に対応する。
【００２１】
ここで、ステップＳ３において、第４軸Ｊ４は現在の角度θ４を保持して第６軸Ｊ６の角度θ６を求めているのは、以下の理由による。すなわち、ロボット１では、第４軸Ｊ４の回動範囲が±１８０度以内に制限されているが、第６軸Ｊ６の回動範囲にはそのような制限がなく、一方向に３６０度以上回転可能となっている。これは、図示はしないが、ロボット１に付属する配線等が、一般に、手先に向かうほど少なくなるという事情にもよる。つまり、例えば特異点の姿勢を取るために、第４軸Ｊ４では回動範囲の制限に掛かると半周以上回転させる必要があるが、第６軸Ｊ６を回転させれば、僅かな回転量で済むことが多くなる。したがって、より短い時間で６軸ロボットに特異点の姿勢を取らせることができるからである。
【００２２】
以上のように本実施形態によれば、コントローラ１０は、６軸ロボット１について、ＰＴＰティーチングにより手先の位置姿勢を教示した結果に基づいて各軸の角度又は位置を決定する際に、次に各軸の角度又は位置を決定すべきロボットの姿勢が、第４軸Ｊ４及び第６軸Ｊ６の回転軸が一致する状態となる特異点を示すと、その特異点に移動させるための第４軸Ｊ４及び第６軸Ｊ６の角度については、何れか一方の軸の角度を現在値に固定して、他方の軸の角度を決定する。すなわち、何れか一方の軸の角度を現在値に定めれば、他方の軸だけを所定角度だけ回転させてロボット１が特異点の位置姿勢を取るように決定できる。したがって、この方法によれば特異点についてエラー処理することなく、第４軸Ｊ４及び第６軸Ｊ６の角度を確実に決定することができる。
【００２３】
そして、第１軸Ｊ１から第３軸Ｊ３が、互いに直交する直動軸で構成されているロボット１を制御対象とする。このような構成のロボット１に、例えばピック・アンド・プレイスのような作業をさせることを想定すると、手先のアプローチベクトルがＺ軸の負方向を示す特異点の姿勢を取ることが多くなる。これを従来技術のようにエラー処理で対応すればエラー処理が頻発することになり、ユーザの作業負担を増大させてしまう。そこで、本実施形態のロボット１を対象とすればユーザの作業負担の増大を回避できるので、本発明が極めて有効となる。
【００２４】
また、角度を現在値に固定する軸を第４軸Ｊ４としたので、より短い時間で６軸ロボットに特異点の姿勢を取らせることができる。加えて、第４軸Ｊ４を回転させると、上述したケースのように、第６軸Ｊ６を回転させるよりも回転量がより大きくなることがある。すると、例えばユーザ（作業者）が初心者であった場合には、ティーチングした結果に対して第４軸Ｊ４が、予想外に大幅な回転をしたと捉えることも想定される。この時、ユーザは、ティーチング作業に何らかのミスがあったのではないか？という疑義を抱き、ティーチング作業をやり直すことも考えられる。このように、本来不要な作業を再度実行するのは極めて非効率的であるから、本実施形態のように第４軸Ｊ４の角度を現在値に固定して第６軸Ｊ６を回転させれば、ティーチング作業の初心者に不要な疑義を生じさせる状況を回避できる。
【００２５】
また、本実施形態では、ステップＳ１において特異点を判定するのにアプローチベクトルＡのＺ軸成分を参照している。特異点の判定は、教示された位置姿勢を一旦逆変換した結果に基づいて行うこともできる。ここで、双方の方式による処理時間の一例を具体的に比較しておく。条件として、１６００回の処理時間の平均で比較する。
【００２６】
逆変換を解くのに要する時間が約１４．７μｓである場合に、ステップＳ１における判定に要する時間が約０．３７μｓになるとする。一旦逆変換を解いた結果について特異点か否かを判定し、特異点であった場合に再度処理を行うのに要する時間は約２９．４μｓである。この場合、ステップＳ１における判定が処理時間の面から有意となるのは、全教示点における特異点の割合が２．５％以上ある時となる（但し、本実施形態における特異点の処理時間も１４．７μｓと仮定している）。したがって、実際のケースを想定すると、ほぼ本実施形態で行っている判定の方が有利になると考えられる。
【００２７】
（第２実施形態）
図５は第２実施形態であり、第１実施形態と同一部分には同一符号を付して説明を省略し、以下異なる部分について説明する。図５に示すように、第２実施形態では、ステップＳ１で「ＹＥＳ」と判断すると、続くステップＳ１１において、ステップＳ２と同様に角度の合計値θ４＋６を求める。それと共に、角度の現在値からの移動量δθを求める。尚、ここでの移動量δθは、第１実施形態においてステップＳ３で求めた角度の「差分」に等しい。
【００２８】
続くステップＳ１２では、移動量δθ分だけ第４軸Ｊ４を回転させた場合の時間Ｔ４と、第６軸Ｊ６を回転させた場合の時間Ｔ６とを、それぞれの軸の回転速度から求める。すなわち、第４軸Ｊ４，第６軸Ｊ６では、それぞれモータ２０（４），２０（６）の容量や、減速機２２（４），２２（６）の減速比が異なっているため、時間Ｔ４，Ｔ６も異なる値となる。
【００２９】
そして、ステップＳ１３において時間Ｔ４，Ｔ６の長さを比較し、（Ｔ４＞Ｔ６）であれば（ＹＥＳ）第４軸Ｊ４の角度θ４を現在値に固定し、第６軸Ｊ６をδθだけ回転させる（Ｓ１４）。一方、（Ｔ４＜Ｔ６）であれば（ＮＯ）第６軸Ｊ６の角度θ６を現在値に固定し、第４軸Ｊ４をδθだけ回転させる（Ｓ１５）。言うまでもないが、Ｔ４＝Ｔ６であれば、どちらの軸を回転させても良い。尚、ステップＳ１２及びＳ１３は、回転軸決定手段に対応する。
【００３０】
以上のように第２実施形態によれば、コントローラ１０は、ロボット１を現在の位置姿勢から次の特異点の姿勢に移動させる際に、角度の現在値からの移動量δθを求めると、移動量δθ分だけ第４軸Ｊ４を回転させた場合の時間Ｔ４と、第６軸Ｊ６を回転させた場合の時間Ｔ６とを求める。そして、時間Ｔ４，Ｔ６の長さを比較し、時間が長い方の軸の角度を現在値に固定し、時間が短い方の軸の角度を変化させるようにした。したがって、特異点への移動時間を、より短くして作業効率を向上させることができる。
【００３１】
本発明は上記した、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
第１実施形態において、第４軸Ｊ４の回動範囲に制限が無ければ、第６軸Ｊ６の角度を現在値に固定して、第４軸Ｊ４の角度を変化させても良い。例えば、第６軸Ｊ６の回転速度がより速いとすれば第４軸Ｊ４の出力トルクがより大きい、という駆動条件も想定されるので、負荷に応じてトルクを重視すると第４軸Ｊ４の角度を変化させる方が有利となる場合もある。またこの場合、ロボット１の外部に配線して接続する装置やケーブルに持たせる余裕の部分を、直動軸である第１軸Ｊ１〜第３軸Ｊ３に近い部分に配置することができるので、これらの軸に与える負担が少なくなる。
【００３２】
６軸ロボットの構成は図３に示すものに限らず、一般的な第４軸と第６軸との回転軸が一致する姿勢を取り得る垂直多関節型の６軸ロボットに適用しても良い。その場合、特異点については、ロボットの構成に応じて判定可能な方式を採用すれば良い。
【符号の説明】
【００３３】
図面中、１は６軸ロボット、１０はコントローラ（制御装置，角度決定手段，回転軸決定手段）、Ｊ１〜Ｊ６は第１軸〜第６軸を示す。
【図１】
2015085427.tif 000006
【図２】
2015085427.tif 000007
【図３】
2015085427.tif 000008
【図４】
2015085427.tif 000009
【図５】
2015085427.tif 000010