(57)【特許請求の範囲】
【請求項１】
ロボット接触知覚を用いたロボット装置で目標指向行動を完了するための方法であって：
前記ロボット装置と環境内の物体との距離の測定を含む距離データを、距離センサからプロセッサにおいて受信する段階と；
前記ロボット装置による前記物体への接触の結果の測定を含む接触データを、接触センサからプロセッサにおいて受信する段階と；
前記距離データと前記接触データとを組み合わせることによって前記環境の地図を前記プロセッサにより作成する段階であって、前記地図は前記環境内の前記物体の位置を表し、前記地図のうち1つの地図は前記ロボット装置の姿勢に関連付けられており、前記姿勢の算出は：
前記1つの地図に関連付けられた前記距離データおよび前記接触データを用いた一組の候補姿勢の算出であって、各候補姿勢は、当該候補姿勢において、前記環境内の障害物に関連した接触データおよび距離データが前記1つの地図に一致している可能性に関連付けられており、前記可能性は、前記接触データに関連付けられた第1スケーリング係数および前記距離データに関連付けられた第2スケーリング係数とに基づいて求められ、前記第1スケーリング係数は前記第2スケーリング係数より大きい、算出と、
最も高い可能性に関連付けられた候補姿勢を前記ロボット装置の姿勢として選択すること、とによって行われる、作成する段階と；
前記ロボット装置を前記プロセッサにより制御し、前記地図を用いて前記目標指向行動を完成させる段階とを含み、当該完成させる段階は：
前記物体のうちの1つの物体に対する前記ロボット装置の位置を、前記姿勢に基づいて算出する段階と、
前記１つの物体に向かう一組の運動を実行させるために前記ロボット装置を制御する段階とを含む、方法。
【請求項２】
前記物体の前記位置は、当該位置に当該物体が存在する可能性に関連付けられている、請求項1に記載の方法。 
【請求項３】
前記目標指向行動は、物体に接触することおよび物体との接触を避けることの一方から選択される、請求項1に記載の方法。
【請求項４】
前記距離データおよび前記接触データは、前記距離データおよび前記接触データに関連付けられた正確性および精度の統計的期待値に従ってベイズの推論を用いて組み合わされる、請求項1に記載の方法。
【請求項５】
前記ロボット装置は、前記接触センサに結合されたプローブを含み、前記方法は、当該プローブを表面上で移動させて前記接触データを生成する段階をさらに含む、請求項1に記載の方法。
【請求項６】
前記ロボット装置は、前記接触センサに結合されたプローブを含み、当該プローブは接触データを受信するよう構成されており、前記方法は、前記距離データを用いて前記物体を検出する段階と、前記プローブを移動させて前記物体と接触させる段階とをさらに含む、請求項1に記載の方法。
【請求項７】
前記地図に表現されていない未表現物体に関連付けられた接触データを受信する段階と；
前記地図を更新して前記未表現物体を含める段階とをさらに含む、請求項1に記載の方法。
【請求項８】
前記距離データを物体ライブラリとマッチングさせることで前記物体を認識する段階とをさらに含み、当該物体ライブラリは物体に関する情報を格納する、請求項1に記載の方法。
【請求項９】
前記ロボット装置はアームに接続された本体を含み、前記１つの物体に向かう前記一組の運動を実行させるために前記ロボット装置を制御する前記段階は：前記アームが前記1つの物体に接触するよう前記ロボット装置を移動させる段階と、前記アームを制御して前記一組の運動を実行させる段階とを含む、請求項1に記載の方法。
【請求項１０】
目標指向行動を完了するためのロボット装置であって：
電源と；
本体と；
前記本体に動作可能に接続されると共に、接触データを生成するよう構成された第1接触センサを備えたアームであって、前記接触データは、前記ロボット装置による環境内の物体への接触の結果の測定を含む、アームと；
距離データを生成するよう構成された距離センサであって、前記距離データは前記ロボット装置と前記物体との間の距離の測定を含む、距離センサと；
1つ以上の命令を実行するよう構成されたプロセッサとを含み、前記プロセッサによって実行されると、前記命令は前記プロセッサに：
前記距離データと前記接触データとを組み合わせることによって前記環境の地図を作成させ、前記地図は前記環境内の前記物体の位置を表し、前記地図のうち1つの地図は前記ロボット装置の姿勢に関連付けられており、前記姿勢の算出は：
前記1つの地図に関連付けられた前記距離データおよび前記接触データを用いた一組の候補姿勢の算出であって、各候補姿勢は、当該候補姿勢において、前記環境内の障害物に関連した接触データおよび距離データが前記1つの地図に一致している可能性に関連付けられており、前記可能性は、前記接触データに関連付けられた第1スケーリング係数および前記距離データに関連付けられた第2スケーリング係数とに基づいて求められ、前記第1スケーリング係数は前記第2スケーリング係数より大きい、算出と、
最も高い可能性に関連付けられた候補姿勢を前記ロボット装置の姿勢として選択すること、とによって行われ；
前記プロセッサによって実行されると、前記命令は前記プロセッサに、さらに：
前記物体のうちの1つの物体に対する前記ロボット装置の位置を、前記姿勢に基づいて算出させ、
前記１つの物体に向かう一組の運動を実行させるために前記アームを制御させる、ロボット装置。
【請求項１１】
運搬輸送機を動作させるよう構成されたモータをさらに含み、前記運搬輸送機は、前記ロボット装置の、表面上での移動を容易にするよう構成されている、請求項10に記載の装置。
【請求項１２】
前記本体に配置された第2接触センサをさらに含む、請求項10に記載の装置。
【請求項１３】
前記第1接触センサは電気機械式スキンを含む、請求項10に記載の装置。
【請求項１４】
前記地図を格納するよう構成された非一時的メモリをさらに含む、請求項10に記載の装置。
【請求項１５】
前記距離データと前記接触データとを組み合わせることによって前記地図を作成することが、
前記距離データを用いて第1地図を作成し、
前記接触データを用いて第2地図を作成し、
前記第1地図及び前記第2地図に存在する一致した特徴を特定し、
前記一致した特徴を介して前記第1地図と前記第2地図とを組み合わせることにより、第3地図を作成することを含む、請求項10に記載の装置。
【請求項１６】
前記距離データおよび前記接触データは、前記距離データおよび前記接触データに関連付けられた正確性および精度の統計的期待値に従ってベイズの推論を用い組み合わされる、請求項10に記載の装置。
【請求項１７】
前記アームは前記接触センサに結合されたプローブをさらに含み、前記プロセッサは、前記接触データを生成するため、当該プローブを表面上で移動させるようさらに構成されている、請求項10に記載の装置。
【請求項１８】
前記命令は、さらに前記プロセッサに物体ライブラリを作成させ、前記物体ライブラリは物体に関する情報を格納する、請求項10に記載の装置。
【請求項１９】
前記地図のうちの1つの地図は3次元であると共に前記1つの物体の表面特性を含み、前記ロボット装置を制御する段階は：
前記1つの物体の前記表面特性に従って前記一組の運動を算出する段階をさらに含む、請求項1に記載の方法。
【請求項２０】
前記1つの物体の前記表面特性は、前記1つの物体の表面の変形量、当該変形量に関連付けられた力、前記1つの物体の前記表面の弾性、又は表面組織の少なくとも1つを含む、請求項19に記載の方法。
【請求項２１】
前記地図のうちの1つの地図は3次元であると共に前記1つの物体の表面特性を含み、前記1つの物体の前記表面特性は、前記1つの物体の表面の変形量、当該変形量に関連付けられた力、前記1つの物体の前記表面の弾性、又は表面組織の少なくとも1つを含む、請求項10に記載のロボット装置。
【請求項２２】
前記1つの物体の表面情報を含む更新済み接触データを受信する段階をさらに含み、前記ロボット装置を制御する段階は：
前記表面情報に基づいて前記1つの物体に掛けられる力の量を算出する段階をさらに含み、
前記一組の運動は、前記1つの物体に前記力の量をかけるため実行される、請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
実用特許出願（非分割）
関連出願への引用
本出願は、「未構造化環境のインテリジェントマシンに基づく清掃および片付け(INTELLIGENT MACHINE-BASED CLEAN-UP AND DECLUTTERING OF AN UNSTRUCTURED ENVIRONMENT)」と題した2014年12月9日付けで提出された、米国仮出願第62/089,416号の出願日に対する優先権および利益を主張し、その全体は参照して本明細書に援用する。本出願は、「ダウンロード可能なアプリを備えたクラウドベースのロボットソフトウェア(CLOUD-BASED ROBOTIC SOFTWARE WITH DOWNLOADABLE APPS)」と題した2015年1月15日付けで提出された、米国仮出願第62/103,573号の出願日に対する優先権および利益を主張し、その全体は参照して本明細書に援用する。本出願は、「操作可能なロボット用の拡張機能及びアプリケーション(EXTENSIONS AND APPLICATIONS FOR ROBOTS CAPABLE OF MANIPULATION)」と題した2015年3月27日付けで提出された、米国仮出願第62/139,172号の出願日に対する優先権および利益を主張し、その全体は参照して本明細書に援用する。
【０００２】
技術分野
本特許明細書は、接触センサ及び画像センサの両方からのデータを用いて目標指向型作業を実行するため、接触センサデータを受け取ることができるロボットなどの機械および装置の分野に関する。
【背景技術】
【０００３】
宇宙旅行、全地球的な即時通信、および自動運転車など他の空想科学小説の主役は実現したが、多目的家庭用ロボットはいまだ手が届かず、最も高度な研究ロボットですらタオルをたたむなどの単純な作業の達成に苦労している。
【０００４】
自動化がとりわけ望まれる一連の作業は清掃に関するものである。これには物体を移動させた後、表面を清掃し、場合によっては特定の空間にあるべき物体を元の場所に置くことが含まれる。本特許明細書は、これらの機能を実行するための方法及び装置を記載するものである。
【０００５】
家庭用ロボットはすでに存在している。ほとんどの家庭用ロボットはロボット真空掃除機である。これらロボットのうち最も優れたものは地図作成の目的で自己の環境を感知するが、すべての家庭用真空掃除機は、意図的に物体を操作する能力に欠けている(物体を床の上で偶然押してしまうことはあるが)。
【０００６】
幾つかのロボット玩具は、小型物体を操作可能なロボットアームを備えている。一般に、これらのロボットは遠隔制御操作またはセンサ入力に基づいて、ときとして決定木に従う単純な事前にプログラミングされたシーケンスに限定されている。これら玩具は、せいぜい、紙に引かれた線を追従したり、光を探しまたは避けたりする能力などの非常に限られた知覚しか持たない。いかなる意味でも、これらの玩具が、表面または空間を清掃する所望の作業を実行することはない。
【０００７】
タオル畳みなど高度な作業を含んだ遥かに高度な知覚及び物体認識が、研究ロボットを使って実証されている。しかし、本特許明細書の執筆者等の知る限りでは、床を超える空間を自律的に清掃する作業を実演したロボットまたはそれ他の装置は存在しない。執筆者等が知る最も近い従来技術には、部屋を掃除しているように見えるが、実際は研究者の一人が遠隔操作しているPR1研究ロボットのビデオが含まれる。執筆者等が知る別の従来技術は、カリフォルニア州メンローパーク所在のSRIが製造した物体を把持しかつ拾い上げ、それらを識別可能な「フェッチ」と呼ばれるロボットである。このロボットは、その後で物体を片付ける能力を備えておらず、表面を清掃する能力も持たない。本特許明細書で記載された技法の1つは接触知覚である。しばしば、触覚学を含む遠隔操作用途の文脈で接触感覚を実証している研究者たちもいる。しかし、ロボット真空掃除機のバンパースイッチ以外には、本特許明細書の執筆者等は、自律的物体および/または環境認識に使用される接触知覚の実証例を知らない。
【０００８】
従って、自律的物体および/または環境認識に使用できるロボット知覚の新規の方法に対する必要性が存在する。さらに、接触センサデータを視覚センサデータと組み合わせて動作を自律的に行うための新規な方法に対する必要性も存在する。
【発明の概要】
【０００９】
本発明の一つの目的は、目標指向型作業を実行可能なロボットなどの装置を提供することである。幾つかの実施形態では、前記装置は、1つ以上の接触センサを使用して、環境内の物体および構造体の位置についての接触知覚フィードバックを受け取る。好適な実施形態では、前記装置は、接触知覚データを、画像または距離センサから受信されるデータのような他の種類のセンサデータと組み合わせるための融合エンジンを含むことができる。 幾つかの実施形態では、前記装置は、ベイズの推論モデルを用いて距離センサデータと接触センサデータとを組み合わせることができる。さらなる実施形態では、前記接触センサは、圧力のレベルおよび圧力の方向を検出するためにロボットのアームに搭載できる。前記装置は、次に、接触センサおよび距離センサの両方から受信されたデータを用いてその環境の地図を作成し、かつ、物体を清掃または移動させるような目標指向型作業を実行できる。
【図面の簡単な説明】
【００１０】
本発明の幾つかの実施形態が例として示されているが、これら実施形態は、類似の引用符号が類似の要素を示す次の添付図面によって限定されるものではない。
【図１】図1は、本明細書に記載された様々な実施形態による可動アームを含む移動式ロボット装置の一例の透視図を示す。
【図２】図2は、本明細書で記載された様々な実施形態による移動式ロボット装置の一例の幾つかの要素の幾つかを示すブロック図を例示する。
【図３】図3は、本明細書で記載された様々な実施形態による、移動式ロボット装置の処理ユニットの一例に含まれる幾つかの要素を示すブロック図を例示する。
【図４】図4は、本明細書に記載された様々な実施形態による可動アームの一例の透視図を示す。
【図５】図5は、本明細書に記載された様々な実施形態による電気機械式スキンを含む接触センサの一例の透視図を示す。
【図６】図6は、本明細書に記載された様々な実施形態による可動アームに結合できる作動体スイートの一例の透視図を示す。
【図７】図7は、本明細書に記載された様々な実施形態による、例示的なアクセサリ取付部が取り外された状態の図6の作動体スイートの透視図を示す。
【図８】図8は、本明細書に記載された様々な実施形態による、例示的なアクセサリ取付部および例示的な接触センサカバーが取り外された状態の、図6の作動体スイートの透視図を示す。
【図９】図9は、本明細書に記載された様々な実施形態による、その走査が環境を地図作成するために使用される別個の2次元スキャナを用いた物体の2つの例示的走査を示す。
【図１０】図10は、本明細書に記載された様々な実施形態による、データオブジェクトの物体ライブラリの一例のブロック図を示す。
【図１１】図11は、本明細書で記載された様々な実施形態による、ソフトウェアルールエンジンとして機能でき、ロボット接触知覚を実現できる幾つかのモジュールを示すブロック図を例示する。
【図１２】図12は、本明細書に記載された様々な実施形態による、センサデータを組み合わせて目標指向型作業を行うための方法の一例のブロック図を示す。
【発明を実施するための形態】
【００１１】
本明細書で使用する用語は、特定の実施形態のみを記述するためのものであり、限定的に考慮されるべきではない。本明細書において、「および/または」という用語は、関連付けられ列挙された要素の1つ以上のすべてのかつあらゆる可能な組み合わせを含む。本発明において、単数形である「1つの」および「その」は、文脈からそうでないことが明示されてなければ複数形も含むことが意図されている。「含む」および/または「含んだ」という語句は、本明細書で使用する際には、記載された特徴、段階、動作、要素、及び/又は構成部品の存在を明示するが、1つ以上の他の特徴、段階、動作、要素、構成部品、および/またはそれらのグループの存在または付加を排除しないことはさらに理解されるはずである。
【００１２】
他に特に定義しない限り、本明細書で用いるすべての用語(科学技術用語を含む)は、本発明が属する分野の通常の技能を備えた当業者が一般に理解する意味と同一である。一般に使用されている辞書に定義されたものなどの用語は、関連分野および本開示の文脈においてそれらの意味と一致した意味を持つと解釈されるべきであり、本明細書で明確に定義されていない限りは、観念的または過度に形式的な意味で解釈されないことも理解されるはずである。本発明の記載において、幾つかの技術および段階が開示されていることが理解されるはずである。これらそれぞれは個別の利点を備え、さらに、それぞれは開示された他の技術の1つ以上、または幾つかの場合では、他のすべてとの組合せで使用できる。従って、明確さのため、この記載では、個別段階のすべての可能な組合せを不必要に繰り返すことは控える。しかしながら、本明細書および請求項は、こうした組合せは本発明および請求項の範囲に完全に入ると理解して読まれるべきである。
【００１３】
ロボット知覚を用いた環境の環境地図を作成する新規な方法を本明細書で説明する。次の記載では、本発明の完全な理解を可能とするため、多数の具体的な詳細が説明目的で記載されている。しかし、通常の技能を備えた当業者には、これら具体的な詳細なしでも本発明が実施できることは明白なはずである。
【００１４】
本開示は本発明の実例として考慮されるべきであり、本発明を図面または後の記載によって例示される特定の実施形態に限定することを意図したものではない。
【００１５】
以下、実例を用いることで、かつ好適および代替的な実施形態を表す添付図面を参照することで本発明を説明する。図1は、様々な実施形態による移動式ロボット装置(「ロボット」)100を示す。幾つかの実施形態では、ロボットとは、作業を実行する能力を備えた任意の機械または装置である。図1に示した非限定的な例では、ロボット100は、可動アーム(「アーム」)200を備えた本体11を含み、アーム200は本体11に動作可能に結合されている。ロボットの地面および床のような表面上のかつ/またはプロペラおよび他の空中輸送可能装置のような空気中の移動を容易にする1つ以上の運搬輸送機12を、本体11に結合してもよい。本体モータ33は1つ以上の運搬輸送機12に結合し、運搬輸送機12を動作させるよう構成できる。代替的な実施形態では、本体11は可動性でなくてもよく、ロボット100は可動アーム200を備え概ね静止したものとしてよい。電源32は、本体11および/またはアーム200の機能要素と電気通信できる処理ユニット21に電力を供給できる。アーム200は近位端211で本体11に結合され、遠位端212で作動体スイート220に結合でき、1つ以上の区分206および関節201が近位端211を遠位端212に接続している。アクセサリ300がアクセサリ取付部221などの作動体スイート220に結合でき、これを物体401および環境内に存在しうる表面に接触するよう方向付けできる。ロボット100は、1つ以上の接触センサ35、36も含むことができ、これらは環境および環境内に存在しうる物体401および表面の地図を作成するのに使用できる接触入力を受け取ることができる。さらに、ロボット100は、距離センサ37を含むことができ、これも、環境、物体401、および環境内に存在しうる表面の地図を作成するのに使用できる距離情報を与えることができる。
【００１６】
図2は、本明細書で記載された様々な実施形態による移動式ロボット装置100の一例の幾つかの要素の幾つかを示すブロック図を例示する。好適な実施形態では、ロボット100は、1つ以上の制御入力31、処理ユニット21、電源32、本体モータ33、アームモータ34、本体接触センサ35、アーム接触センサ36、距離センサ37、および/またはマイクロフォン38を含むことができる。図2がロボット100を大幅に簡略化して示したものであることは、通常の技能を備えた当業者には理解されるはずであり、実用的な一実施形態は、付加的な構成部品または要素を含むことができ、本明細書では詳述されていない公知または従来の物理的構成部品および動作機能をサポートするよう適切に構成できる。
【００１７】
オプションで、ロボット100は、処理ユニットなどロボット100にユーザ入力を電気的に通信するために使用できる回転可能制御ノブ、押し込み可能ボタン式スイッチ、スライド式スイッチ、ロッカー式スイッチ、または任意適切な他の入力などの、ユーザが相互作用できる1つ以上の制御入力31を含むことができる。例えば、制御入力31は、ロボット100の機能を制御するためユーザが操作できるスイッチを含むことができる。
【００１８】
幾つかの実施形態では、ロボット100は、電力を必要としうる任意の構成要素に電力を供給できる電源32を含むことができる。電源32は、リチウムイオン・バッテリ、ニッケルカドミウム・バッテリ、アルカリバッテリ、または他の任意適切な種類のバッテリや、燃料電池、コンデンサ、または他の任意適切な種類の電気貯蔵かつ/もしくは放出装置でよい。さらなる実施形態では、電源32は、ラインコード、機械式または圧電式バッテリ充電装置、ソーラーセルもしくは太陽電池セル、および/または非接触式充電もしくはワイヤレス受電装置を含むことができる。
【００１９】
幾つかの実施形態では、ロボット100は、1つ以上の運搬輸送機12を介してロボット100を移動させるために使用できる1つ以上の本体モータ33を含むことができる。本体モータ33は、ブラシ付き直流モータ、ブラシレス直流モータ、スイッチ反作用電動機、交直両用電動機、交流多相かご形もしくは巻線形誘導電動機、交流SCIM分相型コンデンサ起動電動機、交流SCIM分相型コンデンサラン電動機、交流SCIM分相型補助始動巻き線電動機、交流誘導くま取り形電動機、巻線形同期電動機、ヒステリシス電動機、同期反作用電動機、パンケーキもしくはアキシャルロータ電動機、ステッパー電動機、または任意種類の電気モータもしくは非電気モータを含むことができる。1つ以上の運搬輸送機12は、表面上でのロボット100の移動を容易にするよう構成できる。幾つかの実施形態では、運搬輸送機11は、図1の例に示したようなホイール、キャスター、トレッドもしくはトラック、低摩擦パッドもしくはバンパー、低摩擦プレート、スキー、ポンツーン、またはロボット100とその上での移動が望まれる表面との摩擦を低減するよう構成された任意適切な他の装置を含むことができる。さらなる実施形態では、運搬輸送機12は、プロペラ、小型ジェットエンジン、またはロボット100を飛行可能とするもしくはドローン航空機のように機能させる他の任意の運搬可能化装置を含むことができる。さらなる実施形態では、運搬輸送機12は、ロボット100を水面上または水面下で移動可能とするフィン、ウォータージェット、スクリュー、または任意の水上/中運搬可能化装置を含むことができる。さらなる実施形態では、運搬輸送機12は、ロボット100を宇宙空間で移動可能とするロケット、およびイオン駆動、ジャイロスコープ、または任意の宇宙運搬可能化装置を含むことができる。
【００２０】
幾つかの実施形態では、ロボット100は、アーム200の1つ以上の区分206および/または他の構成要素を動かすのに使用できる1つ以上のアームモータ34を含むことができる。アームモータ34は、本体モータ33に使用できるような任意適切な種類のモータを含むことができる。好適な実施形態では、アームモータ34は、典型的には電流、油圧、または空圧などのエネルギー源によって作動されうるアクチュエータを含むことができ、そのエネルギーを運動に変換する。アクチュエータの例は、櫛歯、デジタルマイクロミラーデバイス、電気モータ、電気活性ポリマー、油圧シリンダ、圧電アクチュエータ、空気式アクチュエータ、サーボ機構、熱バイモルフ、ねじジャッキ、または他の任意種類の油圧式、空気式、電気式、機械式、熱式、および磁気式のアクチュエータを含むことができる。
【００２１】
幾つかの実施形態では、ロボット100は、1つ以上の本体接触センサ35および/またはアーム接触センサ36を含むことができる。概して、接触センサ35、36は、物体または表面と接触センサ35、36が結合された構成要素との接触を検出することができる。好適な実施形態では、表面または物体が、接触センサ35、36が結合された構成要素と接触したときに、接触センサ35、36は、物体または表面と接触センサ35、36が結合された構成要素との間の力または圧力を検出するように構成できる。本体接触センサ35は、ロボット100の本体11に結合でき、物体または表面と本体接触センサ35が結合された本体11の構成要素との接触時に、接触および/または圧力を検出するよう構成できる。アーム接触センサ36は、ロボット100のアーム200に結合でき、物体または表面とアーム接触センサ36が結合されたアーム200の構成要素との接触時に、接触および/または圧力を検出するよう構成できる。
【００２２】
幾つかの実施形態では、ロボット100は、1つ以上の距離センサ37を含むことができる。距離センサ37は、固定(単一ビーム)または回転(掃引)飛行時間(TOF)または構造光に基づいたレーザー距離計、3D高解像度LiDAR、3DフラッシュLIDAR、2Dまたは3Dソナーセンサ、および1つ以上の2Dカメラなどのセンサを含むことができる。さらに、距離センサ37は、受動的熱赤外線センサ、光電セルもしくは反射式センサ、レーダセンサ、電離放射線センサの反射、アクティブもしくはパッシブソーナーセンサ、超音波センサ、光ファイバセンサ、静電容量センサ、ホール効果センサ、または物理的な接触なしで近傍の物体および表面の存在を検出可能な他の任意のセンサを含むこともできる。一般に、距離センサ37は、距離センサ37と検出された物体または表面との間の距離を記述した情報を与えることができる任意種類のセンサを含むことができる。
【００２３】
幾つかの実施形態では、ロボット100は、1つ以上のマイクロフォン38を含むことができる。マイクロフォン38は、ロボット100の周囲の環境から、好適にはロボット100に話しかける、または、音声コマンドを発するユーザから音声情報を受信または録音するよう構成できる。好適な実施形態では、マイクロフォン38は、空気中の音を電気信号に変換する音声-電気変換器またはセンサを含むことができる。さらなる実施形態では、マイクロフォン38は、気圧変動から電気信号を生成する電磁誘導マイクロフォン(ダイナミックマイクロフォン)、容量変化マイクロフォン(コンデンサマイクロフォン)、および圧電気マイクロフォン(圧電マイクロフォン)などの任意種類のマイクロフォンを含むことができる。さらなる実施形態では、マイクロフォン38は、ロボット100とネットワーク通信でき、遠隔制御装置、スマートフォン、タブレットコンピュータ、ラップコンピュータ、および音声をロボット100への通信用の、例えば有線または無線接続を介したロボット100への通信用のデータパケットに変換する機能を備えた類似の他の電子デバイス内のマイクロフォンを含む、情報を送信するためにデジタル通信を使用するマイクロフォンを含むことができ、音声認識を含む前処理が、マイクロフォンを含む電子デバイスによってロボット100に通信される前に実行される実装例を含む。
【００２４】
図3は、本明細書で記載された様々な実施形態による移動式ロボット装置100(図1および2)に含まれる処理ユニットの一例の幾つかの要素を示すブロック図を例示する。幾つかの実施形態および現在の例では、ロボット100は、ハードウェアアーキテクチャの観点からは、概して1つ以上のプロセッサ22と、オプションの入出力インターフェース(I/O)30と、オプションの無線受信機23と、データ格納装置24と、メモリ25とを含む1つ以上の処理ユニット21を含むデジタルデバイスでよい。図3は処理ユニット21を大幅に簡略化して示したものであることは、通常の技能を備えた当業者には理解されるはずであり、実用的な一実施形態は、付加的な構成部品または要素に加えて本明細書では詳述されていない公知または従来の動作機能をサポートするよう適切に構成された処理論理も含むことができる。これら構成部品および要素(22、30、23、24、および25)はローカルインターフェース26を介して通信可能に結合されている。ローカルインターフェース26は、例えば、本発明の分野で公知の1つ以上のバスまたは他の有線もしくは無線接続とすることができるが、それらに限定されるものではない。ローカルインターフェース26は、コントローラ、バッファ(キャッシュ)、ドライバ、中継器および受信機などの通信を可能とする付加的要素を備えることができるが、簡略化のため省略されている。さらに、ローカルインターフェース26は、上述の構成要素間の適切な通信を可能とするためアドレス、制御、および/またはデータ接続を含むことができる。
【００２５】
プロセッサ22は、ソフトウェア命令を実行するためのハードウェア装置である。プロセッサ22は、任意の特注または市販プロセッサ、中央処理装置(CPU)、処理ユニット21に関連付けられた幾つかのプロセッサの内の補助プロセッサ、半導体に基づいたマイクロプロセッサ(マイクロチップまたはチップセットの形式で)、またはソフトウェア命令を実行するための概ね任意の装置でよい。処理ユニット21の動作時には、プロセッサ22は、メモリ25内に格納されたソフトウェアを実行し、メモリ25との間でデータを送受信し、ソフトウェア命令に従ってロボット100の動作を概ね制御するよう構成されている。例示的な実施形態では、プロセッサ22は、電力消費およびモバイル用途のために最適化されたもののようなモバイル最適化プロセッサを含むことができる。
【００２６】
I/Oインターフェース30は、1つ以上の制御入力31、処理ユニット21、電源32、本体モータ33、アームモータ34、本体接触センサ35、アーム接触センサ36、および/または距離センサ37を含むことができる。I/Oインターフェース30は、環境情報を受信して記録するため、および、ロボット100の1つ以上の機能を制御してそれを環境と相互作用させ環境内で移動させるために使用される。I/Oインターフェース30は、例えば、シリアルポート、パラレルポート、小型コンピュータシステムインタフェース(SCSI)、赤外線(IR)インターフェース、高周波(RF)インターフェース、ユニバーサルシリアルバス(USB)、およびデータをコンピュータ装置、プログラミングユニット、およびコントローラなどの他の電子装置にデータを送受信するために使用できる類似のものも含むことができる。
【００２７】
オプションの無線受信機23は、外部アクセス装置またはネットワークへの無線通信を行うことができる。幾つかの実施形態では、無線受信機23はWiFi周波数帯で動作し、無線ネットワークを介して1つ以上の電子装置と通信してデータのロボット100による送受信を可能とする。限定するものではないが、次を含む任意の数の適切な無線データ通信プロトコル、技法、または方法が、無線受信機23によってサポート可能である：高周波；IrDA (赤外線)；ブルートゥース(登録商標)；ZigBee (およびIEEE 802.15プロトコルの他の変種)；IEEE 802.11(任意の変種); IEEE 802.16 (WiMAXまたは他の任意の変種)；ダイレクトシーケンス・スペクトラム拡散；近距離無線通信(NFC)；周波数ホッピングスペクトラム拡散；ロングタームエボリューション(LTE)；セルラー/無線/コードレス通信プロトコル(例えば3G/4Gなど)；無線ホームネットワーク通信プロトコル；ページングネットワーク・プロトコル；衛星データ通信プロトコル；WMTS波数帯で動作するもののような無線病院または健康管理ネットワークプロトコル；GPRS；無線USBの変種のような独自開発の無線データ通信プロトコル；および無線通信用の他の任意プロトコル。
【００２８】
データ格納装置24を使ってデータを格納できる。データ格納装置24は、任意の揮発性メモリ素子(例えば、ランダムアクセスメモリ(DRAM、SRAM、SDRAMなどのようなRAM))、非揮発性メモリ素子(例えば、フラッシュメモリ、ROM、ハードドライブ、テープ、CDROMなど)およびそれらの組合せを含むことができる。さらに、データ格納装置24は、電子、磁気、光学、および/または他種類の格納媒体を含むことができる。
【００２９】
メモリ25は、任意の揮発性メモリ素子(例えば、ランダムアクセスメモリ(DRAM、SRAM、SDRAMなどのようなRAM))、非揮発性メモリ素子(例えば、ROM、ハードドライブなど)およびそれらの組合せを含むことができる。さらに、メモリ25は、電子、磁気、光学、および/または他種類の格納媒体を含むことができる。メモリ25は、様々な構成要素が互いから離れて配置されていても、プロセッサ22によりアクセスできる分散型アーキテクチャを備えていてもよい。メモリ25内のソフトウェアは、それぞれが、論理機能を実装するための実行可能命令の順序リストを含む1つ以上のソフトウェアプログラムを含むことができる。
【００３０】
図3の例では、メモリシステム25内のソフトウェアは、適切なオペレーティングシステム(O/S)27およびプログラム28を含む。オペレーティングシステム27は、基本的に、入出力インターフェース30機能の実行を制御し、スケジューリング、入出力制御、ファイルおよびデータ管理、メモリ管理、ならびに通信制御および関連サービスを行う。オペレーティングシステム27は、例えば、リナックス（登録商標）(または別のユニックスの変種)、アンドロイド(グーグルから入手可能)、シンビアンOS、RobotOS (ROS)、マイクロソフト・ウィンドウズ（登録商標）CE、マイクロソフト・ウィンドウズ（登録商標）7モバイル、iOS (アップル社から入手可能)、webOS (ヒューレット・パッカードから入手可能)、ブラックベリーOS (はリサーチ・イン・モーションから入手可能)などでよい。プログラム28は、エンドユーザ機能を装置100に提供するよう構成された様々なアプリケーションやアドオンなどを含むことができる。例えば、例示的なプログラム28は、環境変数解析手段、環境地図作成、入出力インターフェース30機能の調節を含むことができるが、それらに限定されない。図11に示した典型的な例では、ロボット接触知覚用のプログラム28は、地図作成エンジン601、接触エンジン602、距離エンジン603、融合エンジン604、および/または機能的等価物を含むことができる地図作成モジュール600をさらに含んでもよい。
【００３１】
さらに、例えば計算装置の要素によって実行される一連の動作に関連して、多くの実施形態が記載されている。本明細書に記載した様々な動作は、固有の回路により、1つ以上のプロセッサにより実行されているプログラム命令により、または両者の組合せにより実行できることは理解されるはずである。付加的に、本明細書に記載したこれら一連の動作は、実行されると関連したプロセッサに本明細書に記載した機能を実行させる、一組の対応したコンピュータ命令を内部に格納した任意形式のコンピュータ可読格納媒体の内部で完全に実現可能と考えることができる。よって、本発明の様々な側面は幾つかの異なる形式で実施でき、それらはすべて請求項に記載した主題の範囲内であると考えられている。さらに、本明細書に記載した実施形態それぞれに関し、そうした実施形態の対応する形式は、例えば、記載した動作を実行する「ために構成された論理」として本明細書では記載できる。
【００３２】
処理ユニット21は、情報とプロセッサ22に実行される命令とを格納するためにバスに結合されたランダムアクセスメモリ(RAM)または他の動的記憶装置(例えば、動的RAM (DRAM)、静的RAM (SRAM)、シンクロナスDRAM (SDRAM))などの主メモリも含むことができる。さらに、主メモリは、プロセッサ22による命令の実行時に、一時変数又は他の中間情報を格納するためにも使われる。さらに、処理ユニット21は、静的情報およびプロセッサ22の命令を格納するためにバスに接続された読出し専用メモリ(ROM)または他の静的記憶装置(例えば、プログラム可能ROM (PROM)、消去可能PROM (EPROM)、および電気的消去可能PROM (EEPROM))も含むことができる。
【００３３】
幾つかの実施形態では、このロボットは、当該ロボットと環境内の物体または表面との接触を検出する能力を含むことができる。この接触検出は、本体接触センサ35および/またはアーム接触センサ36などの1つ以上の接触センサによって実装できる。さらなる実施形態では、接触センサ35、36は、例えば、バンパーのへこみや、電気機械式スキンアセンブリ50(図5)の変形または他の電気機械式検出装置であって当該装置と物体もしくは表面との接触時に電気通信を行うことができる電気機械式検出装置の変形など、ロボット100の表面の変位の検出を介して動作できる。さらなる実施形態では、接触センサ35、36は、ロボット100の関節に加えられる力が典型的に当該関節を動かすのに必要な力より大きいものとして検出することによって動作可能である。さらなる実施形態では、接触センサ35、36は、例えば、トルクを直接測定することで、または例えば、アクチュエータによって必要とされる電流を測定することで、または例えば、アクチュエータの目標位置と実際の位置との間のエラーを測定することで、ロボットのアクチュエータが発揮している力を検出することで動作できる。さらなる実施形態では、接触センサ35、36は、極めて高い近接度を検出することによってロボット100の一部と環境内の物体または表面との接触を検出可能な光学または超音波接触センサを含むことができる。
【００３４】
幾つかの実施形態では、ロボット100の1つのアクチュエータが発揮している力の検出は、その例は図1および4に示されているアーム200内の一群のモータ34またはアクチュエータを流れる電流を接地接続で測定することで達成でき、一組としてのその組のアクチュエータによって加えられる力を求める。図1および4は、本明細書に記載された様々な実施形態によるロボット100の本体11に取り付けられたアーム200の一例を示す。アーム200は、任意数の関節を含むことができ、この図では、1つ以上のアームモータ34を備えたヒンジ関節201として示されており、このモータが1つ以上のヒンジ関節201の動きを制御する。この例では、アーム200は、力299を図示した方向に掛けており、同じ大きさの抵抗力が反対方向に掛けられる。アーム200は、例えば1つ、2つ、3つ、4つ、5つ、6つまたはそれ以上の任意数の関節201、アームモータ34、および/または区分206を含むことができる。本明細書に記載されたアーム200は例示的なものであり、回転する関節を介して動くのでなく入れ子式区分を介して動く、他の種類もしくは形式の関節式または非関節式アームを使用してもよいことは理解されるべきである。
【００３５】
幾つかの実施形態では、環境内の表面および物質の知覚は、1つ以上の接触センサ35、36によって与えられる接触データを用いて、かつ/または1つ以上の距離センサ37によって与えられる距離データを使って実現できる。さらなる実施形態では、ロボット100は、それが、例えば表面および物体などの障害物を接触データおよび/または距離データを用いて検出した位置を表すデータ構造を構築できる。このデータ構造は、ローカル環境の地図でよく、本明細書では「地図」と呼ぶ場合がある。こうした地図の1つの表現は、特定の特徴(例えば壁)が特定の位置にあることの可能性を表す2次元または3次元配列の数である(配列インデックスにより表現される)。この地図は、例えば、当該地図における非ゼロ位置の配列または連結リストとして当業者に公知の他の形式をとることもできる。
【００３６】
幾つかの実施形態では、ローカル環境の地図はロボット100の異なる姿勢(すなわち、位置および配向)に関して作成される。例えば、ロボット100が1つの姿勢をとり、接触センサ35、36によって受信された接触データを使用して可動アーム200が到達可能な領域を地図作成し、次に、異なる姿勢となるよう回転または移動してアーム200が到達可能な新たな領域を地図作成できる。幾つかの実施形態では、これらの地図は、例えば推測航法(ホイールのような運搬輸送機12(図1)がロボット100を移動させるときにどれほど遠くまで回転するかなど)を用いて地図間の概略的な関係を算定することによって融合することができ、地図同士の微調整は、例えば画像処理分野の当業者には周知の動作推定アルゴリズムを用いて2つの地図の重なり合う特徴をマッチングさせることにより実行する。
【００３７】
幾つかの実施形態では、接触センサ35、36および距離センサ37のような非接触センサの組合せを用いて地図を作成できる。例えば、距離センサ37は、遠い402(図9)および近い物体401(図1)の両方の地図を作成するのに使用できる距離データを与えるのに使用できる3Dレーザ距離線を含むことができる。接触センサ35、36からの接触データを用いて近い物体401、402の地図を作成することもできる。近い物体401、402の地図は、距離センサ37では利用できない情報、例えば物体401、402の裏側の形状など、またはグラウトまたは浮き出した汚れの粒がどこにあるかなどの組織に関する情報を含むこともできる。反対に、距離センサ37は、接触センサ35、36の到達範囲を超えた特徴の位置など接触を介しては得られないデータ、または、まだ接触されていない特徴に関するデータを与えることができる。幾つかの実施形態では、接触および非接触センサから与えられるデータからの特徴は別個の地図に置かれ、それが次に、接触センサ35、36と非接触センサ37との位置較正の知識の組合せによって、かつ/または両方の地図に現れる特徴に基づいた地図の位置合わせによって1つの融合された地図として扱われる。特に、接触35、36および非接触37センサの位置較正の知識を介して大まかな融合を実行でき、地図の相対位置の微調整は、両方の地図に現れる特徴をマッチングすることで行われる。
【００３８】
幾つかの実施形態では、接触35、36および非接触37センサはそれらのデータを同じ地図に直接置いてもよい。幾つかの実施形態では、接触35、36センサおよび非接触37センサからのデータは、それぞれ接触に基づいたものおよび接触に基づかないものとしてタグ付けされる。例えば、接触に基づくセンサ35、36からのデータは接触に基づいたデータとしてタグ付けし、非接触に基づく距離センサ37からのデータは非接触に基づくデータとしてタグ付けできる。
【００３９】
さらなる実施形態では、ロボット100の位置および姿勢は、接触センサ35、36を用いて接触データを取得するために、その周りの物体401、402を接触することで特定できる。物体401、402の位置および構造は、接触データの取得と同時に算出してもよい。これは、ベイズの推論などの当業者には公知の技術を用いて行えばよい。ベイズの推論は、遺伝的アルゴリズム(例えば、粒子フィルタ)、または明示的に定義された予測モデリング(例えば、カルマンフィルタリング)を介して行うことができる。距離もしくは非接触に基づくデータおよび接触センサ35、36からのデータ、または接触に基づくデータは、それらを組み合わせるためのそれらの正確性および精度の統計的期待値を用いて、ベイズの推論により単一のデータモデルに融合できる。他の実施形態では、接触に基づくデータおよび非接触に基づくデータは、頻度推定、傾向推定、確信の状態推定(state-of-belief inferences)などの他の任意の統計的推定を用いて融合できる。
【００４０】
ナビゲーションを目的として粒子フィルタおよび他の遺伝的アルゴリズムを使用することで2次元または3次元空間を地図作成することをSLAMと呼ぶことがあり、これは、自己位置推定と地図構築の同時実行(Simultaneous Localization and Mapping)を表す。幾つかのSLAM実装例は、様々な方向の距離の連続ストリームを読む回転レーザー距離センサを用いる。SLAMは、3D奥行きセンサなどの距離センサ37またはRGBビデオの特徴分類からのデータを用いても適用できる。
【００４１】
幾つかの実施形態では、本明細書で記載したロボット接触知覚では、粒子フィルタを用いてロボット100の位置および配向の統計的尤度モデルを生成できる。本発明の分野では、位置と配向との組合せは「姿勢(pose)」と呼ばれる。粒子フィルタを用いるときは、本体11またはアーム200の姿勢など、ロボット100の姿勢に関する推測は「粒子」と呼ばれる。これら粒子のそれぞれについて、距離センサ37距離データまたは近接度データが地図上にグラフ化される。連続的な距離データが地図と一致している粒子は正確である可能性がより高いと判断され、確率カウンターが増加される一方で、不一致データを示すものは正確性がより低いと判断され、確率カウンターが減少される。確率カウンターがカットオフ値を下回るときは、その粒子は不正確性が確認されたと考えられ、新たな粒子と置換される。同時に、壁および静止物体401、402などの(以下、障害物と呼ぶ)環境内で変化しないと最も頻繁に距離データが認識した位置は、実際の障害物である可能性がより高いと判断され、その位置に障害物があることに関連付けられた確率カウンターは増加され、距離示度が一貫してそれらに当たらない位置は障害物位置である可能性がより低いと判断され、その位置に障害物があることに関連付けられた確率カウンターは減少される。
【００４２】
障害物を含む環境の優れた地図およびロボット100の姿勢に関する非常に優れた推測が、非常に迅速に生成される。ロボット100を環境内でナビゲートするために、得られた障害物の地図を最も可能性が高い姿勢とともに用いることができる。これはすべて既存の技術であり、当業者には周知である。数学者は、この一般的な種類の問題を、2つの問題への解を同時に推論するものと記述し、この場合は、障害物の位置とロボットの姿勢である。数学者は、粒子フィルタが属する解のクラスを期待値最大化(EM)アルゴリズムと呼ぶ。カルマンフィルタなどのこのクラスの問題を解くのに同様に使用できるEMアルゴリズムの一般カテゴリに入る技術が他にも存在する。さらに、同様に使用できるベイズの推論が他にも存在する。続く記載は粒子フィルタに基づくものだが、当業者であれば、EMアルゴリズム、ベイズの推論アルゴリズム、または2つ以上の確率論的問題を解くことができる任意の他の技法も同等に使用できることは理解するはずである。
【００４３】
可動アームを含んだロボットが解かなければならない問題は、単純なナビゲーション問題よりも複雑である。そうしたロボットが移動式であれば、それは距離センサ37および標準SLAMを用いてその姿勢と壁および障害物の位置を算出できる。しかし、そうしたロボットは、3D空間内に障害物(例えば、壁および物体)の位置の地図を作成することもできる。離散的なグリッド位置として記述された3D地図は、そうした地図の要素がボクセルであるボクセル地図と呼ばれることがある。3Dマップの他の表現も当業者には知られている。例えば、非離散的座標の集まりは、各座標要素が点である点群として知られている。別の3D地図フォーマットは、単位法線ベクトルおよび頂点の集まりを表面地図として用いて定義された多角形表面の集まりである。様々な形式の地図作成に、統計的信頼度および最後の観察時間などの付加的情報を収集体の中の各要素に加えることもできる。例示目的で、次の説明はボクセル地図に基づくが、当業者であれば、この説明は点群、表面地図、またはこれまで説明されていない他の地図表現などの任意の地図表現でよいことは理解するはずである。
【００４４】
地図は、押されたときに障害物が動くかどうかなどの障害物の特性を含めてもよい。幾つかの実施形態では、地図は、奥行きカメラなどの距離センサ37により捕捉される距離データを用いて作成でき、これが3次元地図データ構造にマッピングされる。幾つかの実施形態では、距離センサ37の姿勢は、例えば標準2D SLAM技法などの別の手段を介して算出できる。1つ以上のEMアルゴリズムが、距離センサ37からの距離データに適用できる。例えば、このEMアルゴリズムが粒子フィルタとして実装される場合は、距離センサ37により捕捉された各データ点について、2次元または3次元地図データ構造内の対応するボクセルまたは他の地図要素の尤度カウンターがインクリメントされる。同時に、距離センサ37の経路に存在するが、距離センサ37によって表面として読まれないボクセルまたは他の地図要素の尤度カウンターは減少される。
【００４５】
好適な実施形態では、奥行きカメラのような距離データ測定装置距離センサ37を可動アーム200に取り付けでき、この可動アームは図1に示したようにロボット100の可動本体11に取り付けまたは結合される。さらなる実施形態では、標準SLAM技法を用いて本体11の姿勢を求め、また、アーム200の各関節201の位置を測定するロータリーエンコーダを使うなどして関節201の測定された位置を使用することで、本体11に対するアーム200の要素の姿勢を算出できる。本体11の姿勢は、本体11に対するアーム200の姿勢と数学的に組み合わせて、全体的な環境に対するアーム200の姿勢を算出できる。
【００４６】
幾つかの実施形態では、本体11に対するアーム200の姿勢は、ビジュアルサーボと呼ばれる技術を用いて算出してもよく、その技術では基準(fudicial)と呼ばれる固有の視覚的マークをアーム200に印し、カメラで追跡する。
【００４７】
幾つかの実施形態では、環境の地図およびアーム200の姿勢はEMアルゴリズムを用いて算出してもよい。さらなる実施形態では、粒子フィルタを用いてこの地図を作成し、アーム200の姿勢を算出してもよい。例えば、アーム200の可能な位置に関して粒子を生成できる。例えば、奥行きカメラ距離センサ37を用いて、最も近い障害物までの距離を多くの方向で一度に求めることにより、または距離センサ37を用いて最も近い障害物までの距離を単一方向で求めることで、最も近い障害物までの距離と方向の1つ以上のタプルを測定できる。タプルと粒子の各組合せは、最も近い障害物の位置の確率の3D地図と比較できる。タプルと粒子の組合せが、最も近い障害物の位置である可能性が高い位置を示す場合は、粒子尤度の測定値は増加され、タプルと粒子の組合せが、最も近い障害物の位置である可能性が低い位置を示す場合は減少させればよい。この増加または減少は可能性に比例させることができる。所与のボクセルまたは他の地図要素が最も近い障害物の位置である確率は、それが最も近い障害物の位置であるボクセルまたは他の地図要素であることを示すタプルと粒子の組合せの数に比例して増大する。それが最も近い障害物の位置であることを示すタプルと粒子の組合せを持たないボクセルまたは他の地図要素については、それらの確率測定値を減少させてもよい。可能性が非常に低いと判断される粒子は、より可能性が高いと判断される姿勢を備える粒子と置換できる。これらのステップは、何度も何度も、好適な実施形態では距離センサ37の示度毎に繰り返すことできるロボットアーム200の姿勢は、最も可能性が高い測定値を備えた粒子のそれであると判断できる。幾つかの実施形態では、粒子の確率はより高いレベルのソフトウェアに報告される。他の実施形態では、粒子フィルタ以外の技術を使用し、機能的な等価とすることができる。
【００４８】
幾つかの実施形態では、ロボット100および/またはアーム200の姿勢に関する最も可能性が高い粒子の正確性の確率に従って判断を行ってもよい。この判断は：第1動作(ぬぐい動作など)を継続するのか、または第2動作(較正など)を実行してから第1動作に戻るかの判断；連続的なセンサ示度により粒子の可能性を落ち着かせるために一時停止し、地図を改善させるかどうかの判断；および/または位置特定が不確定なため現在の動作を放棄する決定のうち1つ以上を含むことができる。
【００４９】
標準2DSLAMに関しては、当初のおよび置換られた粒子の選択は適切な方法論に従って実行すればよい。例えば、ロボット100の位置が分かっていると考えられる場合は、最近の走査におけるロボット100の位置と同じおよびほとんど同じのロボット100位置および配向に関する粒子に加え、例えば、ロボットの駆動ホイールまたは他の運搬輸送機12の回転から期待される運動ベクトルを適用することで、現在のSLAMについて予測される位置および配向の粒子も選択される。ロボット100の位置が未知であれば、典型的には、可能な空間内の幾つかの無作為な位置および配向に関して粒子が生成される。
【００５０】
幾つかの実施形態では、アーム200の3次元姿勢を求める方法は、例えば、剛性欠如のためアーム200が上下および/または左右にはねている場合、オプションでロボットアームの物理に基づいた数学モデルに基づいて、アームの端部の可能な位置の近似値を計算するなどして、アーム200の位置を表す粒子をアーム200の弾力性または回復性に基づいて生成する段階を含むことができる。
【００５１】
幾つかの実施形態では、アーム200の3次元姿勢を算出する方法は、アーム200の端部が嵌って動かなくなったことに基づいて粒子を生成する段階を含むことができる。例えば、アーム200が移動命令を受けてもアームの位置を動かすことができないことがあり、ロボット本体11は、例えば回転することで移動できる。
【００５２】
幾つかの実施形態では、距離測定は、1つ以上の接触センサ35、36により与えられる接触に基づいたデータを用いて実行される。1つ以上の接触センサ35、36は、アーム200および/または本体11に沿った任意箇所など、ロボット100の任意箇所に配置できる。接触センサ35、36は、ロボット100の部材と環境との近接度または機械的接触を検出する任意センサでよい。これは、ロボットアーム200が表面に当たる音を検出する音センサ、そのデータを表面との接触を示す加速スパイクに関して検査できる加速度計、または表面に接触するときに報告されるデータ内の類似のスパイクを備える圧力またはひずみゲージなどの、接触の結果を測定することによってタッチ、近接、および/または接触を間接的に検出するセンサも含むことは理解されている。接触センサ35、36は、容量性接触センサ、圧力センサ(力感応抵抗器およびロードセルなど)、および/または市販の光学近接センサなどの近距離バイナリ近接センサを含むことができるが、それらに限定されない。
【００５３】
幾つかの実施形態では、環境の地図ならびにアーム200および/または本体11の姿勢は、1つ以上の接触センサ35、36により与えられた接触データを用いて算出できる。例えば、アーム200の可能性な位置に関して粒子を生成できる。各接触センサ35、36の予想される運動方向は、各アーム関節201のアームモータ34速度に基づいてかつ/または駆動ホイールなどの本体11運搬輸送機の本体モータ33速度に基づいて計算できる。予想される運動方向は、接触センサ35、36が物体401、402と接触していることを検出しているか否かのバイナリ測定(binary measure)とを組み合わせることができる。この方向とバイナリ測定とを組み合わせてタプルとすることができ、これは、距離センサに基づくタプルに関して上述したものとまったく同一の方法で使用できる。
【００５４】
幾つかの実施形態では、接触センサ35、36に基づいたタプル、距離センサ37距離データに基づいたデータおよびタプルは、同一の3D障害物確率地図を用いて処理できる。さらなる実施形態では、タプルには複数の因子に基づいて信頼性スコアを割り当てることができる。例えば、1つ以上の接触センサ35、36からの接触データは、1つ以上の距離センサ37により与えられた距離データよりも正確で信頼性が高いとみなすることができる。そうした場合、接触データタプルは、距離データタプルからの確率増分からスケールアップされた係数で確率を増加させてもよく、例えば、各接触タプルは、距離データタプルの変化の二倍で地図の確率に影響するようにできる。この確率スケーリング係数は、異なる状況に基づいて異なるものとしてもよい。こうした状況は、センサ35、36、37の位置を含むことができる。例えば、本体11に設けられた接触センサ35、36はその位置がよく分かっているので非常に高い確率スケーリング係数を備えることができる一方で、アーム200の端部の接触センサ35、36はその位置の不確定性がより高いのでより低い確率スケーリング係数を備えることができる。そうした状況は、ロボットアーム200の位置も含むことができる。例えば、ロボットアーム200は、それが拡張位置にあるときよりも、折り畳み位置にあるときにより正確な位置検出をもたらす場合は、アーム200の位置に基づいてこの確率スケーリング係数を変更してもよい。
【００５５】
好適な実施形態では、次のうち1つ以上の例示的なセンサ構成が、所望の確率スケーリング係数で、環境の単一の3D障害物確率地図に貢献できる。その構成は：ロボットアーム200に取り付けられた奥行きカメラ距離センサ37；アクセサリ取付部221に取り付けられた清掃パッドまたは他の表面インターフェースなどのアクセサリ300に加えられた圧力を測定するロボットアーム200の端部に取り付けられた一組のアーム接触センサ36；1つ以上の関節201におけるものを含む、アーム200に沿った一組のアーム接触センサ36；本体11の周囲に設けられた一組の本体接触センサ35；および/または階段に存在するような床からの垂直な下降を検出するバイナリセンサである。
【００５６】
幾つかの実施形態では、このロボットは、例えば表面をぬぐうために、アームの端部を表面上で動かす。さらなる実施形態では、圧力センサ35、36は多次元とし、運動中に圧力を測定するために使用してもよい。多次元圧力センサ35、36は、次の方向のうち1つ以上の圧力を検出できるが、これら方向は、例示目的で、表面に対して法線方向に加えられる圧力を持つぬぐいパッドに関連して説明する。例えば、多次元圧力センサ35、36は、清掃または磨きパッドなどのアクセサリ300が取り付け可能なアクセサリ取付台221に結合できる。すると、多次元圧力センサ35、36は、パッドの上部または底部への法線圧力、パッドの左面または右面への法線圧力、パッドを左または右に回転させる圧力、パッドの上縁部または下縁部に平行な圧力、パッドの左縁部または右縁部に平行な圧力などの圧力を検出できる。
【００５７】
幾つかの実施形態では、制御ループを用いてアーム200の端部が表面上を移動する際のその圧力を制御してもよい。任意タイプの制御ループを使用してよい。物理作動システム用の一般的なタイプの制御ループは、比例、積分、微分のPIDループとして知られているが、同様に好適に使用できる多くの他のタイプの制御ループが存在する。さらなる実施形態では、ロボットアーム100は、平坦なパッド、他の平坦な物体、または回転掃除ブラシなどの、アーム200上のアクセサリ取付台221に固定できるアクセサリ300であって、複合曲線を備えた物体に対して法線方向であるアクセサリ300を、パッドの上部/底部および左/右に対する法線方向の圧力を検出するような一組の接触センサ36を使用するPIDループのような制御ループを用いて動かすように構成されている。好適な実施形態では、パッドは、当該パッドに法線方向の圧力を検出する3つの接触センサ入力を備えることができる。これら3つのセンサは三角形を形成できる。単純な算術によって、これら3つのセンサ36を用いて、パッドの上部分、パッドの下部分、パッドの左部分、およびパッドの右部分に対して法線方向の圧力を計算できる。
【００５８】
上述したもののような制御ループでは、誤差(所望値から実際の値を引いたもの)が計算され、コントローラはこれをモータ33、34などの能動要素の状態または位置を変更することで最小化しようとする。上述の制御ループでは、この誤差は、各方向における所望の圧力から実際の圧力を減算したものであり、コントローラはこの誤差を最小化するためモータを制御する。幾つかの実施形態では、制御ループ誤差を接触センサ示度として使用できる。例えば、予測されるまたは高い圧力を示す制御ループ誤差は、表面が接触されていることを示す示度を表す一方で、目標圧力から所定量低い圧力(例えば圧力ゼロ)を示す誤差は、表面が接触されていないことを示す示度を表す。他の実施形態では、接触データは次のうち1つ以上からのものでよい。すなわち：パッドまたはプローブをぬぐうために使用される制御ループからの誤差示度、障害物がどこに存在するかを算出する目的で明示的になされた接触からの接触データ；接触が予期されていなかったときにアーム200が接触したことを示すなど偶発的かつ予期しない明白な接触；アーム200がテーブルなどの表面に接触する位置に移動済みと考えられるときに接触を検出しないなど、接触が予期されたときに接触が無いこと。
【００５９】
幾つかの実施形態では、この3D地図は、障害物を含む位置の確率と、明るさ、彩度、および/または色相(カメラなどの距離センサ37により直接測定されるもの)；透明度(例えば、物体の背後から直接的にまたは物体の背後の表面または物体から光を反射させることにより光を照らしたときの明るさ、彩度、および/または色相の変化)；および/または変化(例えば、測定された明るさ、彩度、および/または色相の示度から示度への標準偏差)を含むがそれらに限定されない他の視覚情報と、を含む。
【００６０】
幾つかの実施形態では、接触データ特性の3D地図が生成できる。この地図は、表面が接触されたときに当該表面が移動したかどうかと、オプションで、どれほどの力が必要であったかと、オプションで、圧力が解放されたときに表面が最初の状態に復帰したかどうかとを含むことができる。そうした検出は、圧力が最初に検出されるまで、表面に向けて取り付けられている圧力センサ36を備えたロボットアーム200を移動し；所定の許容最大圧力に達するかまたは所定の許容最大変位に達するまでロボットアーム200を同一方向に移動させるよう試み；ロボットアーム200を最初の圧力検出位置まで戻し、圧力がゼロまで低下するロボットアーム200の位置を測定することからなる段階を用いて実行できる。当業者であれば、類似の結果を出すと共にロボットアーム200のこの順序の運動に機能的に同一である他の順序の運動が存在することは理解するはずである。
【００６１】
幾つかの実施形態では、表面組織検出のような接触データ特性の3D地図。こうした検出は、プローブまたはパッドアクセサリ300を表面に対して法線方向の一定圧力を掛けてその表面上を移動させ；パッドまたはプローブを移動させるのに必要な横方向の力を測定し；オプションで、この過程を異なる法線力で繰り返すことからなる段階を用いて実行できる。この横方向の力は表面の粗さに比例でき、平滑面はパッドまたはプローブを移動させるのに横方向の力をほとんど必要とせず、粗い表面はより大きな横方向の力を必要とすることがある。プローブの形状は、小さな特徴により形成される粗さを排除するように選択される。このプローブが球体の場合は、小型の球体は小型の特徴と大型の特徴の両方を含む粗さを検出できる。大型の球形のプローブは、当該球体の半径よりも実質的に小さい特徴によって粗さを排除できる。様々なプローブ形状が選択できる。球体などの対称形状は水平および垂直粗さを等しく検出する一方で、丸みのある縁部を備えた三角形のような非対称形状は、単一方向において粗さを優先的に検出できる。こうしたプローブは、例えば、トイレのタイルのグラウト線による粗さを検出するのに有用となることがある。
【００６２】
幾つかの実施形態では、接触データ特性の3D地図を、障害物の確率の3D地図および/または視覚的特性の3D地図の一方または両方と共に用いてもよい。幾つかの実施形態では、アーム200が引っかかった、または、動かなくなった場所の3D地図が生成される。これは、上述した3D地図の1つ以上と組合せ可能な3Dボクセル地図でよい。
【００６３】
幾つかの実施形態では、表面材質の変化または異なる種類の材質は接触センサ35、36によって検出でき、接触も利用する特別な清掃アルゴリズムを適用してもよい。明確性のため、後述する例はグラウトに関して説明するが、コーキング材、煉瓦の間のモルタルなどの表面材料の他の変化も同様に該当する。この説明の目的では、汚れたタイルなどの、平滑表面を粗らす表面汚れを備えた領域は、本記載の目的では表面材料の変化(清潔なタイルに対する汚れたタイル)であると考慮できる。好適な実施形態では、このアルゴリズムは、プローブを対象表面上で動かすロボットの動作を含むことができる。このプローブは、例えば、グラウトなどの材料の1つに「引っかかる」形状を備えた物体を含むことができ、これは、例えば、タイルの表面からグラウトへ移動する際に抵抗の変化をもたらすことで起こる。こうした形状の一例は、半球状端部を備えたロッドであり、グラウトによって分離されたタイルの表面上を移動する場合はグラウト線内に下降することになる。こうした形状の別の例が粗毛,ブラシであり、これは、平滑表面に比べると粗面において横方向運動に対するより大きな抵抗をもたらす。表面に対する法線方向の一定圧力を維持する。表面変化(例えば、グラウト線)を横切るときの、表面を横切るのに必要とされる力が変化し、さらに最初の材料(例えば、タイル)に戻る際に元の値に戻ることになる。
【００６４】
幾つかの実施形態では、プローブは2つ以上の移動方向で表面上を移動させることができる。力が変わり始める位置は、材質(例えば、グラウト)の変化が始まった後である可能性が高く、力が以前の値に戻り始める位置は、材質(例えば、グラウト)の変化の終わった後である可能性が高い。異なる方向に対する位置の力曲線は、プローブの形状、材質が変化する領域の形状(例えば、タイルがグラウトから盛り上がっている)、および/または物質の特性(例えば、グラウトはより荒く、よってプローブがグラウトを横切るのにより大きい力を必要とする)を考慮した物理に基づくモデルを用いて組み合わせることができる。材質(例えば、グラウト)の変化箇所を超えて2つ以上の方向に移動することで、グラウトの実際の位置をより正確に求めることができる。
【００６５】
幾つかの実施形態では、視覚システムを用いて材料変化(例えば、グラウト)位置を識別する助けとなる。力の変化によって検出された材質変化位置を視覚システムからの縁部検出データと比較でき、縁部が存在すれば、視覚システム縁部を用いて材料変化(例えば、グラウト)位置を修正できる。幾つかの実施形態では、線(例えば、直線)を、数学の分野に精通した者に知られた標準的な曲線のあてはめ技法を用いて、視覚データおよび/またはプローブに基づいたデータにあてはめることができる。さらなる実施形態では、材質変化(例えば、グラウト線)の地図を作成してもよい。
【００６６】
幾つかの実施形態では、一次材料の下方にある二次材料(例えば、タイル表面より下方にあるグラウト)を清掃できる。好適な実施形態では、この清掃は、清掃パッド、クロス、回転ブラシ、またはアーム200の遠位端212などのロボット100に取り付け可能な他の清掃装置などプローブとして機能するアクセサリ300により実行できる。幾つかの実施形態では、清掃パッド、クロス、回転ブラシ、または他の清掃装置の縁部を回転させて、二次材料が形成する穴または凹部に入れることができる。さらなる実施形態では、前後方向のこすり洗い動作を実行できる。さらに別の実施形態では、清掃を向上させるためにパッドまたはクロスには振動が加えられる。さらなる実施形態では、二次材料（例えば、グラウト）は回転ブラシで清掃してもよい。
【００６７】
図5は、本明細書に記載された様々な実施形態による電気機械式スキンアセンブリ50を含む接触センサの一例の透視図を示す。幾つかの実施形態では、ロボット100と他の物（物体、壁、およびロボット100自体の要素を含むがそれらに限定されない）との衝突は、柔軟性な圧力感知電気機械式スキンアセンブリ50を介して検出できる。
こうしたスキンアセンブリ500は、例えば、引き延ばして導電表面52からわずかに盛り上がる(proud)導電性シリコンまたはゴムなどの導電性スキン材料51を使って作製できる。幾つかの実施形態では、スキンアセンブリ500の導電表面52は、例えば、ゴムバンド形状の導電ゴムのような導電材料製の引き延ばされたストリング53によって形成できる。その幾何学的形状の設計は、スキン材料51の変形が導電表面52との接触をもたらし、電気回路を完成するようにすればよい。変形の位置の検出は、導電スキンを区分化することによって（例えば、導電材料と非導電材料の交互配置された帯片を備えることによって）または導電表面を区分化することによって達成できる。スキン51が1つの方向（例えば垂直方向）に区分化され、導電表面52が別の方向（例えば水平方向）に区分化されている場合は、変形の完全な位置情報が利用できるようになる。変形に関係した力の量または領域は、接触点に抵抗を備えた導電スキン材料51を設けることで検出でき、接続抵抗が、導電表面52に接触しているスキン材料51の大きさを示すものである。
【００６８】
幾つかの実施形態では、接触データを与えるよう構成された電気機械式スキンアセンブリ50は、特定の距離で下方にある表面と最大効率で共振結合する周波数の交流信号をスキン51に送ることで構成できる。この場合、2つの表面51、52間の完全な接触は必要ないが、それは結合の量は、2つの表面51、52の互いからの距離によって決定され、この距離がスキンアセンブリ50により掛けられた圧力によって影響されるからである。
【００６９】
ここで図1、6-8を参照すると、好適な実施形態では、ロボット100は、図1に示したように作動体スイート220に固定できる平坦なパッド、他の平坦な物体、または回転掃除ブラシなどのアクセサリ300を動かすよう構成できる。作動体スイート220は、遠位端212などのアーム200に結合でき、アクセサリ300を固定するよう構成できる。幾つかの実施形態において、図6-8に示したように、作動体スイート220は、1つ以上のアーム接触センサ36、距離センサ37、および/またはアクセサリ取付部221を含むことができる。概して、アクセサリ取付部221は、アクセサリ300を作動体スイート220に結合するように構成され、アクセサリ300は、物体401、402および環境内の表面に接触し、または、それらと相互作用するよう典型的に構成されている。例えば、アクセサリ取付台221は、物体401の表面に接触し、または、それをぬぐうように動かすことができる図1に示した清掃パッドアクセサリ300を固定するよう構成されている。
【００７０】
アクセサリ取付台221は、パッド、ブラシ、プローブ、エアジェット、ウォータージェット、バフブラシ、グラウト清掃ブラシもしくはパッド、把持もしくは掴み装置、または物体401、402と接触するよう移動可能な他の任意種類のアクセサリなどの複数種類のアクセサリ300を許容するように複数の形状および大きさで構成できる。好適な実施形態では、アクセサリ300は、ロボット100および/またはアーム200によって移動されることで物体401、402と接触でき、ロボットに、清掃、つや出し、乾燥、洗浄、バフ仕上げ、研磨、除塵、塗装、または他の任意種類の行動もしくは動作などの目標指向行動を完了させることができる。例えば、清掃ブラシアクセサリ300は、ロボット100のアーム200の遠位端212に接続される作動体スイート220のアクセサリ取付部221に固定できる。ロボット100は、物体401、402の近傍に移動でき、次に、アーム200を動かして清掃ブラシを物体にこすり付け、物体401、402の一部を清掃するという目標指向行動を完了する。
【００７１】
好適な実施形態では、アクセサリ取付台221は、アーム接触センサ36に結合でき、アクセサリ取付台221および/またはアクセサリ取付台221に固定されたアクセサリ300が移動されて物体401、402または表面に接触すると、接触データを受け取るよう構成されている。例えば、アクセサリ取付台221（図6）は、例えば3つなどの1つ以上のアーム接触センサ36を保護するまたは覆う接触センサカバー222（図7）に結合できる。これらの3つのセンサ36は、図8に示したように概ね三角形状に配置され、単純な算術によって、これら3つのセンサ36を用いて取付部221および/またはアクセサリ取付台221に固定されたアクセサリ300の上部分、下部分、左部分、および右部分に対する法線方向の圧力を計算でき、物体401、402、または表面に接触するよう移動される。他の実施形態は、作動体スイート220は、3つの力感応抵抗器によって形成できる概ね三角形状に配置された3つのセンサ36と、それぞれが1つの力感応抵抗器に接触するよう位置決めされた3つの突起を備えることができる接触センサカバー222とを含むことができる。アクセサリ取付台221は接触センサカバー222に結合でき、アクセサリ取付台221に固定されたアクセサリ300が物体401、402に接触した際に接触センサ36が接触データを受信できるようにし、カバー222に設けられた1つ以上の突起に1つ以上の力感応抵抗器と相互作用させることになる。
【００７２】
図9は、本明細書に記載された様々な実施形態による、その走査が環境の地図作成するために使用される別個の2次元距離センサ37を用いた物体の2つの例示的走査を示す。幾つかの実施形態において、これらの走査は、作動体スイート220に配置できる（図1、6-8）またはロボット100の任意箇所に配置できる1つ以上の距離センサ37によって実行すればよい。側部からまたは異なる角度からの走査の代表的な実例が図9に示されている。図9は、本明細書に記載した様々な実施形態による、別個の2次元距離センサ37A、37Bを用いて実行でき、または単一の距離センサ37を2つの位置A、Bまで移動させることにより実行できる概ね円柱形物体402の2つの例示的走査を示し、これらの走査はそれぞれ経路603および604を通過し、位置Aにおけるセンサ37Aの楕円605と、位置Bにおけるセンサ37Bの円606とを近似する別個の走査読み取りまたは距離データが結果として得られる。この実施形態では、物体402に沿った位置決め点を、各ライブラリ項目の基本形状の組合せにより生成されうる値と比較でき、この際に、ライブラリ項目で指定されている可能なパラメータ値の範囲を使用して、データストア308(図11)のデータベース内を調べて閾値未満のエラー(平均二乗誤差など)を生じる一組のパラメータ値があるかどうかを調べる。パラメータ値はゼロ以上のサイズ、直径、またはフィレットの形状を含むことができる。この閾値は絶対数でもよいし、物体の大きさや、その種類の物体402がどのぐらい変動するか(例えば、特定の大きさのレゴブリックの寸法公差は小さいが、個々の石けんには大きなサイズ変動がありうる)などの関連した要因に従ってスケール変更してもよい。パラメータ値の選択には、乱数シードの起点でそのシードから始まる最小を求める指向的サーチが続くものなどの、大域的最小点を見つけるための本発明では周知の技法を使用できる。
【００７３】
幾つかの実施形態では、最大の平坦表面などの基準点から例えば1インチ、3インチ、および5インチの高さで、同一空間の多数の平行走査を水平に実行して、物体502のライブラリと共に用いる距離データを提供できる。オプションで、ライブラリ502は、位置合わせした3つすべての走査の予想される値を含むようにしてもよい。幾つかの実施形態において、1つ以上の直交走査の予想される値をライブラリ502に含めてもよい。この実施形態では、走査は一方向で実行され、この走査データをライブラリデータと比較することによって一組の物体の候補一致を生じることができる。垂直走査が実行される際に、これら一致は、一致の程度に従って良否を判定できる。
【００７４】
図12は、本明細書に記載された様々な実施形態による、物体402、402に関連付けられたデータの物体ライブラリ502データベースの一例のブロック図を示す。幾つかの実施形態では、物体および/または表面形状のライブラリ502が存在する。ライブラリ502は、環境内で遭遇したまたは遭遇しうる1つ以上の物体、好適には各物体401、402のデータレコード501を含むことができる。ライブラリ502は、ロボット100の処理ユニット21が利用可能なデータストア308に格納できるデータベースの形式でよい。オプションで、データストア308は、処理ユニット21がローカルでアクセスできかつ/または無線23または他のネットワークインターフェースを介してアクセスできるクラウドベースのデータストア308などのリモートでアクセス可能としてもよい。各データレコード501は、名前カテゴリ511、形状データカテゴリ512、カテゴリを変更できるパラメータ513、属性カテゴリ514、刺激に対する反応カテゴリ515、重心カテゴリ516、把持カテゴリ517、清掃カテゴリ518、アタッチメントカテゴリ519、および/または物体401、402に関連付けられたデータを受け取りまたは格納できる他の任意のカテゴリまたはデータフィールドなどの1つ以上のデータフィールドまたはカテゴリを含むことができる。
【００７５】
物体401(図1)、402(図9)の走査(接触、3D距離測定、または他の3D検出技法を介した)は、ライブラリ502内の物体データレコード501に一致できる。図10の例示的な形式に示したライブラリ502は、物体401、402に関する付加的情報であって、例えば、これらが固定されているか(蛇口ハンドルなど)または移動可能か(シャンプーボトルなど)(属性カテゴリ514に格納できる)、これらがどんな材料製か(カテゴリ514に格納できる)、例えば清掃のため表面を横切る必要がある運動、物体401、402を移動するためにどのように掴むか(カテゴリ515-518に格納できる)などの情報を含むことができる。ライブラリ502は、力が上部に掛けられたときに物体が移動したかなどカテゴリ515に格納できる刺激に対する物体の反応、またはカテゴリ516に格納できる物体401、402の重心などの、測定には相互作用および計算の両方が必要な特性、またはシャンプーボトルがどのぐらい満たされているか表す、物体401、402に関する情報も含むことができる。
【００７６】
物体401、402をライブラリ502内の物体と一致させるには多くの方法がある。幾つかの実施形態では、物体401、402は、ライブラリ502内の物体データレコード501に完全な一致として一致させることもできる。ライブラリ502は、各物体の形状を表すデータレコード501内に一組のデータを含み、未知の物体401、402に沿った位置決め点が、ある程度のエラーを許容しつつライブラリの形状と比較される。例えば、未知の物体401、402に沿った位置決め点は、ライブラリ502内の形状カテゴリ512に比較でき、さらに、未知の物体401、402に沿った位置決め点とライブラリ502内の形状との間で最小平均二乗誤差を生成可能であり、当該誤差が閾値を下回る限りは、最低平均二乗誤差を備えたライブラリ形状との一致が宣言される。
【００７７】
幾つかの実施形態では、物体401、402は、ライブラリ502内の物体のデータレコード501にパラメトリックに基本形状の組合せとして一致できる。基本形状は、円柱、円錐、丸い角を備えたまたは備えない直線状体積を含むことができるが、それらに限定されない。例えば、ライブラリ502は、円柱形と一致した物体401、402に沿った一組の位置決め点がボトルであると判断可能である。或いはより具体的としてもよく、すなわち、2-5インチの直径を持つ円柱形に一致した下部と、より小さい直径を備えた円柱形に一致した上部とを備えた任意の物体401、402はシャンプーボトルである。「円柱形に一致」するとは、上方から見ると円形である物体401、402を示す上方からの距離センサデータまたは接触センサデータ、および/または半円柱形(残りの半分は当該物体の前面によって隠蔽されている)を示す側部からの走査または接触、および/または楕円形を示す別の角度からの走査または接触のことである。
【００７８】
幾つかの実施形態では、物体401、402は、ライブラリ502内の物体のデータレコード501に機能的に一致できる。物体401、402の種類に関する決定木を形成する一組の規則を考慮できる。例えば、水平表面に接触する物体401、402は、シャンプーボトルのような独立型の物体であると推定され、水平表面に接触しない物体401、402は、蛇口ハンドルなどのような固定された物体であると推定される。
【００７９】
幾つかの実施形態では、一組のパラメータを物体のデータレコード501と共にライブラリ502で格納して、物体401、402の異なるバージョンの範囲を表すようにしてもよい。例えば、長方形状の物体401、402が生成する位置決め点は、その物体が持つ許容可能な回転範囲を記述するパラメータと共にライブラリ502内に入れることができる(例えば、円柱形物体は回転が影響を及ぼさないので単一の回転テストを行うことになり、四角形物体であれば90度にわたる回転で5度の回転毎にテストしてもよいし、オプションで、90度を上回る回転は90度未満の回転と同じなので無視することもできる。さらなる例では、四角形の物体401、402の位置決め点は、許容可能なスケーリング範囲を記述するパラメータと共にライブラリ502内に入れてもよい。例えば、単一のサイズ(ショットグラスなど)しかない物体401、402は、1xスケーリングでの基準点への比較のみを示すパラメータを備えることができ、シャンプーボトルまたはワインボトルなどの複数のサイズで入手できる物体401、402は、例えば3x-5xのサイズについてテストできるパラメータを備えることができる。
【００８０】
幾つかの実施形態では、物体401、402は、これらを非常に短い距離(0．25インチなど)で押すことで固定されているのか移動可能なのかをテストしてよい。抵抗があれば固定されており、移動すれば可動物体である。例えば、押されたことへの物体の予想される反応はライブラリ502に含めて、物体の一致のパラメータの1つとして使用できる。
【００８１】
幾つかの実施形態では、距離データまたは接触データの配向は、水平に近い直線平面は完全な水平であると推定し、垂直に近い直線平面は完全な垂直であると推定することで修正できる。水平かつ/または垂直の特徴を備えた物体は非常に一般的なので、これにより多くの場合で、物体401、402をライブラリ502内の対応する物体と一致させるために必要な計算の複雑さを減少させることができる。
【００８２】
幾つかの実施形態では、物体401、402と相互作用する運動をライブラリ502に含めてもよい。例えば清掃用途では、表面を噴霧してぬぐう必要がある場合、噴霧およびぬぐいは、各ライブラリレコード501またはパラメトリック形状に関する所定の組の動作でよい。同じ清掃用途では、幾つかの物体401、402を飛ばしたり(例えば固形石けんのように)、どかしたり(シャンプーボトルのように)することも可能である。該当する場合は、動作の一組のパラメータまたは動作を行うのに必要な正確な姿勢を含む、これら他の相互作用に関する命令をライブラリ502に含めることもできる。
【００８３】
幾つかの実施形態では、例えば、接触センサデータもしくは接触知覚ならびに/またはカメラおよび/もしくは距離センサ37を一つずつもしくはグループで使用することで、物体401、402の形状を測定できる。幾つかの実施形態では、物体401、402の形状は、掴まれかつ/または持ち上げられるなどの操作の前かつ/または後に測定できる。幾つかの実施形態では、物体401、402の形状は、ライブラリ502内の物体のデータレコード502の形状データに一致できる。
【００８４】
幾つかの実施形態では、物体401、402の形状はライブラリ502にある物体のデータレコード501か、ライブラリ502にある物体のいずれかのカテゴリ511-519に一致できる。例えば、ライブラリ502は、特定のパズルのピースに一致するパラメータを備えた項目を含むこともできるが、ライブラリ502は、一定の寸法未満のパズルピースまたは固い物体などのカテゴリをカバーする項目も含むことができる。
【００８５】
幾つかの実施形態では、布製の物体のような変形可能な物体401、402をライブラリ502に含めることができる。一実施形態では、これらは、その形状の組合せによって、かつこれらが変形可能である(力を掛けると形状が変化する)という事実によって特定される。幾つかの実施形態では、1つの物体カテゴリは、変形可能な物体401、402のカテゴリである。
【００８６】
幾つかの実施形態では、ライブラリ502内の物体401、402、およびオブジェクトカテゴリは、その物体または物体カテゴリがどのカテゴリに属するかを示すフィールドを含むことができる。これらカテゴリはデータ構造を形成でき、物体カテゴリ(パズルピースなど)が別のカテゴリ(固い物体401、402など)に属すこともできる。
【００８７】
幾つかの実施形態では、ロボット100は把持器を含む。この把持器は、例えば物体401、402を持ち上げるためこれらと結合できる。この把持器は、物体401、402を保持するフィンガーであって、それらの間に物体401、402の特徴を保持するフィンガー；吸引；電気吸着；他の吸着手段；針もしくは他の穿孔器具；フォークもしくはスプーンなどの食事道具；および/または例えば、モップの柄を収容する正しい形状であるカラーなどの、物体401、402と機械的に結合する特別な形状、などの技法のうちどれも使用しないか、1つ以上を使用できる。
【００８８】
幾つかの実施形態では、物体401、402は自律的機械により物理的な置き場に入れられてもよいし、または特定の物体または物体のカテゴリに指定された場所に入れられてもよい。
【００８９】
幾つかの実施形態では、物体401、402に遭遇したときに、物体401、402の表現(写真または3D走査など)と、物体401、402がどこで発見されどこに置かれたかなどの情報とをデータベースに加えることができる。
【００９０】
幾つかの実施形態では、物体401、402に遭遇したときに、物体401、402に関するデータ(その重量など)と、物体401、402がどこで発見されどこに置かれたかなどの情報とをデータベースに加えることができる。さらなる実施形態では、重さのようなデータを使って、所有者に牛乳が無くなりかけていると警告するなどの内容物の残量について、および/または追加の牛乳の注文などの措置を講じることについてのユーザ情報を報告する。さらなる実施形態では、ロボット100は、RFIDリーダーを用いて近傍の物体を照会し、RFID使用可能物体の位置をカタログに入れる。
【００９１】
幾つかの実施形態では、ロボット100は、片付けを必要とすると指定された領域内で各物体401、402を持ち上げ、オプションでは1つずつ持ち上げる。これは接触センサ35、36および/または距離センサ37などを使って物体401、402の形状測定を行い、次に、これを物体データベース内の情報に比較でき、それによってその物体が識別されまたはその物体の物体カテゴリが特定される。次に、それは、物体401、402を、置き場またはこの種の物体401、402用に指定された別の種類の場所に置くことができる。
【００９２】
幾つかの実施形態では、物体401、402の一部またはすべてはそれらの元の場所に戻される。データベースは、物体401、402が発見された場所を記憶してことができる。幾つかの実施形態では、データベースに照会することで、物体401、402をリモートで見てその状態を調べるための(例えば、シャワー室内のシャンプーボトルの最近の写真を遠隔位置から調べて、追加のシャンプーを購入する必要があるかを確かめるための)機能を実現するために、それら物体はどのような外見か、どこで発見されたか、今はどこに存在するかなどの物体401、402に関する情報を見つけることができる。別の実施形態では、データベースに照会することで、紛失した物体401、402を発見するための(例えば、紛失した車のキーを発見するための)機能を実現するために、それら物体はどのような外見か、どこで発見されたか、今はどこに存在するかなどの物体401、402に関する情報を見つけることができる。さらなる実施形態では、データベースに照会することで、物体401、402をリモートで見てその上に印された情報を読むための(例えば、その上にパスワードが記された紙片を調べるための)機能を実現するために、それらはどのような外見か、どこで発見されたか、今はどこに存在するかなどのそれら物体に関する情報を見つけることができる。
【００９３】
幾つかの実施形態では、ロボット100は一群の物体401、402を一つの場所から別の場所へ移動し、この移行時に動作を実行できる。これを行うため、既に開示したように、物体401、402を走査して接触データおよび/または距離データを得ることができ、物体ライブラリ502内の物体データレコード501と一致させることができる。一実施形態では、物体401、402の元の位置または目的地(または両方)の位置の一方は、特定種類の物体401、402を保持できる空間を備えた構造化環境であって、ロボット100は物体のライブラリデータレコード501を、上記物体401、402を収容するものとして示されている空間に一致できる。例えば、ロボット100は、物体401、402(例えば、汚れた皿)を流し台から移動させることにより食洗機を満たし、その後に物体401、402は水洗され、その後に物体401、402は目的地の適切な場所に置かれる(例えば、皿は食洗機ラック内のスロット内に置かれる)。
【００９４】
好適な実施形態では、ロボット100は、把持器と；1つ以上のセンサ36、37、38と；物体ライブラリ502とを含み、この把持器が一度に1つの物体401、402を持ち上げ、接触センサ35、36および/または距離センサ37によって一組の物体形状測定値が得られ、これらが物体ライブラリ502内の各項目と比較され、物体401、402の最適一致が特定され、物体401、402は、データレコード501によりこの種の物体401、402に適切な場所であることが示される場所に入れられる。
【００９５】
さらなる好適な実施形態では、ロボット100は、1つ以上の接触センサ35、36を含む1つ以上のセンサ36、37、38と；ロボット100がアクセスできるメモリまたはデータベース308などに設けられた、環境またはその内部の物体401、402の表現とを含むことができ、接触センサ35、36から収集されたデータは、環境またはその内部の物体の表現に追加される。
【００９６】
さらなる好適な実施形態では、ロボット100は、1つ以上の接触センサ35、36を含む1つ以上のセンサ35、36、37を含むことができ、接触に基づくセンサ35、36により与えられた情報を用いて環境および/またはその内部の物体401、402の一部の地図を作成できる。
【００９７】
図11は、本明細書で記載される様々な実施形態による、ソフトウェアルールエンジンまたはプログラム28(図3)として機能でき、処理ユニット21(図3)のメモリ25(図3)で実行できる幾つかのモジュールを示すブロック図を例示する。好適な実施形態では、プログラム28は、本明細書に記載した様々な実施形態による、地図作成エンジン601、接触エンジン602、距離エンジン603、および/または融合エンジン604を含むことができる地図作成モジュール600を含むことができる。幾つかの実施形態では、1つ以上のエンジン601-604の1つ以上の機能は、1つ以上のエンジン601-604によって実行できる。
【００９８】
地図作成モジュール600は、1つ以上のエンジン601-604間でのデータ転送を容易にし、かつ/または1つ以上のエンジン601-604と物体ライブラリ502(図10)を含むことができるデータストア308との間でのデータ転送を容易にするよう構成できる。さらに、地図作成モジュール600は、ロボット100、アーム200、および/または作動体スイート220を動かすのに使用可能なデータを出力できる。幾つかの実施形態では、データストア308はロボット100からリモートに存在できる。ロボット100は、有線または無線ネットワーク接続を介してデータストア308にアクセスできる。さらに、2台以上のロボット100が、物体ライブラリ502(図10)などのデータストア308に貢献し、その内部のデータにアクセスできる。さらなる実施形態では、ロボットに対してローカルなメモリ25がデータストア308として機能できる。
【００９９】
接触エンジン602は、1つ以上の本体接触センサ35および/またはアーム接触センサ36からの接触データを受け取るよう構成できる。この接触データが受信されるのは、接触センサ35、36を含むロボット100の部分が、意図的にもしくは処理ユニット21に指示されて、処理ユニット21からの指示なく意図しないで、かつ/または作動体スイート220のアクセサリ取付台221などのロボット100の部分が物体もしくは障害物の表面を移動したことで、物体に接触したときである。
【０１００】
同様に、接触エンジン603は、1つ以上の距離センサ37から距離データを受け取るよう構成できる。この距離データは、物体の走査605、606(図9)、および/または距離センサ37もしくはロボット100の一部と、環境内の物体または障害物の表面との間の距離データを含むことができる。
【０１０１】
地図作成エンジン601は、それが、例えば表面および物体などの障害物を接触データおよび/または距離データを用いて検出した位置を表すデータ構造を構築するよう構成できる。このデータ構造はローカル環境の地図でよく、本明細書では「地図」と呼ぶ場合がある。こうした地図の1つの表現は、特定の特徴(例えば壁)が特定の位置にあることの可能性を表す2次元または3次元配列の数である(配列インデックスにより表現される)。この地図は、例えば、当該地図における非ゼロ位置の配列または連結リストとして当業者に公知の他の形式をとることもできる。接触エンジン602により与えられる接触センサ35、36からの接触データを用いて、近い物体401の地図を作成することもできる。反対に、距離エンジンにより与えられる距離センサ37からの距離データは、接触センサ35、36の到達範囲を超えた特徴の位置など接触を介しては得られないデータ、または、まだ接触されていない特徴に関するデータを与えることができる。
【０１０２】
幾つかの実施形態では、地図作成エンジン601が接触データ地図および距離地図を作成し終えると、次に融合エンジン604が、接触センサ35、36と非接触センサ37との間の位置較正の知識の組合せによって、かつ/または両方の地図に現れる特徴に基づいた地図の位置合わせを介して、これら2つの地図を単一の地図に融合する。特に、接触35、36および非接触37センサの位置較正の知識を介して大まかな融合を実行でき、地図の相対位置の微調整は、両方の地図に現れる特徴をマッチングすることで行われる。代替的な実施形態では、融合エンジン604は、接触データおよび距離センサデータを受け取ることができ、これらデータを融合または結合する。次に、融合されたデータは、地図作成エンジン601に与えることができ、するとこれが接触データおよび距離センサデータとの両方を含む単一地図を作成できる。
【０１０３】
好適な実施形態では、地図作成モジュール600は、地図または地図データを受け取り、それを用いて環境内のまたは物体に関するロボット100および/もしくはアームの位置を求めることができる。地図作成モジュール600は、環境内のまたは物体に関するロボット100および/もしくはアームの位置を算出するための粒子フィルタまたは他の任意方法を用いることができる。さらに、この地図作成モジュールは、受け取られた地図または地図データならびにロボット100および/またはアーム200の算出された位置に基づいて、ロボット100および/またはアーム200を移動するよう構成できる。
【０１０４】
図12は、本明細書に記載された様々な実施形態による、センサデータを組み合わせて目標指向型作業を行うための方法(「本方法」)700の一例のブロック図を示す。幾つかの実施形態では、本方法は、ステップ702で距離センサ37から距離センサデータを受信することで開始701できる。幾つかの実施形態では、ステップ702は、距離測定値を含む距離データを地図作成エンジン601および/または融合エンジン604に提供できる距離エンジン603によって実行できる。
【０１０５】
次に、ステップ703では、接触データが接触センサ35、36により受信される。幾つかの実施形態では、ステップ703は、物体または表面に接触することで受信される接触データを、地図作成エンジン601および/または融合エンジン604に提供できる接触エンジン602によって実行できる。
【０１０６】
ステップ704では、これら距離データおよび接触データは、移動式ロボット装置100の処理ユニットが組み合わせることができる。幾つかの実施形態では、地図作成エンジン601が接触データ地図および距離地図を作成し終えると、次に融合エンジン604が、接触センサ35、36と非接触センサ37との位置較正の知識の組合せによって、かつ/または両方の地図に現れる特徴に基づいた地図の位置合わせを介して、これら2つの地図を単一の地図を含む融合または組合せデータへと融合する。代替的な実施形態では、融合エンジン604は、接触データおよび距離センサデータを受け取ることができ、これらデータを融合または結合する。次に、融合または組合せデータは、地図作成エンジン601に与えることができ、するとこれが接触データおよび距離センサデータとの両方を含む単一地図を作成できる。
【０１０７】
最後に、ステップ705では、距離データと接触データの組合せを用いて、ロボット装置100を操作して目標指向行動を完成させることができる。好適な実施形態では、地図作成モジュール600は、地図または地図データを受け取り、それを用いて環境内のまたは物体に関するロボット100および/もしくはアームの位置を求めることができる。地図作成モジュール600は、環境内のまたは物体に関するロボット100および/もしくはアームの位置を算出するための粒子フィルタまたは他の任意方法を用いることができる。さらに、この地図作成モジュールは、受け取られた地図または地図データならびにロボット100および/またはアーム200の算出された位置に基づいて、ロボット100および/またはアーム200を移動するよう構成できる。ロボット100および/またはアーム200を移動することで、ロボット装置100を操作して、清掃、つや出し、乾燥、洗浄、バフ仕上げ、研磨、除塵、塗装、または他の任意種類の行動もしくは動作などの目標指向行動を完了させることができる。例えば、清掃パッドアクセサリ300は、ロボット200のアーム200の遠位端212に接続される作動体スイート220のアクセサリ取付部221に固定できる。ロボット100は、物体401の近傍に移動でき、次に、アーム200を動かして清掃パッドを物体にこすり付け、物体401の一部を清掃するという目標指向行動を完了する。ステップ705が完了すると、方法700は完了する706。
【０１０８】
幾つかの材料が示されているが、他の実施形態では、本体11、可動アーム200、および/または本明細書に記載された他の任意要素をなどのロボット100を構成する要素は、アルミ、鋼鉄、および他の金属並びに金属合金、木材、硬質ゴム、硬質プラスチック、繊維強化プラスチック、カーボンファイバー、ファイバーグラス、樹脂、ポリマー、または複数材料の組合せを含む他の任意適切な他の材料などの耐久性材料から作製できる。さらに、1つ以上の要素は、軟性プラスチック、シリコン、軟性ゴム、または複数材料の組合せを含む他の任意適切な他の材料などの耐久性がありわずかに柔軟な材料製とするかそれを含むことができる。幾つかの実施形態では、ツール100を構成する1つ以上の要素は、熱結合、化学結合、接着剤、留め金式のファスナ、クリップ式のファスナ、リベット式のファスナ、ねじ山式のファスナ、他の種類のファスナ、または他の任意適切な結合方法で互いに連結または結合してよい。他の実施形態では、ツール100を構成する1つ以上の要素は、圧入もしくはスナップ嵌めにより、面ファスナすなわちベルクロ(登録商標)ファスナ、磁気式のファスナ、ねじ山式ファスナ、シール可能なさねはぎファスナ、スナップファスナ、クリップ式のファスナ、留め金式のファスナ、ラチェット式ファスナなどの1つ以上のファスナによって、押し込みロック式結合方法、回転ロック式結合方法、摺動ロック式結合方法、または妥当な能力を備えた当業者が同じ機能を果たすと予想できる他の任意適切な一時的な結合方式などの1つ以上のファスナによって、連結または着脱可能に結合してよい。さらなる実施形態では、ツール100を構成する1つ以上の要素は、ロボット100の別の要素に接続されるか、そうした要素と一体形成されるかによって連結してよい。
【０１０９】
本発明をその好適な実施形態および具体的な実例に関連して説明してきたが、通常の技能を備えた当業者であれば、他の実施形態および実例が類似の機能を果たすことができかつ/または類似の結果を達成できることは容易に理解できるはずである。従って、そうした均等の実施形態および実例は本発明の趣旨及び範囲に入り、これらによって考慮されており、次の特許請求の範囲に含まれることが意図されている。
【図１】
0006800416.tif 000002
【図２】
0006800416.tif 000003
【図３】
0006800416.tif 000004
【図４】
0006800416.tif 000005
【図５】
0006800416.tif 000006
【図６】
0006800416.tif 000007
【図７】
0006800416.tif 000008
【図８】
0006800416.tif 000009
【図９】
0006800416.tif 000010
【図１０】
0006800416.tif 000011
【図１１】
0006800416.tif 000012
【図１２】
0006800416.tif 000013