(57)【要約】【課題】  ロボットの環境におけるロボットの姿勢を推定することである。【解決手段】  方法の例は、ロボット上の少なくとも１つのセンサからのセンサデータに基づいてロボットに関連する複数の候補ランドマークの位置を決定することを含む。方法は更に、各々が複数の候補ランドマークおよび複数の対応するマップ化ランドマークのサブセットを備える複数のサンプルセットを決定することを含む。また方法は、各サンプルセットに関して、サブセット内の候補ランドマークを対応するマップ化ランドマークに関連付ける変換を決定することも含む。方法は更に、決定された各サンプルセットに関する変換を複数の候補ランドマークに適用し、変換後の複数の候補ランドマークと複数の近隣マップ化ランドマークとの間の距離に基づいて各サンプルセットに関連するインライアの数を決定することを含む。方法は更に、各サンプルセットに関連するインライアの数に基づいて、複数のサンプルセットからサンプルセットを選択することを含む。また方法は更に、選択されたサンプルセットに基づいてロボットの姿勢を推定することを含む。【選択図】図６
2019537078.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの少なくとも１つのセンサからのセンサデータに基づいて、前記ロボットに関連する複数の候補ランドマークの位置を決定することと、
各々が前記複数の候補ランドマークおよび複数の対応するマップ化ランドマークのサブセットを備える複数のサンプルセットを決定することと、
各サンプルセットに関して、前記サブセット内の前記候補ランドマークを前記対応するマップ化ランドマークに関連付ける変換を決定することと、
前記決定された各サンプルセットに関する変換を前記複数の候補ランドマークに適用し、前記変換後の複数の候補ランドマークと複数の近隣マップ化ランドマークとの間の距離に基づいて各サンプルセットに関連するインライアの数を決定することと、
各サンプルセットに関連する前記インライアの数に基づいて、前記複数のサンプルセットからサンプルセットを選択することと、
前記選択されたサンプルセットに基づいて、前記ロボットの姿勢を推定することと、
を備える、方法。
【請求項２】
前記推定された姿勢に基づいて、前記ロボットの環境内で前記ロボットをナビゲートすることを更に備える、請求項１に記載の方法。
【請求項３】
前記複数のサンプルセットを決定することは、前記ロボットの初期姿勢推定に基づいて、対応するマップ化ランドマークの対応距離閾値内にある候補ランドマークを識別することを備え、各サンプルセットは、前記識別された候補ランドマークおよび対応するマップ化ランドマークのサブセットを備える、請求項１に記載の方法。
【請求項４】
前記決定された、前記選択されたサンプルセットに関連するインライアの数と、前記複数の候補ランドマークにおける候補ランドマークの総数との比に基づいて、前記推定された姿勢に関連する姿勢推定信頼度を決定することを更に備える、請求項１に記載の方法。
【請求項５】
前記推定された前記ロボットの姿勢を車輪オドメトリに部分的に基づいて精緻化することを更に備える、請求項１に記載の方法。
【請求項６】
前記推定された姿勢の精度を決定することを更に備え、前記精度を決定することは、前記姿勢推定と、過去の姿勢推定を表す統計データとを比較することを備える、請求項１に記載の方法。
【請求項７】
前記複数のサンプルセットから前記サンプルセットを選択することは、前記サンプルセットの１つがインライア閾値を満たすまたは超える数のインライアを有することが決定されるまで、前記サンプルセットの各々に関する前記インライアの数を連続的に決定することを備える、請求項１に記載の方法。
【請求項８】
前記複数のサンプルセットを決定することは、
各サンプルセットに関して第１の対応するマップ化ランドマークを選択することと、
前記選択された第１の対応するマップ化ランドマークに対する次の対応するマップ化ランドマークの位置に基づいて、各サンプルセットに関して前記次の対応するマップ化ランドマークを選択することと、
を備える、請求項１に記載の方法。
【請求項９】
前記ロボットに関連する前記複数の候補ランドマークの前記位置を決定することは、前記ロボットの少なくとも１つのセンサから前記位置を受信することを備える、請求項１に記載の方法。
【請求項１０】
前記ロボットに関連する前記複数の候補ランドマークの前記位置を決定することは、強度閾値を上回る強度を有する、前記ロボットの前記少なくとも１つのセンサからの信号を識別することを備える、請求項１に記載の方法。
【請求項１１】
前記選択されたサンプルセットに関連する前記インライアを前記複数のマップ化ランドマークのうちの近隣マップ化ランドマークに関連付ける精緻化変換を決定することと、
前記精緻化変換に基づいて、前記ロボットの前記姿勢を推定することと、
を更に備える、請求項１に記載の方法。
【請求項１２】
前記複数のサンプルセットを決定することは、前記ロボットに関連する前記複数の候補ランドマークの前記位置に基づいて、前記複数の候補ランドマークから各サンプルセットについて３つの候補ランドマークを選択することを備える、請求項１に記載の方法。
【請求項１３】
各サンプルセットに関して、前記サンプルセット内の前記候補ランドマークを前記対応するマップ化ランドマークに関連付ける前記変換を決定することは、前記対応するマップ化ランドマークと位置合わせするために前記サンプルセット内の前記候補ランドマークのシフトされた位置および向きを推定することを備える、請求項１に記載の方法。
【請求項１４】
ロボットと、
前記ロボットに結合された少なくとも１つのセンサと、
１または複数のプロセッサと、
非一時的コンピュータ可読媒体と、
前記非一時的コンピュータ可読媒体に格納され、
前記ロボットに結合された前記少なくとも１つのセンサからのセンサデータに基づいて前記ロボットに関連する複数の候補ランドマークの位置を決定し、
各々が前記複数の候補ランドマークおよび複数の対応するマップ化ランドマークのサブセットを備える複数のサンプルセットを決定し、
各サンプルセットに関して、前記サブセット内の前記候補ランドマークを前記対応するマップ化ランドマークに関連付ける変換を決定し、
前記決定された各サンプルセットに関する変換を前記複数の候補ランドマークに適用して、前記変換後の複数の候補ランドマークと複数の近隣マップ化ランドマークとの間の距離に基づいて各サンプルセットに関連するインライアの数を決定し、
各サンプルセットに関連する前記インライアの数に基づいて、前記複数のサンプルセットからサンプルセットを選択し、
前記選択されたサンプルセットに基づいて、前記ロボットの姿勢を推定するために、前記１または複数のプロセッサによって実行可能なプログラム命令と、
を備える、システム。
【請求項１５】
前記ロボットに結合された光検出および測距（ＬＩＤＡＲ）ユニットを更に備え、前記ＬＩＤＡＲユニットは、前記複数の候補ランドマークを検出するために前記ロボットの周囲のエリアに光信号を放出するように構成される、請求項１４に記載のシステム。
【請求項１６】
前記マップ化ランドマークは再帰反射マーカを表す、請求項１４に記載のシステム。
【請求項１７】
前記ロボットに結合された前記少なくとも１つのセンサは、前記ロボットの周囲のエリアに位置する再帰反射マーカからの反射信号を受信するように構成される、請求項１６に記載のシステム。
【請求項１８】
ロボットの少なくとも１つのセンサからのセンサデータに基づいて、前記ロボットに関連する複数の候補ランドマークの位置を決定することと、
各々が前記複数の候補ランドマークおよび複数の対応するマップ化ランドマークのサブセットを備える複数のサンプルセットを決定することと、
各サンプルセットに関して、前記サブセット内の前記候補ランドマークを前記対応するマップ化ランドマークに関連付ける変換を決定することと、
前記決定された各サンプルセットに関する変換を前記複数の候補ランドマークに適用し、前記変換後の複数の候補ランドマークと複数の近隣マップ化ランドマークとの間の距離に基づいて各サンプルセットに関連するインライアの数を決定することと、
各サンプルセットに関連する前記インライアの数に基づいて、前記複数のサンプルセットからサンプルセットを選択することと、
前記選択されたサンプルセットに基づいて、前記ロボットの姿勢を推定することと、
を備える機能をコンピューティングシステムに実行させるために１または複数のプロセッサによって実行可能な命令を格納した、非一時的コンピュータ可読媒体。
【請求項１９】
ランドマーク位置のマップを更に格納し、前記機能は更に、
前記ランドマーク位置のマップに基づいて、各サンプルセットに関して前記複数の対応するマップ化ランドマークを決定することを更に備える、請求項１８に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記対応するマップ化ランドマークに関連する統計情報を更に格納し、前記統計情報は、前記ロボットの過去の姿勢推定に関連し、前記機能は更に、
前記姿勢推定の精度を決定することを備え、前記精度を決定することは、前記選択されたサンプルセットに関連する前記姿勢推定と前記統計情報とを比較することを備える、請求項１８に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
［0001］  本出願は、その全体が参照によって本明細書に組み込まれる、２０１６年１２月２３日に出願された米国特許出願第１５／３９０，４６０号に対する優先権を主張するものである。
【背景技術】
【０００２】
［0002］  倉庫は、製造業者、卸売業者、および輸送業者を含む様々な種類の商業団体によって物品の保管のために用いられ得る。保管される物品の例は、原材料、部材または部品、包装材料、および完成品を含んでよい。場合によっては、倉庫は、配送トラックまたは他の種類の車両へ商品が荷積みされ、そこから荷下ろしされることを可能にする搬出口を備えてよい。また倉庫は、箱または他の物体の積み重ねを収容する平坦な搬送構造であるパレットの保管を可能にするパレットラックの列を用いてよい。また、倉庫は、たとえばクレーンおよびフォークリフトなど、物品または物品パレットを持ち上げ移動するための機械または車両を用いてよい。人間のオペレータは、機械、車両、および他の機器を操作するために雇用され得る。場合によっては、機械または車両の１または複数は、コンピュータ制御システムによって動かされるロボットデバイス（「ロボット」）であってよい。コンピュータ制御システムは、倉庫全体にわたって配置されたマーカに関連して１または複数のロボットを位置測定してよい。ロボットの位置測定は、コンピュータ制御システムが１または複数のロボットを倉庫内でナビゲートすることを可能にし得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
［0003］  システムおよび方法の例は、ロボットの環境におけるロボットの姿勢を推定するために役立ち得る。ロボットの環境は、ランドマークを含んでよい。ランドマークの位置は、マップ化され得る。システムは、ロボットが、マップ化ランドマークに対する自身の姿勢に基づいて、環境内で自身を位置測定することを可能にし得る。ロボットの位置測定のために、ロボットは、ランドマークの位置を示すランドマークからの信号を受信するセンサを含んでよい。ただし、全ての受信信号がマップ化ランドマークから発されるわけではない。したがって、受信信号による各検出は、候補ランドマークとして扱われ得る。システムは、どの候補ランドマークがマップ化ランドマークに対応するかを決定するために候補ランドマークを検査し、マップ化ランドマークであることが決定された候補ランドマークに基づいて、ロボットの姿勢を決定してよい。システムは、候補ランドマークおよび対応するマップ化ランドマークの複数のサブセットをサンプリングしてよい。システムは、候補ランドマークのサブセットを対応するマップ化ランドマークに位置合わせする、サンプリングされた各サブセットの変換を決定してよい。変換は、全ての候補ランドマークに適用され得る。インライア距離閾値内である、変換後の候補ランドマークと近隣マップ化ランドマークとの間の距離は、「インライア」と考えられ得る。インライアは、適用された変換がロボットの姿勢を正確に表すかを示してよい。より多くのインライアを生成するサンプルセットは、ロボットの姿勢を正確に表す可能性が高い。そのようなサンプルセットの１つが、複数のサブセットから選択され得る。その後、選択されたサンプルセットに基づいて、ロボットの姿勢が推定され得る。
【０００４】
［0004］  一例において、ロボット上の少なくとも１つのセンサからのセンサデータに基づいて、ロボットに関連する複数の候補ランドマークの位置を決定することを含む方法が提供される。方法は更に、各々が複数の候補ランドマークおよび複数の対応するマップ化ランドマークのサブセットを備える複数のサンプルセットを決定することを含む。また方法は、各サンプルセットに関して、サブセット内の候補ランドマークを対応するマップ化ランドマークに関連付ける変換を決定することも含む。方法は更に、決定された各サンプルセットに関する変換を複数の候補ランドマークに適用し、変換後の複数の候補ランドマークと複数の近隣マップ化ランドマークとの間の距離に基づいて、各サンプルセットに関連するインライアの数を決定することを含む。方法は更に、各サンプルセットに関連するインライアの数に基づいて、複数のサンプルセットからサンプルセットを選択することを含む。また方法は更に、選択されたサンプルセットに基づいてロボットの姿勢を推定することを含む。
【０００５】
［0005］  他の例において、ロボット、ロボットに結合された少なくとも１つのセンサ、１または複数のプロセッサ、および非一時的コンピュータ可読媒体を含むシステムが提供される。システムは更に、ロボットに結合された少なくとも１つのセンサからのセンサデータに基づいてロボットに関連する複数の候補ランドマークの位置を決定するために１または複数のプロセッサによって実行可能である、非一時的コンピュータ可読媒体に格納されたプログラム命令を含む。プログラム命令は更に、各々が複数の候補ランドマークおよび複数の対応するマップ化ランドマークのサブセットを備える複数のサンプルセットを決定する。またプログラム命令は、サンプルセットに関して、サブセット内の候補ランドマークを対応するマップ化ランドマークに関連付ける変換を決定する。プログラム命令は更に、決定された各サンプルセットに関する変換を複数の候補ランドマークに適用し、変換後の複数の候補ランドマークと複数の近隣マップ化ランドマークとの間の距離に基づいて、各サンプルセットに関連するインライアの数を決定する。プログラム命令は更に、各サンプルセットに関連するインライアの数に基づいて、複数のサンプルセットからサンプルセットを選択する。またプログラム命令は更に、選択されたサンプルセットに基づいてロボットの姿勢を推定する。
【０００６】
［0006］  他の例において、移動ロボットデバイスの制御システムによって実行されると、制御システムに機能を実行させる命令を格納した非一時的コンピュータ可読媒体が提供される。機能は、ロボット上の少なくとも１つのセンサからのセンサデータに基づいて、ロボットに関連する複数の候補ランドマークの位置を決定することを含む。機能は更に、各々が複数の候補ランドマークおよび複数の対応するマップ化ランドマークのサブセットを備える複数のサンプルセットを決定することを含む。また機能は、各サンプルセットに関して、サブセット内の候補ランドマークを対応するマップ化ランドマークに関連付ける変換を決定することも含む。機能は更に、決定された各サンプルセットに関する変換を複数の候補ランドマークに適用し、変換後の複数の候補ランドマークと複数の近隣マップ化ランドマークとの間の距離に基づいて、各サンプルセットに関連するインライアの数を決定することを含む。機能は更に、各サンプルセットに関連するインライアの数に基づいて、複数のサンプルセットからサンプルセットを選択することを含む。また機能は更に、選択されたサンプルセットに基づいてロボットの姿勢を推定することを含む。
【０００７】
［0007］  他の例において、ロボット上の少なくとも１つのセンサからのセンサデータに基づいて、ロボットに関連する複数の候補ランドマークの位置を決定するための手段を含むシステムが提供される。システムは更に、各々が複数の候補ランドマークおよび複数の対応するマップ化ランドマークのサブセットを備える複数のサンプルセットを決定するための手段を含む。またシステムは、各サンプルセットに関して、サブセット内の候補ランドマークを対応するマップ化ランドマークに関連付ける変換を決定するための手段も含む。システムは更に、決定された各サンプルセットに関する変換を複数の候補ランドマークに適用し、変換後の複数の候補ランドマークと複数の近隣マップ化ランドマークとの間の距離に基づいて、各サンプルセットに関連するインライアの数を決定するための手段を含む。システムは更に、各サンプルセットに関連するインライアの数に基づいて、複数のサンプルセットからサンプルセットを選択するための手段を含む。またシステムは更に、選択されたサンプルセットに基づいてロボットの姿勢を推定するための手段を含む。
【０００８】
［0008］  上記概要は、例示にすぎず、いかなるようにも限定することは意図されていない。上述した例示的な態様、実施形態、および特徴に加えて、更なる態様、実施形態、および特徴が、図および以下の詳細な説明および添付図面を参照することによって明らかになる。
【図面の簡単な説明】
【０００９】
【図１】［0009］実施形態例に係る、システムのブロック図である。
【図２】［0010］実施形態例に係る、１または複数の倉庫を運営するためのシステムを示す。
【図３】［0011］実施形態例に係る、システムを示す。
【図４】［0012］実施形態例に係る、１または複数のロボットデバイスのためのロボットデバイスアーキテクチャを示す。
【図５】［0013］実施形態例に係る、１または複数のロボットデバイスのためのレーザスキャナアーキテクチャを示す。
【図６】［0014］実施形態例に係る、環境内を通行するロボットを示す。
【図７】［0015］実施形態例に係る、検出をマップ化ランドマークに関連付けるロボットを示す。
【図８】［0016］実施形態例に係る、ロボット制御システムのモジュールを示す機能ブロック図である。
【図９】［0017］実施形態例に係る、ロボットのマップ化環境を示す。
【図１０】［0018］実施形態例に係る、複数の検出を行ったロボットを示す。
【図１１Ａ】［0019］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのサンプルセットに関連するインライアの決定を示す。
【図１１Ｂ】［0019］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのサンプルセットに関連するインライアの決定を示す。
【図１１Ｃ】［0019］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのサンプルセットに関連するインライアの決定を示す。
【図１１Ｄ】［0019］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのサンプルセットに関連するインライアの決定を示す。
【図１２Ａ】［0020］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークの別のサンプルセットに関連するインライアの決定を示す。
【図１２Ｂ】［0020］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークの別のサンプルセットに関連するインライアの決定を示す。
【図１２Ｃ】［0020］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークの別のサンプルセットに関連するインライアの決定を示す。
【図１２Ｄ】［0020］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークの別のサンプルセットに関連するインライアの決定を示す。
【図１３Ａ】［0021］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのまた別のサンプルセットに関連するインライアの決定を示す。
【図１３Ｂ】［0021］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのまた別のサンプルセットに関連するインライアの決定を示す。
【図１３Ｃ】［0021］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのまた別のサンプルセットに関連するインライアの決定を示す。
【図１３Ｄ】［0021］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのまた別のサンプルセットに関連するインライアの決定を示す。
【図１４】［0022］実施形態例に係る、方法のブロック図である。
【図１５】［0023］実施形態例に係る、他の方法のブロック図である。
【発明を実施するための形態】
【００１０】
［0024］  方法およびシステムの例が本明細書において説明される。本明細書で説明される任意の実施形態または特徴の例は、必ずしも他の実施形態または特徴よりも好適または有利であるものとして解釈されるものではない。本明細書で説明される実施形態例は、限定的であることが意図されない。開示されるシステムおよび方法の特定の態様は、異なる様々な構成で配置および結合されてよく、それら全てが本明細書において考慮されることが容易に理解される。
【００１１】
［0025］  更に、図に示される特定の配置は、限定的なものとしてみなされてはならない。他の実施形態は、所与の図に示される各要素より多いまたは少ない要素を含み得ることを理解すべきである。また、図示される要素のいくつかは結合され、あるいは省かれてもよい。更に、実施形態例は、図に示されない要素を含んでもよい。
Ｉ．概観
【００１２】
［0026］  実施形態例は、ロボットの環境におけるロボットの姿勢を推定し、それによって環境内のロボットの通行を支援するために用いられ得る方法およびシステムを含み、またはこれに関連する。たとえば、ロボットの１または複数のセンサは、環境内のランドマークからの信号を受信することによってランドマークを検出してよい。ロボットは、受信信号に基づいてランドマークに対する自身の位置を決定してよい。また、環境内のランドマークの位置は、マップ化され得る。ロボットは、どのマップ化ランドマークが検出されたランドマークに対応するかを決定してよい。ロボットは、検出されたランドマークに対する自身の位置を、対応するマップ化ランドマークに対する自身の位置に変換することによって、環境内の自身の姿勢を推定してよい。
【００１３】
［0027］  いくつかの例において、ロボットは、ランドマークに関連しない、またはランドマークの位置を誤って表現する信号を受信または検出し得る。この種の受信または検出信号は、「誤検出」と称され得る。誤検出は、ロボットに環境内の自身の姿勢を不正確に推定させ、その結果、ロボットが環境内を効率的に通行することを妨げ得る。たとえばロボットは、検出されたランドマークが１または複数の誤検出を含むために、特定のマップ化ランドマークを検出されたランドマークに誤って関連付けることがある。この誤った関連性に基づいて、ロボットは、環境内の自身の姿勢を不正確に推定し、環境内を非効率的に通行し得る。
【００１４】
［0028］  システムおよび方法の例は、誤検出を除去すると同時にロボットの姿勢を推定するために役立ち得る。そのため、検出されたランドマークは、候補ランドマークとして扱われてよく、候補ランドマークは、それらのどれがマップ化ランドマークに対応し、どれが誤検出に対応するかを決定するために検査され得る。
【００１５】
［0029］  いくつかの例は、候補ランドマークの複数のサブセット（たとえば３つの候補ランドマークのサブセット）をサンプリングすることを含んでよい。サブセットのサンプリングされた候補ランドマークの各々は、その後、対応するマップ化ランドマークとペアにされ得る。サンプリングされたサブセットのいくつかは誤検出を含み、他は誤検出を含まないので、このプロセスは候補ランドマークの検査に役立ち得る。サンプリングされたサブセットの各々は、個々に評価され得る。これらの例は更に、各サブセットの候補ランドマークに適用するための変換を決定することを含んでよい。変換は、サンプリングされた候補ランドマークと対応するマップ化ランドマークとの間が最小距離になるように、サンプリングされた各サブセットの候補ランドマークを対応するマップ化ランドマークと位置合わせしてよい。候補ランドマークおよび対応するマップ化ランドマークのサブセットを用いることにより、変換を決定するために要する計算が低減され得る。
【００１６】
［0030］  いくつかの例は更に、サンプリングされたサブセットの各々に関連するインライアの数を決定することを含んでよい。サンプリングされたサブセットの各々に関して決定された変換は、全ての候補ランドマークに適用され得る。サンプリングされたサブセットに関するインライアの数は、変換後の候補ランドマークと近隣マップ化ランドマークとの間の距離に基づいてよい。たとえば、変換後の候補ランドマークと近隣マップ化ランドマーク（たとえば最も近いマップ化ランドマーク）との間の距離は、インライア距離閾値と比較され得る。インライア距離閾値以下の近隣マップ化ランドマークとの距離を有する変換後の候補ランドマークは、「インライア」と称され得る。閾値を上回る近隣マップ化ランドマークとの距離を有する変換後の候補ランドマークは、「アウトライア」と称され得る。インライアは、変換後のサブセットが、候補ランドマークを近隣マップ化ランドマークと正確に位置合わせしたことを示してよく、アウトライアはその逆を示してよい。誤検出を含まないサンプリングされたサブセットは、候補ランドマークを近隣マップ化ランドマークと正確に位置合わせする変換をもたらし、より多くのインライアを生成する可能性が高い。したがって、より多くのインライアは、誤検出をほとんどまたは全く含まないサンプリングされたサブセットに対応し、より多い数のアウトライアは、１または複数の誤検出を含むサブセットに対応し得るので、インライアの数を決定することは候補ランドマークを検査するために役立ち得る。
【００１７】
［0031］  いくつかの例において、候補ランドマークおよび対応するマップ化ランドマークのサブセットは、反復的にサンプリングされ得る。これらの例は、サンプリングされたサブセットの各々に関連するインライアの数を決定すること、および最大数のインライアを有するサブセットを選択することを含んでよい。他の例において、関連するインライアの数がインライア閾値を満たすまたは超える、最初に反復サンプリングされたサブセットが選択され得る。サブセットが選択された後、そのサブセットに関連するインライアの変換は、ロボットの姿勢を推定するために用いられ得る。インライアは、どのサブセットが誤検出を含むかを決定するために用いられ、ロボットの姿勢を推定するためにも用いられ得るので、本明細書で説明される方法およびシステムは、誤検出を除去すると同時にロボットの姿勢を推定し得る。
【００１８】
［0032］  追加の例は、姿勢推定信頼度を決定することを含んでよい。姿勢推定信頼度は、サブセットに関連するインライアと候補ランドマークの総数との比に基づいてよい。１に近い比は、誤検出が非常に少ないことを示し、０に近い比は、多数の誤検出があることを示してよい。
【００１９】
［0033］  また更なる例において、ロボットの初期姿勢推定を示す過去情報が利用可能であってよい。たとえば初期姿勢推定は、ロボットが時間（ｔ１）に座標（ｘ，ｙ）にあったことを示してよい。これらの例において、ロボットは、ロボットの初期姿勢推定に部分的に基づいて、候補ランドマークおよび対応するマップ化ランドマークのサブセットをサンプリングしてよい。たとえば、対応するマップ化ランドマークは、座標（ｘ，ｙ）に最も近いマップ化ランドマークから選択され得る。
【００２０】
［0034］  以下、その例が添付図面に示された様々な実施形態が詳細に参照される。以下の詳細な説明において、本開示および説明される実施形態の完全な理解を提供するために、数々の具体的な細部が記載される。ただし、本開示は、これらの具体的な細部なしでも実施され得る。他の例において、周知の方法、手順、および構成要素、および回路は、実施形態の態様を不必要に不明確にしないために、詳細に説明されない。
ＩＩ．ロボットデバイスに関するシステム設計
【００２１】
［0035］  図１は、実施形態例に係る、システム１００のブロック図である。システム１００は、計画システム１１０およびロボットデバイス１２０を含む。計画システム１１０は、環境内で動作する１または複数のロボットデバイスの動きを調和させ得るオフボードプランナ１１２を含んでよい。オフボードプランナ１１２は、ロードマッププランナ１１４を含んでよい。オフボードプランナ１１２および／またはロードマッププランナ１１４は、たとえばロボットデバイス１２０などのロボットデバイスが環境内で動作中に辿る１または複数の非同期経路１１６を生成してよい。
【００２２】
［0036］  たとえば図３に関連して後述する写真版グラフ３００などの、ロードマップグラフ、写真版グラフ、または環境を表す他のロードマップは、受信、決定、または他の方法で計画システム１１０、オフボードプランナ１１２、および／またはロードマッププランナ１１４へ提供され得る。非同期経路１１６は、ロードマップグラフ、写真版グラフ、または他のロードマップに基づく１または複数の経路であってよい。たとえば、ロードマップグラフ、写真版グラフ、または他のロードマップが、複数の交差点に接続する複数のエッジを有する場合、非同期経路１１６は、複数のエッジおよび／または複数の交差点に関して特定され得る。
【００２３】
［0037］  いくつかの例において、ロボットデバイス１２０は、経路を追従することができる任意の１または複数の操舵車両（複数も可）であってよい。たとえばロボットデバイス１２０は、オンボードソフトウェア１３０および／またはハードウェア１５０を含んでよい。オンボードソフトウェア１３０は、位置測定サブシステム１３２、障害物検出サブシステム１３４、オドメトリサブシステム１３６、経路追従サブシステム１３８、および軌道追従サブシステム１４２の１または複数を含んでよい。位置測定サブシステム１３２は、ロボットデバイスの位置測定、すなわち環境におけるロボットデバイスの位置を決定するために用いられ得る。位置測定サブシステム１３２は、ロボットデバイスおよび／またはロボットデバイスを位置測定するために用いられ得る他の物体の位置推定値を生成し、ロボットデバイスがたとえば非同期経路１１６などの経路を辿ることを支援し、および／またはロボットデバイスがたとえば軌道１４０などの軌道を辿ることを支援してよい。位置推定値が生成されると、位置測定サブシステム１３２は、位置推定値を経路追従サブシステム１３８へ提供してよい。
【００２４】
［0038］  非同期経路または短距離経路は、時不変プラン、またはロボットデバイス１２０がどのように出発点ＳＰから終着点ＥＰへ移動し得るかを示す他の情報であってよく、すなわち、（非同期）経路は時間を考慮しない。対照的に、軌道は、ロボットデバイス１２０が計画時間間隔ごとに辿り得る、操舵角およびトラクションモータ速度の値を含んでよい。
【００２５】
［0039］  計画時間間隔は、ロボットデバイスが経路、ルート、および／または行程を辿るようにガイドまたは計画された持続時間であってよい。いくつかの実施形態において、計画時間間隔は、たとえば５秒、１秒、０．２秒、０．１秒など、所定の時間であってよい。特に、所定の計画時間間隔は、計画時間間隔の値を指定するユーザ入力に基づいて決定され得る。他の実施形態において、計画時間間隔は、たとえばステッチ時間、均一エッジ（または経路）コストに関連する時間、軌道に沿って移動するための推定時間など、１または複数の他の値に基づいて決定され得る。計画時間間隔および計画時間間隔の値を決定するための他の技術も可能である。
【００２６】
［0040］  その後、１または複数の軌道は、ロボットデバイス１２０がどのように出発点ＳＰから終着点ＥＰへ移動し得るかを時変方式で表すために用いられ得る。いくつかの実施形態において、軌道は、たとえば限定ではないがロボットデバイス１２０の他の運動学的変数（たとえば速度および加速度）およびロボットデバイス１２０のアクチュエータ位置など、計画時間間隔にわたる操舵角およびトラクションモータ速度以外の変数の値に関する情報も提供してよい。
【００２７】
［0041］  一例として、「ホーム」位置から「ワーク」位置へ車を運転する経路は、たとえば人間または自律車両の制御デバイスなどの制御エンティティがホームからワークへ車を運転するために用い得る車道の順序付きリストを含んでよい。この例において、ホームからワークへの軌道は、制御エンティティがホームからワークへ車を運転するために用い得る速度および／または加速度を指定する１または複数の命令を伴ってよい。いくつかの例において、軌道は、交通量、障害物、天候、および他の時間依存条件を考慮してよく、たとえば、ホームからワークへ向かう軌道は、制御エンティティが「１０秒以内に２０ＭＰＨ以下で右折する」、「５５ＭＰＨまで加速し３分間直進する」、「３０秒以内に２０ＭＰＨまで減速する」、「１０秒以内に２０ＭＰＨ以下で左折する」ことなどを示してよい。いくつかの実施形態において、軌道は、たとえば障害物、経路の変化などを考慮するために途中で変更され得る。
【００２８】
［0042］  障害物検出サブシステム１３４は、１または複数の障害物がロボットデバイス１２０の経路および／または軌道を遮断しているかを決定してよい。これらの障害物の例は、パレット、パレットから落下した可能性のある物体、ロボットデバイス、および環境内で働く人間オペレータを含んでよいが、これに限定されない。障害物が検出された場合、障害物検出サブシステム１３４は、障害物検出を示す１または複数の通信を経路追従サブシステム１３８へ提供してよい。障害物検出を示す１または複数の通信は、障害物検出サブシステム１３４によって検出された１または複数の障害物の１または複数の位置に関する位置情報、および／または障害物検出サブシステム１３４によって検出された１または複数の障害物に関する識別情報を含んでよい。オドメトリサブシステム１３６は、たとえばサーボドライブ１５２からのデータなどのデータを用いて、ロボットデバイス１２０の位置の１または複数の変化を経時的に推定してよい。
【００２９】
［0043］  経路追従サブシステム１３８および／または軌道追従サブシステム１４２は、ロボットデバイス１２０に搭載されたプランナとして機能してよい。このオンボードプランナは、位置測定サブシステム１３２によって提供された位置推定値に基づいて、たとえば非同期経路１１６などの１または複数の経路を辿ってよい。
【００３０】
［0044］  経路追従サブシステム１３８は、非同期経路１１６、位置測定サブシステム１３２からの位置推定値入力、障害物検出サブシステム１３４からの１または複数の障害物の１または複数の位置に関する位置情報、および／またはオドメトリサブシステム１３６からの１または複数の位置の変化に関する情報を受信し、１または複数の軌道１４０を出力として生成してよい。
【００３１】
［0045］  ハードウェア１５０は、サーボドライブ１５２および／またはモータ１５４を含んでよい。サーボドライブ１５２は、１または複数のサーボメカニズムおよび関連電気機器を含んでよい。いくつかの例において、サーボドライブ１５２は、１または複数のサーボメカニズムに動力供給するため、および／またはサーボメカニズム（複数も可）からのフィードバック信号を監視するために用いられる１または複数の電子増幅器を含んでよい。サーボドライブ１５２は、オンボードソフトウェア１３０から、たとえば軌道１４４などの制御信号を受信し、制御信号に比例する動きを生成するためにサーボメカニズム（複数も可）へ電流を供給してよい。いくつかの実施形態において、サーボドライブ１５２は、サーボメカニズム（複数も可）から受信したステータス情報と、軌道１４４によって命令される予定ステータスとを比較してよい。その後、サーボドライブ１５２は、受信ステータス情報と予定ステータスとの間のずれを補正するために、供給した電流の電圧周波数またはパルス幅を調整してよい。他の実施形態において、サーボドライブ１５２は、たとえばフィードバック信号および／または位置関連情報などの情報をオンボードソフトウェア１３０へ提供してよい。
【００３２】
［0046］  １または複数のモータ１５４は、サーボドライブ１５２のサーボメカニズム（複数も可）の一部または全部であってよい。たとえばモータ１５４は、ロボットデバイス１２０の一部または全部を駆動するための機械力を生成するためにサーボドライブ１５２によって供給される電流を用いてよく、たとえばモータ１５４は、ロボットデバイス１２０を推進させ、および／またはロボットデバイス１２０の１または複数のエフェクタを駆動する力を供給してよい。
【００３３】
［0047］  たとえば倉庫、オフィスビル、または住居などの屋内環境、および／またはたとえば公園、駐車場、または庭などの屋外環境を含む環境におけるロボットデバイスの経路計画は、たとえばロボットデバイスなどのエージェントが辿り得る経路の連結グラフであるロードマップグラフに関して実行され得る。環境内でのエージェントルート指定を計画するために自由空間アプローチではなくロードマップグラフを用いることによって、全体計画状態空間が低減され、大規模マルチエージェント調和を扱いやすくすることができる。また、ロードマップグラフの使用により、オペレータは、ロボットデバイスの通行が許可されたエリアを直感的に制御することが可能である。
【００３４】
［0048］  ロードマップグラフ生成は、第１に、レーンの大まかな位置および移動方向を示す写真版グラフの生成を伴ってよい。いくつかの例において、写真版グラフは、ロボットデバイスの移動方向およびレーンを示す有向グラフであってよい。他の例において、写真版グラフは、環境の図またはマップに基づいて手動で生成され得る。
【００３５】
［0049］  図２は、実施形態例に係る、１または複数の倉庫を運営するためのシステム２００を示す。システム２００は、倉庫管理システム２１０、計画システム１１０、およびロボットデバイス２２０を含む。倉庫管理システム２１０は、たとえば１または複数の物品を倉庫に保管する要求および／または１または複数の物品を倉庫から出荷する要求などの、倉庫に関連する１または複数の物流要求２１２を受信してよい。倉庫管理システム２１０は、物流要求２１２を１または複数の行動２１４に変換してよく、行動２１４は、１または複数の指定されたエージェントを１または複数の指定位置へ移動させるための「移動」行動、および１または複数の物品を１または複数の指定位置へ搬送するための「輸送」行動を含んでよいが、これに限定されない。いくつかの例において、行動２１４は、｛エージェントＩＤ、宛先｝形式の移動コマンドを含んでよいが、たとえば「パレットの移動」などの他の行動も可能である。しかしこれらは一般に、移動コマンド（ピック位置への移動、載置位置への移動）に分解することができる。
【００３６】
［0050］  計画システム１１０は、オフボードプランナ１１２および実行部２２０を含む。オフボードプランナ１１２は、行動２１４を入力として受信し、たとえば複数のロボットデバイスなどの、倉庫内で動作する１または複数のエージェントが行動２１４を実行するための１または複数の調和経路２１６を生成してよい。調和経路２１６は、倉庫内のエージェント全てが物流要求２１２を履行するための調和行動計画の一部であってよい。調和行動計画は、エージェントの優位性を考慮してよく、たとえばロボットデバイスＲＤ１およびＲＤ２の両方がほぼ同時に地点に到達すると予想される場合、たとえばロボットデバイスＲＤ１はロボットデバイスＲＤ２が地点を通過するまで待機する（またはその逆である）ように、ロボットデバイスの一方が他方に対し優位性または優先権を有してよい。実行部２２０は、調和経路２１６を受信し、ロボットデバイス１２０に、自身の調和行動計画の一部の遂行において行動２１４を実行し物流要求２１２を履行するように指示するために、非衝突サブ経路２２２を生成してよい。
【００３７】
［0051］  図２において上述したように、オフボードプランナ１１２および実行部２２０を含む計画システム１１０は、ロボットデバイス１２０と通信してよい。いくつかの実施形態において、ロボットデバイスは、たとえば任意の職業安全衛生局（ＯＳＨＡ）クラス１またはクラス３動力付き産業トラックなどのフォークトラックであってよい。他の実施形態において、計画システム１１０は、「クラウド」に存在する１または複数のネットワーク型コンピューティングデバイス（たとえば１または複数のネットワーク型コンピューティングデバイス）および／またはロボットデバイス１２０と同じ場所にある建物内のどこかに位置する１または複数のネットワーク型コンピューティングデバイスを用いて実行するソフトウェアを含んでよい。
【００３８】
［0052］  図３は、実施形態例に係る、ネットワーク３１８を用いて接続された、物流インタフェース３１０、倉庫管理システム２１０、および１または複数のロボットデバイス１２０を含むシステム３００を示す。物流インタフェース３１０は、たとえばパレットなどの物体および／またはロボットデバイスの倉庫管理システム２１０への移動に関する棚卸タスク命令を、ネットワーク３１８を介して倉庫管理システム２１０へ提供してよい。棚卸タスクの例は、種類Ｂの物品を収容するパレットＡを位置Ｃへ移動することであってよい。
【００３９】
［0053］  倉庫管理システム２１０は、物流インタフェース３１０から棚卸タスク命令を受信し、１または複数のタスク／ミッション命令（たとえばロボットデバイスＡにパレットＢを位置Ｃから位置Ｄへ移動させる命令）および／または棚卸タスク命令を実行するようにロボットデバイス（複数も可）１２０を制御するための計画を生成してよい。タスク／ミッション命令および／または計画は、１または複数の経路および／または１または複数の軌道に関する情報を含んでよく、タスク／ミッション命令（複数も可）、計画（複数も可）、経路（複数も可）、および軌道（複数も可）は、図１および図２に関して説明される技術を用いて倉庫管理システム２１０の計画システム１１０によって生成される。
【００４０】
［0054］  たとえば、倉庫管理システム２１０は、たとえばサーバコンピューティングデバイスなどの１または複数のコンピューティングデバイスを用いてデータを実行および格納する集中制御サービスであってよい。これらのタスクを実行するために、倉庫管理システム２１０は、ＷＭＳミドルウェアを含んでよく、システム３００を監視および管理するためのツールへのアクセスを提供するユーザインタフェースを提供してよい。ＷＭＳミドルウェアおよび／または倉庫管理システム２１０の他の構成要素は、タスク／ミッション命令（たとえばロボットデバイスＡにパレットＢを位置Ｃから位置Ｄへ移動させる命令）からロボットデバイスの経路、姿勢、および／または軌道への変換、棚卸タスクとタスク／ミッション命令との間の変換、およびＡＰＩ間での変換のために、たとえばプロトコル変換ＡＰＩなどの１または複数のアプリケーションプログラミングインタフェース（ＡＰＩ）を用いてよい。
【００４１】
［0055］  倉庫管理システム２１０によって提供されるユーザインタフェースは、たとえば１または複数のロボットデバイスの位置、バッテリ状態、充電状態などに関するデータの提示など、ロボットデバイス（複数も可）１２０を監視すること、棚卸タスク命令（複数も可）、タスク／ミッション命令（複数も可）、計画（複数も可）、経路（複数も可）、および／または軌道（複数も可）の生成およびロボットデバイス（複数も可）１２０の１または複数への送信を可能にすること、および１または複数の倉庫マップ、パレット、ネットワーク、および／または計画システム（たとえば計画システム１１０、倉庫管理システム２１０、および／または物流インタフェース３１０）に関するデータを再検討、更新、削除、および／または挿入することを含むがこれに限定されない、システム３００に関する１または複数のユーザインタフェース機能を提供してよい。
【００４２】
［0056］  いくつかの実施形態において、倉庫管理システム２１０は、物流インタフェース３１０とロボットデバイス（複数も可）１２０との間およびロボットデバイス（複数も可）１２０の２つ以上の間の通信をルート指定し、たとえばロボットデバイス（複数も可）１２０の１または複数に搭載されたオンボードシステム３２０などの１または複数のオンボードシステムを管理してよい。他の実施形態において、倉庫管理システム２１０は、限定ではないがたとえば、ロボットデバイス（複数も可）１２０の１または複数によるタスク／ミッション命令の完了に関するデータ、ロボットデバイスが初期化／起動された位置を示すデータを含む、ロボットデバイス（複数も可）１２０の一部または全部の位置および／または姿勢に関するデータ、人間の行動に関する１または複数の監査追跡、事故分析、および／またはデバッギングに関するデータ、および状態追跡に関するデータなどの、システム３００に関するデータを格納、生成、読み取り、書き込み、更新、および／または削除してよい。他の実施形態において、倉庫管理システム２１０は、ロボットデバイス（複数も可）１２０および１または複数のアダプタと通信する中央メッセージルータ／持続性マネージャを含んでよい。１または複数のアダプタの各々は、倉庫管理システム２１０に利用可能なシステム３００の通信および／またはデータへのアクセスを提供してよく、限定ではないが、上述したユーザインタフェースのためのユーザインタフェースサービスアダプタ、システム３００に関する情報へのワールドワイドウェブ（ＷＷＷ）／インターネットアクセスを可能にするウェブコンテンツサービスアダプタ、ＡＰＩおよび／またはＷＭＳ間の通信の中継として機能するメッセージ代理アダプタおよび／またはＷＭＳアダプタを含んでよい。
【００４３】
［0057］  図３は、１または複数のロボットデバイス１２０の各々が、オンボードシステム３２０、ネットワークスイッチ３３０、車両コントローラ３３２、プログラマブル論理コントローラ（ＰＬＣ）３３４、１または複数のデバイスセンサ３３８、および１または複数のドライブ３４０の１または複数を含み得ることを示す。
【００４４】
［0058］  オンボードシステム３２０は、ロボットデバイス１２０へのインストールおよびロボットデバイス１２０との併用のために構成されたロボット計画のための計算およびセンサパッケージであってよく、オンボードシステム３２０は、オンボードセンサ３２２および１または複数の計画／実行プロセッサ３２４を含んでよい。図３は、（ネットワーク３１８を介して）計画システム１１０と、デバイスセンサ３３８と、および／またはロボットデバイス１２０の１または複数のアクチュエータと少なくとも通信するためにネットワークスイッチ３３０を用いるように構成されたオンボードシステム３２０も示す。
【００４５】
［0059］  オンボードシステム３２０は、ロボットデバイス１２０の位置測定、計画を実行するためのローカル軌道の生成および／または倉庫管理システム２１０によって提供された経路および／または軌道に沿った移動、ドライブ３４０に１または複数の（ローカル）軌道を辿らせるコマンドの生成、ロボットデバイス１２０のアクチュエータ（複数も可）を制御するコマンドの生成、および姿勢、状態、および／または他の情報を倉庫管理システム２１０へ報告することの１または複数を担ってよい。
【００４６】
［0060］  オンボードセンサ３２２は、オンボードシステム３２０をナビゲートおよび／または制御するための１または複数のナビゲーションレーザ、レーザスキャナ、カメラ、および／または他のセンサを含んでよい。たとえば、ロボットデバイス（複数も可）１２０のうちのロボットデバイスは、たとえばドイツ、ヴァルトキルヒ所在のＳＩＣＫ  ＡＧ社、日本、大阪府所在の北洋電機株式会社、および／または日本、大阪府所在の株式会社キーエンスによって供給される１または複数のレーザスキャナなどの、１または複数のレーザスキャナを含んでよい。レーザスキャナは、ロボットデバイスの移動方向およびロボットデバイスの側方、角、および／または後方に沿った障害物の検出および／または回避のために用いられ得る。レーザスキャナは、反射板ベースの位置測定を用いてロボットデバイスを位置測定するためにも用いられ得る。いくつかの実施形態において、カメラおよび／または他のセンサは、レーザスキャナの代わりに、またはレーザスキャナとともに、障害物検出、障害物回避、および／または位置測定のために用いられ得る。
【００４７】
［0061］  計画／実行プロセッサ（複数も可）３２４は、少なくともオンボードセンサ３２２に接続された１または複数のコンピュータプロセッサを含んでよい。計画／実行プロセッサ（複数も可）３２４は、オンボードセンサ３２２からのデータを読み取り、ローカル軌道および／またはロボットデバイス１２０を移動させるためのドライブ（複数も可）３４０へのコマンドを生成し、倉庫管理システム２１０と通信してよい。ローカル軌道は、ロボットデバイス１２０が始動姿勢で始動し、何らかの時間に終着姿勢に到達する軌道であってよい。いくつかの例において、始動姿勢は暗示的に指定されてよく、たとえば始動姿勢は、ロボットデバイス１２０の現在の姿勢であってよく、ローカル軌道は、始動姿勢がロボットデバイス１２０の現在の姿勢であるという前提に基づいてよい。
【００４８】
［0062］  計画／実行プロセッサ（複数も可）３２４は、コンポーネントフレームワークを利用してよい。コンポーネントフレームワークは、たとえばバージニア州オナンコックのｂｏｏｓｔ．ｏｒｇ社によって供給される「ｂｏｏｓｔ：：ａｓｉｏ」および「ｂｏｏｓｔ：：ｓｉｇｎａｌｓ２」ソフトウェアライブラリなどの、ロボットデバイス１２０の無矛盾非同期モデルを提供するように構成された入力／出力（Ｉ／Ｏ）およびシグナリングに関するソフトウェアライブラリ上に構築されたマルチスレッド型ジョブスケジューリングおよびメッセージ受渡しシステムであってよい。コンポーネントフレームワークは、ソフトウェアコンポーネント（またはモジュール）間の通信を可能にし得るので、ソフトウェアコンポーネントは、スレッドセーフ方式で並行して実行され得る。
【００４９】
［0063］  コンポーネントフレームワークは、ステートマシンコンポーネント、位置測定コンポーネント、計画コンポーネント、および軌道追従コンポーネントの１または複数を含んでよい。ステートマシンコンポーネントは、車両初期化、車両指揮および故障対応のためにロボットデバイス１２０の状態を管理してよい。ステートマシンコンポーネントは、ロボットデバイスの状態を管理するために、決定性有限オートマンまたは他のステートマシンを用いてよい。
【００５０】
［0064］  位置測定コンポーネントは、車両センサからのデータを読み取り、ロボットデバイス１２０の姿勢を決定するためにロボットデバイス１２０の以前の状態情報を統合してよい。車両センサデータは、車両センサによって検出された１または複数のランドマーク／対象地点を示してよい。あるいは、車両センサから得たデータは、位置測定コンポーネントが車両センサデータに基づいて１または複数のランドマーク／対象地点を検出するような処理を必要とし得る。姿勢は、たとえばパレットまたは他の物体など、検出された１または複数のランドマーク／対象地点に対して決定され得る。計画コンポーネントは、倉庫管理システム２１０から１または複数の目的を受信し、ロボットデバイス１２０がこれらの目的を達成するためのローカル軌道を決定してよい。いくつかの実施形態において、ローカル軌道は、ロボットデバイス１２０が、たとえば１００ミリ秒、２００ミリ秒、５００ミリ秒、１秒、５秒など所定の時間辿るべき短期間軌道であってよい。軌道追従コンポーネントは、計画コンポーネントによって生成されたローカル軌道を受信し、ローカル軌道に沿って移動するドライブ制御命令を生成してよい。その後、ドライブ制御命令は、トラクションモータおよびロボットデバイス１２０に関する他のアクチュエータを制御するドライブ３４０へ中継される。
【００５１】
［0065］  ネットワークスイッチ３３０は、ロボットデバイス（複数も可）１２０のための通信を可能にし得る。これらの通信は、オンボードシステム３２０とロボットデバイス１２０の他の部分、たとえばデバイスセンサ３３８およびドライブ３４０との間の通信、およびネットワーク３１８を介した倉庫管理システム２１０との通信を含んでよいが、これに限定されない。たとえばネットワークスイッチ３３０は、たとえば台湾、新北市の株式会社プラネットテクノロジーによるプラネットイーサネットスイッチのように、イーサネットおよび／または他の有線通信インタフェース（複数も可）を介した有線ネットワークへの、および／または、ＷｉＦｉ（登録商標）および／または他の無線通信インタフェース（複数も可）を介した無線ネットワークへの、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）ベースの通信を可能にし得る。
【００５２】
［0066］  いくつかの実施形態において、ロボットデバイス（複数も可）１２０と計画システム１１０との間の通信は、リモートプロシージャコール（ＲＰＣ）を含んでよい。リモートプロシージャコールは、計画システム１１０のソフトウェアによってロボットデバイス（複数も可）１２０の１または複数に常駐するソフトウェア手順、方法、および／または機能を呼び出すこと、およびその逆を含んでよい。リモートプロシージャコールは、たとえばＴＣＰ／ＩＰ、たとえばＨＴＴＰ１．０および／またはＨＴＴＰ２．０などのハイパーテキスト転送プロトコル（ＨＴＴＰ）、および／または他の通信プロトコルなどの通信プロトコルに基づいてよい。リモートプロシージャコールの一部または全部は、暗号化データを含んでよく、そのようなデータは、セキュアソケットレイヤ（ＳＳＬ）、トランスポート層セキュリティ（ＴＬＳ）、および／または１または複数の他の暗号化アルゴリズムおよび／またはプロトコルを用いて暗号化され得る。暗号化データが用いられる実施形態において、たとえばプライベート認証機関などの１または複数の認証機関は、暗号化データの暗号化および／または解読に用いられる１または複数の証明書を認証してよい。認証機関は、１または複数の証明書へのアクセスを制御するために、アクセス制御リスト（ＡＣＬ）を用いてよい。リモートプロシージャコールは、ＲＰＣ関連通信のための要求／応答プロトコルおよび／または双方向ストリーミングプロトコルを用いてよい。ＲＰＣ関連通信のために双方向ストリーミングプロトコルが用いられる実施形態において、双方向ストリーミングプロトコルを実装するために単一の長寿命ＲＰＣが用いられ得る。
【００５３】
［0067］  車両コントローラ３３２および／またはプログラマブル論理コントローラ３３４は、ロボットデバイス（複数も可）１２０のための電気およびセンサ管理機能を提供してよい。電気およびセンサ管理機能は、電気負荷制御、照明制御、センサ制御、センサおよび／またはスイッチ信号処理、および電力管理のための機能を含んでよいが、これに限定されない。車両マスタ３３６は、ロボットデバイス（複数も可）３２０の、たとえばリフトデバイスなどの１または複数のアクチュエータを制御するための機能を提供してよい。
【００５４】
［0068］  デバイスセンサ（複数も可）３３８は、ロボットデバイス（複数も可）１２０の制御および／または動作に関連するデータを提供し得る１または複数のセンサを含んでよい。データは、限定ではないがたとえば位置測定情報、位置推定、およびマッピングデータなどの、ロボットデバイス（複数も可）１２０に関する環境に関する情報を提供してよい。たとえば、デバイスセンサ（複数も可）３３８は、１または複数のレーザ（たとえば２方向（２Ｄ）レーザ、安全レーザ、レーザスキャナ）、カメラ（たとえば飛行時間（ＴｏＦ）カメラ、三原色（ＲＧＢ）カメラ、サーモカメラ）、電気センサ、近接センサ、ナビゲーションデバイス、および位置センサを含んでよい。
【００５５】
［0069］  デバイス（複数も可）３４０は、ロボットデバイス（複数も可）１２０を動かすための機能を提供する１または複数のドライブコントローラおよび／またはアクチュエータを含んでよい。ドライブコントローラは、ドライブアクチュエータに、ロボットデバイス（複数も可）１２０の動きを制御するように指示してよい。ドライブアクチュエータは、１または複数のトラクションモータ、電動ドライブ、油圧ドライブ、空圧ドライブを含んでよい。
【００５６】
［0070］  図４は、実施形態例に係る、ロボットデバイス（複数も可）１２０のロボットデバイスアーキテクチャ４００を示す。ロボットデバイス（複数も可）１２０のロボットデバイスアーキテクチャ４００は、ソフトウェアを含んでよい。ソフトウェアは、位置測定のためのソフトウェア４１０、パレット姿勢推定器のためのソフトウェア４１２、ステートマシンに関連するソフトウェア４１４、プランナフォロアのためのソフトウェア４１６、コンポーネントフレームワークのためのソフトウェア４２０、およびシステムを動作させるためのソフトウェア４３０を含んでよい。ソフトウェアは、１または複数のハードウェア計画／実行プロセッサ３２４によって実行され得る。ロボットデバイス（複数も可）１２０と他のデバイスとの間の通信は、ネットワークゲートウェイ４４０および／またネットワークスイッチ３３０を用いて実行され得る。たとえば、ネットワークゲートウェイ４４０は、ロボットデバイス（複数も可）１２０のうちのロボットデバイス内での、またはこれとの無線通信のために用いられ、ネットワークスイッチ３３０は、ロボットデバイス（複数も可）１２０のうちのロボットデバイス内での、またこれとの有線通信のために用いられ得る。ロボットデバイスアーキテクチャ４００は、たとえば図３に関連して上述したデバイスセンサ（複数も可）３３８およびドライブ（複数も可）３４０などの追加のハードウェアも含む。いくつかの実施形態において、ロボットデバイスアーキテクチャ４００は、ＴｏＦカメラ４５０およびＲＧＢカメラ４５２を含むがこれに限定されない１または複数のカメラを含んでよく、１または複数のカメラは、１または複数のスチルカメラおよび／または１または複数のビデオカメラを含んでよい。
【００５７】
［0071］  図５は、実施形態例に係る、ロボットデバイス（複数も可）１２０に関するレーザスキャナアーキテクチャ５００を示す。いくつかの実施形態において、デバイスセンサ（複数も可）３３８の一部または全部は、レーザスキャナアーキテクチャ５００によって示されるレーザおよびレーザスキャナであってよい。
【００５８】
［0072］  レーザスキャナアーキテクチャ５００は、レーザ５１０、５１２、５２０、５２２、レーザスキャナ５２４、プロトコルコンバータ５２６、ネットワークスイッチ３３０、およびオンボードシステム３２０を含んでよい。レーザ５１０、５１２、５２０、および５２２は、ロボットデバイス（複数も可）１２０の定位置にあってよく、たとえば、レーザ５１０はロボットデバイスの前部に位置し、レーザ５１２はロボットデバイスの後部に位置し、レーザ５２０はロボットデバイスの前部左角に位置し、レーザ５２２はロボットデバイスの前部右角に位置してよい。レーザ５１０、５１２、５２０、５２２および／またはレーザスキャナ５２４は、環境内でロボットデバイスを位置測定するための情報を提供してよい。いくつかの実施形態において、レーザ５１０、５１２、５２０、５２２および／またはレーザスキャナ５２４は、１または複数の反射板から反射した光を放出してよく、反射光は、１または複数のレーザセンサによって検出されてよく、ロボットデバイスは、反射光を検出するために要する持続時間に基づいて環境内で位置測定され得る。これらの実施形態において特に、レーザ５１０、５１２、５２０、５２２および／またはレーザスキャナ５２４の一部または全部は、反射レーザ光を検出するための１または複数のレーザセンサを含んでよい。したがって、レーザ５１０、５１２、５２０、５２２および／またはレーザスキャナ５２４の一部または全部は、レーザに関連するデータ（たとえばレーザに関連するメンテナンスデータ）、レーザによって放出された光に関連するデータ、およびレーザセンサ（複数も可）によって反射レーザ光を検出するために要する１または複数の持続時間に関連するデータを含むがこれに限定されないデータを生成してよい。
【００５９】
［0073］  図５に示すように、たとえばレーザ５２０、５２２などのいくつかのレーザおよびレーザスキャナ５２４は、ネットワークスイッチ３３０に直接接続され得るが、たとえばレーザ５１０、５１２などの他のレーザは、プロトコルコンバータ５２６を介してネットワークスイッチ３３０に接続され得る。プロトコルコンバータ５２６は、たとえばレーザ５１０および／または５１２などのレーザによって用いられる通信プロトコルを、ネットワークスイッチ３３０によって用いられる通信プロトコルに変換してよく、たとえばＲＳ‐４２２に基づく通信プロトコルからイーサネットに基づく通信プロトコルに変換してよい。その後、レーザ５１０、５１２、５２０、５２２、およびレーザスキャナ５２４は、ネットワークスイッチ３３０および場合によってはプロトコルコンバータ５２６を介して、オンボードシステム３２０へデータを送信し、オンボードシステム３２０からのコマンドを受信してよい。
【００６０】
［0074］  いくつかの実施形態において、ロボットデバイス（複数も可）１２０は、１または複数の障害状態を仮定され得る。これらの障害状態および関連する修復戦略の例が以下の表２に表される。
【表１】
2019537078.tif 000003
ＩＩＩ．環境内でのロボットデバイスの位置測定
【００６１】
［0075］  図６は、実施形態例に係る、環境内を通行するロボットを示す。ロボット６００の位置および向きが推定されてよく、ロボットは、それに応じて環境内を通行してよい。ロボットの位置および向きは、ロボットの「姿勢」と称され得る。ロボットの姿勢は、ロボットの１または複数のセンサ６０２による受信信号６０６に基づいて推定され得る。受信信号は、環境全体に配置されたランドマーク６０４に関連してよい。たとえば信号は、倉庫内の様々な位置に設けられた再帰反射マーカによって反射され得る。この例において、ロボットは、ロボットの周囲のエリアに光を放出する光測距および検出（ＬＩＤＡＲ）ユニットを含んでよく、ロボットの周囲のエリアに位置する再帰反射器は、ロボットの１または複数のセンサによって検出するためにロボットへ光を反射してよい。
【００６２】
［0076］  いくつかの例において、受信信号は、ロボットに対するランドマークの位置を含んでよい。また、環境内のランドマークの位置は予め決定され得る。たとえばランドマークは、マップ化され得る。受信信号と、対応するマップ化ランドマークとをマッチングすることによって、環境内のロボットの姿勢が推測されることが可能になり得る。たとえば、ロボットは、マップ上の自身の位置を決定するために、検出したランドマークとマップ化ランドマークとを位置合わせしてよい。また、環境内の障害物６１０に関するランドマークの位置が予め決定され得る。たとえば、障害物の位置もまたマップ化され得る。ロボットは、推定された姿勢および予め決定された障害物の位置に基づいて、障害物を回避しながら環境内を通行するように動き６０８を行ってよい。
【００６３】
［0077］  図７は、実施形態例に係る、検出をマップ化ランドマークに関連付けるロボットを示す。候補ランドマーク７１２からの検出信号７０６は、ロボット７００の１または複数のセンサ７０２によって受信され得る。信号は、ロボットに関連する候補ランドマークの位置を示してよい。候補ランドマークは、マップ化ランドマーク７０４と位置合わせするために変換され得る。候補ランドマークとマップ化ランドマークとの間に、変換後の候補ランドマークとマップ化ランドマークとの間の最小距離をもたらす関連性７１４が形成され得る。たとえば関連性７１４は、たとえばｉｔｅｒａｔｉｖｅ  ｃｌｏｓｅｓｔ  ｐｏｉｎｔ（ＩＣＰ）法などの最小二乗平均法を用いて形成され得る。候補ランドマークは、候補ランドマークとマップ化ランドマークとの間の関連性７１４に基づいて移動および回転され得る。ロボットの姿勢は、ロボットを同様に移動および回転させることによって推測され得る。
【００６４】
［0078］  図８は、実施形態例に係る、ロボット制御システムのモジュールを示す機能ブロック図である。ロボット制御システムは、オンボード感知モジュール８００の一部として１または複数のセンサを含んでよい。センサは、ロボットの車輪オドメトリ８０８を示すデータを提供してよい。またセンサは、ナビゲーションスキャナ８１０も含んでよい。ナビゲーションスキャナ８１０は、ロボットの環境内の候補ランドマークからの信号を受信するように構成され得る。
【００６５】
［0079］  ロボット制御システムの姿勢推定モジュール８０２は、環境内のマップ化ランドマークに対するロボットの位置および向きを示してよい。姿勢推定モジュール８０２は、オンボード感知モジュール８００からの入力に基づいて機能を実行するソフトウェアを含んでよい。たとえば、ナビゲーションスキャナ８１０がスキャンを実行する度に、オンボード感知モジュールからのセンサデータは、環境内のロボットの現在の位置および向きを決定するために姿勢推定モジュール８０２によって処理され得る。姿勢推定モジュール８０２の姿勢追跡／精緻化ブロック８１２およびグローバル位置測定ブロック８１４は、処理ステップを表し、姿勢ブロック８１６、信頼度／精度ブロック８１８、および初期姿勢推定ブロック８２０は、処理ブロック８１２および８１４の出力を表す。
【００６６】
［0080］  姿勢推定モジュール８０２は、２つのモードで動作してよい。第１のモードにおいて、姿勢推定モジュール８０２は、ロボットの初期姿勢推定８２０を有してよく、姿勢追跡／推定ブロック８１２は、初期姿勢推定８２０を更新してよい。姿勢追跡／精緻化８１２は、候補ランドマークに関するロボットの位置を識別するために、初期姿勢推定８２０と併せて車輪オドメトリ８０８およびナビゲーションスキャナ８１０からのデータを利用してよい。姿勢追跡／精緻化ブロック８１２は、候補ランドマークを、初期姿勢推定８２０付近にある特定のマップ化ランドマークに関連付けてよい。姿勢推定モジュール８０２は更に、関連性に基づく姿勢推定８１６、および姿勢推定の信頼度／精度８１８を提供してよい。信頼度／精度８１８は、初期姿勢推定が適切であること、または更なる精緻化を要することを示してよい。また第１のモードにおいて、姿勢追跡／精緻化ブロック８１２によって決定された姿勢８１６および信頼度／精度８１８は、ロボットの精緻化姿勢推定を決定するために後処理モジュール８０４によって用いられ得る。その間、グローバル位置測定ブロック８１４はスキップされ得る。また、姿勢追跡／精緻化８１２中に導出された姿勢推定８１６は、後続する姿勢推定において用いるためのロボットの初期姿勢推定８２０として扱われ得る。
【００６７】
［0081］  第２のモードにおいて、姿勢推定モジュール８０２は、ロボットが環境内のどこにあるかの初期インジケーションを有さなくてよい。すなわち、初期姿勢推定８２０は未だ決定されていなくてよい。第２のモードにおいて、姿勢推定モジュール８０２は、ロボットの姿勢を決定するために姿勢追跡／精緻化８１２ではなくグローバル位置測定８１４を利用してよい。グローバル位置測定ブロック８１４は、ロボットの環境全体にわたるマップ化ランドマークと候補ランドマークとの関連性を検査してよい。またグローバル位置測定ブロック８１４は、姿勢推定８１６および信頼度／精度８１８を出力してよい。また第２のモードにおいて、グローバル位置測定ブロック８１４によって決定された姿勢８１６および信頼度／精度８１８は、ロボットの精緻化姿勢推定を決定するために後処理モジュール８０４において用いられ得る。また、グローバル位置測定８１４中に導出された位置推定８１６は、後続する姿勢推定において用いるためのロボットの初期姿勢推定８２０として扱われ得る。
【００６８】
［0082］  後処理モジュール８０４は、姿勢追跡／精緻化またはグローバル位置測定から導出された姿勢推定を精緻化するために用いられ得る。後処理モジュールは、位置測定モジュールの姿勢推定および信頼度／精度およびオンボード感知モジュールの車輪オドメトリの融合外挿８２２を実行してよい。融合外挿中、信頼度／精度が高い場合、精緻化姿勢推定は、位置測定モジュールによって提供された姿勢推定により依存してよい。逆に、信頼度／精度が低い場合、精緻化姿勢推定は、車輪オドメトリにより依存してよい。また、後処理モジュールは、提供された信頼度／精度および精緻化姿勢推定に基づいてマップ更新８２４を提供してよい。たとえばマップ更新は、精緻化姿勢推定に基づいてマップ化ランドマークの位置を更新してよい。他の例において、マップ更新は、精緻化姿勢推定を生成するために用いられたマップ化ランドマークに関連する統計情報を更新してよい。
【００６９】
［0083］  図８のロボット制御システムによって実行される機能の各々は、定期的に実行され得る。たとえば、ナビゲーションスキャナ８１０は８Ｈｚでスキャンを実行し、車輪オドメトリ８０８は１００Ｈｚで更新してよい。他の例として、姿勢推定モジュールの処理ブロック８１２および８１４は、オンボード感知モジュールからのデータを８Ｈｚで受信し、姿勢８１６および信頼度／精度８１８を８Ｈｚで生成してよい。同様に様々な周波数が可能である。
【００７０】
［0084］  図９は、実施形態例に係る、ロボットのマップ化環境を示す。ロボットの姿勢推定の生成は、環境内の予め定められたランドマークの位置に依存してよい。たとえば、マップ化ランドマーク９０２は、マップ上の第１の座標（ｘ１，ｙ１）に対応し、マップ化ランドマーク９０４は第２の座標（ｘ２，ｙ２）に対応し、マップ化ランドマーク９０６は第３の座標（ｘ３，ｙ３）に対応し、マップ化ランドマーク９０８は第４の座標（ｘ４，ｙ４）に対応してよい。この例において、マップ化ランドマークは実質的に水平なマーカ平面に配置され得るので、ｘ軸およびｙ軸のみが関係し得る。たとえば、倉庫内の各再帰反射器は、床面から５フィートの高さ（ｚ軸に対応）に位置してよい。他の例において、マップ化ランドマークは、マップ上の座標範囲に対応してよい。たとえば、座標範囲は、様々なランドマークのサイズに対応してよい。また他の例において、マップ化ランドマークは、（３Ｄ）マップ上の３次元（３Ｄ）座標に対応してよい。マップ化ランドマークの位置を表す他の方法も可能である。
【００７１】
［0085］  いくつかの実施形態例において、マップ化ランドマークは、光源の方へ光を反射するように構成された再帰反射マーカであってよい。そのような例において、ロボットは、ロボットの周囲のエリアに光を放出するように構成された光測距および検出（ＬＩＤＡＲ）ユニットを含んでよい。再帰反射マーカは、ＬＩＤＡＲユニットからの信号をロボットへ反射してよい。ロボットは、再帰反射マーカからの反射信号を受信しロボットに対するマーカの位置を検出するように構成され得る、ロボットの１または複数のセンサを含んでよい。
【００７２】
［0086］  図１０は、実施形態例に係る、複数の検出を行ったロボットを示す。ロボットの姿勢推定の生成は、ロボット１０００の１または複数のセンサ１００２によって検出された信号１００６に更に依存してよい。一例において、信号は、候補ランドマーク１０１２、１０１４、１０１６、１０１８、および１０２０と関連してよい。信号は、ロボットに関する候補ランドマークの位置を示してよい。たとえば、候補ランドマーク１０１２は、ロボット１０００に対する半径（ｒ１）およびロボット１０００に対する角度（α１）に対応し、候補ランドマーク１０１４は、半径（ｒ２）および角度（α２）に対応し、候補ランドマーク１０１６は、半径（ｒ３）および角度（α３）に対応し、候補ランドマーク１０１８は、半径（ｒ４）および角度（α４）に対応し、候補ランドマーク１０２０は、半径（ｒ５）および角度（α５）に対応してよい。他の例において、候補ランドマークは、ロボット１０００に関するデカルト座標によって表され得る。ロボットに対する候補ランドマークの位置を表す他の方法も可能である。
【００７３】
［0087］  いくつかの例において、候補ランドマークの位置は、ロボットの少なくとも１つのセンサによって決定され得る。すなわち、センサは、候補ランドマークの位置を示す信号を受信してよい。センサは、受信信号を表すセンサデータを生成し、センサデータに基づいて候補ランドマークの位置を決定してよい。ロボットの制御システムはその後、センサから候補ランドマークの位置を受信してよい。他の例において、少なくとも１つのセンサは、生センサデータを生成してよく、ロボットの１または複数のプロセッサは、候補ランドマークの位置を決定するために生センサデータを処理してよい。たとえば、プロセッサは、強度閾値を上回る強度を有する、ロボット上のセンサからの信号を識別してよい。また他の例において、ロボットから遠隔にあるプロセッサが、センサデータに基づいて候補ランドマークの位置を検出してよい。候補ランドマークの位置を決定するための他の方法も可能である。
【００７４】
［0088］  候補ランドマークは、マップ化ランドマークに対応し、または対応しないこともある。たとえば、候補ランドマーク１０１２、１０１４、１０１６、および１０１８は、マップ化ランドマーク（たとえば図９のマップ化ランドマーク９０２、９０４、９０６、および９０８）に対応し、候補ランドマーク１０２０は誤検出に対応してよい。誤検出は、候補ランドマークと、対応するマップ化ランドマークとの位置合わせを困難にし、その結果、ロボットの正確な位置推定を妨げ得る。正確な位置推定を実現するために候補ランドマークを検査する方法を説明する実施形態例を以下に示す。
【００７５】
［0089］  図１１Ａ、図１１Ｂ、図１１Ｃ、および図１１Ｄは、実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのサンプルセットに関連するインライアの決定を示す。図１１Ａは、ロボットのマップ化環境を示す。マップ化ランドマーク１１０２、１１０４、１１０６、および１１０８は、予め決定された位置を有する。図１１Ｂは、複数の検出を行ったロボットを示す。検出は、候補ランドマーク１１１２、１１１４、１１１６、１１１８、および１１２０に対応する。実施形態例において、候補ランドマーク１１１２、１１１４、および１１２０、および対応するマップ化ランドマーク１１０２、１１０４、および１１０６を含むサンプルセットが決定される。この例において、３つの候補ランドマークがサンプリングされた。ただし、様々な数のサンプリングされたランドマークが同様に可能である。たとえば、サンプリングされたランドマークの数は、候補ランドマークの総数の百分率に関連してよい。
【００７６】
［0090］  いくつかの実施形態において、候補ランドマークのサンプリングは、疑似ランダムに実行され得る。他の実施形態において、候補ランドマークのサンプリングは、規則正しい形式で実行され得る。たとえば、候補ランドマークのサンプリングは、ロボットに対する角度の順序で実行され得る。他の例において、候補ランドマークのサンプリングは、ロボットに対する半径の順序で実行され得る。また他の例において、第１の候補ランドマークは疑似ランダムに選択され、他の候補ランドマークは、第１の候補ランドマークとの近接度に基づいてサンプリングされ得る。また他の例において、候補ランドマークは、所望の幾何学形状に基づいて選択され得る。たとえば、二等辺三角形に最も近い候補ランドマークがサンプリングされ得る。他の例において、直線に最も近い候補ランドマークがサンプリングされ得る。候補ランドマークをサンプリングする他の方法も可能である。
【００７７】
［0091］  いくつかの実施形態において、対応するマップ化ランドマークは、サンプリングされた候補ランドマークと同様の形式で選択され得る。他の実施形態において、サンプリングされた候補ランドマークと同様の幾何学形状を成す、対応するマップ化ランドマークがサンプリングされ得る。この例において、サンプリングされたマップ化ランドマーク１１０２、１１０４、および１００６は、サンプリングされた候補ランドマーク１１１２、１１１４、および１１２０が成す幾何学形状に最も近いものである。対応するマップ化ランドマークをサンプリングする他の方法も可能である。
【００７８】
［0092］  いくつかの実施形態において、各々が異なる候補ランドマークおよび対応するマップ化ランドマークの組み合わせを含む数個のサンプルセットが決定され得る。サンプルセットの各々は、どのサンプルセットがロボットの姿勢を適切に表すかを決定するために検査され得る。
【００７９】
［0093］  図１１Ｃは、候補ランドマークの全てに適用された、サンプルセットに基づいて決定された変換を示す。変換は、サンプリングされた候補ランドマークのサブセットを対応するマップ化ランドマークに関連付けるサンプルセットに関して決定され得る。たとえば、変換は、サンプリングされた候補ランドマークと対応するマップ化ランドマークとの間の距離が最小になるように候補ランドマークを移動および回転させ得る。この実施形態例において、サンプリングされた候補ランドマーク１１１２、１１１４、および１１２０は、対応するマップ化ランドマーク１１０４、１１０６、および１１０２との間の全体距離が最小になるように配向された。たとえばｉｔｅｒａｔｉｖｅ  ｃｌｏｓｅｓｔ  ｐｏｉｎｔ（ＩＣＰ）アルゴリズムなどの最小二乗法が、この位置合わせを実現し得る。任意の同様のアルゴリズムが適宜、サンプリングされた候補ランドマークのサブセットと対応するマップ化ランドマークとを位置合わせし得る。他の変換も可能である。
【００８０】
［0094］  変換は、サンプリングされた候補ランドマークのサブセットおよび対応するマップ化ランドマークに基づいて決定され得るが、候補ランドマークの全てに適用されてよい。この例において、変換は、サンプリングされた候補ランドマークに加えて、サンプリングされていない候補ランドマーク１１１６および１１１８にも適用される。
【００８１】
［0095］  決定された変換が候補ランドマークに適用されると、変換後の候補ランドマークと近隣マップ化ランドマークとの間の距離が決定され得る。変換後の特定の候補ランドマークに対応する近隣マップ化ランドマークは、変換が適用された後の最も近いマップ化ランドマークであってよい。いくつかの例において、各マップ化ランドマークは、変換後の候補ランドマークの１つの近隣マップ化ランドマークとしてのみ機能してよい（たとえば、単一のマップ化ランドマークは、複数の候補ランドマークのインライアとなることはできない）。この例において、マップ化ランドマーク１１０２は、変換後の候補ランドマーク１１２０の近隣マップ化ランドマークであり、マップ化ランドマーク１１０４は、変換後の候補ランドマーク１１１２の近隣マップ化ランドマークであり、マップ化ランドマーク１１０６は、変換後の候補ランドマーク１１１４の近隣マップ化ランドマークである。
【００８２】
［0096］  変換は一般に、ロボット１１００の可能な姿勢を示してよい。変換後の候補ランドマークと近隣ランドマークとの間の距離は、変換が実行可能な姿勢を表すか否かを示してよい。たとえば、変換に関連するインライアの数が決定され得る。
【００８３】
［0097］  図１１Ｄは、実施形態例に係る、変換後の候補ランドマークに関連するインライアの数を示す。インライアの各々は、インライア距離閾値に基づいて決定され得る。インライア距離閾値は、変換後の候補ランドマークがマップ化ランドマークのいずれかと適切に位置合わせされたかを示してよい。この例において、インライア距離閾値は、それぞれ変換後の候補ランドマーク１１２０、１１１２、および１１１４を取り囲む半径領域１１３０、１１３２、および１１３４によって表される。近隣マップ化ランドマークから距離閾値内にある任意の変換後の候補ランドマークは、インライアと考えられ得る。この例において、変換後の候補ランドマーク１１１２、１１１４、および１１２０は、インライアと考えられ得る。候補ランドマーク１１１６および１１１８は図１１Ｄには示されず、これらはインライアと考えられない。また、変換後の候補ランドマークのいずれかのインライア距離閾値内にないマップ化ランドマーク１１０８も図１１Ｄに示されない。
【００８４】
［0098］  誤検出を含むサンプリングされたサブセットは、ロボットの姿勢を表すのに適切ではない変換をもたらし得る。この例において、候補ランドマーク１１１２、１１１４、１１１６、および１１１８はそれぞれマップ化ランドマークに対応するが、候補ランドマーク１１２０は誤検出に対応する。図１１Ｃおよび図１１Ｄは、サンプリングされたサブセットが誤検出を含むためにロボットの姿勢を適切に表さない変換の実施形態例を示す。
【００８５】
［0099］  この例において、５つの変換後の候補ランドマークから３つのインライアが決定される。すなわち、５分の３の候補ランドマークは、変換に基づいて適切に位置合わせされたと考えられ得る。インライアを有する５分の３の候補ランドマークは、実行可能な変換に対応せず、ロボットの実行可能な姿勢を示すものではないことが決定され得る。変換が実行可能ではないという決定に他の要因も寄与してよい。図１１Ａ〜Ｄにおいて、たとえば、サンプリングされていない候補ランドマークのいずれもインライアに関連しない。決定された変換は、サンプリングされた候補ランドマークと対応するマップ化ランドマークとを最も適切に位置合わせすることが意図されるので、変換後のサンプリングされた候補ランドマークはインライアに関連することが通常であり得る。したがって、サンプリングされていない候補ランドマークがインライアに関連するかが、変換の実行可能性を決定する際により重視され得る。インライアの数が不十分であると決定された例において、他の候補ランドマークおよび対応するマップ化ランドマークがサンプリングされ、他の候補ランドマークが変換され、他の候補ランドマークに関連するインライアの数が決定され得る。
【００８６】
［0100］  図１２Ａ、図１２Ｂ、図１２Ｃ、および図１２Ｄは、実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークの別のサンプルセットに関連するインライアの決定を示す。図１２Ａは、図１１Ａに示すものと同じ、ロボットのマップ化環境を示す。同様に、図１２Ｂは、図１２Ｂに示すものと同じ検出を行ったロボットを示す。ただし、図１２Ａおよび図１２Ｂは、異なるサンプルセットを示す。この例において、候補ランドマーク１２１４、１２１６、および１２１８、および対応するマップ化ランドマーク１２０４、１２０６、および１２０８がサンプリングされる。図１２Ｃは、候補ランドマークの全てに適用された、サンプルセットから決定された変換を示す。この例において、変換は、サンプリングされた候補ランドマーク１２１４、１２１６、および１２１８、および対応するマップ化ランドマーク１２０４、１２０６、および１２０８に基づいて決定される。変換は、サンプリングされていないランドマーク１２１２および１２２０にも適用される。図１２Ｄは、マップランドマークと位置合わせされた変換後の候補ランドマークに関連するインライアの数を示す。サンプリングされた候補ランドマーク１２１４、１２１６、および１２１８は、サンプリングされた候補ランドマークの半径領域１２３４、１２３６、および１２３８内にある近隣マップ化ランドマーク１２０４、１２０６、および１２０８に対応するので、インライアである。サンプリングされていない候補ランドマーク１２１２もまた、近隣マップ化ランドマーク１２０２が候補ランドマーク１２１２の半径距離１２３２内にあるので、インライアである。
【００８７】
［0101］  図１２Ｄは、５つの候補ランドマークのうち４つのインライアを含む実施形態例を示す。５つの候補ランドマークのうちインライアを有する４つは、実行可能な変換に対応し、ロボットの実行可能な姿勢を示すことが決定され得る。この決定は、合計４つのサンプリングされた近隣ランドマーク１２０２、１２０４、１２０６、および１２０８が存在するという理由からなされ得る。したがって、この例における４つのインライアの決定は、候補ランドマークを各々の関連マップ化ランドマークと適切に位置合わせする変換を示す。変換が実行可能であるという決定に、他の要因も寄与してよい。図１２Ｄにおいて、たとえば、サンプリングされていない候補ランドマークの１つがインライアに関連する。図１２Ａ〜１２Ｄに示すように、１または複数の誤検出に由来する変換は、サンプリングされていない候補ランドマークに関連するインライアを考慮する可能性が低いので、サンプリングされていない候補ランドマークがインライアに関連することは有意であり得る。
【００８８】
［0102］  図１２Ａ〜１２Ｄは、マップ化ランドマークに対応する候補ランドマークのみを含むサンプリングされたサブセットが、ロボットの姿勢を適切に表す変換をもたらし得ることを示す。図１２Ａ〜１２Ｄは、任意のマップ化ランドマークから遠い誤検出がどのように変換の不適切性を示し得るかを示したが、いくつかの例は、マップ化ランドマークに近い誤検出を含んでよい。
【００８９】
［0103］  図１３Ａ、図１３Ｂ、図１３Ｃ、および図１３Ｄは、実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのまた別のサンプルセットに関連するインライアの決定を示す。図１３Ａは、図１１Ａおよび図１２Ａに示すものと同じロボットのマップ化環境を示す。ただし図１３Ｂは、２つの追加の検出（候補ランドマーク１３２０および１３２２）を行い、検出（図１１Ｂ／図１２Ｂの候補ランドマーク１１２０／１２２０）を損失したロボットを示す。この例は、ロボット１３００が環境内の自身の位置および向きを変えると、追加の誤検出を検出し得ることを示す。たとえば、候補ランドマーク１３１２、１３１４、１３１６、および１３１８は、それぞれマップ化ランドマーク１３０２、１３０４、１３０６、および１３０８に対応してよく、候補ランドマーク１３２０および１３２２は、誤検出に対応してよい。これは、ロボットの様々な位置および向き（図１１Ｂ／図１２Ｂの１１００／１２００）において１つの誤検出（図１１Ｂ／図１２Ｂの候補ランドマーク１１２０／１２２０）のみを含んだ図１１Ａ〜Ｄおよび図１２Ａ〜Ｄに示す例とは対照的である。
【００９０】
［0104］  図１３Ｃは、候補ランドマークの全てに適用された、サンプルセットから決定された変換を示す。この例において、サンプルセットは、候補ランドマーク１３１４、１３２２、および１３１６、および対応するマップ化ランドマーク１３０４、１３０６、および１３０８を含む。図１３Ｄは、変換が４つのインライアをもたらすことを示す。具体的には、近隣マップ化ランドマークが半径領域１３３４、１３４２、および１３３６内に含まれるように、サンプリングされた候補ランドマーク１３１４、１３２２、および１３１６はそれぞれ近隣マップ化ランドマーク１３０４、１３０６、および１３０８と位置合わせされる。また、サンプリングされていない候補ランドマーク１３１２は、近隣マップ化ランドマーク１３０２が半径領域１３３２内に含まれるように、近隣マップ化ランドマーク１３０２と位置合わせされる。したがって、図１３Ｄは、サンプリングされた候補ランドマークのサブセットが、誤検出（たとえば候補ランドマーク１３２２）を含むにも関わらず、一見すると実行可能な変換をもたらし得る。図１３Ｃ〜Ｄは、誤検出を用いる変換が、わずかにシフトされたロボットの姿勢推定を示し得ることも示す。不正確な姿勢推定は、ロボットに環境内を非効率的に通行させ得る。
【００９１】
［0105］  図１３Ａ〜Ｄに示されるようなシナリオの悪影響を緩和するために、いくつかの測定が行われ得る。たとえば、インライア距離閾値が低減され得る。この場合、マップ化ランドマークに近い誤検出であっても、誤検出を含まないサンプリングされたサブセットと同じ数のインライアを生成することはない。また、誤検出がそのような変換をもたらす場合でも、姿勢は、たとえば図１３Ｃに示すシフトよりも低い程度にシフトされる。この例において、インライア距離閾値は、変換後の候補ランドマーク１３１２がインライアを生成しないように低減され得る。しかしながら、インライア距離閾値の低減はなお、誤検出によって生じるシフトされた姿勢推定を可能にし得る。
【００９２】
［0106］  また、誤検出を含むサンプルセットは実行可能な変換をもたらし得るが、サンプルセットは必ずしも、ロボットの姿勢を推定するために選択されるわけではない。他のより適したサンプリングされたサブセットが代わりに選択されてよい。たとえば、２つ以上のサンプルセットが同じ数のインライアを生成する場合、マップ化ランドマークとの最小正味距離を有する変換後のサンプルセットが選択され得る。たとえば、候補ランドマーク／マップ化ランドマークペア１２１２／１２０２、１２１４／１２０４、１２１６／１２０６、および１２１８／１２０８間の距離は、１３１２／１３０２、１３１４／１３０４、１３２２／１３０６、および１３１６／１３０８間の距離よりも小さいので、図１２Ｄに示す変換は、図１３Ｄに示す変換よりも好適であってよい。追加の例において、同数のインライアを生成するサンプルセットは、互いに反復的に比較され得る。インライア距離閾値は、１つのサンプルセットが他よりも多い数のインライアを有するまで、反復ごとに減少し得る。
【００９３】
［0107］  サンプルセットが選択されると、サンプルセットに基づいてロボットの姿勢推定が決定され得る。いくつかの例において、サンプルセットに関して既に決定された変換は、推定ロボット姿勢を決定するために直接適用され得る。他の例において、選択されたサンプルセットに関連する全てのインライアを用いて、精緻化変換が決定され得る。精緻化変換はその後、より正確なロボット姿勢推定を生成するために適用され得る。姿勢推定の他の例も可能である。
【００９４】
［0108］  いくつかの例は、サンプリングされたサブセットに関連する姿勢推定信頼度を決定することも含んでよい。姿勢推定信頼度は一般に、候補ランドマークの総数との比較における、サンプリングされたサブセットに関連して決定されたインライアの数に関する。たとえば姿勢推定信頼度は、候補ランドマークの総数に対する決定されたインライアの数の比に基づいてよい。この例において、１に近い比は、正確な姿勢推定の可能性が高いことを示す。対照的に、０に近い比は、正確な姿勢推定の可能性が低いことを示す。
【００９５】
［0109］  いくつかの例において、姿勢推定信頼度は、精緻化姿勢推定を決定する際に考慮され得る。たとえば、高い姿勢推定信頼度を有する選択されサンプリングされたサブセットは、精緻化姿勢推定への一次寄与因子であってよい。低い姿勢推定信頼度を有する選択されサンプリングされたサブセットは、精緻化姿勢推定への二次寄与因子であってよい。たとえば、精緻化姿勢推定は、選択されたサンプルセットよりも車輪オドメトリに大きく由来し得る。このように、姿勢推定の完了は、カルマンフィルタリングを想起させ得る。
【００９６】
［0110］  他の例は、サンプリングされたサブセットに関連する姿勢推定の精度を決定することを含んでよい。精度は、ロボットの過去の姿勢推定に関する統計情報に基づいてよい。たとえば、各マップ化ランドマークについて共分散行列が決定され得る。共分散行列は、過去の姿勢推定の位置および向きを含んでよい。共分散行列と良好にマッチしない姿勢推定は、共分散行列に適合する姿勢推定のように正確ではない可能性がある。たとえば、図１３Ａ〜１３Ｄにおけるサンプルセットに基づく姿勢推定は、図１２Ａ〜１２Ｄのサンプルセットから導出された姿勢推定がマップ化ランドマーク１２０６に適合するようにマップ化ランドマーク１３０６に関する共分散行列に適合しない。これは、ロボット１３００の姿勢は、姿勢推定をシフトさせ得る２つの誤検出（候補ランドマーク１３２０および１３２２）を含むが、ロボット１２００は１つの誤検出（候補ランドマーク１２２０）しか含まないことに起因し得る。いくつかの例において、両方のサンプルセットが同じ数のインライアを生成する場合でも、他方よりも正確であるとみなされるサンプルセットが選択され得る。追加の例において、姿勢推定は、姿勢推定信頼度に関して説明したものとほぼ同じ方法で決定された姿勢推定の精度に基づいて精緻化され得る。
【００９７】
［0111］  図１４は、実施形態例に係る、ロボットの環境内でのロボットの姿勢を推定するために用いられ得る方法のブロック図である。いくつかの例において、方法は、システムの一部として実行され得る。たとえばブロック１４００は、非一時的コンピュータ可読媒体に格納されたプログラム命令を実行する１または複数のプロセッサとともにロボットの１または複数のセンサによって実行され得る。例において、ロボットの１または複数のセンサは、複数の候補ランドマークからの信号を受信してよく、実行されるプログラム命令は、受信信号に基づいてロボットに関連する候補ランドマークの位置を決定してよい。１または複数のプロセッサは、ブロック１４０２、１４０４、１４０６、１４０８、および１４１０に含まれる機能を実行するためにもプログラム命令を実行してよい。
【００９８】
［0112］  他の例において、方法は、コンピューティングシステムの一部として実行され得る。これらの例において、非一時的コンピュータ可読媒体は、コンピューティングシステムに方法のブロックを実行させるために１または複数のプロセッサによって実行可能な命令を格納してよい。
【００９９】
［0113］  これらの例において、１または複数のプロセッサおよび非一時的コンピュータ可読媒体は、ブロックを遠隔に実行してよい。他の例において、１または複数のプロセッサおよび非一時的コンピュータ可読媒体は、ロボットにおいて方法を実行してよい。また他の例において、方法の一部は遠隔的に実行され、他の部分はロボットにおいて実行され得る。
【０１００】
［0114］  方法のブロック１４００は、ロボット上の少なくとも１つのセンサからのセンサデータに基づいてロボットに関連する複数の候補ランドマークの位置を決定するために実行され得る。たとえば、ロボットの１または複数のセンサは信号を受信してよい。信号は、ロボットの環境内のランドマークまたは環境内の他の物体から発され得る。ランドマークおよび物体の位置が決定され得る。各検出は、候補ランドマークとして扱われ得る。
【０１０１】
［0115］  方法のブロック１４０２は、複数のサンプルセットを決定するために実行されてよく、各サンプルセットは、複数の候補ランドマークおよび複数の対応するマップ化ランドマークのサブセットを備える。たとえば、複数のサンプルセットを決定することは、ロボットに関連する複数の候補ランドマークの位置に基づいて、複数の候補ランドマークから各サンプルセットについて３つの候補ランドマークを選択することを備えてよい。またサンプルセットは、３つの対応するマップ化ランドマークも含んでよい。
【０１０２】
［0116］  他の例において、複数のサンプルセットを決定することは、ロボットの初期姿勢推定に基づいて、対応するマップ化ランドマークから対応閾値内にある候補ランドマークを識別することを備えてよく、各サンプルセットは、識別された候補ランドマークおよび対応するマップ化ランドマークのサブセットを備える。たとえば、初期姿勢推定（ｘ１，ｙ１）および向きα１を有するロボットは、ロボットに関連する位置にある候補ランドマークを検出してよい。ロボットは、オドメトリデータも有してよい。ロボットの概略姿勢は、初期姿勢推定およびオドメトリデータに基づいて推測され得る。それに応じて、環境内の候補ランドマークの位置が推測され得る。環境のマップは、候補ランドマークの推測位置から対応閾値内にあるマップ化ランドマークを決定するために検索され得る。候補ランドマークおよび対応閾値内のマップ化ランドマークは、対応ペアを成してよい。サンプルセットは、対応ペアから決定され得る。
【０１０３】
［0117］  方法のブロック１４０４は、サブセット内の候補ランドマークを対応マップ化ランドマークに関連付ける変換を各サンプルセットについて決定するために実行され得る。変換は、サンプルセットのサンプリングされた候補ランドマークを対応するマップ化ランドマークと位置合わせするために、たとえばＩＣＰアルゴリズムなどの最小二乗平均アルゴリズムを用いてよい。
【０１０４】
［0118］  方法のブロック１４０６は、各サンプルセットのための変換を複数の候補ランドマークに適用し、変換後の複数の候補ランドマークと複数の近隣マップ化ランドマークとの間の距離に基づいて、各サンプルセットに関連するインライアの数を決定するために実行され得る。変換後の複数の候補ランドマークと近隣マップ化ランドマークとの間の距離が決定され得る。インライア距離閾値内に近隣マップ化ランドマークを有する変換後の候補ランドマークは、インライアと考えられ得る。
【０１０５】
［0119］  方法のブロック１４０８は、各サンプルセットに関連するインライアの数に基づいて複数のサンプルセットからサンプルセットを選択するために実行され得る。複数のサンプルセットのうち、最大数のインライアを有するサンプルセットが選択され得る。他の例において、複数のサンプルセットのうち、予め定められた数のインライアを生成する第１のサンプルセットが選択され得る。
【０１０６】
［0120］  方法のブロック１４１０は、選択されたサンプルセットに基づいてロボットの姿勢を推定するために実行され得る。姿勢は、選択されたサンプルセットのために決定された変換を用いて推定され得る。他の例において、選択されたサンプルセットに関連する全てのインライアに基づく精緻化変換が、より高い精度のために用いられ得る。
【０１０７】
［0121］  図１５は、実施形態例に係る、ロボットの環境内でのロボットの姿勢を推定するために用いられ得る他の方法のブロック図である。図１５に示される方法もまた、図１４に関して上述したものとほぼ同じ方法でシステムまたはコンピュータシステムによって実行され得る。
【０１０８】
［0122］  方法のブロック１５００は、ロボット上の少なくとも１つのセンサからのセンサデータに基づいてロボットに関連する複数の候補ランドマークの位置を決定するために実行され得る。
【０１０９】
［0123］  方法のブロック１５０２は、複数のサンプルセットを決定するために実行されてよく、各サンプルセットは、複数の候補ランドマークおよび複数の対応するマップ化ランドマークのサブセットを備える。
【０１１０】
［0124］  方法のブロック１５０４は、複数のサンプルセットからサンプルセットを選択するために実行され得る。複数のサンプルセットからのサンプルセットの選択は、複数のサンプルセットの順序に基づいてよい。たとえばブロック１５０４において、方法は、ブロック１５０２によって決定されたのと同様に各サンプルセットを選択してよい。
【０１１１】
［0125］  方法のブロック１５０６は、サブセット内の候補ランドマークを対応するマップ化ランドマークに関連付ける変換を選択されたサンプルセットに関して決定するために実行され得る。変換は、サンプルセットのサンプリングされた候補ランドマークを対応するマップ化ランドマークと位置合わせするために、たとえばＩＣＰアルゴリズムなどの最小二乗平均アルゴリズムを用いてよい。
【０１１２】
［0126］  方法のブロック１５０８は、選択されたサンプルセットのための変換を複数の候補ランドマークに適用し、変換後の複数の候補ランドマークと複数の近隣マップ化ランドマークとの間の距離に基づいて、選択されたサンプルセットに関連するインライアの数を決定するために実行され得る。
【０１１３】
［0127］  方法のブロック１５１０は、選択されたサンプルセットに関連するインライアの数とインライア閾値とを比較するために実行され得る。たとえば、インライア閾値は予め定められた数であってよく、ブロック１５０４の選択されたサンプルセットに関連するインライアの数が閾値と比較され得る。他の例において、インライア閾値は予め定められた百分率であってよく、候補ランドマークの総数に対する、ブロック１５０４の選択されたサンプルセットに関連するインライアの百分率が、閾値百分率と比較され得る。ブロック１５１０は、その方法における三項演算子の機能を果たし得る。たとえば、閾値が満たされたことの決定は、１つの結果を有してよく、閾値が満たされないことの決定は、他の結果を有してよい。
【０１１４】
［0128］  方法のブロック１５１２は、インライアの数がインライア閾値を満たさないまたは超えない場合のブロック１５１０の結果を表す。その結果、ブロック１５０４が実行され、異なるサンプルセットが選択される。したがって方法は、サンプルセットの１つが、インライア閾値を満たすまたは超える数のインライアを有することが決定されるまで、サンプルセットの各々についてインライアの数を連続的に決定することを含む。
【０１１５】
［0129］  方法のブロック１５１４は、インライアの数がインライア閾値を満たすまたは超える場合のブロック１５１０の結果を表す。その結果、ブロック１５１６が実行される。
【０１１６】
［0130］  方法のブロック１５１６は、上述したものとほぼ同じ方法で選択されたサンプルセットに基づいてロボットの姿勢を推定するために実行され得る。
【０１１７】
［0131］  本開示は、様々な態様の例示として意図される、本出願において説明された特定の実施形態に関して限定されるものではない。当業者には明らかであるように、本開示の主旨および範囲から逸脱することなく多数の修正例および変形例が生み出され得る。本開示の範囲内である機能的に同等の方法および装置は、本明細書に列挙されたものに加えて、上記説明から当業者には明らかである。そのような修正例および変形例は、添付のクレームの範囲内に含まれることが意図される。
【０１１８】
［0132］  上述した説明は、添付図面を参照して開示されたシステム、デバイス、および方法の様々な特徴および機能を説明するものである。図面において、類似の記号は一般に、文脈が特に指示しない限り、類似の構成要素を識別する。本明細書および図面において説明された実施形態例は、限定的であることが意図されない。本明細書に提示された主題事項の主旨または範囲から逸脱することなく、他の実施形態が利用され、他の変更例が生み出されてよい。本掲示の態様は、本明細書で一般に説明され、図面に示されるように、異なる様々な構成で配置、代替、結合、分離、および設計されてよく、それら全てが本明細書において明確に考慮されることが容易に理解される。
【０１１９】
［0133］  情報の処理を表すブロックは、本明細書で説明された方法または技術の特定の論理機能を実行するように構成され得る回路に対応してよい。代替または追加として、情報の処理を表すブロックは、モジュール、セグメント、または（関連データを含む）プログラムコードの一部に対応してもよい。プログラムコードは、方法または技術における特定の論理機能または行動を実行するためにプロセッサによって実行可能な１または複数の命令を含んでよい。プログラムコードおよび／または関連データは、たとえばディスクまたはハードドライブを含むストレージデバイスまたは他の記憶媒体など任意の種類のコンピュータ可読媒体に格納され得る。
【０１２０】
［0134］  コンピュータ可読媒体は、たとえばレジスタメモリ、プロセッサキャッシュ、およびランダムアクセスメモリ（ＲＡＭ）といった短期間データを格納するコンピュータ可読媒体などの非一時的コンピュータ可読媒体も含んでよい。コンピュータ可読媒体は、たとえば読取専用メモリ（ＲＯＭ）、光または磁気ディスク、コンパクトディスク読取専用メモリ（ＣＤ‐ＲＯＭ）といった二次または持続性長期間ストレージなど、より長い期間プログラムコードおよび／またはデータを格納する非一時的コンピュータ可読媒体も含んでよい。コンピュータ可読媒体は、他の任意の揮発性または不揮発性ストレージシステムであってもよい。コンピュータ可読媒体は、たとえばコンピュータ可読記憶媒体、または有形ストレージデバイスと考えられ得る。
【０１２１】
［0135］  また、１または複数の情報伝送を表すブロックは、同じ物理デバイス内のソフトウェアおよび／またはハードウェアモジュール間の情報伝送に対応してよい。ただし、他の情報伝送は、様々な物理デバイスにおけるソフトウェアモジュールおよび／またはハードウェアモジュール間であってよい。
【０１２２】
［0136］  図に示す特定の配置は、限定的なものとみなされてはならない。他の実施形態は、所与の図に示される各要素より多いまたは少ない要素を含んでよいことを理解すべきである。また、図示された要素のいくつかは、結合され、または省かれ得る。更に、実施形態例は、図に示されない要素を含んでよい。
【０１２３】
［0137］  様々な態様および実施形態が本明細書に開示されたが、他の態様および実施形態が当業者には明らかである。本明細書に開示された様々な態様および実施形態は例示を目的としており、限定的であることは意図されず、適正な範囲は、以下のクレームによって示される。
【図１】
2019537078.tif 000004
【図２】
2019537078.tif 000005
【図３】
2019537078.tif 000006
【図４】
2019537078.tif 000007
【図５】
2019537078.tif 000008
【図６】
2019537078.tif 000009
【図７】
2019537078.tif 000010
【図８】
2019537078.tif 000011
【図９】
2019537078.tif 000012
【図１０】
2019537078.tif 000013
【図１１Ａ】
2019537078.tif 000014
【図１１Ｂ】
2019537078.tif 000015
【図１１Ｃ】
2019537078.tif 000016
【図１１Ｄ】
2019537078.tif 000017
【図１２Ａ】
2019537078.tif 000018
【図１２Ｂ】
2019537078.tif 000019
【図１２Ｃ】
2019537078.tif 000020
【図１２Ｄ】
2019537078.tif 000021
【図１３Ａ】
2019537078.tif 000022
【図１３Ｂ】
2019537078.tif 000023
【図１３Ｃ】
2019537078.tif 000024
【図１３Ｄ】
2019537078.tif 000025
【図１４】
2019537078.tif 000026
【図１５】
2019537078.tif 000027
【国際調査報告】
2019537078.tif 000028
2019537078.tif 000029
2019537078.tif 000030