JP2019016294A - 情報処理装置、情報処理方法、情報処理プログラム、及びシステム - Google Patents

情報処理装置、情報処理方法、情報処理プログラム、及びシステム Download PDF

Info

Publication number
JP2019016294A
JP2019016294A JP2017134895A JP2017134895A JP2019016294A JP 2019016294 A JP2019016294 A JP 2019016294A JP 2017134895 A JP2017134895 A JP 2017134895A JP 2017134895 A JP2017134895 A JP 2017134895A JP 2019016294 A JP2019016294 A JP 2019016294A
Authority
JP
Japan
Prior art keywords
information
unit
workpiece
image
distance image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017134895A
Other languages
English (en)
Inventor
クリスティアン ルーシャ
Hruscha Christian
クリスティアン ルーシャ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2017134895A priority Critical patent/JP2019016294A/ja
Publication of JP2019016294A publication Critical patent/JP2019016294A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Measurement Of Optical Distance (AREA)
  • Manipulator (AREA)
  • Image Analysis (AREA)

Abstract

【課題】実空間上における対象物同士の重なり判定又は対象物の欠陥判定等の対象物に対する評価を、より高速かつ正確に行う。
【解決手段】受付部が、距離画像を受け付け、認識部が、距離画像内の認識対象物を認識する。また、変換部が、認識対象物に関係する関係物の所定の面の情報を、距離画像上の情報へ変換し、出力部が、変換された情報に基づいた評価結果を出力する。これにより、実空間上における対象物同士の重なり判定又は対象物の欠陥判定等の対象物に対する評価を、より高速かつ正確に行うことができる。
【選択図】図18

Description

本発明は、情報処理装置、情報処理方法、情報処理プログラム、及びシステムに関する。
今日において、バラ積みされた部品(ランダムに載置された部品)を撮像したカメラ画像に基づいて各部品の位置及び姿勢を検出し、この検出結果に基づいてアームを駆動して、部品のピッキングを行うマニピュレータシステムが知られている。このようなマニピュレータシステムは、バラ積みされる部品の位置及び姿勢は毎回異なるため(部品の位置及び姿勢のバリエーションが多いため)、アームの軌道を予め決定することは困難となる。換言すれば、アームの軌道は、バラ積みされる部品の位置及び姿勢に応じて大きく変わることがある。
一方、例えば部品がコンテナに収納されている場合又はマニピュレータシステムの架台が狭い場合等に、アームの可動範囲が限定され、部品をピッキングする際にアームが周囲に干渉するおそれがある。従来は、干渉物の位置が固定的である場合、この固定的な位置を予め手動で登録することで、干渉物に対するアームの干渉を防止していた。
また、特許文献1(特開2006−346790号公報)には、ロボットハンドに設けられたカメラで認識したワーク位置(部品の位置)に合わせて移動経路を生成し、ロボットハンドの移動空間の形状及び位置と、事前に登録された周辺物体が存在する空間の形状及び位置とを比較することで、ロボットハンドと周辺物体の干渉を判別する干渉判別装置が開示されている。
また、特許文献2(特開2016−078184号公報)には、三次元カメラ(3Dカメラ)で撮像したロボットの周囲の撮像画像の色情報に基づいて、ロボットと周辺機器を区別し、周辺機器の距離情報でロボットの干渉領域を自動的に設定するロボットの干渉領域設定装置が開示されている。
特許文献1及び特許文献2に開示されている各技術も含め、固定的な干渉対象物に対しては、迅速かつ正確に対処してアームを干渉させることなく駆動可能である。しかし、毎回、載置位置にズレが発生するコンテナ、及び、毎回異なる配置位置となるバラ置きの部品等の場合、正確な干渉領域を高速に算出してアームを駆動することは困難となっていた。
すなわち、このような場合、固定的な干渉領域では、アームの干渉を防止するのは困難となる。また、干渉対象物の予測される移動分をマージンとして付加した干渉領域に基づいてアームを駆動制御しても、不正確な干渉領域でアームを駆動していることと同じであるため、部品の取り残し等の不都合を生ずる。
また、上述の干渉の判定以外にも、実空間上の対象物に対する評価(対象物同士の重なりの判定や、対象物の欠陥判定など)を、従前より高速かつ正確に行うことが求められてきた。
本発明は、上述の課題に鑑みてなされたものであり、高速かつ正確に対象物の評価を可能とすることができるような情報処理装置、情報処理方法、情報処理プログラム、及びシステムの提供を目的とする。
上述した課題を解決し、目的を達成するために、本発明は、距離画像を受け付ける受付部と、距離画像内の認識対象物を認識する認識部と、認識対象物に関係する関係物の所定の面の情報を、距離画像上の情報へ変換する変換部と、変換された情報に基づいた評価結果を出力する出力部と、を有する。
本発明によれば、高速かつ正確に対象物についての評価を行うことができるという効果を奏する。
図1は、第1の実施の形態における部品検査システムの斜視図である。 図2は、第1の実施の形態の部品検査システムの外装カバーを取り外した状態の斜視図である。 図3は、第1の実施の形態の部品検査システムにおけるピッキングロボットの構成を示す斜視図である。 図4は、ピッキングロボットのハンド部をワーク吸着部側から見た斜視図である。 図5は、ワークを保持した状態のハンド部の斜視図である。 図6は、ハンド部のピッキング姿勢及びワークの受け渡し姿勢を示す図である。 図7は、ピッキングロボットの主要部分のブロック図である。 図8は、ピッキングロボットに設けられているステレオカメラの撮像領域を説明するための図である。 図9は、ステレオカメラによる距離の測定原理を説明するための図である。 図10は、ハンド部のワーク吸着部がワークをピッキングする差異の姿勢を示す図である。 図11は、ワークが載置されるコンテナ(背景)の3D画像の一例を示す図である。 図12は、ワークが載置されたコンテナの3D画像の一例を示す図である。 図13は、背景及びワークの両方が写っている3D画像から背景の3D画像を除去することで得られたワークの3D画像を示す図である。 図14は、背景及びワークの両方が写っている3D画像から背景の3D画像を除去することで得られたワークの3D画像に、ハンド部のワーク吸着部を描画した図である。 図15は、ワークとハンド部のワーク吸着部との干渉を示す図である。 図16は、ワーク吸着部における、ステレオカメラに近い面を、対象物との干渉を判定する面として用いる比較例を説明するための図である。 図17は、第1の実施の形態の部品検査システムにおいて、ワーク吸着部の、ステレオカメラに遠い面を用いて行う干渉判定を説明するための図である。 図18は、ロボット制御部が記憶部に記憶されている干渉判定プログラムを実行することで実現される各機能の機能ブロック図である。 図19は、ロボット制御部における干渉判定動作の流れを示すフローチャートである。 図20は、ワークが載置されたコンテナの3D画像の一例を示す図である。 図21は、ワークが載置されたコンテナの各位置の表面と、ステレオカメラとの間の距離を示す距離値を説明するための図である。 図22は、第2の実施の形態における部品検査システムにおける、ロボット制御部の重なり判定動作の流れを示すフローチャートである。 図23は、コンテナ内において、ワークが重なっている状態を示す3D画像の一例を示す図である。 図24は、ロボット制御部が重なり判定を行う際に行うワークの拡張処理を説明するための図である。 図25は、第3の実施の形態における部品検査システムにおける、マニピュレータ装置の姿勢補正動作の流れを示すフローチャートである。 図26は、第3の実施の形態の部品検査システムにおける、マニピュレータ装置の干渉体積の算出動作を説明するための図である。
以下、一例として、実施の形態となる部品検査システムの説明をする。なお、以下、ピッキングロボットを部品検査システムに適用した例について説明するが、インサータシステム等の種々のシステムにおいても応用可能である。
(第1の実施の形態)
まず、図1に、第1の実施の形態の部品検査システムの斜視図を、図2に、第1の実施の形態の部品検査システムの外装カバーを取り外した状態の斜視図を示す。
(部品検査システムの構成)
この部品検査システムは、マニピュレータシステムの一例となるピッキングロボット100と、外観検査装置200及びマガジン収容部300とを有している。ピッキングロボット100は、山積みトレイ1上にバラ積みされた部品(ワーク)の中から選択されたワークを取り出し、そのワークをパレット2の対応箇所に所定の向きでセットするまでの一連の作業を、マニピュレータ装置10で自動的に実行する。
なお、第1の実施の形態の部品検査システムの場合、一例ではあるが、ワークは、基板上に実装されるコネクタ類、インダクタ、コンデンサ、抵抗等の回路部品、又は、ICチップ等の電子部品等、基板上に実装される各種部品となっている。
ワークがセットされたパレット2は、パレット移送機構30によって、ピッキングロボット100から外観検査装置200へと移送される。外観検査装置200は、パレット2を上方から撮像する検査カメラで撮像された撮像画像に基づいて外観検査処理を実行する、例えばパーソナルコンピュータ装置等の外観検査処理装置202を有している。
外観検査装置200は、パレット2上にセットされたワークの向き及び外観上の異常の有無等の外観検査処理を実行する。外観検査処理で異常が検出された場合、外観検査処理装置202は、モニタ装置201を介して、作業者に異常を報知する。一例ではあるが、外観検査処理装置202は、異常が検出されたワークの画像をモニタ装置201に表示制御する。作業者は、モニタ装置201に表示されたワークの画像を見ることで、ワークの異常を認識できる。
外観検査装置200の検査を通過したパレット2は、パレット移送機構30により、マガジン収容部300へと移送される。マガジン収容部300には、複数のマガジン3が積み重ねて保管されるマガジン棚301が設けられている。外観検査装置200から移送されたパレット2は、マガジン棚301に積み重ねられているマガジン3へ順次収容される。パレット2が収容されたマガジン3の数が所定数となると、作業者は、積み重なった状態のマガジン3をマガジン収容部300から取り出し、後段の処理装置へと運搬する。
(ピッキングロボットの構成)
次に、図3は、ピッキングロボット100の構成を示す斜視図である。一例ではあるが、この図3のピッキングロボット100には、5軸のマニピュレータ装置が設けられている。なお、ピッキングロボット100に対して、例えば5軸、6軸、7軸または双腕の様なマニピュレータ装置を設けてもよい。
ピッキングロボット100は、5軸のマニピュレータ装置10、及び、パレット2を外観検査装置200へ移送するパレット移送機構30を有している。また、ピッキングロボット100は、ステレオカメラ40、及び、ステレオカメラ40の撮像領域に向けて撮像用の光を照射する投射装置50を有している。なお、本実施形態では、3次元データ(距離画像)を取得可能なセンサとしてステレオカメラ40を利用しているが、位相シフト法等の他の方法を利用するセンサでも良い。また、本実施形態における「画像」の語は、必ずしも伴うものではなく、画素又は画素群単位で情報を有する情報群をいうものとする。
マニピュレータ装置10は、鉛直方向に平行な回転軸回りに回転する第一関節部11上に、水平方向に平行な回転軸回りに回転する第二関節部12が取り付けられている。第二関節部12には第一アーム部13の一端が取り付けられており、第一関節部12が駆動すると、第一アーム部13が第二関節部12の回転軸回りに回転する。第一アーム部13の他端には、第二関節部12の回転軸に平行な回転軸回りに回転する第三関節部14が取り付けられている。第三関節部14には、第二アーム部16を第二アーム部16の長手方向に平行な回転軸回りに回転させる第四関節部15が取り付けられている。
第四関節部15には第二アーム部16の一端が取り付けられている。第三関節部14が駆動すると、第四関節部15に取り付けられた第二アーム部16が第三関節部14の回転軸回りに回転する。また、第四関節部15が駆動すると、第二アーム部16が第四関節部15の回転軸回りに回転する。第二アーム部16の他端には、第二アーム部16の長手方向に対して直交する方向に平行な回転軸回りに回転する第五関節部17が取り付けられている。この第五関節部17には保持部としてのハンド部20が取り付けられている。第五関節部17が駆動すると、ハンド部20が第五関節部17の回転軸回りに回転する。
(ハンド部の構成)
図4は、ハンド部20をワーク吸着部側から見た斜視図である。図5は、ワークWを保持した状態のハンド部20の斜視図である。ハンド部20は、ワークWをワーク吸着部21にエア吸引により吸着して保持する。なお、ワークWを保持できる構成であれば、磁気力等によりワークWを吸着する構成、把持部でワークWを把持する構成など、あらゆる保持の構成を採用することができる。
ハンド部20は、エア吸着用の吸引孔22が開口したワーク吸着面を有するワーク吸着部21を備えている。ワーク吸着部21の内部には、図7に示すワーク吸着用ポンプ24に接続される接続口21bと各吸引孔22とを連通させるエア吸引通路が形成されている。ハンド部20は、ワーク吸着用ポンプ24を駆動して吸引孔22に吸い込み気流を生じさせることにより、ワークWをワーク吸着部21のワーク吸着面に吸着させてピックアップする。また、ワークWをリリースする際は、ワーク吸着用ポンプ24を停止する。これにより、ワーク吸着面からワークWをリリースすることができる。
また、ハンド部20のワーク吸着面に対するワークWの保持位置は、次のようにして位置決めされる。まず、ハンド部20でワークWをピックアップする際、ワークWの側面をワーク吸着面上の規制壁23に当接させるようにピックアップして保持する。これにより、規制壁23の壁面法線方向におけるワークWの保持位置が位置決めされる。また、ワークWを保持した後、ハンド部20に設けられているワーク保持位置調整装置25を駆動して、ワーク吸着面上のワークWを挟持アーム25a,25bにより挟み込む。これにより、規制壁23の壁面平行方向におけるワークWの保持位置が、ワーク吸着面の中央位置に位置決め(センタリング)される。
なお、後述するが、第1の実施の形態の部品検査システムの場合、後述するように山積みトレイ1からワークWをピックアップする際に、そのワークWの位置及び姿勢等を高精度に検出可能となっている。このため、ワークWをピックアップする時点で位置決めを完了させることができる。従って、ハンド部20に対するワークWの保持位置を調整する調整部材(規制壁23、ワーク保持位置調整装置25等)は、省略してもよい。
また、ハンド部20には、ワーク吸着部21をハンド部20上の回転軸21aの回りで回転させるハンド回転機構26が設けられている。ハンド回転機構26を駆動させることにより、ハンド部20に保持されているワークWの姿勢を、図6(a)に示すピッキング姿勢から、図6(b)に示す受け渡し姿勢へと変化させることができる。ここでいうピッキング姿勢とは、マニピュレータ装置10が各関節部11,12,14,15,17を駆動して、ハンド部20のワーク吸着部21でワークWをピックアップして保持するための姿勢である。また、受け渡し姿勢とは、各関節部11,12,14,15,17の駆動によりパレット2の対応箇所へワークWをセットする(受け渡す)位置にハンド部20を移動させたときにワーク吸着部21に保持されたワークWの向きが所定の向きとなる姿勢である。
また、マニピュレータ装置10は、各関節部11,12,14,15,17を駆動することにより、ハンド回転機構26を用いることなく、ハンド部20に保持されているワークWの姿勢を、図6(a)に示すピッキング姿勢から図6(b)に示す受け渡し姿勢へと変化させることが可能となっている。後述するが、このようなワークWの姿勢変化は、マニピュレータ装置10の周囲に存在する物体との干渉を回避するための演算を行い、この演算結果に基づいて、各関節部11,12,14,15,17を駆動することで実現される。
(ピッキングロボットの回路構成)
図7は、ピッキングロボット100の主要部のブロック図である。ピッキングロボット100は、各関節部11,12,14,15,17をそれぞれ駆動する関節駆動装置501〜505、ワーク吸着用ポンプ24、ワーク保持位置調整装置25、ハンド回転機構26、パレット移送機構30、ステレオカメラ40、及び、投射装置50等を制御するロボット制御部500を備えている。
ロボット制御部500は、CPU等の演算処理部と、演算処理部で用いるデータ等を一時的に保持するRAM等の一時記憶部等を有している。ロボット制御部500は、部品検査システム全体を上位で制御しているシステム制御部600からの制御命令を受けて、各種制御を実行する。ロボット制御部500の演算処理部で実行される各種プログラムは、記憶部506に記憶されている。具体的には、記憶部506には、ピッキングロボット100におけるマニピュレータ装置10、ステレオカメラ40、投射装置50等を制御するマニピュレータ制御プログラムが記憶されている。また、記憶部506には、干渉判定プログラム(情報処理プログラムの一例)が記憶されている。後述するが、ロボット制御部500は、記憶部506に記憶された干渉判定プログラムを実行することで、マニピュレータ装置10と周囲の干渉対象物との干渉の有無を判定して干渉領域を設定し、この干渉領域に基づいて、周囲の干渉対象物と干渉しないように、マニピュレータ装置10を駆動制御する。
ピッキングロボット100の内部に形成されている処理空間の上部には、ステレオカメラ40と投射装置50が設けられている。投射装置50は、処理空間内の下部に配置されている山積みトレイ1へ上方から撮像用の光を照射する。ステレオカメラ40は、山積みトレイ1上のワークW及び一時載置トレイ4上のワークWを上方から撮像する。
図8は、ステレオカメラ40の撮像領域を示す図である。ステレオカメラ40は、少なくとも、基準画像を撮像する基準カメラ40Aと比較画像を撮像する比較カメラ40Bの2つのカメラ(撮像部)により、山積みトレイ1上の複数のワークWを、異なる複数の地点から撮像して、基準画像と比較画像を得る。そして、基準画像と比較画像との視差情報から、三角測量の原理に基づき、山積みトレイ1に山積みされた複数のワークWの表面上の各地点までの距離を導出し、その距離(視差値)に応じた画素値をもつ視差画像(距離画像)の情報(三次元情報)を生成する。ステレオカメラ40で得られる視差画像情報から、山積みトレイ1の上方から視認できるいくつかのワークWの三次元形状データを取得することができる。
図9は、ステレオカメラ40による距離の測定原理を説明する図である。ステレオカメラ40の基準カメラ40Aと比較カメラ40Bは、それぞれ、画像センサ41A,41B及びレンズ42A,42Bをそれぞれ備えている。基準カメラ40Aで撮像された基準画像と比較カメラ40Bで撮像された比較画像には、撮像対象物であるワークW上の同一地点Woが、各カメラ40A,40Bの画像センサ41A,41B上の異なる位置に結像される。画像センサ41A,41B上での結像位置の差(視差)を「d」とし、これらのカメラ40A,40B間の距離を「B」とし、各カメラ40A,40Bの焦点距離を「f」としたとき、画像センサ41A,41Bのセンサ面から測定地点Woまでの距離「Z」は、「Z=(B×f)/d」の演算式に基づいて算出できる。Bとfは予め決まっているため、基準画像と比較画像から視差dを算出することにより、ワークW上の各地点までの距離を算出することができる。
(干渉判定動作の概要)
次に、このような第1の実施の形態の部品検査システムにおける干渉判定動作の概要を説明する。上述のように、第1の実施の形態の部品検査システムは、山積みトレイ1上にバラ積みされた複数のワークWを、ハンド部20のワーク吸着部21でエア吸引することで吸着させてピッキングする。この場合、バラ積みされた複数のワークWの位置及び姿勢は、図10に示すようにランダムとなる。このため、ワークWをピッキングする際、ワークWの位置及び姿勢に応じたマニピュレータ装置10等を移動制御及び回転制御、場合によっては傾き制御が必要となる。しかし、このような移動制御等の際に、マニピュレータ装置10が山積みトレイ1、他のワークW又は周辺機器と干渉するおそれがある。第1の実施の形態の部品検査システムは、以下のようにして、マニピュレータ装置10の干渉を防止するようになっている。
まず、第1の実施の形態の部品検査システムは、例えばピッキングロボット100の内部であるワークスペースを、ステレオカメラ40で撮像することで得た3次元画像(3D画像)に基づいて、マニピュレータ装置10の干渉判定を行う。
「干渉判定」は、物理的な位置及び形状が分からない対象物(未知の対象物)の3D画像を用いて行う。このため、既知の対象物及び未知の対象物の両方が写っている3D画像から、既知の対象物を取り除くために、既知の対象物のみが映っている「背景」の3D画像をステレオカメラ40で撮像する。図11に示す3D画像が、「背景」の3D画像の一例である。これに対して、図12は、既知の対象物及び未知の対象物の両方が写っている3D画像の一例である。この図12の例の3D画像の場合、背景と共に、3つのワークWが写っている。なお、ここでいう「背景」は、ワークWが収容されているコンテナ等である。
このような既知の対象物(背景)及び未知の対象物(ワークW)の両方が写っている3D画像から図11に示した背景の3D画像を除去する。図13は、背景及びワークWの両方が写っている3D画像から背景の3D画像を除去することで得られた、ワークWの3D画像である。ロボット制御部500は、このように背景を除去した3D画像に基づいて「干渉判定」を行う。背景及びワークWの両方が写っている3D画像には、多少のノイズが含まれているが、この両方が写っている3D画像から背景の画像(背景に相当する画像)を除去することで、背景の画像と共に多くのノイズも除去することができる。従って、ノイズの少ない3D画像で、より正確な「干渉判定」を可能とすることができる。
もう少し詳しく説明すると、ロボット制御部500は、「干渉判定」において、ランダムに載置されたワークWの3D画像と、背景の3D画像との差異を検出する。両者の差異は、ステレオカメラ40のノイズ、及び、ワークWの有無である。このため、ロボット制御部500は、背景及びワークWの両方が写っている3D画像からノイズを除去してワークWを検出する。なお、背景及びその他の干渉の判定に不要な画像は、その画像上の位置が既知であれば、当該既知の位置を干渉判定において非対象とすることを示すマスク画像を予め登録しておくこともできる。このマスク画像を利用することで干渉判定に不要な画像を簡単に除去することができる。
ノイズ除去の方法は何でもよいが、例えば以下の方法が利用できる。すなわち、ロボット制御部500は、背景を除去した後、3D画像のサーフェス法線ベクトル(Surface Normal Vector)を算出し、同様のサーフェス法線ベクトルが繋がって形成される面の大きさを算出する。この面の大きさが所定の閾値以上である場合、ロボット制御部500は、その面を対象物と判別する。図13に示すワークWの白抜きとして図示されている面は、対象物として判別された面を示している。なお、この図13は、背景及びワークWの両方が写っている3D画像から背景の3D画像を除去することで得られた、ワークWの3D画像である。この図13の3D画像において、ワークW以外の背景部分は、除去された領域を示している。これに対して、同様のサーフェス法線ベクトルが繋がって形成される面の大きさが所定の閾値未満であった場合、ロボット制御部500は、その面をノイズと見なして除去する。
次に、ロボット制御部500は、ピッキング姿勢のハンド部20のワーク吸着部21を、背景の3D画像を除去したワークWの3D画像に投影する。具体的には、ロボット制御部500は、まず、背景の3D画像(及びノイズ)を除去したワークWの3D画像において、ピッキング対象となっているワークWをピッキングする際に必要となるハンド部20の姿勢を算出(特定)する。ワークWは、背景を除去した3D画像から認識できるため、例えば、認識されたワークWの一定以上の面積を有する面を抽出し、この面を吸着するようなハンド部20の姿勢(ワーク吸着部21の中心座標と向き等)を算出すれば良い。そして、一例ではあるが、この第1の実施の形態の部品検査システムの場合、ハンド部20の3次元形状を示す情報は、3次元CAD(Computer Aided Design)データで入力されている。このため、ロボット制御部500は、ワークWをピッキングする姿勢に基づき、ハンド部20のワーク吸着部21の3次元CAD(Computer Aided Design)データを、所定の変換関数(投影関数)を用いて3D画像データに変換処理する。そして、ロボット制御部500は、この変換処理により生成したワーク吸着部21の3D画像を、例えば図14に示すようにワークWの3D画像に重畳(合成)して出力する。なお、この図14の例は、ワーク吸着部21でワークWを吸着した状態の3D画像を示している。なお、ピッキングの姿勢は、1つに限らず、複数特定できる場合は複数の候補姿勢を算出することができる。これにより、後の干渉判定の結果等を考慮して、ピッキングに用いる最適な姿勢を複数の候補姿勢から選択することができる。
ここで、所定の投影関数を用いて3次元CADデータを3D画像データに変換処理することで、ハンド部20のワーク吸着部21の距離情報を得ることができる。ロボット制御部500は、ハンド部20のワーク吸着部21の距離情報と、対象物の距離情報とを比較することで、ハンド部20のワーク吸着部21が対象物と干渉するか否かを判定する干渉判定を行う。図15は、ハンド部20のワーク吸着部21とワークWとが、斜線部分で干渉を生ずることを示している。ロボット制御部500は、このような干渉の有無を、ハンド部20のワーク吸着部21の距離情報と、対象物の距離情報とを比較することで判定する。
具体的には、描画対象となるハンド部20のワーク吸着部21のCADデータモデルの面データを、変換関数Tを用いて距離画像に変換して3D画像に投影する。この際、投影した面の距離と対象物となる3D画像の距離とを比較する処理を、投影した面の画素毎(もしくは画素群毎)に行う。そして、投影した面の距離が対象物となる3D画像の距離よりも近い画素を残すように(ステレオカメラ40側の画素を残すように)描画処理を行う。このような描画処理は、面のノーマルベクトルがステレオカメラ40に向いているか否かを判別することで、反対側の面の描画処理を省略する手法である、「バックフェース カリング(Backface Culling)手法」を用いることができる。これにより、図16に斜線で示すように、最終的に、ハンド部20のワーク吸着部21の、ステレオカメラ40(センサ側)に近い面の3D画像を描画できる。そして、ワーク吸着部21を構成する画素とワークWの画素の重なり状態を判定することで、干渉しているか否かの判定を行う。
以上の例は、ステレオカメラ40に近い面の画素を残すかたちで描画処理した3D画像に基づいて干渉判定を行う例であったが、ステレオカメラ40に近い面以外の面の3D画像に基づいて干渉判定を行ってもよい。以下に説明する例は、ステレオカメラ40から遠い面の画素を残すかたちで描画処理した3D画像に基づいて干渉判定を行う例である。この場合、第1の実施の形態の部品検査システムは、ロボット制御部500が、ワーク吸着部21を3D画像(元画像)に描画処理する場合、図17に斜線で示すように、ステレオカメラ40から遠い面の画素を残すように描画処理を行う。ステレオカメラ40から遠い面の画素を描画することにより、干渉が生じやすい面の情報を用いて干渉判定ができるので、より正確な干渉判定を行うことができる。
具体的には、ロボット制御部500は、ワーク吸着部21のCADデータを所定の変換関数Tを用いて距離画像に変換する。また、ロボット制御部500は、ワーク吸着部21の距離画像を元画像に描画する際に、二次元的に同じ位置の画素は、奥行方向の値(距離)が大きな値の画素で上書きするように、ワーク吸着部21の距離画像を元画像に描画する。すなわち、ロボット制御部500は、ワーク吸着部21の距離画像を元画像に描画する際に、x軸及びy軸の値が同じ値の画素である二次元的に同じ位置の画素は、奥行方向であるz軸の値(距離)が大きな値の画素で上書きするように、ワーク吸着部21の距離画像を元画像に描画する。これにより、最終的に、ワーク吸着部21のステレオカメラ40から遠い面である、ワーク吸着部21の奥行方向の値が大きい面の画素を残すかたちで、元画像にワーク吸着部21の距離画像を描画できる。
このような描画手法としては、面のノーマルベクトルがステレオカメラ40に向いているか否かを判別することで、前面側の面の描画処理を省略する手法である、「フロントフェース カリング(Frontface Culling)手法」を用いることができる。これにより、図17に示すように、ワーク吸着部21のステレオカメラ40から遠い面側と干渉物との干渉を検出でき、両者の干渉を示す干渉判定を行うことができる。
また、ロボット制御部500は、画素毎に干渉の有無を判定するが、「干渉有り」との判定を行った時点で、残りの画素に対する干渉判定処理を中止する構成としてもよい。これにより、最後の画素まで干渉判定処理を行わずとも、干渉している画素を検出した時点で、残りの画素に対する干渉判定処理を打ち切ることができるため、干渉判定結果を短時間で得ることを可能とすることができる。
このような干渉判定処理の流れをまとめると、以下のようになる。
1.変換関数Tやワーク吸着部21のCADデータ等の各パラメータを設定する。この際、マスク画像が存在すれば登録しておく。
2.背景となる距離画像(及び例えば輝度画像又は色画像等の追加情報)を撮像し、背景登録を行う。このとき、距離画像はステレオカメラ40の撮像画像から生成される。また、輝度画像や色画像を用いる場合は、取得する画像が少なくて済むため、ステレオカメラ40の2つのカメラの一方の画像を用いるのが好ましい。
3.背景及びワークWを含む距離画像(及び例えば輝度画像又は色画像等の追加情報)を撮像する。
4.対象物検出対象データを算出する。具体的には、距離画像(及び例えば輝度画像又は色画像等の追加情報)を利用して、対象画像から背景を削除する。マスク画像が存在する場合、マスク画像で非対象となっている部分を削除する。
5.検出対象から対象物を認識する。これは、例えば3D画像のサーフェス法線ベクトル(Surface Normal Vector)を算出し、同様のサーフェス法線ベクトルが繋がって形成される面の大きさが閾値以上の場合に、その面を「対象物」と判別して抽出する。同様のサーフェス法線ベクトルが繋がって形成される面の大きさが閾値未満の場合は、その面を「ノイズ」と判別して除去する。抽出した結果から対象物を認識する。
6.ハンド部20のワーク吸着部21のピッキング候補姿勢毎に、ハンド部20のワーク吸着部21の所定の面を3D画像(距離画像)に描画する。所定の面は、ワーク吸着部21のステレオカメラ40から近い面又は遠い面等である。
7.ハンド部20のワーク吸着部21のステレオカメラ40から遠い面等を描画した結果に基づいて、干渉の有無の判定を行う。このとき、例えば認識された「対象物」より遠い描画画素の存在を検出した時点で「干渉有り」の干渉判定を行うことができる。
(干渉判定動作の詳細)
次に、このような干渉判定動作を、さらに詳細に説明する。
(ロボット制御部の機能)
図18は、図7に示すロボット制御部500が記憶部506に記憶されている干渉判定プログラムを実行することで実現される各機能の機能ブロック図である。この図18に示すように、ロボット制御部500は、干渉判定プログラムを実行することで、受付部601、認識部602、特定部603、変換部604、及び、出力部605の各機能を実現する。
なお、この例では、図18に示した受付部601〜出力部605の各機能は、ソフトウェアで実現することとしたが、各機能のうち、一部又は全部を、IC(Integrated Circuit)等のハードウェアで実現してもよい。
また、各機能を実現するプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)等のコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、CD−R、DVD(Digital Versatile Disk)、ブルーレイディスク(登録商標)、半導体メモリ等のコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、プログラムは、インターネット等のネットワーク経由でインストールするかたちで提供してもよい。また、プログラムは、携帯端末内のROM等に予め組み込んで提供してもよい。
受付部601は、ステレオカメラ40等のセンサからの計測データ(3D画像)を受け付ける。認識部602は、3D画像に基づいて、ワークW等の認証対象物を認識する。特定部603は、記憶部506に記憶された種々のデータを用い、ワーク吸着部21がワークWに関与する際(ピックアップ時)におけるハンド部20及びワーク吸着部21等の姿勢(及び移動方向)を特定する。変換部604は、記憶部506に記憶された種々のデータを用い、特定部603により特定されたハンド部20及びワーク吸着部21等の姿勢にあわせて、ハンド部20及びワーク吸着部21等の所定の面(ステレオカメラ40から遠い面等)のCADデータを3D画像データに変換して、ワークW等の3D画像上に描画処理する。出力部605は、3D画像上において、ハンド部20及びワーク吸着部21等の所定の面の3D画像データと、ワーク等の対象物の3D画像データとを比較することで、干渉の有無を判定し、この判定結果(評価結果)を出力する。
(干渉判定動作)
図19は、ロボット制御部500における干渉判定動作の流れを示すフローチャートである。まず、ステップS1では、受付部601で、ステレオカメラ40により撮像された3D画像(距離画像)を受け付ける。図20は、ステップS1で受け付けた距離画像の一例を示している。この図20は、ステレオカメラ40側から見た図であり、3つのワークWが写っている。距離画像は、各画素又は複数の画素毎に、それぞれステレオカメラ40からの距離を示す距離情報を有している。このため、各物体(例えば、コンテナ、ワークW及び対象物等)の表面に相当する画素を線状に繋げることで、図21に示すように、各物体の表面とステレオカメラ40との間の距離(Z軸方向の値)を示す距離値を得ることができる。
次に、ステップS2において、認識部602が、距離画像中のワークWを認識し、例えば「ワークの中心座標(x,y,z)」及び「 ワークの向き(rx, ry, rz)」を示す認識結果を生成する。
次に、ステップS3において、特定部603が、認識部602で生成されたワークWの認識結果に基づいて、例えば「ワーク吸着部21の中心座標(x,y,z)」及び「ワーク吸着部21の向き(rx, ry, rz)」を、ワーク吸着部21の姿勢(ハンド姿勢)として特定する。
次に、ステップS4において、変換部604が、特定部603により特定されたハンド姿勢に対応するワーク吸着部21のCADデータを、所定の変換関数Tを用いて距離画像(x,y,z)に変換し、図14等に示したようにステップS1で受け付けた距離画像に重畳(合成)して描画する。この際、変換部604は、ワーク吸着部21の各面のうち、図17を用いて説明したようにステレオカメラ40(センサ)から遠い面を描画する。
次に、ステップS5において、出力部605が、図21に示した対象物の表面の各画素の距離値(Z軸方向の値)を基準値0とし、この基準値0よりも、ワーク吸着部21のステレオカメラ40(センサ)から遠い面が遠い位置にあるか又は近い位置にあるかを判別することで、対象物にワーク吸着部21が干渉しているか否かを判別する。すなわち、出力部605は、ワーク吸着部21のステレオカメラ40(センサ)から遠い面が、対象物の表面よりも、Z軸方向に沿って奥行側(ステレオカメラ40から見て反対側)に存在するか又は手前側(ステレオカメラ40の方向)に存在するかを判別することで、対象物にワーク吸着部21が干渉しているか否かを判別する。
出力部605は、ワーク吸着部21のステレオカメラ40(センサ)から遠い面の位置が、対象物の表面と同じ位置、又は、対象物の表面よりも、ステレオカメラ40から見て奥側であった場合に、ワーク吸着部21と対象物が干渉していると判定する。すなわち、出力部605は、ワーク吸着部21のステレオカメラ40(センサ)から遠い面の情報と、対象物の情報から、ワーク吸着部21と対象物のいずれがステレオカメラ40から遠いかを評価する。
出力部605は、画素毎に順次、このような干渉判定を行う。出力部605は、ワーク吸着部21と対象物が干渉していることを示す画素を検出した時点で、干渉判定動作を中止して、残りの画素に対する干渉判定は行わない。
なお、出力部605は、ワーク吸着部21のステレオカメラ40(センサ)から遠い面の距離値と、上述の基準値0との差を統計処理して干渉の判定を行ってもよい。例えば、上述の基準値0よりも奥側(ステレオカメラ40の反対側)に位置することとなる画素が所定数以上の場合に、「干渉有り」との判定を行うようにしてもよい。これにより、ノイズによってたまたま干渉している判定される画素が発生した場合であっても、誤った判定を行わずに済むという効果を奏する。
また、ワーク吸着部21等の形状は、実物と一致させなくてもよい。例えば、マージンを持たせるように、実物より数ミリメートル程度大きめの形状として干渉判定に用いてもよい。また、ワークWを把持するグリッパ(ツメ)が設けられている場合、グリッパの形状を太くして干渉判定に用いてもよい。また、ワーク吸着部21の吸着面が、ピッキングするワークWと干渉判定されないように、ワーク吸着部21の先端部を例えば数ミリメートル程度削った形状として干渉判定に用いてもよい。さらに、ピッキング位置におけるワーク吸着部21の形状と共に、ピッキング位置までのワーク吸着部21の移動経路及びピッキング後におけるワーク吸着部21の移動経路(退路)等の空間をも含めた形状で干渉判定を行ってもよい。
(第1の実施の形態の効果)
以上の説明から明らかなように、第1の実施の形態の部品検査システムは、ステレオカメラ40によりピッキング対象となるワークWがバラ積みされたコンテナを撮像し、各画素が距離値を有する距離画像を得る。また、距離画像に基づいて、対象物の表面の各画素の距離値(Z軸方向の値)を基準値0に設定する。また、ワークWをピッキングするワーク吸着部21の形状を示すCADデータを取得し、変換関数Tを用いてCADデータを距離画像データに変換し、ワーク吸着部21のステレオカメラ40(センサ)から遠い面を、ステレオカメラ40により撮像された上述の距離画像に重畳させて描画する。そして、ワーク吸着部21のステレオカメラ40(センサ)から遠い面が、対象物の基準値0よりも遠い位置にあるか又は近い位置にあるかを判別することで、対象物にワーク吸着部21が干渉するか否かを判定する。
これにより、事前に対象物の形状等を登録せずとも、例えばバラ積みされたワークWのように、その都度、位置が異なる対象物にも対応して干渉の有無を正確に判定することができる。また、ワーク吸着部21のステレオカメラ40(センサ)から遠い面を、ステレオカメラ40により撮像された上述の距離画像に重畳させて描画する。このため、干渉判定用に用いる距離画像の生成時間を大幅に短縮化でき、ひいては干渉判定処理の高速化を図ることができる。従って、対象物に干渉しない安全なピッキング軌道を高速に判定して、マニピュレータ装置10を駆動することができる。
また、干渉判定を高速に行うことができるため、ワークWのピッキングが完了するまでに要する時間を短縮化できる。または、例えばステレオカメラ40の撮像画像に基づいて行う対象物の認識処理を、より長い時間をかけて実行することができ、認識率の高い認識結果に基づいて干渉判定を行うことで、より精度の高い干渉判定を行うことができる。
また、従来、アームが干渉領域内に移動する際に、干渉判定し、アームを停止制御するが、第1の実施の形態の部品検査システムは、アームの移動前に干渉判定できるため、干渉が生ずる移動経路は、マニピュレータ装置10の移動経路に用いない。このため、マニピュレータ装置10の停止制御によるタイムロスの発生を防止できる。
(第1の実施の形態の変形例)
例えば、所定の大きさのコンテナに、少ない隙間でワークWを詰める場合、第1の実施の形態で説明した干渉判定処理を行う。すなわち、上述の第1の実施形態において、ハンド部20のワーク吸着部21のCADデータを描画した代わりに、載置対象となるワークWのCADデータを用いる。さらに、第1の実施形態において特定したワーク吸着部21の姿勢の代わりに、載置対象のワークWの載置姿勢を特定する。これにより、干渉すること無く載置可能なワークWのプレース位置を選択してワークWを載置できる。また、特定する載置姿勢を複数とし、それら載置姿勢の候補の各々について、既に載置されたワークWとの差異(空間、距離)を評価すれば、差異の統計データにより、隙間の大きさを定量化できる。
(第2の実施の形態)
次に、第2の実施の形態の部品検査システムの説明をする。上述の第1の実施の形態は、ワークW等の対象物とマニピュレータ装置10のワーク吸着部21との干渉の有無を判定する例であった。これに対して、以下に説明する第2の実施の形態は、ワークWをピッキングする際に、ピッキング動作対象として選択された1個のワークWと、他のワークW等との干渉が生じるかを判定する例である。コンテナ内に、ランダムに載置された複数のワークW以外の物体が無ければ、ピッキング対象のワークWと他のワークWとの重なりを判定する例とも言える。なお、上述の第1の実施の形態と以下に説明する第2の実施の形態とでは、この点のみが異なる。このため、以下、両者の差異の説明のみ行い、重複説明は省略する。
図22のフローチャートに、第2の実施の形態の部品検査システムにおけるワークWの重なり判定処理の流れを示す。この図22のフローチャートのステップS11及びステップS12の処理は、図19のフローチャートのステップS1及びステップS2の各処理に相当する。すなわち、ステレオカメラ40で撮像された距離画像に基づいて、コンテナにバラ積みされた各ワークを認識すると、処理がステップS13に進む。
ステップS13では、図18に示す特定部603が、認識されたワークの姿勢に応じた取り出し方向(ピッキングする方向)を特定する。ステップS14では、変換部604が、ワークWのCADデータのステレオカメラ40で撮像可能な部分(視認可能な部分)を、ステップS13で特定した取り出し方向に沿って拡張した形状モデルを生成する。
すなわち、図24(a)は、ステレオカメラ40で撮像されたワークWの距離画像である。これに対して、図24(b)は、ステップS12で認識されたワークWの姿勢に対応する、ワークWのCADデータのうち、ステレオカメラ40側から見て、視認可能な部分の形状を示している(実際は一部が遮蔽されている場合がある)。また、図24(b)に示す点線の矢印は、ステップS13で特定された、ワークWの姿勢に応じた取り出し方向を示している。このような状態において、変換部604は、ステップS14において、図24(c)に示すようにワークWのCADデータの視認可能な部分(即ち、表面)を、ステップS13で特定した取り出し方向に沿って所定分移動することで、ステップS13で特定した取り出し方向に沿ってワークWの表面形状を拡張した拡張モデルを生成する。
次に、ステップS14において、変換部604は、例えば図23に示すように、表面形状を拡張した拡張モデルにおける、ステレオカメラ40(センサ)から遠い面を、ステップS1で取得した距離画像上に描画処理する。この図23の例は、4つのワークW1〜W4がコンテナ内にランダムに配置されており、このうち、ワークW3の上に、図23中斜線で示すワークW4が重なっている例である。また、変換部604は、拡張モデルを描画処理する際に、図24(d)に示すように、重なっているワークWから取り出し方向に若干ずらして描画処理する。
出力部605は、ステップS15において、描画処理した拡張モデルの各画素とステレオカメラ40で撮像された距離画像とを照合して、ステレオカメラ40から見て奥側に存在するか又は手前側に存在するかを判別することで、重なり判定(取り出した場合の干渉判定)を行う。
(第2の実施の形態の効果)
以上の説明から明らかなように、第2の実施の形態の部品検査システムは、認識されたワークWの「見えるはず」の表面を、ワークWのCADデータから計算し、その表面を「取り出し方向」に拡張した拡張モデルを作成する。そして、この拡張モデルを、ステレオカメラ40から得られた距離画像上に描画処理し、距離画像のワークWの画素に対して、拡張モデルの画素が、ステレオカメラ40から見て奥側に位置するか又は手前側に位置するかを判別する。これにより、各ワークの重なり判定を行うことができる。
そして、これにより、ロボット制御部500が次のピッキング対象を特定する際に、重なりのあるワークWの優先度を低く、重なりの無いワークWの優先度を高く設定する事が出来る、すなわち重なりの無いワークWを優先的にピッキングする事が出来る。重なりのあるワークWは、把持(例えば吸着)して移動される途中に、その上に重なっているワークWとの干渉によって落下したり、傷が付いたりする事があるが、本実施形態の部品検査システムにおける干渉判定によれば、ピッキング動作の成功率を高め、ピッキングシステムの1個のワークWあたりの平均タクトの高速化を実現することが出来る。
なお、この例では、演算により拡張モデルを生成することとしたが、ワークWのCADモデルに対するピッキングポイント及び取り出し方向が決まっている場合、事前に拡張モデルを作成して用いてもよい。すなわち、予め定められた情報をもとに拡張モデルを作成することとなる。
(第2の実施の形態の第1の変形例)
認識された姿勢でワークWを距離画像に描画する際に、ステレオカメラ40に向いている面(近い面)だけを描画処理する。このとき、実際は一部が遮蔽されていたとしてもワーク全体が認識され得るため、ステレオカメラ40に近い面全域を描画処理できる。この描画処理したワークWの距離画像の距離情報の最小値を用いて、距離センサデータとの比較統計データに「形状距離値(描画したワークW等の描画対象の距離値)がセンサ距離値(他のワークW等の対象物を含むセンサから取得された距離値)より遠い」ことを示すデータを検出した場合に、「他の対象物と重なり有り」との判定を行う。これ以外の場合は、「重なり無し」との判定を行う。なお、比較統計データとは、計測データ(センサから取得されるデータ)と描画データ(記憶部に記憶されたCADデータ等の形状データ)との比較結果を集計したものをいい、例えば、計測データの距離値と描画データの距離値との差分を閾値と比較し、閾値以下となる値の個数を累積したものをいう。
このような変形例における重なり判定処理の流れは、以下のようになる。まず、ワークWの形状データを、必要に応じて近似又は簡易化する。次に、ワークWがバラ積み状態で入っているコンテナの計測データに基づいて、コンテナ及びワークWの表面を検出し、コンテナ及びワークWの表面で無い計測データ(即ちノイズ)を除去する。例えば、コンテナ及びワークWの表面だけを処理対象とすべく、マーキング処理を行うことができる。ここでいうマーキング処理は、処理対象となる画素に処理対象とするためのフラグを立てる処理をいう。
次に、認識されたワークWのCADデータの描画処理において、ステレオカメラ40に向いているワークWの面だけを処理する(近い面だけを処理)。次に、各描画画素において、描画画素の値マイナス計測距離画像の画素の値を算出して集計し、例えば「0」等の閾値以上の値の個数が所定数以上となった時点で、「重なり有り」との判定結果を出力する。なお、これ以外の場合は、「重なり無し」との判定結果を出力する。
この変形例の場合、ワークWの取り出し方向を考慮しなくてもよい。すなわち、ステレオカメラ40から見た状態で遮蔽されているワークWが存在するか否かのみの判定になるため、ロボット制御部500の演算負荷を軽減できる。
(第2の実施の形態の第2の変形例)
上述の比較統計データを評価値として用いることで、種々の評価を行うことができる。
例えば、距離センサの計測データと変換関数Tが正確である場合、上述の比較統計データに基づいて、理想的なワークWの形状と実際に計測されたワークWの形状の差分を定量化ができる。すなわち、ワークWの理想形に対する差異を認識可能とすることができる。これにより、例えば生産工程において、ワークWの変形、組み付けミス、部分的な欠陥等の検出が可能である。同様にコンテナに対して詰め込まれたワークWの変形、詰め込みミスによる誤差、部分的な欠陥及び欠品等に基づいて、コンテナの搬入の可否等を判定できる。なお、比較統計データによらずとも、計測データと描画データの差異(差分等)を算出し、これを評価値として出力してもよい。
(第2の実施の形態の第3の変形例)
距離センサのデータが正確で、形状モデルとして実部品の正確なモデルを使用することを前提とし、センサーデータスペース(計測データ)と形状データスペース(描画データ)の間の変換関数Tの精度を定量化できる。ここで、変換関数Tには、ワークWの位置及び角度を示す姿勢データが含まれている。この姿勢データが実部品の姿勢と異なる場合、その誤差が上述の比較統計データに現れる。すなわち、比較統計データにおいて、0以外の値が多くなる(すなわち、差違が大きくなる)。このため、変換関数Tに含まれている姿勢データの信頼度を定量化できる。
一方、例えば非線形的な最適化アルゴリズムを用いれば、比較統計データの値が0に近くなるように、変換関数Tを調整することで、姿勢パラメータを最適化することができる。これにより、姿勢データを調整することで変換関数Tを調整し、描画された形状データ等を計測データと一致させることで、姿勢データの精度を高めることができる。すなわち、姿勢データを最適化することができる。
(第2の実施の形態の第4の変形例)
距離センサの性能を評価するために、撮像環境と適切な対象物が用意されているとする。変換関数Tと対象物の形状モデルが正確である場合、上述の比較統計データから「計測データに重畳しているノイズの重畳量」及び「統計的にどの方向にずれているか(システマティック誤差検出)」等の解析を行うことができる。距離センサが調整可能なパラメータを有する場合、このような解析結果に基づいて、「パラメータ調整→計測→解析」の各処理を繰り返し実行することで、最適な距離センサパラメータを自動的に算出することができる。これにより、部品検査システムにおける計測精度の手動調整又は自動調整を可能とすることができる。
(第3の実施の形態)
次に、第3の実施の形態の部品検査システムの説明をする。ワークWのステレオカメラ40に向いている面(近い面)の距離値と、ステレオカメラ40に向いている面に対向する面(遠い面)の距離値を用いれば、マニピュレータ装置10の干渉領域の体積(干渉体積)の近似値を算出できる。第3の実施の形態の部品検査システムでは、ワークWの姿勢をずらしながら干渉体積を算出し、各干渉体積の変化量を検出することで、マニピュレータ装置10の移動経路を修正すべき方向(ワークWとの干渉を回避可能な方向)を算出する。そして、修正した移動経路に従ってマニピュレータ装置10を移動制御する。
これにより、例えば非線形的な最適化アルゴリズムとの組み合わせで、自動的にマニピュレータ装置10の「干渉無し」の姿勢を算出して移動制御できる。なお、上述の各実施の形態と以下に説明する第3の実施の形態とでは、この点のみが異なる。このため、以下、両者の差異の説明のみ行い、重複説明は省略する。
図25のフローチャートに、第3の実施の形態の部品検査システムにおけるマニピュレータ装置10の移動経路の修正動作の流れを示す。まず、ステップS21において、ステレオカメラ40で撮像されたワークW及びコンテナの距離画像(計測データ)を取得し、ステップS22において、この距離画像に基づいてワークWを認識する。
次に、ステップS23において、図18に示す特定部603が、認識されたワークWの姿勢に対応するマニピュレータ装置10(ハンド)の姿勢を暫定的に特定する。ステップS24では、変換部604が、暫定的に特定したマニピュレータ装置10の姿勢に基づいて、図26に示すようにマニピュレータ装置10のステレオカメラ40に近い面、及び、ステレオカメラ40に近い面に対向する面(ステレオカメラ40から遠い面C)を、ステップS1で取得した距離画像上に描画処理する。図26の例は、細線で示す面が、マニピュレータ装置10のステレオカメラ40に近い面を示している。また、図26の例は、太線で示す面Fが、マニピュレータ装置10のステレオカメラ40から遠い面を示している。
次に、ステップS25では、出力部605が、マニピュレータ装置10の干渉体積を算出する。図26を用いて具体的に説明すると、1画素あたりの実際の面積は、各画素の距離値によって異なる。このため、出力部605は、以下の演算を行うことで、1画素に対する面積を算出する。
1画素の面積=面積ファクタ値×(距離値
なお、面積ファクタ値は、ステレオカメラ40の光学設計値と、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)等で形成される各画素の仕様値から算出する。
次に、出力部605は、一つの画素に対して、
マニピュレータ装置10の近い面の距離値をC(Close)、
マニピュレータ装置10の遠い面の距離値をF(Far)、
計測値の距離値をz(計測対象物とステレオカメラ40との間の距離の値(計測値))、
マニピュレータ装置10の近い面の進入深さをP1=Max(0,C−z)、
マニピュレータ装置10の遠い面の進入深さをP2=Max(0,F−z)、
進入長さをL=P2−P1とし、以下の演算を行うことで、1画素に対する干渉体積(v)を算出する。
v=L×1画素の面積
そして、出力部605は、各画素の干渉体積を算出すると、この算出した各画素の干渉体積を全て加算処理(積分処理)することで、マニピュレータ装置10全体の干渉体積を算出する(マニピュレータ装置10の全体干渉体積=画素毎の干渉体積の合計)。
このようにマニピュレータ装置10全体の干渉体積を算出すると、変換部604は、図25のフローチャートのステップS26において、描画したマニピュレータ装置10を所定方向に所定分、位置をずらして再描画する。そして、このステップS26において、出力部605が、位置をずらして再描画されたマニピュレータ装置10の干渉体積を算出する。変換部604及び出力部605は、このような位置をずらした再描画、及び、マニピュレータ装置10の干渉体積の算出を、複数方向に対して行う。これにより、マニピュレータ装置10における、各方向に対する干渉体積を得ることができる。
次に、出力部605は、最初に算出した干渉体積と、各方向における干渉体積の変化量に基づいて、対象物との干渉を発生しない方向を特定する。具体的には、干渉体積は、マニピュレータ装置10の姿勢のパラメータX,Y,Z,RX,RY,RZ又はその一部のパラメータ(例えばX,Y,Zのみ)を用いた多次元関数として表現できる。このため、例えば「最急降下法」、「ニュートン法」又は「ガウス・ニュートン法」等の最適化手法により、非線形的に干渉が発生しないマニピュレータ装置10の姿勢を検出できる。出力部605は、ステップS28において、対象物との干渉を発生しない方向にマニピュレータ装置10の姿勢を修正するための修正情報を生成する。
次に、出力部605は、ステップS29において、干渉体積がゼロ(0)又は計測点(距離画像のz)までの最小距離(センサから遠い面と距離画像のzの差の最小値)が閾値より大きいか否か(完了条件を満たしているか否か)を判別(評価)する。このような完了条件を満たしていない場合(ステップS29:No)、処理がステップS24に戻り、ステップS24〜ステップS29の各処理が繰り返し行われる。これに対して、完了条件を満たしている場合(ステップS29:Yes)、出力部605は、ステップS30において、対象物との干渉を発生しない方向にマニピュレータ装置10の姿勢を修正するための修正情報を出力する。これにより、図25のフローチャートの全処理が終了する。
図7に示すロボット制御部500は、修正情報に基づいて、間接駆動装置501〜505、ワーク保持位置調整装置25及び回転機構26等を制御する。これにより、対象物に干渉することなくマニピュレータ装置10を駆動することができる。
(第3の実施の形態の効果)
以上の説明から明らかなように、第3の実施の形態の部品検査システムは、マニピュレータ装置10の特定の姿勢に対応する干渉体積を算出すると共に、マニピュレータ装置10の位置を所定分所定方向に移動し、移動位置毎にマニピュレータ装置10の干渉体積をそれぞれ算出する。そして、各位置の干渉体積の変化量に基づいて、マニピュレータ装置10の姿勢を修正する。これにより、対象物との干渉をより正確に防止しながらマニピュレータ装置10を駆動できる他、上述の各実施の形態と同様の効果を得ることができる。
最後に、上述の各実施の形態は、一例として提示したものであり、本発明の範囲を限定することは意図していない。この新規な実施の形態は、その他の様々な形態で実施可能である。また、発明の要旨を逸脱しない範囲で、実施の形態に対する種々の省略、置き換え、変更を行うことも可能である。
例えば、上述の干渉判定手法は、車両等の移動体の衝突防止に用いることができる。すなわち、距離センサが設けられている機器の形状モデル、方向及び速度データを用いて、数msecの間に移動体が移動する「空間」を算出する。そして、算出した「空間」を形状モデルとして用いて、計測データに対する干渉の有無を判定することで、対象物に対する移動体の衝突の有無を判定する。
なお、追跡処理により距離センサデータ内の対象物の方向及び速度を検出する距離センサを用いて、数msecの間の「予測対象物計測データ」を算出して干渉判定(衝突判定)に用いてもよい。また、移動体の移動経路の補正、及び、対象物を回避した移動経路の算出にも用いることができる。
また、上述のロボット制御部500としては、ソフトウェアによって各機能を実行するようにプログラムされたプロセッサ、及び、各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、IC(Integrated Circuit)又は回路モジュールなどのハードウェアを含むものとする。
また、上述の各実施の形態は、情報処理技術分野における通常の知識を有した技術者であれば、ASIC(Application Specific Integrated Circuits)及び、従来の回路モジュールを接続して構成した装置によって実施することが可能である。
また、上述の各実施の形態に記載された各機能は、それぞれ、一又は複数の処理回路(Circuit)によって実現してもよい。なお、「処理回路」とは、ソフトウェアによって各機能を実行するようプログラムされたプロセッサ、各機能を実行するように設計されたASIC及び回路モジュール等のハードウェアを含むものとする。
このような各実施の形態及び各実施の形態の変形例は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
<付記項>
上記実施形態では、以下に示すような発明が開示されている。
[付記項1]
一つ又は複数の画素毎に距離情報を備えた距離画像である元画像を受け付ける受付部と、
前記元画像内のオブジェクトを認識する認識部と、
前記オブジェクトに相当する取得物を取得する取得部の姿勢を特定する特定部と、
特定された姿勢の前記取得部の前記距離画像を生成する生成部と、
前記取得部の前記距離画像を前記元画像上に描画する際に、二次元的に同じ位置の画素は、前記距離情報で示される奥行方向の値が大きい方の画素で上書きすることで、前記取得部における前記奥行方向の値が大きい面の前記距離画像を前記元画像上に描画する描画部と、
前記元画像の各画素の前記距離情報と、描画された前記取得部の前記面の各画素の前記距離情報とを比較し、前記元画像の物体のうち、前記取得部の前記面の画素の距離情報よりも、前記奥行方向の値が大きな距離情報の画素を有する前記物体を、前記取得部と干渉する物体として判定し、この判定結果を出力する出力部と
を有する干渉判定装置。
[付記項2]
前記元画像は、複数の視点からの視差に基づいて前記オブジェクトとの間の距離を示す距離情報を画素毎に備えた前記元画像を生成するステレオカメラで撮像された前記元画像であり、
前記描画部は、前記取得部の前記距離画像を前記元画像上に描画する際に、前記ステレオカメラとの間の距離が遠い方の面の前記距離画像を前記元画像上に描画すること
を特徴とする付記項1に記載の干渉判定装置。
[付記項3]
前記元画像に対して描画する前記取得部の描画位置を所定分所定方向に移動させた移動位置毎に、前記取得部の体積を算出する算出部と、
算出された各移動位置の前記体積の変化量に基づいて、前記取得部の移動経路を修正するための修正情報を生成して出力する修正情報生成部と
を有する付記項1又は2に記載の干渉判定装置。
[付記項4]
受付部が、一つ又は複数の画素毎に距離情報を備えた距離画像である元画像を受け付ける受付ステップと、
認識部が、前記元画像内のオブジェクトを認識する認識ステップと、
特定部が、前記オブジェクトに相当する取得物を取得する取得部の姿勢を特定する特定ステップと、
生成部が、特定された姿勢の前記取得部の前記距離画像を生成する生成ステップと、
描画部が、前記取得部の前記距離画像を前記元画像上に描画する際に、二次元的に同じ位置の画素は、前記距離情報で示される奥行方向の値が大きい方の画素で上書きすることで、前記取得部における前記奥行方向の値が大きい面の前記距離画像を前記元画像上に描画する描画ステップと、
出力部が、前記元画像の各画素の前記距離情報と、描画された前記取得部の前記面の各画素の前記距離情報とを比較し、前記元画像の物体のうち、前記取得部の前記面の画素の距離情報よりも、前記奥行方向の値が大きな距離情報の画素を有する前記物体を、前記取得部と干渉する物体として判定し、この判定結果を出力する出力ステップと
を有する干渉判定方法。
[付記項5]
コンピュータを、
一つ又は複数の画素毎に距離情報を備えた距離画像である元画像を受け付ける受付部と、
前記元画像内のオブジェクトを認識する認識部と、
前記オブジェクトに相当する取得物を取得する取得部の姿勢を特定する特定部と、
特定された姿勢の前記取得部の前記距離画像を生成する生成部と、
前記取得部の前記距離画像を前記元画像上に描画する際に、二次元的に同じ位置の画素は、前記距離情報で示される奥行方向の値が大きい方の画素で上書きすることで、前記取得部における前記奥行方向の値が大きい面の前記距離画像を前記元画像上に描画する描画部と、
前記元画像の各画素の前記距離情報と、描画された前記取得部の前記面の各画素の前記距離情報とを比較し、前記元画像の物体のうち、前記取得部の前記面の画素の距離情報よりも、前記奥行方向の値が大きな距離情報の画素を有する前記物体を、前記取得部と干渉する物体として判定し、この判定結果を出力する出力部として機能させること
を特徴とする干渉判定プログラム。
[付記項6]
付記項1から付記項3のうち、いずれか一項に記載の干渉判定装置と、
前記干渉判定装置の干渉の判定結果に基づいて駆動され、取得物を取得して所定の位置まで移動させる取得部と
を有するマニピュレータシステム。
10 マニピュレータ装置
20 ハンド部
21 ワーク吸着部
30 パレット移送機構
40 ステレオカメラ
100 ピッキングロボット
200 外観検査装置
300 マガジン収容部
500 ロボット制御部
506 記憶部
601 受付部
602 認識部
603 特定部
604 変換部
605 出力部
W 部品(ワーク)
特開2006−346790号公報 特開2016−078184号公報

Claims (14)

  1. 距離画像を受け付ける受付部と、
    前記距離画像内の認識対象物を認識する認識部と、
    前記認識対象物に関係する関係物の所定の面の情報を、前記距離画像上の情報へ変換する変換部と、
    変換された前記情報に基づいた評価結果を出力する出力部と、
    を有する情報処理装置。
  2. 前記関係物の、前記認識対象物に対して関与する際の姿勢を特定する特定部をさらに有し、
    前記変換部は、前記姿勢により特定される前記関係物の所定の面の情報を、前記距離画像上の情報へ変換する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記特定部は、認識された前記認識対象物の情報に応じて、前記姿勢を特定する
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記特定部は、予め定められた情報をもとに前記姿勢を特定する
    ことを特徴とする請求項2に記載の情報処理装置。
  5. 前記変換部は、前記関係物の、前記距離画像を取得するセンサから遠い側の面の情報を、前記距離画像上の情報へ変換する
    ことを特徴とする請求項1乃至4のいずれか一項に記載の情報処理装置。
  6. 前記変換部は、前記関係物の、前記距離画像を取得するセンサに近い側の面の情報を、前記距離画像上の情報へ変換する
    ことを特徴とする請求項1乃至4のいずれか一項に記載の情報処理装置。
  7. 前記出力部は、変換された前記関係物の情報と、認識された前記認識対象物の情報とのいずれが前記センサから遠いことを示しているかの評価を行い、当該評価の結果を出力する
    ことを特徴とする請求項1乃至6のいずれか一項に記載の情報処理装置。
  8. 前記出力部は、変換された前記関係物の情報と、認識された前記認識対象物の情報とにどれくらい差異があるかの評価値を算出し、当該評価値を出力する
    ことを特徴とする請求項1乃至6のいずれか一項に記載の情報処理装置。
  9. 前記変換部は、前記関係物の、前記距離画像を取得するセンサに近い面と前記センサから遠い側の面の両方の面の情報を、前記距離画像上の情報へ変換し、
    前記出力部は、変換された前記両方の面の情報から算出した値に基づいた評価結果を出力する
    ことを特徴とする請求項1乃至4のいずれか一項に記載の情報処理装置。
  10. 前記受付部は、ステレオカメラの撮像画像に基づいて生成された前記距離画像を受け付ける
    ことを特徴とする請求項1乃至9のいずれか一項に記載の情報処理装置。
  11. 前記認識部は、前記認識対象物以外の既知の物体に相当する距離画像を除去した距離画像に基づいて前記認識対象物を認識する
    ことを特徴とする請求項1乃至9のいずれか一項に記載の情報処理装置。
  12. 受付部が、距離画像を受け付ける受付ステップと、
    認識部が、前記距離画像内の認識対象物を認識する認識ステップと、
    変換部が、前記認識対象物に関係する関係物の所定の面の情報を、前記距離画像上の情報へ変換する変換ステップと、
    出力部が、変換された前記情報に基づいた評価結果を出力する出力ステップと、
    を有する情報処理方法。
  13. コンピュータを、
    距離画像を受け付ける受付部と、
    前記距離画像内の認識対象物を認識する認識部と、
    前記認識対象物に関係する関係物の所定の面の情報を、前記距離画像上の情報へ変換する変換部と、
    変換された前記情報に基づいた評価結果を出力する出力部として機能させること、
    を特徴とする情報処理プログラム。
  14. 請求項1乃至11のうち、いずれか一項に記載の情報処理装置と、
    所定の動作を行う動作部と、
    前記情報処理装置からの前記評価結果に基づいて、前記動作部を駆動制御する駆動制御部と
    を有するシステム。
JP2017134895A 2017-07-10 2017-07-10 情報処理装置、情報処理方法、情報処理プログラム、及びシステム Pending JP2019016294A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017134895A JP2019016294A (ja) 2017-07-10 2017-07-10 情報処理装置、情報処理方法、情報処理プログラム、及びシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017134895A JP2019016294A (ja) 2017-07-10 2017-07-10 情報処理装置、情報処理方法、情報処理プログラム、及びシステム

Publications (1)

Publication Number Publication Date
JP2019016294A true JP2019016294A (ja) 2019-01-31

Family

ID=65359337

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017134895A Pending JP2019016294A (ja) 2017-07-10 2017-07-10 情報処理装置、情報処理方法、情報処理プログラム、及びシステム

Country Status (1)

Country Link
JP (1) JP2019016294A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020126363A (ja) * 2019-02-01 2020-08-20 株式会社小松製作所 画像処理システム、画像処理方法、学習済みモデルの生成方法、および学習用データセット
JP2022529088A (ja) * 2019-03-27 2022-06-16 三菱電機株式会社 スパースrgb-d slamおよびインタラクティブパーセプションによる対象の検出、トラッキングおよび3dモデリング
JP7512491B2 (ja) 2019-07-26 2024-07-08 グーグル エルエルシー リモートクライアントデバイスからの入力に基づく効率的なロボットの制御

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020126363A (ja) * 2019-02-01 2020-08-20 株式会社小松製作所 画像処理システム、画像処理方法、学習済みモデルの生成方法、および学習用データセット
JP7365122B2 (ja) 2019-02-01 2023-10-19 株式会社小松製作所 画像処理システムおよび画像処理方法
JP2022529088A (ja) * 2019-03-27 2022-06-16 三菱電機株式会社 スパースrgb-d slamおよびインタラクティブパーセプションによる対象の検出、トラッキングおよび3dモデリング
JP7199596B2 (ja) 2019-03-27 2023-01-05 三菱電機株式会社 スパースrgb-d slamおよびインタラクティブパーセプションによる対象の検出、トラッキングおよび3dモデリング
JP7512491B2 (ja) 2019-07-26 2024-07-08 グーグル エルエルシー リモートクライアントデバイスからの入力に基づく効率的なロボットの制御

Similar Documents

Publication Publication Date Title
CN111452040B (zh) 在引导装配环境中将机器视觉坐标空间关联的系统和方法
JP7352260B2 (ja) 自動物体検出機構を備えたロボットシステム、および、その動作方法
JP4565023B2 (ja) 物品取り出し装置
JP6180087B2 (ja) 情報処理装置及び情報処理方法
EP3173194B1 (en) Manipulator system, image capturing system, transfer method of object, and carrier medium
JP5558585B2 (ja) ワーク取り出し装置
JP4226623B2 (ja) ワーク取り出し装置
US9604363B2 (en) Object pickup device and method for picking up object
JP5429614B2 (ja) 箱状ワーク認識装置および方法
JP5893695B1 (ja) 物品搬送システム
JP6855492B2 (ja) ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法
JP5582126B2 (ja) ワーク取出システム、ロボット装置および被加工物の製造方法
JP2019509559A (ja) センサ誘導式ロボットを用いたボックスの位置特定、分離、およびピッキング
JP2018176334A (ja) 情報処理装置、計測装置、システム、干渉判定方法および物品の製造方法
JP2019016294A (ja) 情報処理装置、情報処理方法、情報処理プログラム、及びシステム
US20100262290A1 (en) Data matching apparatus, data matching method and mobile robot
JP2018146347A (ja) 画像処理装置、画像処理方法、及びコンピュータプログラム
JP6708142B2 (ja) ロボットの制御装置
WO2023157964A1 (ja) ピッキング装置及びピッキング制御プログラム
US20230386075A1 (en) Method, System, And Computer Program For Recognizing Position And Posture Of Object
JP2021062464A (ja) ピッキング装置
JP2017220036A (ja) ワーク検知システム及び衣服検知システム
CN117769483A (zh) 机器人控制设备、机器人控制系统以及机器人控制方法
JP2021091036A (ja) ピッキングロボット、ピッキング方法及びプログラム
JP2023037715A (ja) ピッキング装置およびピッキング方法