(57)【要約】【課題】ロボットによる新規ワークに対する最適な搬送作業プログラムを、オペレータの熟練を要することなく、少ない工数で容易かつ確実に作成できるようにする。【解決手段】ロボットプログラミング装置１０は、ワーク特徴情報１２を取得するワーク特徴取得部１４と、ワークとワーク保持具との相対位置情報１６を取得する保持具位置取得部１８と、ワークとハンドとの相対位置情報２０を取得するハンド位置取得部２２と、ワーク特徴情報１２、相対位置情報１６及び相対位置情報２０を、一組の既得データＤとして互いに関連付けて、複数種類のワークについて記憶する記憶部２４と、記憶した複数組の既得データから、新規ワーク特徴情報２６との合致度が最も高いワーク特徴情報を含む最適既得データＳＤを検索する既得データ検索部２８と、最適既得データを用いて新規ワークに対する搬送作業プログラム３０を生成するプログラム生成部３２とを備える。【選択図】図１
2008015683.tif 000002
【特許請求の範囲】
【請求項１】
ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンドを装着したロボットに実行させる搬送作業プログラムを作成するためのロボットプログラミング装置において、
ワークの３次元形状データから、該ワークの幾何学的特徴を表すワーク特徴情報を取得するワーク特徴取得部と、
ワークをワーク保持具に取り付けたときの、該ワークと該ワーク保持具との相対位置情報を取得する保持具位置取得部と、
ワークをハンドで把持したときの、該ワークと該ハンドとの相対位置情報を取得するハンド位置取得部と、
前記ワーク特徴取得部が取得した前記ワーク特徴情報と、前記保持具位置取得部が取得した前記ワークと前記ワーク保持具との前記相対位置情報と、前記ハンド位置取得部が取得した前記ワークと前記ハンドとの前記相対位置情報とを、一組の既得データとして互いに関連付けて、複数種類のワークに関する複数組の該既得データを記憶する記憶部と、
新規ワークの３次元形状データから得られた新規ワーク特徴情報を用いて、前記記憶部に記憶した前記複数組の既得データの中から、該新規ワーク特徴情報との合致度が最も高い前記ワーク特徴情報を含む最適既得データを検索する既得データ検索部と、
前記既得データ検索部が検索した前記最適既得データを用いて、前記新規ワークに対する前記搬送作業プログラムを生成するプログラム生成部と、
を具備することを特徴とするロボットプログラミング装置。
【請求項２】
前記ワーク保持具に対する前記ワークの取り付け及び取り外しの少なくとも一方の動作を指令する動作パターン指令値を取得する動作パターン取得部をさらに具備し、前記記憶部は、該動作パターン取得部が取得した該動作パターン指令値を、前記ワーク特徴情報、前記ワークと前記ワーク保持具との前記相対位置情報、及び前記ワークと前記ハンドとの前記相対位置情報と共に、前記一組の既得データとして互いに関連付けて記憶する、請求項１に記載のロボットプログラミング装置。
【請求項３】
前記ハンドの指先の３次元形状データを取得する指先形状取得部をさらに具備し、前記記憶部は、該指先形状取得部が取得した該ハンドの該指先の該３次元形状データを、前記ワーク特徴情報、前記ワークと前記ワーク保持具との前記相対位置情報、及び前記ワークと前記ハンドとの前記相対位置情報と共に、前記一組の既得データとして互いに関連付けて記憶する、請求項１又は２に記載のロボットプログラミング装置。
【請求項４】
前記ハンドの図面データを取得するハンド図面取得部をさらに具備し、前記記憶部は、該ハンド図面取得部が取得した該ハンドの該図面データを、前記ワーク特徴情報、前記ワークと前記ワーク保持具との前記相対位置情報、及び前記ワークと前記ハンドとの前記相対位置情報と共に、前記一組の既得データとして互いに関連付けて記憶する、請求項１〜３のいずれか１項に記載のロボットプログラミング装置。
【請求項５】
前記ワーク保持具の図面データを取得する保持具図面取得部をさらに具備し、前記記憶部は、該保持具図面取得部が取得した該ワーク保持具の該図面データを、前記ワーク特徴情報、前記ワークと前記ワーク保持具との前記相対位置情報、及び前記ワークと前記ハンドとの前記相対位置情報と共に、前記一組の既得データとして互いに関連付けて記憶する、請求項１〜４のいずれか１項に記載のロボットプログラミング装置。
【請求項６】
前記ワークの前記３次元形状データを取得するワーク形状取得部をさらに具備し、前記記憶部は、該ワーク形状取得部が取得した該ワークの該３次元形状データを、前記ワーク特徴情報、前記ワークと前記ワーク保持具との前記相対位置情報、及び前記ワークと前記ハンドとの前記相対位置情報と共に、前記一組の既得データとして互いに関連付けて記憶し、前記プログラム生成部は、前記既得データ検索部が検索した前記最適既得データに含まれる前記ワークの前記３次元形状データと、前記新規ワークの３次元形状データとの差に基づいて、該最適既得データに含まれる前記ワークと前記ワーク保持具との前記相対位置情報及び前記ワークと前記ハンドとの前記相対位置情報を補正し、それら補正した相対位置情報を用いて前記新規ワークに対する前記搬送作業プログラムを生成する、請求項１〜５のいずれか１項に記載のロボットプログラミング装置。
【請求項７】
前記ワーク特徴取得部は、前記ワーク特徴情報として、前記ワークの形状の変化を時系列的に表すワーク形状遷移情報を取得し、前記既得データ検索部は、前記新規ワーク特徴情報として、前記新規ワークの形状の変化を時系列的に表す新規ワーク形状遷移情報を用いて、前記最適既得データを検索する、請求項１〜６のいずれか１項に記載のロボットプログラミング装置。
【請求項８】
前記ワーク搬送作業の途中に前記ワークの加工工程が介在する前記搬送作業プログラムを作成する、請求項７に記載のロボットプログラミング装置であって、前記ワーク形状遷移情報は、前記ワークの加工前及び加工後を含む複数の異なる段階における幾何学的特徴を表す、請求項７に記載のロボットプログラミング装置。
【請求項９】
ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンドを装着したロボットに実行させる搬送作業プログラムを作成するために、コンピュータを、
ワークの３次元形状データから、該ワークの幾何学的特徴を表すワーク特徴情報を取得するワーク特徴取得部、
ワークをワーク保持具に取り付けたときの、該ワークと該ワーク保持具との相対位置情報を取得する保持具位置取得部、
ワークをハンドで把持したときの、該ワークと該ハンドとの相対位置情報を取得するハンド位置取得部、
前記ワーク特徴取得部が取得した前記ワーク特徴情報と、前記保持具位置取得部が取得した前記ワークと前記ワーク保持具との前記相対位置情報と、前記ハンド位置取得部が取得した前記ワークと前記ハンドとの前記相対位置情報とを、一組の既得データとして互いに関連付けて、複数種類のワークに関する複数組の該既得データを記憶する記憶部、
新規ワークの３次元形状データから得られた新規ワーク特徴情報を用いて、前記記憶部に記憶した前記複数組の既得データの中から、該新規ワーク特徴情報との合致度が最も高い前記ワーク特徴情報を含む最適既得データを検索する既得データ検索部、及び
前記既得データ検索部が検索した前記最適既得データを用いて、前記新規ワークに対する前記搬送作業プログラムを生成するプログラム生成部、
として機能させるためのロボットプログラミング用プログラム。
【請求項１０】
ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンドを装着したロボットに実行させる搬送作業プログラムを作成するために、コンピュータを、
ワークの３次元形状データから、該ワークの幾何学的特徴を表すワーク特徴情報を取得するワーク特徴取得部、
ワークをワーク保持具に取り付けたときの、該ワークと該ワーク保持具との相対位置情報を取得する保持具位置取得部、
ワークをハンドで把持したときの、該ワークと該ハンドとの相対位置情報を取得するハンド位置取得部、
前記ワーク特徴取得部が取得した前記ワーク特徴情報と、前記保持具位置取得部が取得した前記ワークと前記ワーク保持具との前記相対位置情報と、前記ハンド位置取得部が取得した前記ワークと前記ハンドとの前記相対位置情報とを、一組の既得データとして互いに関連付けて、複数種類のワークに関する複数組の該既得データを記憶する記憶部、
新規ワークの３次元形状データから得られた新規ワーク特徴情報を用いて、前記記憶部に記憶した前記複数組の既得データの中から、該新規ワーク特徴情報との合致度が最も高い前記ワーク特徴情報を含む最適既得データを検索する既得データ検索部、及び
前記既得データ検索部が検索した前記最適既得データを用いて、前記新規ワークに対する前記搬送作業プログラムを生成するプログラム生成部、
として機能させるためのロボットプログラミング用プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１１】
ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンドを装着したロボットに実行させる搬送作業プログラムを、コンピュータを用いて作成するためのロボットプログラミング方法において、
ワークの３次元形状データから、該ワークの幾何学的特徴を表すワーク特徴情報を、コンピュータのワーク特徴取得部が取得するステップと、
ワークをワーク保持具に取り付けたときの、該ワークと該ワーク保持具との相対位置情報を、コンピュータの保持具位置取得部が取得するステップと、
ワークをハンドで把持したときの、該ワークと該ハンドとの相対位置情報を、コンピュータのハンド位置取得部が取得するステップと、
前記ワーク特徴取得部が取得した前記ワーク特徴情報と、前記保持具位置取得部が取得した前記ワークと前記ワーク保持具との前記相対位置情報と、前記ハンド位置取得部が取得した前記ワークと前記ハンドとの前記相対位置情報とを、コンピュータの記憶部が、一組の既得データとして互いに関連付けて、複数種類のワークに関する複数組の該既得データを記憶するステップと、
新規ワークの３次元形状データから得られた新規ワーク特徴情報を用いて、前記記憶部に記憶した前記複数組の既得データの中から、該新規ワーク特徴情報との合致度が最も高い前記ワーク特徴情報を含む最適既得データを、コンピュータの既得データ検索部が検索するステップと、
前記既得データ検索部が検索した前記最適既得データを用いて、前記新規ワークに対する前記搬送作業プログラムを、コンピュータのプログラム生成部が生成するステップと、
を具備することを特徴とするロボットプログラミング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットによるワークの搬送作業プログラムを作成するためのロボットプログラミング装置に関する。本発明はまた、ロボットによるワークの搬送作業プログラムを作成するためのプログラム及び記録媒体に関する。本発明はさらに、ロボットによるワークの搬送作業プログラムを作成するためのロボットプログラミング方法に関する。
【背景技術】
【０００２】
産業用ロボット（以下、ロボットと略称する）は、生産システムにおいて、ワークの溶接・加工、部品・機器類の組み立て、加工機械へのワークのローディング／アンローディング、工程間のワークのハンドリングといった種々の作業に使用されることで、生産システムの高度な自動化に寄与している。これら作業に際し、ロボットは、作業内容に対応するツール（すなわちエンドエフェクタ）を手首端に装着して、特定の作業プログラム（すなわちタスクプログラム）に従い動作する。
【０００３】
生産システムでロボットが実行する種々の作業において、作業領域内の予め定めた位置に、ワークを固定保持するワーク保持具（治具と略称する場合もある）が用意され、ハンド（すなわち把持用ツール）を装着したロボットが、ハンドに把持したワークを、ワーク保持具に対し取り付けたり取り外したりする動作を伴いながら、指定位置間で搬送する作業は知られている。例えば、溶接ロボットシステムにおいて、搬送用のロボットが、パレットから複数のワーク（車体パネル等）をワーク保持具まで搬送し、それらワークを組み合わせてワーク保持具に固定した状態で、溶接用のロボットがそれらワークに溶接を実行する構成が公知である。また、部品・機器類の組み立て作業において、ロボットが１つの部品をワーク保持具に取り付けて固定し、その部品に対し、同じロボットが他の部品を組みつけてボルト結合する構成が知られている。また、加工機械へのワークのローディング／アンローディング作業に際して、ハンドリングロボットが、パレットから取り出した素材ワークを加工機械に装備したワーク保持具（例えばチャック）に取り付けたり、加工済ワークを加工機械のワーク保持具から取り外して他のパレットに置いたりする構成が公知である。
【０００４】
上記したロボットによるワーク搬送システムにおいて、ワーク保持具は、作業対象のワークを強固に安定して保持できるように、ワークの形状に合致した形状及び構造の保持部（一般に当接面及びクランプ要素）を備える必要がある。同様に、ロボットに装着したハンドは、作業対象のワークを強固に安定して把持できるように、ワークの形状に合致した形状及び構造の指（又はワークに直接接触する指先）を備える必要がある。作業対象となるワークの種類が多い場合は、指の交換や増減が可能なハンドを使用することもある。
【０００５】
また、ワーク形状に合わせてワーク保持具やハンド（又は指）を設計する際には、ワーク保持具とハンド（又は指）との相互干渉を防止できるようにすることが肝要である。一般にワーク保持具は、ワークを強固に安定保持できる保持部として、ワーク表面に当接される複数の当接面と、それら当接面にワークを押し当てて固定する複数のクランプ要素とを備える。ロボットは、ハンドに把持したワークを、ワーク保持具の複数の当接面に同時に接触させてワーク保持具に取り付けることが要求されるが、その状態でクランプによりワークを固定する間、及びワークを解放してハンドを退避動作させる間、ワーク保持具（特にクランプ）とハンド（又は指）との相互干渉を防止する必要がある。
【０００６】
ワークをワーク保持具に適正に取り付けるためには、ハンドでワークを把持したときの動作によって決まるロボットのワーク把持姿勢を適正化する必要がある。同様に、ワーク保持具に保持したワークをハンドで把持するときのロボットの姿勢は、その後のロボット作業に影響を及ぼす。このように、ワークの形状とワーク保持具及びハンドの形状及び構造（例えば当接面及びクランプの個数や配置、指の本数や配置等）とは、互いに密接な関係があり、また、ワーク保持具に対するハンドの接近／離反動作やワークの取り付け／取り外し動作等のロボット動作に対し、有意な関連性を示す。
【０００７】
ワーク保持具の設計は、ワーク保持具に保持したワークへの加工工程に対しても、有意な関連性を示す。例えば、ワーク保持具に保持したワークをスポット溶接又はアーク溶接する場合、ワークの溶接箇所を当接面に当接させたりクランプで固定したりすることは困難である。加工機械へのワークのローディング／アンローディング作業においても、ワークの加工面をワーク保持具（チャック）で保持することは困難である。
【０００８】
一般に生産システムでは、同一設備で複数種類の生産品を生産することが求められている。その要求に答えるべく、予め想定されていたワークとは異なる形状の新規ワークを生産システムに導入する際には、ロボットによるワーク搬送作業に関しても、新規ワークの形状に合わせて、ワーク保持具やロボットハンド（又は指）を新たに設計する必要がある。このとき、新規ワークへの一連の作業工程を考慮して、ワーク保持具に保持されるワークの位置及び姿勢（ワーク上のクランプ又はチャック位置に関与する）、ハンドがワークを把持するときのハンドの位置及び姿勢（ワーク上の指先位置に関与する）、ワーク保持具に対するロボットのワーク取り付け及び取り外し動作の経路等を、総合的に検討して、ロボットによる新規ワークの搬送作業プログラムを作成することが要求される。このように、従来、新規ワークを生産システムに追加導入する都度、ワーク保持具及びロボットハンド（又は指）の設計、並びにロボットのワーク搬送動作を指令する搬送作業プログラムの作成を、適宜行なっていた。
【０００９】
作業対象のワークの形状やワークに対する一連の作業工程を考慮して、ワーク保持具及びロボットハンド（又は指）を設計し、ロボットのワーク搬送作業プログラムを作成することは、一般に、様々な生産システムの立上げを経験した熟練オペレータによって行なわれる。このような熟練オペレータの技術は、ワークの同異、作業工程の同異に応じて、適宜な処置を施すものであって、普遍化して継承することが困難である。したがって、オペレータの育成に時間を要し、熟練オペレータが慢性的に不足することになって、ロボットによる生産システムの自動化の推進を妨げている。
【００１０】
ワークの形状や作業工程に対応してロボットの作業プログラムを作成する際の、オペレータの負担を軽減する技術として、ワークの形状データに基づき作業プログラムを自動作成するオフラインプログラミングが知られている。例えば特許文献１は、バリ取り工具を装着したロボットにバリ取り作業を行なわせるバリ取りロボットプログラムの生成方法を開示する。このプログラム生成方法では、まず、ＣＡＤシステムに記憶されている製品の図形データから、バリ取りの対象となる図形データが選択されて、マイクロプロセッサに入力される。マイクロプロセッサは、図形を構成する直線や円弧等の要素データに基づいて、教示点毎の工具姿勢を算出し、それら工具姿勢を記憶してロボットの教示プログラムを自動生成する。
【００１１】
また、特許文献２は、複数の溶接ロボットを用いて複雑形状のワークを溶接する際の、ＣＡＤ／ＣＡＭシステムを利用した溶接プログラムの自動生成システムを開示する。このプログラム生成システムでは、ＣＡＤ／ＣＡＭシステムに登録されているＣＡＤデータのワーク形状情報からワークモデルが生成され、同ＣＡＤデータの溶接線情報から溶接モデルが生成され、溶接ロボットの動作範囲を定める領域分割線でワークモデルを分割することによりセルモデルが生成される。ここで、基本溶接線毎に、ワークと溶接ロボットとの干渉の有無がチェックされ、干渉が有る場合には干渉が生じない範囲に短縮した溶接線が生成される。そして、領域分割線で分割した領域毎に、溶接線の溶接方向、溶接順序、溶接経路が決定される。さらに、ＣＡＤデータの形状的な特性を利用して、あらかじめデータベース化されている動作パターンと呼ばれる動作シーケンスを選択することで溶接に必要なデータが与えられ、一連の動作プログラムが生成される。
【００１２】
【特許文献１】特開平６−５９７２０号公報
【特許文献２】特開平１０−１８７２２３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
前述したように、ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンドを装着したロボットに実行させる搬送作業プログラムを作成するためには、作業対象のワークの形状やワークに対する一連の作業工程を考慮して、ワーク保持具及びロボットハンド（又は指）を設計するとともに、ワーク保持具に保持されるワークの位置及び姿勢、ハンドがワークを把持するときのハンドの位置及び姿勢、ワーク保持具に対するロボットのワーク取り付け及び取り外し動作の経路等を、総合的に検討する必要がある。この点で、前述した特許文献１及び２に記載されるプログラミング技術は、バリ取りや溶接のように、ロボットがワークに作業を施す部位を、ワークの形状データから比較的容易に特定できる場合に適用されるものである。したがって、ワーク保持具に保持されるワークの位置及び姿勢やハンドがワークを把持するときのハンドの位置及び姿勢といった、ワークの形状データだけに基づいて特定することが不都合な位置及び姿勢のデータを、ロボットの動作を規定するために必要とするワーク搬送作業プログラムを、特許文献１及び２に記載されるプログラミング技術によって自動作成することは困難である。
【００１４】
本発明の目的は、ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンドを装着したロボットに実行させる搬送作業プログラムを作成するためのロボットプログラミング装置であって、新規ワークに対する最適な搬送作業プログラムを、オペレータの熟練を要することなく、少ない工数で容易かつ確実に作成できるロボットプログラミング装置を提供することにある。
【００１５】
本発明の他の目的は、ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンドを装着したロボットに実行させる搬送作業プログラムを作成するためのプログラム及び記録媒体であって、新規ワークに対する最適な搬送作業プログラムを、オペレータの熟練を要することなく、少ない工数で容易かつ確実に作成するように、コンピュータを機能させることができるプログラム、及び同プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することにある。
【００１６】
本発明のさらに他の目的は、ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンドを装着したロボットに実行させる搬送作業プログラムを作成するためのロボットプログラミング方法であって、コンピュータを用いて、新規ワークに対する最適な搬送作業プログラムを、オペレータの熟練を要することなく、少ない工数で容易かつ確実に作成できるロボットプログラミング方法を提供することにある。
【課題を解決するための手段】
【００１７】
上記目的を達成するために、請求項１に記載の発明は、ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンドを装着したロボットに実行させる搬送作業プログラムを作成するためのロボットプログラミング装置において、ワークの３次元形状データから、ワークの幾何学的特徴を表すワーク特徴情報を取得するワーク特徴取得部と、ワークをワーク保持具に取り付けたときの、ワークとワーク保持具との相対位置情報を取得する保持具位置取得部と、ワークをハンドで把持したときの、ワークとハンドとの相対位置情報を取得するハンド位置取得部と、ワーク特徴取得部が取得したワーク特徴情報と、保持具位置取得部が取得したワークとワーク保持具との相対位置情報と、ハンド位置取得部が取得したワークとハンドとの相対位置情報とを、一組の既得データとして互いに関連付けて、複数種類のワークに関する複数組の既得データを記憶する記憶部と、新規ワークの３次元形状データから得られた新規ワーク特徴情報を用いて、記憶部に記憶した複数組の既得データの中から、新規ワーク特徴情報との合致度が最も高いワーク特徴情報を含む最適既得データを検索する既得データ検索部と、既得データ検索部が検索した最適既得データを用いて、新規ワークに対する搬送作業プログラムを生成するプログラム生成部と、を具備することを特徴とするロボットプログラミング装置を提供する。
【００１８】
請求項２に記載の発明は、請求項１に記載のロボットプログラミング装置において、ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を指令する動作パターン指令値を取得する動作パターン取得部をさらに具備し、記憶部は、動作パターン取得部が取得した動作パターン指令値を、ワーク特徴情報、ワークとワーク保持具との相対位置情報、及びワークとハンドとの相対位置情報と共に、一組の既得データとして互いに関連付けて記憶する、ロボットプログラミング装置を提供する。
【００１９】
請求項３に記載の発明は、請求項１又は２に記載のロボットプログラミング装置において、ハンドの指先の３次元形状データを取得する指先形状取得部をさらに具備し、記憶部は、指先形状取得部が取得したハンドの指先の３次元形状データを、ワーク特徴情報、ワークとワーク保持具との相対位置情報、及びワークとハンドとの相対位置情報と共に、一組の既得データとして互いに関連付けて記憶する、ロボットプログラミング装置を提供する。
【００２０】
請求項４に記載の発明は、請求項１〜３のいずれか１項に記載のロボットプログラミング装置において、ハンドの図面データを取得するハンド図面取得部をさらに具備し、記憶部は、ハンド図面取得部が取得したハンドの図面データを、ワーク特徴情報、ワークとワーク保持具との相対位置情報、及びワークとハンドとの相対位置情報と共に、一組の既得データとして互いに関連付けて記憶する、ロボットプログラミング装置を提供する。
【００２１】
請求項５に記載の発明は、請求項１〜４のいずれか１項に記載のロボットプログラミング装置において、ワーク保持具の図面データを取得する保持具図面取得部をさらに具備し、記憶部は、保持具図面取得部が取得したワーク保持具の図面データを、ワーク特徴情報、ワークとワーク保持具との相対位置情報、及びワークとハンドとの相対位置情報と共に、一組の既得データとして互いに関連付けて記憶する、ロボットプログラミング装置を提供する。
【００２２】
請求項６に記載の発明は、請求項１〜５のいずれか１項に記載のロボットプログラミング装置において、ワークの３次元形状データを取得するワーク形状取得部をさらに具備し、記憶部は、ワーク形状取得部が取得したワークの３次元形状データを、ワーク特徴情報、ワークとワーク保持具との相対位置情報、及びワークとハンドとの相対位置情報と共に、一組の既得データとして互いに関連付けて記憶し、プログラム生成部は、既得データ検索部が検索した最適既得データに含まれるワークの３次元形状データと、新規ワークの３次元形状データとの差に基づいて、最適既得データに含まれるワークとワーク保持具との相対位置情報及びワークとハンドとの相対位置情報を補正し、それら補正した相対位置情報を用いて新規ワークに対する搬送作業プログラムを生成する、ロボットプログラミング装置を提供する。
【００２３】
請求項７に記載の発明は、請求項１〜６のいずれか１項に記載のロボットプログラミング装置において、ワーク特徴取得部は、ワーク特徴情報として、ワークの形状の変化を時系列的に表すワーク形状遷移情報を取得し、既得データ検索部は、新規ワーク特徴情報として、新規ワークの形状の変化を時系列的に表す新規ワーク形状遷移情報を用いて、最適既得データを検索する、ロボットプログラミング装置を提供する。
【００２４】
請求項８に記載の発明は、ワーク搬送作業の途中にワークの加工工程が介在する搬送作業プログラムを作成する、請求項７に記載のロボットプログラミング装置であって、ワーク形状遷移情報は、ワークの加工前及び加工後を含む複数の異なる段階における幾何学的特徴を表す、ロボットプログラミング装置を提供する。
【００２５】
請求項９に記載の発明は、ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンドを装着したロボットに実行させる搬送作業プログラムを作成するために、コンピュータを、ワークの３次元形状データから、ワークの幾何学的特徴を表すワーク特徴情報を取得するワーク特徴取得部、ワークをワーク保持具に取り付けたときの、ワークとワーク保持具との相対位置情報を取得する保持具位置取得部、ワークをハンドで把持したときの、ワークとハンドとの相対位置情報を取得するハンド位置取得部、ワーク特徴取得部が取得したワーク特徴情報と、保持具位置取得部が取得したワークとワーク保持具との相対位置情報と、ハンド位置取得部が取得したワークとハンドとの相対位置情報とを、一組の既得データとして互いに関連付けて、複数種類のワークに関する複数組の既得データを記憶する記憶部、新規ワークの３次元形状データから得られた新規ワーク特徴情報を用いて、記憶部に記憶した複数組の既得データの中から、新規ワーク特徴情報との合致度が最も高いワーク特徴情報を含む最適既得データを検索する既得データ検索部、及び既得データ検索部が検索した最適既得データを用いて、新規ワークに対する搬送作業プログラムを生成するプログラム生成部、として機能させるためのロボットプログラミング用プログラムを提供する。
【００２６】
請求項１０に記載の発明は、ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンドを装着したロボットに実行させる搬送作業プログラムを作成するために、コンピュータを、ワークの３次元形状データから、ワークの幾何学的特徴を表すワーク特徴情報を取得するワーク特徴取得部、ワークをワーク保持具に取り付けたときの、ワークとワーク保持具との相対位置情報を取得する保持具位置取得部、ワークをハンドで把持したときの、ワークとハンドとの相対位置情報を取得するハンド位置取得部、ワーク特徴取得部が取得したワーク特徴情報と、保持具位置取得部が取得したワークとワーク保持具との相対位置情報と、ハンド位置取得部が取得したワークとハンドとの相対位置情報とを、一組の既得データとして互いに関連付けて、複数種類のワークに関する複数組の既得データを記憶する記憶部、新規ワークの３次元形状データから得られた新規ワーク特徴情報を用いて、記憶部に記憶した複数組の既得データの中から、新規ワーク特徴情報との合致度が最も高いワーク特徴情報を含む最適既得データを検索する既得データ検索部、及び既得データ検索部が検索した最適既得データを用いて、新規ワークに対する搬送作業プログラムを生成するプログラム生成部、として機能させるためのロボットプログラミング用プログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【００２７】
請求項１１に記載の発明は、ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンドを装着したロボットに実行させる搬送作業プログラムを、コンピュータを用いて作成するためのロボットプログラミング方法において、ワークの３次元形状データから、ワークの幾何学的特徴を表すワーク特徴情報を、コンピュータのワーク特徴取得部が取得するステップと、ワークをワーク保持具に取り付けたときの、ワークとワーク保持具との相対位置情報を、コンピュータの保持具位置取得部が取得するステップと、ワークをハンドで把持したときの、ワークとハンドとの相対位置情報を、コンピュータのハンド位置取得部が取得するステップと、ワーク特徴取得部が取得したワーク特徴情報と、保持具位置取得部が取得したワークとワーク保持具との相対位置情報と、ハンド位置取得部が取得したワークとハンドとの相対位置情報とを、コンピュータの記憶部が、一組の既得データとして互いに関連付けて、複数種類のワークに関する複数組の既得データを記憶するステップと、新規ワークの３次元形状データから得られた新規ワーク特徴情報を用いて、記憶部に記憶した複数組の既得データの中から、新規ワーク特徴情報との合致度が最も高いワーク特徴情報を含む最適既得データを、コンピュータの既得データ検索部が検索するステップと、既得データ検索部が検索した最適既得データを用いて、新規ワークに対する搬送作業プログラムを、コンピュータのプログラム生成部が生成するステップと、を具備することを特徴とするロボットプログラミング方法を提供する。
【発明の効果】
【００２８】
請求項１に記載の発明によれば、ロボットによるワークの搬送作業プログラムを作成する際に、従来、熟練オペレータが行なっていた、作業対象のワークの形状やワークに対する一連の作業工程を考慮した上での、ワーク保持具に保持されるワークの位置及び姿勢並びにハンドがワークを把持するときのハンドの位置及び姿勢の、総合的な検討が、記憶部に記憶した過去のワーク搬送作業に関する既得データを利用することで、不要になる。しかも、ワーク保持具に保持されるワークの位置及び姿勢やハンドがワークを把持するときのハンドの位置及び姿勢といった、ワークの形状データだけに基づいて特定することが不都合な（つまりワーク形状に応じて相違する）位置及び姿勢のデータを、ワーク特徴情報をキーワードとして、オペレータの熟練を要することなく、既得データから容易に入手できる。したがって、ロボットを用いた生産システムにおける新規ワークの追加導入時に、新規ワークに対する最適な搬送作業プログラムを、少ない工数で容易かつ確実に作成することが可能になり、その結果、ロボットを用いて高度に自動化された生産システムにおける、臨機の多品種対応が実現される。
【００２９】
請求項２に記載の発明によれば、ロボットによるワークの搬送作業プログラムを作成する際に、ワーク保持具に保持されるワークの位置及び姿勢並びにハンドがワークを把持するときのハンドの位置及び姿勢に加えて、ワーク保持具に対するロボットのワーク取り付け動作やワーク取り外し動作を、総合的に検討することが不要になる。しかも、ワーク保持具に対するロボットのワーク取り付け動作やワーク取り外し動作といった、ワーク形状に応じて相違する動作データを、ワーク特徴情報をキーワードとして、オペレータの熟練を要することなく、既得データから容易に入手できる。したがって、ロボットを用いた生産システムにおける新規ワークの追加導入時に、新規ワークに対する最適な搬送作業プログラムを、少ない工数で一層確実に作成することが可能になる。
【００３０】
請求項３に記載の発明によれば、ロボットによるワークの搬送作業プログラムを作成する際に、ワーク保持具に保持されるワークの位置及び姿勢並びにハンドがワークを把持するときのハンドの位置及び姿勢に加えて、ワークの形状に合致することが要求されるハンドの指先の形状を、総合的に検討することが不要になる。しかも、ハンドの指先の形状といった、ワーク形状に応じて相違するデータを、ワーク特徴情報をキーワードとして、オペレータの熟練を要することなく、既得データから容易に入手できる。したがって、ロボットを用いた生産システムにおける新規ワークの追加導入時に、新規ワークに対する最適な搬送作業プログラムを、少ない工数で一層確実に作成することが可能になる。
【００３１】
請求項４に記載の発明によれば、ロボットによるワークの搬送作業プログラムを作成する際に、ワーク保持具に保持されるワークの位置及び姿勢並びにハンドがワークを把持するときのハンドの位置及び姿勢に加えて、ワークの形状に合致することが要求されるハンドの形状及び構造を、総合的に検討することが不要になる。しかも、ハンドの形状及び構造といった、ワーク形状に応じて相違するデータを、ワーク特徴情報をキーワードとして、オペレータの熟練を要することなく、既得データから容易に入手できる。したがって、ロボットを用いた生産システムにおける新規ワークの追加導入時に、新規ワークに対する最適な搬送作業プログラムを、少ない工数で一層確実に作成することが可能になる。
【００３２】
請求項５に記載の発明によれば、ロボットによるワークの搬送作業プログラムを作成する際に、ワーク保持具に保持されるワークの位置及び姿勢並びにハンドがワークを把持するときのハンドの位置及び姿勢に加えて、ワークの形状に合致することが要求されるワーク保持具の形状及び構造を、総合的に検討することが不要になる。しかも、ワーク保持具の形状及び構造といった、ワーク形状に応じて相違するデータを、ワーク特徴情報をキーワードとして、オペレータの熟練を要することなく、既得データから容易に入手できる。したがって、ロボットを用いた生産システムにおける新規ワークの追加導入時に、新規ワークに対する最適な搬送作業プログラムを、少ない工数で一層確実に作成することが可能になる。
【００３３】
請求項６に記載の発明によれば、ロボットによるワークの搬送作業プログラムを作成する際に、ワーク保持具に保持されるワークの位置及び姿勢並びにハンドがワークを把持するときのハンドの位置及び姿勢を、ワーク形状に高精度に適合するように総合的に検討することが不要になる。特に、既得データ検索部が検索した最適既得データを有するワークに対し、新規ワークが、幾何学的相似形であったり高さや長さのみが異なるものであったりしたときには、過去のワークの３次元形状データと新規ワークの３次元形状データとの差が容易かつ正確に求められるので、オペレータの熟練を要することなく、新規ワークに高精度に適合する搬送作業プログラムを作成できる。したがって、ロボットを用いた生産システムにおける新規ワークの追加導入時に、新規ワークに対する最適な搬送作業プログラムを、少ない工数で一層確実に作成することが可能になる。
【００３４】
請求項７に記載の発明によれば、ワーク搬送作業の途中でワークの形状が変化するような工程が介在する搬送作業プログラムを作成する場合に、最適既得データの検索精度を著しく向上させることができる。したがって、ロボットを用いた生産システムにおける新規ワークの追加導入時に、新規ワークに対する最適な搬送作業プログラムを、少ない工数で一層確実に作成することが可能になる。
【００３５】
請求項８に記載の発明によれば、加工による同一ワークの形状変化を正確に表すワーク形状遷移情報をキーワードとして、最適既得データを高精度に検索することができる。
【００３６】
請求項９〜１１のいずれかに記載の発明によれば、請求項１に記載の発明と同等の作用効果が奏される。
【発明を実施するための最良の形態】
【００３７】
以下、添付図面を参照して、本発明の実施の形態を詳細に説明する。全図面に渡り、対応する構成要素には共通の参照符号を付す。
なお、以下の説明において、「相対位置」、「絶対位置」、「基準位置」等の位置関連の用語は、特に断りの無い限り、位置及び姿勢の双方を総称するものとする。
【００３８】
図面を参照すると、図１は、本発明に係るロボットプログラミング装置１０の基本構成を機能ブロック図で示す。ロボットプログラミング装置１０は、ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンドを装着したロボットに実行させる搬送作業プログラムを作成するための、下記の特徴的構成を有する。すなわち、ロボットプログラミング装置１０は、ワークの３次元形状データから、ワークの幾何学的特徴を表すワーク特徴情報１２を取得するワーク特徴取得部１４と、ワークをワーク保持具に取り付けたときの、ワークとワーク保持具との相対位置情報１６を取得する保持具位置取得部１８と、ワークをハンドで把持したときの、ワークとハンドとの相対位置情報２０を取得するハンド位置取得部２２と、ワーク特徴取得部１４が取得したワーク特徴情報１２と、保持具位置取得部１８が取得したワークとワーク保持具との相対位置情報１６と、ハンド位置取得部２２が取得したワークとハンドとの相対位置情報２０とを、一組の既得データＤとして互いに関連付けて、複数種類のワークに関する複数組の既得データＤを記憶する記憶部２４と、新規ワークの３次元形状データから得られた新規ワーク特徴情報２６を用いて、記憶部２４に記憶した複数組の既得データＤの中から、新規ワーク特徴情報２６との合致度が最も高いワーク特徴情報１２を含む最適既得データＳＤを検索する既得データ検索部２８と、既得データ検索部２８が検索した最適既得データＳＤを用いて、新規ワークに対する搬送作業プログラム３０を生成するプログラム生成部３２とを備えて構成される。
【００３９】
上記基本構成を有するロボットプログラミング装置１０においては、ワーク保持具に保持されるワークの位置及び姿勢のデータ（ワーク上のクランプ又はチャック位置に関与するデータ）が、ワークをワーク保持具に取り付けたときのワークとワーク保持具との相対位置情報１６として、保持具位置取得部１８により取得されて、記憶部２４に記憶される。また、ワークを把持するロボットのハンドの位置及び姿勢のデータ（ワーク上の指先位置に関与するデータ）が、ワークをハンドで把持したときのワークとハンドとの相対位置情報２０として、ハンド位置取得部２２により取得されて、記憶部２４に記憶される。記憶部２４では、１つのワークに対するこれら相対位置情報１６、２０が、当該ワークの幾何学的特徴を表すワーク特徴情報１２と共に、一組の既得データＤとして記憶される。したがって、過去に実行されたワーク搬送作業における、ワークとワーク保持具及びワークとハンドとの相対的な位置及び姿勢のデータを、当該ワークのワーク特徴情報１２に関連付けて、既得データＤとして記憶することができる。
【００４０】
ここで、ワーク特徴情報１２は、過去の搬送作業の対象となったワークの図面データ（例えばＣＡＤデータ）や画像データ（例えばＣＣＤ撮像データ）等の３次元形状データから、種々の特徴抽出手法によって取得することができる。また、ワークとワーク保持具との相対位置情報１６及びワークとハンドとの相対位置情報２０は、過去のワーク搬送作業を実行したときの搬送作業プログラムから取得することができる。そして、過去の複数回のワーク搬送作業に関して、これらワーク特徴情報１２及び相対位置情報１６、２０を取得することにより、複数組の既得データＤが記憶部２４に記憶される。なお、「取得」という行為は、例えば個々の取得部１４、１８、２２が適当な記憶媒体から自発的に入手したり、オペレータが必要に応じて個々の取得部１４、１８、２２に入力したりすることによって実現される。ワーク特徴情報１２及び相対位置情報１６、２０の具体的な取得手順については、後に詳述する。
【００４１】
新規ワークを追加導入する際には、当該新規ワークの３次元形状データ（図面データ又は画像データ）から（例えば種々の特徴抽出手法によって）得られた新規ワーク特徴情報２６が、既得データ検索部２８に（検索部２８による自発的な入手又は検索部２８へのオペレータの入力により）与えられる。そこで、既得データ検索部２８が、新規ワーク特徴情報２６に基づき、記憶部２４に記憶した複数組の既得データＤから、ワーク特徴情報１２をキーワードとして、最適既得データＳＤを検索する。この最適既得データＳＤには、新規ワークに対する形状特徴の合致度が最も高い（つまり極めて類似した形状を有する）過去のワークに関する相対位置情報１６、２０が含まれている。したがって、プログラム生成部３２が生成した搬送作業プログラム３０は、新規ワークに対し、ワークとワーク保持具及びワークとハンドとの相対的な位置及び姿勢の関係が、過去に実行した類似ワークの搬送作業と同一である搬送作業を、ロボットに実行させるものとなる。
【００４２】
このように、ロボットプログラミング装置１０によれば、ロボットによるワークの搬送作業プログラムを作成する際に、従来、熟練オペレータが行なっていた、作業対象のワークの形状やワークに対する一連の作業工程を考慮した上での、ワーク保持具に保持されるワークの位置及び姿勢並びにハンドがワークを把持するときのハンドの位置及び姿勢の、総合的な検討が、記憶部２４に記憶した過去のワーク搬送作業に関する既得データＤを利用することで、不要になる。しかも、ワーク保持具に保持されるワークの位置及び姿勢やハンドがワークを把持するときのハンドの位置及び姿勢といった、ワークの形状データだけに基づいて特定することが不都合な（つまりワーク形状に応じて相違する）位置及び姿勢のデータを、ワーク特徴情報１２をキーワードとして、オペレータの熟練を要することなく、既得データＤから容易に入手できる。したがって、ロボットを用いた生産システムにおける新規ワークの追加導入時に、新規ワークに対する最適な搬送作業プログラム３０を、少ない工数で容易かつ確実に作成することが可能になり、その結果、ロボットを用いて高度に自動化された生産システムにおける、臨機の多品種対応が実現される。
【００４３】
図２は、図１のロボットプログラミング装置１０の第１の発展的構成を機能ブロック図で示す。図２のロボットプログラミング装置１０は、ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を指令する動作パターン指令値３４を取得する動作パターン取得部３６をさらに備える。この構成では、記憶部２４は、動作パターン取得部３６が取得した動作パターン指令値３４を、ワーク特徴情報１２、ワークとワーク保持具との相対位置情報１６、及びワークとハンドとの相対位置情報２０と共に、一組の既得データＤとして互いに関連付けて記憶する。
【００４４】
図２に示すロボットプログラミング装置１０においては、ワーク保持具に対するロボットのワーク取り付け動作及びワーク取り外し動作の少なくとも一方を表すデータが、そのような動作をロボットに実際に指令する動作パターン指令値３４として、動作パターン取得部３６により取得されて、記憶部２４に記憶される。記憶部２４では、１つのワークに対する動作パターン指令値３４が、前述したワーク特徴情報１２及び相対位置情報１６、２０と共に、一組の既得データＤとして記憶される。したがって、過去に実行されたワーク搬送作業における、ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を表すデータを、当該ワークのワーク特徴情報１２に関連付けて、既得データＤとして記憶することができる。
【００４５】
ここで、動作パターン指令値３４は、過去のワーク搬送作業を実行したときの搬送作業プログラムから取得することができる。そして、過去の複数回のワーク搬送作業に関して、動作パターン指令値３４をそれぞれに取得することにより、複数組の既得データＤが記憶部２４に記憶される。なお、上記構成における「取得」という行為も、例えば動作パターン取得部３６が適当な記憶媒体から自発的に入手したり、オペレータが必要に応じて動作パターン取得部３６に入力したりすることによって実現される。動作パターン指令値３４の具体的な取得手順については、後に詳述する。
【００４６】
新規ワークを追加導入する際に、前述したようにして既得データ検索部２８が検索した最適既得データＳＤには、新規ワークに対する形状特徴の合致度が最も高い（つまり極めて類似した形状を有する）過去のワークに関する動作パターン指令値３４が含まれている。したがって、プログラム生成部３２が生成した搬送作業プログラム３０は、新規ワークに対し、ワークとワーク保持具及びワークとハンドとの相対的な位置及び姿勢の関係に加えて、ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作が、過去に実行した類似ワークの搬送作業と同一である搬送作業を、ロボットに実行させるものとなる。
【００４７】
このように、図２に示すロボットプログラミング装置１０によれば、ロボットによるワークの搬送作業プログラムを作成する際に、ワーク保持具に保持されるワークの位置及び姿勢並びにハンドがワークを把持するときのハンドの位置及び姿勢に加えて、ワーク保持具に対するロボットのワーク取り付け動作やワーク取り外し動作を、総合的に検討することが不要になる。しかも、ワーク保持具に対するロボットのワーク取り付け動作やワーク取り外し動作といった、ワーク形状に応じて相違する動作データを、ワーク特徴情報１２をキーワードとして、オペレータの熟練を要することなく、既得データＤから容易に入手できる。したがって、ロボットを用いた生産システムにおける新規ワークの追加導入時に、新規ワークに対する最適な搬送作業プログラム３０を、少ない工数で一層確実に作成することが可能になる。
【００４８】
なお、ロボットによるワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作は、作業対象のワークの形状やワークに対する一連の作業工程を考慮してロボットのワーク搬送作業プログラムを作成する際に、通常は、ワークとワーク保持具及びワークとハンドとの相対的な位置及び姿勢の関係と合わせて、詳細に検討すべき重要な項目である。しかし、多種多様な生産システムにおいては、ワーク搬送作業に際し、例えばロボットがワーク保持具に対して常に真上から接近し、また真上に離反するといった、極めて単純な動作を遂行するようにプログラミングされる場合がある。そのような場合には、新規ワークの搬送作業プログラムを作成する際に、ワーク保持具に対するワークの取り付け及び取り外しの少なくとも一方の動作を改めて指定する必要が無いので、動作パターン取得部３６を省略することができる。
【００４９】
図３は、図１のロボットプログラミング装置１０の第２の発展的構成を機能ブロック図で示す。図３のロボットプログラミング装置１０は、ハンドの指先の３次元形状データ３８を取得する指先形状取得部４０をさらに備える。この構成では、記憶部２４は、指先形状取得部４０が取得したハンドの指先の３次元形状データ３８を、ワーク特徴情報１２、ワークとワーク保持具との相対位置情報１６、及びワークとハンドとの相対位置情報２０と共に、一組の既得データＤとして互いに関連付けて記憶する。
【００５０】
図３に示すロボットプログラミング装置１０においては、ワークの形状に合致した形状を有することが要求されるハンドの指先のデータが、指先の３次元形状データ３８として、指先形状取得部４０により取得されて、記憶部２４に記憶される。記憶部２４では、１つのワークに対する指先の３次元形状データ３８が、前述したワーク特徴情報１２及び相対位置情報１６、２０と共に、一組の既得データＤとして記憶される。したがって、過去に実行されたワーク搬送作業における、ワーク形状に合致したハンドの指先の形状データを、当該ワークのワーク特徴情報１２に関連付けて、既得データＤとして記憶することができる。
【００５１】
ここで、ハンドの指先の３次元形状データ３８は、指先の図面データ（例えばＣＡＤデータ）や画像データ（例えばＣＣＤ撮像データ）として、既設のＣＡＤシステムやビジョンシステムから、指先形状取得部４０が自発的に入手したり、オペレータが必要に応じて指先形状取得部４０に入力したりすることによって、取得できる。そして、過去の複数回のワーク搬送作業に関して、ハンドの指先の３次元形状データ３８をそれぞれに取得することにより、複数組の既得データＤが記憶部２４に記憶される。
【００５２】
新規ワークを追加導入する際に、前述したようにして既得データ検索部２８が検索した最適既得データＳＤには、新規ワークに対する形状特徴の合致度が最も高い（つまり極めて類似した形状を有する）過去のワークに関する、ハンドの指先の３次元形状データ３８が含まれている。したがって、プログラム生成部３２が生成した搬送作業プログラム３０は、新規ワークに対し、ワークとワーク保持具及びワークとハンドとの相対的な位置及び姿勢の関係に加えて、ワークに直接接触するハンドの指先の形状が、過去に実行した類似ワークの搬送作業と同一である搬送作業を、ロボットに実行させるものとなる。
【００５３】
このように、図３に示すロボットプログラミング装置１０によれば、ロボットによるワークの搬送作業プログラムを作成する際に、ワーク保持具に保持されるワークの位置及び姿勢並びにハンドがワークを把持するときのハンドの位置及び姿勢に加えて、ワークの形状に合致することが要求されるハンドの指先の形状を、総合的に検討することが不要になる。しかも、ハンドの指先の形状といった、ワーク形状に応じて相違するデータを、ワーク特徴情報１２をキーワードとして、オペレータの熟練を要することなく、既得データＤから容易に入手できる。したがって、ロボットを用いた生産システムにおける新規ワークの追加導入時に、新規ワークに対する最適な搬送作業プログラム３０を、少ない工数で一層確実に作成することが可能になる。なお、搬送作業プログラム３０の実行に際しては、最適既得データＳＤに含まれているハンドの指先の３次元形状データ３８を参照して、対応の指を有するハンドをロボットに装着すればよい。
【００５４】
図４は、図１のロボットプログラミング装置１０の第３の発展的構成を機能ブロック図で示す。図４のロボットプログラミング装置１０は、ハンドの図面データ４２を取得するハンド図面取得部４４をさらに備える。この構成では、記憶部２４は、ハンド図面取得部４４が取得したハンドの該図面データ４２を、ワーク特徴情報１２、ワークとワーク保持具との相対位置情報１６、及びワークとハンドとの相対位置情報２０と共に、一組の既得データＤとして互いに関連付けて記憶する。
【００５５】
図４に示すロボットプログラミング装置１０においては、ワークの形状に合致した形状及び構造（指の本数や配置等）を有することが要求されるハンドのデータが、ハンドの図面データ４２として、ハンド図面取得部４４により取得されて、記憶部２４に記憶される。記憶部２４では、１つのワークに対するハンドの図面データ４２が、前述したワーク特徴情報１２及び相対位置情報１６、２０と共に、一組の既得データＤとして記憶される。したがって、過去に実行されたワーク搬送作業における、ワーク形状に合致したハンドのデータを、当該ワークのワーク特徴情報１２に関連付けて、既得データＤとして記憶することができる。
【００５６】
ここで、ハンドの図面データ４２は、ハンド図面取得部４４が適当な記憶媒体から自発的に入手したり、オペレータが必要に応じてハンド図面取得部４４に入力したりすることによって、取得することができる。そして、過去の複数回のワーク搬送作業に関して、ハンドの図面データ４２をそれぞれに取得することにより、複数組の既得データＤが記憶部２４に記憶される。
【００５７】
新規ワークを追加導入する際に、前述したようにして既得データ検索部２８が検索した最適既得データＳＤには、新規ワークに対する形状特徴の合致度が最も高い（つまり極めて類似した形状を有する）過去のワークに関する、ハンドの図面データ４２が含まれている。したがって、プログラム生成部３２が生成した搬送作業プログラム３０は、新規ワークに対し、ワークとワーク保持具及びワークとハンドとの相対的な位置及び姿勢の関係に加えて、ワークを把持するハンドの形状及び構造が、過去に実行した類似ワークの搬送作業と同一である搬送作業を、ロボットに実行させるものとなる。
【００５８】
このように、図４に示すロボットプログラミング装置１０によれば、ロボットによるワークの搬送作業プログラムを作成する際に、ワーク保持具に保持されるワークの位置及び姿勢並びにハンドがワークを把持するときのハンドの位置及び姿勢に加えて、ワークの形状に合致することが要求されるハンドの形状及び構造を、総合的に検討することが不要になる。しかも、ハンドの形状及び構造といった、ワーク形状に応じて相違するデータを、ワーク特徴情報１２をキーワードとして、オペレータの熟練を要することなく、既得データＤから容易に入手できる。したがって、ロボットを用いた生産システムにおける新規ワークの追加導入時に、新規ワークに対する最適な搬送作業プログラム３０を、少ない工数で一層確実に作成することが可能になる。なお、搬送作業プログラム３０の実行に際しては、最適既得データＳＤに含まれているハンドの図面データ４２を参照して、対応のハンドをロボットに装着すればよい。
【００５９】
図５は、図１のロボットプログラミング装置１０の第４の発展的構成を機能ブロック図で示す。図５のロボットプログラミング装置１０は、ワーク保持具の図面データ４６を取得する保持具図面取得部４８をさらに備える。この構成では、記憶部２４は、保持具図面取得部４８が取得したワーク保持具の図面データ４６を、ワーク特徴情報１２、ワークとワーク保持具との相対位置情報１６、及びワークとハンドとの相対位置情報２０と共に、一組の既得データＤとして互いに関連付けて記憶する。
【００６０】
図５に示すロボットプログラミング装置１０においては、ワークの形状に合致した形状及び構造（当接面及びクランプの個数や配置等）を有することが要求されるワーク保持具のデータが、ワーク保持具の図面データ４６として、保持具図面取得部４８により取得されて、記憶部２４に記憶される。記憶部２４では、１つのワークに対するワーク保持具の図面データ４６が、前述したワーク特徴情報１２及び相対位置情報１６、２０と共に、一組の既得データＤとして記憶される。したがって、過去に実行されたワーク搬送作業における、ワーク形状に合致したワーク保持具のデータを、当該ワークのワーク特徴情報１２に関連付けて、既得データＤとして記憶することができる。
【００６１】
ここで、ワーク保持具の図面データ４６は、保持具図面取得部４８が適当な記憶媒体から自発的に入手したり、オペレータが必要に応じて保持具図面取得部４８に入力したりすることによって、取得することができる。そして、過去の複数回のワーク搬送作業に関して、ワーク保持具の図面データ４６をそれぞれに取得することにより、複数組の既得データＤが記憶部２４に記憶される。
【００６２】
新規ワークを追加導入する際に、前述したようにして既得データ検索部２８が検索した最適既得データＳＤには、新規ワークに対する形状特徴の合致度が最も高い（つまり極めて類似した形状を有する）過去のワークに関する、ワーク保持具の図面データ４６が含まれている。したがって、プログラム生成部３２が生成した搬送作業プログラム３０は、新規ワークに対し、ワークとワーク保持具及びワークとハンドとの相対的な位置及び姿勢の関係に加えて、ワークを保持するワーク保持具の形状及び構造が、過去に実行した類似ワークの搬送作業と同一である搬送作業を、ロボットに実行させるものとなる。
【００６３】
このように、図５に示すロボットプログラミング装置１０によれば、ロボットによるワークの搬送作業プログラムを作成する際に、ワーク保持具に保持されるワークの位置及び姿勢並びにハンドがワークを把持するときのハンドの位置及び姿勢に加えて、ワークの形状に合致することが要求されるワーク保持具の形状及び構造を、総合的に検討することが不要になる。しかも、ワーク保持具の形状及び構造といった、ワーク形状に応じて相違するデータを、ワーク特徴情報１２をキーワードとして、オペレータの熟練を要することなく、既得データＤから容易に入手できる。したがって、ロボットを用いた生産システムにおける新規ワークの追加導入時に、新規ワークに対する最適な搬送作業プログラム３０を、少ない工数で一層確実に作成することが可能になる。なお、搬送作業プログラム３０の実行に際しては、最適既得データＳＤに含まれているワーク保持具の図面データ４６を参照して、対応のワーク保持具をロボットの作業領域に設置すればよい。
【００６４】
図６は、図１のロボットプログラミング装置１０の第５の発展的構成を機能ブロック図で示す。図６のロボットプログラミング装置１０は、ワークの３次元形状データ５０を取得するワーク形状取得部５２をさらに備える。この構成では、記憶部２４は、ワーク形状取得部５２が取得したワークの３次元形状データ５０を、ワーク特徴情報１２、ワークとワーク保持具との相対位置情報１６、及びワークとハンドとの相対位置情報２０と共に、一組の既得データＤとして互いに関連付けて記憶する。そして、プログラム生成部３２は、既得データ検索部２８が検索した最適既得データＳＤに含まれるワークの３次元形状データ５０と、新規ワークの３次元形状データ５４との差に基づいて、最適既得データＳＤに含まれるワークとワーク保持具との相対位置情報１６及びワークとハンドとの相対位置情報２０を補正し、それら補正した相対位置情報１６、２０を用いて新規ワークに対する搬送作業プログラム３０を生成する。
【００６５】
図６に示すロボットプログラミング装置１０においては、ワークの形状自体のデータが、ワークの３次元形状データ５０として、ワーク形状取得部５２により取得されて、記憶部２４に記憶される。記憶部２４では、１つのワークに対するワークの３次元形状データ５０が、前述したワーク特徴情報１２及び相対位置情報１６、２０と共に、一組の既得データＤとして記憶される。したがって、過去に実行されたワーク搬送作業における、ワークの形状データを、当該ワークのワーク特徴情報１２に関連付けて、既得データＤとして記憶することができる。
【００６６】
ここで、ワークの３次元形状データ５０は、ワークの図面データ（例えばＣＡＤデータ）や画像データ（例えばＣＣＤ撮像データ）として、既設のＣＡＤシステムやビジョンシステムから、ワーク形状取得部５２が自発的に入手したり、オペレータが必要に応じてワーク形状取得部５２に入力したりすることによって、取得できる。この３次元形状データ５０は、ワーク特徴取得部１４が取得するワーク特徴情報１２の抽出元のデータと同じものであってもよい。そして、過去の複数回のワーク搬送作業に関して、ワークの３次元形状データ５０をそれぞれに取得することにより、複数組の既得データＤが記憶部２４に記憶される。
【００６７】
新規ワークを追加導入する際に、前述したようにして既得データ検索部２８が検索した最適既得データＳＤには、新規ワークに対する形状特徴の合致度が最も高い（つまり極めて類似した形状を有する）過去のワークの３次元形状データ５０が含まれている。そこで、プログラム生成部３２が、過去のワークの３次元形状データ５０と新規ワークの３次元形状データ５４との差に基づいて相対位置情報１６、２０を補正し、それら相対位置情報１６、２０を用いて生成した搬送作業プログラム３０は、過去に実行した類似ワークの搬送作業に比べて、ワークとワーク保持具及びワークとハンドとの相対的な位置及び姿勢の関係が、新規ワークに高精度に適合するように改変された搬送作業を、ロボットに実行させるものとなる。
【００６８】
このように、図６に示すロボットプログラミング装置１０によれば、ロボットによるワークの搬送作業プログラムを作成する際に、ワーク保持具に保持されるワークの位置及び姿勢並びにハンドがワークを把持するときのハンドの位置及び姿勢を、ワーク形状に高精度に適合するように総合的に検討することが不要になる。特に、既得データ検索部２８が検索した最適既得データＳＤを有するワークに対し、新規ワークが、幾何学的相似形であったり高さや長さのみが異なるものであったりしたときには、過去のワークの３次元形状データ５０と新規ワークの３次元形状データ５４との差が容易かつ正確に求められるので、オペレータの熟練を要することなく、新規ワークに高精度に適合する搬送作業プログラム３０を作成できる。したがって、ロボットを用いた生産システムにおける新規ワークの追加導入時に、新規ワークに対する最適な搬送作業プログラム３０を、少ない工数で一層確実に作成することが可能になる。
【００６９】
次に、図７〜図１７を参照して、本発明の好適な実施形態によるロボットプログラミング装置の構成を、ロボットが実行する作業例に関連して説明する。
図７は、本発明の一実施形態によるロボットプログラミング装置６０を組み込んだ、ロボットを用いた生産システムの全体概要図である。ロボット（すなわちロボット機構部）６２の手首先端には、ハンド６４が取り付けられる。パレットＰ１には、複数のワークＷ１が置かれ、パレットＰ２には、ワークＷ１とは種類の異なる複数のワークＷ２が置かれる。ロボット６２は、走行軸６６上に設置され、走行軸６６に沿って移動して、パレットＰ１のワークＷ１又はパレットＰ２のワークＷ２をハンド６４に把持し、仮置台６８まで搬送してそこに一時的に載置する。仮置台６８には、パレットＰ１から運んだワークＷ１を所定位置に位置決めして保持するワーク保持具６８ａと、パレットＰ２から運んだワークＷ２を所定位置に位置決めして保持するワーク保持具６８ｂとが設置される。また、仮置台６８に隣接して、ワーク保持具（例えばチャック）７０ａを装備した加工機械７０が配置される。ロボット６２は、仮置台６８のワーク保持具６８ａ、６８ｂと加工機械７０のワーク保持具７０ａとの間で、ワークＷ１、Ｗ２を搬送する（ローディング／アンローディング作業）。
【００７０】
加工機械７０が加工中でなければ、ロボット６２は、仮置台６８に置かれたワークＷ１又はＷ２をハンド６４に把持して加工機械７０に供給する。加工機械７０は、ロボット６２からの加工開始命令により、ワークの加工を開始する。加工が完了すると、加工機械７０はロボット６２に、加工完了信号を送信する。加工完了信号を受け取ったロボット６２は、加工済みのワークＷ１又はＷ２を加工機械７０から取り出して、ワークＷ１はパレットＰ３に置き、ワークＷ２はパレットＰ４に置く。
【００７１】
ロボット６２及び走行軸６６は、それぞれ通信ケーブル７２及び７４を介して制御装置７６に接続され、ロボット６２及び走行軸６６の動作が制御装置７６により制御される。制御装置７６は、ネットワークケーブル７８により、ロボットプログラミング装置６０に接続される。ロボット６２の手首先端には、ハンド６４に隣接してカメラ８０が装着され、カメラ８０はカメラケーブル８２を介して画像処理装置８４に接続される。画像処理装置８４は、ネットワークケーブル８６、８８によって、制御装置７６及びロボットプログラミング装置６０にそれぞれ接続される。仮置台６８に設置されたワーク保持具６８ａ、６８ｂはそれぞれ、ディジタル信号入出力ケーブル（図示せず）を介して制御装置７６に接続される。
【００７２】
図８は、図７の生産システムにおける主として制御系の構成を示すブロック図である。制御装置７６は、バス９０で相互接続されたＣＰＵ９２、メモリ９４、ネットワークインタフェース９６、ディジタル信号入出力回路９８、操作盤インタフェース１００及びサーボインタフェース１０２を備える。図９に示すように、メモリ９４には、ＣＰＵ９２により実行され、制御装置７６の全体を制御する制御プログラム１０４と、ロボット６２を動作させる作業プログラム１０６及び１０８とが格納される。作業プログラム１０６は、ワークＷ１に関する作業をロボット６２がハンド６４を用いて行うためのものであり、作業プログラム１０８は、ワークＷ２に関する作業をロボット６２がハンド６４を用いて行うためのものである。作業プログラム１０６及び１０８は、いずれも制御プログラム１０４を用いて解釈され、ロボット６２及びハンド６４の動作に変換される。これら作業プログラム１０６及び１０８は、ロボットプログラミング装置６０によって作成される。
【００７３】
ネットワークインタフェース９６には、ネットワークケーブル７８を介してロボットプログラミング装置６０が接続されるとともに、ネットワークケーブル８６を介して画像処理装置８４が接続される。また、ディジタル信号入出力回路９８には、ディジタル信号入出力ケーブル１１０を介して、仮置台６８のワーク保持具６８ａ、６８ｂが個々に接続され、ディジタル信号入出力ケーブル１１２を介して、加工機械７０が接続され、ディジタル信号入出力ケーブル１１４を介して、ロボット６２に装着されたハンド６４が接続される。
【００７４】
操作盤インタフェース１００には、操作盤ケーブル１１６を介して、教示操作盤１１８が接続される。教示操作盤１１８は、表示器１１８ａ及び入力ボタン１１８ｂを備え、教示操作盤１１８をオペレータが操作することにより、制御装置７６を介してロボット６２を手動モードで動作させることができる。また、サーボインタフェース１０２には、通信ケーブル７２、７４を介して、ロボット６２の各制御軸及び走行軸６６のサーボモータ等のサーボ機構が接続される。
【００７５】
ロボットプログラミング装置６０には、ハードディスク装置１２０が接続される。或いはロボットプログラミング装置６０は、ハードディスク装置１２０を内蔵していても良い。図１０に示すように、ハードディスク装置１２０には、加工対象の複数種類のワークＷ１、Ｗ２のそれぞれに関連して、ロボット６２の動作を概括的に表現する作業プログラム定義データ１２２１、１２２２と、具体的な位置及び姿勢を表現する作業部位定義データ１２４１、１２４２と、ワークＷ１、Ｗ２の図面データ１２６１、１２６２とが格納される。
【００７６】
画像処理装置８４には、ハードディスク装置１２８が接続される。或いは画像処理装置８４は、ハードディスク装置１２８を内蔵していても良い。ハードディスク装置１２８には、作業対象のワークＷ１、Ｗ２を検出するためのそれぞれの基準となるワーク画像データ１３０１、１３０２が格納される。ワーク画像データ１３０１、１３０２は、ロボット６２の手首先端に取り付けたカメラ８０を用いてワークＷ１、Ｗ２を撮影することにより得られる。
【００７７】
図１１は、上記生産システムで使用される加工機械７０のワーク保持具７０ａの構成の一例を、作業対象のワークＷと共に示す。また、図１２は、上記生産システムで使用されるハンド６４の構成の一例を、ワーク保持具７０ａ及びワークＷと共に示す。なお、仮置台６８のワーク保持具６８ａ、６８ｂも、図示のワーク保持具７０ａと同様の構成を有することができる。
【００７８】
ワーク保持具７０ａは、未加工の素材ワークＷを強固に安定保持できる第１保持部１３２と、加工工程を経た加工済ワークＷ′を強固に安定保持できる第２保持部１３４とを備える。第１保持部１３２は、素材ワークＷの表面に当接される当接面を先端に有する複数の支柱１３６と、それら支柱１３６の当接面に素材ワークＷを押し当てて固定する複数のクランプ要素１３８とを備える。複数の支柱１３６の当接面は、図面上で素材ワークＷの底面、一斜面及び一側面のそれぞれに当接される。複数のクランプ要素１３８は、支柱１３６の当接面に当接されていない素材ワークＷの他斜面及び他側面のそれぞれに係合して、複数の支柱１３６との協働により素材ワークＷを強固に安定してクランプする。また、第２保持部１３４は、加工済ワークＷ′の表面に当接される当接面を有する基台１４０を備え、クランプ要素として作用する図示しない複数のボルトにより、加工済ワークＷ′が基台１４０に強固に安定して固定される。これら支柱（当接面）１３６、クランプ要素１３８、基台（当接面）１４０は、対象となるワークＷ、Ｗ′の形状に合致する形状及び構造（個数や配置等）を有する。
【００７９】
他方、ハンド６４は、ロボット６２（図７）の手首端に装着される基部１４２と、基部１４２に移動可能かつ着脱可能に設置される２本の指１４４とを備える。それら指１４４は、各々の先端に、作業対象となるワークＷ、Ｗ′に直接接触する指先１４６を有する。指１４４の形状及び構造（本数や配置等）並びに指先１４６の形状は、対象となるワークＷ、Ｗ′の形状に合致するものとなっている。
【００８０】
ロボット６２（図７）は、ハンド６４に把持した素材ワークＷを、第１保持部１３２の複数の支柱（当接面）１３６に同時に接触させるようにしてワーク保持具７０ａに取り付け、また、第１保持部１３２に置かれている素材ワークＷを、ハンド６４に把持してワーク保持具７０ａから取り外す。同様に、ロボット６２（図７）は、ハンド６４に把持した加工済ワークＷ′を、第２保持部１３４の基台（当接面）１４０に一様に接触させるようにしてワーク保持具７０ａに取り付け、また、第２保持部１３４に置かれている加工済ワークＷ′を、ハンド６４に把持してワーク保持具７０ａから取り外す。
【００８１】
上記生産システム（図７）でロボット６２が実行するワーク搬送作業において、ワーク保持具７０ａに保持されるワークＷ、Ｗ′の位置及び姿勢、ハンド６４がワークＷ、Ｗ′を把持するときのハンド６４の位置及び姿勢、並びにワーク保持具７０ａに対するロボット６２のワーク取り付け動作及びワーク取り外し動作は、前述したように、ワークＷ、Ｗ′の形状やワークＷ、Ｗ′に対する一連の作業工程に対応して最適化される。本発明の実施形態によるロボットプログラミング装置６０は、図１〜図６のロボットプログラミング装置１０に関連して説明したように、ワークＷ、Ｗ′の形状や作業工程に対応して最適化された搬送作業プログラムを作成する際の、オペレータの負担を著しく軽減するものである。
【００８２】
次に、図１３、図１４及び図１５のフローチャートに従い、上記生産システム（図７）において、ロボット６２が制御装置７６の制御下で実行するワーク搬送作業の一例を詳細に説明する。なお、以下の作業例は、パレットＰ１から取り出したワークＷ１（素材ワークＷ）を、仮置台６８を経て加工機械７０に取り付ける作業と、加工機械７０から取り出したワークＷ１（加工済ワークＷ′）を、仮置台６８を経てパレットＰ３に載せる作業とを、ロボット６２が、メモリ９４に格納された作業プログラム１０６に従って交互的に実行するものである。
【００８３】
まず、走行軸６６を起動して、パレットＰ１の正面にロボット６２を移動する（ステップＳ２００）。次いで、ロボット６２のアームを旋回し、ハンド６４（例えば図１２のハンド６４）をパレットＰ１の真上に移動する（ステップＳ２０１）。そして、ディジタル信号入出力回路９８を介して、ハンド６４に対し「ハンド開」のディジタル信号を出力し、ハンド６４を開く（ステップＳ２０２）。
【００８４】
次に、ハンド６４を、ワークＷ１（素材ワークＷ）への把持動作を行なう把持位置に向けて移動する。このとき、ハンド６４を、把持位置の真上の位置に移動した後、その真下の把持位置に向けて低速で移動する（ステップＳ２０３）。そして、ディジタル信号入出力回路９８を介して、ハンド６４に対し「ハンド閉」のディジタル信号を出力し、ハンド６４を閉じてワークＷ１を把持する（ステップＳ２０４）。続いて、ハンド６４を上方へ移動してワークＷ１をパレットＰ１から取り出す。このとき、ハンド６４を、把持位置の真上の位置に低速で移動した後、速度を上げてさらに上方にワークＷ１を持ち上げる（ステップＳ２０５）。
【００８５】
次に、ロボット６２のアームを右旋回するとともに走行軸６６を動作させて、ロボット６２を仮置台６８の正面に移動し（ステップＳ２０６）、次いでハンド６４を、ワーク保持具６８ａの上方位置に移動する（ステップＳ２０７）。続いて、ハンド６４を、ワーク保持具６８ａの保持部（例えば図１１の第１保持部１３２）に向けて低速で移動し、ワーク保持具６８ａにワークＷ１を取り付ける（ステップＳ２０８）。そして、ディジタル信号入出力回路９８を介して、ハンド６４に対し「ハンド開」のディジタル信号を出力し、ハンド６４を開いてワークＷ１を解放する（ステップＳ２０９）。
【００８６】
次に、ハンド６４を上方へ移動して、ワーク保持具６８ａから引き離す（ステップＳ２１０）。そこで、ディジタル信号入出力回路９８を介して、ワーク保持具６８ａに対し「クランプ閉」のディジタル信号を出力し、ワーク保持具６８ａをクランプ閉動させて、ワークＷ１を所定位置に正確に位置決めした状態でワーク保持具６８ａに固定保持させる（ステップＳ２１１）。
【００８７】
続いて、ロボット６２のアームを旋回して、開状態のハンド６４を加工機械７０の正面に移動する（ステップＳ２１２）。次いで、加工機械７０のドア開口部を通して、加工機械７０の内部にハンド６４を挿入する。このとき、加工機械７０にハンド６４が接触しないように、ロボット６２のアームを真直ぐに伸ばして進入させる（ステップＳ２１３）。次に、ハンド６４を、加工機械７０のワーク保持具７０ａ（例えば図１１のワーク保持具７０ａ）に固定されたワークＷ１（加工済ワークＷ′）への把持動作を行なう把持位置に向けて移動する（ステップＳ２１４）。次いで、把持位置でハンド６４を閉じて、ワークＷ１を把持する（ステップＳ２１５）。
【００８８】
次に、ディジタル信号入出力回路９８を介して、加工機械７０に対し「クランプ開」のディジタル信号を出力し、ワーク保持具７０ａのクランプ（又はチャック）を開動させて、ワークＷ１（加工済ワークＷ′）を解放させる（ステップＳ２１６）。次いで、ハンド６４を把持位置から僅かに移動して、加工機械７０のワーク保持具７０ａから、干渉を回避する動作でワークＷ１を取り外す（ステップＳ２１７）。続いて、加工機械７０からドア開口部を通してハンド６４を引き出す。このとき、加工機械７０にハンド６４及びワークＷ１が接触しないように、ロボット６２のアームを真直ぐに伸ばして後退させる（ステップＳ２１８）。
【００８９】
次に、ハンド６４を、仮置台６８のワーク保持具６８ｂの上方位置に移動する（ステップＳ２１９）。続いて、ハンド６４を、ワーク保持具６８ｂの保持部（例えば図１１の第２保持部１３４）に向けて低速で移動し、ワーク保持具６８ｂにワークＷ１（加工済ワークＷ′）を取り付ける（ステップＳ２２０）。そして、ハンド６４を開いて、ワークＷ１を解放する（ステップＳ２２１）。
【００９０】
次に、ハンド６４を上方へ移動して、ワーク保持具６８ｂから引き離す（ステップＳ２２２）。そこで、ワーク保持具６８ｂをクランプ閉動させて、ワークＷ１を所定位置に正確に位置決めした状態でワーク保持具６８ｂに固定保持させる（ステップＳ２２３）。続いて、ハンド６４を、仮置台６８のワーク保持具６８ａの真上に移動する（ステップＳ２２４）。
【００９１】
次に、ハンド６４を、ワーク保持具６８ａに保持されたワークＷ１（素材ワークＷ）への把持動作を行なう把持位置に向けて移動し、把持位置でハンド６４を閉じて、ワークＷ１を把持する（ステップＳ２２５）。そこで、ワーク保持具６８ａをクランプ開動させて、ワークＷ１を解放させる（ステップＳ２２６）。続いて、ハンド６４を上方へ移動して、ワークＷ１をワーク保持具６８ａから取り出す。このとき、ワーク保持具６８ａに対してハンド６４を、干渉を回避するように低速で斜め上方へ移動した後、速度を上げてさらに上方にワークＷ１を持ち上げる（ステップＳ２２７）。
【００９２】
次に、ロボット６２のアームを旋回して、ワークＷ１（素材ワークＷ）を把持したハンド６４を加工機械７０の正面に移動する（ステップＳ２２８）。次いで、加工機械７０のドア開口部から、加工機械７０の内部にハンド６４を挿入する。このとき、加工機械７０にハンド６４及びワークＷ１が接触しないように、ロボット６２のアームを真直ぐに伸ばして進入させる（ステップＳ２２９）。続いて、ハンド６４を、加工機械７０のワーク保持具７０ａの保持部（例えば図１１の第１保持部１３２）の手前で一旦停止させた後、低速動作でワーク保持具７０ａにワークＷ１を装着する。その状態で、加工機械７０にワーク保持具７０ａのクランプ（又はチャック）を閉動させて、ワークＷ１を固定的に把持させる（ステップＳ２３０）。
【００９３】
次に、ハンド６４を開いてワークＷ１を解放する（ステップＳ２３１）。次いで、ハンド６４を、低速の干渉回避動作で、ワーク保持具７０ａから僅かに離れた位置に移動する（ステップＳ２３２）。続いて、加工機械７０にハンド６４を接触させないように、ロボット６２のアームを真直ぐに伸ばして、加工機械７０からドア開口部を通してハンド６４を引き出す（ステップＳ２３３）。そして、ディジタル信号入出力回路９８を介して、加工機械７０に対し、「ワークＷ１の加工開始」のディジタル信号を出力する（ステップＳ２３４）。
【００９４】
次に、ハンド６４を、仮置台６８のワーク保持具６８ｂの真上に移動する（ステップＳ２３５）。次いで、ハンド６４を、ワーク保持具６８ｂに保持されたワークＷ１（加工済ワークＷ′）への把持動作を行なう把持位置に向けて移動し、把持位置でハンド６４を閉じて、ワークＷ１を把持する（ステップＳ２３６）。そこで、ワーク保持具６８ｂをクランプ開動させて、ワークＷ１を解放させる（ステップＳ２３７）。続いて、ハンド６４を上方へ移動して、ワークＷ１をワーク保持具６８ｂから取り出す。このとき、ワーク保持具６８ｂに対してハンド６４を、干渉を回避するように低速で斜め上方へ移動した後、速度を上げてさらに上方にワークＷ１を持ち上げる（ステップＳ２３８）。
【００９５】
次に、ロボット６２のアームを右旋回させるとともに、走行軸６６を起動して、パレットＰ３の正面にロボット６２を移動させる（ステップＳ２３９）。次いで、ワークＷ１（加工済ワークＷ′）を把持したハンド６４を、パレットＰ３の真上に移動する（ステップＳ２４０）。続いて、ハンド６４を、パレットＰ３上のワークＷ１を載置する置き位置に移動した後、その真下の置き位置に向けて低速で移動して、ワークＷ１をパレットＰ３に載せる（ステップＳ２４１）。
【００９６】
次に、ハンド６４を開いて、ワークＷ１を解放する（ステップＳ２４２）。次いで、ハンド６４を、低速で置き位置の真上に移動した後、速度を上げてさらに上方に移動する（ステップＳ２４３）。最後に、ロボット６２のアームをロボット正面に向けて旋回するとともに、走行軸６６を動作させて、ロボット６２を初期の待機位置に移動する（ステップＳ２４４）。以上で、ワークＷ１（素材ワークＷ及び加工済ワークＷ′）に対する作業プログラム１０６が終了する。
【００９７】
上記したワーク搬送作業を統御する作業プログラム１０６（１０８）を作成するための、ロボットプログラミング装置６０で実行される本発明の一実施形態によるロボットプログラミング方法を、以下に具体的に説明する。なお、ロボットプログラミング装置６０は、図１〜図６に示すロボットプログラミング装置１０におけるワーク特徴取得部１４、保持具位置取得部１８、ハンド位置取得部２２、既得データ検索部２８、プログラム生成部３２、動作パターン取得部３６、指先形状取得部４０、ハンド図面取得部４４、保持具図面取得部４８及びワーク形状取得部５２の機能を有するＣＰＵ（図示せず）を備えている。また、ハードディスク装置１２０が、図１〜図６に示すロボットプログラミング装置１０における記憶部２４を構成する。
【００９８】
ロボットプログラミング装置６０は、作業プログラム定義データ１２２１及び作業部位定義データ１２４１（いずれもハードディスク装置１２０に格納）を使用して、ワークＷ１のための作業プログラム１０６を作成し、作業プログラム定義データ１２２２及び作業部位定義データ１２４２（いずれもハードディスク装置１２０に格納）を使用して、ワークＷ２のための作業プログラム１０８を作成する。１つの具体例として、ハードディスク装置１２０に格納される作業プログラム定義データ１２２１において、前述したステップＳ２１２〜Ｓ２１８の動作は、以下のように記述される。
【００９９】
１：カクジク イチ［１］ １００％ ナメラカ１００
２：タイキ ％Ｍａｃｈｉｎｅ．ＤｏｏｒＯｐｅｎ％＝オン
３：チョクセン ％Ｍａｃｈｉｎｅ．ＥｎｔｅｒＰｏｓ％ １０００ｍｍ／ｓｅｃ イチギメ
４：チョクセン ％Ｗｏｒｋ．ＡｐｐｒｏａｃｈＰｏｓ％ ５００ｍｍ／ｓｅｃ イチギメ
５：チョクセン ％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％ ２００ｍｍ／ｓｅｃ イチギメ
６：％Ｒｏｂｏｔ．Ｈａｎｄ．Ｇｒｉｐ％＝オン
７：タイキ ％Ｒｏｂｏｔ．Ｈａｎｄ．ＧｒｉｐＤｏｎｅ％＝オン
８：％Ｍａｃｈｉｎｅ．Ｆｉｘｔｕｒｅ．Ｒｅｌｅａｓｅ％＝オン
９：タイキ ％Ｍａｃｈｉｎｅ．Ｆｉｘｔｕｒｅ．ＲｅｌｅａｓｅＤｏｎｅ％＝オン
１０：チョクセン ％Ｗｏｒｋ．ＲｅｔｒｉｅｖｅＰｏｓ％ ２００ｍｍ／ｓｅｃ イチギメ
１１：チョクセン ％Ｍａｃｈｉｎｅ．ＥｘｉｔＰｏｓ％ １０００ｍｍ／ｓｅｃ イチギメ
１２：イチ［１］｛Ｘ＝１６８８．４０ｍｍ，Ｙ＝３０．３０ｍｍ，Ｚ＝１３３１．４５ｍｍ，Ｗ＝６４．６２ｄｅｇ，Ｐ＝−８５．６０ｄｅｇ，Ｒ＝１１６．３５ｄｅｇ｝；
【０１００】
各行（冒頭の数字は行番号）において、一対の％で挟まれた部分は変数であり、作業プログラム定義データにおいては未定義のデータである。これら変数のうち、「Ｗｏｒｋ」を含むものはワークＷ１に関連した変数であり、「Ｒｏｂｏｔ．Ｈａｎｄ」を含むものはロボット６２のハンド６４に関連した変数であり、「Ｍａｃｈｉｎｅ」及び「Ｍａｃｈｉｎｅ．Ｆｉｘｔｕｒｅ」を含むものはそれぞれ加工機械７０及びワーク保持具７０ａに関連した変数である。そして、ワークＷ１及び加工機械７０に関連する位置及び姿勢を示す変数が、「ＡｐｐｒｏａｃｈＰｏｓ」、「ＧｒｉｐＰｏｓ」、「ＲｅｔｒｉｅｖｅＰｏｓ」、「ＥｎｔｅｒＰｏｓ」、「ＥｘｉｔＰｏｓ」で記述されている。また、ハンド６４及び加工機械７０（及びワーク保持具７０ａ）に対する制御信号を示す変数が、「Ｇｒｉｐ」、「ＧｒｉｐＤｏｎｅ」、「ＤｏｏｒＯｐｅｎ」、「Ｒｅｌｅａｓｅ」、「ＲｅｌｅａｓｅＤｏｎｅ」で記述されている。
【０１０１】
各行の記述の意味は、下記の通りである。
第１行は、ステップＳ２１２の定義データである。加工機械７０のドア正面の位置であるイチ［１］に、ロボット６２を移動する動作を定義する。
【０１０２】
第２行及び第３行は、ステップＳ２１３の定義データである。ディジタル信号入出力ケーブル１１２を通してディジタル信号入出力回路９８に送信される加工機械７０のドア開閉状態を示すディジタル入力信号％Ｍａｃｈｉｎｅ．ＤｏｏｒＯｐｅｎ％を参照し、この信号がドア開放を表すオン状態になるまで、ロボット６２をドア正面の位置で待機させる。次いで、加工機械７０の内部に侵入する位置％Ｍａｃｈｉｎｅ．ＥｎｔｅｒＰｏｓ％に、ロボットを移動する。
【０１０３】
第４行及び第５行は、ステップＳ２１４の定義データである。ロボット６２のハンド６４を、ワークＷ１（加工済ワークＷ′）の把持位置の少し手前の位置％Ｗｏｒｋ．ＡｐｐｒｏａｃｈＰｏｓ％に移動した後、把持位置％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％に移動する。
【０１０４】
第６行及び第７行は、ステップＳ２１５の定義データである。ロボット６２のハンド６４を閉じる指令を表すディジタル出力信号％Ｒｏｂｏｔ．Ｈａｎｄ．Ｇｒｉｐ％をオンし、このオン信号を、ディジタル信号入出力回路９８及びディジタル信号入出力ケーブル１１４を介してロボット６２に送り、ハンド６４を閉じる。さらに、ハンド６４に装備した近接センサや接触スイッチにより、ハンド６４が正しく閉じたか否かを検出し、センサやスイッチの状態を表すディジタル入力信号％Ｒｏｂｏｔ．Ｈａｎｄ．ＧｒｉｐＤｏｎｅ％を参照することで、ハンド６４が正常に閉じてワークＷ１を把持したことを確認する。
【０１０５】
第８行及び第９行は、ステップＳ２１６の定義データである。加工機械７０のワーク保持具７０ａのクランプ（又はチャック）を開動させる指令を表すディジタル出力信号％Ｍａｃｈｉｎｅ．Ｆｉｘｔｕｒｅ．Ｒｅｌｅａｓｅ％をオンし、このオン信号を加工機械７０に送ってワーク保持具７０ａを開動させる。さらに、ワーク保持具７０ａに装備した近接センサや接触スイッチにより、ワーク保持具７０ａが正しく開いたか否かを検出し、センサやスイッチの状態を表すディジタル入力信号％Ｍａｃｈｉｎｅ．Ｆｉｘｔｕｒｅ．ＲｅｌｅａｓｅＤｏｎｅ％を参照することで、ワーク保持具７０ａが正常に開いてワークＷ１を解放したことを確認する。
【０１０６】
第１０行は、ステップＳ２１７の定義データである。ワークＷ１の把持位置から少し離れた位置％Ｗｏｒｋ．ＲｅｔｒｉｅｖｅＰｏｓ％にハンド６４を移動することで、ワークＷ１をワーク保持具７０ａから取り外す。
【０１０７】
第１１行は、ステップＳ２１８の定義データである。ハンド６４を、加工機械７０の内部から引き出すための位置％Ｍａｃｈｉｎｅ．ＥｘｉｔＰｏｓ％に移動する。
第１２行は、第１行のイチ［１］の具体的データを記述する。このデータは、ワークの種類（形状）が変更されても常に同一の値に設定されるから、予め作業プログラム定義データ１２２１に記述される。
【０１０８】
作業部位定義データ１２４１は、上記した作業プログラム定義データ１２２１の個々の変数に代入されるべき位置及び姿勢のデータ並びに制御信号を記述する。ここで、位置及び姿勢のデータは、ロボット６２に教示される空間上の点を示すものであって、生産システム内の基準となる１つの直交座標系（例えばワールド座標系）において位置を表すＸ、Ｙ、Ｚ値及び姿勢を表すＷ（ヨー）、Ｐ（ピッチ）、Ｒ（ロール）値を含む。作業部位定義データ１２４１の一例を、下記に示す。
【０１０９】
％Ｗｏｒｋ．ＡｐｐｒｏａｃｈＰｏｓ％｛Ｘ＝１２４１．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝９００．０７ｍｍ，Ｗ＝１５．２４ｄｅｇ，Ｐ＝−９０．４０ｄｅｇ，Ｒ＝１３０．０８ｄｅｇ｝；
％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％｛Ｘ＝１３４１．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝８９０．０７ｍｍ，Ｗ＝１５．２４ｄｅｇ，Ｐ＝−９０．４０ｄｅｇ，Ｒ＝１３０．０８ｄｅｇ｝；
％Ｗｏｒｋ．ＲｅｔｒｉｅｖｅＰｏｓ％｛Ｘ＝１２４１．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝９９０．０７ｍｍ，Ｗ＝１５．２４ｄｅｇ，Ｐ＝−９０．４０ｄｅｇ，Ｒ＝１３０．０８ｄｅｇ｝；
％Ｍａｃｈｉｎｅ．ＥｎｔｅｒＰｏｓ％｛Ｘ＝１６７９．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝１２００．０５ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ｝；
％Ｍａｃｈｉｎｅ．ＥｘｉｔＰｏｓ％｛Ｘ＝１６７９．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝１２００．０５ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ｝；
％Ｍａｃｈｉｎｅ．ＤｏｏｒＯｐｅｎ％＝ＳＤＩ［１］；
％Ｍａｃｈｉｎｅ．Ｆｉｘｔｕｒｅ．Ｒｅｌｅａｓｅ％＝ＳＤＯ［１］；
％Ｍａｃｈｉｎｅ．Ｆｉｘｔｕｒｅ．ＲｅｌｅａｓｅＤｏｎｅ％＝ＳＤＩ［２］；
％Ｒｏｂｏｔ．Ｈａｎｄ．Ｇｒｉｐ％＝ＲＤＯ［１］；
％Ｒｏｂｏｔ．Ｈａｎｄ．ＧｒｉｐＤｏｎｅ％＝ＲＤＩ［１］；
【０１１０】
ロボットプログラミング装置６０は、上記した作業プログラム定義データ１２２１の個々の変数を、作業部位定義データ１２４１によって決定することにより、ワークＷ１のための下記の作業プログラム１０６を作成する。
【０１１１】
１：カクジク イチ［１］ １００％ ナメラカ１００
２：タイキ ＳＤＩ［１］＝オン
３：チョクセン イチ［２］ １０００ｍｍ／ｓｅｃ イチギメ
４：チョクセン イチ［３］ ５００ｍｍ／ｓｅｃ イチギメ
５：チョクセン イチ［４］ ２００ｍｍ／ｓｅｃ イチギメ
６：ＲＤＯ［１］＝オン
７：タイキ ＲＤＩ［１］＝オン
８：ＳＤＯ［１］＝オン
９：タイキ ＳＤＩ［２］＝オン
１０：チョクセン イチ［５］ ２００ｍｍ／ｓｅｃ イチギメ
１１：チョクセン イチ［６］ １０００ｍｍ／ｓｅｃ イチギメ
１２：イチ［１］｛Ｘ＝１６８８．４０ｍｍ，Ｙ＝３０．３０ｍｍ，Ｚ＝１３３１．４５ｍｍ，Ｗ＝６４．６２ｄｅｇ，Ｐ＝−８５．６０ｄｅｇ，Ｒ＝１１６．３５ｄｅｇ｝；
１３：イチ［２］｛Ｘ＝１６７９．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝１２００．０５ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ｝；
１４：イチ［３］｛Ｘ＝１２４１．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝９００．０７ｍｍ，Ｗ＝１５．２４ｄｅｇ，Ｐ＝−９０．４０ｄｅｇ，Ｒ＝１３０．０８ｄｅｇ｝；
１５：イチ［４］｛Ｘ＝１３４１．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝８９０．０７ｍｍ，Ｗ＝１５．２４ｄｅｇ，Ｐ＝−９０．４０ｄｅｇ，Ｒ＝１３０．０８ｄｅｇ｝；
１６：イチ［５］｛Ｘ＝１２４１．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝９９０．０７ｍｍ，Ｗ＝１５．２４ｄｅｇ，Ｐ＝−９０．４０ｄｅｇ，Ｒ＝１３０．０８ｄｅｇ｝；
１７：イチ［６］｛Ｘ＝１６７９．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝１２００．０５ｍｍ，Ｗ＝２９．１８ｄｅｇ，Ｐ＝−８８．６９ｄｅｇ，Ｒ＝１５０．２１ｄｅｇ｝；
【０１１２】
ロボットプログラミング装置６０において、作業部位定義データ１２４１は、以下のようにして用意される。
上記した作業部位定義データ１２４１で定義される％Ｍａｃｈｉｎｅ．ＤｏｏｒＯｐｅｎ％、％Ｍａｃｈｉｎｅ．Ｆｉｘｔｕｒｅ．Ｒｅｌｅａｓｅ％、％Ｍａｃｈｉｎｅ．Ｆｉｘｔｕｒｅ．ＲｅｌｅａｓｅＤｏｎｅ％、％Ｒｏｂｏｔ．Ｈａｎｄ．Ｇｒｉｐ％、％Ｒｏｂｏｔ．Ｈａｎｄ．ＧｒｉｐＤｏｎｅ％（いずれも制御信号の状態を記述する）は、加工機械７０のための信号ケーブル１１２及びロボット６２のハンド６４のための信号ケーブル１１４と、制御装置７６のディジタル信号入出力回路９８との接続形態に対応して、信号番号が決まるものであり、したがって、ロボット６２を含む生産システムの構築時に設定される。また、作業部位定義データ１２４１で定義される％Ｍａｃｈｉｎｅ．ＥｎｔｅｒＰｏｓ％及び％Ｍａｃｈｉｎｅ．ＥｘｉｔＰｏｓ％（加工機械７０に対しワークＷ１を出し入れする位置及び姿勢を記述する）も、生産システムの構築時に、ロボット６２と加工機械７０との相互の位置関係が確定することにより設定される。
【０１１３】
したがって、作業部位定義データ１２４１においては、％Ｗｏｒｋ．ＡｐｐｒｏａｃｈＰｏｓ％、％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％、％Ｗｏｒｋ．ＲｅｔｒｉｅｖｅＰｏｓ％の３つの変数に代入するデータより、ハンド６４がワークＷ１を搬送する動作が規定される。これら３つの変数は、ハンド６４がワークＷ１を把持する把持位置を基準として、この基準位置（把持位置）に対する相対位置のデータで、それぞれ表すことができる。そして、基準となる把持位置（すなわち座標系における絶対位置）を表す変数が、％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％であるから、これら３つの変数は、下記のように表すことができる。
【０１１４】
％Ｗｏｒｋ．ＡｐｐｒｏａｃｈＰｏｓ％＝％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％＋％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ．Ｎｏｄｅ１％
％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％＝％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％＋％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ．Ｎｏｄｅ２％
％Ｗｏｒｋ．ＲｅｔｒｉｅｖｅＰｏｓ％＝％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％＋％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ．Ｎｏｄｅ３％
【０１１５】
ここで、％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ．Ｎｏｄｅ１％、％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ．Ｎｏｄｅ２％、％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ．Ｎｏｄｅ３％は、ロボット６２がハンド６４でワークＷ１を搬送するための動作を、把持位置（絶対位置）を基準とする相対的な位置及び姿勢のデータで表現するための変数であって、本出願で「動作パターン」と称する（％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ％と総称する）。上記変数％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％、％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ．Ｎｏｄｅ１％、％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ．Ｎｏｄｅ２％、％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ．Ｎｏｄｅ３％に代入される位置及び姿勢のデータの一例を、下記に示す。
【０１１６】
％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％｛Ｘ＝１３４１．５１ｍｍ，Ｙ＝−１７．９１ｍｍ，Ｚ＝８９０．０７ｍｍ，Ｗ＝１５．２４ｄｅｇ，Ｐ＝−９０．４０ｄｅｇ，Ｒ＝１３０．０８ｄｅｇ｝；
％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ．Ｎｏｄｅ１％｛Ｘ＝−１００．００ｍｍ，Ｙ＝０．００ｍｍ，Ｚ＝１０．００ｍｍ，Ｗ＝０．００ｄｅｇ，Ｐ＝０．００ｄｅｇ，Ｒ＝０．００ｄｅｇ｝；
％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ．Ｎｏｄｅ２％｛Ｘ＝０．００ｍｍ，Ｙ＝０．００ｍｍ，Ｚ＝０．００ｍｍ，Ｗ＝０．００ｄｅｇ，Ｐ＝０．００ｄｅｇ，Ｒ＝０．００ｄｅｇ｝；
％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ．Ｎｏｄｅ３％｛Ｘ＝−１００．００ｍｍ，Ｙ＝０．００ｍｍ，Ｚ＝１００．００ｍｍ，Ｗ＝０．００ｄｅｇ，Ｐ＝０．００ｄｅｇ，Ｒ＝０．００ｄｅｇ｝；
【０１１７】
上記データを記述する動作パターン％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ％は、位置％Ｗｏｒｋ．ＡｐｐｒｏａｃｈＰｏｓ％から把持位置％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％に向かって、Ｘ方向に１００ｍｍ、Ｚ方向に−１０ｍｍ移動し、把持位置％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％でワークＷ１を把持した後に、位置％Ｗｏｒｋ．ＲｅｔｒｉｅｖｅＰｏｓ％に向かって、Ｘ方向に−１００ｍｍ、Ｚ方向に１００ｍｍ移動するという、ロボット６２の動作を規定している。
【０１１８】
このように、ロボット６２がハンド６４でワークＷ１を把持して搬送する動作は、ロボット６２の動作パターン％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ％と、ハンド６４がワークＷ１を把持する把持位置（絶対位置）％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％とによって、定義できる。さらに、把持位置％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％は、ワークＷ１が加工機械７０のワーク保持具７０ａに保持されているときの保持位置を基準として、この基準位置（保持位置）に対する相対位置のデータで、下記のように表すことができる。
【０１１９】
％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％＝％Ｗｏｒｋ．ＢａｓｅＰｏｓ％＋％Ｗｏｒｋ．ＧｒｉｐＯｆｆｓｅｔ％
【０１２０】
ここで、％Ｗｏｒｋ．ＢａｓｅＰｏｓ％は、ワーク保持具７０ａ上でのワークＷ１の保持位置（座標系における絶対位置）を位置及び姿勢のデータで表現するための変数であり、％Ｗｏｒｋ．ＧｒｉｐＯｆｆｓｅｔ％は、ハンド６４がワークＷ１を把持する把持位置を、保持位置を基準とする相対的な位置及び姿勢のデータで表現するための変数である。これら変数に代入される値の一例を、下記に示す。
【０１２１】
％Ｗｏｒｋ．ＢａｓｅＰｏｓ％｛Ｘ＝１２４１．５１ｍｍ，Ｙ＝−１１７．９１ｍｍ，Ｚ＝３９０．０７ｍｍ，Ｗ＝０．００ｄｅｇ，Ｐ＝０．００ｄｅｇ，Ｒ＝０．００ｄｅｇ｝
％Ｗｏｒｋ．ＧｒｉｐＯｆｆｓｅｔ％｛Ｘ＝１００．００ｍｍ，Ｙ＝１００．００ｍｍ，Ｚ＝５００．００ｍｍ，Ｗ＝１５．２４ｄｅｇ，Ｐ＝−９０．４０ｄｅｇ，Ｒ＝１３０．０８ｄｅｇ｝；
【０１２２】
さらに、ワークＷ１の保持位置％Ｗｏｒｋ．ＢａｓｅＰｏｓ％は、加工機械７０に装備されるワーク保持具７０ａの設置位置を基準として、この基準位置（設置位置）に対する相対位置のデータで、下記のように表すことができる。
【０１２３】
％Ｗｏｒｋ．ＢａｓｅＰｏｓ％＝％Ｍａｃｈｉｎｅ．Ｆｉｘｔｕｒｅ．ＢａｓｅＰｏｓ％＋％Ｗｏｒｋ．ＦｉｘＯｆｆｓｅｔ％
【０１２４】
ここで、％Ｍａｃｈｉｎｅ．Ｆｉｘｔｕｒｅ．ＢａｓｅＰｏｓ％は、加工機械７０内でのワーク保持具７０ａの設置位置（座標系における絶対位置）を位置及び姿勢のデータで表現するための変数であり、％Ｗｏｒｋ．ＦｉｘＯｆｆｓｅｔ％は、ワーク保持具７０ａ上でのワークＷ１の保持位置を、設置位置を基準とする相対的な位置及び姿勢のデータで表現するための変数である。これら変数のうち、％Ｍａｃｈｉｎｅ．Ｆｉｘｔｕｒｅ．ＢａｓｅＰｏｓ％は、加工機械７０の内部にワーク保持具７０ａを搭載することにより決まるものであり、生産システムの構築時に設定される。これら変数に代入される値の一例を、下記に示す。
【０１２５】
％Ｍａｃｈｉｎｅ．Ｆｉｘｔｕｒｅ．ＢａｓｅＰｏｓ％｛Ｘ＝１２４１．００ｍｍ，Ｙ＝−１１７．００ｍｍ，Ｚ＝２４０．００ｍｍ，Ｗ＝０．００ｄｅｇ，Ｐ＝０．００ｄｅｇ，Ｒ＝０．００ｄｅｇ｝
％Ｗｏｒｋ．ＦｉｘＯｆｆｓｅｔ％｛Ｘ＝０．５１ｍｍ，Ｙ＝−０．９１ｍｍ，Ｚ＝１５０．０７ｍｍ，Ｗ＝０．００ｄｅｇ，Ｐ＝０．００ｄｅｇ，Ｒ＝０．００ｄｅｇ｝；
【０１２６】
このように、ロボット６２がハンド６４でワークＷ１を把持して搬送する動作は、ロボット６２の動作パターン％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ％と、ハンド６４がワークＷ１を把持する把持位置（相対位置）％Ｗｏｒｋ．ＧｒｉｐＯｆｆｓｅｔ％と、ワーク保持具７０ａがワークＷ１を保持する保持位置（相対位置）％Ｗｏｒｋ．ＦｉｘＯｆｆｓｅｔ％と、生産システムの構築時にロボット６２、加工機械７０及びワーク保持具７０ａの相互の位置関係によって設定される他の既知データ（絶対位置及び制御信号）とによって確定される。したがって、新規ワークの導入時に新規ワークに対するロボットの搬送動作を決定するためには、％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ％、％Ｗｏｒｋ．ＧｒｉｐＯｆｆｓｅｔ％、％Ｗｏｒｋ．ＦｉｘＯｆｆｓｅｔ％の３つの変数を特定すればよいことになる。
【０１２７】
ロボットプログラミング装置６０において、ロボット６２の動作パターン％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ％と、ハンド６４とワークＷ１との相対位置％Ｗｏｒｋ．ＧｒｉｐＯｆｆｓｅｔ％と、ワーク保持具７０ａとワークＷ１との相対位置％Ｗｏｒｋ．ＦｉｘＯｆｆｓｅｔ％とは、例えば下記のようにして取得される。
【０１２８】
ロボットプログラミング装置６０は、例えば３Ｄ−ＣＡＤのような、３次元形状データの作成機能を有するものとする。この場合、ワークＷ１、Ｗ２、ロボット６２のハンド６４、ハンド６４の指１４４（図１２）、仮置台６８のワーク保持具６８ａ、６８ｂ、加工機械７０のワーク保持具７０ａ等の、３次元形状（図面）データを、ロボットプログラミング装置６０が作成して、ハードディスク装置１２０に格納しておくことができる。さらにロボットプログラミング装置６０は、複数の３次元形状データを組み合わせて１つの３次元仮想空間に適当に配置する機能により、ハードディスク装置１２０内にワーク図面データ１２６１、１２６２を作成することができる。このワーク図面データ１２６１、１２６２は、例えば図１２に示すものであって、ハンド６４の指先１４６の形状データ、ハンド６４の設計図面データ、加工機械７０のワーク保持具７０ａの設計図面データ、ワークＷ１、Ｗ２の形状データを含むことができる。
【０１２９】
オペレータは、例えば図１２の仮想空間において、ワークＷ１を、ワーク保持具７０ａに固定的に取り付けられる位置に配置し、ハンド６４の指１４４を、ハンド６４に装着される位置に配置し、ハンド６４及び指１４４を、ワークＷ１を把持する位置に配置する。このとき、ハンド６４及び指１４４は、ワークＷ１を把持する前の位置、把持するときの位置、把持した後のワーク保持具７０ａから離反した位置等の、幾つかの異なる位置（すなわち教示点）に配置する。これにより、ワークＷ１を把持して搬送するロボット６２の動作パターンが指定される。なお、図１２に示すワーク図面データ１２６１では、未加工の素材ワークＷと、第１工程の加工が完了して第２工程の加工が行われる前の加工済（半加工）ワークＷ′との、２つの異なる加工段階のワークＷ、Ｗ′の形状データが入力され、表示されている。
【０１３０】
オペレータは、例えば図１２に示す仮想空間に、ハンド６４、指１４４、指先１４６、ワーク保持具７０ａ及びワークＷ１の３次元形状データを、実際の生産システムに対応させて配置することで、ワークＷ１とワーク保持具７０ａとの相対的な位置及び姿勢を入力する。また、同仮想空間内で、ハンド６４の指１４４にワークＷ１を把持させることで、ワークＷ１と指１４４及び指１４４とハンド６４（基部１４２）との相対的な位置及び姿勢を入力する。さらに、同仮想空間内で、ハンド６４の指１４４をワークＷ１に接近させ、指１４４にワークＷ１を把持させ、ハンド６４にワークＷ１を持ち上げさせるように動作させることで、各教示点でのワークＷ１とハンド６４との相対的な位置及び姿勢のデータを用いて、ロボット６２の動作パターンを入力する。
【０１３１】
図１２の構成例では、ハンド６４の指１４４を交換又は増減することができる。この場合、ワークＷ１とハンド６４との相対的な位置及び姿勢のデータは、ワークＷ１と指１４４との相対的な位置及び姿勢のデータ、並びに指１４４とハンド６４（基部１４２）との相対的な位置及び姿勢のデータによって表される。このようにして用意されたワーク図面データ１２６１は、ワークＷ１とワーク保持具７０ａとの相対的な位置及び姿勢のデータ、ワークＷ１とハンド６４との相対的な位置及び姿勢のデータ、ロボット６２の動作パターン、ハンド６４の３次元形状（図面）データ、ハンド６４の指先１４６の３次元形状（図面）データ、並びにワーク保持具７０ａの３次元形状（図面）データを含んでいる。ロボットプログラミング装置６０は、ハードディスク装置１２０内のワーク図面データ１２６１から、これらデータを個別に取得することができる。
【０１３２】
ロボットプログラミング装置６０は、例えば作業プログラム１０６を作成する際に、まずワーク図面データ１２６１から、ワークＷ１とワーク保持具７０ａとの相対的な位置及び姿勢のデータを取得して、前述した変数％Ｗｏｒｋ．ＦｉｘＯｆｆｓｅｔ％の値とし、また、ワークＷ１とハンド６４との相対的な位置及び姿勢のデータを取得して、前述した変数％Ｗｏｒｋ．ＧｒｉｐＯｆｆｓｅｔ％の値とし、また、ワークＷ１とハンド６４との相対的な位置及び姿勢のデータを複数個組み合わせて表されるロボット６２の動作パターンのデータを取得して、前述した変数％Ｗｏｒｋ．ＧｒｉｐＰａｔｈ％の値とする。これにより、作業部位定義データ１２４１における前述した未知の変数％Ｗｏｒｋ．ＡｐｐｒｏａｃｈＰｏｓ％、％Ｗｏｒｋ．ＧｒｉｐＰｏｓ％、％Ｗｏｒｋ．ＲｅｔｒｉｅｖｅＰｏｓ％が決定する。さらにロボットプログラミング装置６０は、作業部位定義データ１２４１における前述した既知の変数の値を、作業プログラム定義データ１２２１に代入する。このようにして、作業プログラム１０６が作成される。
【０１３３】
ロボットプログラミング装置６０は、図１〜図６のロボットプログラミング装置１０に関連して説明したように、既存のワークＷ１、Ｗ２の３次元形状データから取得したワーク特徴情報と、作業プログラム１０６、１０８の作成時に使用した作業プログラム定義データ１２２１、１２２２、作業部位定義データ１２４１、１２４２、及びワーク図面データ１２６１、１２６２とを互いに関連付けて、複数組の既得データとしてハードディスク装置１２０に記憶する。そして、生産システムに新規ワークが導入されるときに、新規ワークの３次元形状データから得た新規ワーク特徴情報を用いて、新規ワークに対する形状特徴の合致度が最も高いワークＷ１、Ｗ２に関する最適既得データを、複数組の既得データからワーク特徴情報１２をキーワードとして検索し、この最適既得データを用いて、新規ワークのための搬送作業プログラムを作成する。
【０１３４】
ワークＷ１、Ｗ２の３次元形状データからワーク特徴情報を取得する方法として、下記のような画像処理による特徴抽出方法を採用できる。なお、ワークＷ１、Ｗ２の３次元形状データは、３Ｄ−ＣＡＤ図面等から得られたワーク図面データ１２６１、１２６２に限らず、カメラ８０で撮影したデータを画像処理装置１２８が処理することにより得られたワーク画像データ１３０１、１３０２であってもよい。
【０１３５】
この特徴抽出方法では、まず、ワーク図面データ１２６１、１２６２又はワーク画像データ１３０１、１３０２から、ワークＷ１、Ｗ２の輪郭線を抽出する。ワーク図面データ１２６１、１２６２では、ワークＷ１、Ｗ２の輪郭線が明確であるから、輪郭線を容易に抽出できる。他方、ワーク画像データ１３０１、１３０２を用いる場合には、画像内で急激な輝度変化が生じている部位を、輪郭線として抽出する。次に、抽出した輪郭線の情報から、ワークＷ１、Ｗ２の形状を特定する手掛かりとなる頂点及び線分を抽出する。次いで、抽出した頂点及び線分の情報から、それら頂点及び線分によって構成できる面を抽出し、さらに、抽出した面によって構成できる基本立体（直方体、円柱、円錐、球体等）を抽出する。そして、抽出した基本立体の集合体として、ワークＷ１、Ｗ２のソリッドモデルを表現する。
【０１３６】
基本立体の集合体により表現されたワークＷ１、Ｗ２のソリッドモデルは、例えばＣＳＧ（Ｃｏｎｓｔｒｕｃｔｉｖｅ  Ｓｏｌｉｄ  Ｇｅｏｍｅｔｒｙ）モデルと称される。図１６に例示するワークＷ１のＣＳＧモデルは、ワーク図面データ１２６１又はワーク画像データ１３０１から２つの八角柱及び１つの円柱を検出して、それら基本立体を和及び差の演算により組み合わせたものである。八角柱は、底面を形成する八角形の中心座標、この中心座標から個々の角部までの距離、柱の延びる方向、及び柱の高さをパラメータとして、詳細に表現できる。また円柱は、底面を形成する円の中心座標、半径、柱の延びる方向、及び柱の高さをパラメータとして、詳細に表現できる。したがってこれらのパラメータを、ワーク図面データ１２６１又はワーク画像データ１３０１から抽出すればよい。
【０１３７】
このようなＣＳＧモデルを用いる特徴抽出方法によれば、元のワーク図面データ１２６１、１２６２又はワーク画像データ１３０１、１３０２におけるワークＷ１、Ｗ２の描画方向に関わらず、ワークＷ１、Ｗ２を構成する基本立体（すなわちワーク特徴情報）をキーワードとして、形状特徴の合致度を判断できる。また、幾何学的相似形のワーク同士であっても、形状特徴の合致度を判断できる。
【０１３８】
ここで、本発明に係るロボットプログラミング装置１０（６０）は、ワーク特徴取得部１４が、ワーク特徴情報１２として、ワークの形状の変化を時系列的に表すワーク形状遷移情報１２Ｔ（図１）を取得し、既得データ検索２８が、新規ワーク特徴情報２６として、新規ワークの形状の変化を時系列的に表す新規ワーク形状遷移情報２６Ｔ（図１）を用いて、最適既得データＳＤを検索するように構成できる。この構成によれば、ワーク搬送作業の途中でワークＷ１、Ｗ２の形状が変化するような工程が介在する搬送作業プログラム３０、１０６、１０８を作成する場合に、最適既得データＳＤの検索精度を著しく向上させることができる。特に、ワーク搬送作業の途中にワークの加工工程が介在する場合には、ワーク形状遷移情報１２Ｔが、ワークの加工前及び加工後を含む複数の異なる段階における幾何学的特徴を表すものとすることにより、加工による同一ワークの形状変化を正確に表すワーク形状遷移情報１２Ｔをキーワードとして、最適既得データＳＤを高精度に検索することができる。
【０１３９】
例えば、図１７に示すように、素材ワークＷに対して第１工程及び第２工程を施すことで完成品Ｗ″に至る加工工程が、ワークＷ１の搬送作業の途中に介在する場合には、加工前の素材ワークＷ、第１工程完了後の中間ワークＷ′、第２工程完了後の完成ワークＷ″の３段階におけるそれぞれの３次元形状データを用意して、それら個々の段階の３次元形状データから上記手法でワーク特徴情報を抽出することができる。図示の例では、ワークＷ１のＣＳＧモデルとして、素材ワークＷを表現する直方体（Ｂｌｏｃｋ）と、中間ワークＷ′を表現する八角柱（Ｐｒｉｓｍ１）と、完成ワークＷ″を表現する基本立体の組み合わせ（Ｐｒｉｓｍ２＋Ｐｒｉｓｍ３−Ｃｙｌｉｎｄｅｒ）とが、それぞれの３次元形状データから抽出されている。さらに、第１工程の内容（すなわち素材ワークＷから中間ワークＷ′への遷移）が、直方体（Ｂｌｏｃｋ）から４つの楔形（Ｗｅｄｇｅ）を差し引いて八角柱（Ｐｒｉｓｍ１）を得ることを示すＣＳＧモデルにより表現されている。同様に、第２工程の内容（すなわち中間ワークＷ′から完成ワークＷ″への遷移）が、八角柱（Ｐｒｉｓｍ１）から８つの楔形（Ｗｅｄｇｅ）と１つの円柱（Ｃｙｌｉｎｄｅｒ）とを差し引いて最終形状（Ｐｒｉｓｍ２＋Ｐｒｉｓｍ３−Ｃｙｌｉｎｄｅｒ）を得ることを示すＣＳＧモデルにより表現されている。
【０１４０】
この例では、ロボットプログラミング装置１０（６０）は、上記した素材ワークＷ、中間ワークＷ′、完成ワークＷ″、第１工程及び第２工程の、それぞれを表現するＣＧＳモデル（ワーク形状遷移情報１２Ｔ）を全て、既得データＤのキーワードとなるワーク特徴情報１２として、記憶部２４（ハードディスク装置１２０）に記憶することができる。新規ワークの導入時には、ロボットプログラミング装置１０（６０）は、新規ワークの３次元形状データから同様の手法で抽出した新規ワーク形状遷移情報２６Ｔを用いて、新規ワーク形状遷移情報２６Ｔとの合致度が最も高いワーク形状遷移情報１２Ｔを含む最適既得データＳＤを検索する。そして、記憶部２４（ハードディスク装置１２０）から読み出した最適既得データＳＤを用いて、新規ワークに対する搬送作業を実行するための、ハンド６４、ハンド６４の指１４４、仮置台６８のワーク保持具６８ａ、６８ｂ、加工機械７０のワーク保持具７０ａ、及び搬送作業プログラム３０を作成する。なお、最適既得データＳＤを検索する際には、抽出した複数段階のＣＳＧモデルのうち、所望の段階のＣＳＧモデルのみを指定して検索することや、加工工程中の一部分の作業だけを指定して検索することもできる。
【０１４１】
ワーク特徴情報１２（ワーク形状遷移情報１２Ｔ）と新規ワーク特徴情報２６（新規ワーク形状遷移情報２６Ｔ）との合致度の判断は、例えばファジー推論に基づく曖昧検索により遂行できる。この検索手法では、ＣＳＧモデルを構成する基本立体の種類や数が一致しているか否かを判断するだけでなく、基本立体の種類毎に、合致度を評価するためのメンバーシップ関数が用意される。例えば、基本立体の直方体の合致度を、薄板か否かを判断基準として評価する場合、直方体の６面の中で最大面積の２面を上面及び下面と規定して、上面又は下面の面積と上下面間の距離（すなわち高さ）との比率に合致度を割り当てるメンバーシップ関数を用意する。また、円柱の合致度を、細穴か否かを判断基準として評価する場合には、円柱の底面の半径と高さとの比率に合致度を割り当てるメンバーシップ関数を用意する。このように、１つのＣＳＧモデルにおいて、種々の判断基準に関する合致度をそれぞれに固有のメンバーシップ関数により評価し、それら判断基準の合致度を総合して全体合致度を算出する。そして、新規ワーク特徴情報２６（新規ワーク形状遷移情報２６Ｔ）に対し、このような全体合致度が最も高いワーク特徴情報１２（ワーク形状遷移情報１２Ｔ）を含む既得データＤを、最適既得データＳＤとして特定する。
【０１４２】
実際のところ、生産システムにおいて、加工機械で加工されるワークの種類が変わる場合には、既存ワークに対し幾何学的に類似の範囲にある新規ワークが対象となることが多いので、過去に準備したロボットハンド、ハンドの指、ワーク保持具、搬送作業プログラムを、そのままの内容で再利用できる場合がある。このような場合に、本発明に係るロボットプログラミング装置１０（６０）では、前述したように、オペレータの熟練度に影響されること無く、ワークの３次元形状データから得たワーク特徴情報１２をキーワードとして、新規ワークにとって最適な過去のデータを容易かつ確実に検索することができる。
【０１４３】
過去のデータがそのままの内容では再利用できない場合にも、実績が有る過去のデータを参考できることは非常に有意義である。例えば、特に、過去に搬送作業プログラムを作成したワークに対し、新規ワークが、幾何学的相似形であったり高さや長さのみが異なるものであったりしたときには、図６に関連して説明したように、過去のワークの３次元形状データ５０と新規ワークの３次元形状データ５４との差を算出し、この差により、過去のデータを補正することができる。具体的には、過去に搬送作業プログラムを作成したときに設定した％Ｗｏｒｋ．ＦｉｘＯｆｆｓｅｔ％の値（ワークとワーク保持具との相対的な位置及び姿勢のデータ）及び％Ｗｏｒｋ．ＧｒｉｐＯｆｆｓｅｔ％の値（ワークとハンドとの相対的な位置及び姿勢のデータ）とを、過去のワークの３次元形状データ５０と新規ワークの３次元形状データ５４との差によって補正する。それにより、新規ワークの搬送作業プログラムの作成時に、新たに％Ｗｏｒｋ．ＦｉｘＯｆｆｓｅｔ％及び％Ｗｏｒｋ．ＧｒｉｐＯｆｆｓｅｔ％を入力する必要が無くなる。
【０１４４】
以上の説明から明らかなように、本発明によれば、既存の生産システムに新規ワークを導入する際に、既存ワークに対応したロボットハンド、ハンドの指、ワーク保持具、搬送作業プログラムの諸情報を有効に利用して、新規ワークに対する最適な搬送作業プログラムを、オペレータの熟練を要することなく、少ない工数で容易かつ確実に作成できる。特に、過去のワーク搬送作業に関する既得データの数が十分に多くなれば、新規ワークをロボットに見せるだけで、新規ワークに適した搬送作業プログラムが自動的に作成されるようになり、延いては、ロボットへの搬送作業の教示が不要になる。
【０１４５】
以上、本発明の好適な実施形態を説明したが、ロボットプログラミング装置１０、６０をパーソナルコンピュータで構成できることから、上記実施形態に則して、本発明を下記のように規定することもできる。
すなわち、本発明は、ワーク保持具６８ａ、６８ｂ、７０ａに対するワークＷ１、Ｗ２の取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンド６４を装着したロボット６２に実行させる搬送作業プログラム３０、１０６、１０８を作成するために、コンピュータ１０、６０を、ワークＷ１、Ｗ２の３次元形状データから、ワークＷ１、Ｗ２の幾何学的特徴を表すワーク特徴情報１２を取得するワーク特徴取得部１４、ワークＷ１、Ｗ２をワーク保持具６８ａ、６８ｂ、７０ａに取り付けたときの、ワークＷ１、Ｗ２とワーク保持具６８ａ、６８ｂ、７０ａとの相対位置情報１６を取得する保持具位置取得部１８、ワークＷ１、Ｗ２をハンド６４で把持したときの、ワークＷ１、Ｗ２とハンド６４との相対位置情報２０を取得するハンド位置取得部２２、ワーク特徴取得部１４が取得したワーク特徴情報１２と、保持具位置取得部１８が取得したワークとワーク保持具との相対位置情報１６と、ハンド位置取得部２２が取得したワークとハンドとの相対位置情報２０とを、一組の既得データＤとして互いに関連付けて、複数種類のワークＷ１、Ｗ２に関する複数組の既得データＤを記憶する記憶部２４、新規ワークの３次元形状データから得られた新規ワーク特徴情報２６を用いて、記憶部２４に記憶した複数組の既得データＤの中から、新規ワーク特徴情報２６との合致度が最も高いワーク特徴情報１２を含む最適既得データＳＤを検索する既得データ検索部２８、及び既得データ検索部２８が検索した最適既得データＳＤを用いて、新規ワークに対する搬送作業プログラム３０を生成するプログラム生成部３２、として機能させるためのロボットプログラミング用プログラムである。
【０１４６】
また、本発明は、ワーク保持具６８ａ、６８ｂ、７０ａに対するワークＷ１、Ｗ２の取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンド６４を装着したロボット６２に実行させる搬送作業プログラム３０、１０６、１０８を作成するために、コンピュータ１０、６０を、ワークＷ１、Ｗ２の３次元形状データから、ワークＷ１、Ｗ２の幾何学的特徴を表すワーク特徴情報１２を取得するワーク特徴取得部１４、ワークＷ１、Ｗ２をワーク保持具６８ａ、６８ｂ、７０ａに取り付けたときの、ワークＷ１、Ｗ２とワーク保持具６８ａ、６８ｂ、７０ａとの相対位置情報１６を取得する保持具位置取得部１８、ワークＷ１、Ｗ２をハンド６４で把持したときの、ワークＷ１、Ｗ２とハンド６４との相対位置情報２０を取得するハンド位置取得部２２、ワーク特徴取得部１４が取得したワーク特徴情報１２と、保持具位置取得部１８が取得したワークとワーク保持具との相対位置情報１６と、ハンド位置取得部２２が取得したワークとハンドとの相対位置情報２０とを、一組の既得データＤとして互いに関連付けて、複数種類のワークＷ１、Ｗ２に関する複数組の既得データＤを記憶する記憶部２４、新規ワークの３次元形状データから得られた新規ワーク特徴情報２６を用いて、記憶部２４に記憶した複数組の既得データＤの中から、新規ワーク特徴情報２６との合致度が最も高いワーク特徴情報１２を含む最適既得データＳＤを検索する既得データ検索部２８、及び既得データ検索部２８が検索した最適既得データＳＤを用いて、新規ワークに対する搬送作業プログラム３０を生成するプログラム生成部３２、として機能させるためのロボットプログラミング用プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【０１４７】
また、本発明は、ワーク保持具６８ａ、６８ｂ、７０ａに対するワークＷ１、Ｗ２の取り付け及び取り外しの少なくとも一方の動作を含むワーク搬送作業を、ハンド６４を装着したロボット６２に実行させる搬送作業プログラム３０、１０６、１０８を、コンピュータ１０、６０を用いて作成するためのロボットプログラミング方法において、ワークＷ１、Ｗ２の３次元形状データから、ワークＷ１、Ｗ２の幾何学的特徴を表すワーク特徴情報１２を、コンピュータ１０、６０のワーク特徴取得部１４が取得するステップと、ワークＷ１、Ｗ２をワーク保持具６８ａ、６８ｂ、７０ａに取り付けたときの、ワークＷ１、Ｗ２とワーク保持具６８ａ、６８ｂ、７０ａとの相対位置情報１６を、コンピュータ１０、６０の保持具位置取得部１８が取得するステップと、ワークＷ１、Ｗ２をハンドで把持したときの、ワークＷ１、Ｗ２とハンド６４との相対位置情報２０を、コンピュータ１０、６０のハンド位置取得部２２が取得するステップと、ワーク特徴取得部１４が取得したワーク特徴情報１２と、保持具位置取得部１８が取得したワークとワーク保持具との相対位置情報１６と、ハンド位置取得部２２が取得したワークとハンドとの相対位置情報２０とを、コンピュータ１０、６０の記憶部２４が、一組の既得データＤとして互いに関連付けて、複数種類のワークＷ１、Ｗ２に関する複数組の既得データＤを記憶するステップと、新規ワークの３次元形状データから得られた新規ワーク特徴情報２６を用いて、記憶部２４に記憶した複数組の既得データＤの中から、新規ワーク特徴情報２６との合致度が最も高いワーク特徴情報１２を含む最適既得ＳＤデータを、コンピュータ１０、６０の既得データ検索部２８が検索するステップと、既得データ検索部２８が検索した最適既得データＳＤを用いて、新規ワークに対する搬送作業プログラム３０を、コンピュータ１０、６０のプログラム生成部３２が生成するステップと、を具備することを特徴とするロボットプログラミング方法である。
【図面の簡単な説明】
【０１４８】
【図１】本発明に係るロボットプログラミング装置の基本構成を示す機能ブロック図である。
【図２】図１のロボットプログラミング装置の第１の発展的構成を示す機能ブロック図である。
【図３】図１のロボットプログラミング装置の第２の発展的構成を示す機能ブロック図である。
【図４】図１のロボットプログラミング装置の第３の発展的構成を示す機能ブロック図である。
【図５】図１のロボットプログラミング装置の第４の発展的構成を示す機能ブロック図である。
【図６】図１のロボットプログラミング装置の第５の発展的構成を示す機能ブロック図である。
【図７】本発明の一実施形態によるロボットプログラミング装置を組み込んだ、ロボットを用いた生産システムの全体概要図である。
【図８】図７の生産システムにおける制御系の構成を示すブロック図である。
【図９】図８の制御系における制御装置のメモリの図である。
【図１０】図８の制御系におけるロボットプログラミング装置のハードディスク装置の図である。
【図１１】図７の生産システムで使用されるワーク保持具の一例を、ワークと共に示す斜視図である。
【図１２】図７の生産システムで使用されるハンドの一例を、ワーク及びワーク保持具と共に示す斜視図である。
【図１３】図７の生産システムにおいてロボットが実行するワーク搬送作業の手順を示すフローチャートである。
【図１４】図７の生産システムにおいてロボットが実行するワーク搬送作業の手順を示すフローチャートである。
【図１５】図７の生産システムにおいてロボットが実行するワーク搬送作業の手順を示すフローチャートである。
【図１６】本発明の一実施形態によるロボットプログラミング方法で用いられるワークのＣＳＧモデルを例示する図である。
【図１７】本発明の一実施形態によるロボットプログラミング方法で用いられるワーク形状遷移情報をＣＳＧモデルで例示する図である。
【符号の説明】
【０１４９】
１０、６０    ロボットプログラミング装置
１２    ワーク特徴情報
１４    ワーク特徴取得部
１６    ワークとワーク保持具との相対位置情報
１８    保持具位置取得部
２０    ワークとハンドとの相対位置情報
２２    ハンド位置取得部
２４    記憶部
２６    新規ワーク特徴情報
２８    既得データ取得部
３０    搬送作業プログラム
３２    プログラム生成部
３４    動作パターン指令値
３６    動作パターン取得部
３８    指先の３次元形状データ
４０    指先形状取得部
４２    ハンドの図面データ
４４    ハンド図面取得部
４６    ワーク保持具の図面データ
４８    保持具図面取得部
５０    ワークの３次元形状データ
５２    ワーク形状取得部
５４    新規ワークの３次元形状データ
６２    ロボット
６４    ハンド
６８    仮置台
６８ａ、６８ｂ、７０ａ    ワーク保持具
７０    加工機械
７６    制御装置
９４    メモリ
１０６、１０８    作業プログラム
１２０    ハードディスク装置
１２２１、１２２２    作業プログラム定義データ
１２４１、１２４２    作業部位定義データ
１２６１、１２６２    ワーク図面データ
【図１】
2008015683.tif 000003
【図２】
2008015683.tif 000004
【図３】
2008015683.tif 000005
【図４】
2008015683.tif 000006
【図５】
2008015683.tif 000007
【図６】
2008015683.tif 000008
【図７】
2008015683.tif 000009
【図８】
2008015683.tif 000010
【図９】
2008015683.tif 000011
【図１０】
2008015683.tif 000012
【図１１】
2008015683.tif 000013
【図１２】
2008015683.tif 000014
【図１３】
2008015683.tif 000015
【図１４】
2008015683.tif 000016
【図１５】
2008015683.tif 000017
【図１６】
2008015683.tif 000018
【図１７】
2008015683.tif 000019