(57)【要約】【課題】  操作者による教示の手間と時間を低減し、目標位置までの軌道を確実に決定することができるロボットアームの軌道教示方法および軌道教示装置を提供する。【解決手段】  ステップ移動量だけ移動した手首中心座標を、教示経路上の次の移動先と定め、この移動先を基準として再び次の移動先を計算する。これを繰り返すことで目標位置までの軌道を決定する。【選択図】      図４
2009050949.tif 000002
【特許請求の範囲】
【請求項１】
対象物に対して作業を実行するハンド８、およびこのハンド８にそれぞれ関節Ｊ１〜Ｊ７を介して姿勢変更可能に順次連結した複数の可動部を有するロボットアームＲＡに対して、前記ハンド８とこのハンド８に最も近い可動部との間の関節の中心である手首中心Ｏ７を、初期位置Ｐ０から目標位置Ｐ１まで移動させる軌道を教示するロボットアームＲＡの軌道教示方法であって、
前記手首中心Ｏ７を計算上で繰り返しステップ移動させるステップ移動量を設定するステップ移動量設定過程（ステップＳ１）と、
前記目標位置Ｐ１における各関節の角度である関節別目標角度を設定する関節別目標角度設定過程（ステップＳ２）と、
各関節の角度を、関節別目標角度に近づく方向に１関節毎に、制御可能な最小角度の単位で計算上変化させ、この１関節の最小角度の変化の都度、手首中心座標を求めるという一連の関節毎最小変化処理を、求められた手首中心座標が、前記ステップ移動の現在の手首中心座標から直線距離で前記ステップ移動量だけ移動するまで繰り返し、このステップ移動量だけ移動した手首中心座標を、教示経路上の次の移動先と定め、かつこの移動先を前記ステップ移動の現在の手首中心座標として更新するステップ単位軌道計算過程（ステップＳ３）と、
このステップ単位軌道計算過程（ステップＳ３）を、手首中心座標が前記目標位置Ｐ１に達するまで繰り返すステップ単位軌道計算繰り返し過程（ステップＳ４）と、
を含むことを特徴とするロボットアームの軌道教示方法。
【請求項２】
請求項１において、前記ステップ移動量設定過程（ステップＳ１）は、ステップ移動量の初期値を設定する初期設定過程（ステップＳ１１）と、前記関節毎最小変化処理の各回における初期に、ステップ移動の現在の手首中心Ｏ７と目標位置Ｐ１の手首中心Ｏ７との間の直線距離を比較し、この直線距離が前記ステップ移動量の初期値よりも大きい場合は、ステップ移動量を小さく変更する変更過程（ステップＳ１２）とを含むロボットアームの軌道教示方法。
【請求項３】
請求項１または請求項２において、前記ステップ移動量設定過程（ステップＳ１）で、ステップ移動量を前記手首中心Ｏ７が移動する移動時間となるステップ移動時間を設定し、前記ステップ単位軌道計算過程（ステップＳ３）では、前記の設定したステップ移動時間によるステップ移動量を手首中心Ｏ７が移動する速度として定めるロボットアームの軌道教示方法。
【請求項４】
請求項１ないし請求項３のいずれか１項において、前記ステップ単位軌道計算過程（ステップＳ３）で、前記関節毎最小変化処理により手首中心座標を求めた後、ロボットアームＲＡと障害物ＯＢとの干渉の有無を調べ、干渉が生じる場合は、今回求めた手首中心座標を採用せずに、別の関節について前記ステップ単位軌道計算過程（ステップＳ３）を開始させる干渉回避指定を含むロボットアームの軌道教示方法。
【請求項５】
請求項１ないし請求項３のいずれか１項において、前記ステップ単位軌道計算過程（ステップＳ３）は、関節別目標角度までの残り角度が大きい関節の順に、前記関節の角度の計算上の変化を行わせるロボットアームの軌道教示方法。
【請求項６】
対象物に対して作業を実行するハンド８、およびこのハンド８にそれぞれ関節Ｊ１〜Ｊ７を介して姿勢変更可能に順次連結した複数の可動部を有するロボットアームＲＡに対して、前記ハンド８とこのハンド８に最も近い可動部との間の関節の中心である手首中心Ｏ７を、初期位置Ｐ０から目標位置Ｐ１まで移動させる軌道を教示するロボットアームＲＡの軌道教示装置ＫＳであって、
前記手首中心Ｏ７を計算上で繰り返しステップ移動させるステップ移動量を設定するステップ移動量設定手段９と、
前記目標位置Ｐ１における各関節の角度である関節別目標角度を設定する関節別目標角度設定手段１０と、
各関節の角度を、関節別目標角度に近づく方向に１関節毎に、制御可能な最小角度の単位で計算上変化させ、この１関節の最小角度の変化の都度、手首中心座標を求めるという一連の関節毎最小変化処理を、求められた手首中心座標が、前記ステップ移動の現在の手首中心座標から直線距離で前記ステップ移動量だけ移動するまで繰り返し、このステップ移動量だけ移動した手首中心座標を、教示経路上の次の移動先と定め、かつこの移動先を前記ステップ移動の現在の手首中心座標として更新するステップ単位軌道計算手段１１と、
このステップ単位軌道計算手段１１を、手首中心座標が前記目標位置Ｐ１に達するまで繰り返すステップ単位軌道計算繰り返し手段１３と、
を含むことを特徴とするロボットアームの軌道教示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、産業用ロボット、人間の生活を支援するロボット等に適用されるロボットアームの軌道教示方法および軌道教示装置に関する。
【背景技術】
【０００２】
産業用ロボットや人間の生活を支援するロボットの分野において、例えば７軸以上の関節を有する多関節ロボットが提案されている。この多関節ロボットは、姿勢の冗長性を有する。この「冗長性」とは、本来、余剰となるものを付加することによって、可能性が高められている状態であり、システム等においては、構成を二重化、多重化したり、予備の手段を用意したりすることによって冗長性が確保される。
この冗長性を有する多関節ロボットの先端に取り付けられたエンドエフェクタにより、溶接、塗装や対象物の把持等の作業を行う場合の軌道を定める方法として、ヤコビ行列、逆ヤコビ行列を用いて軌道を計算する方法や、予め通過点を複数定めておき、これら複数の通過点を繋いで軌道とする方法があった（特許文献１，２）。
【特許文献１】特開平５−４１８１号公報
【特許文献２】特開平７−１９５０００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
逆ヤコビ行列を用いて軌道を計算する方法では、計算途中で逆ヤコビ行列が存在しない特異点が出てくる可能性があるという欠点があった。
また、予め通過点を複数定めておき、これら複数の通過点を繋いで軌道とする方法では、人が教示装置等を用いて指示、操作を行わなければならないため、操作者による教示の手間と時間を要するという欠点があった。
【０００４】
この発明の目的は、操作者による教示の手間と時間を低減し、目標位置までの軌道を確実に決定することができるロボットアームの軌道教示方法および軌道教示装置を提供することである。
【課題を解決するための手段】
【０００５】
この発明のロボットアームの軌道教示方法は、対象物に対して作業を実行するハンド８、およびこのハンド８にそれぞれ関節Ｊ１〜Ｊ７を介して姿勢変更可能に順次連結した複数の可動部を有するロボットアームＲＡに対して、前記ハンド８とこのハンド８に最も近い可動部との間の関節の中心である手首中心Ｏ７を、初期位置Ｐ０から目標位置Ｐ１まで移動させる軌道を教示するロボットアームＲＡの軌道教示方法であって、前記手首中心Ｏ７を計算上で繰り返しステップ移動させるステップ移動量を設定するステップ移動量設定過程（ステップＳ１）と、前記目標位置Ｐ１における各関節の角度である関節別目標角度を設定する関節別目標角度設定過程（ステップＳ２）と、各関節の角度を、関節別目標角度に近づく方向に１関節毎に、制御可能な最小角度の単位で計算上変化させ、この１関節の最小角度の変化の都度、手首中心座標を求めるという一連の関節毎最小変化処理を、求められた手首中心座標が、前記ステップ移動の現在の手首中心座標から直線距離で前記ステップ移動量だけ移動するまで繰り返し、このステップ移動量だけ移動した手首中心座標を、教示経路上の次の移動先と定め、かつこの移動先を前記ステップ移動の現在の手首中心座標として更新するステップ単位軌道計算過程（ステップＳ３）と、このステップ単位軌道計算過程（ステップＳ３）を、手首中心座標が前記目標位置Ｐ１に達するまで繰り返すステップ単位軌道計算繰り返し過程（ステップＳ４）とを含むことを特徴とする。
【０００６】
この構成によると、ステップ移動量設定過程（ステップＳ１）では、手首中心Ｏ７を計算上で繰り返しステップ移動させるステップ移動量を設定する。関節別目標角度設定過程（ステップＳ２）において、手首中心Ｏ７の目標位置Ｐ１における各関節の角度である関節別目標角度を設定する。次に、ステップ単位軌道計算過程（ステップＳ３）では、関節毎最小変化処理を、求められた手首中心座標が、ステップ移動の現在の手首中心座標から直線距離でステップ移動量だけ移動するまで繰り返す。このステップ移動量だけ移動した手首中心座標を、教示経路上の次の移動先と定め、かつこの移動先を前記ステップ移動の現在の手首中心座標として更新する。ステップ単位軌道計算繰り返し過程（ステップＳ４）では、手首中心座標が前記目標位置Ｐ１に達するまで繰り返す。
【０００７】
このように、計算上で一定のステップ移動量だけ移動させて、手首中心座標を教示経路上の次の移動先と定め、この移動先を基準として再び次の移動先を計算するというステップ毎の計算を目標位置まで繰り返すことで、手首中心の軌道を決定する。したがって、従来の計算途中で逆ヤコビ行列が存在しないというような問題を生じることなく、計算により確実に軌道が決定でき、また操作者による教示の手間と時間を要する問題を未然に解消することができる。
【０００８】
前記ステップ移動量設定過程（ステップＳ１）は、ステップ移動量の初期値を設定する初期設定過程（ステップＳ１１）と、前記関節毎最小変化処理の各回における初期に、ステップ移動の現在の手首中心Ｏ７と目標位置Ｐ１の手首中心Ｏ７との間の直線距離を比較し、この直線距離が前記ステップ移動量の初期値よりも大きい場合は、ステップ移動量を小さく変更する変更過程（ステップＳ１２）とを含むものであっても良い。このように、上記直線距離とステップ移動量の初期値との大小関係に基づいて、ステップ移動量を小さく変更することで、手首中心Ｏ７が計算途中でステップ移動できなくなる不具合を未然を防止することができる。
【０００９】
前記ステップ移動量設定過程（ステップＳ１）で、ステップ移動量を前記手首中心Ｏ７が移動する移動時間となるステップ移動時間を設定し、前記ステップ単位軌道計算過程（ステップＳ３）では、前記の設定したステップ移動時間によるステップ移動量を手首中心Ｏ７が移動する速度として定めるようにしても良い。この場合、ステップ移動量をステップ移動時間で除すことにより、手首中心Ｏ７が移動する速度を正確に求めることが可能となる。
【００１０】
前記ステップ単位軌道計算過程（ステップＳ３）で、前記関節毎最小変化処理により手首中心座標を求めた後、ロボットアームＲＡと障害物ＯＢとの干渉の有無を調べ、干渉が生じる場合は、今回求めた手首中心座標を採用せずに、別の関節について前記ステップ単位軌道計算過程（ステップＳ３）を開始させる干渉回避指定を含むようにしても良い。この干渉が生じる場合、今回求めた手首中心座標を採用せずに、別の関節についてステップ単位軌道計算過程（ステップＳ３）を開始させる。逆に、干渉無しの場合は、今回求めた手首中心座標を採用する。したがって、障害物ＯＢがある場合に、この障害物ＯＢを回避する指示、操作を人が教示装置を用いて行う必要がなく、その手間と時間を低減することができる。
【００１１】
前記ステップ単位軌道計算過程（ステップＳ３）は、関節別目標角度までの残り角度が大きい関節の順に、前記関節の角度の計算上の変化を行わせるようにしても良い。この場合、関節別目標角度までの残り角度が大きい関節から小さい関節の順に順次、関節角度の計算上の変化を行わせ、現在の手首中心座標をスムーズに更新することが可能となる。したがって、関節角度の計算上の変化を収束させて、現在の手首中心座標を短時間で得ることが可能となる。しかも、制御系の計算処理負荷を軽減することができる。
【００１２】
この発明のロボットアームの軌道教示装置は、対象物に対して作業を実行するハンド８、およびこのハンド８にそれぞれ関節Ｊ１〜Ｊ７を介して姿勢変更可能に順次連結した複数の可動部を有するロボットアームＲＡに対して、前記ハンド８とこのハンド８に最も近い可動部との間の関節の中心である手首中心Ｏ７を、初期位置Ｐ０から目標位置Ｐ１まで移動させる軌道を教示するロボットアームＲＡの軌道教示装置ＫＳであって、前記手首中心Ｏ７を計算上で繰り返しステップ移動させるステップ移動量を設定するステップ移動量設定手段９と、前記目標位置Ｐ１における各関節の角度である関節別目標角度を設定する関節別目標角度設定手段１０と、各関節の角度を、関節別目標角度に近づく方向に１関節毎に、制御可能な最小角度の単位で計算上変化させ、この１関節の最小角度の変化の都度、手首中心座標を求めるという一連の関節毎最小変化処理を、求められた手首中心座標が、前記ステップ移動の現在の手首中心座標から直線距離で前記ステップ移動量だけ移動するまで繰り返し、このステップ移動量だけ移動した手首中心座標を、教示経路上の次の移動先と定め、かつこの移動先を前記ステップ移動の現在の手首中心座標として更新するステップ単位軌道計算手段１１と、このステップ単位軌道計算手段１１を、手首中心座標が前記目標位置Ｐ１に達するまで繰り返すステップ単位軌道計算繰り返し手段１３とを含むことを特徴とする。
【００１３】
この構成によると、ステップ移動量だけ移動して手首中心座標を、教示経路上の次の移動先と定め、この移動先を基準として再び次の移動先を計算する。これを繰り返すことで目標位置Ｐ１までの軌道を確実に決定することができる。したがって、従来の計算途中で逆ヤコビ行列が存在しない問題、および操作者による教示の手間と時間を要する問題を未然に解消することができる。
【発明の効果】
【００１４】
この発明のロボットアームの軌道教示方法は、対象物に対して作業を実行するハンド、およびこのハンドにそれぞれ関節を介して姿勢変更可能に順次連結した複数の可動部を有するロボットアームに対して、前記ハンドとこのハンドに最も近い可動部との間の関節の中心である手首中心を、初期位置から目標位置まで移動させる軌道を教示するロボットアームの軌道教示方法であって、前記手首中心を計算上で繰り返しステップ移動させるステップ移動量を設定するステップ移動量設定過程と、前記目標位置における各関節の角度である関節別目標角度を設定する関節別目標角度設定過程と、各関節の角度を、関節別目標角度に近づく方向に１関節毎に、制御可能な最小角度の単位で計算上変化させ、この１関節の最小角度の変化の都度、手首中心座標を求めるという一連の関節毎最小変化処理を、求められた手首中心座標が、前記ステップ移動の現在の手首中心座標から直線距離で前記ステップ移動量だけ移動するまで繰り返し、このステップ移動量だけ移動した手首中心座標を、教示経路上の次の移動先と定め、かつこの移動先を前記ステップ移動の現在の手首中心座標として更新するステップ単位軌道計算過程と、このステップ単位軌道計算過程を、手首中心座標が前記目標位置に達するまで繰り返すステップ単位軌道計算繰り返し過程とを含むため、操作者による教示の手間と時間を低減し、目標位置までの軌道を確実に決定することができる。
【発明を実施するための最良の形態】
【００１５】
この発明の一実施形態を図１ないし図６と共に説明する。本実施形態に係るロボットアームの軌道教示装置は、７軸の関節を有する多関節のロボットアームＲＡに適用される。軌道教示装置は、ロボットアームＲＡに対して、ハンド８とこのハンド８に最も近い可動部との間の関節の中心である手首中心Ｏ７を、初期位置Ｐ０から目標位置Ｐ１まで移動させる軌道を教示する。ただし、関節数は、７軸に限定されるものではなく、例えば８軸以上であっても良い。また、６軸以下であっても良い。以下の説明は、ロボットアームＲＡの軌道教示方法についての説明をも含む。この多関節のロボットアームＲＡは、障害物を回避し、先端に取り付けられたエンドエフェクタいわゆるハンド８により、溶接・塗装や対象物の把持等の作業を行う。ただし、これらの作業に限定されるものではない。
【００１６】
図１に示すように、ロボットアームＲＡは、アーム取付台１２に取り付けられる。このロボットアームＲＡは、関節を介して順次連結される可動部として、作業内容に応じて付替え可能なハンド８、このハンド８に手首関節Ｊ５〜Ｊ７を介して姿勢変更可能に連結した前腕５、およびこの前腕５の肘部４に肘関節Ｊ３，Ｊ４を介して連結した上腕３を有する。この上腕３は肩関節Ｊ１，Ｊ２を介してアーム取付台１２に取り付けられている。
【００１７】
前記手首関節Ｊ５〜Ｊ７は、それぞれ１自由度を有し、組合せにより手首に３自由度を与える関節である。手首関節Ｊ５〜Ｊ７のうち手首関節Ｊ５は、前腕５の軸芯５ｉ回りの回転を可能とする関節である。手首関節Ｊ６，Ｊ７は、前腕５に対してハンド８を直交２軸方向にそれぞれ傾斜角度変更可能とする関節である。手首関節Ｊ６は、前腕５に連結される第１手首６によって実現され、手首関節Ｊ７は、前記第１手首６に連結される第２手首７によって実現される。この第２手首７は、凹形状に形成されたブラケット７ａを備え、このブラケット７ａの底部７ａａからハンド８が突出するようにブラケット７ａに一体に設けられている。このハンド８により溶接・塗装や対象物を把持可能に構成されている。
【００１８】
前記肘関節Ｊ３，Ｊ４は、直交２軸方向にそれぞれ傾斜角度変更可能な１自由度を有し、組合わせによって肘に２自由度を与える関節である。前記肩関節Ｊ１，Ｊ２は、アーム取付台１２に対して上腕３を直交２軸方向にそれぞれ傾斜角度変更可能とする関節である。肩関節Ｊ１は第１肩１によって実現され、肩関節Ｊ２は第２肩２によって実現される。また、この多関節のロボットアームＲＡは、上記各部を動作させる図示外のモータ、および各部の動作を制御する後述の軌道教示装置ＫＳを有する。
上記関節Ｊ１〜Ｊ７の各軸は、必ずしも角度変位可能な軸である必要はなく、関節Ｊ１〜Ｊ７のうち少なくともいずれか１つの関節の軸が、例えば伸縮動作または平行リンク動作等の動作部を有するものであっても良い。
【００１９】
次に、このロボットアームＲＡの軌道教示装置ＫＳについて説明する。
軌道教示装置ＫＳは、例えば、中央処理装置（ＣＰＵ）、メモリ等の記憶手段、および入出力インターフェース等（いずれも図示せず）を有するマイクロコンピュータ等のコンピュータと、このコンピュータに実行される教示用の軌道教示プログラム（図示せず）とによって実現される。前記記憶手段に、上記軌道教示プログラムが格納されている。この軌道教示プログラムにより、図３に概念構成で示す各手段が構成される。なお、軌道教示プログラムおよび、教示後のロボットアーム動作を制御する図示外の動作制御プログラムによって、ロボットアームＲＡの上位の制御装置（図示せず）が構成される。
【００２０】
軌道教示装置ＫＳは、ステップ移動量設定手段９と、関節別目標角度設定手段１０と、ステップ単位軌道計算手段１１と、ステップ単位軌道計算繰り返し手段１３とを有する。これらのうち、ステップ移動量設定手段９は、手首中心Ｏ７を計算上で繰り返しステップ移動させるステップ移動量を設定する。前記手首中心Ｏ７は、手首関節Ｊ５〜Ｊ７の直交３軸が交わる交点であり、この交点の座標を「手首中心座標」と称す。
関節別目標角度設定手段１０は、前記手首中心Ｏ７の目標位置Ｐ１における各関節の角度である関節別目標角度を設定する。ステップ単位軌道計算手段１１は、各関節の角度を、関節別目標角度に近づく方向に１関節毎に、制御可能な最小角度の単位で計算上変化させる。さらにステップ単位軌道計算手段１１は、この１関節の最小角度の変化の都度、手首中心座標を求めるという一連の関節毎最小変化処理を、求められた手首中心座標が、前記ステップ移動の現在の手首中心座標から直線距離で前記ステップ移動量だけ移動するまで繰り返す。
【００２１】
前記ステップ単位軌道計算手段１１は、このステップ移動量だけ移動した手首中心座標を、教示経路上の次の移動先と定め、かつこの移動先を前記ステップ移動の現在の手首中心座標として更新する。ステップ単位軌道計算繰り返し手段１３は、このステップ単位軌道計算手段１１を、手首中心座標が前記目標位置Ｐ１に達するまで繰り返し実行する。
【００２２】
図４は、ロボットアームの軌道教示方法を上位概念化して表す流れ図である。
この軌道教示方法は、多関節のロボットアームＲＡに対して、ハンド８と手首中心Ｏ７を、初期位置Ｐ０から目標位置Ｐ１まで移動させる軌道を教示する軌道教示方法である。この軌道教示方法は、主に、ステップ移動量設定過程（ステップＳ１）と、関節別目標角度設定過程（ステップＳ２）と、ステップ単位軌道計算過程（ステップＳ３）と、ステップ単位軌道計算繰り返し過程（ステップＳ４）とを有する。
【００２３】
ステップ移動量設定過程（ステップＳ１）は、初期設定過程（ステップＳ１１）と、変更過程（ステップＳ１２）とを有する。これらのうち初期設定過程（ステップＳ１１）では、手首中心Ｏ７を計算上で繰り返しステップ移動させるステップ移動量の初期値を設定する。次に、変更過程（ステップＳ１２）に移行し、関節毎最小変化処理の各回における初期に、ステップ移動の現在の手首中心Ｏ７と目標位置Ｐ１の手首中心Ｏ７との間の直線距離を比較し、この直線距離が前記ステップ移動量の初期値よりも大きい場合は、ステップ移動量を小さく変更する。
【００２４】
上記ステップ移動量設定過程（ステップＳ１）の後、関節別目標角度設定過程（ステップＳ２）に移行し、前記目標位置Ｐ１における各関節の角度である関節別目標角度を設定する。次に、ステップ単位軌道計算過程（ステップＳ３）に移行する。同過程（ステップＳ３）において、各関節の角度を、関節別目標角度に近づく方向に１関節毎に、制御可能な最小角度の単位で計算上変化させ、この１関節の最小角度の変化の都度、手首中心座標を求めるという一連の関節毎最小変化処理を、求められた手首中心座標が、前記ステップ移動の現在の手首中心座標から直線距離で前記ステップ移動量だけ移動するまで繰り返す。
【００２５】
さらに、ステップ単位軌道計算過程（ステップＳ３）において、このステップ移動量だけ移動した手首中心座標を、教示経路上の次の移動先と定め、かつこの移動先を前記ステップ移動の現在の手首中心座標として更新する。その後、ステップ単位軌道計算繰り返し過程（ステップＳ４）に移行し、手首中心座標が前記目標位置Ｐ１に達したか否かを判断する。目標位置Ｐ１に達していないとの判断で（ステップＳ４：ＮＯ）、ステップ単位軌道計算過程（ステップＳ３）に戻る処理を繰り返す。目標位置Ｐ１に達したとの判断で（ステップＳ４：ＹＥＳ）、本処理を終了する。
【００２６】
図６は、このロボットアームの軌道教示方法を段階的に表す流れ図である。
操作者によるスイッチ操作、または上記軌道教示プログラム等に基づいて、現在の手首中心座標から次の手首中心座標までの直線距離である「ステップ移動量」、手首中心Ｏ７が「ステップ移動量」だけ移動する時間を「ステップ移動時間」と定義し、これら「ステップ移動量」、「ステップ移動時間」を設定する（ステップａ１）。次に、ステップａ２に移行し、各関節の目標位置における関節角度を、初期位置Ｐ０からの相対角度で定める。次に、「現在の手首中心Ｏ７」と「目標位置Ｐ１の手首中心Ｏ７」間の直線距離を、前記「ステップ移動量」と比較するために計算する（ステップａ３）。
【００２７】
次に、前記直線距離は「ステップ移動量」よりも大きいか否かを判断する（ステップａ４）。否との判断（ステップａ４：Ｎｏ）つまり計算途中で手首中心Ｏ７が「ステップ移動量」だけ移動できなくなった場合は、設定した「ステップ移動量」、「ステップ移動時間」を共に小さく変更する（ステップａ５）。その後、ステップａ３に戻る処理を繰り返す。ステップａ４において、直線距離は「ステップ移動量」よりも大きいとの判断（ステップａ４：Ｙｅｓ）でステップａ６に移行する。
【００２８】
このステップａ６では、各関節が動作可能な「角速度上限値」と「ステップ移動時間」との積から、各関節の「移動時間内に移動可能な最大角度」を計算する。次に、各関節の目標位置Ｐ１における関節角度までの残り角度変位が大きい順に角度変位させる順番を決める（ステップａ７）。この決めた順番に従って、順番が来た１関節を「制御可能な最小角度」単位で計算上で角度変位させる（ステップａ８）。
【００２９】
次に、順運動学計算を行い、手首座標を求める（ステップａ９）。前記順運動学計算とは、各関節の関節角度が定まるとこの関節角度を用いてロボットアームの基端部から順番に各関節位置つまり座標を計算し、最後に先端の手首座標を計算することである。次に、障害物の位置・大きさ、ロボットアームＲＡの太さや順運動学計算の結果から得られる関節位置をもとに、ロボットアームＲＡと障害物ＯＢとの干渉の有無をチェックする（ステップａ１０）。例えば、各関節位置における座標と障害物ＯＢにおける座標との距離が、障害物ＯＢの種類、大きさ等に応じて規定する閾値以下になる条件で、ロボットアームＲＡと障害物ＯＢとが干渉すると判断する。干渉が発生した場合（ステップａ１１：Ｎｏ）、その関節を角度変位させるのを取り消す（ステップａ１２）。その後、ステップａ７で決めた次の順番の関節を選択し（ステップａ１５）、ステップａ８に戻る処理を繰り返す。
【００３０】
前記干渉がない場合（ステップａ１１：Ｙｅｓ）、「現在の手首中心Ｏ７」と「計算上変位させた後の手首中心Ｏ７」間の直線距離を計算する（ステップａ１３）。現在の手首中心座標と、計算上で変位させた後の手首中心座標との直線距離は、設定した「ステップ移動量」と必ずしも一致するわけではないので、直線距離が「ステップ移動量」以上になったら（ステップａ１４：Ｙｅｓ）、１ステップの計算を終了とし、上記の計算上で変位させた後の手首中心座標を「次の移動先」として決定する（ステップａ１６）。直線距離が「ステップ移動量」未満である場合（ステップａ１４：Ｎｏ）、次の順番の関節を選択するステップａ１５および前記ステップａ８に戻る処理を繰り返す。
【００３１】
ステップａ１６の後、「次の移動先」は「目標位置Ｐ１」と一致したか否かを判断する（ステップａ１７）。「次の移動先」が「目標位置Ｐ１」と一致していないとの判断で（ステップａ１７：Ｎｏ）、求めた手首中心Ｏ７の「次の移動先」を新たな「現在位置」とし（ステップａ１８）、ステップａ３に戻る処理を繰り返す。「次の移動先」が「目標位置Ｐ１」と一致したとの判断（ステップａ１７：Ｙｅｓ）で、手首中心Ｏ７の軌道を決定し、本処理を終了する。
【００３２】
以上説明したロボットアームＲＡの軌道教示方法および軌道教示装置ＫＳによれば、ステップ移動量設定過程（ステップＳ１）では、手首中心Ｏ７を計算上で繰り返しステップ移動させるステップ移動量を設定する。関節別目標角度設定過程（ステップＳ２）において、手首中心Ｏ７の目標位置Ｐ１における各関節の関節別目標角度を設定する。次に、ステップ単位軌道計算過程（ステップＳ３）では、関節毎最小変化処理を、求められた手首中心座標が、ステップ移動の現在の手首中心座標から直線距離でステップ移動量だけ移動するまで繰り返す。このステップ移動量だけ移動した手首中心座標を、教示経路上の次の移動先と定め、かつこの移動先を前記ステップ移動の現在の手首中心座標として更新する。ステップ単位軌道計算繰り返し過程（ステップＳ４）では、手首中心座標が前記目標位置Ｐ１に達するまで繰り返す。
【００３３】
このように、ステップ移動量だけ移動して手首中心座標を、教示経路上の次の移動先と定め、この移動先を基準として再び次の移動先を計算する。これを繰り返すことで目標位置Ｐ１までの軌道を確実に決定することができる。したがって、従来の計算途中で逆ヤコビ行列が存在しない問題、および操作者による教示の手間と時間を要する問題を未然に解消することができる。
【００３４】
前記ステップ移動量設定過程（ステップＳ１）は、ステップ移動量の初期値を設定する初期設定過程（ステップＳ１１）と、前記関節毎最小変化処理の各回における初期に、ステップ移動の現在の手首中心Ｏ７と目標位置Ｐ１の手首中心Ｏ７との間の直線距離を比較し、この直線距離が前記ステップ移動量の初期値よりも大きい場合は、ステップ移動量を小さく変更する変更過程（ステップＳ１２）とを含む。このように、上記直線距離とステップ移動量の初期値との大小関係に基づいて、ステップ移動量を小さく変更することで、手首中心Ｏ７が計算途中でステップ移動できなくなる不具合を未然に防止することができる。
【００３５】
前記ステップ移動量設定過程（ステップＳ１）で、ステップ移動量を前記手首中心Ｏ７が移動する移動時間となるステップ移動時間を設定し、前記ステップ単位軌道計算過程（ステップＳ３）では、前記の設定したステップ移動時間によるステップ移動量を手首中心Ｏ７が移動する速度として定めるようにしている。この場合、ステップ移動量をステップ移動時間で除すことにより、手首中心Ｏ７が移動する速度を正確に求めることが可能となる。
【００３６】
前記ステップ単位軌道計算過程（ステップＳ３）で、前記関節毎最小変化処理により手首中心座標を求めた後、ロボットアームＲＡと障害物ＯＢとの干渉の有無を調べ、干渉が生じる場合は、今回求めた手首中心座標を採用せずに、別の関節について前記ステップ単位軌道計算過程（ステップＳ３）を開始させる干渉回避指定を含む。この干渉が生じる場合、今回求めた手首中心座標を採用せずに、別の関節についてステップ単位軌道計算過程を開始させる。逆に、干渉無しの場合は、今回求めた手首中心座標を採用する。したがって、障害物ＯＢがある場合に、この障害物ＯＢを回避する指示、操作を人が教示装置を用いて行う必要がなく、その手間と時間を低減することができる。
【００３７】
前記ステップ単位軌道計算過程（ステップＳ３）では、関節別目標角度までの残り角度が大きい関節の順に、前記関節の角度の計算上の変化を行わせている。この場合、関節別目標角度までの残り角度が大きい関節から小さい関節の順に順次、関節角度の計算上の変化を行わせ、現在の手首中心座標をスムーズに更新することが可能となる。さらに、制御系の計算処理負荷を軽減することができる。
【００３８】
本実施形態では、ロボットアームＲＡと障害物ＯＢとの干渉の有無を判断等しているが（図６ステップａ１０，ａ１１，ａ１２）、本発明の他の実施形態として、障害物ＯＢとの干渉を無視できる場合これらの判断等つまりステップａ１０〜ステップａ１２を省略することも可能である。これらの判断等を省略した場合、順運動学計算を行い手首座標を求めた（ステップａ９）後、「現在の手首中心Ｏ７」と「計算上変位させた後の手首中心Ｏ７」間の直線距離を計算する過程（ステップａ１３）に移行することになる。それ故、流れ図の開始処理から終了に至るステップ数を簡単化し、ＣＰＵ等の演算処理負荷を軽減することができる。したがって、手首中心Ｏ７の軌道教示の時間短縮を図ることができる。
上記ロボットアームＲＡと障害物ＯＢとの干渉の有無を判断する代わりに、または障害物ＯＢとの干渉の有無を判断するのに加えて、エンドエフェクタにより作業を行う図示外の対象物と、このロボットアームＲＡとの干渉の有無を判断しても良い。この場合、操作者による教示の手間と時間をさらに低減することができる。
【００３９】
前記ステップ単位軌道計算過程（ステップＳ３）において、関節別目標角度までの残り角度が大きい順に、前記関節の角度の計算上の変化を行わせているが、必ずしもこの角度順に限定されるものではない。例えば、関節別目標角度までの残り角度が小さい関節から大きい関節に順次、関節の角度の計算上の変化を行わせても良い。また、関節別目標角度までの残り角度に関係なく予め定めた関節順に従って、関節の角度の計算上の変化を行わせることも可能である。
【図面の簡単な説明】
【００４０】
【図１】この発明の一実施形態に係るロボットアームの構成を概略表す斜視図である。
【図２】同ロボットアームの関節等を表す平面図である。
【図３】同ロボットアームの軌道教示装置の電気的構成を表すブロック図である。
【図４】同ロボットアームの軌道教示方法を上位概念化して表す流れ図である。
【図５】同ロボットアームの軌道教示方法の過程のサブルーチンを表す流れ図である。
【図６】同ロボットアームの軌道教示方法を段階的に表す流れ図である。
【符号の説明】
【００４１】
１，２…第１，第２肩
３…上腕
４…肘部
５…前腕
６，７…第１，第２手首
８…ハンド
９…ステップ移動量設定手段
１０…関節別目標角度設定手段
１１…ステップ単位軌道計算手段
１２…アーム取付台
１３…ステップ単位軌道計算繰り返し手段
Ｊ１〜Ｊ７…関節
ＫＳ…軌道教示装置
ＯＢ…障害物
ＲＡ…ロボットアーム
【図１】
2009050949.tif 000003
【図２】
2009050949.tif 000004
【図３】
2009050949.tif 000005
【図４】
2009050949.tif 000006
【図５】
2009050949.tif 000007
【図６】
2009050949.tif 000008