(57)【要約】最初に、対象物モデルライブラリ及び作業モジュールライブラリを提供する。対象物モデルライブラリは、処理すべき実際の対象物に幾何学的に類似する少なくとも１つの対象物モデルを含む。作業モジュールライブラリは、行うべき各作業用の少なくとも１つの作業モジュールを含む。それから、処理すべき各実際の対象物に対して、対象物モデルライブラリにおける対象物モデルとの関連により、及び、対象物モデルの幾何学的パラメータの明細により、仮想対象物を定義付けする。その後、行うべき各作業に対して、作業モジュールライブラリから作業モジュールを選択すると共に、その作業パラメータを特定することにより、その操作を定義付けする。随意に、定義付けされた各仮想対象物に対して、その仮想対象物には、対応する実際の対象物を前もって撮像した少なくとも１つの二次元画像を関係づける。
2011516283.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの実際の対象物に少なくとも１つの作業を行なうように、光学的認識手段を有しているロボットシステムに教示する方法であって、
前記方法は、
三次元形状を表わす少なくとも１つの対象物モデルを含んでいる対象物モデルライブラリを提供し、かつ、作業を記述する少なくとも１つの作業モジュールを含んでいる作業モジュールライブラリを提供するステップであって、各対象物モデルは前記三次元形状の複数の幾何学的パラメータを含み、各作業モジュールは、作業すべき少なくとも１つの目的物及び前記作業に関連する複数の情報ピースについての複数の作業パラメータを含む、ステップと、
前記ロボットシステムにより処理すべき実際の対象物を表わす仮想対象物を定義付けするステップであって、該仮想対象物の定義付けは、固有の名称及び前記対象物モデルライブラリの対象物モデルに関連付けられ、前記対象物モデルにより記述される前記三次元形状は、前記実際の対象物に実質上、かつ、幾何学的に類似し、前記対象物モデルの前記複数の幾何学的パラメータは、前記実際の対象物に従って特定される、ステップと、
少なくとも１つの前記実際の対象物に、前記ロボットシステムにより行なうべき作業を定義付けするステップであって、前記作業の規定は、前記作業モジュールライブラリの作業モジュールに関連付けられ、前記作業パラメータの前記ターゲットは、前記実際の対象物を表わす前記仮想対象物の前記固有の名称であるように特定され、前記作業パラメータの前記複数の情報ピースは、前記実際の対象物に従って特定される、ステップと、を有する、ロボットシステムに教示する方法。
【請求項２】
前記光学的認識手段は、３Ｄレーザスキャナを含む、請求項１に記載の方法。
【請求項３】
前記光学的認識手段は、画像取得装置を含む、請求項１に記載の方法。
【請求項４】
前記ロボットシステムにより処理すべき前記実際の対象物を前もって撮像した少なくとも１つの二次元画像を提供するステップと、
前記二次元画像を前記実際の対象物を表わす前記仮想対象物に関連付ける、ステップとを、さらに有する、請求項３に記載の方法。
【請求項５】
前記仮想対象物を定義付けする際に、前記二次元画像を、前記仮想対象物と関連付ける、請求項４に記載の方法。
【請求項６】
前記二次元画像は、前記ロボットシステムの前記画像取得装置により画像取得される、請求項４に記載の方法。
【請求項７】
前記ロボットシステムにより処理すべき前記実際の対象物を前もって撮像した少なくとも１つの二次元画像を含む画像ライブラリを提供するステップと、
前記二次元画像を前記実際の対象物を表わす前記仮想対象物に関連付ける、ステップとを、さらに有する、請求項３に記載の方法。
【請求項８】
前記仮想対象物を定義付けする際に、前記二次元画像を、前記仮想対象物に関連付ける、請求項７に記載の方法。
【請求項９】
前記二次元画像は、前記ロボットシステムの前記画像取得装置により画像取得される、請求項７に記載の方法。
【請求項１０】
前記方法は、グラフィック環境で行われる、請求項１に記載の方法。
【請求項１１】
前記グラフィック環境は、前記ロボットシステムで実行される、請求項１０に記載の方法。
【請求項１２】
前記三次元形状は、基本形状である、請求項１に記載の方法。
【請求項１３】
前記ロボットシステムにより処理すべき実際の対象物に対する仮想対象物を定義付けするステップであって、前記仮想対象物の定義付けは、固有の名称及び前記対象物モデルライブラリの少なくとも２つの対象物モデルに関連付け、前記対象物モデルにより記述される三次元形状は、一緒に組み合わせた後に、前記実際の対象物に実質上、かつ、幾何学的に類似し、前記対象物モデルの前記複数の幾何学的パラメータは、前記実際の対象物に従って特定される、ステップを、さらに有する、請求項１に記載の方法。
【請求項１４】
前記三次元形状の少なくとも１つは、基本形状である、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にロボットシステムに関し、特に、所定の対象物モデルとの類推に従って、ロボットシステムが対象物を操作することができるように、ロボットシステムに教示する方法に関する。
【背景技術】
【０００２】
本明細書で云うロボットシステムとは、以下のような物理的システムのことを言い、それは、人工的なものであり、１つ以上の回転又は並進軸で動き、プログラム可能であり、その環境を感知することができ、かつ、自動制御、前もってプログラムされたシーケンス又は人工知能を用いて、その環境内の対象物を操作し又はそれと相互作用することができる物理的システムである。
【０００３】
過去１０年間に、知能ロボットシステムは急速に発展し、いくつか市販されたものさえある。典型的な例を数例挙げると、アイロボット（iROBOT（登録商標））社による電気掃除ロボットのルンバ(Roomba（登録商標）)、ソニー（登録商標）（SONY（登録商標））社により設計され製造されたロボットのペットのアイボ（AIBO（登録商標））及びホンダ（登録商標）（Honda（登録商標））社により創造された人型ロボットのアシモ（登録商標）（ASIMO（登録商標））がある。それらは数１０年に及ぶ先端研究を具体化したものであるにもかかわらず、これらのロボットシステムは、なお、娯楽の「おもちゃ」と見なされているにすぎない。これは、主に、水をびんからコップへ注ぐような、（人間にとって）非常に簡単で手馴れた動きでさえ、ロボットシステムに「学ばせる」ことは、非常に難しいためである。
【０００４】
他方、特に自動車産業及び電子産業で、速さ、正確さ、信頼性又は耐久性を要する仕事に対し、世界中で作動中の工場ロボット又はサービスロボットとして呼ばれる１００万個以上の産業用ロボットがあると推定される。ルンバ(Roomba)、アイボ（AIBO）及びアシモ（ASIMO）のような自律型ロボットとは対照的に、これらの産業用ロボットは、高度に規定され、制御されるタスクにおいて、人間の作業能率より優れている。すなわち、ワークピースは、パレット上に一緒に積み重ねられる代わりに、ベルト上に個々に、かつ、正確に位置付けられることが求められる。しかしながら、これらの産業用ロボットにとっては、わずかな変更でさえも、再プログラミング及び修正には数日又は数週間を要することになる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従って、これらの柔軟性のないことを補償するために、視覚誘導ロボットがある。視覚誘導ロボットシステムは、その環境及びその環境内の対象物を察知するのが、主に、１つ以上の内蔵の画像取得装置及び／又はレーザ装置によるロボットシステムである。例えば、ファナック（登録商標）（FANUC（登録商標））社により製造されたM-420iAは、ロボットの２つのアームを制御するための高速カメラシステムを用いることにより、伝動ベルト上の最大１２０個までの異なるワークピースをつかむことができる。これらの視覚誘導ロボットの典型的なシナリオは、以下のとおりである。ロボットは、カメラを位置付けて、照明を最適な画像取得位置に調整するようにプログラムされる。ソフトウェアプログラムは、それから、取得した画像を処理して、ワークピースの位置及び方位の修正をするように、ロボットに命令する。これらの視覚誘導ロボットは、「盲目の」ロボットよりも、もっと融通が利く。１つの対象物をある位置から別の位置へ動かすことは、プログラムするのには容易であるが、これらのロボットは、簡単な部品交換に適応させることでさえ、教えて一体化するのに非常に長い時間を必要とする。こうした見解により、ロボットシステムが主流になるために最も顕著に障害になっていることは、ロボットが一種類のジョブ、即ち、ピックアンドプレースのようなジョブしかできないことのように思われる。ロボットシステムに任意の新しい種類のジョブを導入するためには、教示することに時間がかかり過ぎ、従って、ロボットシステムに新たな「割当仕事」をさせることには費用がかかり過ぎる。産業用ロボットでさえ、アームの動きを固定されない軌道にするように教えることは困難である。
【０００６】
ロボットシステムに簡単なタスクを教示するのに、本発明者は、類推の概念がキーになり得ると信じる。類推は、人間の課題解決、意思決定、認識、記憶、創造、感情、説明及びコミュニケーションにおいて、顕著な役割を果たす。類推は、場所、対象物及び、例えば、顔の認知及び顔認識システムにおける、人の同定のような後ろ盾となる基本タスクである。類推は、「認識の核心」であると論じられている。類推の能力が何らかの方法でロボットシステムに組み込まれれば、ロボットシステムには、従来の初歩から一歩一歩進めていく手法よりも遥かに速く教示することができる。
【課題を解決するための手段】
【０００７】
本発明は、類推を用いることによりトレーニング時間及び労力を顕著に低減させてロボットシステムに教示する新規な方法を提供する。ロボットシステムは、少なくとも通常の操作ハードウェア及び計算ハードウェアを含まなければならない。
【０００８】
本方法の実施形態は、以下の主要なステップを含む。最初に、対象物モデルライブラリ及び作業モジュールライブラリを提供する。ロボットシステムにより処理すべき各実際の対象物に対して、その実際の対象物に少なくとも幾何学的に類似する三次元形状を定義付けする少なくとも１つの対象物モデルがあるか、又は、その定義付けする形状を、実際の対象物に少なくとも幾何学的に似るように、組み合わせることができる２つ以上の対象物モデルがある。各対象物モデルは三次元形状を記述する多くの予め定めた幾何学的パラメータを有する。実際の対象物に行うべき各作業に対しては、作業モジュールライブラリに含まれる少なくとも１つの作業モジュールがあり、各作業モジュールは、その作業の少なくとも１つの目標を特定するための、多くの予め定めた作業パラメータ及びその目標を果たすべくその作業に関連する追加の情報ピースを有する。
【０００９】
それから、処理すべき各実際の対象物に対して、仮想対象物を定義付けする。この仮想対象物の定義付けは、仮想対象物用の固有の名称、対象物モデルライブラリに含まれる１つの対象物モデル又は多くの対象物モデルの組み合わせに対する参照、及び、実際の対象物に従う対象物モデルの幾何学的パラメータに対する値の明細を含める。
【００１０】
その後、実際の対象物に行うべき各作業に対して、その作業を定義付けする。この作業の定義付けには、作業モジュールライブラリに含まれる作業モジュールに対する参照、実際の対象物を表わす仮想対象物及び行うべき作業に従う作業パラメータに対する値の明細を含む。
【００１１】
随意に、教示すべきロボットシステムが、少なくとも１つの、画像取得装置を有するならば、定義付けした各仮想対象物に対しその仮想対象物により表わされる実際の対象物を前もって撮像した少なくとも１つの二次元画像を提供し、前記仮想対象物に関係づける。このステップの後に、ロボットシステム用のタスク記述は、完了し、このタスク記述は、処理すべき実際の対象物に対応する１つ以上の仮想対象物の定義付け、実際の対象物に行うべき作業に対応する１つ以上の作業の定義付け、及び、随意に、対応する仮想対象物に関連づけられる実際の対象物の１つ以上の画像を含む。
【００１２】
本発明の前述の及び他の目的、特徴、態様及び利点は、添付図面を適切に参照して、以下の詳細な説明を注意深く読めばより良く理解される。
【図面の簡単な説明】
【００１３】
【図１ａ】本発明により教示すべきロボットシステムを示す概略図である。
【図１ｂ】図１ａのロボットシステムに教示するための本発明によるソフトウェアシステムを示す概略図である。
【図２ａ】図１ａのロボットシステムにより処理すべき２つの実際の対象物を示す概略図である。
【図２ｂ】本発明の対象物モデルライブラリ内で定義付けられる、２つ以上の基本形状の組み合わせにより、図２ａの第１の実際の対象物に如何にして近似させるかを示す概略図である。
【図２ｃ】本発明の対象物モデルライブラリ内で定義付けられる、複雑な形状により、図２ａの第２の実際の対象物に如何にして近似させるかを示す概略図である。
【図２ｄ】本発明の作業を定義付けするステップの間に提供される追加の情報ピースを示す概略図である。
【図２ｅ】仮想対象物の幾何学的パラメータと作業モジュールの作業パラメータとにより提供される情報に基づく、ロボットシステムの知的軌道計画を示す概略図である。
【図２ｆ】仮想対象物の幾何学的パラメータと作業モジュールの作業パラメータとにより提供される情報に基づく、ロボットシステムの他の知的軌道計画を示す概略図である。
【図２ｇ】本発明により作られるタスク記述を示す概略図である。
【図３ａ】本発明の一実施形態による図１ａのロボットシステムに教示するための主要なステップを示すフロー図である。
【図３ｂ】本発明の別の実施形態による図１ａのロボットシステムに教示するための主要なステップを示すフロー図である。
【発明を実施するための形態】
【００１４】
以下の説明は、例示的な実施形態に過ぎず、本発明の範囲、適用性又は構成を、決して制限する意図はない。むしろ、以下の説明は、本発明の例示的な実施形態を実施するために都合のいい実例を提供する。添付の特許請求の範囲に記載の本発明の範囲から逸脱しないで、記載された要素の機能及び配置において、記載された実施形態に様々な変更をすることができる。
【００１５】
本発明は、ロボットシステムを特定のタイプにすることにいかなる要求も課すことはない。ロボットシステムは、脚型、又は車輪型、又は固定型ロボットとするか、又は、２つのアームを有する人型の形状にするか、又は、１つのアームを有する工場の固定型ロボットとにすることができる。ロボットシステムの利用法も制限されず、それは、家事用の自律型家庭用ロボット又は電子部品のピックアンドプレース用の産業用ロボットとにすることができる。
【００１６】
図１ａに例示するように、本発明によるロボットシステム１は、任意の従来のロボットのように、図に示す胴体１０及び少なくともアーム１２のような、実際の対象物を処理するための、適切な対象物操作ハードウェア並びに胴体１０及びアーム１２を駆動する様々なモータ及びアクチュエータ（図示せず）を有している。操作ハードウェアの詳細は、当業者には、自明である。ロボットシステム１は、また任意の従来のロボットのように、操作ハードウェアを制御するためのプロセッサ、コントローラ、メモリ、記憶装置等（図示せず）のような適切な計算ハードウェア２０も含む。
【００１７】
本発明によれば、ロボットシステム１には、１つ以上の実際の対象物に作業を行うように教示しなければならず、ロボットシステム１は、実際の対象物を「見る」ためのいくつかの光学的認識手段を持たなければならない。光学的認識手段は、以下に限定されないが、実際の対象物の二次元写真画像を撮ることができるCCD（電荷組み合わせ素子）カメラ及び実際の対象物の三次元プロファイルデータを得ることができる３Ｄレーザスキャナのような画像取得装置を含むことができる。言い換えれば、ロボットシステム１は、少なくとも１つの画像取得装置又は少なくとも１つの３Ｄレーザスキャナ又は両方を持たなくてはならない。簡単にするために、以下では、ロボットシステム１は、CCD（電荷組み合わせ素子）カメラのような少なくとも１つの画像取得装置３０を含むものとする。画像取得装置３０は、人型ロボットの頭部におけるもの又はサービスロボットのアームにおけるもののようにロボットシステム１の胴体１０に組み込むことができる。画像取得装置３０は、伝動ベルトの真上に位置付けられ、伝動ベルトで送られる部品に取り組むサービスロボットに接続されるカメラのように、ロボットシステム１の胴体１０の外部にあって、有線又は無線の通信手段によりロボットシステム１に接続されるものとすることもできる。この通信手段は、画像取得装置３０により取得された画像を処理用の計算ハードウェア２０に配信することができる。
【００１８】
ロボットシステム１に或る特殊なタスクを行わせることを教示するために、図１ｂに例示するような、ソフトウェアシステム４０を提供する。オペレータ（すなわち、ロボットシステム１の教師）は、ソフトウェアシステム４０により提供される環境での特殊なタスクをプログラムし、ロボットシステム１が当該タスクを首尾良く行うことができるように、ロボットシステム１の計算ハードウェア２０用の「タスク記述」を生成する。言い換えれば、オペレータはソフトウェアシステム４０を用いてロボットシステム１に教示する。なお、ソフトウェアシステム４０は、同じ計算ハードウェア２０上で実行することができ、ソフトウェアシステム４０からのタスク記述は、タスクを行うために、計算ハードウェア２０により直接処理される。或いは、ソフトウェアシステム４０は、別個の計算プラットフォーム上で実行し、ソフトウェアシステム４０からのタスク記述は、ロボットシステム１がそれに応じてタスクを行うことができるように、（いくつかの有線又は無線の通信手段を介して）計算ハードウェア２０にロードすることもできる。
【００１９】
ロボットシステム１に教示する第１のステップは、ロボットシステム１により処理すべき実際の対象物を定義付けすることである。例えば、図２ａに例示するように、ロボットシステム１には、第１の実際の対象物６００（すなわち、ペン）及び第２の実際の対象物７００（すなわち、ペン筒（brush pot））を処理することを教示しなければならない。この対象物を定義付けするステップは、あらかじめ準備した対象物モデルライブラリ１００を必要とする。図１ｂに例示するように、対象物モデルライブラリ１００は、ソフトウェアシステム４０の一部であり、ファイル、データ基本となるもの又は類似のソフトウェア構成物に格納された基本形状の多くの対象物モデルを少なくとも含む。用語「基本形状」は、コンピュータグラフィックの３Ｄモデリング及びＣＡＤシステムで通常用いられている。球、立方体又は四角形、環状、円柱、角錐等のような基本形状は、多くの他の形状及び形態のための構成要素であるため、基本形状であると考えられる。定性的には、用語「基本形状」を正確に定義することは難しい。観察から、「基本形状」は、いくつかの共通の形状特徴を共有する。すなわち、（１）通常、真っすぐなエッジのみを含む。（２）通常、変曲点のない単純な曲線のみを含む。（３）通常、他の基本形状に分解することができない。上記のように、本発明の主な考えは、ロボットシステム１に教示するために、類推機能を組み込むことであり、類似するいくつかの「基本となるもの」がなければならない。対象物モデルライブラリ１００の対象物モデル１０１が、まさに、その「基本となるもの」である。
【００２０】
対象物モデルライブラリ１００を有することの根拠は、実際の対象物のほとんどが、これらの基本形状の内の１つ又はいくつかの単純な２項関係（加算、減算等）による２つ以上のこれらの基本形状の組み合わせにより、近似することができるという仮定に基づいている。例えば、図２ｂに例示するように、実際の対象物６００（すなわち、ペン）に対して、対象物モデルライブラリ１００は、円柱１０２の対象物モデル１０１及び円錐１０３の別の対象物モデル１０１を含み、実際の対象物６００は、円柱１０２の一端に円錐１０３を単に付け足すことにより近似される。なお、円柱１０２及び円錐１０３の基本形状は、六角形断面のような実際の対象物６００の特定の細部を有していない。最も重要なことは、基本形状が、ロボットシステム１により処理すべき実際の対象物又はその一部に幾何学的に似ており、従って、その実際の対象物又はその一部に近似するものを提供することである。
【００２１】
さらに、対象物モデルライブラリ１００は、基本形状ではなく、処理すべき実際の対象物と同一又はほぼ類似する１つ以上の対象物モデル１０１も含むことができる。例えば、図２ｃに例示するように、実際の対象物７００（すなわち、ペン筒）に対して、対象物モデルライブラリ１００は、実際の対象物７００と幾何学的に同一である管状の形状の対象物モデル１０１を含むことができる。しかしながら、その管状の形状は、基本形状の円柱から、直径が小さい別の基本形状の円柱を取り去ることにより表わすことができるので、基本形状ではない。従って、対象物モデルライブラリ１００は、実際の対象物を処理した後にまさにモデル化されるコカ・コーラのびん、レンチ等のような複雑な幾何学的形状の対象物モデルを含むこともあり得る。
【００２２】
各基本形状又は複雑な形状の対象物モデル１０１は、多くの幾何学的パラメータを含む。幾何学的パラメータは、ある対象物モデル１０１と異なる形状の別の対象物モデルとでは異なり得る。例えば、円柱１０２の対象物モデル１０１は、以下のベクトル形式で表わすことができる。
CYLINDER（円柱）＝｛ｌ，ｄ｝
ここで、ｌ，ｄは、円柱形状の長さ及び直径である。
円錐１０３の対象物モデル１０１は、
CONE（円錐）＝｛ｄ，ｈ｝
で表わすことができる。ここで、ｄ，ｈは、円錐形状の底面の直径及び高さである。
筒（pot）の対象物モデル１０１は、
POT＝｛ｌ，ｄ，ｗ｝
で表わすことができる。ここで、ｌ，ｄ及びｗは、筒形状の長さ、直径及び厚さである。
【００２３】
なお、対象物モデルライブラリ１００は、基本形状の対象物モデル１０１のみを含むことができる。或いは、対象物モデルライブラリ１００は、基本形状及び複雑特注形状の両方の形状の対象物モデル１０１を含むことができる。なお、必要であれば、対象物モデルライブラリを構築した後に、その対象物モデルライブラリ１００に、後で、追加の対象物モデル１０１を、追加することもできる。
【００２４】
先に述べたように、対象物モデルライブラリ１００は、類推用の「基本となるもの」を提供する。この機能を達成するために、対象物定義付けステップは、処理すべき各実際の対象物に対する仮想対象物をオペレータに定義付けさせる。このようにして定義付けした各仮想対象物に対しては、仮想対象物用の固有の名称があり、その名称（及び、従って、仮想対象物）は、対象物モデルライブラリ１００の１つの対象物モデル１０１又は２つ以上の対象物モデル１０１の組み合わせに関連付ける。図２ａの例に対しては、２つの仮想対象物を、例示の疑似コードを用いることにより以下のように定義付けする。
Virtual Object（仮想対象物）
Ａ：CONE＋CYLINDER；
Ｂ：POT；
ここで、仮想対象物Ａは、ペン６００に近似するように、円錐を円柱の一端に加える際の、円錐の幾何学的パラメータ及び円柱の幾何学的パラメータの全てを有するように特定され、仮想対象物Ｂは、ペン筒７００に近似するように、筒の形状の全ての幾何学的パラメータを有するように、特定される。
【００２５】
なお、上記の例は、プログラミング言語のシナリオを用いて記述しているけれども、同一の定義付けプロセスは、AutoCAD（登録商標）のようなＣＡＤシステムを用いるのと全く同じようにポイント・アンド・クリック操作でグラフィック環境にて、実際上もっと好ましく達成することができる。基本形状の選択及び組み合わせによりAutoCAD（登録商標）で３Ｄモデルを作成するのと全く同じように、仮想対象物をグラフィック環境内に定義付けすることは、関連技術の人々にとって容易に想像できることである。固有の名称及び対象物モデルとの関連に加えて、ソフトウェアシステム４０は、次に、対応する実際の対象物に従って、幾何学的パラメータの値を、オペレータに特定させることができる。これは、再び疑似コードを用いて以下のように表わすことができる。
Virtual Object
Ａ：CONE（d＝２cm、h＝２cm）＋CYLINDER（l＝８cm、d＝２cm）；
Ｂ：POT（l＝５cm、d＝３cm、w＝０．５cm）；
再びグラフィック環境の場合に、これは、基本形状の押し出し（extruding）及びスケーリング及び／又はパラメータ値の手入力により、達成することができる。
【００２６】
要するに、対象物定義付けステップは、処理すべき各実際の対象物に対して、対象物モデルライブラリから１つの形状を選択するか又は多くの形状を組み合わせ、その形状又は形状の組み合わせに固有の名称を割り当て、実際の対象物に従って形状の幾何学的パラメータの値を特定することによって、仮想対象物を定義付けすることを伴う。言い換えれば、上記の例の場合に、オペレータは、対象物定義付けステップにて実際の対象物６００及び７００（すなわち、ペン及びペン筒）に近似する３Ｄモデルである仮想対象物Ａ及びＢを定義付けする。なお、対象物定義付けステップ内で、これらのサブステップ（すなわち、形状の選択、命名及びパラメータの初期化）の順序は、パラメータの初期化は常に形状の選択後に行わなければならないことを除いて、重要ではない。例えば、命名は、最初か最後のいずれでも行うことができる。
【００２７】
ロボットシステム１に教示する第２のステップは、何をすべきかロボットシステム１に命令するための１つ以上の作業を定義付けすることである。例えば、上記の例に従う例示的作業は、第１の実際の対象物６００（すなわち、ペン）を持ち上げ、それから、第１の実際の対象物６００の尖っている先端が上を向くように、第１の実際の対象物６００を第２の実際の対象物７００（すなわち、ペン筒）の中に置くことを、ロボットシステム１に命令することである。この作業定義付けステップは、図１ｂに例示するソフトウェアシステム４０の一部である多くの作業モジュール２０１を含んでいる予め準備した作業モジュールライブラリ２００を必要とする。対象物モデルライブラリ１００を用いるのと同様に、ロボットシステム１に行わせるための前述した作業を特定するために、オペレータは、作業モジュールライブラリ２００から、作業モジュールの１つ、例えば、１つの物を別の物の中に入れることに関するPUT-INSIDE（中に入れる）の作業モジュールを最初に選択する。
【００２８】
各作業モジュール２０１は、設計者（例えば、プログラマー）により予め準備されたソフトウェア構成物である。オペレータの観点からすると、各作業モジュール２０１は、作業モジュール２０１の設計者により予め決められた多くの作業パラメータを有する。再び疑似コードを用いて、PUT-INSIDEの作業モジュールは、以下のように表わすことができる。
PUT-INSIDE（target1, target2, op3, op4, op5,…）
ここで、target（目的物）1, target2, op3, op4,等は、全て、作業モジュールPUT-INSIDEの作業パラメータである。これらの作業パラメータの意味は、以下のとおりである。
−target1は、ロボットシステム１により持ち上げられるべき仮想対象物の参照である。
−target2は、target1を中に入れる別の仮想対象物の参照である。
−op3は、target1を持ち上げるために、そのどこを保持するかの参照である。
−op4は、target1のどちらの端部を最初にtarget2の中に入れるかの参照である。
−op5は、target2のどちら側にtarget1を挿入するかの参照である。
以下のようなことに関しての追加の作業パラメータがある。
−target2の軸線の場所及びtarget1をその軸線に対してどのような角度で挿入するかの参照である。
−target1の重量（ロボットシステム１が、target1を持ち上げるためにどれだけの力が必要であるかを知るため）の参照である。
−target1の本体の強度（ロボットシステム１が、target1をつかむ際に、どれだけの力を及ぼすかを知るため）の参照である。
上記から分かるように、これらの作業パラメータは、PUT-INSIDEの作業のロボットシステム１の実現に関連する様々な情報ピースを提供する。従って、異なる作業モジュール２０１は、作業パラメータの異なる集合を有することができる。
【００２９】
作業定義付けステップでは、オペレータが、作業モジュールライブラリ２００から作業モジュール２０１を選択した後に、オペレータは、作業モジュール２０１の全ての作業パラメータを特定する必要がある。これは、ソフトウェアシステム４０がAutoCAD（登録商標）により提供されるもののようなグラフィック環境を提供すると仮定して、以下のように達成することができる。例えば、オペレータが、作業モジュールPUT-INSIDEを選択後、ソフトウェアシステム４００は、PUT-INSIDEの作業パラメータに基づいて、オペレータに以下の各作業パラメータを特定するように要求する。
−オペレータは、仮想対象物Ａをtarget1として特定する（グラフィック環境で、名称Ａを入力することにより、又は仮想対象物Ａをクリックすることにより）。
−オペレータは、仮想対象物Ｂをtarget2として特定する（グラフィック環境で、名称Ｂを入力することにより、又は仮想対象物Ｂをクリックすることにより）。
−オペレータは、仮想対象物Ａの円柱本体の真ん中の斜線部分（図２ｄを参照）を、グラフィック環境でいくつかのポイント・アンド・クリックの操作により、op3（すなわち、target1を保持する場所）として特定する。
−オペレータは、仮想対象物Ａの一端の斜線部分を、グラフィック環境でいくつかのポイント・アンド・クリックの操作により、op4（すなわち、target1のどちらの端部を最初にtarget2の中に入れるか）として特定する。
−オペレータは、仮想対象物Ｂの頂部側の斜線部分を、グラフィック環境でいくつかのポイント・アンド・クリックの操作により、op5（すなわち、target2のどちら側にtarget1を挿入するか）として特定する。
−オペレータは、破線の矢部をtarget2の軸線として特定し、その軸線に対してtarget1を挿入する角度の値を入力する。
関連技術の人々にとって、残りの詳細は、全く単純明快なため、省略する。
【００３０】
要するに、作業定義付けステップの間及びロボットシステム１により行うべき各作業に対し、オペレータは、作業モジュールライブラリ２００から少なくとも１つの作業モジュール２０１を選択する。それから、選択した作業モジュール２０１の所定の作業パラメータにより、ソフトウェアシステム４００は、オペレータにこれらの作業パラメータを特定することを要求する。これらの作業パラメータは、操作すべき１つ以上の目的物（すなわち、仮想対象物）及びその作業に関連する仮想対象物についての追加の情報ピースを含む。上記のように、これらの作業パラメータの明細は、ＣＡＤシステムのようなグラフィック環境で、全て達成することができる。
【００３１】
なお、作業モジュール２０１を実装するのには、様々な異なる方法があり、作業モジュール２０１をどのように実装するかに応じて、作業モジュール２０１により規定され、作業パラメータにより特定されるように、作業を行なうロボットシステム１に関して、様々な方法もある。一実施形態では、各作業モジュール２０１は、ソフトウェアのルーチン又は関数とし（従って、作業モジュールライブラリ２００はプログラムライブラリである）、作業パラメータは、ルーチン又は関数に渡される引数である。ロボットシステム１に、作業定義付けステップで生成した特定の作業パラメータと一緒に、１つ以上の作業モジュール２０１を与えると、ロボットシステム１の計算ハードウェア２０は、ルーチン又は関数を含むコードを実行する。代替の実施形態では、上記のルーチン又は関数は、ハイレベルなハードウェアに依存しない命令を含み、これらの命令は、ロボットシステム１の操作ハードウェア及び計算ハードウェア２０に関するハードウェア細部の知識を有するコンパイラーにより、実行可能コードにコンパイルしなければならない。
【００３２】
作業モジュール２０１のトランスレーション又はコンパイレーションは、本発明の主題ではなく、類似の主題に取り組むかなりの数の教示がある。例えば、いずれもMurray, IV, et al.による米国特許第６，８８９，１１８号明細書、米国特許第７，０７６，３３６号明細書及び米国特許第７，３０２，３１２号明細書は、基盤となるハードウェアがロボットの制御ソフトウェアに対して透過的になるように、ロボットの制御ソフトウェアとロボットの操作ハードウェアとの間にハードウェア抽象化レイヤ（HAL）を提供している。これは、有利なことに、ロボットの制御ソフトウェアをロボットに依存しない方法で書くことを可能にする。従って、作業モジュール２０１の詳細は、前記ロボットに依存しない方法でプログラムされることを想像することができる。さらに別の実施形態では、作業モジュール２０１は、その作業パラメータの明細（すなわち、値）だけを全て記録する。作業モジュール２０１は、高レベル命令又は低レベルの実行コードのどれも含まない。作業モジュール２０１と、作業パラメータのその記録した明細とに基づく作業をどのように行なうかを決定するのは、ロボットシステム１である。以前の実施形態では、何を行なうかを決定する知能は、作業モジュールそのものに組み込んでいるが、現行の実施形態の場合には、その知能は、ロボットシステム１に完全に組み込む。想像できるように、知能の一部を作業モジュール２０１に埋め込み、知能の一部を、ロボットシステム１に組み込むいくつかの実施形態もある。
【００３３】
たとえいかに作業モジュールが実装しようとも、作業モジュール及びその作業パラメータは、仮想対象物の定義付け及びその幾何学的パラメータと共に、ロボットシステム１が作業を知的に行なわせるための適切な情報を提供すべきである。図２ｅと図２ｆとを比較されたい。図２ｅに例示するように、仮想対象物Ａが仮想対象物Ｂから遠く離れている際には、ロボットシステム１が、仮想対象物Ａと仮想対象物Ｂとの間の距離が十分であると判断し、かつ、仮想対象物Ａを直接持ち上げることができると判断することができるので、ロボットシステム１は、短い軌道をとるように計画すべきである。他方、図２ｆに例示するように、仮想対象物Ａが仮想対象物Ｂのすぐ隣にある際には、ロボットシステム１が、仮想対象物Ａと仮想対象物Ｂとの間の距離が十分でないと判断し、かつ、仮想対象物Ａを最初に仮想対象物Ｂから離すように動かさなければならないと判断するので、ロボットシステム１は、もっと遠回りの軌道をとるように計画すべきである。ロボットシステム１がこのような知的判断及び軌道計画をすることができる理由は、仮想対象物Ａ及びＢの幾何学的パラメータ（長さ、高さ等のような）が必要な知識を提供するからである。作業パラメータも、同様に、ロボットシステム１が、仮想対象物Ａのどこをつかんで、仮想対象物Ａをどのようにして仮想対象物Ｂの中へ入れるのかが分かるように、他の関連情報を提供する。なお、このような知的判断及び軌道計画は、本発明の主題ではなく、知的ロボット及び人口知能のような領域では多くの教示がある。
【００３４】
ロボットシステム１が教示された作業を実際の対象物に行なうために、ロボットシステム１は、実際の対象物を定義付けされた仮想対象物に関連付けなければならない。言い換えれば、ロボットシステム１が実際の対象物を見たら、ロボットシステム１は、その実際の対象物を定義付けされた仮想対象物の1つとして「認識」しなければならない。作業を受ける実際の対象物の形状が十分に異なり、それらを見分けるのに、色や質感又は他の特徴を当てにする必要がない場合、仮想対象物に関連付けられる基本の又は複雑な形状及びそれらの幾何学的パラメータは、３Ｄレーザスキャナ又はカメラのようなロボットシステム１の光学的認識手段により、ロボットシステム１が実際の対象物を認識するには、既に十分である。３Ｄレーザスキャナを用いて、ロボットシステム１は、実際の対象物の三次元データを得ることができる。次に、その三次元データを、仮想対象物の関連形状及び幾何学的パラメータと比較して、どの仮想対象物が実際の対象物に最も似ているかを調べることができる。
【００３５】
ロボットシステム１しかカメラを有していないが、前記の認識は、それでも可能である。ロボットシステム１が、画像取得装置３０により、実際の対象物を見ると、最初に実際の対象物の１つ以上の取得した画像を用いて実際の対象物の三次元モデルを構築し、それからその三次元モデルを仮想対象物の関連形状及び幾何学的パラメータと比較する。１つ以上の二次元画像から三次元モデルを構築することについては、コンピュータグラフィックス、画像処理等の分野において、既にかなりの数の教示がある。例えば、David G. Loweは、単一のグレースケール画像の未知の観点から三次元対象物を認識することができるコンピュータ・ビジョン・システムを教示している（"Three-dimensional object recognition from single two-dimensional images," Artificial Intelligence, 31, 3 (March 1987), pp. 355-395）。
【００３６】
しかしながら、認識率をさらに向上するため、又は、ほぼ類似の形状を有する実際の対象物を見分けるために、本発明は、追加の画像関連付けステップを提供する。このステップでは、処理すべき各実際の対象物に対して、ロボットシステム１の画像取得装置３０から見たものと必ずしも同一ではない視点から画像取得した、実際の対象物の少なくとも二次元画像３０１を提供し、実際の対象物に対応する定義付けした仮想対象物に関係付ける。これらの画像は、通常、事前に画像取得され、図１ｂに例示するようなソフトウェアシステム４０の一部である画像ライブラリ３００に保存される。言い換えれば、処理すべき各実際の対象物に対して（従って、定義付けした各仮想対象物に対して）、画像ライブラリ３００には、少なくとも実際の対象物の画像３０１がある。前述の例に従って、画像関連付けステップは、疑似コードを用いて以下のように表わすことができる。
Image Association（画像の関連付け）
Image（画像）1：Ａ；
Image（画像）2：Ｂ．
ここで、図２gに示すように、Image1は、仮想対象物Ａに対応する実際の対象物６００の二次元画像であり、一方、Image2は、仮想対象物Ｂに対応する実際の対象物７００の二次元画像である。代替の実施形態では、画像関連付けステップは、実際には疑似コードにより以下のように表わされるように、対象物定義付けステップと組み合わせる。
Virtual Object
Ａ：CONE＋CYLINDER＝Image1；
Ｂ：POT＝Image2；
【００３７】
上記のように、ロボットシステム１は、その作業の間、常に実際の対象物を「認識」しようとする。画像関連付けステップがなければ、ロボットシステム１は、仮想対象物に関連する基本の又は複雑な形状及びそれらの幾何学的パラメータを当てにすることができるだけである。画像関連付けステップがあれば、実際の対象物の認識は、（画像取得装置３０による）実際の対象物のいくつかの取得画像と、何らかの画像処理手段を用いて全ての仮想対象物に関連付けて事前に画像取得した画像とを整合させることにより、さらにサポートされる。その関連付けられた画像が実際の対象物の取得画像に最も似ている１つの仮想対象物がある場合に、その実際の対象物は、特定の仮想対象物として「認識」される。
【００３８】
画像処理手段は本発明の主題ではなく、二次元画像を用いて三次元対象物を同定することに対応する多くの教示がある。例えば、Daniel P. Huttenlocher et al.は、先験的に知られる観点でのポイント間の一致を必要とせずに、格納済み対象物の二次元の図を未知の図と比較することにより、対象物を認識するアルゴリズムを教示している（"Recognizing Three-Dimensional Objects by Comparing Two-Dimensional Images," cvpr, pp.878, 1996 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'96), 1996）。
【００３９】
なお、対象物モデルライブラリ１００、作業モジュールライブラリ２００及び画像ライブラリ３００は、通常、オペレータがソフトウェアシステム４０を用いて、ロボットシステム１に何をさせるべきかを教示するタスク記述（図２ｇを参照）を生成する前に、ソフトウェアシステム４０に予めインストールしておく。しかしながら、対象物モデルライブラリ１００及び作業モジュールライブラリ２００は、いくつかの内臓型（基本形状のような）対象物モデル１０１及び作業モジュール２０１を有している。対照的に、画像ライブラリ３００における画像３０１は、対象物定義付けステップ又は画像関連付けステップの間に、先立って準備するか、又は、後に加えることができる。なお、画像３０１は、ロボットシステム１の画像取得装置３０以外の別個の画像取得装置により、撮ることができる。
【００４０】
なお、本発明は、ロボットシステムが少なくとも１つの実際の対象物の処理の仕方が分かるように、光学的認識手段を有するロボットシステムに対するタスク記述を生成することに関するものである。しかしながら、タスク記述に基づいて、ロボットシステムが実際にどのようにタスクを行うかは、本発明の主題ではないので、その詳細のほとんどは、本明細書では省略する。想像できるように、タスクを行うのには様々な方法がある。例えば、実際の対象物を認識するのに、あるロボットシステムは、予め撮った画像を単に及び完全に当てにすることができ、一方、ほかのロボットシステムは、認識のより高い成功率を達成するのに、仮想対象物の幾何学的情報を既知の先験的なものとして追加して利用することができる。ロボットシステムの作業中のタスク記述の実行についての詳細を省いたけれども、タスク記述で特定されているように、作業の首尾良い引き受けを保証するために、タスク記述に含まれる情報を活用する方法についての多くの従来の教示がある。
【００４１】
図３ａは、本発明の一実施形態によるロボットシステム１に１つ以上の実際の対象物を取り扱うことを教示する（すなわち、タスク記述を生成する）ステップを示すフロー図である。例示するように、ステップ５００では、対象物モデルライブラリ１００及び作業モジュールライブラリ２００を提供する。ロボットシステム１により処理すべき各実際の対象物に対して、その実際の対象物に少なくとも幾何学的に類似する三次元形状を定義付けする少なくとも１つの対象物モデル１０１があり、又は、２つ以上の定義付け形状を組み合わせて、実際の対象物に少なくとも幾何学的に類似させることができる、２つ以上の対象物モデル１０１がある。各対象物モデル１０１は少なくとも１つの幾何学的パラメータを含む。また、実際の対象物に行うべき各作業に対しては、作業モジュールライブラリ２００に含まれる少なくとも１つの作業モジュール２０１がある。各作業モジュール２０１は、少なくとも１つの仮想対象物を作業のターゲットとして特定するため、及び、作業に関連する仮想対象物についての追加の情報ピースを特定するための、多くの所定の作業パラメータを有する。
【００４２】
それから、ステップ５１０にて、処理すべき各実際の対象物に対して、仮想対象物を定義付けする。仮想対象物の定義付けは、仮想対象物に対する固有の名称、対象物モデルライブラリ１００に含まれる１つの対象物モデル１０１又は多くの対象物モデルの組み合わせの参照、及び、実際の対象物に従う対象物モデルに対する幾何学的パラメータ値の明細を含む。このステップの後に、処理すべき各実際の対象物は、実際には、その実際の対象物に実質上及び幾何学的に類似する仮想対象物により表わされる。
【００４３】
その後、ステップ５２０にて、実際の対象物に行なう各作業に対して、その作業を定義付けする。この作業の定義付けは、作業モジュールライブラリ２００に含まれる作業モジュール２０１の参照、及び作業モジュール２０１の所定の作業パラメータの明細を含む。このステップの後に、ロボットシステム１により行なうべき各作業は、作業モジュール２０１及びその特定の作業パラメータにより記述される。
【００４４】
最後に、ステップ５３０では、ステップ５１０で定義付けした各仮想対象物に対して、その仮想対象物により表わされる実際の対象物を前もって撮った少なくとも１つの二次元画像を提供し、その仮想対象物に関係付ける。このステップの後に、ロボットシステム１用のタスク記述は、図２ｇに示すように、完了し、そのタスク記述は、処理すべき実際の対象物に対応する１つ以上の仮想対象物の定義付け、実際の対象物に行うべき作業に相当する１つ以上の作業の定義付け、及び、対応する仮想対象物に関連付けられる実際の対象物の１つ以上の画像を含む。
【００４５】
図３ｂは、本発明の別の実施形態の主要なステップを示す。本実施形態は、図３ａの実施形態と以下の２点を除いて非常に類似している。
（１）二次元画像３０１を、最初のステップ８００で、前もって準備して、画像ライブラリに与える。
（２）画像３０１を仮想対象物に関連付けることを仮想対象物定義付けステップ８１０で、一緒に行う。
作業定義付けステップ８２０は、図３ａの実施形態のステップ５２０と同一である。
【００４６】
本発明は、上記好適な実施形態を参照して説明したが、それらの説明した詳細に本発明を限定するものではない。前述の説明に様々な置換及び修正が示唆され、当業者には、他のことを思い付くであろう。従って、全てのそのような置換及び修正は、添付の特許請求の範囲に規定されるように、本発明の範囲内に含むことを意味する。
【図１ａ】
2011516283.tif 000003
【図１ｂ】
2011516283.tif 000004
【図２ａ】
2011516283.tif 000005
【図２ｂ】
2011516283.tif 000006
【図２ｃ】
2011516283.tif 000007
【図２ｄ】
2011516283.tif 000008
【図２ｅ】
2011516283.tif 000009
【図２ｆ】
2011516283.tif 000010
【図２ｇ】
2011516283.tif 000011
【図３ａ】
2011516283.tif 000012
【図３ｂ】
2011516283.tif 000013
【国際調査報告】
2011516283.tif 000014
2011516283.tif 000015
2011516283.tif 000016