(57)【特許請求の範囲】
【請求項１】
ロボットの教示プログラムに含まれる複数の教示点と隣接する教示点間の補間される軌跡上に設定された対象点のそれぞれについて、任意に設定された基準座標系における前記ロボットの位置姿勢を示す複数のパラメータのうちの１個又は複数個を変化させて、前記ロボットの各関節の動作範囲内で前記教示点から連続して動作可能な領域を示す動作余裕量を計算する第１の過程と、
各教示点の前記動作余裕量を数値で定量的に表示する第２の過程と
前記第１の過程において計算された各教示点及び各対象点における動作余裕量を予め設定された許容余裕値と比較する第３の過程と、
前記第２の過程において計算されたすべての教示点及び対象点について個々のパラメータ毎の前記動作余裕量の最小値を計算する第４の過程とを備え、
前記第２の過程において、前記動作余裕量が前記許容余裕値以下である前記教示点及び前記対象点のみを前記動作余裕量と共に表示し、
前記第４の過程において、前記個々のパラメータ毎の前記動作余裕量の最小値を前記教示プログラムで指定された軌跡全体における前記個々のパラメータ毎の前記動作余裕量として表示する、ロボットの動作余裕量演算表示方法。
【請求項２】
ロボットの教示プログラムに含まれる複数の教示点と隣接する教示点間の補間される軌跡上に設定された対象点のそれぞれについて、任意に設定された基準座標系における前記ロボットの位置姿勢を示す複数のパラメータのうちの１個又は複数個を変化させて、前記ロボットの各関節の動作範囲内で前記教示点から連続して動作可能な領域を示す動作余裕量を計算する演算部と
各教示点の前記動作余裕量を数値で定量的に表示する表示部と
を備え、
前記演算部は、教示点及び各対象点における動作余裕量を予め設定された許容余裕値と比較すると共に、すべての教示点及び対象点について個々のパラメータ毎の前記動作余裕量の最小値を計算し、
前記表示部は、前記動作余裕量が前記許容余裕値以下である前記教示点及び前記対象点のみを前記動作余裕量と共に表示する共に、前記個々のパラメータ毎の前記動作余裕量の最小値を前記教示プログラムで指定された軌跡全体における前記個々のパラメータ毎の前記動作余裕量として表示する、ロボットの動作余裕量演算表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用ロボットを含むロボットの動作余裕量演算表示方法及びその装置に関する。
【背景技術】
【０００２】
近年、産業用ロボットによる溶接や塗装、バリ取り、切断等各種作業を行うことが多くなってきている。
【０００３】
プレイバック方式のロボットでは、生産ライン中に教示用のワークを設置してティーチングを行う（オンラインティーチング）。また、生産ライン停止をさせることなくロボットのティーチングを行う目的で、生産ライン外でティーチングを行うオフラインティーチングも知られている。ロボットやワークのモデルや作業環境をコンピュータ内に構築して行うオフラインティーチングも、良く用いられる方法である。
【０００４】
いずれの方法にせよ、実際にプレイバックにてロボットを動作させる際には対象のワークの据付誤差や個体差があるため、ティーチングした教示データのままでロボットを動作させても正しく作業ができない。溶接ロボット等ではワイヤによるタッチセンシング等により教示データ全体や一部のずれ量を補正して動作させるのが一般的である。
【０００５】
しかしながら、ワークのずれ量が大きなときやティーチングしたときの教示点がロボットの動作範囲限界近傍であると、補正した教示データでロボットが正しく動作できるかどうか不明である。これに対し、教示点の各関節角度を数値やグラフで表示して関節角度が動作範囲限界近傍であるかを示し、オペレータに対して教示データの修正を促す方法が知られている。また、特許文献１には、各教示点について許容される範囲を各教示点の位置ずれ許容領域として予め与え、この位置ずれ許容領域がロボットの可動範囲に含まれているかどうかをシミュレータで検証する方法が開示されている。
【０００６】
【特許文献１】特開平８−３２８６３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前者の教示点の各関節角度を表示する方法では、ロボットに多用される回転型の関節角度を直交座標軸に沿った先端加工具の動作領域に直感的に変換できないため、オペレータが修正によってある教示点に数値的に十分な余裕を与えたつもりでも、実際にはその教示点に対する許容範囲は依然として制限されている場合がある。
【０００８】
後者の方法では、予め設定した位置ずれ許容範囲がロボットの可動範囲に含まれないことがシミュレーションにより判明した場合でも、教示点を修正する指針が示されず、オペレータの経験と勘で教示点を試行錯誤的に修正する必要がある。また、後者の方法では、位置ずれ領域は教示点に対して経験等に基づいて決定した許容半径に含まれる領域として定義としている。つまり、後者の方法における位置ずれ領域は、教示点に対して全方位的に動作可能な領域として定義している。しかし、ロボットの特性として動作可能な領域は等方ではなく方向性があり、特許文献１の方法のように一律全方位的に許容範囲を定義すると、境界近傍では実際には許容範囲の条件を満たせないという不都合が生じ得る。逆に、一律全方位的に設定した許容範囲を満たさない場合でも、ロボットの誤差、ワークの位置ずれ誤差、及びワークの製作上の個体差について十分注意すればロボットでの作業が可能であるが、特許文献１の方法ではその判断の指針となる許容量が定量的に示されず、ロボットの動作可能な領域を１００％活用することができない。
【０００９】
本発明は上記事由に鑑みて為されたものであり、ロボットの動作可能な領域をオペレータや生産ラインの現場作業者に対して直感的に認識できる態様で定量的に通知し、教示データの修正指針をオペレータに提供すること、並びに、現場でのワーク製作誤差やワーク配置誤差の許容量を示して現場での運用指針を現場作業者に提供することを目的する。
【課題を解決するための手段】
【００１０】
本発明の第１の態様は、ロボットの教示プログラムに含まれる複数の教示点と隣接する教示点間の補間される軌跡上に設定された対象点のそれぞれについて、任意に設定された基準座標系における前記ロボットの位置姿勢を示す複数のパラメータのうちの１個又は複数個を変化させて、前記ロボットの各関節の動作範囲内で前記教示点から連続して動作可能な領域を示す動作余裕量を計算する第１の過程と、各教示点の前記動作余裕量を数値で定量的に表示する第２の過程と前記第１の過程において計算された各教示点及び各対象点における動作余裕量を予め設定された許容余裕値と比較する第３の過程と、前記第２の過程において計算されたすべての教示点及び対象点について個々のパラメータ毎の前記動作余裕量の最小値を計算する第４の過程とを備え、前記第２の過程において、前記動作余裕量が前記許容余裕値以下である前記教示点及び前記対象点のみを前記動作余裕量と共に表示し、前記第４の過程において、前記個々のパラメータ毎の前記動作余裕量の最小値を前記教示プログラムで指定された軌跡全体における前記個々のパラメータ毎の前記動作余裕量として表示する、ロボットの動作余裕量演算表示方法を提供する。
【００１１】
ロボットの各関節の動作範囲や特異点による動作制限が、ロボット（加工具を把持する場合には当該加工具の先端）の各教示点におけるずれに対する余裕量である動作余裕量として数値で定量的に表示される。そのため、オペレータがずれに対する余裕量の多寡を定量的に把握して、教示点を修正すべき方向を直感的に把握することが可能となり、教示プログラムの検証から修正にいたるまでの時間を短縮できる。
【００１３】
動作余裕量を知りたい方向と座標軸が一致するように基準座標系を設定することで、オペレータがより把握し易い動作余裕量が得られる。例えば、ロボットのベース座標系に対して傾斜して配置されたワークに対し、タッチセンシング等による加工前の計測を実施する際には、ロボットをベース座標系に対して傾斜した方向に動作させることが多い。この場合、ベース座標系に対して傾斜した方向についての動作余裕量が重要となる（オペレータはこの方向でずれの許容量を知りたい）ので、座標軸がワークのベース座標系に対する傾斜と一致するように基準座標系を設定すればよい。
【００１５】
各教示点に加え、教示点間の軌跡上の対象点についても動作余裕量を計算して表示することで、より精査な教示プログラムの検証及び修正作業が可能になる。
【００１７】
動作余裕量が許容余裕値以下である教示点及び対象点のみを表示することで、オペレータに対して動作余裕量が許容余裕値以下である教示点等を明示し、教示プログラムの修正作業を行う際の修正指針を提供できる。
【００２１】
動作余裕量が少ない順に並べられたリストとして教示点及び対象点を表示することにより、教示点と対象点が多数存在する場合でもオペレータに対して教示プログラム全体について修正すべき教示点等を明示し、教示プログラムの修正の作業効率をさらに高めることができる。
【００２３】
教示プログラムで指定された軌跡全体における個々のパラメータ毎（各方向毎）の動作余裕量の最小値、すなわち教示プログラム全体として許容される個々のパラメータ毎の動作余裕量は、教示プログラムの修正のみならず、ワークずれの補正量の最大許容量として加工前の計測時のエラー処理に利用できる。また、教示プログラム全体として許容される個々のパラメータ毎の動作余裕量を、ワークの製作上の製作誤差の許容量や誤差を低減すべき箇所の指針やワークを配置するときの配置誤差に関する作業指示の一環として使用する事により、実作業にてロボットが動作途中で動作限界によって一時停止することを回避でき、生産性を向上できる。
【００２４】
本発明の第２の態様は、ロボットの教示プログラムに含まれる複数の教示点と隣接する教示点間の補間される軌跡上に設定された対象点のそれぞれについて、任意に設定された基準座標系における前記ロボットの位置姿勢を示す複数のパラメータのうちの１個又は複数個を変化させて、前記ロボットの各関節の動作範囲内で前記教示点から連続して動作可能な領域を示す動作余裕量を計算する第１の過程と、各教示点の前記動作余裕量を数値で定量的に表示する第２の過程と前記第１の過程において計算された各教示点及び各対象点における動作余裕量を予め設定された許容余裕値と比較する第３の過程と、前記第２の過程において計算されたすべての教示点及び対象点について個々のパラメータ毎の前記動作余裕量の最小値を計算する第４の過程とを備え、前記第２の過程において、前記動作余裕量が前記許容余裕値以下である前記教示点及び前記対象点のみを前記動作余裕量と共に表示し、前記第４の過程において、前記個々のパラメータ毎の前記動作余裕量の最小値を前記教示プログラムで指定された軌跡全体における前記個々のパラメータ毎の前記動作余裕量として表示する、ロボットの動作余裕量演算表示方法を提供する。
【発明の効果】
【００２５】
本発明のロボットの動作余裕量演算表示方法及びその装置によれば、ロボットの位置姿勢を示す複数のパラメータのうちの１個又は複数個を変化させて、ロボットの各関節の動作範囲内で教示点から連続して動作可能な領域を示す動作余裕量を計算して表示するので、ロボットが動作可能な領域をオペレータや生産ラインの現場作業者に対して直感的に認識できる態様で定量的に通知することができ、オペレータへの教示データの修正指針の提供や、現場作業者に対する現場でのワーク製作誤差やワーク配置誤差の許容量の提示を実現できる。
【発明を実施するための最良の形態】
【００２６】
次に、添付図面を参照して本発明の実施形態を説明する。
【００２７】
（第１実施形態）
本実施形態では、図１に示すような、厚板から構成されるワークＷを対象に、接合部位を溶接する作業を溶接ロボット１について本発明を適用した例を示す。溶接ロボット（以下、単に「ロボット」という。）１は加工具として溶接トーチ２を先端に把持する。本実施形態におけるロボット１は、産業用ロボットとして一般的な回転関節θ１〜θ６を有する６軸の多関節型ロボットであるが、後に詳述するように他の形式のロボットであっても本発明を適用できる。
【００２８】
ロボット１は、コンピュータを搭載した制御装置３により制御される。制御装置３は、予め動作を教示したプログラム（教示プログラム）に従ってロボット１を制御する。溶接トーチ２の動作条件（溶接電流等を含む）は、制御装置３によって教示プログラムに従って制御してもよく、溶接トーチ２専用の制御装置（図示せず。）が教示プログラムに従って制御してもよい。
【００２９】
教示プログラムは、制御装置３に附帯している教示ペンダント３を使用して作成可能である他、パーソナルコンピュータ等のコンピュータ５を利用して構築したオフライン教示システム６を使用して事前に作成される。オフライン教示システム６により作成された教示プログラムは、磁気ディスク（フロッピーディスク）やメモリ装置等を介して制御装置３に受け渡すことができ、データ通信により制御装置３に転送しても良い。
【００３０】
オフライン教示システム６は、表示装置としてグラフィックディスプレイ７を備え、入力装置としてキーボード８、マウス９を備える。また、オフライン教示システム６には、ワークＷのＣＡＤ情報を取り込むためのデータ入力手段として、磁気記憶装置や通信装置（いずれも図示せず。）が設けられている。これらの装置は、前述したロボット１の制御装置３への教示プログラムの受け渡しにも使用される。さらに、オフライン教示システム６のコンピュータ５は、各種演算を実行する演算部５ａ、演算部５ａの演算結果等を記憶する記憶部５ｂ、グラフィックディスプレイ７への表示を制御する表示制御部５ｃ、及びキーボード８、マウス９からの入力と磁気記憶装置や通信装置との間の入出力を制御する入出力制御部５ｄを備える。
【００３１】
図２を参照すると、本実施形態では、概ね以下の４つの過程を実行する。
【００３２】
過程１：オフライン教示システム６を使用して、オフラインティーチングによりロボット１を動作させるための教示プログラムを作成する（図２のステップＳ２−１）。
過程２：オフライン教示システム６でロボット１の動作余裕量を計算して表示する（図２のステップＳ２−２，Ｓ２−３）。
過程３：オペレータが表示された動作余裕量の計算結果に基づいて教示プログラムを評価し、必要があればオフライン教示システム６で教示プログラム（教示点）を修正する（図２のステップＳ２−４，Ｓ２−５）。
過程４：修正後の教示プログラムを制御装置３にダウンロードし、タッチセンシングによりワークＷを計測し、計測結果に基づいてワークＷの配置誤差等に対して教示プログラムを修正する。その後、実際にロボット１が加工動作を実行する（図２のステップＳ２−６〜Ｓ２−８）。
【００３３】
まず、オフライン教示システム６でロボット１の動作させるための教示プログラムを作成する過程１（図２のステップＳ２−１）について説明する。この過程１における教示プログラムの作成では、変形や加工誤差の無い理想的なワークＷが生産ライン上の基準位置に配置誤差がない状態で存在し、寸法誤差のないロボット１が誤差なく動作するという理想化したデータを用いる。つまり、オフライン教示システム６では、ＣＡＤデータ等によって、ワークＷの形状に関する情報及びロボット１の形状や動作特性、周辺装置（図示せず）等の配置情報等を得て、ロボット１、ワークＷ、周辺装置等のモデルをコンピュータ５内に作成し、グラフィックディスプレイ７に表示する。ロボット１のモデルに対しては、位置決めしたい箇所をマウス９でのワークＷの特徴部位の選択やキーボード８による数値入力により作業指示を行う。例えば、溶接したい溶接線の始点と終点を教示点とし、溶接に必要な姿勢の指示や、作業前後の接近点や退避点の設定を実行する。本実施形態では、ロボット１の基部に原点を有する三次元空間中に固定され水平垂直方向の直交座標系であるベース座標系を使用し、このベース座標系における溶接トーチ２の先端の位置姿勢が教示点、接近点、退避点として設定される。以下、ベース座標系での各座標軸と各座標軸周りの回転角度を（ｘ，ｙ，ｚ，α，β，γ）と表記する。また、オフライン教示システム６上でワークＷの位置ずれ等を検知するためのタッチセンシング動作のプログラムも作成する。ここまでは従来知られているオフライン教示システムを用いたロボットの教示の一般的な作業である。
【００３４】
次に、作成された教示プログラムに対して、各教示点や隣接する教示点間の補間される軌跡上に任意に設定された対象点について、ロボット１の動作可能範囲からどれだけの動作余裕があるかを演算する過程２（図２のステップＳ２−２）について説明する。
【００３５】
まず、過程２の意義を説明する。オフライン教示システム６内では、設計図面どおりの理想的なロボット１やワークＷであり、それらの配置関係も理想的な状態であったが、実機のロボット１の誤差、実際のワークＷの製作誤差や個体差、作業毎に発生するワークＷの配置誤差等がある。そのため、教示プログラムを実行して生産ライン上で実際のワークＷをロボット１で溶接する前に、タッチセンシングによってこれらの誤差量を計測し、それに基づいて教示プログラムに含まれる教示点の修正を行う必要がある（図２のステップＳ２−７）。しかし、仮に過程１（図２のステップＳ２−１）で作成した教示プログラムに対して何ら処理を行わずにタッチセンシングの結果に基づく修正を加えた場合、１つ又は複数の教示点や対象点がロボット１の動作限界を超えてしまう場合がある。これは過程１（図２のステップＳ２−１）で作成した教示プログラムに含まれる複数の教示点等の中には、その教示点等からロボット１を動作させて位置姿勢を変化させることができる許容範囲が狭いものがあることに起因する。そこで、本実施形態では、この許容範囲を定量的に示す指標である動作余裕量がいかほどあるか事前に把握し、必要十分であればそのまま実機のロボット１での作業（図２のステップＳ２−７，Ｓ２−８）を行う。一方、動作余裕量が不足するときは、教示点の必要な余裕範囲に入るように修正し（図２のステップＳ２−４，Ｓ２−５）、その上で実機のロボット１での作業を行う。動作余裕量はそのときのロボットの位置姿勢によっては、ある方向では十分余裕があるが別の方向の余裕量は極端に少なくなる場合も有る。教示点の修正で動作余裕量が十分に確保できないときであっても、現場で実作業を行う上での留意すべきポイントとして動作余裕量が少ない方向のずれが極力発生しないような操業を行うべく現場への操作指示として定量的な指針を示すことができる（ワークＷを配置するときの抑えるべき方向や位置、ワーク製作時の余裕量の少ない方向への誤差低減等）。以上のような目的のために、過程２では教示したプログラムに対して動作余裕量の演算を行う。
【００３６】
次に、本実施形態における過程２の動作余裕量の演算処理の内容を説明する。この動作余裕量の演算では、ロボット１の教示プログラムに含まれる各教示点や隣接する教示点間の補間される軌跡上に任意に設定された対象点の位置姿勢に対し、ロボット１の各関節θ１〜θ６の動作範囲内で連続して動作可能な領域を探索し、その上限値と下限値（動作余裕量）を求める。ベース座標系における教示点や対象点の位置姿勢は（ｘｔｅ，ｙｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅ）と表す。本実施形態では、教示点や対象点の位置姿勢を示すベクトル成分のうち１つを順次変化させて各関節θ１〜θ６の動作範囲内で連続して動作可能な領域を探索し、上限値と下限値を求める。この動作可能な領域の探索を、位置姿勢を示すベクトル成分全てについて実行し、教示点や対象点の各ベクトル成分について教示点や対象点から動作可能な上限値と下限値を計算する。
【００３７】
図３Ａ、図３Ｂ、及び図４は、ロボット１（溶接トーチ２の先端）の教示点がある位置姿勢である場合に、位置成分ｘｔｅ，ｙｔｅ，ｚｔｅについての動作可能な領域を概念的に示す。本実施形態のような６軸の多関節型のロボットの場合、ロボット１の姿勢が決まった時の溶接トーチ２の先端の動作可能領域Ａ（図４参照）は、側面から見ると図３Ａに示すような円弧を組み合わせた領域となり、上部から見ると図３Ｂに示すような扇形を組み合わせた領域となることが知られている。図５に示すように、ワーク５はこの領域Ａ内に溶接線が収まるように配置すればよい。位置成分ｘｔｅ，ｙｔｅ，ｚｔｅの動作余裕量はこの領域Ａから直接算出する事も可能である。図３Ａに、領域Ａから直接算出した位置成分ｘｔｅのみを変化させて他の成分ｙｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅを変化させないときの位置成分ｘｔｅの上限値ｘｔｅ−ｕｐ及び下限値ｘｔｅ−ｄｏｗｎを示す。また、図３Ｂに、領域Ａから直接算出した位置成分ｙｔｅのみを変化させて他の成分ｘｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅを変化させないときの位置成分ｙｔｅの上限値ｙｔｅ−ｕｐ及び下限値ｙｔｅ−ｄｏｗｎを示す。さらに、図３Ａに、領域Ａから直接算出した位置成分ｚｔｅのみを変化させ他の成分ｘｔｅ，ｙｔｅ，αｔｅ，βｔｅ，γｔｅを変化させないときの位置成分ｚｔｅの上限値ｚｔｅ−ｕｐ及び下限値ｚｔｅ−ｄｏｗｎを示す。
【００３８】
次に、図６及び図７を参照して過程２（図２のステップＳ２−１）における動作余裕量の計算の一例を具体的に説明する。教示点と対象点のうち教示プログラムで設定された溶接トーチ２の経路の最初の教示点から最後の教示点まで順に、各教示点と各対象点についてステップＳ６−２〜Ｓ６−７の計算を繰り返す（図６のステップＳ６−１，Ｓ６−８）。ステップＳ６−２では、教示点又は設定点の位置成分Ｘｔｅについて上限値ｘｔｅ−ｕｐと下限値ｘｔｅ−ｄｏｗｎを計算する。同様に、ステップＳ６−３で位置成分ｙｔｅについて上限値ｙｔｅ−ｕｐと下限値ｙｔｅ−ｄｏｗｎを計算し、ステップＳ６−４で位置成分ｚｔｅについて上限値ｚｔｅ−ｕｐと下限値ｚｔｅ−ｄｏｗｎを計算する。ステップＳ６−４では、教示点又は設定点の姿勢成分αｔｅについて、上限値αｔｅ−ｕｐと下限値αｔｅ−ｄｏｗｎを計算する。同様に、ステップＳ６−６で姿勢成分βｔｅについて上限値βｔｅ−ｕｐと下限値βｔｅ−ｄｏｗｎを計算し、ステップＳ６−７で姿勢成分γｔｅについて上限値γｔｅ−ｕｐと下限値βｔｅ−ｄｏｗｎを計算する。ステップＳ６−２〜Ｓ６−７の順序は入れ換えてもよい。また、各成分について上限値と下限値のいずれを先に計算してもよい。すべての教示点及び対象点について、各成分ｘｔｅ，ｙｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅの上下限値を計算し（ステップＳ６−８）、計算結果を記憶する（ステップＳ６−９）。
【００３９】
以下、位置成分ｘｔｅについて、上限値ｘｔｅ−ｕｐと下限値ｘｔｅ−ｄｏｗｎの計算方法を説明する。他の成分ｙｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅの上下限値の計算方法は、位置成分ｘｔｅの場合と同様である。
【００４０】
図７を参照して上限値ｘｔｅ−ｕｐの計算方法を説明する。この上限値ｘｔｅ−ｕｐの計算では、教示点又は対象点の位置成分ｘｔｅから十分小さい値Δｘを順次加算し、加算する度に各関節θ１〜θ６の動作範囲内で連続して動作可能であるかを確認する。各関節θ１〜θ６の動作範囲内で連続して動作可能でないことが検出されるまで、値Δｘの加算を繰り返す。具板的には、ステップＳ７−１において、ｘｉを初期値であるｘｔｅに設定する。次に、ステップＳ７−２において、（ｘｉ，ｙｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅ）の逆キネマティクスを計算し、各回転関節θ１〜θ６の関節角度の解があるか（ステップＳ７−３）、解のモードが同じか、すなわち解に連続性があるか（ステップＳ７−４）、及び解（各関節角度）が各回転関節θ１〜θ６の可動範囲内にあるか（ステップＳ７−５）を確認する。解があり、解のモードが同じで、かつ各関節角度が可動範囲内であれば、ステップＳ８−６においてｘｉに値Δｘを加算してステップＳ８−２〜Ｓ８−５を繰り返す。一方、ステップＳ７−３で解がない、ステップＳ７−４で解のモードが異なる、又はステップＳ７−５で各関節角度が可動範囲外であれば、ステップＳ７−７においてその時点でのｘｉ−１が上限値ｘｔｅ−ｕｐとなる。
【００４１】
図８に示す下限値ｘｔｅ−ｄｏｗｎの計算では、教示点又は対象点の位置成分ｘｔｅから十分小さい値Δｘを順次減算し、減算する度に各関節θ１〜θ６の動作範囲内で連続して動作可能であるかを確認する。図８のステップＳ８−１〜８−７の処理は、ステップＳ８−６においてｘｉに値Δｘを減算する点と、ステップＳ８−７においてその時点でのｘｉ−１が下限値ｘｔｅ−ｄｏｗｎとなる点を除いて、図７のステップＳ７−１〜Ｓ７−７と同一である。
【００４２】
次に、過程３（図２のステップＳ２−３〜Ｓ２−５）について説明する。過程２で計算した動作余裕量、すなわちすべての教示点及び対象点についての各成分ｘｔｅ，ｙｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅの上下限値をグラフィックディスプレイ７に表示し（ステップＳ２−３）、オペレータは表示された動作余裕量を参照して必要があれば、表示点の修正を行う（ステップＳ２−４，Ｓ２−５）。教示点が修正された場合には（ステップＳ２−５）、過程２の動作余裕量の計算が再度実行され、修正後の動作余裕量が再度表示される（ステップＳ２−２，Ｓ２−３）。ステップＳ２−４において修正の必要がない場合には、過程４（ステップＳ２−６〜Ｓ２−８）が実行される。
【００４３】
動作余裕量の表示（ステップＳ２−３）の態様としては、各教示点及び対象点をそれらについての各成分ｘｔｅ，ｙｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅの上下限値と共にリストとしてグラフィックディスプレイ７に表示する。
【００４４】
単にリストとして表示するのではなく、過程２において各教示点及び対象点の各成分ｘｔｅ，ｙｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅの上下限値を予め設定された許容余裕値と比較しておき、いずれかの成分の上限値や下限値が許容余裕値以下である教示点及び対象点を、いずれの成分の上下限値も許容余裕値を上回っている教示点及び対象点に対して視覚的に識別可能に表示することが好ましい（許容余裕値以下の上下限値自体も視覚的に識別可能に表示する）。例えば、グラフィックディスプレイ７上での表示の色分けにより識別可能な表示を実現できる。なお、許容余裕値は、例えば各成分ｘｔｅ，ｙｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅの上限値と下限値についてそれぞれ設定される。また、いずれかの成分の上限値や下限値が許容余裕値以下である教示点及び対象点のみを各成分ｘｔｅ，ｙｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅの上下限値と共にグラフィックディスプレイ７に表示してもよい。これらの態様の表示により、オペレータは修正すべき教示点を容易に把握できる。また、余裕量のない方向が明示されるので、修正すべき方向も含めてオペレータへのガイダンスとして活用できる。
【００４５】
また、教示点や設定点が多数存在する場合にはオペレータが修正すべき教示点を探し出すのが困難となるため、動作余裕量が少ないもの、すなわち許容余裕値に対する各成分ｘｔｅ，ｙｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅの上下限値の余裕量が少ないものから順に、教示点及び対象点を各成分の上下限値と共にグラフィックディスプレイ７上にリストとして表示してもよい。この態様の表示により、オペレータは修正すべき教示点を速やかに把握でき、教示点の修正作業を効率よくできる。
【００４６】
過程２において、すべての教示点及び対象点について各成分ｘｔｅ，ｙｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅの上下限値毎に動作余裕量の最小値を計算し、過程３において教示プログラムで指定された軌跡全体についての各成分ｘｔｅ，ｙｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅ毎の前記動作余裕量としてグラフィックディスプレイ７に表示してもよい。この態様の表示により、ワークとロボットの据付誤差やワークの製作誤差の全体としての許容量が明示され、ロボットでの自動化作業における操業の指針として活用できる。
【００４７】
過程３における動作余裕量を考慮した修正が完了した教示プログラムを実機のロボット１の制御装置３へダウンロードし、実作業を行う（第４過程：図２のステップＳ２−６〜Ｓ２−８）。動作余裕量が十分ある場合は特に問題なくロボット１は動作する。また、動作余裕量が小さく厳しいとき等は、タッチセンシングによるワークＷの位置ずれを検出する際の限界値として使用することにより、位置ずれ量が限界値を超えた場合は作業をスキップしたり作業前に停止する事により、ロボット１の動作途中で動作限界による停止は防止される。また、ワークＷの製作誤差や据付誤差に関する許容量が事前に分かっているので、その範囲にワークが製作され、配置されるように、操業にて留意する事により、ロボット１の動作途中で動作範囲限界による停止は防止される。
【００４８】
（第２実施形態）
過程２の動作余裕量の計算において、複数の成分を変化させた場合の上下限値を計算してもよい。図９を参照すると、例えば図のｘｔｅ成分とｙｔｅ成分の組み合わせを探索する場合は、ｘｔｅ成分及びｙｔｅ成分の上下限値をそれぞれ包絡した領域Ｂは動作可能領域であるのでその範囲外の部分を探索する事で演算時間の短縮を図ることができる。また簡易的に傾向を知るだけであれば、各成分の上下限値の包絡した領域Ｂで十分である。
【００４９】
図１０は動作余裕量の計算においてｘｔｅ成分とｙｔｅ成分の組み合わせを探索する場合の処理を示す。各教示点と各対象点についてステップＳ１０−２〜Ｓ１０−４の計算を繰り返す（ステップＳ１０−１，Ｓ１０−５）。また、計算結果は後の表示のために記憶される（ステップＳ１０−６）。ステップＳ１０−２においてｘｔｅ成分の上限値ｘｔｅ−ｕｐと下限値ｘｔｅ−ｄｏｗｎを計算するが、この計算方法は図７，８を参照して説明した通りである。また、ステップＳ１０−３において、同様にｙｔｅ成分の上限値ｙｔｅ−ｕｐと下限値ｙｔｅ−ｄｏｗｎを計算する。その後、ステップＳ１０−４においてｘｙ空間の動作余裕量を求める。
【００５０】
以下、図１１を参照してステップＳ１０−４の詳細を説明する。図１１は１つの教示点又は対象点（ｘｔｅ，ｙｔｅ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅ）についてｘｙ空間の余裕度を計算する手順を示す。ステップＳ１１−１において、ｘｉを初期値であるｘｔｅ−ｄｏｗｎに設定する。また、ステップＳ１１−２において、ｙｉ−ｕｐとｙｉ−ｄｏｗｎを初期値であるｙｔｅに設定する。ｙｉ−ｕｐはｘ成分の値がｘｉの場合のｙ成分（ｙｊ）の上限値であり、ｙｉ−ｄｏｗｎはｘ成分の値がｘｉの場合のｙｊの下限値である。さらに、ステップＳ１１−３において、ｙｊの値を初期値であるｙｔｅ−ｄｏｗｎに設定する。ステップＳ１１−２〜１１−１６の処理が繰り返される。具体的には、この処理はｘｉがｘｉ−ｄｏｗｎからｘｉ−ｕｐに達するまで一定の増分で繰り返され、かつ個々のｘｉについてはｙｊがｙｊ−ｄｏｗｎからｙｊ−ｕｐに達するまで繰り返される。
【００５１】
ステップＳ１１−４において、（ｘｉ，ｙｊ，ｚｔｅ，αｔｅ，βｔｅ，γｔｅ）の逆キネマティクスを計算し、各回転関節θ１〜θ６の関節角度の解があるか（ステップＳ１１−５）、解のモードが同じか（ステップＳ１１−６）、及び解が各回転関節θ１〜θ６の可動範囲内にあるか（ステップＳ１１−７）を確認する。解があり、解のモードが同じで、かつ各関節角度が可動範囲内であれば、ステップＳ１１−８に移行する。ステップＳ１１−８においてｙｊが下限値ｙｉ−ｄｏｗｎ未満であれば、下限値ｙｉ−ｄｏｗｎをｙｊに設定し（ステップＳ１１−９）、ｙｊを十分小さい値Δｙを加算してステップＳ１１−４に戻る。一方、ステップＳ１１−８においてｙｊが下限値ｙｉ−ｄｏｗｎ以上であれば、ステップＳ１１−１１に移行する。ステップＳ１１−１１でｙｊが上限値ｙｉ−ｕｐを上回っていれば、ステップＳ１１−１２で上限値ｙｉ−ｕｐをｙｊに設定し、ステップＳ１１−１０を経てステップＳ１１−４に戻る。
【００５２】
ステップＳ１１−５で解がない、ステップＳ１１−６で解のモードが異なる、又はステップＳ１１−７で各関節角度が可動範囲外であれば、ステップＳ１１−１３に移行する。ステップＳ１１−１３においてｙｊが上限値ｙｊ−ｕｐ未満であれば、ステップＳ１１−１０を経てステップＳ１１−４に戻る。ステップＳ１１−１３においてｙｊが上限値ｙｊ−ｕｐ以上であれば、ステップＳ１１−１４において、その時点のｘ成分の値ｘｉとそれに対応するｙ成分の上下限値ｙｉ−ｕｐ，ｙｉ−ｄｏｗｎを記憶する。続いて、ステップＳ１１−１５においてｘｉに値Δｘを加算した後、ステップＳ１１−１６に移行する。ステップＳ１１−１６において、ｘｉがｘｔｅ−ｕｐ以上であれば処理が終了し、ｘｔｅ−ｕｐ未満であればステップＳ１１−２に戻る。
【００５３】
（第３実施形態）
第１実施形態では、ロボット１のベース座標系の方向に対して動作余裕量を（各成分の上下限値）を算出したが、動作余裕量は任意に設定された基準座標系について算出してもよい。動作余裕量を知りたい方向と座標軸が一致するように基準座標系を設定することで、オペレータがより把握し易い動作余裕量が得られる。図５を参照すると、例えば、ロボット１のベース座標系（ｘ，ｙ，ｚ，α，β，γ）に対して傾斜して配置されたワークＷに対し、タッチセンシング等による加工前の計測を実施する際には、ロボット１をベース座標系に対して傾斜した方向に動作させることが多い。この場合、ベース座標系に対して傾斜した方向についての動作余裕量が重要となる（オペレータはこの方向でずれの許容量を知りたい）ので、座標軸がワークのベース座標系に対する傾斜と一致するように基準座標系（ｘ’，ｙ’，ｚ’，α’，β’，γ’）を設定すればよい。
【００５４】
（第４実施形態）
第１実施形態では、パソコン等のコンピュータ５を利用したオフライン教示システムによる事前の動作余裕量の計算等について説明したが、各教示点及び対象点について動作余裕量を計算する機能、動作余裕量を表示する機能、及び表示された動作余裕量に基づいて教示プログラムを修正する機能をロボット１の制御装置５に組み込んでもよい。
【００５５】
教示ペンダント３により実機のロボット１を操作して（教示用の）実際のワークに対して教示用プログラムを作成した場合（実機ティーチング）でも、ワークＷの製作誤差や個体差、作業毎の配置誤差は発生する。前述のように３つの機能をロボット１の制御装置５に組み込んでおけば、実機ティーチングの場合でも第１実施形態と同様に動作余裕量の計算及び表示とそれに基づく教示プログラムの修正を実現できる。図１２を参照すると、この場合には、まず実機ティーチングにより教示プログラムを作成し（ステップＳ１２−２）、その後動作余裕量を計算して表示し（ステップＳ１２−２，Ｓ１２−３）、必要があれば教示点の修正を実行する（ステップＳ１２−４，Ｓ１２−５）。修正完了後、タッチセンシング及びその結果に基づく教示点の修正を行った後、実際にロボット１が溶接動作を実行する（ステップＳ１２−６，Ｓ１２−７）。
【００５６】
本発明は実施形態に限定されず、種々の変形が可能である。例えば、回転多関節型の溶接ロボットを例に本発明を説明したが、本発明は、直動関節型や回転関節と直動関節の両方を備えるロボットにも本発明を適用できる。塗装、バリ取り、切断等の溶接以外の各種作業を行う産業用ロボットを含む他のロボットにも本発明を適用できる。
【図面の簡単な説明】
【００５７】
【図１】本発明の第１実施形態に係るロボット、制御装置、及びオフライン教示システムを示す模式図。
【図２】本発明の第１実施形態で実行される過程を示すフローチャートを示す。
【図３Ａ】ロボットの位置姿勢が決まったときの動作範囲と動作余裕量の関係を示す側面図。
【図３Ｂ】ロボットの位置姿勢が決まったときの動作範囲と動作余裕量の関係を示す平面図。
【図４】ロボットの位置姿勢が決まったときの動作範囲を示す三次元表示図。
【図５】ロボットの位置姿勢が決まったときの動作範囲とワークの配置との関係を示す三次元表示図。
【図６】図２のステップＳ２−２の詳細を示すフローチャート。
【図７】図６のステップＳ６−１（上限値の計算）の詳細を示すフローチャート。
【図８】図６のステップＳ６−１（下限値の計算）の詳細を示すフローチャート。
【図９】ロボットの位置姿勢が決まったときの動作範囲とｘｙ空間の余裕度の関係を示す三次元表示図。
【図１０】ｘ成分とｙ成分を変化させた場合の動作余裕量の探索手順を示すフローチャート。
【図１１】図１０のステップＳ１０−４の詳細を示すフローチャート。
【図１２】実機ティーチングを行う場合に実行する過程を示すフローチャート。
【符号の説明】
【００５８】
１  溶接ロボット
２  溶接トーチ
３  制御装置
４  教示ペンダント
５  コンピュータ
６  オフライン教示システム
７  グラフィックディスプレイ
８  キーボード
９  マウス
Ｗ  ワーク
【図１】
0005103237.tif 000002
【図２】
0005103237.tif 000003
【図３Ａ】
0005103237.tif 000004
【図３Ｂ】
0005103237.tif 000005
【図４】
0005103237.tif 000006
【図５】
0005103237.tif 000007
【図６】
0005103237.tif 000008
【図７】
0005103237.tif 000009
【図８】
0005103237.tif 000010
【図９】
0005103237.tif 000011
【図１０】
0005103237.tif 000012
【図１１】
0005103237.tif 000013
【図１２】
0005103237.tif 000014