(57)【要約】【課題】組立嵌合作業の教示の負担を軽減すると共に、嵌合作業の精度を向上させ作業を効率化でき、教示作業時と再生運転時の環境の変化に対するロバスト性を上げることが可能なロボットシステムを提供する。【解決手段】ロボットコントローラ１０２は、暫定的に教示されたワーク把持点および嵌合点、ワーク把持点と嵌合点との間の経由点の各位置と、ワーク把持点および嵌合点におけるエンドエフェクタ１０４の姿勢と、ロボット１０１周辺に存在する障害物の位置とから障害物を回避して嵌合を行う作業プログラムを生成し、教示データ記憶部１０２３に記憶させる姿勢演算部１０２４を備える。【選択図】図１
2010142910.tif 000002
【特許請求の範囲】
【請求項１】
複数の関節を備え、先端部にエンドエフェクタを取り付けたロボットと、前記ロボットの教示データおよび作業プログラムを記憶する教示データ記憶部と、前記作業プログラムに基づき前記ロボットへの動作指令を生成する指令生成部と、前記動作指令によって前記ロボットの各関節のサーボモータを駆動するサーボ制御部とを備えたロボットコントローラと、前記ロボット制御装置に接続された教示装置とからなり、
前記エンドエフェクタにより第１の所定位置に配置されたワークを把持して第２の所定位置へ嵌合する作業を行うロボットシステムにおいて、
前記ロボットコントローラは、
暫定的に教示されたワーク把持点および嵌合点、前記ワーク把持点と前記嵌合点との間の経由点の各位置と、
前記ワーク把持点および嵌合点における前記エンドエフェクタの姿勢と、
前記ロボット周辺に存在する障害物の位置とから前記障害物を回避して嵌合を行う作業プログラムを生成し、前記教示データ記憶部に記憶させる姿勢演算部を備えることを特徴とするロボットシステム。
【請求項２】
前記ロボットは冗長自由度を有する多関節ロボットであり、前記姿勢演算部は前記作業プログラムを生成する際に前記エンドエフェクタおよび前記冗長自由度の姿勢を決定することを特徴とする請求項１記載のロボットシステム。
【請求項３】
前記教示データ記憶部は、暫定的に教示されたワーク把持点および嵌合点、前記ワーク把持点と前記嵌合点との間の経由点の各位置と、前記ワーク把持点および嵌合点における前記エンドエフェクタの姿勢と、前記前記ロボット周辺に存在する障害物の位置とを前記教示データとして記憶することを特徴とする請求項１記載のロボットシステム。
【請求項４】
前記教示データ記憶部は、前記前記ロボット周辺に存在する障害物の位置を前記ロボットが作業を行う環境のＣＡＤデータから取得することを特徴とする請求項３記載のロボットシステム。
【請求項５】
前記ロボットは先端部にワーク位置検出センサを備え、  前記姿勢演算部は前記作業プログラムを生成する際に前記ワーク位置検出センサにより取得した前記第１の所定位置に配置されたワークの位置によって前記暫定的に教示されたワーク把持点の位置を修正し、
前記ワーク位置検出センサにより取得した前記第２の所定位置によって、前記暫定的に教示された嵌合点位置を修正することを特徴とする請求項１または２記載のロボットシステム。
【請求項６】
前記姿勢演算部は前記作業プログラムを生成する際に前記修正されたワーク把持点と前記経由点との間と、前記経由点と前記修正された嵌合点との間を複数の点で補間し、
前記複数の補間点について前記エンドエフェクタおよび前記冗長自由度の姿勢を決定することを特徴とする請求項５記載のロボットシステム。
【請求項７】
前記ロボットコントローラは、前記ロボットの各軸への位置指令を順変換した指令位置と、前記サーボモータのエンコーダによる位置フィードバック値を順変換したフィードバック位置を比較して、その誤差が予め設定された閾値を超えていれば作業失敗と判断する作業状況判断部を備え、
再生運転時の嵌合において作業失敗と判断した場合には、前記ワーク位置検出センサで前記前記第２の所定位置を検出して、検出した位置に対し再度嵌合動作を行うことを特徴とする請求項５記載のロボットシステム。
【請求項８】
前記作業状況判断部によって作業失敗と判断された場合には、前記教示装置を介して作業者に提示することを特徴とする請求項７記載のロボットシステム。
【請求項９】
前記ロボットは、アーム上に周辺の障害物の位置を計測する障害物位置検出センサを備え、
前記姿勢演算部は前記作業プログラムの再生運転時に前記障害物位置検出センサによってロボット近傍にある未知の障害物を検出して、動的に前記作業プログラムの修正を行うことを特徴とする請求項１記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用ロボット（ 以下、単に「ロボット」と言う）システムに関し、特に、ロボットによる部品組立等の作業の教示および再生に関するロボットシステムに関する。
【背景技術】
【０００２】
車や家電の部品の組立工程には、ワーク同士の嵌め合い作業が含まれていることが多い。従って、このような嵌め合い作業を含む組立工程をロボットを用いて自動化、省力化する場合には、何らかの方法でロボットに嵌め合い作業を教示する必要がある。ロボットによる組立嵌合作業の教示を行う手法はオンライン教示とオフライン教示に分けることができる。
オンライン教示の方法として、例えば特許文献１では、実ロボットにワークを持たせて作業者がロボットを誘導して適当な位置姿勢をとらせ、実際に力制御などで嵌合作業を行って最後に嵌合した状態の位置を登録する例が開示されている。
また、オフライン教示の方法として、予め外部のパソコンなどで作業プログラムを作成して、それをロボットコントローラに転送して再生運転する方法がある。
更に、オンライン教示とオフライン教示とを組み合わせた方法として、ワークを測距センサで測定して形状を認識して、オフラインで教示する方法もある。
【０００３】
しかし、オンライン教示では、ロボットによる組立嵌合作業を精度良く教示する際に冗長自由度を持ったロボットでは同一の教示位置に対してロボットが複数の姿勢を取ることができるために教示作業が煩雑である。更に再生運転させてみると、教示した姿勢をとる際に各軸の移動量が大きく移動時間がかかるといった問題が発生することがある。こうした場合、動作の最適化のために再教示を要する。
一方オフライン教示では、オフラインで作成した教示データの原点と実際のロボットの原点とがずれている場合があり、予め作成した作業プログラムの教示点位置の補正が難しいという問題があった。また、組立作業等の接触を伴う作業では、再生運転時に位置決め誤差やワーク加工誤差による位置ずれが発生したり、教示時には存在しなかった周辺機器と干渉したりして作業が失敗するという問題がある。
【０００４】
そこで、例えば特許文献２には、オンライン教示で精度良く教示位置を教示する方法として、ロボットのエンドエフェクタ上にワークの位置検出をする位置検出手段を設け、位置検出手段が位置検出領域に測定光を照射し、位置検出領域から帰還する乱反射光や正反射光に基づいてワークの位置情報を取得する例が開示されている。
また特許文献３には、オフライン教示で精度良く教示位置を教示する方法として、ワーク上の注目点までの距離を非接触で計測する測距手段をロボットの手首に備え、測距手段で計測される距離から得られる距離データを、視覚的イメージの指示経路に変換して画面上で表示し、作業者が指示する所望の位置を位置データに変換して指示し、距離データから所望の指示経路を獲得する例が開示されている。
また特許文献４および５には、オフライン教示での原点ずれを解決する方法として、先端部に対象物との接触を検知するセンサ部を設けた擬似ロボットを作業者がダイレクト教示により誘導し、ワークの表面にセンサ部を接触させることにより、ワークの形状データを逐次入力して加工経路データを教示する操作機構を用い、これらのデータをオフライン教示装置に取り込み、動作の確認や教示点の編集、作業条件の付加教示等をオフライン教示装置の画面上で行う例や、高精度を要求される教示位置に関してはダイレクトに教示するという手法を取りながらも、オフラインで作成した作業プログラムおよび教示位置を有効利用することにより、容易に教示位置の誤差補正を行うロボットシミュレーションシステムの例が開示されている。
また特許文献６には、再生運転時の位置ずれの解決方法として、挿入位置を探索して挿入する例が開示されている。
また特許文献７には、再生運転時の周辺機器との干渉を解決する方法として、ロボットが干渉領域を通過して干渉領域の外側まで移動するかどうかを検出し、干渉領域の外側まで移動する場合には迂回経路を自動的に創成してロボットを迂回させる例が開示されている。
【０００５】
【特許文献１】特開平８−１９４５２１号公報（第３頁、図１）
【特許文献２】特開平５−３０９５９０号公報（第４頁、図１）
【特許文献３】特開平６−３４８３３０号公報（第３頁、図１）
【特許文献４】特開平７−２０９２５号公報（第３頁、図１）
【特許文献５】特開２００１−５１７１３号公報（第３頁、図１）
【特許文献６】特開２００４−１６７６５１号公報（第７頁、図２）
【特許文献７】特開昭６１−１４７３０７号公報（第２頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献２のように、エンドエフェクタ上にワークの位置検出をする位置検出手段を設け、ワークの位置情報を取得する方法では、ワーク位置は精度良く検出できるが、実際にはツール寸法誤差やロボットのリンク寸法誤差、原点誤差が存在して、エンドエフェクタとワークの位置関係（位置や姿勢）を精度良く教示できないという問題があった。
また、特許文献３のように、測距手段で計測される距離から得られる距離データを視覚的イメージの指示経路にして画面上で表示して作業者が指示する方法では、作業者が指示する手間が必要で、ワークの形状を認識するために膨大な時間もかかるという問題があった。
また、特許文献４のように、擬似ロボットによりダイレクト教示を行い、ワークに接触させて教示データを作成する方法では、操作機構の軸構成が実際のロボットと異なる場合には、操作機構で入力した姿勢がロボットで取れないという問題があった。
また、特許文献５のように、オフラインで生成した作業プログラムと教示位置のダイレクト教示とを組み合わせる方法では、オフラインで生成したアプローチ姿勢が実際の環境に適さない場合には、オフラインで生成した教示位置にロボットが到達できないという問題があった。
また、特許文献６のように、再生運転時に、挿入位置を探索して挿入する方法では、探索に時間が掛かり、また探索方向や移動量を決めることも難しいという問題があった。
また、特許文献７のように、再生運転時に、ロボットが干渉領域を通過して干渉領域の外側まで移動する場合に迂回経路を自動的に創成してロボットを迂回させる方法では、オンラインで障害物が発生した場合に対応できないという問題があった。
本発明はこのような問題点に鑑みてなされたものであり、組立嵌合作業の教示の負担を軽減すると共に、嵌合作業の精度を向上させ作業を効率化でき、教示作業時と再生運転時の環境の変化に対するロバスト性を上げることが可能なロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記問題点を解決するため、本発明は次のように構成したのである。
請求項１に記載の発明は、複数の関節を備え、先端部にエンドエフェクタを取り付けたロボットと、前記ロボットの教示データおよび作業プログラムを記憶する教示データ記憶部と、前記作業プログラムに基づき前記ロボットへの動作指令を生成する指令生成部と、前記動作指令によって前記ロボットの各関節のサーボモータを駆動するサーボ制御部とを備えたロボットコントローラと、前記ロボット制御装置に接続された教示装置とからなり、前記エンドエフェクタにより第１の所定位置に配置されたワークを把持して第２の所定位置へ嵌合する作業を行うロボットシステムにおいて、前記ロボットコントローラは、暫定的に教示されたワーク把持点および嵌合点、前記ワーク把持点と前記嵌合点との間の経由点の各位置と、前記ワーク把持点および嵌合点における前記エンドエフェクタの姿勢と、前記ロボット周辺に存在する障害物の位置とから前記障害物を回避して嵌合を行う作業プログラムを生成し、前記教示データ記憶部に記憶させる姿勢演算部を備えることを特徴とするものである。
【０００８】
請求項２に記載の発明は、前記ロボットは冗長自由度を有する多関節ロボットであり、前記姿勢演算部は前記作業プログラムを生成する際に前記エンドエフェクタおよび前記冗長自由度の姿勢を決定することを特徴とするものである。
【０００９】
請求項３に記載の発明は、前記教示データ記憶部は、暫定的に教示されたワーク把持点および嵌合点、前記ワーク把持点と前記嵌合点との間の経由点の各位置と、前記ワーク把持点および嵌合点における前記エンドエフェクタの姿勢と、前記前記ロボット周辺に存在する障害物の位置とを前記教示データとして記憶することを特徴とするものである。
【００１０】
請求項４に記載の発明は、前記教示データ記憶部は、前記前記ロボット周辺に存在する障害物の位置を前記ロボットが作業を行う環境のＣＡＤデータから取得することを特徴とするものである。
【００１１】
請求項５に記載の発明は、前記ロボットは先端部にワーク位置検出センサを備え、前記姿勢演算部は前記作業プログラムを生成する際に前記ワーク位置検出センサにより取得した前記第１の所定位置に配置されたワークの位置によって前記暫定的に教示されたワーク把持点の位置を修正し、前記ワーク位置検出センサにより取得した前記第２の所定位置によって、前記暫定的に教示された嵌合点位置を修正することを特徴とするものである。
【００１２】
請求項６に記載の発明は、前記姿勢演算部は前記作業プログラムを生成する際に前記修正されたワーク把持点と前記経由点との間と、前記経由点と前記修正された嵌合点との間を複数の点で補間し、前記複数の補間点について前記エンドエフェクタおよび前記冗長自由度の姿勢を決定することを特徴とするものである。
【００１３】
請求項７に記載の発明は、前記ロボットコントローラは、前記ロボットの各軸への位置指令を順変換した指令位置と、前記サーボモータのエンコーダによる位置フィードバック値を順変換したフィードバック位置を比較して、その誤差が予め設定された閾値を超えていれば作業失敗と判断する作業状況判断部を備え、再生運転時の嵌合において作業失敗と判断した場合には、前記ワーク位置検出センサで前記前記第２の所定位置を検出して、検出した位置に対し再度嵌合動作を行うことを特徴とするものである。
【００１４】
請求項８に記載の発明は、前記作業状況判断部によって作業失敗と判断された場合には、前記教示装置を介して作業者に提示することを特徴とするものである。
【００１５】
請求項９に記載の発明は、前記ロボットは、アーム上に周辺の障害物の位置を計測する障害物位置検出センサを備え、前記姿勢演算部は前記作業プログラムの再生運転時に前記障害物位置検出センサによってロボット近傍にある未知の障害物を検出して、動的に前記作業プログラムの修正を行うことを特徴とするものである。
【発明の効果】
【００１６】
請求項１乃至３に記載の発明によれば、作業者はエンドエフェクタの大まかな位置姿勢と障害物の位置の教示を行うのみで自動的に作業プログラムを生成でき、組立嵌合作業の教示の負担を軽減することができる。
また冗長自由度を持ったロボットに対しても、作業者はロボットの姿勢を考慮する必要なく教示を行うことができるという効果がある。
請求項４に記載の発明によれば、障害物の位置をＣＡＤデータから取得することで作業者の教示の負担を軽減することができる。
請求５、６に記載の発明によれば、ワーク位置検出センサによりワークの位置と嵌合位置を検出して作業プログラムを生成するので、嵌合作業の精度を向上させ作業を効率化することができる。
請求項７に記載の発明によれば、再生運転時に作業状況判断部で作業が失敗したと判断した場合には、ワーク位置検出センサの検出結果をもとに自動的に再度嵌合動作を行うため、嵌合の成功確率を高め作業を効率化することができる。
また請求項８に記載の発明によれば、作業者が嵌合作業の状況を簡単に把握することができる。
また請求項９に記載の発明によれば、障害物位置検出センサによりロボットのアーム近傍にある未知の障害物位置を検出して動作経路の修正を行うため、再生運転時に未知の障害物が存在しても対応できるという効果がある。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の具体的実施例について、図に基づいて説明する。
【実施例１】
【００１８】
図１は、本発明の第１実施例におけるロボットシステムの構成図である。図において、１０１は冗長自由度を持ったロボット、１０２はロボット１０１の動作を制御するコントローラ、１０３はロボット１０１の各軸を動作させる操作ボタンや数値ボタン、ディスプレイを備えた教示装置、１０４はロボットの手先に配置されたエンドエフェクタ（ここではグリッパとする）、１０５はワーク、１０６はエンドエフェクタ１０４上又はその周辺に配置されたワーク位置検出センサ、１０７はロボット１０１のアーム上に配置された障害物位置検出センサである。
コントローラ１０２内には、ロボットの作業プログラムや教示データ等を保存する教示データ記憶部１０２３、作業プログラムを基にロボットの動作指令を生成する指令生成部１０２１、動作指令を基にロボットの各軸サーボモータを駆動するサーボ制御部１０２２、教示データ等の情報からロボットの各教示点位置での最適なアームの姿勢を自動的に演算する姿勢演算部１０２４が設けられている。
図１では姿勢演算部１０２４はコントローラ２内に内蔵されているが、姿勢演算部１０２４をコントローラ２とは別体のパソコン等として、コントローラ２とはLAN等の通信線を介して接続される構成としても良い。
【００１９】
上記ロボットシステムを用いた組立嵌合作業の教示作業から再生運転までの過程を説明する。
教示作業段階では、作業者は、教示装置１０３上に配置されたロボット各軸に対応する操作ボタンを押してロボットを操作し誘導する間接教示か、エンドエフェクタ１０４の近傍に配置された力センサ（図示せず）に対し応力を与え、力制御によりロボットを誘導する直接教示によってロボットの誘導を行う。
ロボットは冗長自由度を有しており、エンドエフェクタの位置姿勢が一意に決定される場合でも肘に相当する部分の姿勢は複数取りうる。よってエンドエフェクタの位置姿勢を変えずにロボットと周辺機器との干渉を避けることが出来る反面、最適な姿勢を見つけることが難しい。また、エンドエフェクタの位置姿勢も、ワークが狭隘部分にある場合には作業者が十分に目視出来ずに正確に教示することが困難な場合がある。
そこで、本ロボットシステムでは、作業者によるロボット誘導では大まかな位置のみ教示し、詳細な位置に関しては後述するようにワーク位置検出センサによって取得し、姿勢に関しては後述するように姿勢演算部により自動演算させて決定するという手順を取る。
【００２０】
詳細な教示方法について図２を用いて説明する。図２（ａ）では、配膳パレット１１０に配置されたオス型コネクタ１０５２をエンドエフェクタ１０４で把持して筐体１０９内にあるメス型コネクタ１０５１に嵌合する作業を例としている。図２（ａ）ではロボット１０１をその軸構成が把握しやすいよう単純化して示している。
筐体１０９内には既知の障害物１０８１や１０８２等が複数存在している。作業者はまず上述した直接教示又は間接教示でエンドエフェクタ１０４を配膳パレット１１０まで誘導する。配膳パレット１１０に誘導した後、実際にエンドエフェクタ（グリッパ）でオス型コネクタ１０５２を把持してその位置を教示位置として登録しても良いが、ロボットの姿勢を適切なアプローチ姿勢に調整することやグリッパの把持中心で正確にコネクタを把持させることは、作業者の熟練度合いが低い場合には時間を要する。そこで、ここではコネクタを実際には把持させず、姿勢も障害物に接触しない程度に大まかな姿勢にして、配膳パレット上のコネクタ取得位置Ａを暫定的に教示する。
例えば閉じた状態のグリッパがオス型コネクタ１０５２の中心から数ｃｍ上部の空間に位置するように教示する。ここで同時に、作業者は教示装置１０３等を用いてコネクタの把持方向（エンドエフェクタの姿勢）を設定する。
【００２１】
次に、筐体１０９内にある既知の障害物１０８１や１０８２の位置と、障害物を回避するための経由位置Ｂを教示する。本実施例では説明を簡単にするため、経由位置は一点のみとしているが、障害物の数や配置によって経由点の数は複数となることもある。
筐体１０９のＣＡＤデータ等を基に既知の障害物の位置や大きさをコントローラ１０２に取り込むことが可能である場合には、この障害物についての教示は省略することができる。コントローラ１０２にＣＡＤデータを取り込むには、例えば次のようにする。まず教示データ記憶部１０２３にてＣＡＤデータを取り込み、ＣＡＤデータから障害物の頂点を抽出してロボット座標系における障害物１０８２の位置や大きさを定義する。例えば障害物１０８２が直方体の場合は、その８つの頂点となる。図２（ａ）に示す１０８２１〜１０８２４は障害物１０８２の頂点の一部を示している。
ＣＡＤデータ等によって障害物の情報を取得できない場合には、コネクタ取得位置Ａなどと同様に実際にロボットを動作させてエンドエフェクタ１０４を障害物の頂点や表面の位置まで誘導し、教示データ記憶部１０２３に障害物に関する情報として記憶する。
【００２２】
続いて障害物位置と干渉せず、かつコネクタ取得位置Ａとメス型コネクタ１０５１の中間付近の位置までエンドエフェクタ１０４を誘導し、経由位置Ｂとして教示データ記憶部１０２３に登録する。
ＣＡＤデータ等を利用できる場合は、作業者が教示装置１０３を操作してディスプレイ上に障害物位置とコネクタ取得位置Ａ、メス型コネクタ１０５１の各位置を表示させ、それらの位置関係から判断して適切な位置を経由位置Ｂとして数値入力しても良い。もしくは障害物から一定距離離れた位置（エリア）を予め自動的に求めておき、コネクタ取得位置Ａとメス型コネクタ１０５１を結びつつこのエリアを通らない曲線（例えばｎが２以上のｎ次曲線）を求めて、その曲線上の点を経由位置Ｂとして登録しても良い。
【００２３】
最後に、コネクタの組立嵌合位置Ｃを教示するため、コネクタ取得位置Ａの教示の場合と同様に、エンドエフェクタ１０４を誘導してメス型コネクタ１０５１の中心位置から数ｃｍ上部の空間を教示する。同時に作業者は教示装置１０３を用いてコネクタの挿入方向（エンドエフェクタの姿勢）を設定する。
コネクタ取得位置Ａと経由位置Ｂと組立嵌合位置Ｃ、およびＡ点でのコネクタ把持方向とＣ点でのコネクタ挿入方向の情報は、教示データ記憶部１０２３に記憶される。さらに前述のように障害物に関する情報も教示データ記憶部１０２３に記憶して、位置教示作業を終了する。
【００２４】
位置教示作業終了後、姿勢教示作業を自動で行う。姿勢演算部１０２４では、教示データ記憶部１０２３に記憶されたコネクタ取得位置Ａ、経由位置Ｂ、組立嵌合位置ＣとＡ点でのコネクタ把持方向、Ｃ点でのコネクタ挿入方向の情報と既知の障害物（１０８１や１０８２）の情報とから、実際に作業する際にロボットの姿勢変化と速度変化が小さくなるように、各教示点位置でのアームの姿勢を決定する。
【００２５】
具体的には、まずコネクタ取得位置Ａとコネクタ把持方向の情報と、組立嵌合位置Ｃとコネクタ挿入方向から、Ａ、Ｃそれぞれの位置でのエンドエフェクタの姿勢が一意に決まる。冗長自由度の軸（ここでは肘角度）は、コネクタ取得位置Ａと組立嵌合位置Ｃにおいて、それぞれの近傍にある障害物（Ａでは障害物１０８２、Ｃでは障害物１０８３）からの距離が大きくなる姿勢を取る。
図２（ａ）ではコネクタ取得位置Ａでの肘角度の例としてELBOW1（実線）とELBOW2（点線）を示している。ロボット１０１は冗長自由度を有するため、ロボットの根元から２軸目(Ｊ２)と６軸目（Ｊ６）の間の軸は、複数の姿勢を取ることができ、それに伴って肘点位置も例えばELBOW1やELBOW2のように変化する。
図２（ｂ）は図２（ａ）のＤ−Ｄ断面図である。図２（ｂ）に示すように２軸目(Ｊ２)と６軸目（Ｊ６）を結ぶ線を中心としてELBOW1とELBOW2の肘点を含む肘点円（肘点の描く円）上に肘点を自由に取ることができる。ここで２軸目(Ｊ２)と６軸目（Ｊ６）を結ぶ線上で肘点円の中心位置をＥとする。
指令生成部ではロボットの各軸に出力する指令を生成する際の逆運動学の演算のためロボットの各軸間のリンク長などのデータなどをパラメータとして保持しているが、姿勢演算部１０２４はこうしたデータを参照して肘の位置を計算し、障害物と干渉が発生しないかを確認する。
ELBOW2の場合は肘が近傍の障害物である配膳パレット１１０と干渉するため、配膳パレット１１０からの距離がより大きい姿勢であるELBOW1を選択する。実際には肘点円において障害物に最も近い肘位置（角度）を０度とした場合に干渉の確率が小さい9０度から２７０度の範囲で選択しても可能である。ここでは１８０度の角度を選択している。
【００２６】
経由位置Ｂでのエンドエフェクタの姿勢と肘角度は、コネクタ取得位置Ａと組立嵌合位置Ｃでのそれぞれのエンドエフェクタの姿勢と肘角度を繋いで、コネクタ取得位置Ａから経由位置Ｂまでの移動および経由位置Ｂから組立嵌合位置Ｃまでの移動の際のロボットの姿勢変化や速度変化が小さくなるようにする。
【００２７】
図３に経由位置Ｂでのエンドエフェクタの姿勢の決定方法を示す。図３では、ロボットのＪ２からＪ６の間は省略して描いている。
コネクタ取得位置Ａと組立嵌合位置Ｃでのエンドエフェクタの姿勢はコネクタ把持方向とコネクタ挿入方向から一意に決めることができるが、経由位置Ｂまでのエンドエフェクタの姿勢は一意には決まらない。
そこでロボット座標系のＺ軸周りに関するコネクタ取得位置Ａの姿勢角度θａから組立嵌合位置Ｃの姿勢角度θｃまでの姿勢変化（θｃ−θａ）を、コネクタ取得位置Ａと組立嵌合位置Ｃの動作経路に沿った距離に応じて等分割して割り当てる（図３内の姿勢Ａ１〜Ａ３）ことで経由位置Ｂでのエンドエフェクタの姿勢を求めることができる。同様に、経由位置Ｂから組立嵌合位置Ｃまでのエンドエフェクタの姿勢角度も等分割して割り当てることで求める（図３内の姿勢Ｂ１〜Ｂ２）。
【００２８】
一方で経由位置Ｂでの肘角度は、エンドエフェクタの姿勢の決定方法と同様にコネクタ取得位置Ａと組立嵌合位置Ｃの肘角度から動作経路に沿った距離に応じて均等分割して払い出すことで求めることができる。ただし、コネクタ取得位置Ａと経由位置Ｂの途中に障害物がある場合には図２のコネクタ取得位置Ａでの肘角度の例に示すようにその障害物を回避するように肘角度を１８０°としてコネクタ取得位置Ａでの肘角度とこの肘角度を均等分割し、同様にこの肘角度と経由位置Ｂでの肘角度を再度均等分割する必要がある。
例えば、図３のＡ２の姿勢で肘角度を１８０°にすると肘点が障害物１０８３に干渉する場合には肘角度を９０°又は２７０°に変更する。ただし、この場合の肘角度は９０°や２７０°に限定されるものではなく、障害物に干渉しなければ９０°〜２７０°の範囲で選択可能である（ただし１８０°付近を除く）。
【００２９】
ここではエンドエフェクタの姿勢と肘角度を決定する際にロボットの姿勢変化と速度変化を小さくすることを重視しているが、各軸や肘の速度変化を小さくすることを重視しても良い。具体的には、姿勢演算部１０２４にてアームの姿勢を決定する際、障害物との干渉の可能性の重み付けを小さくし、各軸や肘の速度の変化量の小ささを重視した評価関数を用いて肘角度の決定を行うようにする。
【００３０】
このように姿勢演算部１０２４によって求められた各位置でのエンドエフェクタの姿勢と肘角度を基に、一連の動作経路（図３中の一点差線）に沿った動作指令が指令生成部１０２１内で生成され、作業プログラムとして教示データ記憶部１０２３に記憶して、姿勢教示作業を終了する。
【００３１】
姿勢教示作業終了後、ロボットが動作し、ワーク（コネクタ）取得／嵌合位置修正作業を自動で行う。これは大まかに教示したコネクタ取得位置Ａと組立嵌合位置Ｃの位置データを詳細に取得するものである。
図４を用いて具体的に説明する。
教示データ記憶部１０２３に記憶された作業プログラムに従ってロボットがコネクタ取得位置Ａまで動作する。前述のように予め教示した位置はオス型コネクタ１０５２の数ｃｍ上方であるため、その位置でロボットは停止する。その位置から、エンドエフェクタ１０４上又はその周辺に配置されたワーク位置検出センサ１０６でオス型コネクタ１０５２の位置を測定して、その測定結果とロボットの現在位置（コネクタ取得位置Ａ）を合成してオス型コネクタ１０５２の詳細位置Ａ’を得る。
ワーク位置検出センサ１０６が1次元のレーザセンサの場合、オス型コネクタ１０５２の上方から水平方向にエンドエフェクタ１０４を移動させワーク位置検出センサ１０６によるスキャンを行うことでオス型コネクタ１０５２の位置取得が可能である。ワーク位置検出センサ１０６としてカメラを用いてオス型コネクタ１０５２の位置を取得しても良い。組立嵌合位置Ｃについても同様にワーク位置検出センサ１０６の計測結果を用いて詳細位置データＣ’を取得する。これらの測定結果および位置修正量は教示装置１０３のディスプレイ上に表示して作業者に提示しても良い。
【００３２】
ワーク位置検出センサ１０６によって取得したコネクタ取得の詳細位置Ａ’と組立嵌合の詳細位置Ｃ’の位置データと、メス型コネクタ１０５１とオス型コネクタ１０５２の寸法データを用いて、教示データ記憶部１０２３内の作業プログラムを姿勢演算部１０２４で再演算させる。このとき、コネクタの寸法データを基に、嵌め合い深さ等を考慮した最終的なオス型コネクタ１０５２の把持位置と、メス型コネクタ１０５１とオス型コネクタ１０５２との嵌合位置を求める。大まかなアプローチ位置であるコネクタ取得位置Ａと組立嵌合位置Ｃのデータもワーク位置検出センサ１０６の測定結果を基に修正する。
これにより、詳細位置データに基づいた新たな作業プログラムが作成されて教示データ記憶部１０２３に記憶され、ワーク（コネクタ）取得／嵌合位置修正作業を終了して再生運転が可能となる。
ここで、再生運転時にはＡ’〜Ｂ、Ｂ〜Ｃ’の間の教示点が複数必要になる。コネクタ取得の詳細位置Ａ’、経由位置Ｂ、組立嵌合の詳細位置Ｃ’のそれぞれでのエンドエフェクタの位置姿勢とその時の肘角度は前述の方法で求められているので、これら中間の教示点はそれらを補間することで生成される。基本的にはＡ’〜Ｂ、Ｂ〜Ｃ’の間をそれぞれ最短で繋ぐ経路が選択されるが、経由位置Ｂ前後でエンドエフェクタの姿勢変化や肘角度変化が大きくならないように経路（位置）が修正される。具体的にはコネクタ取得位置Ａ’と経由位置Ｂと組立嵌合位置Ｃ’を通る円弧形状に近い動作経路で繋ぐことで姿勢変化を小さくする。
【００３３】
本発明によれば、冗長自由度を持ったロボットによる組立嵌合作業の教示（および再生運転）を行う場合に、ワーク把持位置とワーク嵌合位置の教示に関して、作業者はまずエンドエフェクタの姿勢やロボットの肘角度を考慮せずに、エンドエフェクタの位置のみを教示した後、把持方向、挿入方向の設定と既知の障害物の位置情報を入力すれば、エンドエフェクタの姿勢や肘角度の生成、ワーク位置検出センサ１０６による詳細位置情報の取得、作業プログラムの作成といった一連の工程を自動で行うことができる。また、狭隘部分など作業者が目視し難い部分の教示でもワーク位置検出センサ１０６を利用して詳細な位置データを取得できる。
【実施例２】
【００３４】
上記の方式を用いても、例えばワークの位置決め誤差が大きい場合には、再生運転中にロボットがコネクタ把持やコネクタ嵌合に失敗するという問題がある。このような問題に対処したのが本発明の第２実施例である。コントローラ１０２内に、組立作業の成否を判断する作業状況判断部１０２５（図５参照）を持ち、再生運転時に作業状況判断部１０２５で作業失敗と判断した場合には、ワーク位置検出センサ１０６を用いて自動的にワークの位置を再計測して、作業をリトライする。
コネクタ嵌合を具体例にとり説明する。作業状況判断部１０２５でコネクタ嵌合について作業失敗と判断すると指令生成部１０２１からロボットを組立嵌合位置Ｃに移動させる指令が払い出される。組立嵌合位置Ｃまで移動した後、エンドエフェクタ１０４上又はその周辺に配置されたワーク位置検出センサ１０６でメス型コネクタ１０５１の位置を再度測定して、メス型コネクタ１０５１の詳細位置Ｃ’’を取り込み直す。
組立作業の成功／失敗の判断は、作業状況判断部１０２５内で、例えばエンドエフェクタ１０４が挿入方向に指令通りの位置に到達したか否かによって行う。
例えば図６では、オス型コネクタ１０５２がメス型コネクタ１０５１と干渉してしまい、コネクタ嵌合が完了していない。こうした場合には、ロボット１０１の各軸に対する位置指令を順変換したロボット座標系の指令位置（図中の点線）と、モータのエンコーダ情報から得た位置フィードバック値を順変換したロボット座標系におけるフィードバック位置を比較すると、両者間の誤差（図６中の両端矢印で示される）が予め設定された閾値を超えることとなり作業失敗と判断する。
また、エンドエフェクタとロボット手先との間に力センサを設けておき、事前に作業成功時の力センサ情報の時系列パターンを教示データ記憶部１０２３に記憶しておき、再生運転時の時系列パターンと比較することで、作業の成功／失敗を判断することも出来る。こうした組立作業の成功／失敗の判断結果は教示装置１０３のディスプレイ上に表示し作業者に提示しても良い。
【００３５】
本方式によれば、作業状況判断部１０２５で作業の遂行状況を監視して、位置指令と実際の位置との乖離が大きい場合にロボットの位置を修正して作業をリトライさせることで、再生運転時の作業失敗判断からリトライまでを自動で行うことが可能となる。
【実施例３】
【００３６】
再生運転時に障害物の位置が教示時から変化したり、教示時には存在しなかった新たな障害物が発生したりした場合には、既知の障害物の位置情報を入力するだけでは対応できないという問題がある。このような問題に対処したのが、本発明の第３実施例である。
再生運転時に、エンドエフェクタ１０４上又はその周辺に配置されたワーク位置検出センサ１０６とロボット１０１のアーム上に配置された複数の障害物位置検出センサ１０７を用いて、逐次、周辺に新たな障害物が発生していないかを非接触で監視する。ワーク位置検出センサ１０６では主にアームの進行方向を監視し、障害物位置検出センサ１０７では主にアームの周囲を監視する。
【００３７】
図７を用いて、再生運転時に経由点Ｂから組立嵌合位置Ｃ’への経路上に新たな障害物１０８４が発生した場合を例に説明する。コネクタ取得位置Ａ’から経由点Ｂまでは通常通り移動するが、経由点Ｂから組立嵌合位置Ｃ’への移動中に、ワーク位置検出センサ１０６によって経路上に障害物１０８４があることが認識される。
例えばワーク位置検出センサ１０６を１次元レーザセンサとすると、経由点Ｂを通過する前後からワーク位置検出センサ１０６はアームの移動に伴い障害物１０８４の輪郭を検出する。
１次元レーザセンサはセンサから障害物までの距離データしか取得できないが、ロボット座標系におけるロボット１０１上のセンサ固定位置の位置姿勢はロボット各軸の角度から演算できるので、センサ固定位置の位置姿勢データと１次元レーザセンサの距離データとからロボット座標系における障害物１０８４の輪郭データを求めることができる。
この輪郭データから障害物１０８４の角に相当する変極点を抽出することで、障害物１０８４の寸法や重心位置を求めることもできる。
障害物の認識結果と障害物の位置や寸法等の情報は姿勢演算部１０２４に送られる。
姿勢演算部１０２４内で元々の動作経路（図７中の一点鎖線）から障害物１０８４を回避するように新しい動作経路（図７中の実線）に沿った作業プログラムに実時間で修正が行われ、ロボットは障害物１０８４を回避して動作を継続することが可能となる。
また姿勢演算部１０２４で、障害物の位置や寸法等の情報から障害物１０８４を回避する新しい動作経路に沿った作業プログラムに実時間で修正する方法は、予めエンドエフェクタの大きさ等も考慮して、障害物の輪郭から所定距離だけ膨らませた安全エリア（図７の点線）を設定しておき、障害物１０８４を検出したらその周囲に安全エリアを適用してその外側を通るように動作経路を変更する。また安全エリアを回避する際に動作経路が急峻に変化する場合は、動作経路が滑らかに繋がるようにフィルタ処理等を追加する。
【００３８】
以上はワーク位置検出センサ１０６によって新たな障害物を検出した場合について述べたが、移動中に障害物位置検出センサ１０７で肘が障害物に接近したと判断された場合には、エンドエフェクタの経路は修正せずに、肘角度のみ障害物から離れる方向に修正しても良い。また、障害物位置検出センサ１０７としては１次元レーザセンサの他、超音波センサやエリアセンサ等も利用可能である。
【００３９】
本発明によれば、ロボット周辺の障害物を位置検出センサで監視することで、再生運転時に既知の障害物の位置が変化したり新たな障害物が発生したりした場合でも接触する前に実時間での動作経路の修正が可能となり、再教示が不要で、ロボットやエンドエフェクタ、ワークの破損を防ぎ、歩留まりも向上させることができる。
【産業上の利用可能性】
【００４０】
本発明によれば、溶接・塗装・組立等を用途とする産業用ロボットの教示再生運転において、作業者がおおまかに教示した位置を外界センサと姿勢演算部を利用して修正することで自動的に最適な作業プログラムを作成することが可能となる。また、再生運転中は外界センサを利用して動的に障害物回避も行うことが可能となる。
【図面の簡単な説明】
【００４１】
【図１】本発明の第１実施例におけるロボットシステムの構成図
【図２】本発明の第１実施例における位置教示例の詳細図
【図３】本発明の第１実施例におけるエンドエフェクタの姿勢の決定方法の詳細図
【図４】本発明の第１実施例における教示修正例の詳細図
【図５】本発明の第２実施例におけるロボットシステムの構成図
【図６】本発明の第２実施例における再生運転時の作業状況判断例の詳細図
【図７】本発明の第３実施例における再生運転時の経路修正例の詳細図
【符号の説明】
【００４２】
１０１  ロボット
１０２  コントローラ
１０２１  指令生成部
１０２２  サーボ制御部
１０２３  教示データ記憶部
１０２４  姿勢演算部
１０２５  作業状況判断部
１０３  教示装置
１０４  エンドエフェクタ
１０５  ワーク
１０５１  メス型コネクタ
１０５２  オス型コネクタ
１０６  ワーク位置検出センサ
１０７  障害物位置検出センサ
１０８１、１０８２、１０８３、１０８４  障害物
１０９  筐体
【図１】
2010142910.tif 000003
【図２】
2010142910.tif 000004
【図３】
2010142910.tif 000005
【図４】
2010142910.tif 000006
【図５】
2010142910.tif 000007
【図６】
2010142910.tif 000008
【図７】
2010142910.tif 000009