(57)【要約】  【課題】ロボットが作業を行う現場（例えばセルラインなど）の現実のレイアウトを、容易に構築する。  【解決手段】教示出力装置は、ロボットに対して教示する作業内容を取得する作業内容取得部と、前記取得された作業内容に応じて、前記ロボットの作業領域のレイアウトを示すレイアウト情報を生成するレイアウト生成部と、前記生成されたレイアウト情報に基づいて、実寸のレイアウトを出力させるレイアウト出力部と、を有する。【選択図】図１
2015080842.tif 000002
【特許請求の範囲】
【請求項１】
ロボットに対して教示する作業内容を取得する作業内容取得部と、
前記取得された作業内容に応じて、前記ロボットの作業領域のレイアウトを示すレイアウト情報を生成するレイアウト生成部と、
前記生成されたレイアウト情報に基づいて、実寸のレイアウトを出力させるレイアウト出力部と、
を有することを特徴とする教示出力装置。
【請求項２】
請求項１に記載の教示出力装置であって、
前記作業内容取得部は、前記作業内容に含まれる作業対象物が配置される場所を取得し、
前記レイアウト生成部は、前記場所を含むレイアウト情報を生成し、
前記レイアウト出力部は、前記場所を示す実寸のレイアウトを出力させる、
ことを特徴とする教示出力装置。
【請求項３】
請求項２に記載の教示出力装置であって、
前記作業内容取得部は、前記作業対象物又は前記場所に関する補助情報を取得し、
前記レイアウト生成部は、前記作業対象物又は前記場所に関する補助情報を含むレイアウト情報を生成し、
前記レイアウト出力部は、前記場所に関連付けて、前記作業対象物又は前記場所に関する補助情報を示すレイアウトを出力させる、
ことを特徴とする教示出力装置。
【請求項４】
請求項２又は３に記載の教示出力装置であって、
前記レイアウト生成部は、前記作業対象物の色に応じて前記場所の色を決定し、
前記レイアウト出力部は、前記場所に、前記場所の色を描画したレイアウトを出力させる、
ことを特徴とする教示出力装置。
【請求項５】
請求項２又は３に記載の教示出力装置であって、
前記レイアウト出力部は、前記場所に、当該場所に配置される前記作業対象物の存在又は位置をチェックすることに使用する所定のマークを描画したレイアウトを出力させる、
ことを特徴とする教示出力装置。
【請求項６】
請求項１〜５いずれか一項に記載の教示出力装置であって、
前記作業領域を含む撮像画像を取得する画像取得部と、
前記生成されたレイアウト情報に基づいて生成した第一のレイアウト画像データと、前記取得された撮像画像に基づいて生成した第二のレイアウト画像データとを照合することにより、レイアウトのチェックを行うレイアウトチェック部と、
を有することを特徴とする教示出力装置。
【請求項７】
請求項１〜６いずれか一項に記載の教示出力装置であって、
前記レイアウト出力部は、前記作業領域上に敷くレイアウトシートをプリンターに印刷させる、
ことを特徴とする教示出力装置。
【請求項８】
請求項１〜６いずれか一項に記載の教示出力装置であって、
前記レイアウト出力部は、プロジェクターに前記作業領域上にレイアウトを投影させる、
ことを特徴とする教示出力装置。
【請求項９】
請求項１〜６いずれか一項に記載の教示出力装置であって、
前記レイアウト出力部は、前記作業領域がある作業台に組み込まれたディスプレイにレイアウトを表示させる、
ことを特徴とする教示出力装置。
【請求項１０】
ロボットであって、
前記ロボットに対して教示される作業内容を取得する作業内容取得部と、
前記取得された作業内容に応じて、前記ロボットの作業領域のレイアウトを示すレイアウト情報を生成するレイアウト生成部と、
前記生成されたレイアウト情報に基づいて、実寸のレイアウトを出力させるレイアウト出力部と、
を有することを特徴とするロボット。
【請求項１１】
ロボットと、
前記ロボットに対して教示する作業内容を取得する作業内容取得部と、
前記取得された作業内容に応じて、前記ロボットの作業領域のレイアウトを示すレイアウト情報を生成するレイアウト生成部と、
前記生成されたレイアウト情報に基づいて、実寸のレイアウトを出力させるレイアウト出力部と、
前記ロボットに対して前記作業内容を出力する作業内容出力部と、
を有することを特徴とするロボットシステム。
【請求項１２】
ロボットに対して教示する作業内容を取得する作業内容取得ステップと、
前記取得された作業内容に応じて、前記ロボットの作業領域のレイアウトを示すレイアウト情報を生成するレイアウト生成ステップと、
前記生成されたレイアウト情報に基づいて、実寸のレイアウトを出力させるレイアウト出力ステップと、
を含むことを特徴とする教示出力方法。
【請求項１３】
ロボットに対して教示する作業内容を取得する作業内容取得部と、
前記取得された作業内容に応じて、前記ロボットの作業領域のレイアウトを示すレイアウト情報を生成するレイアウト生成部と、
前記生成されたレイアウト情報に基づいて、実寸のレイアウトを出力させるレイアウト出力部として、
コンピューターを機能させることを特徴とするプログラム。
【請求項１４】
ロボットが行う作業内容に含まれる作業対象物が配置される場所と、
前記場所に関連付けられた、前記作業対象物又は前記場所に関する補助情報と、
を示したことを特徴とするレイアウトシート。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、教示出力装置、ロボット、ロボットシステム、教示出力方法、プログラム、及びレイアウトシートに関する。
【背景技術】
【０００２】
特許文献１では、予めオフラインシステムで周辺物体（テーブル、ワーク等）の３次元モデルをロボット等の３次元モデルと共にレイアウトし、対象部品にロボットの教示点を定義し、これらの情報を教示操作盤の画面上に表示する。また、特許文献１では、モデル画像上の選択指定教示点をカメラ画像上の当該選択指定教示点に対応する位置に移動させ、その位置を選択指定教示点の修正教示点の位置及び姿勢とする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２６５０４１
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１のように、オフラインで教示された教示点を現実のレイアウトに合わせて自動的に修正できるようにするには、現実のレイアウトが予定されているレイアウトにある程度似ている必要がある。そのため、ユーザーは、事前に、現実のレイアウトをある程度正確に調整する作業が必要である。
【０００５】
しかしながら、実際には、オフラインで教示されたレイアウトに合うように現実のレイアウトを調整することは容易ではない。例えば、画面上に表示されたレイアウトを実現するためにワークをどのように動かせばよいかを決めるのは、かなりの熟練を要する。
【０００６】
そこで、本発明は、ロボットが作業を行う現場（例えばセルラインなど）の現実のレイアウトを、容易に構築することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するための本発明の第一の態様は、教示出力装置であって、ロボットに対して教示する作業内容を取得する作業内容取得部と、前記取得された作業内容に応じて、前記ロボットの作業領域のレイアウトを示すレイアウト情報を生成するレイアウト生成部と、前記生成されたレイアウト情報に基づいて、実寸のレイアウトを出力させるレイアウト出力部と、を有することを特徴とする。これにより、ロボットの作業領域の実寸のレイアウトが出力されるため、ユーザーは現実のレイアウトを容易に構築することができる。
【０００８】
前記作業内容取得部は、前記作業内容に含まれる作業対象物が配置される場所を取得し、前記レイアウト生成部は、前記場所を含むレイアウト情報を生成し、前記レイアウト出力部は、前記場所を示す実寸のレイアウトを出力させる、ことを特徴としてもよい。これにより、作業対象物の配置場所のレイアウトが具体的に教示されるため、ユーザーは現実のレイアウトを容易にかつ正確に構築することができる。
【０００９】
前記作業内容取得部は、前記作業対象物又は前記場所に関する補助情報を取得し、前記レイアウト生成部は、前記作業対象物又は前記場所に関する補助情報を含むレイアウト情報を生成し、前記レイアウト出力部は、前記場所に関連付けて、前記作業対象物又は前記場所に関する補助情報を示すレイアウトを出力させる、ことを特徴としてもよい。これにより、作業対象物の配置場所のレイアウトに加え、補助情報が教示されるため、ユーザーは現実のレイアウトをより容易にかつより正確に構築することができる。
【００１０】
前記レイアウト生成部は、前記作業対象物の色に応じて前記場所の色を決定し、前記レイアウト出力部は、前記場所に、前記場所の色を描画したレイアウトを出力させる、ことを特徴としてもよい。これにより、レイアウト上に置かれた作業対象物に対する画像処理やユーザーによる認識性が向上する。
【００１１】
前記レイアウト出力部は、前記場所に、当該場所に配置される前記作業対象物の存在又は位置をチェックすることに使用する所定のマークを描画したレイアウトを出力させる、ことを特徴としてもよい。これにより、画像処理やユーザーによる作業対象物の存在や位置のチェックを簡単にすることができる。
【００１２】
前記教示出力装置であって、前記作業領域を含む撮像画像を取得する画像取得部と、前記生成されたレイアウト情報に基づいて生成した第一のレイアウト画像データと、前記取得された撮像画像に基づいて生成した第二のレイアウト画像データとを照合することにより、レイアウトのチェックを行うレイアウトチェック部と、を有することを特徴としてもよい。これにより、レイアウトが正確に行われたか否かの判断を簡単に行うことができる。
【００１３】
前記レイアウト出力部は、前記作業領域上に敷くレイアウトシートをプリンターに印刷させる、ことを特徴としてもよい。これにより、作業台を改造することなく、レイアウトシートを敷くだけでレイアウトがユーザーに教示される。
【００１４】
前記レイアウト出力部は、プロジェクターに前記作業領域上にレイアウトを投影させる、ことを特徴としてもよい。これにより、様々な種類のレイアウトに素早く対応できる。
【００１５】
前記レイアウト出力部は、前記作業領域がある作業台に組み込まれたディスプレイにレイアウトを表示させる、ことを特徴としてもよい。これにより、様々な種類のレイアウトに素早く対応できる。
【００１６】
上記の課題を解決するための本発明の第二の態様は、ロボットであって、前記ロボットに対して教示される作業内容を取得する作業内容取得部と、前記取得された作業内容に応じて、前記ロボットの作業領域のレイアウトを示すレイアウト情報を生成するレイアウト生成部と、前記生成されたレイアウト情報に基づいて、実寸のレイアウトを出力させるレイアウト出力部と、を有することを特徴とする。これにより、ロボットの作業領域の実寸のレイアウトが出力されるため、ユーザーは現実のレイアウトを容易に構築することができる。
【００１７】
上記の課題を解決するための本発明の第三の態様は、ロボットシステムであって、ロボットと、前記ロボットに対して教示する作業内容を取得する作業内容取得部と、前記取得された作業内容に応じて、前記ロボットの作業領域のレイアウトを示すレイアウト情報を生成するレイアウト生成部と、前記生成されたレイアウト情報に基づいて、実寸のレイアウトを出力させるレイアウト出力部と、前記ロボットに対して前記作業内容を出力する作業内容出力部と、を有することを特徴とする。これにより、ロボットの作業領域の実寸のレイアウトが出力されるため、ユーザーは現実のレイアウトを容易に構築することができる。
【００１８】
上記の課題を解決するための本発明の第四の態様は、教示出力方法であって、ロボットに対して教示する作業内容を取得する作業内容取得ステップと、前記取得された作業内容に応じて、前記ロボットの作業領域のレイアウトを示すレイアウト情報を生成するレイアウト生成ステップと、前記生成されたレイアウト情報に基づいて、実寸のレイアウトを出力させるレイアウト出力ステップと、を含むことを特徴とする。これにより、ロボットの作業領域の実寸のレイアウトが出力されるため、ユーザーは現実のレイアウトを容易に構築することができる。
【００１９】
上記の課題を解決するための本発明の第五の態様は、プログラムであって、ロボットに対して教示する作業内容を取得する作業内容取得部と、前記取得された作業内容に応じて、前記ロボットの作業領域のレイアウトを示すレイアウト情報を生成するレイアウト生成部と、前記生成されたレイアウト情報に基づいて、実寸のレイアウトを出力させるレイアウト出力部として、コンピューターを機能させることを特徴とする。これにより、ロボットの作業領域の実寸のレイアウトが出力されるため、ユーザーは現実のレイアウトを容易に構築することができる。
【００２０】
上記の課題を解決するための本発明の第六の態様は、レイアウトシートであって、ロボットが行う作業内容に含まれる作業対象物が配置される場所と、前記場所に関連付けられた、前記作業対象物又は前記場所に関する補助情報と、を示したことを特徴とする。これにより、ロボットの作業領域のレイアウトが具体的に教示されるため、ユーザーは現実のレイアウトを容易にかつ正確に構築することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態に係るロボットシステムの概略構成の一例を示す図である。
【図２】レイアウトシートの一例を示す図である。
【図３】教示出力装置の機能構成の一例を示す図である。
【図４】作業プログラムのデータ構造の一例を示す図である。
【図５】オブジェクト情報のデータ構造の一例を示す図である。
【図６】レイアウト情報のデータ構造の一例を示す図である。
【図７】教示出力装置の機能を実現するハードウェア構成の一例を示す図である。
【図８】レイアウト生成処理の一例を示すフロー図である。
【図９】レイアウトチェック処理の一例を示すフロー図である。
【発明を実施するための形態】
【００２２】
本発明の実施形態について、図面を参照して説明する。
【００２３】
図１は、本発明の実施形態に係るロボットシステムの概略構成の一例を示す図である。ロボットシステム１は、ロボット２と、教示出力装置４とを備える。ロボット２は、制御装置３を備える。
【００２４】
ロボット２は、制御装置３により制御され、目的の作業を行う。ロボット２は、例えば、作業台Ｔの近くに配置され、作業台Ｔ上に敷かれたレイアウトシート６（図２で詳述）上の所定の作業領域内で作業を行う。ロボット２の作業内容は、特に限定されないが、例えば、道具Ｃを用いてワークＥをワークＡに嵌め込み、完成品Ｈを製造する作業が考えられる。
【００２５】
ロボット２は、胴部２０と、アーム２１と、ハンド２２と、脚部２４と、頭部２５と、撮像装置２６とを有する。
【００２６】
アーム２１は、胴部２０に設けられる。アーム（「マニピュレーター」ともいう。）２１は、一以上のジョイント（「回転軸」ともいう。）２１ａ及び一以上のアーム部材（「リンク」ともいう。）２１ｂを含む。
【００２７】
ジョイント２１ａには、それらを動作させるためのアクチュエーター（図示せず）が設けられる。アクチュエーターは、例えば、サーボモーターやエンコーダーなどを備える。エンコーダーが出力するエンコーダー値は、制御装置３によるロボット２のフィードバック制御などに使用される。
【００２８】
また、アーム２１の先端には、力覚センサー２１ｃが設けられる。力覚センサーは、ロボット２が出している力に対する反力として受けている力や、モーメントを検出するセンサーである。力覚センサーとしては、例えば、並進３軸方向の力成分と、回転３軸回りのモーメント成分の６成分を同時に検出することができる６軸力覚センサーを用いることができる。なお、力覚センサーは、６軸に限らず、例えば３軸でもよい。
【００２９】
各回転軸を連動させることにより、アーム２１の先端部などに設定された注目位置（「エンドポイント」ともいう。）を、所定の可動範囲内で自在に移動させたり自由な方向へ向けたりすることができる。なお、エンドポイントの位置は、アームの先端部に限定されず、例えば、エンドエフェクターの先端部などに設定されてもよい。
【００３０】
なお、アーム２１は、マニピュレーターの一種ということができる。マニピュレーターは、エンドポイントの位置を移動させる機構であり、アームに限られず様々な形態をとることができる。
【００３１】
ハンド２２は、アーム２１の先端に設けられる。ハンド２２は、例えば、複数の指を備え、少なくとも２本の指で作業対象物を把持したり解放したりすることができる。ハンド２２は、アーム２１の先端部に対して着脱可能であってもよい。
【００３２】
なお、ハンド２２は、エンドエフェクターの一種ということができる。エンドエフェクターは、作業対象物を把持したり、持ち上げたり、吊り上げたり、吸着したり、ワークを加工したりするための部材である。エンドエフェクターは、ハンド、フック、吸盤など、様々な形態をとることができる。また、エンドエフェクターは、一本のアームに対して複数設けるようにしてもよい。
【００３３】
なお、ロボット２の構成は図示した例に限られない。例えば、図１ではジョイント数が６個（６軸）の例が示されているが、ジョイントの数（「軸数」ともいう。）やリンクの数を増減させてもよい。また、ジョイント、リンク、ハンド等の各種部材の形状、大きさ、配置、構造等も適宜変更してよい。
【００３４】
撮像装置２６は、頭部２５に２台設けられる。撮像装置２６は、例えば、ＣＣＤ（Charge Coupled Device）、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）等を有し、作業台Ｔ上の作業領域を撮像して、ステレオの画像データを生成する。
【００３５】
制御装置３は、ロボット２の全体を制御する。例えば、制御装置３は、教示出力装置４から出力される作業プログラムに基づいて、ロボット２を動作させる制御命令を生成し、生成した制御命令に従ってアクチュエーターを駆動させることでロボット２を動作させる。また、制御装置３は、撮像装置２６に撮像を行わせ、取得した撮像画像を教示出力装置４に出力する。
【００３６】
教示出力装置４は、ユーザーの操作に従って、ロボット２に実行させる作業内容を示す作業プログラムを生成する。また、教示出力装置４は、生成した作業プログラムを制御装置３に出力することにより、ロボット２に対して教示を行う。また、教示出力装置４は、生成した作業プログラムに基づいて、ワークや道具等の作業対象物を配置すべき領域などをユーザーに教示するレイアウト情報を生成する。また、教示出力装置４は、当該生成したレイアウト情報に基づいて、印刷装置５によりレイアウトシート６（図２で詳述）を印刷させる。また、教示出力装置４は、ロボット２の撮像装置２６から出力される画像データと、レイアウト情報に基づいて生成した画像データとを照合することにより、レイアウトシート６上の現実のレイアウトのチェックを行う。教示出力装置４については、後に詳述する。
【００３７】
上記のロボットシステム１の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成例に限られない。また、一般的なロボットシステムが備える構成を排除するものではない。
【００３８】
例えば、撮像装置２６の設置位置は、特に限定されず、ロボット２のアーム２１の先端部分、胴体部などに設けられてもよいし、天井、壁などのロボット２の外部に設置されてもよい。また、例えば、撮像装置２６に加えて、他の撮像装置を設けるようにしてもよい。また、例えば、制御装置３は、ロボット２と別に設けられ、ロボット２に外部から接続するようにしてもよい。また、例えば、制御装置３と教示出力装置４は、一体となっていてもよい。
【００３９】
次に、レイアウトシート６について説明する。
【００４０】
本実施形態では、ユーザーは、ロボット２の作業内容に応じて作業領域のレイアウトを行う事前に、教示出力装置４によりレイアウトシート６を作成する。また、ユーザーは、作成したレイアウトシート６を作業台Ｔの上に敷き、レイアウトシート６に教示されている内容に従って、ワークや道具などの作業対象物を配置する、すなわち作業領域のレイアウトを行う。
【００４１】
図２は、レイアウトシートの一例を示す図である。レイアウトシート６は、矩形状のシートであり、印刷装置５（図１参照）により印刷される。レイアウトシート６は、例えば、紙、樹脂などの素材のシート状の印刷媒体とすることができる。また、レイアウトシート６の実寸サイズは、作業台Ｔの上面のサイズ、ロボット２の作業領域のサイズ等を考慮して、予め決定される。従って、レイアウトシート６の印刷に使用される画像データは、実寸サイズに対応している。
【００４２】
レイアウトシート６には、配置枠６１と、補助情報枠６２と、存在チェックマーク６３と、位置決めマーク６４と、照合マーク６５とが描かれる。
【００４３】
配置枠６１は、作業に関係するワーク、道具、完成品などの作業対象物を置くべき領域を示す。図２の例では、配置枠６１ａは、ワークＡを置く領域を示し、配置枠６１ｂは、ワークＥを置く領域を示し、配置枠６１ｃは、道具Ｃを置く領域を示し、配置枠６１ｄは、完成品Ｈを置く領域を示す。
【００４４】
配置枠６１内の色（「背景色」ともいう。）は、置かれる作業対象物の色に応じて決定される。例えば、対象物の色が暗い色である場合には、配置枠６１の色は明るい色とすることができる。図２の例では、配置枠６１ｂは、暗い色となっている。
【００４５】
補助情報枠６２は、配置枠６１と関連付けられて配置される。図２の例では、配置枠６１ａ〜６１ｄに、それぞれ補助情報枠６２ａ〜６２ｄが線により関連付けられている。補助情報枠６２内には、関連付けられた配置枠６１に関する補助情報が示される。
【００４６】
補助情報は、例えば、配置枠６１の名称、説明文などである。配置枠６１に置かれる作業対象物の名称、説明文などが示されてもよい。補助情報は、図が含まれていてもよい。補助情報枠６２ａには、配置枠６１ａの名称「場所Ｂ」とその説明が記載されている。補助情報枠６２ｂには、配置枠６１ｂの名称「場所Ｆ」とその説明が記載されている。補助情報枠６２ｃには、配置枠６１ｃの名称「道具Ｃ」とその説明（図を含む。）が記載されている。補助情報枠６２ｄには、配置枠６１ｄの名称「場所Ｉ」とその説明が記載されている。
【００４７】
存在チェックマーク６３は、配置枠６１内に示される。後述するように、撮像装置２６で撮像した画像データ中に、存在チェックマーク６３が認識できるか否かにより、配置枠６１内に作業対象物が置かれているか否かを判定することができる。また、ユーザーも、存在チェックマーク６３が視認できるか否かにより、配置枠６１内に作業対象物が置かれているか否かを確認することができる。図２の例では、配置枠６１ｃ内に、存在チェックマーク６３が示されているが、他の配置枠内に示されてもよい。
【００４８】
位置決めマーク６４は、配置枠６１内に示される。後述するように、撮像装置２６で撮像した画像データ中に、位置決めマーク６４が認識できるか否かにより、作業対象物が正しい位置に置かれているか否かを判定することができる。また、ユーザーも、位置決めマーク６４が視認できるか否かにより、配置枠６１内に作業対象物が正しく置かれているか否かを確認することができる。図２の例では、配置枠６１ｃ内に、位置決めマーク６４が示されているが、他の配置枠内に示されてもよい。
【００４９】
照合マーク６５は、レイアウトシート６の４角の近傍にそれぞれ示される。後述するように、撮像画像に含まれるレイアウトシート６中の照合マーク６５と、レイアウト情報に基づいて生成されたレイアウトシート６の画像データ中の照合マーク６５とが合うように、画像処理が行われ、現実のレイアウトのチェックが行われる。
【００５０】
もちろん、上記の図２のレイアウトシートは一例であり、レイアウト作業の効率、正確性が向上するのであれば、他の構成であってもよい。例えば、枠の形状、枠の大きさ、マークの位置、マークの形状などは限定されない。また、レイアウトシート自体の形状も矩形状に限定されない。また、例えば、配置枠は、作業対象物を置くべき領域の位置及び範囲を示すことができれば、枠の形式に限られない。また、例えば、補助情報枠は、補助情報がいずれの配置枠と関連付けられているかを示すことができれば、枠の形式に限られない。
【００５１】
次に、レイアウトシートに関する教示出力装置４の機能構成について説明する。
【００５２】
図３は、教示出力装置の機能構成の一例を示す図である。教示出力装置４は、作業プログラム生成部（「作業内容取得部」又は「作業内容出力部」と呼んでもよい。）４０と、レイアウト生成部４１と、レイアウト出力部４２と、画像取得部４３と、レイアウトチェック部４４と、作業プログラム格納部４５と、オブジェクト情報格納部４６と、レイアウト情報格納部４７と、を有する。
【００５３】
作業プログラム生成部４０は、ユーザーから入力装置等を介して作業内容の入力を受け付ける。
【００５４】
本実施形態では、ユーザーにより入力される作業内容（「ユーザー命令」ともいう。）には、ロボットの目的の作業と当該作業に必要なパラメーターが含まれる。また、ユーザー命令は、例えば「ｍｏｖｅ  ＸＯ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」のような大まかな形式とすることができる。「ｍｏｖｅ  ＸＯ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」は、対象物ＸＯを場所ＸＳから場所ＸＥに移動させることを意味する。ここで、大文字で表示された対象物ＸＯ、場所ＸＳ、場所ＸＥは、変更可能なパラメーターであり、ユーザーは目的の作業に応じて任意の値をパラメーターに設定することができる。対象物ＸＯには、例えば対象物の名称、形状などを特定するデータが設定される。場所ＸＳ及び場所ＸＥには、例えば場所の名称、位置、範囲などを特定するデータが設定される。また、ユーザー命令は、複数入力されてもよいし、各ユーザー命令の実行順序が指定されてもよい。
【００５５】
なお、本実施形態では、ユーザー命令のライブラリーが予め複数用意されている。従って、ユーザーは、ロボットの作業内容に応じて、ライブラリーからユーザー命令を一つ以上選択し、選択した各ユーザー命令にパラメーターを設定することで、簡単にユーザー命令を作成することができる。
【００５６】
また、作業プログラム生成部４０は、入力されたユーザー命令に基づいて、当該ユーザー命令を実現する動作命令群（「シナリオ」ともいう。）を生成する。
【００５７】
本実施形態では、シナリオは、制御装置３で解釈可能な一以上の動作命令で構成される。シナリオは、ユーザー命令を実現するために必要なロボットの動作単位で構成されるものである。もちろん、一つのユーザー命令に対して、シナリオが複数生成されてもよい。
【００５８】
例えば、ユーザー命令が「ｍｏｖｅ  ＸＯ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」である場合、動作命令「ｍｏｖｅ  ｔｏ  ＸＳ」、「ｇｒａｓｐ  ＸＯ」、動作命令「ｍｏｖｅ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」、及び動作命令「ｒｅｌｅａｓｅ  ＸＯ」を含むシナリオが生成される。動作命令「ｍｏｖｅ  ｔｏ  ＸＳ」は、エンドポイントの位置を場所ＸＳへ移動させる、という意味である。動作命令「ｇｒａｓｐ  ＸＯ」は、ハンドで対象物ＸＯを把持する、という意味である。動作命令「ｍｏｖｅ  ｆｒｏｍ  ＸＳ  ｔｏ  ＸＥ」は、エンドポイントの位置を場所ＸＳから場所ＸＥへ移動させる、という意味である。動作命令「ｒｅｌｅａｓｅ  ＸＯ」は、ハンドで把持された対象物ＸＯを解放する、という意味である。各動作命令に含まれるパラメーターは、ユーザー命令で設定されている。
【００５９】
なお、本実施形態では、シナリオのライブラリーが予め複数用意されている。シナリオのライブラリーは、ユーザー命令に対応するものが予め用意されており、それぞれ一以上の動作命令で構成されている。従って、作業プログラム生成部４０は、ユーザー命令に対応するシナリオのライブラリーを選択するとともに、選択したライブラリーに含まれる動作命令のパラメーターを設定することで、制御装置３で解釈可能なシナリオを簡単に生成することができる。
【００６０】
作業プログラム生成部４０は、入力されたユーザー命令（作業内容）と、当該ユーザー命令に基づいて生成したシナリオ（動作命令）とを関連付けて、作業プログラム格納部４５に格納する。このようにして、作業プログラムが生成される。
【００６１】
図４は、作業プログラムのデータ構造の一例を示す図である。図４に示すように、作業プログラムには、それぞれの作業内容ごとに、当該作業内容の実行順番を示す工程番号４５１と、当該作業内容を示す作業内容４５２と、当該作業内容に対応する動作命令を示す動作命令４５３とが関連付けられた作業レコードが格納される。作業内容４５２には、ユーザー命令を特定する情報とともに当該ユーザー命令に含まれる各パラメーターの値が設定される。動作命令４５３には、動作命令を特定する情報とともに当該動作命令に含まれる各パラメーターの値が設定される。
【００６２】
図３の説明に戻る。また、作業プログラム生成部４０は、生成したシナリオを制御装置３に出力する。例えば、作業プログラム生成部４０は、作業プログラム格納部４５に格納されている作業プログラムを参照し、工程番号４５１の示す工程番号順に動作命令４５３を読み出して制御装置３に出力する。作業プログラム生成部４０は、生成したシナリオをさらに制御装置３により解釈可能な制御命令に変換してから、制御装置３に出力するようにしてもよい。
【００６３】
なお、制御装置３は、教示出力装置４からシナリオを受信して、記憶装置等に格納する。また、制御装置３は、記憶したシナリオに基づいて制御命令を生成し、アームやハンドの動作を制御する。アームの移動などの制御には、例えば、指定した開始位置から終了位置へエンドポイントを移動させる位置制御を用いることができる。制御装置３は、ロボット２の現在の状態（例えば、ジョイントの角度、手先の位置、力覚センサーなどのセンサーの出力値など）を取得するようにしてもよい。また、制御装置３は、撮像装置２６を制御して撮像を行い、撮像画像に基づいてロボット２の周囲の環境の現在の状態（例えば、対象物の位置及び姿勢、障害物の位置及び範囲など）を特定するようにしてもよい。教示された作業プログラムに基づいてロボットを制御する処理は、一般的な技術を用いて実現できるので、詳細な説明を省略する。位置制御に限られず、現在画像と目標画像に基づいてロボットを動作させる視覚サーボ制御、インピーダンス制御などの力制御、を用いるようにしてもよい。
【００６４】
また、作業プログラム生成部４０は、ユーザーから入力装置等を介してオブジェクト情報を受け付け、オブジェクト情報格納部４６に格納する。オブジェクト情報は、レイアウトシート６の構成を定義するレイアウト情報の生成に使用される。オブジェクト情報には、各オブジェクトに関する情報が設定される。オブジェクトは、例えば、ユーザー命令のパラメーターとして指定される作業対象物や場所などの要素である。
【００６５】
図５は、オブジェクト情報のデータ構造の一例を示す図である。図５に示すように、オブジェクト情報には、それぞれのオブジェクトごとに、当該オブジェクトのオブジェクト名４６１と、当該オブジェクトの属性４６２とが関連付けられたオブジェクトレコードが格納される。
【００６６】
オブジェクト名４６１は、例えば、パラメーターで指定される作業対象物の名称（「部品Ａ」、「部品Ｅ」、「完成品Ｈ」、「道具Ｃ」、「道具Ｃ．操作部Ｇ」）や、パラメーターで指定される場所の名称（「道具Ｃ．場所Ｄ」、「場所Ｂ」、「場所Ｆ」、「場所Ｉ」）である。「道具Ｃ．操作部Ｇ」は、道具Ｃ自身が操作部Ｇを有する場合に、「道具Ｃの操作部Ｇ」を意味している。「道具Ｃ．場所Ｄ」は、道具Ｃ自身が対象物を置く場所Ｄを有する場合に、「道具Ｃ上の場所Ｄ」を意味している。
【００６７】
属性４６２は、オブジェクトに関する情報であり、例えば、オブジェクトに関する説明文、オブジェクトの色、オブジェクトが保持される方法、オブジェクトのサイズ、オブジェクトをロボットが把持するときの把持位置などを示す把持情報、オブジェクトの説明画像、オブジェクトに対して行うべき設定、などの項目を含む。また、属性４６２は、オブジェクトが配置される領域の位置及びその領域のサイズに関するヒント（「配置ヒント」ともいう。）を示す項目を含む。
【００６８】
オブジェクト情報に含まれる各オブジェクトの属性４６２は、ユーザーが任意に設定を行うことができる。ユーザーは、ロボットの作業プログラムの内容を把握しており、当該作業プログラムの内容に応じたレイアウトを教示するレイアウトシートを作成すべく、オブジェクト情報を設定すればよい。
【００６９】
図３の説明に戻る。レイアウト生成部４１は、作業プログラム格納部４５に格納されている作業プログラムと、オブジェクト情報格納部４６に格納されているオブジェクト情報とに基づいて、作業プログラムに含まれる作業対象物の配置などを示すレイアウト情報を生成し、レイアウト情報格納部４７に格納する。このレイアウト生成処理については、後に詳述する。
【００７０】
図６は、レイアウト情報のデータ構造の一例を示す図である。レイアウト情報は、作業プログラムごとに生成されて、格納される。図６に示すように、レイアウト情報には、それぞれの領域（図２の配置枠６１に対応する。）ごとに、当該領域の識別情報である領域ＩＤ４７１と、当該領域の名称４７２と、当該領域のレイアウトシート６上の位置、サイズ、色、マーク（存在チェックマーク６３、位置決めマーク６４）の有無などを示す定義４７３と、当該領域に関する説明などを示す関連情報４７４とが関連付けられた領域レコードが格納される。
【００７１】
図３の説明に戻る。レイアウト出力部４２は、レイアウト情報格納部４７に格納されているレイアウト情報に基づいて、レイアウトシート６の実寸サイズに対応した画像データを生成し、印刷装置５に出力させる。これにより、レイアウトシート６が印刷される。レイアウトシート６の画像データの生成処理については、後に詳述する。
【００７２】
画像取得部４３は、制御装置３に指示を出し、レイアウトシート６を用いて実際にレイアウトが行われた状態の作業領域を撮像装置２６により撮像させ、撮像画像を取得する。
【００７３】
レイアウトチェック部４４は、画像取得部４３により取得された撮像画像に含まれる現実のレイアウトと、レイアウト情報格納部４７に格納されているレイアウト情報に基づいて生成されるレイアウトモデルとを照合し、現実のレイアウトが正しく行われているか否かをチェックする。レイアウトのチェック処理については、後に詳述する。
【００７４】
作業プログラム格納部４５は、作業プログラムを格納する。オブジェクト情報格納部４６は、オブジェクト情報を格納する。レイアウト情報格納部４７は、レイアウト情報を格納する。
【００７５】
図７は、教示出力装置の機能を実現するハードウェア構成の一例を示す図である。
【００７６】
教示出力装置４は、例えば、図７に示すような、ＣＰＵ（Central Processing Unit）等の演算装置９１と、ＲＡＭ（Random Access Memory）などの主記憶装置９２と、ＨＤＤ（Hard Disk Drive）等の補助記憶装置９３と、有線又は無線により通信ネットワークと接続するための通信インターフェイス（Ｉ／Ｆ）９４と、マウス、キーボード、タッチセンサーやタッチパネルなどの入力装置９５と、液晶ディスプレイなどの表示装置９６と、ＤＶＤ（Digital Versatile Disk）などの持ち運び可能な記憶媒体に対する情報の読み書きを行う読み書き装置９７と、を備えるコンピューター９０で実現することができる。
【００７７】
例えば、作業プログラム生成部４０、レイアウト生成部４１、レイアウト出力部４２、画像取得部４３、レイアウトチェック部４４などの機能は、補助記憶装置９３などから主記憶装置９２にロードされた所定のプログラムを演算装置９１が実行することで実現される。作業プログラム格納部４５、オブジェクト情報格納部４６、レイアウト情報格納部４７などの機能は、例えば、演算装置９１が主記憶装置９２又は補助記憶装置９３を利用することで実現される。ロボット２や印刷装置５との通信機能は、例えば、演算装置９１が通信Ｉ／Ｆ９４を利用することで実現される。なお、上記の所定のプログラムは、例えば、読み書き装置９７により読み取られた記憶媒体からインストールされてもよいし、通信Ｉ／Ｆ９４を介してネットワークからインストールされてもよい。
【００７８】
制御装置３は、例えば、演算装置、記憶装置、各種回路などを備えるコントローラー基板等により実現することができる。
【００７９】
上述した教示出力装置４の機能構成は、教示出力装置４の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。教示出力装置４の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【００８０】
また、教示出力装置４及び制御装置３の機能及び処理の分担は、説明した例に限られない。例えば、教示出力装置４の少なくとも一部の機能は、制御装置３に含まれ、制御装置３により実現されてもよい。また、例えば、制御装置３の少なくとも一部の機能は、教示出力装置４に含まれ、教示出力装置４により実現されてもよい。
【００８１】
次に、教示出力装置４により実現される動作について説明する。
【００８２】
図８は、レイアウト生成処理の一例を示すフロー図である。なお、作業プログラム及びオブジェクト情報は、それぞれ作業プログラム格納部４５及びオブジェクト情報格納部４６に格納されている。
【００８３】
まず、レイアウト生成部４１は、作業プログラム格納部４５を参照し、作業内容を一つ取得する（ステップＳ１０）。ステップＳ１０では、レイアウト生成部４１は、未取得の作業内容４５２のうち、工程番号４５１が最も小さい工程に関連付けられた作業内容４５２を取得する。
【００８４】
それから、レイアウト生成部４１は、ステップＳ１０で取得した作業内容において、部品に関する場所が参照されているか否かを判定する（ステップＳ２０）。例えば、作業内容が「［部品Ａ］を［場所Ｂ］から［道具Ｃ．場所Ｄ］へ移動」である場合、部品Ａに関する場所Ｂが参照されていると判定できる。
【００８５】
部品に関する場所が参照されている場合（ステップＳ２０でＹ）、レイアウト生成部４１は、オブジェクト情報格納部４６を参照し、部品に関する情報と、当該部品の場所に関する情報とを取得する（ステップＳ３０）。例えば、レイアウト生成部４１は、Ｓ２０で特定した場所の名称をキーとして、オブジェクト情報格納部４６から、対応する属性４６２を取得する。また、例えば、レイアウト生成部４１は、ステップＳ２０で特定した部品の名称をキーとして、オブジェクト情報格納部４６から、対応する属性４６２を取得する。
【００８６】
それから、レイアウト生成部４１は、部品の場所に関する領域情報を生成する（ステップＳ４０）。例えば、レイアウト生成部４１は、レイアウト情報格納部４７に、領域レコードを一つ追加する。レイアウト生成部４１は、領域を一意に識別する識別情報を領域ＩＤ４７１に設定する。また、レイアウト生成部４１は、ステップＳ２０で特定した場所の名称を、名称４７２に設定する。
【００８７】
また、レイアウト生成部４１は、ステップＳ３０で取得した場所の属性４６２に含まれる配置ヒントを、定義４７３に設定する。また、レイアウト生成部４１は、ステップＳ３０で取得した部品の属性４６２に含まれる当該部品の色に基づいて、領域の色を決定し、定義４７３に設定する。部品の色と領域の色との対応関係は、予め定義して記憶装置などに格納しておけばよい。領域の色は、例えば、画像処理において背景から部品を区別して認識し易い色とすればよい。ユーザーが背景から部品を区別して認識し易い色としてもよい。
【００８８】
また、レイアウト生成部４１は、ステップＳ３０で取得した場所の属性４６２に含まれる説明文を、関連情報４７４に設定する。レイアウト生成部４１は、取得した部品の属性４６２に含まれる説明文、説明画像、その他の情報などを、関連情報４７４に設定してもよい。
【００８９】
部品に関する場所が参照されていない場合（ステップＳ２０でＮ）、又は、ステップＳ４０の後、レイアウト生成部４１は、ステップＳ１０で取得した作業内容において、道具が参照されているか否かを判定する（ステップＳ５０）。例えば、作業内容が「［部品Ａ］を［場所Ｂ］から［道具Ｃ．場所Ｄ］へ移動」である場合、道具Ｃが参照されていると判定できる。
【００９０】
道具が参照されている場合（ステップＳ５０でＹ）、レイアウト生成部４１は、オブジェクト情報格納部４６を参照し、当該道具に関する情報を取得する（ステップＳ６０）。例えば、レイアウト生成部４１は、ステップＳ５０で特定した道具の名称をキーとして、オブジェクト情報格納部４６から、対応する属性４６２を取得する。
【００９１】
それから、レイアウト生成部４１は、道具に関する領域情報を生成する（ステップＳ７０）。例えば、レイアウト生成部４１は、レイアウト情報格納部４７に、領域レコードを一つ追加する。レイアウト生成部４１は、領域を一意に識別する識別情報を領域ＩＤ４７１に設定する。また、レイアウト生成部４１は、ステップＳ５０で特定した道具の名称を、名称４７２に設定する。
【００９２】
また、レイアウト生成部４１は、ステップＳ６０で取得した道具の属性４６２に含まれる配置ヒントを、定義４７３に設定する。また、レイアウト生成部４１は、ステップＳ６０で取得した道具の属性４６２に含まれる当該部品の色に基づいて、領域の色を決定し、定義４７３に設定する。道具の色と領域の色との対応関係は、予め定義して記憶装置などに格納しておけばよい。領域の色は、例えば、画像処理で背景から道具を区別して認識し易い色とすればよい。ユーザーが背景から道具を区別して認識し易い色としてもよい。
【００９３】
また、レイアウト生成部４１は、ステップＳ６０で取得した道具の属性４６２に含まれる説明文を、関連情報４７４に設定する。レイアウト生成部４１は、道具の属性４６２に含まれる説明画像、その他の情報などを、関連情報４７４に設定してもよい。また、レイアウト生成部４１は、ステップＳ６０で取得した道具に関する場所（道具上の場所など）を特定し、当該場所の属性４６２に含まれる説明文などを、関連情報４７４に設定してもよい。
【００９４】
道具が参照されていない場合（ステップＳ５０でＮ）、又は、ステップＳ７０の後、レイアウト生成部４１は、ステップＳ１０で取得した作業内容において、部品や道具に関連しない場所が参照されているか否かを判定する（ステップＳ８０）。例えば、作業内容が「［完成品Ｈ］を［道具Ｃ．場所Ｄ］から［場所Ｉ］へ移動」である場合、部品や道具に関連しない場所Ｉが参照されていると判定できる。
【００９５】
部品や道具に関連しない場所が参照されている場合（ステップＳ８０でＹ）、レイアウト生成部４１は、オブジェクト情報格納部４６を参照し、当該場所に関する情報を取得する（ステップＳ９０）。例えば、レイアウト生成部４１は、ステップＳ８０で特定した場所の名称をキーとして、オブジェクト情報格納部４６から、対応する属性４６２を取得する。
【００９６】
それから、レイアウト生成部４１は、部品や道具に関連しない場所に関する領域情報を生成する（ステップＳ１００）。例えば、レイアウト生成部４１は、レイアウト情報格納部４７に、領域レコードを一つ追加する。レイアウト生成部４１は、領域を一意に識別する識別情報を領域ＩＤ４７１に設定する。また、レイアウト生成部４１は、ステップＳ８０で特定した場所の名称を、名称４７２に設定する。
【００９７】
また、レイアウト生成部４１は、ステップＳ９０で取得した場所の属性４６２に含まれる配置ヒントを、定義４７３に設定する。また、レイアウト生成部４１は、ステップＳ９０で取得した場所の属性４６２に含まれる説明文を、関連情報４７４に設定する。
【００９８】
部品や道具に関連しない場所が参照されていない場合（ステップＳ８０でＮ）、又は、ステップＳ１００の後、レイアウト生成部４１は、作業プログラム格納部４５を参照し、次の工程があるか否かを判定する（ステップＳ１１０）。ステップＳ１１０では、レイアウト生成部４１は、未取得の作業内容４５２があるか否かを判定する。次の工程の作業内容がある場合、レイアウト生成部４１は、処理をステップＳ１０に戻す。
【００９９】
次の工程の作業内容がない場合（ステップＳ１１０でＮ）、レイアウト生成部４１は、レイアウト情報を合成する（ステップＳ１２０）。ここで、レイアウト情報格納部４７には、各工程の作業内容それぞれについてステップＳ４０、Ｓ７０、又はＳ１００で領域レコードが追加されている。そのため、同一の内容の領域レコードが複数含まれる場合がある。従って、レイアウト生成部４１は、レイアウト情報に含まれる領域レコードのうち、同一の名称４７２を有する複数の領域レコードを一つの領域レコードにまとめる。
【０１００】
また、レイアウト生成部４１は、各領域レコードの定義４７３に含まれる配置ヒントが示す領域の位置及びサイズに従って、対応する配置枠６１を予め定められたレイアウトシート６の画像の領域内に配置する。そして、レイアウト生成部４１は、各配置枠６１が重なり合うことがないかを判定する。配置枠６１が重なり合う場合は、レイアウト生成部４１は、いずれかの配置枠６１又は複数の配置枠６１の位置を移動させることで、重複をなくす。このようにして各配置枠６１の位置を調整した後、レイアウト生成部４１は、位置に変更がある配置枠６１の定義４７３を更新する。
【０１０１】
それから、レイアウト出力部４２は、レイアウトを出力する（ステップＳ１３０）。例えば、レイアウト出力部４２は、ステップＳ１２０で合成されたレイアウト情報をレイアウト情報格納部４７から取得する。また、レイアウト出力部４２は、予め定めたレイアウトシート６の画像を描画するとともに、各領域レコードに基づいて、レイアウトシート内に、枠やマークを描画する。
【０１０２】
すなわち、レイアウト出力部４２は、定義４７３が示す領域の位置及びサイズに基づいて、配置枠６１を描画する。また、定義４７３が示す色に基づいて、配置枠６１内の色を描画する。また、定義４７３に、存在チェックマーク６３の描画を指示されている場合、配置枠６１内に存在チェックマーク６３を描画する。また、定義４７３に、位置決めマーク６４の描画を指示されている場合、配置枠６１内に位置決めマーク６４を描画する。
【０１０３】
また、レイアウト出力部４２は、各配置枠６１と重ならないように、各配置枠６１に関連付けて補助情報枠６２を描画する。また、名称４７２に基づいて、補助情報枠６２内に配置枠の名称を描画する。また、関連情報４７４基づいて、説明文、説明画像などを補助情報枠６２内に描画する。
【０１０４】
また、レイアウト出力部４２は、レイアウトシート６の画像の所定位置に照合マーク６５を描画する。
【０１０５】
レイアウト出力部４２は、以上のようにして生成したレイアウトシート６の画像データを印刷装置５に出力し、印刷させる。そして、図８に示すフローチャートの処理を終了する。
【０１０６】
なお、レイアウト生成部４１は、領域レコードに基づいて配置枠６１や補助情報枠６２を含むレイアウトシート６の画像データを生成し、表示装置９６に表示してもよい。また、レイアウト生成部４１は、ユーザーから入力装置９５を介して各枠の定義、関連情報の内容などの編集を受け付け、レイアウト情報を更新するようにしてもよい。
【０１０７】
以上のようにして、作業内容に応じたレイアウト情報が生成され、図２に示すようなレイアウトシート６が印刷される。ユーザーは、印刷されたレイアウトシート６を、作業台Ｔの上に敷き、レイアウトシート６の記載を参照しながら、容易にかつ正確に対象物のレイアウトを行うことができる。
【０１０８】
図９は、レイアウトチェック処理の一例を示すフロー図である。図９のフローチャートは、レイアウトシート６が作業台Ｔの上に敷かれ、実際にレイアウトが行われた状態で、例えば、ユーザーの指示により開始される。このとき、教示出力装置４は、ユーザーから入力装置等を介して、チェック対象のレイアウトシート６（レイアウト情報）を識別する情報を受け付けるようにしてもよい。
【０１０９】
まず、レイアウトチェック部４４は、レイアウト情報格納部４７から、ユーザーから指定されたレイアウトシート６に対応するレイアウト情報を取得する（ステップＳ２１０）。
【０１１０】
それから、レイアウトチェック部４４は、レイアウトモデルを生成する（ステップＳ２２０）。例えば、レイアウトチェック部４４は、ステップＳ２１０で取得したレイアウト情報に基づいて、配置枠や補助情報枠などを含むレイアウトシートの３次元モデルを生成する。なお、レイアウトシートは、高さのない２次元平面として表してよい。また、レイアウトチェック部４４は、生成した３次元モデルに、予め記憶装置等に格納された部品や道具などの作業対象物の３次元モデルを合成し、３次元レイアウトモデルの画像データを生成する。レイアウト情報の関連情報４７４には、配置枠内に置かれる部品や道具に関する情報が含まれているため、部品や道具の３次元ＣＡＤモデルを対応する配置枠内に合成することができる。なお、３次元モデルを生成する処理には、一般的な画像処理技術を使用できるので、詳細な説明を省略する。
【０１１１】
それから、画像取得部４３は、制御装置３に指示を出し、ロボット２の環境（作業領域を含む）を撮像装置２６により撮像させ、ステレオ画像を取得する（ステップＳ２３０）。
【０１１２】
それから、レイアウトチェック部４４は、ステップＳ２４０で取得されたステレオ画像に基づいて、３次元（深さ方向を有する）画像データを生成する（ステップＳ２４０）。ステレオ画像から３次元画像データを生成する処理には、一般的な技術を使用することができるため、説明を省略する。
【０１１３】
それから、レイアウトチェック部４４は、ステップＳ２２０で生成した３次元レイアウトモデルの画像データ（第一のレイアウト画像データ）を、ステップＳ２４０で生成した３次元画像データ（第二のレイアウト画像データ）に対して位置合わせする（ステップＳ２５０）。例えば、レイアウトチェック部４４は、３次元レイアウトモデルの画像データに含まれるレイアウトシート６の４角の照合マーク６５の位置が、３次元画像データから認識される照合マーク６５の位置と一致するように、３次元レイアウトモデルの並進、回転、拡大、縮小などを行う。この処理は、３次元画像中のレイアウトシート６の位置及び姿勢を特定していると言える。これにより、レイアウトシート６に記載されている配置枠等の位置及び姿勢も特定される。
【０１１４】
なお、レイアウトチェック部４４は、上記のように位置合わせを行った３次元レイアウトモデルの画像データ及び３次元画像データの少なくとも一方を、表示装置９６に表示してもよい。
【０１１５】
それから、レイアウトチェック部４４は、３次元レイアウトモデルと３次元画像とを照合する（ステップＳ２６０）。この処理は、３次元レイアウトモデル中のレイアウトと、３次元画像中のレイアウトとを照合していると言える。
【０１１６】
それから、レイアウトチェック部４４は、レイアウトシート６上の各配置枠について、３次元画像から認識される物体が当該配置枠から基準範囲内にあるか否かを判定する（ステップＳ２７０）。例えば、配置枠から物体が所定距離以上外に突出している場合には、当該物体が基準範囲内にないと判定する。いずれか一つの配置枠で物体が基準範囲内にない場合、処理をステップＳ２９０に進める。
【０１１７】
全ての配置枠において物体の位置が基準範囲内にある場合（ステップＳ２７０でＹ）、レイアウトチェック部４４は、道具が正しく配置されているか否かを判定する（ステップＳ２８０）。例えば、レイアウトチェック部４４は、３次元画像上の道具が置かれるべき配置枠内に、存在チェックマーク６３を認識できる否かを判定する。存在チェックマーク６３を認識できる場合には、道具が配置されていないと判定する。また、例えば、レイアウトチェック部４４は、存在チェックマーク６３を認識できる場合に、３次元画像上の道具が置かれるべき配置枠内に、位置決めマーク６４を認識できるか否かを判定する。位置決めマーク６４が認識できる場合には、道具が正しい位置に配置されていないと判定する。いずれか一つの配置枠内において、道具が配置されていない、又は道具が正しく配置されていない場合、レイアウトチェック部４４は、処理をステップＳ２９０に進める。
【０１１８】
物体が配置枠から基準範囲内にない場合（ステップＳ２７０でＮ）、又は、道具が正しく配置されていない場合（ステップＳ２８０でＮ）、レイアウトチェック部４４は、その旨をユーザーへの通知を行い（ステップＳ２９０）、図９に示すフローチャートの処理を終了する。例えば、レイアウトチェック部４４は、物体が配置枠から基準範囲内にないこと、又は、道具が正しく配置されていないことを、表示装置等に表示させる。物体が基準範囲内にない配置枠を示す情報を表示してもよい。また、道具が配置されていない配置枠を示す情報を表示してもよい。また、道具が正しく配置されていない配置枠を示す情報を表示してもよい。また、３次元レイアウトモデル、あるいは、３次元画像とともに、問題となっている配置枠を示す情報を表示するようにしてもよい。
【０１１９】
道具が正しく配置されている場合（ステップＳ２８０でＹ）、レイアウトチェック部４４は、障害物を特定し（Ｓ３００）、図９に示すフローチャートの処理を終了する。例えば、レイアウトチェック部４４は、３次元画像上の各配置枠の範囲外に、物体が認識できるか否かを判定する。物体が認識できる場合、その物体を障害物と判定し、記録する。なお、レイアウトチェック部４４は、例えば、障害物の情報を制御装置３に送る。制御装置３は、例えば、シナリオに従って位置制御を行う際に、エンドポイントの移動する経路を、障害物を回避するような経路に修正する。
【０１２０】
以上のようにして、現実のレイアウトが正しいか否かのチェックが行われる。また、現実のレイアウトのチェック結果が表示されるため、ユーザーは、レイアウトが正しく行われたか否かを容易に把握するとともに、レイアウトを修正することができる。レイアウトの修正後、ユーザーは、図９に示すレイアウトチェック処理を教示出力装置４に再度実行させることもできる。
【０１２１】
上述したフローチャートの各処理単位は、教示出力装置４の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。教示出力装置４の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、１つの処理単位がさらに多くの処理を含むように分割することもできる。
【０１２２】
以上、本発明の実施形態について説明した。本実施形態によれば、ロボットが作業を行う現場（例えばセルラインなど）の現実のレイアウトを、容易に構築することができる。
【０１２３】
なお、上記の実施形態では、レイアウトシート６は印刷されるが、レイアウトシート６の出力態様はこれに限られない。例えば、レイアウト出力部４２は、レイアウトシート６の画像データをプロジェクターに出力し、実寸のレイアウトシート６が作業台Ｔ上に（作業台Ｔがスクリーンとなる。）投影されるようにしてもよい。また、例えば、表示領域が作業台Ｔの上面と重なるように表示装置を作業台Ｔに組み込み、実寸のレイアウトシート６が表示されるようにしてもよい。上記のように出力態様を変えても、ユーザーは容易にかつ正確に対象物のレイアウトを行うことができる。
【０１２４】
また、上記の実施形態では、教示出力装置４が画像取得部４３およびレイアウトチェック部４４を有する構成としたが、画像取得部４３およびレイアウトチェック部４４は有しない構成としてもよい。すなわち、教示出力装置４は、レイアウト出力部４２によってレイアウトを出力させる機能を有し、出力されたレイアウトのチェックはユーザーが目視によって行うこととしてもよい。
【０１２５】
以上、本発明について実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に多様な変更または改良を加えることが可能であることが当業者には明らかである。また、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。本発明の提供の態様にも、様々な態様が取り得る。本発明は、例えば、ロボットと、制御装置と、教示出力装置とを別個に有するロボットシステムとして提供してもよいし、ロボット又は制御装置に教示出力装置の機能が含まれる、ロボット又は制御装置として提供してもよい。また、本発明は、教示を出力する方法、教示を出力する装置のプログラム、当該プログラムを記憶した記憶媒体、レイアウトシートとして提供することもできる。
【符号の説明】
【０１２６】
１：ロボットシステム
２：ロボット
３：制御装置
４：教示出力装置
５：印刷装置
６：レイアウトシート
２０：胴部
２１：アーム
２１ａ：ジョイント
２１ｂ：アーム部材
２１ｃ：力覚センサー
２２：ハンド
２４：脚部
２５：頭部
２６：撮像装置
４０：作業プログラム生成部
４１：レイアウト生成部
４２：レイアウト出力部
４３：画像取得部
４４：レイアウトチェック部
４５：作業プログラム格納部
４６：オブジェクト情報格納部
４７：レイアウト情報格納部
６１（６１ａ、６１ｂ、６１ｃ、６１ｄ）：配置枠
６２（６２ａ、６２ｂ、６２ｃ、６２ｄ）：補助情報枠
６３：存在チェックマーク
６４：位置決めマーク
６５：照合マーク
９０：コンピューター
９１：演算装置
９２：主記憶装置
９３：補助記憶装置
９４：通信Ｉ／Ｆ
９５：入力装置
９６：表示装置
９７：読み書き装置
４５１：工程番号
４５２：作業内容
４５３：動作命令
４６１：オブジェクト名
４６２：属性
４７１：領域ＩＤ
４７２：名称
４７３：定義
４７４：関連情報
【図１】
2015080842.tif 000003
【図２】
2015080842.tif 000004
【図３】
2015080842.tif 000005
【図４】
2015080842.tif 000006
【図５】
2015080842.tif 000007
【図６】
2015080842.tif 000008
【図７】
2015080842.tif 000009
【図８】
2015080842.tif 000010
【図９】
2015080842.tif 000011