特許第5835926号(P5835926)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧
特許5835926情報処理装置、情報処理装置の制御方法、およびプログラム
<>
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000023
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000024
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000025
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000026
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000027
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000028
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000029
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000030
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000031
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000032
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000033
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000034
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000035
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000036
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000037
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000038
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000039
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000040
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000041
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000042
  • 特許5835926-情報処理装置、情報処理装置の制御方法、およびプログラム 図000043
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5835926
(24)【登録日】2015年11月13日
(45)【発行日】2015年12月24日
(54)【発明の名称】情報処理装置、情報処理装置の制御方法、およびプログラム
(51)【国際特許分類】
   B25J 13/08 20060101AFI20151203BHJP
【FI】
   B25J13/08 A
【請求項の数】11
【全頁数】31
(21)【出願番号】特願2011-87698(P2011-87698)
(22)【出願日】2011年4月11日
(65)【公開番号】特開2012-218119(P2012-218119A)
(43)【公開日】2012年11月12日
【審査請求日】2014年4月7日
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100076428
【弁理士】
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100112508
【弁理士】
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100115071
【弁理士】
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100116894
【弁理士】
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【弁理士】
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100134175
【弁理士】
【氏名又は名称】永川 行光
(72)【発明者】
【氏名】青葉 雅人
【審査官】 牧 初
(56)【参考文献】
【文献】 特開2007−245283(JP,A)
【文献】 特開平4−167104(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00−21/02
(57)【特許請求の範囲】
【請求項1】
ロボットアームの作業部による作業の対象となる被作業物体の位置姿勢を認識器により認識処理するための情報処理装置であって、
前記被作業物体の複数の位置姿勢のそれぞれに対して前記作業部が作業を行い得る、当該作業部の位置姿勢を取得する取得手段と、
前記取得手段により取得された前記作業部が作業を行い得る位置姿勢に対して、前記作業部により前記作業が可能であるか否かを判定する判定手段と、
前記判定手段により前記作業が可能であると判定された場合、前記被作業物体の複数の位置姿勢から、前記作業部が作業を行い得る位置姿勢に対応する前記被作業物体の位置姿勢を、前記認識器の認識処理で用いられる位置姿勢として限定する限定手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記取得手段は、前記複数の位置姿勢のうちの1つとして、前記被作業物体が載置される作業領域における仮想位置において前記被作業物体が予め定められた姿勢である場合に、前記ロボットアームの逆運動学を解くことにより、前記逆運動学の解が得られた場合の前記仮想位置と、前記被作業物体の姿勢と、に対応する前記作業部の位置姿勢を、前記作業部が行い得る位置姿勢として取得することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記作業領域における前記仮想位置ごとに前記限定手段により限定された位置姿勢の有無を示す作業可否情報を算出する作業情報算出手段と、
前記仮想位置を基準にボロノイ境界で前記作業領域を分割する領域分割手段と、
前記領域分割手段により分割された領域ごとに、前記作業情報算出手段により算出された前記作業可否情報が等しい領域を統合して、前記作業可否情報の分布を示すマップを生成する生成手段と、
をさらに備え、
前記生成手段により生成された前記マップは前記認識器の認識処理で用いられることを特徴とする請求項に記載の情報処理装置。
【請求項4】
前記被作業物体の前記作業領域における前記仮想位置を設定する仮想位置設定手段をさらに備えることを特徴とする請求項またはに記載の情報処理装置。
【請求項5】
前記被作業物体の前記作業領域における前記仮想位置を予め記憶する仮想位置記憶手段をさらに備えることを特徴とする請求項またはに記載の情報処理装置。
【請求項6】
前記限定手段により限定された位置姿勢を表示する表示手段をさらに備えることを特徴とする請求項またはに記載の情報処理装置。
【請求項7】
取得手段と、判定手段と、限定手段とを備え、ロボットアームの作業部による作業の対象となる被作業物体の位置姿勢を認識器により認識処理するための情報処理装置の制御方法であって、
前記取得手段が、前記被作業物体の複数の位置姿勢のそれぞれに対して前記作業部が作業を行い得る、当該作業部の位置姿勢を取得する取得工程と、
前記判定手段が、前記取得工程により取得された前記作業部が作業を行い得る位置姿勢に対して、前記作業部により前記作業が可能であるか否かを判定する判定工程と、
前記限定手段が、前記判定工程により前記作業が可能であると判定された場合、前記被作業物体の複数の位置姿勢から、前記作業部が作業を行い得る位置姿勢に対応する前記被作業物体の位置姿勢を、前記認識器の認識処理で用いられる位置姿勢として限定する限定工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項8】
コンピュータに請求項に記載の情報処理装置の制御方法の各工程を実行させるためのプログラム。
【請求項9】
ロボットアームの作業部により保持される被作業物体の姿勢に対する認識器を生成する情報処理装置であって、
前記作業部が取り得る前記作業部の姿勢を取得する第1の取得手段と、
前記作業部が前記被作業物体を保持する際の前記被作業物体と前記作業部との相対姿勢を取得する第2の取得手段と、
前記作業部の前記取得された姿勢と、前記作業部が前記被作業物体を保持する際の前記被作業物体と前記作業部との相対姿勢とに基づいて、前記被作業物体の姿勢を限定する限定手段と、
前記被作業物体の前記限定された姿勢に基づいて前記被作業物体を認識するために使用される認識器を生成する生成手段と、
を備えることを特徴とする情報処理装置。
【請求項10】
第1の取得手段と、第2の取得手段と、限定手段と、生成手段とを備え、ロボットアームの作業部により保持される被作業物体の姿勢に対する認識器を生成する情報処理装置の制御方法であって、
前記第1の取得手段が、前記作業部が取り得る前記作業部の姿勢を取得する第1の取得工程と、
前記第2の取得手段が、前記作業部が前記被作業物体を保持する際の前記被作業物体と前記作業部との相対姿勢を取得する第2の取得工程と、
前記限定手段が、前記作業部の前記取得された姿勢と、前記作業部が前記被作業物体を保持する際の前記被作業物体と前記作業部との相対姿勢とに基づいて、前記被作業物体の姿勢を限定する限定工程と、
前記生成手段が、前記被作業物体の前記限定された姿勢に基づいて前記被作業物体を認識するために使用される認識器を生成する生成工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項11】
コンピュータに請求項10に記載の情報処理装置の制御方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理装置の制御方法、およびプログラムに関し、特に、ロボットアームにより所定の作業を行うために、被作業物体を認識する認識器を生成し、生成された認識器を用いて山積みされた被作業物体の三次元位置および姿勢を推定する情報処理装置、情報処理装置の制御方法、およびプログラムに関する。
【背景技術】
【0002】
視覚情報を使用する認識の分野において、物体の三次元的な位置や姿勢を推定する方法に関して、さまざまな研究開発が行われている。産業用ロボットや実験的なヒューマノイドロボットなどの分野ではランダムピッキングなどの用途で三次元情報を利用することも多く、その必要性は高くなってきている。扱う対象物体の姿勢自由度が高い場合、対象物体のさまざまな姿勢を三次元的に推定する必要がある。既知形状の対象物体に関しては、ステレオカメラやレーザレンジファインダなどの三次元センサを用いて位置および姿勢を推定する方法がある。三次元センサから得られた三次元特徴量と、モデル上の複数特徴点に関する三次元特徴量との対応関係を取得することにより、剛体変換を用いて物体の位置および姿勢を算出する。また、単眼カメラによる対象物体の位置姿勢推定も行われており、さまざまな姿勢を多クラス分類問題として認識する方法がある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許2555823号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
対象物体が三次元的な自由度を持つ場合でも、実用上はある限定された姿勢だけを認識すればよい場合がある。すなわち、ロボットハンドによる対象物体の把持作業を考えた場合、検出された対象物体の推定姿勢が、ロボットとの相対的な位置関係を考えた時に把持不可能である場合がある。そのような対象物体を検出することはタスクとして無駄であり、最初から無視しても不都合はない。特に工業用ロボットの分野ではこの制限は顕著であることが多く、把持不可能な姿勢の対象物体をわざわざ検出することは、検出するための認識器におけるメモリ量や検出処理時間の増加を招いている。
【0005】
特許文献1では、山積み部品画像の輪郭線に基づいて部品を照合する際、基準姿勢における照合モデルに対して許容される不一致範囲である照合限界値を、把持可能な範囲における許容限界角度に基づいて設定している。この方法では、姿勢の自由度を大きく設定しておらず、一つの基準姿勢からの照合限界値を緩めることで、基準姿勢からの姿勢変動を許容して検出している。
【0006】
しかしながら、特許文献1に記載される方法では、把持可能性を考慮した姿勢範囲を考慮しているが、姿勢の自由度が大きい場合を考えておらず、また姿勢によって対象物体の見え方が大きく変化するような場合に利用することは難しいという課題がある。
【0007】
上記の課題に鑑み、本発明は、姿勢自由度の大きい対象物体に対して、実作業で利用される認識器のメモリ量を削減し、対象物体検出時の認識処理時間を短縮することを目的とする。
【課題を解決するための手段】
【0008】
上記の目的を達成する本発明に係る情報処理装置は、
ロボットアームの作業部による作業の対象となる被作業物体の位置姿勢を認識器により認識処理するための情報処理装置であって、
前記被作業物体の複数の位置姿勢のそれぞれに対して前記作業部が作業を行い得る、当該作業部の位置姿勢を取得する取得手段と、
前記取得手段により取得された前記作業部が作業を行い得る位置姿勢に対して、前記作業部により前記作業が可能であるか否かを判定する判定手段と、
前記判定手段により前記作業が可能であると判定された場合、前記被作業物体の複数の位置姿勢から、前記作業部が作業を行い得る位置姿勢に対応する前記被作業物体の位置姿勢を、前記認識器の認識処理で用いられる位置姿勢として限定する限定手段と、
を備えることを特徴とする。
【発明の効果】
【0009】
本発明によれば、姿勢自由度の大きい対象物体に対して、実作業で利用される認識器のメモリ量を削減し、対象物体検出時の認識処理時間を短縮することが可能となる。
【図面の簡単な説明】
【0010】
図1】本発明を含むシステム全体の構成を説明する図。
図2】本発明を含むシステムの具体的な構成例を示す図。
図3】第1実施形態に係るシステムの各装置構成を説明する図。
図4】姿勢パターンの生成を説明する図。
図5】被作業物体の位置および姿勢の表現を説明する図。
図6】エンドエフェクタ座標系とロボットアーム先端座標系との関係を説明する図。
図7】作業状態の設定を説明する図。
図8】仮想位置の設定を説明する図。
図9】作業可能性を判定する姿勢パターンの設定を説明する図。
図10】6軸多関節ロボットアームの具体例を示した図。
図11】仮想位置を複数設定する場合の例を示した図。
図12】限定姿勢マップの生成を説明する図。
図13】学習データとしてCG画像を生成する過程を説明する図。
図14】第2実施形態に係るシステムの各装置構成を説明する図。
図15】第4実施形態に係るシステムの装置構成バリエーションの例を示した図。
図16】表示部による限定姿勢確認のための表示例を示す図。
図17】第4実施形態に係るシステムの装置構成の一例を説明する図。
図18】嵌合作業を表す図。
図19】第3実施形態に係るシステムの装置構成を説明する図。
図20】本発明に係る処理の手順を示すフローチャート。
図21】設定部における処理の手順を示すフローチャート。
【発明を実施するための形態】
【0011】
(第1実施形態)
図1を参照して、本発明に係る情報処理装置を用いたシステム全体の概要を説明する。最初にシステムの概要を説明し、詳細は後述する。オンラインにおける実作業時の動作として、まず撮像部R300は、ロボットシステムR200の作業対象である被作業物体を撮像する。その撮像情報は情報処理装置R100へと送られる。情報処理装置R100は被作業物体の位置姿勢を推定する。そして、その推定結果に基づいて生成された作業命令がロボットシステムR200のロボット制御部R210へと送られる。ロボット制御部R210は、送られてきた作業命令に従ってロボットアームR220を動作させ、被作業物体に対して所定の作業を行う。情報処理装置R100は、実作業時における被作業物体の位置姿勢を推定するための認識器をオフラインの状態であらかじめ生成する。その際、ロボットアームR220の作業可能性に基づいた被作業物体の姿勢に基づいて、取得すべき位置姿勢の範囲を限定して設定し、認識器を生成する。
【0012】
図2を参照して、上記システムの具体的なハードウェア構成例を説明する。ロボットコントローラA210およびロボットアームA220は、図1におけるロボットシステムR200の構成要素である。ロボットコントローラA210はロボット制御部R210に相当し、ロボットアームA220はロボットアームR220に相当する。被作業物体A400は、ロボットアームA220による作業対象となる物体である。トレイA500には、被作業物体A400が複数個載置されている。カメラA300は、図1における撮像部R300に相当する。カメラA300は画像情報を得るための単眼カメラでもよいし、距離情報を得るためのステレオカメラやTOFセンサ、あるいは、カメラと投光器の組み合わせによる、光切断法や空間コード化法などを用いる装置でもよい。ロボットアームA220には被作業物体への所定の作業(例えば把持作業)を行うためのエンドエフェクタA230が設置されている。計算機A100は、図1における情報処理装置R100を含むものである。
【0013】
オンラインにおける実作業時には、まず、カメラA300により撮像された、トレイA500に山積みされた被作業物体の情報が計算機A100へと送られる。計算機A100では認識器による計算が行われ、トレイA500における被作業物体A400の位置姿勢が推定される。推定された被作業物体A400の位置姿勢に基づき、所定作業を行うための命令がエンコードされ、ロボットコントローラA210へと送られる。ロボットコントローラA210は送られてきた命令をデコードし、ロボットアームA220およびエンドエフェクタA230を動作させ、認識された被作業物体A400に対して所定作業を行う。 情報処理装置R100における認識器は、被作業物体A400の三次元的な位置および姿勢をクラス分けするクラス分類器であり、撮像部R300から得られた情報がどのクラスに当てはまるのかを判定することにより、被作業物体の位置姿勢を認識する。本実施形態では被作業物体は一種類であるとして説明しているが、必ずしも一種類に限定されるものではない。複数種類の被作業物体を認識する場合には、クラス数を増やすことによって複数種類の被作業物体に対して認識器を作ることも可能である。この認識器は、実作業より前に、オフライン状態で情報処理装置R100において予め生成されるものである。その際、認識器のメモリ量を削減し、被作業物体検出時の認識処理時間を短縮するため、以下で説明される処理を行うことにより、検出すべき被作業物体の位置姿勢の範囲が限定されるようにする。
【0014】
図3を参照して、上述したように検出すべき被作業物体の位置姿勢の範囲を限定するための、情報処理装置R100の機能構成を説明する。情報処理装置R100は、姿勢設定部S1010と、作業状態設定部S1020と、データ記憶部D1030と、仮想位置設定部S1040と、ロボットパラメータ記憶部D1050と、取得部S1060と、設定部S1070と、学習データ生成部S1080と、認識器生成部S1090と、認識器記憶部D1100と、認識処理部S1110と、作業命令生成部S1120と、較正結果記憶部D1130とを備える。
【0015】
姿勢設定部S1010は、認識器で扱う可能性のある姿勢集合Θ={θ}(j=1…N)を生成する。ここで、Nはすべてのクラスを表現した姿勢の総数である。生成された姿勢集合Θは、取得部S1060へ送られる。
【0016】
作業状態設定部S1020は、被作業物体A400に対するエンドエフェクタA230による作業状態を設定する。ここで作業状態は、所定の作業内容によって決まるものである。例えば、作業内容がフィンガーによる把持作業の場合、作業状態は、被作業物体A400上の把持位置をフィンガーで把持した状態における、被作業物体A400とエンドエフェクタA230との相対位置姿勢で表される。
【0017】
データ記憶部D1030は、被作業物体A400のモデルデータとエンドエフェクタA230のデータとを、三次元モデルデータとしてあらかじめ記憶しており、被作業物体A400における物体座標系とエンドエフェクタA230におけるエンドエフェクタ座標系とが設定されている。仮想位置設定部S1040は、後述する作業領域内の仮想位置を設定する。
【0018】
ロボットパラメータ記憶部D1050は、リンク長および関節回転角の限界値等の、ロボットアームR220の特性パラメータとして設計値により定まる既知の値を記憶する。取得部S1060は、姿勢設定部S1010により算出された姿勢集合Θと、作業状態設定部S1020により設定された相対位置pおよび相対姿勢EHpと、仮想位置設定部S1040により設定された仮想位置Xとを取得し、これらに基づいて検出すべき被作業物体A400の姿勢を算出して取得する取得手段として機能する。
【0019】
設定部S1070は、取得部S1060により算出された各姿勢に対する作業可能性に基づいて、認識器を生成するために必要な限定姿勢を設定し、被作業物体A400の姿勢の範囲を限定するように設定する限定手段として機能する。学習データ生成部S1080は、被作業物体A400の限定姿勢における学習データを生成する。認識器生成部S1090は、学習データ生成部S1080により生成された学習データを用いて、認識器を生成する。
【0020】
認識器記憶部D1100は、認識器生成部S1090により生成された認識器を記憶する。認識処理部S1110は、撮像部R300により撮像された画像データと、認識器記憶部D1100に記憶されている認識器とを用いて、被作業物体A400の位置姿勢を認識する。認識処理部S1110により認識された被作業物体A400の位置姿勢は、作業命令生成部S1120へと送られる。
【0021】
作業命令生成部S1120は、認識処理部S1110により認識された被作業物体A400の推定位置姿勢と、に基づいて、被作業物体A400への作業を行う命令を生成する。較正結果記憶部D1130は、カメラとロボットとの間の相対位置関係情報を記憶する。作業命令生成部S1120は、この相対位置関係情報からロボットの目標位置を設定し、その目標位置はロボット命令としてエンコードされる。エンコードされたロボット命令は、ロボット制御部R210へと送信される。
【0022】
次に、情報処理装置R100における被作業物体の位置姿勢の範囲設定処理について詳細に説明する。本実施形態における、被作業物体の認識対象となる位置姿勢の範囲を設定する処理は、実作業よりも前にオフラインで行われる。この処理は、撮像部R300およびロボットシステムR200を情報処理装置R100に接続することなく、計算機A100内部における演算で実現できる。
【0023】
まず、姿勢設定部S1010は、認識器で扱う可能性のある姿勢集合Θ={θ}(j=1…N)を生成する。ここで、Nはすべてのクラス表現した姿勢の総数である。ここで、図4を参照して、この姿勢集合Θの生成について説明する。被作業物体A400の三次元的な姿勢集合は、測地ドーム401と面内回転402とを組み合わせて生成される。ここで測地ドーム401とは、正多面体の三角形面素を再帰的に同一面積の三角形に分割していくことで球面を均一に離散化表現する公知の手法である。測地ドーム401の中心を被作業物体中心404と見なせば、測地ドーム401から得られた正多面体の頂点は、それぞれ被作業物体A400をさまざまな位置から見下ろすときの視点403と考えることができる。測地ドーム401における各視点403から得られる被作業物体A400の見え方のバリエーションは、面内回転402のパターンを伴う。そのため、例えば162視点の測地ドーム401で、面内π/4毎の回転パターンを与えるとすれば、姿勢集合はN=162×8=1296個存在することになる。一般的に物体の位置姿勢は、図5に示されるように、モデル511を観測値512へと移動させるための変換により表現される。具体的には、カメラ座標系C101における物体座標系C102への平行移動ベクトルPにより位置を表すことができる。また、カメラ座標系C101における物体座標系C102の各軸の方向ベクトルの組による姿勢行列E=[eWX、eWY、eWZ]により姿勢を表すことができる。姿勢行列Eの要素であるeWX、eWY、eWZはそれぞれ長さ1の単位列ベクトルである。認識器の姿勢を表現する場合には位置を考慮する必要はなく、被作業物体の姿勢θにおける姿勢行列はEWj=[eWjX、eWjY、eWjZ]で表すこととする。物体座標系軸を測地ドーム401の各視点方向を軸にして面内回転させ、測地ドームの視点方向の傾きを加えれば、各姿勢の姿勢行列が得られる。生成された姿勢集合Θは、取得部S1060へ送られる。
【0024】
作業状態設定部S1020は、被作業物体A400に対するエンドエフェクタA230による作業状態を設定する。作業状態設定部S1020は、データ記憶部D1030から、被作業物体A400のモデルデータと、エンドエフェクタA230のデータとを読み込む。被作業物体A400のモデルデータおよびエンドエフェクタA230のデータは、三次元モデルデータとしてデータ記憶部D1030にあらかじめ記憶されており、被作業物体A400における物体座標系とエンドエフェクタA230におけるエンドエフェクタ座標系とが設定されている。ここで図6は、エンドエフェクタ座標系C103とロボットアーム先端座標系C104との関係を示している。後述するロボットアーム先端位置姿勢の計算を簡略化するために、エンドエフェクタ座標系C103は、ロボットアームと接続されているエンドエフェクタ接続状態601の時に、ロボットアーム先端座標系C104と一致するように設定されてもよい。以降の説明では、エンドエフェクタ座標系C103とロボットアーム先端座標系C104とは接続時に一致しているものとする。ユーザは、被作業物体A400の物体座標系C102を基準とした時に、エンドエフェクタA230が所定の作業を行うときの状態を指定する。指定の方法はインタフェースの形式に依存するものではない。例えば、三次元表示によるGUIを用いてユーザが合わせ込んでもよいし、数値入力によって設定してもよい。
【0025】
図7を参照して、この作業状態の設定について説明する。設定された作業状態における被作業物体A400とエンドエフェクタA230との相対位置701として、物体座標系C102を基準としたエンドエフェクタ座標系原点の位置p=[X、Y、Zを算出する。ここで上付きのTは行列の転置を表す。
【0026】
また、物体座標系C102を基準としたエンドエフェクタA230の姿勢行列EHp=[eHpX、eHpY、eHpZ]を、被作業物体A400とエンドエフェクタA230の相対姿勢702として算出する。算出されたpとEHpとは、取得部S1060へ送られる。作業状態は、所定の作業内容によって決まるものである。例えば、作業内容が図2図7に示したようなフィンガーによる把持作業の場合、作業状態は、被作業物体A400上の把持位置をフィンガーで把持した状態における、被作業物体A400とエンドエフェクタA230との相対位置姿勢で表される。また、作業内容が図9(b)を参照して後述するノズルによる吸着作業の場合、作業状態は、被作業物体A400上の吸着面をノズルで吸着した際の被作業物体A400とエンドエフェクタA230との相対位置姿勢で表される。作業内容は、被作業物体A400を把持または吸着することを目的としたピッキング動作だけに限定されるものではない。例えば、図18(a)に示されるようにエンドエフェクタA230が把持している嵌合部品A402を、図18(b)に示されるように被嵌合部品A401へ嵌合させる嵌合作業を作業内容としてもよい。その場合、被嵌合部品A401を被作業物体A400とみなし、図18(b)のような嵌合状態におけるエンドエフェクタA230と被嵌合部品A401との相対位置姿勢を作業状態と考えることもできる。設定する作業状態は一種類だけでなくてもよい。複数の作業状態が可能である場合、例えば複数の角度で把持することが可能な場合などでは、作業状態を複数指定すればよい。その場合、被作業物体A400とエンドエフェクタA230との相対位置pと、物体座標系C102を基準としたエンドエフェクタ姿勢行列EHpとが、それぞれ複数設定される。また、ピッキング作業や嵌合作業などにおいて、被作業物体A400に対する相対的なアプローチ経路が決まっている場合には、その途中経路を作業状態として追加設定してもよい。例えば、図18のような嵌合作業時に、図18(b)で表される嵌合状態への前段階として、嵌合部品A401と被嵌合部品A402とが図18(a)のような位置関係である必要がある場合には、図18(a)の状態を追加の作業状態として設定する。
【0027】
次に、仮想位置設定部S1040は、作業領域内の仮想位置を設定する。図8は、仮想位置に関して説明している。ここで仮想位置とは、作業領域内の任意位置であり、部品の中心が配置される位置である。作業領域とは、作業が行われる前に被作業物体A400が配置される範囲であり、具体的には、トレイA500内の空間などによって定義される。後述するように仮想位置設定部S1040による仮想位置801は複数回のループによって複数選択されることもあり、k回目の設定によって設定された仮想位置801をXと書くこととし、Xはロボット座標系C107基準で表現されるものとする。初期設定(k=1)としては、例えば、Xを作業領域端の一点や、作業領域重心などに設定する。設定されたXは、取得部S1060へ送られる。
【0028】
取得部S1060は、姿勢設定部S1010により算出された姿勢集合Θと、作業状態設定部S1020により設定された相対位置pおよび相対姿勢EHpと、仮想位置設定部S1040により設定された仮想位置Xとを取得する。そして、これらに基づいて検出すべき被作業物体A400の姿勢を算出する。検出すべき被作業物体A400の姿勢は、ロボットアーム先端部(作業部)が作業を行い得る位置姿勢を考慮して算出される。まず、仮想位置Xに被作業物体A400の物体座標系原点を配置することを仮定する。図9(a)に示されるように、物体座標系原点901を固定した状態で、被作業物体A400の姿勢をθにした場合を考える。判定対象となる姿勢θは、通常はΘで定義されたすべての姿勢であるが、被作業物体A400の配置に関する限定やエンドエフェクタA230の特性、トレイ配置などによる既知の環境情報を用いて、事前に限定してもよい。例えば、作業領域における被作業物体A400の置かれ方がパーツフィーダなどによってある程度決まっているのであれば、その範囲内で判定対象姿勢θを限定してもよい。あるいは、図9(b)に示されるように、エンドエフェクタが、ノズル911による吸着式であり、被作業物体A400を吸着可能な姿勢の範囲が実験的に既知であれば、その範囲内に判定対象姿勢θを限定してもよい。また、作業領域におけるトレイA500の位置が既知である場合、図9(c)に示されるように、仮想位置Xに対して、トレイ壁面921とエンドエフェクタA230とが干渉するような姿勢を、判定対象姿勢からあらかじめ取り除いておいてもよい。
【0029】
判定対象姿勢θに対してロボットアームR220が作業可能であるか否かの判定は、ロボットアームの逆運動学を解いた結果、ロボットアーム先端部(作業部)の位置姿勢が、ロボットの構造上作業を行い得るかどうかを計算することにより行われる。逆運動学の解析的な解き方はロボットの構成に依存するが、ここではRPP−RPR型の6軸多関節ロボットを仮定して説明する。ここでRは回転関節(Rotational Joint)、Pは直動関節(Prismatic Joint)を表す。
【0030】
図10は、このRPP−RPR型ロボットの構造を説明した図である。ロボット座標系C107は関節Jの座標系と等しいとする。各関節Jに対して、JとJi+1との間のリンク長をlとする。ただし、関節Jとロボットアーム先端部までの長さはlとする。また、JとJとは同一位置にあるものとし、l=0と仮定する。関節Jの右手系回転角度をφとし、すべてのφが0radのときの状態をロボットアームR220の初期状態とする。リンク長および関節回転角の限界値は、ロボットアームR220の特性パラメータとして設計値により定まる既知の値であり、ロボットパラメータ記憶部D1050から読み込まれる。
【0031】
通常、回転関節(この例ではφ、φ、φ)の回転角に限界値はない(もしくは、あっても範囲が広い)が、直動関節(この例ではφ、φ、φ)は隣接リンクとの干渉による物理的な限界から、角度範囲が狭いことが多い。各関節Jの姿勢行列はE=[eiX、eiY、eiZ]で表され、ロボットアーム初期状態における姿勢行列Eが単位行列となるように定義される。関節Jのロボット座標系における位置はQ=[X,Y、Zで表される。逆運動学を解くことは、ロボットアーム先端部(作業部)の位置および姿勢が決まったときの各関節角φを算出することである。ロボットアーム先端部(作業部)の位置をQ=[X、Y、Z、姿勢をE=[eTX、eTY、eTZ]とすると、φの解として式(1)のような二通りの値が得られる。
【0032】
【数1】
【0033】
ここでATAN2(a、b)は式(2)を満たすθを与える逆正接関数である。
【0034】
【数2】
【0035】
さらに、φとは独立にφおよびφの値が式(3)および式(4)のように得られる。
【0036】
【数3】
【0037】
【数4】
【0038】
ただし、数式3および数式4は複合同順である。ここでα、βおよびγは以下の式(5)、式(6)、および式(7)で表される。
【0039】
【数5】
【0040】
【数6】
【0041】
【数7】
【0042】
ここで関節Jの位置Qは以下の式(8)により得ることができる。
【0043】
【数8】
【0044】
関節角φは、J軸とJ軸との成す角であるため、式(9)により得られる。
【0045】
【数9】
【0046】
ここで・はベクトルの内積、×はベクトルの外積を表す。ベクトルe3Y、e3Zおよびe5Yは以下の式(10)、式(11)、および式(12)により求めることができる。
【0047】
【数10】
【0048】
【数11】
【0049】
【数12】
【0050】
ただし、関節角φおよび関節角φは式(13)および式(14)により得られる。
【0051】
【数13】
【0052】
【数14】
【0053】
また、関節角φは式(15)により得られる。
【0054】
【数15】
【0055】
ここで、関節Jとロボットアーム先端との間には直動関節がなく、姿勢行列EとEは等しいため、式(16)の関係が成り立つ。
【0056】
【数16】
【0057】
また、関節Jとロボットアーム先端との間にも同様に直動関節がなく、姿勢行列EとEは等しいため、式(17)の関係が成り立つ。
【0058】
【数17】
【0059】
式(12)の符号反転により、φ、φ、φは複合同順で二通りの解を持つ。よって、φ〜φはこれらの組み合わせにより、一つのロボットアーム先端位置Q、姿勢Eに対して八通りの解を持つこととなる。
【0060】
被作業物体A400の物体座標系C102における中心をロボット座標系C107のXに置いたときに、被作業物体A400の姿勢がθであった場合を考える。姿勢行列Eと、被作業物体A400とエンドエフェクタA230との相対位置ベクトルpから、ロボット座標系C107におけるエンドエフェクタA230の位置Qが式(18)により得られる。
【0061】
【数18】
【0062】
また、ロボット座標系C107を基準としたエンドエフェクタ姿勢行列Eは式(19)により得ることができる。
【0063】
【数19】
【0064】
ここで、先に定義したように、ロボットアーム先端座標系C104がエンドエフェクタ座標系C103と一致している場合、Q=Q、E=Eである。これにより、被作業物体A400の位置Xおよび姿勢θにおける関節角が解析的に得られることになる。式(6)により、cosβの値が[−1、1]の間に入っているかどうかでφの解が得られるかどうかを判定することができる。同様に、式(6)および式(7)により、φの解が得られるかどうかを判定することができる。さらに、得られたφ〜φの値がロボットアームA220の設計可動範囲内でなければ可動範囲外であると判定される。これらの判定に対してロボットアーム設計可動範囲内のφ〜φが得られれば、関節条件を満たしているみなし、被作業物体A400が位置Xに存在し、姿勢θをとる場合に作業可能であると判定することができる。作業状態設定部S1020により設定された作業状態が複数ある場合は、仮想位置X、姿勢θに対して、それぞれの作業状態におけるpおよびETpに対する逆運動学を計算する。ロボットアーム先端部(作業部)が作業を行い得る姿勢が一つでもあるようであれば、仮想位置Xにおける姿勢θを作業可能であると判定する。以上説明した逆運動学の解法はロボットアームの関節の組み合わせ構成によって異なる。他構成のロボットアームに対する解法の説明はここでは省略するが、上述した構成のロボットアームに限定されるものではない。
【0065】
設定部S1070は、取得部S1060により算出された各姿勢の作業可能性に基づいて、認識器を生成するために必要な限定姿勢を設定し、被作業物体A400の位置姿勢の範囲を設定する。図21を参照して、この設定部S1070における処理の手順を説明する。
【0066】
まず、判定手段および作業情報算出手段として機能する作業可否ベクトル算出部S1071は、限定姿勢を設定し、それに基づいて作業可否ベクトルを算出する(作業情報算出処理)。取得部S1060により、仮想位置Xにおいて作業可能であると判定された姿勢θを、仮想位置Xにおける限定姿勢として設定する。これに基づいて、仮想位置Xに対する作業可否ベクトルF(N次元ベクトル)を定義する。作業可否ベクトルFのj番目の要素Fkjは、姿勢θが限定姿勢である場合にFkj=1、そうでない場合にFkj=0であるように定義する。すなわち、作業可否ベクトルFは、仮想位置Xにおける限定姿勢の有無を2値のベクトルで表現している。パースペクティブが無視できる程度に、カメラA300の画像における作業領域の画角が狭い場合には、仮想位置設定部S1040は、仮想位置Xを一つだけ(k=1)設定して、得られた作業可否ベクトルFを、取得する位置姿勢の範囲としてもよい。作業領域を広い画角で捕らえる場合には、画面の位置によって取得する位置姿勢の範囲が異なる可能性がある。その場合、まず仮想位置設定部S1040は、被作業物体A400の仮想位置Xを作業領域内に数種類設定し、取得部S1060による各姿勢の判定結果から、各仮想位置Xにおける作業可否ベクトルFを算出する。
【0067】
初期の仮想位置Xは粗く設定される。例えば、図11(a)に示されるように、作業領域1101の四隅にX〜Xを定義してもよい。また、高さによるパースペクティブが無視できないほどに被作業物体A400の山積み時の高さ変動が大きい場合には、図11(b)に示されるように、作業領域1102を立方体領域と定義して、八頂点にX〜Xを定義してもよい。
【0068】
また、図12(a)に示されるように、画像座標系における空間に設定された作業領域内に投影された、複数の仮想位置801Xを中心としてボロノイ境界1211を設定し、複数の領域に分割する(領域分割処理)。ボロノイ境界とは、任意の点Xを考えたときに点Xの最近傍となるXに点Xが属するとして領域を分割したときに得られる領域の境界のことである。
【0069】
次に、判定手段および作業情報算出手段および領域分割手段として機能する作業可否状態距離算出部S1072は、各位置における作業可否ベクトルの差として、作業可否状態距離を算出する。ある2つの仮想位置XとXとが上述したボロノイ境界で隣接するとき、それらの作業可否ベクトルFとFとのハミング距離を計算し、作業可否状態距離と定義する。FとFとの作業可否状態距離が0でない場合、仮想位置XとXとの画像座標系における距離を測定し、画像探索幅(通常は1画素)より大きければ、仮想位置設定部S1040により新規に仮想位置を追加設定する。図12(b)に示されるように、FとFとの中点に新規仮想位置1221を設定すればよい。そして、取得部S1060により作業可能性が判定され、新たに作業可否ベクトルが生成される。これを繰り返し、すべての現存する仮想位置に対して、作業可否状態距離が0でない2点間の、画像座標系における距離が画像探索幅以下であれば、仮想位置の追加処理を終了する。
【0070】
生成手段として機能する限定姿勢マップ生成部S1073は、作業可否状態距離算出部S1072で得られた結果から、作業可否ベクトルが等しい領域に同一のインデックスを付けて同一領域として統合する。これにより、図12(c)に示されるように、画像座標における各位置に対する限定姿勢マップ1231が生成される。この限定姿勢マップは、作業領域における位置姿勢の範囲を表しており、作業可否情報の分布を示している。図12(c)は、作業領域を複数領域1234に分割した限定姿勢マップの例を示す。ここでは模式的に測地ドーム1232に限定姿勢の範囲1233を示したが、実際には面内回転も含めて範囲が決まる。仮想位置が1つだけである場合には、作業領域全体で同じ限定姿勢を持つ限定姿勢マップ1231が生成されることになる。このようにして得られた限定姿勢マップから学習データを生成することにより、実作業時に利用する認識器を生成することになる。
【0071】
学習データ生成部S1080は、被作業物体A400の限定姿勢における学習データを生成する。学習データは三次元モデルに基づいて作成される。図13は、学習画像を生成する様子を表す。ロボット座標系C107とカメラ座標系C101との相対的な位置関係から、被作業物体A400が限定姿勢θをとるときの画像面への射影行列が求まる。そのため、データ記憶部D1030に記憶されている三次元モデルデータと、較正結果記憶部D1130に記憶されているロボットおよびカメラ間の較正結果とを利用して、既存のコンピュータグラフィックス技術により、学習データ1301を生成することができる。図13では学習データを画像として説明しているが、本来は認識器で用いる入力データ形式に依存するものであって、画像に限定されるものではない。例えば、距離センサを使ってデプスマップで認識する場合には、三次元モデルデータから奥行きを計算して、学習データとしてデプスマップを生成すればよい。較正結果記憶部D1130に記憶されている較正結果とは、ロボット座標とカメラ座標との相対的位置関係を表す変換行列、および、カメラのレンズ歪みパラメータ、カメラ座標と画像座標との対応を表すための射影行列、などを含む。これらの較正方法に関しては既知の手法を用いればよく、ここで詳細には説明しない。
【0072】
認識器生成部S1090は、学習データ生成部S1080により生成された学習データを用いて、認識器を生成する。認識器は、限定姿勢マップのそれぞれの領域に対して各々別の限定姿勢を持つ認識器を生成してもよいし、すべての作業領域において作業可能な限定姿勢を選択して認識器を生成してもよい。その際、生成される認識器における推定姿勢バリエーションであるクラス数は、限定姿勢として得られている姿勢数となる。
【0073】
認識器に用いられる手法は既存のどのようなものでもよく、本発明はどのような手法によっても限定されるものではない。例えば、公知技術であるSVM(Support Vector Machine)やRandomized Treeによる識別器としてもよい。例えば認識器にSVMを利用する場合、取得すべき位置姿勢が限定されることにより、学習するクラス数が少なくなることになる。その場合、学習に利用しなければならない学習データの数が減るため、学習の高速化が期待できる。また、クラス識別境界が減ることによりサポートベクトル数が少なくなることが期待でき、よりスパースな表現が可能となり、従って認識器のサイズ縮小と実作業時の検出速度および検出精度の向上が期待できる。
【0074】
限定姿勢マップ1231における、それぞれの領域1234に対する認識器を別々に生成する場合には、学習データ生成部S1080により生成された学習データのうち、各領域において作業可能となる限定姿勢の学習データを選択して各領域用の認識器を生成する。例えば図12(c)に示されるように、限定姿勢の組み合わせパターンが5つの領域に分けられる場合、5つの領域のそれぞれに対してそれぞれの限定姿勢の学習データを利用し、5つの認識器が生成される。
【0075】
すべての作業領域において作業可能な限定姿勢を選択する場合、例えば図12(c)のような場合には、全領域の限定姿勢に関してANDをとることにより、作業領域すべてにおいて作業可能な姿勢を得ることができる。そして全領域のANDで得られる限定領域に関する学習データを利用して一つの認識器を生成すればよい。認識器生成部S1090により生成された認識器は、認識器記憶部D1100に記憶される。以上により、オフラインにおける処理は終了となる。
【0076】
以降、オンラインにおける処理について説明する。オンラインにおける実作業時には、認識処理部S1110は、まず撮像部R300に撮像信号を送り、作業領域の画像が撮像される。撮像された画像データは、認識処理部S1110に送信され、認識処理部S1110は、認識器記憶部D1100に記憶されている認識器を使って、被作業物体A400の位置姿勢を認識する。領域ごとの認識器を用意している場合には、探索時の画像座標位置から認識器を選択する。認識処理部S1110により認識された被作業物体A400の位置および姿勢は、作業命令生成部S1120へと送られる。
【0077】
作業命令生成部S1120は、認識処理部S1110から取得された被作業物体A400の推定位置姿勢から、被作業物体A400への作業を行う命令を生成する。較正結果記憶部D1130から取得されるカメラとロボットとの間の相対位置関係から、ロボットの目標位置が設定され、その目標位置はロボット命令としてエンコードされる。エンコードされたロボット命令は、ロボット制御部R210へと送信される。
【0078】
ロボット制御部R210は、作業命令生成部S1120から受信した命令をデコードし、ロボットアームR220を動作させ、これによりロボットシステムが被作業物体A400に対して作業を行うことになる。
【0079】
本実施形態によれば、姿勢自由度の大きな被作業物体に対して、ロボットアームの作業可能性に基づいて認識すべき被作業物体の姿勢を限定することができる。そのため、実作業で利用される認識器のメモリ量を削減し、対象物体検出時の認識処理時間を短縮することができ、認識精度の向上が期待できる。
【0080】
(第2実施形態)
第1実施形態では、学習データ生成部S1080により生成される学習データは、三次元モデルデータから生成されるデータとしたが、本発明における学習データはこれに限定されない。学習データ生成部S1080により生成される学習データは、撮像部R300を用いて撮像された実写画像でもよい。図14を参照して、実写による学習データ生成を行う場合の装置構成を説明する。
【0081】
学習データ生成部S1080および学習画像記憶部D1140以外の構成および処理内容は第1実施形態と同様であるため、これらの処理部以外の説明は省略する。
【0082】
学習データ生成部S1080は、あらかじめ撮像部R300を用いて、対象物体に関する複数視点v(v=1、…、V)から得られる被作業物体の実写画像Iを取得し、学習画像記憶部D1140に記憶しておく。複数視点vの撮像間隔は、姿勢設定部S1010により生成された姿勢パターンの粒度よりも細かくするとよい。これら被作業物体画像の取得の際には、撮像部R300はオンラインの実作業時と同じ設定であるとよいが、必ずしも同じ設定である必要はない。
【0083】
画像取得後、学習データ生成部S1080は、まず、CADデータが記憶されたデータ記憶部D1030から被作業物体A400の三次元モデルを取得する。そして、その三次元モデルに基づいて、各視点から得られた学習画像における画像座標とカメラ座標とを対応付ける。学習データ生成部S1080は、学習画像記憶部D1140から読み出された学習画像Iにおける被作業物体のカメラ座標空間における位置姿勢を、手動もしくは公知技術によるトラッキングツールなどを使ったマッチング処理によって算出する。これにより学習画像における被作業物体A400のカメラ座標空間における位置Xと姿勢θとが求まり、CADデータを透視投影することにより画像上における被作業物体領域が得られる。画像上の被作業物体A400の物体座標系C102の中心で位置を正規化し、被作業物体A400の領域を抜き出して学習画像として用いる。
【0084】
得られた学習画像データに対して、設定部S1070により算出された限定姿勢θに最も近い姿勢である画像Iを、姿勢θの学習画像として扱う。このとき、θをθとして更新する。このようにして割り当てられた学習画像を学習データとして、認識器生成部S1090が認識器の学習を行う。
【0085】
本実施形態によれば、姿勢自由度の大きな被作業物体に対して、ロボットアームの作業可能性に基づいて認識すべき被作業物体の姿勢を限定することができる。そのため、実作業で利用される認識器のメモリ量を削減し、対象物体検出時の認識処理時間を短縮することができ、認識精度の向上が期待できる。
【0086】
(第3実施形態)
第3実施形態では、第1実施形態および第2実施形態とは異なり、取得部S1060による処理の全てが、計算機A100内部における演算により行われるという構成に限定されない。取得部S1060による処理は、実際にロボットアームR220を動作させることによって実現される構成であってもよい。
【0087】
図19は、ロボットアームR220を実際に動作させることにより、位置姿勢の範囲を取得する場合の情報処理装置R100の機能構成である。取得部S1060以外の各処理部の機能は第1実施形態もしくは第2実施形態と同様であるため、取得部S1060以外の説明は省略する。
【0088】
取得部S1060は、姿勢設定部S1010により設定された姿勢集合Θと、作業状態設定部S1020により設定された相対位置pおよび相対姿勢EHpと、仮想位置設定部S1040により設定された仮想位置Xとに基づいて、検出すべき被作業物体A400の姿勢を算出する。検出すべき被作業物体A400の姿勢は、ロボットアーム先端部(作業部)が作業を行い得る位置姿勢を考慮して算出される。
【0089】
まず、仮想位置Xに被作業物体A400の物体座標系原点を配置することを仮定する。作業可能かどうかを判定する対象となる姿勢θの姿勢行列をEとすると、ロボット座標系におけるロボットアーム先端部(作業部)の目標位置Qおよび目標姿勢Eは以下の式(20)および式(21)のように表される。
【0090】
【数20】
【0091】
【数21】
【0092】
取得部S1060は、目標位置Qおよび目標姿勢EへとロボットアームR220を動作させる命令を、ロボット制御部R210へ送る。ロボット制御部R210が目標位置Qおよび目標姿勢EへとロボットアームR220を移動させることができた場合、取得部S1060は姿勢θを作業可能な姿勢であると判定する。一方、目標位置Qおよび目標姿勢EへとロボットアームR220を移動させることができなかった場合、すなわちロボットアームの移動中にエラーが発生した場合は、θを作業不可能な姿勢であると判定する。
【0093】
本実施形態によれば、姿勢自由度の大きな被作業物体に対して、ロボットアームの作業可能性に基づいて認識すべき被作業物体の姿勢を限定することができる。そのため、実作業で利用される認識器のメモリ量を削減し、対象物体検出時の認識処理時間を短縮することができ、認識精度の向上が期待できる。
【0094】
(第4実施形態)
本発明は、第1実施形態で説明した構成に限定されるものではなく、さまざまな構成を取り得る。第1実施形態における姿勢設定部S1010による処理は必ずしもその処理時に計算されなくてもよい。例えば、図15(a)に示した構成のように、姿勢設定部S1010の代わりに姿勢記憶部D1010を設けてもよい。そして、あらかじめ設定された所定の姿勢集合を姿勢記憶部D1010に記憶しておき、取得部S1060が姿勢記憶部D1010から姿勢集合を読み出してもよい。
【0095】
また、第1実施形態における仮想位置設定部S1040による処理も同様に、必ずしもその処理時に計算されなくてもよい。例えば、図15(b)に示した構成のように、仮想位置設定部S1040の代わりに仮想位置記憶部D1040を設けてもよい。そして、あらかじめ設定された複数の仮想位置を仮想位置記憶部D1040に記憶しておき、取得部S1060が仮想位置記憶部D1040から仮想位置を読み出してもよい。
【0096】
また、第1実施形態における作業状態設定部S1020による処理も同様にして、必ずしもユーザによりインタフェースを介して設定されなくてもよい。例えば、図15(c)に示した構成のように、作業状態設定部S1020の代わりに作業状態記憶部D1020を設けてもよい。CADなどによって設定された、作業時の被作業物体とエンドエフェクタの相対位置姿勢関係を作業状態記憶部D1020に記憶しておき、取得部S1060が作業状態記憶部D1020から相対位置姿勢関係を読み出すようにしてもよい。
【0097】
なお、姿勢設定部S1010もしくは姿勢記憶部D1010、仮想位置設定部S1040もしくは仮想位置記憶部D1040、作業状態設定部S1020もしくは作業状態記憶部D1020の組み合わせバリエーションは自由である。そのため、図示しないさまざまな構成が可能である。
【0098】
さらに、設定部S1070により得られた限定姿勢マップを可視化して確認するため、図17に示したように、限定姿勢マップを表示する表示部S1150を装置構成に加えてもよい。
【0099】
図16は、表示部S1150による限定姿勢マップの表示例を示したものであり、表示部S1150により表示されたウィンドウ1601は限定姿勢を表示する。表示部S1150は、ユーザが画面上の作業領域部分を選択した領域において、設定部S1070により選択された幾何情報の範囲の内容を、測地ドーム401と、コンピュータグラフィックスによる被作業物体A400の見え方と、を用いて表示する。これにより、ユーザは設定された限定姿勢を目視で確認することができ、設定ミスやデータ登録ミスなどを、実作業の前に確認することができる。
【0100】
また、第1、第2、および第3実施形態に示した情報処理装置R100のオフラインにおける処理は、一連の情報処理方法として実現することも可能である。図20のフローチャートを参照して、処理の手順を説明する。
【0101】
姿勢設定工程P1010において、姿勢設定部S1010は、認識器で扱う可能性のある姿勢集合を生成する。
【0102】
作業状態設定工程P1020において、作業状態設定部S1020は、被作業物体A400に対するエンドエフェクタA230による作業状態を設定する。
【0103】
仮想位置設定工程P1040において、仮想位置設定部S1040は、作業領域内の仮想位置を設定する。
【0104】
取得工程P1060において、取得部S1060は、ロボットアーム先端部(作業部)が取り得る位置姿勢を考慮した、検出すべき被作業物体A400の姿勢を算出する。
【0105】
設定工程P1070において、設定部S1070は、認識器を生成するために必要な限定姿勢を設定し、被作業物体A400の位置姿勢の範囲を設定する。
【0106】
学習データ生成工程P1080において、学習データ生成部S1080は、被作業物体A400の限定姿勢における学習データを生成する。
【0107】
認識器生成工程P1090において、認識器生成部S1090は、学習データ生成部S1080により生成された学習データを用いて、認識器を生成する。以上で処理が終了する。
【0108】
本実施形態によれば、姿勢自由度の大きな被作業物体に対して、ロボットアームの作業可能性に基づいて認識すべき被作業物体の姿勢を限定することができる。そのため、実作業で利用される認識器のメモリ量を削減し、対象物体検出時の認識処理時間を短縮することができ、認識精度の向上が期待できる。
【0109】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
図1
図3
図14
図15
図17
図19
図20
図21
図2
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図16
図18