(57)【要約】【課題】互いに異なる複数種類の部品キットを組み立てることができるとともに、部品キットを組み立てる作業を停止させてしまうことを抑制することができるロボットを提供すること。【解決手段】互いに異なる複数種類の部品と、２以上の前記部品が互いに組み付けられた部品キットとのうち少なくとも前記部品を含む複数の対象物の少なくとも一部が重なり合って載置された容器を撮像部に撮像させ、前記撮像部により撮像された撮像画像に基づいて、複数の前記対象物それぞれについての種類と位置及び姿勢とを検出し、検出した前記種類と前記位置及び前記姿勢とに応じて、前記容器に載置された前記対象物を用いて組み立てることが可能な１以上の前記部品キットのそれぞれについての優先順位を決定し、決定した前記優先順位に基づいて選択された前記部品キットを組み立てる、ロボット。【選択図】図３
2019063907.tif 000002
【特許請求の範囲】
【請求項１】
互いに異なる複数種類の部品と、２以上の前記部品が互いに組み付けられた部品キットとのうち少なくとも前記部品を含む複数の対象物の少なくとも一部が重なり合って載置された容器を撮像部に撮像させ、
前記撮像部により撮像された撮像画像に基づいて、複数の前記対象物それぞれについての種類と位置及び姿勢とを検出し、
検出した前記種類と前記位置及び前記姿勢とに応じて、前記容器に載置された前記対象物を用いて組み立てることが可能な１以上の前記部品キットのそれぞれについての優先順位を決定し、
決定した前記優先順位に基づいて選択された前記部品キットを組み立てる、
ロボット。
【請求項２】
決定した前記優先順位に基づいて選択された前記部品キットを組み立てた後、組み立てた前記部品キットを前記容器に載置する、
請求項１に記載のロボット。
【請求項３】
組み立てた前記部品キットを前記容器に載置する際、決定した前記優先順位を更新し、更新した後の前記優先順位が２位以下の前記部品キットを組み立てるために必要な前記対象物の上に、組み立てた前記部品キットを載置する、
請求項２に記載のロボット。
【請求項４】
前記容器に載置された前記対象物を用いて組み立てることが可能な１以上の前記部品キットには、完成品が含まれる、
請求項１から３のうちいずれか一項に記載のロボット。
【請求項５】
前記対象物に含まれている前記部品キットを用いて組み立てることが可能な前記部品キットのうち前記対象物を組み付ける回数が最も多い前記部品キットの優先順位を１位に決定する、
請求項１から４のうちいずれか一項に記載のロボット。
【請求項６】
直前に組み立てた前記部品キットを用いて組み立てることが可能な前記部品キットが存在する場合、前記回数が最も多い前記部品キットに代えて、直前に組み立てた前記部品キットを用いて組み立てることが可能な前記部品キットの優先順位を１位に決定する、
請求項５に記載のロボット。
【請求項７】
ロボットを制御する制御装置であって、
互いに異なる複数種類の部品と、２以上の前記部品が互いに組み付けられた部品キットとのうち少なくとも前記部品を含む複数の対象物の少なくとも一部が重なり合って載置された容器を撮像部に撮像させ、
前記撮像部により撮像された撮像画像に基づいて、複数の前記対象物それぞれについての種類と位置及び姿勢とを検出し、
検出した前記種類と前記位置及び前記姿勢とに応じて、前記容器に載置された前記対象物を用いて組み立てることが可能な１以上の前記部品キットのそれぞれについての優先順位を決定し、
決定した前記優先順位に基づいて選択された前記部品キットを前記ロボットに組み立てさせる、
制御装置。
【請求項８】
ロボットと、
撮像部と、
前記ロボットを制御する制御装置と、
を備え、
前記制御装置は、
互いに異なる複数種類の部品と、２以上の前記部品が互いに組み付けられた部品キットとのうち少なくとも前記部品を含む複数の対象物の少なくとも一部が重なり合って載置された容器を前記撮像部に撮像させ、
前記撮像部により撮像された撮像画像に基づいて、複数の前記対象物それぞれについての種類と位置及び姿勢とを検出し、
検出した前記種類と前記位置及び前記姿勢とに応じて、前記容器に載置された前記対象物を用いて組み立てることが可能な１以上の前記部品キットのそれぞれについての優先順位を決定し、
決定した前記優先順位に基づいて選択された前記部品キットを前記ロボットに組み立てさせる、
ロボットシステム。
【請求項９】
ロボットと、
撮像部と、
ロボットを制御する制御装置と、
を備え、
前記制御装置は、
プロセッサーを備え、
前記プロセッサーは、
互いに異なる複数種類の部品と、２以上の前記部品が互いに組み付けられた部品キットとのうち少なくとも前記部品を含む複数の対象物の少なくとも一部が重なり合って載置された容器を前記撮像部に撮像させ、前記撮像部により撮像された撮像画像に基づいて、複数の前記対象物それぞれについての種類と位置及び姿勢とを検出し、検出した前記種類と前記位置及び前記姿勢とに応じて、前記容器に載置された前記対象物を用いて組み立てることが可能な１以上の前記部品キットのそれぞれについての優先順位を決定し、決定した前記優先順位に基づいて選択された前記部品キットを前記ロボットに組み立てさせる指令を実行するように構成されている、
ロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット、制御装置、及びロボットシステムに関する。
【背景技術】
【０００２】
複数の部品が組み付けられることによって完成する完成品を当該複数の部品を用いて組み立てる作業をロボットに行わせる技術の研究や開発が行われている。
【０００３】
これに関し、複数の部品が収納された部品収納部と、各製品を生産するために必要な複数の部品を部品収納部より取り出し集めて部品キットを形成するロボットとが配置された生産システムであって、予め撮像された各種類の部品の像である部品基準画像、及び、各製品のための部品キットに含まれるべき部品の情報である部品キット構成部品情報を記憶する記憶手段と、ロボットにより実際に形成された部品キットを撮像する第１の撮像手段と、第１の撮像手段により撮像された部品キットの画像と記憶手段に記憶された部品基準画像とを比較し、部品キットの画像中で部品基準画像に対応する部分画像を抽出して、部品キットに実際に含まれている部品の種類と数を特定する第１の部品特定手段と、第１の部品特定手段により特定された部品の種類および数と、記憶手段に記憶された部品キット構成部品情報とを比較し、必要な部品が部品キットに過不足なく含まれていることを確認する第１の確認手段と、を備える生産システムが知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１８８４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような生産システムでは、互いに異なる複数種類の部品キットを組み立てることができず、部品キットの生産効率を向上させることが困難な場合があった。また、当該生産システムでは、互いに異なる複数種類の部品が重なり合うように部品収納部に収納されていた場合、部品キットを組み立てるために必要な部品を部品収納部から取り出すことができないことがあった。その結果、当該生産システムは、部品キットを組み立てる作業を停止させてしまう場合があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、互いに異なる複数種類の部品と、２以上の前記部品が互いに組み付けられた部品キットとのうち少なくとも前記部品を含む複数の対象物の少なくとも一部が重なり合って載置された容器を撮像部に撮像させ、前記撮像部により撮像された撮像画像に基づいて、複数の前記対象物それぞれについての種類と位置及び姿勢とを検出し、検出した前記種類と前記位置及び前記姿勢とに応じて、前記容器に載置された前記対象物を用いて組み立てることが可能な１以上の前記部品キットのそれぞれについての優先順位を決定し、決定した前記優先順位に基づいて選択された前記部品キットを組み立てる、ロボットである。
これにより、ロボットは、互いに異なる複数種類の部品キットを組み立てることができるとともに、部品キットを組み立てる作業を停止させてしまうことを抑制することができる。
【０００７】
また、本発明の他の態様は、ロボットにおいて、決定した前記優先順位に基づいて選択された前記部品キットを組み立てた後、組み立てた前記部品キットを前記容器に載置する、構成が用いられてもよい。
これにより、ロボットは、組み立てた部品キットを用いて他の部品キットを組み立てることができる。
【０００８】
また、本発明の他の態様は、ロボットにおいて、組み立てた前記部品キットを前記容器に載置する際、決定した前記優先順位を更新し、更新した後の前記優先順位が２位以下の前記部品キットを組み立てるために必要な前記対象物の上に、組み立てた前記部品キットを載置する、構成が用いられてもよい。
これにより、ロボットは、載置した部品キットによって、優先順位が１位の部品キットが組み立てられなくなってしまうことを抑制することができる。
【０００９】
また、本発明の他の態様は、ロボットにおいて、前記容器に載置された前記対象物を用いて組み立てることが可能な１以上の前記部品キットには、完成品が含まれる、構成が用いられてもよい。
これにより、ロボットは、互いに異なる複数種類の部品キットを組み立てることができるとともに、互いに異なる複数種類の完成品を組み立てることができる。
【００１０】
また、本発明の他の態様は、ロボットにおいて、前記対象物に含まれている前記部品キットを用いて組み立てることが可能な前記部品キットのうち前記対象物を組み付ける回数が最も多い前記部品キットの優先順位を１位に決定する、構成が用いられてもよい。
これにより、ロボットは、部品キットの組み立てに係る効率を向上させることができる。
【００１１】
また、本発明の他の態様は、ロボットにおいて、直前に組み立てた前記部品キットを用いて組み立てることが可能な前記部品キットが存在する場合、前記回数が最も多い前記部品キットに代えて、直前に組み立てた前記部品キットを用いて組み立てることが可能な前記部品キットの優先順位を１位に決定する、構成が用いられてもよい。
これにより、ロボットは、部品キットの組み立てに係る効率をより確実に向上させることができる。
【００１２】
また、本発明の他の態様は、ロボットを制御する制御装置であって、互いに異なる複数種類の部品と、２以上の前記部品が互いに組み付けられた部品キットとのうち少なくとも前記部品を含む複数の対象物の少なくとも一部が重なり合って載置された容器を撮像部に撮像させ、前記撮像部により撮像された撮像画像に基づいて、複数の前記対象物それぞれについての種類と位置及び姿勢とを検出し、検出した前記種類と前記位置及び前記姿勢とに応じて、前記容器に載置された前記対象物を用いて組み立てることが可能な１以上の前記部品キットのそれぞれについての優先順位を決定し、決定した前記優先順位に基づいて選択された前記部品キットを前記ロボットに組み立てさせる、制御装置である。
これにより、制御装置は、互いに異なる複数種類の部品キットを組み立てることができるとともに、部品キットを組み立てる作業を停止させてしまうことを抑制することができる。
【００１３】
また、本発明の他の態様は、ロボットと、撮像部と、前記ロボットを制御する制御装置と、を備え、前記制御装置は、互いに異なる複数種類の部品と、２以上の前記部品が互いに組み付けられた部品キットとのうち少なくとも前記部品を含む複数の対象物の少なくとも一部が重なり合って載置された容器を前記撮像部に撮像させ、前記撮像部により撮像された撮像画像に基づいて、複数の前記対象物それぞれについての種類と位置及び姿勢とを検出し、検出した前記種類と前記位置及び前記姿勢とに応じて、前記容器に載置された前記対象物を用いて組み立てることが可能な１以上の前記部品キットのそれぞれについての優先順位を決定し、決定した前記優先順位に基づいて選択された前記部品キットを前記ロボットに組み立てさせる、ロボットシステムである。
これにより、ロボットシステムは、互いに異なる複数種類の部品キットを組み立てることができるとともに、部品キットを組み立てる作業を停止させてしまうことを抑制することができる。
【００１４】
また、本発明の他の態様は、ロボットと、撮像部と、ロボットを制御する制御装置と、を備え、前記制御装置は、プロセッサーを備え、前記プロセッサーは、互いに異なる複数種類の部品と、２以上の前記部品が互いに組み付けられた部品キットとのうち少なくとも前記部品を含む複数の対象物の少なくとも一部が重なり合って載置された容器を前記撮像部に撮像させ、前記撮像部により撮像された撮像画像に基づいて、複数の前記対象物それぞれについての種類と位置及び姿勢とを検出し、検出した前記種類と前記位置及び前記姿勢とに応じて、前記容器に載置された前記対象物を用いて組み立てることが可能な１以上の前記部品キットのそれぞれについての優先順位を決定し、決定した前記優先順位に基づいて選択された前記部品キットを前記ロボットに組み立てさせる指令を実行するように構成されている、ロボットシステムである。
これにより、ロボットシステムは、互いに異なる複数種類の部品キットを組み立てることができるとともに、部品キットを組み立てる作業を停止させてしまうことを抑制することができる。
【図面の簡単な説明】
【００１５】
【図１】実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】ロボット制御装置４０及び画像処理装置５０のハードウェア構成の一例を示す図である。
【図３】ロボット制御装置４０及び画像処理装置５０の機能構成の一例を示す図である。
【図４】ロボット制御装置４０及び画像処理装置５０が行う処理の流れの一例を示すフローチャートである。
【図５】組立情報の一例を示す図である。
【図６】容器ＴＲにおける対象物Ｏ１〜対象物Ｏ８の載置状態の一例を示す図である。
【図７】容器ＴＲにおける対象物Ｏ１〜対象物Ｏ８の載置状態の他の例を示す図である。
【発明を実施するための形態】
【００１６】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００１７】
＜ロボットシステムの構成＞
まず、ロボットシステム１の構成について説明する。
図１は、実施形態に係るロボットシステム１の構成の一例を示す図である。ロボットシステム１は、撮像部Ｃと、ロボット２０と、制御装置３０を備える。また、制御装置３０は、ロボット制御装置４０と、画像処理装置５０を備える。なお、ロボットシステム１では、撮像部Ｃと、ロボット２０と、ロボット制御装置４０と、画像処理装置５０との一部又は全部が一体に構成されてもよい。
【００１８】
撮像部Ｃは、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。この一例において、撮像部Ｃは、図１に示した作業台ＴＢの上面を撮像可能な位置に設けられる。作業台ＴＢは、例えば、テーブル等の台である。なお、作業台ＴＢは、テーブルに代えて、床面、治具、棚等の物体を載置可能な台であれば如何なる台であってもよい。撮像部Ｃは、撮像部Ｃが撮像可能な範囲の静止画像を撮像する構成であってもよく、当該範囲の動画像を撮像する構成であってもよい。なお、撮像部Ｃは、カメラに代えて、撮像部Ｃが撮像可能な範囲の三次元形状を示す点群を生成する点群生成装置であってもよい。この場合、撮像部Ｃは、当該範囲をステレオ撮像可能な装置等のように、当該範囲の三次元形状を示す情報を取得可能な装置である。
【００１９】
撮像部Ｃは、ケーブルによって画像処理装置５０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。なお、撮像部Ｃは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって画像処理装置５０と接続される構成であってもよい。
【００２０】
ロボット２０は、可動部Ａと、可動部Ａを支持する支持台Ｂを備える単腕ロボットである。単腕ロボットは、この一例における可動部Ａのような１本の腕（アーム）を備えるロボットである。なお、ロボット２０は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、２本以上の腕（例えば、２本以上の可動部Ａ）を備えるロボットである。なお、複腕ロボットのうち、２本の腕（例えば、２本の可動部Ａ）を備えるロボットは、双腕ロボットとも称される。すなわち、ロボット２０は、２本の腕を備える双腕ロボットであってもよく、３本以上の腕（例えば、３本以上の可動部Ａ）を備える複腕ロボットであってもよい。また、ロボット２０は、スカラロボット（水平多関節ロボット）、直交座標ロボット、円筒型ロボット等の他のロボットであってもよい。直交座標ロボットは、例えば、ガントリロボットである。
【００２１】
可動部Ａは、エンドエフェクターＥと、マニピュレーターＭを備える。
エンドエフェクターＥは、物体を保持するエンドエフェクターである。この一例において、エンドエフェクターＥは、指部を備え、当該指部によって物体を挟んで持つことにより当該物体を保持する。なお、エンドエフェクターＥは、これに代えて、空気の吸引や磁力、他の治具等によって物体を持ち上げることにより当該物体を保持する構成であってもよい。なお、この一例において、保持するとは、物体を持ち上げることが可能な状態にすることを意味する。
【００２２】
エンドエフェクターＥは、ケーブルによってロボット制御装置４０と通信可能に接続されている。これにより、エンドエフェクターＥは、ロボット制御装置４０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、エンドエフェクターＥは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置４０と接続される構成であってもよい。
【００２３】
マニピュレーターＭは、６つの関節を備える。また、当該６つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターＭを備える可動部Ａは、６軸垂直多関節型のアームである。可動部Ａは、支持台Ｂと、エンドエフェクターＥと、マニピュレーターＭと、マニピュレーターＭが備える６つの関節それぞれのアクチュエーターとによる連携した動作によって６軸の自由度の動作を行う。なお、可動部Ａは、５軸以下の自由度で動作する構成であってもよく、７軸以上の自由度で動作する構成であってもよい。
【００２４】
マニピュレーターＭが備える６つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによってロボット制御装置４０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置４０から取得される制御信号に基づいて、マニピュレーターＭを動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、マニピュレーターＭが備える６つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置４０と接続される構成であってもよい。
【００２５】
制御装置３０は、撮像部Ｃと、ロボット２０とのそれぞれを制御する。前述した通り、制御装置３０は、ロボット制御装置４０と、画像処理装置５０を備える。
【００２６】
ロボット制御装置４０は、ロボット制御装置４０が備える図１において図示しないメモリーに予め記憶された動作プログラムに基づいて、ロボット２０に予め決められた作業を行わせる。この際、ロボット制御装置４０は、画像処理装置５０を制御し、撮像部Ｃが撮像可能な範囲を撮像部Ｃに撮像させる。そして、ロボット制御装置４０は、撮像部Ｃが撮像した撮像画像に基づく処理を画像処理装置５０に行わせる。ロボット制御装置４０は、画像処理装置５０による当該処理の結果に基づいて、ロボット２０に当該作業を行わせる。
【００２７】
画像処理装置５０は、ロボット制御装置４０からの要求に応じて、撮像部Ｃが撮像可能な範囲を撮像部Ｃに撮像させる。画像処理装置５０は、撮像部Ｃが撮像した撮像画像を撮像部Ｃから取得する。画像処理装置５０は、取得した撮像画像に基づく処理を行う。そして、画像処理装置５０は、当該処理の結果を示す情報をロボット制御装置４０に出力する。
【００２８】
＜制御装置がロボットに行わせる作業の概要＞
以下、制御装置３０がロボット２０に行わせる作業の概要について説明する。
【００２９】
図１に示した通り、作業台ＴＢの上面には、容器ＴＲが載置されている。容器ＴＲは、例えば、トレイである。なお、容器ＴＲは、トレイに代えて、物体を載置（収容）可能な他の容器であってもよい。容器ＴＲには、複数の対象物Ｏ１〜対象物Ｏｎが載置されている。以下では、一例として、８個の対象物である対象物Ｏ１〜対象物Ｏ８が載置されている場合について説明する。容器ＴＲにおいて、当該８個の対象物は、互いに重なり合って載置されている構成であってもよく、互いに重なり合わずに載置されている構成であってもよい。図１に示した例では、当該８個の対象物の少なくとも一部は、互いに重なり合って容器ＴＲに載置されている。
【００３０】
対象物Ｏ１〜対象物Ｏ８のそれぞれは、互いに異なる複数種類の部品と、２以上の当該部品が互いに組み付けられた部品キットとのうち少なくとも当該部品を含んでいる。制御装置３０は、ロボット２０を動作させ、対象物Ｏ１〜対象物Ｏ８のそれぞれを２つずつ組付対象対として容器ＴＲから取り出し、取り出した組付対象対として取り出した対象物同士を組み付けることにより、当該組付対象対を用いて組み立てることが可能な部品キットを組み立てる。そして、制御装置３０は、ロボット２０を動作させ、組み立てた部品キットを新たな対象物として容器ＴＲに載置させる。このような部品キットの組み立てを繰り返すことにより、制御装置３０は、対象物Ｏ１〜対象物Ｏ８のそれぞれを用いて組み立てることが可能な完成品を組み立てる作業を、予め決められた作業としてロボット２０に行わせる。
【００３１】
以下では、ロボット２０に予め決められた作業を行わせる際に制御装置３０が行う処理について詳しく説明する。また、以下では、一例として、対象物Ｏ１〜対象物Ｏ８のそれぞれが、互いに異なる複数種類の部品である場合について説明する。ここで、当該部品は、例えば、プレート、ギア、カバー等の産業用の部品であるが、産業用の部品に代えて、日用品の部品、生体の部品等の他の部品であってもよい。図１に示した例では、図を簡略化するため、対象物Ｏ１〜対象物Ｏ８それぞれの形状を、直方体形状によって表している。なお、対象物Ｏ１〜対象物Ｏ８それぞれの形状は、直方体形状に代えて、他の形状であってもよい。
【００３２】
＜ロボット制御装置及び画像処理装置のハードウェア構成＞
以下、ロボット制御装置４０及び画像処理装置５０のハードウェア構成について説明する。
【００３３】
図２は、ロボット制御装置４０及び画像処理装置５０のハードウェア構成の一例を示す図である。図２は、ロボット制御装置４０のハードウェア構成（図２における４０番台の符号が付された機能部）と、画像処理装置５０のハードウェア構成（図２における５０番台の符号が付された機能部）とを便宜的に重ねて示した図である。
【００３４】
ロボット制御装置４０は、例えば、プロセッサー４１と、メモリー４２と、通信部４４を備える。また、ロボット制御装置４０は、通信部４４を介してロボット２０、画像処理装置５０のそれぞれと通信を行う。これらの構成要素は、バスＢＳ１を介して相互に通信可能に接続されている。
【００３５】
プロセッサー４１は、例えば、ＣＰＵ（Central  Processing  Unit）である。なお、プロセッサー４１は、ＣＰＵに代えて、ＦＰＧＡ（Field  Programmable  Gate  Array）等の他のプロセッサーであってもよい。プロセッサー４１は、メモリー４２に格納された各種のプログラムを実行する。
メモリー４２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）等を含む。なお、メモリー４２は、ロボット制御装置４０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。メモリー４２は、ロボット制御装置４０が処理する各種の情報、各種の画像、動作プログラム等を格納する。
通信部４４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
【００３６】
画像処理装置５０は、例えば、プロセッサー５１と、メモリー５２と、通信部５４を備える。また、画像処理装置５０は、通信部５４を介して撮像部Ｃ、ロボット制御装置４０のそれぞれと通信を行う。これらの構成要素は、バスＢＳ２を介して相互に通信可能に接続されている。
【００３７】
プロセッサー５１は、例えば、ＣＰＵである。なお、プロセッサー５１は、ＣＰＵに代えて、ＦＰＧＡ等の他のプロセッサーであってもよい。プロセッサー５１は、メモリー５２に格納された各種のプログラムを実行する。
メモリー５２は、例えば、ＨＤＤやＳＳＤ、ＥＥＰＲＯＭ、ＲＯＭ、ＲＡＭ等を含む。なお、メモリー５２は、画像処理装置５０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。メモリー５２は、画像処理装置５０が処理する各種の情報、各種の画像、動作プログラム等を格納する。
通信部５４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
【００３８】
なお、ロボット制御装置４０と画像処理装置５０のうちの少なくとも一方は、キーボード、マウス、タッチパッド等の入力装置と、ディスプレイを有する表示装置とのいずれか一方又は両方を備える構成であってもよい。
【００３９】
＜ロボット制御装置及び画像処理装置の機能構成＞
以下、図３を参照し、ロボット制御装置４０及び画像処理装置５０の機能構成について説明する。図３は、ロボット制御装置４０及び画像処理装置５０の機能構成の一例を示す図である。
【００４０】
ロボット制御装置４０は、メモリー４２と、通信部４４と、制御部４６を備える。
【００４１】
制御部４６は、ロボット制御装置４０の全体を制御する。制御部４６は、画像処理装置制御部４６１と、ロボット制御部４６３を備える。制御部４６が備えるこれらの機能部は、例えば、プロセッサー４１が、メモリー４２に記憶された各種の指令を実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩ（Large  Scale  Integration）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００４２】
画像処理装置制御部４６１は、画像処理装置５０に各種の要求を出力し、画像処理装置５０を制御する。
【００４３】
ロボット制御部４６３は、メモリー４２に予め記憶された動作プログラムをメモリー４２から読み出す。ロボット制御部４６３は、読み出した動作プログラムに応じて、ロボット２０を動作させる。また、ロボット制御部４６３は、当該動作プログラムに応じて、画像処理装置制御部４６１に画像処理装置５０を制御させる。そして、ロボット制御部４６３は、画像処理装置５０による処理の結果を用いてロボット２０を動作させる。
【００４４】
画像処理装置５０は、メモリー５２と、通信部５４と、制御部５６を備える。
【００４５】
制御部５６は、画像処理装置５０の全体を制御する。制御部５６は、撮像制御部５６１と、画像取得部５６３と、画像処理部５６５を備える。制御部５６が備えるこれらの機能部は、例えば、プロセッサー５１が、メモリー５２に記憶された各種の指令を実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩ、ＡＳＩＣ等のハードウェア機能部であってもよい。
【００４６】
撮像制御部５６１は、ロボット制御装置４０からの要求に応じて、撮像部Ｃが撮像可能な範囲を撮像部Ｃに撮像させる。
【００４７】
画像取得部５６３は、撮像部Ｃが撮像した撮像画像を撮像部Ｃから取得する。
【００４８】
画像処理部５６５は、画像取得部５６３が撮像部Ｃから取得した撮像画像に基づく処理を行う。
【００４９】
＜ロボット制御装置及び画像処理装置が行う処理＞
以下、図４を参照し、ロボット制御装置４０及び画像処理装置５０が行う処理の流れについて説明する。図４は、ロボット制御装置４０及び画像処理装置５０が行う処理の流れの一例を示すフローチャートである。なお、図４に示したフローチャートの処理は、メモリー４２に予め記憶された動作プログラムに応じてロボット制御装置４０が行う処理、及びロボット制御装置４０からの要求に応じて画像処理装置５０が行う処理を示している。ロボット制御装置４０と画像処理装置５０との連携の仕方は、図４に示したフローチャートの処理を実現可能であれば、如何なる連携の仕方であってもよい。このため、ロボット制御装置４０と画像処理装置５０との間における要求と応答については、説明を省略する。
【００５０】
画像処理部５６５は、メモリー５２に予め記憶された組立情報をメモリー５２から読み出す（ステップＳ１１０）。ここで、図５を参照し、組立情報について説明する。
【００５１】
図５は、組立情報の一例を示す図である。組立情報は、対象物Ｏ１〜対象物Ｏ８のそれぞれを用いて完成品を組み立てる工程を示す情報である。図５に示した例では、図５に示した矢印が示す方向が当該工程の上流側を示し、当該方向と逆の方向が当該工程の下流側を示す。以下では、説明の便宜上、図５に示した１５の対象物のそれぞれをノードと称し、ノード間を繋ぐ線をリンクと称して説明する。
【００５２】
図５に示した組立情報には、１５のノードとして、容器ＴＲに載置された対象物Ｏ１〜対象物Ｏ８のそれぞれを用いて組み立てることが可能な７つの部品キットのそれぞれである対象物Ｗ１〜対象物Ｗ７と、対象物Ｏ１〜対象物Ｏ８とが含まれている。また、図５では、あるノードであるノードＸに対してリンクを介して下流側から繋がる２つのノードは、ノードＸの組付対象対を示す。例えば、対象物Ｗ１に対してリンクを介して下流側から繋がる２つのノードである対象物Ｏ１と対象物Ｏ２は、対象物Ｗ１の組付対象対である。また、例えば、対象物Ｗ５に対してリンクを介して下流側から繋がる２つのノードである対象物Ｗ２と対象物Ｗ３は、対象物Ｗ５の組付対象対である。また、例えば、対象物Ｗ７に対してリンクを介して下流側から繋がる２つのノードである対象物Ｗ６と対象物Ｏ８は、対象物Ｗ７の組付対象対である。
【００５３】
また、図５に示した組立情報では、最上流に位置する対象物Ｗ７が、完成品を表している。このため、図５では、対象物Ｗ７は、他の対象物の組付対象対にはなっていない。なお、組立情報において最上流に位置する対象物は、必ずしも完成品を表す必要はなく、他の作業において用いられる部品キットを表す構成であってもよい。
【００５４】
このような組立情報をステップＳ１１０においてメモリー３２から画像処理部５６５が読み出した後、画像処理部５６５は、前述の７つの部品キットである対象物Ｗ１〜対象物Ｗ７のそれぞれを組み立てる順番に関する優先順位を決定する（ステップＳ１２０）。ここで、ステップＳ１２０の処理について説明する。
【００５５】
画像処理部５６５は、予め決められた所定のルールに基づいて、前述の７つの部品キットである対象物Ｗ１〜対象物Ｗ７のそれぞれを組み立てる順番に関する優先順位を決定する。当該所定のルールには、例えば、以下の１）〜３）それぞれのルールが含まれる。
【００５６】
１）上流側よりも下流側のノードの優先順位を高くする。
２）最上流から下流に向かうリンクを介した経路上に存在する各ノードにおける組付対象対である２つのノードを比較し、当該２つのノードのそれぞれと繋がっている最下流までのノードの数が多い方の優先順位を高くする。すなわち、当該２つのノードのうち組み付けられる対象物であって容器ＴＲに載置された複数の対象物の数が多い方の優先順位を高くする。換言すると、容器ＴＲに載置された対象物を用いて組み立てることが可能な部品キットのうち対象物を組み付ける回数が最も多い部品キットの優先順位を高くする。この場合、容器ＴＲに載置された対象物に含まれている部品キットを用いて組み立てることが可能な部品キットのうち対象物を組み付ける回数が最も多い部品キットの優先順位が、１位に決定される。ただし、当該回数が同数である２以上の部品キットが存在する場合、当該２以上の部品キットについては、例えば、ランダムに優先順位を決められる構成であってもよく、他の方法によって優先順位を決められる構成であってもよい。
３）連続して組み立てることが可能な部品キットの優先順位を、他の部品キットの優先順位よりも高くする。例えば、直前に組み立てた部品キットを用いて組み立てることが可能な部品キットが存在する場合、当該部品キットの優先順位を１位に決定する。また、当該部品キットを用いて組み立てることが可能な部品キットが存在する場合、当該部品キットの優先順位を２位に決定する。これを繰り返すことにより、連続して組み立てることが可能な部品キットの優先順位を、他の部品キットの優先順位よりも高くする。
【００５７】
図５に示した例では、優先順位は、対象物Ｗ２、対象物Ｗ３、対象物Ｗ１、対象物Ｗ５、対象物Ｗ４、対象物Ｗ６、対象物Ｗ７の順、又は、対象物Ｗ３、対象物Ｗ２、対象物Ｗ１、対象物Ｗ５、対象物Ｗ４、対象物Ｗ６、対象物Ｗ７の順に高い。以下では、一例として、ステップＳ１２０において画像処理部５６５が優先順位を対象物Ｗ２、対象物Ｗ３、対象物Ｗ１、対象物Ｗ５、対象物Ｗ４、対象物Ｗ６、対象物Ｗ７の順に高いように決定した場合について説明する。なお、所定のルールには、上記の１）〜３）それぞれのルールが含まれる構成に代えて、上記の１）〜３）のうちの一部が含まれる構成であってもよく、上記の１）〜３）のうちの一部に加えて、ユーザーが予め指定したルール等の他のルールが含まれる構成であってもよく、上記の１）〜３）の全部に加えて、ユーザーが予め指定したルール等の他のルールが含まれる構成であってもよい。
【００５８】
ステップＳ１２０において前述の７つの部品キットである対象物Ｗ１〜対象物Ｗ７のそれぞれを組み立てる順番に関する優先順位が決定された後、画像処理部５６５は、優先順位を示す値を格納する変数である順位変数Ｎを生成する。画像処理部５６５は、生成した順位変数Ｎに１を代入する、すなわち、順位変数Ｎを１に初期化する（ステップＳ１３０）。
【００５９】
次に、撮像制御部５６１は、撮像部Ｃが撮像可能な範囲を撮像部Ｃに撮像させる（ステップＳ１４０）。
【００６０】
次に、画像取得部５６３は、ステップＳ１４０において撮像部Ｃが撮像した撮像画像を撮像部Ｃから取得する（ステップＳ１５０）。
【００６１】
次に、画像処理部５６５は、ステップＳ１５０において画像取得部５６３が取得した撮像画像に基づいて、順位変数Ｎが示す優先順位の対象物の組付対象対それぞれの位置及び姿勢を当該撮像画像から検出する（ステップＳ１６０）。より具体的には、画像処理部５６５は、例えば、パターンマッチング等によって、当該撮像画像に含まれる対象物の種類を検出する。画像処理部５６５は、検出した種類のうち当該組付対象対に含まれる２種類の対象物それぞれの位置及び姿勢を検出する。この一例では、各対象物の位置及び姿勢は、各対象物の重心の位置及び姿勢によって表される。当該２種類の対象物それぞれの位置及び姿勢を検出する方法は、既知の方法であってもよく、これから開発される方法であってもよい。画像処理部５６５は、当該２種類の対象物それぞれの位置及び姿勢を検出した後、ステップＳ１７０に遷移する。また、画像処理部５６５は、当該２種類の対象物のうちの少なくとも一方が検出されなかった場合、又は、当該２種類の対象物のうち少なくとも一方の位置及び姿勢が検出できなかった場合、ステップＳ１７０に遷移する。
【００６２】
次に、画像処理部５６５は、順位変数Ｎが示す優先順位の対象物の組付対象対それぞれの位置及び姿勢がステップＳ１６０において撮像画像から検出されたか否かを判定する（ステップＳ１７０）。順位変数Ｎが示す優先順位の対象物の組付対象対それぞれの位置及び姿勢がステップＳ１６０において撮像画像から検出されていないと判定した場合（ステップＳ１７０−ＮＯ）、画像処理部５６５は、順位変数Ｎに格納されている値に１を加算し（ステップＳ２１０）、ステップＳ１６０に遷移する。そして、画像処理部５６５は、ステップＳ２１０において１が加算された値を格納している順位変数Ｎが示す優先順位の対象物の組付対象対それぞれの位置及び姿勢を当該撮像画像から検出する。一方、順位変数Ｎが示す優先順位の対象物の組付対象対それぞれの位置及び姿勢がステップＳ１６０において撮像画像から検出されたと判定した場合（ステップＳ１７０−ＹＥＳ）、画像処理部５６５は、当該組付対象対それぞれの位置及び姿勢を示す情報をロボット制御装置４０に出力する。そして、ロボット制御部４６３は、取得した当該情報が示す位置及び姿勢に基づいてロボット２０を動作させ、順位変数Ｎが示す対象物（すなわち、順位変数Ｎが示す部品キット）をロボット２０に組み立てさせる（ステップＳ１８０）。ここで、ステップＳ１８０においてロボット２０が当該対象物を組み立てる方法は、専用の治具を用いた方法であってもよく、他のロボットとの協調動作による方法であってもよく、当該対象物を組み立て可能な他の如何なる方法であってもよい。当該対象物を組み立てさせた後、ロボット制御部４６３は、ロボット２０を動作させ、組み立てた当該対象物を容器ＴＲに載置させる。この際、ロボット制御部４６３は、ロボット２０を動作させ、優先順位が３位以下の対象物（すなわち、優先順位が３位以下の部品キット。例えば、優先順位が最下位の部品キット）を組み立てるために必要な対象物の上に、直前に組み立てた対象物（すなわち、部品キット）を載置する構成であってもよく、容器ＴＲ内において何も載置されていない領域に当該対象物を載置する構成であってもよい。なお、ロボット制御部４６３は、ステップＳ１８０において、直前に組み立てた対象物を容器ＴＲ内に載置しない場合、後述するステップＳ１９０において当該対象物を容器ＴＲ内に載置する。
【００６３】
次に、画像処理部５６５は、現在の優先順位を更新する（ステップＳ１９０）。すなわち、画像処理部５６５は、前述の７つの対象物のうち現在までに組み立てられていない対象物の優先順位を上記の１）〜３）を含むルールに基づいて決定し直す。この際、画像処理部５６５は、既に組み立てが終わっている対象物について、組み立てる対象から除外する。なお、ステップＳ１９０において優先順位の更新が行われた後、ロボット制御部４６３は、ロボット２０を動作させ、優先順位が２位以下の対象物（すなわち、優先順位が２位以下の部品キット。例えば、優先順位が最下位の部品キット）を組み立てるために必要な対象物の上に、直前に組み立てた対象物（すなわち、部品キット）を載置する構成であってもよく、容器ＴＲ内において何も載置されていない領域に当該対象物を載置する構成であってもよい。なお、ロボット制御部４６３は、ステップＳ１９０において、直前に組み立てた対象物を容器ＴＲ内に載置しない場合、ステップＳ１８０において当該対象物を容器ＴＲ内に載置する。
【００６４】
次に、ロボット制御部４６３は、完成品の組み立てが終了したか否かを判定する（ステップＳ２００）。完成品の組み立てが終了していないとロボット制御部４６３が判定した場合（ステップＳ２００−ＮＯ）、画像処理部５６５は、ステップＳ１３０に遷移し、順位変数Ｎに１を再び代入する、すなわち、順位変数Ｎを１に初期化し直す。一方、完成品の組み立てが終了していると判定した場合（ステップＳ２００−ＹＥＳ）、ロボット制御部４６３は、処理を終了する。
【００６５】
以上のように、図４に示したフローチャートの処理を行うことにより、制御装置３０（すなわち、ロボット制御装置４０及び画像処理装置５０）は、互いに異なる複数種類の部品キットを組み立てることができるとともに、部品キットを組み立てる作業を停止させてしまうことを抑制することができる。その結果、制御装置３０は、容器ＴＲに載置された対象物を用いて完成品を組み立てることができる。
【００６６】
＜優先順位の決定と完成品が組み立てられるまでの工程の具体例１＞
以下、図４に示したフローチャートの処理による優先順位の決定と完成品が組み立てられるまでの工程との具体例１について説明する。当該具体例１では、図６に示したように、容器ＴＲに載置された対象物同士がすべて重なり合っていない場合について説明する。図６は、容器ＴＲにおける対象物Ｏ１〜対象物Ｏ８の載置状態の一例を示す図である。
【００６７】
図６に示した例では、図４に示したフローチャートにおけるステップＳ１２０の処理によって決められる優先順位は、以下に示した順位になる。
【００６８】
１位：対象物Ｗ２
２位：対象物Ｗ３
３位：対象物Ｗ１
４位：対象物Ｗ５
５位：対象物Ｗ４
６位：対象物Ｗ６
７位：対象物Ｗ７
【００６９】
ここで、対象物Ｗ１〜対象物Ｗ７は、図５に示した対象物Ｗ１〜対象物Ｗ７のことである。この場合、図４に示したフローチャートの処理によって制御装置３０によりロボット２０が動作され、以下のような７つの工程（以下に示した第１ステップＡ〜第７ステップＡ）によって完成品である対象物Ｗ７が組み立てられる。
【００７０】
第１ステップＡ：優先順位１位の対象物Ｗ２が組み立てられる。その後、直前に組み立てた対象物Ｗ２を用いて組み立てることが可能な対象物が存在しないため（この時点で、対象物Ｗ３が組み立てられていないため）、上記の１）〜３）のルールに基づいて優先順位の更新が行われ、上記の２位〜７位のそれぞれに対応付けられた対象物の順位が１つ繰り上げられる。
【００７１】
第２ステップＡ：優先順位が１位に更新された対象物Ｗ３が組み立てられる。その後、直前に組み立てた対象物Ｗ３を用いて組み立てることが可能な対象物として対象物Ｗ５が存在するため、上記の１）〜３）のルールに基づいて優先順位の更新が行われる。この更新が行われた後の優先順位は、以下に示した順位である。
【００７２】
１位：対象物Ｗ５
２位：対象物Ｗ６
３位：対象物Ｗ７
４位：対象物Ｗ１
５位：対象物Ｗ４
【００７３】
第３ステップＡ：優先順位が１位に更新された対象物Ｗ５が組み立てられる。その後、直前に組み立てた対象物Ｗ５を用いて組み立てることが可能な対象物が存在しないため（この時点で、対象物Ｗ４が組み立てられていないため）、上記の１）及び２）のルールに基づいて優先順位の更新が行われる。この更新が行われた後の優先順位は、以下に示した順位である。
【００７４】
１位：対象物Ｗ１
２位：対象物Ｗ４
３位：対象物Ｗ６
４位：対象物Ｗ７
【００７５】
第４ステップＡ：優先順位が１位に更新された対象物Ｗ１が組み立てられる。その後、直前に組み立てた対象物Ｗ３を用いて組み立てることが可能な対象物として対象物Ｗ４が存在するため、上記の１）〜３）のルールに基づいて優先順位の更新が行われ、上記の２位〜４位のそれぞれに対応付けられた対象物の順位が１つ繰り上げられる。
【００７６】
第５ステップＡ：優先順位が１位に更新された対象物Ｗ４が組み立てられる。その後、直前に組み立てた対象物Ｗ４を用いて組み立てることが可能な対象物として対象物Ｗ６が存在するため、上記の１）〜３）のルールに基づいて優先順位の更新が行われ、対象物Ｗ６の優先順位が１位となり、対象物Ｗ７の優先順位が２位となる。
【００７７】
第６ステップＡ：優先順位が１位に更新された対象物Ｗ６が組み立てられる。その後、残りの対象物Ｗ７の優先順位が１位となる。
【００７８】
第７ステップＡ：優先順位が１位に更新された対象物Ｗ７を組み立てられる。
【００７９】
このように、容器ＴＲに載置された対象物同士がすべて重なり合っていない場合、制御装置３０は、第１ステップＡ、第２ステップＡ、第３ステップＡ、第４ステップＡ、第５ステップＡ、第６ステップＡ、第７ステップＡの順に各ステップの工程を行い、ロボット２０に完成品である対象物Ｗ７を組み立てさせる。
【００８０】
＜優先順位の決定と完成品が組み立てられるまでの工程の具体例２＞
以下、図４に示したフローチャートの処理による優先順位の決定と完成品が組み立てられるまでの工程との具体例２について説明する。当該具体例２では、図７に示したように、容器ＴＲに載置された対象物のうちの一部が重なり合っている場合について説明する。図７は、容器ＴＲにおける対象物Ｏ１〜対象物Ｏ８の載置状態の他の例を示す図である。
【００８１】
図７に示した例では、対象物Ｏ５の上に対象物Ｏ２が載置されている。そして、当該例では、対象物Ｏ１、対象物Ｏ３、対象物Ｏ４、対象物Ｏ６、対象物Ｏ７、対象物Ｏ８のそれぞれの載置状態は、図６に示した載置状態と同じ載置状態である。この場合であっても、図４に示したフローチャートにおけるステップＳ１２０の処理によって決められる優先順位は、以下に示した順位になる。
【００８２】
１位：対象物Ｗ２
２位：対象物Ｗ３
３位：対象物Ｗ１
４位：対象物Ｗ５
５位：対象物Ｗ４
６位：対象物Ｗ６
７位：対象物Ｗ７
【００８３】
ここで、対象物Ｗ１〜対象物Ｗ７は、図５に示した対象物Ｗ１〜対象物Ｗ７のことである。この場合、図４に示したフローチャートの処理によって制御装置３０によりロボット２０が動作され、以下のような７つの工程（以下に示した第１ステップＢ〜第７ステップＢ）によって完成品である対象物Ｗ７が組み立てられる。
【００８４】
第１ステップＢ：対象物Ｏ５が対象物Ｏ２の下にあるため、対象物Ｏ５が検出されない。このため、優先順位１位の対象物Ｗ２が組み立てられず、優先順位２位の対象物Ｗ３が組み立てられる。その後、直前に組み立てた対象物Ｗ３を用いて組み立てることが可能な対象物が存在しないため（この時点で、対象物Ｗ２が組み立てられていないため）、上記の１）及び２）のルールに基づいて優先順位の更新が行われる。この更新が行われた後の優先順位は、以下に示した順位である。
【００８５】
１位：対象物Ｗ２
２位：対象物Ｗ１
３位：対象物Ｗ５
４位：対象物Ｗ４
５位：対象物Ｗ６
６位：対象物Ｗ７
【００８６】
第２ステップＢ：この時点でも、対象物Ｏ５が対象物Ｏ２の下にあるため、対象物Ｏ５が検出されない。このため、優先順位１位の対象物Ｗ２が組み立てられない。このため、優先順位２位の対象物Ｗ１が組み立てられる。この際、対象物Ｏ５の上に載置されていた対象物Ｏ２が対象物Ｏ１に組み付けられるため、対象物Ｏ５が検出可能になる。その後、直前に組み立てた対象物Ｗ１を用いて組み立てることが可能な対象物として対象物Ｗ４が存在するため、上記の１）〜３）のルールに基づいて優先順位の更新が行われる。この更新が行われた後の優先順位は、以下に示した順位である。
【００８７】
１位：対象物Ｗ４
２位：対象物Ｗ６
３位：対象物Ｗ７
４位：対象物Ｗ２
５位：対象物Ｗ５
【００８８】
第３ステップＢ：優先順位が１位に更新された対象物Ｗ４が組み立てられる。その後、直前に組み立てた対象物Ｗ４を用いて組み立てることが可能な対象物が存在しないため（この時点で、対象物Ｗ５が組み立てられていないため）、上記の１）及び２）のルールに基づいて優先順位の更新が行われる。この更新が行われた後の優先順位は、以下に示した順位である。
【００８９】
１位：対象物Ｗ２
２位：対象物Ｗ５
３位：対象物Ｗ６
４位：対象物Ｗ７
【００９０】
第４ステップＢ：この時点で対象物Ｏ５が検出可能であるため、優先順位が１位に更新された対象物Ｗ２が組み立てられる。その後、直前に組み立てた対象物Ｗ２を用いて組み立てることが可能な対象物として対象物Ｗ５が存在するため、上記の１）〜３）のルールに基づいて優先順位の更新が行われ、上記の２位〜４位のそれぞれに対応付けられた対象物の順位が１つ繰り上げられる。
【００９１】
第５ステップＢ：優先順位が１位に更新された対象物Ｗ５が組み立てられる。その後、直前に組み立てた対象物Ｗ５を用いて組み立てることが可能な対象物として対象物Ｗ６が存在するため、上記の１）〜３）のルールに基づいて優先順位の更新が行われ、対象物Ｗ６の優先順位が１位となり、対象物Ｗ７の優先順位が２位となる。
【００９２】
第６ステップＢ：優先順位が１位に更新された対象物Ｗ６が組み立てられる。その後、残りの対象物Ｗ７の優先順位が１位となる。
【００９３】
第７ステップＢ：優先順位が１位に更新された対象物Ｗ７を組み立てられる。
【００９４】
このように、容器ＴＲにおいて対象物Ｏ５の上に対象物Ｏ２が載置されている場合、制御装置３０は、第１ステップＢ、第２ステップＢ、第３ステップＢ、第４ステップＢ、第５ステップＢ、第６ステップＢ、第７ステップＢの順に各ステップの工程を行い、ロボット２０に完成品である対象物Ｗ７を組み立てさせる。すなわち、制御装置３０は、ある１つの容器（この一例において、容器ＴＲ）にバラ積みにされた複数種類の対象物を用いて完成品を組み立てることができる。
【００９５】
なお、上記の説明において、容器ＴＲには、完成品である対象物Ｗ７を１つ組み立てるために必要な対象物のみ（すなわち、対象物Ｏ１〜対象物Ｏ８）が載置されていたが、これに代えて、複数個の完成品を組み立てるために必要な対象物が載置されている構成であってもよい。この際、当該複数個の完成品のうちの一部又は全部は、互いに異なる複数種類の完成品であってもよい。
【００９６】
また、上記において説明したロボット制御装置４０と画像処理装置５０とが一体として制御装置３０を構成する場合、制御装置３０は、１つのプロセッサー（例えば、上記のプロセッサー４１又はプロセッサー５１）、１つのメモリー（例えば、上記のメモリー４２又はメモリー５２）、１つの通信部（例えば、上記の通信部４４又は通信部５４）を備える。また、ロボット制御装置４０は、画像処理装置５０が備えるプロセッサー５１によって制御される構成であってもよく、ネットワークを介してロボット制御装置４０に接続された他の情報処理装置が備えるプロセッサーによって制御される構成であってもよい。また、画像処理装置５０は、ロボット制御装置４０が備えるプロセッサー４１によって制御される構成であってもよく、ネットワークを介して画像処理装置５０に接続された他の情報処理装置が備えるプロセッサーによって制御される構成であってもよい。
【００９７】
以上のように、ロボット２０は、互いに異なる複数種類の部品（この一例において、対象物Ｏ１〜対象物Ｏ８）と、２以上の当該部品が互いに組み付けられた部品キットとのうち少なくとも部品を含む複数の対象物の少なくとも一部が重なり合って載置された容器（この一例において、容器ＴＲ）を撮像部（この一例において、撮像部Ｃ）に撮像させ、撮像部により撮像された撮像画像に基づいて、複数の対象物それぞれについての種類と位置及び姿勢とを検出し、検出した種類と位置及び姿勢とに応じて、容器に載置された対象物を用いて組み立てることが可能な１以上の部品キット（この一例において、対象物Ｗ１〜対象物Ｗ７）のそれぞれについての優先順位を決定し、決定した優先順位に基づいて選択された部品キットを組み立てる。これにより、ロボット２０は、互いに異なる複数種類の部品キットを組み立てることができるとともに、部品キットを組み立てる作業を停止させてしまうことを抑制することができる。
【００９８】
また、ロボット２０は、決定した優先順位に基づいて選択された部品キットを組み立てた後、組み立てた部品キットを容器に載置する。これにより、ロボット２０は、組み立てた部品キットを用いて他の部品キットを組み立てることができる。
【００９９】
また、ロボット２０は、組み立てた部品キットを容器に載置する際、決定した優先順位を更新し、更新した後の優先順位が２位以下の部品キットを組み立てるために必要な対象物の上に、組み立てた部品キットを載置する。これにより、ロボット２０は、載置した部品キットによって、優先順位が１位の部品キットが組み立てられなくなってしまうことを抑制することができる。
【０１００】
また、ロボット２０では、容器に載置された対象物を用いて組み立てることが可能な１以上の前記部品キットには、完成品が含まれる。これにより、ロボット２０は、互いに異なる複数種類の部品キットを組み立てることができるとともに、互いに異なる複数種類の完成品を組み立てることができる。
【０１０１】
また、ロボット２０は、対象物に含まれている部品キットを用いて組み立てることが可能な部品キットのうち対象物を組み付ける回数が最も多い部品キットの優先順位を１位に決定する。これにより、ロボット２０は、部品キットの組み立てに係る効率を向上させることができる。
【０１０２】
また、ロボット２０は、直前に組み立てた部品キットを用いて組み立てることが可能な部品キットが存在する場合、対象物を組み付ける回数が最も多い部品キットに代えて、直前に組み立てた部品キットを用いて組み立てることが可能な部品キットの優先順位を１位に決定する。これにより、ロボット２０は、部品キットの組み立てに係る効率をより確実に向上させることができる。
【０１０３】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１０４】
また、以上に説明した装置（例えば、ロボット制御装置４０、画像処理装置５０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１０５】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１０６】
１…ロボットシステム、２０…ロボット、３０…制御装置、４０…ロボット制御装置、４１、５１…プロセッサー、４２、５２…メモリー、４４、５４…通信部、５０…画像処理装置、４６１…画像処理装置制御部、４６３…ロボット制御部、５６１…撮像制御部、５６３…画像取得部、５６５…画像処理部、Ｃ…撮像部、ＴＲ…容器、Ｏ１〜Ｏ８、Ｗ１〜Ｗ７…対象物
【図１】
2019063907.tif 000003
【図２】
2019063907.tif 000004
【図３】
2019063907.tif 000005
【図４】
2019063907.tif 000006
【図５】
2019063907.tif 000007
【図６】
2019063907.tif 000008
【図７】
2019063907.tif 000009