(57)【要約】【課題】  ロボットの教示の際のアーム同士の特異姿勢の発生を回避する。【解決手段】  複数のアーム、関節及び駆動源を備えるマニピュレータ装置１０と走行装置２０とを備えるロボット１の教示装置３０において、教示点入力手段３７と、入力教示点に基づく複数の移動目標位置Ｔ１ごとにマニピュレータ装置の先端部１４を位置決めする際に、第二の関節１３ｂが屈曲状態を維持した状態での走行装置の走行方向及び走行距離を求める走行距離算出手段と、当該求められた走行方向及び走行距離を反映させてロボットの制御データを生成するデータ生成手段とを備えている。【選択図】図２
2007000954.tif 000002
【特許請求の範囲】
【請求項１】
複数のアームが複数の関節で連結されると共に前記各関節ごとに駆動源を備えるマニピュレータ装置と当該マニピュレータ装置を所定の軌跡に沿って移動させる走行装置とを備えるロボットの教示装置において、
前記ロボットの教示点を入力するための教示点入力手段と、
前記入力された教示点に基づく複数の移動目標位置ごとに前記マニピュレータ装置の先端部を位置決めする際に、前記マニピュレータ装置の所定の関節が屈曲状態を維持した状態での前記走行装置の走行方向及び走行距離を求める走行距離算出手段と、
前記走行距離算出手段で求められた走行方向及び走行距離を反映させて前記教示点に基づく前記ロボットの制御データを生成するデータ生成手段とを備えることを特徴とするロボット教示装置。
【請求項２】
前記走行距離算出手段は、仮想的に所定の距離単位で走行距離を変化させると共に当該変化に伴う前記所定の関節角度を算出し、求まる関節角度の変化から適正な走行距離を特定することを特徴とする請求項１記載のロボット教示装置。
【請求項３】
複数のアームが複数の関節で連結されると共に前記各関節ごとに駆動源を備えるマニピュレータ装置と当該マニピュレータ装置を所定の軌跡に沿って移動させる走行装置とを備えるロボットの教示装置において、
前記ロボットの教示点を入力するための教示点入力手段と、
前記入力された教示点に基づく複数の移動目標位置ごとに前記マニピュレータ装置の先端部を位置決めする際に、前記走行装置を固定した場合の可操作性と前記マニピュレータ装置の関節の一つを固定した場合の可操作性とを算出する可操作性算出手段と、
前記算出された二つの可操作性又はこれらの大小の比較結果を表示する表示手段と、
前記走行装置と前記マニピュレータ装置の関節の一つのいずれを固定すべきかを入力するための固定対象選択手段と、
前記固定対象選択手段による選択に従い、前記走行装置又は関節を固定しつつ移動目標位置に移動を行う前記ロボットの制御データを生成するデータ生成手段とを備えることを特徴とするロボット教示装置。
【請求項４】
複数のアームが複数の関節で連結されると共に前記各関節ごとに駆動源を備えるマニピュレータ装置と当該マニピュレータ装置を所定の軌跡に沿って移動させる走行装置とを備えるロボットの教示方法において、
前記ロボットの教示点に基づく複数の移動目標位置ごとに前記マニピュレータ装置の先端部を位置決めする際に、前記マニピュレータ装置の所定の関節が屈曲状態を維持した状態での前記走行装置の走行方向及び走行距離を求める走行距離算出工程と、
前記走行方向選択手段で求められた走行方向及び走行方向を反映させて前記教示点に基づく前記ロボットの制御データを生成するデータ生成工程とを備えることを特徴とするロボット教示方法。
【請求項５】
前記走行距離算出工程では、仮想的に所定の距離単位で走行距離を変化させると共に当該変化に伴う前記所定の関節角度を算出し、求まる関節角度の変化から適正な走行距離を特定することを特徴とする請求項４記載のロボット教示方法。
【請求項６】
複数のアームが複数の関節で連結されると共に前記各関節ごとに駆動源を備えるマニピュレータ装置と当該マニピュレータ装置を所定の軌跡に沿って移動させる走行装置とを備えるロボットの教示方法において、
前記ロボットの教示点に基づく複数の移動目標位置ごとに前記マニピュレータ装置の先端部を位置決めする際に、前記走行装置を固定した場合の可操作性と前記マニピュレータ装置の関節の一つを固定した場合の可操作性とを算出する可操作性算出工程と、
前記算出された二つの可操作性又はこれらの大小を表示する表示工程と、
前記表示工程の表示内容に基づいて、前記走行装置と前記マニピュレータ装置の関節のいずれを固定すべきかの入力を受け付ける固定対象選択工程と、
前記固定対象選択工程による選択に従い、前記走行装置又は関節を固定しつつ前記各移動目標位置に移動を行う前記ロボットの制御データを生成するデータ生成工程とを備えることを特徴とするロボット教示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多関節型のマニピュレータ装置とその走行装置とを備えるロボットの教示装置及び方法に関する。
【背景技術】
【０００２】
ティーチングプレイバック型の産業用ロボットは、ティーチングと呼ばれる動作パターンを設定する作業が必要となる。ティーチング作業の一般的な形態としては、オペレータが教示手段であるティーチペンダントにより、ロボットのマニピュレータ装置先端のエンドエフェクタ（ロボットアーム先端に取り付けられた溶接ガンなどのツールの総称）の位置を確認しながら、ティーチペンダントのボタン等を操作することによりロボットを動作させ、ロボットに所定の動作をさせるための位置や速度の情報をまとめた記録データとしてのステップを一つずつ記録してゆく。この記録された一連のステップが一つの作業プログラムを構成することになる。
【０００３】
ところで、多関節型のマニピュレータ装置を備えるロボットは、マニピュレータ装置を構成するアームの長さに応じて動作領域が決まってしまう。このため、マニピュレータ装置を走行装置に搭載し、当該走行装置の駆動により目的位置までマニピュレータ装置を搬送することで動作領域の拡大を図っている。
そして、上述のような走行装置を有するロボットの教示装置にあっては、予め、走行装置の座標系の原点位置から教示点に基づく移動目標点までの距離を段階的な範囲に分けると共に各距離範囲ごとに走行装置の移動量をそれぞれ一定距離に定めていた（例えば、特許文献１参照）。
つまり、上記ロボット教示装置では、教示点が入力されると原点位置から目標点までの距離を算出し、算出した距離がいずれの距離範囲に属するかに応じて走行装置による走行距離を決定し、これにより、走行装置の走行距離の教示作業を不要として、教示作業負担の軽減を図っていた。
【特許文献１】特開平１０−２４４４８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のように、目標点までの距離に応じて走行装置の移動距離を決定する手法では、マニピュレータ装置の姿勢まで考慮されないため、以下に示す問題が発生していた。
ここで、問題点を簡明にするために、二軸のマニピュレータ装置を走行装置に搭載したモデルを例に説明する。図９に示すように、目標点Ｔ１に対してマニピュレータ装置１１０の先端を位置決めする場合に、上記従来の教示装置では、走行装置１２０の座標系の原点から目標点までの距離によって段階的に走行装置１２０の移動量を決定するため、場合によっては、マニピュレータ装置１１０の連結された二つのアーム１１１，１１２が伸び切った姿勢（特異姿勢）となり、各関節１１３に過大な速度が発生する。また、図１０に示すように、連続する複数の目標点Ｔ１〜Ｔ４の間を移動する際に、マニピュレータ装置１１０の連結アーム１１１，１１２は互いに屈曲と伸長を繰り返すことで伸び縮みを繰り返し、走行装置１２０にも不必要な加減速を生じてしまう。このような加減速を生じると、関節や走行装置の駆動源である駆動モータの消費エネルギーが過大になると共に、一連の作業のサイクルタイムの延長を招くという不都合があった。
【０００５】
本発明は、教示に基づく制御データがマニピュレータ装置に特異姿勢を生じないようにすることをその目的とする。
【課題を解決するための手段】
【０００６】
請求項１記載の発明は、複数のアームが複数の関節で連結されると共に各関節ごとに駆動源を備えるマニピュレータ装置と当該マニピュレータ装置を所定の軌跡に沿って移動させる走行装置とを備えるロボットの教示装置において、ロボットの教示点を入力するための教示点入力手段と、入力された教示点に基づく複数の移動目標位置ごとにマニピュレータ装置の先端部を位置決めする際に、マニピュレータ装置の所定の関節が屈曲状態を維持した状態での走行装置の走行方向及び走行距離を求める走行距離算出手段と、走行距離算出手段で求められた走行方向及び走行距離を反映させて教示点に基づくロボットの制御データを生成するデータ生成手段とを備える、という構成を採っている。
【０００７】
請求項２記載の発明は、請求項１記載の発明と同様の構成を備えると共に、走行距離算出手段は、仮想的に所定の距離単位で走行距離を変化させると共に当該変化に伴う所定の関節角度を算出し、求まる関節角度の変化から適正な走行距離を特定する、という構成を採っている。
【０００８】
請求項３記載の発明は、複数のアームが複数の関節で連結されると共に各関節ごとに駆動源を備えるマニピュレータ装置と当該マニピュレータ装置を所定の軌跡に沿って移動させる走行装置とを備えるロボットの教示装置において、ロボットの教示点を入力するための教示点入力手段と、入力された教示点に基づく複数の移動目標位置ごとにマニピュレータ装置の先端部を位置決めする際に、走行装置を固定した場合の可操作性とマニピュレータ装置の関節の一つを固定した場合の可操作性とを算出する可操作性算出手段と、算出された二つの可操作性又はこれらの大小の比較結果を表示する表示手段と、走行装置とマニピュレータ装置の関節の一つのいずれを固定すべきかを入力するための固定対象選択手段と、固定対象選択手段による選択に従い、走行装置又は関節を固定しつつ移動目標位置に移動を行うロボットの制御データを生成するデータ生成手段とを備える、という構成を採っている。
【０００９】
請求項４記載の発明は、複数のアームが複数の関節で連結されると共に各関節ごとに駆動源を備えるマニピュレータ装置と当該マニピュレータ装置を所定の軌跡に沿って移動させる走行装置とを備えるロボットの教示方法であって、ロボットの教示点に基づく複数の移動目標位置ごとにマニピュレータ装置の先端部を位置決めする際に、マニピュレータ装置の所定の関節が屈曲状態を維持した状態での走行装置の走行方向及び走行距離を求める走行距離算出工程と、走行方向選択手段で求められた走行方向及び走行方向を反映させて教示点に基づくロボットの制御データを生成するデータ生成工程とを備える、という構成を採っている。
上記方法は、少なくとも、所定の情報処理を実行可能な演算装置とデータの記憶が可能な記憶装置とにより実行される。
【００１０】
請求項５記載の発明は、請求項４記載の発明と同様の構成を備えると共に、走行距離算出工程では、仮想的に所定の距離単位で走行距離を変化させると共に当該変化に伴う所定の関節角度を算出し、求まる関節角度の変化から適正な走行距離を特定する、という構成を採っている。
【００１１】
請求項６記載の発明は、複数のアームが複数の関節で連結されると共に各関節ごとに駆動源を備えるマニピュレータ装置と当該マニピュレータ装置を所定の軌跡に沿って移動させる走行装置とを備えるロボットの教示方法において、ロボットの教示点に基づく複数の移動目標位置ごとにマニピュレータ装置の先端部を位置決めする際に、走行装置を固定した場合の可操作性とマニピュレータ装置の関節の一つを固定した場合の可操作性とを算出する可操作性算出工程と、算出された二つの可操作性又はこれらの大小を表示する表示工程と、表示工程の表示内容に基づいて、走行装置とマニピュレータ装置の関節のいずれを固定すべきかの入力を受け付ける固定対象選択工程と、固定対象選択工程による選択に従い、走行装置又は関節を固定しつつ各移動目標位置に移動を行うロボットの制御データを生成するデータ生成工程とを備える、という構成を採っている。
上記方法は、少なくとも、所定の情報処理を実行可能な演算装置とデータの記憶が可能な記憶装置とにより実行される。
【発明の効果】
【００１２】
請求項１又は請求項４記載の発明では、移動目標位置に対してマニピュレータ装置の先端部を位置決めするように走行装置の走行方向及び走行距離、マニピュレータ装置の各関節角度が求められる。このとき、マニピュレータ装置の所定の一つの関節について屈曲状態を維持できる範囲で走行装置の走行方向の選択と走行距離の算出とが行われるため、当該関節で連結された二つのアームが伸び切った姿勢（特異姿勢）の発生を回避することができ、目標位置への位置決め或いはその目標位置から次の目標位置への移動に際し、各関節における過度の速度増加の発生を抑制することが可能となる。
また、これにより、複数の移動目標位置への連続する動作に際して、所定の関節について屈曲と伸長を繰り返す動作の発生が回避され、駆動源の消費エネルギーを抑制し、一連の作業のサイクルタイムの短縮化を図ると共に動作の遅れを抑制することが可能となる。
【００１３】
なお、走行装置の移動軌跡は、直線方向であっても良いし、曲線方向であっても良い。
また、上記屈曲状態を維持する関節としては、マニピュレータ装置の全長の中間位置近傍に位置する関節か、中間位置から基端部（走行装置側）に位置する関節のいずれかを選択することが好ましい。
また、屈曲状態を維持するとは、直角状態を維持することが好ましく、また、直角に対して予め設定された範囲で増減する範囲内の角度を維持するようにしても良い。
【００１４】
請求項２又は請求項５記載の発明では、まず、走行装置の走行方向を決める際には、その移動軌跡に沿って正方向と逆方向とに所定距離走行させて目標位置に先端部を位置決めする場合の所定の関節の角度を、仮想的に計算で求め、屈曲状態を維持できる方向を特定する。さらに、その方向について、所定距離ずつ走行させて目標位置に先端部を位置決めした場合の所定の関節の角度をそれぞれ仮想的に求め、関節が最も屈曲状態を維持できる走行距離を特定する。
このようにして、走行装置について所定の関節の屈曲状態を維持するための適正な走行方向と走行距離とを求めるため、処理の簡易化及び迅速化を図ることが可能となる。
なお、走行距離について変化させる単位距離は、微小距離とすることが望ましいが、処理に費やすことが可能な時間などの観点から適切に設定することが望ましい。
【００１５】
請求項３又は請求項６記載の発明は、走行装置を固定した状態とマニピュレータ装置の一つの関節を固定した状態とで、それぞれ移動目標位置に対してマニピュレータ装置の先端部を位置決めする場合の可操作性を求め、これを表示する。オペレータはこれを見て、走行装置を固定するか、一つの関節を固定するかを判断し、いずれかを選択して固定対象選択手段から入力する。
これにより、一軸分の演算を低減しつつも、各移動目標位置ごとに、可操作性の高い状態を維持しつつマニピュレータ装置の先端部の移動動作を行わせることができ、例えば、関節を挟んで連結された二つのアームが伸び切った姿勢（特異姿勢）などは可操作性が低くなるので、その発生を回避することが可能である。従って、目標位置への位置決め或いはその目標位置から次の目標位置への移動に際し、各関節における過度の速度増加の発生を抑制することが可能となる。
また、これにより、複数の移動目標位置への連続する動作に際して、所定の関節について屈曲と伸長を繰り返す動作の発生が回避され、駆動源の消費エネルギーを抑制し、一連の作業のサイクルタイムの短縮化を図ると共に動作の遅れを抑制することが可能となる。
【００１６】
なお、走行装置の移動軌跡は、直線方向であっても良いし、曲線方向であっても良い。
また、一軸固定を行う場合の固定される関節としては、マニピュレータ装置の全長の中間位置近傍に位置する関節か、中間位置から基端部（走行装置側）に位置する関節のいずれかを選択することが好ましい。
【発明を実施するための最良の形態】
【００１７】
［第一の実施形態］
（第一実施形態の全体構成）
本発明の第一の実施の形態を図１乃至図４に基づいて説明する。図１は、第一の実施形態であるロボット教示システム５０の概略構成図である。
上記ロボット教示システム５０は、溶接ガン等のエンドエフェクタを先端部で保持すると共に当該先端部を任意の位置に移動させ或いは任意の向きに向ける動作を行うマニピュレータ装置１０と当該マニピュレータ装置１０を直進移動させる走行装置２０からなるロボット１と、入力される複数の教示点に基づいてロボット１に所定の作業を行わせる制御データを生成するロボット教示装置３０とを備えている。
【００１８】
（ロボット）
上述のロボット１のマニピュレータ装置１０は、土台となるベース１１と、関節１３で連結された複数のアーム１２と、各関節１３ごとに設けられた駆動源としてのサーボモータ（図示略）と、各サーボモータの軸角度をそれぞれ検出するエンコーダ（図示略）とを備えている。そして、連結された各アーム１２の先端部１４にはロボット１の用途に応じたエンドエフェクタ１５（例えば溶接ガン等）が装備される。
上記各関節１３は、アーム１２の一端部を揺動可能として他端部を軸支する揺動関節と、アーム自身をその長手方向を中心に回転可能に軸支する回転関節とのいずれかから構成される。つまり、本実施形態におけるマニピュレータ装置１０はいわゆる多関節型ロボットに相当する。
【００１９】
走行装置２０は、マニピュレータ装置１０のベース１１を保持すると共にマニピュレータ装置１０全体を一定の直進方向に沿って搬送し、当該直進方向における任意の位置にマニピュレータ装置１０の位置決めを行うことを可能としている。
かかる走行装置２０はマニピュレータ装置１０の搬送駆動源をサーボモータ（図示略）とし、当該サーボモータの軸角度を検出するエンコーダ（図示略）を備えている。
【００２０】
（ロボット教示装置）
ロボット教示装置３０は、当該ロボット教示装置３０全体を制御するシステムプログラムとロボット１の教示を実行するための教示プログラムと各種の初期設定データが格納されたＲＯＭ３２と、ＲＯＭ３２に格納された各種のプログラムを実行するＣＰＵ３１と、ＣＰＵ３１の処理により各種データをワークエリアに格納するＲＡＭ３３と、ＣＰＵ３１の実行する教示プログラムに従って決定されるマニピュレータ装置１０及び走行装置２０の各サーボモータのトルク値に応じたサーボモータ駆動電流を通電するサーボ制御回路３４と、各サーボモータに併設されたエンコーダ出力を受信するインターフェイス３５と、前述の教示プログラムの処理により求められるロボット１の制御データが格納される記憶手段としてのバッファ３６と、ロボット１の教示点、その他の各種の設定を入力するための例えばティーチペンダント等の教示点入力手段３７と、各種の処理において所定の情報の表示を行うディスプレイである表示手段３８と、上記各構成を信号の送受が可能に接続するバス３９とを備えている。
なお、上述のバッファ３６は、格納されたデータを書き替え可能に記憶保持可能な手段であれば良く、例えば、不揮発性の半導体メモリ或いはいわゆるハードディスク装置等で構成されている。
【００２１】
（ロボット教示装置の処理）
ロボット教示装置３０において行われる主要な処理について図２乃至図４に基づいて説明する。図２は教示プログラムに基づく処理を示すフローチャートである。
ここで、ロボット教示装置３０の処理の説明の明確化のために、二次元平面における補間点に対して、構成を簡略化したロボット１の制御データを生成する場合を例に説明することとする。
即ち、図３に示すように、上記ロボット１の簡略化モデルは、水平なＸ−Ｙ平面において、走行装置２０はＹ軸方向に沿ってマニピュレータ装置１０を移動位置決めし、当該マニピュレータ装置１０はその先端部１４をＸ−Ｙ平面の任意の位置に位置決めすることが可能である。
また、マニピュレータ装置１０の簡易化モデルは、第一及び第二のアーム１２ａ，１２ｂと第一及び第二の関節１３ａ，１３ｂとを備え、第一の関節１３ａは第一のアーム１２ａをＸ−Ｙ平面内で揺動可能に支持し、第二の関節１３ｂは第一のアーム１２ａと第二のアーム１２ｂとの間に設けられると共に第二のアーム１２ｂをＸ−Ｙ平面内で揺動可能に支持している。つまり、マニピュレータ装置１０の簡易化モデルは二自由度であり、ロボット１は、マニピュレータ装置１０の先端部１４をＸ−Ｙ平面の任意の位置に位置決め可能としている。
また、以下の説明において、図３（Ａ）に示すように、第一及び第二のアーム１２ａ，１２ｂの双方をＸ軸方向の正の方向に向けて延ばした状態を基準姿勢とし、基準姿勢における第一及び第二の関節１３ａ，１３ｂの角度を0°とすると共に、反時計回りを正回転方向とし、第一の関節１３ａの回転角度をθ１とし、第二の関節１３ｂの回転角度をθ２とする。また、走行装置２０の走行距離をＬとする。
【００２２】
ロボット教示装置３０は、目的の動作をロボット１に実行させるために、オペレータにより教示点入力手段３７から目的の動作の軌跡を決定するための複数の教示点が順番に入力されると、入力教示点に基づく軌跡を通過する複数の補間点を求め、アーム先端部１４に当該各補間点を通過させるための各関節１３ａ，１３ｂのサーボモータの駆動角度及び走行装置２０の走行距離を算出する。このとき、ロボット１に対して、教示点の入力作業に伴って各補間点を通過する実動作を行う動作制御が行われ、当該実動作を目視しながら順次教示点を入力することが可能となっている。
また、ロボット教示装置３０は、各補間点に対する各関節１３ａ，１３ｂのサーボモータの駆動角度及び走行装置２０の走行距離を順次記憶する。つまり、ロボット教示装置３０では、教示作業により各サーボモータの駆動角度を演算により求め、これを記録して、制御データを生成する。
そして、実際の作業時には、生成された制御データの再生を行い、当該データに従ってロボット１の各サーボモータの駆動を行うことで、ロボット１は教示された動作を再現する。
以下、簡略二軸モデル化されたロボット１における教示から制御データの生成までの処理を詳細に説明する。なお、以下の処理は、ＣＰＵ３１が教示プログラムの実行により行う処理である。
【００２３】
（教示点入力及び補間点の演算）
教示点入力手段３７から、ロボットアームの先端部１４（各関節１３で接続された複数アーム１２の最も先端となる位置）の移動軌跡の指標となる教示点の位置の入力が行われると（ステップＳ１）、ＣＰＵ３１は、ロボットアームの先端部１４が入力された教示点に到達するまでに描くべき直線或いは曲線の軌跡と、その軌跡に沿って所定間隔で配置される複数の補間点（移動目的位置）の座標を周知の演算処理によって求める（ステップＳ２）。
【００２４】
（走行距離算出手段としての処理：走行装置の移動方向の判定）
図４は補間点Ｔ１に対して移動動作を行う場合を平面視した動作説明図である。
補間点Ｔ１が決まると、ＣＰＵ３１は、走行装置２０を微小距離ΔＬ前進移動させてアーム先端部１４を補間点Ｔ１に位置決めするための第一及び第二の関節１３ａ，１３ｂの角度を算出すると共に（ステップＳ３）、距離ΔＬ後退移動させてアーム先端部１４を補間点Ｔ１に位置決めするための第一及び第二の関節１３ａ，１３ｂの角度を算出する（ステップＳ４）。
【００２５】
また、ＣＰＵ３１は、補間点Ｔ１への位置決めを行うための第一及び第二の関節１３ａ，１３ｂの角度の解が複数求まる場合には、現在の角度からの変化量が最も小さいものを選択するものとする。
また、ΔＬの大きさは任意に設定しても良いが、より小さく設定することが好ましい。但し、後述するステップＳ６，Ｓ７又はＳ８，Ｓ９の処理により、ΔＬを小さくするほど演算に時間を要するのでＣＰＵ３１の処理速度に応じて適正な値を選択することが望ましい。
また、ステップＳ３とＳ４の処理はどちらを先行させても良い。
【００２６】
次いで、走行装置２０を距離ΔＬ前進移動させたときの第二の関節１３ｂの角度θ２+iと距離ΔＬ後退移動させたときの第二の関節１３ｂの角度θ２-iとを比較して、走行装置２０を前後いずれの方向に駆動すればマニピュレータ装置１０の第二の関節１３ｂを屈曲状態（関節角度が90°（又は270°）となる状態）に近くなるかを判定する（ステップＳ５）。
例えば、図３（Ａ）と図３（Ｂ）に示すように、走行装置２０を前進させる方が後退させる場合よりも90°（又は270°）に近くなる場合には、走行装置２０の前進移動が選択される（ステップＳ５：ＹＥＳ）。
また、その逆に、走行装置２０を後退させる方が前進させる場合よりも90°（又は270°）に近くなる場合には、走行装置２０の後退移動が選択される（ステップＳ５：ＮＯ）。
【００２７】
なお、上記判定において、ΔＬの前進移動と後退移動のいずれを行ってもアーム先端部１４が補間点Ｔ１に届かない場合には、前進と後退の内、先端部１４が補間点Ｔ１により近接する方向が選択される。
また、ΔＬの前進移動と後退移動のいずれかを行った場合にしかアーム先端部１４が補間点Ｔ１に届かない場合には、先端部１４を補間点Ｔ１に到達可能な方向が選択される。
【００２８】
（走行距離算出手段としての処理：走行装置の走行距離の特定）
ステップＳ５において、走行装置２０を前進方向に駆動すべきか後退方向に駆動すべきかが判定され、走行装置２０の前進移動が選択されると、走行装置２０をさらにΔＬ前進移動させた場合の第一及び第二の関節１３ａ，１３ｂの関節角度が求められる（ステップＳ６）。
そして、前進距離にさらにΔＬを加える前の第二の関節１３ｂの角度θ２+iとΔＬを加えた後の第二の関節１３ｂの角度θ２+i+1とを比較して、いずれの場合の第二の関節１３ｂの関節角度が90°（又は270°）に近くなるかを判定する（ステップＳ７）。
そして、その結果、前進距離にさらにΔＬ加えると第二の関節１３ｂの関節角度がより90°に接近する場合には（ステップＳ７：ＮＯ）、ステップＳ６に戻り、さらに前進距離にΔＬを加えて第二の関節１３ｂの角度が90°に近くなるか否かの判定を繰り返す。
また、前進距離にさらにΔＬ加えると第二の関節１３ｂの関節角度が90°から逸脱してゆく場合には、ΔＬを加える前の移動距離を走行装置２０の適正値と判定する。
かかるステップＳ６とステップＳ７の処理を繰り返すことで、走行装置２０の前進移動距離をΔＬずつ増やし、第二の関節１３ｂが最も90°に最も近くなる移動距離を特定することができる。
【００２９】
また、ステップＳ５において、後退移動が選択されると、走行装置２０をさらにΔＬ後退移動させた場合の第一及び第二の関節１３ａ，１３ｂの関節角度が求められる（ステップＳ８）。
そして、後退距離にさらにΔＬを加える場合の第二の関節１３ｂの角度θ２-iとΔＬを加えた後の第二の関節１３ｂの角度θ２-i-1とを比較して、いずれの場合の第二の関節１３ｂの関節角度が90°（又は270°）に近くなるかを判定する（ステップＳ９）。
そして、その結果、後退距離にさらにΔＬ加えると第二の関節１３ｂの関節角度がより90°に接近する場合には（ステップＳ９：ＮＯ）、ステップＳ８に戻り、さらに後退距離にΔＬを加えて第二の関節１３ｂの角度が90°に近くなるか否かの判定を繰り返す。
また、後退距離にさらにΔＬ加えると第二の関節１３ｂの関節角度が90°から逸脱してゆく場合には、ΔＬを加える前の移動距離を走行装置２０の適正値と判定する。
かかるステップＳ８とステップＳ９の処理を繰り返すことで、走行装置２０の後退移動距離をΔＬずつ増やし、第二の関節１３ｂが最も90°に最も近くなる移動距離を特定することができる。
【００３０】
（ロボットの追従動作制御）
ステップＳ７又はＳ９の処理により走行装置２０の適正な移動方向と移動距離が決まると、ＣＰＵ３１は、それに従って走行装置２０を駆動する動作制御を行うと共に、ステップＳ６又はＳ８で求められた第一及び第二の関節１３ａ，１３ｂの角度によりマニピュレータ装置１０を駆動する動作制御を行う（ステップＳ１０）。
これにより、マニピュレータ装置１０のアーム先端部１４が補間点Ｔ１に位置決めされる。
【００３１】
（データ生成手段としての処理）
次いで、補間点Ｔ１に対する走行装置２０の移動方向及び移動距離とマニピュレータ装置１０の第一及び第二の関節１３ａ，１３ｂの各関節角度がロボット１の制御データとして、バッファ３６内に記録される（ステップＳ１１）。
【００３２】
そして、上記補間点Ｔ１が入力された教示点に対する最終の補間点か判断され、次の補間点が存在する場合には（ステップＳ１２：ＮＯ）、ステップＳ３の処理に戻り、新たな補間点について、走行装置２０の適正な移動方向と移動距離と、マニピュレータ装置１０の第一及び第二の関節１３ａ，１３ｂの角度を算出する。
また、上記補間点Ｔ１が入力された教示点に対する最終の補間点である場合には（ステップＳ１２：ＹＥＳ）、処理を終了する。
これにより、全ての教示点に対する全ての補間点の走行装置２０の適正な移動方向と移動距離とマニピュレータ装置１０の第一及び第二の関節１３ａ，１３ｂの角度とが一連の動作を実行するための制御データとしてバッファ３６内に記録される。
【００３３】
このようにして生成された制御データは、教示装置３０がロボットの教示プログラムのほかに動作制御プログラムを保有する場合には、その動作制御プログラムの実行により、バッファ３６内から読み出され、順番に各補間点についての走行装置２０とマニピュレータ装置１０の動作制御が実行される。つまり、ロボット１は、教示作業で入力された動作を忠実に再現することができる。
また、ロボット１の制御装置を別に備える場合には、バッファ３６内に生成された制御データが記録メディアやＬＡＮ等の通信手段により読み出され、制御装置の動作制御プログラムに従って、教示作業で入力された動作をロボット１が再現するように動作制御される。
【００３４】
なお、上記処理において、ステップＳ３〜Ｓ７又はＳ３〜Ｓ９までの処理が走行距離算出工程に相当し、ステップＳ１１の処理がデータ生成工程に相当する。
【００３５】
（ロボット教示システムの効果）
上記教示装置３０では、移動目標位置となる各補間点に対してマニピュレータ装置１０の先端部１４を位置決めする際に、第二の関節１３ｂについて約90°（又は270°）を維持するように走行装置２０の走行方向を選択し、走行距離を特定するので、第二の関節１３ｂに連結された第一及び第二の関節１３ａ，１３ｂの伸び切った姿勢（特異姿勢）の発生を回避することができ、補間点への位置決め或いはその補間点から次の補間点への移動に際し、各関節における過度の速度増加の発生を抑制することが可能となる。
また、これにより、複数の補間点を連続して移動する際に、第二の関節１３ｂについて屈曲と伸長を繰り返す動作の発生が回避され、サーボモータの消費エネルギーを抑制し、一連の作業のサイクルタイムの短縮化を図ると共に動作の遅れを抑制することが可能となる。
さらに、走行装置２０の動作方向を特定する場合には、当該走行装置２０を正方向と逆方向とについて距離ΔＬ移動させたときの第二の関節１３ｂの関節角度θ２+i，θ２-iを仮想的に計算で求め、それが90°（又は270°）に近くなる方向を選択する。
また、走行装置２０の走行距離を特定する場合には、距離ΔＬずつ走行させて第二の関節１３ｂの関節角度θ２+i又はθ２-iが最も90°（又は270°）に近くなる距離（ΔＬの整数倍）を求めることで特定する。
このようにして、走行装置２０について適正な走行方向と走行距離とを求めるため、処理の簡易化及び迅速化を図ることが可能となる。
【００３６】
（その他）
なお、上記教示装置３０に処理にあっては、二軸のマニピュレータ装置１０を例示したが、図１に示すような、より多くの関節を有するマニピュレータ装置１０に対して同様の教示処理を行っても良いことはいうまでもない。
また、その場合、上述した二軸のマニピュレータ装置１０の例のように、互いに連結された二つのアーム１２が同一平面内で一方に対して他方が揺動を行うように連結する関節（アーム同士が互いに屈曲可能に連結する関節）について互いに連結されたアーム１２が90°（又は270°）の屈曲状態を維持するように走行装置２０の走行方向及び走行距離を算出するように走行距離算出手段としての処理（ステップＳ３〜Ｓ９までの処理）を行うことが望ましい。
また、マニピュレータ装置１０がそのような関節を複数有する場合には、それらの関節の中で、複数のアーム全体を直線状に延ばした状態において、その長手方向の中間位置に近接する関節又は中間位置から基端部位置の間に設けられた関節について、90°（又は270°）の屈曲状態を維持するように走行装置２０の走行方向及び走行距離を算出するように走行距離算出手段としての処理を行うことが望ましい。
【００３７】
また、走行装置２０は、上述のように直進動作に限るものではない。例えば、図５に示す走行装置２１のように、搭載したマニピュレータ装置１０を円周方向に移動位置決めするものであっても良いし、回転ステージ式でマニピュレータ装置１０を回転させるものであっても良い。
その場合、ＣＰＵ３１は、走行距離算出手段としての処理において、補間点Ｔ１に向かうマニピュレータ装置１０における所定の関節が90°（又は270°）に近くなるように走行装置２０の正逆の回転方向を求めると共にその回転角度を特定する。
【００３８】
［第二の実施形態］
（第二実施形態の概略）
本発明の第二の実施の形態を図６乃至図８に基づいて説明する。この第二の実施形態であるロボット教示システムのハードウェア構成は第一の実施形態と同様であり、教示作業における処理が第一の実施形態と異なるので、主に当該教示処理について説明することとする。
【００３９】
（ロボット教示装置の処理）
ロボット教示装置３０において行われる主要な処理について図６乃至図８に基づいて説明する。図６は教示プログラムに基づく処理を示すフローチャートである。この第二の実施形態でも、マニピュレータ装置１０を二軸の簡略モデル化すると共に、二次元平面における補間点に対して、構成を簡略化したロボット１の制御データを生成する場合を例に説明することとする。
また、簡略モデル化したロボット１の構成、ロボット１の基本姿勢、符号Ｌ、θ１、θ２については第一の実施形態の場合と同様である（図３参照）。
【００４０】
第二の実施形態におけるロボット教示装置３０は、入力教示点に基づく軌跡を通過する複数の補間点を求め、アーム先端部１４に当該各補間点を通過させるための各関節１３のサーボモータ及び走行装置２０のサーボモータの駆動角度を算出する。このとき、各補間点に対する位置決めの動作を、走行装置２０を駆動しないで行う走行軸固定モードとマニピュレータ装置１０の一つの関節（本実施形態では第二の関節１３ｂ）を駆動しないで行う一軸固定モードとを各補間点ごとに選択することが可能であり、オペレータによるモード選択が行われると、その選択に従ってロボット１に対して、各補間点を通過する実動作を行う動作制御が行われ、当該実動作を目視しながら順次教示点を入力することが可能となっている。
また、ロボット教示装置３０は、各補間点について選択されたモードに従って各関節１３ａ，１３ｂのサーボモータの駆動角度又は走行装置２０の走行距離を記憶して制御データを生成する。
かかる制御データに従って動作制御が行われることで、ロボット１に教示動作を再現させることができる。
以下、簡略二軸モデル化されたロボット１における教示から制御データの生成までの処理を詳細に説明する。なお、以下の処理は、ＣＰＵ３１が教示プログラムの実行により行う処理である。
【００４１】
（可操作性算出手段としての処理：ヤコビアンの算出）
図３（Ａ）に示すロボット１の基本姿勢における第一の関節１３ａの位置をＸ−Ｙ座標の原点とすると、マニピュレータ装置１０の先端位置（Ｘ、Ｙ）の座標は次式（１）で表すことができる。
但し、第一及び第二のアーム１２ａ，１２ｂの長さを計算の簡略化のために仮に１とし、第一の関節１３ａの回転角度をθ１、第二の関節１３ｂの回転角度をθ２、走行装置の走行距離をＬとする。
【数１】
2007000954.tif 000003
【００４２】
ＣＰＵ３１は、上式（１）から次式（２）に従って走行軸固定モードのヤコビアンＪ１を算出すると共に、次式（３）に従って一軸固定モードのヤコビアンＪ２を算出する（ステップＳ２１）。
【数２】
2007000954.tif 000004
【数３】
2007000954.tif 000005
【００４３】
さらに、ＣＰＵ３１は、走行軸固定モードのヤコビアンＪ１から走行軸固定モードの可操作性Ｍ１を求める式を算出する。可操作性とは、マニピュレータ装置１０の先端部１４の動かし易さの指標となる値であり、走行軸固定モードの可操作性Ｍ１は次式（４）に示すようにヤコビアンＪ１の行列式の絶対値から求めることができる。
また、同様に、ＣＰＵ３１は、一軸固定モードのヤコビアンＪ２から一軸固定モードの可操作性Ｍ２を求める式を算出する。かかる可操作性Ｍ２は次式（５）に示すようにヤコビアンＪ２の行列式の絶対値から求めることができる（ステップＳ２２）。
【数４】
2007000954.tif 000006
【００４４】
（教示点入力及び補間点の演算）
次いで、教示点入力手段３７から、ロボットアームの先端部１４の移動軌跡の指標となる教示点の位置の入力が行われると（ステップＳ２３）、ＣＰＵ３１は、ロボットアームの先端部１４が入力された教示点に到達するまでに描くべき直線或いは曲線の軌跡と、その軌跡に沿って所定間隔で配置される複数の補間点（移動目的位置）の座標を周知の演算処理によって求める（ステップＳ２４）。
【００４５】
（各関節角度又は走行距離の算出）
補間点Ｔ１が決まると、ＣＰＵ３１は、走行軸固定モードにおける補間点Ｔ１に位置決めするための第一及び第二の関節１３ａ，１３ｂの関節角度θ１，θ２を算出する（ステップＳ２５）。また同様にして、ＣＰＵ３１は、一軸固定モードにおける補間点Ｔ１に位置決めするための走行距離Ｌ及び第一の関節１３ａの関節角度θ１を算出する（ステップＳ２６）。これらは、前述した式（１）のＬ又はθ２に固定値（算出時点での姿勢におけるＬ又はθ２）を代入し、Ｘ、Ｙに補間点Ｔ１の座標値を代入することで算出される。
なお、ステップＳ２５とＳ２６とはいずれを先に実行しても良い。
【００４６】
（可操作性算出手段としての処理：可操作性の算出）
次いで、ＣＰＵ３１は、走行軸固定モードにおける補間点Ｔ１での可操作性と一軸固定モードにおける補間点Ｔ１での可操作性とを算出する（ステップＳ２７）。
走行軸固定モードでの可操作性は前述の式（４）にステップＳ２５で求めた第一及び第二の関節１３ａ，１３ｂの関節角度θ１、θ２と固定値とした走行距離Ｌの値を代入することで求められる（なお、ロボット１の構成により式（４）のパラメータがθ２しかないので算出されたθ２が代入される）。
一軸固定モードでの可操作性は前述の式（５）にステップＳ２６で求めた第一の関節１３ａの関節角度θ１及び走行距離Ｌと固定値とした第二の関節１３ｂの関節角度θ２の値を代入することで求められる（なお、ロボット１の構成により式（５）のパラメータがθ１とθ２しかないので算出されたθ１と固定値とされたθ２とが代入される）。
【００４７】
ここで、図７，８に示す二軸簡略モデル化されたロボット１の具体的な姿勢により各モードでの可操作性を求め、当該可操作性の値とロボット１の姿勢との関係を説明することとする。図７ではロボット１のマニピュレータ装置１０の第一の関節１３ａの関節角度θ１が−45°、第二の関節１３ｂの関節角度θ２が90°の姿勢にある場合を示し、図８ではロボット１のマニピュレータ装置１０の第一の関節１３ａの関節角度θ１が60°、第二の関節１３ｂの関節角度θ２が0°の姿勢にある場合を示す。
図７の例では、走行軸固定モードにおける可操作性Ｍ１＝｜sin90°｜＝１となり、一軸固定モードにおける可操作性Ｍ２＝｜sin−45°＋sin45°｜＝0となる。つまり、走行軸固定モードでは可操作性が高く、一軸固定モードでは可操作性が低くなることが分かる。例えば、マニピュレータ装置１０の先端部１４を図７に示す矢印方向に移動する場合、走行軸固定モードでは好適に移動動作が可能であるが、一軸固定モードでは全く移動動作ができないことからも可操作性の高低差を裏付けている。
一方、図８の例では、走行軸固定モードにおける可操作性Ｍ１＝｜sin0°｜＝0となり、一軸固定モードにおける可操作性Ｍ２＝｜sin60°＋sin60°｜＝√3となる。つまり、走行軸固定モードでは可操作性が低く、一軸固定モードでは可操作性が高くなることが分かる。例えば、マニピュレータ装置１０の先端部１４を図８に示す矢印方向に移動する場合、一軸固定モードでは好適に移動動作が可能であるが、走行軸固定モードでは全く移動動作ができないことからも可操作性の高低差を裏付けている。
【００４８】
（可操作性の比較結果の表示処理）
次いで、ＣＰＵ３１は、算出した走行軸固定モードにおける補間点Ｔ１での可操作性と一軸固定モードにおける補間点Ｔ１での可操作性の大小を比較し、いずれのモードでの可操作性が大きくなるかを表示手段３８に表示させる動作制御を行う（ステップＳ２８）。
なお、大小比較は行わず、各モードの可操作性の値をそれぞれ表示しても良い。
次いで、ＣＰＵは、補間点Ｔ１に対して走行軸固定モードと一軸固定モードのいずれにより移動位置決めを行うかについて、入力手段３７からの選択入力を受け付ける（ステップＳ２９）。つまり、入力手段３７は、固定対象選択手段として機能する。
【００４９】
（ロボットの追従動作制御）
ステップＳ２９の処理によりオペレータによるモード選択が行われると、ＣＰＵ３１は、選択されたモードに従って、走行装置２０及びマニピュレータ装置１０の動作制御を行う（ステップＳ３０）。
即ち、走行軸固定モードが選択されていた場合には、走行装置２０は駆動せずにマニピュレータ装置１０の各関節１３ａ，１３ｂのみが回動し、一軸固定モードが選択されていた場合には、マニピュレータ装置１０の第二の関節１３ｂは駆動せずに第一の関節１３ａと走行装置２０ｂのみが駆動し、マニピュレータ装置１０のアーム先端部１４が補間点Ｔ１に位置決めされる。
【００５０】
（データ生成手段としての処理）
次いで、補間点Ｔ１に対する走行装置２０の移動方向及び移動距離とマニピュレータ装置１０の第一及び第二の関節１３ａ，１３ｂの各関節角度がロボット１の制御データとして、バッファ３６内に記録される（ステップＳ３１）。
【００５１】
そして、上記補間点Ｔ１が入力された教示点に対する最終の補間点か判断され、次の補間点が存在する場合には（ステップＳ３２：ＮＯ）、ステップＳ２５及びＳ２６の処理に戻り、新たな補間点について、走行軸固定モードと一軸固定モードにおける走行装置２０の適正な走行方向と走行距離やマニピュレータ装置１０の第一及び第二の関節１３ａ，１３ｂの角度が算出される。
また、上記補間点Ｔ１が入力された教示点に対する最終の補間点である場合には（ステップＳ３２：ＹＥＳ）、処理を終了する。
これにより、全ての教示点に対する全ての補間点の走行装置２０の適正な移動方向と移動距離とマニピュレータ装置１０の第一及び第二の関節１３ａ，１３ｂの角度とが一連の動作を実行するための制御データとしてバッファ３６内に記録される。
【００５２】
このようにして生成された制御データも、第一の実施形態と同様に、教示装置３０がロボットの教示プログラムのほかに動作制御プログラムを保有する場合には、当該制御データを用いてロボット１の制御を行い、教示作業で入力された動作を忠実にロボット１に再現させることができる。
また、ロボット１の制御装置を別に備える場合には、バッファ３６内に制御データが記録メディアやＬＡＮ等の通信手段により読み出され、制御装置の動作制御プログラムに従って、ロボット１が制御される。
【００５３】
なお、上記処理において、ステップＳ２１〜Ｓ２７までの処理が可操作性算出工程に相当し、ステップＳ２９の処理が固定対象算出工程に相当し、ステップＳ３１の処理がデータ生成工程に相当する。
【００５４】
（第二の実施形態の効果）
第二実施形態たる教示装置３０では、走行軸固定モードと一軸固定モードとでそれぞれ補間点に位置決めする場合の可操作性Ｍ１，Ｍ２を求めていずれが大きいかを表示手段３８で表示するため、オペレータはこれを見て、適切にモード選択を行うことが可能となる。さらに、上記教示作業により生成された制御データによりロボット１を動作させることにより、一軸分の演算を低減しつつも、各補間点ごとに、可操作性の高いモードでロボット１に移動動作を行わせることができ、可操作性が低くなるような第一及び第二のアーム１２ａ，１２ｂが伸び切った姿勢（特異姿勢）などを回避することができる。従って、目標位置への位置決め或いはその目標位置から次の目標位置への移動に際し、各関節１３ａ，１３ｂにおける過度の速度増加の発生を抑制すると共に、連続する補間点の移動動作に際して、大きく屈曲と伸長を繰り返すことがなく、サーボモータの消費エネルギーを抑え、サイクルタイムを短縮化し、動作の遅れを抑制することが可能となる。
【００５５】
（その他）
なお、かかる第二実施形態の場合も、上記教示装置３０に処理にあっては、図１に示すような、より多くの関節を有するマニピュレータ装置１０に対して同様の教示処理を行っても良いことはいうまでもない。その場合、一軸固定モードで固定すべき関節は、二つのアームを屈曲状態で連結すると共に、マニピュレータ装置１０の全長の中間位置に近接する関節又は中間位置から基端部位置の間に設けられた関節について固定することが望ましい。
なお、多軸の場合には、Ｘ−Ｙ−Ｚの座標系における先端位置座標を各関節の変換行列を用いて算出し、それに基づいて各モードでのヤコビアンＪを算出すると共に、その行列式から可操作性Ｍを求めることができる。
また、冗長軸がある場合には、可操作性はＭ＝√(det(ＪＪT))から求めることができる。
また、走行装置２０は、上述のように直進動作に限るものではなく、前述した図５の走行装置２１のように、マニピュレータ装置１０を曲線移動方は回転させるものであっても良い。
また、前述した教示処理において、ステップＳ２１〜Ｓ２３までの工程は、ステップＳ２６、２７の可操作性の算出までに行っても良いが、ステップＳ２５の処理までに行うことが望ましい。
【図面の簡単な説明】
【００５６】
【図１】第一の実施形態であるロボット教示システムの概略構成図である。
【図２】第一の実施形態における教示プログラムに基づく処理を示すフローチャートである。
【図３】図３（Ａ）はロボットのマニピュレータ装置を二軸化した簡略化モデルの基本姿勢を示す説明図、図３（Ｂ）は簡略化モデルの各種のパラメータを示す説明図である。
【図４】図４（Ａ）は簡略化モデルのロボットの前進移動したときの補間点に対する位置決め動作を示す動作説明図、図４（Ｂ）は簡略化モデルのロボットの後退移動したときの補間点に対する位置決め動作を示す動作説明図である。
【図５】走行装置の他の例を示す斜視図である。
【図６】第二の実施形態における教示プログラムに基づく処理を示すフローチャートである。
【図７】ロボットの第一の関節角度が−45°、第二の関節角度が90°の姿勢にある場合を示す動作説明図である。
【図８】ロボットの第一の関節角度が60°、第二の関節角度が0°の姿勢にある場合を示す動作説明図である。
【図９】従来例の問題点を示す説明図である。
【図１０】従来例の他の問題点を示す説明図である。
【符号の説明】
【００５７】
１  ロボット
１０  マニピュレータ装置
１２ａ  第一のアーム
１２ｂ  第二のアーム
１３ａ  第一の関節
１３ｂ  第二の関節
２０  走行装置
３０  教示装置
３１  ＣＰＵ
３２  ＲＯＭ
３４  バッファ（記憶手段）
３７  入力手段（教示点入力手段、固定対象選択手段）
３８  表示手段
５０  ロボット教示システム
【図１】
2007000954.tif 000007
【図２】
2007000954.tif 000008
【図３】
2007000954.tif 000009
【図４】
2007000954.tif 000010
【図５】
2007000954.tif 000011
【図６】
2007000954.tif 000012
【図７】
2007000954.tif 000013
【図８】
2007000954.tif 000014
【図９】
2007000954.tif 000015
【図１０】
2007000954.tif 000016