(57)【要約】【課題】適切な領域で作業を行うようにすることにより、ロボット作業の高速化及び精密化を実現することができる。【解決手段】画像に含まれる対象物の検出精度であって、画像を分割して設定された複数の領域毎の検出精度を取得し、かつロボットが行う第１の作業に用いる部品と、当該第１の作業に必要な精度とを関連付けた精度情報を取得し、これらに基づいて第１の作業を複数の領域のうちのどの領域で作業を行うかを決定する。また、ロボットの作業領域を撮影した画像から第１の作業に用いる部品及びロボットエンドエフェクターを認識する。そして、認識された結果に基づいて、第１の作業に用いる部品を決定部により決定された領域に搬送し、決定された領域内で第１の作業を行うようにロボットを制御する。【選択図】図２
2014061578.tif 000002
【特許請求の範囲】
【請求項１】
複数のリンク及びジョイントを有するアームと、
前記アームの先端に設けられたエンドエフェクターと、
前記エンドエフェクターの作業領域を撮影した画像を取得する画像取得部と、
前記取得された画像から対象物を認識する画像認識部と、
前記認識された対象物の検出精度であって、前記画像を分割して設定された複数の領域毎の検出精度を取得する精度取得部と、
前記エンドエフェクターが行う第１の作業に用いる部品と、当該第１の作業に必要な精度とを関連付けた精度情報を取得する情報取得部と、
前記取得された複数の領域毎の検出精度と、前記取得された精度情報とに基づいて、前記第１の作業を前記複数の領域のうちのどの領域で作業を行うかを決定する決定部と、
前記画像認識部により認識された結果に基づいて前記アーム及び前記エンドエフェクターを制御する制御部と、
を備え、
前記画像認識部は、前記第１の作業に用いる部品及び前記エンドエフェクターを前記対象物として認識し、
前記制御部は、前記第１の作業に用いる部品を前記決定部により決定された領域に搬送し、前記決定された領域内で前記第１の作業を行うように前記アーム及び前記エンドエフェクターを制御する
ことを特徴とするロボット。
【請求項２】
請求項１に記載のロボットにおいて、
前記複数の領域毎の検出精度を設定する精度設定部を備え、
前記画像取得部は、所定の模様を撮影した画像を取得し、
前記画像認識部は、前記画像に含まれる模様を認識し、
前記精度設定部は、前記所定の模様と、前記認識された模様とを比較することにより検出精度を設定し、
前記精度取得部は、前記精度設定部が設定した精度を取得する
ことを特徴とするロボット。
【請求項３】
請求項１又は２に記載のロボットにおいて、
部品と、当該部品を取り扱うときに求められる精度とが関連付けられた部品情報を取得する部品情報取得部と、
前記取得された部品情報に基づいて前記第１の作業に用いる部品の各部品に必要な精度を取得し、前記取得された精度のうちの最も高い精度を前記第１の作業に必要な精度として選択し、当該選択された精度を、前記第１の作業に用いる部品と関連付けて精度情報を生成する精度情報生成部と、を備え、
前記情報取得部は、前記生成された精度情報を取得する
ことを特徴とするロボット。
【請求項４】
請求項３に記載のロボットにおいて、
前記第１の作業の作業内容を取得する作業内容取得手段を備え、
前記精度情報生成部は、取得された作業内容に基づいて前記第１の作業に必要な精度を生成する
ことを特徴とするロボット。
【請求項５】
請求項１から４のいずれか一項に記載のロボットにおいて、
前記画像取得部は、前記ロボットの上方に設けられた撮影部が撮影した画像を取得し、
前記作業領域は、矩形形状の領域であり、
前記複数の領域は、前記画像を縦方向及び横方向をそれぞれ均等に複数個に分割することにより設定される
ことを特徴とするロボット。
【請求項６】
アームと、前記アームの先端に設けられたエンドエフェクターとを有するロボットと、
前記エンドエフェクターの作業領域を撮影する撮影部と、
前記撮影された画像から対象物を認識する画像認識部と、
前記認識された対象物の検出精度であって、前記画像を分割して設定された複数の領域毎の検出精度を取得する精度取得部と、
前記エンドエフェクターが行う第１の作業に用いる部品と、当該第１の作業に必要な精度とを関連付けた精度情報を記憶する記憶部と、
前記取得された複数の領域毎の検出精度と、前記記憶された精度情報とに基づいて、前記第１の作業を前記複数の領域のうちのどの領域で作業を行うかを決定する決定部と、
前記画像認識部により認識された結果に基づいて前記アーム及び前記エンドエフェクターを制御する制御部と、
を備え、
前記画像認識部は、前記第１の作業に用いる部品及び前記エンドエフェクターを前記対象物として認識し、
前記制御部は、前記第１の作業に用いる部品を前記決定部により決定された領域に搬送し、前記決定された領域内で前記第１の作業を行うように前記アーム及び前記エンドエフェクターを制御する
ことを特徴とするロボットシステム。
【請求項７】
ロボットの作業領域を撮影した画像を取得する画像取得部と、
前記取得された画像から対象物を認識する画像認識部と、
前記認識された対象物の検出精度であって、前記画像を分割して設定された複数の領域毎の検出精度を取得する精度取得部と、
前記ロボットが行う第１の作業に用いる部品と、当該第１の作業に必要な精度とを関連付けた精度情報を取得する情報取得部と、
前記取得された複数の領域毎の検出精度と、前記取得された精度情報とに基づいて、前記第１の作業を前記複数の領域のうちのどの領域で作業を行うかを決定する決定部と、
前記画像認識部により認識された結果に基づいて前記ロボットを制御する制御部と、
を備え、
前記画像認識部は、前記第１の作業に用いる部品及び前記ロボットの可動部を前記対象物として認識し、
前記制御部は、前記第１の作業に用いる部品を前記決定部により決定された領域に搬送し、前記決定された領域内で前記第１の作業を行うように前記ロボットを制御する
ことを特徴とするロボット制御装置。
【請求項８】
ロボットの作業領域を撮影した画像を取得するステップと、
前記取得された画像から対象物を認識するステップと、
前記認識された対象物の検出精度であって、前記画像を分割して設定された複数の領域毎の検出精度を取得するステップと、
前記ロボットが行う第１の作業に用いる部品と、当該第１の作業に必要な精度とを関連付けた精度情報を取得するステップと、
前記取得された複数の領域毎の検出精度と、前記取得された精度情報とに基づいて、前記第１の作業を前記複数の領域のうちのどの領域で作業を行うかを決定するステップと、
前記第１の作業に用いる部品と前記ロボットの可動部を前記対象物として認識するステップと、
前記対象物を認識した結果に基づいて、前記第１の作業に用いる部品を前記決定された領域に搬送し、前記決定された領域内で前記第１の作業を行うように前記ロボットを制御するステップと、
を含むことを特徴とするロボット制御方法。
【請求項９】
ロボットの作業領域を撮影した画像を取得するステップと、
前記取得された画像から対象物を認識するステップと、
前記認識された対象物の検出精度であって、前記画像を分割して設定された複数の領域毎の検出精度を取得するステップと、
前記ロボットが行う第１の作業に用いる部品と、当該第１の作業に必要な精度とを関連付けた精度情報を取得するステップと、
前記取得された複数の領域毎の検出精度と、前記取得された精度情報とに基づいて、前記第１の作業を前記複数の領域のうちのどの領域で作業を行うかを決定するステップと、
前記第１の作業に用いる部品と前記ロボットの可動部を前記対象物として認識するステップと、
前記対象物を認識した結果に基づいて、前記第１の作業に用いる部品を前記決定された領域に搬送し、前記決定された領域内で前記第１の作業を行うように前記ロボットを制御するステップと、
を演算装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、ロボットシステム、ロボット制御装置、ロボット制御方法及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、低空間分解能・広視野画像を用いた画像認識処理でトレイの配置位置を特定し、高空間分解能・狭視野画像を用いた画像認識処理でトレイ上の部品の配置位置を特定する作業ロボット制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−３０３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の発明では、入力画像を生成する撮影手段自体が有する歪み（例えば、歪曲収差）や撮影手段の設置位置や設置姿勢によって発生する入力画像の歪みが、部品の認識結果に与える影響が考慮されていない。これらの歪みにより、撮影された画像のどこに部品が映っているかによって部品の認識結果の精度が異なる。したがって、特許文献１に記載の発明では、ロボットが取得した部品の位置と実際の部品の位置とが異なり、期待するロボット作業が実現できない場合が発生しうるという問題がある。このような問題を解決するためには、ロボットが部品の位置を正確に把握できるようにする必要がある。
【０００５】
そこで、本発明は、適切な領域で作業を行うようにすることにより、ロボットが部品の位置を正確に把握することができるロボット、ロボットシステム、ロボット制御装置、ロボット制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するための第一の態様は、ロボットであって、複数のリンク及びジョイントを有するアームと、前記アームの先端に設けられたエンドエフェクターと、前記エンドエフェクターの作業領域を撮影した画像を取得する画像取得部と、前記取得された画像から対象物を認識する画像認識部と、前記認識された対象物の検出精度であって、前記画像を分割して設定された複数の領域毎の検出精度を取得する精度取得部と、前記エンドエフェクターが行う第１の作業に用いる部品と、当該第１の作業に必要な精度とを関連付けた精度情報を取得する情報取得部と、前記取得された複数の領域毎の検出精度と、前記取得された精度情報とに基づいて、前記第１の作業を前記複数の領域のうちのどの領域で作業を行うかを決定する決定部と、前記画像認識部により認識された結果に基づいて前記アーム及び前記エンドエフェクターを制御する制御部と、を備え、前記画像認識部は、前記第１の作業に用いる部品及び前記エンドエフェクターを前記対象物として認識し、前記制御部は、前記第１の作業に用いる部品を前記決定部により決定された領域に搬送し、前記決定された領域内で前記第１の作業を行うように前記アーム及び前記エンドエフェクターを制御することを特徴とする。
【０００７】
第一の態様によれば、作業領域を撮影した画像から設定される複数の領域毎の検出精度と、第１の作業に必要な精度とに基づいて、第１の作業を行う領域が決定される。そのため、作業で用いる部品に応じて、作業する領域が決定される。例えば、高い精度が必要な部品を用いる作業は作業領域を撮影した画像中で検出精度の高い領域で行われる。このように、適切な領域で作業を行うことで、部品の位置を正確に把握することができる。その結果、ロボット作業の高速化及び精密化を実現することができる。
【０００８】
ここで、前記複数の領域毎の検出精度を設定する精度設定部を備え、前記画像取得部は、所定の模様を撮影した画像を取得し、前記画像認識部は、前記画像に含まれる模様を認識し、精度設定部は、前記所定の模様と、前記認識された模様とを比較することにより検出精度を設定し、前記精度取得部は、前記精度設定部が設定した精度を取得してもよい。これにより、ロボット自身で作業領域を撮影した画像から設定される複数の領域毎の検出精度を設定することができる。
【０００９】
ここで、部品と、当該部品を取り扱うときに求められる精度とが関連付けられた部品情報を取得する部品情報取得部と、前記取得された部品情報に基づいて前記第１の作業に用いる部品の各部品に必要な精度を取得し、前記取得された精度のうちの最も高い精度を前記第１の作業に必要な精度として選択し、当該選択された精度を、前記第１の作業に用いる部品と関連付けて精度情報を生成する精度情報生成部と、を備え、前記情報取得部は、前記生成された精度情報を取得してもよい。これにより、ロボット自身で第１の作業に必要な精度を生成することができる。また、作業に用いる部品に応じて作業に必要な精度を生成することができる。
【００１０】
ここで、前記第１の作業の作業内容を取得する作業内容取得手段を備え、前記精度情報生成部は、取得された作業内容に基づいて前記第１の作業に必要な精度を生成してもよい。これにより、作業内容に応じて作業に必要な精度を生成することができる。
【００１１】
ここで、前記画像取得部は、前記ロボットの上方に設けられた撮影部が撮影した画像を取得し、前記作業領域は、矩形形状の領域であり、前記複数の領域は、前記画像を縦方向及び横方向をそれぞれ均等に複数個に分割することにより設定されてもよい。これにより、作業領域の手前側の精度が高い部分は多くの領域に分けられるため、作業領域を効率よく使用することができる。
【００１２】
本発明の第二の態様は、ロボットシステムであって、アームと、前記アームの先端に設けられたエンドエフェクターとを有するロボットと、前記エンドエフェクターの作業領域を撮影する撮影部と、前記撮影された画像から対象物を認識する画像認識部と、前記認識された対象物の検出精度であって、前記画像を分割して設定された複数の領域毎の検出精度を取得する精度取得部と、前記エンドエフェクターが行う第１の作業に用いる部品と、当該第１の作業に必要な精度とを関連付けた精度情報を記憶する記憶部と、前記取得された複数の領域毎の検出精度と、前記記憶された精度情報とに基づいて、前記第１の作業を前記複数の領域のうちのどの領域で作業を行うかを決定する決定部と、前記画像認識部により認識された結果に基づいて前記アーム及び前記エンドエフェクターを制御する制御部と、を備え、前記画像認識部は、前記第１の作業に用いる部品及び前記エンドエフェクターを前記対象物として認識し、前記制御部は、前記第１の作業に用いる部品を前記決定部により決定された領域に搬送し、前記決定された領域内で前記第１の作業を行うように前記アーム及び前記エンドエフェクターを制御することを特徴とする。これにより、作業で用いる部品に応じて作業する領域を決定することで、部品の位置を正確に把握することができる。
【００１３】
本発明の第三の態様は、ロボット制御装置であって、ロボットの作業領域を撮影した画像を取得する画像取得部と、前記取得された画像から対象物を認識する画像認識部と、前記認識された対象物の検出精度であって、前記画像を分割して設定された複数の領域毎の検出精度を取得する精度取得部と、前記ロボットが行う第１の作業に用いる部品と、当該第１の作業に必要な精度とを関連付けた精度情報を取得する情報取得部と、前記取得された複数の領域毎の検出精度と、前記取得された精度情報とに基づいて、前記第１の作業を前記複数の領域のうちのどの領域で作業を行うかを決定する決定部と、前記画像認識部により認識された結果に基づいて前記ロボットを制御する制御部と、を備え、前記画像認識部は、前記第１の作業に用いる部品及び前記ロボットの可動部を前記対象物として認識し、前記制御部は、前記第１の作業に用いる部品を前記決定部により決定された領域に搬送し、前記決定された領域内で前記第１の作業を行うように前記ロボットを制御することを特徴とする。これにより、作業で用いる部品に応じて作業する領域を決定することで、部品の位置を正確に把握することができる。
【００１４】
本発明の第四の態様は、ロボット制御方法であって、ロボットの作業領域を撮影した画像を取得するステップと、前記取得された画像から対象物を認識するステップと、前記認識された対象物の検出精度であって、前記画像を分割して設定された複数の領域毎の検出精度を取得するステップと、前記ロボットが行う第１の作業に用いる部品と、当該第１の作業に必要な精度とを関連付けた精度情報を取得するステップと、前記取得された複数の領域毎の検出精度と、前記取得された精度情報とに基づいて、前記第１の作業を前記複数の領域のうちのどの領域で作業を行うかを決定するステップと、前記第１の作業に用いる部品と前記ロボットの可動部を前記対象物として認識するステップと、前記対象物を認識した結果に基づいて、前記第１の作業に用いる部品を前記決定された領域に搬送し、前記決定された領域内で前記第１の作業を行うように前記ロボットを制御するステップと、を含むことを特徴とする。これにより、作業で用いる部品に応じて作業する領域を決定することで、部品の位置を正確に把握することができる。
【００１５】
本発明の第五の態様は、プログラムであって、ロボットの作業領域を撮影した画像を取得するステップと、前記取得された画像から対象物を認識するステップと、前記認識された対象物の検出精度であって、前記画像を分割して設定された複数の領域毎の検出精度を取得するステップと、前記ロボットが行う第１の作業に用いる部品と、当該第１の作業に必要な精度とを関連付けた精度情報を取得するステップと、前記取得された複数の領域毎の検出精度と、前記取得された精度情報とに基づいて、前記第１の作業を前記複数の領域のうちのどの領域で作業を行うかを決定するステップと、前記第１の作業に用いる部品と前記ロボットの可動部を前記対象物として認識するステップと、前記対象物を認識した結果に基づいて、前記第１の作業に用いる部品を前記決定された領域に搬送し、前記決定された領域内で前記第１の作業を行うように前記ロボットを制御するステップと、を演算装置に実行させることを特徴とする。これにより、作業で用いる部品に応じて作業する領域を決定することで、部品の位置を正確に把握することができる。
【図面の簡単な説明】
【００１６】
【図１】第１の実施形態におけるロボットシステム１の構成の一例を示す図である。
【図２】ロボットシステム１の機能構成の一例を示すブロック図である。
【図３】部品検出精度範囲情報３０２Ａの一例を示す図である。
【図４】撮影された画像における領域を説明する図である。
【図５】部品検出精度情報３０２Ｂの一例を示す図である。
【図６】作業検出精度情報３０２Ｃの一例を示す図である。
【図７】作業情報３０２Ｄの一例を示す図である。
【図８】制御部３０のハードウェア構成を示す図である。
【図９】部品検出精度範囲情報３０２Ａの生成に関する処理の流れを示すフローチャートである。
【図１０】パターンボード５１の一例を示す図である。
【図１１】パターンボード５１を撮影した画像の一例を示す図である。
【図１２】パターンボード５１上の座標と、パターンボード５１を撮影した画像上の座標とを示す図である。
【図１３】作業検出精度情報３０２Ｃの作業検出精度格納領域３０２７の生成に関する処理の流れを示すフローチャートである。
【図１４】作業検出精度情報３０２Ｃの領域格納領域３０２８の生成に関する処理の流れを示すフローチャートである。
【図１５】ロボット１０の作業に関する処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１７】
本発明の一実施形態について、図面を参照しながら説明する。
【００１８】
図１は、本発明の一実施形態におけるロボットシステム１の構成の一例を示すシステム構成図である。本実施形態におけるロボットシステム１は、主として、ロボット１０と、撮影部２０と、制御部３０と、作業台４０とを備える。
【００１９】
ロボット１０は、複数のジョイント（関節）１１Ａと、複数のリンク１１Ｂとを含むアーム部を２本有するアーム型のいわゆる双腕ロボットである。アーム部の先端には、対象物（ワーク）を把持したり、道具を把持して対象物に対して所定の作業を行ったりすることが可能なハンド１１Ｃ（いわゆるエンドエフェクター）が設けられる。以下、ロボット１０のアーム部及びハンド１１Ｃを可動部１１という。
【００２０】
ジョイント１１Ａ及びハンド１１Ｃには、それらを動作させるためのアクチュエーター（図示せず）が設けられる。アクチュエーターは、例えば、サーボモーターやエンコーダーなどを備える。エンコーダーが出力するエンコーダー値は、制御部３０によるロボット１０のフィードバック制御に使用される。
【００２１】
なお、ロボット１０の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。一般的な把持ロボットが備える構成を排除するものではない。例えば、軸数（ジョイント数）をさらに増加させてもよいし、減らしてもよい。リンクの数を増減させてもよい。また、アーム、ハンド、リンク、ジョイント等の各種部材の形状、大きさ、配置、構造等も適宜変更してよい。また、エンドエフェクターはハンド１１Ｃに限られない。
【００２２】
撮影部２０は、作業台４０付近を撮影して、画像データを生成するユニットである。撮影部２０は、例えば、カメラを含み、作業台、天井、壁などに設けられる。図１では、撮影部２０は、ロボット１０の上端部に設けられている。撮影部２０としては、可視光カメラ、赤外線カメラ等を採用することができる。なお、本実施の形態では、撮影部２０をロボット１０の上端部に設けたが、撮影部２０はロボット１０に設ける必要はない。ただし、撮影部２０は、作業領域５０を前方に見下ろすことができるロボット１０の上方に設けられることが望ましい。
【００２３】
制御部３０は、ロボット１０の全体を制御する処理を行う。制御部３０は、ロボット１０の本体とは離れた場所に設置してもよいし、ロボット１０に内蔵してもよい。制御部３０がロボット１０の本体と離れた場所に設置されている場合には、制御部３０は、有線又は無線でロボット１０と接続されている。また、撮影部２０は、制御部３０ではなくロボット１０に接続されるようにしてもよいし、ロボット１０に内蔵されるようにしてもよい。
【００２４】
作業台４０は、ロボット１０の前に設けられる。作業台４０には、略中央にロボット１０が作業を行う領域である作業領域５０が設けられる。給材エリア４１は、作業に用いる部品が載置される領域であり、本実施の形態では作業台４０の左側に設けられる。組立品除材エリア４２は作業後の組立品を載置する領域であり、本実施の形態では作業台４０の右側に設けられる。
【００２５】
次に、ロボットシステム１の機能構成例について説明する。図２は、ロボットシステム１の機能ブロック図である。
【００２６】
ロボット１０は、アクチュエーターのエンコーダー値、及びセンサーのセンサー値等に基づいて可動部１１を制御する動作制御部１２を備える。
【００２７】
制御部３０は、主として、主制御部３０１と、記憶部３０２と、画像取得部３０３とを備える。また、制御部３０は、有線又は無線によりロボット１０と通信可能に接続されている。
【００２８】
主制御部３０１は、他の各部（３０２、３０３）を統括的に制御する。また、主制御部３０１は、精度設定部３０１Ａと、作業精度決定部３０１Ｂと、作業領域決定部３０１Ｃと、画像認識部３０１Ｄと、作業制御部３０１Ｅとを備える。
【００２９】
精度設定部３０１Ａは、撮影手段によって撮影された画像の歪みに関する情報（以下、部品検出精度範囲情報という）を、作業領域５０に設定された複数の領域毎に設定する。精度設定部３０１Ａが行う処理の詳細については、後に詳述する。
【００３０】
作業精度決定部３０１Ｂは、部品を取り扱うときに求められる検出精度をあらわす情報（以下、部品検出精度情報という）に基づいて、ロボット１０が行う作業毎に、その作業に求められる精度を決定する。作業精度決定部３０１Ｂが決定した精度は、作業検出精度情報３０２Ｃとして記憶部３０２に記憶される。作業精度決定部３０１Ｂが行う処理の詳細については、後に詳述する。
【００３１】
作業領域決定部３０１Ｃは、部品検出精度情報３０２Ｂと、作業検出精度情報３０２Ｃとに基づいて、作業領域５０に設定された複数の領域のどの領域で作業を行えばよいかを、作業検出精度情報に記憶された作業毎に決定する。作業領域決定部３０１Ｃが決定した内容は、作業検出精度情報３０２Ｃとして記憶部３０２に記憶される。作業領域決定部３０１Ｃが行う処理の詳細については、後に詳述する。
【００３２】
画像認識部３０１Ｄは、画像取得部３０３を介して取得した画像に含まれる対象物（部品やハンド１１Ｃ等）を認識する。対象物を認識する方法は、すでに公知の様々な画像処理技術を用いることができる。
【００３３】
作業制御部３０１Ｅは、作業検出精度情報３０２Ｃに記憶された内容と、画像認識部３０１Ｄでの認識結果とに基づいて、作業情報３０２Ｄに記憶された作業をロボット１０が行うように動作制御部１２に制御情報を出力する。
【００３４】
記憶部３０２は、各種データやプログラム（制御プログラムを含む）を記憶する。また、記憶部３０２は、部品検出精度範囲情報３０２Ａと、部品検出精度情報３０２Ｂと、作業検出精度情報３０２Ｃと、作業情報３０２Ｄとを記憶する。
【００３５】
図３は、部品検出精度範囲情報３０２Ａの一例を示す図である。部品検出精度範囲情報３０２Ａは、撮影部２０によって撮影される画像２１において、画像２１の歪みを示す情報を、領域を指示する情報とともに記録するものである。部品検出精度範囲情報３０２Ａは、主として、領域格納領域３０２１と、部品検出精度範囲格納領域３０２２と、作業範囲情報格納領域３０２３とを有する。領域格納領域３０２１と、部品検出精度範囲格納領域３０２２と、作業範囲情報格納領域３０２３とは、互いに関連付けられている。
【００３６】
領域格納領域３０２１には、画像２１を複数の領域に分けて設定された領域を示す番号（以下、領域番号という）が格納される。図４は、画像２１における領域の位置関係を示す図である。
【００３７】
図４に示すように、画像２１は、横方向に１０１９ピクセル、縦方向に７６７ピクセルの画像である。画像２１は、縦方向に３つ、横方向に３つに分割され、合計で９個の領域が設定されている。９個の領域は２次元配置され、左上が領域１、領域１の隣が領域２、右上が領域３、領域１の下が領域４、領域２の下が領域５、領域３の下が領域６、左下が領域７、領域５の下が領域８、右下が領域９と設定される。
【００３８】
なお、図４は画像２１の一例であり、ピクセル数や大きさはこれに限られない。また、図４では、画像２１に３×３の９個の領域が設定されているが、領域の数は複数であればよく、複数の領域の数や領域分割方法はこれに限定されない。また、図４においては、画像２１を縦方向、横方向に均等に分割して複数の領域を設定しているが、必ずしも画像を均等に分割する必要はない。
【００３９】
図３の説明に戻る。部品検出精度範囲格納領域３０２２には、各領域の分解能、すなわち領域格納領域３０２１に格納された各領域において、その領域に含まれる対象物がどの程度の精度で検出されるかを示す部品検出精度範囲が格納される。例えば、領域格納領域３０２１で「１」が関連付けられている場合には、部品検出精度範囲格納領域３０２２では上限値「＋９．０ｍｍ」、下限値「−９．０ｍｍ」が記憶されているが、これは、画像２１の領域１の分解能が９ｍｍ＋９ｍｍ＝１８ｍｍであることを示す。
【００４０】
部品検出精度範囲は、撮影部２９の歪み（例えばディストーション）や撮影部２０の設置位置姿勢によって生じた画像２１の歪みに起因する。撮影部２９の歪みがあるため、画像２１の中心（領域５）は精度が高く、画像２１の外側にいくにしたがって精度が低くなっている。また、撮影部２０がロボット１０の上に設けられているため、画像２１に撮影される作業領域５０は、奥（画像２１の上）にいくに従い狭く撮影される（図４参照）。その結果、部品検出精度範囲は、画像２１の下（領域７〜９）は精度が高く、画像２１の上にいくにしたがって精度が低くなっている。
【００４１】
作業範囲情報格納領域３０２３には、領域格納領域３０２１に格納された各領域の位置を示す情報が格納される。中心Ｘは、各領域の中心のＸ座標を示す。中心Ｙは、各領域の中心のＹ座標を示す。幅Ｗは、各領域の横方向の幅を示す。高さＨは、各領域の縦方向の高さを示す。中心Ｘ、中心Ｙ、幅Ｗ及び高さＨは、それぞれピクセルで表される。
【００４２】
図５は、部品検出精度情報３０２Ｂの一例を示す図である。部品検出精度情報３０２Ｂは、ロボット１０が取り扱う全部品について、部品を取り扱うときに求められる精度を示す情報である。部品検出精度情報３０２Ｂは、主として、部品情報格納領域３０２４と、部品検出精度格納領域３０２５とを有する。部品情報格納領域３０２４と、部品検出精度格納領域３０２５とは、互いに関連付けられている。
【００４３】
部品情報格納領域３０２４には、部品の情報が記憶される。「Ｎｏ．」の欄には、部品に固有の番号（以下、部品番号という）が格納され、「形状」に部品の形状及び大きさを示す情報が格納される。図５においては、「形状」に部品の形状を示す図が記載されているが、これは説明のためであり、実際には、部品の形状を示す図を記載するのに十分な文字情報（例えば、円筒形）、及び数値情報（例えば、高さ５０ｍｍ）が格納される。
【００４４】
部品検出精度格納領域３０２５には、部品情報格納領域３０２４に記憶された各部品に対して、部品を取り扱うときに求められる精度が格納される。例えば、「Ｎｏ．」が「１」の部品の場合、「下限許容値」として「−１．５ｍｍ」、「上限許容値」として「＋１．５ｍｍ」の精度での検出精度が必要であることが分かる。
【００４５】
図６は、作業検出精度情報３０２Ｃの一例を示す図である。作業検出精度情報３０２Ｃは、主として、部品格納領域３０２６と、作業検出精度格納領域３０２７と、領域格納領域３０２８とを有する。部品格納領域３０２６と、作業検出精度格納領域３０２７と、領域格納領域３０２８とは、互いに関連付けられている。
【００４６】
部品格納領域３０２６には、「Ｎｏ．」と、「部品群」とで構成される。「Ｎｏ．」には、作業の順番を示す番号（以下、作業番号という）が格納される。「部品群」には、作業に必要な部品の情報が記憶される。「部品群」に記憶される部品は、部品情報格納領域３０２４に記憶された部品を組み合わせたものである。図６においては、「部品群」に部品の形状が記載されているが、「部品群」には少なくとも部品番号が格納されていればよい。
【００４７】
作業検出精度格納領域３０２７には、部品格納領域３０２６に記憶された部品を取り扱う作業時に求められる精度が記憶される。本実施の形態では、作業検出精度格納領域３０２７に格納される値は、部品格納領域３０２６に記憶された部品のうちの最も求められる精度が高い値である。
【００４８】
領域格納領域３０２８には、部品格納領域３０２６に記憶された部品を取り扱う作業をどの領域で行えばよいか（作業を実行する領域）を示す情報が格納される。
【００４９】
図７は、作業情報３０２Ｄの一例を示す図である。作業情報３０２Ｄは、主として、部品格納領域３０２６と、作業手順格納領域３０２９とを有する。部品格納領域３０２６と、作業手順格納領域３０２９とは、互いに関連付けられている。
【００５０】
作業手順格納領域３０２９には、部品格納領域３０２６に記憶された作業の手順が格納される。作業手順格納領域３０２９は、作業順序を示す「Ｎｏ．」と、作業内容を示す「内容」とで構成される。「内容」に格納される情報は、基本的に１つの作業であるため、部品格納領域３０２６に記憶された１つの作業に、複数の作業手順が記憶される。
【００５１】
図２の説明に戻る。記憶部３０２は、制御部３０の内部に設ける必要はない。記憶部３０２を制御部３０、ロボット１０の外部装置として用意し、制御部３０内あるいはロボット１０内の制御部が、記憶部３０２から作業情報を取得するようにしてもよい。
【００５２】
画像取得部３０３は、撮影部２０で撮影された画像データを取得する。画像取得部３０３は、撮影された画像データを主制御部３０１に出力する。
【００５３】
なお、ロボット１０及び制御部３０の各機能構成は、ロボット１０及び制御部３０の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。ロボット１０及び制御部３０の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【００５４】
図８は、制御部３０の概略構成の一例を示すブロック図である。図示するように、例えばコンピューターなどで構成される制御部３０は、演算装置であるＣＰＵ３１と、揮発性の記憶装置であるＲＡＭや不揮発性の記憶装置であるＲＯＭからなるメモリー３２と、外部記憶装置３３と、ロボット１０等の外部の装置と通信を行う通信装置３４と、マウスやキーボード等の入力装置３５と、ディスプレイ等の出力装置３６と、ＣＤドライブ、ＤＶＤドライブ等の読み書き装置３７と、制御部３０と他のユニットを接続するインターフェイス（Ｉ／Ｆ）３８とを備える。
【００５５】
上記の記憶部３０２以外の各機能部は、例えば、ＣＰＵ３１がメモリー３２に格納された所定のプログラムをメモリー３２に読み出して実行することにより実現される。記憶部３０２は、例えば、メモリー３２又は外部記憶装置３３により実現される。なお、所定のプログラムは、例えば、予めメモリー３２にインストールされてもよいし、通信装置３４を介してネットワークからダウンロードされてインストール又は更新されてもよい。
【００５６】
以上のロボットシステム１の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。例えば、ロボット１０が撮影部２０や制御部３０を備えていてもよい。また、一般的なロボットシステムが備える構成を排除するものではない。
【００５７】
次に、本実施形態における、上記構成からなるロボットシステム１の特徴的な処理について説明する。
【００５８】
図９は、部品検出精度範囲情報３０２Ａの生成に関する処理の流れを示すフローチャートである。この処理は、例えば、図示しないボタン等を介して作業開始指示が入力されることにより開始される。
【００５９】
撮影部２０は、作業者等により作業領域５０におかれたパターンボード５１を撮影して画像２１を取得する（ステップＳ１００）。パターンボード５１は、例えば図１０に示すように、複数の点５１Ａが縦横方向に二次元配置された模様を有するものである。図１０においては、縦方向に２０個、横方向に２３個の合計４６０個の点５１Ａが配置されている。４６０個の点５１Ａは、領域の解像度の算出（後に詳述する）に必要な数であるため、点５１Ａの数は４６０個以上である必要がある。なお、パターンボード５１の模様は、ステップＳ１００で撮影するパターンの一例であり、予め寸法が分かっている幾何パターンであれば様々な形態が考えられる。例えば、チェッカーフラッグパターンのような幾何パターンでもよい。
【００６０】
画像認識部３０１Ｄは、ステップＳ１００で得られた画像２１から点５１Ａを認識し、点５１Ａのそれぞれについて、画像２１の領域１に含まれるパターンボード５１上の座標値（ｘ，ｙ）及び画像２１上の座標値（Ｘ，Ｙ）を保持する。次に、部品検出精度範囲情報３０２Ａの領域格納領域３０２１の個数を取得し、画像２１の領域の総数Ｎを取得する（ステップＳ１０２）。部品検出精度範囲情報３０２Ａは予め作業者等によって設定されているとする。本実施例ではＮ＝９である。画像認識部３０１Ｄは、認識結果及びＮの情報を精度設定部３０１Ａに出力する。
【００６１】
精度設定部３０１Ａは、ｉ＝１に設定する（ステップＳ１０４）。なお、ｉは領域の番号を示す。本実施の形態では、領域１〜９が設定されている（図１１参照）ため、ｉは１〜９の値をとり得る。
【００６２】
精度設定部３０１Ａは、画像２１の各領域内に点５１Ａが何個含まれているか否かを示す情報（Ｍ）を取得する（ステップＳ１０６）。図１１に示す画像２１が撮影された場合には、各領域に点５１Ａが４０〜５０個程度含まれている。例えば、画像２１の領域１の場合（ｉ＝１）は、精度設定部３０１ＡはＭ＝４８を取得する。
【００６３】
精度設定部３０１Ａは、ｊ＝１に設定する（ステップＳ１０８）。なお、ｊはある領域に含まれる点５１Ａの番号を示す。本実施の形態では、画像２１の各領域内で点５１Ａを画像左上から右方向へ走査するように番号付けする。
【００６４】
精度設定部３０１Ａは、画像２１に含まれる点５１Ａの座標値（Ｘｉｊ，Ｙｉｊ）を取得する（ステップＳ１１０）。なお、ｉは領域の番号を示し、ｊはある領域に含まれる点５１Ａの番号を示す。例えば、（Ｘ１１、Ｙ１１）は、領域１に含まれる１個目の点５１Ａを意味する。
【００６５】
精度設定部３０１Ａは、座標値（Ｘｉｊ，Ｙｉｊ）の解像度Δｉｊを算出する（ステップＳ１１２）。以下、ステップＳ１１２の処理について説明する。
【００６６】
精度設定部３０１Ａは、座標値（ｘ，ｙ）を算出する式（以下の数式１）を記憶部３０２から取得する。座標値（ｘ，ｙ）を算出する式は、パターンボード５１上の点５１Ａの座標値（ｘ，ｙ）、画像２１上の点５１Ａの座標値（Ｘ，Ｙ）としたときに、数式（１）で表される。
【００６７】
【数１】
2014061578.tif 000003
【００６８】
精度設定部３０１Ａは、パターンボード５１上の点５１Ａの座標値（ｘ，ｙ）及び画像２１上の点５１Ａの座標値（Ｘ，Ｙ）を数式１に代入して、ａ０〜ａ７を算出する。
精度設定部３０１Ａは、数式（１）を微分した数式（２）を、解像度△を算出する式として記憶部３０２から取得する。
【００６９】
【数２】
2014061578.tif 000004
【００７０】
精度設定部３０１Ａは、画像２１上の点５１Ａの座標値（Ｘ，Ｙ）と、算出されたａ０〜ａ７の値とを上記数式２に代入することにより、解像度△ｉｊを算出する。
【００７１】
具体例を用いて説明する。図１２に示すように、領域１に含まれる点５１Ａの座標値（Ｘ１１，Ｙ１１）が、ステップＳ１１０で（Ｘ１，Ｙ１）と取得される。また、図１２に示すように、この点５１Ａのパターンボード上の座標値は、（ｘ１，ｙ１）である。パターンボード上の点５１Ａの座標値は、予め記憶部３０２に記憶しておけばよい。
【００７２】
まず、精度設定部３０１Ａは、画像２１の領域１に含まれるパターンボード５１上の座標値（ｘ１ｊ，ｙ１ｊ）及び画像２１上の座標値（Ｘ１ｊ，Ｙ１ｊ）とを数式１に代入して、未知数ａ０〜ａ７を算出する（ｊ＝１〜４８）。そして、精度設定部３０１Ａは、求められた未知数ａ０〜ａ７と、座標値（Ｘ１１，Ｙ１１）とを数式２に代入して、解像度△１１を算出する。
【００７３】
精度設定部３０１Ａは、ステップＳ１１２で算出された解像度△ｉｊが、最小値△ｍｉｎ＿ｉより小さいか否かを判断する（ステップＳ１１４）。
【００７４】
解像度△ｉｊが最小値△ｍｉｎ＿ｉより小さい場合（ステップＳ１１４でＹＥＳ）には、解像度△ｉｊが最小値△ｍｉｎ＿ｉに置き換えられる（ステップＳ１１６）。最小値△ｍｉｎ＿ｉは無限大に初期設定されているため、最初にもとめられた△ｉｊは、必ず最小値△ｍｉｎ＿ｉに置き換えられる。
【００７５】
解像度△ｉｊが、最小値△ｍｉｎ＿ｉより小さくない場合（ステップＳ１１４でＮＯ）、及び解像度△ｉｊが最小値△ｍｉｎ＿ｉに置き換えられた（ステップＳ１１６）場合には、精度設定部３０１Ａは、ｊに１を追加し（ステップＳ１１８）、ｊがＭより大きいか否かを判断する（ステップＳ１２０）。
【００７６】
ｊがＭより大きくない場合（ステップＳ１２０でＮＯ）には、再度ステップＳ１１０を行う。ｊがＭより大きい場合（ステップＳ１２０でＹＥＳ）には、ステップＳ１２２に進む。本実施の形態では、Ｍは４８であるため、ステップＳ１２０はｊが４９となるまでＹＥＳとなる。
【００７７】
精度設定部３０１Ａは、撮影部２０が解像度が最小値△ｍｉｎ＿ｉである画像を撮影し、画像認識部３０１Ｄが画像認識した場合の検出限界を取得し、これを領域ｉの部品検出精度範囲として取得する（ステップＳ１２２）。様々な解像度の画像を撮影して得られた画像２１を画像認識部３０１Ｄが画像認識した場合の検出限界を記憶部３０２に記憶させておき、精度設定部３０１Ａは記憶部３０２に記憶された結果に基づいて部品検出精度範囲を取得することができる。また、精度設定部３０１Ａは、複数の解像度の画像を撮影して得られた画像２１を画像認識部３０１Ｄが画像認識した場合の検出限界を記憶部３０２に記憶させておき、これらの結果を線形補間等することにより、最小値△ｍｉｎ＿ｉである画像を撮影して得られた画像を画像認識部３０１Ｄが画像認識した場合の検出限界を取得することもできる。
【００７８】
精度設定部３０１Ａは、ｉに１を追加し（ステップＳ１２４）、ｉがＮより大きいか否か、すなわち画像２１上のすべての領域に対して処理が終了したか否かを判断する（ステップＳ１２６）。
【００７９】
ｉがＮより大きくない場合（ステップＳ１２６でＮＯ）は、すべての領域に対して部品検出精度範囲が取得されていないため、精度設定部３０１Ａは再度ステップＳ１０６を行う。ｉがＮより大きい場合（ステップＳ１２６でＹＥＳ）は、すべての領域に対して部品検出精度範囲が取得されたため、精度設定部３０１Ａは処理を終了する。精度設定部３０１Ａは、処理が終了したら、取得された部品検出精度範囲を領域と関連付けて記憶することにより、部品検出精度範囲情報３０２Ａを生成する。
【００８０】
図１３は、作業検出精度情報３０２Ｃの部品検出精度５０２７の生成に関する処理の流れを示すフローチャートである。この処理は、例えば、作業情報３０２Ｄが記憶部３０２に記憶され、かつ部品検出精度範囲情報３０２Ａの生成に関する処理が終了されることにより、自動的に開始される。
【００８１】
作業精度決定部３０１Ｂは、記憶部３０２から部品検出精度情報３０２Ｂ及び作業情報３０２Ｄを取得する（ステップＳ２００）。
【００８２】
作業精度決定部３０１Ｂは、ｉを１に設定する（ステップＳ２０２）。なお、ｉは作業番号を示す。作業精度決定部３０１Ｂは、組立作業ｉで使用する部品を作業情報３０２Ｄの部品格納領域３０２６から取得する（ステップＳ２０４）。
【００８３】
作業精度決定部３０１Ｂは、部品格納領域３０２６に記憶された組立作業ｉに用いる部品の種類の数Ｎｉを取得する（ステップＳ２０６）。本実施の形態において、ｉの１の場合には、作業１の部品は２つ（図７参照）であるため、Ｎｉは２である。
【００８４】
作業精度決定部３０１Ｂは、ｊを１に設定する（ステップＳ２０８）。作業精度決定部３０１Ｂは、部品ｊの部品検出精度Ａｊを部品検出精度情報３０２Ｂから取得する（ステップＳ２１０）。
【００８５】
作業精度決定部３０１Ｂは、ステップＳ２１０で取得された部品検出精度Ａｊが、組立作業ｉの検出精度Ａｉより小さいか否かを判断する（ステップＳ２１２）。
【００８６】
部品検出精度Ａｊが組立作業ｉの検出精度Ａｉより小さい場合（ステップＳ２１２でＹＥＳ）には、組立作業ｉの検出精度Ａｉが部品検出精度Ａｊに置き換えられる（ステップＳ２１４）。組立作業ｉの検出精度Ａｉは無限大に初期設定されているため、最初に取得された部品検出精度Ａｊは、必ず組立作業ｉの検出精度Ａｉに置き換えられる。なお、組立作業ｉの検出精度Ａｉの初期設定は、無限大に限らず、最初に取得された部品検出精度Ａｊが置き換えられる程度の大きさの値であればよい。
【００８７】
部品検出精度Ａｊが組立作業ｉの検出精度Ａｉより小さくない場合（ステップＳ２１２でＮＯ）、及び組立作業ｉの検出精度Ａｉが部品検出精度Ａｊに置き換えられた場合（ステップＳ２１４）には、作業精度決定部３０１Ｂは、ｊに１を追加し（ステップＳ２１６）、ｊがＮｉより大きいか否かを判断する（ステップＳ２１８）。
【００８８】
ｊがＮｉより大きくない場合（ステップＳ２１８でＮＯ）には、作業精度決定部３０１Ｂは、再度ステップＳ２１０を行う。ｊがＮｉより大きい場合（ステップＳ２１８でＹＥＳ）には、作業精度決定部３０１Ｂは、ｉに１を追加し（ステップＳ２２０）、ｉが作業工程数より大きいか否かを判断する（ステップＳ２２２）。作業工程数は、部品格納領域３０２６に記憶された「Ｎｏ．」の最大値と同一である。
【００８９】
ｉが作業工程数より大きくない場合（ステップＳ２２２でＮＯ）には、作業精度決定部３０１Ｂは、再度ステップＳ２０４を行う。ｉが作業工程数より大きい場合（ステップＳ２２２でＹＥＳ）には、すべての作業について検出精度が求められているため、処理を終了する。作業検出精度情報３０２Ｃは、作業情報３０２Ｄの部品格納領域３０２６と、算出された検出精度とを関連付けて記憶部３０２に記憶することで、作業検出精度格納領域３０２７を生成する。
【００９０】
図１４は、作業検出精度情報３０２Ｃの領域格納領域３０２８の生成に関する処理の流れを示すフローチャートである。この処理は、例えば、作業検出精度情報３０２Ｃの部品検出精度５０２７の生成に関する処理が終了されることにより、自動的に開始される。
【００９１】
作業領域決定部３０１Ｃは、部品検出精度範囲情報３０２Ａ及び図１３に示す処理により算出された検出精度を記憶部３０２から取得する（ステップＳ３００）。また、作業領域決定部３０１Ｃは、領域格納領域３０２１に基づいて領域の総数Ｍを取得する（ステップＳ３０２）。本実施の形態では、Ｍ＝９（図４参照）である。
【００９２】
作業領域決定部３０１Ｃは、ｋを１に設定する（ステップＳ３０４）。なお、ｋは領域番号を示す。作業領域決定部３０１Ｃは、領域ｋの部品検出精度範囲を部品検出精度範囲格納領域３０２２から取得する（ステップＳ３０６）。
【００９３】
作業領域決定部３０１Ｃは、部品検出精度範囲情報３０２Ａの部品検出精度範囲格納領域３０２２の情報に基づいて、図１３に示す処理で算出された組立作業ｉの部品検出精度Ａｉが、領域ｋの部品検出精度範囲の上限、下限の範囲に含まれるか否かを判断する（ステップＳ３０８）。例えば、図１３に示す処理において、作業１の検出精度の上限許容値が＋１．５ｍｍ、下限許容値が−１．５ｍｍと算出された（図６参照）場合には、図３に示す部品検出精度範囲格納領域３０２２を参照すると、上限許容値が＋１．５ｍｍ以下、下限許容値が−１．５ｍｍ以下である領域は領域８である。したがって、作業領域決定部３０１Ｃは、作業１の部品検出精度範囲が、領域８の部品検出精度範囲の上限、下限の範囲に含まれると判断する。
【００９４】
作業領域決定部３０１Ｃは、組立作業ｉの部品検出精度Ａｉが、領域ｋの部品検出精度範囲の上限、下限の範囲に含まれる場合（ステップＳ３０８でＹＥＳ）には、領域ｋを、組立作業ｉを行う領域と決定する（ステップＳ３１０）。例えば、作業１の部品検出精度範囲は、領域８の部品検出精度範囲の上限、下限の範囲に含まれるため、領域８については、ステップＳ３０８でＹＥＳと判定される。したがって、作業領域決定部３０１Ｃは、領域８を作業１を行う領域と決定する。その後、ステップＳ３１２へ進む。
【００９５】
作業領域決定部３０１Ｃは、組立作業ｉの部品検出精度Ａｉが、領域ｋの部品検出精度範囲の上限、下限の範囲に含まれない場合（ステップＳ３０８でＮＯ）は、すべての作業の部品検出精度範囲が、領域ｋの部品検出精度範囲の上限、下限の範囲に含まれない場合である。例えば、領域１の部品検出精度範囲は、図３に示す部品検出精度範囲格納領域３０２２を参照すると、上限許容値が「＋９．０ｍｍ」、下限許容値が「−９．０ｍｍ」である。しかしながら、作業１〜３の検出精度の上限許容値、下限許容値もこの許容値より小さい（図６参照）。したがって、領域１については、ステップＳ３０８でＮＯと判定される。この場合は、ステップＳ３１２に進む。
【００９６】
作業領域決定部３０１Ｃは、ｋに１を追加し（ステップＳ３１２）、ｋが領域の総数Ｍより大きいか否かを判断する（ステップＳ３１４）。ｋが領域の総数Ｍより大きくない場合（ステップＳ３１２でＮＯ）には、作業領域決定部３０１Ｃは、再度ステップＳ３０６を行う。ｋが領域の総数Ｍより大きい場合（ステップＳ２２２でＹＥＳ）には、すべての領域について行うことが可能な作業が求められているため、処理を終了する。
【００９７】
これにより、高い検出精度が必要な部品を用いる作業は、精度の高い領域で作業を行う等、作業に用いる部品に応じた精度の領域を作業に振り分けることができる。
【００９８】
作業領域決定部３０１Ｃは、作業情報３０２Ｄの部品格納領域３０２６と、ステップＳ３０８で決定された領域とを関連付けて記憶部３０２に記憶することで、領域格納領域３０２８を生成する。これにより、作業検出精度情報３０２Ｃが生成される。
【００９９】
図１５は、ロボットシステム１のロボット１０の作業に関する処理の流れを示すフローチャートである。この処理は、例えば、図示しないボタン等を介して作業開始指示が入力されることにより開始される。
【０１００】
作業制御部３０１Ｅは、作業情報３０２Ｄを記憶部３０２から取得し、各作業で用いる部品、作業内容、作業の総数Ｎを取得する（ステップＳ４００）。作業制御部３０１Ｅは、ｉを１に設定する（ステップＳ４０２）。なお、ｉは作業番号を示す。
【０１０１】
作業制御部３０１Ｅは、作業検出精度情報３０２Ｃを記憶部３０２から取得し、組立作業ｉを行う領域ｊを取得する（ステップＳ４０４）。
【０１０２】
作業制御部３０１Ｅは、作業情報３０２Ｄを参照し、組立作業ｉで用いる部品を給材エリア４１から領域ｊへ移動させるように動作制御部１２へ指示を出力すると、動作制御部１２は、画像認識部３０１Ｄの認識結果を常時参照しつつ、可動部１１を移動させ、組立作業ｉで用いる部品を把持する（ステップＳ４０６）。
【０１０３】
作業制御部３０１Ｅは、把持した部品を給材エリア４１から領域ｊへ移動させるように動作制御部１２へ指示を出力すると、動作制御部１２は、画像認識部３０１Ｄの認識結果を常時参照しつつ、可動部１１を移動させ、把持した部品を移動させて、作業領域５０のうちの領域ｊ内の任意の位置へ載置する（ステップＳ４０８）。
【０１０４】
作業制御部３０１Ｅは、組立作業ｉで用いる全ての部品が、作業領域５０のうちの領域ｊ内の任意の位置に載置されたか否かを判断する（ステップＳ４１０）。部品がすべてそろっていない場合（ステップＳ４１０でＮＯ）は、作業制御部３０１Ｅは、再度ステップＳ４０６を行う。
【０１０５】
部品がすべてそろった場合（ステップＳ４１０でＹＥＳ）は、作業制御部３０１Ｅは、作業情報３０２Ｄの作業手順格納領域３０２９に格納された情報に基づいて、作業領域５０のうちの領域ｊ内の任意の位置内で組立作業ｉを行うように動作制御部１２へ指示を出力すると、動作制御部１２は、指示に基づいて可動部１１を移動させ、作業領域５０のうちの領域ｊ内で組立作業ｉを行う（ステップＳ４１２）。これにより、組立作業ｉに適した精度の領域ｊで組立作業ｉを行うことができる。
【０１０６】
作業制御部３０１Ｅは、組立品を把持するように動作制御部１２へ指示を出力すると、動作制御部１２は、指示に基づいて可動部１１を移動させ、作業後の組立品を把持する（ステップＳ４１４）。
【０１０７】
作業制御部３０１Ｅは、把持した部品を組立品除材エリア４２へ移動させるように動作制御部１２へ指示を出力すると、動作制御部１２は指示に基づいて可動部１１を移動させ、把持した組立品を移動させて組立品除材エリア４２へ載置する（ステップＳ４１６）。
【０１０８】
作業制御部３０１Ｅは、ｉに１を追加し（ステップＳ４１８）、ｉが作業の総数Ｎより大きいか否かを判断する（ステップＳ４２０）。ｉが作業の総数Ｎより大きくない場合（ステップＳ４２０でＮＯ）には、作業制御部３０１Ｅは、再度ステップＳ４０４を行う。ｉが作業の総数Ｎより大きい場合（ステップＳ４２０でＹＥＳ）には、すべての領域について行うことが可能な作業が求められているため、処理を終了する。
【０１０９】
本実施の形態によれば、作業内容に応じて、ロボットが作業する領域を変えることができる。すなわち、精度が必要な場合には精度のよい領域を用い、精度が不要な場合には精度の低い領域を用いるように、作業領域を使い分ける。これにより、作業領域を効率よく使うことができ、ロボット作業の高速化を実現することができる。また、精度が必要な場合には精度のよい領域を用いることで、ロボット作業の精密化を実現することができる。
【０１１０】
なお、本実施の形態では、作業検出精度情報３０２Ｃの作業検出精度格納領域３０２７に格納される値は、部品格納領域３０２６に記憶された部品のうちの最も求められる精度が高い値、すなわち部品に依った値であるが、同じ部品を用いる場合であって作業内容によって要求される精度が異なる場合も考えられる。したがって、作業検出精度格納領域３０２７に格納される値を作業内容に応じて変えるようにしてもよい。例えば、ある部品の上に他の部品を乗せる作業は、精度は低くてもよいが、ねじ止め作業は精度が必要とされる。したがって、作業手順格納領域３０２９に格納された作業内容と、要求される精度との関係を示す情報を記憶部３０２に記憶させておき、これに基づいて作業検出精度格納領域３０２７に格納される値を変えてもよい。
【０１１１】
また、本実施の形態では、全ての作業について作業可能な領域があったが、高い精度が要求される場合には作業可能な領域がない可能性もあり得る。作業検出精度情報３０２Ｃが生成されたときに、領域格納領域３０２８に領域が格納されない作業がある場合には、当該作業を行う場合（図１５参照）に、主制御部３０１が、ロボット作業ができないことを示すエラー出力を出力装置３６を介して行うようにしてもよい。
【０１１２】
また、本実施の形態では、精度設定部３０１Ａは、部品検出精度範囲情報を作業領域５０に設定された複数の領域毎に設定し、これを部品検出精度範囲情報３０２Ａとして記憶部３０２に記憶したが、本発明の処理は、部品検出精度範囲情報３０２Ａが記憶部３０２に記憶されていればよい。例えば、図示しない他の装置等から部品検出精度範囲情報３０２Ａを取得し、これを部品検出精度範囲情報３０２Ａとして記憶部３０２に記憶してもよい。
【０１１３】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に多様な変更または改良を加えることが可能であることが当業者には明らかである。また、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。特に、本発明は、ロボットと、制御部及び撮影部とが別に設けられたロボットシステムに限らず、ロボットに制御部及び撮影部が含まれたロボットとして提供することもできるし、制御部及び撮影部からなる制御装置として提供することもできる。また、本発明は、ロボット等を制御するプログラムやプログラムを記憶した記憶媒体として提供することもできる。
【符号の説明】
【０１１４】
１：ロボットシステム、１０：ロボット、１１：可動部、１１Ａ：ジョイント、１１Ｂ：リンク、１１Ｃ：ハンド、１２：動作制御部、２０：撮影部、２１：画像、２９：撮影部、３０：制御部、３１：ＣＰＵ、３２：メモリー、３３：外部記憶装置、３４：通信装置、３５：入力装置、３６：出力装置、３７：読み書き装置、４０：作業台、４１：給材エリア、４２：組立品除材エリア、５０：作業領域、５１：パターンボード、３０１：主制御部、３０１Ａ：精度設定部、３０１Ｂ：作業精度決定部、３０１Ｃ：作業領域決定部、３０１Ｄ：画像認識部、３０１Ｅ：作業制御部、３０２：記憶部、３０２Ａ：部品検出精度範囲情報、３０２Ｂ：部品検出精度情報、３０２Ｃ：作業検出精度情報、３０２Ｄ：作業情報、３０３：画像取得部、３０２１：領域格納領域、３０２２：部品検出精度範囲格納領域、３０２３：作業範囲情報格納領域、３０２４：部品情報格納領域、３０２５：部品検出精度格納領域、３０２６：部品格納領域、３０２７：作業検出精度格納領域、３０２８：領域格納領域、３０２９：作業手順格納領域
【図１】
2014061578.tif 000005
【図２】
2014061578.tif 000006
【図３】
2014061578.tif 000007
【図４】
2014061578.tif 000008
【図５】
2014061578.tif 000009
【図６】
2014061578.tif 000010
【図７】
2014061578.tif 000011
【図８】
2014061578.tif 000012
【図９】
2014061578.tif 000013
【図１０】
2014061578.tif 000014
【図１１】
2014061578.tif 000015
【図１２】
2014061578.tif 000016
【図１３】
2014061578.tif 000017
【図１４】
2014061578.tif 000018
【図１５】
2014061578.tif 000019