(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022174815
(43)【公開日】2022-11-25
(54)【発明の名称】情報処理装置、システム、方法及びプログラム
(51)【国際特許分類】
B25J 13/08 20060101AFI20221117BHJP
【FI】
B25J13/08 A
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021080794
(22)【出願日】2021-05-12
(71)【出願人】
【識別番号】315014671
【氏名又は名称】東京ロボティクス株式会社
(74)【代理人】
【識別番号】100098899
【弁理士】
【氏名又は名称】飯塚 信市
(74)【代理人】
【識別番号】100163865
【弁理士】
【氏名又は名称】飯塚 健
(72)【発明者】
【氏名】川西 亮輔
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS04
3C707BS09
3C707DS01
3C707ES01
3C707KS03
3C707KS04
3C707KT01
3C707KT12
3C707KX19
3C707LT06
3C707LV07
3C707LW03
3C707NS07
(57)【要約】 (修正有)
【課題】認識した物体に対し作業を行うロボット等において、認識処理の作業時間を短縮する。
【解決手段】ロボット作業領域の観測データを取得する観測データ取得部と、前記観測データに基づき前記作業領域内の物体を認識する認識処理を行い第1の認識処理結果を生成する第1認識処理結果生成部と、前記観測データ及び前記第1の認識処理結果を記憶する記憶部と、前記記憶部に記憶された過去の第1の認識処理結果における物体の認識処理結果に対し物体選別処理を行い、前記作業領域内の物体の認識処理結果である第2の認識処理結果を生成する第2認識処理結果生成部と、前記第1の認識処理結果の生成が完了している場合は前記第1の認識処理結果を前記ロボット又はその制御装置へ提供し、前記結果の生成が完了していない場合は前記第2の認識処理結果を前記ロボット又はその制御装置へと提供する認識処理結果提供部とを備える。
【選択図】
図10
【特許請求の範囲】
【請求項1】
ロボットの作業領域の観測データを取得する、観測データ取得部と、
前記観測データに基づいて、前記作業領域内の物体を認識する認識処理を行って第1の認識処理結果を生成する、第1認識処理結果生成部と、
前記観測データ及び前記第1の認識処理結果を記憶する、記憶部と、
前記記憶部に記憶された過去の第1の認識処理結果における物体の認識処理結果に対して物体選別処理を行って、前記作業領域内の物体の認識処理結果である第2の認識処理結果を生成する、第2認識処理結果生成部と、
前記第1の認識処理結果の生成が完了している場合、前記第1の認識処理結果を前記ロボット又はその制御装置へと提供し、前記第1の認識処理結果の生成が完了していない場合、前記第2の認識処理結果を前記ロボット又はその制御装置へと提供する、認識処理結果提供部と、
を備えた、情報処理装置。
【請求項2】
前記観測データは、3次元観測データであり、
前記認識処理は、前記作業領域内の物体の3次元の位置及び姿勢を認識する処理である、請求項1に記載の情報処理装置。
【請求項3】
前記観測データは、3次元観測データであり、
前記認識処理は、前記作業領域内の物体の3次元の位置及び姿勢を認識し、その認識結果に基づいて、前記ロボットによる前記物体の把持位置及び把持姿勢を算出する処理である、請求項1に記載の情報処理装置。
【請求項4】
前記認識処理と前記物体選別処理とは並行して実行される、請求項1に記載の情報処理装置。
【請求項5】
前記第2認識処理結果生成部は、
前記観測データ、前記記憶部に記憶された過去の観測データ及び前記記憶部に記憶された過去の第1の認識処理結果に基づいて、前記物体選別処理を行う、請求項1に記載の情報処理装置。
【請求項6】
前記物体選別処理は、
前記観測データに係る画像と、前記過去の観測データに係る画像の差分に基づいて選別処理を行うものである、請求項5に記載の情報処理装置。
【請求項7】
前記物体選別処理は、
前記観測データに係る画像に含まれる物体を幾何学図形で置換した画像と、前記過去の観測データに係る画像に含まれる物体を幾何学図形で置換した画像の差分に基づいて選別処理を行うものである、請求項5に記載の情報処理装置。
【請求項8】
前記第2認識処理結果生成部は、
前記観測データと、前記記憶部に記憶された過去の観測データに基づいて、変化領域を特定し、
前記変化領域の面積が所定の閾値以上である場合に、前記変化領域に対応する物体の選別処理を行う、請求項1に記載の情報処理装置。
【請求項9】
前記第2認識処理結果生成部は、
前記観測データと、前記記憶部に記憶された過去の観測データに基づいて、変化領域を特定し、
前記変化領域について物体が出現した領域であるか又は物体が消失した領域であるかを識別する、請求項1に記載の情報処理装置。
【請求項10】
前記第2認識処理結果生成部は、
前記観測データと、前記記憶部に記憶された過去の観測データに基づいて、変化領域を特定し、
前記変化領域のうち物体が出現した領域が所定条件を満たす場合、前記記憶部の記憶内容を初期化する、請求項1に記載の情報処理装置。
【請求項11】
前記作業は、物体の認識処理結果取得工程、取り出し工程、及び、載置工程を含むピッキング作業を繰り返す作業であり、
前記認識処理と前記選別処理は、前記取り出し工程完了後に開始する、請求項1に記載の情報処理装置。
【請求項12】
前記認識処理結果提供部は、前記記憶部に前記観測データ及び前記第1の認識処理結果が記憶されていない場合、前記認識処理が完了するまで待機状態となる、請求項1に記載の情報処理装置。
【請求項13】
ロボットの作業領域の観測データを取得する、観測データ取得部と、
前記観測データに基づいて、前記作業領域内の物体を認識する認識処理を行って第1の認識処理結果を生成する、第1認識処理結果生成部と、
前記観測データ及び前記第1の認識処理結果を記憶する、記憶部と、
前記記憶部に記憶された過去の第1の認識処理結果における物体の認識処理結果に対して物体選別処理を行って、前記作業領域内の物体の認識処理結果である第2の認識処理結果を生成する、第2認識処理結果生成部と、
前記第1の認識処理結果の生成が完了している場合、前記第1の認識処理結果を前記ロボット又はその制御装置へと提供し、前記第1の認識処理結果の生成が完了していない場合、前記第2の認識処理結果を前記ロボット又はその制御装置へと提供する、認識処理結果提供部と、
を備えた、情報処理システム。
【請求項14】
ロボットの作業領域の観測データを取得する、観測データ取得ステップと、
前記観測データに基づいて、前記作業領域内の物体を認識する認識処理を行って第1の認識処理結果を生成する、第1認識処理結果生成ステップと、
前記観測データ及び前記第1の認識処理結果を記憶する、記憶ステップと、
前記記憶ステップにて記憶された過去の第1の認識処理結果における物体の認識処理結果に対して物体選別処理を行って、前記作業領域内の物体の認識処理結果である第2の認識処理結果を生成する、第2認識処理結果生成ステップと、
前記第1の認識処理結果の生成が完了している場合、前記第1の認識処理結果を前記ロボット又はその制御装置へと提供し、前記第1の認識処理結果の生成が完了していない場合には、前記第2の認識処理結果を前記ロボット又はその制御装置へと提供する、認識処理結果提供ステップと、
を備えた、情報処理方法。
【請求項15】
ロボットの作業領域の観測データを取得する、観測データ取得ステップと、
前記観測データに基づいて、前記作業領域内の物体を認識する認識処理を行って第1の認識処理結果を生成する、第1認識処理結果生成ステップと、
前記観測データ及び前記第1の認識処理結果を記憶する、記憶ステップと、
前記記憶ステップにて記憶された過去の第1の認識処理結果における物体の認識処理結果に対して物体選別処理を行って、前記作業領域内の物体の認識処理結果である第2の認識処理結果を生成する、第2認識処理結果生成ステップと、
前記第1の認識処理結果の生成が完了している場合、前記第1の認識処理結果を前記ロボット又はその制御装置へと提供し、前記第1の認識処理結果の生成が完了していない場合、前記第2の認識処理結果を前記ロボット又はその制御装置へと提供する、認識処理結果提供ステップと、
を備えた、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報処理装置、特に、物体認識を伴う作業を行うロボットの制御に関する情報処理装置等に関する。
【背景技術】
【0002】
生産現場や物流倉庫等における作業の自動化のため、ロボットの導入が進められている。特に、近年、バラ積みピッキング作業等の物体認識を伴う作業を行うロボットの導入に対するニーズが大きい。
【0003】
バラ積みピッキング作業とは、整列されていないワーク等の物体をカメラ画像等を介して認識し、認識した物体を取り出す作業、又は、取り出した物体をさらに所望の位置に載置する作業をいう。特許文献1には、バラ積みされた物体の3次元位置姿勢をカメラとレンジセンサを介して認識し、認識した物品を取り出すロボットが開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、この種のロボットにおいては、操作対象となる物体の認識のため、その工程中において、各物体の3次元位置及び姿勢を計算する必要がある。
【0006】
しかしながら、この計算コストは一般に高く、認識処理には一定の時間を要していた。この認識処理時間によりロボットにおいては待機時間が発生し、その結果、作業時間が全体として大きくなってしまうことがあった。
【0007】
図14を参照しつつ、具体例を挙げて説明する。
図14は、バラ積みピッキング作業を行うロボットシステムの動作例を時系列で示した説明図である。同図の例において、ロボットシステムは、ピッキング作業を行うアームを備えた図示しないロボットと、後述のカメラコントローラからの認識処理結果を受けてロボットの動作制御を行うロボットコントローラと、ロボットの作業領域を撮影する3次元カメラと接続されてロボットコントローラに対してピッキング対象となる物体の認識処理結果を提供するカメラコントローラとを備えている。
【0008】
同図においては、上下3段に各装置の動作が時系列で示されている。上段は、カメラコントローラの動作を示している。中段は、ロボットコントローラの動作を示している。下段は、ロボットコントローラが取得した認識処理の結果を表している。
【0009】
ロボットコントローラは、3次元カメラの観測データに基づく物体の認識処理結果を取得する処理、認識処理結果に基づいて認識した物体をロボットに取り出させる制御処理、及び、取り出した物体をロボットに載置させる制御処理を順に繰り返す。
【0010】
一方、カメラコントローラは、ロボットコントローラからのリクエストに応じて、3次元カメラからの観測データの取得処理と、観測データに基づく物体の認識処理を行う。3次元カメラによる観測データには、3次元カメラの撮像領域内の画像情報と奥行情報が含まれる。また、認識処理により、撮影領域内の物体の3次元位置及び姿勢が認識される。この認識処理結果は、ロボットコントローラへと提供されて、ロボットの動作制御に利用される。
【0011】
以上のロボットコントローラとカメラコントローラの動作を前提とすると、ロボットシステムの動作は次のようになる。すなわち、処理が開始すると、ロボットコントローラは、カメラコントローラから取得した認識処理結果(認識処理結果0)に基づいて把持可能な物体から特定の物体(認識処理結果0において丸で囲まれた物体)を取り出す処理をロボットに対して実行させる。なお、同図において、把持対象物として認識されている物体は、灰色で塗りつぶして示されており、その他の物体は白抜きで示されている。取り出し処理の後、ロボットコントローラに対して認識処理のリクエスト信号を送信すると共に、取り出した物体の載置処理を行う。
【0012】
ロボットコントローラから認識処理のリクエスト信号を受信したカメラコントローラは、3次元カメラから観測データを取得し、当該観測データに基づいて物体の認識処理を行う。認識処理の結果は、認識処理の完了次第、ロボットコントローラへと提供される(認識処理結果1)。このような一連の処理を繰り返すことで、ピッキング作業は進行する。
【0013】
このとき、カメラコントローラにおいては、載置処理と並行して、データ取得処理と認識処理が実行されるものの、載置処理の完了時点においては未だ認識処理が完了していない。そのため、ロボットコントローラは、認識処理が完了するまでの間待機しなければならず、結果として、作業時間が大きくなってしまっていた。
【0014】
本発明は上述の技術的背景に鑑みてなされたものであり、その目的は、認識した物体に対して作業を行うロボット等において、物体の認識処理時間に起因する待機時間を短縮し又は無くすことにより作業時間を短縮することにある。
【課題を解決するための手段】
【0015】
上述の技術的課題は、以下の構成を有する情報処理装置等により解決することができる。
【0016】
すなわち、本発明に係る情報処理装置は、ロボットの作業領域の観測データを取得する、観測データ取得部と、前記観測データに基づいて、前記作業領域内の物体を認識する認識処理を行って第1の認識処理結果を生成する、第1認識処理結果生成部と、前記観測データ及び前記第1の認識処理結果を記憶する、記憶部と、前記記憶部に記憶された過去の第1の認識処理結果における物体の認識処理結果に対して物体選別処理を行って、前記作業領域内の物体の認識処理結果である第2の認識処理結果を生成する、第2認識処理結果生成部と、前記第1の認識処理結果の生成が完了している場合、前記第1の認識処理結果を前記ロボット又はその制御装置へと提供し、前記第1の認識処理結果の生成が完了していない場合、前記第2の認識処理結果を前記ロボット又はその制御装置へと提供する、認識処理結果提供部と、を備えている。
【0017】
このような構成によれば、作業領域内の物体の認識処理が完了している場合には、第1の認識処理結果を提供し、一方、認識処理が完了していない場合であっても、認識処理よりも高速に実行可能な物体選別処理を行って第2の認識処理結果を提供することができるので、認識した物体に対して作業を行うロボット又はその制御装置等に対して認識処理結果を適時に提供することができる。すなわち、認識した物体に対して作業を行うロボット等において、物体の認識処理時間に起因する待機時間を短縮し又は無くすことできるので、作業時間を短縮することができる。
【0018】
前記観測データは、3次元観測データであり、前記認識処理は、前記作業領域内の物体の3次元の位置及び姿勢を認識する処理であってもよい。
【0019】
このような構成によれば、計算コストの高い3次元認識処理を行う間であっても、3次元認識処理よりも高速に実行可能な選別処理を行って第2の認識処理結果を提供することができるので、認識した物体に対して作業を行うロボット又はその制御装置等に対して認識処理結果を適時に提供することができる。
【0020】
前記観測データは、3次元観測データであり、前記認識処理は、前記作業領域内の物体の3次元の位置及び姿勢を認識し、その認識結果に基づいて、前記ロボットによる前記物体の把持位置及び把持姿勢を算出する処理であってもよい。
【0021】
このような構成によれば、計算コストの高い3次元認識処理を行う間であっても、3次元認識処理よりも高速に実行可能な選別処理を行って第2の認識処理結果を提供することができるので、認識した物体に対して作業を行うロボット又はその制御装置等に対して認識処理結果を適時に提供することができる。
【0022】
前記認識処理と前記物体選別処理とは並行して実行されてもよい。
【0023】
このような構成によれば、認識処理と選別処理が並行的に実行されるので、計算コストの高い3次元認識処理を行う間であっても、3次元認識処理よりも高速に実行可能な選別処理を行うことができ、適時に認識処理結果を提供することができる。
【0024】
前記第2認識処理結果生成部は、前記観測データ、前記記憶部に記憶された過去の観測データ及び前記記憶部に記憶された過去の第1の認識処理結果に基づいて、前記物体選別処理を行う、ものであってもよい。
【0025】
このような構成によれば、過去のデータを参照してその経時的変化を検出する等して、物体の選別処理を行うことができる。
【0026】
前記物体選別処理は、前記観測データに係る画像と、前記過去の観測データに係る画像の差分に基づいて選別処理を行うものであってもよい。
【0027】
このような構成によれば、差分画像に基づいて過去の第1の認識処理結果における物体の認識処理結果を選別するので、認識処理に比して計算コストが小さい選別処理を実現することができる。
【0028】
前記物体選別処理は、前記観測データに係る画像に含まれる物体を幾何学図形で置換した画像と、前記過去の観測データに係る画像に含まれる物体を幾何学図形で置換した画像の差分に基づいて選別処理を行うものであってもよい。
【0029】
このような構成によれば、認識対象となる物体が幾何学形状を有する図形により置換されるので、変化領域の特定が容易となる。
【0030】
前記第2認識処理結果生成部は、前記観測データと、前記記憶部に記憶された過去の観測データに基づいて、変化領域を特定し、前記変化領域の面積が所定の閾値以上である場合に、前記変化領域に対応する物体の選別処理を行う、ものであってもよい。
【0031】
このような構成によれば、所定の閾値を用いることにより認識精度を調整することができる。
【0032】
前記第2認識処理結果生成部は、前記観測データと、前記記憶部に記憶された過去の観測データに基づいて、変化領域を特定し、前記変化領域について物体が出現した領域であるか又は物体が消失した領域であるかを識別する、ものであってもよい。
【0033】
このような構成によれば、物体の挙動をより詳細に特定することができる。
【0034】
前記第2認識処理結果生成部は、前記観測データと、前記記憶部に記憶された過去の観測データに基づいて、変化領域を特定し、前記変化領域のうち物体が出現した領域が所定条件を満たす場合、前記記憶部の記憶内容を初期化する、ものであってもよい。
【0035】
このような構成によれば、ロボットの作業対象となる物体が作業中に追加された場合等にも適切に対応することができる。
【0036】
前記作業は、物体の認識処理結果取得工程、取り出し工程、及び、載置工程を含むピッキング作業を繰り返す作業であり、前記認識処理と前記選別処理は、前記取り出し工程後に開始する、ものであってもよい。
【0037】
このような構成によれば、載置工程中に認識処理を進めることで、次のサイクルの認識結果取得工程においていずれかの認識処理結果を取得することができる。これにより、物体の認識処理時間に起因する待機時間を短縮し又は無くすことできるので、作業時間を短縮することができる。
【0038】
前記認識処理結果提供部は、前記記憶部に前記観測データ及び前記第1の認識処理結果が記憶されていない場合、前記認識処理が完了するまで待機状態となる、ものであってもよい。
【0039】
このような構成によれば、使用開始時や初期化処理直後であっても、正常な動作を担保することができる。
【0040】
本発明はシステムとしても観念することができる。すなわち、本発明に係るシステムは、ロボットの作業領域の観測データを取得する、観測データ取得部と、前記観測データに基づいて、前記作業領域内の物体を認識する認識処理を行って第1の認識処理結果を生成する、第1認識処理結果生成部と、前記観測データ及び前記第1の認識処理結果を記憶する、記憶部と、前記記憶部に記憶された過去の第1の認識処理結果における物体の認識処理結果に対して物体選別処理を行って、前記作業領域内の物体の認識処理結果である第2の認識処理結果を生成する、第2認識処理結果生成部と、前記第1の認識処理結果の生成が完了している場合、前記第1の認識処理結果を前記ロボット又はその制御装置へと提供し、前記第1の認識処理結果の生成が完了していない場合、前記第2の認識処理結果を前記ロボット又はその制御装置へと提供する、認識処理結果提供部と、を備えている。
【0041】
本発明は方法としても観念することができる。すなわち、本発明に係る方法は、ロボットの作業領域の観測データを取得する、観測データ取得ステップと、前記観測データに基づいて、前記作業領域内の物体を認識する認識処理を行って第1の認識処理結果を生成する、第1認識処理結果生成ステップと、前記観測データ及び前記第1の認識処理結果を記憶する、記憶ステップと、前記記憶部に記憶された過去の第1の認識処理結果における物体の認識処理結果に対して物体選別処理を行って、前記作業領域内の物体の認識処理結果である第2の認識処理結果を生成する、第2認識処理結果生成ステップと、前記第1の認識処理結果の生成が完了している場合、前記第1の認識処理結果を前記ロボット又はその制御装置へと提供し、前記第1の認識処理結果の生成が完了していない場合、前記第2の認識処理結果を前記ロボット又はその制御装置へと提供する、認識処理結果提供ステップと、を備えている。
【0042】
本発明はコンピュータプログラムとしても観念することができる。すなわち、本発明に係るプログラムは、ロボットの作業領域の観測データを取得する、観測データ取得ステップと、前記観測データに基づいて、前記作業領域内の物体を認識する認識処理を行って第1の認識処理結果を生成する、第1認識処理結果生成ステップと、前記観測データ及び前記第1の認識処理結果を記憶する、記憶ステップと、前記記憶部に記憶された過去の第1の認識処理結果における物体の認識処理結果に対して物体選別処理を行って、前記作業領域内の物体の認識処理結果である第2の認識処理結果を生成する、第2認識処理結果生成ステップと、前記第1の認識処理結果の生成が完了している場合、前記第1の認識処理結果を前記ロボット又はその制御装置へと提供し、前記第1の認識処理結果の生成が完了していない場合、前記第2の認識処理結果を前記ロボット又はその制御装置へと提供する、認識処理結果提供ステップと、を備えている。
【発明の効果】
【0043】
本発明によれば、認識した物体に対して作業を行うロボット等において、物体の認識処理時間に起因する待機時間を短縮し又は無くすことできるので、作業時間を短縮することができる。
【図面の簡単な説明】
【0044】
【
図1】
図1は、ロボットシステムの全体構成図である。
【
図2】
図2は、カメラコントローラの機能ブロック図である。
【
図3】
図3は、ロボットコントローラの機能ブロック図である。
【
図4】
図4は、ロボットコントローラの動作について説明するフローチャートである。
【
図5】
図5は、カメラコントローラの動作について説明するフローチャートである。
【
図6】
図6は、認識処理の詳細フローチャートである。
【
図7】
図7は、選別処理の詳細フローチャートである。
【
図9】
図9は、リセット処理の適用例に関する説明図である。
【
図10】
図10は、ロボットシステムの動作の全体像を時系列的で示した説明図である。
【
図11】
図11は、変形例に係る選別処理に関する説明図(その1)である。
【
図12】
図12は、カメラコントローラにおいて実行されるプロセスに関する説明図である。
【
図13】
図13は、変形例に係る選別処理に関する説明図(その2)である。
【
図14】
図14は、バラ積みピッキング作業を行うロボットシステムの動作例を時系列で示した説明図である。
【発明を実施するための形態】
【0045】
以下、本発明の好適な実施の形態について添付の
図1~
図13を参照しつつ詳細に説明する。
【0046】
(1.第1の実施形態)
第1の実施形態として、本発明をバラ積みピッキング作業を行うロボットシステム100に対して適用した例について説明する。なお、本実施形態においては、バラ積みピッキング作業を例に説明するものの、物体の認識処理を伴う作業であれば他の作業であってもよい。
【0047】
(1.1 構成)
図1は、ロボットシステム100の全体構成図である。同図から明らかな通り、ロボットシステム100は、ロボット2と、ロボット2の動作制御を行うロボットコントローラ4と、ロボットコントローラ4と接続されたカメラコントローラ5、カメラコントローラ5と接続された3次元カメラ1とを備えている。また、ロボット2の近傍には、バラ積みされたワーク31を収容した箱3が配置されている。ワーク31は、本実施形態においては、円筒状の物体である。
【0048】
本実施形態において、ロボット2は、その先端にグリッパ等の把持部を備えた多関節ロボットアームであり、箱3内にバラ積みされたワーク31を把持して取り出すことが出来るように構成されている。なお、ロボット2は、ロボットアームに限定されず、作業内容に応じて、他の種々の形態のロボットを採用することができる。
【0049】
3次元カメラ1は、箱3内の全体を画角内に収めるよう配置されている。3次元カメラ1は、その前面に上下二段に撮像窓11と投光窓12とを備えている。3次元カメラ1は、ストラクチャードライト方式を採用しており、投光窓12から所定のパターン(例えば、縞模様)を対象物(箱3内のバラ積みされたワーク31)に対して投光し、当該パターンを撮像窓11を介して撮像することで奥行情報を取得する。また、3次元カメラは通常のカラーの画像を撮影することができる。なお、3次元情報の取得は本センサによるものに限定されず、他のセンサを採用することも可能である。
【0050】
カメラコントローラ5は、3次元カメラから観測データ、すなわち、撮影した画像データと奥行情報を取得し、観測領域内のワーク31の3次元認識処理を行う。認識処理結果は、ロボットコントローラ4へと提供される。
【0051】
ロボットコントローラ4は、ロボット2の動作制御を行う。本実施形態において、ロボットコントローラ4は、カメラコントローラ5からの認識処理結果に応じて、ワーク31を適切に把持、移動等できるようロボット2の各関節に設けられたモータの位置制御を行う。なお、ロボットコントローラ4による制御の手法はこのような方法に限定されず、力制御など種々の公知の手法を採用することができる。
【0052】
ロボットシステム100の構成は本実施形態に示すものに限定されず、様々に変更することができる。従って、各機能の物理的配置を自在に変更してもよく、例えば、ロボットコントローラ4とカメラコントローラ5又はそれに加えて3次元カメラ1を一体としてもよいし、或いは、すべての装置をロボット2に集約してもよい。若しくは、各装置の機能を複数の装置に分離してもよい。
【0053】
図2は、本実施形態に係るカメラコントローラ5の機能ブロック図である。同図から明らかな通り、カメラコントローラ5は、記憶部51、データ取得部52、認識処理部53、選別処理部54、データ入出力部56を備えている。
【0054】
記憶部51は、ROM/RAM等のメモリ、ハードディスク、フラッシュメモリ等の記憶装置であって、種々のデータの書き込みや読み出しを可能とする。データ取得部52は、3次元カメラ1から観測データを取得して、記憶部51へと記憶する処理を行う。認識処理部53は、観測データに基づいて画像中の物体(ワーク31)の認識処理を行い、認識処理結果を記憶部51へと記憶する。
【0055】
選別処理部54は、記憶部51に記憶された認識処理結果、現在の観測データ、及び過去の観測データから画像中の変化領域を検出して、物体の選別処理を行い、その選別処理結果を記憶部51へと記憶する。データ入出力部56は、記憶部51に記憶された選別処理結果をロボットコントローラ4に対して提供する。
【0056】
図3は、ロボットコントローラ4の機能ブロック図である。同図から明らかな通り、ロボットコントローラ4は、記憶部41、認識処理結果取得部42、取出動作制御部43、載置動作制御部44及びロボットインタフェース46とを備えている。
【0057】
記憶部51は、ROM/RAM等のメモリ、ハードディスク、フラッシュメモリ等の記憶装置であって、種々のデータの書き込みや読み出しを可能とする。認識処理結果取得部42は、カメラコントローラ5から認識処理結果を受信し、記憶部41へと記憶する。
【0058】
取出動作制御部43は、ロボットインタフェース46からロボットの関節角度情報等の必要な情報を取得しつつ、ロボットインタフェース46を介してロボット2を制御し、ロボット2に対して、認識したワーク31の把持を含めた取り出し動作を行わせる。
【0059】
載置動作制御部44は、ロボットインタフェース46からロボットの関節角度情報等の必要な情報を取得しつつ、ロボットインタフェース46を介してロボット2を制御し、ロボット2に対して、把持したワーク31を載置する動作を行わせる。
【0060】
ロボットインタフェース46は、ロボット2への動作指令又はロボット2からの関節角度等の状態情報の取得を仲介する。
【0061】
(1.2 動作)
次に、ロボットシステム100の動作について説明する。
【0062】
図4は、ロボットコントローラ4の動作について説明するフローチャートである。同図から明らかな通り、処理が開始すると、ロボットコントローラ4の取出動作制御部43は、記憶部41から、作業領域内のワーク31の認識処理結果の取得処理を行う(S11)。
【0063】
その後、取出動作制御部43は、取得した認識処理結果に基づいて、ロボット2に対して、認識した物体のうちの1つを把持して箱3から取り出す動作を行わせる制御を行う(S12)。ワーク31の取出動作処理が完了すると、取出動作制御部43は、認識処理結果取得部42を介して、取出動作完了通知をカメラコントローラ5に対して行う(S13)。後述するように、この通知に応じて、カメラコントローラ5は、観測データの取得処理を開始する。
【0064】
取出動作完了通知処理を行った後、載置動作制御部44は、ロボット2に対して、把持しているワーク31を箱3の外の所定の場所、例えば、ベルトコンベア上に載置する動作を行わせる制御を行う(S15)。
【0065】
載置処理が完了すると、ロボット2は初期姿勢へと復帰し、再び、一連の処理(S11~S15)を繰り返す。この一連の処理は、所定の停止処理がなされるまで繰り返される。
【0066】
図5は、カメラコントローラ5の動作について説明するフローチャートである。同図から明らかな通り、処理が開始すると、カメラコントローラ5は、データ入出力部56を介して上述の取出動作完了通知を受信するまで、待機状態となる(S31NO)。この状態において、ロボットコントローラ4から取出動作完了通知を受信すると(S31YES)、データ取得部52は、3次元カメラ1から、観測データ、すなわち、画像情報と奥行き情報を取得する処理を行う(S32)。
【0067】
この観測データの取得処理の後、カメラコントローラ5は、認識処理部53を用いて観測データに基づくワーク31の認識処理を実行する(S34)。また、それと並行して、選別処理部54を用いて、同観測データに基づくワーク31の選別処理を実行する(S36)。なお、これらの処理が終了すると、再び初期状態、すなわち、取出動作完了通知の待機状態(S31NO)へと戻る。
【0068】
図6は、認識処理(S34)の詳細フローチャートである。同図から明らかな通り、処理が開始すると、認識処理部53は、観測データに基づいて、観測領域内の物体、すなわち、ワーク31の認識処理を行う(S341)。この認識処理には、具体的には、観測データに係るカラー画像情報から1又は複数のワーク31の検出を行う処理と、同観測データに係る奥行情報を加味して各ワーク31の把持位置及び把持姿勢を決定する処理が含まれる。なお、この認識処理は、物体検出処理と奥行情報を加味した把持位置及び姿勢の検出処理とを1又は複数の対象に対して行うため、演算量が比較的に大きく、その結果、処理の完了には一定の時間を要することとなる。
【0069】
この認識処理が完了すると、認識処理部53は、記憶部51の記憶データに対して他のプロセスがアクセス中であるかを検出し、記憶データに他のプロセスがアクセス中である場合(S342YES)、そのアクセスが終了するまで待機する処理を行う。一方、記憶データに他のプロセスがアクセス中でない場合(S342NO)、認識処理部53は、認識処理の結果である認識処理結果データと当該認識処理の基礎となった観測データにより、記憶部51に記憶された対応するデータ(記憶データ)を更新する処理を行う(S343)。
【0070】
この更新処理の後、認識処理部53は、その認識処理結果をデータ入出力部56を介してロボットコントローラ4へと送信して(S345)、処理は終了する。
【0071】
図7は、選別処理(S36)の詳細フローチャートである。同図から明らかな通り、処理が開始すると、選別処理部54は、記憶部51に既に記憶データ、すなわち、観測データ及びその認識処理結果が存在するか否かを確認する処理を行う(S361)。認識処理結果が存在しない場合(S361NO)、選別処理部54は、いずれかの記憶データが記憶されるまで待機する処理を行う。
【0072】
記憶データが存在する場合(S361)、選別処理部54は、記憶データが他のプロセスにより更新中であるか否か又はアクセスされているかを検出する。更新中である場合等には、選別処理部54は、所定の待機処理を行う(S362YES)。一方、更新中等でない場合(S362NO)、選別処理部54は、記憶部51から記憶データ、すなわち、過去に記憶された直近の観測データとその認識処理結果を取得する(S364)。
【0073】
その後、選別処理部54は、現在の観測データと記憶データとに基づいてワーク31を選別する処理を行う。ここで、選別処理とは、概して言えば、過去の認識処理において認識されたワーク31から、既に取り出し済みのワーク31を通常の認識処理よりも少ない演算量で除外する処理である。
【0074】
図8は、選別処理の概念図である。同図から明らかな通り、選別処理部54は、まず、記憶データに係る画像データと、現在の観測データに係る画像データとの差分をとる処理を行う。同図の差分処理結果画像から明らかな通り、この差分処理により、変化領域、すなわち、ロボット2による取り出し動作により除去されたワーク31に対応する領域が検出される。
【0075】
その後、記憶データに係る直近の認識処理結果と、変化領域を表す差分処理結果とを照合し、直近の認識処理結果において認識されていたワーク31のうちから既に除去されたワーク31が特定され、当該ワーク31を除くワーク31について認識された状態を選別処理結果として出力する。
【0076】
このような処理によれば、選別処理の計算コストは小さく、認識処理程の計算コストは不要となるため、迅速に認識処理結果を更新することができる。
【0077】
選別処理が完了すると、次に、所定のリセット条件を満たすか否かの判定処理が行われる(S367)。本実施形態において、リセット条件は、画像領域内における変化領域の割合が所定の閾値以上となることである。
【0078】
このリセット条件を満たす場合(S367YES)、選別処理部54は、過去の記憶データを初期化する処理を行うと共に(S371)、選別処理結果もリセットして、選別処理は終了する。一方、リセット条件を満たさない場合(S367NO)、選別処理結果を記憶部51へと記憶する処理を行うと共に(S368)、選別処理結果をデータ入出力部56を介してロボットコントローラ4へと送信する処理を行い(S369)、終了する。
【0079】
図9を参照しつつ、リセット条件について詳細に説明する。
図9は、リセット処理の適用例に関する説明図である。同図において、記憶データに係る画像データにおいては、3つのワーク31が認識(同図中の十字)されている。一方、現在の観測データに係る画像データには、作業途中で多数のワークが追加される等して、多数のワークが含まれている。この場合、画像間の差分処理を行うと、画像領域の大部分が差分有りの領域、すなわち、変化領域として検出される。
【0080】
このように、画像領域の大部分が変化領域として検出された場合、画像領域内における変化領域の割合が所定の閾値以上であるとしてリセット条件を満たし、記憶データと選別処理結果をリセットして選別処理を終了する。一方、変化領域が画像領域の一定の割合(閾値)以下である場合には、リセット条件を満たさないものとして、選別処理結果の記憶処理等を行う。
【0081】
このような構成によれば、ロボットの作業対象となるワークが作業中に追加された場合や、バラ積みされたワークが崩れて状況が大きく変化した場合等にも適切に対応することができる。
【0082】
図10は、本実施形態に係るロボットシステム100の動作の全体像を時系列的で示した説明図である。
【0083】
同図から明らかな通り、ロボットコントローラ4は、バラ積みピッキング作業をロボット2に対して実行させるため、認識処理結果の取得処理(S11)、取り出し動作処理(S12)、載置動作処理(S15)を繰り返し実行している。なお、ロボットコントローラ4は、取り出し動作処理の直後に、カメラコントローラ5に対して、取出動作完了通知を送信している(S13)。
【0084】
カメラコントローラ5は、取出動作完了通知を受けて(S31YES)、観測データの取得処理(S32)を実行し、その後、ワーク認識処理(S34)とワーク選別処理(S36)とを並列して実行する。なお、同図から明らかな通り、計算コストの相違から、ワーク選別処理(S36)よりもワーク認識処理(S34)の方が数倍の時間を要する点に留意されたい。
【0085】
以上のロボットコントローラ4とカメラコントローラ5の動作を前提とすると、一連の動作は次のようになる。すなわち、処理が開始すると、ロボットコントローラ4は、認識処理結果の取得処理(S11)を実行し、記憶データに係る認識処理結果を読み出す。このときの認識処理結果は、例えば、「認識処理結果0」で示されるものである。なお、同図において、把持対象物として認識されているワーク31は、灰色で塗りつぶして示されており、その他のワーク31は白抜きで示されている。取り出し動作処理(S12)を実行した後、ロボットコントローラ4は、カメラコントローラ5に対して、取り出し動作完了通知処理(S13)を行う。
【0086】
その後、ロボットコントローラ4は、載置処理(S15)を行い、再び認識処理結果の取得処理(S11)を行う。しかしながら、この時点において、カメラコントローラ4においては認識処理結果が更新されていない。そのため、ロボットコントローラ4は、既に完了している選別処理の結果を使用する。「認識処理結果0」において丸で囲まれたワーク31が取り出されて除去された場合、選別処理結果は、例えば、同図の「認識処理結果1」のようになる。ロボットコントローラ4は、この認識処理結果(選別処理結果)に基づいて、次の取り出し動作処理(S12)を実行する。
【0087】
その後、載置処理(S15)を経て、再び、認識処理結果の取得処理(S11)が行われるが、このときの認識処理結果は先述の認識処理(S34)により得られた認識処理結果となる。この認識処理結果は、例えば、同図の「認識処理結果2」である。なお、「認識処理結果2」においては、選別処理(S36)によって、「選別処理結果1」にて丸で示された認識ワーク31が除外されている。
【0088】
このような処理を繰り返すことで、ロボットコントローラ4は、認識処理結果の取得処理を行う際に、適時に適切な認識処理結果を得ることができる。そのため、例えば、
図14に示した作業の待機時間が存在しない。
【0089】
従って、このような構成によれば、作業領域内のワーク31等の物体の認識処理が完了している場合には、第1の認識処理結果を提供し、一方、認識処理が完了していない場合であっても、認識処理よりも高速に実行可能な物体選別処理を行って第2の認識処理結果(選別処理結果)を提供することができるので、認識した物体に対して作業を行うロボット又はその制御装置等に対して認識処理結果を適時に提供することができる。これにより、認識した物体に対して作業を行うロボット等において、物体の認識処理時間に起因する待機時間を短縮し又は無くすことできるので、作業時間を短縮することができる。
【0090】
(2.変形例)
上述の実施形態は例示であり、本発明は様々に変形して実施することができる。
【0091】
第1の実施形態においては、取出処理の後に開始する認識処理(S341)は、次の次のサイクルにおける認識処理結果取得処理(S11)の開始時点までには、その処理を終えていた。しかしながら、本発明はそのような構成に限定されず、さらに認識処理に時間を要する場合でも対応可能である。この場合、認識処理が終了するまでの間の選別処理においては、過去の記憶データとの比較処理を繰り返してもよい。
【0092】
図11は、変形例に係る選別処理に関する説明図(その1)であり、より詳細には、次の次のサイクルにおける認識処理結果取得処理(S11)の開始時点までに認識処理が終了しない場合の選別処理に関する説明図である。同図から明らかな通り、処理開始当初の認識処理結果の取得処理(S11)により得られる認識処理結果は、同図の「認識結果0」である。なお、同図において、把持対象物として認識されているワーク31は、灰色で塗りつぶして示されており、その他のワーク31は白抜きで示されている。
【0093】
その次のサイクルにおける認識処理結果の取得処理(S11)において得られる選別処理結果(「選別処理結果1」)は、同時点において記憶データの更新が未だなされていないため、新たに得られた観測データ(「観測データ1」)と「認識結果0」の差分に基づいて演算される。
【0094】
また、そのさらに次のサイクルにおける認識処理結果の取得処理(S11)において得られる選別処理結果(「選別処理結果2」)は、同時点において記憶データの更新が未だなされていないため、新たに得られた観測データ(「観測データ2」)と「認識結果0」の差分に基づいて演算される。
【0095】
このように、認識処理が完了するまでの間は、直近で得られている認識処理結果を使用することで、選別処理を実行することができる。
【0096】
また、第1の実施形態においては、認識処理(S34)又は選別処理(S36)の完了と共に、ロボットコントローラ4に対して認識処理結果又は選別処理結果を送信(S345、S369)する構成としていたが、本発明はこのような構成に限定されない。従って、例えば、処理完了後は、ロボットコントローラ4からのリクエストに応じていつでも認識処理結果又は選別処理結果を送信可能な態様としてもよい。
【0097】
図12は、カメラコントローラ5において実行されるプロセスに関する説明図である。同図中央には、カメラコントローラ5の動作に関するメインプロセスが配置されている。メインプロセスが、取出動作完了通知を受領すると、同プロセスの右隣りに配置された認識処理結果の取得処理プロセスが開始する(S32)。この取得処理プロセスが完了すると、メインプロセスは、ワークの選別処理(S34)プロセスと、認識処理(S36)プロセスを開始する。
【0098】
その後、各プロセスが終了すると、メインプロセスに通知がなされ、それ以降、メインプロセスは、ロボットコントローラ4からのリクエストに応じて、認識処理結果(選別処理結果)を提供する。例えば、選別処理が完了した後は、認識処理が実行されている最中であっても、ロボットコントローラ4からのリクエストに応じていつでも認識処理結果(選別処理結果)が提供される。同様に、認識処理結果完了後は、ロボットコントローラ4からのリクエストに応じていつでも認識処理結果が提供される。
【0099】
このような構成によれば、ロボットコントローラ4の要請タイミングに応じて適時に利用可能な認識処理結果を提供することができる。
【0100】
さらに、第1の実施形態に係る選別処理(S36)においては、単に画像データの差分をとる処理を行ったが、本発明はそのような構成に限定されない。従って、例えば、所定の判定条件を導入して選別処理の精度を調整可能に構成してもよい。
【0101】
図13は、変形例に係る選別処理に関する説明図(その2)である。同図の記憶データに係る画像データにおいては、3つのワークが認識されている(同図の十字)。一方、観測データに係る画像においては、左下のワークが除去されていると共に、右上に新たなワークが出現している。
【0102】
なお、ここで、記憶データ又は観測データに係る画像に含まれるワークは幾何学図形、すなわち、本変形例では楕円により置換されている。このような構成によれば、認識対象となる物体が幾何学形状を有する図形により置換されるので、変化領域の特定が容易となる。
【0103】
本変形例では、カメラコントローラ5は、ワーク31が消失した領域と新たに出現した領域を識別しつつ差分処理を行う。このような処理により得られた差分処理結果が同図中央に示されている。同図から明らかな通り、画像左下のワーク31が消失した領域は消失領域として識別され、画像右上のワーク31が新たに出現した領域は出現領域として識別されている。また、画像左上のワーク31は微妙に右にずれているため、ワーク31の左側には微小な消失領域が配置され、一方、右側には微小な出現領域が配置されている。
【0104】
このような構成によれば、ワーク31の挙動をより詳細に特定することができる。
【0105】
本変形例においては、消失領域に係る領域のみを変化領域として特定する。また、変化領域の面積が所定の閾値以上となった場合に、当該ワーク31を認識対象から除外する処理を行う。
【0106】
例えば、閾値が大きい場合、多少の変動があった程度ではワーク31を認識対象から除外しないので、同図のケース1のように左上のワーク31を認識対象から除外せず、引き続き、認識対象とする。一方、閾値が小さい場合、多少の変動であっても当該変動のあったワーク31を認識対象から除外することとなるので、同図のケース2のように左上のワークを認識対象から除外することとなる。
【0107】
このような構成によれば、所定の閾値を用いることにより認識精度を調整することができる。
【0108】
以上、本発明の実施形態について説明したが、上記実施形態は本発明の適用例の一部を示したに過ぎず、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。また、上記の実施形態は、矛盾が生じない範囲で適宜組み合わせ可能である。
【産業上の利用可能性】
【0109】
本発明は、少なくともロボット等を製造する産業において利用可能である。
【符号の説明】
【0110】
1 3次元カメラ
2 ロボット
3 箱
31 ワーク
4 ロボットコントローラ
5 カメラコントローラ
100 ロボットシステム