(57)【要約】  移動作業だけでなく、より細かい作業内容も教示できるティーチング装置を提供すること。  ティーチング装置（１０）は、ロボットアームが作業位置において実施するワークを挟む作業等の作業情報（Ｄ３）を入力するための入力部（６７）を備える。ユーザは、マーカー部（４３）を設けた治具（１５）（ロボットアームを模擬したもの）を動かしてモーションキャプチャーを実施する際に、適切なタイミングで入力部６７を操作し、ロボットアームにさせたい作業内容を作業情報（Ｄ３）として入力することで、ティーチング装置（１０）に対しロボットアームの細かい作業内容を設定することが可能となる。これにより、ティーチング装置（１０）は、治具（１５）の位置情報（Ｄ２）等と、作業情報（Ｄ３）とをリンクさせ、ロボットアームを制御する制御情報（Ｄ５）を生成することが可能となる。
2016151668.tif 000002
【特許請求の範囲】
【請求項１】
移動部と、前記移動部に設けられた作業部とを備えるロボットの動作を制御する制御情報を生成するティーチング装置であって、
前記移動部の位置を示す位置マーカー部を有する治具と、
前記治具の移動にともなって移動する前記位置マーカー部を検出する検出部と、
前記作業部が作業位置において実施する作業に係わる作業情報を入力する入力部と、
前記検出部が前記位置マーカー部を検出した検出データと、前記入力部の前記作業情報とを処理する処理部と、を備え、
前記処理部は、
前記検出データに基づいて、前記位置マーカー部の３次元座標の位置情報を生成する位置情報生成処理と、
前記位置情報に基づいて、前記位置マーカー部の移動方向及び移動速度に係わる移動情報を生成する移動情報生成処理と、
前記位置情報及び前記移動情報に応じて前記移動部を移動させ、且つ前記作業情報に応じて前記作業部に作業をさせる一連の作業の前記制御情報を生成する制御情報生成処理と、を実行することを特徴とするティーチング装置。
【請求項２】
前記治具は、可動部と、前記可動部を駆動する駆動部と、前記可動部の位置を示す可動部用マーカー部とを有し、
前記処理部は、前記位置情報生成処理として、前記駆動部の駆動に基づいて前記可動部が動作するのにともなって移動する前記可動部用マーカー部の前記位置情報を生成することを特徴とする請求項１に記載のティーチング装置。
【請求項３】
前記処理部は、前記制御情報生成処理において、前記移動部を移動させた後、前記作業部による作業を実施する前に実行する前記制御情報として、前記作業位置における前記作業部の位置を補正する制御情報を追加することを特徴とする請求項１又は請求項２に記載のティーチング装置。
【請求項４】
前記処理部は、前記位置情報生成処理において、生成した前記位置情報の中から複数の特徴点を抽出し、前記特徴点の間の前記位置情報を近似する補正処理を行うことを特徴とする請求項１乃至請求項３のいずれかに記載のティーチング装置。
【請求項５】
前記処理部は、前記位置情報生成処理として、前記検出データに基づいて、前記位置マーカー部の位置をサンプリングし、サンプリング点の位置を前記位置情報として生成することを特徴とする請求項１乃至請求項３のいずれかに記載のティーチング装置。
【請求項６】
前記処理部は、前記移動情報生成処理として、前記位置情報生成処理によって生成された複数のサンプリング点において、隣接する前記サンプリング点間の位置関係に基づいて前記移動方向を検出し、隣接する前記サンプリング点間の距離とサンプリング周期とに基づいて前記移動速度を検出することを特徴とする請求項５に記載のティーチング装置。
【請求項７】
前記処理部は、前記移動情報生成処理として、前記サンプリング点を結ぶ曲線の曲率が所定の曲率を超えていた場合、前記移動速度が所定の速度を超えていた場合、及び前記移動速度における加速度が所定の加速度を超えていた場合の少なくとも一つの場合に、前記位置情報を補正することを特徴とする請求項６に記載のティーチング装置。
【請求項８】
前記ロボットの動作の基準となる位置に設けられた基準マーカー部を備え、
前記検出部は、前記基準マーカー部を検出し、
前記処理部は、前記位置情報生成処理において、前記基準マーカー部に対する前記位置マーカー部の相対的な位置を、前記位置情報として生成することを特徴とする請求項１乃至請求項７のいずれかに記載のティーチング装置。
【請求項９】
前記ロボットは、前記移動部の駆動機構としてシリアルリンク機構を備えることを特徴とする請求項１乃至請求項８のいずれかに記載のティーチング装置。
【請求項１０】
移動部と、前記移動部に設けられた作業部とを備えるロボットの動作を制御する制御情報の生成方法であって、前記移動部の位置を示す位置マーカー部を有する治具と、前記治具の移動にともなって移動する前記位置マーカー部を検出する検出部と、前記作業部が作業位置において実施する作業に係わる作業情報を入力する入力部と、を備えるティーチング装置に対し、
前記検出部が前記位置マーカー部を検出した検出データに基づいて、前記位置マーカー部の３次元座標の位置情報を生成する位置情報生成ステップと、
前記位置情報に基づいて、前記位置マーカー部の移動方向及び移動速度に係わる移動情報を生成する移動情報生成ステップと、
前記位置情報及び前記移動情報に応じて前記移動部を移動させ、且つ前記作業情報に応じて前記作業部に作業をさせる一連の作業の前記制御情報を生成する制御情報生成ステップ処理と、を実行させることを特徴とする制御情報の生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットに対して動作を教示するためのティーチング装置及び当該ロボットを制御する制御情報を生成する方法に関する。
【背景技術】
【０００２】
近年、生産現場における省人化を図るべく、産業用ロボットを使用した作業の自動化が進んでいる。産業用ロボット、例えばロボットアームの中には、並行に配置した複数のアーム部によって１つのエンドエフェクタを支持するいわゆるパラレルリンク機構を備えるものや、多関節ロボットのような複数のアーム部を１方向に連結させてエンドエフェクタを支持するシリアルリンク機構を備えるものがある。【０００３】
また、従来、ロボットアームで行う作業を人が模擬し、模擬した人の動作をモーションキャプチャーによって取得し、ロボットアームに対して教示するティーチング装置がある（例えば、特許文献１など）。特許文献１に開示されるティーチング装置では、作業者が測定装置（文献では、「モーションキャプチャー」）を手に装着した状態で動作させると、測定装置から送信される３次元座標データに基づいて、予め定められたサンプリング間隔で測定装置の位置をサンプリングする。ティーチング装置は、サンプリングしたデータに基づいて、移動位置、移動速度等を演算し、演算した移動位置を移動速度で移動するようにアーム部を制御している。【０００４】
【特許文献１】特開２０１１−２００９９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記したティーチング装置では、例えば、アーム部の移動位置や移動速度を演算して教示することは可能であるが、部品の供給位置や取り付け位置でのエンドエフェクタの細かい作業を人の指で模擬することは難しい。【０００６】
また、移動作業や取り付け作業などのアーム部やエンドエフェクタが実施する作業とは異なる作業、例えば、装置内の基準点を撮像し画像処理を行うことでエンドエフェクタの作業位置を調整する補正処理などを、アーム部の移動に合わせて一連の作業工程に盛り込みたい場合、従来のティーチング装置では、どのようなタイミングで、どのような種類の作業を盛り込めばいいのかを指示することは難しい。このため、例えば、モーションキャプチャーで制御情報を一度作成した上で、作成した制御情報のメインプログラムのどのステップの後に、補正処理等に対応したサブルーチンを追加するのかを探す作業等が必要となってくる。【０００７】
本発明は、上記した課題を鑑みてなされたものであり、移動作業だけでなく、より細かい作業内容も教示できるティーチング装置及び制御情報の生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本願の請求項１に記載のティーチング装置は、移動部と、移動部に設けられた作業部とを備えるロボットの動作を制御する制御情報を生成するティーチング装置であって、移動部の位置を示す位置マーカー部を有する治具と、治具の移動にともなって移動する位置マーカー部を検出する検出部と、作業部が作業位置において実施する作業に係わる作業情報を入力する入力部と、検出部が位置マーカー部を検出した検出データと、入力部の作業情報とを処理する処理部と、を備え、処理部は、検出データに基づいて、位置マーカー部の３次元座標の位置情報を生成する位置情報生成処理と、位置情報に基づいて、位置マーカー部の移動方向及び移動速度に係わる移動情報を生成する移動情報生成処理と、位置情報及び移動情報に応じて移動部を移動させ、且つ作業情報に応じて作業部に作業をさせる一連の作業の制御情報を生成する制御情報生成処理と、を実行することを特徴とする。【０００９】
また、請求項２に記載のティーチング装置では、請求項１に記載のティーチング装置において、治具は、可動部と、可動部を駆動する駆動部と、可動部の位置を示す可動部用マーカー部とを有し、処理部は、位置情報生成処理として、駆動部の駆動に基づいて可動部が動作するのにともなって移動する可動部用マーカー部の位置情報を生成することを特徴とする。【００１０】
また、請求項３に記載のティーチング装置では、請求項１又は請求項２に記載のティーチング装置において、処理部は、制御情報生成処理において、移動部を移動させた後、作業部による作業を実施する前に実行する制御情報として、作業位置における作業部の位置を補正する制御情報を追加することを特徴とする。【００１１】
また、請求項４に記載のティーチング装置では、請求項１乃至請求項３のいずれかに記載のティーチング装置において、処理部は、位置情報生成処理において、生成した位置情報の中から複数の特徴点を抽出し、特徴点の間の位置情報を近似する補正処理を行うことを特徴とする。【００１２】
また、請求項５に記載のティーチング装置では、請求項１乃至請求項３のいずれかに記載のティーチング装置において、処理部は、位置情報生成処理として、検出データに基づいて、位置マーカー部の位置をサンプリングし、サンプリング点の位置を位置情報として生成することを特徴とする。【００１３】
また、請求項６に記載のティーチング装置では、請求項５に記載のティーチング装置において、処理部は、移動情報生成処理として、位置情報生成処理によって生成された複数のサンプリング点において、隣接するサンプリング点間の位置関係に基づいて移動方向を検出し、隣接するサンプリング点間の距離とサンプリング周期とに基づいて移動速度を検出することを特徴とする。【００１４】
また、請求項７に記載のティーチング装置では、請求項６に記載のティーチング装置において、処理部は、移動情報生成処理として、サンプリング点を結ぶ曲線の曲率が所定の曲率を超えていた場合、移動速度が所定の速度を超えていた場合、及び移動速度における加速度が所定の加速度を超えていた場合の少なくとも一つの場合に、位置情報を補正することを特徴とする。【００１５】
また、請求項８に記載のティーチング装置では、請求項１乃至請求項７のいずれかに記載のティーチング装置において、ロボットの動作の基準となる位置に設けられた基準マーカー部を備え、検出部は、基準マーカー部を検出し、処理部は、位置情報生成処理において、基準マーカー部に対する位置マーカー部の相対的な位置を、位置情報として生成することを特徴とする。【００１６】
また、請求項９に記載のティーチング装置では、請求項１乃至請求項８のいずれかに記載のティーチング装置において、ロボットは、移動部の駆動機構としてシリアルリンク機構を備えることを特徴とする。【００１７】
また、上記課題を解決するために、本願の請求項１０に記載の制御情報の生成方法は、移動部と、移動部に設けられた作業部とを備えるロボットの動作を制御する制御情報の生成方法であって、移動部の位置を示す位置マーカー部を有する治具と、治具の移動にともなって移動する位置マーカー部を検出する検出部と、作業部が作業位置において実施する作業に係わる作業情報を入力する入力部と、を備えるティーチング装置に対し、検出部が位置マーカー部を検出した検出データに基づいて、位置マーカー部の３次元座標の位置情報を生成する位置情報生成ステップと、位置情報に基づいて、位置マーカー部の移動方向及び移動速度に係わる移動情報を生成する移動情報生成ステップと、位置情報及び移動情報に応じて移動部を移動させ、且つ作業情報に応じて作業部に作業をさせる一連の作業の制御情報を生成する制御情報生成ステップ処理と、を実行させることを特徴とする。
【発明の効果】
【００１８】
本願の請求項１に記載のティーチング装置では、移動部と、作業部とを備えるロボットを制御する制御情報を生成する。モーションキャプチャーの作業では、位置マーカー部を設けた治具を被検出体として用いることで、測定装置を装着した人の手等を用いる必要がなくなる。位置マーカー部の検出方法としては、例えば、特定の波長の光を位置マーカー部に照射し、その反射光を撮像した撮像データから位置情報等を演算する光学方式のモーションキャプチャーを用いることができる。なお、位置マーカー部の検出方法は、これに限らず、他の方法、例えば、撮像データに対し位置マーカー部の形状を検出する画像処理を実行し、実行結果から位置を検出してもよい。あるいは、位置マーカー部として磁気センサを用いて、移動する磁気センサからの位置データを受信して、受信した位置データから位置情報等を演算する磁気方式のモーションキャプチャーを用いることができる。【００１９】
また、当該ティーチング装置は、作業部が作業位置において実施する作業、例えば、ワークを挟む、ワークを掴む、レーザを照射する、撮像を行う、ワークを吸着する等の作業に係わる作業情報を入力するための入力部を備える。このため、ユーザは、入力部を適切なタイミングで操作し、且つ、ロボットにさせたい作業内容を作業情報として入力することで、ティーチング装置に対して作業部の細かい作業等を設定することが可能となる。【００２０】
そして、処理部は、検出データから生成した位置情報及び移動情報に応じて移動部を移動させ、且つ作業情報に応じて作業部に作業をさせる一連の作業の制御情報を生成する。つまり、処理部は、制御情報生成処理において、移動情報等と、作業情報等をリンクさせて制御情報を生成することが可能となる。これにより、当該ティーチング装置では、例えば、作業部の作業位置を調整する補正処理等を、適切なタイミングや作業内容で実施するように、移動部の移動に合わせた一連の作業工程の中に盛り込むことが可能となる。【００２１】
また、本願の請求項２に記載のティーチング装置では、治具は、可動部用マーカーが設けられた可動部を駆動する駆動部を備える。処理部は、駆動部の駆動に応じて可動する可動部の可動部用マーカーをモーションキャプチャーする。これにより、ユーザは、所定の作業位置において、駆動部によって可動部を動作させることによって、人の指等で模擬する場合に比べて、ワークを掴んだり、離したりする動作をより忠実に再現することが可能となる。【００２２】
また、例えば、治具を人が手で動かす場合には、位置マーカー部の移動の精度は、人が治具を操る精度に依存する。このため、本願の請求項３に記載のティーチング装置では、より高い作業精度が要求される場合、作業位置で作業を実施する前に位置補正の処理を実施し、最終的な作業位置を補正することで、高い精度が要求される作業にも対応することが可能となる。【００２３】
また、本願の請求項４に記載のティーチング装置では、処理部は、特徴点の抽出と、当該特徴点間の位置情報を近似する補正処理を行う。特徴点の抽出は、例えば、移動方向が所定の角度以上変更された点を特徴点として抽出する。あるいは、特徴点の抽出は、例えば、複数の位置情報の中から一定の間隔ごとの点を特徴点として抽出する。【００２４】
処理部は、抽出した特徴点を、例えば、ロボットの動作の起点や終点として設定し、その起点から終点に向かってロボットが移動可能となるように、特徴点間の位置情報を補正する。例えば、補正処理として、外部からのノイズによって、大幅に位置のずれた点が特徴点間にある場合、当該点に係わる位置情報を不要なデータとして破棄する。あるいは、補正処理として、特徴点間の位置情報を、当該特徴点を結ぶ直線や曲線で近似する。これにより、生成した制御情報に基づいてロボットをより滑らかに動作させ、無駄な動作を省いて作業効率を向上させることが可能となる。また、治具を人が操作する場合の人の手の震えなどによる位置情報のずれを補正することが可能となる。【００２５】
また、本願の請求項５に記載のティーチング装置では、処理部は、所定のサンプリング周期で、検出データから位置情報を生成する。このため、当該ティーチング装置では、サンプリング周期の時間を変更することで、処理部が位置マーカー部の位置を検出する精度を調整することが可能となる。【００２６】
また、本願の請求項６に記載のティーチング装置では、処理部は、隣接するサンプリング点の位置情報に基づいて、移動方向や移動速度を検出する。このため、当該ティーチング装置では、サンプリング周期の時間を変更することで、処理部が位置マーカー部の移動方向及び移動速度を検出する精度を調整することが可能となる。【００２７】
また、例えば、治具を人が操作して、その治具の移動する向き、移動速度、加速度が、制御情報を適用するロボットの移動能力を超えていた場合、制御情報を生成したとしても、ロボットに所望の作業を実行させることは困難となる。そこで、本願の請求項７に記載のティーチング装置では、例えば、サンプリング点を結ぶ曲線の曲率が、所定の曲率（例えば、ロボットの移動可能な曲率）を超えていた場合、移動可能な曲率となるように位置情報（座標等）を補正する。これにより、モーションキャプチャーによって生成した制御情報を、実際にロボットを制御するデータとして容易に使用することが可能となる。【００２８】
また、モーションキャプチャーを行う場合、治具の動作をトラッキングするトラッキング領域と、ロボットを実際に作業させる作業領域との位置がずれる虞がある。そこで、本願の請求項８に記載のティーチング装置では、基準マーカー部を基準として位置情報を生成する。これにより、生成した制御情報を使用する場合、基準マーカー部の位置を、実際の作業領域内の基準に合わせることで、ロボットを精度よく制御することが可能となる。ここでいう作業領域内の基準とは、例えば、ＸＹロボットであれば、Ｘ方向及びＹ方向の位置を決定する際に基準とする位置である。【００２９】
また、例えば、制御情報をシミュレーション用のツール（三次元ＣＡＤなど）に取り込んでロボットの動きを確認したい場合、基準マーカー部の位置をツールの基準位置に合わせることによって、制御情報の取り込みや使用が容易となる。また、例えば、同じ基準マーカー部を使用して２つのロボットの制御情報を別々に生成しておき、２つの制御情報の基準マーカー部の位置をツールの基準位置に合わせてシミュレーションすることによって、２つのロボットの動作が互いに干渉しないか否かを確認することが可能となる。【００３０】
また、本願の請求項９に記載のティーチング装置において、本願のロボットとして、生産現場で広く使用されているシリアルリンク機構を備えるロボット、例えば、多関節のロボットアームに適用することは有効である。【００３１】
さらに、本願に係る発明は、ティーチング装置に限定されることなく、ティーチング装置によって制御情報を生成する方法の発明としても実施し得るものである。
【図面の簡単な説明】
【００３２】
【図１】本実施形態のティーチング装置の要部の構成を概略的に示した図である。
【図２】複数のカメラが取り付けられた枠部の斜視図である。
【図３】制御情報を用いて制御する対象である産業用ロボットの構成を示す模式図である。
【図４】本実施形態のティーチング装置を用いてモーションキャプチャーを実施する状態を示す模式図である。
【図５】ＣＰＵによる制御情報の生成処理を示すフローチャートである。
【図６】２つの治具が備える各マーカー部の位置をサンプリングしたサンプリング点を示す図である。
【図７】別例の治具を示す模式図である。
【図８】別例の治具を示す模式図である。
【図９】別例の治具を示す模式図である。
【図１０】別例の治具を示す模式図である。
【発明を実施するための最良の形態】
【００３３】
以下、本発明のティーチング装置の一実施形態について、図面を参照しつつ説明する。図１は、本実施形態のティーチング装置１０の要部の構成を概略的に示している。ティーチング装置１０は、光学方式のモーションキャプチャーによって、複数（図１では１台のみ図示）のカメラ１３と、２つの治具１５（図１では１つのみ図示）と、制御情報生成装置１７とを備える。ティーチング装置１０は、治具１５の各々の動きを複数のカメラ１３によって撮像し、カメラ１３の撮像データＤ１から図３に示すロボットアーム１０１，１０３を制御する制御情報Ｄ５を制御情報生成装置１７によって生成する。【００３４】
＜カメラ１３について＞
図２に示すように、複数のカメラ１３の各々は、複数（本実施形態では、１２本）のパイプ２１を直方体形状に組み付けた枠部２３に取付けられている。複数のパイプ２１の各々は、同一の長さで形成されており、直方体形状の枠部２３の角部分において、１２本のパイプ２１のうち、任意の３本のパイプ２１が連結部材２５によって互いに連結されている。各連結部材２５は、３本のパイプ２１の各々の端部２１Ａを挿入して保持しており、３本のパイプ２１の各々を互いに直交するようにして固定している。以下、図２に示すように、枠部２３を配置する台１９の載置面に対して直交する方向を上下方向、上下方向に直交し図２において前後に向かう方向を前後方向、上下方向及び前後方向に直交する方向を左右方向と称し、説明する。【００３５】
本実施形態のティーチング装置１０は、例えば、合計で６個のカメラ１３が枠部２３に取付けられている。以下、複数のカメラ１３を区別する必要があるときは、図２に示すように、カメラ１３の符号の後にアルファベットを付して説明する。また、区別する必要がないときは、６台のカメラを「カメラ１３」と総称して説明する。６台のカメラ１３うち、４台のカメラ１３Ａ，１３Ｂ，１３Ｃ，１３Ｄは、枠部２３の上方側となる４本のパイプ２１の各々に、固定部材２７によって取付けられている。４台のカメラ１３Ａ〜１３Ｄの各々は、上方側の４つの連結部材２５のそれぞれに近接する位置に取り付けられている。固定部材２７は、カメラ１３Ａ〜１３Ｄの各々を、撮像方向が枠部２３の中央部分を向くようにして固定している。【００３６】
また、６台のカメラ１３のうち、残りの２台のカメラ１３Ｅ，１３Ｆは、上下方向に沿って設けられた４本のパイプ２１のうち、対角線上で対向する一組のパイプ２１の各々に、固定部材２７によって取り付けられている。カメラ１３Ｅ，１３Ｆは、パイプ２１における台１９側となる下端部に取り付けられ、撮像方向が枠部２３の中央部分を向くようにして固定部材２７によって固定されている。これら６台のカメラ１３は、後述する治具１５のマーカー部４３を撮影するため、枠部２３で取り囲まれた立方体形状の領域をトラッキング領域Ｒ１、即ち、治具１５及びマーカー部４３を可動させて追跡するための領域として設定している。なお、６台のカメラ１３は、例えば、マーカー部４３をトラッキングするために、撮像範囲が互いに重複するように設定され、トラッキング領域Ｒ１を３次元的に撮像可能となっている。また、図２に示す枠部２３の形状、カメラ１３の台数、カメラ１３の取り付け位置等は、一例であり、適宜変更可能である。【００３７】
図１及び図２に示すように、カメラ１３の各々は、撮像素子３１と、照明装置３３，３４とを備える。撮像素子３１は、例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサである。照明装置３３，３４は、例えば、ＬＥＤ照明であり、互いに異なる波長の光を照射する。これは、後述する２つの治具１５Ａ，１５Ｂ（図４参照）の各々に設けられたマーカー部４３Ａ，４３Ｂに対応した２種類の光である。カメラ１３は、照明装置３３，３４から照射しマーカー部４３Ａ，４３Ｂによって反射した反射光を撮像素子３１によって受光する。カメラ１３は、撮像したデータを撮像データＤ１として、映像ケーブル３５を介してティーチング装置１０へ出力する。なお、カメラ１３は、マーカー部４３Ａ，４３Ｂの反射光を検出し易いように、照明装置３３，３４から照射する光の波長に応じた光学フィルターを、撮像素子３１の光の入射口に取り付けてもよい。【００３８】
＜治具１５について＞
次に、検出対象である治具１５について説明する。図１に示す治具１５は、図３に示す産業用ロボット１００のロボットアーム１０１，１０３を模擬した被検出体であり、本体部４１と、マーカー部４３と、エンドエフェクタ４５と、把持部４７とを備えている。図３は、産業用ロボット１００の構成を模式的に示したものである。ロボットアーム１０１は、２つのアーム部１０５（移動部の一例）を１方向に連結させ、先端部分にエンドエフェクタであるハンド部１０９（作業部の一例）を支持するシリアルリンク機構を備える多関節ロボットである。同様に、ロボットアーム１０３は、２つのアーム部１０７を１方向に連結させ、先端部分にハンド部１１１を支持する。産業用ロボット１００は、例えば、ロボットアーム１０１，１０３を駆動して、ハンド部１０９，１１１に挟持したワークＷ１，Ｗ２を基板Ｂに取り付ける作業を行う。ワークＷ１，Ｗ２は、例えば、電子部品やネジ等である。【００３９】
図１に示す治具１５の本体部４１は、ロボットアーム１０１，１０３のアーム部１０５，１０７に対応する。ここで、後述するように、本実施形態のティーチング装置１０では、２つのロボットアーム１０１，１０３を協調させて動作させるための制御情報Ｄ５を生成する。このため、２種類の治具１５Ａ，１５Ｂ（図４参照）を使用し、各治具１５Ａ，１５Ｂを、それぞれ異なるロボットアーム１０１，１０３であると仮定してモーションキャプチャーを行う。以下の説明では、この２種類の治具１５、あるいは当該治具１５が備える各部（マーカー部４３など）を区別する必要があるときは、図４に示すように、治具１５等の符号の後にアルファベットを付して説明する。また、区別する必要がないときは、２つの治具を「治具１５」と総称して説明する。【００４０】
マーカー部４３は、本体部４１の外周部分に固定されている。マーカー部４３は、球体をなし、各カメラ１３の照明装置３３，３４から照射される光を反射する。例えば、図４に示す治具１５Ａに設けられたマーカー部４３Ａは、照明装置３３が照射する特定の波長の光を反射する反射特性を有する材質等で構成されている。また、もう一方の治具１５Ｂに設けられたマーカー部４３Ｂは、照明装置３４が照射する特定の波長の光を反射する反射特性を有する材質等で構成されている。【００４１】
エンドエフェクタ４５は、ロボットアーム１０１，１０３（図３参照）のワークＷ１，Ｗ２を挟むハンド部１０９，１１１を模擬した形状をなしており、先端部分が互いに近接する方向に向かって屈曲した一対の棒状の部材で構成されている。一対のエンドエフェクタ４５は、マーカー部４３を挟む位置に設けられ、先端部分が開閉可能に構成されている。エンドエフェクタ４５の各々の先端部分には、当該エンドエフェクタ４５の動きをトラッキングするための可動部用マーカー部４６が設けられている。例えば、可動部用マーカー部４６Ａ，４６Ｂは、マーカー部４３Ａ，４３Ｂと同様に、互いに異なる反射特性で構成されており、カメラ１３の照明装置３３，３４の各々から照射される光を反射する。これにより、制御情報生成装置１７は、治具１５と同様に、エンドエフェクタ４５の位置情報Ｄ２も取得することが可能となる。なお、カメラ１３は、治具１５に使用する照明装置３３，３４とは別に、エンドエフェクタ４５に光を照射する専用の照明装置を備えてもよい。【００４２】
また、本体部４１には、エンドエフェクタ４５を開閉動作させるためのアクチュエーター４９が内蔵されている。また、本体部４１には、マーカー部４３やエンドエフェクタ４５とは反対側の部分に棒状の把持部４７の先端部が取り付けられている。把持部４７は、例えば、枠部２３のトラッキング領域Ｒ１（図２参照）内に治具１５を入れた状態で、枠部２３の外に飛び出した当該把持部４７の基端部をユーザが手に持つことができる程度の長さで構成されている。これにより、ユーザは、体の一部をトラッキング領域Ｒ１に入れることなく、治具１５を操作することが可能となる。【００４３】
把持部４７の本体部４１とは反対側の基端部には、アクチュエーター４９を駆動、又は停止させるための駆動スイッチ５１が設けられている。駆動スイッチ５１は、把持部４７及び本体部４１内に配設された接続線５３によってアクチュエーター４９と接続されている。例えば、モーションキャプチャーを実行する際には、ユーザは、把持部４７の基端部を持って、先端部に設けられた治具１５を、枠部２３のトラッキング領域Ｒ１内において、開始位置から所望の位置、例えば、ロボットアーム１０１，１０３がハンド部１０９，１１１でワークＷ１，Ｗ２を挟持する作業位置まで移動させる。ユーザは、移動させた後に、駆動スイッチ５１をオン操作することで、エンドエフェクタ４５の先端部分を閉じた状態とする。あるいは、ユーザは、駆動スイッチ５１をオフ操作することで、エンドエフェクタ４５の先端部分を開いた状態とする。ティーチング装置１０は、エンドエフェクタ４５の動作をトラッキングし、後述する制御情報Ｄ５を生成する。この制御情報Ｄ５は、図３に示す産業用ロボット１００のハンド部１０９，１１１を制御する制御情報Ｄ５である。【００４４】
＜制御情報生成装置１７について＞
次に、制御情報生成装置１７の構成について説明する。制御情報生成装置１７は、例えば、ＣＰＵ（Central Processing Unit）６１を主体として構成されたパーソナルコンピュータであり、変換部６３、記憶部６５、入力部６７、表示部６９等を備える。制御情報生成装置１７は、カメラ１３から出力された撮像データＤ１を、映像ケーブル３５（図２参照）を介して変換部６３に入力する。変換部６３は、複数のカメラ１３で撮像された撮像データＤ１を、時系列的に整列させ、カメラ１３の識別情報や時間情報等を付加してＣＰＵ６１に出力する。ＣＰＵ６１は、変換部６３から入力された撮像データＤ１を記憶部６５に保存する。記憶部６５は、メモリやハードディスク等を備えており、撮像データＤ１の他に、制御プログラムＤ７や設計情報Ｄ６等が保存されている。制御プログラムＤ７は、ＣＰＵ６１上で実行されるプログラムである。設計情報Ｄ６は、図３に示す産業用ロボット１００に係わる情報であり、アーム部１０５，１０７の外形の寸法、アーム部１０５，１０７の最大移動速度等の情報である。【００４５】
ＣＰＵ６１は、記憶部６５に保存された制御プログラムＤ７を読み出して実行することにより、位置情報生成部７１、移動情報生成部７３、制御情報生成部７５の各種の処理モジュールを実現する。なお、本実施形態では、位置情報生成部７１等は、ＣＰＵ６１で制御プログラムＤ７が実行されることによって実現されるソフトウェアとして構成されているが、専用のハードウェアとして構成してもよい。【００４６】
入力部６７は、ユーザからの入力を受け付けるキーボードやマウス等の入力装置である。上記したように、本実施形態のティーチング装置１０は、治具１５を作業位置まで移動させた後、駆動スイッチ５１を操作することでエンドエフェクタ４５を開閉させ、ハンド部１０９，１１１（図３参照）を動作させるための作業情報Ｄ３の生成をティーチング装置１０に教示することが可能となっている。また別の方法として、ユーザは、治具１５を作業位置まで移動させた後、入力部６７を操作することよって、他の作業情報Ｄ３を生成する旨をティーチング装置１０に指示することが可能となっている。例えば、ユーザは、入力部６７を操作し、ワークＷ１，Ｗ２を吸着する作業、ワークＷ１，Ｗ２の一部にレーザを照射して穴を開ける作業、ワークＷ１，Ｗ２に接着剤を塗布する作業などを入力することができる。これにより、ティーチング装置１０は、治具１５の位置情報Ｄ２等と、作業情報Ｄ３とをリンクさせた一連の作業の制御情報Ｄ５を生成することが可能となる。また、表示部６９は、制御情報Ｄ５を生成する過程における途中経過や、生成後の結果情報などの各種情報を表示する。【００４７】
次に、制御情報生成装置１７における制御情報Ｄ５の生成処理の一例について説明する。まず、モーションキャプチャーを実行する作業内容について説明する。以下の説明では、一例として、２台のロボットアーム１０１，１０３（図３参照）が、互いに協調して動作しながら基板ＢにワークＷ１，Ｗ２を実装する作業のモーションキャプチャーを実行する。図４は、モーションキャプチャーを実施する場合の状態を模式的に示している。【００４８】
図４に示すように、例えば、枠部２３のトラッキング領域Ｒ１内にワークＷ１，Ｗ２（図３参照）を供給するための供給装置８１，８２を配置する。供給装置８１，８２は、例えば、テーピング化された電子部品（ワーク）を１つずつ供給位置に送り出すテープフィーダ型の供給装置、あるいは、電子部品が所定の間隔毎に並べられた複数のトレイを備えるトレイ型の供給装置である。供給装置８１のワークＷ２の供給位置には、供給位置用マーカー部８４が設けられている。また、供給装置８２のワークＷ１の供給位置には、供給位置用マーカー部８５が設けられている。供給装置８１及び供給装置８２は、前後方向において供給位置（供給位置用マーカー部８４，８５）を互いに対向させるようにして配置されている。【００４９】
また、供給装置８１，８２の前後方向における間には、基板８６が配置されている。基板８６は、長方形状に形成され、平面が前後方向及び左右方向に沿うようにして水平に配置されている。基板８６の４つの角部分には、実装位置用マーカー部８８が設けられている。なお、以下の説明では、治具１５Ａが実装作業を行う実装位置用マーカー部８８を、他の実装位置用マーカー部８８と区別するため、実装位置用マーカー部８８Ａと称する。また、治具１５Ｂが実装作業を行う実装位置用マーカー部８８を、他の実装位置用マーカー部８８と区別するため、実装位置用マーカー部８８Ｂと称する。また、上記した供給装置８１，８２及び基板８６は、実物の装置や基板を用いてもよく、形状を模擬した部材を用いてもよい。また、基板８６の中心部には、３つの基準マーカー部９１が隣接して設けられている。基準マーカー部９１は、ロボットアーム１０１，１０３（図３参照）の動作の基準となる位置である。【００５０】
例えば、図３に示すロボットアーム１０１のハンド部１０９によって供給装置８２（図４参照）の供給位置からワークＷ１をピックアップし、基板Ｂに実装する作業を、治具１５Ａにて教示する。この場合、図４の実線の矢印９３で示すように、ユーザは、把持部４７Ａを持って治具１５Ａを操作し、図４に示す開始位置から供給位置用マーカー部８５まで治具１５Ａを移動させる。ユーザは、供給位置用マーカー部８５の位置において、駆動スイッチ５１Ａをオン操作してエンドエフェクタ４５Ａを閉じた状態とする。ユーザは、駆動スイッチ５１Ａを操作する前に、制御情報生成装置１７の入力部６７を操作して、エンドエフェクタ４５Ａを操作する旨の作業情報Ｄ３を入力する。次に、ユーザは、治具１５Ａを、供給位置用マーカー部８５から実装位置用マーカー部８８Ａの位置まで移動させる。そして、ユーザは、実装位置用マーカー部８８Ａの位置において、駆動スイッチ５１Ａをオフ操作してエンドエフェクタ４５Ａを開いた状態とする。この場合にもユーザは、駆動スイッチ５１Ａを操作する前に入力部６７を操作して、エンドエフェクタ４５Ａを操作する旨の作業情報Ｄ３を入力する。【００５１】
また、ロボットアーム１０３のハンド部１１１によって供給装置８１（図４参照）の供給位置からワークＷ２をピックアップし、基板Ｂに実装する作業を、治具１５Ｂにて教示する。この作業は、上記したロボットアーム１０１の作業と同時に行う作業である。この場合、図４の破線の矢印９５で示すように、ユーザは、把持部４７Ｂを持って治具１５Ｂを操作し、図４に示す開始位置から供給位置用マーカー部８４まで治具１５Ｂを移動させる。ユーザは、供給位置用マーカー部８４の位置において、入力部６７によって作業情報Ｄ３を入力した後、駆動スイッチ５１Ｂをオン操作してエンドエフェクタ４５Ｂを閉じた状態とする。次に、ユーザは、治具１５Ｂを、供給位置用マーカー部８４から実装位置用マーカー部８８Ｂの位置まで移動させる。そして、ユーザは、実装位置用マーカー部８８Ｂの位置において、入力部６７によって作業情報Ｄ３を入力した後、駆動スイッチ５１Ｂをオフ操作してエンドエフェクタ４５Ｂを開いた状態とする。なお、治具１５Ｂを操作するユーザは、治具１５Ａを操作するユーザとは別のユーザでもよい。【００５２】
次に、上記したモーションキャプチャー中において、ＣＰＵ６１が制御情報Ｄ５を生成する処理について、図５に示すフローチャートを参照しつつ説明する。なお、図５に示すフローチャートの処理の内容や処理の順番は、一例であり、適宜変更可能である。制御情報生成装置１７は、上記した治具１５Ａ，１５Ｂの動作をトラッキングして、制御情報Ｄ５を生成する。詳述すると、まず、ＣＰＵ６１は、制御プログラムＤ７を実行し処理を開始した後、図５に示すステップ（以下、単に「Ｓ」と表記する）１１において、ユーザが入力部６７を操作して作業情報Ｄ３を入力したか否かを判定する。これは、ユーザが入力部６７を操作して作業情報Ｄ３を入力した場合、当該作業情報Ｄ３の内容に応じた処理を実行するためである。作業情報Ｄ３が入力された場合（Ｓ１１：ＹＥＳ）、ＣＰＵ６１は、入力された作業情報Ｄ３がエンドエフェクタ４５（駆動スイッチ５１）を操作する旨の情報であるか否かを判定する（Ｓ１２）。また、作業情報Ｄ３が入力されていない場合（Ｓ１１：ＮＯ）、ＣＰＵ６１は、Ｓ１５以降の処理を開始する。【００５３】
Ｓ１２において、エンドエフェクタ４５を操作する旨の作業情報Ｄ３でない場合（Ｓ１２：ＮＯ）、ＣＰＵ６１は、入力された作業情報Ｄ３の種類に応じた制御情報、例えば、ワークＷ１，Ｗ２を吸着する作業に対応するサブルーチンのプログラムを、当該作業情報Ｄ３に付加して記憶部６５に保存する（Ｓ１３）。図４に示す矢印９３，９５の作業では、エンドエフェクタ４５以外の作業情報Ｄ３の入力はなかったが、ユーザは、例えば、治具１５が所定の作業位置に到達した場合に、入力部６７を操作して、吸着作業、レーザの照射作業、接着剤の塗布作業等の作業情報を入力することができる。これにより、生成される制御情報Ｄ５の一連の作業工程の中に、各種の作業を追加等することが可能となる。【００５４】
また、Ｓ１２において、入力された作業情報Ｄ３がエンドエフェクタ４５を操作する旨の情報である場合（Ｓ１２：ＹＥＳ）、ＣＰＵ６１は、Ｓ１５以降に示す位置情報Ｄ２等の生成を行い、エンドエフェクタ４５Ａ，４５Ｂの各々の可動部用マーカー部４６Ａ，４６Ｂの位置、傾き、移動方向等に応じた制御情報Ｄ５、即ち、ハンド部１０９，１１１（図３参照）に所望の動作をさせる制御情報Ｄ５を生成する。なお、以下の説明では、主に治具１５のマーカー部４３を撮像した撮像データＤ１に基づいて制御情報Ｄ５を生成する処理について説明する。アクチュエーター４９の可動部用マーカー部４６を撮像した撮像データＤ１に基づいて制御情報Ｄ５を生成する処理は、マーカー部４３と同様であるため、適宜省略する。【００５５】
次に、ＣＰＵ６１は、変換部６３から撮像データＤ１を取り込んで記憶部６５に保存する処理を実行する（Ｓ１５）。なお、本実施形態のＣＰＵ６１は、モーションキャプチャー中に検出したエラーをユーザに報知すべく、カメラ１３の撮像データＤ１をリアルタイムで処理している。しかしながら、このようなリアルタイム処理に限らず、ＣＰＵ６１は、例えば、全ての撮像データＤ１を一度、記憶部６５に記憶しておき、後からまとめて全ての撮像データＤ１を処理してもよい。【００５６】
次に、位置情報生成部７１は、記憶部６５に保存された撮像データＤ１に付加されたカメラ１３の識別情報や時間情報等に基づいて、治具１５Ａ，１５Ｂに取り付けたマーカー部４３Ａ，４３Ｂの撮影時間ごとにおける３次元座標の位置を演算する（Ｓ１７）。位置情報生成部７１は、演算した位置情報Ｄ２を記憶部６５に保存する。位置情報生成部７１は、例えば、二値化した撮像データＤ１に対してラベリングを行い、エピポーラマッチングなどのアルゴリズムを利用した処理を行ってマーカー部４３Ａ，４３Ｂの３次元空間内での座標の位置を演算する。また、位置情報生成部７１は、基準マーカー部９１に対する相対的な座標の位置を演算する。例えば、位置情報生成部７１は、３つの基準マーカー部９１の重心位置を基準として、マーカー部４３Ａ，４３Ｂの座標位置を演算する。【００５７】
上記したように、マーカー部４３Ａ，４３Ｂの各々は、照明装置３３，３４から照射する光の波長に合わせて、反射特性の異なる構造となっている。このため、位置情報生成部７１は、撮像データＤ１に対し、例えば、輝度の違いなどによって、各マーカー部４３Ａ，４３Ｂからの反射光を識別し、マーカー部４３Ａ，４３Ｂごとの座標位置を演算する。なお、位置情報生成部７１が座標位置（位置情報Ｄ２）を演算する処理方法は、特に限定されず、例えば、三角測量の原理等によって、位置情報Ｄ２を演算してもよい。また、位置情報生成部７１は、Ｓ１２において、エンドエフェクタ４５（駆動スイッチ５１）を操作する旨の作業情報Ｄ３であった場合（Ｓ１２：ＹＥＳ）、マーカー部４３の場合と同様に、可動部用マーカー部４６について位置情報Ｄ２を生成する。【００５８】
また、位置情報生成部７１は、位置情報Ｄ２を表示部６９に表示する処理を行う（Ｓ１９）。位置情報生成部７１は、例えば、図６に示すように、マーカー部４３Ａ，４３Ｂのそれぞれの位置を、所定時間ごとにサンプリングしたサンプリング点ＳＰ１，ＳＰ２を、位置情報Ｄ２として取得する。位置情報生成部７１は、取得した全てのサンプリング点ＳＰ１，ＳＰ２（位置情報Ｄ２）を表示部６９にリアルタイムに表示する処理を行う。これにより、ユーザは、表示部６９の表示を確認することで、取得した位置情報Ｄ２を適宜確認し、適切か否かを判断することが可能となる。なお、位置情報生成部７１は、全てのサンプリング点ＳＰ１，ＳＰ２を表示せずに、起点、終点、移動方向が所定角度以上変わる点などの特徴点のみを表示してもよい。また、図６に示す黒塗りの丸のサンプリング点ＳＰ１は、治具１５Ａのマーカー部４３Ａに対応している。また、黒塗りの四角のサンプリング点ＳＰ２は、治具１５Ｂのマーカー部４３Ｂに対応している。【００５９】
次に、位置情報生成部７１は、位置情報Ｄ２のサンプリング点ＳＰ１，ＳＰ２に基づいて、マーカー部４３Ａ，４３Ｂ間の距離が正常か否かを判定する（Ｓ２１）。２つの治具１５Ａ，１５Ｂは、図３に示すロボットアーム１０１，１０３を模擬したものであるが、ユーザの手による操作性を考慮して、実物に対して外形を小さくすることが考えられる。この場合、治具１５Ａ，１５Ｂを動作させて作成した制御情報Ｄ５に基づいて、ロボットアーム１０１，１０３を動かした場合に、アーム部１０５，１０７等が衝突して互いに干渉する虞がある。【００６０】
そこで、位置情報生成部７１は、記憶部６５に保存された設計情報Ｄ６に基づいて、例えば、マーカー部４３Ａの中心からアーム部１０５の外形の寸法に応じた距離を、衝突の虞がある距離として設定する。そして、位置情報生成部７１は、サンプリング点ＳＰ１，ＳＰ２間の距離を演算し、演算した距離が衝突の虞がある距離以下であると判定した場合（Ｓ２１：ＹＥＳ）、表示部６９にエラー表示を実行する（Ｓ２３）。これにより、ユーザは、アーム部１０５，１０７等が衝突する虞のある距離まで治具１５Ａ，１５Ｂが近づいたことを認識でき、モーションキャプチャーを再度やり直すなどの適切な対応を取ることが可能となる。なお、位置情報生成部７１は、例えば、同時間のサンプリング点ＳＰ１，ＳＰ２の距離を演算し判定してもよい。あるいは位置情報生成部７１は、１つのサンプリング点ＳＰ１に対して、当該サンプリング点ＳＰ１の時間を基準として、所定時間内のサンプリング点ＳＰ２との距離を演算し判定してもよい。【００６１】
位置情報生成部７１は、Ｓ２３を実行した後、例えば、エラー表示に対するユーザからの応答があるまで処理を一時的に中止する。あるいは、位置情報生成部７１は、所定時間経過すると、必要なデータ等を受け渡して処理の主体を移動情報生成部７３へ移行させる（Ｓ２５）。また、位置情報生成部７１は、Ｓ２１において、演算した距離が衝突の虞がある距離よりも大きいと判定した場合（Ｓ２１：ＮＯ）、処理の主体を移動情報生成部７３へ移行させる（Ｓ２５）。【００６２】
次に、移動情報生成部７３は、記憶部６５に保存された位置情報Ｄ２に基づいて、マーカー部４３Ａ，４３Ｂの移動に係わる移動情報Ｄ４を生成する（Ｓ２５）。移動情報生成部７３は、位置情報Ｄ２から各マーカー部４３Ａ，４３Ｂの移動情報Ｄ４として、移動距離、移動方向、速度、加速度、角度等の物理量を演算する。【００６３】
＜特徴点の抽出＞
例えば、移動情報生成部７３は、図６に示す複数のサンプリング点ＳＰ１の中から特徴点の抽出を行う。具体的には、移動情報生成部７３は、例えば、起点となる特徴点として、治具１５Ａの移動開始位置に対応するサンプリング点ＳＰ１Ａを特徴点として抽出する。また、移動情報生成部７３は、複数のサンプリング点ＳＰ１の中から移動方向が所定の角度以上変更された点を、例えば、供給位置用マーカー部８５に近接する位置において大きく移動方向が変更されたサンプリング点ＳＰ１Ｂを特徴点として抽出する。なお、この特徴点の判定は、移動情報生成部７３が移動速度や移動方向に基づいて自動的に判定してもよく、あるいはユーザが入力部６７を操作して指示してもよい。【００６４】
そして、移動情報生成部７３は、抽出した特徴点（サンプリング点ＳＰ１Ａ，ＳＰ１Ｂ）の座標位置から傾きを演算し、マーカー部４３Ａ（治具１５Ａ）の移動方向を検出する。あるいは、移動情報生成部７３は、例えば、抽出した特徴点の距離を、特徴点間の時間で除算してマーカー部４３Ａの移動速度を検出する。【００６５】
また、移動情報生成部７３は、特徴点間のサンプリング点ＳＰ１の位置情報Ｄ２を近似する補正処理を行ってもよい。例えば、移動情報生成部７３は、抽出した特徴点（サンプリング点ＳＰ１Ａ，ＳＰ１Ｂ）を、移動の起点及び終点として設定し、当該起点（サンプリング点ＳＰ１Ａ）から終点（サンプリング点ＳＰ１Ｂ）に向かってロボットアーム１０１（図３参照）のアーム部１０５が移動可能となるように、特徴点間のサンプリング点ＳＰ１の位置情報Ｄ２を補正する。例えば、移動情報生成部７３は、外部からのノイズによって、大幅に位置のずれたサンプリング点ＳＰ１が特徴点間にある場合、当該サンプリング点ＳＰ１に係わる位置情報Ｄ２を不要なデータとして破棄する。あるいは、移動情報生成部７３は、特徴点間の位置情報Ｄ２を、当該特徴点を結ぶ直線で近似する。【００６６】
また、移動情報生成部７３は、特徴点間を曲線で近似してもよい。例えば、図６に示す複数のサンプリング点ＳＰ２のうち、移動情報生成部７３は、特徴点として移動方向が所定角度以上変更されたサンプリング点ＳＰ２Ａ，ＳＰ２Ｂを抽出する。２つの特徴点（サンプリング点ＳＰ２Ａ，ＳＰ２Ｂ）間の移動は、移動方向を徐々に変更しながら湾曲して移動している。この場合、移動情報生成部７３は、例えば、サンプリング点ＳＰ２Ａを起点、サンプリング点ＳＰ２Ｂを終点として、当該特徴点（サンプリング点ＳＰ２Ａ，ＳＰ２Ｂ）間のサンプリング点ＳＰ２の位置情報Ｄ２を、曲線で近似する。【００６７】
＜サンプリングによる演算＞
また、移動情報生成部７３は、上記した特徴点による方法に限らず、他の方法により移動方向等を検出してもよい。例えば、移動情報生成部７３は、位置情報生成部７１によってサンプリングされた複数のサンプリング点ＳＰ１うち、隣接するサンプリング点ＳＰ１の座標位置から傾きを演算し、マーカー部４３Ａ（治具１５Ａ）の移動方向を検出してもよい。あるいは、移動情報生成部７３は、例えば、隣接するサンプリング点ＳＰ１間の距離と、位置情報生成部７１のサンプリング周期とを乗算してマーカー部４３Ａの移動速度を検出してもよい。【００６８】
次に、移動情報生成部７３は、サンプリング点ＳＰ１，ＳＰ２を結ぶ曲線の曲率、及び検出した移動速度の少なくとも一方が、図３に示す産業用ロボット１００の移動能力を超えていた場合に、位置情報Ｄ２を補正し、移動情報Ｄ４の生成を再度実行する（Ｓ２７）。例えば、図６に示すように、複数のサンプリング点ＳＰ２のうちの１点であるサンプリング点ＳＰ２Ｃにおいて、マーカー部４３Ｂが大きく湾曲して移動している。このような湾曲した移動が、実際のロボットアーム１０３の移動能力を超えていた場合、制御情報Ｄ５を生成したとしても、ロボットアーム１０３を制御することは困難となる。【００６９】
そこで、移動情報生成部７３は、記憶部６５の保存された設計情報Ｄ６に基づいて、例えば、サンプリング点ＳＰ２（例えば、サンプリング点ＳＰ２Ａ，ＳＰ２Ｂ間）を結ぶ曲率が、ロボットアーム１０３の移動能力に応じて設定された曲率に比べて大きい場合、移動可能な曲率となるように位置情報Ｄ２を補正する。そして、移動情報生成部７３は、補正後の位置情報Ｄ２（サンプリング点ＳＰ２）に基づいて、再度、移動情報Ｄ４を生成する。【００７０】
また、例えば、図６に示すように、複数のサンプリング点ＳＰ１のうちの２点であるサンプリング点ＳＰ１Ｃ，ＳＰ１Ｄ間の距離が大きく離れている。サンプリング点ＳＰ１Ｃ，ＳＰ１Ｄ間の距離が離れると、演算結果の移動速度も早くなる。この移動速度が、実際のロボットアーム１０３の移動能力を超えていた、あるいは安全な移動速度を超えていたい場合、上記した曲率と同様に、制御情報Ｄ５を生成したとしても、ロボットアーム１０３を制御することは困難となる。【００７１】
このため、移動情報生成部７３は、曲率の場合と同様に、記憶部６５の保存された設計情報Ｄ６に基づいて、例えば、サンプリング点ＳＰ１Ｃ，ＳＰ１Ｄの距離から算出された移動速度が、ロボットアーム１０３の最大移動速度に比べて大きい場合、移動可能な速度となるように位置情報Ｄ２を補正する処理を行う。そして、移動情報生成部７３は、補正後の位置情報Ｄ２（サンプリング点ＳＰ１Ｃ，ＳＰ１Ｄ）に基づいて、再度、移動情報Ｄ４を生成する。なお、移動情報生成部７３は、曲率や移動速度に応じてサンプリング点ＳＰ１，ＳＰ２（位置情報Ｄ２）を補正する場合は、補正後のサンプリング点ＳＰ１，ＳＰ２間の距離が上記した衝突の虞がある距離以上となるように補正する。【００７２】
ＣＰＵ６１は、移動情報生成部７３による補正処理（Ｓ２７）が完了すると、変換部６３に対し取り込んでいない撮像データＤ１があるか否かを問い合わせる（Ｓ２９）。取り込んでいない撮像データＤ１がある場合（Ｓ２９：ＮＯ）、ＣＰＵ６１は、Ｓ１１からの処理を再度、実行する。【００７３】
ＣＰＵ６１は、変換部６３から取り込む撮像データＤ１がない場合（Ｓ２９：ＹＥＳ）、制御情報生成部７５に対し制御情報Ｄ５の生成を指示する。制御情報生成部７５は、記憶部６５に保存された位置情報Ｄ２、移動情報Ｄ４、及び作業情報Ｄ３に基づいて、ロボットアーム１０１，１０３を移動させ、且つ作業位置においてハンド部１０９，１１１に作業させる一連の作業の制御情報Ｄ５を生成する（Ｓ３１）。なお、制御情報生成部７５は、未処理の作業情報Ｄ３、例えば、治具１５Ａ，１５Ｂを実装位置用マーカー部８８Ａ，８８Ｂの位置まで到達させ撮像を終了させた後にユーザが入力部６７を操作して入力した作業情報Ｄ３がある場合には、当該作業情報Ｄ３をあわせて処理することが好ましい。【００７４】
そして、制御情報生成部７５は、例えば、マーカー部４３の位置情報Ｄ２や移動情報Ｄ４に応じた位置や移動速度でアーム部１０５，１０７（図３参照）を動作させる制御情報Ｄ５を生成する。また、制御情報生成部７５は、可動部用マーカー部４６の撮像データＤ１から生成した位置情報Ｄ２に基づいて、エンドエフェクタ４５（ハンド部１０９，１１１）の位置や向き等を検出する。制御情報生成部７５は、アーム部１０５，１０７を移動させる制御情報Ｄ５に、ハンド部１０９，１１１を回転や開閉させる制御を追加する。これにより、制御情報生成部７５は、アーム部１０５，１０７を所定の作業位置（図４の供給位置用マーカー部８４など）まで移動させた後、ハンド部１０９，１１１によってワークＷ１，Ｗ２を挟持する一連の作業の制御情報Ｄ５を生成することが可能となる。【００７５】
また、制御情報生成部７５は、Ｓ３１において、補正作業を制御情報Ｄ５に追加する処理を実行する。具体的には、制御情報生成部７５は、例えば、アーム部１０５，１０７を供給装置８１，８２の供給位置（供給位置用マーカー部８４，８５の位置）まで移動させた後、ハンド部１０９，１１１によるワークＷ１，Ｗ２の挟持作業を実施する前に、供給装置８２の供給位置とハンド部１０９，１１１の位置との誤差を補正する情報を制御情報Ｄ５に追加する。例えば、ロボットアーム１０１のハンド部１０９に基板Ｂ等を撮像するカメラが搭載されている場合には、当該カメラを用いて供給装置８２の供給位置を撮像し、撮像データに基づいて、ハンド部１０９と供給位置との相対的な位置の誤差を補正する処理を、制御情報Ｄ５に追加する。このようにして、ティーチング装置１０は、モーションキャプチャーを実行して制御情報Ｄ５を生成することが可能となる。【００７６】
因みに、上記実施形態において、カメラ１３は、検出部の一例である。マーカー部４３は、位置マーカー部の一例である。エンドエフェクタ４５は、可動部の一例である。アクチュエーター４９は、駆動部の一例である。ＣＰＵ６１は、処理部の一例である。ロボットアーム１０１，１０３は、ロボットの一例である。アーム部１０５，１０７は、移動部の一例である。ハンド部１０９，１１１は、作業部の一例である。撮像データＤ１は、検出データの一例である。サンプリング点ＳＰ１Ａ，ＳＰ１Ｂ，ＳＰ２Ａ，ＳＰ２Ｂは、特徴点の一例である。Ｓ１７の処理は、位置情報生成処理の一例である。Ｓ２５の処理は、移動情報生成処理の一例である。Ｓ３１の処理は、制御情報生成処理の一例である。【００７７】
以上、上記した本実施形態によれば以下の効果を奏する。
＜効果１＞ティーチング装置１０は、図３に示すアーム部１０５，１０７と、ハンド部１０９，１１１とを備えるロボットアーム１０１，１０３を制御する制御情報Ｄ５を生成する。ティーチング装置１０は、ハンド部１０９，１１１が作業位置において実施するワークＷ１，Ｗ２を挟む作業等の作業情報Ｄ３を入力するための入力部６７を備える。ユーザは、マーカー部４３を設けた治具１５を動かしてモーションキャプチャーを実施する際に、適切なタイミングで入力部６７を操作し、産業用ロボット１００にさせたい作業内容を作業情報Ｄ３として入力することで、ティーチング装置１０に対しハンド部１０９，１１１の細かい作業内容を設定することが可能となる。これにより、ティーチング装置１０は、治具１５の位置情報Ｄ２等と、作業情報Ｄ３とをリンクさせた一連の作業の制御情報Ｄ５を生成することが可能となる。【００７８】
＜効果２＞治具１５は、駆動スイッチ５１が操作されることによってアクチュエーター４９が駆動する。アクチュエーター４９の駆動に応じて、可動部用マーカー部４６が取り付けられたエンドエフェクタ４５は、駆動する。制御情報生成装置１７は、モーションキャプチャー時において、アクチュエーター４９の駆動に応じて可動する可動部用マーカー部４６の動作をトラッキングする。これにより、ユーザは、所定の作業位置において、アクチュエーター４９によってエンドエフェクタ４５を動作させることによって、人の指等で模擬する場合に比べて、ワークＷ１，Ｗ２を掴んだりする動作等をより忠実に再現することが可能となる。【００７９】
＜効果３＞制御情報生成部７５は、Ｓ３１において、アーム部１０５，１０７を供給装置８１，８２の供給位置（供給位置用マーカー部８４，８５の位置）まで移動させた後、ハンド部１０９，１１１によるワークＷ１，Ｗ２の挟持作業を実施する前に、供給装置８２の供給位置とハンド部１０９，１１１の位置との誤差を補正する情報を制御情報Ｄ５に追加する。治具１５をユーザが手で動かす場合には、マーカー部４３の移動の精度は、ユーザが治具１５を操る精度に依存する。これに対し、制御情報生成部７５は、作業位置で作業を実施する前に位置補正を実施する情報を制御情報Ｄ５に追加することで、高い精度が要求される作業にも対応可能な制御情報Ｄ５を生成することが可能となる。【００８０】
＜効果４＞移動情報生成部７３は、Ｓ２５において、図６に示す複数のサンプリング点ＳＰ１の中から特徴点の抽出し、抽出した特徴点（例えば、サンプリング点ＳＰ１Ａ，ＳＰ１Ｂ）の座標位置から、特徴点間の傾き等を演算しマーカー部４３Ａ（治具１５Ａ）の移動方向を検出する。また、移動情報生成部７３は、特徴点間のサンプリング点ＳＰ１の位置情報Ｄ２を近似する補正処理を行う。これにより、生成した制御情報Ｄ５に基づいてロボットアーム１０１，１０３をより滑らかに動作させ、無駄な動作を省いて作業効率を向上させることが可能となる。【００８１】
＜効果５＞また、移動情報生成部７３は、特徴点とは別の処理方法として、位置情報生成部７１によってサンプリングされた複数のサンプリング点ＳＰ１うち、隣接するサンプリング点ＳＰ１の座標位置から傾きを演算し、マーカー部４３Ａ（治具１５Ａ）の移動方向を検出してもよい。あるいは、移動情報生成部７３は、例えば、隣接するサンプリング点ＳＰ１間の距離と、位置情報生成部７１のサンプリング周期とを乗算してマーカー部４３Ａの移動速度を検出してもよい。このような構成では、サンプリング周期の時間を変更することで、マーカー部４３の位置、移動方向、及び移動速度を検出する精度を調整することが可能となる。【００８２】
＜効果６＞移動情報生成部７３は、Ｓ２７において、サンプリング点ＳＰ１，ＳＰ２を結ぶ曲線の曲率等が、産業用ロボット１００の移動能力を超えていた場合、位置情報Ｄ２を補正し、移動情報Ｄ４の生成を再度実行する。これにより、生成した制御情報Ｄ５を実際に制御する産業用ロボット１００の移動能力に最適化し、当該産業用ロボット１００を制御するデータとして制御情報Ｄ５を使用することが容易となる。【００８３】
＜効果７＞位置情報生成部７１は、Ｓ１７において、３つの基準マーカー部９１の重心位置を基準として、マーカー部４３Ａ，４３Ｂの相対的な座標位置を演算する。これにより、生成した制御情報Ｄ５を使用する場合、基準マーカー部９１の重心位置を、実際の作業領域内の基準、例えば、図３に示す基板Ｂの中心位置に合わせることで、産業用ロボット１００を精度よく制御することが可能となる。【００８４】
なお、本発明は、上記実施形態に限定されるものではなく、当業者の知識に基づいて種々の変更、改良を施した種々の態様で実施することが可能である。
例えば、上記実施形態では、複数の治具１５Ａ，１５Ｂを用いたが、これに限らず、１つ又は３つ以上の治具１５を用いてもよい。また、１つの治具１５を複数回動作させて取得した複数の制御情報Ｄ５を、後から合成してもよい。【００８５】
また、上記実施形態において、治具１５の構成、可動部用マーカー部４６の位置等は、一例であり、適宜変更可能である。図７は、別例の治具１２０を示している。なお、以下の説明では、上記実施形態と同様の構成については、同一符号を付し、その説明を適宜省略する。治具１２０の一対のエンドエフェクタ１２３，１２４は、外側に開く湾曲形状をなしており、互いの間にマーカー部４３が設けられている。エンドエフェクタ１２３，１２４の各々には、形状の異なる可動部用マーカー１２６，１２７が設けられている。可動部用マーカー１２６，１２７は、一方に長い長方形状をなしており、エンドエフェクタ１２３，１２４の延設方向に向かって配置されている。可動部用マーカー１２６は、可動部用マーカー１２７に比べて長くなっている。このような構成では、可動部用マーカー１２６，１２７の反射特性だけでなく、形状に差を設けることで、治具１２０の上下方向の向きや傾きを検出し易くすることが可能となる。【００８６】
また、治具１２０の本体部１２９には、３つの本体部用マーカー部１３１が設けられている。３つの本体部用マーカー部１３１は、互いの距離が異なるように、例えば、１つの直角三角形の各頂点となる位置に設けられている。このような構成では、例えば、３つの本体部用マーカー部１３１の各位置を検出し、三角測量の原理等を利用したアルゴリズムによって治具１２０の傾き等を検出することが可能となる。【００８７】
また、図８に示すように、エンドエフェクタ４５を備えない治具１４０を用いてもよい。図８に示す治具１４０は、Ｔ字形状をなしており、直交する３方向に延びる部分のそれぞれにマーカー部１４２，１４３，１４４が設けられている。マーカー部１４２〜１４４は、一方に長い長方形状をなしており、互いに異なる長さとなっている。このような構成の治具１４０を用いても、制御情報生成装置１７に対して、アーム部１０５，１０７の位置や移動方向等を教示することが可能となる。【００８８】
また上記実施形態では、治具１５Ａのマーカー部４３Ａを、照明装置３３が照射する特定の波長の光を反射する反射特性とし、もう一方の治具１５Ｂのマーカー部４３Ｂを、照明装置３４が照射する特定の波長の光を反射する反射特性として構成し、２つのマーカー部４３Ａ，４３Ｂの反射特性に差を設けることで識別していたが、識別方法はこれに限定されない。例えば、図９に示すように、一方の治具１５０に３つのマーカー部１５１を設け、図１０に示すように、他方の治具１６０に４つのマーカー部１６１を設けて、それぞれをグループ化して識別してもよい。なお、以下の説明では、図７の治具１２０と同様の構成については、同一符号を付し、その説明を適宜省略する。【００８９】
図９に示すように、３つのマーカー部１５１の各々は、エンドエフェクタ１２３の先端部、エンドエフェクタ１２４の先端部、本体部１２９の中央部分にそれぞれ設けられ、図９中に一点鎖線で示すように、略正三角形の頂点の位置に設けられている。また、図１０に示すように、４つのマーカー部１６１は、エンドエフェクタ１２３の先端部、エンドエフェクタ１２４の先端部、本体部１２９における端部部分（図１０における左右両側の端部）にそれぞれ設けられ、図１０中に一点鎖線で示すように、台形を構成する位置に設けられている。このため、マーカー部１５１の重心位置１５３と、マーカー部１６１の重心位置１６３は、互いに異なる位置となる。【００９０】
そして、例えば、モーションキャプチャーを実行する前の初期設定として、制御情報生成装置１７は、トラッキング領域Ｒ１内に挿入された治具１５０を撮像し、３つのマーカー部１５１をグループ化し、マーカー部１５１の重心位置１５３を被検出対象として設定する。同様に、制御情報生成装置１７は、治具１６０を撮像し、４つのマーカー部１６１をグループ化し、マーカー部１６１の重心位置１６３を被検出対象として設定する。【００９１】
これにより、グループ化された各マーカー部１５１，１６１の群単位で、撮像データＤ１から抽出した位置情報Ｄ２（座標位置）のマッチングを実施することで、各マーカー部１５１，１６１（重心位置１５３，１６３）の位置や移動方向の混同を防ぎ、精度よく検出することが可能となる。また、マーカー部１５１，１６１の互いの重心位置１５３，１６３が異なるため、抽出した座標位置と、マーカー部１５１，１６１のマッチングが容易となる。また、例えば、３つのマーカー部１５１の一つの位置が検出できなくとも、他のマーカー部１５１の位置情報に基づいて検出できないマーカー部１５１の位置を補間し、重心位置１５３を取得することで、位置の消失を防止することが可能となる。【００９２】
また、２つのマーカー部４３Ａ，４３Ｂの識別方法は、上記した反射特性やグループ化に限らず、２つのマーカー部４３Ａ，４３Ｂの互いの色、大きさ、形状等を異ならせることで、識別してもよい。あるいは、これらの組み合わせによって異なる特性を付与し、マーカー部４３Ａ，４３Ｂを識別してもよい。あるいは、マーカー部４３Ａ，４３Ｂを異なる発光色のＬＥＤ等で構成し、マーカー部４３Ａ，４３Ｂ自体を発光させてもよい。【００９３】
また、上記実施形態において、ＣＰＵ６１は、Ｓ２７において曲率及び移動速度に基づいて、位置情報Ｄ２を補正したが、これに限らず、産業用ロボット１００の最大加速度に基づいて位置情報Ｄ２を補正してもよい。【００９４】
また、上記実施形態では、入力部６７を操作してリアルタイムで作業情報Ｄ３を入力したが、これに限らない。例えば、特定のマーカー部を予め登録しておき、制御情報生成装置１７は、その特定のマーカー部を検出したタイミングを、作業情報Ｄ３を追加するタイミングの情報として制御情報Ｄ５に保存してもよい。ユーザは、制御情報Ｄ５を生成した後に、制御情報Ｄ５に保存された作業情報Ｄ３を挿入すべきタイミングの情報を検索し、必要な作業情報Ｄ３を追加してもよい。従来の構成では、メインプログラムのどのポイントに必要なサブルーチンを追加するのかを、メインプログラムの内容を見ながら検索する必要があった。これに対し、当該方法によれば、追加すべきポイントが予め設定されているため、サブルーチンの追加が容易となる。この場合、特定のマーカー部は、本願における入力部の一例となる。【００９５】
また、上記実施形態において、位置情報生成部７１は、ユーザの手作業によるぶれを修正するため、生成した位置情報Ｄ２（座標位置）を補正する処理を実行してもよい。
また、制御情報Ｄ５は、位置情報生成部７１が生成した位置情報Ｄ２のすべてを使用せずに、特徴点（開始点、通過点、到達点）だけを抽出して、その特徴点を結ぶ線路の移動を可能とする制御情報Ｄ５を生成してもよい。【００９６】
また、本願におけるロボットとして、ロボットアーム１０１，１０３に適用する例について説明したが、これに限定されない。例えば、本願におけるロボットは、電子部品の吸着やレーザビームの照射、ネジ締め等の作業を行う作業部を備えるロボットでもよい。また、シリアルリンク機構を備えたロボットに限らず、ＸＹ軸方向に直交して動作するロボット、パラレルリンク機構を備えたロボットでもよい。
また、上記実施形態では、光学方式を用いたモーションキャプチャーについて説明したが、本願におけるモーションキャプチャーは、他との方法、例えば、磁気センサの動作を検出する磁気方式でもよい。例えば、治具１５に位置データを送信する磁気センサを取り付け、カメラ１３の代わりに位置データを受信する受信装置を取り付けてもよい。この場合、当該磁気センサは、本願における移動部の位置を示す位置マーカー部に対応する。また、受信装置は、検出部に対応する。
【符号の説明】
【００９７】
１０  ティーチング装置、１３  カメラ（検出部）、１５  治具、４３  マーカー部（位置マーカー部）、４５  エンドエフェクタ（可動部）、４６  可動部用マーカー部、４９  アクチュエーター（駆動部）、６１  ＣＰＵ（処理部）、６７  入力部、９１  基準マーカー部、１０１，１０３  ロボットアーム（ロボット）、１０５，１０７  アーム部（移動部）、１０９，１１１  ハンド部（作業部）、Ｄ１  撮像データ（検出データ）、Ｄ２  位置情報、Ｄ３  作業情報、Ｄ５  制御情報、ＳＰ１，ＳＰ２  サンプリング点、ＳＰ１Ａ，ＳＰ１Ｂ，ＳＰ２Ａ，ＳＰ２Ｂ  サンプリング点（特徴点）。
【図１】
2016151668.tif 000003
【図２】
2016151668.tif 000004
【図３】
2016151668.tif 000005
【図４】
2016151668.tif 000006
【図５】
2016151668.tif 000007
【図６】
2016151668.tif 000008
【図７】
2016151668.tif 000009
【図８】
2016151668.tif 000010
【図９】
2016151668.tif 000011
【図１０】
2016151668.tif 000012
【国際調査報告】
2016151668.tif 000013
2016151668.tif 000014
2016151668.tif 000015
2016151668.tif 000016