(57)【特許請求の範囲】
【請求項１】
可動式ロボット（１００）であって、
順駆動方向（Ｆ）を有する駆動システム（２００）と、
前記駆動システム（２００）と通信しているコントローラ（５００）と、
前記駆動システム（２００）の上方に支持され、かつ前記可動式ロボット（１００）の移動方向の床面を含む空間体積から点群を取得することができるように下向きに方向付けられる、体積点群撮像デバイス（４５０）と、
水平面上にある物体を検出するための上向き視界を有する近接センサ（４１０）と、を備え、
前記コントローラ（５００）は、前記撮像デバイス（４５０）から点群信号と、前記近接センサ（４１０）から検出信号とを受信し、少なくとも部分的に前記受信した点群信号および検出信号に基づき、前記駆動システム（２００）に駆動コマンドを発行し、
前記撮像デバイス（４５０）は、前記近接センサ（４１０）の上向き視界よりも上方の、前記可動式ロボット（１００）の垂直方向位置に設けられ、
前記撮像デバイス（４５０）の視界と前記近接センサ（４１０）の上向き視界とは、前記可動式ロボット（１００）の前方において交差する、可動式ロボット（１００）。
【請求項２】
前記近接センサ（４１０）のアレイを備え、この近接センサ（４１０）のアレイは、前記可動式ロボット（１００）の基部（１２０）の周囲に配置され、かつ上向き視界を伴って配設される、請求項１に記載の可動式ロボット（１００）。
【請求項３】
前記近接センサ（４１０）のアレイは、前記可動式ロボット（１００）の周囲に検出カーテン（４１２）を生じさせ、この検出カーテン（４１２）は、横方向突出部分を有する障害物を検出する、請求項２に記載の可動式ロボット（１００）。
【請求項４】
前記近接センサ（４１０）は、物体としてのテーブル上部を見る能力を提供する、請求項１〜３のいずれかに記載の可動式ロボット（１００）。
【請求項５】
前記コントローラ（５００）は、前記近接センサ（４１０）からの検出信号に基づき、前記可動式ロボット（１００）の速度または進行方向を変更させるように、前記駆動システム（２００）に駆動コマンドを発行する、請求項１〜４のいずれかに記載の可動式ロボット（１００）。
【請求項６】
前記コントローラ（５００）は、近隣の壁による前記近接センサ（４１０）からの検出信号に基づき、前記可動式ロボット（１００）を減速させるように、前記駆動システム（２００）に駆動コマンドを発行する、請求項５に記載の可動式ロボット（１００）。
【請求項７】
前記可動式ロボット（１００）の速度設定を調節するように構成された速度挙動（６００ｃ）を更に備え、この速度挙動（６００ｃ）は、前記近接センサ（４１０）をポーリングするように構成されている、請求項１〜６のいずれかに記載の可動式ロボット（１００）。
【請求項８】
前記体積点群撮像デバイス（４５０）によって検出不可能な空間体積（４５３）内の物体（１２）を検出するように配設される検出界（４９２、２１９２）を有する、死角センサ（４９０、２１９０）を更に備える、請求項１〜７のいずれかに記載の可動式ロボット（１００）。
【請求項９】
前記死角センサ（４９０、２１９０）は、体積点群撮像デバイス（４５０）、ソナーセンサ、カメラ、超音波センサ、ＬＩＤＡＲ、ＬＡＤＡＲ、光学センサ、および赤外線センサのうちの少なくとも１つを備える、請求項８に記載の可動式ロボット（１００）。
【請求項１０】
前記死角センサ（４９０、２１９０）の前記検出界（４９２、２１９２）は、前記体積点群撮像デバイス（４５０）によって検出不可能な空間体積（４５３）を包囲する、請求項８又は９に記載の可動式ロボット（１００）。
【請求項１１】
前記体積点群撮像デバイス（４５０）によって検出不可能な前記空間体積（４５３）は、第１の角度（α）、第２の角度（β）、および半径（ＲS）である５７°×４５°×５０ｃｍによって画定される、請求項１０に記載の可動式ロボット（１００）。
【請求項１２】
前記死角センサ（４９０）の前記検出界（４９２）は、前記体積点群撮像デバイス（４５０）と前記体積点群撮像デバイス（４５０）の検出界（４５７）との間に配設される、請求項８〜１１のいずれかに記載の可動式ロボット（１００）。
【請求項１３】
前記死角センサ（２１９０）は、前記死角センサ（２１９０）から外向きに少なくとも３メートル延在する視界（２１９２）を有する、請求項８〜１２のいずれかに記載の可動式ロボット（１００）。
【請求項１４】
前記体積点群撮像デバイス（４５０）によって検出不可能な前記空間体積（４５３）内の物体（１２）を検出するように配設される検出界（４９２、２１９２）を有する少なくとも１つの死角センサ（４９０、２１９０）を含む死角センサ（４９０、２１９０）のアレイをさらに備え、死角センサ（４９０）の前記アレイは、それらの視界（４９２、２１９２）が、前記順駆動方向（Ｆ）に沿った状態で、または前記ロボット（１００）によって画定される垂直中心軸（Ｚ）を中心に均等に分配された状態で配設される、請求項８〜１３のいずれかに記載の可動式ロボット（１００）。
【請求項１５】
前記撮像デバイス（４５０）は、第１および第２の部分（４５０ａ、４５０ｂ）を備え、
前記第１の部分（４５０ａ）は、実質的に地面上に光を放射し、前記地面から前記放射光の反射を受けとるように配設され、
前記第２の部分（４５０ｂ）は、前記地面の実質的に上方の情景（１０）内に光を放射し、前記ロボット（１００）の周囲の前記情景（１０）から前記放射光の反射を受けとるように配設される、請求項１〜１４のいずれかに記載の可動式ロボット（１００）。
【請求項１６】
可動式ロボット（１００）のための物体検出の方法であって、
下向きに方向付けられた撮像センサ（４５０）を、前記ロボット（１００）の垂直軸（Ｚ）を中心に回転させるステップを含み、前記撮像センサ（４５０）は、前記ロボット（１００）の周囲の情景（１０）に光を放射し、前記情景（１０）の画像を捕捉し、前記画像は、（ａ）３次元深度画像、（ｂ）アクティブ照明画像、および（ｃ）周囲照明画像のうちの少なくとも１つを含み、
前記画像に基づき、前記情景（１０）内の物体（１２）の位置を判定するステップと、
前記物体位置に信頼レベルを割り当てるステップと、
前記物体位置および対応する信頼レベルに基づき、前記情景（１０）内で前記ロボット（１００）を機動させるステップと、
上向き視界を有する近接センサ（４１０）を使用して、水平面上にある物体を検出するステップと、
前記検出された物体に基づき、前記可動式ロボット（１００）の速度または進行方向を変更させるステップと、を更に含み、
前記撮像センサ（４５０）は、前記近接センサ（４１０）の上向き視界よりも上方の、前記可動式ロボット（１００）の垂直方向位置に設けられ、
前記撮像センサ（４５０）の視界と前記近接センサ（４１０）の上向き視界とは、前記可動式ロボット（１００）の前方において交差する、方法。
【請求項１７】
前記情景（１０）の物体占領マップ（１７００）を構築するステップをさらに含む、請求項１６に記載の方法。
【請求項１８】
それぞれの物体位置が新たに判定される物体位置で更新されるまで、前記各物体位置の前記信頼レベルを経時的に低下させることをさらに含む、請求項１６または１７に記載の方法。
【請求項１９】
前記撮像センサ（４５０）によって検出不可能な空間体積（４５３）内の物体（１２）を検出するように配設される検出界（４９２、２１９２）を有する死角センサ（４９０、２１９０）を使用して、前記撮像センサ（４５０）によって検出不可能な前記空間体積（４５３）内の物体（１２）を検出するステップと、
前記検出された物体（１２）の前記信頼レベルの低下を中止するステップと、をさらに含む、請求項１８に記載の方法。
【請求項２０】
前記撮像センサ（４５０）によって検出不可能な前記空間体積（４５３）にその物体（１２）がないことを検出すると、前記検出された物体（１２）の前記信頼レベルの低下を継続することをさらに含む、請求項１９に記載の方法。
【請求項２１】
前記ロボット（１００）を、少なくとも、
ａ）前記物体（１２）と接触させ、前記物体（１２）の周辺に沿って追従させるように、または
ｂ）前記物体（１２）を回避するように、
機動させることをさらに含む、請求項１６〜２０のいずれかに記載の方法。
【請求項２２】
間欠パルスの前記光を前記情景（１０）に放射し、この放射させる前記光のパルスの周波数を任意選択により変化させるステップであって、前記光を第１の省電力周波数で放射し、センサ事象を受信すると、前記光を第２のアクティブ周波数で放射し、前記センサ事象は、前記情景（１０）内の物体（１２）の存在を示すセンサ信号を含む、前記ステップをさらに含む、請求項１６〜２１のいずれかに記載の方法。
【請求項２３】
光のスペックルパターンを前記情景（１０）に放射するステップと、
前記情景（１０）内の前記物体（１２）から前記スペックルパターンの反射を受けとるステップと、
前記情景（１０）内の基準物体（１２）から反射される前記スペックルパターンの基準画像を記憶ステップであって、前記基準画像は、前記基準物体（１２）から様々な異なる距離（Ｚn）で捕捉される、前記ステップと、
前記情景（１０）内の標的物体（１２）から反射される前記スペックルパターンの少なくとも１つの標的画像を捕捉するステップと、
前記少なくとも１つの標的画像を前記基準画像と比較して、前記標的物体（１２）の前記反射面の距離（ΔＺ）を判定するステップと、
によって、前記情景（１０）の前記３次元深度画像を構築するステップをさらに含む、請求項１６〜２２のいずれかに記載の方法。
【請求項２４】
前記標的物体（１２）上の一次スペックルパターンを判定するステップと、前記一次スペックルパターンと前記基準画像の前記スペックルパターンとの間のそれぞれの相互相関および非相関のうちの少なくとも１つを演算するステップとをさらに含む、請求項２３に記載の方法。
【請求項２５】
約１０Ｈｚ〜約９０Ｈｚの或るフレーム速度で、前記標的物体（１２）の表面からの前記放射されたスペックルパターンの反射のフレームを捕捉するステップと、任意選択により、前記標的物体（１２）の識別のために、連続フレーム内に捕捉されるスペックルパターンの間の差を解決することをさらに含む、請求項２３または２４に記載の方法。
【請求項２６】
前記近接センサ（４１０）のアレイを備え、この近接センサ（４１０）のアレイは、前記可動式ロボット（１００）の基部（１２０）の周囲に配置され、かつ上向き視界を伴って配設される、請求項１７に記載の方法。
【請求項２７】
前記近接センサ（４１０）のアレイは、前記可動式ロボット（１００）の周囲に検出カーテン（４１２）を生じさせ、この検出カーテン（４１２）は、横方向突出部分を有する障害物を検出する、請求項２６に記載の方法。
【請求項２８】
前記近接センサ（４１０）は、物体としてのテーブル上部を見る能力を提供する、請求項２６または２７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
〔関連出願の相互参照〕
本米国特許出願は、２０１０年１２月３０日に出願された米国仮出願第６１／４２８，７１７号、２０１０年１２月３０日に出願された米国仮出願第６１／４２８，７３４号、２０１０年１２月３０日に出願された米国仮出願第６１／４２８，７５９号、２０１１年１月５日に出願された米国仮出願第６１／４２９，８６３号、２０１１年２月２２日に出願された米国仮出願第６１／４４５，４０８号、２０１１年２月２２日に出願された米国仮出願第６１／４４５，４７３号、および２０１１年４月２５日に出願された米国仮出願第６１／４７８，８４９号に対する米国特許法第１１９条（ｅ）の下の優先権、ならびに２０１１年２月２２日に出願された米国特許出願第１３／０３２，３１２号、および２０１１年２月２２日に出願された米国特許出願第１３／０３２，２２８号に対する米国特許法１２０条の下の優先権を主張する。これらの先願の開示は、本願の開示の一部であると見なされ、それらの全体が参照することによって本明細書に組み込まれる。
【０００２】
本開示は、可動式ヒューマンインターフェースロボットに関する。
【背景技術】
【０００３】
ロボットは、概して、コンピュータまたは電子プログラミングによって誘導される電気機械的機械である。可動式ロボットは、それらの環境内を動き回る能力を有し、１つの物理的位置に固定されていない。今日よく使用されている可動式ロボットの例は、無人搬送車両（ａｕｔｏｍａｔｅｄ  ｇｕｉｄｅｄ  ｖｅｈｉｃｌｅ）または自動誘導車両（ａｕｔｏｍａｔｉｃ  ｇｕｉｄｅｄ  ｖｅｈｉｃｌｅ：ＡＧＶ）である。ＡＧＶは、概して、床内のマーカーもしくはワイヤに追従する、またはナビゲーションに視覚システムもしくはレーザを使用する、可動式ロボットである。可動式ロボットは、産業、軍隊、およびセキュリティ環境において見ることができる。それらはまた、娯楽用または掃除機清掃および在宅支援のような特定の作業を実施する消費者製品としても登場している。
【発明の概要】
【０００４】
本開示の一態様は、順駆動方向を有する駆動システムと、駆動システムと通信しているコントローラと、駆動システムの上方に支持され、かつ可動式ロボットの移動方向の床面を含む空間体積から点群を取得することができるように方向付けられる、体積点群撮像デバイスとを含む、可動式ロボットを提供する。死角センサは、体積点群撮像デバイスによって検出不可能な空間体積内の物体を検出するように配設される、検出界を有する。コントローラは、撮像デバイスからの点群信号と、死角センサからの検出信号とを受信し、少なくとも一部において受信した点群および検出信号に基づき、駆動システムに駆動コマンドを発行する。
【０００５】
本開示の実現形態は、以下の特徴のうちの１つ以上を含み得る。いくつかの実現形態では、死角センサは、体積点群撮像デバイス、ソナーセンサ、カメラ、超音波センサ、ＬＩＤＡＲ、ＬＡＤＡＲ、光学センサ、および赤外線センサのうちの少なくとも１つを含む。
死角センサの検出界は、体積点群撮像デバイスによって検出不可能な空間体積（すなわち、死角）を包囲し得る。いくつかの実施例では、体積点群撮像デバイスによって検出不可能な空間体積は、第１の角度、第２の角度、および半径によって画定される（例えば、５７°×４５°×５０ｃｍ）。死角センサの検出界は、体積点群撮像デバイスと体積点群撮像デバイスの検出界との間に配設されてもよい。いくつかの実施例では、死角センサは、死角センサから外向きに少なくとも３メートル延在する視界を有する。この例では、死角センサは、経路計画および障害物回避のために、死角内の比較的短い距離用、および比較的遠い物体を検出するための長距離センサとしての二重目的であることができる。
【０００６】
いくつかの実現形態では、ロボットは、少なくとも１つの死角センサが、体積点群撮像デバイスによって検出不可能な空間体積内の物体を検出するように配設される、その検出界を有する、死角センサのアレイを含む。死角センサのアレイは、それらの視界が、順駆動方向に沿った状態で、またはロボットによって画定される垂直中心軸を中心に均等に分配された状態で配設されてもよい。
【０００７】
いくつかの実施例では、撮像デバイスは、ロボットの周囲の情景に光を放射し、ロボットの駆動方向に沿った情景の画像を捕捉する。画像は、（ａ）３次元深度画像、（ｂ）アクティブ照明画像、および（ｃ）周囲照明画像のうちの少なくとも１つを含む。コントローラは、画像に基づき、情景内の物体の位置を判定し、物体位置に基づき、情景内でロボットを機動させるように、駆動システムに駆動コマンドを発行する。撮像デバイスは、光の放射と情景からの反射光の受信との間の飛行時間を判定してもよい。コントローラは、物体の反射面までの距離を判定するために、飛行時間を使用する。
【０００８】
いくつかの実現形態では、撮像デバイスは、情景に光を放射するための光源と、情景から放射光の反射を受けるための撮像部とを含む。光源は、間欠パルスの光を、例えば、第１の省電力周波数で放射してもよく、センサ事象を受信すると、光パルスを第２のアクティブ周波数で放射する。センサ事象は、情景内の物体の存在を示すセンサ信号を含んでもよい。撮像部は、光検出ピクセルのアレイを含んでもよい。
【０００９】
撮像デバイスは、第１および第２の部分（例えば、１つのセンサの部分、または第１および第２の撮像センサ）を含んでもよい。第１の部分は、実質的に地面上に光を放射し、地面から放射光の反射を受けるように配設される。第２の部分は、実質的に地面の上方の情景内に光を放射し、ロボットの周囲の情景から放射光の反射を受けるように配設される。
【００１０】
いくつかの実現形態では、撮像デバイスは、光のスペックルパターンをロボットの駆動方向に沿った情景に放射する、スペックル放射部と、情景内の物体からスペックルパターンの反射を受ける、撮像部とを含む。コントローラは、情景内の基準物体から反射されるスペックルパターンの基準画像を記憶する。基準画像は、基準物体から異なる距離で捕捉される。コントローラは、標的物体の反射面の距離を判定するために、情景内の標的物体から反射されるスペックルパターンの少なくとも１つの標的画像を基準画像と比較する。
場合によっては、コントローラは、標的物体上の一次スペックルパターンを判定し、一次スペックルパターンと基準画像のスペックルパターンとの間のそれぞれの相互相関および非相関のうちの少なくとも１つを演算する。
【００１１】
横方向視界を増加させるために、撮像センサは、順駆動方向に対して左右に走査してもよい。同様に、垂直視界を増加させるために、撮像センサは、上下に走査してもよい。
【００１２】
いくつかの実現形態では、コントローラは、駆動システムに駆動コマンドを発行するための受信後の閾値期間の後、受信した点群信号の使用を中止する。コントローラは、死角センサから受信した検出信号に基づき、体積点群撮像デバイスによって検出不可能な空間体積内の物体の存在を判定すると、受信した点群信号の使用の中止を一時中断してもよい。さらに、コントローラは、例えば、死角センサから受信した検出信号に基づき、体積点群撮像デバイスによって検出不可能な空間体積にいかなる物体もないと判定すると、受信後の閾値期間の後、受信した点群信号の使用の中止を継続してもよい。
【００１３】
本開示の別の態様は、基部と、基部によって支持され、垂直軸（Ｚ）を画定する、ホロノミック駆動システムとを含む、可動式ロボットを提供する。ホロノミック駆動システムは、情景の作業面上でロボットを機動させる。ロボットは、駆動システムと通信しているコントローラと、基部から上向きに延在する脚部と、脚部によって支持される胴部とを含む。胴部は、基部に対して垂直軸を中心に回転する。少なくとも１つの撮像センサ（例えば、体積点群撮像デバイス）が、胴部上に配置され、ロボットの周囲の情景の体積点群（例えば、３次元画像）を捕捉する。回転胴部は、垂直軸を中心に撮像センサを回動運動で移動させ、ロボットの周囲の最大で３６０°の視界を提供する。
【００１４】
いくつかの実現形態では、少なくとも１つの撮像センサは、駆動システムの順駆動方向に沿って下向きに照準を定めるように配設される、撮像軸を有する。少なくとも１つの撮像センサは、駆動システムの順駆動方向に沿って下向きに照準を定めるように配設される撮像軸を有する、第１の撮像センサと、作業面に対して平行に、またはその上方に胴部を離れるよう照準を定めるように配設される撮像軸を有する、第２の撮像センサとを含んでもよい。さらに、少なくとも１つの撮像センサは、撮像センサの横方向視界を増加させるように順駆動方向に対して左右に、および／またはその垂直視界を増加させるように上下に走査してもよい。
【００１５】
少なくとも１つの撮像センサは、光のスペックルパターンを情景に放射する、スペックル放射部と、情景内の物体からスペックルパターンの反射を受ける、撮像部とを含んでもよい。コントローラは、情景内の基準物体から反射されるスペックルパターンの基準画像を記憶する。基準画像は、基準物体から様々な異なる距離で捕捉される。コントローラは、標的物体の反射面の距離を判定するために、情景内の標的物体から反射されるスペックルパターンの少なくとも１つの標的画像を基準画像と比較する。撮像センサは、ロボットの駆動方向に沿った情景の画像を捕捉してもよい。画像は、（ａ）３次元深度画像、（ｂ）アクティブ照明画像、および（ｃ）周囲照明画像のうちの少なくとも１つを含む。
【００１６】
コントローラは、画像比較に基づき、情景内の物体の位置を判定し、物体位置に基づき、情景内でロボットを機動させるように、駆動システムに駆動コマンドを発行してもよい。いくつかの実施例では、コントローラは、標的物体上の一次スペックルパターンを判定し、一次スペックルパターンと基準画像のスペックルパターンとの間のそれぞれの相互相関および非相関のうちの少なくとも１つを演算する。
【００１７】
撮像センサは、作業面の上方の２フィート（約６１ｃｍ）を超える高さに位置付けられ、かつロボットの移動方向の床面を含む空間体積から点群を取得することができるように方向付けられる、体積点群撮像デバイスであってもよい。撮像センサは、少なくとも４５度の水平視界、および少なくとも４０度および／または約１メートル〜約５メートルの範囲の垂直視界を有してもよい。いくつかの実施例では、撮像センサは、約４４ｍｓの待ち時間を有し得、撮像センサの撮像出力は、待ち時間を補償するためにタイムスタンプを受けることができる。
【００１８】
いくつかの実現形態では、ロボットは、体積点群撮像デバイスによって検出不可能な空間体積内の物体を検出するように配設される検出界を有する、死角センサを含む。死角センサは、体積点群撮像デバイス、ソナーセンサ、カメラ、超音波センサ、ＬＩＤＡＲ、ＬＡＤＡＲ、光学センサ、および赤外線センサのうちの少なくとも１つを含んでもよい。死角センサの検出界は、体積点群撮像デバイスによって検出不可能な空間体積（すなわち、死角）を包囲し得る。いくつかの実施例では、体積点群撮像デバイスによって検出不可能な空間体積は、第１の角度、第２の角度、および半径によって画定される（例えば、５７°×４５°×５０ｃｍ）。死角センサの検出界は、体積点群撮像デバイスと体積点群撮像デバイスの検出界との間に配設され得る。いくつかの実施例では、死角センサは、死角センサから外向きに少なくとも３メートル延在する視界を有する。本実施例では、死角センサは、経路計画および障害物回避のために、死角内の比較的短い距離用、および比較的遠い物体を検出するための長距離センサとしての二重目的であることができる。
【００１９】
いくつかの実現形態では、ロボットは、少なくとも１つの死角センサが、体積点群撮像デバイスによって検出不可能な空間体積内の物体を検出するように配設される、その検出界を有する、死角センサのアレイを含む。死角センサのアレイは、それらの視界が、順駆動方向に沿った状態で、またはロボットによって画定される垂直中心軸を中心に均等に分配された状態で配設されてもよい。
【００２０】
いくつかの実現形態では、コントローラは、駆動システムに駆動コマンドを発行するために、閾値期間の後、受信した点群信号の使用を中止する。コントローラは、死角センサから受信した検出信号に基づき、撮像センサによって検出不可能な空間体積内の物体の存在を判定すると、受信した点群信号の使用の中止を一時中断してもよい。さらに、コントローラは、例えば、死角センサから受信した検出信号に基づき、撮像センサによって検出不可能な空間体積にいかなる物体もないと判定すると、閾値期間の後、受信した点群信号の使用の中止を継続してもよい。
【００２１】
胴部は、脚部に対して垂直軸を中心に回転してもよい、および／または脚部は、基部に対して垂直軸を中心に回転してもよい。いくつかの実施例では、脚部は、可変高さを有する。
【００２２】
さらに別の態様では、可動式ロボットのための物体検出の方法は、ロボットの垂直軸を中心に撮像センサを回転させることを含む。撮像センサは、ロボットの周囲の情景に光を放射し、情景の画像を捕捉する。画像は、（ａ）３次元深度画像、（ｂ）アクティブ照明画像、および（ｃ）周囲照明画像のうちの少なくとも１つを含む。本方法は、画像に基づき、情景内の物体の位置を判定することと、物体位置に信頼レベルを割り当てることと、物体位置および対応する信頼レベルに基づき、情景内でロボットを機動させることとをさらに含む。
【００２３】
いくつかの実現形態では、本方法は、情景の物体占領マップを構築することを含む。各物体位置の信頼レベルは、それぞれの物体位置が新たに判定される物体位置で更新されるまで、経時的に低下され得る。本方法は、ロボットを、ａ）物体と接触させ、物体の周辺に沿って追従させるように、またはｂ）物体を回避するように、のうちの少なくとも１つに機動させることを含んでもよい。
【００２４】
いくつかの実施例では、本方法は、撮像センサによって検出不可能な空間体積内の物体を検出するように配設される検出界を有する死角センサを使用すること等によって、撮像センサによって検出不可能な空間体積内の物体を検出し、検出された物体の信頼レベルの低下を中止することを含む。本方法は、撮像センサによって検出不可能な空間体積にその物体がないことを検出すると、検出された物体の信頼レベルの低下を継続することを含んでもよい。
【００２５】
本方法は、間欠パルスの光を、任意選択により放射光パルスの周波数を変化させて、情景に放射することを含んでもよい。光パルスは、第１の省電力周波数で放射され、センサ事象を受信すると、第２のアクティブ周波数で放射されてもよい。センサ事象は、情景内の物体の存在を示すセンサ信号を含んでもよい。
【００２６】
本方法は、光のスペックルパターンを情景に放射し、情景内の物体からスペックルパターンの反射を受け、情景内の基準物体から反射されるスペックルパターンの基準画像を記憶することによって、情景の３次元深度画像を構築することを含んでもよい。基準画像は、基準物体から様々な異なる距離で捕捉される。本方法は、情景内の標的物体から反射されるスペックルパターンの少なくとも１つの標的画像を捕捉することと、標的物体の反射面の距離を判定するために、少なくとも１つの標的画像を基準画像と比較することとをさらに含む。本方法は、標的物体上の一次スペックルパターンを判定することと、一次スペックルパターンと基準画像のスペックルパターンとの間のそれぞれの相互相関および非相関のうちの少なくとも１つを演算することとを含んでもよい。さらに、本方法は、標的物体の表面からの放射されたスペックルパターンの反射のフレームを、例えば、約１０Ｈｚ〜約９０Ｈｚのフレーム速度で捕捉することと、任意選択により、標的物体の識別のために、連続フレーム内に捕捉されるスペックルパターンの間の差を解決することとを含んでもよい。
【００２７】
本開示の１つ以上の実現形態の詳細は、添付の図面および以下の記載において説明される。他の態様、特徴、および利点は、記載および図面、ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【００２８】
【図１】例となる可動式ヒューマンインターフェースロボットの斜視図である。
【図２】例となる可動式ヒューマンインターフェースロボットの概略図である。
【図３】例となる可動式ヒューマンインターフェースロボットの立面斜視図である。
【図４Ａ】可動式ヒューマンインターフェースロボットの例となる基部の正面斜視図である。
【図４Ｂ】図４Ａに示される基部の背面斜視図である。
【図４Ｃ】図４Ａに示される基部の上面図である。
【図５Ａ】可動式ヒューマンインターフェースロボットの例となる基部の正面概略図である。
【図５Ｂ】可動式ヒューマンインターフェースロボットの例となる基部の上面概略図である。
【図６】可動式ヒューマンインターフェースロボットの例となる胴部の正面斜視図である。
【図７】可動式ヒューマンインターフェースロボットの例となる首部の正面斜視図である。
【図８Ａ】可動式ヒューマンインターフェースロボットの例となる回路の概略図である。
【図８Ｂ】可動式ヒューマンインターフェースロボットの例となる回路の概略図である。
【図８Ｃ】可動式ヒューマンインターフェースロボットの例となる回路の概略図である。
【図８Ｄ】可動式ヒューマンインターフェースロボットの例となる回路の概略図である。
【図８Ｅ】可動式ヒューマンインターフェースロボットの例となる回路の概略図である。
【図８Ｆ】可動式ヒューマンインターフェースロボットの例となる回路の概略図である。
【図８Ｇ】可動式ヒューマンインターフェースロボットの例となる回路の概略図である。
【図９】例となる可動式ヒューマンインターフェースロボットの概略図である。
【図１０Ａ】地面に向けられる複数のセンサを有する、例となる可動式ヒューマンインターフェースロボットの斜視図である。
【図１０Ｂ】地面に対して平行に向けられる複数のセンサを有する、例となる可動式ロボットの斜視図である。
【図１１】情景内の物体を感知する、例となる撮像センサの概略図である。
【図１２】撮像センサを動作させるための動作の例となる配設の概略図である。
【図１３】情景内の物体を感知する例となる３次元（３Ｄ）スペックルカメラの概略図である。
【図１４】３Ｄスペックルカメラを動作させるための動作の例となる配設の概略図である。
【図１５】情景内の物体を感知する例となる３Ｄ飛行時間（ＴＯＦ）カメラの概略図である。
【図１６】３Ｄ  ＴＯＦカメラを動作させるための動作の例となる配設の概略図である。
【図１７Ａ】例となる占領マップの概略図である。
【図１７Ｂ】作業領域内の情景の視界を有する、可動式ロボットの概略図である。
【図１８】撮像センサの死角の概略図である。
【図１９】順駆動方向に沿って下向きに向くように配設される第１の撮像センサと、地面の上方を外向きに向くように配設される第２の撮像センサとを有する、例となる可動式ロボットの斜視図である。
【図２０】その基部に対して回転する胴部を有する、例となる可動式ロボットの上面図である。
【図２１】例となる死角を有する撮像センサ、および死角を包囲する視界を有する死角センサの概略図である。
【図２２】撮像センサの死角内の物体を検出するように配設される死角センサを有する、例となる可動式ロボットの上面図である。
【図２３】死角センサのアレイを有する、例となる可動式ロボットの上面図である。
【図２４】ロボットの垂直軸の周囲に配設される長距離センサを有する、例となる可動式ロボットの上面図である。
【図２５】可動式ヒューマンインターフェースロボットのコントローラによって実行される、例となる制御システムの概略図である。
【図２６Ａ】可動式ヒューマンインターフェースロボットの静止している間の局所知覚空間の例となる概略図を提供する。
【図２６Ｂ】可動式ヒューマンインターフェースロボットの移動している間の局所知覚空間の例となる概略図を提供する。
【図２６Ｃ】可動式ヒューマンインターフェースロボットの静止している間の局所知覚空間の例となる概略図を提供する。
【図２６Ｄ】可動式ヒューマンインターフェースロボットの移動している間の局所知覚空間の例となる概略図を提供する。
【発明を実施するための形態】
【００２９】
様々な図面中の同様の参照記号は、同様の要素を指す。
可動式ロボットは、人と対話またはやりとりして、在宅支援から商業支援、およびその他に及ぶ多数のサービスを提供することができる。在宅支援の例では、可動式ロボットは、投薬計画の維持、移動支援、通信支援（例えば、テレビ会議、電話通信、インターネットアクセス等）、住居もしくは現場監視（屋内および／または屋外）、人監視、および／または個人用緊急対応システム（ＰＥＲＳ）の提供を含むが、これらに限定されない、高齢者の日常生活を支援することができる。商業支援では、可動式ロボットは、テレビ会議（例えば、病院状況における）、売り場専用端末、対話型情報／マーケティング端末等を提供することができる。
【００３０】
図１〜図２を参照すると、いくつかの実現形態では、可動式ロボット１００は、順駆動方向Ｆを画定するロボット本体１１０（またはシャーシ）を含む。また、ロボット１００は、それぞれがロボット本体１１０によって支持され、かつロボット１００の動作および移動を協調させるコントローラ５００と通信している、駆動システム２００と、インターフェースモジュール３００と、センサシステム４００とも含む。電源１０５（例えば、バッテリ（単数または複数））は、ロボット本体１１０によって運搬され、これらの構成要素のそれぞれと電気通信し、必要に応じてそれらに電力を送達することができる。例えば、コントローラ５００は、１０００ＭＩＰＳ（１００万命令／秒）超の能力があるコンピュータを含み得、電源１０５８は、３時間より長くコンピュータに電力を供給するのに十分なバッテリを提供する。
【００３１】
示される実施例では、ロボット本体１１０は、基部１２０と、基部１２０から上向きに延在する少なくとも１つの脚部１３０と、少なくとも１つの脚部１３０によって支持される胴部１４０とを含む。基部１２０は、駆動システム２００の少なくとも部分を支持してもよい。また、ロボット本体１１０は、胴部１４０によって支持される首部１５０も含む。首部１５０は頭部１６０を支持し、頭部１６０はインターフェースモジュール３００の少なくとも一部分を支持する。基部１２０は、機械的安定性を維持するために、基部１２０の低重心ＣＧBおよびロボット１００の低全体重心ＣＧRを維持するのに十分な重りを含む（例えば、電源１０５（バッテリ）を支持することによって）。
【００３２】
図３および図４Ａ〜図４Ｃを参照すると、いくつかの実現形態では、基部１２０は、三角対称形状（例えば、上面図で三角形状）を画定する。例えば、基部１２０は、三角形状の基部１２０（例えば、図４Ａ参照）の各脚部に対応する第１、第２、および第３の基部本体部分１２４ａ、１２４ｂ、１２４ｃを有する基部本体１２４を支持する、基部シャーシ１２２を含んでもよい。各基部本体部分１２４ａ、１２４ｂ、１２４ｃは、物体と接触するのに応えて、基部シャーシ１２２に対して独立して移動することができるように、基部シャーシ１２２によって移動可能に支持することができる。基部１２０の三角対称形状は、ロボット１００の周囲３６０°のぶつかり検出を可能にする。各基部本体部分１２４ａ、１２４ｂ、１２４ｃは、基部シャーシ１２２に対する対応する基部本体部分１２４ａ、１２４ｂ、１２４ｃの移動を検出する、関連接触センサ（例えば、容量センサ、リードスイッチ等）を有することができる。
【００３３】
いくつかの実現形態では、駆動システム２００は、ロボット１００の全方向性および／またはホロノミック運動制御を提供する。本明細書で使用される場合、「全方向性」という用語は、実質的に任意の平面方向に移動する能力、すなわち、左右（横方向）、前／後、および回転移動する能力を指す。これらの方向は、本明細書では、概して、それぞれｘ、ｙ、およびθｚとして参照される。さらに、「ホロノミック」という用語は、文献における用語の使用と実質的に一致し、３つの平面自由度を伴う、平面方向に移動する能力、すなわち、２つの平行移動および１つの回転を指す。したがって、ホロノミックロボットは、３つの平面速度（前／後、横方向、および回転）の実質的に任意の比率で構成される速度で平面方向に移動する能力、ならびに３つの比率を実質的に継続的に変化させる能力を有する。
【００３４】
ロボット１００は、車輪可動性を使用して、人間環境（例えば、典型的に二足歩行の歩行居住者向けに設計された環境）内で動作することができる。いくつかの実現形態では、駆動システム２００は、垂直軸Ｚを中心に均等に離間した（例えば、１２０度離れている）第１、第２、および第３の駆動車輪２１０ａ、２１０ｂ、２１０ｃ（すなわち、三角対称）を含むが、しかしながら、４車輪ホロノミック駆動システムのような他の配設も同様に可能である。図５Ａおよび図５Ｂを参照すると、駆動車輪２１０ａ、２１０ｂ、２１０ｃは、ホロノミック駆動システム２００の機動性を助長し得る、横方向に弓状の転がり表面（すなわち、転がり方向ＤRを横断する、またはそれに対して直角な方向に湾曲した輪郭）を画定してもよい。各駆動車輪２１０ａ、２１０ｂ、２１０ｃは、駆動車輪２１０ａ、２１０ｂ、２１０ｃを他の駆動モータ２２０ａ、２２０ｂ、２２０ｃから独立して順および／または逆方向に駆動することができる、それぞれの駆動モータ２２０ａ、２２０ｂ、２２０ｃに連結される。各駆動モータ２２０ａ〜ｃは、コントローラ５００に車輪回転フィードバックを提供する、それぞれのエンコーダ２１２（図８Ｃ）を有することができる。いくつかの実施例では、各駆動車輪２１０ａ、２１０ｂ、２１０ｃは、正三角形の３つの点のうちの１つ上またはその付近に搭載され、それぞれの三角形端部の角の二等分線に対して直角な駆動方向（順および逆方向）を有する。順駆動方向Ｆを伴う三角対称ホロノミック基部１２０の駆動は、閉じ込めまたは散乱物から自律的に脱出し、脱出が解決された後に順駆動方向Ｆに沿って駆動するように次いで回転および／または平行移動するために、ロボット１００が非順駆動方向に移行することを可能にする。
【００３５】
図３〜図５Ｂに示される実施例では、第１の駆動車輪２１０ａは、順駆動方向Ｆに沿った先端駆動車輪として配設され、残りの２つの駆動車輪２１０ｂ、２１０ｃは、後方から追従する。この配設では、前進するために、コントローラ５００は、第１の駆動車輪２１０ａを順駆動方向Ｆに沿って滑らせる一方で、第２および第３の駆動車輪２１０ｂ、２１０ｃを同等の速度で順転方向に駆動させる、駆動コマンドを発行してもよい。さらに、この駆動車輪配設は、ロボット１００が急停止する（例えば、順駆動方向Ｆに対する急激な負の加速を発生させる）ことを可能にする。これは、３車輪設計の自然な動的不安定性によるものである。順駆動方向Ｆが２つの順駆動車輪の間の角の二等分線に沿ったものである場合、急停止は、ロボット１００を転倒させ得るトルクを生じさせ、その２つの「前」車輪の上で枢動させる。代わりに、１つの駆動車輪２１０ａを用いた前方への移動は、急速停止する必要がある場合に、必然的に、ロボット１００が前方に倒れることから支持する、またはそれを防止する。しかしながら、停止から加速する際、コントローラ５００は、ロボット１００のその全体重心ＣＧRからの慣性モーメントＩを考慮してもよい。
【００３６】
駆動システム２００のいくつかの実現形態では、各駆動車輪２１０ａ、２１０ｂ、２１０は、ロボット１００のＸおよびＹ軸に直交する垂直軸Ｚと半径方向に整合される転がり方向ＤRを有する。第１の駆動車輪２１０ａは、順駆動方向Ｆに沿った先端駆動車輪として配設することができ、残りの２つの駆動車輪２１０ｂ、２１０ｃは、後方に追従する。
この配設では、前進させるために、コントローラ５００は、第１の駆動車輪２１０ａを順転方向に駆動させ、第２および第３の駆動車輪２１０ｂ、２１０ｃを第１の駆動車輪２１０ａと同等の速度で逆方向に駆動させる、駆動コマンドを発行してもよい。
【００３７】
他の実現形態では、駆動システム２００は、２つの駆動車輪２１０ａ、２１０ｂの間の角度の角の二等分線が、ロボット１００の順駆動方向Ｆと整合されるように位置付けられる、第１および第２の駆動車輪２１０ａ、２１０ｂを有するように配設することができる。この配設では、前進させるために、コントローラ５００は、第１および第２の駆動車輪２１０ａ、２１０ｂを順転方向に同等の速度で駆動させ、一方、第３の駆動車輪２１０ｃを逆方向に駆動させる、または空転状態に保ち、第１および第２の駆動車輪２１０ａ、２１０ｂの後方に引きずられさせる、駆動コマンドを発行してもよい。前進しながら左または右に曲がるために、コントローラ５００は、対応する第１または第２の駆動車輪２１０ａ、２１０ｂを相対的により速い／より遅い速度で駆動させるコマンドを発行してもよい。他の駆動システム２００の配設も同様に使用することができる。駆動車輪２１０ａ、２１０ｂ、２１０ｃは、円筒形、円形、楕円形、または多角形の輪郭を画定してもよい。
【００３８】
再び図１〜図３を参照すると、基部１２０は、基部１２０からＺ方向に上向きに延在する、少なくとも１つの脚部１３０を支持する。脚部（単数または複数）１３０は、基部１２０に対して胴部１４０を上昇および降下させるために、可変高さを有するように構成されてもよい。いくつかの実現形態では、各脚部１３０は、相互に対して移動する（例えば、入れ子状伸縮、線形、および／または角移動）、第１および第２の脚部分１３２、１３４を含む。示される実施例では、第２の脚部分１３４は、相互の中および外へ、ならびに相対的により大きい基部押出部の外へ入れ子状に伸縮移動する、連続的により小さい直径の押出部を有するというよりはむしろ、第１の脚部分１３２の上に入れ子状に伸縮移動し、したがって、第２の脚部分１３４に沿って他の構成要素を定置すること、および潜在的に、第２の脚部分１３４と共に基部１２０の相対的近接に移動させることを可能にする。
脚部１３０は、第１の脚部分１３２に対して第２の脚部分１３４を移動させるためのアクチュエータアセンブリ１３６（図８Ｃ）を含んでもよい。アクチュエータアセンブリ１３６は、コントローラ５００に位置フィードバックを提供する、リフトモータ１３８ｂおよびエンコーダ１３８ｃと通信している、モータドライバ１３８ａを含んでもよい。
【００３９】
一般的に、入れ子状伸縮配設は、脚部１３０全体の重心ＣＧLを可能な限り低く保つために、基部１２０に、相対的により大きい押出部の外へ上に入れ子状に伸縮移動する、連続的により小さい直径の押出部を含む。さらに、脚部１３０が完全に延在される際に基部１２０が受ける、より大きいトルクに対処するために、より頑丈な、および／またはより大きい構成要素を底部に定置することができる。しかしながら、この手法は、２つの問題を提示する。第一に、相対的により小さい構成要素が脚部１３０の上部に定置される際、いずれの雨、粉塵、または他の微粒子も、押出部を流れる、または転がり落ちる傾向があり、押出部の間の空間に入り込み、したがって押出部の入れ子を詰まらせる。これは、依然として脚部１３０の完全な可動性／関節運動を維持することを試みる一方での、非常に困難な封止問題をもたらす。第二に、ロボット１００上に搭載物またはアクセサリを搭載することが望まれる場合がある。アクセサリを搭載する１つの一般的な場所は、胴部１４０の上部である。第２の脚部分１３４が第１の脚部分の外に入れ子状に伸縮移動する場合、アクセサリおよび構成要素は、それらが胴部１４０と共に移動する必要がある場合、第２の脚部分１３４全体の上方にしか搭載することができない。そうでなければ、第２の脚部分１３４上に搭載されるいずれの構成要素も、脚部１３０の入れ子状伸縮移動を制限することとなる。
【００４０】
第２の脚部分１３４を第１の脚部分１３２上で入れ子状に伸縮移動させることによって、第２の脚部分１３４は、基部１２０に対して垂直に移動することができる、追加の搭載物取り付け点を提供する。このタイプの配設は、水または浮遊微粒子が、脚部分１３２と脚部分１３４との間の空間に入ることなく、胴部１４０のそれぞれの脚部分１３２、１３４（例えば、押出部）の外側上を流れ落ちるようにする。これは、脚部１３０のいずれの接合部も封止することを大いに簡単にする。さらに、胴部１４０および／または第２の脚部分１３４の搭載物／アクセサリ搭載特徴は、脚部１３０がどれくらい延在されているかに関わらず、常に露出され、利用可能である。
【００４１】
図３および図６を参照すると、脚部（単数または複数）１３０は、基部１２０の上および上方に延在する、段部１４２を有してもよい、胴部１４０を支持する。示される実施例では、胴部１４０は、段部１４２の少なくとも一部を形成する、下を向く表面または底面１４４（例えば、基部を向く）と、反対の上を向く表面または上面１４６とを有し、その間に延在する側面１４８を伴う。胴部１４０は、脚部（単数または複数）１３０によって支持される中心部分１４１と、脚部（単数または複数）１３０の範囲を横方向に越えて横方向に延在する周辺遊離部分１４３とを有する、円形状もしくは楕円形状等の様々な形状または幾何学的形状を画定してもよく、このようにして、下を向く表面１４４を画定する張り出し部分を提供する。いくつかの実施例では、胴部１４０は、基部１２０上に脚部（単数または複数）１３０を越えて延在する張り出し部分を提供する、段部を画定する、多角形または他の複雑な形状を画定する。
【００４２】
ロボット１００は、搭載物を受容するために、１つ以上のアクセサリポート１７０（例えば、機械的および／または電気的相互接続点）を含んでもよい。アクセサリポート１７０は、受容される搭載物が、センサシステム４００のセンサ（例えば、胴部１４０の底面１４４および／または上面１４６上等の）を塞がない、または遮らないように、位置することができる。いくつかの実現形態では、図６に示されるように、胴部１４０は、例えば、バスケット３６０内に搭載物を受容して、胴部１４０の前方部分１４７またはロボット本体１１０の他の部分上のセンサを遮らないように、胴部１４０の後方部分１４９上に、１つ以上のアクセサリポート１７０を含む。
【００４３】
再び図１〜図３、および図７を参照すると、胴部１４０は、胴部１４０に対する頭部１６０の回動および傾斜を提供する、首部１５０を支持する。示される実施例では、首部１５０は、回転部１５２と、傾斜部１５４とを含む。回転部１５２は、約９０°〜約３６０°の、ある範囲の角移動θR（例えば、Ｚ軸を中心とした）を提供してもよい。他の範囲も同様に可能である。さらに、いくつかの実施例では、回転部１５２は、頭部１６０とロボット１００の残りの部分との間の電気的通信を維持した状態で、無限回数の回転の、胴部１４０に対する頭部１６０の連続する３６０°の回転を可能にする、電気的コネクタまたは接触を含む。傾斜部１５４は、頭部１６０とロボット１００の残りの部分との間の電気的通信を維持した状態で、胴部１４０に対する頭部１６０の回転を可能にする、同一もしくは同様の電気的コネクタまたは接触を含んでもよい。回転部１５２は、リング１５３（例えば、歯状リングラック）に連結される、またはそれと嵌合する、回転部モータ１５２ｍを含んでもよい。傾斜部１５４は、回転部１５２から独立して、頭部を胴部１４０に対して角度θTに移動させてもよい（例えば、Ｙ軸を中心に）。いくつかの実施例では、傾斜部１５４は、頭部１６０をＺ軸に対して±９０°の角度θTに移動させる、傾斜部モータ１５５を含む。±４５°等の他の範囲も同様に可能である。ロボット１００は、脚部（単数または複数）１３０、胴部１４０、首部１５０、および頭部１６０が、ロボット１００の安定した可動性を維持するために、基部１２０の周辺内に留まるように構成されてもよい。図８Ｆに示される例となる回路図では、首部１５０は、回転部１５２および傾斜部１５４を、対応するモータドライバ１５６ａ、１５６ｂ、およびエンコーダ１５８ａ、１５８ｂと共に含む、回動−傾斜アセンブリ１５１を含む。
【００４４】
図８Ａ〜図８Ｇは、ロボット１００の例となる回路図を提供する。図８Ａ〜図８Ｃは、ソナー近接センサ４１０および段差近接センサ４２０等の近接センサと、接触センサ４３０と、レーザスキャナ４４０と、ソナースキャナ４６０と、駆動システム２００とを収容してもよい、基部１２０の例となる回路図を提供する。また、基部１２０は、コントローラ５００と、電源１０５と、脚部アクチュエータアセンブリ１３６とも収容してもよい。
胴部１４０は、マイクロコントローラ１４５と、マイクロフォン（単数または複数）３３０と、スピーカ（単数または複数）３４０と、撮像センサ４５０（走査３−Ｄ画像センサ４５０ａ等）と、コントローラ５００がユーザの接触またはタッチを受信し、それに応答する（例えば、胴部１４０を基部１２０に対して移動させる、首部１５０を回動およびもしくは傾斜させる、ならびに／またはこれらに応えて駆動システム２００にコマンドを発行することによって）ことを可能にする、胴部タッチセンサシステム４８０とを収容してもよい。首部１５０は、対応するモータドライバ１５６ａおよびエンコーダ１５８ａを有する回動モータ１５２と、対応するモータドライバ１５６ｂおよびエンコーダ１５８ｂを有する傾斜モータ１５４とを含んでもよい、回動−傾斜アセンブリ１５１を収容してもよい。頭部１６０は、１つ以上のウェブパッド３１０（例えば、ロボット１００と通信している遠隔コンピューティングデバイスであってもよい）と、カメラ３２０とを収容してもよい。
【００４５】
ウェブパッド３１０は、遠隔ユーザがロボット１００の周囲の環境または情景１０を可視化し、ロボット１００を遠隔制御することを可能にする、ソフトウェアアプリケーション（例えば、タブレットベースのＵＩコンポーネント／アプリケーション）を実行してもよい。ソフトウェアアプリケーションは、ウェブパッド３１０にＡｐｐｌｅ  ｉＰａｄ２および／またはＭｏｔｏｒｏｌａ  Ｘｏｏｍ等のハードウェアを、および撮像センサ４５０にＰｒｉｍｅＳｅｎｓｏｒカメラ（ＰｒｉｍｅＳｅｎｓｅ，  ２８  Ｈａｂａｒｚｅｌ  Ｓｔ．，  ４ｔｈ  ｆｌｏｏｒ，  Ｔｅｌ−Ａｖｉｖ，  ６９７１０，  Ｉｓｒａｅｌから入手可能）を、または任意の他の好適なハードウェアを使用してもよい。ソフトウェアアプリケーションは、Ａｐｐｌｅ  ｉＯＳ４．ｘ、Ａｎｄｒｏｉｄ３．０（別名Ｈｏｎｅｙｃｏｍｂ）、ＯｐｅｎＧＬ  ＥＳ２．０．、または任意の他の好適なオペレーティングシステムもしくはプログラムを使用してもよい。
【００４６】
図１〜図４Ｃおよび図９を参照すると、信頼性があり、かつ強固な自律的移動を達成するために、センサシステム４００は、ロボット１００が、その環境内でとる動作についての知性的決定を行うことを可能にするのに十分なロボットの環境の知覚を生じさせるように、相互と併用して使用することができる、いくつかの異なるタイプのセンサを含んでもよい。センサシステム４００は、ロボット本体１１０によって支持される、障害物検出障害物回避（ＯＤＯＡ）センサ、通信センサ、ナビゲーションセンサ等を含んでもよい、１つ以上のタイプのセンサを含んでもよい。例えば、これらのセンサには、近接センサ、接触センサ、３次元（３Ｄ）撮像／深度マップセンサ、カメラ（例えば、可視光および／または赤外線カメラ）、ソナー、レーダ、ＬＩＤＡＲ（Ｌｉｇｈｔ  Ｄｅｔｅｃｔｉｏｎ  Ａｎｄ  Ｒａｎｇｉｎｇ、離れた標的の距離および／または他の情報を発見するために、散乱光の特性を計測する、光学遠隔感知を必要とする可能性がある）、ＬＡＤＡＲ（Ｌａｓｅｒ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｒａｎｇｉｎｇ）等が挙げられるが、これらに限定されない。いくつかの実現形態では、センサシステム４００は、測距ソナーセンサ４１０（例えば、基部１２０の周辺に９つ）と、近接段差検出器４２０と、接触センサ４３０と、レーザスキャナ４４０と、１つ以上の３−Ｄ撮像／深度センサ４５０と、撮像ソナー４５０とを含む。
【００４７】
センサをロボットの基本骨格上に定置することに伴う、いくつかの課題が存在する。第一に、センサは、それらがロボット１００の周囲の最大対応範囲関心領域を有するように定置する必要がある。第二に、センサは、ロボット１００自体がセンサを絶対的に最小限しか塞がないように定置しなければならない場合がある、本質的に、センサを、それらがロボット自体によって「覆い隠される」ように定置することはできない。第三に、センサの定置および搭載は、基本骨格の工業設計の残りの部分に対して邪魔にならないべきである。審美性の観点から、センサが目立たないように搭載されたロボットは、そうではないものより「魅力的である」と見なすことができる。実用性の観点から、センサは、通常のロボット動作を妨げない（障害物上に引っかかる等）ように搭載されるべきである。
【００４８】
いくつかの実現形態では、センサシステム４００は、コントローラ５００と通信しており、かついずれの近くの、または侵入する障害物も検出するために、ロボット１００の１つ以上の域または部分内に配設される（例えば、ロボット本体１１０の基部本体部分１２４ａ、１２４ｂ、１２４ｃ上またはその付近に配置される）、一式の近接センサ４１０、４２０またはそのアレイを含む。近接センサ４１０、４２０は、物体がロボット１００の所与の範囲内にある際に、コントローラ５００に信号を提供する、収束赤外線（ＩＲ）放射部−センサ要素、ソナーセンサ、超音波センサ、および／または撮像センサ（例えば、３Ｄ深度マップ画像センサ）であってもよい。
【００４９】
図４Ａ〜図４Ｃに示される実施例では、ロボット１００は、基部本体１２０の周囲に配置され（例えば、実質的に等距離に）、かつ上向き視界を伴って配設される、ソナータイプの近接センサ４１０のアレイを含む。第１、第２、および第３のソナー近接センサ４１０ａ、４１０ｂ、４１０ｃは、第１の（前方）基部本体部分１２４ａ上またはその付近に配置され、第１の基部本体１２４ａの半径方向に最も外側の縁部１２５ａに、ソナー近接センサのうちの少なくとも１つを有する。第４、第５、および第６のソナー近接センサ４１０ｄ、４１０ｅ、４１０ｆは、第２の（右側）基部本体部分１２４ｂ上またはその付近に配置され、第２の基部本体１２４ｂの半径方向に最も外側の縁部１２５ｂの付近に、ソナー近接センサのうちの少なくとも１つを有する。第７、第８、および第９のソナー近接センサ４１０ｇ、４１０ｈ、４１０ｉは、第３の（右側）基部本体部分１２４ｃ上またはその付近に配置され、第３の基部本体１２４ｃの半径方向に最も外側の縁部１２５ｃの付近に、ソナー近接センサのうちの少なくとも１つを有する。この構成は、少なくとも３つの検出域を提供する。
【００５０】
いくつかの実施例では、基部本体１２０の周囲に配置される一式のソナー近接センサ４１０（例えば、４１０ａ〜４１０ｉ）は、上（例えば、実質的にＺ方向）を向くように配設され、任意選択により、Ｚ軸から離れるように外向きに角度付けられ、したがって、ロボット１００の周囲に検出カーテン４１２を生じさせる。各ソナー近接センサ４１０ａ〜４１０ｉは、ソナー放出を上向きに、または少なくともロボット本体１１０の他の部分に向かわないように（例えば、ロボット本体１１０のそれ自体に対する移動を検出しないように）誘導する、シュラウドまたは放出ガイド４１４を有してもよい。放出ガイド４１４は、シェルまたは半シェル形状を画定してもよい。示される実施例では、基部本体１２０は、脚部１３０を越えて横方向に延在し、ソナー近接センサ４１０（例えば、４１０ａ〜４１０ｉ）は、脚部１３０の周囲の基部本体１２０上に（例えば、実質的に基部本体１２０の周辺に沿って）配置される。さらに、上を向くソナー近接センサ４１０は、脚部１３０の周囲に連続する、または実質的に連続するソナー検出カーテン４１２を生じさせるように離間される。ソナー検出カーテン４１２は、テーブル上部、棚等の高くなった横方向突出部分を有する障害物を検出するために使用することができる。
【００５１】
上を見るソナー近接センサ４１０は、テーブル上部等の水平面内の近接にある物体を見る能力を提供する。これらの物体は、それらのアスペクト比のため、レーザスキャナ４４０または撮像センサ４５０等のセンサシステムの他のセンサによって見逃される場合があり、そのため、ロボット１００に問題をもたらす可能性がある。基部１２０の周辺の周囲に配設される、上を見るソナー近接センサ４１０は、これらのタイプの物体／障害物を見る、または検出するための手段を提供する。さらに、ソナー近接センサ４１０は、ロボット１００の胴部１４０または頭部１６０によって塞がれない、または遮られないように、基部周辺の最大幅点の周囲に、わずかに外向きに角度付けて定置することができ、したがって、ロボット１００自体の部分を感知することによる誤検出をもたらさない。いくつかの実現形態では、ソナー近接センサ４１０は、ソナー近接センサ４１０の視界の外側の胴部１４０の周囲の体積を残すように配設され（上向きかつ外向きに）、したがって、バスケット４６０等の搭載される搭載物またはアクセサリを自由に受容する。ソナー近接センサ４１０は、視覚的隠蔽を提供し、障害物上に引っかかる、またはそれに衝突する外部特徴をなくすために、基部本体１２４に引っ込めることができる。
【００５２】
センサシステム４００は、後退している間の障害物を検出するために、後ろ向き（例えば、順駆動方向Ｆと反対）に方向付けられる、１つ以上のソナー近接センサ４１０（例えば、後部近接センサ４１０ｊ）を含んでもよい。後部ソナー近接センサ４１０ｊは、そのソナー検出界４１２を方向付ける、放出ガイド４１４を含んでもよい。さらに、後部ソナー近接センサ４１０ｊは、ロボット１００と後部ソナー近接センサ４ｌ０ｊの視界内の検出される物体との間の距離を判定するよう測距するために使用することができる（例えば、「後退警報」として）。いくつかの実施例では、後部ソナー近接センサ４１０ｊは、筐体形態にいかなる視覚的または機能的不規則性ももたらさないように、基部本体１２０内に引っ込んで搭載される。
【００５３】
図３および図４Ｂを参照すると、いくつかの実現形態では、ロボット１００は、駆動車輪２１０ａ、２１０ｂ、２１０ｃが段差（例えば、階段）に遭遇する前に段差を検出することを可能にするように、駆動車輪２１０ａ、２１０ｂ、２１０ｃの付近または周囲に配設される、段差近接センサ４２０を含む。例えば、段差近接センサ４２０は、基部本体１２４ａ〜ｃの半径方向に最も外側の縁部１２５ａ〜ｃのそれぞれに、もしくはその付近に、またはその間の位置にあってもよい。場合によっては、段差感知は、床があることが予測されるべき位置で重なる放射および検出界、したがって検出域を有するように、相互に向かって角度付けられる赤外線放射部４２２および赤外線検出器４２４を使用する、赤外線（ＩＲ）近接または実距離感知を使用して実現される。ＩＲ近接感知は、比較的狭い視界を有する可能性があり、信頼性が表面アルベドに依存する場合があり、表面間で変化する距離精度を有する可能性がある。結果として、ロボット１００上の複数の点から段差を適切に検出するために、複数の別個のセンサをロボット１００の周辺の周囲に定置することができる。さらに、ＩＲ近接ベースのセンサは、典型的に、段差とロボット１００が敷居を登った直後等の安全事象とを区別することができない。
【００５４】
段差近接センサ４２０は、ロボット１００が一式の階段に遭遇する際等の床の低くなっている縁部に遭遇した際を検出することができる。コントローラ５００（制御システムを実行する）は、縁部が検出される際、ロボット１００にその移動方向を変化させる等の動作をとらせる挙動を実行してもよい。いくつかの実現形態では、センサシステム４００は、１つ以上の二次段差センサ（例えば、段差感知用および任意選択により他のタイプの感知用に構成される他のセンサ）を含む。段差検出近接センサ４２０は、段差の早期検出を提供するように、実際の段差と安全事象（敷居を乗り越える等）とを区別するためのデータを提供するように、およびそれらの視界が、ロボット本体１１０の少なくとも一部と、ロボット本体１１０から離れた領域とを含むように、外側低めに位置付けられるように配設することができる。いくつかの実現形態では、コントローラ５００は、支持作業面（例えば、床）の縁部、作業面の縁部を通り過ぎた距離の増加、および／またはロボット本体１１０と作業面との間の距離の増加を識別し、検出する、段差検出ルーチンを実行する。
本実現形態は、１）潜在的な段差の早期検出（未知の環境内でのより速い移動速度を可能にし得る）、２）段差事象が本当に安全ではないものであるか否か、または安全に横断すること（例えば、敷居を登って越える等）ができるものであるか否かを知るために、コントローラ５００が段差検出近接センサ４２０からの段差撮像情報を受信することによる、自律的可動性の信頼性の増加、３）段差の誤検出の低減（例えば、縁部検出対複数の狭い視界を伴う別個のＩＲ近接センサの使用による）を可能にする。冗長性のため、および距離感知カメラが特定のタイプの段差を確実に検出することができない状況を検出するために、「脱輪」センサとして配設される追加のセンサを使用することができる。
【００５５】
敷居および段検出は、ロボット１００が、登ることができる敷居を横断するか、または高過ぎる段を回避するかのいずれかを効率的に計画することを可能にする。これは、ロボット１００が安全に横断し得る、または横断し得ない、作業面上の無差別な物体についても同じであることができる。ロボット１００が、登ることができると判定する障害物または敷居について、それらの高さを知ることは、ロボット１００が、円滑さを最大限にし、突然の加速によるいかなる不安定性も最小限にするために、円滑な移行を可能にするのに必要であると考えられる場合に、適切に減速することを可能にする。いくつかの実現形態では、敷居および段検出は、幾何学的形状認識（例えば、敷居または電気ケーブル対靴下等の小塊とを判別する）に加えて、作業面の上方の物体の高さに基づく。敷居は、縁部検出によって認識されてもよい。コントローラ５００は、段差検出近接センサ４２０（またはロボット１００上の別の撮像センサ）から撮像データを受信し、縁部検出ルーチンを実行し、縁部検出ルーチンの結果に基づき、駆動コマンドを発行してもよい。コントローラ５００は、物体を識別するために、パターン認識も同様に使用してもよい。敷居検出は、ロボット１００が、円滑に段を登る能力を最大限にするように、敷居に対するその配向を変化させることを可能にする。
【００５６】
近接センサ４１０、４２０は、単独で機能してもよく、または代替として、冗長性のために、１つ以上の接触センサ４３０（例えば、隆起スイッチ）との組み合わせで機能してもよい。例えば、ロボット本体１１０上の１つ以上の接触または隆起センサ４３０は、ロボット１００が障害物に物理的に遭遇したか否かを検出することができる。そのようなセンサは、障害物に遭遇した際を判定するために、ロボット１００内の静電容量または物理的移動等の物理的特性を使用してもよい。いくつかの実現形態では、基部１２０の各基部本体部分１２４ａ、１２４ｂ、１２４ｃは、基部シャーシ１２２（例えば、図４Ａ参照）に対する対応する基部本体部分１２４ａ、１２４ｂ、１２４ｃの移動を検出する、関連接触センサ４３０（例えば、容量センサ、リードスイッチ等）を有する。例えば、各基部本体１２４ａ〜ｃは、３方向ぶつかり検出を提供するために、基部シャーシ１２２のＺ軸に対して半径方向に移動してもよい。
【００５７】
図１〜図４Ｃ、図９、および図１０Ａを参照すると、いくつかの実現形態では、センサシステム４００は、ロボット本体１１０の前方部分上に搭載され、かつコントローラ５００と通信している、レーザスキャナ４４０を含む。示される実施例では、レーザスキャナ４４０は、第１の基部本体１２４ａ上またはその上方（例えば、ロボットの駆動方向Ｆに沿って最大撮像対応範囲を有するように）の前を向く基部本体１２０上に搭載される（例えば、順駆動方向Ｆに沿った視界を有する）。さらに、三角形の基部１２０の前先端上またはその付近へのレーザスキャナの定置は、ロボット基部の外角（例えば、３００度）が、レーザスキャナ４４０の視界４４２（例えば、約２８５度）より大きいことを意味し、したがって、基部１２０が、レーザスキャナ４４０の検出視界４４２を塞ぐ、または遮るのを防止する。レーザスキャナ４４０は、レーザスキャナのいずれかの部分が、基部本体１２４を通り越して突き出すのを最小限にするように（例えば、審美性のため、および障害物上に引っかかるのを最小限にするため）、その視界を塞ぐことなく、基部本体１２４内に可能な限り引っ込めて搭載することができる。
【００５８】
レーザスキャナ４４０は、ロボット１００の周囲領域を走査し、コントローラ５００は、レーザスキャナ４４０から受信される信号を使用して、走査した領域の環境マップまたは物体マップを作成する。コントローラ５００は、ナビゲーション、障害物検出、および障害物回避に、物体マップを使用してもよい。さらに、コントローラ５００は、物体マップを作成するため、および／またはナビゲーションのために、センサシステム４００の他のセンサからの感知入力を使用してもよい。
【００５９】
いくつかの実施例では、レーザスキャナ４４０は、「主」走査線として１次元内の領域を素早く走査するレーザと、線内の生成される各ピクセルに深度を割り当てるのに位相差または同様の技法を使用する飛行時間撮像要素とを使用し得る、走査ＬＩＤＡＲである（走査面内の２次元深度線を返す）。３次元マップを生成するために、ＬＩＤＡＲは、第２の方向に「補助」走査を実施することができる（例えば、スキャナを「上下させる」ことによって）。この機械的走査技法は、補われていない場合、ピクセルの完全２−Ｄマトリックスのための飛行時間計算を可能にして、各ピクセルの深度、またはさらには各ピクセルの一連の深度を提供するために（コード化照明器または照明レーザを用いて）、半導体スタックを使用する技法、「Ｆｌａｓｈ」ＬＩＤＡＲ  ＬＡＤＡＲおよび「Ｓｗｉｓｓ  Ｒａｎｇｅｒ」タイプの焦点面撮像要素センサ等の技術によって補完することができる。
【００６０】
センサシステム４００は、コントローラ５００と通信している、１つ以上の３次元（３−Ｄ）画像センサ４５０を含んでもよい。３−Ｄ画像センサ４５０が、限られた視界を有する場合、コントローラ５００またはセンサシステム４００は、強固なＯＤＯＡを実施するために、相対的により広い視界を生じるよう、３−Ｄ画像センサ４５０ａを、左右を走査するように作動させることができる。
【００６１】
図２および図４Ａ〜図４Ｃを参照すると、センサシステム４００は、ロボット１００の全体重心ＣＧRに対するロボット１００の慣性モーメントを計測し、監視する、コントローラ５００と通信している、慣性計測ユニット（ＩＭＵ）４７０を含んでもよい。
【００６２】
コントローラ５００は、正常な妨害されていない動作に対応する閾値信号から、ＩＭＵ４７０からのフィードバックにおけるいかなる逸脱も監視し得る。例えば、ロボットが直立位置から離れるように傾き始める場合、「タックルされた」、ないしは別の方法で邪魔された、または誰かが重い搭載物を突然追加した可能性がある。そのような状況では、ロボット１００の安全な動作を保証するために、緊急動作（回避機動、再較正、および／または音声／視覚警告の発行を含むが、これらに限定されない）をとる必要がある場合がある。
【００６３】
ロボット１００は、人間環境内で動作得るため、人とやりとりし、人向けに設計された（かつロボット制約が考慮されていない）空間内で動作する場合がある。ロボット１００は、カクテルパーティまたは混み合った病院等の混雑した、制約された、または極めて動的な環境において、その駆動速度および加速を制限することができる。しかしながら、ロボット１００は、誰もいない長い廊下のような比較的高速に駆動することが安全だが、誰かがロボットの運動経路を横切る際に依然として突然減速し得る状況に遭遇する場合がある。
【００６４】
停止から加速する際、コントローラ５００は、ロボットが倒れるのを防止するように、その全体重心ＣＧRからのロボット１００の慣性モーメントを考慮してもよい。コントローラ５００は、その現在の慣性モーメントを含む、その姿勢のモデルを使用してもよい。
搭載物が支持される際、コントローラ５００は、全体重心ＣＧRへの負荷影響を計測し、ロボットの移動の慣性モーメントを監視してもよい。例えば、胴部１４０および／または首部１５０は、歪みを計測する、歪みゲージを含んでもよい。これが可能ではない場合、コントローラ５００は、安全限界を実験的に判定するために、駆動車輪２１０に試験トルクコマンドを適用し、ＩＭＵ４７０を使用して、ロボットの実際の線形加速および角加速を計測してもよい。
【００６５】
突然の減速中、第２および第３の駆動車輪２１０ｂ、２１０ｃ（後輪）にコマンドされる負荷は低減され、一方、第１の駆動車輪２１０ａ（前輪）は、順駆動方向に滑り、ロボット１００を支持する。第２および第３の駆動車輪２１０ｂ、２１０ｃ（後輪）の負荷が非対称である場合、ロボット１００は、「偏揺れ」する場合があり、これは、動的安定性を低下させる。この偏揺れを検出し、第２および第３の駆動車輪２１０ｂ、２１０ｃに、ロボット１００を再配向するようコマンドするために、ＩＭＵ４７０（例えば、ジャイロ）を使用することができる。
【００６６】
図１〜図３、図９、および図１０Ａを参照すると、いくつかの実現形態では、ロボット１００は、順駆動方向Ｆに沿った視界を伴う、ロボット本体１１０の前方部分上に搭載される（例えば、ロボットの駆動方向Ｆに沿った最大撮像対応範囲を有するように）、走査３−Ｄ画像センサ４５０ａを含む。走査３−Ｄ画像センサ４５０ａは、主に、障害物検出／障害物回避（ＯＤＯＡ）に使用することができる。示される実施例では、走査３−Ｄ画像センサ４５０ａは、例えば、ユーザが走査３−Ｄ画像センサ４５０ａと接触するのを防止するために、図３に示されるように、胴部１４０上の段部１４２の下部上、または底面１４４上に搭載され、胴部１４０内に引っ込められる（例えば、底面１４４と同一平面上またはそれを通り越して）。走査３−Ｄ画像センサ４５０は、障害物検出および障害物回避（ＯＤＯＡ）のために、ロボット１００の正面内の下向き視界４５２を有するように（例えば、基部１２０またはロボット本体１１０の他の部分による遮りを伴う）、実質的に下向きかつロボット本体１１０から離れるよう照準を定めるように配設することができる。胴部１４０の前縁部上またはその付近への走査３−Ｄ画像センサ４５０ａの定置は、３−Ｄ画像センサ４５０の視界（例えば、〜２８５度）が、３−Ｄ画像センサ４５０に対する胴部１４０の外面角度（例えば、３００度）より小さくなるようにすることができ、したがって、胴部１４０が走査３−Ｄ画像センサ４５０ａの検出視界４５２を塞ぐ、または遮るのを防止する。さらに、走査３−Ｄ画像センサ４５０ａ（および関連アクチュエータ）は、可能な限りその視界を塞ぐことなく（例えば、また、審美性のため、および障害物に引っかかるのを最小限にするためにも）、胴部１４０内に埋め込んで搭載することができる。走査３−Ｄ画像センサ４５０ａの気を散らす走査運動は、ユーザには見えず、それ程不快ではない対話経験をもたらす。突出するセンサまたは特徴とは異なり、引っ込んだ走査３−Ｄ画像センサ４５０ａは、特に、移動または走査する際、事実上、胴部１４０の周辺を越えて延在する可動部分がないため、環境との意図されない相互作用（人、障害物等への引っかかり）を有さない傾向がある。
【００６７】
いくつかの実現形態では、センサシステム４００は、基部本体１２０上に配置される追加の３−Ｄ画像センサ４５０と、脚部１３０と、首部１５０および／または頭部１６０とを含む。図１に示される実施例では、ロボット１００は、基部本体１２０、胴部１４０、および頭部１６０上に３−Ｄ画像センサ４５０を含む。図２に示される実施例では、ロボット１００は、基部本体１２０、胴部１４０、および頭部１６０上に３−Ｄ画像センサ４５０を含む。図９に示される実施例では、ロボット１００は、脚部１３０、胴部１４０、および首部１５０上に３−Ｄ画像センサ４５０を含む。他の構成も同様に可能である。１つの３−Ｄ画像センサ４５０（例えば、首部１５０上かつ頭部１６０の上）を、人認識、ジェスチャ認識、および／またはテレビ会議に使用することができ、一方、別の３−Ｄ画像センサ４５０（例えば、基部１２０および／または脚部１３０上）を、ナビゲーションならびに／または障害物検出および障害物回避に使用することができる。
【００６８】
首部１５０および／または頭部１６０上に配置される、前を向く３−Ｄ画像センサ４５０を、ロボット１００の周囲の人々の人認識、顔認識、および／またはジェスチャ認識に使用することができる。例えば、頭部１６０上の３−Ｄ画像センサ４５０からの信号入力を使用して、コントローラ５００は、見た／捕捉したユーザの顔の３次元マップを作成し、作成した３次元マップを人の顔の既知の３−Ｄ画像と比較し、既知の３−Ｄ顔画像のうちの１つとの合致を判定することによって、ユーザを認識してもよい。顔認識は、ユーザをロボット１００の正当なユーザとして認証するために使用されてもよい。さらに、３−Ｄ画像センサ４５０のうちの１つ以上を、ロボット１００が見る人のジェスチャを判定し、判定されるジェスチャ（単数または複数）（例えば、手差し、手振り、およびまたは手信号）に基づき、任意選択により反応するために使用することができる。例えば、コントローラ５００は、認識される特定の方向への手差しに応えて、駆動コマンドを発行してもよい。
【００６９】
図１０Ｂは、すべてがロボット本体９０５上に搭載され、それぞれが地面Ｇに対して平行な、または実質的に平行な視界を有する、カメラ９１０と、ソナーセンサ９２０と、レーザ距離計９３０とを有する、ロボット９００の概略図を提供する。この配設は、少し離れた物体の検出を可能にする。実施例では、レーザ距離計９３０は、地面Ｇに近い物体を検出し、超音波センサ（ソナー）９２０のリングは、地面Ｇのさらに上方の物体を検出し、カメラ９１０は、非常に見晴らしの利く点から、情景の大部分を捕捉する。この設計の主要特徴は、センサ９１０、９２０、９３０がすべて、地面Ｇに対して平行に配向されているということである。この配設の１つの利点は、センサ９１０、９２０、９３０のうちの１つ以上を使用することによって判定される物体までの距離が、また、ロボット９００が、それが物体に接触する前に、対応する所与の方向に移動することができる距離でもあるという点で、演算を簡略化することができるということである。この配設の欠点は、ロボットの包囲の良好な対応範囲を得るために、多くのレベルの感知が必要であるということである。これは、費用または演算の視点から不可能な要求である可能性があり、多くの場合、ロボット９００のすべてのセンサ９１０、９２０、９３０のセンサ視界に大きい欠落部をもたらす。
【００７０】
いくつかの実現形態では、ロボットは、ロボット１００を包囲する領域の音響撮像のためのソナースキャナ４６０を含む。図１および図３に示される実施例では、ソナースキャナ４６０は、基部本体１２０の前方部分上に配置される。
【００７１】
図１、図３Ｂ、および図１０Ａを参照すると、いくつかの実現形態では、ロボット１００は、冗長感知のためにレーザスキャナまたはレーザ距離計４４０を、ならびに安全のために後ろを向くソナー近接センサ４１０ｊを使用し、これらの両方は、地面Ｇに対して平行に配向される。ロボット１００は、ロボット１００の周囲の環境の強固な感知を提供するために、第１および第２の３−Ｄ画像センサ４５０ａ、４５０ｂ（深度カメラ）を含んでもよい。第１の３−Ｄ画像センサ４５０ａは、胴部１４０上に固定角度で下向きに地面Ｇを指すように搭載される。第１の３−Ｄ画像センサ４５０ａを下向きに角度付けることによって、ロボット１００は、ロボット１００の前方向への短期移動に適した、ロボット１００の直前または隣接領域における隙間のないセンサ対応範囲を得る。後ろを向くソナー４１０ｊは、ロボットが後方移動する際の物体検出を提供する。ロボット１００にとって、後方移動が典型的である場合、ロボット１００は、ロボット１００の直後または隣接領域における隙間のないセンサ対応範囲を提供するために、下を向く第３の３Ｄ画像センサ４５０を含んでもよい。
【００７２】
第２の３−Ｄ画像センサ４５０ｂは、首部１５０を介して回動および傾斜させることができる頭部１６０上に搭載される。第２の３−Ｄ画像センサ４５０ｂは、人オペレータが、ロボット１００が進行している場所を見ることを可能にするため、遠隔駆動に有用であり得る。首部１５０は、オペレータが、近い物体および離れた物体の両方を見るように、第２の３−Ｄ画像センサ４５０ｂを傾斜および／または回動させることを可能にする。第２の３−Ｄ画像センサ４５０ｂを回動させることは、関連水平視界を増加させる。高速移動中、ロボット１００は、３−Ｄ画像センサ４５０ａ、４５０ｂの両方の総体的または組み合わせた視界を増加させるため、およびロボット１００が障害物を回避するのに十分な時間を与えるため（より速い速度は、一般的に、障害物に反応する時間がより短いことを意味するため）に、第２の３−Ｄ画像センサ４５０ｂをわずかに下向きに傾斜させてもよい。低速では、ロボット１００は、ロボット１００が追従することを意図される人を追跡するように、第２の３−Ｄ画像センサ４５０ｂを上向きに、または地面Ｇに対して実質的に平行に傾斜させてもよい。さらに、比較的低速で駆動している間、ロボット１００は、ロボット１００の周囲のその視界を増加させるように、第２の３−Ｄ画像センサ４５０ｂを回動させることができる。ロボットが、ロボットの知覚範囲を拡大するように駆動している際、第１の３−Ｄ画像センサ４５０ａは、固定されたままであることができる（例えば、基部１２０に対して移動しない）。
【００７３】
３−Ｄ画像センサ４５０は、以下のタイプのデータを生成することができる：（ｉ）深度マップ、（ｉｉ）反射率ベースの強度画像、および／または（ｉｉｉ）標準強度画像。
３−Ｄ画像センサ４５０は、画像パターン合致、源から放射され、標的から反射される光の飛行時間および／または位相遅延偏移計測によって、そのようなデータを取得してもよい。
【００７４】
いくつかの実現形態では、プロセッサ（例えば、ロボットコントローラ５００の）上で実行可能な推論または制御ソフトウェアは、センサシステム４００によって生成される様々なデータ型を使用して実行されるアルゴリズムの組み合わせを使用する。推論ソフトウェアは、例えば、ロボット１００が障害物と衝突することなく移動することができるかに関するナビゲーション決定を行うために、センサシステム４００から収集されるデータを処理し、データを出力する。ロボットの包囲の経時的な撮像データを蓄積することによって、その結果、推論ソフトウェアは、３−Ｄ画像センサ４５０の深度計測を改善するために、感知される画像（単数または複数）の選択されるセグメントに効率的な方法を適用することができる。これには、適切な時間および空間平均技法を使用することが含まれてもよい。
【００７５】
衝突のないロボット移動を実行する信頼性は、（ｉ）高レベルの経時的な推論によって構築される信頼レベル、および（ｉｉ）解析のために３つの主なタイプのデータ、（ａ）深度画像、（ｂ）アクティブ照明画像、および（ｃ）周囲照明画像を蓄積する、深度知覚センサに基づいてもよい。深度知覚撮像センサ４５０によって取得される画像のそれぞれに、異なるタイプのデータを認識するアルゴリズムを実行することができる。集約データは、１つの種類のデータのみを使用するシステムと比較して、信頼レベルを改善し得る。
【００７６】
３−Ｄ画像センサ４５０は、１つ以上の物体を含有するロボットの周囲の情景１００から、深度および明度データを含有する画像（例えば、部屋または作業領域のセンサ視野部分）を取得してもよい。コントローラ５００は、情景から捕捉される反射光に基づき、物体の占領データを判定するように構成されてもよい。さらに、いくつかの実施例では、コントローラ５００は、少なくとも一部において占領データに基づき、障害物（すなわち、情景内の物体）を迂回するように、駆動システム２００に駆動コマンドを発行する。３−Ｄ画像センサ４５０は、情景内のいかなる物体にも衝突することなく、情景の周囲でロボット１００をナビゲートするよう、コントローラ５００によってリアルタイム決定を行うために、情景深度画像を繰り返し捕捉してもよい。例えば、３−Ｄ画像センサ４５０によって深度画像データが取得される速度または頻度は、３−Ｄ画像センサ４５０のシャッター速度によって制御されてもよい。加えて、コントローラ５００は、事象トリガを受信してもよい（例えば、コントローラ５００に近隣の物体または危険を通知する、近接センサ４１０、４２０等のセンサシステム４００の別のセンサ構成要素から）。コントローラ５００は、事象トリガに応えて、３−Ｄ画像センサ４５０に、深度画像が捕捉される頻度を増加させることができ、占領情報が取得される。
【００７７】
図１１を参照すると、いくつかの実現形態では、３−Ｄ撮像センサ４５０は、ロボット１００の周囲領域（例えば、部屋）等の情景１０に光を放射する、光源１１７２を含む。
また、撮像センサ４５０は、光源１１７２から発される光の反射光を含む、情景１０からの反射光を捕捉する（例えば、情景深度画像として）、撮像部１１７４（例えば、光感知ピクセル１１７４ｐのアレイ）も含んでもよい。いくつかの実施例では、撮像センサ４５０は、放射される光および受信される反射光をそれぞれ操作する（例えば、スペックリングまたは集束させる）ために、光源レンズ１１７６および／または検出器レンズ１１７８を含む。ロボットコントローラ５００またはロボットコントローラ５００と通信しているセンサコントローラ（図示せず）は、撮像部１１７４によって捕捉される反射光の画像パターン合致および／または飛行時間特性に基づき、情景１０内の物体１２の深度情報を判定するために、撮像部１１７４（例えば、ピクセル１１７４ｐ）から光信号を受信する。
【００７８】
図１２は、撮像センサ４５０を動作させるための動作の例となる配設１２００を提供する。図１０Ａを追加参照すると、動作は、ロボット１００の周囲の情景１０に光を放射すること（１２０２）と、撮像部（例えば、光感知ピクセルのアレイ）上への情景１０からの放射光の反射を受けとる（１２０４）とを含む。動作は、コントローラ５００が撮像部から光検出信号を受信すること（１２０６）と、光検出信号から得られる画像データを使用して、情景１０内の物体１２の１つ以上の特徴を検出すること（１２０８）と、光検出信号から得られる画像深度データを使用して、情景１０内の物体１２の検出される特徴（単数または複数）の位置を追跡すること（１２１０）とをさらに含む。動作は、画像データまたは画像深度データの解像度を増加させるため、および／または信頼レベルを提供するために、光を放射すること（１２０２）、光反射を受けとること（１２０４）、光検出信号を受信すること（１２０６）、物体特徴（単数または複数）を検出すること（１２０８）、および物体特徴（単数または複数）の位置を追跡すること（１２０１０）の動作を繰り返すこと（１２１２）を含んでもよい。
【００７９】
動作を繰り返すこと（１２１２）は、比較的高い解像度のために比較的遅い速度（例えば、遅いフレーム速度）で、中間速度で、または比較的低い解像度を伴って高速で実施することができる。動作を繰り返す（１２１２）頻度は、ロボットコントローラ５００によって調節可能であり得る。いくつかの実現形態では、コントローラ５００は、事象トリガを受信すると、動作を繰り返す（１２１２）頻度を高めてもよく、または低めてもよい。
例えば、情景内の感知されるアイテムは、情景１０内の高くなっている可能性のある物体１２（例えば、戸口、敷居、または段差）を感知するために、動作を繰り返す（１２１２）頻度を増加させる事象をトリガし得る。追加の実施例では、検出された物体１２間の経過時間事象が、動作を繰り返す（１２１２）頻度を低下させ得る、またはある期間停止させ得る（例えば、別の事象によって起こされるまで活動停止状態になる）。いくつかの実施例では、情景１０内の物体１２の１つ以上の特徴を検出する（１２０８）動作は、画像深度データが取得される速度を増加させるために、比較的大きい頻度の繰り返し動作（１２１２）をもたらす、特徴検出事象をトリガする。画像深度データの比較的大きい獲得速度は、情景内の相対的により信頼できる特徴追跡を可能にすることができる。
【００８０】
また、動作は、情景１０内の物体１２を迂回するために、ナビゲーションデータを出力すること（１２１４）も含む。いくつかの実現形態では、コントローラ５００は、駆動システム２００に駆動コマンドを発行して、物体１２との衝突を回避するようにロボット１００を移動させるために、出力されるナビゲーションデータを使用する。
【００８１】
いくつかの実現形態では、センサシステム４００は、ロボット１００の周囲の情景１０内の複数の物体１２を検出し、コントローラ５００は、検出される物体１２のそれぞれの位置を追跡する。コントローラ５００は、部屋の境界付けられた領域等のロボット１００の周囲の領域内の物体１２の占領マップを作成してもよい。コントローラ５００は、情景１０を占領マップの一部分と合致させ、占領マップを追跡される物体１２の位置で更新するために、センサシステム４００の画像深度データを使用してもよい。
【００８２】
図１３を参照すると、いくつかの実現形態では、３−Ｄ画像センサ４５０は、スペックル非相関を通した画像マッピングを可能にする、３次元（３Ｄ）スペックルカメラ１３００を含む。スペックルカメラ１３００は、情景１０（標的領域としての）にスペックルパターンを放射する、スペックル放射部１３１０（例えば、赤外線、紫外線、および／または可視光の）と、情景１０内の物体１２の表面上のスペックルパターンの画像を捕捉する、撮像部１３２０とを含む。
【００８３】
スペックル放射部１３１０は、拡散器１３１４に、および反射、ひいては情景１０へのスペックルパターンとしての投射のために反射器１３１６上に光ビームを放射する、レーザ等の光源１３１２を含んでもよい。撮像部１３２０は、ＣＣＤまたはＣＭＯＳベースの画像センサ等の光検出器１３２６のアレイを有する画像センサ１３２４上に画像を結像させる、対物光学素子１３２２を含んでもよい。スペックル放射部１３１０および撮像部１３２０の光学軸は、同一直線上であるように示されているが、非相関モードでは、例えば、スペックル放射部１３１０および撮像部１３２０の光学軸はまた、非同一直線上であってもよく、一方、相互相関モードでは、例えば、撮像軸が放射軸からずれるという具合であってもよい。
【００８４】
スペックル放射部１３１０は、情景１０にスペックルパターンを放射し、撮像部１３２０は、スペックル放射部１３１０から広範の異なる物体距離Ｚnでの、情景１０内のスペックルパターンの基準画像を捕捉する（例えば、Ｚ軸は、撮像部１３２０の光学軸によって画定することができる）。示される実施例では、Ｚ1、Ｚ2、Ｚ3等と標識される基準位置等、原点から異なる、それぞれの距離の連続平面で、投射されるスペックルパターンの基準画像が捕捉される。基準画像間の距離ΔＺは、閾値距離（例えば、５ｍｍ）に設定されてもよい、またはコントローラ５００によって調節可能であってもよい（例えば、トリガされる事象に応えて）。スペックルカメラ１３００は、スペックルパターンのスペックル放射部１３１０からの距離との非相関を可能にして、後続画像に捕捉される物体１２の測距を実施するために、捕捉される基準画像を保管し、それぞれの放射距離にインデックスを付ける。例えば、ΔＺが隣接する基準距離Ｚ1、Ｚ2、Ｚ3、．．．、の間の距離とほぼ同等であると仮定すると、位置ＺAの物体１２上のスペックルパターンを、Ｚ2で捕捉されるスペックルパターンの基準画像と相関させることができる。その一方で、例えば、ＺBの物体１２上のスペックルパターンは、Ｚ3の基準画像と相関させることができる。これらの相関計測は、原点からの物体１２の近似距離をもたらす。物体１２を３次元にマップするために、スペックルカメラ１３００またはスペックルカメラ１３００から情報を受信するコントローラ５００は、最も近い合致をもたらした基準画像との局所相互相関を使用することができる。
【００８５】
例えば、本明細書に記載されるものと組み合わせることが可能であり得る、三角測量または非相関を使用するスペックル相互相関を介したスペックル測距を使用した３Ｄ画像マッピングにおける他の詳細および特徴は、内容全体が参照することによって本明細書に組み込まれる、ＰＣＴ特許出願第ＰＣＴ／ＩＬ２００６／０００３３５号に見ることができる。
【００８６】
図１４は、スペックルカメラ１３００を動作させるための動作の例となる配設１４００を提供する。動作は、情景１０にスペックルパターンを放射すること（１４０２）と、スペックル放射部１３１０から異なる距離での、基準画像（例えば、基準物体１２の）を捕捉すること（１４０４）とを含む。動作は、情景１０内の標的物体１２にスペックルパターンを放射すること（１４０６）と、物体１２上のスペックルパターンの標的画像を捕捉すること（１４０８）とをさらに含む。動作は、標的画像（スペックルされた物体の）を異なる基準画像と比較して、標的物体１２上のスペックルパターンと最も強く相関する基準パターンを特定することと（１４１０）と、情景１０内の標的物体１２の推定される距離範囲を判定すること（１４１２）とをさらに含む。これは、物体１２上の一次スペックルパターンを判定することと、物体１２上の一次スペックルパターンと最も強く相関するスペックルパターンを有する基準画像を発見することとを含んでもよい。基準画像の対応する距離から、距離範囲を判定することができる。
【００８７】
動作は、任意選択により、例えば、情景内の物体１２の位置を判定するために、物体１２上のスペックルパターンと識別される基準パターンとの間の局所相互相関によって、物体１２の表面の３Ｄマップを構築すること（１４１４）を含む。これは、物体の３次元（３Ｄ）マップを得るために、物体１２上の一次スペックルパターンを判定することと、標的画像内の物体１２の複数の領域上の一次スペックルパターンと特定された基準画像内の一次スペックルパターンとの間のそれぞれのオフセットを発見することとを含んでもよい。情景の３Ｄマッピングへの固体状態構成要素の使用は、ロボットナビゲーションシステムの比較的安価な解決策を提供する。
【００８８】
典型的に、異なる、それぞれの距離のうちの少なくともいくつかは、それぞれの距離での一次スペックルパターンの軸長さより長く軸方向に離れている。標的画像を基準画像と比較することは、標的画像と基準画像のうちの少なくともいくつかのそれぞれとの間のそれぞれの相互相関を演算することと、標的画像との最大のそれぞれの相互相関を有する基準画像を選択することとを含んでもよい。
【００８９】
動作は、（例えば、継続的に）情景１０内の物体１２の動きを追跡するために、動作１４０２〜１４１２または動作１４０６〜１４１２を繰り返すこと（１４１６）と、任意選択により動作１４１４とを含んでもよい。例えば、スペックルカメラ１３００は、基準画像との比較のために、物体１２が移動している間、連続標的画像を捕捉してもよい。
【００９０】
本明細書に記載されるものと組み合わせることが可能であり得る、スペックル測距を使用する３Ｄ画像マッピングにおける他の詳細および特徴は、内容全体が参照することによって本明細書に組み込まれる、米国特許第７，４３３，０２４号、名称が「Ｄｅｐｔｈ  Ｍａｐｐｉｎｇ  Ｕｓｉｎｇ  Ｐｒｏｊｅｃｔｅｄ  Ｐａｔｔｅｒｎｓ」の米国特許出願公開第２００８／０１０６７４６号、名称が「Ｄｅｐｔｈ  Ｍａｐｐｉｎｇ  Ｕｓｉｎｇ  Ｐｒｏｊｅｃｔｅｄ  Ｐａｔｔｅｒｎｓ」の米国特許出願公開第２０１０／０１１８１２３号、名称が「Ｍｏｄｅｌｉｎｇ  Ｏｆ  Ｈｕｍａｎｏｉｄ  Ｆｏｒｍｓ  Ｆｒｏｍ  Ｄｅｐｔｈ  Ｍａｐｓ」の米国特許出願公開第２０１０／００３４４５７号、名称が「Ｄｅｐｔｈ  Ｍａｐｐｉｎｇ  Ｕｓｉｎｇ  Ｍｕｌｔｉ−Ｂｅａｍ  Ｉｌｌｕｍｉｎａｔｉｏｎ」の米国特許出願公開第２０１０／００２００７８号、名称が「Ｏｐｔｉｃａｌ  Ｄｅｓｉｇｎｓ  Ｆｏｒ  Ｚｅｒｏ  Ｏｒｄｅｒ  Ｒｅｄｕｃｔｉｏｎ」の米国特許出願公開第２００９／０１８５２７４号、名称が「Ｔｈｒｅｅ−Ｄｉｍｅｎｓｉｏｎａｌ  Ｓｅｎｓｉｎｇ  Ｕｓｉｎｇ  Ｓｐｅｃｋｌｅ  Ｐａｔｔｅｒｎｓ」の米国特許出願公開第２００９／００９６７８３号、名称が「Ｄｅｐｔｈ  Ｍａｐｐｉｎｇ  Ｕｓｉｎｇ  Ｐｒｏｊｅｃｔｅｄ  Ｐａｔｔｅｒｎｓ」の米国特許出願公開第２００８／０２４０５０２号、および名称が「Ｄｅｐｔｈ−Ｖａｒｙｉｎｇ  Ｌｉｇｈｔ  Ｆｉｅｌｄｓ  Ｆｏｒ  Ｔｈｒｅｅ  Ｄｉｍｅｎｓｉｏｎａｌ  Ｓｅｎｓｉｎｇ」の米国特許出願公開第２００８／０１０６７４６号に見ることができる。
【００９１】
図１５を参照すると、いくつかの実現形態では、３−Ｄ撮像センサ４５０は、深度画像データを取得するための３Ｄ飛行時間（ＴＯＦ）カメラ１５００を含む。３Ｄ  ＴＯＦカメラ１５００は、光源１５１０と、相補型金属酸化物半導体（ＣＭＯＳ）センサ１５２０（または電荷結合デバイス（ＣＣＤ））と、レンズ１５３０と、光源１５１０およびＣＭＯＳセンサ１５２０と通信している、処理資源を有する制御論理またはカメラコントローラ１５４０（および／またはロボットコントローラ５００）とを含む。光源１５１０は、周期的高周波信号によって調節される強度を伴う、レーザまたは発光ダイオード（ＬＥＤ）であってもよい。いくつかの実施例では、光源１５１０は、集束レンズ１５１２を含む。ＣＭＯＳセンサ１５２０は、各ピクセル検出器１５２２が、その上に衝突する光子エネルギーの強度および位相を検出することができる、ピクセル検出器１５２２のアレイ、またはピクセル検出器１５２２の他の配設を含んでもよい。いくつかの実施例では、各ピクセル検出器１５２２は、関連ピクセル検出器１５２２の検出電荷出力を処理するための専用検出器回路１５２４を有する。レンズ１５３０は、１つ以上の関心物体１２を含有する情景１０から反射される光を、ＣＭＯＳセンサ１５２０上に集束させる。カメラコントローラ１５４０は、ＣＭＯＳセンサ１５２０によって取得されるピクセルデータを深度マップおよび明度画像に形式化する、一連の動作を提供する。いくつかの実施例では、また、３Ｄ  ＴＯＦカメラ１５００は、入力／出力（ＩＯ）１５５０（例えば、ロボットコントローラ５００と通信している）、メモリ１５６０、ならびに／またはカメラコントローラ１５４０および／もしくはピクセル検出器１５２２（例えば、検出器回路１５２４）と通信しているクロック１５７０も含む。
【００９２】
図１６は、３Ｄ  ＴＯＦカメラ１５００を動作させるための動作の例となる配設１６００を提供する。動作は、光パルス（例えば、赤外線、紫外線、および／または可視光）を情景１０に放射すること（１６０２）と、光パルスの飛行時間の時間計測を開始すること（例えば、クロック１５７０のクロックパルスをカウントすることによって）（１６０４）とを含む。動作は、情景１０内の物体１２の１つ以上の表面から放射される光の反射を受けとること（１６０６）を含む。反射は、光源１５１０から異なる距離Ｚnで、物体１２の表面から反射されてもよい。反射は、レンズ１５３０を通してＣＭＯＳセンサ１５２０のピクセル検出器１５２２上に受けとられる。動作は、ＣＭＯＳセンサ１５２０の各対応するピクセル検出器１５２２上に受信される、各光パルス反射の飛行時間を受信すること（１６０８）を含む。光パルスの往復飛行時間（ＴＯＦ）中、各それぞれのピクセル検出器１５２２の検出器回路１５２３のカウンタは、クロックパルスを蓄積する。より大きい数のクロックパルスの蓄積は、より長いＴＯＦ、およびしたがって、撮像される物体１２上の光反射点と光源１５１０との間のより大きい距離を表す。動作は、それぞれの受けとられる光パルス反射の物体１２の反射面の間の距離を判定すること（１６１０）と、任意選択により、３次元物体表面を構築すること（１６１２）とをさらに含む。いくつかの実現形態では、動作は、動作１６０２〜１６１０を繰り返すこと（１６１４）と、任意選択により、情景１０内の物体１２の移動を追跡するための１６１２とを含む。
【００９３】
本明細書に記載されるものと組み合わせることが可能であり得る、３Ｄ飛行時間撮像における他の詳細および特徴は、内容全体が参照することによって本明細書に組み込まれる、名称が「ＣＭＯＳ  Ｃｏｍｐａｔｉｂｌｅ  ３−Ｄ  Ｉｍａｇｅ  Ｓｅｎｓｏｒ」の米国特許第６，３２３，９４２号、名称が「Ｍｅｔｈｏｄｓ  ｆｏｒ  ＣＭＯＳ−Ｃｏｍｐａｔｉｂｌｅ  Ｔｈｒｅｅ−Ｄｉｍｅｎｓｉｏｎａｌ  Ｉｍａｇｅ  Ｓｅｎｓｉｎｇ  Ｕｓｉｎｇ  Ｑｕａｎｔｕｍ  Ｅｆｆｉｃｉｅｎｃｙ  Ｍｏｄｕｌａｔｉｏｎ」の米国特許第６，５１５，７４０号、および名称が「Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｔｏ  Ｅｎｈａｎｃｅ  Ｄｙｎａｍｉｃ  Ｒａｎｇｅ  Ｃｏｎｖｅｒｓｉｏｎ  Ｕｓａｂｌｅ  ｗｉｔｈ  ＣＭＯＳ  Ｔｈｒｅｅ−Ｄｉｍｅｎｓｉｏｎａｌ  Ｉｍａｇｉｎｇ」のＰＣＴ特許出願第ＰＣＴ／ＵＳ０２／１６６２１号に見ることができる。
【００９４】
いくつかの実現形態では、３−Ｄ撮像センサ４５０は、３つのタイプの情報、すなわち（１）深度情報（例えば、ＣＭＯＳセンサ１５２０の各ピクセル検出器１５２２から情景１２上の対応する位置までの）、（２）各ピクセル検出器位置での周囲光強度、および（３）各ピクセル検出器位置でのアクティブ照明強度を提供する。深度情報は、特に物体の近接からロボット配備現場に関して、検出される物体１２の位置が経時的に追跡されるようにすることを可能にする。アクティブ照明強度および周囲光強度は、異なるタイプの明度画像である。アクティブ照明強度は、標的物体１２から反射されるアクティブ光（光源１５１０によって提供されるもの等）の反射から捕捉される。周囲光画像は、標的物体１２から反射される周囲光のものである。２つの画像は、共に、特に照明条件が悪い際（例えば、暗すぎるか、または過度の周囲照明）に、追加の強固性を提供する。
【００９５】
情景１０内の物体１２の位置を分類し、検出するために、画像区分化および分類アルゴリズムが使用されてもよい。これらのアルゴリズムによって提供される情報、ならびに撮像センサ４５０から取得される距離計測情報は、ロボットコントローラ５００または他の処理資源によって使用することができる。撮像センサ４５０は、周囲光をフィルタ処理するために、フォトダイオードの感度を調節するための技法を含む、飛行時間の原理に基づき、およびより具体的には、情景１０から反射される、調節された光パターンにおける検出可能な位相遅延に基づき、動作することができる。
【００９６】
ロボット１００は、１）マッピング、位置特定＆ナビゲーション、２）物体検出＆物体回避（ＯＤＯＡ）、３）物体探索（例えば、人を発見するための）、４）ジェスチャ認識（例えば、コンパニオンロボットのための）、５）人＆顔検出、６）人追跡、７）ロボット１００による物体の操作の監視、およびロボット１００の自律的動作のための他の好適な用途に、撮像センサ４５０を使用してもよい。
【００９７】
いくつかの実現形態では、３−Ｄ画像センサ４５０のうちの少なくとも１つは、ロボット１００上の地面の上方の１フィート（約３０．５ｃｍ）または２フィート（約６１ｃｍ）を超える高さに位置付けられ、かつロボットの移動方向の床面を含む空間体積から点群を取得することができる（全方向性駆動システム２００を介して）ように方向付けられる、体積点群撮像デバイス（スペックルまたは飛行時間カメラ等）であってもよい。図１および図３に示される実施例では、第１の３−Ｄ画像センサ４５０ａを、基部１２０上の地面の上方の１または２フィートを超える高さ（または地面の約１または２フィート上方の高さ）に位置付け、駆動している間、床を含む体積の画像（例えば、体積点群）を捕捉するように、順駆動方向Ｆに沿って照準を定める（例えば、障害物検出および障害物回避のために）ことができる。ロボット１００に隣接する空間体積から骨格認識および画定点群を取得することができるように、頭部１６０上に搭載された（例えば、地面の上方の約３または４フィートを超える高さに）、第２の３−Ｄ画像センサ４５０ｂが示されている。
コントローラ５００は、捕捉される体積点群のデータを解析するために、骨格／デジタル認識ソフトウェアを実行してもよい。
【００９８】
周囲光条件に関わらず、撮像センサ４５０を使用して、物体１２を適切に感知することは、重要であり得る。多くの環境では、照明条件は、直接日光から、明るい蛍光照明、ぼんやりとした影まで広い範囲に及び、物体１２の表面質感および基本的な反射率に大きい変化をもたらす可能性がある。照明は、所与の位置内で、および情景１０から情景１０でも同様に変化する可能性がある。いくつかの実現形態では、すべての状況において、周囲光条件からの比較的小さい影響を伴って（例えば、周囲光排除）、人および物体１２を識別し、解像するために、撮像センサ４５０を使用することができる。
【００９９】
いくつかの実現形態では、撮像センサ４５０のＶＧＡ解像度は、水平６４０ピクセル×垂直４８０ピクセルであるが、しかしながら、３２０×２４０（例えば、短距離センサでは）のような他の解像度も同様に可能である。
【０１００】
撮像センサ４５０は、パルスレーザと、特定の範囲内のみの物体１２を見るために、タイムドメインにおける帯域通過フィルタとしての機能を果たす、カメラアイリスとを含んでもよい。異なる距離の物体１２ａを検出するために、撮像センサ４５０の可変アイリスを使用することができる。さらに、屋外用途では、より高い電力のレーザパルスを発することができる。
【０１０１】
表１および表２（以下）は、様々な用途向けの撮像センサ４５０の例となる特徴、パラメータ、および／または仕様を提供する。センサ１は、汎用撮像センサ４５０として使用することができる。センサ２および３は、人対話型ロボットに使用することができ、センサ４および５は、カバレッジまたは掃除ロボットに使用することができる。
【表１】
0005946147.tif 000002
【表２】
0005946147.tif 000003
【０１０２】
最小センサ待ち時間は、ロボット１００が移動している際に、物体１２を回避するのに十分に素早く見ることを保証する。撮像センサ４５０の待ち時間は、検出され、認識されるユーザジェスチャにリアルタイムに反応することにおける要因であり得る。いくつかの実施例では、撮像センサ４５０は、約４４ｍｓの待ち時間を有する。撮像センサ４５０によって捕捉される画像は、空間内を平行移動している、または回転している間のどのロボット姿勢で画像が撮られたかを判定するために使用することができる、属性付けられたタイムスタンプを有することができる。
【０１０３】
撮像センサ４５０と通信するために、コントローラ５００と通信している、シリアル周辺機器インターフェースバス（ＳＰＩ）が使用されてもよい。全体が参照することによって本明細書に組み込まれる、２０１０年２月１６日に出願された、名称が「Ｍｏｂｉｌｅ  Ｒｏｂｏｔ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｙｓｔｅｍ」の米国特許出願第６１／３０５，０６９号に記載されるように、撮像センサ４５０にＳＰＩインターフェースを使用することは、その使用をマルチノード分散センサ／アクチュエータシステムに制限せず、次いでデータをイーサネット（登録商標）およびイーサＩＯシステム上で利用可能にすることができる、マイクロプロセッサまたはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のイーサネット（登録商標）有効デバイスとの接続を可能にする。
【０１０４】
ＳＰＩは、限定されたプロトコルであるため、画像捕捉が実行される際に、点灯または遷移し得る割り込みピンが、撮像センサ４５０とのインターフェース上で利用可能であり得る。割り込みピンは、フレームが捕捉される際に、コントローラ５００と通信することを可能にする。これは、コントローラ５００が、データを読み出し可能であることを知ることを可能にする。さらに、割り込みピンは、画像が撮られた時を示すタイムスタンプを捕捉するために、コントローラ５００によって使用することができる。撮像センサ４５０の撮像出力に、待ち時間を補償するために参照することができる、タイムスタンプを付けることができる（例えば、コントローラ５００のグローバルクロックによって）。さらに、複数の撮像センサ４５０からのタイムスタンプが付けられた撮像出力（例えば、情景１０の異なる部分の）を、同期させ、組み合わせる（例えば、共に縫い合わせる）ことができる。イーサＩＯシステム上で、割り込み時間（割り込みピン上の）を捕捉し、イーサＩＯシステム上のより高いレベルのデバイスおよびソフトウェアが利用可能な状態にすることができる。ロボット１００は、撮像センサ４５０から捕捉されるデータに適用することができる、ＩＥＥＥ１５８８等のクロック同期ストラテジを実装する、マルチノード分散センサ／アクチュエータシステムを含んでもよい。
【０１０５】
ＳＰＩインターフェースおよびイーサＩＯの両方は、メモリアドレス駆動型インターフェースであってもよい。例えば、バイト／ワード／ダブルワードの形態のデータを、ＳＰＩインターフェース上で撮像センサ４５０から読み出し、イーサＩＯシステムのメモリ空間内で利用可能にすることができる。例えば、ＦＰＧＡでは、イーサＩＯシステムのイーサＩＯノードを制御するために、直接メモリアクセス（ＤＭＡ）メモリ等のローカルレジスタおよびメモリを使用することができる。
【０１０６】
場合によっては、ロボット１００は、撮像センサ４５０を左右および／または上下に走査させる必要がある場合がある（例えば、物体１２または塞ぎ状態１６（図１７Ａ）の周囲を見るために）。別個に機動されるロボット１００では、これは、駆動システム２００を用いて、ロボット１００を適所で回転させること、または撮像センサ４５０と関連付けられる鏡、プリズム、可変角度マイクロミラー、もしくはＭＥＭＳミラーアレイを回転させることを伴う場合がある。
【０１０７】
全方向性、魚眼、反射屈折（例えば、放物面鏡、テレセントリックレンズ）、パナモーフミラーおよびレンズ等の光学素子によって、３６０より小さい視野角θｖを有する撮像センサ４５０の視界４５２を、３６０度に拡大することができる。コントローラ５００は、撮像センサ４５０を、とりわけ測距に使用してもよいが、必ずしも人に可視の画像または動画（例えば、ヒューマンコミュニケーションのための）に使用しなくてもよいため、光源１１７２の照射および／または光学素子を通して撮像部１１７４（図１１）によって捕捉される画像の歪み（例えば、ワーピング）は、測距に許容可能である（例えば、３Ｄスペックルカメラ１３００および／または３Ｄ  ＴＯＦカメラ１５００におけるように）。
【０１０８】
場合によっては、撮像センサ４５０は、黒色の物体１２、様々なアルベドの表面、高反射性の物体１２、頑丈な３Ｄ構造、自己相似もしくは周期構造、または視界４５２もしくはそれをちょうど越えた物体（例えば、水平および垂直視界角またはその外側の）を認識し、測距することが困難である場合がある。そのような状況では、撮像センサ４５０を補うために、またはその冗長としての機能を果たすために、センサシステム４００の他のセンサを使用することができる。
【０１０９】
いくつかの実現形態では、光源１１７２（例えば、３Ｄスペックルカメラ１３００および／または３Ｄ  ＴＯＦカメラ１５００の）は、赤外線（ＩＲ）レーザ、ＩＲパターン照明器、または他のＩＲ照明器を含む。黒色の物体、特に黒色の布またはカーペットは、ＩＲを吸収し、撮像部１１７４による認識に十分な強力な反射を返さない場合がある。この場合、黒色の物体の認識を改善するために、感知（ソナー等）の二次モード、または表面アルベド差を自己較正するための技法のいずれかが必要である場合がある。
【０１１０】
高反射性の物体１２または著しく鏡面反射性の主要部を伴う物体１２（例えば、円筒形または球形）は、距離撮像センサ４５０が測距することを困難にする場合がある。同様に、撮像センサ４５０が感知する光の波長を極度に吸収する物体１２も、問題を提示する可能性がある。ガラスで作製されているドアおよび窓等の物体１２は、高反射性であり、測距される際、空き空間（無限範囲）であるか、あるいは第１の非鏡面反射性表面までの反射としての距離であるかのいずれかのように見える可能性がある。これは、ロボット１００が物体１２を障害物として見ない場合があり、結果として、窓またはドアと衝突し、場合によっては、ロボットまたは物体１２を損傷する場合がある。これを回避するために、コントローラ５００は、典型的な窓枠または戸口のサイズおよび形状（直線的な）が合致する表面内の不連続を探す、１つ以上のアルゴリズムを実行してもよい。次いで、これらの表面を、障害物であり、空き空間ではないと推論することができる。ロボットの経路内の反射性の物体を検出するための別の実現形態は、その自己の反射を検出する、反射センサを使用することを含む。障害物または物体１２に注意深く接近すると、鏡面反射性の物体が前途にあるか否か、またはロボットが安全に空間を占領することができるか否かを判定するために、反射センサを使用することができる。
【０１１１】
３Ｄスペックルカメラ１３００の場合では、光源１３１０は、高反射性の物体１２の表面上の認識可能なパターンを形成しない場合がある、または撮像部１３２０は、高反射性の物体１２からのスペックル反射を認識しない場合がある。３Ｄ  ＴＯＦカメラ１５００の場合、高反射性の物体１２は、３Ｄ  ＴＯＦカメラ１５００が、物体１２内で反射される別の物体１２（物体自体というよりはむしろ）までの距離を取得する、マルチパス状況を生じる場合がある。ＩＲ失敗モードを是正するために、センサシステム４００は、音響飛行時間、ミリメートル波レーダ、または情景１０内のさらに小さい反射を使用することができる立体もしくは他の視覚技法を採用してもよい。
【０１１２】
メッシュ物体１２は、撮像センサ４５０が測距することを困難にする場合がある。特定の空隙率のメッシュのすぐ背後に物体１２がない場合、メッシュは、固体障害物１２のように見える。しかしながら、物体１２がメッシュの背後に通過する場合、および３Ｄスペックルカメラ１３００の場合、スペックルは、メッシュの背後の物体１２から反射することができ、物体は、メッシュの背後であるにも関わらず、メッシュの代わりに深度マップに表示される。以前にメッシュの識別に寄与した点に関する情報（物体１２がメッシュの背後に通過する前）が利用可能である場合、将来の占領マップにメッシュの位置を登録するために、そのような情報を使用することができる。様々な距離の受信されるスペックルマップの確率的相関に関する情報を受信することによって、コントローラ５００は、撮像センサ４５０と直線状にある複数の多孔質の、またはメッシュのような物体１２の位置を判定し得る。
【０１１３】
コントローラ５００は、色／サイズ／寸法小塊合致に、撮像センサ４５からの撮像データを使用してもよい。情景１０内の別個の物体１２の識別は、ロボット１００が衝突を回避するだけでなく、また、物体１２を探索することも可能にする。ヒューマンインターフェースロボット１００は、住居またはオフィス環境の背景において、人および標的物体１２を識別する必要がある場合がある。コントローラ５００は、情景１０内の連続物体１２をもたらすために、撮像センサ４５０の撮像データから得られる深度マップ（単数または複数）に、マップが単純なグレースケールマップであるかのうように、１つ以上のカラーマップ小塊発見アルゴリズムを実行し、同一の「色」（つまり、深度の連続性）を探してもよい。物体１２をどのように区分化するかの決定を促進するために、カラーマップを使用することは、色空間での区分化、ならびに深度空間での区分化を可能にすることによって、物体合致をさらに増強し得る。コントローラ５００は、最初に深度によって物体１２を検出し、次いで、色によって物体１２をさらに区分化してもよい。これは、ロボット１００が、異なる光学的品質を伴う、近接する、または相互に寄り掛かる２つの物体１２を区別することを可能にする。
【０１１４】
センサシステム４００が、物体検出のための撮像センサ４５０（例えば、カメラ）を１つのみ含む実現形態では、撮像センサ４５０は、情景質感の不在下で、表面の撮像に問題を有する場合があり、情景のスケールを解像できない場合がある。さらに、スペックルカメラ１３００では、物体１２の鏡および／または鏡面主要部は、撮像部１１７４のピクセル１１７４ｐのグループを飽和させる（例えば、捕捉される画像の対応する部分を飽和させる）可能性があり、カラー画像では、鏡面主要部は、異なる視点から異なって見える可能性があり、それによって、画像合致を妨害する。
【０１１５】
物体検出に２つ以上のセンサを使用する、または統合することは、相対的により強固かつ冗長なセンサシステム４００を提供することができる。例えば、フラッシュＬＡＤＡＲは、一般的に、低ダイナミックレンジを有し、回転スキャナは、一般的に、長い検査時間を有するが、これらのタイプのセンサは、物体検出に有用である可能性がある。いくつかの実現形態では、センサシステム４００は、コントローラ５００と通信している撮像センサ４５０（例えば、３Ｄスペックルカメラ１３００および／または３Ｄ  ＴＯＦカメラ１５００）に加えて、フラッシュＬＡＤＡＲおよび／または回転スキャナを含む。コントローラ５００は、物体１２を識別する、ロボット１００からの物体１２の距離を判定する、物体１２の表面の３Ｄマップを構築する、および／または占領マップ１７００を構築もしくは更新するために、撮像センサ４５０、ならびにフラッシュＬＡＤＡＲおよび／または回転スキャナからの検出信号を使用してもよい。距離範囲を初期化する、低質感の領域を埋める、深度不連続性を検出する、および／もしくはスケールを固定することによって、いかなるカラーまたは立体カメラの弱点にも対処するために、３Ｄスペックルカメラ１３００および／または３Ｄ  ＴＯＦカメラ１５００を使用することができる。
【０１１６】
３Ｄスペックルカメラ１３００を使用する実施例では、スペックル放射部１３１０によって放射されるスペックルパターンは、撮像部１３２０に対して回転不変であってもよい。さらに、３Ｄスペックルカメラ１３００および／または３Ｄ  ＴＯＦカメラ１５００と共に登録される追加のカメラ１３００（例えば、カラーまたは立体カメラ）は、自我回転、傾斜、奥行き、および／またはスケール（距離）を扱うために、一部または完全にスケール回転アフィン不変である、特徴検出器を採用してもよい。スケール不変特徴変換（またはＳＩＦＴ）は、画像内の局所特徴を検出および／または記述するためのアルゴリズムである。コントローラ５００によって、物体認識、ロボットマッピングおよびナビゲーション、３Ｄモデル化、ジェスチャ認識、ビデオ追跡、ならびにマッチムービングに、ＳＩＦＴを使用することができる（センサシステム４００からのデータを用いて）。ＳＩＦＴは、スケール不変、回転不変変換であるため、情景１０内の特徴にシグネチャを定置することを可能にし、それらがさらに離れるか、または回転される場合にさえ、情景１０内の識別された特徴を再獲得することを助長することができる。例えば、通常の画像へのＳＩＦＴの適用は、移動した物体１２（例えば、顔もしくはボタンまたはあるテキスト）の認識が、物体１２が同一の輝度または色パターンを有し、より大きい、もしくはより小さい、または回転されただけであるということを識別することを可能にする。ある角度から物体１２を識別するために、アフィン不変であり、スキュー（skew）または歪みを考慮することができる、他の変換が採用されてもよい。センサシステム４００および／またはコントローラ５００は、ＳＩＦＴ、ＲＩＦＴ、アフィンＳＩＦＴ、ＲＩＦＴ、Ｇ−ＲＩＦ、ＳＵＲＦ、ＰＣＡ−ＳＩＦＴ、ＧＬＯＨ、ＰＣＡ−ＳＩＦＴ、ＦＡＳＴコーナー検出器および／もしくはＳｃａｌａｂｌｅ  Ｖｏｃａｂｕｌａｒｙ  Ｔｒｅｅを用いたＳＩＦＴ、ならびに／またはＩｒｒｅｇｕｌａｒ  Ｏｒｉｅｎｔａｔｉｏｎ  Ｈｉｓｔｏｇｒａｍ  Ｂｉｎｎｉｎｇを用いたＳＩＦＴを採用することによって、スケール不変特徴認識（例えば、カラーまたは立体カメラを用いた）を提供してもよい。
【０１１７】
いくつかの実現形態では、コントローラ５００は、物体検出および／または識別のために、ＳＩＦＴおよび／もしくは他の変換を採用するプログラムまたはルーチンを実行する。コントローラ５００は、画像センサ４５０からカラー、白黒等の、またはＩＲカメラから画像データを受信してもよい。いくつかの実施例では、画像センサ４５０は、スペックル測距の利益なく特徴を識別するために、スペックル照射なく画像データを提供することができる、３ＤスペックルＩＲカメラである。コントローラ５００は、スペックル測距から３Ｄ情景内に以前にマップされた特徴もしくは物体１２を識別またはタグ付けすることができる。カメラを用いて撮像された特徴に適用されるＳＩＦＴをフィルタ処理し、認識率を改善するために、および／またはスケール不変を簡略化するため（運動および距離の変化の両方が既知であり、スケールと関連する可能性があるため）に、深度マップを使用することができる。ＳＩＦＴ様の変換は、慣性追跡、走行距離計測、自己受容、および／または標識参照を有するロボットが、追跡することが可能であり得る、フレームからフレームで位置変化が正規化および／または偏移された深度マップデータで有用であり得る。
例えば、スケールおよび回転不変のために適用される変換は、深度マップが特徴の方向への移動量によってインデックスを付けられる場合、深度マップ内の局所特徴を認識するのに、依然として効果的であり得る。
【０１１８】
本明細書に記載されるものと組み合わせることが可能であり得る、３ＤデータのＳＩＦＴのような、または他の特徴記述子における他の詳細および特徴は、内容全体が参照することによって本明細書に組み込まれる、Ｓｅ，  Ｓ．；  Ｌｏｗｅ，  Ｄａｖｉｄ  Ｇ．；  Ｌｉｔｔｌｅ，  Ｊ．  （２００１）．  “Ｖｉｓｉｏｎ−ｂａｓｅｄ  ｍｏｂｉｌｅ  ｒｏｂｏｔ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ  ｕｓｉｎｇ  ｓｃａｌｅ−ｉｎｖａｒｉａｎｔ  ｆｅａｔｕｒｅｓ”．  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｒｏｂｏｔｉｃｓ  ａｎｄ  Ａｕｔｏｍａｔｉｏｎ  （ＩＣＲＡ）．  ２．  ｐｐ．  ２０５１、またはＲｏｔｈｇａｎｇｅｒ，  Ｆ；  Ｓ．  Ｌａｚｅｂｎｉｋ，  Ｃ．  Ｓｃｈｍｉｄ，  ａｎｄ  Ｊ．  Ｐｏｎｃｅ：  ２００４．  ３Ｄ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌｉｎｇ  ａｎｄ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ｕｓｉｎｇ  Ｌｏｃａｌ  Ａｆｆｉｎｅ−Ｉｎｖａｒｉａｎｔ  Ｉｍａｇｅ  Ｄｅｓｃｒｉｐｔｏｒｓ  ａｎｄ  Ｍｕｌｔｉ−Ｖｉｅｗ  Ｓｐａｔｉａｌ  Ｃｏｎｓｔｒａｉｎｔｓ，  ＩＣＣＶ、またはＩｒｙｎａ  Ｇｏｒｄｏｎ  ａｎｄ  Ｄａｖｉｄ  Ｇ．  Ｌｏｗｅ，  “Ｗｈａｔ  ａｎｄ  ｗｈｅｒｅ：  ３Ｄ  ｏｂｊｅｃｔ  ｒｅｃｏｇｎｉｔｉｏｎ  ｗｉｔｈ  ａｃｃｕｒａｔｅ  ｐｏｓｅ，”  Ｔｏｗａｒｄ  Ｃａｔｅｇｏｒｙ−Ｌｅｖｅｌ  Ｏｂｊｅｃｔ  Ｒｅｃｏｇｎｉｔｉｏｎ，  （Ｓｐｒｉｎｇｅｒ−  Ｖｅｒｌａｇ，  ２００６），  ｐｐ．  ６７−８２に見ることができる。
【０１１９】
転倒を含む、人の行為認識における３Ｄ  ＳＩＦＴに好適な技法における他の詳細および特徴は、内容全体が参照することによって本明細書に組み込まれる、Ｌａｐｔｅｖ，  Ｉｖａｎ  ａｎｄ  Ｌｉｎｄｅｂｅｒｇ，  Ｔｏｎｙ  （２００４）．  “Ｌｏｃａｌ  ｄｅｓｃｒｉｐｔｏｒｓ  ｆｏｒ  ｓｐａｔｉｏ−ｔｅｍｐｏｒａｌ  ｒｅｃｏｇｎｉｔｉｏｎ”．  ＥＣＣＶ’０４  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｓｐａｔｉａｌ  Ｃｏｈｅｒｅｎｃｅ  ｆｏｒ  Ｖｉｓｕａｌ  Ｍｏｔｉｏｎ  Ａｎａｌｙｓｉｓ，  Ｓｐｒｉｎｇｅｒ
Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，  Ｖｏｌｕｍｅ  ３６６７．  ｐｐ．  ９１−１０３、Ｉｖａｎ  Ｌａｐｔｅｖ，  Ｂａｒｂａｒａ  Ｃａｐｕｔｏ，  Ｃｈｒｉｓｔｉａｎ  Ｓｃｈｕｌｄｔ  ａｎｄ  Ｔｏｎｙ  Ｌｉｎｄｅｂｅｒｇ  （２００７）．  “Ｌｏｃａｌ  ｖｅｌｏｃｉｔｙ−ａｄａｐｔｅｄ  ｍｏｔｉｏｎ  ｅｖｅｎｔｓ  ｆｏｒ  ｓｐａｔｉｏ−ｔｅｍｐｏｒａｌ  ｒｅｃｏｇｎｉｔｉｏｎ”．  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｉｍａｇｅ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ  １０８：  ２０７−２２９、Ｓｃｏｖａｎｎｅｒ，  Ｐａｕｌ；  Ａｌｉ，  Ｓ；  Ｓｈａｈ，  Ｍ  （２００７）．  “Ａ  ３−ｄｉｍｅｎｓｉｏｎａｌ  ｓｉｆｔ  ｄｅｓｃｒｉｐｔｏｒ  ａｎｄ  ｉｔｓ  ａｐｐｌｉｃａｔｉｏｎ  ｔｏ  ａｃｔｉｏｎ  ｒｅｃｏｇｎｉｔｉｏｎ”．  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １５ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍｕｌｔｉｍｅｄｉａ，  ｐｐ．  ３５７−３６０、Ｎｉｅｂｌｅｓ，  Ｊ．  Ｃ．  Ｗａｎｇ，  Ｈ．  ａｎｄ  Ｌｉ，  Ｆｅｉ−Ｆｅｉ  （２００６）．  “Ｕｎｓｕｐｅｒｖｉｓｅｄ  Ｌｅａｒｎｉｎｇ  ｏｆ  Ｈｕｍａｎ  Ａｃｔｉｏｎ  Ｃａｔｅｇｏｒｉｅｓ  Ｕｓｉｎｇ  Ｓｐａｔｉａｌ−Ｔｅｍｐｏｒａｌ  Ｗｏｒｄｓ”．  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｂｒｉｔｉｓｈ  Ｍａｃｈｉｎｅ  Ｖｉｓｉｏｎ  Ｃｏｎｆｅｒｅｎｃｅ  （ＢＭＶＣ）．  Ｅｄｉｎｂｕｒｇｈに見ることができる。
【０１２０】
コントローラ５００は、深度不連続性による穴を埋めるため、および３Ｄモデルの計測基準スケールを固定するために、物体１２の表面の３Ｄマップを構築する際、撮像センサ４５０（例えば、深度マップセンサ）を使用してもよい。センサ姿勢を推定するために、深度マップセンサ距離データで向上された運動からの構造化（Ｓｔｒｕｃｔｕｒｅ−ｆｒｏｍ−ｍｏｔｉｏｎ）が使用されてもよい。典型的な運動からの構造化パイプラインは、視点不変特徴推定、カメラ間特徴合致、およびバンドル調整を含んでもよい。
【０１２１】
カラー／立体カメラ（例えば、３Ｄスペックルカメラ１３００、および／またはＴＯＦカメラ１５００）の特徴を撮像センサ４５０と組み合わせるソフトウェアソリューションは、（１）センサ姿勢推定、（２）深度マップ推定、および（３）３Ｄメッシュ推定を含んでもよい。センサ姿勢推定では、各画像捕捉のセンサパッケージの位置および体位が判定される。深度マップ推定では、各画像の高解像度深度マップが取得される。３Ｄメッシュ推定では、関心物体を識別するために、センサ姿勢の推定、および深度マップを使用することができる。
【０１２２】
いくつかの実現形態では、カラーまたは立体カメラ３２０（図９）および３Ｄスペックル１３００または３Ｄ  ＴＯＦカメラ１５００が、共に登録されてもよい。１メートルの隔離距離および４５度の視界４５２は、妥当な回路時間および視野間の重なりをもたらし得る。５０パーセントの検出に少なくとも２つのピクセルが必要とされる場合、４５度の視界４５２を有するレンズを有する、少なくとも１メガピクセル解像度のカラーカメラが、６０度以上の視界４５２には比例してより大きい解像度のカラーカメラが使用されてもよい。
【０１２３】
深度マップセンサは、比較的低い解像度および距離精度を有する場合があるが、カラー／立体画像からのピクセルの集合に、正確な表面を確実に割り当てることができる。これは、質感の欠如による立体視覚エラーを低減することができ、また、距離を例えば５ｃｍ間隔に境界付けすることによって、視差探索距離および演算費用を低減することもできる。
【０１２４】
再び図１０Ａを参照すると、近隣の物体をマップするために第１の３−Ｄ画像センサ４５０ａを使用することができ、離れた物体をマップするために第２の３−Ｄ画像センサ４５０ｂを使用することができるので、ロボットの環境のマッピングを改善して、ロボットマップを作成するために、第１および第２の３−Ｄ画像センサ４５０ａ、４５０ｂを使用することができる。
【０１２５】
図１７Ａおよび図１７Ｂを参照すると、場合によっては、ロボット１００は、情景１０および／もしくは作業領域５内の物体１２の占領マップ１７００を受けとる、またはロボットコントローラ５００は、撮像センサ４５０（例えば、第２の３−Ｄ画像センサ４５０ｂ）から経時的に受けとられる画像データおよび／または画像深度データに基づき、占領マップ１７００を生成する（および更新してもよい）。情景１０（例えば、ロボット１００の周囲の環境）内のロボット１００の位置特定に加えて、ロボット１００は、センサシステム４００を使用して、連続空間（例えば、作業領域５）内の他の点に移動してもよい。ロボット１００は、ロボット１１０の周囲の近隣領域をマップし、比較的近い物体１２を判別するための短距離型の撮像センサ４５０ａ（例えば、図１および図３に示されるように、胴部１４０の下側上に搭載される）と、ロボット１００の周囲の比較的より大きい領域をマップし、比較的遠い物体１２を判別するための長距離型の撮像センサ４５０ｂ（例えば、図１および図３に示されるように、頭部１６０上に搭載される）とを含んでもよい。ロボット１００は、情景１０内の既知の物体１２ならびに塞ぎ１６（例えば、物体１２が確認されるべきであってもなくても、現在の見晴らしの利く点からはできない場所）を識別するために、占領マップ１７００を使用することができる。ロボット１００は、塞ぎ１６内の新たな物体１２または任意の物体１２の位置を確認するために、情景１０内の塞ぎ１６または新たな物体１２を登録し、塞ぎ１６または新たな物体１２を迂回することを試みることができる。さらに、占領マップ１７００を使用して、ロボット１００は、情景１０内の物体１２の移動を判定し、追跡することができる。例えば、撮像センサ４５０、４５０ａ、４５０ｂは、情景１０内の物体１２のマップされた位置を検出しない間に、情景１０内の物体１２の新たな位置１２´を検出してもよい。ロボット１００は、物体１２の位置を確認するために、古い物体１２の位置を塞ぎ１６として登録し、塞ぎ１６を迂回することを試みることができる。ロボット１００は、新たな画像深度データを以前の画像深度データ（例えば、マップ１７００）と比較し、情景１０内の物体１２の位置の信頼レベルを割り当ててもよい。情景１０内の物体１２の位置信頼レベルを、閾値期間の後、タイムアウトさせる、または低下させることができる。センサシステム４００は、センサシステム４００の各撮像サイクルの後、各物体１２の位置信頼レベルを更新することができる。いくつかの実施例では、塞ぎ検出期間（例えば、１０秒間未満）内に検出される新たな塞ぎ１６（例えば、占領マップ１７００に欠けている物体１２）は、情景１０内の「生きている」物体１２（例えば、移動物体１２）を表してもよい。
【０１２６】
いくつかの実現形態では、情景１０内の検出される第１の物体１２ａの背後に位置する第２の関心物体１２ｂは、情景１０内の塞ぎ１６のために、最初は未検出であり得る。塞ぎ１６は、容易に検出可能ではない、または撮像センサ４５０、４５０ａ、４５０ｂによって見ることができない、情景１０内の領域であり得る。示される実施例では、ロボット１００のセンサシステム４００（例えば、または撮像センサ４５０、４５０ａ、４５０ｂ等のその一部分）は、情景１０を見るために、視野角θV（０度〜３６０度の任意の角度であることができる）を有する視界４５２を有する。いくつかの実施例では、撮像センサ４５０は、３６０度視野角θVのために、全方向性光学素子を含み、一方、他の実施例では、撮像センサ４５０、４５０ａ、４５０ｂは、３６０度未満（例えば、約４５度〜１８０度）の視野角θVを有する。視野角θVが３６０度未満である実施例では、撮像センサ４５０、４５０ａ、４５０ｂ（またはその構成要素）は、３６０度の視野角θVを達成するために、ロボット本体１１０に対して回転してもよい。撮像センサ４５０、４５０ａ、４５０ｂは、水平視野角θV−Ｈと同一の、または異なる、垂直視野角θV-Vを有してもよい。例えば、撮像センサ４５０、４５０ａ、４５０ｂは、少なくとも４５度の水平視界θV−Ｈおよび少なくとも４０度の垂直視界θV-Vを有してもよい。いくつかの実現形態では、撮像センサ４５０、４５０ａ、４５０ｂまたはその部分は、ロボット本体１１０および／または駆動システム２００に対して移動することができる。さらに、第２の物体１２ｂを検出するために、ロボット１００は、第２の物体１０ｂの検出を可能にする、見晴らしの利く点を取得するために、撮像センサ４５０、４５０ａ、４５０ｂを、情景１０の周囲で１つ以上の方向に駆動させることによって（例えば、作業面５上で平行移動させる、および／または回転させることによって）移動させてもよい。ロボット移動または撮像センサ４５０、４５０ａ、４５０ｂもしくはその部分の独立移動は、単眼問題も解決し得る。
【０１２７】
作業領域５内の物体１２の検出される位置または追跡される移動に、信頼レベルが割り当てられてもよい。例えば、占領マップ１７００を生成または更新すると、コントローラ５００は、マップ１７００上の各物体１２に信頼レベルを割り当ててもよい。信頼レベルは、マップ１７００上に示される、物体１２が作業領域５内に実際に位置する確率に正比例することができる。信頼レベルは、物体１２を検出するために使用されるセンサの数およびタイプ等の多数の要因によって判定され得る。例えば、接触センサ４３０は、ロボット１００による物体１２との実際の接触を感知するため、接触センサ４３０は、最高レベルの信頼を提供し得る。撮像センサ４５０は、近接センサ４３０より高い場合がある、異なるレベルの信頼を提供し得る。いずれか１つのセンサよりも相対的に高いレベルの信頼を提供するために、センサシステム４００の２つ以上のセンサから受けとられるデータを集約または蓄積することができる。
【０１２８】
走行距離計測は、位置の経時的な変化（移動距離）を推定するために、アクチュエータの移動からのデータを使用するものである。いくつかの実施例では、車輪回転、したがってロボット１００による移動距離を計測するために、駆動システム２００上にエンコーダが配置される。コントローラ５００は、物体位置の信頼レベルの評価に、走行距離計測を使用してもよい。いくつかの実現形態では、センサシステム４００は、ロボット１００による移動距離を感知するための走行距離計および／または角速度センサ（例えば、ジャイロスコープまたはＩＭＵ４７０）を含む。ジャイロスコープは、角運動量保存の原理に基づき、配向を計測または維持するためのデバイスである。コントローラ５００は、作業領域５内および／または占領マップ１７００上のロボット１００の位置を判定するために、走行距離計および／または角速度センサからそれぞれ受信される走行距離計測および／またはジャイロ信号を使用してもよい。いくつかの実施例では、コントローラ５００は、デッドレコニングを使用する。デッドレコニングとは、以前に判定された位置に基づき、現在の位置を推定し、既知の、または推定される速度に基づき、経過時間にわたりその位置を前進させる、一連のプロセスである。作業領域５内のロボット位置（例えば、走行距離計測、ジャイロスコープ等を介して）、ならびに作業領域５内の１つ以上の物体１２の感知される位置（センサシステム４００を介して）を知ることによって、コントローラ５００は、占領マップ１７００上および作業領域５内の物体１２の位置または移動の相対的により高い信頼レベル（走行距離計測またはジャイロスコープを使用しないものに対して）を評価することができる。
【０１２９】
車輪運動に基づく走行距離計測は、電気的にノイズが多い可能性がある。コントローラ５００は、駆動システム２００の車輪ベースの走行距離計測から独立して、視覚走行距離計測を通してロボット運動を演算するために、撮像センサ４５０から、ロボット１００の周囲の環境または情景１０の画像データを受信してもよい。視覚走行距離計測は、撮像センサ４５０の運動を判定するために、オプティカルフローを使用することを必要とする場合がある。コントローラ５００は、車輪ベースの走行距離計測におけるいかなるエラーも修正するために、撮像センサ４５０の撮像データに基づいて計算された運動を使用することができ、したがって、改善されたマッピングおよび運動制御を可能にする。視覚走行距離計測は、撮像センサ４５０が、捕捉された画像（単数または複数）内の特徴を追跡することができない場合、低質感または低光情景１０における制限を有する場合がある。
【０１３０】
本明細書に記載されるものと組み合わせることが可能であり得る、走行距離計測および撮像システムにおける他の詳細ならびに特徴は、内容全体が参照することによって本明細書に組み込まれる、米国特許第７，１５８，３１７号（「被写界深度」撮像システムを記載する）、および米国特許第７，１１５，８４９号（波面コード化界面コントラスト撮像システムを記載する）に見ることができる。
【０１３１】
図１８を参照すると、いくつかの実現形態では、撮像センサ４５０は、物体が検出されない撮像センサ４５０の周囲の空間体積である、撮像死角４５３を有する。いくつかの実施例では、撮像死角４５３は、撮像センサ４５０に直近し、撮像軸４５５の周囲を中心とする、それぞれ第１の角度α、第２の角度β、および半径ＲSによって画定される、約５７°×４５°×５０ｃｍの空間体積を含む。死角４５３は、視界４５２内の撮像センサ４５０と撮像センサ４５０の検出界４５７との間に位置付けられる。
【０１３２】
図１９に示される実施例では、ロボット１００は、胴部１４０上に配置される、第１および第２の撮像センサ４５０ａ、４５０ｂ（例えば、３Ｄ深度撮像センサ）を含む。両方の撮像センサ４５０ａ、４５０ｂは、順駆動方向Ｆに沿った視界４５２を有するように配設される。第１の撮像センサ４５０ａは、基部１２０または脚部１３０と接触する前に物体を検出するように、その撮像軸４５５を実質的に下向きかつロボット１００から離れるよう照準を定めるように（例えば、地面および／またはロボットの下方部分の周囲上の領域を見るように）配設される。第１の撮像センサ４５０ａを下向きに角度付けることによって、ロボット１００は、ロボット１００の前方向への短期移動に適した、ロボット１００の直前または隣接領域における隙間のないセンサ対応範囲を得る。第２の撮像センサ４５０ｂは、その撮像軸４５５が、順駆動方向Ｆに沿って実質的に地面と平行を指す状態で配設される（例えば、ロボット１００の中間および／または上方部分に接近する物体を検出するように）。他の実施例では、第２の撮像センサ４５０ｂは、その撮像軸４５５が、地面の上方または地面から離れるようにさらに上向きを指す状態で配設される。
【０１３３】
撮像センサ４５０ａ、４５０ｂが死角４５３を有する場合、ロボット１００に近接または隣接する物体を検出しない可能性が存在する。図１０Ａに示される実施例では、ロボット１００は、首部１５０を介して回動および傾斜させることができる頭部１６０上に搭載される撮像センサ４５０を含む。結果として、ロボット１００は、物体検出のために、他の撮像センサ４５０ａ、４５０ｂの死角４５３を見るように、頭部上の撮像センサ４５０を移動させることができ、したがって、ロボット１００の周囲の完全な、または実質的に完全な視界４５２を提供する。頭部１６０上への撮像センサ４５０の定置が可能ではない場合、または死角４５３を見るように撮像センサ４５０を移動させることができない場合、死角４５３を見るために、他の技法が採用されてもよい。死角４５３に加えて、撮像センサ４５０の視界４５２内のいくつかの物体は、サイズ、形状、反射率、および／または色のために、検出することが困難である可能性がある。例えば、時に、高反射性または鏡面物体は、検出することが困難である可能性がある。他の実施例では、非常に暗い、または黒色の物体は、検出することが困難である可能性がある。さらに、細長い物体（すなわち、非常に細い輪郭を有する）は、検出することが困難である場合がある。検出が難しい物体は、複数の角度から見られる、または複数のセンサから感知される際、相対的により検出可能になる場合がある。
【０１３４】
図１、図４Ｃ、および図１０Ａに示される実施例では、ロボットは、基部本体１２０の周囲に配置され、かつ上（例えば、実質的にＺ方向）を向くように配設され、任意選択により、Ｚ軸から離れるように外向きに角度付けられ、したがって、ロボット１００の周囲に検出カーテン４１２を生じる、１つ以上のソナー近接センサ４１０（例えば、４１０ａ〜４１０ｉ）を含む。ソナー近接センサ４１０は、各撮像センサ４５０の死角４５３内の物体を感知するように配設し、照準を定めることができる。
【０１３５】
いくつかの実現形態では、ロボット１００は、対応する死角４５３を見る能力を得るために、撮像センサ４５０、４５０ａ、４５０ｂを移動または回動させる（コントローラ５００またはセンサシステム４００を介して）。撮像センサ４５０は、その関連撮像軸４５５を移動させることによって、任意の方向に３６０°（＋／−１８０°）向けることができる。
【０１３６】
いくつかの実施例では、ロボット１００は、いったんは死角４５３であった空間体積の知覚を得るために、各撮像センサ４５０の撮像軸４５５および対応する視界４５２を移動させるように、自体を地面上で機動させる。例えば、ロボット１００は、適所で枢動してもよく、ホロノミックに横方向に移動してもよく、前後に移動してもよく、またはそれらの組み合わせを行ってもよい。追加の実施例では、撮像センサ４５０が、限られた視界４５２および／または検出界４５７を有する場合、コントローラ５００またはセンサシステム４００は、相対的により広いおよび／またはより高い視界を生じさせて、強固なＯＤＯＡを実施するために、撮像センサ４５０を左右および／または上下に走査するように作動させることができる。撮像センサ４５０を回動させること（撮像軸４５５を移動させることによって）は、関連する水平および／または垂直視界を増加させ、撮像センサ４５０が、その死角４５３のすべてまたは一部分だけでなく、ロボット１００上の別の撮像センサ４５０の死角４５３を見ることも可能にし得る。
【０１３７】
いくつかの実施例では、各撮像センサ４５０は、撮像センサ４５０を走査運動で移動させる、関連アクチュエータ（図示せず）を有してもよい。追加の実施例では、撮像センサ４５０は、撮像センサ４５０の視界４５２および／または検出界４５７を増加させるように、関連回転する鏡、プリズム、可変角度マイクロミラー、またはＭＥＭＳミラーアレイを含む。
【０１３８】
図２０に示される実施例では、胴部１４０は、脚部１３０上でＺ軸を中心に枢動し、ロボット１００が、胴部１４０上に配置される撮像センサ４５０を、基部１２０によって画定される順駆動方向Ｆに対して移動させることを可能にする。いくつかの実施例では、脚部１３０は、Ｚ軸を中心に枢動し、したがって、Ｚ軸を中心に胴部１４０を移動させる。
いずれの実施例でも、コントローラ５００と通信しているアクチュエータ１３８（回転アクチュエータ等）は、胴部１４０を基部１２０に対して回転させる（例えば、胴部１４０を脚部１３０に対して回転させるか、および／または脚部１３０を基部１２０に対して回転させるかのいずれかによって）。回転胴部１４０は、撮像センサ４５０を、Ｚ軸を中心に、ロボット１００の周囲の最大で３６０°の視界４５２を提供する回動運動で移動させる。ロボット１００は、胴部１４０を順駆動方向Ｆに対して連続して３６０°または＋／−角度≦１８０°枢動させてもよい。
【０１３９】
図２１を参照すると、いくつかの実現形態では、ロボット１００は、各撮像センサ４５０と関連付けられ、かつ関連撮像センサ４５０の死角４５３内の物体を感知するように配設される、死角センサ４９０を含む。死角センサ４９０は、ソナーセンサ、カメラ、超音波センサ、ＬＩＤＡＲ、ＬＡＤＡＲ、光学センサ、赤外線センサ等であってもよい。示される実施例では、死角センサ４９０は、死角４５３を包囲する、または実質的に包囲する視界４９２を有するように配設される。図２２は、胴部１４０上に撮像センサ４５０に隣接して配置され、かつ死角４５３に延在するその視界４９２を有するように配設される、死角センサ４９０を有する、ロボット１００の上面図を提供する。示される実施例では、死角視界４９２は、死角４５３内の実質的に中心にあるが、しかしながら、他の配設（例えば、中心を外れた）も同様に可能である。
【０１４０】
図２３は、胴部１４０の前方部分１４７上に配置される、死角センサ４９０のアレイを有する、例となるロボット１００を図示する。死角センサ４９０のアレイは、示される死角４５３だけでなく、以前はセンサの視界内ではなかったロボット１００の周囲の追加の領域（例えば、撮像センサ４５０の視界４５２の各側の領域）の対応範囲も提供する。これは、ロボット１００が、近隣の物体を、それらに向かって移動する、または曲がる前に感知することを可能にする。
【０１４１】
図２４に示される実施例では、ロボット１００は、ロボット１００から比較的遠い（例えば、３メートル超の）物体１２を検出するように配設および構成される、少なくとも１つの長距離センサ２１９０を含む。長距離センサ２１９０は、撮像センサ４５０（例えば、比較的長距離の検出のために構成される光学素子またはズームレンズを有する）であってもよい。追加の実施例では、長距離センサ２１９０は、カメラ（例えば、ズームレンズを有する）、レーザ距離計、ＬＩＤＡＲ、レーダ等であってもよい。示される実施例では、ロボット１００は、前方、後方、右、および左駆動方向に沿った対応する視界２１９２を伴って配設される、４つの長距離センサ２１９０を含む。他の配設も同様に可能である。
【０１４２】
遠く離れた物体の検出は、ロボット１００が、障害物である、または物体が接近すると見なされる場合、目的地（例えば、テレビ会議セッションを実行するために人に接近するための）であると見なされる場合に、物体を回避するように、ナビゲーションルーチンを実行することを可能にする（コントローラ５００を介して）。ロボット１００上の撮像センサ（単数または複数）４５０の視界の外の物体の認識は、コントローラ５００が、検出される物体１２を死角４５３内に定置し得る移動を回避することを可能にする。さらに、人追従ルーチンでは、人が撮像センサ４５０の視界の外に移動する際、長距離センサ２１９０が、人を検出し、ロボット１００が、人を撮像センサ４５０の視界４５２内に再び知覚するように機動させることを可能にしてもよい。
【０１４３】
図２５を参照すると、いくつかの実現形態では、コントローラ５００は、相互と通信している制御調停システム５１０ａと、挙動システム５１０ｂとを含む、制御システム５１０を実行する。制御調停システム５１０ａは、アプリケーション５２０を制御システム５１０に動的に追加すること、およびそれから削除することを可能にし、アプリケーション５２０が、いずれかの他のアプリケーション５２０について知る必要なく、それぞれにロボット１００を制御することを可能にすることを促進する。換言すれば、制御調停システム５１０ａは、ロボット１００のアプリケーション５２０と資源５３０との間での簡単な優先制御機構を提供する。資源５３０には、駆動システム２００、センサシステム４００、および／またはコントローラ５００と通信している任意の搭載物もしくは制御可能なデバイスが挙げられる。
【０１４４】
アプリケーション５２０は、ロボット１００（例えば、プロセッサ）上で同時に実行し、ロボット１００を同時に制御するように、ロボット１００のメモリ内に記憶することができる、またはそれに通信することができる。アプリケーション５２０は、挙動システム５１０ｂの挙動６００にアクセスしてもよい。独立して配備されるアプリケーション５２０は、実行時に動的に、かつロボット１００のロボット資源５３０（例えば、駆動システム２００、腕部（単数または複数）、頭部（単数または複数）等）を共有するように組み合わせられる。アプリケーション５２０の間で実行時にロボット資源５３０を動的に共有するために、低レベルポリシーが実装される。ポリシーは、どのアプリケーション５２０が、そのアプリケーション５２０によって要求されるロボット資源５３０の制御を有するか（例えば、アプリケーション５２０の間の優先順位階層）を判定する。アプリケーション５２０は、動的に開始および停止すること、ならびに相互から完全に独立して実行することができる。また、制御システム５１０は、相互を支援するように共に組み合わせることができる、複雑な挙動６００も可能にする。
【０１４５】
制御調停システム５１０ａは、１つ以上の資源コントローラ５４０と、ロボットマネージャ５５０と、１つ以上の制御アービタ５６０とを含む。これらの構成要素は、共通プロセスまたはコンピュータ内にある必要はなく、いずれかの特定の順序で開始される必要はない。資源コントローラ５４０構成要素は、アプリケーション５２０に制御調停システム５１０ａへのインターフェースを提供する。すべての各アプリケーション５２０のためのこの構成要素のインスタンスが存在する。資源コントローラ５４０は、認証、分散資源制御アービタ、コマンドバッファリング等の複雑性を取り除き、カプセル化する。ロボットマネージャ５５０は、任意の特定の時間にどのアプリケーション５２０がロボット資源５３０のいずれかの排他的制御を有するかを制御することによって、アプリケーション５２０の優先順位付けを協調させる。これは、情報の中枢コーディネータであるため、ロボット毎に１つのみ、ロボットマネージャ５５０のインスタンスが存在する。ロボットマネージャ５５０は、資源コントローラ５４０の線形に優先順位付けされた順序を有する、優先順位ポリシーを実装し、ハードウェア制御を提供する、資源制御アービタ５６０を追跡記録する。制御アービタ５６０は、すべての各アプリケーション５２０からコマンドを受信し、アプリケーションの優先順位に基づき、単一のコマンドを生成し、その関連資源５３０にそれを公開する。また、制御アービタ５６０は、その関連資源５３０から状態フィードバックも受信し、それをアプリケーション５２０まで返送する。ロボット資源５３０は、１つ以上のハードウェアコントローラを有する、機能モジュールのネットワーク（例えば、アクチュエータ、駆動システム、およびそれらのグループ）であってもよい。制御アービタ５６０のコマンドは、特定の動作を実施する資源５３０に特定的である。
【０１４６】
現在のロボットの状態を評価するために、重心（ＣＧ）、慣性モーメント、およびロボット１００の様々な部分の慣性の外積を演算するように、コントローラ５００上で実行可能な動力学モデル５７０を構成することができる。また、動力学モデル５７０は、これらの構成要素の形状、重量、および／または慣性モーメントもモデル化してもよい。いくつかの実施例では、動力学モデル５７０は、ロボット１００の様々な重心を計算するために、ロボット１００上に配置され、かつコントローラ５００と通信している、１つ（例えば、加速度計および／またはジャイロ）の慣性モーメントユニット４７０（ＩＭＵ）またはその部分と通信する。コントローラ５００は、ロボット１００およびその構成要素の動作限界を判定するために、他のプログラム５２０または挙動６００と共に、動力学モデル５７０を使用することができる。
【０１４７】
各アプリケーション５２０は、動作選択エンジン５８０と、資源コントローラ５４０と、動作選択エンジン５８０に接続される１つ以上の挙動６００と、動作選択エンジン５８０に接続される１つ以上の動作モデル５９０とを有する。挙動システム５１０ｂは、予測モデル化を提供し、挙動６００が、ロボット動作の見込まれる結果を評価することによって、ロボットの動作を協働して決定することを可能にする。いくつかの実施例では、挙動６００は、複数の源からのセンサフィードバックを、先験的限界および情報と共に、ロボットの許容動作における評価フィードバックに連結する、階層的状態完全評価機能を提供する、プラグイン構成要素である。挙動６００は、アプリケーション５２０にプラグイン可能である（例えば、アプリケーション５２０の中または外にある）ため、アプリケーション５２０または制御システム５１０のいずれかの他の部分を修正することなく、削除および追加することができる。各挙動６００は、独立したポリシーである。挙動６００をより強力にするために、複雑な組み合わせ機能を有することができるように、複数の挙動６００の出力を共に別の入力に添付することが可能である。挙動６００は、ロボット１００の総合的認識の管理可能な部分を実現することが意図される。
【０１４８】
動作選択エンジン５８０は、制御システム５１０の協調要素であり、すべての挙動６００の入力を考慮して、最適な動作を検索する、高速最適動作選択サイクル（予測／修正サイクル）を実行する。動作選択エンジン５８０は、３つの段階、すなわち指名、動作選択検索、および完了を有する。指名段階では、各挙動６００は、動作選択サイクルが開始されたことを通知され、サイクル開始時間、現在の状態、およびロボットアクチュエータ空間の限界を提供される。内部ポリシーまたは外部入力に基づき、各挙動６００は、この動作選択サイクルに関与することを望むか否かを決定する。この段階中、能動的挙動プリミティブのリストが生成され、この入力は、ロボット１００上で実行されるコマンドの選択に影響を及ぼす。
【０１４９】
動作選択検索段階では、動作選択エンジン５８０は、また、動作空間とも称される、利用可能な動作の空間から、実現可能な結果を生成する。動作選択エンジン５８０は、実現可能なコマンド（限界内）のプール、および将来の対象期間の異なる時間ステップでの各コマンドの動作をシミュレーションした結果としての対応する結果を提供するために、動作モデル５９０を使用する。動作選択エンジン５８０は、挙動６００の結果評価に基づき、好ましい結果を計算し、制御調停システム５１０ａに対応するコマンドを送信し、フィードバックとして選択されるコマンドの動作モデル５９０を通知する。
【０１５０】
完了段階では、協働最高スコア結果に対応するコマンドが、ロボット資源５３０上での実行のために資源コントローラ５４０に提示される全般コマンドとして、共に組み合わせられる。将来の評価サイクルで使用されるフィードバックとして、能動的挙動６００に最適結果が提供される。
【０１５１】
センサシステム４００から受信されるセンサ信号は、動作を実行するために、１つ以上の挙動６００との対話を生じさせることができる。例えば、制御システム５１０を使用して、コントローラ５００は、それ自体およびロボット１００が認知しているロボット１００の周囲のいずれかの物体との衝突を回避する、各ロボット構成要素の調整された移動を効率的に達成するように、各ロボット構成要素（例えば、モータまたはアクチュエータ）の動作（または移動コマンド）を、対応する動作空間（例えば、その特定の要素の構成要素の可能な動作または移動の集合）から選択する。コントローラ５００は、イーサＩＯネットワーク等のロボットネットワーク上で、調整されたコマンドを発行することができる。
【０１５２】
制御システム５１０は、ロボット１００が領域の周囲を機動する際、異なる構成／位置でのロボット１００の安定性を最大限にするために、駆動システム２００の適応速度／加速を提供してもよい（例えば、１つ以上の挙動６００を介して）。
【０１５３】
いくつかの実現形態では、コントローラ５００は、進行方向設定および速度設定に従って、ロボット１００を推進する駆動システム２００にコマンドを発行する。１つ以上の挙動６００は、障害物に対処するために、１つが実行するよう選択され得る（単独で、または全般ロボットコマンドとして他のコマンドとの組み合わせで）、実現可能なコマンドの予測結果を評価するために、センサシステム４００から受信される信号を使用してもよい。例えば、近接センサ４１０からの信号は、制御システム５１０に、ロボット１００のコマンドされる速度または進行方向を変更させてもよい。例えば、近隣の壁による近接センサ４１０からの信号は、制御システム５１０が減速させるコマンドを発行するという結果をもたらし得る。別の場合では、椅子との遭遇による接触センサ（単数または複数）からの衝突信号は、制御システム５１０に、進行方向を変更するコマンドを発行させてもよい。他の場合では、接触センサに応えて、ロボット１００の速度設定が低減されなくてもよい、および／または近接センサ４１０に応えて、ロボット１００の進行方向設定が変化されなくてもよい。
【０１５４】
挙動システム５１０ｂは、占領マップ１７００を生成するためのマッピング挙動６００ａと、物体検出障害物回避（ＯＤＯＡ）挙動６００ｂと、ロボット１００の速度設定を調節するように構成される速度挙動６００ｃ（例えば、プロセッサ上で実行可能な挙動ルーチン）と、ロボット１００の進行方向設定を変化させるように構成される進行方向挙動６００ｄとを含んでもよい。速度および進行方向挙動６００ｃ、６００ｄは、同時に、かつ互いに独立して実行するように構成されてもよい。例えば、速度挙動６００ｃは、センサ（例えば、一式（単数または複数）の近接センサ４１０、４２０）のうちの１つをポーリングするように構成されてもよく、進行方向挙動６００ｄは、別のセンサ（例えば、動態隆起センサ）をポーリングするように構成されてもよい。
【０１５５】
図２５および図２６Ａ〜図２６Ｄを参照すると、いくつかの実現形態では、ロボット１００は、目的地位置にナビゲートするために、その局所知覚空間２１００（すなわち、センサシステム４００を通して把握されるロボット１００の周囲の空間）を判別するその能力に依存し、物体検出障害物回避（ＯＤＯＡ）戦略を実行してもよい。センサシステム４００は、ロボット１００に隣接する空間体積から点群を取得することができるようにロボット１００上に位置付けられる、体積点群撮像デバイス４５０によって提供される３次元深度画像データを含む、センサデータを提供してもよい。例えば、体積点群撮像デバイス４５０は、ロボット１００上の地面の上方の２フィート（約６１ｃｍ）を超える高さに位置付けられ、ロボットの移動方向１００の床面Ｇを含む空間体積から点群を取得することができるように方向付けられてもよい。
【０１５６】
ロボット１００（例えば、図２５に示される制御システム５１０）は、その局所知覚空間２１００を３つのカテゴリ、すなわち障害物（黒色）２１０２、未知（灰色）２１０４、および既知の空き（白色）２１０６に分類してもよい。障害物２１０２は、ロボット１００の高さより低い地面Ｇの上方の観測（すなわち、感知）点、および地面Ｇより低い観測点（例えば、穴、段下り等）である。既知の空き２１０６は、３−Ｄ画像センサ４５０が地面Ｇを見ることができる領域に対応する。センサシステム４００内のいくつかまたはすべてのセンサからのデータを、離散化３−Ｄボクセルグリッドに組み合わせることができる。次いで、３−Ｄグリッドを解析し、３つの局所知覚空間分類を伴う２−Ｄグリッド２１０１に変換することができる。図２６Ａは、ロボット１００の静止している間の局所知覚空間２１００の例となる概略図を提供する。３−Ｄボクセルグリッド内の情報は、持続性を有するが、補強されない（例えば、新しいセンサデータによって）場合、経時的に劣化する。ロボット１００が移動している際、持続性のため、ナビゲートするより多くの既知の空き領域２１０６を有する。環境内の一時的な、またはわずかにより古い物体（例えば、歩いている人、センサアーチファクト等）が局所経路計画に使用されないように、３−Ｄ撮像センサ４５０の体積点群データは、数ミリ秒から数秒等の閾値期間の後にタイムアウトしてもよい。
【０１５７】
３−Ｄ撮像センサ４５０が、死角４５３（図２０〜図２４）を有し、ロボット１００が、全体が死角４５３（図２６Ａ）内の非一時的な物体１２のすぐ隣で自体を機動させる際、制御システム５１０は、その非一時的な物体１２と関連付けられるセンサデータをタイムアウトさせ、したがって、もはや物体１２をナビゲーション目的の障害物２１０２として認識しなくてもよい。死角センサ（単数または複数）４９０等のセンサシステム４００の他のセンサが、物体１２を検出することが可能であり得るが、制御システム５１０は、死角４５３内のその物体１２と関連付けられるセンサデータのデータタイムアウトを一時中断する、ＯＤＯＡ戦略を実行してもよい。
【０１５８】
例えば、制御システム５１０は、障害物２１０２が、死角４５３またはロボット１００に直接近接する領域内にあると把握される際、通常は閾値期間の後にタイムアウトする、局所知覚２１００内の障害物２１０２（例えば、物体１２）と関連付けられるセンサデータのデータタイムアウトを一時中断してもよい。制御システム５１０は、１つ以上の死角センサ４９０またはセンサシステム４００の他のセンサ（単数または複数）を近場センサとして使用して、死角４５３内の障害物２１０２に対応する物体１２の存在を判定してもよい。制御システム５１０は、ロボット１００が、その位置から離れるように移動した後、および／または死角センサ（単数または複数）４９０が、物体１２が死角４５３の外へ移動したことを検出した後にのみ、この場合も同様に、その物体１２と関連付けられるセンサデータを劣化またはタイムアウトさせてもよい。これは、制御システム５１０が、障害物がロボット１００の死角４５３内にある可能性を考慮する、物体検出障害物回避（ＯＤＯＡ）ナビゲーション戦略を実行することを可能にする。
【０１５９】
制御システム５１０の物体検出障害物回避（ＯＤＯＡ）ナビゲーション戦略は、コマンドから結果としてもたらされ得る可能性のあるロボット位置を承認または拒否することを含んでもよい。異なるコマンドの多くのレベルの深さの可能性のあるロボット経路２１１０を生成し、各レベルでのロボット位置をもたらすことができる。図２６Ｂは、ロボット１００の移動している間の局所知覚空間２１００の例となる概略図を提供する。ＯＤＯＡ挙動６００ｂ（図２５）は、各予測ロボット経路２１１０を評価することができる。好ましい結果および対応するロボットコマンドを判定するために、動作選択エンジン５８０によって、これらの評価を使用することができる。例えば、ロボット経路２１１０内の各ロボット位置２１２０について、ＯＤＯＡ挙動６００ｂは、ロボット１００の対応する位置２１２０の周囲の境界形状２１０７（例えば、衝突四角形、三角形、または円形）内のグリッド２１０１内の各セル２１０３を識別することと、各セル２１０３の分類を受信することとを含む、物体検出および障害物回避のための方法を実行することができる。障害物２１０２または未知２１０４に分類される各セル２１０３について、セル２１０３に対応するグリッド点２１０５を取り出し、グリッド点２１０５がロボット１００の位置２１２０の周囲の境界形状２１０７（例えば、衝突円形）内であるか否かを判定することによって、衝突チェックを実行する。グリッド点２１０５が境界形状２１０７内である場合、本方法は、グリッド点２１０５が、三角形に形状化される境界形状２１０７（例えば、ロボット１００を三角形にモデル化することができる）内であるか否かの３点比較試験を実行することをさらに含む。グリッド点２１０５が衝突三角形２１０７内である場合、本方法は、グリッド点２１０５を拒否することを含む。ロボット位置２１２０が、ロボット経路２１１０上の親グリッド点２１０５のセンサシステム視界４０５の内側である場合、「未知」グリッド点２１０５は、ロボット１００がこれらのグリッド点２１０５に到達する時までに、それらが既知であると想定されるため、無視される。
【０１６０】
本方法は、あるロボット位置２１２０から次のロボット位置への移行中にロボットが衝突するのを防止するために、ロボット経路２１１０内の連続ロボット位置２１２０の間のロボット経路領域（例えば、長方形によってモデル化される）内に、いずれかの障害物衝突が存在するか否かを判定することを含んでもよい。
【０１６１】
図２６Ｃは、ロボット１００の局所知覚空間２１００およびセンサシステム視界４０５（制御システム５１０は、ロボット経路判定に、第１および第２の３−Ｄ画像センサ４５０ａ、４５０ｂ等の特定のセンサのみを使用してもよい）の概略図を提供する。駆動システム２００のホロノミック可動性を利用して、ロボット１００は、センサシステム視界４０５が能動的に対応範囲としない方向に駆動することを可能にするために、既知の地面Ｇの持続性を使用することができる。例えば、ロボット１００が、第１および第２の３−Ｄ画像センサ４５０ａ、４５０ｂが前方を指す状態で、静止して座っている場合、ロボット１００は、側方向に駆動することができるが、ロボット１００の側方に未知に分類される領域を示す図２６Ｃに示される実施例に図示されるように、ロボット１００がその側方に何があるかを知らないため、制御システム５１０は、提案される移動を拒否する。ロボット１００が、第１および第２の３−Ｄ画像センサ４５０ａ、４５０ｂが前方を指す状態で、前方に駆動する場合、ロボット１００が前方に駆動する際、第１および第２の３−Ｄ画像センサ４５０ａ、４５０ｂの両方が、地面Ｇを空きと見ることができ、分類の持続性は依然として劣化されていないため、ロボット１００の隣の地面Ｇが、既知の空き２１０６に分類されてもよい（例えば、図２６Ｂ参照）。そのような状況では、ロボット１００は、側方向に駆動することができる。
【０１６２】
図２６Ｄを参照すると、いくつかの実施例では、ホロノミック可動性による、大きい数の可能な軌跡を考慮して、ＯＤＯＡ挙動６００ｂは、ロボットに、ロボットが向かっている場所でロボットが見る（現在ではないが）軌跡を選択させてもよい。例えば、ロボット１００は、センサ視界配向を予期することができ、これは、制御システム５１０が、物体を検出することを可能にする。ロボットは、平行移動しながら回転することができるため、ロボットは、駆動しながらセンサ視界４０５を増加させることができる。
【０１６３】
本明細書に記載されるシステムおよび技法の様々な実現形態を、デジタル電子回路、集積回路、専用に設計されたＡＳＩＣ（特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア、および／またはそれらの組み合わせで実現することができる。これらの様々な実現形態には、記憶システムからデータおよび命令を受信するように、ならびにそれにデータおよび命令を伝送するように連結される、専用であっても汎用であってもよい、少なくとも１つのプログラマブルプロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含む、プログラム可能なシステム上で実行可能な、および／または解釈可能な１つ以上のコンピュータプログラムでの実現形態を含むことができる。
【０１６４】
これらのコンピュータプログラム（また、プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる）は、プログラム可能プロセッサのための機械命令を含み、高水準手続きおよび／もしくはオブジェクト指向プログラミング言語、ならびに／またはアセンブリ／機械言語で実現することができる。本明細書で使用される場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械命令を機械可読信号として受信する機械可読媒体を含む、プログラマブルプロセッサに機械命令および／もしくはデータを提供するために使用される、任意のコンピュータプログラム製品、装置、ならびに／またはデバイス（例えば、磁気ディスク、光学ディスク、メモリ、プログラマブル論理デバイス（ＰＬＤ））を指す。「機械可読信号」という用語は、プログラマブルプロセッサに機械命令および／またはデータを提供するために使用される、任意の信号を指す。
【０１６５】
本明細書に記載される主題の実現形態および機能動作は、デジタル電子回路、または本明細書に開示される構造およびそれらの構造的均等物を含む、コンピュータソフトウェア、ファームウェア、もしくはハードウェア、あるいはそれらのうちの１つ以上の組み合わせで実現することができる。本明細書に記載される主題の実施形態は、データ処理装置による実行のための、またはその動作を制御する、１つ以上のコンピュータプログラム製品、すなわち、コンピュータ可読媒体上にコード化されるコンピュータプログラム命令の１つ以上のモジュールとして実現することができる。コンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶回路基板、メモリデバイス、機械可読伝搬信号に影響を及ぼす組成物、またはそれらのうちの１つ以上の組み合わせであることができる。「データ処理装置」という用語は、一例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの１つ以上の組み合わせを構築するコードを含むことができる。伝搬信号は、好適な受信装置に伝送するために、情報をコード化するように生成される、人工的に生成される信号、例えば、機械生成電気、光学、または電磁信号である。
【０１６６】
コンピュータプログラム（また、プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる）は、コンパイルされる、または解釈される言語を含む、任意の形態のプログラミング言語で書くことができ、単独プログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境で使用するのに好適な他のユニットとしての配備を含む、任意の形態で配備することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応する必要はない。プログラムは、問題のプログラム専用の単一のファイル内の他のプログラムもしくはデータ（例えば、マークアップ言語文書で記憶される１つ以上のスクリプト）を保持するファイルの一部分に、または複数の調整されたファイル（例えば、１つ以上のモジュール、サブプログラム、またはコードの部分を記憶するファイル）に記憶することができる。コンピュータプログラムは、１台のコンピュータ上で、または１つの場所に位置する、もしくは複数の場所にわたって分散され、通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように配備することができる。
【０１６７】
本明細書に記載されるプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって機能を実施する、１つ以上のコンピュータプログラムを実行する、１つ以上のプログラマブルプロセッサによって実施することができる。また、プロセスおよび論理フローは、専用論理回路、例えば、ＦＰＧＡまたはＡＳＩＣによって実施することもでき、また、装置は、それらとして実現することもできる。
【０１６８】
コンピュータプログラムの実行に好適なプロセッサには、一例として、汎用および専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の１つ以上のプロセッサが挙げられる。一般的に、プロセッサは、読み出し専用メモリもしくはランダムアクセスメモリ、または両方から命令およびデータを受けとる。コンピュータの不可欠な要素は、命令を実施するためのプロセッサ、ならびに命令およびデータを記憶するための１つ以上のメモリデバイスである。一般的に、また、コンピュータは、データを記憶するための１つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、もしくは光学ディスクも含む、またはそれからデータを受けとるため、もしくはそれにデータを転送するため、または両方のために、それに動作可能に連結される。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、ごくわずかな例を挙げると、携帯電話、個人用デジタル補助装置（ＰＤＡ）、携帯型オーディオプレーヤー、グローバルポジショニングシステム（ＧＰＳ）受信器に埋め込むことができる。コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体には、一例として、半導体メモリデバイス、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイス、磁気ディスク、例えば、内蔵ハードディスクもしくはリムーバブルディスク、光磁気ディスク、ならびにＣＤ  ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスが挙げられる。プロセッサおよびメモリは、専用論理回路によって補完することができる、またはそれに組み込むことができる。
【０１６９】
本明細書に記載される主題の実現形態は、例えば、データサーバとしてバックエンド構成要素を含む、ミドルウェア構成要素、例えば、アプリケーションサーバを含む、フロントエンド構成要素、例えば、ユーザがそれを通して本明細書に記載される主題の実現形態と相互作用することができる、グラフィカルユーザインターフェースもしくはウェブブラウザを有する、クライアントコンピュータを含む、コンピューティングシステム、または１つ以上のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組み合わせで実現することができる。システムの構成要素は、任意の形態またはデジタルデータ通信の媒体、例えば、通信ネットワークによって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク（「ＬＡＮ」）、および広域ネットワーク（「ＷＡＮ」）、例えば、インターネットが挙げられる。
【０１７０】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般的に、相互から遠隔にあり、典型的に、通信ネットワークを通してやり取りする。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行され、相互にクライアント−サーバ関係を有する、コンピュータプログラムによって生じる。
【０１７１】
本明細書は、多くの詳細を含むが、これらは、本発明またはその主張され得る範囲を限定すると解釈されるべきではなく、むしろ、本発明の特定の実現形態に特定の特徴の説明として解釈されるべきである。また、本明細書の別個の実現形態の文脈において記載される特定の特徴は、単一の実現形態において、組み合わせて実現することもできる。逆に、また、単一の実現形態の文脈に記載される様々な特徴は、複数の実現形態において別々に、または任意の好適な副組み合わせで実現することもできる。さらに、特徴は、特定の組み合わせで作用するように上記され、さらには最初にそのように主張されている場合があるが、場合によっては、主張される組み合わせの１つ以上の特徴を組み合わせから切り取ることができ、主張される組み合わせは、副組み合わせ、または副組み合わせの変形を対象としてもよい。
【０１７２】
同様に、動作は、特定の順序で図面に描写されているが、これは、望ましい結果を達成するために、そのような動作が、示される特定の順序で、もしくは起こる順序で実施されること、またはすべての図示される動作が実施されることを要求すると理解されるべきではない。ある特定の状況では、マルチタスクおよび並列処理が有利である場合がある。さらに、上述される実施形態における様々なシステム構成要素の分離は、すべての実施形態において、そのような分離を要求すると理解されるべきではなく、記載されるプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品に共に統合することができる、または複数のソフトウェア製品にパッケージ化することができることが理解されるべきである。
【０１７３】
多数の実現形態が記載されてきた。しかしながら、本開示の趣旨および範囲から逸脱することなく、様々な修正が行われてもよいことが理解される。したがって、他の実現形態が、続く特許請求の範囲の範囲内である。例えば、特許請求の範囲に言及される動作を、異なる順序で実施し、依然として望ましい結果を達成することができる。
【図１】
0005946147.tif 000004
【図２】
0005946147.tif 000005
【図３】
0005946147.tif 000006
【図４Ａ】
0005946147.tif 000007
【図４Ｂ】
0005946147.tif 000008
【図４Ｃ】
0005946147.tif 000009
【図５Ａ】
0005946147.tif 000010
【図５Ｂ】
0005946147.tif 000011
【図６】
0005946147.tif 000012
【図７】
0005946147.tif 000013
【図８Ａ】
0005946147.tif 000014
【図８Ｂ】
0005946147.tif 000015
【図８Ｃ】
0005946147.tif 000016
【図８Ｄ】
0005946147.tif 000017
【図８Ｅ】
0005946147.tif 000018
【図８Ｆ】
0005946147.tif 000019
【図８Ｇ】
0005946147.tif 000020
【図９】
0005946147.tif 000021
【図１０Ａ】
0005946147.tif 000022
【図１０Ｂ】
0005946147.tif 000023
【図１１】
0005946147.tif 000024
【図１２】
0005946147.tif 000025
【図１３】
0005946147.tif 000026
【図１４】
0005946147.tif 000027
【図１５】
0005946147.tif 000028
【図１６】
0005946147.tif 000029
【図１７Ａ】
0005946147.tif 000030
【図１７Ｂ】
0005946147.tif 000031
【図１８】
0005946147.tif 000032
【図１９】
0005946147.tif 000033
【図２０】
0005946147.tif 000034
【図２１】
0005946147.tif 000035
【図２２】
0005946147.tif 000036
【図２３】
0005946147.tif 000037
【図２４】
0005946147.tif 000038
【図２５】
0005946147.tif 000039
【図２６Ａ】
0005946147.tif 000040
【図２６Ｂ】
0005946147.tif 000041
【図２６Ｃ】
0005946147.tif 000042
【図２６Ｄ】
0005946147.tif 000043