特許第6853832号(P6853832)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エックス デベロップメント エルエルシーの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6853832
(24)【登録日】2021年3月16日
(45)【発行日】2021年3月31日
(54)【発明の名称】ネガティブマッピングを用いる位置測定
(51)【国際特許分類】
   G05D 1/02 20200101AFI20210322BHJP
【FI】
   G05D1/02 J
【請求項の数】19
【全頁数】39
(21)【出願番号】特願2018-561018(P2018-561018)
(86)(22)【出願日】2018年4月4日
(65)【公表番号】特表2019-534486(P2019-534486A)
(43)【公表日】2019年11月28日
(86)【国際出願番号】US2018026046
(87)【国際公開番号】WO2018194833
(87)【国際公開日】20181025
【審査請求日】2019年5月13日
(31)【優先権主張番号】15/494,159
(32)【優先日】2017年4月21日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】516326438
【氏名又は名称】エックス デベロップメント エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】ホルツ,ダーク
【審査官】 堀内 亮吾
(56)【参考文献】
【文献】 特開2008−040677(JP,A)
【文献】 特開2011−129126(JP,A)
【文献】 米国特許出願公開第2011/0150348(US,A1)
【文献】 特開2008−268204(JP,A)
【文献】 米国特許出願公開第2008/0262718(US,A1)
【文献】 特開2007−257226(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/02 −1/12
(57)【特許請求の範囲】
【請求項1】
環境のマップを決定することであって、前記マップは、前記環境内の複数のマップ化ランドマークの位置および前記環境内の誤検出源領域を備え、前記誤検出源領域は、誤検出が予想される前記環境の一部を示すことと、
センサからのセンサデータに基づいて複数の候補ランドマークを検出することと、
前記複数の候補ランドマークのどれが前記複数のマップ化ランドマークの1つに対応し、どれが誤検出に対応するかを決定することと、
前記複数のマップ化ランドマークの1つに対応することが決定された前記複数の候補ランドマークに基づいて、前記環境内のロボット車両の姿勢を推定することと、
前記推定された前記ロボット車両の姿勢に基づいて、誤検出に対応することが決定された前記複数の候補ランドマークのどれが前記誤検出源領域内に含まれるかを決定することと、
誤検出に対応することが決定された前記複数の候補ランドマークのどれが前記誤検出源領域内に含まれるかに基づいて、前記ロボット車両の姿勢推定の信頼水準を決定することであって、誤検出に対応する所定の候補ランドマークが前記誤検出源領域内に含まれないことを決定すると前記信頼水準が低下することと、
を備える、方法。
【請求項2】
前記推定された前記ロボット車両の姿勢および前記姿勢推定の前記信頼水準に基づいて、前記環境内で前記ロボット車両をナビゲートすることを更に備える、請求項1に記載の方法。
【請求項3】
前記環境の前記マップを決定することは、
複数の誤検出を決定することと、
各誤検出に関連する誤検出源位置を決定することと、
前記決定された誤検出源位置に基づいてマップ化された前記誤検出源領域を決定することと、を備える、請求項1に記載の方法。
【請求項4】
前記決定された誤検出源位置に基づいて前記マップ化誤検出源領域を決定することは、誤検出源領域閾値を満たすまたは上回る、エリア単位での誤検出の数を備える領域を決定することを備える、請求項3に記載の方法。
【請求項5】
前記誤検出源位置に基づいて前記マップ化誤検出源領域を決定することは、各誤検出源位置を取り囲むエリアを前記誤検出源領域の一部であると定めることを備える、請求項3に記載の方法。
【請求項6】
前記複数の候補ランドマークを検出することは、前記センサによって、前記環境内の複数の信号源からの信号を受信すること、および前記受信信号のどれが、候補ランドマーク信号強度閾値を満たすまたは超える信号強度を備えるかを決定することを備える、請求項1に記載の方法。
【請求項7】
前記候補ランドマークのどれがマップ化ランドマークに対応するかを決定することは、前記候補ランドマークを前記マップ化ランドマークと位置合わせする変換を前記複数の候補ランドマークに適用すること、および前記変換後の候補ランドマークのどれが前記マップ化ランドマークの1つのインライア距離閾値内に含まれるかを決定することを備える、請求項1に記載の方法。
【請求項8】
前記候補ランドマークのどれが誤検出に対応するかを決定することは、前記複数のマップ化ランドマークの1つに対応しない残りの候補ランドマークを決定することを備える、請求項7に記載の方法。
【請求項9】
前記センサからの前記センサデータは、前記ロボット車両に対する前記候補ランドマークの発信源位置を備え、前記ロボット車両の前記姿勢を推定することは、
マップ化ランドマークに対応することが決定された前記候補ランドマークの各々を対応するマップ化ランドマークと位置合わせする変換を、そのような候補ランドマークの各々に適用することと、
前記ロボット車両に対する前記候補ランドマークの前記発信源位置に基づいて、前記位置合わせされた候補ランドマークに対する前記ロボット車両の姿勢を決定することと、
を備える、請求項1に記載の方法。
【請求項10】
誤検出に対応することが決定された前記検出された候補ランドマークのどれが前記誤検出源領域内に含まれるかを決定することは、そのような候補ランドマークの各々に前記変換を適用すること、および前記変換後の候補ランドマークのどれが前記誤検出源領域内に含まれるかを決定すること、を備える、請求項9に記載の方法。
【請求項11】
誤検出に対応することが決定された、前記検出された候補ランドマークのどれが、前記誤検出源領域内に含まれるかに基づいて、前記姿勢推定の前記信頼水準を決定することは、
候補ランドマークの総数を決定することと、
マップ化ランドマークに対応する、または前記誤検出源領域内に含まれる候補ランドマークの総数の割合に基づいて、前記姿勢推定の前記信頼水準を決定することと、
を備える、請求項1に記載の方法。
【請求項12】
ロボット車両と、
前記ロボット車両に搭載されたセンサと、
1または複数のプロセッサと、
非一時的コンピュータ可読媒体と、
前記非一時的コンピュータ可読媒体に格納され、
環境内の複数のマップ化ランドマークの位置および前記環境内の誤検出源領域を備える前記環境のマップを決定し、ここで、前記誤検出源領域は、誤検出が予想される前記環境の一部を示すものであり
前記センサからのセンサデータに基づいて複数の候補ランドマークを検出し、
前記検出された候補ランドマークのどれが前記複数のマップ化ランドマークの1つに対応し、どれが誤検出に対応するかを決定し、
前記複数のマップ化ランドマークの1つに対応することが決定された前記複数の候補ランドマークに基づいて、前記環境内の前記ロボット車両の姿勢を推定し、
前記推定された前記ロボット車両の姿勢に基づいて、誤検出に対応することが決定された前記複数の候補ランドマークのどれが前記誤検出源領域内に含まれるかを決定し、
誤検出に対応することが決定された前記複数の候補ランドマークのどれが前記誤検出源領域内に含まれるかに基づいて、前記ロボット車両の姿勢推定の信頼水準を決定することであって、誤検出に対応する所定の候補ランドマークが前記誤検出源領域内に含まれないことを決定すると前記信頼水準が低下すること
を実行するために、前記1または複数のプロセッサによって実行可能であるプログラム命令と、
を備える、システム。
【請求項13】
前記センサは、前記環境の一部へ信号を伝送するように構成された光検出および測距(LIDAR)ユニットを備え、前記センサは、前記環境の前記一部におけるソースから反射された信号を検出するように構成される、請求項12に記載のシステム。
【請求項14】
前記環境内に配置された前記ランドマークは、再帰反射マーカを備える、請求項12に記載のシステム。
【請求項15】
前記1または複数のプロセッサは、前記ロボット車両に含まれる、請求項12に記載のシステム。
【請求項16】
前記ロボット車両の遠隔コントローラを更に備え、前記1または複数のプロセッサのうちのあるプロセッサは、前記ロボット車両に含まれ、前記1または複数のプロセッサのうちのあるプロセッサは、前記ロボット車両の前記遠隔コントローラに含まれる、請求項12に記載のシステム。
【請求項17】
環境内の複数のマップ化ランドマークの位置および前記環境内の複数の誤検出源領域を備える前記環境のマップを決定することであって、各誤検出源領域は、誤検出が予想される前記環境の一部を示すことと、
ロボット車両に搭載されたセンサからのセンサデータに基づいて複数の候補ランドマークを検出することと、
前記複数の候補ランドマークのどれが前記複数のマップ化ランドマークの1つに対応し、どれが誤検出に対応するかを決定することと、
前記複数のマップ化ランドマークの1つに対応することが決定された前記複数の候補ランドマークに基づいて、前記環境内のロボット車両の姿勢を推定することと、
前記推定された前記ロボット車両の姿勢に基づいて、誤検出に対応することが決定された前記複数の候補ランドマークのどれが前記誤検出源領域の1つに含まれるかを決定することと、
誤検出に対応することが決定された前記複数の候補ランドマークのどれが前記誤検出源領域の1つに含まれるかに基づいて、前記ロボット車両の姿勢推定の信頼水準を決定することであって、誤検出に対応する所定の候補ランドマークが前記誤検出源領域内に含まれないことを決定すると前記信頼水準が低下することと、
を備える機能をコンピューティングシステムに実行させるために1または複数のプロセッサによって実行可能な命令を格納した、非一時的コンピュータ可読媒体。
【請求項18】
前記機能は更に、前記推定された前記ロボット車両の姿勢および前記姿勢推定の前記信頼水準に基づいて、前記環境内で前記ロボット車両をナビゲートすることを備える、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記決定された前記環境のマップを更に格納した、請求項17に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
[0001] 本出願は、その全体が参照によって本明細書に組み込まれる、2017年4月21日に出願された米国特許出願第15/494159号に対する優先権を主張するものである。
【背景技術】
【0002】
[0002] 倉庫は、製造業者、卸売業者、および輸送業者を含む様々な種類の商業団体によって物品の保管のために用いられ得る。保管される物品の例は、原材料、部材または部品、包装材料、および完成品を含んでよい。場合によっては、倉庫は、配送トラックまたは他の種類の車両へ商品が荷積みされ、そこから荷下ろしされることを可能にする搬出口を備えてよい。また倉庫は、箱または他の物体の積み重ねを収容する平坦な搬送構造であるパレットの保管を可能にするパレットラックの列を用いてよい。また、倉庫は、たとえばクレーンおよびフォークリフトなど、物品または物品パレットを持ち上げ移動するための機械または車両を用いてよい。人間のオペレータは、機械、車両、および他の機器を操作するために雇用され得る。場合によっては、機械または車両の1または複数は、コンピュータ制御システムによって動かされるロボットデバイス(「ロボット」)であってよい。コンピュータ制御システムは、倉庫全体にわたって配置されたマーカに関連して1または複数のロボットを位置測定してよい。ロボットの位置測定は、コンピュータ制御システムが1または複数のロボットを倉庫内でナビゲートすることを可能にし得る。
【発明の概要】
【課題を解決するための手段】
【0003】
[0003] システムおよび方法の例は、ロボット車両の環境内でロボット車両を位置測定するために役立ち、それによってロボット車両が環境内を通行することを支援し得る。ロボットの環境は、ランドマークを含んでよい。ランドマークの位置はマップ化され得る。ロボット車両はランドマークを検出してよく、ロボット車両またはロボット車両の外部のプロセッサは、検出されたランドマークをマップ上のランドマークと関連付けることによって、環境内のロボット車両の姿勢を推定してよい。しかしロボット車両は、環境内のランドマークを誤検出することもある。そのような誤検出されたランドマークは、姿勢推定に悪影響を及ぼし得る。よって、検出された各ランドマークは、各ランドマークがランドマークに対応するか誤検出に対応するかが決定されるまで、候補ランドマークとして扱われ得る。そのような誤検出が識別され得る場合、それらは、ロボット車両の位置測定を支援するために用いられ得る。誤検出の1または複数の発生源がマップ化され得る。ロボット車両の姿勢は、検出されたランドマークに基づいて推定され得る。推定された姿勢に基づいて、誤検出は、マップ化された誤検出の発生源に関連付けられ得る。関連付けられると、誤検出は、姿勢推定の信頼水準を決定することを支援し得る。たとえば、誤検出の1または複数を誤検出源に関連付けることができない場合、姿勢推定は、正確である可能性が低く、姿勢推定の信頼水準は低くなり得る。ロボット車両は、姿勢推定および姿勢推定に関連する信頼水準に部分的に基づいて環境内でナビゲートされ得る。
【0004】
[0004] 一例において、環境のマップを決定することを含む方法が提供される。マップは、環境内の複数のマップ化ランドマークの位置および環境内の誤検出源領域を含む。方法は更に、センサからのセンサデータに基づいて、複数の候補ランドマークを検出することを含む。方法はまた、複数の候補ランドマークのどれが複数のマップ化ランドマークの1つに対応し、どれが誤検出に対応するかを決定することも含む。方法は更に、複数のマップ化ランドマークの1つに対応することが決定された複数の候補ランドマークに基づいて、環境内のロボット車両の姿勢を推定することを含む。方法は更に、推定されたロボット車両の姿勢に基づいて、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかを決定することを含む。また方法は更に、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかに基づいて、姿勢推定の信頼水準を決定することを含む。
【0005】
[0005] 他の例において、ロボット車両、ロボット車両に搭載されたセンサ、1または複数のプロセッサ、および非一時的コンピュータ可読媒体を含むシステムが提供される。システムは更に、非一時的コンピュータ可読媒体に格納され、ロボット車両の環境のマップを決定するために1または複数のプロセッサによって実行可能なプログラム命令を含む。マップは、環境内の複数のマップ化ランドマークの位置および環境内の誤検出源領域を含む。プログラム命令は更に、ロボット車両に搭載されたセンサからのセンサデータに基づいて、複数の候補ランドマークを検出する。またプログラム命令は、複数の候補ランドマークのどれが複数のマップ化ランドマークの1つに対応し、どれが誤検出に対応するかを決定する。プログラム命令は更に、複数のマップ化ランドマークの1つに対応することが決定された複数の候補ランドマークに基づいて、環境内のロボット車両の姿勢を推定する。プログラム命令は更に、推定されたロボット車両の姿勢に基づいて、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかを決定する。またプログラム命令は更に、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかに基づいて、姿勢推定の信頼水準を決定する。
【0006】
[0006] 他の例において、コンピューティングシステムに機能を実行させるために1または複数のプロセッサによって実行可能な命令を格納した非一時的コンピュータ可読媒体が提供される。機能は、環境のマップを決定することを含む。マップは、環境内の複数のマップ化ランドマークの位置および環境内の複数の誤検出源領域を含む。機能は更に、ロボット車両に搭載されたセンサからのセンサデータに基づいて、複数の候補ランドマークを検出することを含む。また機能は、複数の候補ランドマークのどれが複数のマップ化ランドマークの1つに対応し、どれが誤検出に対応するかを決定することも含む。機能は更に、複数のマップ化ランドマークの1つに対応することが決定された複数の候補ランドマークに基づいて、環境内のロボット車両の姿勢を推定することを含む。機能は更に、推定されたロボット車両の姿勢に基づいて、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかを決定することを含む。また機能は更に、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかに基づいて、姿勢推定の信頼水準を決定することを含む。
【0007】
[0007] 他の例において、環境のマップを決定するための手段を含むシステムが提供される。マップは、環境内の複数のマップ化ランドマークの位置および環境内の誤検出源領域を含む。システムは更に、ロボット車両に搭載されたセンサからのセンサデータに基づいて、複数の候補ランドマークを検出するための手段を含む。またシステムは、複数の候補ランドマークのどれが複数のマップ化ランドマークの1つに対応し、どれが誤検出に対応するかを決定するための手段も含む。システムは更に、複数のマップ化ランドマークの1つに対応することが決定された複数の候補ランドマークに基づいて、環境内のロボット車両の姿勢を推定するための手段を含む。システムは更に、推定されたロボット車両の姿勢に基づいて、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかを決定するための手段を含む。またシステムは更に、誤検出に対応することが決定された複数の候補ランドマークのどれが誤検出源領域内に含まれるかに基づいて、姿勢推定の信頼水準を決定するための手段を含む。
【0008】
[0008] 上記概要は、例示にすぎず、いかなるようにも限定することは意図されていない。上述した例示的な態様、実施形態、および特徴に加えて、更なる態様、実施形態、および特徴が、図および以下の詳細な説明および添付図面を参照することによって明らかになる。
【図面の簡単な説明】
【0009】
図1】[0009]実施形態例に係る、システムのブロック図である。
図2】[0010]実施形態例に係る、1または複数の倉庫を運営するためのシステムを示す。
図3】[0011]実施形態例に係る、システムを示す。
図4】[0012]実施形態例に係る、1または複数のロボットデバイスのためのロボットデバイスアーキテクチャを示す。
図5】[0013]実施形態例に係る、1または複数のロボットデバイスのためのレーザスキャナアーキテクチャを示す。
図6】[0014]実施形態例に係る、環境内を通行するロボット車両を示す。
図7】[0015]実施形態例に係る、ロボット制御システムのモジュールを示す機能ブロック図である。
図8】[0016]実施形態例に係る、ロボットのマップ化環境を示す。
図9】[0017]実施形態例に係る、複数の検出を行ったロボットを示す。
図10A】[0018]実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのサンプルセットに関連するインライアの決定を示す。
図10B】[0018]実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのサンプルセットに関連するインライアの決定を示す。
図10C】[0018]実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのサンプルセットに関連するインライアの決定を示す。
図10D】[0018]実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのサンプルセットに関連するインライアの決定を示す。
図11A】[0019]実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークの他のサンプルセットに関連するインライアの決定を示す。
図11B】[0019]実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークの他のサンプルセットに関連するインライアの決定を示す。
図11C】[0019]実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークの他のサンプルセットに関連するインライアの決定を示す。
図11D】[0019]実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークの他のサンプルセットに関連するインライアの決定を示す。
図12A】[0020]実施形態例に係る、ロボット車両の環境を示す。
図12B】[0021]実施形態例に係る、ロボット車両の環境内の複数の検出された候補ランドマークを示す。
図12C】[0022]実施形態例に係る、ロボット車両の環境マップにおけるマップ化ランドマークと検出された候補ランドマークとの関連性を示す。
図12D】[0023]実施形態例に係る、誤検出のインジケーションを含む、ロボット車両の更新された環境マップを示す。
図13】[0024]実施形態例に係る、センサデータを取得するためにロボット車両の環境内を通行するロボット車両を示す。
図14】[0025]実施形態例に係る、誤検出源領域を含むように生成された、ロボット車両の環境マップを示す。
図15】[0026]他の実施形態例に係る、誤検出源領域を含むように生成された、ロボット車両の他の環境マップを示す。
図16】[0027]他の実施形態例に係る、誤検出源領域を含むように生成された、ロボット車両の環境マップを示し、ここでロボットは、マップ上で利用可能なデータのいくつかのみを用いる。
図17A】[0028]実施形態例に係る、姿勢信頼度決定シナリオにおける複数の検出されたランドマークおよび誤検出を示す。
図17B】[0029]他の実施形態例に係る、姿勢信頼度決定シナリオにおける異なる複数の検出されたランドマークおよび誤検出を示す。
図18】[0030]実施形態例に係る、方法のブロック図である。
【発明を実施するための形態】
【0010】
[0031] 方法およびシステムの例が本明細書において説明される。本明細書で説明される任意の実施形態または特徴の例は、必ずしも他の実施形態または特徴よりも好適または有利であるものとして解釈されるものではない。本明細書で説明される実施形態例は、限定的であることが意図されない。開示されるシステムおよび方法の特定の態様は、異なる様々な構成で配置および結合されてよく、それら全てが本明細書において考慮されることが容易に理解される。
【0011】
[0032] 更に、図に示される特定の配置は、限定的なものとしてみなされてはならない。他の実施形態は、所与の図に示される各要素より多いまたは少ない要素を含み得ることを理解すべきである。また、図示される要素のいくつかは結合され、あるいは省かれてもよい。更に、実施形態例は、図に示されない要素を含んでもよい。
I.概観
【0012】
[0033] 実施形態例は、ロボット車両の環境における、たとえばロボット車両または手動操作車両などの車両の姿勢を推定し、それによってロボットが環境内を通行することを支援するために用いられ得る方法およびシステムを含み、またはこれに関連してよい。たとえば、ロボット車両上の1または複数のセンサは、環境内の候補ランドマークからの信号を受信することによってランドマークを検出してよい。ロボット車両は、受信信号に基づいて、候補ランドマークに関する自身の位置を決定してよい。ロボット車両は、候補ランドマークのどれがマップ化ランドマークに対応し、どれが誤検出に対応するかを決定してよい。ロボット車両は、検出されたランドマークに関する自身の位置を、対応するマップ化ランドマークに対する自身の位置へ変換することによって、環境内での自身の姿勢を推定してよい。ロボット車両は、検出された候補ランドマークに基づいて、姿勢推定信頼度を決定してもよい。いくつかのシナリオにおいて、誤検出は正確な姿勢推定を損ない得るが、本明細書で説明される方法およびシステムの例は、姿勢推定の信頼水準を決定することを支援するために、これらの誤検出を用いてよい。
【0013】
[0034] いくつかの例において、ロボットは、ランドマークに関連しない、またはランドマークの位置を誤表示する信号を受信または検出してよい。この種類の受信または検出信号は、「誤検出」と称され得る。誤検出は、ロボットに環境内の自身の姿勢を不正確に推定させ、その結果、ロボットが環境内を効率的に通行することを妨げ得る。たとえばロボットは、検出されたランドマークが1または複数の誤検出を含むことにより、特定のマップ化ランドマークを検出されたランドマークに誤って関連付け得る。この誤った関連性により、ロボットは、環境内の自身の姿勢を不正確に推定し、環境内を非効率的に通行し得る。
【0014】
[0035] 過去にマップ化誤検出源領域を利用することにより、システムおよび方法の例は、ロボット車両が環境内を通行することを妨げるのではなく、そのような通行を支援するために誤検出を用いてよい。そのために、検出されたランドマークは候補ランドマークとして扱われてよく、候補ランドマークは、それらのどれがマップ化ランドマークに対応し、どれが誤検出に対応するかを決定するために検査され得る。誤検出源領域を示すマップは、その後、誤検出のどれが予想され、どれが予想外であるかを決定するために用いられ得る。
【0015】
[0036] いくつかの例は、候補ランドマークの複数のサブセット(たとえば、3つの候補ランドマークのサブセット)をサンプリングすることを含んでよい。サンプリングされたサブセットの各候補ランドマークは、その後、対応するマップ化ランドマークと対にされ得る。いくつかのサンプリングされたサブセットは誤検出を含み、他のサブセットは含まないので、このプロセスは、候補ランドマークを検査するために役立ち得る。サンプリングされた各サブセットは個々に評価され得る。これらの例は更に、各サブセットの候補ランドマークに適用する変換を決定することを含んでよい。変換は、サンプリングされた候補ランドマークと対応するマップ化ランドマークとの間が最小距離であるように、各サブセットのサンプリングされた候補ランドマークを対応するマップ化ランドマークと位置合わせしてよい。候補ランドマークおよび対応するマップ化ランドマークのサブセットを用いることにより、変換を決定するために必要な計算が低減され得る。
【0016】
[0037] いくつかの例は更に、サンプリングされた各サブセットに関連するインライアの数を決定することを含んでよい。サンプリングされた各サブセットに関して決定された変換は、候補ランドマークの全てに適用され得る。サンプリングされたサブセットに関するインライアの数は、変換後の候補ランドマークと近隣マップ化ランドマークとの間の距離に基づいてよい。たとえば、変換後の候補ランドマークと近隣マップ化ランドマーク(たとえば最も近いマップ化ランドマーク)との間の距離は、インライア距離閾値と対応してよい。インライア距離閾値以下の近隣マップ化ランドマークとの距離を有する変換後の候補ランドマークは、「インライア」と称され得る。閾値より大きい近隣マップ化ランドマークとの距離を有する変換後の候補ランドマークは、「アウトライア」と称され得る。インライアは、変換後のサブセットが関連する候補ランドマークと近隣マップ化ランドマークとを正確に位置合わせしたことを示し、アウトライアは、その逆を示し得る。誤検出を含まないサンプリングされたサブセットは、候補ランドマークを近隣マップ化ランドマークと正確に位置合わせする変換をもたらす可能性が高く、より多くのインライアを生成する。したがって、より多くのインライアは、誤検出が少ないまたは無いサンプリングされたサブセットに対応し、より多い数のアウトライアは、1または複数の誤検出を含むサブセットに対応し得るので、インライアの数を決定することは、候補ランドマークを検査するために役立ち得る。
【0017】
[0038] いくつかの例において、誤検出源の位置のインジケーションも同様にマップ化され得る。そのような誤検出の発生源は、マップの比較的大きい部分を占め得る。たとえば、誤検出源は、たとえば壁などの環境内の反射表面を含んでよい。このように、誤検出を含む環境領域全体がマップ化され得る。そのような領域は、誤検出がその領域の任意の部分から生じ得るので、ロボット車両の姿勢を推定する時に用いるのには不適当であり得る。しかし、マップ化ランドマークに対応する候補ランドマークは、ロボット車両の姿勢を推定するために用いられ得る。姿勢に基づいて、誤検出に対応する検出された候補ランドマークがマップ化誤検出源領域内に含まれるかが決定され得る。そのようなランドマークが誤検出源領域内に含まれる場合、姿勢推定は正確である可能性が高いと決定され得る。逆に、マップ化誤検出源領域内に含まれない誤検出は、姿勢推定が正確ではない可能性が高いことを示し得る。
【0018】
[0039] たとえば誤検出源領域などの誤検出源位置のインジケーションをマッピングすることは、1または複数のロボットを環境内でナビゲートすることを含んでよい。ロボットは、誤検出を識別し、姿勢推定を決定し、姿勢推定に基づいて、誤検出源領域をマップ化してよい。いくつかの誤検出源位置が互いに近い場合、誤検出源領域が決定され得る。
【0019】
[0040] いくつかの例において、姿勢推定の信頼水準は、サンプルセットに関連するインライアの数、および環境内の過去にマップ化誤検出源領域内に含まれた誤検出に対応することが決定された候補ランドマークの数の両方に基づいてよい。たとえば信頼度は、マップ化ランドマークに対応するか、または誤検出源領域内に含まれる候補ランドマークと、候補ランドマークの総数との比に基づいてよい。1に近い比は、予想外の誤検出が非常に少ないことを示し、0に近い比は、予想外の誤検出が多いことを示してよい。
【0020】
[0041] 以下、その例が添付図面に示された様々な実施形態が詳細に参照される。以下の詳細な説明において、本開示および説明される実施形態の完全な理解を提供するために、数々の具体的な細部が記載される。ただし、本開示は、これらの具体的な細部なしでも実施され得る。他の例において、周知の方法、手順、および構成要素、および回路は、実施形態の態様を不必要に不明確にしないために、詳細に説明されない。
II.ロボットデバイスに関するシステム設計
【0021】
[0042] 図1は、実施形態例に係る、システム100のブロック図である。システム100は、計画システム110およびロボットデバイス120を含む。計画システム110は、環境内で動作する1または複数のロボットデバイスの動きを調和させ得るオフボードプランナ112を含んでよい。オフボードプランナ112は、ロードマッププランナ114を含んでよい。オフボードプランナ112および/またはロードマッププランナ114は、たとえばロボットデバイス120などのロボットデバイスが環境内で動作中に辿る1または複数の非同期経路116を生成してよい。
【0022】
[0043] たとえば図3に関連して後述する写真版グラフ300などの、ロードマップグラフ、写真版グラフ、または環境を表す他のロードマップは、受信、決定、または他の方法で計画システム110、オフボードプランナ112、および/またはロードマッププランナ114へ提供され得る。非同期経路116は、ロードマップグラフ、写真版グラフ、または他のロードマップに基づく1または複数の経路であってよい。たとえば、ロードマップグラフ、写真版グラフ、または他のロードマップが、複数の交差点に接続する複数のエッジを有する場合、非同期経路116は、複数のエッジおよび/または複数の交差点に関して特定され得る。
【0023】
[0044] いくつかの例において、ロボットデバイス120は、経路を追従することができる任意の1または複数の操舵車両(複数も可)であってよい。たとえばロボットデバイス120は、オンボードソフトウェア130および/またはハードウェア150を含んでよい。オンボードソフトウェア130は、位置測定サブシステム132、障害物検出サブシステム134、オドメトリサブシステム136、経路追従サブシステム138、および軌道追従サブシステム142の1または複数を含んでよい。位置測定サブシステム132は、ロボットデバイスの位置測定、すなわち環境におけるロボットデバイスの位置を決定するために用いられ得る。位置測定サブシステム132は、ロボットデバイスおよび/またはロボットデバイスを位置測定するために用いられ得る他の物体の位置推定値を生成し、ロボットデバイスがたとえば非同期経路116などの経路を辿ることを支援し、および/またはロボットデバイスがたとえば軌道140などの軌道を辿ることを支援してよい。位置推定値が生成されると、位置測定サブシステム132は、位置推定値を経路追従サブシステム138へ提供してよい。
【0024】
[0045] 非同期経路または短距離経路は、時不変プラン、またはロボットデバイス120がどのように出発点SPから終着点EPへ移動し得るかを示す他の情報であってよく、すなわち、(非同期)経路は時間を考慮しない。対照的に、軌道は、ロボットデバイス120が計画時間間隔ごとに辿り得る、操舵角およびトラクションモータ速度の値を含んでよい。
【0025】
[0046] 計画時間間隔は、ロボットデバイスが経路、ルート、および/または行程を辿るようにガイドまたは計画された持続時間であってよい。いくつかの実施形態において、計画時間間隔は、たとえば5秒、1秒、0.2秒、0.1秒など、所定の時間であってよい。特に、所定の計画時間間隔は、計画時間間隔の値を指定するユーザ入力に基づいて決定され得る。他の実施形態において、計画時間間隔は、たとえばステッチ時間、均一エッジ(または経路)コストに関連する時間、軌道に沿って移動するための推定時間など、1または複数の他の値に基づいて決定され得る。計画時間間隔および計画時間間隔の値を決定するための他の技術も可能である。
【0026】
[0047] その後、1または複数の軌道は、ロボットデバイス120がどのように出発点SPから終着点EPへ移動し得るかを時変方式で表すために用いられ得る。いくつかの実施形態において、軌道は、たとえば限定ではないがロボットデバイス120の他の運動学的変数(たとえば速度および加速度)およびロボットデバイス120のアクチュエータ位置など、計画時間間隔にわたる操舵角およびトラクションモータ速度以外の変数の値に関する情報も提供してよい。
【0027】
[0048] 一例として、「ホーム」位置から「ワーク」位置へ車を運転する経路は、たとえば人間または自律車両の制御デバイスなどの制御エンティティがホームからワークへ車を運転するために用い得る車道の順序付きリストを含んでよい。この例において、ホームからワークへの軌道は、制御エンティティがホームからワークへ車を運転するために用い得る速度および/または加速度を指定する1または複数の命令を伴ってよい。いくつかの例において、軌道は、交通量、障害物、天候、および他の時間依存条件を考慮してよく、たとえば、ホームからワークへ向かう軌道は、制御エンティティが「10秒以内に20MPH以下で右折する」、「55MPHまで加速し3分間直進する」、「30秒以内に20MPHまで減速する」、「10秒以内に20MPH以下で左折する」ことなどを示してよい。いくつかの実施形態において、軌道は、たとえば障害物、経路の変化などを考慮するために途中で変更され得る。
【0028】
[0049] 障害物検出サブシステム134は、1または複数の障害物がロボットデバイス120の経路および/または軌道を遮断しているかを決定してよい。これらの障害物の例は、パレット、パレットから落下した可能性のある物体、ロボットデバイス、および環境内で働く人間オペレータを含んでよいが、これに限定されない。障害物が検出された場合、障害物検出サブシステム134は、障害物検出を示す1または複数の通信を経路追従サブシステム138へ提供してよい。障害物検出を示す1または複数の通信は、障害物検出サブシステム134によって検出された1または複数の障害物の1または複数の位置に関する位置情報、および/または障害物検出サブシステム134によって検出された1または複数の障害物に関する識別情報を含んでよい。オドメトリサブシステム136は、たとえばサーボドライブ152からのデータなどのデータを用いて、ロボットデバイス120の位置の1または複数の変化を経時的に推定してよい。
【0029】
[0050] 経路追従サブシステム138および/または軌道追従サブシステム142は、ロボットデバイス120に搭載されたプランナとして機能してよい。このオンボードプランナは、位置測定サブシステム132によって提供された位置推定値に基づいて、たとえば非同期経路116などの1または複数の経路を辿ってよい。
【0030】
[0051] 経路追従サブシステム138は、非同期経路116、位置測定サブシステム132からの位置推定値入力、障害物検出サブシステム134からの1または複数の障害物の1または複数の位置に関する位置情報、および/またはオドメトリサブシステム136からの1または複数の位置の変化に関する情報を受信し、1または複数の軌道140を出力として生成してよい。
【0031】
[0052] ハードウェア150は、サーボドライブ152および/またはモータ154を含んでよい。サーボドライブ152は、1または複数のサーボメカニズムおよび関連電気機器を含んでよい。いくつかの例において、サーボドライブ152は、1または複数のサーボメカニズムに動力供給するため、および/またはサーボメカニズム(複数も可)からのフィードバック信号を監視するために用いられる1または複数の電子増幅器を含んでよい。サーボドライブ152は、オンボードソフトウェア130から、たとえば軌道144などの制御信号を受信し、制御信号に比例する動きを生成するためにサーボメカニズム(複数も可)へ電流を供給してよい。いくつかの実施形態において、サーボドライブ152は、サーボメカニズム(複数も可)から受信したステータス情報と、軌道144によって命令される予定ステータスとを比較してよい。その後、サーボドライブ152は、受信ステータス情報と予定ステータスとの間のずれを補正するために、供給した電流の電圧周波数またはパルス幅を調整してよい。他の実施形態において、サーボドライブ152は、たとえばフィードバック信号および/または位置関連情報などの情報をオンボードソフトウェア130へ提供してよい。
【0032】
[0053] 1または複数のモータ154は、サーボドライブ152のサーボメカニズム(複数も可)の一部または全部であってよい。たとえばモータ154は、ロボットデバイス120の一部または全部を駆動するための機械力を生成するためにサーボドライブ152によって供給される電流を用いてよく、たとえばモータ154は、ロボットデバイス120を推進させ、および/またはロボットデバイス120の1または複数のエフェクタを駆動する力を供給してよい。
【0033】
[0054] たとえば倉庫、オフィスビル、または住居などの屋内環境、および/またはたとえば公園、駐車場、または庭などの屋外環境を含む環境におけるロボットデバイスの経路計画は、たとえばロボットデバイスなどのエージェントが辿り得る経路の連結グラフであるロードマップグラフに関して実行され得る。環境内でのエージェントルート指定を計画するために自由空間アプローチではなくロードマップグラフを用いることによって、全体計画状態空間が低減され、大規模マルチエージェント調和を扱いやすくすることができる。また、ロードマップグラフの使用により、オペレータは、ロボットデバイスの通行が許可されたエリアを直感的に制御することが可能である。
【0034】
[0055] ロードマップグラフ生成は、第1に、レーンの大まかな位置および移動方向を示す写真版グラフの生成を伴ってよい。いくつかの例において、写真版グラフは、ロボットデバイスの移動方向およびレーンを示す有向グラフであってよい。他の例において、写真版グラフは、環境の図またはマップに基づいて手動で生成され得る。
【0035】
[0056] 図2は、実施形態例に係る、1または複数の倉庫を運営するためのシステム200を示す。システム200は、倉庫管理システム210、計画システム110、およびロボットデバイス220を含む。倉庫管理システム210は、たとえば1または複数の物品を倉庫に保管する要求および/または1または複数の物品を倉庫から出荷する要求などの、倉庫に関連する1または複数の物流要求212を受信してよい。倉庫管理システム210は、物流要求212を1または複数の行動214に変換してよく、行動214は、1または複数の指定されたエージェントを1または複数の指定位置へ移動させるための「移動」行動、および1または複数の物品を1または複数の指定位置へ搬送するための「輸送」行動を含んでよいが、これに限定されない。いくつかの例において、行動214は、{エージェントID、宛先}形式の移動コマンドを含んでよいが、たとえば「パレットの移動」などの他の行動も可能である。しかしこれらは一般に、移動コマンド(ピック位置への移動、載置位置への移動)に分解することができる。
【0036】
[0057] 計画システム110は、オフボードプランナ112および実行部220を含む。オフボードプランナ112は、行動214を入力として受信し、たとえば複数のロボットデバイスなどの、倉庫内で動作する1または複数のエージェントが行動214を実行するための1または複数の調和経路216を生成してよい。調和経路216は、倉庫内のエージェント全てが物流要求212を履行するための調和行動計画の一部であってよい。調和行動計画は、エージェントの優位性を考慮してよく、たとえばロボットデバイスRD1およびRD2の両方がほぼ同時に地点に到達すると予想される場合、たとえばロボットデバイスRD1はロボットデバイスRD2が地点を通過するまで待機する(またはその逆である)ように、ロボットデバイスの一方が他方に対し優位性または優先権を有してよい。実行部220は、調和経路216を受信し、ロボットデバイス120に、自身の調和行動計画の一部の遂行において行動214を実行し物流要求212を履行するように指示するために、非衝突サブ経路222を生成してよい。
【0037】
[0058] 図2において上述したように、オフボードプランナ112および実行部220を含む計画システム110は、ロボットデバイス120と通信してよい。いくつかの実施形態において、ロボットデバイスは、たとえば任意の職業安全衛生局(OSHA)クラス1またはクラス3動力付き産業トラックなどのフォークトラックであってよい。他の実施形態において、計画システム110は、「クラウド」に存在する1または複数のネットワーク型コンピューティングデバイス(たとえば1または複数のネットワーク型コンピューティングデバイス)および/またはロボットデバイス120と同じ場所にある建物内のどこかに位置する1または複数のネットワーク型コンピューティングデバイスを用いて実行するソフトウェアを含んでよい。
【0038】
[0059] いくつかの実施形態において、オフボードプランナ112および実行部220は、同期され得る。実施形態例において、オフボードプランナ112および実行部220は、たとえば計画システム110またはロボットデバイス120などの1つのデバイスに実装され、デバイス内で同期され得る。他の実施形態例において、オフボードプランナ112および実行部220は、1または複数のデバイスにおいて同期的に行動してよい。
【0039】
[0060] 図3は、実施形態例に係る、ネットワーク318を用いて接続された、物流インタフェース310、倉庫管理システム210、および1または複数のロボットデバイス120を含むシステム300を示す。物流インタフェース310は、たとえばパレットなどの物体および/またはロボットデバイスの倉庫管理システム210への移動に関する棚卸タスク命令を、ネットワーク318を介して倉庫管理システム210へ提供してよい。棚卸タスクの例は、種類Bの物品を収容するパレットAを位置Cへ移動することであってよい。
【0040】
[0061] 倉庫管理システム210は、物流インタフェース310から棚卸タスク命令を受信し、1または複数のタスク/ミッション命令(たとえばロボットデバイスAにパレットBを位置Cから位置Dへ移動させる命令)および/または棚卸タスク命令を実行するようにロボットデバイス(複数も可)120を制御するための計画を生成してよい。タスク/ミッション命令および/または計画は、1または複数の経路および/または1または複数の軌道に関する情報を含んでよく、タスク/ミッション命令(複数も可)、計画(複数も可)、経路(複数も可)、および軌道(複数も可)は、図1および図2に関して説明される技術を用いて倉庫管理システム210の計画システム110によって生成される。
【0041】
[0062] たとえば、倉庫管理システム210は、たとえばサーバコンピューティングデバイスなどの1または複数のコンピューティングデバイスを用いてデータを実行および格納する集中制御サービスであってよい。これらのタスクを実行するために、倉庫管理システム210は、WMSミドルウェアを含んでよく、システム300を監視および管理するためのツールへのアクセスを提供するユーザインタフェースを提供してよい。WMSミドルウェアおよび/または倉庫管理システム210の他の構成要素は、タスク/ミッション命令(たとえばロボットデバイスAにパレットBを位置Cから位置Dへ移動させる命令)からロボットデバイスの経路、姿勢、および/または軌道への変換、棚卸タスクとタスク/ミッション命令との間の変換、およびAPI間での変換のために、たとえばプロトコル変換APIなどの1または複数のアプリケーションプログラミングインタフェース(API)を用いてよい。
【0042】
[0063] 倉庫管理システム210によって提供されるユーザインタフェースは、たとえば1または複数のロボットデバイスの位置、バッテリ状態、充電状態などに関するデータの提示など、ロボットデバイス(複数も可)120を監視すること、棚卸タスク命令(複数も可)、タスク/ミッション命令(複数も可)、計画(複数も可)、経路(複数も可)、および/または軌道(複数も可)の生成およびロボットデバイス(複数も可)120の1または複数への送信を可能にすること、および1または複数の倉庫マップ、パレット、ネットワーク、および/または計画システム(たとえば計画システム110、倉庫管理システム210、および/または物流インタフェース310)に関するデータを再検討、更新、削除、および/または挿入することを含むがこれに限定されない、システム300に関する1または複数のユーザインタフェース機能を提供してよい。
【0043】
[0064] いくつかの実施形態において、倉庫管理システム210は、物流インタフェース310とロボットデバイス(複数も可)120との間およびロボットデバイス(複数も可)120の2つ以上の間の通信をルート指定し、たとえばロボットデバイス(複数も可)120の1または複数に搭載されたオンボードシステム320などの1または複数のオンボードシステムを管理してよい。他の実施形態において、倉庫管理システム210は、限定ではないがたとえば、ロボットデバイス(複数も可)120の1または複数によるタスク/ミッション命令の完了に関するデータ、ロボットデバイスが初期化/起動された位置を示すデータを含む、ロボットデバイス(複数も可)120の一部または全部の位置および/または姿勢に関するデータ、人間の行動に関する1または複数の監査追跡、事故分析、および/またはデバッギングに関するデータ、および状態追跡に関するデータなどの、システム300に関するデータを格納、生成、読み取り、書き込み、更新、および/または削除してよい。他の実施形態において、倉庫管理システム210は、ロボットデバイス(複数も可)120および1または複数のアダプタと通信する中央メッセージルータ/持続性マネージャを含んでよい。1または複数のアダプタの各々は、倉庫管理システム210に利用可能なシステム300の通信および/またはデータへのアクセスを提供してよく、限定ではないが、上述したユーザインタフェースのためのユーザインタフェースサービスアダプタ、システム300に関する情報へのワールドワイドウェブ(WWW)/インターネットアクセスを可能にするウェブコンテンツサービスアダプタ、APIおよび/またはWMS間の通信の中継として機能するメッセージ代理アダプタおよび/またはWMSアダプタを含んでよい。
【0044】
[0065] 図3は、1または複数のロボットデバイス120の各々が、オンボードシステム320、ネットワークスイッチ330、車両コントローラ332、プログラマブル論理コントローラ(PLC)334、1または複数のデバイスセンサ338、および1または複数のドライブ340の1または複数を含み得ることを示す。
【0045】
[0066] オンボードシステム320は、ロボットデバイス120へのインストールおよびロボットデバイス120との併用のために構成されたロボット計画のための計算およびセンサパッケージであってよく、オンボードシステム320は、オンボードセンサ322および1または複数の計画/実行プロセッサ324を含んでよい。図3は、(ネットワーク318を介して)計画システム110と、デバイスセンサ338と、および/またはロボットデバイス120の1または複数のアクチュエータと少なくとも通信するためにネットワークスイッチ330を用いるように構成されたオンボードシステム320も示す。
【0046】
[0067] オンボードシステム320は、ロボットデバイス120の位置測定、計画を実行するためのローカル軌道の生成および/または倉庫管理システム210によって提供された経路および/または軌道に沿った移動、ドライブ340に1または複数の(ローカル)軌道を辿らせるコマンドの生成、ロボットデバイス120のアクチュエータ(複数も可)を制御するコマンドの生成、および姿勢、状態、および/または他の情報を倉庫管理システム210へ報告することの1または複数を担ってよい。
【0047】
[0068] オンボードセンサ322は、オンボードシステム320をナビゲートおよび/または制御するための1または複数のナビゲーションレーザ、レーザスキャナ、カメラ、および/または他のセンサを含んでよい。たとえば、ロボットデバイス(複数も可)120のうちのロボットデバイスは、たとえばドイツ、ヴァルトキルヒ所在のSICK AG社、日本、大阪府所在の北洋電機株式会社、および/または日本、大阪府所在の株式会社キーエンスによって供給される1または複数のレーザスキャナなどの、1または複数のレーザスキャナを含んでよい。レーザスキャナは、ロボットデバイスの移動方向およびロボットデバイスの側方、角、および/または後方に沿った障害物の検出および/または回避のために用いられ得る。レーザスキャナは、反射板ベースの位置測定を用いてロボットデバイスを位置測定するためにも用いられ得る。いくつかの実施形態において、カメラおよび/または他のセンサは、レーザスキャナの代わりに、またはレーザスキャナとともに、障害物検出、障害物回避、および/または位置測定のために用いられ得る。
【0048】
[0069] 計画/実行プロセッサ(複数も可)324は、少なくともオンボードセンサ322に接続された1または複数のコンピュータプロセッサを含んでよい。計画/実行プロセッサ(複数も可)324は、オンボードセンサ322からのデータを読み取り、ローカル軌道および/またはロボットデバイス120を移動させるためのドライブ(複数も可)340へのコマンドを生成し、倉庫管理システム210と通信してよい。ローカル軌道は、ロボットデバイス120が始動姿勢で始動し、何らかの時間に終着姿勢に到達する軌道であってよい。いくつかの例において、始動姿勢は暗示的に指定されてよく、たとえば始動姿勢は、ロボットデバイス120の現在の姿勢であってよく、ローカル軌道は、始動姿勢がロボットデバイス120の現在の姿勢であるという前提に基づいてよい。
【0049】
[0070] 計画/実行プロセッサ(複数も可)324は、コンポーネントフレームワークを利用してよい。コンポーネントフレームワークは、たとえばバージニア州オナンコックのboost.org社によって供給される「boost::asio」および「boost::signals2」ソフトウェアライブラリなどの、ロボットデバイス120の無矛盾非同期モデルを提供するように構成された入力/出力(I/O)およびシグナリングに関するソフトウェアライブラリ上に構築されたマルチスレッド型ジョブスケジューリングおよびメッセージ受渡しシステムであってよい。コンポーネントフレームワークは、ソフトウェアコンポーネント(またはモジュール)間の通信を可能にし得るので、ソフトウェアコンポーネントは、スレッドセーフ方式で並行して実行され得る。
【0050】
[0071] コンポーネントフレームワークは、ステートマシンコンポーネント、位置測定コンポーネント、計画コンポーネント、および軌道追従コンポーネントの1または複数を含んでよい。ステートマシンコンポーネントは、車両初期化、車両指揮および故障対応のためにロボットデバイス120の状態を管理してよい。ステートマシンコンポーネントは、ロボットデバイスの状態を管理するために、決定性有限オートマンまたは他のステートマシンを用いてよい。
【0051】
[0072] 位置測定コンポーネントは、車両センサからのデータを読み取り、ロボットデバイス120の姿勢を決定するためにロボットデバイス120の以前の状態情報を統合してよい。車両センサデータは、車両センサによって検出された1または複数のランドマーク/対象地点を示してよい。あるいは、車両センサから得たデータは、位置測定コンポーネントが車両センサデータに基づいて1または複数のランドマーク/対象地点を検出するような処理を必要とし得る。姿勢は、たとえばパレットまたは他の物体など、検出された1または複数のランドマーク/対象地点に対して決定され得る。計画コンポーネントは、倉庫管理システム210から1または複数の目的を受信し、ロボットデバイス120がこれらの目的を達成するためのローカル軌道を決定してよい。いくつかの実施形態において、ローカル軌道は、ロボットデバイス120が、たとえば100ミリ秒、200ミリ秒、500ミリ秒、1秒、5秒など所定の時間辿るべき短期間軌道であってよい。軌道追従コンポーネントは、計画コンポーネントによって生成されたローカル軌道を受信し、ローカル軌道に沿って移動するドライブ制御命令を生成してよい。その後、ドライブ制御命令は、トラクションモータおよびロボットデバイス120に関する他のアクチュエータを制御するドライブ340へ中継される。
【0052】
[0073] ネットワークスイッチ330は、ロボットデバイス(複数も可)120のための通信を可能にし得る。これらの通信は、オンボードシステム320とロボットデバイス120の他の部分、たとえばデバイスセンサ338およびドライブ340との間の通信、およびネットワーク318を介した倉庫管理システム210との通信を含んでよいが、これに限定されない。たとえばネットワークスイッチ330は、たとえば台湾、新北市の株式会社プラネットテクノロジーによるプラネットイーサネットスイッチのように、イーサネットおよび/または他の有線通信インタフェース(複数も可)を介した有線ネットワークへの、および/または、WiFi(登録商標)および/または他の無線通信インタフェース(複数も可)を介した無線ネットワークへの、伝送制御プロトコル/インターネットプロトコル(TCP/IP)ベースの通信を可能にし得る。
【0053】
[0074] いくつかの実施形態において、ロボットデバイス(複数も可)120と計画システム110との間の通信は、リモートプロシージャコール(RPC)を含んでよい。リモートプロシージャコールは、計画システム110のソフトウェアによってロボットデバイス(複数も可)120の1または複数に常駐するソフトウェア手順、方法、および/または機能を呼び出すこと、およびその逆を含んでよい。リモートプロシージャコールは、たとえばTCP/IP、たとえばHTTP1.0および/またはHTTP2.0などのハイパーテキスト転送プロトコル(HTTP)、および/または他の通信プロトコルなどの通信プロトコルに基づいてよい。リモートプロシージャコールの一部または全部は、暗号化データを含んでよく、そのようなデータは、セキュアソケットレイヤ(SSL)、トランスポート層セキュリティ(TLS)、および/または1または複数の他の暗号化アルゴリズムおよび/またはプロトコルを用いて暗号化され得る。暗号化データが用いられる実施形態において、たとえばプライベート認証機関などの1または複数の認証機関は、暗号化データの暗号化および/または解読に用いられる1または複数の証明書を認証してよい。認証機関は、1または複数の証明書へのアクセスを制御するために、アクセス制御リスト(ACL)を用いてよい。リモートプロシージャコールは、RPC関連通信のための要求/応答プロトコルおよび/または双方向ストリーミングプロトコルを用いてよい。RPC関連通信のために双方向ストリーミングプロトコルが用いられる実施形態において、双方向ストリーミングプロトコルを実装するために単一の長寿命RPCが用いられ得る。
【0054】
[0075] 車両コントローラ332および/またはプログラマブル論理コントローラ334は、ロボットデバイス(複数も可)120のための電気およびセンサ管理機能を提供してよい。電気およびセンサ管理機能は、電気負荷制御、照明制御、センサ制御、センサおよび/またはスイッチ信号処理、および電力管理のための機能を含んでよいが、これに限定されない。車両マスタ336は、ロボットデバイス(複数も可)320の、たとえばリフトデバイスなどの1または複数のアクチュエータを制御するための機能を提供してよい。
【0055】
[0076] デバイスセンサ(複数も可)338は、ロボットデバイス(複数も可)120の制御および/または動作に関連するデータを提供し得る1または複数のセンサを含んでよい。データは、限定ではないがたとえば位置測定情報、位置推定、およびマッピングデータなどの、ロボットデバイス(複数も可)120に関する環境に関する情報を提供してよい。たとえば、デバイスセンサ(複数も可)338は、1または複数のレーザ(たとえば2方向(2D)レーザ、安全レーザ、レーザスキャナ)、カメラ(たとえば飛行時間(ToF)カメラ、三原色(RGB)カメラ、サーモカメラ)、電気センサ、近接センサ、ナビゲーションデバイス、および位置センサを含んでよい。
【0056】
[0077] デバイス(複数も可)340は、ロボットデバイス(複数も可)120を動かすための機能を提供する1または複数のドライブコントローラおよび/またはアクチュエータを含んでよい。ドライブコントローラは、ドライブアクチュエータに、ロボットデバイス(複数も可)120の動きを制御するように指示してよい。ドライブアクチュエータは、1または複数のトラクションモータ、電動ドライブ、油圧ドライブ、空圧ドライブを含んでよい。
【0057】
[0078] 図4は、実施形態例に係る、ロボットデバイス(複数も可)120のロボットデバイスアーキテクチャ400を示す。ロボットデバイス(複数も可)120のロボットデバイスアーキテクチャ400は、ソフトウェアを含んでよい。ソフトウェアは、位置測定のためのソフトウェア410、パレット姿勢推定器のためのソフトウェア412、ステートマシンに関連するソフトウェア414、プランナフォロアのためのソフトウェア416、コンポーネントフレームワークのためのソフトウェア420、およびシステムを動作させるためのソフトウェア430を含んでよい。ソフトウェアは、1または複数のハードウェア計画/実行プロセッサ324によって実行され得る。ロボットデバイス(複数も可)120と他のデバイスとの間の通信は、ネットワークゲートウェイ440および/またはネットワークスイッチ330を用いて実行され得る。たとえば、ネットワークゲートウェイ440は、ロボットデバイス(複数も可)120のうちのロボットデバイス内での、またこれとの無線通信のために用いられ、ネットワークスイッチ330は、ロボットデバイス(複数も可)120のうちのロボットデバイス内での、またこれとの有線通信のために用いられ得る。ロボットデバイスアーキテクチャ400は、たとえば図3に関連して上述したデバイスセンサ(複数も可)338およびドライブ(複数も可)340などの追加のハードウェアも含む。いくつかの実施形態において、ロボットデバイスアーキテクチャ400は、ToFカメラ450およびRGBカメラ452を含むがこれに限定されない1または複数のカメラを含んでよく、1または複数のカメラは、1または複数のスチルカメラおよび/または1または複数のビデオカメラを含んでよい。
【0058】
[0079] 図5は、実施形態例に係る、ロボットデバイス(複数も可)120に関するレーザスキャナアーキテクチャ500を示す。いくつかの実施形態において、デバイスセンサ(複数も可)338の一部または全部は、レーザスキャナアーキテクチャ500によって示されるレーザおよびレーザスキャナであってよい。
【0059】
[0080] レーザスキャナアーキテクチャ500は、レーザ510、512、520、522、レーザスキャナ524、プロトコルコンバータ526、ネットワークスイッチ330、およびオンボードシステム320を含んでよい。レーザ510、512、520、および522は、ロボットデバイス(複数も可)120の定位置にあってよく、たとえば、レーザ510はロボットデバイスの前部に位置し、レーザ512はロボットデバイスの後部に位置し、レーザ520はロボットデバイスの前部左角に位置し、レーザ522はロボットデバイスの前部右角に位置してよい。レーザ510、512、520、522および/またはレーザスキャナ524は、環境内でロボットデバイスを位置測定するための情報を提供してよい。いくつかの実施形態において、レーザ510、512、520、522および/またはレーザスキャナ524は、1または複数の反射板から反射した光を放出してよく、反射光は、1または複数のレーザセンサによって検出されてよく、ロボットデバイスは、反射光を検出するために要する持続時間に基づいて環境内で位置測定され得る。これらの実施形態において特に、レーザ510、512、520、522および/またはレーザスキャナ524の一部または全部は、反射レーザ光を検出するための1または複数のレーザセンサを含んでよい。したがって、レーザ510、512、520、522および/またはレーザスキャナ524の一部または全部は、レーザに関連するデータ(たとえばレーザに関連するメンテナンスデータ)、レーザによって放出された光に関連するデータ、およびレーザセンサ(複数も可)によって反射レーザ光を検出するために要する1または複数の持続時間に関連するデータを含むがこれに限定されないデータを生成してよい。
【0060】
[0081] 図5に示すように、たとえばレーザ520、522などのいくつかのレーザおよびレーザスキャナ524は、ネットワークスイッチ330に直接接続され得るが、たとえばレーザ510、512などの他のレーザは、プロトコルコンバータ526を介してネットワークスイッチ330に接続され得る。プロトコルコンバータ526は、たとえばレーザ510および/または512などのレーザによって用いられる通信プロトコルを、ネットワークスイッチ330によって用いられる通信プロトコルに変換してよく、たとえばRS‐422に基づく通信プロトコルからイーサネットに基づく通信プロトコルに変換してよい。その後、レーザ510、512、520、522、およびレーザスキャナ524は、ネットワークスイッチ330および場合によってはプロトコルコンバータ526を介して、オンボードシステム320へデータを送信し、オンボードシステム320からのコマンドを受信してよい。
【0061】
[0082] いくつかの実施形態において、ロボットデバイス(複数も可)120は、1または複数の障害状態を仮定され得る。これらの障害状態および関連する修復戦略の例が以下の表2に表される。
【表1】
III.環境内でのロボット車両の位置測定
【0062】
[0083] 図6は、実施形態例に係る、環境内を通行するロボット車両を示す。ロボット車両600の位置および向きが推定されてよく、ロボットは、それに応じて環境内を通行してよい。ロボットデバイスの位置および向きは、ロボットデバイスの「姿勢」と称され得る。ロボットデバイスの姿勢は、ロボット車両上の1または複数のセンサ602による受信信号606に基づいて推定され得る。受信信号は、環境全体に配置されたランドマーク604に関連してよい。たとえば信号は、倉庫内の様々な位置に設けられた再帰反射マーカによって反射され得る。この例において、ロボットデバイスは、ロボット車両の周囲のエリアに光を放出する光測距および検出(LIDAR)ユニットを含んでよく、ロボット車両の周囲のエリアに位置する再帰反射器は、ロボット車両の1または複数のセンサによって検出するためにロボット車両へ光を反射してよい。
【0063】
[0084] いくつかの例において、受信信号は、ロボットデバイスに対するランドマークの位置を含んでよい。また、環境内のランドマークの位置は予め決定され得る。たとえばランドマークは、マップ化され得る。受信信号と、対応するマップ化ランドマークとをマッチングすることによって、環境内のロボットの姿勢が推測されることが可能になり得る。たとえば、ロボットは、マップ上の自身の位置を決定するために、検出したランドマークとマップ化ランドマークとを位置合わせしてよい。また、環境内の障害物610に関するランドマークの位置が予め決定され得る。たとえば、障害物の位置もまたマップ化され得る。ロボットは、推定された姿勢および予め決定された障害物の位置に基づいて、障害物を回避しながら環境内を通行するように動き608を行ってよい。
【0064】
[0085] 図7は、実施形態例に係る、ロボット制御システムのモジュールを示す機能ブロック図である。ロボット制御システムは、オンボード感知モジュール700の一部として1または複数のセンサを含んでよい。センサは、ロボット車両の車輪オドメトリ708を示すデータを提供してよい。センサは、ナビゲーションスキャナ710も含んでよい。ナビゲーションスキャナ710は、ロボットの環境内の候補ランドマークからの信号を受信するように構成され得る。
【0065】
[0086] ロボット制御システムの姿勢推定モジュール702は、環境内のマップ化ランドマークに対するロボット車両の位置および向きを示してよい。姿勢推定モジュール702は、オンボード感知モジュール700からの入力に基づいて機能を実行するソフトウェアを含んでよい。たとえば、ナビゲーションスキャナ710がスキャンを実行する度に、オンボード感知モジュールからのセンサデータは、環境内のロボット車両の現在の位置および向きを決定するために姿勢推定モジュール702によって処理され得る。姿勢推定モジュール702の姿勢追跡/精緻化ブロック712およびグローバル位置測定ブロック714は処理ステップを表し、姿勢ブロック716、信頼度/精度ブロック718、および初期姿勢推定ブロック720は、処理ブロック712および714の出力を表す。
【0066】
[0087] 姿勢推定モジュール702は、2つのモードで動作してよい。第1のモードにおいて、姿勢推定モジュール702は、ロボットの初期姿勢推定720を有してよく、姿勢追跡/推定ブロック712は、初期姿勢推定720を更新してよい。姿勢追跡/精緻化712は、候補ランドマークに関するロボット車両の位置を識別するために、初期姿勢推定720と併せて車輪オドメトリ708およびナビゲーションスキャナ710からのデータを利用してよい。姿勢追跡/精緻化ブロック712は、候補ランドマークを、初期姿勢推定720付近にある特定のマップ化ランドマークに関連付けてよい。姿勢推定モジュール702は更に、関連性に基づく姿勢推定716、および姿勢推定の信頼度/精度718を提供してよい。信頼度/精度718は、初期姿勢推定が適当であること、または更なる精緻化を要することを示してよい。また第1のモードにおいて、姿勢追跡/精緻化ブロック712によって決定された姿勢716および信頼度/精度718は、ロボットの精緻化姿勢推定を決定するために後処理モジュール704において用いられ得る。その間、グローバル位置測定ブロック714は、スキップされ得る。また、姿勢追跡/精緻化712中に導出された姿勢推定716は、後続する姿勢推定において用いるためのロボット車両の初期姿勢推定720として扱われ得る。
【0067】
[0088] 第2のモードにおいて、姿勢推定モジュール702は、ロボットデバイスが環境内のどこにあるかの初期インジケーションを有さなくてよい。すなわち、初期姿勢推定720は未だ決定されていなくてよい。第2のモードにおいて、姿勢推定モジュール702は、ロボットの姿勢を決定するために姿勢追跡/精緻化712ではなくグローバル位置測定714を利用してよい。グローバル位置測定ブロック714は、ロボット車両の環境全体にわたるマップ化ランドマークと候補ランドマークとの関連性を検査してよい。グローバル位置測定ブロック714は、姿勢推定716および信頼度/精度718を出力してよい。また第2のモードにおいて、グローバル位置測定ブロック714によって決定された姿勢716および信頼度/精度718は、ロボットの精緻化姿勢推定を決定するために後処理モジュール704において用いられ得る。また、グローバル位置測定714中に導出された姿勢推定716は、後続する姿勢推定において用いるためのロボット車両の初期姿勢推定720として扱われ得る。
【0068】
[0089] 後処理モジュール704は、姿勢追跡/精緻化またはグローバル位置測定から導出された姿勢推定を精緻化するために用いられ得る。後処理モジュールは、位置測定モジュールの姿勢推定および信頼度/精度およびオンボード感知モジュールの車輪オドメトリの融合外挿722を実行してよい。融合外挿中、信頼度/精度が高い場合、精緻化姿勢推定は、位置測定モジュールによって提供された推定姿勢により依存してよい。逆に、信頼度/精度が低い場合、精緻化姿勢推定は、車輪オドメトリにより依存してよい。また、後処理モジュールは、提供された信頼度/精度および精緻化姿勢推定に基づいてマップ更新724を提供してよい。たとえばマップ更新は、精緻化姿勢推定に基づいてマップ化ランドマークの位置を更新してよい。他の例において、マップ更新は、精緻化姿勢推定を生成するために用いられたマップ化ランドマークに関連する統計情報を更新してよい。
【0069】
[0090] 図7のロボット制御システムによって実行される機能の各々は、定期的に実行され得る。たとえば、ナビゲーションスキャナ710は8Hzでスキャンを実行し、車輪オドメトリ708は100Hzで更新してよい。他の例として、姿勢推定モジュールの処理ブロック712および714は、オンボード感知モジュールからのデータを8Hzで受信し、姿勢716および信頼度/精度718を8Hzで生成してよい。同様に様々な周波数が可能である。
【0070】
[0091] 図8は、実施形態例に係る、ロボット車両の環境を示す。ロボットの姿勢推定の生成は、環境800内の予め定められたランドマークの位置に依存してよい。たとえば、マップ化ランドマーク802は、マップ上の第1の座標(x1,y1)に対応し、マップ化ランドマーク804は第2の座標(x2,y2)に対応し、マップ化ランドマーク806は第3の座標(x3,y3)に対応し、マップ化ランドマーク808は第4の座標(x4,y4)に対応してよい。この例において、マップ化ランドマークは実質的に水平なマーカ平面に配置され得るので、x軸およびy軸のみが関係し得る。たとえば、環境800内の各ランドマークは、床面から5フィートの高さ(z軸に対応)に位置してよい。他の例において、マップ化ランドマークは、マップ上の座標範囲に対応してよい。たとえば、座標範囲は、様々なランドマークのサイズに対応してよい。また他の例において、マップ化ランドマークは、(3D)マップ上の3次元(3D)座標に対応してよい。マップ化ランドマークの位置を表す他の方法も可能である。
【0071】
[0092] いくつかの実施形態例において、マップ化ランドマークは、光源の方へ光を反射するように構成された再帰反射マーカであってよい。そのような例において、ロボット車両は、ロボットの周囲のエリアに光を放出するように構成された光測距および検出(LIDAR)ユニットを含んでよい。再帰反射マーカは、LIDARユニットからの信号をロボット車両へ反射してよい。ロボット車両は、再帰反射マーカからの反射信号を受信しロボット車両に対するマーカの位置を検出するように構成され得る、ロボット車両の1または複数のセンサを含んでよい。
【0072】
[0093] 図9は、実施形態例に係る、複数の検出を行ったロボット車両を示す。ロボット車両の姿勢推定の生成は、ロボット車両900の1または複数のセンサ902によって検出された信号906に更に依存してよい。一例において、信号は、候補ランドマーク912、914、916、918、および920と関連してよい。信号は、ロボットに関する候補ランドマークの位置を示してよい。たとえば、候補ランドマーク912は、ロボット車両900に対する半径(r1)およびロボット車両1000に対する角度(α1)に対応し、候補ランドマーク1014は、半径(r2)および角度(α2)に対応し、候補ランドマーク1016は半径(r3)および角度(α3)に対応し、候補ランドマーク1018は半径(r4)および角度(α4)に対応し、候補ランドマーク1020は半径(r5)および角度(α5)に対応してよい。他の例において、候補ランドマークは、ロボット車両900に関するデカルト座標によって表され得る。ロボット車両に対する候補ランドマークの位置を表す他の方法も可能である。
【0073】
[0094] いくつかの例において、候補ランドマークの位置は、ロボット車両上の少なくとも1つのセンサによって決定され得る。すなわち、センサは、候補ランドマークの位置を示す信号を受信してよい。センサは、受信信号を表すセンサデータを生成し、センサデータに基づいて候補ランドマークの位置を決定してよい。ロボットの制御システムはその後、センサから候補ランドマークの位置を受信してよい。他の例において、少なくとも1つのセンサは、生センサデータを生成してよく、ロボットの1または複数のプロセッサは、候補ランドマークの位置を決定するために生センサデータを処理してよい。たとえば、プロセッサは、強度閾値を上回る強度を有する、ロボット上のセンサからの信号を識別してよい。また他の例において、ロボットから遠隔にあるプロセッサが、センサデータに基づいて候補ランドマークの位置を検出してよい。候補ランドマークの位置を決定するための他の方法も可能である。
【0074】
[0095] 候補ランドマークは、マップ化ランドマークに対応し、または対応しないこともある。たとえば、候補ランドマーク912、914、916、および918は、マップ化ランドマーク(たとえば図8のマップ化ランドマーク802、804、806、および808)に対応し、候補ランドマーク920は誤検出に対応してよい。誤検出は、候補ランドマークと、対応するマップ化ランドマークとの位置合わせを困難にし、その結果、ロボット車両の正確な位置推定を妨げ得る。正確な位置推定を実現するために候補ランドマークを検査する方法を説明する実施形態例を以下に示す。
【0075】
[0096] 図10A図10B図10C、および図10Dは、実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークのサンプルセットに関連するインライアの決定を示す。図10Aは、ロボット車両のマップ化環境を示す。マップ化ランドマーク1002、1004、1006、および1008は、予め決定された位置を有する。図10Bは、複数の検出を行ったロボット車両を示す。検出は、候補ランドマーク1012、1014、1016、1018、および1020に対応する。例示のために、候補ランドマーク1020は誤検出に対応し、他の候補ランドマークはマップ化ランドマークに対応する。ロボット車両の姿勢を推定するため、および誤検出がある場合、どの候補ランドマークが誤検出に対応するかを決定するために、候補ランドマークおよびマップ化ランドマークのサンプルセットが選択され得る。
【0076】
[0097] 実施形態例において、候補ランドマーク1012、1014、および1020、および対応するマップ化ランドマーク1002、1004、および1006を含むサンプルセットが決定される。この例において、3つの候補ランドマークがサンプリングされた。ただし、様々な数のサンプリングされたランドマークが同様に可能である。たとえば、サンプリングされたランドマークの数は、候補ランドマークの総数の百分率に関連してよい。
【0077】
[0098] いくつかの実施形態において、候補ランドマークのサンプリングは、疑似ランダムに実行され得る。他の実施形態において、候補ランドマークのサンプリングは、規則正しい形式で実行され得る。たとえば、候補ランドマークのサンプリングは、ロボットに対する角度の順序で実行され得る。他の例において、候補ランドマークのサンプリングは、ロボットに対する半径の順序で実行され得る。また他の例において、第1の候補ランドマークは疑似ランダムに選択され、他の候補ランドマークは、第1の候補ランドマークとの近接度に基づいてサンプリングされ得る。また他の例において、候補ランドマークは、所望の幾何学形状に基づいて選択され得る。たとえば、二等辺三角形に最も近い候補ランドマークがサンプリングされ得る。他の例において、直線に最も近い候補ランドマークがサンプリングされ得る。候補ランドマークをサンプリングする他の方法も可能である。
【0078】
[0099] いくつかの実施形態において、対応するマップ化ランドマークは、サンプリングされた候補ランドマークと同様の形式で選択され得る。他の実施形態において、サンプリングされた候補ランドマークと同様の幾何学形状を成す、対応するマップ化ランドマークがサンプリングされ得る。この例において、サンプリングされたマップ化ランドマーク1002、1004、および1006は、サンプリングされた候補ランドマーク1012、1014、および1020が成す幾何学形状に最も近いものである。対応するマップ化ランドマークをサンプリングする他の方法も可能である。
【0079】
[0100] いくつかの実施形態において、各々が異なる候補ランドマークおよび対応するマップ化ランドマークの組み合わせを含む数個のサンプルセットが決定され得る。サンプルセットの各々は、どのサンプルセットがロボットの姿勢を正確に表すかを決定するために検査され得る。
【0080】
[0101] 図10Cは、候補ランドマークの全てに適用された、サンプルセットに基づいて決定された変換を示す。変換は、サンプリングされた候補ランドマークのサブセットを対応するマップ化ランドマークに関連付けるサンプルセットに関して決定され得る。たとえば、変換は、サンプリングされた候補ランドマークと対応するマップ化ランドマークとの間の距離が最小になるように候補ランドマークを移動および回転させ得る。この実施形態例において、サンプリングされた候補ランドマーク1012、1014、および1020は、対応するマップ化ランドマーク1004、1006、および1002との間の全体距離が最小になるように配向された。たとえばiterative closest point(ICP)アルゴリズムなどの最小二乗法は、この位置合わせを実現し得る。任意の同様のアルゴリズムが適宜、サンプリングされた候補ランドマークのサブセットと対応するマップ化ランドマークとを位置合わせし得る。他の変換も可能である。
【0081】
[0102] 変換は、サンプリングされた候補ランドマークのサブセットおよび対応するマップ化ランドマークに基づいて決定され得るが、候補ランドマークの全てに適用されてよい。この例において、変換は、サンプリングされた候補ランドマークに加えて、サンプリングされていないランドマーク1016および1018にも適用される。
【0082】
[0103] 決定された変換が候補ランドマークに適用されると、変換後の候補ランドマークと近隣マップ化ランドマークとの間の距離が決定され得る。変換後の特定の候補ランドマークに対応する近隣マップ化ランドマークは、変換が適用された後の最も近いマップ化ランドマークであってよい。いくつかの例において、各マップ化ランドマークは、変換後の候補ランドマークの1つの近隣マップ化ランドマークとして機能するのみであってよい。この例において、マップ化ランドマーク1002は、変換後の候補ランドマーク1020の近隣マップ化ランドマークであり、マップ化ランドマーク1004は、変換後の候補ランドマーク1012の近隣マップ化ランドマークであり、マップ化ランドマーク1006は、変換後の候補ランドマーク1014の近隣マップ化ランドマークである。
【0083】
[0104] 変換は一般に、ロボット1000の可能な姿勢を示してよい。変換後の候補ランドマークと近隣ランドマークとの間の距離は、変換が実行可能な姿勢を表すか否かを示してよい。たとえば、変換に関連するインライアの数が決定され得る。
【0084】
[0105] 図10Dは、実施形態例に係る、変換後の候補ランドマークに関連するインライアの数を示す。インライアの各々は、インライア距離閾値に基づいて決定され得る。インライア距離閾値は、変換後の候補ランドマークがマップ化ランドマークのいずれかと適切に位置合わせされたかを示してよい。この例において、インライア距離閾値は、それぞれ変換後の候補ランドマーク1020、1012、および1014を取り囲む半径領域1030、1032、および1034によって表される。近隣マップ化ランドマークから距離閾値内にある任意の変換後の候補ランドマークは、インライアと考えられ得る。この例において、変換後の候補ランドマーク1012、1014、および1020は、インライアと考えられ得る。候補ランドマーク1016および1018は図10Dには示されず、これらはインライアと考えられない。また、変換後の候補ランドマークのいずれかのインライア距離閾値内にないマップ化ランドマーク1008も図10Dに示されない。
【0085】
[0106] 誤検出を含むサンプリングされたサブセットは、ロボットの姿勢を表すのに適切ではない変換をもたらし得る。この例において、候補ランドマーク1012、1014、1016、および1018はそれぞれマップ化ランドマークに対応するが、候補ランドマーク1020は誤検出に対応する。図10Cおよび図10Dは、サンプリングされたサブセットが誤検出を含むためにロボットの姿勢を適切に表さない変換の実施形態例を示す。
【0086】
[0107] この例において、5つの変換後の候補ランドマークから3つのインライアが決定される。すなわち、5分の3の候補ランドマークは、変換に基づいて適切に位置合わせされたと考えられ得る。インライアを有する5分の3の候補ランドマークは、実行可能な変換に対応せず、ロボットの実行可能な姿勢を示すものではないことが決定され得る。変換が実行可能ではないという決定に他の要因も寄与してよい。図11A〜Dにおいて、たとえば、サンプリングされていない候補ランドマークのいずれもインライアに関連しない。決定された変換は、サンプリングされた候補ランドマークと対応するマップ化ランドマークとを最も適切に位置合わせすることが意図されるので、変換後のサンプリングされた候補ランドマークはインライアに関連することが通常であり得る。したがって、サンプリングされていない候補ランドマークがインライアに関連するかが、変換の実行可能性を決定する際により重視され得る。インライアの数が不十分であると決定された例において、他の候補ランドマークおよび対応するマップ化ランドマークがサンプリングされ、他の候補ランドマークが変換され、他の候補ランドマークに関連するインライアの数が決定され得る。
【0087】
[0108] 図11A図11B図11C、および図11Dは、実施形態例に係る、候補ランドマークおよび対応するマップ化ランドマークの他のサンプルセットに関連するインライアの決定を示す。図11Aは、図10Aに示すものと同じ、ロボット車両のマップ化環境を示す。同様に、図11Bは、図11Bに示すものと同じ検出を行ったロボット車両を示す。ただし、図11Aおよび図11Bは、異なるサンプルセットを示す。この例において、候補ランドマーク1114、1116、および1118、および対応するマップ化ランドマーク1104、1106、および1108がサンプリングされる。図11Cは、候補ランドマークの全てに適用された、サンプルセットから決定された変換を示す。この例において、変換は、サンプリングされた候補ランドマーク1114、1116、および1118、および対応するマップ化ランドマーク1104、1106、および1108に基づいて決定される。変換は、サンプリングされていないランドマーク1112および1120にも適用される。図11Dは、マップランドマークと位置合わせされた変換後の候補ランドマークに関連するインライアの数を示す。サンプリングされた候補ランドマーク1114、1116、および1118は、サンプリングされた候補ランドマークの半径領域1134、1136、および1138内にある近隣マップ化ランドマーク1104、1106、および1108に対応するので、インライアである。サンプリングされていない候補ランドマーク1112もまた、近隣マップ化ランドマーク1102が候補ランドマーク1112の半径距離1132内にあるので、インライアである。ただし、候補ランドマーク1120は、候補ランドマーク1120に関連するインライア距離閾値内に含まれるマップ化ランドマークが存在しないため、アウトライアである。
【0088】
[0109] 図11Dは、5つの候補ランドマークのうち4つのインライアを含む実施形態例を示す。5つの候補ランドマークのうちインライアを有する4つは、実行可能な変換に対応し、ロボットの実行可能な姿勢を示すことが決定され得る。この決定は、合計4つのサンプリングされた近隣ランドマーク1102、1104、1106、および1108が存在するという理由からなされ得る。したがって、この例における4つのインライアの決定は、候補ランドマークを各々の関連マップ化ランドマークと適切に位置合わせする変換を示す。変換が実行可能であるという決定に、他の要因も寄与してよい。図11Dにおいて、たとえば、サンプリングされていない候補ランドマークの1つがインライアに関連する。図11A〜11Dに示すように、1または複数の誤検出に由来する変換は、サンプリングされていない候補ランドマークに関連するインライアを考慮する可能性が低いので、サンプリングされていない候補ランドマークがインライアに関連することは有意であり得る。
【0089】
[0110] この例において、変換は、実行可能とみなされ得る。このように、変換が選択され得る対象のサンプルセットおよび姿勢推定は、変換に基づいて決定され得る。たとえば、ロボット車両の姿勢は、選択されたサンプルセットに関連するインライアに基づいて推定され得る。また、サンプルセットに関連する任意のアウトライアは、誤検出に対応することが決定され得る。この例において、候補ランドマーク1120は、誤検出に対応することが決定され得る。
【0090】
[0111] 図11A〜11Dは、マップ化ランドマークに対応する候補ランドマークのみを含むサンプリングされたサブセットが、ロボットの姿勢を適切に表す変換をもたらし得ることを示す。図10A〜10Dは、任意のマップ化ランドマークから遠い誤検出がどのように変換の不適切性を示し、その結果、不良な姿勢推定をもたらし得るかを示したが、誤検出は、姿勢推定に関連する信頼水準の決定を支援するために用いられ得る。姿勢推定に関連する信頼水準を決定するために誤検出を用いる方法を説明する実施形態例を以下に示す。
【0091】
[0112] 図7に関して上述したように、信頼水準は、ロボット車両の各姿勢推定に関連してよい。信頼水準は、検出された候補ランドマークの変換および検出された候補ランドマークの総数に関連するインライアの数に基づいて決定され得る。たとえばこの例は、5つの候補ランドマークのうち4つのインライアを含む。その結果生じる姿勢推定の信頼水準は、候補ランドマークの総数に対するインライアの数の比に基づいてよい。この例において、1に近い比は、正確な姿勢推定の可能性が高いことを示す。逆に、0に近い比は、正確な姿勢推定の可能性が低いことを示す。他の例において、信頼水準は、アウトライアの数に対するインライアの数の比に基づいてよい。この例において、たとえば5など1より大きい比は、正確な姿勢推定の可能性が高いことを示し、1に近いまたは1未満の比は、正確な姿勢推定の可能性が低いことを示す。後述するように、信頼水準を測定する他の方法も可能である。
【0092】
[0113] いくつかの例において、姿勢推定信頼度は、精緻化姿勢推定を決定する際に考慮され得る。たとえば、高い姿勢推定信頼度を有する選択されサンプリングされたサブセットは、精緻化姿勢推定への一次寄与因子であってよい。低い姿勢推定信頼度を有する選択されサンプリングされたサブセットは、精緻化姿勢推定への二次寄与因子であってよい。たとえば、精緻化姿勢推定は、選択されたサンプルセットだけではなく車輪オドメトリに大きく由来し得る。このように、姿勢推定の完了は、カルマンフィルタリングを想起させ得る。
【0093】
[0114] 図12A図12B図12C、および図12Dは、実施形態例に係る、誤検出のマッピングを示す。誤検出のマッピングは、姿勢推定に関連する信頼水準を決定するために、誤検出に対応することが決定された候補ランドマークを使用することを支援し得る。
【0094】
[0115] 図12Aは、実施形態例に係る、ロボット車両の環境を示す。環境は、たとえばランドマーク1202、1204、1206、および1208などの複数のランドマークを含んでよい。ランドマークは、たとえば環境内の障害物などの特徴に配置され得る。実施形態例において、環境は、上述したような倉庫環境であってよい。そのような環境は、複数の障害物を含んでよく、ランドマークは、障害物のいくつかに配置され得る。上述したように、いくつかの例において、ランドマークは、光源の方へ光を反射するように構成された再帰反射マーカを含んでよい。そのような例において、ロボットは、ロボットの周囲のエリアに光を放出するように構成された光測距および検出(LIDAR)ユニットを含んでよい。そのような例において、LIDARデバイスは光信号を発し、放出された光の経路に垂直な反射源がロボット車両上の1または複数のセンサへ信号を反射し得るので、反射表面は、誤検出の発生源になり得る。この例において、そのような反射表面は、表面1210と示される。以下の説明は一般に、再帰反射および反射表面に当てはまるが、そのような環境は追加または代替として、たとえば環境の特に着色された領域、環境内のエッジの特定の配置、または環境内に設けられたクイックレスポンス(QR)コードマーカなどの、他の種類のランドマークを含んでよいことが容易に理解されるべきである。そのようなランドマークの各種類は、対応する種類の誤検出源に関連し得る。他の種類のランドマークおよび誤検出源も可能である。
【0095】
[0116] 図12Bは、実施形態例に係る、複数の検出を行ったロボット車両を示す。ロボットの姿勢推定の生成は、ロボット車両1200の1または複数のセンサによって検出された信号に更に依存してよい。一例において、信号は、候補ランドマーク1212、1214、1216、1218、および1220に関連してよい。図9に関して上述したように、候補ランドマークの位置は、車両に対して決定され得る。
【0096】
[0117] この例において、候補ランドマーク1212、1214、1216、および1218は、それぞれランドマーク1202、1204、1206、および1208に対応してよい。また、候補ランドマーク1220は、反射表面1210による誤検出に対応してよい。したがって反射表面1210は、誤検出源と称され得る。どの候補ランドマークがランドマークに対応し、どの候補ランドマークが誤検出に対応するかの決定は、処理を必要とし得る。候補ランドマークのみを検出することは、ロボット車両が環境内のどこにあるかを確定するものではないことを示すために、図12Bに示すようなロボット車両1200の姿勢は任意のものであることを理解すべきである。
【0097】
[0118] 図12Cは、実施形態例に係る、ロボット車両のマップ化環境を示す。この例において、検出されたランドマーク1212、1214、1216、および1218は、マップ化ランドマーク1202、1204、1206、および1208の表現と位置合わせされる。候補ランドマークとマップ化ランドマークとの位置合わせは、図10A〜Dおよび図11A〜Dに関して上述したように、変換によって実行され得る。この例において、候補ランドマーク1212、1214、1216、および1218はインライアであると決定され、候補ランドマーク1220はアウトライアであると決定され得る。したがって、候補ランドマーク1212、1214、1216、および1218は、ロボット車両1200の姿勢を推定するために用いられ得る。
【0098】
[0119] 図12Cの説明は、検出された候補ランドマークのどれがマップ化ランドマークに対応し、どれが誤検出に対応するかの決定の一例を説明するものにすぎず、他のそのような方法も可能である。たとえば、検出された候補ランドマークに対応するデータの追加のフィルタリング、二値化、または統計分析が、この決定を行うことを支援してよい。このように、どの候補ランドマークがマップ化ランドマークに対応し、どの候補ランドマークが誤検出に対応するかを決定する任意の方法が、本開示の目的のために用いられ得る。
【0099】
[0120] 図12Dは、実施形態例に係る、誤検出のインジケーションを含む、ロボット車両の環境の更新されたマップを示す。図12Cに関して上述したように、候補ランドマークをマップ上で位置合わせするためにそれらを変換すると、ロボット車両またはロボット車両に関連するコンピューティングシステムは、誤検出源位置1220のインジケーションを含むように環境のマップを更新してよい。この例において、インジケーション1220は、「X」として提示されるが、誤検出の任意のインジケーションが可能である。たとえば、環境のマップは単純に、たとえば非一時的コンピュータ可読媒体などのコンピュータ可読媒体に格納され得るので、インジケーションは単純に、誤検出を表現するマップに関連するデータ構造における特徴の形式であってよい。誤検出源インジケーション1220は、誤検出源領域に対応してよい。この例において、単一の誤検出および単一の検出源インジケーション1220のみが提供されるが、いくつかの誤検出が決定されてよく、これらの誤検出は1または複数の誤検出源領域に対応し得ることを理解すべきである。
【0100】
[0121] 図13は、実施形態例に係る、センサデータを取得するためにロボット車両の環境内を通行するロボット車両を示す。図12Dは、ロボット車両におけるセンサデータから単一の誤検出が決定された環境のマップの例を示す。しかしロボット車両は、追加のセンサデータを取得し、環境のマップの更新に用いるための追加の誤検出を決定するために、環境内を通行してよい。実施形態例において、ロボット車両1302は、経路1304に沿ってロボット車両の環境1300内を通行してよい。ロボット車両は、たとえば図12Aに関して上述した反射表面などの誤検出源1308を通過すると、環境内の候補ランドマークのサブセットを連続的に検出し、候補ランドマークのどれがマップ化ランドマーク1306に対応し、どれが誤検出に対応するかを決定してよい。誤検出が決定されると、ロボット車両またはコンピューティングシステムは、誤検出のインジケーションを含むようにマップを更新してよい。特に、マップは、誤検出源位置のインジケーションを提供するように更新され得る。上述したようにロボット車両の姿勢を推定するために候補ランドマークが用いられる場合、ロボット車両またはコンピューティングデバイスは、ロボット車両が環境内を通行すると同時にマップを更新してよい。他の例において、ロボット車両1302が環境1300内を通行した後でマップが更新されるように、誤検出を表現するデータは、たとえば非一時的コンピュータ可読媒体などのコンピュータ可読媒体に格納され得る。また、いくつかの例において、そのようなデータは、複数のロボット車両に結合されたセンサから得られてよい。ロボット車両がタスクを実行し、または環境1300内を通行すると、各々が同様のセンサデータをとってよい。これらの例において、各ロボット車両は、マップを個々に更新してよく、あるいは、マップを更新する時にそのようなデータ全てを考慮する中央データリポジトリへデータを提供してよい。たとえば、ロボット車両に通信可能に結合された中央コントローラユニットは、環境内の任意のロボット車両によって用いるためのマップを提供してよく、ロボット車両によって取得されたセンサデータに基づいてマップの更新も提供してよい。
【0101】
[0122] 図14は、実施形態例に係る、誤検出源領域を含むように生成された、ロボット車両の環境のマップを示す。図12Dおよび図3に関して上述したように、1または複数のロボット車両は、ロボット車両の環境内を通行し、センサデータを取得してよい。センサデータから、複数のランドマークおよび誤検出が検出され得る。マップ1400は、ランドマーク1402のインジケーションを含み、誤検出1404の発生源のインジケーションを含んでよい。このマップ1400は、図10A〜Dおよび図11A〜Dに関して上述したように、ロボット車両の姿勢を決定するために用いられ得る。また、マップは、各姿勢推定に関する姿勢推定信頼度を決定するために用いられ得る。この例において、マップ化誤検出源の各々は、個別の誤検出源領域に対応してよい。たとえば、各誤検出源は、誤検出源を取り囲む半径領域に関連してよく、半径領域内のエリアが、個々の誤検出源領域と考えられ得る。他の例において、各誤検出源は、表面1006に関連してよい。これらの例において、定められた数の誤検出源から距離閾値内にある各マップ化表面1006は、誤検出源領域と考えられ得る。誤検出源領域は、他の方法で決定されてもよい。
【0102】
[0123] 図15は、他の実施形態例に係る、誤検出源領域を含むように生成された、ロボット車両の環境の別のマップを示す。図11に関して上述したように、生成されたロボット車両の環境のマップは、誤検出源領域のインジケーションを含んでよい。生成されたマップ1500は、マップ化ランドマーク1502、誤検出源領域1504、および環境特徴1506のインジケーションを含む。この例において、誤検出源領域1504は、エリア単位の誤検出の数に基づいて決定される。いくつかの例において、誤検出源の数は、マップ1500の複数の領域について決定され得る。領域内の誤検出源の数が誤検出源領域閾値を満たすまたは超える場合、その領域は、誤検出源領域と考えられ得る。他の例において、上述したように、各誤検出源は、領域内の半径および対応エリアに関連してよい。2つ以上のそのようなエリアが重なった場合、それらは、単一の誤検出源領域1504を形成すると考えられ得る。
【0103】
[0124] 誤検出源領域1504はばらばらであって(すなわち、環境内の複数のエリアによって定められて)も、それらが単一の誤検出源領域であると考えられ得ることを理解すべきである。特に、マップ1500が、たとえば非一時的コンピュータ可読媒体などのコンピュータ可読媒体に格納されるシナリオにおいて、誤検出源領域に対応する環境の複数のエリアを含むマップが、単一の物体に関連してよい。あるいは、各そのような領域は、コンピュータ可読媒体に格納された様々な物体に関連してよい。誤検出源領域を定める他の方法も可能である。
【0104】
[0125] 図16は、他の実施形態例に係る、誤検出源領域を含むように生成されたロボット車両の環境のマップを示し、ここでロボットは、マップ上で利用可能なデータのいくつかのみを用いる。図7に関して上述したように、ロボット車両は、初期姿勢推定を有してよく、ロボット車両が、初期姿勢推定からどの程度の距離を通過したかを決定することを可能にするオドメトリデータを含んでよい。初期姿勢推定、および場合によってはオドメトリデータに基づいて、ロボット車両またはロボット車両に関連するコンピューティングシステムは、環境を示すセンサデータを決定する前に、環境内でのロボット車両の位置の概ねの認識を有してよい。環境のマップ1600が誤検出源領域1604を含む場合、ロボット車両は、誤検出源領域からデータを取得しないことを選択してよい。このように、ロボットが環境内を通行する間の任意の所与の地点において、誤検出源領域1604を含む環境の誤検出ゾーン1608が存在し得る。いくつかの例において、ロボット車両は、誤検出ゾーン1608からデータを取得してよいが、姿勢推定を決定する時にそれらを用いなくてよい。上述したように、誤検出は、検出された候補ランドマークと環境内のマップ化ランドマークとを関連付ける処理を妨げ得る。しかし、これらの例において、誤検出ゾーンから得たデータは、姿勢推定に関連する信頼水準を決定するために用いられ得る。
【0105】
[0126] 図17Aは、実施形態例に係る、姿勢信頼度決定シナリオにおける複数の検出されたランドマークおよび誤検出を示す。図10Dに関して上述したように、誤検出は、ロボット車両の姿勢の推定に悪影響を及ぼし得る。しかし、そのような誤検出は、たとえば環境マップに誤検出源領域を含むことによってマップ化される場合、誤検出は、ロボット車両の姿勢推定の信頼水準を決定するために用いられ得る。
【0106】
[0127] この例において、検出された候補ランドマーク1702、1706、1710、1714、1718、および1722は、環境マップと位置合わせされた。この例において、候補ランドマーク1702、1704、および1710は、それぞれマップ化ランドマーク1700、1704、および1708に対応することが決定され得る。逆に、候補ランドマーク1714、1718、および1722は、誤検出に対応することが決定され得る。この例において、これらの候補ランドマークの各々は、位置合わせされると、マップ化誤検出源領域内に含まれ得る。特に、候補ランドマーク1714、1718、および1722は、それぞれ誤検出源領域1712、1716、および1720内に含まれる。各誤検出が、誤検出を生み出すことが知られているマップ部分に含まれるので、ロボット車両またはコンピューティングシステムは、姿勢推定が正確であることを確信し得る。
【0107】
[0128] ロボット車両のマップが誤検出源領域を含む場合、誤検出は、環境内でロボット車両をナビゲートするために役立ち得る。これらの例において、姿勢推定の信頼水準は、誤検出源領域内に含まれることが決定された誤検出に更に基づいてよい。たとえば信頼水準は、マップ化ランドマークに対応すること、または誤検出源領域内に含まれることが決定された候補ランドマークと、検出された候補ランドマークの総数との比を含んでよい。この例において、1に近い比は、正確な姿勢推定の可能性が高いことを示す。逆に、0に近い比は、正確な姿勢推定の可能性が低いことを示す。誤検出源領域内に含まれる誤検出に基づいて姿勢推定の信頼水準を決定する他の方法も可能である。
【0108】
[0129] これらの例において、信頼水準は、ロボット車両の姿勢を推定する時に用いられてもよい。各サンプルセットは変換され、インライアおよびアウトライアを決定することに加えて、変換後の候補ランドマークのうちマップ化誤検出源領域内に存在するものがあるかが決定され得る。たとえば、変換後の候補ランドマークの各々がインライアに対応する、または誤検出源領域内に含まれる場合、サンプルセットは、姿勢推定を決定するために選択され得る。姿勢推定を決定するために変換後の候補ランドマークに関連する信頼水準を用いる他の方法も可能である。
【0109】
[0130] 図17Bは、他の実施形態例に係る、姿勢信頼度決定シナリオにおける複数の検出されたランドマークおよび誤検出を示す。図17Aにおける例とは対照的に、位置合わせされた候補ランドマーク1702、1706、1710、1718、1724、および1726は、全てがマップ化ランドマークに対応するか、または誤検出源領域内に含まれるわけではない。この例において、候補ランドマーク1724および1726は、マップ化されていない誤検出源から得られるので、姿勢推定の決定および姿勢推定に関連する信頼度の両方を損なう。したがって、これらの検出された候補ランドマークに基づく、姿勢推定に関連する信頼水準は、図17Aに関して計算された信頼水準よりも低くなり得る。
【0110】
[0131] 図18は、実施形態例に係る、環境内のロボット車両の姿勢および姿勢推定の信頼水準を決定するために用いられ得る方法のブロック図である。いくつかの例において、方法は、システムの一部として実行され得る。たとえば、ブロック1802は、非一時的コンピュータ可読媒体に格納されたプログラム命令を実行する1または複数のプロセッサとともにロボットの1または複数のセンサによって実行され得る。この例において、ロボットの1または複数のセンサは、複数の候補ランドマークから信号を受信してよく、実行されたプログラム命令は、複数の候補ランドマークを検出し、受信信号に基づいてロボットに関する候補ランドマークの位置を決定してよい。1または複数のプロセッサは、ブロック1800、1804、1806、1808、および1810に含まれる機能を実行するためにもプログラム命令を実行してよい。
【0111】
[0132] 他の例において、方法は、コンピューティングシステムの一部として実行され得る。これらの例において、非一時的コンピュータ可読媒体は、コンピューティングシステムに方法のブロックを実行させるために1または複数のプロセッサによって実行可能な命令を格納してよい。
【0112】
[0133] これらの例において、1または複数のプロセッサおよび非一時的コンピュータ可読媒体は、ブロックを遠隔的に実行してよい。他の例において、1または複数のプロセッサおよび非一時的コンピュータ可読媒体は、ロボット車両において方法を実行してよい。また他の例において、方法の一部は遠隔的に実行され、他の部分はロボット車両において実行され得る。
【0113】
[0134] 方法のブロック1800は、ロボット車両の環境のマップを決定するために実行されてよく、マップは、環境内の複数のマップ化ランドマークの位置および環境内の誤検出源領域を含む。マップは、環境内の1または複数のロボット車両上の1または複数のセンサによって取得されたセンサデータに基づいて決定され得る。センサデータは、誤検出を検出するために処理されてよく、マップは、誤検出の発生源を表す誤検出源領域を含むように更新され得る。
【0114】
[0135] 方法のブロック1802は、ロボット車両上のセンサからのセンサデータに基づいて複数の候補ランドマークを検出するために実行され得る。たとえば、ロボット車両上のセンサは、環境内の複数の信号源からの信号を受信してよく、どの受信信号が、候補ランドマーク信号強度閾値を満たすまたは超える信号強度を備えるかを決定する。
【0115】
[0136] 方法のブロック1804は、候補ランドマークのうちのどれが複数のマップ化ランドマークのうちの1つに対応し、どれが誤検出に対応するかを決定するために実行され得る。たとえば、候補ランドマークのサンプルセットを対応するマップ化ランドマークと位置合わせするために候補ランドマークに変換が適用され得る。変換後の候補ランドマークがどの程度マップ化ランドマークの近くに位置合わせされたかに基づいて、どの候補ランドマークがマップ化ランドマークに対応し、どの候補ランドマークが誤検出に対応するかが決定され得る。
【0116】
[0137] 方法のブロック1806は、複数のマップ化ランドマークのうちの1つに対応することが決定された、検出された候補ランドマークに基づいて、環境内のロボット車両の姿勢を推定するために実行され得る。
【0117】
[0138] 方法のブロック1808は、ロボット車両の推定された姿勢に基づいて、誤検出に対応することが決定された、検出された候補ランドマークのどれが、誤検出源領域内に含まれるかを決定するために実行され得る。たとえば、候補ランドマークの全てが、ロボットの姿勢を推定するために用いられるサンプルセットに基づいて、マップ上で位置合わせするために変換され得る。位置合わせされると、誤検出は、誤検出源領域の範囲内または範囲外に含まれ得る。
【0118】
[0139] 方法のブロック1810は、誤検出に対応することが決定された、検出された候補ランドマークのうちのどれが、誤検出源領域内に含まれるかに基づいて、姿勢推定の信頼水準を決定するために実行され得る。たとえば、候補ランドマークの総数が決定されてよく、姿勢推定の信頼水準の決定は、マップ化ランドマークに対応する、または誤検出源領域内に含まれる候補ランドマークの総数の割合に基づいてよい。
IV.他の位置測定実施形態
【0119】
[0140] 図6図18の詳細な説明は一般に、環境内の位置測定ロボット車両に関するが、そのような説明は例示目的で提供され、限定的なものと解釈すべきではないことを理解すべきである。たとえば、上述したものと同じシステムおよび方法は、環境内の手動操作車両を位置測定するために実装されてもよい。そのような位置測定は、人間のオペレータが、手動操作車両の現在姿勢推定のインジケーションを含む、手動操作車両上のディスプレイ用に提供された環境マップを見ることを可能にし得る。
【0120】
[0141] また、上述したシステムおよび方法は、たとえばマッピングセンサユニットなどの他のデバイスを位置測定するために実装されてもよい。マッピングセンサユニットは、環境をマッピングするために用いられるデータを生成するために環境内の複数の位置へ移動され得る。各位置において、センサユニットは、上述したシステムおよび方法を用いて位置測定され得る。そのようなデータは、環境マップを生成するために用いられ得る。
【0121】
[0142] 説明したシステムおよび方法は、環境内に配置された任意の数の車両、デバイス、またはセンサを位置測定するために実装され得ることが当業者には容易に理解されるべきである。
V.結論
【0122】
[0143] 本開示は、様々な態様の例示として意図される、本出願において説明された特定の実施形態に関して限定されるものではない。当業者には明らかであるように、本開示の主旨および範囲から逸脱することなく多数の修正例および変形例が生み出され得る。本開示の範囲内である機能的に同等の方法および装置は、本明細書に列挙されたものに加えて、上記説明から当業者には明らかである。そのような修正例および変形例は、添付のクレームの範囲内に含まれることが意図される。
【0123】
[0144] 上述した説明は、添付図面を参照して開示されたシステム、デバイス、および方法の様々な特徴および機能を説明するものである。図面において、類似の記号は一般に、文脈が特に指示しない限り、類似の構成要素を識別する。本明細書および図面において説明された実施形態例は、限定的であることが意図されない。本明細書に提示された主題事項の主旨または範囲から逸脱することなく、他の実施形態が利用され、他の変更例が生み出されてよい。本開示の態様は、本明細書で一般に説明され、図面に示されるように、異なる様々な構成で配置、代替、結合、分離、および設計されてよく、それら全てが本明細書において明確に考慮されることが容易に理解される。
【0124】
[0145] 情報の処理を表すブロックは、本明細書で説明された方法または技術の特定の論理機能を実行するように構成され得る回路に対応してよい。代替または追加として、情報の処理を表すブロックは、モジュール、セグメント、または(関連データを含む)プログラムコードの一部に対応してもよい。プログラムコードは、方法または技術における特定の論理機能または行動を実行するためにプロセッサによって実行可能な1または複数の命令を含んでよい。プログラムコードおよび/または関連データは、たとえばディスクまたはハードドライブを含むストレージデバイスまたは他の記憶媒体などの任意の種類のコンピュータ可読媒体に格納され得る。
【0125】
[0146] コンピュータ可読媒体は、たとえばレジスタメモリ、プロセッサキャッシュ、およびランダムアクセスメモリ(RAM)といった短期間データを格納するコンピュータ可読媒体などの非一時的コンピュータ可読媒体も含んでよい。コンピュータ可読媒体は、たとえば読み取り専用メモリ(ROM)、光または磁気ディスク、コンパクトディスク読み取り専用メモリ(CD‐ROM)といった二次または持続性長期間ストレージなど、より長い期間プログラムコードおよび/またはデータを格納する非一時的コンピュータ可読媒体も含んでよい。コンピュータ可読媒体は、他の任意の揮発性または不揮発性ストレージシステムであってもよい。コンピュータ可読媒体は、たとえばコンピュータ可読記憶媒体、または有形ストレージデバイスと考えられ得る。
【0126】
[0147] また、1または複数の情報伝送を表すブロックは、同じ物理デバイス内のソフトウェアおよび/またはハードウェアモジュール間の情報伝送に対応してよい。ただし、他の情報伝送は、様々な物理デバイスにおけるソフトウェアモジュールおよび/またはハードウェアモジュール間であってよい。
【0127】
[0148] 図に示す特定の配置は、限定的なものとみなされてはならない。他の実施形態は、所与の図に示される各要素より多いまたは少ない要素を含んでよいことを理解すべきである。また、図示された要素のいくつかは、結合され、または省かれ得る。更に、実施形態例は、図に示されない要素を含んでよい。
【0128】
[0149] 様々な態様および実施形態が本明細書に開示されたが、他の態様および実施形態が当業者には明らかである。本明細書に開示された様々な態様および実施形態は例示を目的としており、限定的であることは意図されず、適正な範囲は、以下のクレームによって示される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図10C
図10D
図11A
図11B
図11C
図11D
図12A
図12B
図12C
図12D
図13
図14
図15
図16
図17A
図17B
図18