(57)【特許請求の範囲】
【請求項１】
物体の位置および姿勢の認識のための処理を行う情報処理装置であって、
前記物体の距離の情報を得る処理を行う第１処理部と、
前記物体が配置されうる領域を表す複数の面それぞれと、前記第１処理部により前記情報を得られた各点との間の距離の最小値の統計量に基づいて、前記物体が前記領域にないか判定する処理を行う第２処理部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記第２処理部は、前記領域の情報を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２処理部は、前記複数の面それぞれと前記各点との間の距離の符号を前記複数の面それぞれのどちら側に前記各点があるかに基づいて正または負とし、前記符号に基づいて当該距離を有する点の信頼性を評価することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第２処理部は、前記複数の面それぞれを平面または曲面として生成することを特徴とする請求項１ないし請求項３のうちいずれか１項に記載の情報処理装置。
【請求項５】
前記第１処理部は、前記物体を撮像する撮像部からの画像データに基づいて前記物体の距離の情報を得、
前記第２処理部は、前記撮像部の光軸の情報に基づいて、前記領域の情報を生成する、ことを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記第２処理部は、前記物体を収容する容器の配置の情報に基づいて、前記領域の情報を生成する請求項２に記載の情報処理装置。
【請求項７】
前記第２処理部は、重力の方向に基づいて、前記領域の情報を生成する請求項６に記載の情報処理装置。
【請求項８】
前記第２処理部は、互いに凹角をなす２面を前記複数の面が含むように、前記複数の面を生成することを特徴とする請求項４に記載の情報処理装置。
【請求項９】
前記第２処理部は、互いに凸角をなす２面を前記複数の面が含むように、前記複数の面を生成することを特徴とする請求項４または請求項７に記載の情報処理装置。
【請求項１０】
前記判定に係る表示を行う表示部を含むことを特徴とする請求項１ないし請求項９のうちいずれか１項に記載の情報処理装置。
【請求項１１】
前記物体の距離の情報を得るための計測データを得る計測部を含むことを特徴とする請求項１ないし請求項１０のうちいずれか１項に記載の情報処理装置。
【請求項１２】
物体の位置および姿勢の認識のための処理を行う情報処理方法であって、
前記物体の距離の情報を得る処理を行う第１処理工程と、
前記物体が配置されうる領域を表す複数の面それぞれと、前記第１処理部により前記情報を得られた各点との間の距離の最小値の統計量に基づいて、前記物体が前記領域にないか判定する処理を行う第２処理工程と、
を含むことを特徴とする情報処理方法。
【請求項１３】
請求項１２に記載の情報処理方法の各工程をコンピュータに実行させることを特徴とするプログラム。
【請求項１４】
物体の位置および姿勢の認識のための処理を行う請求項１ないし請求項１１のうちいずれか１項に記載の情報処理装置と、
前記情報処理装置により行われた前記処理に基づいて、前記物体を保持して移動させるロボットと、
を含むシステム。
【請求項１５】
請求項１ないし請求項１１のうちいずれか１項に記載の情報処理装置を用いて物体の位置および姿勢の認識のための処理を行う工程と、
前記工程で前記処理を行われた前記物体を処理する工程と、
を含むことを特徴とする物品製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、プログラム、システム、および物品製造方法に関する。
【背景技術】
【０００２】
パレットもしくはコンテナなどの容器または領域に配置されたワークなどの対象物（物体）を撮像し、対象物を含む計測対象の画像や距離計測値等の情報を基に、対象物の位置および姿勢を高精度に推定する情報処理装置（認識装置）が知られている。対象物の位置および姿勢の情報は、ロボットの制御部に送信され、ロボットにより部品の供給や組立等に利用されうる。そのようなロボットを含むシステムでは、容器または領域において対象物が空となったかの判定（空判定ともいう）を行う機能を備えているのが好ましい。空判定の処理は、対象物を配置しうる面と距離計測点との間の距離を求め、その距離の総和が閾値を超えない場合に対象物が空であると判定しうる（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１９７３１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の情報処理装置は、対象物を配置しうる面（例えば容器の底面）を単一の平面としている。しかしながら、当該面は、単一の平面であるとは限らない。例えば、対象物が容器内の中央部に配置されるように、側壁が中央部に向かって傾斜しているようなすり鉢状の容器が使用されうる。また、対象物が滑らないようにする滑り止めの構造として突起物等を底面等の内面に備えた容器も使用されうる。このような容器を用いて空判定の処理を実施しようとすると、距離計測点との間の距離を得るところの面（基準面ともいう）を一意に設定できない。仮に、１つの基準面を選択してしまうと、選択した基準面によって空判定の結果が変わってしまう。また、基準面以外の容器の面に関する距離計測点が基準面から離れたものとして認識される。その結果、対象物が容器の中にないのに空であるとの判定ができない可能性がある。
【０００５】
本発明は、例えば、物体を配置しうる領域に当該物体がないか判定するのに有利な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一つの側面は、物体の位置および姿勢の認識のための処理を行う情報処理装置であって、
前記物体の距離の情報を得る処理を行う第１処理部と、
前記物体が配置されうる領域を表す複数の面それぞれと、前記第１処理部により前記情報を得られた各点との間の距離の最小値の統計量に基づいて、前記物体が前記領域にないか判定する処理を行う第２処理部と、
を有することを特徴とする情報処理装置である。
【発明の効果】
【０００７】
本発明によれば、例えば、物体を配置しうる領域に当該物体がないか判定するのに有利な情報処理装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置を含むシステムの構成例を示す図
【図２】情報処理装置の構成例を示す図
【図３】実施形態１に係るパレットおよび空判定処理を説明するための図
【図４】情報処理装置の処理の流れを例示する図
【図５】実施形態２に係るパレットおよび空判定処理を説明するための図
【図６】各距離計測点に関する最近傍距離を得る処理の流れを例示する図
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して本発明の実施形態を説明する。なお、実施形態を説明するための全図を通して、原則として（断りのない限り）、同一の部材等には同一の符号を付し、その繰り返しの説明は省略する。
【００１０】
〔実施形態１〕
図１は、情報処理装置を含むシステムの構成例を示す図である。図１において、情報処理装置１は、部品２（ワークまたは物体ともいう）と、それらを収容する為の容器としてのパレット３とを含む計測対象との距離を計測する距離計測装置１０（単に計測装置ともいう）を含みうる。また、情報処理装置１は、距離計測装置１０の出力に基づいて情報処理を行う情報処理部２０を含みうる。また、情報処理装置１は、距離計測装置１０および情報処理部２０の動作の制御や解析処理を行うコントローラ３０をも含みうる。距離計測装置１０は、３次元情報取得部１１（単に計測部ともいう）と距離取得部１２とを含み、要求される計測精度によってはデータ修正部１３も含みうる。３次元情報取得部１１は、計測対象を測定し、計測データを取得するデバイスであり、距離取得部１２は、当該計測データに基づいて計測対象の距離情報（３次元情報）を取得するデバイスである。３次元情報取得部１１の構成は、例えば、いわゆるＴＯＦ（Ｔｉｍｅ  ｏｆ  Ｆｌｉｇｈｔ）センサを含むものとしうる。または、３次元情報取得部１１は、２台のカメラ（撮像部）を含むステレオカメラを含むものとしうる。または、３次元情報取得部１１は、パターン投影部（プロジェクター）とカメラ（撮像部）とを含んで構成され、パターンを投影された対象物の撮像結果（画像データ）を取得するものとしうる。投影パターンは、空間符号化法や位相シフト法によるものが用いられうる。または、３次元情報取得部１１は、スリット光投影部と撮像部とを含み、光切断法にしたがったものとしうる。また、３次元情報取得部１１は、１次元または２次元の情報を取得するデバイス（撮像部）を含み、デバイスと対象物との間の相対的なスキャンによりデータを取得するものとしうる。
【００１１】
距離取得部１２（第１処理部を構成しうる）は、３次元情報取得部１１に付帯するか、コントローラ３０の内部に存在するかしうるものであり、ＣＰＵなどの処理部を含んで構成されうる。距離取得部１２は、３次元情報取得部１１の計測方法に対応した解析方法で計測データに基づいて３次元情報（距離情報）を得る。データ修正部１３（距離取得部１２とともに第１処理部を構成しうる）は、距離取得部１２により得られた３次元情報の補正を行ったり、信頼性が低い距離計測点の除外を行ったりする。当該補正は、例えば、３次元情報取得部に含まれている光学系の収差に係る情報に基づく計測データの補正を含む。また、距離計測点の除外は、例えば、得られた距離計測値が周囲の距離計測値に対して大きく（閾値を超えて）ずれている距離計測点を後続の認識処理から除外することを含みうる。なお、３次元情報は、距離計測装置１０内の基準点からの距離（距離画像）の情報としてもよいし、３次元座標を表す情報であってもよい。以上の距離計測装置１０における動作の制御や解析処理は、コントローラ３０によって行われうる。
【００１２】
コントローラ３０は、部品２を把持するためのロボット４と接続されている。情報処理部２０は、距離計測装置１０により得られた３次元情報に基づいて解析を行い、その結果をロボット４に通知（送信）する機能を有する。情報処理部２０は、空判定部２１（第２処理部を構成しうる）と位置姿勢取得部２２とを含みうる。
【００１３】
空判定部２１は、パレット３（容器）内の領域のような物品２が配置されうる領域に部品２がない（残存していない又は空である）かの判定（空判定ともいう）を行う。当該領域に部品がない（パレットが空である）場合には、情報処理装置１は、後述の表示部を介して、その旨をユーザに通知し、部品２の補充を促す。なお、容器が存在せず、部品２が床や台の上の領域に直接配置されている場合は、計測（撮像）視野内の当該領域の面を容器内の（底）面と同様に扱って以下の処理を行えば、空判定を行うことができる。
【００１４】
位置姿勢取得部２２は、例えば、部品２の距離計測値に対して部品２の形状情報をフィッティングさせることにより、部品２の位置および姿勢（例えば並進３自由度および回転３自由度に関する情報（座標））を得る。当該フィッティングにより位置および姿勢を精度良く推定することができ、よって、ロボットによる部品に対する把持等の処理を高精度に行うことができる。さらに、部品２の位置および姿勢に基づいて、部品を処理するロボット（ハンド）の位置および姿勢を得てもよい。また、ロボット（ハンド）の形状情報に基づいて、部品２の周囲のものに干渉せずにロボット４が部品２処理することができるかの判定を行ってもよい。なお、ロボットは、例えば、磁力または吸着により部品を保持するハンドを有しうる。また、ロボットは、複数の指の動きにより部品を保持するハンドを有しうる。ロボットハンドは、ロボットアームに取り付け可能なエンドエフェクタであれば、いかなるものであってもよい。
【００１５】
コントローラ３０は、距離取得部１２およびデータ修正部１３ならびに情報処理部２０を含みうるものであり、情報処理に必要なデータの取得や情報処理の結果の通知（送信）を行いうる。コントローラ３０は、例えば、情報処理部２０で得られた結果をロボット４（の制御部）に通知する機能も有する。
【００１６】
図２は、情報処理装置の構成例を示す図である。なお、情報処理装置は、図２に示されるパーソナルコンピュータ（ＰＣ）のような汎用システムの構成に限られず、例えば、組み込みシステムの構成やネットワークを介した分散システムの構成もとりうる。図２において、ＣＰＵ２０１は、プログラムにしたがって、情報処理やデバイスの制御を行う。ＲＯＭ２０２は、不揮発性のメモリで、情報処理装置の初期動作に必要なプログラムを記憶している。ＲＡＭ２０３および２次記憶部２０４は、ＣＰＵ２０１が使用する情報２２０を記憶する。この情報２２０は、例えば、ＯＳ２２１、アプリケーション２２２、モジュール２２３、およびデータ２２４を含みうる。データ解析部２０５は、距離取得部１２や、空判定部２１、位置姿勢取得部２２等での処理の少なくとも一部のための専用ハードウェア回路である。なお、データ解析部２０５を備えず、ＣＰＵ２０１で動作させるプログラムにより全ての処理を行う構成とすることもできる。しかし、そのようにすると、コストの点では有利となりうるが、処理速度の点では不利となりうる。
【００１７】
以上のハードウェアデバイス２０１ないし２０５は、バス２０６を介して情報をやり取りしうる。当該バス２０６には、計測制御部２０７、ディスプレイ２０８、キーボード２０９、マウス２１０、Ｉ／Ｏデバイス２１１が接続されている。計測制御部２０７は、３次元情報取得１１に接続して計測タイミングの制御等を行う専用Ｉ／Ｆを備える。ディスプレイ２０８は、処理の結果等の情報を表示しうる。ディスプレイ２０８は、例えば、空判定の結果（部品が空になったこと）を表示しうる。なお、当該表示は、視覚に係るものに限定されず、他の感覚（例えば聴覚）に係るものであってもよい。キーボード２０９およびマウス２１０は、ユーザからの指示を入力するのに用いられうる。Ｉ／Ｏデバイス２１１は、新規データや登録用データを取り込むのに用いられうる。本実施形態は、入力データとして３次元情報を必要とし、よって、インプットデバイスとして、３次元情報取得部１１を含みうる。３次元情報取得部１１は、３次元情報の取得のためのデータまたは当該取得のための補助的データとして２次元画像データを取り込む場合は、物体を撮像する１台のカメラ（撮像部）を含みうる。Ｉ／Ｏデバイス（２０９）に接続されるアウトプットデバイスは、情報処理の結果を他の情報処理装置へ出力するデバイスを含みうる。出力先は、例えば、ロボット４（の制御部）等としうる。ロボット４は、当該結果（位置および姿勢）の情報に基づいて、パレット３からの部品２の取り出し等の部品２の処理を行いうる。
【００１８】
次に、本実施形態における処理の流れを図３および図４を参照して説明する。図３は、実施形態１に係るパレットおよび空判定処理を説明するための図である。図３（Ａ）は、パレットモデルの斜視図、図３（Ｂ）は、パレットモデルの上視図、図３（Ｃ）は、パレットモデルの断面図、図３（Ｄ）は、パレットモデルと距離計測点との間の位置関係をそれぞれ示している。ここで、パレットモデル３００は、パレット３の細部構造や細かい凹凸を無視または簡略化した面の集合として、ＣＡＤ（Ｃｏｍｐｕｔｅｒ−ａｉｄｅｄ  Ｄｅｓｉｇｎ）またはポリゴン等でパレット３を表現したモデルとしうる。パレットモデル３００の内側は、９つの平面、すなわち、４つの垂直面３０１（３０１−Ａ、３０１−Ｂ、３０１−Ｃ、３０１−Ｄ）と、４つの傾斜面３０２（３０２−Ａ、３０２−Ｂ、３０２−Ｃ、３０２−Ｄ）と、水平面３０３とで構成されている。矢印３０５−Ａまたは３０５−Ｂは、対応する（平）面（の法線）の向きを示している（図３（Ｃ）において、不図示の（平）面に対応する矢印は不図示）。ここで、視線ベクトル３０４（光軸ベクトルまたは単に光軸ともいう）は、３次元情報取得部１１の視線または光軸の向きを示す。パレットモデル３００の各面の向き３０５−Ａは、視線ベクトル３０４に対して凡そ正対しており、３０５−Ｂは、凡そ正対してはいない。垂直面３０１−Ｂ、傾斜面３０２−Ａ、３０２−Ｂ、３０２−Ｃ、水平面３０３の向きが向き３０５−Ａであり、垂直面３０１−Ａ、３０１−Ｃ、３０１−Ｄ、傾斜面３０２−Ｄの向きが向き３０５−Ｂである。
【００１９】
距離計測点３０６（３０６−Ａ、３０６−Ｂ、３０６−Ｃ、３０６−Ｄ）は、距離取得部１２により得られた距離計測点である。距離計測点３０６−Ａおよび距離計測点３０６−Ｂは、パレット内面の点に対応し、パレットモデルの面に属している。一方、距離計測点３０６−Ｃおよび距離計測点３０６−Ｄは、パレット内に格納された部品２の表面の点に対応し、パレットモデルの面から離れている（宙に浮いている）。
【００２０】
ここで、図４は、情報処理装置の処理の流れを例示する図である。図４において、ステップＳ４０１では、情報処理装置１は、ロボット４（の制御部）またはユーザからの指示に基づいて、計測対象物の３次元情報としての距離計測点のデータＤ４０２を取得する。距離計測点のデータＤ４０２は、データ修正部により計測値の補正や信頼性の低い計測点の除去を行われたものであってもよい。
【００２１】
ステップＳ４０３では、距離計測点Ｄ４０２に対してパレットモデル３００のフィッティングを実施してパレットモデルの位置および姿勢を取得する。フィッティングは、パレットモデル３００の開口部の周囲の上枠部に関して行うと好ましい場合が多い。なぜなら、パレット３内にワーク３がばら積みされていても、当該上枠部が遮られることは少ないからである。勿論フィッティングは、それに加えて又はそれ以外の遮られないパレットの部位に関して行ってもよい。また、カメラからの２次元画像データの輝度勾配等を解析してパレットの位置および姿勢を取得してもよい。また、パレット３の位置および姿勢の情報は、それが既知である場合やユーザにより直接指定された場合は、それをそのまま利用してもよい。パレットモデル３００の位置および姿勢の情報が得られると、パレット３００の構造の事前情報に基づいて、パレットの各面の位置および姿勢のデータＤ４０４を得る（生成する）ことができる。
【００２２】
ステップＳ４０５では、空判定の処理で基準とするべき複数の（基準）面（の位置および姿勢）のデータＤ４０６を生成（設定または選択）する。当該基準面は、部品２が配置されうる領域を表す面である。基準面は、パレットモデル３００の内面の形状に基づいて複数生成（設定）される。基準面は、視線ベクトル３０４に対して６０度以上１２０度以下程度の角度をなすように設定すると望ましい場合が多い。なぜなら、そのような面（垂直面３０１−Ｂ、傾斜面３０２−Ａ、３０２−Ｂ、３０２−Ｃ、水平面３０３）の距離計測点の計測精度が高く、データ修正部によるノイズ除去処理等によるデータの欠損が生じにくいからである。また、重力の方向とは反対の方向となす角度が閾値より小さい法線方向を有する面を基準面に設定してもよい。当該設定によれば、少なくなった部品２が配置される確率が高い面が選ばれ、空判定で誤る確率が比較的抑えられるからである。当該閾値は、例えば、部品が面から転がり落ちないような面の角度の上限値としうる。
【００２３】
ステップＳ４０７では、空判定に使用しない不要な距離計測点を除外する。距離計測点３０６−Ａおよび距離計測点３０６−Ｂは、それぞれ非基準面である垂直面３０１−Ｄおよび傾斜面３０２−Ｂ内の点である。そのため、空判定を誤らないように、それらの距離計測点は除外することが望ましい。よって、いずれかの非基準面との距離が閾値より小さい距離計測点を除外するのがよい。
【００２４】
ステップＳ４０８では、距離計測点それぞれに関して最近傍に存在する基準面との距離（最近傍距離）を得る。基準面として設定した５面（垂直面３０１−Ｂ、傾斜面３０２−Ａ、３０２−Ｂ、３０２−Ｃ、水平面３０３）は、面同士（任意の２面）が互いに凹角をなして配置（接続）されているため、距離計測点との距離が最小となる基準面が必ず最近傍に位置する。従って、各基準面と距離計測点との間の距離の最小値を得ればよい。そうすると、距離計測点３０６−Ｃは、５面のうち水平面３０３が最近傍の基準面であり、それへの距離が最近傍距離３０７となる。
【００２５】
ステップＳ４０９では、各距離計測点の最近傍距離３０７の総和が閾値を超えない場合に部品が存在しない（空である）と判定する。逆に、当該最近傍距離の総和が閾値を超える場合には、部品が存在すると判定する。当該判定に用いる量は、最近傍距離３０７の総和に替えて、最近傍距離３０７の平均値もしくは標準偏差などの他の統計量または最近傍距離３０７のヒストグラムから得られる他の統計量等としうる。なお、部品が存在する領域把握する為に、空判定の対象となる領域を分割して得られた領域毎に上述の空判定を実施してもよい。当該分割は、例えば、３次元情報取得部１１により得ら得られた２次元画像において位置（座標）の近い計測点どうしが同じ領域に属するようになしうる。全ての領域で「空である」と判定されれば、パレット３の内部に部品がない（パレットは空である）と判定することができる。
【００２６】
各基準面と距離計測点との距離および最近傍距離は、負の値も有するように取り扱ってもよい。すなわち、距離計測点が基準面のどちら側にあるかに基づいて正または負の符号を定義できる。符号が負となるのは、基準面に関して３次元情報取得部１１の反対側に計測点が存在する場合としうる。その場合、負の距離は信頼性の低いものとして取り扱う（当該符号に基づいて計測点の信頼性を評価する、例えば、当該符号が負となる計測点を除外する）ことにより、より正確な空判定が可能となる。
【００２７】
また、他の基準面と隣接しない境界を持つ基準面は、空判定機能に影響のない範囲でパレット３の有する面の境界を超えて領域を拡大してもよい。例えば、基準面の一つである垂直面３０１−Ｂの領域をパレットの上方へ拡大すると、パレットの上端部の距離計測点は、垂直面３０１−Ｂより外側に存在し、負の距離を有するものとして認識される。よって、そのような空判定に不要な距離計測点を除外しうる。
【００２８】
上記ステップＳ４０９においてパレット３が空であると判定された場合、ディスプレイ２０８またはロボットにその旨を通知し、部品の補充またはパレットの交換を促す（ステップＳ４１０）。パレット３が空でないと判定された場合は、距離計測点Ｄ４０２に基づいて、パレット３に配置された部品２の位置および姿勢を推定する（ステップＳ４１１）。当該推定の結果は、ロボット４に通知され、ロボット４は、当該結果に基づいてパレット３の内部から部品２を取り出す（ステップＳ４１２）。
【００２９】
以上のように、本実施形態によれば、例えば、物体を配置しうる領域に当該物体がないか判定するのに有利な情報処理装置を提供することができる。
【００３０】
〔実施形態２〕
本実施形態は、基準面同士（ある２面）が互いに凸角をなして配置（接続）されている箇所が存在し、かつ曲面を含むようなパレット（モデル）に関する。情報処理装置１のハードウェア構成は、実施形態１におけるそれと同様としうる。図５は、実施形態２に係るパレットおよび空判定処理を説明するための図である。図５（Ａ）は、パレットモデルの斜視図、図５（Ｂ）は、パレットモデルの上視図、図５（Ｃ）は、パレットモデルの断面図、図５（Ｄ）は、パレットモデルと距離計測点との間の位置関係を示している。パレットモデル５００は、突起部付きのパレット３をモデル化して得られたものである。パレットモデル５００の内面は、４つの垂直面５０１（５０１−Ａ、５０１−Ｂ、５０１−Ｃ、５０１−Ｄ）と、２つの傾斜面５０２（５０２−Ａ、５０２−Ｂ）と、２つの水平面５０３（５０３−Ａ、５０３−Ｂ）との合計８面からなる。境界線５０６−Ａは、傾斜面５０２−Ａと傾斜面５０２−Ｂとの間の境界線であり、境界線５０６−Ｂは、傾斜面５０２−Ｂと水平面５０３−Ｂとの間の境界線である。
【００３１】
本実施形態では、パレット３は、水平な面に置かれ、重力の方向とは反対の方向５０４と方向が近い傾斜面５０２と水平面５０３との合計４面を基準面に設定する。距離計測点５０７−Ａおよび５０７−Ｂは、部品２の表面を計測して得られた距離計測点の例である。距離計測点５０７−Ａから傾斜面５０２−Ｂ、水平面５０３−Ｂに下ろした垂線の足は、いずれも有界（境界を有すること）の基準面の内部にはなく、距離計測点５０７−Ｂから水平面５０３−Ｂに下ろした垂線の足は、有界の基準面５０３−Ｂの内部に存在する。
【００３２】
図６は、各距離計測点に関する最近傍距離を得る処理の流れを例示する図である。当該処理において、実施形態１におけるそれと異なる点は、距離計測点５０７−Ａのように全ての基準面へ下ろした垂線の足が有界の基準面の内部に存在しない場合に、基準面の境界線やその端点を参照して最近傍距離を得る点である。なお、最近傍距離を得た後の空判定の処理は、実施形態１におけるそれと同様であるため、割愛する。まず、ステップＳ６０１では、距離取得部１２により距離計測点のデータを得る。ステップＳ６０２では、パレットの構造や配置に基づいて予め設定された複数の基準面から１つを選択する。ステップＳ６０３からステップＳ６０６までのステップは、基準面との間の最小距離が有界の基準面の内部に存在するか判定を行い、そうであった場合に当該最小距離を最近傍距離とするものである。最小距離が有界の基準面の内部に存在しなければ、ステップＳ６１１に処理を進める。
【００３３】
ステップＳ６０３では、距離計測点と基準面との間の距離のうち最小となる距離Ａを得る。ここで、基準面が平面であれば、距離計測点から基準面に下ろした垂線の長さを距離Ａとすればよい。基準面が球面や円筒面、円錐面、放物面等の解析的な曲面であれば、当該曲面と接する接平面の法線ベクトルと重なる直線の上に距離計測点が存在するとの条件を満たす接平面の接点と距離計測点との間の距離を得ればよい。また、基準面がパラメトリック曲面や自由曲面であれば、基準面に属する各点と距離計測点との間の距離の最小値を得る方法を採用しうる。この場合、各点（画素）のピッチが部品２のサイズより十分小さければ、空判定の正確さを確保できる。
【００３４】
例えば、距離計測点５０７−Ａと基準面（曲面）としての傾斜面５０２−Ｂとの距離Ａ（５０９）は、接平面５０８−Ａの接点と、接平面の法線ベクトルに重なる直線の上に存在する距離計測点５０７−Ａとの間の距離である。なお、パレットモデル５００を構成する基準面は、実物のパレット２の面の形状を近似する精度と計算負荷とのバランスを考慮して設定すればよい。例えば、基準面を単純な形状（例えば平面）で近似すれば、近似精度では不利となり、計算負荷では有利となりうる。基準面をパラメトリック曲面とすれば、近似精度では有利となり、計算負荷では不利となりうる。
【００３５】
ステップＳ６０４では、ステップＳ６０３で得られた最小距離（距離Ａ）に対応する点は、基準面の境界内（有界の基準面の内部）にあるか判定する。当該判定は、ステップＳ６０３で判明している、距離計測点から最小距離にある（境界なしの又は有界でない）基準面上の座標に基づいて行いうる。例えば、基準面が平面ならば、距離計測点から下ろした垂線の足の座標がその平面の境界内（有界の平面の内部）にあるか判定する。当該座標が境界内にあれば、ステップＳ６０５に処理を進め、そうでなければ、ステップＳ６１１に処理を進める。
【００３６】
例えば、距離計測点が５０７−Ａと基準面が５０２−Ｂとの間の距離Ａ（５０９）に係る垂線の足は、基準面５０２−Ｂの境界外に存在するため、当該距離Ａの値は採用せず、ステップＳ６１１に処理を進める。
【００３７】
ステップＳ６０５では、最近傍距離の候補として距離Ａを参照する。すなわち、他に最近傍距離の候補がなければ、最近傍距離を距離Ａとし、当該候補があれば、それと距離Ａとを比較して大きくない方の値で最近傍距離を更新する。
【００３８】
ステップＳ６０６では、すべての基準面に関して距離計測点との距離を評価したか判定する。まだ参照していない基準面が存在する場合は、ステップＳ６０２に戻り、別の基準面に関して以上の処理を繰り返す。全ての基準面を評価し終えた場合、その時点の最近傍距離の候補が最近傍距離（Ｄ６０７）となる。空判定は、距離計測点毎に得られた最近傍距離Ｄ６０７を実施形態１におけるのと同様に統計処理することにより判定しうる。
【００３９】
ステップＳ６１１からステップＳ６１６までのステップは、基準面の境界である境界線に基づいて最小距離を得るものである。ステップＳ６１１では、基準面の境界をなす未評価の境界線のうち１つを選択し、当該境界線を記述する情報（数式またはパラメータ等）を取得する。ステップＳ６１２では、現在評価している基準面と隣接する別の基準面とが（境界線の全域において）互いに凹角で隣接しているか判定する。凹角で隣接していれば、境界線と距離計測点との間の最小距離は、必当該別の基準面との最小距離より大きくなるため、最近傍距離の候補とはならない。よって、当該境界線と距離計測点との間の距離を評価する必要がないため、ステップＳ６１６に処理を進める。そうでなければ、ステップＳ６１３に処理を進める。ステップＳ６１２における判定条件を満す例として、距離計測点が５０７−Ｂであり、基準面が傾斜面５０２−Ｂであり、かつ境界線が５０６−Ｂである場合がある。
【００４０】
ステップＳ６１３では、距離計測点と境界線との間の最小距離Ｂを得る。境界線が直線ならば、距離計測点から当該直線に降ろした垂線の長さを得る。境界線が円弧もしくは放物線等の解析的な曲線またはパラメトリック曲線ならば、ステップＳ６０３で記した、面への最小距離を得る方法と同様に、それぞれ解析的に又は近似的に最小距離を得ればよい。例えば、距離計測点５０７−Ａであり、かつ基準面が傾斜面５０２−Ｂである場合、傾斜面５０２−Ｂと傾斜面５０２−Ａとの境界線５０６−Ａが距離Ｂを与える境界線となる。
【００４１】
ステップＳ６１４では、ステップＳ６１３で得た距離Ｂに対応する点（垂線の足）は、境界線の両端点の間（有界の境界線上）にあるか判定する。ステップＳ６０４との違いは、基準面の替わりに境界線を用いることである。当該判定は、例えば、各端点の座標または各端点を示す境界線のパラメータに基づいて行いうる。ステップＳ６１３で例示した距離Ｂに対応する点は、ステップＳ６１４の条件を満たす（有界の境界線上にある）。ステップＳ６１４の条件が満たされた場合、ステップＳ６１５に処理を進める。ステップＳ６１５では、ステップＳ６０５で行ったのと同様の最近傍距離の更新を行う。ただし、距離Ａの替わりに距離Ｂを用いる。ステップＳ６１４の条件が満たされなかった場合、境界線の各端点（頂点）の情報（座標）を取得し（ステップＳ６２１）、各端点と距離計測点との間の距離を得た後、そのうちの最小値として距離Ｃを得る（ステップＳ６２２）。つづいて、ステップＳ６０５で行ったのと同様の最近傍距離の更新を行う。ただし、距離Ａの替わりに距離Ｃを用いる（ステップＳ６２３）。ステップＳ６２３で更新がなされる場合として、３つの基準面が端点（頂点）を共有する場合がある。
【００４２】
ステップＳ６１５またはステップＳ６２３が実施されたら、評価している基準面が有する全ての境界線を評価したか判定する（ステップＳ６１６）。全境界線のうち未だ評価していないものがあれば、ステップＳ６１１に戻り別の境界線に関してステップＳ６１１から処理を繰り返す。全境界線の評価を終了したら、ステップＳ６０６に処理を進める。
【００４３】
ステップＳ６０６で全基準面の評価を終了したと判定されたら、その時点での最近傍距離の候補を最終的な最近傍距離Ｄ６０７として確定する。
【００４４】
以上の処理では、境界線の情報を各基準面に関して必要となる度に得ている。しかし、互いに異なる基準面が境界線および端点を共有している場合が多いから、境界線および端点の情報をステップＳ６０１の時点で予め取得して、より効率的な処理とすることもできる。なお、上述したように、基準面どうしが互いに凹角で接続され、その境界線や当該境界線の端点からの距離が、評価している基準面とは別の基準面からの距離より小さくなる可能性がない場合もある。その場合は、当該境界線や当該端点と距離計測点との間の距離の評価をスキップ（省略）しうる。
【００４５】
以上のように、本実施形態によれば、例えば、物体を配置しうる領域に当該物体がないか判定するのに有利な情報処理装置を提供することができる。
【００４６】
〔物品製造方法に係る実施形態〕
上述の計測部１１は、ある支持部材に支持された状態で使用されうる。計測部１１は、例えば、ロボット４（把持装置）に備え付けられて使用されうる。ここで、情報処理装置１とロボット４とを含むシステムが構成されうる。当該情報処理装置、当該ロボット、または当該システムは、物品製造方法に用いられうる。情報処理装置１は、物体２の位置および姿勢の認識のための処理を行い（第１工程）、当該処理により得られた位置および姿勢の情報をロボット（の制御部）４が取得する。ロボット４は、当該位置および姿勢の情報に基づいて、物体２の処理を行う（第２工程）。当該処理は、例えば、ロボットの先端のハンドなど（保持部またはエンドエフェクタ）で物体２を保持して移動（並進や回転など）させることである。または、ロボット４によって物体２を他の物体に組み付けることである。または、ロボット４によって物体２を加工することである。このような処理により、複数の物体（部品）で構成された物品（例えば電子回路基板や機械など）を製造することができる。なお、ロボットの制御部は、ＣＰＵなどの演算装置やメモリなどの記憶装置を含みうる。また、ロボットを制御する制御部は、ロボットの外部に設けてもよい。また、計測装置１０により得られた計測データや画像データは、ディスプレイ２０８などの表示部に表示しうる。
【００４７】
〔その他の実施形態〕
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータ（またはＣＰＵやＭＰＵ等）がソフトウェアを読み出して実行する処理である。
【符号の説明】
【００４８】
１  情報処理装置
１２  距離取得部（第１処理部を構成）
２１  空判定部（第２処理部を構成）
【図１】
0006758903.tif 000002
【図２】
0006758903.tif 000003
【図３】
0006758903.tif 000004
【図４】
0006758903.tif 000005
【図５】
0006758903.tif 000006
【図６】
0006758903.tif 000007