(57)【要約】【課題】  ロボット車両が環境内を通行することを支援し得ることである。【解決手段】  実施形態例は、ロボット車両の環境のマップを決定することを含む。マップは、環境内の複数のマップ化ランドマークの位置および環境内の誤検出源領域を含む。実施形態は更に、複数の候補ランドマークを検出すること、および検出された候補ランドマークのどれが複数のマップ化ランドマークに対応し、どれが誤検出に対応するかを決定することを含む。実施形態はまた、環境内のロボット車両の姿勢を推定することを含む。実施形態は更に、誤検出に対応することが決定された、検出された候補ランドマークのどれが、誤検出源領域内に含まれるかを決定することを含む。また実施形態は更に、誤検出に対応することが決定された、検出された候補ランドマークのどれが、誤検出源領域内に含まれるかに基づいて、姿勢推定の信頼水準を決定することを含む。【選択図】図１３
2019534486.tif 000002
【特許請求の範囲】
【請求項１】
環境のマップを決定することであって、前記マップは、前記環境内の複数のマップ化ランドマークの位置および前記環境内の誤検出源領域を備えることと、
センサからのセンサデータに基づいて複数の候補ランドマークを検出することと、
前記複数の候補ランドマークのどれが前記複数のマップ化ランドマークの１つに対応し、どれが誤検出に対応するかを決定することと、
前記複数のマップ化ランドマークの１つに対応することが決定された前記複数の候補ランドマークに基づいて、前記環境内のロボット車両の姿勢を推定することと、
前記推定された前記ロボット車両の姿勢に基づいて、誤検出に対応することが決定された前記複数の候補ランドマークのどれが前記誤検出源領域内に含まれるかを決定することと、
誤検出に対応することが決定された前記複数の候補ランドマークのどれが前記誤検出源領域内に含まれるかに基づいて、前記姿勢推定の信頼水準を決定することと、
を備える、方法。
【請求項２】
前記推定された前記ロボット車両の姿勢および前記姿勢推定の前記信頼水準に基づいて、前記環境内で前記ロボット車両をナビゲートすることを更に備える、請求項１に記載の方法。
【請求項３】
前記マップ化誤検出源領域を決定することは、
複数の誤検出を決定することと、
各誤検出に関連する誤検出源位置を決定することと、
前記決定された誤検出源位置に基づいて前記マップ化誤検出源領域を決定することと、
を備える、請求項１に記載の方法。
【請求項４】
前記決定された誤検出源位置に基づいて前記マップ化誤検出源領域を決定することは、
誤検出源領域閾値を満たすまたは上回る、エリア単位での誤検出の数を備える領域を決定することを備える、請求項３に記載の方法。
【請求項５】
前記誤検出源位置に基づいて前記マップ化誤検出源領域を決定することは、各誤検出源位置を取り囲むエリアを前記誤検出源領域の一部であると定めることを備える、請求項３に記載の方法。
【請求項６】
前記複数の候補ランドマークを検出することは、前記センサによって、前記環境内の複数の信号源からの信号を受信すること、および前記受信信号のどれが、候補ランドマーク信号強度閾値を満たすまたは超える信号強度を備えるかを決定することを備える、請求項１に記載の方法。
【請求項７】
前記候補ランドマークのどれがマップ化ランドマークに対応するかを決定することは、前記候補ランドマークを前記マップ化ランドマークと位置合わせする変換を前記複数の候補ランドマークに適用すること、および前記変換後の候補ランドマークのどれが前記マップ化ランドマークの１つのインライア距離閾値内に含まれるかを決定することを備える、請求項１に記載の方法。
【請求項８】
前記候補ランドマークのどれが誤検出に対応するかを決定することは、前記複数のマップ化ランドマークの１つに対応しない残りの候補ランドマークを決定することを備える、請求項７に記載の方法。
【請求項９】
前記センサからの前記センサデータは、前記ロボット車両に対する前記候補ランドマークの発信源位置を備え、前記ロボット車両の前記姿勢を推定することは、
マップ化ランドマークに対応することが決定された前記候補ランドマークの各々を対応するマップ化ランドマークと位置合わせする変換を、そのような候補ランドマークの各々に適用することと、
前記ロボット車両に対する前記候補ランドマークの前記発信源位置に基づいて、前記位置合わせされた候補ランドマークに対する前記ロボット車両の姿勢を決定することと、
を備える、請求項１に記載の方法。
【請求項１０】
誤検出に対応することが決定された前記検出された候補ランドマークのどれが前記誤検出源領域内に含まれるかを決定することは、そのような候補ランドマークの各々に前記変換を適用すること、および前記変換後の候補ランドマークのどれが前記誤検出源領域内に含まれるかを決定すること、を備える、請求項９に記載の方法。
【請求項１１】
誤検出に対応することが決定された、前記検出された候補ランドマークのどれが、前記誤検出源領域内に含まれるかに基づいて、前記姿勢推定の前記信頼水準を決定することは、
候補ランドマークの総数を決定することと、
マップ化ランドマークに対応する、または前記誤検出源領域内に含まれる候補ランドマークの総数の割合に基づいて、前記姿勢推定の前記信頼水準を決定することと、
を備える、請求項１に記載の方法。
【請求項１２】
各マップ化ランドマークは、対応する検出率に関連し、前記姿勢推定の前記信頼水準を決定することは、前記複数のマップ化ランドマークのうちの前記検出された候補ランドマークに対応するマップ化ランドマークに対応する前記検出率に更に基づく、請求項１に記載の方法。
【請求項１３】
ロボット車両と、
前記ロボット車両に搭載されたセンサと、
１または複数のプロセッサと、
非一時的コンピュータ可読媒体と、
前記非一時的コンピュータ可読媒体に格納され、
環境内の複数のマップ化ランドマークの位置および前記環境内の誤検出源領域を備える前記環境のマップを決定し、
前記センサからのセンサデータに基づいて複数の候補ランドマークを検出し、
前記検出された候補ランドマークのどれが前記複数のマップ化ランドマークの１つに対応し、どれが誤検出に対応するかを決定し、
前記複数のマップ化ランドマークの１つに対応することが決定された前記複数の候補ランドマークに基づいて、前記環境内の前記ロボット車両の姿勢を推定し、
前記推定された前記ロボット車両の姿勢に基づいて、誤検出に対応することが決定された前記複数の候補ランドマークのどれが前記誤検出源領域内に含まれるかを決定し、
誤検出に対応することが決定された前記複数の候補ランドマークのどれが前記誤検出源領域内に含まれるかに基づいて、前記姿勢推定の信頼水準を決定する
ために、前記１または複数のプロセッサによって実行可能であるプログラム命令と、
を備える、システム。
【請求項１４】
前記センサは、前記環境の一部へ信号を伝送するように構成された光検出および測距（ＬＩＤＡＲ）ユニットを備え、前記センサは、前記環境の前記一部におけるソースから反射された信号を検出するように構成される、請求項１３に記載のシステム。
【請求項１５】
前記環境内に配置された前記ランドマークは、再帰反射マーカを備える、請求項１３に記載のシステム。
【請求項１６】
前記１または複数のプロセッサは、前記ロボット車両に含まれる、請求項１３に記載のシステム。
【請求項１７】
前記ロボット車両の遠隔コントローラを更に備え、前記１または複数のプロセッサのうちのあるプロセッサは、前記ロボット車両に含まれ、前記１または複数のプロセッサのうちのあるプロセッサは、前記ロボット車両の前記遠隔コントローラに含まれる、請求項１３に記載のシステム。
【請求項１８】
環境内の複数のマップ化ランドマークの位置および前記環境内の複数の誤検出源領域を備える前記環境のマップを決定することと、
ロボット車両に搭載されたセンサからのセンサデータに基づいて複数の候補ランドマークを検出することと、
前記複数の候補ランドマークのどれが前記複数のマップ化ランドマークの１つに対応し、どれが誤検出に対応するかを決定することと、
前記複数のマップ化ランドマークの１つに対応することが決定された前記複数の候補ランドマークに基づいて、前記環境内のロボット車両の姿勢を推定することと、
前記推定された前記ロボット車両の姿勢に基づいて、誤検出に対応することが決定された前記複数の候補ランドマークのどれが前記誤検出源領域の１つに含まれるかを決定することと、
誤検出に対応することが決定された前記複数の候補ランドマークのどれが前記誤検出源領域の１つに含まれるかに基づいて、前記姿勢推定の信頼水準を決定することと、
を備える機能をコンピューティングシステムに実行させるために１または複数のプロセッサによって実行可能な命令を格納した、非一時的コンピュータ可読媒体。
【請求項１９】
前記機能は更に、前記推定された前記ロボット車両の姿勢および前記姿勢推定の前記信頼水準に基づいて、前記環境内で前記ロボット車両をナビゲートすることを備える、請求項１８に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記決定された前記環境のマップを更に格納した、請求項１８に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
［0001］  本出願は、その全体が参照によって本明細書に組み込まれる、２０１７年４月２１日に出願された米国特許出願第１５／４９４１５９号に対する優先権を主張するものである。
【背景技術】
【０００２】
［0002］  倉庫は、製造業者、卸売業者、および輸送業者を含む様々な種類の商業団体によって物品の保管のために用いられ得る。保管される物品の例は、原材料、部材または部品、包装材料、および完成品を含んでよい。場合によっては、倉庫は、配送トラックまたは他の種類の車両へ商品が荷積みされ、そこから荷下ろしされることを可能にする搬出口を備えてよい。また倉庫は、箱または他の物体の積み重ねを収容する平坦な搬送構造であるパレットの保管を可能にするパレットラックの列を用いてよい。また、倉庫は、たとえばクレーンおよびフォークリフトなど、物品または物品パレットを持ち上げ移動するための機械または車両を用いてよい。人間のオペレータは、機械、車両、および他の機器を操作するために雇用され得る。場合によっては、機械または車両の１または複数は、コンピュータ制御システムによって動かされるロボットデバイス（「ロボット」）であってよい。コンピュータ制御システムは、倉庫全体にわたって配置されたマーカに関連して１または複数のロボットを位置測定してよい。ロボットの位置測定は、コンピュータ制御システムが１または複数のロボットを倉庫内でナビゲートすることを可能にし得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
［0003］  システムおよび方法の例は、ロボット車両の環境内でロボット車両を位置測定するために役立ち、それによってロボット車両が環境内を通行することを支援し得る。ロボットの環境は、ランドマークを含んでよい。ランドマークの位置はマップ化され得る。ロボット車両はランドマークを検出してよく、ロボット車両またはロボット車両の外部のプロセッサは、検出されたランドマークをマップ上のランドマークと関連付けることによって、環境内のロボット車両の姿勢を推定してよい。しかしロボット車両は、環境内のランドマークを誤検出することもある。そのような誤検出されたランドマークは、姿勢推定に悪影響を及ぼし得る。よって、検出された各ランドマークは、各ランドマークがランドマークに対応するか誤検出に対応するかが決定されるまで、候補ランドマークとして扱われ得る。そのような誤検出が識別され得る場合、それらは、ロボット車両の位置測定を支援するために用いられ得る。誤検出の１または複数の発生源がマップ化され得る。ロボット車両の姿勢は、検出されたランドマークに基づいて推定され得る。推定された姿勢に基づいて、誤検出は、マップ化された誤検出の発生源に関連付けられ得る。関連付けられると、誤検出は、姿勢推定の信頼水準を決定することを支援し得る。たとえば、誤検出の１または複数を誤検出源に関連付けることができない場合、姿勢推定は、正確である可能性が低く、姿勢推定の信頼水準は低くなり得る。ロボット車両は、姿勢推定および姿勢推定に関連する信頼水準に部分的に基づいて環境内でナビゲートされ得る。
【０００４】
［0004］  一例において、環境のマップを決定することを含む方法が提供される。マップは、環境内の複数のマップ化ランドマークの位置および環境内の誤検出源領域を含む。方法は更に、センサからのセンサデータに基づいて、複数の候補ランドマークを検出することを含む。方法はまた、複数の候補ランドマークのどれが複数のマップ化ランドマークの１つに対応し、どれが誤検出に対応するかを決定することも含む。方法は更に、複数のマップ化ランドマークの１つに対応することが決定された複数の候補ランドマークに基づいて、環境内のロボット車両の姿勢を推定することを含む。方法は更に、推定されたロボット車両の姿勢に基づいて、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかを決定することを含む。また方法は更に、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかに基づいて、姿勢推定の信頼水準を決定することを含む。
【０００５】
［0005］  他の例において、ロボット車両、ロボット車両に搭載されたセンサ、１または複数のプロセッサ、および非一時的コンピュータ可読媒体を含むシステムが提供される。システムは更に、非一時的コンピュータ可読媒体に格納され、ロボット車両の環境のマップを決定するために１または複数のプロセッサによって実行可能なプログラム命令を含む。マップは、環境内の複数のマップ化ランドマークの位置および環境内の誤検出源領域を含む。プログラム命令は更に、ロボット車両に搭載されたセンサからのセンサデータに基づいて、複数の候補ランドマークを検出する。またプログラム命令は、複数の候補ランドマークのどれが複数のマップ化ランドマークの１つに対応し、どれが誤検出に対応するかを決定する。プログラム命令は更に、複数のマップ化ランドマークの１つに対応することが決定された複数の候補ランドマークに基づいて、環境内のロボット車両の姿勢を推定する。プログラム命令は更に、推定されたロボット車両の姿勢に基づいて、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかを決定する。またプログラム命令は更に、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかに基づいて、姿勢推定の信頼水準を決定する。
【０００６】
［0006］  他の例において、コンピューティングシステムに機能を実行させるために１または複数のプロセッサによって実行可能な命令を格納した非一時的コンピュータ可読媒体が提供される。機能は、環境のマップを決定することを含む。マップは、環境内の複数のマップ化ランドマークの位置および環境内の複数の誤検出源領域を含む。機能は更に、ロボット車両に搭載されたセンサからのセンサデータに基づいて、複数の候補ランドマークを検出することを含む。また機能は、複数の候補ランドマークのどれが複数のマップ化ランドマークの１つに対応し、どれが誤検出に対応するかを決定することも含む。機能は更に、複数のマップ化ランドマークの１つに対応することが決定された複数の候補ランドマークに基づいて、環境内のロボット車両の姿勢を推定することを含む。機能は更に、推定されたロボット車両の姿勢に基づいて、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかを決定することを含む。また機能は更に、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかに基づいて、姿勢推定の信頼水準を決定することを含む。
【０００７】
［0007］  他の例において、環境のマップを決定するための手段を含むシステムが提供される。マップは、環境内の複数のマップ化ランドマークの位置および環境内の誤検出源領域を含む。システムは更に、ロボット車両に搭載されたセンサからのセンサデータに基づいて、複数の候補ランドマークを検出するための手段を含む。またシステムは、複数の候補ランドマークのどれが複数のマップ化ランドマークの１つに対応し、どれが誤検出に対応するかを決定するための手段も含む。システムは更に、複数のマップ化ランドマークの１つに対応することが決定された複数の候補ランドマークに基づいて、環境内のロボット車両の姿勢を推定するための手段を含む。システムは更に、推定されたロボット車両の姿勢に基づいて、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかを決定するための手段を含む。またシステムは更に、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかに基づいて、姿勢推定の信頼水準を決定するための手段を含む。
【０００８】
［0008］  上記概要は、例示にすぎず、いかなるようにも限定することは意図されていない。上述した例示的な態様、実施形態、および特徴に加えて、更なる態様、実施形態、および特徴が、図および以下の詳細な説明および添付図面を参照することによって明らかになる。
【図面の簡単な説明】
【０００９】
【図１】［0009］実施形態例に係る、システムのブロック図である。
【図２】［0010］実施形態例に係る、１または複数の倉庫を運営するためのシステムを示す。
【図３】［0011］実施形態例に係る、システムを示す。
【図４】［0012］実施形態例に係る、１または複数のロボットデバイスのためのロボットデバイスアーキテクチャを示す。
【図５】［0013］実施形態例に係る、１または複数のロボットデバイスのためのレーザスキャナアーキテクチャを示す。
【図６】［0014］実施形態例に係る、環境内を通行するロボット車両を示す。
【図７】［0015］実施形態例に係る、ロボット制御システムのモジュールを示す機能ブロック図である。
【図８】［0016］実施形態例に係る、ロボットのマップ化環境を示す。
【図９】［0017］実施形態例に係る、複数の検出を行ったロボットを示す。
【図１０Ａ】［0018］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのサンプルセットに関連するインライアの決定を示す。
【図１０Ｂ】［0018］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのサンプルセットに関連するインライアの決定を示す。
【図１０Ｃ】［0018］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのサンプルセットに関連するインライアの決定を示す。
【図１０Ｄ】［0018］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのサンプルセットに関連するインライアの決定を示す。
【図１１Ａ】［0019］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークの他のサンプルセットに関連するインライアの決定を示す。
【図１１Ｂ】［0019］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークの他のサンプルセットに関連するインライアの決定を示す。
【図１１Ｃ】［0019］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークの他のサンプルセットに関連するインライアの決定を示す。
【図１１Ｄ】［0019］実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークの他のサンプルセットに関連するインライアの決定を示す。
【図１２Ａ】［0020］実施形態例に係る、ロボット車両の環境を示す。
【図１２Ｂ】［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］  いくつかの実施形態において、ロボットデバイス（複数も可）１２０と計画システム１１０との間の通信は、リモートプロシージャコール（ＲＰＣ）を含んでよい。リモートプロシージャコールは、計画システム１１０のソフトウェアによってロボットデバイス（複数も可）１２０の１または複数に常駐するソフトウェア手順、方法、および／または機能を呼び出すこと、およびその逆を含んでよい。リモートプロシージャコールは、たとえばＴＣＰ／ＩＰ、たとえばＨＴＴＰ１．０および／またはＨＴＴＰ２．０などのハイパーテキスト転送プロトコル（ＨＴＴＰ）、および／または他の通信プロトコルなどの通信プロトコルに基づいてよい。リモートプロシージャコールの一部または全部は、暗号化データを含んでよく、そのようなデータは、セキュアソケットレイヤ（ＳＳＬ）、トランスポート層セキュリティ（ＴＬＳ）、および／または１または複数の他の暗号化アルゴリズムおよび／またはプロトコルを用いて暗号化され得る。暗号化データが用いられる実施形態において、たとえばプライベート認証機関などの１または複数の認証機関は、暗号化データの暗号化および／または解読に用いられる１または複数の証明書を認証してよい。認証機関は、１または複数の証明書へのアクセスを制御するために、アクセス制御リスト（ＡＣＬ）を用いてよい。リモートプロシージャコールは、ＲＰＣ関連通信のための要求／応答プロトコルおよび／または双方向ストリーミングプロトコルを用いてよい。ＲＰＣ関連通信のために双方向ストリーミングプロトコルが用いられる実施形態において、双方向ストリーミングプロトコルを実装するために単一の長寿命ＲＰＣが用いられ得る。
【００５４】
［0075］  車両コントローラ３３２および／またはプログラマブル論理コントローラ３３４は、ロボットデバイス（複数も可）１２０のための電気およびセンサ管理機能を提供してよい。電気およびセンサ管理機能は、電気負荷制御、照明制御、センサ制御、センサおよび／またはスイッチ信号処理、および電力管理のための機能を含んでよいが、これに限定されない。車両マスタ３３６は、ロボットデバイス（複数も可）３２０の、たとえばリフトデバイスなどの１または複数のアクチュエータを制御するための機能を提供してよい。
【００５５】
［0076］  デバイスセンサ（複数も可）３３８は、ロボットデバイス（複数も可）１２０の制御および／または動作に関連するデータを提供し得る１または複数のセンサを含んでよい。データは、限定ではないがたとえば位置測定情報、位置推定、およびマッピングデータなどの、ロボットデバイス（複数も可）１２０に関する環境に関する情報を提供してよい。たとえば、デバイスセンサ（複数も可）３３８は、１または複数のレーザ（たとえば２方向（２Ｄ）レーザ、安全レーザ、レーザスキャナ）、カメラ（たとえば飛行時間（ＴｏＦ）カメラ、三原色（ＲＧＢ）カメラ、サーモカメラ）、電気センサ、近接センサ、ナビゲーションデバイス、および位置センサを含んでよい。
【００５６】
［0077］  デバイス（複数も可）３４０は、ロボットデバイス（複数も可）１２０を動かすための機能を提供する１または複数のドライブコントローラおよび／またはアクチュエータを含んでよい。ドライブコントローラは、ドライブアクチュエータに、ロボットデバイス（複数も可）１２０の動きを制御するように指示してよい。ドライブアクチュエータは、１または複数のトラクションモータ、電動ドライブ、油圧ドライブ、空圧ドライブを含んでよい。
【００５７】
［0078］  図４は、実施形態例に係る、ロボットデバイス（複数も可）１２０のロボットデバイスアーキテクチャ４００を示す。ロボットデバイス（複数も可）１２０のロボットデバイスアーキテクチャ４００は、ソフトウェアを含んでよい。ソフトウェアは、位置測定のためのソフトウェア４１０、パレット姿勢推定器のためのソフトウェア４１２、ステートマシンに関連するソフトウェア４１４、プランナフォロアのためのソフトウェア４１６、コンポーネントフレームワークのためのソフトウェア４２０、およびシステムを動作させるためのソフトウェア４３０を含んでよい。ソフトウェアは、１または複数のハードウェア計画／実行プロセッサ３２４によって実行され得る。ロボットデバイス（複数も可）１２０と他のデバイスとの間の通信は、ネットワークゲートウェイ４４０および／またはネットワークスイッチ３３０を用いて実行され得る。たとえば、ネットワークゲートウェイ４４０は、ロボットデバイス（複数も可）１２０のうちのロボットデバイス内での、またこれとの無線通信のために用いられ、ネットワークスイッチ３３０は、ロボットデバイス（複数も可）１２０のうちのロボットデバイス内での、またこれとの有線通信のために用いられ得る。ロボットデバイスアーキテクチャ４００は、たとえば図３に関連して上述したデバイスセンサ（複数も可）３３８およびドライブ（複数も可）３４０などの追加のハードウェアも含む。いくつかの実施形態において、ロボットデバイスアーキテクチャ４００は、ＴｏＦカメラ４５０およびＲＧＢカメラ４５２を含むがこれに限定されない１または複数のカメラを含んでよく、１または複数のカメラは、１または複数のスチルカメラおよび／または１または複数のビデオカメラを含んでよい。
【００５８】
［0079］  図５は、実施形態例に係る、ロボットデバイス（複数も可）１２０に関するレーザスキャナアーキテクチャ５００を示す。いくつかの実施形態において、デバイスセンサ（複数も可）３３８の一部または全部は、レーザスキャナアーキテクチャ５００によって示されるレーザおよびレーザスキャナであってよい。
【００５９】
［0080］  レーザスキャナアーキテクチャ５００は、レーザ５１０、５１２、５２０、５２２、レーザスキャナ５２４、プロトコルコンバータ５２６、ネットワークスイッチ３３０、およびオンボードシステム３２０を含んでよい。レーザ５１０、５１２、５２０、および５２２は、ロボットデバイス（複数も可）１２０の定位置にあってよく、たとえば、レーザ５１０はロボットデバイスの前部に位置し、レーザ５１２はロボットデバイスの後部に位置し、レーザ５２０はロボットデバイスの前部左角に位置し、レーザ５２２はロボットデバイスの前部右角に位置してよい。レーザ５１０、５１２、５２０、５２２および／またはレーザスキャナ５２４は、環境内でロボットデバイスを位置測定するための情報を提供してよい。いくつかの実施形態において、レーザ５１０、５１２、５２０、５２２および／またはレーザスキャナ５２４は、１または複数の反射板から反射した光を放出してよく、反射光は、１または複数のレーザセンサによって検出されてよく、ロボットデバイスは、反射光を検出するために要する持続時間に基づいて環境内で位置測定され得る。これらの実施形態において特に、レーザ５１０、５１２、５２０、５２２および／またはレーザスキャナ５２４の一部または全部は、反射レーザ光を検出するための１または複数のレーザセンサを含んでよい。したがって、レーザ５１０、５１２、５２０、５２２および／またはレーザスキャナ５２４の一部または全部は、レーザに関連するデータ（たとえばレーザに関連するメンテナンスデータ）、レーザによって放出された光に関連するデータ、およびレーザセンサ（複数も可）によって反射レーザ光を検出するために要する１または複数の持続時間に関連するデータを含むがこれに限定されないデータを生成してよい。
【００６０】
［0081］  図５に示すように、たとえばレーザ５２０、５２２などのいくつかのレーザおよびレーザスキャナ５２４は、ネットワークスイッチ３３０に直接接続され得るが、たとえばレーザ５１０、５１２などの他のレーザは、プロトコルコンバータ５２６を介してネットワークスイッチ３３０に接続され得る。プロトコルコンバータ５２６は、たとえばレーザ５１０および／または５１２などのレーザによって用いられる通信プロトコルを、ネットワークスイッチ３３０によって用いられる通信プロトコルに変換してよく、たとえばＲＳ‐４２２に基づく通信プロトコルからイーサネットに基づく通信プロトコルに変換してよい。その後、レーザ５１０、５１２、５２０、５２２、およびレーザスキャナ５２４は、ネットワークスイッチ３３０および場合によってはプロトコルコンバータ５２６を介して、オンボードシステム３２０へデータを送信し、オンボードシステム３２０からのコマンドを受信してよい。
【００６１】
［0082］  いくつかの実施形態において、ロボットデバイス（複数も可）１２０は、１または複数の障害状態を仮定され得る。これらの障害状態および関連する修復戦略の例が以下の表２に表される。
【表１】
2019534486.tif 000003
ＩＩＩ．環境内でのロボット車両の位置測定
【００６２】
［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］  方法のブロック１８０６は、複数のマップ化ランドマークのうちの１つに対応することが決定された、検出された候補ランドマークに基づいて、環境内のロボット車両の姿勢を推定するために実行され得る。
【０１１７】
［0138］  方法のブロック１８０８は、ロボット車両の推定された姿勢に基づいて、誤検出に対応することが決定された、検出された候補ランドマークのどれが、誤検出源領域内に含まれるかを決定するために実行され得る。たとえば、候補ランドマークの全てが、ロボットの姿勢を推定するために用いられるサンプルセットに基づいて、マップ上で位置合わせするために変換され得る。位置合わせされると、誤検出は、誤検出源領域の範囲内または範囲外に含まれ得る。
【０１１８】
［0139］  方法のブロック１８１０は、誤検出に対応することが決定された、検出された候補ランドマークのうちのどれが、誤検出源領域内に含まれるかに基づいて、姿勢推定の信頼水準を決定するために実行され得る。たとえば、候補ランドマークの総数が決定されてよく、姿勢推定の信頼水準の決定は、マップ化ランドマークに対応する、または誤検出源領域内に含まれる候補ランドマークの総数の割合に基づいてよい。
ＩＶ．他の位置測定実施形態
【０１１９】
［0140］  図６〜図１８の詳細な説明は一般に、環境内の位置測定ロボット車両に関するが、そのような説明は例示目的で提供され、限定的なものと解釈すべきではないことを理解すべきである。たとえば、上述したものと同じシステムおよび方法は、環境内の手動操作車両を位置測定するために実装されてもよい。そのような位置測定は、人間のオペレータが、手動操作車両の現在姿勢推定のインジケーションを含む、手動操作車両上のディスプレイ用に提供された環境マップを見ることを可能にし得る。
【０１２０】
［0141］  また、上述したシステムおよび方法は、たとえばマッピングセンサユニットなどの他のデバイスを位置測定するために実装されてもよい。マッピングセンサユニットは、環境をマッピングするために用いられるデータを生成するために環境内の複数の位置へ移動され得る。各位置において、センサユニットは、上述したシステムおよび方法を用いて位置測定され得る。そのようなデータは、環境マップを生成するために用いられ得る。
【０１２１】
［0142］  説明したシステムおよび方法は、環境内に配置された任意の数の車両、デバイス、またはセンサを位置測定するために実装され得ることが当業者には容易に理解されるべきである。
Ｖ．結論
【０１２２】
［0143］  本開示は、様々な態様の例示として意図される、本出願において説明された特定の実施形態に関して限定されるものではない。当業者には明らかであるように、本開示の主旨および範囲から逸脱することなく多数の修正例および変形例が生み出され得る。本開示の範囲内である機能的に同等の方法および装置は、本明細書に列挙されたものに加えて、上記説明から当業者には明らかである。そのような修正例および変形例は、添付のクレームの範囲内に含まれることが意図される。
【０１２３】
［0144］  上述した説明は、添付図面を参照して開示されたシステム、デバイス、および方法の様々な特徴および機能を説明するものである。図面において、類似の記号は一般に、文脈が特に指示しない限り、類似の構成要素を識別する。本明細書および図面において説明された実施形態例は、限定的であることが意図されない。本明細書に提示された主題事項の主旨または範囲から逸脱することなく、他の実施形態が利用され、他の変更例が生み出されてよい。本開示の態様は、本明細書で一般に説明され、図面に示されるように、異なる様々な構成で配置、代替、結合、分離、および設計されてよく、それら全てが本明細書において明確に考慮されることが容易に理解される。
【０１２４】
［0145］  情報の処理を表すブロックは、本明細書で説明された方法または技術の特定の論理機能を実行するように構成され得る回路に対応してよい。代替または追加として、情報の処理を表すブロックは、モジュール、セグメント、または（関連データを含む）プログラムコードの一部に対応してもよい。プログラムコードは、方法または技術における特定の論理機能または行動を実行するためにプロセッサによって実行可能な１または複数の命令を含んでよい。プログラムコードおよび／または関連データは、たとえばディスクまたはハードドライブを含むストレージデバイスまたは他の記憶媒体などの任意の種類のコンピュータ可読媒体に格納され得る。
【０１２５】
［0146］  コンピュータ可読媒体は、たとえばレジスタメモリ、プロセッサキャッシュ、およびランダムアクセスメモリ（ＲＡＭ）といった短期間データを格納するコンピュータ可読媒体などの非一時的コンピュータ可読媒体も含んでよい。コンピュータ可読媒体は、たとえば読み取り専用メモリ（ＲＯＭ）、光または磁気ディスク、コンパクトディスク読み取り専用メモリ（ＣＤ‐ＲＯＭ）といった二次または持続性長期間ストレージなど、より長い期間プログラムコードおよび／またはデータを格納する非一時的コンピュータ可読媒体も含んでよい。コンピュータ可読媒体は、他の任意の揮発性または不揮発性ストレージシステムであってもよい。コンピュータ可読媒体は、たとえばコンピュータ可読記憶媒体、または有形ストレージデバイスと考えられ得る。
【０１２６】
［0147］  また、１または複数の情報伝送を表すブロックは、同じ物理デバイス内のソフトウェアおよび／またはハードウェアモジュール間の情報伝送に対応してよい。ただし、他の情報伝送は、様々な物理デバイスにおけるソフトウェアモジュールおよび／またはハードウェアモジュール間であってよい。
【０１２７】
［0148］  図に示す特定の配置は、限定的なものとみなされてはならない。他の実施形態は、所与の図に示される各要素より多いまたは少ない要素を含んでよいことを理解すべきである。また、図示された要素のいくつかは、結合され、または省かれ得る。更に、実施形態例は、図に示されない要素を含んでよい。
【０１２８】
［0149］  様々な態様および実施形態が本明細書に開示されたが、他の態様および実施形態が当業者には明らかである。本明細書に開示された様々な態様および実施形態は例示を目的としており、限定的であることは意図されず、適正な範囲は、以下のクレームによって示される。
【図１】
2019534486.tif 000004
【図２】
2019534486.tif 000005
【図３】
2019534486.tif 000006
【図４】
2019534486.tif 000007
【図５】
2019534486.tif 000008
【図６】
2019534486.tif 000009
【図７】
2019534486.tif 000010
【図８】
2019534486.tif 000011
【図９】
2019534486.tif 000012
【図１０Ａ】
2019534486.tif 000013
【図１０Ｂ】
2019534486.tif 000014
【図１０Ｃ】
2019534486.tif 000015
【図１０Ｄ】
2019534486.tif 000016
【図１１Ａ】
2019534486.tif 000017
【図１１Ｂ】
2019534486.tif 000018
【図１１Ｃ】
2019534486.tif 000019
【図１１Ｄ】
2019534486.tif 000020
【図１２Ａ】
2019534486.tif 000021
【図１２Ｂ】
2019534486.tif 000022
【図１２Ｃ】
2019534486.tif 000023
【図１２Ｄ】
2019534486.tif 000024
【図１３】
2019534486.tif 000025
【図１４】
2019534486.tif 000026
【図１５】
2019534486.tif 000027
【図１６】
2019534486.tif 000028
【図１７Ａ】
2019534486.tif 000029
【図１７Ｂ】
2019534486.tif 000030
【図１８】
2019534486.tif 000031
【国際調査報告】
2019534486.tif 000032
2019534486.tif 000033
2019534486.tif 000034