(57)【特許請求の範囲】
【請求項１】
ロボットに搭載されたツールを用いてワークを加工する動作プログラムの教示をオフラインで行うロボットプログラミング装置であって、
仮想空間内に、前記ツールを搭載した前記ロボットおよび前記ワークの３次元モデルを配置する３次元モデル配置部と、
前記ワークの３次元モデルより、円形および多角形を含む基本的形状、または前記基本的形状を複数組み合わせて構成される形状の、輪郭線、または面からなる複数の形状的特徴を、前記ツールによる前記ワークの加工箇所として自動で抽出する形状的特徴抽出部と、
前記形状的特徴の基準位置を自動で設定する第１の基準位置設定部と、
前記ロボットの基準位置を自動で設定する第２の基準位置設定部と、
前記形状的特徴の基準位置及び前記ロボットの基準位置に基づいて、前記複数の形状的特徴の間を前記ロボットが移動する順序を自動で決定する移動順序決定部と、
前記ロボットが前記形状的特徴に沿って前記ツールを移動させ、かつ前記複数の形状的特徴の間を前記ロボットが前記順序で移動するように前記ロボットの動作プログラムを自動で生成する動作プログラム作成部と、
を有する、ロボットプログラミング装置。
【請求項２】
前記３次元モデル配置部は、前記仮想空間内に周辺機器の３次元モデルを配置するように構成されており、
前記ロボットプログラミング装置は、
前記動作プログラムの教示点における前記ロボットまたは前記ツールと前記ワークまたは前記周辺機器との干渉を検出する干渉検出部と、
前記干渉検出部が干渉を検出した際に、前記ロボットまたは前記ツールと前記ワークまたは前記周辺機器とが干渉しない位置を検索する非干渉位置検索部と、
前記非干渉位置検索部の検索結果に基づいて、前記教示点の位置を修正する教示点位置修正部と、
を有する、請求項１に記載のロボットプログラミング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オフラインでロボットの動作プログラムの教示を行うロボットプログラミング装置に関する。
【背景技術】
【０００２】
オフラインでロボットプログラムの教示を行う装置では、バリ取りや溶接等の加工に関するロボットプログラムの教示を行う場合に、加工対象であるワークのＣＡＤモデル上で加工箇所を指定してロボットプログラムを生成する場合が多い。これに関連する従来技術として、例えば特許文献１には、ティーチングレス機能である第１教示ステップとオフラインティーチング機能である第２教示ステップとを備えることによって、ティーチングレス機能で教示できない溶接線に対してはオペレータの入力によるオフラインティーチングを適用し、オフライン教示作業を効率よく行うことを企図した教示方法が記載されている。
【０００３】
また特許文献２には、第１ワークに対する既存加工プログラムから複数の既定教示点の既定教示データを取得するデータ取得部と、既定教示データから既存加工プログラムにおける加工経路を求める加工経路演算部と、第１ワークとは異なる幾何学的特徴を有する第２ワークのモデルのデータを用いて、被加工範囲を示す加工線を生成するモデル生成部と、加工経路と加工線との幾何学的相関性と各既定教示点の位置及び姿勢データとに基づき、加工線上の各教示点の位置及び姿勢を求める教示点演算部と、各既定教示点の加工条件データと各教示点の位置及び姿勢とを用いて、第２ワークに対する加工プログラムを生成するプログラム生成部とを備えるオフライン教示装置が記載されている。
【０００４】
さらに特許文献３には、ワーク特徴情報を取得するワーク特徴取得部と、ワークとワーク保持具との相対位置情報を取得する保持具位置取得部と、ワークとハンドとの相対位置情報を取得するハンド位置取得部と、ワーク特徴情報、相対位置情報及び相対位置情報を、一組の既得データとして互いに関連付けて、複数種類のワークについて記憶する記憶部と、記憶した複数組の既得データから、新規ワーク特徴情報との合致度が最も高いワーク特徴情報を含む最適既得データを検索する既得データ検索部と、最適既得データを用いて新規ワークに対する搬送作業プログラムを生成するプログラム生成部とを備えるロボットプログラミング装置が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−１９０２６４号公報
【特許文献２】特開２００７−１０８９１６号公報
【特許文献３】特開２００８−０１５６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来、ワークの３次元形状を用いてロボットプログラムを作成する技術は数多く提唱されている。しかし、バリ取りや溶接等の加工についてロボットプログラムの教示をオフラインで行う場合、ワークのＣＡＤモデル上で加工箇所を指定してロボットプログラムを生成するが、この加工箇所の指定は作業者が手作業で行っており、故にワークの種類が多かったり、加工箇所が多かったりすると、非常に多くの作業時間を必要とする。さらに、ロボットが各加工箇所の間を適切な順序で移動するロボットプログラムを教示する作業は、作業者の経験や熟練度が要求されるとともに、試行錯誤を伴う煩雑な作業である。
【０００７】
そこで本発明は、加工箇所の指定に要する作業者の作業時間を大幅に削減し、ロボットが各加工箇所間を適切な順序で移動できるロボットプログラムを、作業者の熟練度等に依存せずに作成できるロボットプログラミング装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本願第１の発明は、ロボットに搭載されたツールを用いてワークを加工する動作プログラムの教示をオフラインで行うロボットプログラミング装置であって、仮想空間内に、前記ツールを搭載した前記ロボットおよび前記ワークの３次元モデルを配置する３次元モデル配置部と、前記ワークの３次元モデルより、円形および多角形を含む基本的形状、または前記基本的形状を複数組み合わせて構成される形状の、輪郭線、または面からなる複数の形状的特徴を、前記ツールによる前記ワークの加工箇所として自動で抽出する形状的特徴抽出部と、前記形状的特徴の基準位置を自動で設定する第１の基準位置設定部と、前記ロボットの基準位置を自動で設定する第２の基準位置設定部と、前記形状的特徴の基準位置及び前記ロボットの基準位置に基づいて、前記複数の形状的特徴の間を前記ロボットが移動する順序を自動で決定する移動順序決定部と、前記ロボットが前記形状的特徴に沿って前記ツールを移動させ、かつ前記複数の形状的特徴の間を前記ロボットが前記順序で移動するように前記ロボットの動作プログラムを自動で生成する動作プログラム作成部と、を有する、ロボットプログラミング装置を提供する。
【０００９】
第２の発明は、第１の発明において、前記３次元モデル配置部は、前記仮想空間内に周辺機器の３次元モデルを配置するように構成されており、前記ロボットプログラミング装置は、前記動作プログラムの教示点における前記ロボットまたは前記ツールと前記ワークまたは前記周辺機器との干渉を検出する干渉検出部と、前記干渉検出部が干渉を検出した際に、前記ロボットまたは前記ツールと前記ワークまたは前記周辺機器とが干渉しない位置を検索する非干渉位置検索部と、前記非干渉位置検索部の検索結果に基づいて、前記教示点の位置を修正する教示点位置修正部と、を有する、ロボットプログラミング装置を提供する。
【発明の効果】
【００１０】
本発明によれば、バリ取りや溶接等の加工に関するロボットプログラムの教示を行う場合に、作業者が手作業でワークのＣＡＤモデル上で加工箇所を指定するのに必要とする作業時間を大きく削減することができる。また、作業者の経験によらず、ロボットが各加工箇所の間を適切な順序で移動するロボットプログラムを得ることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の好適な実施形態に係るロボットプログラミング装置の機能ブロック図である。
【図２】仮想空間内にロボットおよびワークの３次元モデルを配置した状態を例示する図である。
【図３】図１のロボットプログラミング装置における処理の一例を示すフローチャートである。
【図４】ワークの３次元モデルから形状的特徴を抽出し、形状的特徴の基準位置を設定した状態を示す図である。
【図５】形状的特徴が仮想空間のＸＹ平面に平行な場合を例示する図である。
【図６】形状的特徴の基準位置の他の例を示す図である。
【図７】ロボットの基準位置の他の例を示す図である。
【図８】ロボットの移動順序の一例を示す図である。
【図９】ロボットの移動順序の他の例を示す図である。
【図１０】ロボットのツールがワークの形状的特徴に沿って移動する例を示す図である。
【図１１】ロボットのツールがワークの形状的特徴に沿って移動する他の例を示す図である。
【図１２】仮想空間内に周辺機器をさらに配置した状態を例示する図である。
【図１３】ツールの加工部位を干渉の検出対象から除外した例を示す図である。
【図１４】ツールの非加工部位を干渉の検出対象に加えた例を示す図である。
【図１５】ロボットプログラムのある教示点において、ツールと周辺機器との干渉が検出された場合を例示する図である。
【図１６】ツール先端点を中心とする回転移動によって、干渉を回避する位置を探索する例を説明する図である。
【図１７】ツール先端点の並進移動によって、干渉を回避する位置を探索する例を説明する図である。
【発明を実施するための形態】
【００１２】
図１は、本発明の好適な実施形態に係るロボットプログラミング装置１０（例えばパーソナルコンピュータ）の機能ブロック図である。ロボットプログラミング装置１０は、図２に例示するように、仮想空間内に、ツール１２を搭載したロボットアーム（可動部）１４を有するロボット（例えば６軸の多関節ロボット）１６の３次元モデルと、ワーク１８の３次元モデルとを配置し、ロボット１６がツール１２によりワーク１８を加工するロボット動作プログラムの教示をオフラインで行うように構成されており、該仮想空間を表示するディスプレイ等の表示画面２０を有してもよい。
【００１３】
図１に示すように、ロボットプログラミング装置１０は、仮想空間内に、ツール１２を搭載したロボット１６の３次元モデルと、ワーク１８の３次元モデルとを配置する３次元モデル配置部２２と、ワーク１８の３次元モデルから、円形および多角形の基本的形状、または該基本的形状を複数組み合わせて構成される形状の、輪郭線、または面からなる複数の形状的特徴（後述）を抽出する形状的特徴抽出部２４と、形状的特徴の基準位置を設定する形状的特徴基準位置設定部（第１の基準位置設定部）２６と、ロボット１６の基準位置を設定するロボット基準位置設定部（第２の基準位置設定部）２８と、形状的特徴の基準位置および前記ロボットの基準位置に基づいて、複数の形状的特徴の間をロボット１６が移動する順序を決定する移動順序決定部３０と、ロボット１６が形状的特徴に沿ってツール１２を移動させ、かつ複数の形状的特徴の間をロボット１６が決定された順序で移動するようにロボット１６の動作プログラムを生成する動作プログラム作成部３２と、を有する。
【００１４】
また３次元モデル配置部２２は、ロボット１６およびワーク１８以外の周辺機器の３次元モデル（後述）を仮想空間内にさらに配置することもでき、その場合ロボットプログラミング装置１０は、動作プログラムの教示点におけるロボット１６またはツール１２とワーク１８または周辺機器との干渉を検出する干渉検出部３４と、干渉検出部３４が干渉を検出した際に、ロボット１６またはツール１２とワーク１８または周辺機器とが干渉しない位置を検索する非干渉位置検索部３６と、非干渉位置検索部３６の検索結果に基づいて教示点の位置を修正する教示点位置修正部３８と、を有する。
【００１５】
次に、図３のフローチャートを参照しつつ、ロボットプログラミング装置１０が行う処理の流れを説明する。先ずステップＳ１において、図２に示したように、仮想空間内にツール１２を搭載したロボット１６およびワーク１８の３次元モデルを配置する。
【００１６】
次に、図４に示すように、ワーク１８の３次元モデルから、円形および多角形を含む基本的形状、または基本的形状を複数組み合わせて構成される形状の、輪郭線または面からなる形状的特徴を抽出する（ステップＳ２）。例えば、図４に示すように、予めワーク１８のＣＡＤモデル上で色分けされた箇所（円柱の端面）４０ａ〜４０ｄを判別して、当該箇所を形状的特徴として抽出することができる。この判別には種々の条件を指定することができ、例えば、抽出する輪郭線の長さの閾値や抽出する面の面積の閾値を指定するようにしてもよいし、形状的特徴の内側と外側に輪郭線がある場合は、どちらの輪郭線を抽出するかを指定するようにしてもよい。或いは、形状的特徴の輪郭線または面に沿ってツールを移動する方向を指定することもできる。
【００１７】
また、図４に示すように、形状的特徴４０ａ〜４０ｄの各々の上に、ロボット１６の動作の開始点を設定する。例えば、形状的特徴４０ａ〜４０ｄの各々の輪郭線上で、かつ、ロボット原点（ロボット座標系４２の原点）に最も近い点（４４ａ〜４４ｄ）に、ロボットの動作の開始点を設定することができる。
【００１８】
または仮想空間の原点（仮想空間座標系４６の原点）を基準として、形状的特徴のＸ方向、Ｙ方向、およびＺ方向の値が最大、または最小となる点に、ロボットの動作の開始点を設定してもよい。図５は、形状的特徴が仮想空間のＸＹ平面に平行な場合の例を示しており、該特徴的形状のうちＸ座標が最も大きい点（Ｘmax）に、ロボット１６の動作の開始点が設定されている。
【００１９】
次のステップＳ３では、形状的特徴の基準位置を設定する。例えば、図４に示したロボット１６の動作の開始点４４ａ〜４４ｄを、形状的特徴の基準位置として設定することができる。或いは、図６に示すように、形状的特徴４０ａ〜４０ｄのそれぞれの中心点４８ａ〜４８ｄを形状的特徴の基準位置として設定してもよい。
【００２０】
次のステップＳ４では、ロボットの基準位置を設定する。例えば、ロボット１６のツール１２の先端（ツール先端点）の現在位置５０（図４照）を、ロボットの基準位置として設定することができる。或いは、図７に示すように、ロボット１６のツール先端点５０を、ロボット原点に最も近いロボットの動作の開始点（図示例では開始点４４ｂ）の鉛直上方に移動させた位置を、ロボットの基準位置として設定することができる。
【００２１】
次のステップＳ５では、形状的特徴の基準位置およびロボットの基準位置に基づいて、複数の形状的特徴の間をロボット１６（ツール１２）が移動する順序を決定する。例えば、図８に示すように、形状的特徴４０ａ〜４０ｄの各々の間をロボット１６が移動する順序を決定する方法として、以下に述べるような、巡回セールスマン問題の解法を利用することができる。
【００２２】
先ず、ロボット１６の基準位置を出発点として、形状的特徴４０ａ〜４０ｄの基準位置４８ａ〜４８ｄ間を移動して、ロボットの基準位置に戻る経路をランダムに選択し、この経路の距離を求めて暫定的な最短距離とする。次に、図９に示すように、ロボット１６の基準位置を出発点として、形状的特徴４０ａ〜４０ｄの基準位置４８ａ〜４８ｄ間を移動して、ロボットの基準位置に戻る別の経路をランダムに選択し、別の経路の距離が上述の暫定的な最短距離より短ければ、新たな最短距離の経路として更新する。これを所定回数繰り返す（または全ての経路の距離を求める）ことにより、最短距離の経路を決定することができる。例えば、図９に示す経路が最短経路となった場合、ロボットが形状的特徴間を移動する順序は４８ｂ→４８ａ→４８ｃ→４８ｄ（或いはこの逆）となる。
【００２３】
図８〜図９に示した最短経路の決定方法以外にも、種々の方法が適用可能である。また、巡回セールスマン問題の別の解法を使用して、形状的特徴間をロボットが移動する順序を決定することもできる。
【００２４】
次のステップＳ６では、ロボット１６が形状的特徴４０ａ〜４０ｄに沿ってツール１２を移動させ、かつ複数の形状的特徴４０ａ〜４０ｄの間をツール１２がステップＳ５で求めた順序で移動するように、ロボット１６の動作プログラムを生成する。具体的には、形状的特徴４０ａ〜４０ｄから生成される教示点の動作形式、速度、位置、および姿勢を指定しておき、指定された動作形式、速度、位置、および姿勢に基づいて、ロボット１６が形状的特徴４０ａ〜４０ｄに沿ってツール１２を移動させ、かつ形状的特徴間をロボット１６が決定された順序で移動するロボットの動作プログラムを生成する。
【００２５】
なお「形状的特徴４０ａ〜４０ｄに沿うツール１２の移動」の具体例として、図１０に示すような、ツール１２の先端が形状的特徴４０ａ〜４０ｄのそれぞれの輪郭線をなぞるような移動が挙げられる。また他の具体例として、図１１に示すように、ツール１２がディスク状の研磨部材を有する場合は、ツール１２の研磨部材が形状的特徴４０ａ〜４０ｄのそれぞれの面を磨くような移動が挙げられる。
【００２６】
このように本発明では、ワークのＣＡＤモデル上の複数の形状的特徴を抽出し、形状的特徴およびロボットのそれぞれについて基準位置を設定し、形状的特徴間をロボットが移動する適切な順序を決定し、ツールが形状的特徴に沿って移動しかつロボットが決定された順序に従って移動する動作プログラムを生成する、という一連の処理を全て自動で行うことができる。従って、バリ取りや溶接等の加工に関するロボットプログラムの教示を行う場合に、作業者が手作業でワークのＣＡＤモデル上で加工箇所を指定する必要がなく、作業時間を大きく削減することができる。また、作業者の経験や熟練度によらず、ロボットが各加工箇所の間を適切な順序で移動するロボットプログラムを得ることができる。
【００２７】
図１２は、ロボット１６およびワーク１８の他に周辺機器５２の３次元モデルが仮想空間内に配置されている場合を例示する。周辺機器５２を配置することにより、ロボット１６の動作プログラムの各教示点にロボット１６を移動させたときに、ロボット１６（ツール１２）とワーク１８との干渉の有無に加え、ロボット１６（ツール１２）と周辺機器５２との干渉の有無もチェックすることができる。
【００２８】
ここで、図１３に示すように、ツール１２のうち、ワーク１８に直接触れるかまたは接近する部分を含むツール加工部位５４（図１３において斜線で図示）を、ワーク１８または周辺機器５２との干渉の検出対象から除外するように指定することにより、ツール加工部位５４とワーク１８または周辺機器５２との干渉を検出しないようにすることができる。或いは、図１４に示すように、加工部位５４以外のツール非加工部位５６（図１４において斜線で図示）を干渉対象とするように指定することによっても、ツール加工部位５４とワーク１８または周辺機器５２との干渉を検出しないようにすることができる。
【００２９】
図１５は、動作プログラムのある教示点において、ツール１２と周辺機器５２との干渉が検出された場合を例示しており、このような場合は、ツール先端点の並進移動若しくはツール先端点を中心とする回転移動、または並進移動および回転移動の双方によって、干渉を回避する位置を探索することができる。
【００３０】
具体例として、図１６では、ロボット１６（ツール１２）と周辺機器５２との干渉が検出された位置を中心として、所定の検索範囲（角度範囲）内でロボットの回転移動（ｗ，ｐ，ｒ）を行って、ロボット１６（ツール１２）が干渉しない位置を検索する。また図１７では、ロボット１６（ツール１２）と周辺機器５２との干渉が検出された位置を基準として、所定の検索範囲内でツール先端点をＸ、Ｙ、Ｚ軸に沿って並進移動（ｘ，ｙ，ｚ）させ、ロボット１６（ツール１２）が干渉しない位置を検索する。
【００３１】
ここで、ロボットが干渉しない位置を検索する際の並進移動または回転移動における、各方向の検索範囲を指定することができる。また、ロボットが干渉しない位置を検索する際の並進移動または回転移動において、各方向の検索の有効／無効を設定しまたは切り替える（例えば、Ｘ，Ｙ軸方向の検索は有効とし、Ｚ軸方向の検索は無効とする）こともできる。さらに、ロボットが干渉しない位置を検索する際の並進移動または回転移動における、各方向の検索順序を設定または変更することもできる。
【００３２】
ロボットがワークまたは周辺機器と干渉しない位置（非干渉位置）に関する検索結果が得られたら、教示点の位置の修正を行う。ここで、非干渉位置の検索結果に従って、教示点の位置を修正する方法として、検索の有効／無効および検索順序に従ってロボットが干渉しない位置の検索を行い、最初に見つかったロボットが干渉しない位置をロボットが干渉しない位置の検索結果とし、教示点の位置を修正する方法を指定することができる。
【００３３】
この場合、検索の有効／無効および検索順序で指定された以降の各方向での非干渉位置の検索は省略可能である。または、非干渉位置の検索結果に従って、教示点の位置を修正する方法として、検索の有効／無効および検索順序に従って非干渉位置の検索を行い、検索された全ての非干渉位置と干渉時の位置とを比較し、最も変化量の少ない位置を非干渉位置の検索結果とし、教示点の位置を修正する方法を指定することができる。この場合は、検索の有効／無効および検索順序で指定された全ての方向について、非干渉位置の検索が実行される。
【００３４】
図１６又は図１７に示す実施例によれば、ロボットまたはツールと、ワークまたは周辺機器との干渉のないプログラムを自動的に生成でき、従来、プログラムの確認作業や教示修正に必要としていた時間を大きく削減することができる。
【符号の説明】
【００３５】
１０    ロボットプログラミング装置
１２    ツール
１４    ロボットアーム
１６    ロボット
１８    ワーク
２０    ディスプレイ
２２    ３次元モデル配置部
２４    形状的特徴抽出部
２６    形状的特徴基準位置設定部
２８    ロボット基準位置設定部
３０    移動順序決定部
３２    動作プログラム生成部
３４    干渉検出部
３６    非干渉位置検索部
３８    教示点位置修正部
４０ａ〜４０ｄ    形状的特徴
４２    ロボット座標系
４４ａ〜４４ｄ    動作開始点
４６    仮想空間座標系
４８ａ〜４８ｄ    形状的特徴基準位置
５０    ロボット基準位置
５２    周辺機器
【図１】
0006370821.tif 000002
【図２】
0006370821.tif 000003
【図３】
0006370821.tif 000004
【図４】
0006370821.tif 000005
【図５】
0006370821.tif 000006
【図６】
0006370821.tif 000007
【図７】
0006370821.tif 000008
【図８】
0006370821.tif 000009
【図９】
0006370821.tif 000010
【図１０】
0006370821.tif 000011
【図１１】
0006370821.tif 000012
【図１２】
0006370821.tif 000013
【図１３】
0006370821.tif 000014
【図１４】
0006370821.tif 000015
【図１５】
0006370821.tif 000016
【図１６】
0006370821.tif 000017
【図１７】
0006370821.tif 000018