(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
<実施形態>
以下、本発明の実施形態について、図面を参照して説明する。
【0017】
<ロボットシステムの構成>
まず、ロボットシステム1の構成について説明する。
図1は、実施形態に係るロボットシステム1の構成の一例を示す図である。ロボットシステム1は、撮像部Cと、ロボット20と、制御装置30を備える。また、制御装置30は、ロボット制御装置40と、画像処理装置50を備える。なお、ロボットシステム1では、撮像部Cと、ロボット20と、ロボット制御装置40と、画像処理装置50との一部又は全部が一体に構成されてもよい。
【0018】
撮像部Cは、例えば、集光された光を電気信号に変換する撮像素子であるCCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等を備えたカメラである。この一例において、撮像部Cは、
図1に示した作業台TBの上面を撮像可能な位置に設けられる。作業台TBは、例えば、テーブル等の台である。なお、作業台TBは、テーブルに代えて、床面、治具、棚等の物体を載置可能な台であれば如何なる台であってもよい。撮像部Cは、撮像部Cが撮像可能な範囲の静止画像を撮像する構成であってもよく、当該範囲の動画像を撮像する構成であってもよい。なお、撮像部Cは、カメラに代えて、撮像部Cが撮像可能な範囲の三次元形状を示す点群を生成する点群生成装置であってもよい。この場合、撮像部Cは、当該範囲をステレオ撮像可能な装置等のように、当該範囲の三次元形状を示す情報を取得可能な装置である。
【0019】
撮像部Cは、ケーブルによって画像処理装置50と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB(Universal Serial Bus)等の規格によって行われる。なお、撮像部Cは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって画像処理装置50と接続される構成であってもよい。
【0020】
ロボット20は、可動部Aと、可動部Aを支持する支持台Bを備える単腕ロボットである。単腕ロボットは、この一例における可動部Aのような1本の腕(アーム)を備えるロボットである。なお、ロボット20は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、2本以上の腕(例えば、2本以上の可動部A)を備えるロボットである。なお、複腕ロボットのうち、2本の腕(例えば、2本の可動部A)を備えるロボットは、双腕ロボットとも称される。すなわち、ロボット20は、2本の腕を備える双腕ロボットであってもよく、3本以上の腕(例えば、3本以上の可動部A)を備える複腕ロボットであってもよい。また、ロボット20は、スカラロボット(水平多関節ロボット)、直交座標ロボット、円筒型ロボット等の他のロボットであってもよい。直交座標ロボットは、例えば、ガントリロボットである。
【0021】
可動部Aは、エンドエフェクターEと、マニピュレーターMを備える。
エンドエフェクターEは、物体を保持するエンドエフェクターである。この一例において、エンドエフェクターEは、指部を備え、当該指部によって物体を挟んで持つことにより当該物体を保持する。なお、エンドエフェクターEは、これに代えて、空気の吸引や磁力、他の治具等によって物体を持ち上げることにより当該物体を保持する構成であってもよい。なお、この一例において、保持するとは、物体を持ち上げることが可能な状態にすることを意味する。
【0022】
エンドエフェクターEは、ケーブルによってロボット制御装置40と通信可能に接続されている。これにより、エンドエフェクターEは、ロボット制御装置40から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、エンドエフェクターEは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置40と接続される構成であってもよい。
【0023】
マニピュレーターMは、6つの関節を備える。また、当該6つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターMを備える可動部Aは、6軸垂直多関節型のアームである。可動部Aは、支持台Bと、エンドエフェクターEと、マニピュレーターMと、マニピュレーターMが備える6つの関節それぞれのアクチュエーターとによる連携した動作によって6軸の自由度の動作を行う。なお、可動部Aは、5軸以下の自由度で動作する構成であってもよく、7軸以上の自由度で動作する構成であってもよい。
【0024】
マニピュレーターMが備える6つの(関節に備えられた)アクチュエーターはそれぞれ、ケーブルによってロボット制御装置40と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置40から取得される制御信号に基づいて、マニピュレーターMを動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、マニピュレーターMが備える6つのアクチュエーターのうちの一部又は全部は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置40と接続される構成であってもよい。
【0025】
制御装置30は、撮像部Cと、ロボット20とのそれぞれを制御する。前述した通り、制御装置30は、ロボット制御装置40と、画像処理装置50を備える。
【0026】
ロボット制御装置40は、ロボット制御装置40が備える
図1において図示しないメモリーに予め記憶された動作プログラムに基づいて、ロボット20に予め決められた作業を行わせる。この際、ロボット制御装置40は、画像処理装置50を制御し、撮像部Cが撮像可能な範囲を撮像部Cに撮像させる。そして、ロボット制御装置40は、撮像部Cが撮像した撮像画像に基づく処理を画像処理装置50に行わせる。ロボット制御装置40は、画像処理装置50による当該処理の結果に基づいて、ロボット20に当該作業を行わせる。
【0027】
画像処理装置50は、ロボット制御装置40からの要求に応じて、撮像部Cが撮像可能な範囲を撮像部Cに撮像させる。画像処理装置50は、撮像部Cが撮像した撮像画像を撮像部Cから取得する。画像処理装置50は、取得した撮像画像に基づく処理を行う。そして、画像処理装置50は、当該処理の結果を示す情報をロボット制御装置40に出力する。
【0028】
<制御装置がロボットに行わせる作業の概要>
以下、制御装置30がロボット20に行わせる作業の概要について説明する。
【0029】
図1に示した通り、作業台TBの上面には、容器TRが載置されている。容器TRは、例えば、トレイである。なお、容器TRは、トレイに代えて、物体を載置(収容)可能な他の容器であってもよい。容器TRには、複数の対象物O1〜対象物Onが載置されている。以下では、一例として、8個の対象物である対象物O1〜対象物O8が載置されている場合について説明する。容器TRにおいて、当該8個の対象物は、互いに重なり合って載置されている構成であってもよく、互いに重なり合わずに載置されている構成であってもよい。
図1に示した例では、当該8個の対象物の少なくとも一部は、互いに重なり合って容器TRに載置されている。
【0030】
対象物O1〜対象物O8のそれぞれは、互いに異なる複数種類の部品と、2以上の当該部品が互いに組み付けられた部品キットとのうち少なくとも当該部品を含んでいる。制御装置30は、ロボット20を動作させ、対象物O1〜対象物O8のそれぞれを2つずつ組付対象対として容器TRから取り出し、取り出した組付対象対として取り出した対象物同士を組み付けることにより、当該組付対象対を用いて組み立てることが可能な部品キットを組み立てる。そして、制御装置30は、ロボット20を動作させ、組み立てた部品キットを新たな対象物として容器TRに載置させる。このような部品キットの組み立てを繰り返すことにより、制御装置30は、対象物O1〜対象物O8のそれぞれを用いて組み立てることが可能な完成品を組み立てる作業を、予め決められた作業としてロボット20に行わせる。
【0031】
以下では、ロボット20に予め決められた作業を行わせる際に制御装置30が行う処理について詳しく説明する。また、以下では、一例として、対象物O1〜対象物O8のそれぞれが、互いに異なる複数種類の部品である場合について説明する。ここで、当該部品は、例えば、プレート、ギア、カバー等の産業用の部品であるが、産業用の部品に代えて、日用品の部品、生体の部品等の他の部品であってもよい。
図1に示した例では、図を簡略化するため、対象物O1〜対象物O8それぞれの形状を、直方体形状によって表している。なお、対象物O1〜対象物O8それぞれの形状は、直方体形状に代えて、他の形状であってもよい。
【0032】
<ロボット制御装置及び画像処理装置のハードウェア構成>
以下、ロボット制御装置40及び画像処理装置50のハードウェア構成について説明する。
【0033】
図2は、ロボット制御装置40及び画像処理装置50のハードウェア構成の一例を示す図である。
図2は、ロボット制御装置40のハードウェア構成(
図2における40番台の符号が付された機能部)と、画像処理装置50のハードウェア構成(
図2における50番台の符号が付された機能部)とを便宜的に重ねて示した図である。
【0034】
ロボット制御装置40は、例えば、プロセッサー41と、メモリー42と、通信部44を備える。また、ロボット制御装置40は、通信部44を介してロボット20、画像処理装置50のそれぞれと通信を行う。これらの構成要素は、バスBS1を介して相互に通信可能に接続されている。
【0035】
プロセッサー41は、例えば、CPU(Central Processing Unit)である。なお、プロセッサー41は、CPUに代えて、FPGA(Field Programmable Gate Array)等の他のプロセッサーであってもよい。プロセッサー41は、メモリー42に格納された各種のプログラムを実行する。
メモリー42は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、ROM(Read−Only Memory)、RAM(Random Access Memory)等を含む。なお、メモリー42は、ロボット制御装置40に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。メモリー42は、ロボット制御装置40が処理する各種の情報、各種の画像、動作プログラム等を格納する。
通信部44は、例えば、USB等のデジタル入出力ポートやイーサネット(登録商標)ポート等を含んで構成される。
【0036】
画像処理装置50は、例えば、プロセッサー51と、メモリー52と、通信部54を備える。また、画像処理装置50は、通信部54を介して撮像部C、ロボット制御装置40のそれぞれと通信を行う。これらの構成要素は、バスBS2を介して相互に通信可能に接続されている。
【0037】
プロセッサー51は、例えば、CPUである。なお、プロセッサー51は、CPUに代えて、FPGA等の他のプロセッサーであってもよい。プロセッサー51は、メモリー52に格納された各種のプログラムを実行する。
メモリー52は、例えば、HDDやSSD、EEPROM、ROM、RAM等を含む。なお、メモリー52は、画像処理装置50に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。メモリー52は、画像処理装置50が処理する各種の情報、各種の画像、動作プログラム等を格納する。
通信部54は、例えば、USB等のデジタル入出力ポートやイーサネット(登録商標)ポート等を含んで構成される。
【0038】
なお、ロボット制御装置40と画像処理装置50のうちの少なくとも一方は、キーボード、マウス、タッチパッド等の入力装置と、ディスプレイを有する表示装置とのいずれか一方又は両方を備える構成であってもよい。
【0039】
<ロボット制御装置及び画像処理装置の機能構成>
以下、
図3を参照し、ロボット制御装置40及び画像処理装置50の機能構成について説明する。
図3は、ロボット制御装置40及び画像処理装置50の機能構成の一例を示す図である。
【0040】
ロボット制御装置40は、メモリー42と、通信部44と、制御部46を備える。
【0041】
制御部46は、ロボット制御装置40の全体を制御する。制御部46は、画像処理装置制御部461と、ロボット制御部463を備える。制御部46が備えるこれらの機能部は、例えば、プロセッサー41が、メモリー42に記憶された各種の指令を実行することにより実現される。また、当該機能部のうちの一部又は全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
【0042】
画像処理装置制御部461は、画像処理装置50に各種の要求を出力し、画像処理装置50を制御する。
【0043】
ロボット制御部463は、メモリー42に予め記憶された動作プログラムをメモリー42から読み出す。ロボット制御部463は、読み出した動作プログラムに応じて、ロボット20を動作させる。また、ロボット制御部463は、当該動作プログラムに応じて、画像処理装置制御部461に画像処理装置50を制御させる。そして、ロボット制御部463は、画像処理装置50による処理の結果を用いてロボット20を動作させる。
【0044】
画像処理装置50は、メモリー52と、通信部54と、制御部56を備える。
【0045】
制御部56は、画像処理装置50の全体を制御する。制御部56は、撮像制御部561と、画像取得部563と、画像処理部565を備える。制御部56が備えるこれらの機能部は、例えば、プロセッサー51が、メモリー52に記憶された各種の指令を実行することにより実現される。また、当該機能部のうちの一部又は全部は、LSI、ASIC等のハードウェア機能部であってもよい。
【0046】
撮像制御部561は、ロボット制御装置40からの要求に応じて、撮像部Cが撮像可能な範囲を撮像部Cに撮像させる。
【0047】
画像取得部563は、撮像部Cが撮像した撮像画像を撮像部Cから取得する。
【0048】
画像処理部565は、画像取得部563が撮像部Cから取得した撮像画像に基づく処理を行う。
【0049】
<ロボット制御装置及び画像処理装置が行う処理>
以下、
図4を参照し、ロボット制御装置40及び画像処理装置50が行う処理の流れについて説明する。
図4は、ロボット制御装置40及び画像処理装置50が行う処理の流れの一例を示すフローチャートである。なお、
図4に示したフローチャートの処理は、メモリー42に予め記憶された動作プログラムに応じてロボット制御装置40が行う処理、及びロボット制御装置40からの要求に応じて画像処理装置50が行う処理を示している。ロボット制御装置40と画像処理装置50との連携の仕方は、
図4に示したフローチャートの処理を実現可能であれば、如何なる連携の仕方であってもよい。このため、ロボット制御装置40と画像処理装置50との間における要求と応答については、説明を省略する。
【0050】
画像処理部565は、メモリー52に予め記憶された組立情報をメモリー52から読み出す(ステップS110)。ここで、
図5を参照し、組立情報について説明する。
【0051】
図5は、組立情報の一例を示す図である。組立情報は、対象物O1〜対象物O8のそれぞれを用いて完成品を組み立てる工程を示す情報である。
図5に示した例では、
図5に示した矢印が示す方向が当該工程の上流側を示し、当該方向と逆の方向が当該工程の下流側を示す。以下では、説明の便宜上、
図5に示した15の対象物のそれぞれをノードと称し、ノード間を繋ぐ線をリンクと称して説明する。
【0052】
図5に示した組立情報には、15のノードとして、容器TRに載置された対象物O1〜対象物O8のそれぞれを用いて組み立てることが可能な7つの部品キットのそれぞれである対象物W1〜対象物W7と、対象物O1〜対象物O8とが含まれている。また、
図5では、あるノードであるノードXに対してリンクを介して下流側から繋がる2つのノードは、ノードXの組付対象対を示す。例えば、対象物W1に対してリンクを介して下流側から繋がる2つのノードである対象物O1と対象物O2は、対象物W1の組付対象対である。また、例えば、対象物W5に対してリンクを介して下流側から繋がる2つのノードである対象物W2と対象物W3は、対象物W5の組付対象対である。また、例えば、対象物W7に対してリンクを介して下流側から繋がる2つのノードである対象物W6と対象物O8は、対象物W7の組付対象対である。
【0053】
また、
図5に示した組立情報では、最上流に位置する対象物W7が、完成品を表している。このため、
図5では、対象物W7は、他の対象物の組付対象対にはなっていない。なお、組立情報において最上流に位置する対象物は、必ずしも完成品を表す必要はなく、他の作業において用いられる部品キットを表す構成であってもよい。
【0054】
このような組立情報をステップS110においてメモリー32から画像処理部565が読み出した後、画像処理部565は、前述の7つの部品キットである対象物W1〜対象物W7のそれぞれを組み立てる順番に関する優先順位を決定する(ステップS120)。ここで、ステップS120の処理について説明する。
【0055】
画像処理部565は、予め決められた所定のルールに基づいて、前述の7つの部品キットである対象物W1〜対象物W7のそれぞれを組み立てる順番に関する優先順位を決定する。当該所定のルールには、例えば、以下の1)〜3)それぞれのルールが含まれる。
【0056】
1)上流側よりも下流側のノードの優先順位を高くする。
2)最上流から下流に向かうリンクを介した経路上に存在する各ノードにおける組付対象対である2つのノードを比較し、当該2つのノードのそれぞれと繋がっている最下流までのノードの数が多い方の優先順位を高くする。すなわち、当該2つのノードのうち組み付けられる対象物であって容器TRに載置された複数の対象物の数が多い方の優先順位を高くする。換言すると、容器TRに載置された対象物を用いて組み立てることが可能な部品キットのうち対象物を組み付ける回数が最も多い部品キットの優先順位を高くする。この場合、容器TRに載置された対象物に含まれている部品キットを用いて組み立てることが可能な部品キットのうち対象物を組み付ける回数が最も多い部品キットの優先順位が、1位に決定される。ただし、当該回数が同数である2以上の部品キットが存在する場合、当該2以上の部品キットについては、例えば、ランダムに優先順位を決められる構成であってもよく、他の方法によって優先順位を決められる構成であってもよい。
3)連続して組み立てることが可能な部品キットの優先順位を、他の部品キットの優先順位よりも高くする。例えば、直前に組み立てた部品キットを用いて組み立てることが可能な部品キットが存在する場合、当該部品キットの優先順位を1位に決定する。また、当該部品キットを用いて組み立てることが可能な部品キットが存在する場合、当該部品キットの優先順位を2位に決定する。これを繰り返すことにより、連続して組み立てることが可能な部品キットの優先順位を、他の部品キットの優先順位よりも高くする。
【0057】
図5に示した例では、優先順位は、対象物W2、対象物W3、対象物W1、対象物W5、対象物W4、対象物W6、対象物W7の順、又は、対象物W3、対象物W2、対象物W1、対象物W5、対象物W4、対象物W6、対象物W7の順に高い。以下では、一例として、ステップS120において画像処理部565が優先順位を対象物W2、対象物W3、対象物W1、対象物W5、対象物W4、対象物W6、対象物W7の順に高いように決定した場合について説明する。なお、所定のルールには、上記の1)〜3)それぞれのルールが含まれる構成に代えて、上記の1)〜3)のうちの一部が含まれる構成であってもよく、上記の1)〜3)のうちの一部に加えて、ユーザーが予め指定したルール等の他のルールが含まれる構成であってもよく、上記の1)〜3)の全部に加えて、ユーザーが予め指定したルール等の他のルールが含まれる構成であってもよい。
【0058】
ステップS120において前述の7つの部品キットである対象物W1〜対象物W7のそれぞれを組み立てる順番に関する優先順位が決定された後、画像処理部565は、優先順位を示す値を格納する変数である順位変数Nを生成する。画像処理部565は、生成した順位変数Nに1を代入する、すなわち、順位変数Nを1に初期化する(ステップS130)。
【0059】
次に、撮像制御部561は、撮像部Cが撮像可能な範囲を撮像部Cに撮像させる(ステップS140)。
【0060】
次に、画像取得部563は、ステップS140において撮像部Cが撮像した撮像画像を撮像部Cから取得する(ステップS150)。
【0061】
次に、画像処理部565は、ステップS150において画像取得部563が取得した撮像画像に基づいて、順位変数Nが示す優先順位の対象物の組付対象対それぞれの位置及び姿勢を当該撮像画像から検出する(ステップS160)。より具体的には、画像処理部565は、例えば、パターンマッチング等によって、当該撮像画像に含まれる対象物の種類を検出する。画像処理部565は、検出した種類のうち当該組付対象対に含まれる2種類の対象物それぞれの位置及び姿勢を検出する。この一例では、各対象物の位置及び姿勢は、各対象物の重心の位置及び姿勢によって表される。当該2種類の対象物それぞれの位置及び姿勢を検出する方法は、既知の方法であってもよく、これから開発される方法であってもよい。画像処理部565は、当該2種類の対象物それぞれの位置及び姿勢を検出した後、ステップS170に遷移する。また、画像処理部565は、当該2種類の対象物のうちの少なくとも一方が検出されなかった場合、又は、当該2種類の対象物のうち少なくとも一方の位置及び姿勢が検出できなかった場合、ステップS170に遷移する。
【0062】
次に、画像処理部565は、順位変数Nが示す優先順位の対象物の組付対象対それぞれの位置及び姿勢がステップS160において撮像画像から検出されたか否かを判定する(ステップS170)。順位変数Nが示す優先順位の対象物の組付対象対それぞれの位置及び姿勢がステップS160において撮像画像から検出されていないと判定した場合(ステップS170−NO)、画像処理部565は、順位変数Nに格納されている値に1を加算し(ステップS210)、ステップS160に遷移する。そして、画像処理部565は、ステップS210において1が加算された値を格納している順位変数Nが示す優先順位の対象物の組付対象対それぞれの位置及び姿勢を当該撮像画像から検出する。一方、順位変数Nが示す優先順位の対象物の組付対象対それぞれの位置及び姿勢がステップS160において撮像画像から検出されたと判定した場合(ステップS170−YES)、画像処理部565は、当該組付対象対それぞれの位置及び姿勢を示す情報をロボット制御装置40に出力する。そして、ロボット制御部463は、取得した当該情報が示す位置及び姿勢に基づいてロボット20を動作させ、順位変数Nが示す対象物(すなわち、順位変数Nが示す部品キット)をロボット20に組み立てさせる(ステップS180)。ここで、ステップS180においてロボット20が当該対象物を組み立てる方法は、専用の治具を用いた方法であってもよく、他のロボットとの協調動作による方法であってもよく、当該対象物を組み立て可能な他の如何なる方法であってもよい。当該対象物を組み立てさせた後、ロボット制御部463は、ロボット20を動作させ、組み立てた当該対象物を容器TRに載置させる。この際、ロボット制御部463は、ロボット20を動作させ、優先順位が3位以下の対象物(すなわち、優先順位が3位以下の部品キット。例えば、優先順位が最下位の部品キット)を組み立てるために必要な対象物の上に、直前に組み立てた対象物(すなわち、部品キット)を載置する構成であってもよく、容器TR内において何も載置されていない領域に当該対象物を載置する構成であってもよい。なお、ロボット制御部463は、ステップS180において、直前に組み立てた対象物を容器TR内に載置しない場合、後述するステップS190において当該対象物を容器TR内に載置する。
【0063】
次に、画像処理部565は、現在の優先順位を更新する(ステップS190)。すなわち、画像処理部565は、前述の7つの対象物のうち現在までに組み立てられていない対象物の優先順位を上記の1)〜3)を含むルールに基づいて決定し直す。この際、画像処理部565は、既に組み立てが終わっている対象物について、組み立てる対象から除外する。なお、ステップS190において優先順位の更新が行われた後、ロボット制御部463は、ロボット20を動作させ、優先順位が2位以下の対象物(すなわち、優先順位が2位以下の部品キット。例えば、優先順位が最下位の部品キット)を組み立てるために必要な対象物の上に、直前に組み立てた対象物(すなわち、部品キット)を載置する構成であってもよく、容器TR内において何も載置されていない領域に当該対象物を載置する構成であってもよい。なお、ロボット制御部463は、ステップS190において、直前に組み立てた対象物を容器TR内に載置しない場合、ステップS180において当該対象物を容器TR内に載置する。
【0064】
次に、ロボット制御部463は、完成品の組み立てが終了したか否かを判定する(ステップS200)。完成品の組み立てが終了していないとロボット制御部463が判定した場合(ステップS200−NO)、画像処理部565は、ステップS130に遷移し、順位変数Nに1を再び代入する、すなわち、順位変数Nを1に初期化し直す。一方、完成品の組み立てが終了していると判定した場合(ステップS200−YES)、ロボット制御部463は、処理を終了する。
【0065】
以上のように、
図4に示したフローチャートの処理を行うことにより、制御装置30(すなわち、ロボット制御装置40及び画像処理装置50)は、互いに異なる複数種類の部品キットを組み立てることができるとともに、部品キットを組み立てる作業を停止させてしまうことを抑制することができる。その結果、制御装置30は、容器TRに載置された対象物を用いて完成品を組み立てることができる。
【0066】
<優先順位の決定と完成品が組み立てられるまでの工程の具体例1>
以下、
図4に示したフローチャートの処理による優先順位の決定と完成品が組み立てられるまでの工程との具体例1について説明する。当該具体例1では、
図6に示したように、容器TRに載置された対象物同士がすべて重なり合っていない場合について説明する。
図6は、容器TRにおける対象物O1〜対象物O8の載置状態の一例を示す図である。
【0067】
図6に示した例では、
図4に示したフローチャートにおけるステップS120の処理によって決められる優先順位は、以下に示した順位になる。
【0068】
1位:対象物W2
2位:対象物W3
3位:対象物W1
4位:対象物W5
5位:対象物W4
6位:対象物W6
7位:対象物W7
【0069】
ここで、対象物W1〜対象物W7は、
図5に示した対象物W1〜対象物W7のことである。この場合、
図4に示したフローチャートの処理によって制御装置30によりロボット20が動作され、以下のような7つの工程(以下に示した第1ステップA〜第7ステップA)によって完成品である対象物W7が組み立てられる。
【0070】
第1ステップA:優先順位1位の対象物W2が組み立てられる。その後、直前に組み立てた対象物W2を用いて組み立てることが可能な対象物が存在しないため(この時点で、対象物W3が組み立てられていないため)、上記の1)〜3)のルールに基づいて優先順位の更新が行われ、上記の2位〜7位のそれぞれに対応付けられた対象物の順位が1つ繰り上げられる。
【0071】
第2ステップA:優先順位が1位に更新された対象物W3が組み立てられる。その後、直前に組み立てた対象物W3を用いて組み立てることが可能な対象物として対象物W5が存在するため、上記の1)〜3)のルールに基づいて優先順位の更新が行われる。この更新が行われた後の優先順位は、以下に示した順位である。
【0072】
1位:対象物W5
2位:対象物W6
3位:対象物W7
4位:対象物W1
5位:対象物W4
【0073】
第3ステップA:優先順位が1位に更新された対象物W5が組み立てられる。その後、直前に組み立てた対象物W5を用いて組み立てることが可能な対象物が存在しないため(この時点で、対象物W4が組み立てられていないため)、上記の1)及び2)のルールに基づいて優先順位の更新が行われる。この更新が行われた後の優先順位は、以下に示した順位である。
【0074】
1位:対象物W1
2位:対象物W4
3位:対象物W6
4位:対象物W7
【0075】
第4ステップA:優先順位が1位に更新された対象物W1が組み立てられる。その後、直前に組み立てた対象物W3を用いて組み立てることが可能な対象物として対象物W4が存在するため、上記の1)〜3)のルールに基づいて優先順位の更新が行われ、上記の2位〜4位のそれぞれに対応付けられた対象物の順位が1つ繰り上げられる。
【0076】
第5ステップA:優先順位が1位に更新された対象物W4が組み立てられる。その後、直前に組み立てた対象物W4を用いて組み立てることが可能な対象物として対象物W6が存在するため、上記の1)〜3)のルールに基づいて優先順位の更新が行われ、対象物W6の優先順位が1位となり、対象物W7の優先順位が2位となる。
【0077】
第6ステップA:優先順位が1位に更新された対象物W6が組み立てられる。その後、残りの対象物W7の優先順位が1位となる。
【0078】
第7ステップA:優先順位が1位に更新された対象物W7を組み立てられる。
【0079】
このように、容器TRに載置された対象物同士がすべて重なり合っていない場合、制御装置30は、第1ステップA、第2ステップA、第3ステップA、第4ステップA、第5ステップA、第6ステップA、第7ステップAの順に各ステップの工程を行い、ロボット20に完成品である対象物W7を組み立てさせる。
【0080】
<優先順位の決定と完成品が組み立てられるまでの工程の具体例2>
以下、
図4に示したフローチャートの処理による優先順位の決定と完成品が組み立てられるまでの工程との具体例2について説明する。当該具体例2では、
図7に示したように、容器TRに載置された対象物のうちの一部が重なり合っている場合について説明する。
図7は、容器TRにおける対象物O1〜対象物O8の載置状態の他の例を示す図である。
【0081】
図7に示した例では、対象物O5の上に対象物O2が載置されている。そして、当該例では、対象物O1、対象物O3、対象物O4、対象物O6、対象物O7、対象物O8のそれぞれの載置状態は、
図6に示した載置状態と同じ載置状態である。この場合であっても、
図4に示したフローチャートにおけるステップS120の処理によって決められる優先順位は、以下に示した順位になる。
【0082】
1位:対象物W2
2位:対象物W3
3位:対象物W1
4位:対象物W5
5位:対象物W4
6位:対象物W6
7位:対象物W7
【0083】
ここで、対象物W1〜対象物W7は、
図5に示した対象物W1〜対象物W7のことである。この場合、
図4に示したフローチャートの処理によって制御装置30によりロボット20が動作され、以下のような7つの工程(以下に示した第1ステップB〜第7ステップB)によって完成品である対象物W7が組み立てられる。
【0084】
第1ステップB:対象物O5が対象物O2の下にあるため、対象物O5が検出されない。このため、優先順位1位の対象物W2が組み立てられず、優先順位2位の対象物W3が組み立てられる。その後、直前に組み立てた対象物W3を用いて組み立てることが可能な対象物が存在しないため(この時点で、対象物W2が組み立てられていないため)、上記の1)及び2)のルールに基づいて優先順位の更新が行われる。この更新が行われた後の優先順位は、以下に示した順位である。
【0085】
1位:対象物W2
2位:対象物W1
3位:対象物W5
4位:対象物W4
5位:対象物W6
6位:対象物W7
【0086】
第2ステップB:この時点でも、対象物O5が対象物O2の下にあるため、対象物O5が検出されない。このため、優先順位1位の対象物W2が組み立てられない。このため、優先順位2位の対象物W1が組み立てられる。この際、対象物O5の上に載置されていた対象物O2が対象物O1に組み付けられるため、対象物O5が検出可能になる。その後、直前に組み立てた対象物W1を用いて組み立てることが可能な対象物として対象物W4が存在するため、上記の1)〜3)のルールに基づいて優先順位の更新が行われる。この更新が行われた後の優先順位は、以下に示した順位である。
【0087】
1位:対象物W4
2位:対象物W6
3位:対象物W7
4位:対象物W2
5位:対象物W5
【0088】
第3ステップB:優先順位が1位に更新された対象物W4が組み立てられる。その後、直前に組み立てた対象物W4を用いて組み立てることが可能な対象物が存在しないため(この時点で、対象物W5が組み立てられていないため)、上記の1)及び2)のルールに基づいて優先順位の更新が行われる。この更新が行われた後の優先順位は、以下に示した順位である。
【0089】
1位:対象物W2
2位:対象物W5
3位:対象物W6
4位:対象物W7
【0090】
第4ステップB:この時点で対象物O5が検出可能であるため、優先順位が1位に更新された対象物W2が組み立てられる。その後、直前に組み立てた対象物W2を用いて組み立てることが可能な対象物として対象物W5が存在するため、上記の1)〜3)のルールに基づいて優先順位の更新が行われ、上記の2位〜4位のそれぞれに対応付けられた対象物の順位が1つ繰り上げられる。
【0091】
第5ステップB:優先順位が1位に更新された対象物W5が組み立てられる。その後、直前に組み立てた対象物W5を用いて組み立てることが可能な対象物として対象物W6が存在するため、上記の1)〜3)のルールに基づいて優先順位の更新が行われ、対象物W6の優先順位が1位となり、対象物W7の優先順位が2位となる。
【0092】
第6ステップB:優先順位が1位に更新された対象物W6が組み立てられる。その後、残りの対象物W7の優先順位が1位となる。
【0093】
第7ステップB:優先順位が1位に更新された対象物W7を組み立てられる。
【0094】
このように、容器TRにおいて対象物O5の上に対象物O2が載置されている場合、制御装置30は、第1ステップB、第2ステップB、第3ステップB、第4ステップB、第5ステップB、第6ステップB、第7ステップBの順に各ステップの工程を行い、ロボット20に完成品である対象物W7を組み立てさせる。すなわち、制御装置30は、ある1つの容器(この一例において、容器TR)にバラ積みにされた複数種類の対象物を用いて完成品を組み立てることができる。
【0095】
なお、上記の説明において、容器TRには、完成品である対象物W7を1つ組み立てるために必要な対象物のみ(すなわち、対象物O1〜対象物O8)が載置されていたが、これに代えて、複数個の完成品を組み立てるために必要な対象物が載置されている構成であってもよい。この際、当該複数個の完成品のうちの一部又は全部は、互いに異なる複数種類の完成品であってもよい。
【0096】
また、上記において説明したロボット制御装置40と画像処理装置50とが一体として制御装置30を構成する場合、制御装置30は、1つのプロセッサー(例えば、上記のプロセッサー41又はプロセッサー51)、1つのメモリー(例えば、上記のメモリー42又はメモリー52)、1つの通信部(例えば、上記の通信部44又は通信部54)を備える。また、ロボット制御装置40は、画像処理装置50が備えるプロセッサー51によって制御される構成であってもよく、ネットワークを介してロボット制御装置40に接続された他の情報処理装置が備えるプロセッサーによって制御される構成であってもよい。また、画像処理装置50は、ロボット制御装置40が備えるプロセッサー41によって制御される構成であってもよく、ネットワークを介して画像処理装置50に接続された他の情報処理装置が備えるプロセッサーによって制御される構成であってもよい。
【0097】
以上のように、ロボット20は、互いに異なる複数種類の部品(この一例において、対象物O1〜対象物O8)と、2以上の当該部品が互いに組み付けられた部品キットとのうち少なくとも部品を含む複数の対象物の少なくとも一部が重なり合って載置された容器(この一例において、容器TR)を撮像部(この一例において、撮像部C)に撮像させ、撮像部により撮像された撮像画像に基づいて、複数の対象物それぞれについての種類と位置及び姿勢とを検出し、検出した種類と位置及び姿勢とに応じて、容器に載置された対象物を用いて組み立てることが可能な1以上の部品キット(この一例において、対象物W1〜対象物W7)のそれぞれについての優先順位を決定し、決定した優先順位に基づいて選択された部品キットを組み立てる。これにより、ロボット20は、互いに異なる複数種類の部品キットを組み立てることができるとともに、部品キットを組み立てる作業を停止させてしまうことを抑制することができる。
【0098】
また、ロボット20は、決定した優先順位に基づいて選択された部品キットを組み立てた後、組み立てた部品キットを容器に載置する。これにより、ロボット20は、組み立てた部品キットを用いて他の部品キットを組み立てることができる。
【0099】
また、ロボット20は、組み立てた部品キットを容器に載置する際、決定した優先順位を更新し、更新した後の優先順位が2位以下の部品キットを組み立てるために必要な対象物の上に、組み立てた部品キットを載置する。これにより、ロボット20は、載置した部品キットによって、優先順位が1位の部品キットが組み立てられなくなってしまうことを抑制することができる。
【0100】
また、ロボット20では、容器に載置された対象物を用いて組み立てることが可能な1以上の前記部品キットには、完成品が含まれる。これにより、ロボット20は、互いに異なる複数種類の部品キットを組み立てることができるとともに、互いに異なる複数種類の完成品を組み立てることができる。
【0101】
また、ロボット20は、対象物に含まれている部品キットを用いて組み立てることが可能な部品キットのうち対象物を組み付ける回数が最も多い部品キットの優先順位を1位に決定する。これにより、ロボット20は、部品キットの組み立てに係る効率を向上させることができる。
【0102】
また、ロボット20は、直前に組み立てた部品キットを用いて組み立てることが可能な部品キットが存在する場合、対象物を組み付ける回数が最も多い部品キットに代えて、直前に組み立てた部品キットを用いて組み立てることが可能な部品キットの優先順位を1位に決定する。これにより、ロボット20は、部品キットの組み立てに係る効率をより確実に向上させることができる。
【0103】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【0104】
また、以上に説明した装置(例えば、ロボット制御装置40、画像処理装置50)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD(Compact Disk)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0105】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。