(57)【要約】      （修正有）【課題】精度よく物体の位置姿勢を取得可能にする技術を提供する。【解決手段】撮像部１０４によって撮像され、物体１０６の距離情報を含む撮像画像を取得する画像取得手段と、物体の距離情報から物体の位置姿勢を取得する位置姿勢取得手段と、位置姿勢取得手段によって位置姿勢が取得された物体とは異なる物体が撮像画像に含まれる場合に、物体の距離情報から物体の存在範囲を推定する推定手段と、物体の存在範囲に基づき、撮像部の位置姿勢を決定する決定手段と、を備える。【選択図】図１
2020016446.tif 000002
【特許請求の範囲】
【請求項１】
撮像部によって撮像され、物体の距離情報を含む撮像画像を取得する画像取得手段と、
前記物体の距離情報から前記物体の位置姿勢を取得する位置姿勢取得手段と、
前記位置姿勢取得手段によって位置姿勢が取得された物体とは異なる物体が前記撮像画像に含まれる場合に、前記物体の距離情報から前記物体の存在範囲を推定する推定手段と、
前記物体の存在範囲に基づき、前記撮像部の位置姿勢を決定する決定手段と、を備える、ことを特徴とする情報処理装置。
【請求項２】
前記推定手段は、前記取得手段によって位置姿勢が取得できない物体が前記撮像画像に含まれる場合に、前記物体の存在範囲を推定する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記推定手段は、前記物体が載置される面の距離情報である基準距離情報と、前記物体の距離情報との差分に基づき、前記物体の存在範囲を推定する、ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記決定手段は、前記物体の存在範囲に対応する前記撮像部の位置姿勢を記憶する、ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記決定手段は、前記物体が配置される空間を複数の部分空間に分割し、前記複数の部分空間のそれぞれに対応する前記撮像部の位置姿勢を記憶する、ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記部分空間は、前記物体を収容している容器の内側の側面に隣接する空間を含む、ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記決定手段は、前記撮像部の視野範囲に収まる前記物体の表面積が最大となる位置姿勢を前記撮像部の位置姿勢として決定する、ことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記決定手段は、前記撮像画像における前記物体の面積が最大となる位置姿勢を前記撮像部の位置姿勢として決定する、ことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項９】
前記決定部は、前記容器によって遮蔽される前記物体の面積が閾値以下となる位置姿勢を前記撮像部の位置姿勢として決定する、ことを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
撮像部によって撮像され、物体の距離情報を含む撮像画像を取得する画像取得工程と、
前記物体の距離情報から前記物体の位置姿勢を取得する位置姿勢取得工程と、
前記取得工程において位置姿勢が取得された物体とは異なる物体が前記撮像画像に含まれる場合に、前記物体の距離情報から前記物体の存在範囲を推定する推定工程と、
前記物体の存在範囲に基づき、前記撮像部の位置姿勢を決定する決定工程と、を含む、ことを特徴とする情報処理装置の制御方法。
【請求項１１】
コンピュータを、請求項１乃至９の何れか１項に記載の情報処理装置として機能させるためのプログラム。
【請求項１２】
物体の距離情報を含む撮像画像を撮像する撮像部と、
前記物体の距離情報から前記物体の位置姿勢を取得する位置姿勢取得部と、
前記位置姿勢取得部によって位置姿勢が取得された物体とは異なる物体が前記撮像画像に含まれる場合に、前記物体の距離情報から前記物体の存在範囲を推定する推定部と、
前記物体の存在範囲に基づき、前記撮像部の位置姿勢を決定する決定部と、を備える、ことを特徴とする計測装置
【請求項１３】
物品の製造方法であって、
請求項１乃至９のうちいずれか１項に記載の情報処理装置により位置姿勢の取得を行われた物体の移動をロボットにより行い、
前記移動を行われた前記物体の処理を行って前記物品を製造する、
ことを特徴とする物品の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、プログラム、計測装置、及び物品製造方法に関する。
【背景技術】
【０００２】
近年のロボット技術の発展とともに、工業製品の組立のようなこれまで人間が行っていた複雑なタスクをロボットが代わりに行うようになりつつある。このようなロボットは、ハンドなどのエンドエフェクタによって部品をピッキングして組立を行う。従来、ピッキングするための部品の供給は、パーツフィーダと呼ばれる部品１つ１つを並べて供給するための装置を利用したり、パレット（容器）に部品を様々な姿勢で山積みしたりすることによって行われている。
【０００３】
パーツフィーダを利用する場合は、部品１つ１つの位置姿勢が予め決まった状態で供給されるため、ロボットによるピッキングは比較的容易に行われる。しかしながら、パーツフィーダ装置を用意するためのコストが余計にかかる。また、部品の形状に合わせて異なるパーツフィーダを用意しなければならない。一方、部品を山積みにして供給する場合は、パレットに部品を置くだけで良いためコスト増を回避することができる。さらに、近年の少量多品種生産の傾向を受けて、様々な部品へ素早く対応することができる山積み供給に注目が集まっている。
【０００４】
このような動向の中、二次元カメラや三次元計測装置と部品認識との組み合わせによるピッキング作業システムの開発が行われている。物体の位置姿勢を認識するための情報処理装置として特許文献１、及び特許文献２に記載の技術がある。特許文献１には、ワークが取り出された領域に、測距センサを移動させて計測を行うロボットが記載されている。また、特許文献２には、ワークの位置、姿勢を視覚センサで計測し、それに基づいてワーク取り出し手段（ロボット）を移動させるワーク取り出し装置が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−２１７７２６号公報
【特許文献２】特開２００３−３４４３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１、及び特許文献２では、１回目の計測で物体の位置姿勢を正しく計測できないと、２回目の計測での視覚センサ位置姿勢を決定できず、２回目の計測でも物体の位置姿勢を正しく計測できないという問題がある。
【０００７】
本発明は、例えば、精度よく物体の位置姿勢を取得可能にする技術を提供することを目的とする
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は、撮像部によって撮像され、物体の距離情報を含む撮像画像を取得する画像取得手段と、物体の距離情報から物体の位置姿勢を取得する位置姿勢取得手段と、位置姿勢取得手段によって位置姿勢が取得された物体とは異なる物体が撮像画像に含まれる場合に、物体の距離情報から物体の存在範囲を推定する推定手段と、物体の存在範囲に基づき、撮像部の位置姿勢を決定する決定手段と、を備える、ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、例えば、精度よく物体の位置姿勢を取得可能にする技術を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態に係る情報処理装置を含むロボットシステムの一例を示す模式図である。
【図２】情報処理装置のハードウェア構成例を示すブロック図である。
【図３】第１実施形態に係る情報処理装置を搭載したロボットシステムの機能構成を示す図である。
【図４】第１実施形態に係る情報処理装置のユースケースの一例を示す図である。
【図５】第１実施形態に係る情報処理装置の処理フローを示すフローチャートである。
【図６】ステップＳ５０８における物体の存在範囲推定の処理を示すフローチャートである。
【図７】第１実施形態に係るステップＳ５１０の処理を説明する模式図である。
【図８】第１実施形態に係るステップＳ５１０の処理を示すフローチャートである。
【図９】第２の実施形態に係るステップＳ５１０の処理を示すフローチャートである。
【図１０】第３の実施形態に係るステップＳ５１０の処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面などを参照して説明する。
【００１２】
（第１実施形態）
［ハードウェア構成］
図１は、第１実施形態に係る情報処理装置１０５を含むロボットシステム１の一例を示す模式図である。ロボットシステム１は、パレット１０７の中にバラ積みされた物体１０６を取り出すピッキングシステムである。ロボットシステム１は、ロボットアーム１０１と、ロボット制御装置１０３と、センサ部１０４と、情報処理装置１０５と、を含む。ロボットアーム１０１は、例えば、多関節ロボットであり、ロボット制御装置１０３からの制御命令を受けて稼働する。ロボットアーム１０１の先端にはハンド１０２が装着されている。ハンド１０２は、物体１０６を把持してパレット１０７から取り出す。ハンド１０２は、例えば、チャック機構を持つハンドを用いても良いし、モータ駆動可能なハンドを用いても良い。また、空気圧で物体１０６を吸着する吸着パッドを用いてもよい。
【００１３】
ロボット制御装置１０３は、ロボットアーム１０１を制御して、パレット１０７の中にバラ積みされた物体１０６が、センサ部１０４の視野に入る位置にハンド１０２を移動させる。また、ロボット制御装置１０３は、情報処理装置１０５に物体１０６の位置姿勢の計測を指示する。このとき、ロボット制御装置１０３は、ハンド１０２の位置姿勢を情報処理装置１０５に送信する。なお、ロボット制御装置１０３は、ロボットアーム１０１と一体であっても良い。
【００１４】
情報処理装置１０５は、ロボット制御装置１０３から物体１０６の位置姿勢の計測指示を受信すると、センサ部１０４を制御して物体１０６を含む撮像画像を取得する。情報処理装置１０５は、撮像画像とハンド１０２の位置姿勢とに基づいて、物体１０６の位置姿勢を取得し、ロボット制御装置１０３に送信する。
【００１５】
センサ部１０４は、２次元画像を撮像する撮像部である。センサ部１０４は、ロボットアーム１０１の先端にあるハンド１０２に固定して取り付けられている。センサ部１０４は、撮像対象にパターン光を投影し、パターン画像を取得する。パターン画像は、投影したパターン光を観測した画像である。また、センサ部１０４は、撮像対象の濃淡画像を取得する。濃淡画像は、各画素の明るさを白から黒の階調で表した画像である。なお、情報処理装置１０５は、センサ部１０４に組み込まれ、一体であってもよいし、ロボット制御装置１０３に組み込まれ、ロボット制御装置の一部を構成する形態であってもよい。
【００１６】
図２は、情報処理装置１０５のハードウェア構成例を示すブロック図である。本実施形態に係る情報処理装置１０５は、例えばコンピュータであり、ＣＰＵ（マイクロプロセッサ)２０１と、ランダムアクセスメモリなどのメモリ２０２を備える。また、キーボードなどの入力部２０３、ハードディスクドライブなどの外部記憶装置２０４を備える。また、センサ部１０４との間の通信インタフェイス(以下、撮像Ｉ／Ｆと呼ぶ)２０５と、ロボット制御装置１０３との間の通信インタフェイス(以下、ＲＣＩ／Ｆと呼ぶ)２０６を備える。ＣＰＵ２０１は、メモリ２０２に格納されたプログラムに従って種々の処理を実行するものであり、特に、後述する位置姿勢の取得処理を実行する。これらのプログラムは、外部記憶装置２０４に記憶しておくか、または不図示の外部装置から供給されうる。
【００１７】
情報処理装置１０５は、撮像Ｉ／Ｆ２０５を介してセンサ部１０４におけるパターン光の光量や、露光時間などの撮像条件をセンサ部１０４に送信する。また、撮像Ｉ／Ｆ２０５を介して、センサ部１０４へ撮像の実施を指示すると共に、センサ部１０４が撮像した撮像画像を受信する。また、情報処理装置１０５は、ＲＣＩ／Ｆ２０６を介して、ロボット制御装置１０３から計測指示を受信すると共に、計算した計測対象の位置姿勢をロボット制御装置１０３へ送信する。さらに、情報処理装置１０５は、ビデオＩ／Ｆ２０７を介してモニタ２０８に種々の情報を出力すると共に、入力部２０３を通じて各種情報を入力する。
【００１８】
［ソフトウェア構成］
図３は、第１実施形態に係る情報処理装置を搭載したロボットシステムの機能構成を示す図である。情報処理装置１０５は、画像取得部３０４、パレット計測部３０５、位置姿勢取得部３０６、決定部３０７、推定部３０８を有する。
【００１９】
画像取得部３０４は、センサ部１０４において撮像されたパターン画像を取得し、取得した画像から計測対象となる物体の距離情報を表す距離点群を取得する。距離点群の取得は、例えばグレイコードパターン法や位相シフト法等、公知の方法により実現することができる。グレイコードパターン法を用いる手法では、数百本のスリットを２進数でコード化し、２値パターンを時系列的に投影することで空間をコード化する。位相シフト法を用いる手法では、位相をずらしながら、投影強度を正弦波に変調した縞パターンを投影することで距離点群を取得する。
【００２０】
パレット計測部３０５は、パレット１０７を検出し、その位置姿勢を計測する。パレット計測部３０５における、パレット１０７の位置姿勢計測時の入力は、濃淡画像、パターン画像、及び距離点群であり、パレット計測部３０５は入力された濃淡画像、パターン画像、及び距離点群からパレット１０７の位置姿勢を計測する。パレット計測部３０５は、計測したパレット１０７の位置姿勢を出力する。
【００２１】
位置姿勢取得部３０６は、濃淡画像、パターン画像、及び距離点群を用いて、計測対象である物体を検出し、その位置姿勢を取得する。位置姿勢取得部３０６は、テンプレートマッチングを用いる手法やニューラルネットワークを用いる手法、ＩＣＰアルゴリズムを用いる手法等、公知の方法により実現することができる。テンプレートマッチングを用いる手法では、テンプレート画像を濃淡画像上で走査し、最も高類似度な時のテンプレート画像の位置によって、物体の位置を取得する。また、ニューラルネットワークを用いる手法では、濃淡画像から物体の位置を取得するネットワークを学習し、そのネットワークを用いて物体の位置を取得する。ＩＣＰアルゴリズムを用いる手法では、３Ｄモデルから得られる点群を用いて、位置合わせを繰り返すことによって、物体の位置姿勢を取得する。
【００２２】
推定部３０８は、位置姿勢取得部３０６によって位置姿勢が取得された物体とは異なる物体が撮像画像に含まれる場合に、物体の距離情報から物体の存在範囲を推定する。即ち、推定部３０８は、位置姿勢取得部３０６によって位置姿勢が取得できない物体が撮像画像に含まれる場合に、位置姿勢が取得できない物体の存在範囲を推定する。推定部３０８は、濃淡画像、パターン画像、及び距離点群を用いて、位置姿勢が取得できない物体の存在範囲を推定する。
【００２３】
決定部３０７は、推定部３０８によって推定された物体の存在範囲に基づき、センサ部１０４の位置姿勢を決定する。センサ部１０４の位置姿勢の決定処理の詳細は、図６〜８を用いて後述する。
【００２４】
ロボット制御装置１０３は、センサ位置制御部３０２、ハンド制御部３０３を有する。センサ位置制御部３０２は、ロボットアーム１０１を制御して、決定部３０７において決定された位置姿勢にセンサ部１０４を移動させる。ハンド制御部３０３は、位置姿勢取得部３０６で取得された物体１０６の位置姿勢に基づき、ハンド１０２を制御して、物体を把持し、移動する。
【００２５】
［実施形態の概要］
図４は、第１実施形態に係る情報処理装置１０５のユースケースの一例を示す図である。図４（Ａ）は、第１の計測における状態を示す図である。物体１０６は、第１の計測において計測対象となる物体である。パレット１０７は、物体１０６が収容される容器である。視野範囲４０５は、第１の計測におけるセンサ部１０４の視野範囲である。図４（Ａ）では、センサ部１０４がパレット１０７の真上に存在する。また物体１０６はパレット１０７内側の側面に寄りかかり、縦置きの状態となっている。このときセンサ部１０４と物体１０６との相対位置関係により、視野範囲４０５では、物体１０６の僅かな面しか撮像できない。この場合、物体１０６の位置姿勢の取得に十分な情報が得られのないため、物体１０６の正しい位置姿勢を計測することが困難となる。即ち、このとき物体１０６は、位置姿勢取得部３０６によって位置姿勢が取得できない物体であるといえる。
【００２６】
図４（Ｂ）は、第２の計測における状態を示す図である。なお、ここで、第２の計測は、第１の計測の後に実施される計測である。視野範囲４１０は、第２の計測におけるセンサ部１０４の視野範囲である。図４（Ｂ）では、センサ部１０４が、パレット１０７の斜め上の方向から物体１０６を撮像している。このとき視野範囲４１０では、物体１０６の多くの面を観測できる。この場合、物体１０６の位置姿勢の取得に十分な情報が得られるため、位置姿勢の計測が容易となり、物体１０６の正しい位置姿勢を計測することができる。本実施形態では、第１の計測において位置姿勢が取得できなかった物体１０６の存在範囲に基づいて、第２の計測におけるセンサ部１０４の位置姿勢を決定する。
【００２７】
［処理フロー］
図５は、第１実施形態に係る情報処理装置の処理フローを示すフローチャートである。以降、各ステップの処理を示す。まずステップＳ５０１において、センサ位置制御部３０２が、センサ部１０４を第１のセンサ位置姿勢へ移動させる。センサ部１０４は、ハンド１０２に取り付けられているため、センサ位置制御部３０２は、ロボットアーム１０１及びハンド１０２を駆動することにより、センサ部１０４の位置姿勢を制御する。第１のセンサ位置姿勢は、第１の計測におけるセンサ部１０４の位置姿勢である。第１のセンサ位置姿勢には、ユーザが事前登録した位置姿勢を用いても良いし、初期設定により設定された位置姿勢を用いても良い。
【００２８】
次にステップＳ５０２において、センサ部１０４が第１のパターン画像、及び第１の濃淡画像を撮像し、画像取得部３０４がセンサ部１０４から第１のパターン画像、及び第１の濃淡画像を取得する。第１のパターン画像、及び第１の濃淡画像は、第１の計測に用いられる。そして、ステップＳ５０３において、画像取得部３０４が第１のパターン画像から距離点群（第１の距離点群）を算出する。なお、距離点群の算出は、センサ部１０４において行われても良い。第１の距離点群は、第１の計測に用いられる。ステップＳ５０４において、パレット計測部３０５がパレット１０７の位置姿勢を計測する。このとき、パレット計測部３０５への入力は第１の濃淡画像、第１のパターン画像、及び第１の距離点群である。パレット計測部３０５は、入力された第１の濃淡画像、第１のパターン画像、及び第１の距離点群からパレット１０７の位置姿勢を計測し、６自由度で表現されたパレット１０７の位置姿勢を出力する。ステップＳ５０４は、例えばテンプレートマッチングを用いる手法やニューラルネットワークを用いる手法、及び位置合わせの手法の一つであるＩＣＰアルゴリズムを用いる手法等、公知の方法により実現することができる。
【００２９】
ステップＳ５０５において、位置姿勢取得部３０６が物体１０６を検出し、その概略位置姿勢を取得する。ステップＳ５０６において、位置姿勢取得部３０６が物体の概略位置姿勢を取得できたか否かを判定する。判定の評価値には、概略位置姿勢の取得で得られる認識スコアを用いる。認識スコアは、観測された物体と認識辞書に登録された物体の類似度を示すスコアである。認識スコアが閾値ｔｈｒｅｃｏｇ以上である場合、概略位置姿勢の取得できたと判断し、認識スコアが閾値ｔｈｒｅｃｏｇ未満である場合、概略位置姿勢を取得できなかったと判断する。概略位置姿勢を取得できた場合（Ｙｅｓ）、後述のステップＳ５０７に処理を進め、ステップＳ５０７において、位置姿勢取得部３０６が計測対象である物体１０６の詳細な位置姿勢を取得する。その後、ステップＳ５１６に処理を進める。
【００３０】
概略位置姿勢を取得できなかった場合（Ｎｏ）、後述のステップＳ５０８に処理を進め、ステップＳ５０８において、推定部３０８が物体１０６の存在範囲を推定する。物体１０６の存在範囲は、点群によって示される。ステップＳ５０８の詳細は、図６を用いて後述する。ステップＳ５０９において、ステップＳ５０８において推定された物体１０６の存在範囲に基づき、決定部３０７がセンサ部１０４の視野範囲内に物体１０６が存在するか否かを判定する。このとき、決定部３０７への入力は、推定された物体の存在範囲、及び第１の濃淡画像である。ここで、センサ部１０４の視野範囲内に物体１０６が存在するか否かの判定方法について説明する。まず、物体１０６の存在範囲を濃淡画像へ射影し、物体１０６の存在範囲が占める画素数を算出する。そして物体１０６の存在範囲を占める画素数が、閾値ｔｈｅｘｉｔ以上である場合、物体が存在すると判定する。物体１０６の存在範囲を占める画素数が、閾値ｔｈｅｘｉｔ未満である場合、物体１０６が存在しないと判定する。物体が存在すると判定された場合（Ｙｅｓ）、後述のステップＳ５１０に処理を進める。物体が存在しないと判定された場合（Ｎｏ）、“パレット１０７は空である”と判定し、情報処理装置の処理を終了する。
【００３１】
ステップＳ５１０において、決定部３０７が物体１０６の存在範囲に基づき、第２のセンサ位置姿勢を決定する。第２のセンサ位置姿勢は、第２の計測におけるセンサ部１０４の位置姿勢である。ステップＳ５１０の詳細は、図７を用いて後述する。ステップＳ５１１において、センサ位置制御部３０２が、第２のセンサ位置姿勢へセンサ部１０４を移動させる。ステップＳ５１２において、センサ部１０４が第２のパターン画像、及び第２の濃淡画像を撮像し、画像取得部３０４がセンサ部１０４から第２のパターン画像、及び第２の濃淡画像を取得する。第２のパターン画像、及び第２の濃淡画像は、第２の計測に用いられる。ステップＳ５１３において、画像取得部３０４が第２のパターン画像から距離点群（第２の距離点群）を算出する。第２の距離点群は第２の計測に用いられる。
【００３２】
ステップＳ５１４において、位置姿勢取得部３０６がステップＳ５０５と同様に物体１０６を検出し、その概略位置姿勢を推定する。ステップＳ５１５において、位置姿勢取得部３０６がステップＳ５０７と同様に計測対象である物体１０６の詳細な位置姿勢を取得する。ステップＳ５１６において、ハンド制御部３０３が、ステップＳ５０７またはステップＳ５１５で取得された物体１０６の位置姿勢に基づき、ハンド１０２を駆動し、ハンド１０２に物体１０６を把持させ、物体１０６をパレット１０７から取り出す。ステップＳ５１６完了後、情報処理装置１０５は、再びステップＳ５０１に処理を進め、パレット１０７に物体１０６が無くなるまで処理を繰り返す。なお、第２の計測において位置姿勢が取得できる物体１０６が無くなった場合に、第２の距離点群から物体の存在範囲を推定し、次の計測におけるセンサ位置姿勢を決定しても良い。
【００３３】
図６は、ステップＳ５０８における物体１０６の存在範囲推定の処理を示すフローチャートである。本フローにおける各ステップは推定部３０８によって実行されうる。物体１０６の存在する範囲と存在しない範囲では、距離点群のうち、奥行きを表すｚ値（ｚ方向の値）に大きな差異が生じる。そこでステップＳ５０８では、推定部３０８がｚ値の差分に基づき、物体１０６の存在範囲を推定する。なお、ステップＳ５０８における推定部３０８への入力は、第１の距離点群、ステップＳ５０４において計測されたパレット１０７の位置姿勢、及び空であるときのパレット１０７の距離点群である。空であるときのパレット１０７の距離点群（基準距離情報）は、事前に空のパレットを計測し、記憶する。また第１の距離点群を用いて、平面推定によって空であるときのパレット１０７の距離点群を算出しても良い。推定部３０８は、第１の距離点群、パレット１０７の位置姿勢、及び空であるときのパレット１０７の距離点群に基づき、物体１０６の存在範囲を推定し、出力する。以降、ステップＳ５０８の各処理を説明する。
【００３４】
まずステップＳ６０１において、第１の距離点群と空であるときのパレット１０７の距離点群の間で、ｚ方向の差分点群を取得する。第１の距離点群をＰｉｍｅａｓｕｒｅ（ｘｉｍ，ｙｉｍ，ｚｉｍ）と、空であるときのパレット１０７底面、即ち、物体１０６が載置される面に射影した距離点群をＰｉｅｍｐｔｙ（ｘｉｅ，ｙｉｅ，ｚｉｅ）とする。また、ｚ方向の差分点群をＰｉｄｉｆｆ（ｘｉｄ，ｙｉｄ，ｚｉｄ）と定義する。このときｉは、距離点群に含まれる点のｉｄである。また、ｚ方向の差分点群は、ｘｉｄ＝ｘｉｍ，ｙｉｄ＝ｙｉｍ，ｚｉｄ＝ｚｉｍ−ｚｉｅとして算出される。
【００３５】
次にステップＳ６０２において、ｚ方向の差分点群Ｐｉｄｉｆｆから背景点を除去する。具体的には、ｚｉｄが閾値ｔｈｏｂｊｅｃｔよりも小さい場合、背景点と判定する。背景点と判定された場合、点Ｐｋｍｅａｓｕｒｅは物体１０６の存在範囲に含まれない。背景点と判定されなかった場合、点Ｐｋｍｅａｓｕｒｅは物体１０６の存在範囲に含まれる。このときＰｋｍｅａｓｕｒｅは、Ｐｉｍｅａｓｕｒｅに含まれるある点を表す。ステップＳ６０３において、物体１０６の存在範囲をクラスタリングする。ステップＳ６０３は、例えば最短距離法等、公知の方法により実現することができる。最短距離法では、２つのクラスターのサンプル同士で最も小さいサンプル間距離をクラスター間の距離とする。ステップＳ６０３では、クラスタリング結果を出力する。
【００３６】
ステップＳ６０４において、ステップＳ６０３において出力されたクラスタリング結果に基づき、クラスター群からノイズクラスターを除去する。具体的には、まず各クラスターにおいて構成する点の個数を合算する。そして合算した結果が、閾値ｔｈｃｌａｓｓに満たない場合、ノイズクラスターと判定する。ノイズクラスターと判定された場合、そのクラスターを構成する点群は、物体の存在範囲から除外される。ノイズクラスターと判定されなかった場合、そのクラスターを構成する点群は、物体１０６の存在範囲から除外されない。
【００３７】
ステップＳ６０５において、物体１０６の存在範囲に対し、点群の補間を施す。クラスター群を構成する各点は、第１のパターン画像で死角とならなかった箇所のみに対応する。しかしセンサ部１０４の死角となった箇所にも物体１０６は存在しうるため、それらに対応する点群を補間する。ただし、物体１０６の存在範囲の内側にあり、いずれのセンサ位置姿勢からも死角となる点は、第２のセンサ位置姿勢の推定に寄与しない。そこで物体１０６の存在範囲の外側にあり、いずれかのセンサ位置姿勢から視野に収まる点のみを補完する。以下、ステップＳ６０５の処理の流れの詳細を説明する。まず、クラスター群において、クラスター内外の境界を構成する点を選択し、境界点とする。次に選択した境界点に対し、パレット１０７の底面に射影した点を接地点とする。続いて境界点と接地点とを結ぶ線分上に一定間隔で点を補完し、稜点とする。物体１０６の存在範囲に接地点と稜点を補完し、物体１０６の存在範囲推定は終了する。
【００３８】
なお、本実施形態において、物体１０６の存在範囲は一例として点群としたが、ｚ値の背景差分が大きい距離点群を内在する３次元空間上の直方体やポリゴン状の閉空間でも良い。また、濃淡画像の背景差分によって得られる画素の集合や、画素の集合を包含する矩形でも良い。
【００３９】
図７は、第１実施形態に係るステップＳ５１０の処理を説明する模式図である。図７（Ａ）は、計測対象の物体が収容されるパレットの一例を示す図である。本図は、パレット１０７を+Ｚ方向から見た図である。パレット空間７０４ａ〜７０４ｅは、物体１０６が配置される空間であるパレット１０７中の三次元空間を分割した部分空間である。パレット空間７０４ａ〜７０４ｅは、例えば、決定部３０７によって各パレット空間の面積が所定値以下になるように機械的に分割されても良いし、パレット１０７の内側の各側面と隣接する空間を含むように機械的に分割されても良い。パレット空間７０４ａ〜７０４ｅがパレット１０７の内側の各側面と隣接する空間を含むことにより、物体１０６はパレット１０７内側の側面に寄りかかり、縦置きの状態となっている場合でも、第２のセンサ位置姿勢を正しく決定ですることが可能となる。また、パレット空間７０４ａ〜７０４ｅは、ユーザからの指定によって分割されても良い。
【００４０】
図７（Ｂ）は、第１の計測を実施している状態におけるパレット１０７の断面図である。図７（Ｃ）は、パレット空間７０４ａ〜７０４ｅのそれぞれに対応する第２のセンサ位置姿勢を示すリストである。第２のセンサ位置姿勢７０８ａ〜７０８ｅは、パレット空間７０４ａ〜７０４ｅのそれぞれに対応する。第２のセンサ位置姿勢７０８ａ〜７０８ｅは、例えば、決定部３０７によって値が設定されても良い。決定部３０７は、パレット空間に計測対象となる物体１０６が存在する場合に、センサ部１０４の視野範囲に収まる物体１０６の表面積が最大となるようなセンサ位置姿勢を対応する第２のセンサ位置姿勢として設定しても良い。また、決定部３０７は、パレット空間に計測対象となる物体１０６が存在する場合に、センサ部１０４によって撮像される撮像画像における物体１０６の面積が最大となるような位置姿勢を対応する第２のセンサ位置姿勢として設定しても良い。さらに、対応する第２のセンサ位置姿勢は、ユーザによって値が設定されてもよい。
【００４１】
ここで、第２のセンサ位置姿勢の処理について説明する。ここでは、一例として、物体１０６の存在範囲７０２がパレット空間７０４ｃ内に存在する場合について説明する。ステップＳ５１０における第２のセンサ位置姿勢決定では、決定部３０７が物体１０６の存在範囲７０２やその付近を計測するのに適したセンサ位置姿勢を選択する。決定部３０７は、パレット空間７０４ａ〜７０４ｅのうちから、物体１０６の存在範囲７０２を多く含むパレット空間であるパレット空間７０４ｃを選択する。そして、第２のセンサ位置姿勢７０８ａ〜７０８ｅのうちから、パレット空間７０４ｃに対応する第２のセンサ位置姿勢７０８ｃを選択し、第２のセンサ位置姿勢が決定される。決定部３０７は、決定した第２センサ位置姿勢の情報をロボット制御装置１０３へ出力する。
【００４２】
図８は、第１実施形態に係るステップＳ５１０の処理を示すフローチャートである。本フローにおける各ステップは決定部３０７によって実行されうる。まず、ステップＳ８０１において、パレット１０７内の三次元空間を複数のパレット空間に分割する。分割された複数のパレット空間には、上述の通り、それぞれに対応する第２のセンサ位置姿勢が設定される。次に、ステップＳ８０２において、第２の計測の計測対象となるパレット空間を決定する。具体的には、各パレット空間において、物体１０６の存在範囲を構成する点を最も多く含むパレット空間を、計測対象のパレット空間とする。
【００４３】
最後にステップＳ８０３において、決定された計測対象となるパレット空間に対応する第２のセンサ位置姿勢を取得し、第２のセンサ位置姿勢が決定される。なお、本実施形態において、第２のセンサ位置姿勢は一例として物体１０６の存在範囲を多く含むパレット空間に基づき決定したが、物体１０６の存在範囲の中心を含むパレット空間に基づき決定しても良い。
【００４４】
以上のように、本実施形態によれば、計測対象である物体の存在範囲に基づき第２のセンサ位置姿勢を決定するため、例えば、物体がパレット等の容器の内側の側面に寄りかかり縦置きになっていても、第２のセンサ位置姿勢を正しく決定できる。よって、第２の計測において物体の位置姿勢を取得することが可能となる。また、例えば、縦置きになっている物体の位置姿勢を計測にする際でも、第２のセンサ位置姿勢を誤って決定することを低減でき、計測時間を短縮することもできる。
【００４５】
＜第２の実施形態＞
第１の実施形態において、ステップＳ５１０は物体１０６の存在範囲に基づいて第２のセンサ位置姿勢を決定した。しかし、例えば、パレット１０７の中心に物体が縦置きになっている場合、センサ部１０４の視野範囲において、パレット１０７などの容器による物体１０６の遮蔽が発生する場合がある。このような場合、各第２のセンサ位置姿勢で物体１０６の見え方が大きく異なるため、第２のセンサ位置姿勢を物体の存在範囲のみから正しく判断することが困難となる。第２の実施形態では、物体１０６の存在範囲の形状も考慮して第２のセンサ位置姿勢を決定する。なお本実施形態の構成、及び処理フローは、ステップＳ５１０以外、第１の実施形態と同様のため説明を省略する。
【００４６】
図９は、第２の実施形態に係るステップＳ５１０の処理を示すフローチャートである。本フローにおける各ステップは決定部３０７によって実行されうる。第２の実施形態では、物体１０６の存在範囲の形状を考慮し、物体１０６の面をより多く計測できるような第２のセンサ位置姿勢を決定する。
【００４７】
まず、ステップＳ９０１では、物体１０６の存在範囲の点群からメッシュ面を生成する。決定部３０７は、例えば、頂点情報及び各頂点を結んだ面の情報で構成されたメッシュモデルを生成する。Ｓ９０１は、例えばオクトツリーベース分割法等、公知の方法により実現することができる。オクトツリーベース分割法は、８分木のボクセルで領域の境界を再現してから、各ボクセルを４面体に分割し、最後に境界より外側の四面体を取り除く方法である。ステップＳ９０２では、生成されたメッシュ面を簡略化する。ステップＳ９０２は、例えばＱＳｌｉｍ等、公知の方法により実現することができる。ＱＳｌｉｍを用いる手法は、局所的な幾何・位相操作を優先度付きキューで行い、元の形状を近似しながらメッシュ数を減らす方法である。
【００４８】
ステップＳ９０３〜９０５では、各第２のセンサ位置姿勢において、各メッシュ面が計測可能であるか否かを判定する。ステップＳ９０３では、簡略化した判定対象となるメッシュ面が、判定対象となる第２のセンサ位置姿勢におけるセンサ部１０４の視野内に収まるか否かを判定する。センサ部１０４の視野範囲は、６自由度のセンサ位置姿勢パラメータによって決定される。判定対象の第２のセンサ位置姿勢のとき、判定対象のメッシュ面の閾値ｔｈＳ％以上がセンサ部１０４の視野範囲に収まる場合、そのメッシュ面は視野内であり計測可能と判定する。判定対象となるメッシュ面の閾値ｔｈＳ％以上がセンサ部１０４の視野範囲に収まらない場合、そのメッシュ面は視野内ではないため計測不可能と判定する。
【００４９】
ステップＳ９０４において、判定対象のメッシュ面と判定対象の第２のセンサ位置姿勢におけるセンサ部１０４の傾きが十分に小さいか否かを判定する。判定対象のメッシュ面と判定対象の第２のセンサ位置姿勢におけるセンサ部１０４とのなす角が閾値ｔｈａｎｇｌｅ以下の場合、そのメッシュ面は計測可能と判定する。判定対象のメッシュ面と判定対象の第２のセンサ位置姿勢におけるセンサ部１０４とのなす角が閾値ｔｈａｎｇｌｅ以下ではない場合、そのメッシュ面は計測不可能と判定する。
【００５０】
ステップＳ９０５では、判定対象の第２のセンサ位置姿勢におけるセンサ部１０４と判定対象のメッシュ面との間で、パレット１０７による遮蔽が十分に小さいか否かを判定する。判定対象のメッシュ面のうちパレット１０７により隠れている面の割合が、閾値ｔｈｏｃｃｌｕｓｉｏｎ以下の場合、そのメッシュ面は計測可能と判定する。判定対象のメッシュ面のうちパレットにより隠れている面の割合が、閾値ｔｈｏｃｃｌｕｓｉｏｎを超える場合、そのメッシュ面は計測不可能と判定する。ステップＳ９０６では、判定対象の第２のセンサ位置姿勢における、全てのメッシュ面の判定が完了したかを判定する。全てのメッシュ面の判定が完了していないと判定した場合（Ｎｏ）、全てのメッシュ面の判定が完了するまで、ステップＳ９０３〜９０５を繰り返す。全てのメッシュ面の判定が完了したと判定した場合（Ｙｅｓ）、後述のステップＳ９０７に処理を進める。
【００５１】
ステップＳ９０７では、計測対象の第２のセンサ位置姿勢における、計測可能なメッシュ面の面積和を算出する。計測可能なメッシュ面の面積和には、ステップＳ９０３〜９０５の全てにおいて計測可能と判定されたメッシュ面の面積のみが含まれる。その後、ステップＳ９０８では、全ての第２のセンサ位置姿勢の判定が完了したかを判定する。全ての第２のセンサ位置姿勢の判定が完了していないと判定した場合（Ｎｏ）、全ての第２のセンサ位置姿勢の判定が完了するまで、ステップＳ９０３〜９０８を繰り返す。全ての第２のセンサ位置姿勢の判定が完了したと判定した場合（Ｙｅｓ）、後述のステップＳ９０９に処理を進める。
【００５２】
ステップＳ９０９では、各第２のセンサ位置姿勢のパラメータから、最良なパラメータを選択する。各第２のセンサ位置姿勢のパラメータは、６自由度の各パラメータ値の範囲と間隔に基づき、決定部３０７によって自動生成されるセンサ位置姿勢パラメータでも良い。また、ユーザがリストアップした第２のセンサ位置姿勢パラメータであっても良い。最良な第２のセンサ位置姿勢パラメータは、計測可能なメッシュ面の面積和が最大かつセンサ部１０４と物体１０６の存在範囲の距離が最小な第２のセンサ位置姿勢パラメータである。そして、最良なセンサ位置姿勢パラメータに基づき、第２のセンサ位置姿勢が決定される。計測対象である物体のより多くの面を計測できるような第２のセンサ位置姿勢で計測することで、正しく物体の位置姿勢を計測することができる。
【００５３】
以上のように、第２の実施形態によれば、例えば、パレット１０７の中心に物体が縦置きになり、パレット１０７などの容器による物体１０６の遮蔽が発生する場合であっても、物体１０６の位置姿勢が計測可能な第２のセンサ位置姿勢を決定できる。そのため第２のセンサ位置姿勢を誤って決定することを低減でき、計測時間を短縮することもできる。
【００５４】
＜第３の実施形態＞
第２の実施形態において、ステップＳ５１０は物体の存在範囲とその形状のみに基づいて、第２のセンサ位置姿勢を決定した。しかし、パレット１０７に第１の計測で計測困難な物体が複数残っている場合、各物体の一部のみを視野に収めるような第２のセンサ位置姿勢を決定してしまう恐れがある。各物体の一部のみを視野に収めるような第２のセンサ位置姿勢では、いずれの物体も視野から見きれてしまうため、物体の位置姿勢の取得に十分な情報が得られないため、物体の正しい位置姿勢を計測することが困難となる。そこで、第３の実施形態では、物体の存在範囲とその形状に加えて、物体の存在範囲の分布も用いて第２のセンサ位置姿勢を決定する。なお本実施形態の構成、及び処理フローは、ステップＳ５１０以外、第１及び第２の実施形態と同様のため説明を省略する。
【００５５】
図１０は、第３の実施形態に係るステップＳ５１０の処理を示すフローチャートである。本フローにおける各ステップは決定部３０７によって実行されうる。本実施形態では、物体の存在範囲の分布も考慮して、第２のセンサ位置姿勢を決定する。すなわち一定以上に点群がまとまった物体の存在範囲を、必ず視野におさめるように第２のセンサ位置姿勢を決定する。
【００５６】
ステップＳ９０１〜９０８は、第２の実施形態における図９と同様であるため、説明を省略する。ステップＳ１００１では、判定対象の第２のセンサ位置姿勢で計測可能なクラスターの個数を算出する。計測可能なクラスターとは、そのクラスターに含まれるメッシュ面のうち、計測可能なメッシュ面の面積和が閾値ｔｈｃｌｕＳｔｅｒ以上のクラスターである。ステップＳ９０９では、各センサ位置姿勢パラメータから、最良なセンサ位置姿勢パラメータを選択する。最良なセンサ位置姿勢パラメータは、前記計測可能クラスターの個数が最大かつ視覚センサと物体の存在範囲までの距離が最小なセンサ位置姿勢パラメータである。そして前記最良なセンサ位置姿勢パラメータに基づき、第２のセンサ位置姿勢が決定される。
【００５７】
以上のように、本発明第３の実施例によれば、第１の計測で計測困難な複数の物体に対しては、物体の存在範囲の分布も用いて第２のセンサ位置姿勢を決定する。それにより、物体の一部のみを視野に収めるような誤った第２のセンサ位置姿勢を決定することが無くなる。そのためいずれの物体も視野から見きれ、計測に失敗することが無くなる。したがって少ない計測時間で物体の位置姿勢を計測できるという効果がある。
【００５８】
（物品製造方法に係る実施形態）
上述した情報処理装置１０５は、物品の製造方法に使用しうる。かかる物品の製造方法は、情報処理装置１０５により位置姿勢の取得を行われた物体の移動をロボットにより行い、移動を行われた物体の処理を行って物品を製造する。当該処理は、例えば、加工、切断、搬送、組立（組付）、検査、および選別のうちの少なくともいずれか一つを含みうる。本実施形態の物品製造方法は、従来の方法に比べて、物品の性能・品質・生産性・生産コストのうちの少なくとも１つにおいて有利である。
【００５９】
（その他の実施形態）
以上、本発明の実施の形態を説明してきたが、本発明はこれらの実施の形態に限定されず、その要旨の範囲内において様々な変更が可能である。
【符号の説明】
【００６０】
１０４  センサ部
１０５  情報処理装置
１０６  物体
３０４  画像取得部
３０６  位置姿勢取得部
３０７  決定部
３０８  推定部
【図１】
2020016446.tif 000003
【図２】
2020016446.tif 000004
【図３】
2020016446.tif 000005
【図４】
2020016446.tif 000006
【図５】
2020016446.tif 000007
【図６】
2020016446.tif 000008
【図７】
2020016446.tif 000009
【図８】
2020016446.tif 000010
【図９】
2020016446.tif 000011
【図１０】
2020016446.tif 000012