(57)【特許請求の範囲】
【請求項１】
ワークをモデル化したワークモデルが積み重ねられた状態を仮想空間上に再現するバラ積み演算部と、
奥行き計測センサをモデル化したセンサモデルを前記仮想空間上に配置し、前記センサモデルによって前記ワークモデルの各点の奥行き計測を模擬して前記各点における奥行き情報からなる奥行きデータを生成する奥行き計測模擬部と、
複数のロボットハンドの形状をモデル化したハンド形状モデルと前記奥行きデータとに基づいて、前記ロボットハンドにおける前記ワークモデルの把持可能性を複数の前記ロボットハンドの前記形状に対して算出し、前記把持可能性に基づいて前記ロボットハンドの前記形状を選択するハンド選択部とを備え、
前記ハンド形状モデルは、
前記ワークを把持する際に前記ワークに接触すべき領域を奥行きデータの奥行き方向と垂直な面に投影した２次元の領域であるハンド接触領域と、
前記ワークを把持する際に前記ハンド接触領域が前記ワークに接触するより先に前記ワークに衝突する可能性のある領域がある場合には、前記衝突する可能性のある領域を前記垂直な面に投影した２次元の領域であるハンド衝突領域とで定義され、
前記ハンド選択部は、
前記奥行きデータにおける各点の集まりである計測領域のうち前記ロボットハンドが前記ワークを把持する際に前記ハンド接触領域を接触させる候補となる領域であるワークモデル接触領域と、
前記計測領域のうち前記ワークモデル接触領域に前記ハンド接触領域を接触させるより先に前記ハンド衝突領域が衝突する可能性のある領域であるワークモデル衝突領域と
を前記奥行きデータに基づいて求め、
前記ハンド接触領域及び前記ハンド衝突領域並びに前記ワークモデル接触領域及び前記ワークモデル衝突領域に基づいて把持可能性を算出する
ことを特徴とするロボットシミュレーション装置。
【請求項２】
前記ワークモデルは、前記ワークの重心の位置情報を有し、
前記ハンド選択部は、前記重心の位置情報を用いて前記把持可能性を算出する
ことを特徴とする請求項１に記載のロボットシミュレーション装置。
【請求項３】
前記ハンド選択部は、
前記ロボットハンドが前記ワークモデルを把持して持ち上げる際の周辺の干渉物の数を用いて前記把持可能性を算出する
ことを特徴とする請求項１に記載のロボットシミュレーション装置。
【請求項４】
前記ハンド選択部は、
前記把持可能性が最も高い前記ロボットハンドの前記形状を選択する
ことを特徴とする請求項１から請求項３のいずれか１項に記載のロボットシミュレーション装置。
【請求項５】
ワークをモデル化したワークモデルが積み重ねられた状態を仮想空間上に再現するバラ積み演算部と、
奥行き計測センサをモデル化したセンサモデルを前記仮想空間上に配置し、前記センサモデルによって前記ワークモデルの各点の奥行き計測を模擬して前記各点における奥行き情報からなる奥行きデータを生成する奥行き計測模擬部と、
複数のロボットハンドの形状をモデル化したハンド形状モデルと前記奥行きデータとに基づいて、前記ロボットハンドにおける前記ワークモデルの把持可能性を複数の前記ロボットハンドの前記形状に対して算出し、前記把持可能性に基づいて前記ロボットハンドの前記形状を選択するハンド選択部とを備え、
前記ハンド選択部は、
複数種類の前記ワークモデルに対して求められた前記把持可能性の平均値が最も高い前記ロボットハンドの前記形状を選択する
ことを特徴とするロボットシミュレーション装置。
【請求項６】
ワークをモデル化したワークモデルが積み重ねられた状態を仮想空間上に再現するバラ積み演算部と、
奥行き計測センサをモデル化したセンサモデルを前記仮想空間上に配置し、前記センサモデルによって前記ワークモデルの各点の奥行き計測を模擬して前記各点における奥行き情報からなる奥行きデータを生成する奥行き計測模擬部と、
複数のロボットハンドの形状をモデル化したハンド形状モデルと前記奥行きデータとに基づいて、前記ロボットハンドにおける前記ワークモデルの把持可能性を複数の前記ロボットハンドの前記形状に対して算出し、前記把持可能性に基づいて前記ロボットハンドの前記形状を選択するハンド選択部とを備え、
前記バラ積み演算部は、前記ワークモデルが積み重ねられた状態を複数回再現し、
前記ハンド選択部は、複数回再現された前記ワークモデルが積み重ねられた状態に対して求められた前記把持可能性の平均値が最も高い前記ロボットハンドの前記形状を選択する
ことを特徴とするロボットシミュレーション装置。
【請求項７】
複数の前記ロボットハンドの前記形状には、把持方式の異なる前記形状が含まれる
ことを特徴とする請求項１から請求項６のいずれか１項に記載のロボットシミュレーション装置。
【請求項８】
前記把持方式には、挟把方式と吸着方式とが含まれる
ことを特徴とする請求項７に記載のロボットシミュレーション装置。
【請求項９】
前記ハンド選択部で選択された前記形状に対応する前記把持可能性に基づいて、前記ロボットハンドの動作を制御する制御パラメータを変更する制御パラメータ変更部を備える
ことを特徴とする請求項１から請求項８のいずれか１項に記載のロボットシミュレーション装置。
【請求項１０】
情報処理装置を
ワークをモデル化したワークモデルが積み重ねられた状態を仮想空間上に再現するバラ積み演算部と、
奥行き計測センサをモデル化したセンサモデルを前記仮想空間上に配置し、前記センサモデルによって前記ワークモデルの各点の奥行き計測を模擬して前記各点における奥行き情報からなる奥行きデータを生成する奥行き計測模擬部と、
複数のロボットハンドの形状をモデル化したハンド形状モデルと前記奥行きデータとに基づいて、前記ロボットハンドにおける前記ワークモデルの把持可能性を複数の前記ロボットハンドの前記形状に対して算出し、前記把持可能性に基づいて前記ロボットハンドの前記形状を選択するハンド選択部と
して機能させ、
前記ハンド形状モデルは、
前記ワークを把持する際に前記ワークに接触すべき領域を奥行きデータの奥行き方向と垂直な面に投影した２次元の領域であるハンド接触領域と、
前記ワークを把持する際に前記ハンド接触領域が前記ワークに接触するより先に前記ワークに衝突する可能性のある領域がある場合には、前記衝突する可能性のある領域を前記垂直な面に投影した２次元の領域であるハンド衝突領域とで定義され、
前記ハンド選択部は、
前記奥行きデータにおける各点の集まりである計測領域のうち前記ロボットハンドが前記ワークを把持する際に前記ハンド接触領域を接触させる候補となる領域であるワークモデル接触領域と、
前記計測領域のうち前記ワークモデル接触領域に前記ハンド接触領域を接触させるより先に前記ハンド衝突領域が衝突する可能性のある領域であるワークモデル衝突領域と
を前記奥行きデータに基づいて求め、
前記ハンド接触領域及び前記ハンド衝突領域並びに前記ワークモデル接触領域及び前記ワークモデル衝突領域に基づいて把持可能性を算出する
ことを特徴とするロボットシミュレーションプログラム。
【請求項１１】
請求項１０に記載のロボットシミュレーションプログラムを記録した記録媒体。
【請求項１２】
バラ積み演算部が、ワークをモデル化したワークモデルが積み重ねられた状態を仮想空間上に再現するステップと、
奥行き計測模擬部が、奥行き計測センサをモデル化したセンサモデルを前記仮想空間上に配置し、前記センサモデルによって前記ワークモデルの各点の奥行き計測を模擬して前記各点における奥行き情報からなる奥行きデータを生成するステップと、
ハンド選択部が、複数のロボットハンドの形状をモデル化したハンド形状モデルと前記奥行きデータとに基づいて、前記ロボットハンドにおける前記ワークモデルの把持可能性を複数の前記ロボットハンドの前記形状に対して算出し、前記把持可能性に基づいて前記ロボットハンドの前記形状を選択するステップと
を備え、
前記ハンド形状モデルは、
前記ワークを把持する際に前記ワークに接触すべき領域を奥行きデータの奥行き方向と垂直な面に投影した２次元の領域であるハンド接触領域と、
前記ワークを把持する際に前記ハンド接触領域が前記ワークに接触するより先に前記ワークに衝突する可能性のある領域がある場合には、前記衝突する可能性のある領域を前記垂直な面に投影した２次元の領域であるハンド衝突領域とで定義され、
前記ロボットハンドの前記形状を選択するステップは、
前記奥行きデータにおける各点の集まりである計測領域のうち前記ロボットハンドが前記ワークを把持する際に前記ハンド接触領域を接触させる候補となる領域であるワークモデル接触領域と、
前記計測領域のうち前記ワークモデル接触領域に前記ハンド接触領域を接触させるより先に前記ハンド衝突領域が衝突する可能性のある領域であるワークモデル衝突領域と
を前記奥行きデータに基づいて求めるステップと、
前記ハンド接触領域及び前記ハンド衝突領域並びに前記ワークモデル接触領域及び前記ワークモデル衝突領域に基づいて把持可能性を算出するステップとを備える
ことを特徴とするロボットシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ロボットアームがバラ積みされたワークを取り出す作業を仮想空間上でシミュレーションする技術に関する。
【背景技術】
【０００２】
センサ、ロボット、ワークのモデルを配置し、さらにワークが乱雑に積まれた状態を作成した仮想空間上で実際のバラ積み取り出し作業を模擬し、作業時間を推定する従来のロボットシミュレーション装置が、例えば特許文献１に開示されている。このようなロボットシミュレーション装置を用いて作業時間を見積もることで、実際のセンサ、ロボット、ワークを含んだシステムの設計や立ち上げを容易にし、設計や立ち上げにかかる作業期間を短縮することが可能となる。また、把持対象以外のワークに対するロボットハンドの干渉が比較的軽度である場合に対しては、ロボットのハンドモデルの寸法を仮想空間上で変更して、最適な寸法のロボットハンドを検討することが、例えば特許文献２に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２４１８５７
【特許文献２】特開２００７−３２６１６０（段落００４１）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のロボットシミュレーション装置においては、仮想空間上で最適な寸法のロボットハンドを検討することは記載されているが、把持対象以外のワークに対するロボットハンドの干渉が比較的軽度であるという限定された場合に対してのみであった。また、ロボットハンドの形状が適切でなければ、寸法の変更による把持成功率を高める効果はさらに限定的となる。一方、ワークの形状に応じて把持に適したロボットハンドの形状を選択することが可能となれば、選択の自由度が広がり、より多くの場合で把持成功率を高めることが可能となる。ロボットによるワークのバラ積み取り出し作業において、ワークの把持成功率が上がれば、取り出しにかかるタクトタイムは飛躍的に向上する。しかし、把持成功率を高めるロボットハンドの形状を選択できるロボットシミュレーション装置はこれまでになかった。
【０００５】
この発明は、上記の課題を解決するためになされたものであり、把持成功率を高めるロボットハンドの形状を仮想空間上での計算により選択できるロボットシミュレーション装置を得ることを目的としている。
【課題を解決するための手段】
【０００６】
この発明に係るロボットシミュレーション装置は、ワークをモデル化したワークモデルが積み重ねられた状態を仮想空間上に再現するバラ積み演算部と、奥行き計測センサをモデル化したセンサモデルを仮想空間上に配置し、センサモデルによってワークモデルの各点の奥行き計測を模擬して各点における奥行き情報からなる奥行きデータを生成する奥行き計測模擬部と、複数のロボットハンドの形状をモデル化したハンド形状モデルと奥行きデータとに基づいて、ロボットハンドにおけるワークモデルの把持可能性を複数のロボットハンドの形状に対して算出し、把持可能性に基づいてロボットハンドの前記形状を選択するハンド選択部とを備え、ハンド形状モデルは、ワークを把持する際にワークに接触すべき領域を奥行きデータの奥行き方向と垂直な面に投影した２次元の領域であるハンド接触領域と、ワークを把持する際にハンド接触領域がワークに接触するより先にワークに衝突する可能性のある領域がある場合には、衝突する可能性のある領域を垂直な面に投影した２次元の領域であるハンド衝突領域とで定義され、ハンド選択部は、奥行きデータにおける各点の集まりである計測領域のうちロボットハンドがワークを把持する際にハンド接触領域を接触させる候補となる領域であるワークモデル接触領域と、計測領域のうちワークモデル接触領域にハンド接触領域を接触させるより先にハンド衝突領域が衝突する可能性のある領域であるワークモデル衝突領域とを奥行きデータに基づいて求め、ハンド接触領域及びハンド衝突領域並びにワークモデル接触領域及びワークモデル衝突領域に基づいて把持可能性を算出するものである。
また、この発明に係るロボットシミュレーション装置は、ワークをモデル化したワークモデルが積み重ねられた状態を仮想空間上に再現するバラ積み演算部と、奥行き計測センサをモデル化したセンサモデルを仮想空間上に配置し、センサモデルによってワークモデルの各点の奥行き計測を模擬して各点における奥行き情報からなる奥行きデータを生成する奥行き計測模擬部と、複数のロボットハンドの形状をモデル化したハンド形状モデルと奥行きデータとに基づいて、ロボットハンドにおけるワークモデルの把持可能性を複数のロボットハンドの形状に対して算出し、把持可能性に基づいてロボットハンドの形状を選択するハンド選択部とを備え、ハンド選択部は、複数種類のワークモデルに対して求められた把持可能性の平均値が最も高いロボットハンドの形状を選択するものである。
また、この発明に係るロボットシミュレーション装置は、ワークをモデル化したワークモデルが積み重ねられた状態を仮想空間上に再現するバラ積み演算部と、奥行き計測センサをモデル化したセンサモデルを仮想空間上に配置し、センサモデルによってワークモデルの各点の奥行き計測を模擬して各点における奥行き情報からなる奥行きデータを生成する奥行き計測模擬部と、複数のロボットハンドの形状をモデル化したハンド形状モデルと奥行きデータとに基づいて、ロボットハンドにおけるワークモデルの把持可能性を複数のロボットハンドの形状に対して算出し、把持可能性に基づいてロボットハンドの形状を選択するハンド選択部とを備え、バラ積み演算部は、ワークモデルが積み重ねられた状態を複数回再現し、ハンド選択部は、複数回再現されたワークモデルが積み重ねられた状態に対して求められた把持可能性の平均値が最も高いロボットハンドの形状を選択するものである。
【発明の効果】
【０００７】
この発明に係るロボットシミュレーション装置は、ワークをモデル化したワークモデルが積み重ねられた状態を仮想空間上に再現するバラ積み演算部と、奥行き計測センサをモデル化したセンサモデルを仮想空間上に配置し、センサモデルによってワークモデルの各点の奥行き計測を模擬して各点における奥行き情報からなる奥行きデータを生成する奥行き計測模擬部と、複数のロボットハンドの形状をモデル化したハンド形状モデルと奥行きデータとに基づいて、ロボットハンドにおけるワークモデルの把持可能性を複数のロボットハンドの形状に対して算出し、把持可能性に基づいてロボットハンドの前記形状を選択するハンド選択部とを備え、ハンド形状モデルは、ワークを把持する際にワークに接触すべき領域を奥行きデータの奥行き方向と垂直な面に投影した２次元の領域であるハンド接触領域と、ワークを把持する際にハンド接触領域がワークに接触するより先にワークに衝突する可能性のある領域がある場合には、衝突する可能性のある領域を垂直な面に投影した２次元の領域であるハンド衝突領域とで定義され、ハンド選択部は、奥行きデータにおける各点の集まりである計測領域のうちロボットハンドがワークを把持する際にハンド接触領域を接触させる候補となる領域であるワークモデル接触領域と、計測領域のうちワークモデル接触領域にハンド接触領域を接触させるより先にハンド衝突領域が衝突する可能性のある領域であるワークモデル衝突領域とを奥行きデータに基づいて求め、ハンド接触領域及びハンド衝突領域並びにワークモデル接触領域及びワークモデル衝突領域に基づいて把持可能性を算出するので、把持成功率を高めるロボットハンドの形状を仮想空間上での計算により選択できる。把持成功率が高いロボットハンドが選択されるので、取り出しにかかるタクトタイムを短縮可能となる。
また、この発明に係るロボットシミュレーション装置は、ワークをモデル化したワークモデルが積み重ねられた状態を仮想空間上に再現するバラ積み演算部と、奥行き計測センサをモデル化したセンサモデルを仮想空間上に配置し、センサモデルによってワークモデルの各点の奥行き計測を模擬して各点における奥行き情報からなる奥行きデータを生成する奥行き計測模擬部と、複数のロボットハンドの形状をモデル化したハンド形状モデルと奥行きデータとに基づいて、ロボットハンドにおけるワークモデルの把持可能性を複数のロボットハンドの形状に対して算出し、把持可能性に基づいてロボットハンドの形状を選択するハンド選択部とを備え、ハンド選択部は、複数種類のワークモデルに対して求められた把持可能性の平均値が最も高いロボットハンドの形状を選択するので、把持成功率を高めるロボットハンドの形状を仮想空間上での計算により選択できる。把持成功率が高いロボットハンドが選択されるので、取り出しにかかるタクトタイムを短縮可能となる。
また、この発明に係るロボットシミュレーション装置は、ワークをモデル化したワークモデルが積み重ねられた状態を仮想空間上に再現するバラ積み演算部と、奥行き計測センサをモデル化したセンサモデルを仮想空間上に配置し、センサモデルによってワークモデルの各点の奥行き計測を模擬して各点における奥行き情報からなる奥行きデータを生成する奥行き計測模擬部と、複数のロボットハンドの形状をモデル化したハンド形状モデルと奥行きデータとに基づいて、ロボットハンドにおけるワークモデルの把持可能性を複数のロボットハンドの形状に対して算出し、把持可能性に基づいてロボットハンドの形状を選択するハンド選択部とを備え、バラ積み演算部は、ワークモデルが積み重ねられた状態を複数回再現し、ハンド選択部は、複数回再現されたワークモデルが積み重ねられた状態に対して求められた把持可能性の平均値が最も高いロボットハンドの形状を選択するので、把持成功率を高めるロボットハンドの形状を仮想空間上での計算により選択できる。把持成功率が高いロボットハンドが選択されるので、取り出しにかかるタクトタイムを短縮可能となる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態１によるロボットシミュレーション装置を示す機能ブロック図。
【図２】本発明の実施の形態１によるロボットシミュレーション装置における演算部の動作を説明するためのフロー図。
【図３】本発明の実施の形態１によるロボットシミュレーション装置における表示部の表示の一例を示す図。
【図４】本発明の実施の形態１によるロボットシミュレーション装置におけるロボットハンドの把持可能状態を説明するための図。
【図５】本発明の実施の形態１によるロボットシミュレーション装置における接触領域と衝突領域で定義したロボットハンドの形状モデルを説明するための図。
【図６】本発明の実施の形態１によるロボットシミュレーション装置における領域奥行きデータの一例を示す図。
【図７】本発明の実施の形態１によるロボットシミュレーション装置におけるワークモデルの接触領域と衝突領域を説明するための図。
【図８】本発明の実施の形態１によるロボットシミュレーション装置における把持可能領域および把持可能性マップを求める手法を説明するための図。
【図９】本発明の実施の形態２によるロボットシミュレーション装置を示す機能ブロック図。
【図１０】本発明の実施の形態２によるロボットシミュレーション装置における演算部の動作を説明するためのフロー図。
【図１１】本発明の実施の形態３によるロボットシミュレーション装置を示す機能ブロック図。
【図１２】本発明の実施の形態３によるロボットシミュレーション装置における演算部の動作を説明するためのフロー図。
【図１３】本発明の実施の形態４によるロボットシミュレーション装置を示す機能ブロック図。
【図１４】本発明の実施の形態５によるロボットシミュレーション装置を示す機能ブロック図。
【発明を実施するための形態】
【０００９】
実施の形態１．
図１は本発明の実施の形態１によるロボットシミュレーション装置を示す機能ブロック図である。なお、ここでいうロボットとは、例えば産業用の６自由度のロボットアームを指すが、６自由度でなくてもどのような自由度のロボットアームでも良い。また、ロボットアームを構造として含む双腕ロボットやヒューマノイドなどもここでいうロボットに該当する。また、ここでいうロボットハンドとは、ワークを掴むための吸着や挟持手段であり、産業用ロボットアームの先端のフランジ部分に接続されるグリッパを指すが、ヒューマノイドのアームの先端に付随する爪（もしくは指）が多数あるようなハンドも該当する。
【００１０】
以下、図１に基づいて、本実施の形態のロボットシミュレーション装置の構成について述べる。本実施の形態のロボットシミュレーション装置は、記憶部１、演算部２、表示部３、入力部４を備える。表示部３は省略しても良いが、シミュレーション状況や結果を確認するために備えた方が便利である。演算部２は、バラ積み演算部２１、奥行き計測模擬部２２、ハンド選択部２３、制御部２４を備える。制御部２４は、演算部２の全体の動作を制御する。さらに、奥行き計測模擬部２２は、センサモデル配置部２２１、奥行きデータ生成部２２２を備え、ハンド選択部２３は、形状モデル変換部２３１、形状モデル回転部２３２、領域抽出部２３３、把持可能性演算部２３４、評価選択部２３５を備える。
【００１１】
記憶部１はデータの入出力が可能なもので、例えばランダムアクセスメモリー、ハードディスクドライブ、ソリッドステートドライブなど、いずれの記憶媒体を用いても良い。また、演算部２は、ハードウェアのみで実現しても良いし、ＣＤ−ＲＯＭなどの記録媒体に記録されたプログラムをコンピュータなど情報処理装置に導入し、実行することによって実現しても良い。さらに、入力部４は、キーボード、マウス、タッチペン、タッチパッド、ジェスチャー認識装置、あるいは、部品の形状を読み取る３Ｄ（３  Ｄｉｍｅｎｓｉｏｎａｌ）スキャナ、カメラなど、いずれの手段を利用しても良いし、これらを複数組み合わせて利用しても良い。本実施の形態のロボットシミュレーション装置は以上のように構成される。
【００１２】
以下、図１を用いて本実施の形態のロボットシミュレーション装置の動作について述べる。記憶部１には入力部４より、設計情報が入力される。入力部４により入力される設計情報は、バラ積み取り出しの対象となるワークの形状モデルであるワーク形状モデル、奥行き計測センサの形状モデルであるセンサ形状モデル、奥行き計測センサにおける奥行き計測のためのパラメータであるセンサパラメータ、ロボットハンドの形状モデル群である第１のハンド形状モデル群、ロボットの形状モデルであるロボット形状モデル、周辺環境の形状モデルである周辺環境形状モデルを含む。なお、周辺環境の形状は、ワークを収める供給箱の形状を含み、ロボットが動作する作業空間に供給箱以外の制約がある場合にはその制約も含む。また、設計情報は後述する配置情報も含む。さらに、設計情報はロボットの動作モデルを含んでも良い。
【００１３】
設計情報について更に詳しく述べる。第１のハンド形状モデル群は、ロボットハンドの形状モデルである第１のハンド形状モデルの集合であり、それぞれの第１のハンド形状モデルは互いに異なる形状を有する。これらが最終的に選択されるロボットハンドの形状の候補となる。第１のハンド形状モデルには、その形状モデルが後述する挟持方式と吸着方式のいずれであるかを判別するための情報が関連付けられている。ワーク形状モデル、センサ形状モデル、第１のハンド形状モデル、周辺環境形状モデルは、それぞれの３次元形状が分かり、さらに、それぞれの形状モデル同士が衝突したことが分かるよう、モデルの内外判定も持つＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎｉｎｇ）データである。
【００１４】
センサパラメータとは、奥行き計測模擬部２２で３次元の奥行き計測を再現するために必要なパラメータである。例えば、奥行き計測模擬部２２でカメラと投光手段を持つアクティブステレオ方式の３次元センサを模擬するとすれば、カメラの焦点距離、レンズの中心位置、画素数、カメラと投光手段との相対的な位置姿勢の情報を含む。なお、位置姿勢とは位置や姿勢を表す。奥行き計測模擬部２２で模擬する奥行きセンサ方式は、ステレオ視でも、Ｔｉｍｅ  ｏｆ  Ｆｌｉｇｈｔ方式でも、視体積交差方式でも、Ｄｅｐｔｈ  ｆｒｏｍ  Ｆｏｃｕｓ方式でも、Ｄｅｐｔｈ  ｆｒｏｍ  Ｄｅｆｏｃｕｓ方式でも、Ｓｈａｐｅ  ｆｒｏｍ  Ｓｈａｄｉｎｇ方式でも良い。
【００１５】
配置情報とは、ロボット、ロボットハンド、供給箱、奥行き計測センサのそれぞれの位置姿勢の関係を示すもので、例えば、ロボットのベース座標系、ロボットハンドの座標系、供給箱の座標系、奥行き計測センサの座標系と、それぞれの座標系間の関係を表す位置姿勢情報が入力される。また、配置情報としては、ワークの座標系も入力される。これらの座標系は、ロボット、ロボットハンド、供給箱、奥行き計測センサをモデル化して仮想空間上に配置する際に、各モデルの座標系として用いられる。また、座標系間の関係は、各モデルを仮想空間上に配置する際の位置姿勢を決めるために用いられる。以上が設計情報に関する補足である。なお、本実施の形態では、設計情報は入力部４から入力されるものとしたが、予め記憶部１に記憶させておいても良い。また、予め記憶部１に記憶させたものを必要に応じて修正するように構成しても良い。記憶部１に蓄えられた設計情報は演算部２で使用される。
【００１６】
図２は、演算部２の動作を説明するためのフロー図である。以下では、演算部２の動作について、図１に加えて図２も用いて述べる。演算部２の動作は、制御部２４により制御される。まず、ステップＳ２１１ａ〜Ｓ２１１ｂにおいて、バラ積み演算部２１は、記憶部１からワーク形状モデル、周辺環境形状モデル、配置情報を読み出し、これらを用いて、ワークが供給箱に積み重ねられた状態を仮想空間上に再現する。以下、ステップＳ２１１ａ〜Ｓ２１１ｂにおけるバラ積み演算部２１の動作について述べる。
【００１７】
ステップＳ２１１ａにおいて、バラ積み演算部２１は、供給箱をモデル化した供給箱モデルを仮想空間上に配置する。次に、ステップＳ２１１ｂにおいて、バラ積み演算部２１は、供給箱モデルの中に、ワークをモデル化したワークモデルを物理的に落下させる模擬を行う。バラ積み演算部２１は、供給箱モデルの上空にワークモデルを位置姿勢がランダムになるように配置し、配置されたワークモデルを供給箱モデルに落下させる。これをＮ回（Ｎは自然数）繰り返すことで、供給箱モデルにＮ個のワークモデルがバラ積みになった状態を再現できる。このとき、表示部３では、ワークモデルのバラ積み状態の再現をグラフィックで表示し、再現が適切かを使用者が確認することもできる。さらに、再現が適切でなければ、使用者は設計情報を修正した上でシミュレーションをやり直すこともできる。
【００１８】
なお、ワークモデルの形状は、ワーク形状モデルで規定されており、供給箱モデルの形状は、周辺環境形状モデルで規定されている。このとき、各ワークモデルには座標系が規定されており、再現されたバラ積みを構成する各ワークモデルの位置姿勢が分かる。さらに、設計情報にロボットの動作モデルが含まれており、ロボットが把持したワークを持ち上げる方向が分かっていれば、ワークの干渉判定により、持ち上げるときに干渉する周辺の干渉物数を判断することができる。以上より、バラ積み演算部２１は、ワークモデルが積み重ねられた状態であるバラ積みシーンを仮想空間上に再現する。バラ積み演算部２１は、バラ積みシーンにおける各ワークモデルの位置姿勢、さらには各ワークモデルにおける周辺の干渉物数を出力する。以上がステップＳ２１１ａ〜Ｓ２１１ｂにおける演算部２の動作である。
【００１９】
次に、ステップＳ２２１〜Ｓ２２２において、奥行き計測模擬部２２は、奥行き計測センサをモデル化したセンサモデルを仮想空間上に配置し、センサモデルによって積み重ねられたワークモデルの奥行き計測を模擬して各点における奥行き情報からなる奥行きデータを生成する。奥行き計測模擬部２２は、センサモデル配置部２２１及び奥行きデータ生成部２２２を備える。以下、ステップＳ２２１〜Ｓ２２２における奥行き計測模擬部２２の動作について述べる。
【００２０】
ステップＳ２２１において、センサモデル配置部２２１は、記憶部１から配置情報とセンサ形状モデルとを読み出し、センサモデルを仮想空間上に配置する。この結果、仮想空間上のセンサモデルの位置姿勢が決定される。センサモデルの形状は、センサ形状モデルで規定される。同時に、センサモデル配置部２２１は、記憶部１から第１のハンド形状モデルの中の１つ、ロボット形状モデルと配置情報を読み出し、ロボットをモデル化したロボットモデル、ロボットハンドをモデル化したハンドモデルも仮想空間上に配置する。ロボットモデルの形状は、ロボット形状モデルで規定される。また、ハンドモデルの形状は、第１のハンド形状モデルで規定される。
【００２１】
次に、ステップＳ２２２において、奥行きデータ生成部２２２は、記憶部１からセンサパラメータを読み出し、読み出したセンサパラメータに基づいて、バラ積みされたワークモデルのセンサモデルによる計測を模擬して、奥行きデータを取得する。奥行きデータは、センサパラメータにより設定された視野範囲、分解能で取得した、センサモデルから対象となるワークモデルの各点までの距離を明暗で表現した画像データである。奥行きデータは、センサモデルに近いほど明るく、遠いほど暗い画像として表現している。奥行き計測模擬部２２は、以上のように動作する。
【００２２】
このとき、表示部３では、ロボットモデル、ハンドモデル、センサモデルの配置や、奥行きデータをグラフィックで表示し、配置や奥行きデータが適切かを使用者が確認することができる。再現が適切でなければ、使用者は設計情報を修正した上でシミュレーションをやり直すことができる。図３は、本実施の形態のロボットシミュレーション装置の表示部３における表示の一例を示す図である。表示部３は、奥行きデータ表示部３１、仮想空間表示部３２、設計情報表示部３３を備える。奥行きデータ表示部３１には奥行きデータが表示される。仮想空間表示部３２には、仮想空間に配置された供給箱モデル、ロボットモデル、センサモデル、ハンドモデルが表示される。また、設計情報表示部３３には、設計情報が表示される。
【００２３】
次に、ステップＳ２３１ａ〜Ｓ２３５において、ハンド選択部２３は、奥行きデータとハンド形状モデルに基づいて把持可能性を算出し、把持可能性に基づいてロボットハンドの形状を選択する。把持可能性は、ロボットハンドでワークを把持できる可能性を表す指標であり、詳細については後述する。ハンド選択部２３は、形状モデル変換部２３１、形状モデル回転部２３２、領域抽出部２３３、把持可能性演算部２３４、評価選択部２３５を備える。ここで、ハンド選択部２３の動作を説明する前に、本実施の形態のロボットシミュレーション装置で選択するロボットハンドの形状について説明する。
【００２４】
ロボットハンドには大きく分けて挟持方式と吸着方式の２つの方式があり、それぞれの方式で形状は異なる。したがって、本実施の形態のロボットシミュレーション装置において、この２つの方式のいずれかを選択することも形状を選択することとなる。また、挟持方式のロボットハンドの形状を決定する項目としては、ロボットハンドの物体を挟む部分（以降爪と呼ぶ）の数、各爪の位置、各爪の形状、各爪の大きさがあり、これらのうちの少なくとも１つの項目を決定することも、本実施の形態のロボットシミュレーション装置における形状の選択に含まれる。一方、吸着方式のロボットハンドの形状を決定する項目としては、吸着パッドの数、各吸着パッドの位置、各吸着パッドの形状、各吸着パッドの大きさがあり、これらのうちの少なくとも１つの項目を決定することも、本実施の形態のロボットシミュレーション装置における形状の選択に含まれる。
【００２５】
さらに、ハンド選択部２３の動作を説明する前に、把持可能性の算出に用いる把持可能状態の定義を述べる。把持可能状態とは、ロボットハンドがワークを把持することが可能な状態である。図４は、ロボットハンドにおける把持可能状態を説明するための図である。挟把方式のロボットハンドにおける把持可能状態とは、ロボットハンドが対象物を挟み、ロボットハンドの衝突領域（爪部分）にぶつかるものがなく、さらに接触領域（爪の間の挟む隙間）が対象物と接触している状態である。一方、吸着方式のロボットハンドにおける把持可能状態とは、接触領域（吸着パッドの断面）が残らず対象物表面に接触している状態である。ここで、ロボットハンドの形状は、接触領域と衝突領域で定義することができる。
【００２６】
ロボットハンドの接触領域は、対象物であるワークを把持する際にワークの表面に接触すべき領域を、ロボットハンドをワーク側から見た面に投影した２次元の領域である。ここで、ワークの表面に接触すべき領域とは、ワークを把持する際に接触させようとする領域である。ワークの形状や把持方式などによって、必ずしも接触領域の全てがワークに接触するわけではない。ワークが正常に把持された際には、ロボットハンドの接触領域の少なくとも一部は、ワークの表面に接触する。
【００２７】
また、ロボットハンドの衝突領域は、ワークの把持の際にワークや供給箱に衝突し、接触領域がワークの表面に接触する障害となる可能性がある領域を、奥行きデータの奥行き方向と垂直な面に投影した２次元の領域である。ロボットハンドの爪など、接触領域と比較してワーク側に突き出している領域が衝突領域となる。別の表現では、ハンド衝突領域は、ワークを把持する際に、ハンド接触領域がワークに接触するより先にワークに衝突する可能性のある領域を前記垂直な面に投影した２次元の領域である。なお、ハンド衝突領域がないロボットハンドも存在する。
【００２８】
図５は、接触領域と衝突領域で定義したロボットハンドの形状モデルを説明するための図である。図５から、爪の本数が変わったり、ロボットハンドの方式が変わっても、接触領域Ｈｔと衝突領域Ｈｃでハンドの形状を定義できることが分かる。第２のハンド形状モデルにおいて、接触領域や衝突領域は、円や矩形の組み合わせで表現することができる。例えば、図５に示す挟持方式の２本爪タイプのロボットハンドであれば、衝突領域の縦、横、接触領域の縦、横の４パラメータで形状を表現することができる。したがって、円や矩形の数、それぞれの円や矩形の位置、円の半径、矩形の各辺の長さが、ロボットハンドの形状を決定するための形状パラメータとなる。図５に示す吸着タイプであれば半径１パラメータで形状を表現することができる。
【００２９】
以下、ステップＳ２３１ａ〜Ｓ２３５におけるハンド選択部２３の動作を説明する。ステップＳ２３１ａにおいて、形状モデル変換部２３１は、記憶部１からＣＡＤデータ形式の第１のハンド形状モデルの１つを読み出す。続いて、ステップＳ２３１ｂにおいて、形状モデル変換部２３１は、読み出した第１のハンド形状モデルを接触領域と衝突領域で定義された第２のハンド形状モデルに変換する。第２のハンド形状モデルは、２次元のデータとなる。第２のハンド形状モデルは、接触領域と衝突領域を別にした２つのデータで構成しても良いし、接触領域と衝突領域を合成した１つのデータとしても良い。ここで、第２のハンド形状モデルにおける接触領域をハンド接触領域と呼び、第２のハンド形状モデルにおける衝突領域をハンド衝突領域と呼ぶ。
【００３０】
本実施例では、ハンド接触領域とハンド衝突領域を別のデータで表すものとし、第２のハンド形状モデルは、ハンド接触領域データとハンド衝突領域データで構成される。ハンド接触領域データは、ハンド接触領域に該当する画素の値を１、ハンド接触領域以外の画素の値を０とした画像データである。また、ハンド衝突領域データは、ハンド衝突領域に該当する画素の値を１、ハンド衝突領域以外の画素の値を０とした画像データである。画像データは、画素の位置に対する画素の値の関数と考えることもできるので、ハンド接触領域データ及びハンド衝突領域データも、画素の位置に対する画素の値の関数と考えることもできる。なお、互いに異なる形状の第２のハンド形状モデルの集合である第２のハンド形状モデル群を予め用意しておき、設計情報として記憶部１に記憶するように構成することもできる。この場合には、ステップＳ２３１ｂの処理は不要となり、形状モデル変換部２３１も不要となる。
【００３１】
次に、ステップＳ２３２において、形状モデル回転部２３２は、第２のハンド形状モデルを制御部２４から与えられる面内回転角だけ面内回転して第３のハンド形状モデルを生成する。ここで、面内回転とは、第２のハンド形状モデルにおいて、接触領域と衝突領域が定義される平面内での回転を言う。また、面内回転する角度である面内回転角は、初期値が０度であり、処理の度に予め設定される回転分割数で３６０度を分割した角度分だけ順次変化する。例えば、回転分割数を１２と設定すると、最初の処理では面内回転角は０度（すなわち回転しない）となり、２回目の処理では面内回転角は３０度、１２回目の処理では面内回転角は３３０度となる。第３のハンド形状モデルを生成することで、同じ形状のロボットハンドに対して、ロボットハンドの姿勢を変化させた場合に、それぞれどれだけ把持可能性があるかを知ることができる。ここで、第３のハンド形状モデルも第２のハンド形状モデルと同様にハンド接触領域データ、ハンド衝突領域データで構成される。
【００３２】
次に、ステップＳ２３３ａにおいて、領域抽出部２３３は、画像処理で一般的におこなわれるセグメンテーションにより、奥行き計測模擬部２２で得られた奥行きデータから奥行き方向のエッジで区切られた領域を抽出し、領域奥行きデータを生成する。領域奥行きデータは、抽出された領域に対応する奥行きデータである。一般に、領域抽出部２３３では、複数の領域が抽出されるので、複数の領域奥行きデータが生成されることになる。図６は、領域奥行きデータの一例を示す図である。図６の矢印の左側は奥行きデータの例であり、矢印の右側は当該奥行きデータから生成される７つの領域奥行きデータの例を示している。続いて、ステップＳ２３３ｂにおいて、領域抽出部２３３は、生成された領域奥行きデータの１つを選択して出力する。
【００３３】
次に、ステップＳ２３４において、把持可能性演算部２３４は、第３のハンド形状モデルと領域奥行きデータに基づいて処理条件毎の把持可能性を演算する。ここで、処理条件とは、バラ積み再現の回数、第１又は第２のハンド形状モデルで表されるロボットハンドの形状、面内回転角、選択された領域奥行きデータの組み合わせを指す。まず、把持可能性演算部２３４は、領域奥行きデータに基づいて、ロボットハンドと同様にワークモデルの接触領域と衝突領域を求める。ここで、ワークモデルの接触領域と衝突領域についての概念を説明する。ワークモデルの接触領域は、奥行きデータにおける各点の集まりである計測領域のうちロボットハンドがワークを把持する際にハンド接触領域を接触させる候補となる領域である。また、ワークモデルの衝突領域は、計測領域のうち、把持の際にワークモデル接触領域にハンド接触領域を接触させるより先にハンド衝突領域が衝突する可能性のある領域である。
【００３４】
ワークモデルの接触領域は、センサから把持対象となるワークの表面までの距離ｈで２値化した領域とする。領域奥行きデータの各位置に対して、その位置が接触領域である場合には１、接触領域でない場合には０となるような接触領域関数Ｗｔを定義すると、領域奥行きデータの位置（ｘ，ｙ）におけるＷｔの値であるＷｔ（ｘ，ｙ）は、式（１）で表すことができる。式（１）において、Ｗ（ｘ，ｙ）は位置（ｘ，ｙ）におけるセンサからの距離を表す。
【００３５】
【数１】
0006036662.tif 000002
【００３６】
一方、ワークモデルの衝突領域は、把持対象となるワークの表面から、ロボットハンドの衝突領域が把持のためにさらに進入する量ｄだけ深く進入した高さで２値化した領域となる。領域奥行きデータの各位置に対して、その位置が衝突領域である場合には１、衝突領域でない場合には０となるような衝突領域関数Ｗｃを定義すると、領域奥行きデータの位置（ｘ，ｙ）におけるＷｃの値であるＷｃ（ｘ，ｙ）は、式（２）で表すことができる。
【００３７】
【数２】
0006036662.tif 000003
【００３８】
図７は、ワークモデルの接触領域と衝突領域を説明するための図である。図７の左側の図は、ワークモデルの接触領域と衝突領域を説明するために、奥行き計測センサ、ワーク、ロボットハンドの関係を側面から見た図である。図７の左側の図で、断面Ａで２値化した領域が接触領域、断面Ｂで２値化した領域が衝突領域となる。図７の右側の図は、左側の図に対応する接触領域と衝突領域を例示したものである。
【００３９】
本実施の形態のロボットシミュレーション装置においては、把持可能性演算部２３４は、領域奥行きデータで抽出された領域をワークの接触領域として使用する。領域奥行きデータは、奥行きデータから奥行きのエッジで区切られた領域を抽出しており、バラ積みされた各ワークの表面が抽出されることになるので、ワークの接触領域として使用可能となる。ワークの衝突領域は、領域奥行きデータで抽出された領域の奥行きから、ｄだけ深く進入した高さで奥行きデータを２値化することで求められる。なお、領域奥行きデータで抽出された領域の奥行きが領域内で一定でない場合には、もっともセンサから遠い位置の奥行きを用いる。
【００４０】
把持可能性演算部２３４は、ワークモデルの接触領域を表すワークモデル接触領域データと、ワークモデルの衝突領域を表すワークモデル衝突領域データを生成する。ワークモデル接触領域データは、接触領域に該当する画素の値を１、接触領域以外の画素の値を０とした画像データである。また、ワークモデル衝突領域データは、衝突領域に該当する画素の値を１、衝突領域以外の画素の値を０とした画像データである。ワークモデル接触領域データ及びワークモデル衝突領域データは、画素の位置に対する画素の値の関数と考えることもできる。
【００４１】
次に、把持可能性演算部２３４は、第３のハンド形状モデルの接触領域、衝突領域と、ワークモデルの接触領域、衝突領域を用いて、把持可能領域を求める。把持可能領域は、ロボットハンドとワークが干渉せずに接触できる領域を表す。続いて、把持可能性演算部２３４は、把持可能領域を用いて把持可能性マップを求める。図８は、把持可能領域および把持可能性マップを求める手法を説明するための図である。なお、図８では一例として挟持方式のロボットハンドで説明しているが、吸着方式のロボットハンドでも同じく把持可能領域を計算できる。吸着方式の場合は、使われるハンドのモデルが異なり、衝突領域Ｈｃが全て０になるということだけで、以下図８に示す計算が同様に行われる。
【００４２】
把持可能性演算部２３４は、第３のハンド形状モデルのハンド接触領域データとワークモデル接触領域データとを用いたコンボリューション（畳み込み演算）によって、第１の領域を求める。挟持方式のロボットハンドに対しては、コンボリューションにより得られた値が１以上となった領域を第１の領域とする。一方、吸着方式のロボットハンドに対しては、コンボリューションにより得られた値がＳｔ以上となった領域を第１の領域とする。ここで、Ｓｔは、第３のハンド形状モデルの接触領域の面積である。
【００４３】
また、把持可能性演算部２３４は、第３のハンド形状モデルのハンド衝突領域データとワークモデル衝突領域データとを用いたコンボリューションによって、第２の領域を求める。挟持方式のロボットハンドに対しては、コンボリューションにより得られた値が１以上となった領域を第２の領域とする。一方、吸着方式のロボットハンドに対しては、図５の吸着方式のモデル例で示したように衝突領域は存在せず、ハンド衝突領域データは全ての位置で０となるので、コンボリューション結果も全ての位置で０となり、第２の領域も存在しない。次に、把持可能性演算部２３４は、第１の領域の各画素の値から対応する第２の領域の各画素の値を引き、その値が１となった部分を把持可能領域とすることで、把持可能領域データを生成する。把持可能領域データは、把持可能領域に該当する画素の値を１、把持可能領域以外の画素の値を０とした画像データである。把持可能領域データは、画素の位置に対する画素の値の関数と考えることもできる。
【００４４】
続いて、把持可能性演算部２３４は、求められた把持可能領域データと、画像処理で一般的に用いられるガウシアン関数とを用いたコンボリューションによって、把持可能性マップを求める。把持可能性マップは、位置毎の把持可能性を表したものである。把持可能性マップは、把持可能領域の中心にいくほど値が大きくなる分布となる。把持可能性マップのピーク位置を求めることで、ロボットハンドが周辺に干渉せず、かつ物体が掴みやすい把持位置を高速に計算することができる。把持可能性演算部２３４は、把持可能性マップにおける位置毎の把持可能性の最大値を処理条件毎の把持可能性とする。この把持可能性マップの計算において、ガウシアン関数の大きさが小さすぎると分布が十分に平滑化されずに最大値が複数でてくるので、ガウシアン関数は把持可能領域と同じ程度の大きさを持たせることで、最大値を安定して計算することができる。以上がステップＳ２３４における把持可能性演算部２３４の動作である。
【００４５】
次にステップＳ９０１において、制御部２４は、領域抽出部２３３で生成された領域奥行きデータが全て選択済みであるかを判定する。まだ選択されていない領域奥行きデータがあれば、制御部２４はステップＳ２３３ｂに処理を戻す。ステップＳ２３３ｂにおいて、領域抽出部２３３は、まだ選択されていない領域奥行きデータを１つ選択する。一方、全ての領域奥行きデータが選択済みであれば、制御部２４はステップＳ９０２に処理を進める。
【００４６】
ステップＳ９０２において、制御部２４は、本ステップの処理回数と予め設定された回転分割数を比較する。本ステップの処理回数が回転分割数に到達していなければ、制御部２４は、処理回数を１回加算し、面内回転角を変更して、ステップＳ２３２に処理を戻す。一方、本ステップの処理回数が回転分割数に到達していれば、制御部２４は、処理回数及び面内回転角をリセットし、ステップＳ９０３に処理を進める。
【００４７】
ステップＳ９０３において、制御部２４は、記憶部１に記憶された第１のハンド形状モデルを全て読み出したかを判定する。まだ読み出されていない第１のハンド形状モデルがあれば、制御部２４はステップＳ２３１ａに処理を戻す。ステップＳ２３１ａにおいて、形状モデル変換部２３１は、まだ読み出されていない第１のハンド形状モデルの１つを記憶部１から読み出す。一方、全ての第１のハンド形状モデルが読み出されていれば、制御部２４はステップＳ９０４に処理を進める。
【００４８】
ステップＳ９０４において、制御部２４は、本ステップの処理回数と予め設定されるバラ積み回数を比較する。本ステップの処理回数がバラ積み回数に到達していなければ、制御部２４は、処理回数を１回加算し、ステップＳ２１１ｂに処理を戻す。一方、本ステップの処理回数がバラ積み回数に到達していれば、制御部２４は、処理回数をリセットし、ステップＳ２３５に処理を進める。なお、バラ積み回数は１回以上であれば良いが、一般には複数回とする方がロボットハンドの形状選択の精度が向上する。また、複数回のバラ積みに対して、ワークの種類を変更することも可能である。複数種類のワークに対してバラ積み再現を行い、これらに対して把持可能性を算出してロボットハンドの形状を求めることにより、複数種類のワークを扱う際に最適なロボットハンドの形状を選択することができる。本実施の形態では、バラ積み回数を複数回とする。
【００４９】
ステップＳ２３５に処理が進んだ時点で、複数回のバラ積み再現、さまざまな第１のハンド形状モデル、面内回転角、領域奥行きデータに対して、処理条件毎の把持可能性が求められている。ステップＳ２３５において、評価選択部２３５は、まず、同一のバラ積み再現かつ同一の第１のハンド形状モデルについて、さまざまな面内回転角、領域奥行きデータに対する処理条件毎の把持可能性のうち最大のものを選択する。この結果、それぞれの第１のハンド形状モデルに対して、バラ積み再現毎の把持可能性が求められる。続いて、評価選択部２３５は、それぞれの第１のハンド形状モデルに対して、バラ積み再現毎の把持可能性の平均値を算出する。この結果、それぞれの第１のハンド形状モデルに対するハンド形状毎の把持可能性が求められる。
【００５０】
次に、評価選択部２３５は、ハンド形状毎の把持可能性を比較し、最も把持可能性が高い第１のハンド形状モデルを選択し、対応するハンド形状毎の把持可能性とともに出力する。出力先は、表示部３としても良いし、記憶部１としても良い。また、他の出力手段を備えても良い。出力結果から、作業者は所望のハンド設計を得ることができる。出力先を記憶部１とすれば、バラ積み取り出しシステムを設計するためのソフトウェアなど、他のツールや装置で選択された形状を呼び出すことができ、設計時間を短縮することができる。
【００５１】
以上で述べたロボットハンドの形状を選択する処理は、式（３）で表すことができる。式（３）において、Ｇｉは位置毎の把持可能性を表す関数であり、ｉは何回目のバラ積み再現かを表すインデックスである。Ｎはバラ積み再現を行う回数を表す。また、ｘ、ｙ、ｄはハンドの位置を表すパラメータである。ｘ、ｙは領域奥行きデータ内の位置に対応し、ｄはどの領域奥行きデータかに対応する。θはハンドの姿勢を表すパラメータであり、面内回転角に対応する。また、Ｍは第１のハンド形状モデルを識別するためのインデックスである。式（３）は、バラ積み再現ごとの把持可能性を平均してハンド形状毎の把持可能性を求め、ハンド形状毎の把持可能性が最大となる第１のハンド形状モデルを求めることを意味する。なお、式（３）では、位置毎の把持可能性から処理条件毎の把持可能性を求める処理と、処理条件毎の把持可能性からバラ積み再現毎の把持可能性を求める処理とを1つの関数で表している。
【００５２】
【数３】
0006036662.tif 000004
【００５３】
なお、本実施の形態のロボットシミュレーション装置では、ステップＳ２３４において、把持可能性演算部２３４は、把持可能性マップにおける位置毎の把持可能性の最大値を処理条件毎の把持可能性とするように構成したが、他の構成とすることも可能である。例えば、位置毎の把持可能性の最大値の代わりに、位置毎の把持可能性の積分値を処理条件毎の把持可能性とすることも可能である。また、最大値と積分値を併用することも可能である。この場合、例えば最大値と積分値を重み付け加算することが考えられる。複数の処理条件に対して、位置毎の把持可能性の最大値が近い値となる場合には、位置毎の把持可能性の最大値と積分値を併用することが有効となる。
【００５４】
また、把持可能性演算部２３４は、更に別の構成とすることができる。例えば、把持可能性演算部２３４において、把持したときの安定性も考慮することで、より正確な把持可能性の算出が可能になる。ワークモデルが重心の位置情報を有していれば、バラ積み演算部２１により得られるワークモデルの位置姿勢から、バラ積みされた状態でのワークモデルの重心位置を計算することができる。把持位置がワークモデルの重心位置から離れれば離れるほど把持後にモーメントが発生し弾き飛ばしたり落下させたりといった把持失敗のリスクも高まる。
【００５５】
そこで、ワークモデルの重心からの距離を把持可能性の演算に加えることで、より安定した設計とすることができる。把持可能性マップにおける位置毎の把持可能性に対して、各位置のワークモデルの重心からの距離を考慮した演算を行って処理条件毎の把持可能性を求めることで、より正確な把持可能性が求められる。例えば、位置毎の把持可能性をワークモデルの重心からの距離で除算し、除算結果の最大値を処理条件毎の把持可能性とすることができる。このとき、ロボットハンドの形状を選択する処理は、式（４）で表すことができる。式（４）において、Ｌｉはワークモデル重心からの距離を表す関数であり、他は式（３）と同様である。
【００５６】
【数４】
0006036662.tif 000005
【００５７】
また、把持可能性演算手段２３４は、更に別の構成とすることができる。例えば、把持可能性演算手段２３４において、周辺のワークモデルとの干渉状態も考慮することで、より正確な把持可能性の算出が可能になる。持ち上げるときに周辺のワークと干渉する場合、把持後に持ち上げることが難しくなる。そこで、バラ積み演算部２１で求めた周辺の干渉物の数を把持可能性の演算に加えることで、より安定した設計とすることができる。把持可能性マップにおける位置毎の把持可能性に対して、周辺の干渉物数を考慮した演算を行って処理条件毎の把持可能性を求めることで、より正確な把持可能性が求められる。例えば、位置毎の把持可能性を周辺の干渉物数で除算し、除算結果の最大値を処理条件毎の把持可能性とすることができる。このとき、ロボットハンドの形状を選択する処理は、式（５）で表すことができる。式（５）において、Ｃｉは周辺の干渉物数を表す関数であり、他は式（３）と同様である。
【００５８】
【数５】
0006036662.tif 000006
【００５９】
以上のように、把持可能性演算部２３４は、さまざまな構成とすることができ、これらを組み合わせた構成とすることも可能である。演算量や算出される把持可能性の特性などを考慮し、使用条件に最適な構成を選択すれば良い。さらに、本実施の形態で述べた把持可能性の算出方法は、実際のピッキング作業においてロボットハンドの把持位置を求める際にも活用可能である。この場合には、把持可能性が最も高い位置及び面内回転角を把持位置及び把持姿勢としてロボットハンドを制御すれば良い。
【００６０】
本実施の形態のロボットシミュレーション装置は以上のように動作する。したがって、把持ができる可能性が高く、さらに把持失敗もおこりにくい、ロボットハンドの形状を選択することができる。すなわち把持成功率の高いロボットハンドの形状を選択することができる。バラ積み取り出しのシステムは生産現場の生産効率を高めるために用いられることから、いかに作業時間を短縮できるかが重要である。これまでのロボットシミュレーション装置は、与えられたロボット、センサ、ワークから作業時間を見積もるのみであり、作業時間短縮のために配置や構成、システムの構成物の形状などを能動的に変更することができなかった。
【００６１】
システムの構成物において、特に作業時間に関わるものとして、ワークを持つためのロボットハンドがある。ワークの形状に応じて掴みやすいロボットハンドを選択し、ワークの把持成功率が上がれば、取り出しにかかるタクトタイムは飛躍的に向上する。しかし、これまでのロボットシミュレーション装置では、ロボットハンドは事前に決められた形状のものを扱うのみであり、把持成功率を高めるロボットハンドを選択するロボットシミュレーション装置はなかった。
【００６２】
さらには、実物を用いてロボットハンドを決定しようにも、システムを設計する立場にあるシステムインテグレーターには、バラ積み取り出しにおけるロボットハンドとワークの関係に対する知見がないことが多く、現場にある装置だけを使ってのすり合わせの調整、もしくは、既にあるロボットハンドを使うにとどまっていた。本実施の形態のロボットシミュレーション装置によれば、ロボットハンドの設計をシステム構築前に決定できるので、バラ積みワークの取り出しシステム設計が効率化する。さらに、実際のシステム動作において、作業成功率が高いロボットハンドが選択されるので、実際の作業時間を短縮する効果がある。
【００６３】
以上に述べたように、本実施の形態のロボットシミュレーション装置は、ワークをモデル化したワークモデルが積み重ねられた状態を仮想空間上に再現するバラ積み演算部と、奥行き計測センサをモデル化したセンサモデルを仮想空間上に配置し、センサモデルによってワークモデルの各点の奥行き計測を模擬して各点における奥行き情報からなる奥行きデータを生成する奥行き計測模擬部と、複数のロボットハンドの形状をモデル化したハンド形状モデルと奥行きデータとに基づいて、ロボットハンドにおけるワークモデルの把持可能性を複数のロボットハンドの形状に対して算出し、把持可能性に基づいてロボットハンドの前記形状を選択するハンド選択部とを備えるので、把持可能性を高めるロボットハンドの形状を仮想空間上での計算により選択できる。把持可能性が高いロボットハンドが選択されるので、取り出しにかかるタクトタイムを短縮可能となる。
【００６４】
実施の形態２．
実施の形態１では、設計情報に含まれるロボットハンドの形状モデルからロボットハンドの形状を選択するように構成していた。一方、ロボットハンドの形状モデルに対して、変更可能な形状パラメータを関連付け、ロボットシミュレーション装置が形状パラメータを調整するように構成することもできる。この結果、設計情報に含まれるロボットハンドの形状を削減しながらも、さまざまな形状から把持可能性を高めるロボットハンドの形状を選択可能となる。
【００６５】
図９は、本発明の実施の形態２によるロボットシミュレーション装置を示す機能ブロック図である。本実施の形態のロボットシミュレーション装置は、形状モデル調整部２３６をハンド選択部２３に備えた点が、実施の形態１の図１におけるものと異なる。以下、図９を用いて本実施の形態のロボットシミュレーション装置の動作について述べる。実施の形態１におけるものと同様に、記憶部１には入力部４より設計情報が入力される。ただし、設計情報に含まれる第１のハンド形状モデルには、その形状モデルに対して変更可能な形状パラメータ、変更可能範囲及び変更可能な刻み幅が関連付けられる。記憶部１、表示部３、入力部４の動作は、実施の形態１におけるものと同様であり、説明は省略する。
【００６６】
図１０は、本実施の形態のロボットシミュレーション装置における演算部２の動作を説明するためのフロー図である。本フロー図は、ステップＳ２３１ｂとステップＳ２３２との間にステップ２３６を備え、ステップＳ９０２とステップＳ９０３との間にステップＳ９０５を備える点が実施の形態１の図２におけるものと異なる。以下、図９及び図１０を用いて演算部２の動作について述べる。なお、図９及び図１０において、図１及び図２におけるものと同一の番号を付したものは同等のものであり、説明を省略する。
【００６７】
ステップＳ２３６において、形状モデル調整部２３６は、第１のハンドモデルに関連付けられた変更可能な形状パラメータを用いて、第２のハンド形状モデルの形状を調整して、第４のハンド形状モデルを生成する。実施の形態１にて述べたように、第２のハンド形状モデルでは、爪の本数が変わったり、ロボットハンドの方式が変わっても、接触領域と衝突領域でハンドの形状を定義できる。第２のハンド形状モデルにおいて、接触領域や衝突領域は、円や矩形の組み合わせで表現することができ、例えば、挟持方式の２本爪タイプのロボットハンドであれば、衝突領域の縦、横、接触領域の縦、横の４パラメータで形状を表現することができる。また、吸着タイプのロボットハンドであれば、半径１パラメータで形状を表現することができる。したがって、円や矩形の数、それぞれの円や矩形の位置、円の半径、矩形の各辺の長さが、ロボットハンドの形状を決定するための形状パラメータとなる。
【００６８】
ステップＳ２３６において、形状モデル調整部２３６は、これらの形状パラメータのうち、変更可能な形状パラメータを変更可能範囲内で調整することで第２のハンド形状モデルの形状を調整して、第４のハンド形状モデルを生成する。例えば、第１のハンド形状モデルが挟持方式の２本爪タイプであり、変更可能な形状パラメータが衝突領域の縦、横、接触領域の縦、横の４つのパラメータであれば、形状モデル調整部２３６は、この４つのパラメータを調整する。次に、ステップＳ２３２において、形状モデル回転部２３２は、第４のハンド形状モデルを面内回転して第３のハンド形状モデルを生成する。以降、ステップＳ９０２までの動作は、実施の形態１におけるものと同様である。
【００６９】
ステップＳ９０５において、制御部２４は、変更可能な形状パラメータの全ての組み合わせに対して、処理条件毎の把持可能性を算出したかを判定する。まだ処理条件毎の把持可能性が算出されていない組み合わせがあれば、制御部２４はステップＳ２３６に処理を戻す。ステップＳ２３６において、形状モデル調整部２３６は、まだ処理条件毎の把持可能性が算出されていない組み合わせの１つに形状パラメータを調整して、第４のハンド形状モデルを生成する。一方、変更可能な形状パラメータの全ての組み合わせに対して、処理条件毎の把持可能性を算出されていれば、制御部２４はステップＳ９０３に処理を進める。以降の動作は実施の形態１におけるものと同様である。本実施の形態のロボットシミュレーション装置は以上のように動作する。なお、本実施の形態における処理条件には、実施の形態１で述べたものの他、形状パラメータの組み合わせも加わることになる。
【００７０】
本実施の形態のロボットシミュレーション装置によれば、設計情報に含まれる第１のハンド形状モデルの数を削減可能となる。この結果、事前に準備する第１のハンド形状モデルの数を削減可能となり、準備作業が軽減される。一方で、１つの第１のハンド形状モデルに対して、さまざまな形状の把持可能性をシミュレーション可能となり、最適な形状のロボットハンドを選択できる可能性が高くなる。例えば、挟持方式の２本爪タイプのロボットハンドに対して、設計情報としては代表的な形状の１つの第１のハンド形状モデルを用意すれば良く、形状モデル調整部２３６が衝突領域の縦、横、接触領域の縦、横の４つの形状パラメータをさまざまに変化させることで、挟持方式の２本爪タイプのさまざまな形状に対しての把持可能性を算出することができる。また、本実施の形態のロボットシミュレーション装置は、実施の形態１におけるものと同様の効果も有する。
【００７１】
実施の形態３．
実施の形態１では、設計情報に含まれるロボットハンドの形状モデルからロボットハンドの形状を選択するように構成していた。一方、ロボットシミュレーション装置が、形状パラメータに基づいてロボットハンドの形状を生成するように構成することもできる。この結果、設計情報には形状パラメータの情報を含めば良く、ロボットハンドの形状モデルを含む必要がなくなる。
【００７２】
図１１は、本発明の実施の形態３によるロボットシミュレーション装置を示す機能ブロック図である。本実施の形態のロボットシミュレーション装置は、形状モデル変換部２３１の代わりに形状モデル生成部２３７をハンド選択部２３に備えた点が、実施の形態１の図１におけるものと異なる。以下、図１１を用いて本実施の形態のロボットシミュレーション装置の動作について述べる。実施の形態１におけるものと同様に、記憶部１には入力部４より設計情報が入力される。ただし、設計情報には、第１のハンド形状モデルは含まれず、形状パラメータ、各パラメータの変更可能範囲及び変更可能な刻み幅が含まれる。記憶部１、表示部３、入力部４の動作は、実施の形態１におけるものと同様であり、説明は省略する。
【００７３】
図１２は、本実施の形態のロボットシミュレーション装置における演算部２の動作を説明するためのフロー図である。本フロー図は、ステップＳ２３１ａ及びＳ２３１ｂの代わりにステップＳ２３７を備え、ステップＳ９０３の代わりにステップＳ９０６を備える点が実施の形態１の図２におけるものと異なる。以下、図１１及び図１２を用いて演算部２の動作について述べる。なお、図１１及び図１２において、図１及び図２におけるものと同一の番号を付したものは同等のものであり、説明を省略する。
【００７４】
ステップＳ２３７において、形状モデル生成部２３７は、設計モデルに含まれる形状パラメータを設定して、さまざまな形状の第２のハンド形状モデルを生成する。実施の形態１及び実施の形態２にて述べたように、第２のハンド形状モデルでは、形状パラメータを用いてロボットハンドの形状を表現することができる。ステップＳ２３７において、形状モデル生成部２３７は、形状パラメータを変更可能範囲内で調整することで、さまざまな形状の第２のハンド形状モデルを生成する。次に、ステップＳ２３２において、形状モデル回転部２３２は、第２のハンド形状モデルを面内回転して第３のハンド形状モデルを生成する。以降、ステップＳ９０２までの動作は、実施の形態１におけるものと同様である。
【００７５】
ステップＳ９０６において、制御部２４は、形状パラメータの全ての組み合わせに対して、処理条件毎の把持可能性を算出したかを判定する。まだ処理条件毎の把持可能性が算出されていない組み合わせがあれば、制御部２４はステップＳ２３７に処理を戻す。ステップＳ２３７において、形状モデル生成部２３７は、まだ処理条件毎の把持可能性が算出されていない組み合わせの１つに形状パラメータを調整して、第２のハンド形状モデルを生成する。一方、形状パラメータの全ての組み合わせに対して、処理条件毎の把持可能性を算出されていれば、制御部２４はステップＳ９０４に処理を進める。以降の動作は実施の形態１におけるものと同様である。本実施の形態のロボットシミュレーション装置は以上のように動作する。このとき、ロボットハンドの形状を選択する処理は、式（６）で表すことができる。式（６）において、Ｐ１、・・・、Ｐｈは形状パラメータを表し、ｈは形状パラメータの最大数を表す。他は式（３）と同様である。
【００７６】
【数６】
0006036662.tif 000007
【００７７】
なお、入手が困難な形状があるなどの理由でロボットハンドの形状に制約があり、変更したくない形状パラメータがある場合も考慮すると、変更可能な形状パラメータと、変更不可能な形状パラメータとを設定できるように構成することが望ましい。また、本実施の形態のロボットシミュレーション装置において、把持可能性が高くなる形状パラメータの組み合わせを求める手法として、全ての組み合わせに対して把持可能性を求めるという最も単純な手法を例示しているが、これに限定されるものではない。これは他の実施の形態についても同様である。
【００７８】
本実施の形態のロボットシミュレーション装置によれば、設計情報に第１のハンド形状モデルを含む必要がなくなる。この結果、事前に第１のハンド形状モデルを準備する必要がなくなり、準備作業が軽減される。一方で、さまざまな形状のロボットハンドの把持可能性をシミュレーション可能となり、最適な形状のロボットハンドを選択できる可能性がさらに高くなる。また、本実施の形態のロボットシミュレーション装置は、実施の形態１におけるものと同様の効果も有する。
【００７９】
実施の形態４．
実施の形態１におけるロボットシミュレーション装置に対して、選択されたロボットハンドの形状に対応する把持可能性が、事前に設定した閾値より小さい場合、ロボットハンドの制御パラメータを変更するような構成を追加することも可能である。これにより、実際のシステム動作における把持成功率を高めた設計を実現することが可能となる。
【００８０】
図１３は、本発明の実施の形態４によるロボットシミュレーション装置を示す機能ブロック図である。本実施の形態のロボットシミュレーション装置は、演算部２に制御パラメータ変更部２５を備えた点が、実施の形態１の図１におけるものと異なる。図１３において、図１におけるものと同一の番号を付したものは同等のものであり、説明を省略する。以下、図１３を用いて演算部２の動作について述べる。なお、演算部２の動作の流れは、実施の形態１におけるものの最後に、制御パラメータ変更部２５の動作が追加されるのみであるので、フロー図については省略する。
【００８１】
演算部２において、ハンド選択部２３でハンド形状毎の把持可能性を演算し、これに基づいてロボットハンドの形状を選択するまでの処理は、上記実施の形態１におけるものと同様である。すなわち、図２におけるステップＳ２３５までの動作は、本実施の形態のロボットシミュレーション装置においても同様である。本実施の形態のロボットシミュレーション装置においては、図２のステップＳ２３５の動作の後に、以下に述べる制御パラメータ変更部２５の動作が追加されたものとなる。制御パラメータ変更部２５は、選択されたハンド形状に対する把持可能性を予め設定される閾値と比較する。把持可能性が閾値以上であれば、制御パラメータ変更部２５は、制御パラメータを変更することなく動作を終了する。一方、把持可能性が閾値未満であれば、制御パラメータ変更部２５は、制御パラメータを変更する。
【００８２】
ここで、制御パラメータは、ロボットハンドの動作速度や停止時間など、ワークの把持に際するロボットハンドの動作に関するパラメータであり、設計情報に含まれている。把持可能性が閾値未満の場合、制御パラメータ変更部２５は、把持の際のロボットハンドの進入速度や把持後のロボット動作速度を落としたり、把持の際の停止時間を長くするように制御パラメータを変更する。本実施の形態のロボットシミュレーション装置によれば、選択されたロボットハンドの把持可能性に応じて制御パラメータを変更することで、把持成功率をさらに高めた設計を実現することができる。また、本実施の形態のロボットシミュレーション装置は、実施の形態１におけるものと同様の効果も有する。
【００８３】
実施の形態５．
実施の形態１におけるロボットシミュレーション装置では、ハンド形状毎の把持可能性に基づいてロボットハンドの形状を選択するように構成していた。ハンド形状毎の把持可能性に加えて、ロボットハンドによるワークのバラ積み取り出し作業をシミュレートし、見積もられたタクトタイムも考慮してロボットハンドの形状を選択するように構成することも可能である。これにより、タクトタイムを短縮可能なロボットハンドの形状が選択される可能性をさらに高めることができる。
【００８４】
図１４は、本発明の実施の形態５によるロボットシミュレーション装置を示す機能ブロック図である。本実施の形態のロボットシミュレーション装置は、演算部２にタクトタイム算出部２６を備えた点が、実施の形態１の図１におけるものと異なる。図１４において、図１におけるものと同一の番号を付したものは同等のものであり、説明を省略する。以下、図１４を用いて演算部２の動作について述べる。
【００８５】
演算部２において、ハンド選択部２３ｂでハンド形状毎の把持可能性を演算し、これに基づいてロボットハンドの形状を選択するまでの処理は、上記実施の形態１におけるものと同様である。ただし、実施の形態１におけるものと異なり、ハンド選択部２３ｂが備える評価選択部２３５ｂはハンド形状毎の把持可能性が高い順に複数のハンド形状を選択する。すなわち、図２に示したフロー図と比較すると、本実施の形態のロボットシミュレーション装置の動作は、ステップＳ２３５において複数のハンド形状が選択される点と、ステップＳ２３５の動作の後に、タクトタイム算出部２６の動作が追加された点とが異なる。
【００８６】
タクトタイム算出部２６は、ハンド選択部２３ｂで選択された複数のロボットハンドの形状を用いて、ワークのバラ積み取り出し作業をシミュレートし、それぞれのロボットハンドに対するタクトタイムを見積もる。続いて、タクトタイム算出部２６は、見積もられたタクトタイムをスコアに換算する。このスコアは、タクトタイムが短いほど高い値となる。さらに、タクトタイム算出部２６は、ハンド形状毎の把持可能性と対応するハンド形状に対するスコアを重み付け加算して、最も高い値となるハンド形状を選択する。本実施の形態のロボットシミュレーション装置は、以上のように動作する。本実施の形態のロボットシミュレーション装置によれば、タクトタイムを短縮可能なロボットハンドの形状が選択される可能性をさらに高めることができる。また、本実施の形態のロボットシミュレーション装置は、実施の形態１におけるものと同様の効果も有する。
【符号の説明】
【００８７】
１  記憶部、２  演算部、３  表示部、４  入力部、２１  バラ積み演算部、２２  奥行き計測模擬部、２３、２３ｂ  ハンド選択部、２４  制御部、２５  制御パラメータ変更部、２６  タクトタイム算出部、２２１  センサモデル配置部、２２２  奥行きデータ生成部、２３１  形状モデル変換部、２３２  形状モデル回転部、２３３  領域抽出部、２３４  把持可能性演算部、２３５、２３５ｂ  評価選択部、２３６  形状モデル調整部、２３７  形状モデル生成部、３１  奥行きデータ表示部、３２  仮想空間表示部、３３  設計情報表示部。
【図１】
0006036662.tif 000008
【図２】
0006036662.tif 000009
【図３】
0006036662.tif 000010
【図４】
0006036662.tif 000011
【図５】
0006036662.tif 000012
【図６】
0006036662.tif 000013
【図７】
0006036662.tif 000014
【図９】
0006036662.tif 000015
【図１０】
0006036662.tif 000016
【図１１】
0006036662.tif 000017
【図１２】
0006036662.tif 000018
【図１３】
0006036662.tif 000019
【図１４】
0006036662.tif 000020
【図８】
0006036662.tif 000021