(57)【特許請求の範囲】
【請求項１】
現在ポーズから目標ポーズにロボットをナビゲートするための方法であって、
ロボットのナビゲーション用のエリア内の障害物及び自由空間を表すマップを受信するステップと、
前記受信したマップに基づいて、最高解像度のマッチング・マップ及び順次低下する解像度で間引かれたマッチング・マップのセットを含むマッチング・マップ・ピラミッドを構築するステップと、
前記受信したマップに基づいて、最高解像度の除外マップ及び順次低下する解像度で間引かれた除外マップのセットを含む除外マップ・ピラミッドを構築するステップと、
ロボットを目標経路に沿ってその現在位置から目標ポーズにナビゲートするための前記目標ポーズを受信するステップと、
前記ロボットの現在位置で前記ロボットに近接する障害物を表す点群を含むレーザ・レーダ・スキャンを受信するステップと、
前記ロボットの前記現在ポーズを見出すステップと、
前記ロボットを前記目標ポーズの方向で前記目標経路上の次のポーズに移動させるステップと
を含み、
前記ロボットの前記現在ポーズを見出すステップが、
前記受信したマップ内の検索エリアを決定すること、
前記マッチング・マップ・ピラミッドの１つ又は複数の解像度で候補ポーズを表すタスクを含む検索ヒープを作成すること、及び
前記検索ヒープ上で前記検索タスクをスコア化して最良の候補ポーズを決定することを含み、前記最良の候補ポーズが前記最高解像度のマッチング・マップにある場合、前記ポーズが前記現在ポーズとして選択され、前記最良の候補ポーズが前記最高解像度のマッチング・マップにない場合、前記検索ヒープが次に最高の解像度のマッチング・マップの前記最良の候補ポーズに基づいて拡張され、前記検索ヒープが、前記次に最高の解像度の除外マップにおいて除外マップの除外区域内で前記ロボットを位置特定することになる候補ポーズを伴う検索タスクで拡張されない、方法。
【請求項２】
前記受信したマップが、同時位置特定及びマッピング（ＳＬＡＭ）マップを含む、請求項１に記載の方法。
【請求項３】
前記検索ヒープを作成すること、及び前記検索タスクをスコア化することが、多対多マルチ解像度スキャン・マッチング（Ｍ３ＲＳＭ）によって実行される、請求項１に記載の方法。
【請求項４】
前記最高解像度のマッチング・マップを構築するステップが、２次減衰畳み込みフィルタによって障害物のサイズを増大させることを含む、請求項１に記載の方法。
【請求項５】
前記最高解像度の除外マップを構築するステップが、前記ロボットの半径に基づいて障害物のサイズを増大させることを含む、請求項１に記載の方法。
【請求項６】
前記マッチング・マップ・ピラミッドのそれぞれ順次低下する解像度を構築するための前記間引きが、前記次に高い解像度のマッチング・マップ内での前記スキャン・マッチのスコア化を高く見積もる、請求項１に記載の方法。
【請求項７】
前記除外マップ・ピラミッドのそれぞれ順次低下する解像度を構築するための前記間引きが、前記次に高い解像度の除外マップ内での前記除外区域を小さく見積もる、請求項１に記載の方法。
【請求項８】
低解像度の除外マップでの除外区域を前記小さく見積もること、及び除外区域内で位置特定される検索タスクを前記拡張しないことが、前記除外ピラミッドの高解像度での除外区域内の検索タスクを作成することも防止する、請求項７に記載の方法。
【請求項９】
前記除外区域によって定義される前記障害物が、壁、棚、梁、ビン、及び充電ステーションを含むがこれらに限定されないグループから選択される、請求項８に記載の方法。
【請求項１０】
レーザ・レーダ・スキャナと、
トランシーバと、
データ・ストレージ・デバイスと、
データ・プロセッサ及び前記データ・プロセッサによる実行のための記憶された命令を有するデータ・ストレージ・デバイスとを含む、ロボット・システムであって、前記命令が、
ロボットのナビゲーション用のエリア内の障害物及び自由空間を表すマップを受信し、
前記受信したマップに基づいて、最高解像度のマッチング・マップ及び順次低下する解像度で間引かれたマッチング・マップのセットを含むマッチング・マップ・ピラミッドを構築し、
前記受信したマップに基づいて、最高解像度の除外マップ及び順次低下する解像度で間引かれた除外マップのセットを含む除外マップ・ピラミッドを構築し、
ロボットを目標経路に沿ってその現在位置から目標ポーズにナビゲートするための前記目標ポーズを受信し、
前記ロボットの現在位置で前記ロボットに近接する障害物を表す点群を含むレーザ・レーダ・スキャンを受信し、
前記ロボットの前記現在ポーズを見出し、
前記ロボットを前記目標ポーズの方向で前記目標経路上の次のポーズに移動させるためのものであり、
前記ロボットの前記現在ポーズを見出すことが、
前記受信したマップ内の検索エリアを決定すること、
前記マッチング・マップ・ピラミッドの１つ又は複数の解像度で候補ポーズを表すタスクを含む検索ヒープを作成すること、及び
前記検索ヒープ上で前記検索タスクをスコア化して最良の候補ポーズを決定することを含み、前記最良の候補ポーズが前記最高解像度のマッチング・マップにある場合、前記ポーズが前記現在ポーズとして選択され、前記最良の候補ポーズが前記最高解像度のマッチング・マップにない場合、前記検索ヒープが次に最高の解像度のマッチング・マップの前記最良の候補ポーズに基づいて拡張され、前記検索ヒープが、前記次に最高の解像度の除外マップにおいて除外マップの除外区域内で前記ロボットを位置特定することになる候補ポーズを伴う検索タスクで拡張されない、ロボット・システム。
【請求項１１】
前記受信したマップが、同時位置特定及びマッピング（ＳＬＡＭ）マップを含む、請求項１０に記載のシステム。
【請求項１２】
前記検索ヒープを作成すること、及び前記検索タスクをスコア化することが、多対多マルチ解像度スキャン・マッチング（Ｍ３ＲＳＭ）によって実行される、請求項１０に記載のシステム。
【請求項１３】
前記最高解像度のマッチング・マップを構築することが、２次減衰畳み込みフィルタによって障害物のサイズを増大させることを含む、請求項１０に記載のシステム。
【請求項１４】
前記最高解像度の除外マップを構築することが、前記ロボットの半径に基づいて障害物のサイズを増大させることを含む、請求項１０に記載のシステム。
【請求項１５】
前記マッチング・マップ・ピラミッドのそれぞれ順次低下する解像度を構築するための前記間引きが、前記次に高い解像度のマッチング・マップ内での前記スキャン・マッチのスコア化を高く見積もる、請求項１０に記載のシステム。
【請求項１６】
前記除外マップ・ピラミッドのそれぞれ順次低下する解像度を構築するための前記間引きが、前記次に高い解像度の除外マップ内での前記除外区域を小さく見積もる、請求項１０に記載のシステム。
【請求項１７】
低解像度の除外マップでの除外区域を前記小さく見積もること、及び除外区域内で位置特定される検索タスクを前記拡張しないことが、前記除外ピラミッドの高解像度での除外区域内の検索タスクを作成することも防止する、請求項１６に記載のシステム。
【請求項１８】
前記除外区域によって定義される前記障害物が、壁、棚、梁、ビン、及び充電ステーションを含むがこれらに限定されないグループから選択される、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その両方が参照により本明細書に組み込まれる、２０１７年９月２２日に出願した「ＤＹＮＡＭＩＣ  ＷＩＮＤＯＷ  ＡＰＰＲＯＡＣＨ  ＵＳＩＮＧ  ＯＰＴＩＭＡＬ  ＲＥＣＥＩＰＲＯＣＡＬ  ＣＯＬＬＩＳＯＮ  ＡＶＯＩＣＡＮＣＥ  ＣＯＳＴ−ＣＲＩＴＩＣ」という名称の米国出願第１５／７１２，２５６号に関連する２０１７年９月２７日に出願した米国出願第１５／７１２，２２２号の優先日の利益を主張するものである。
【０００２】
本明細書に記載の本発明は、一般に、障害物を含む次元空間の空間表現を用いたロボットのターゲット位置へのナビゲーションに関する。詳細には、本発明は、注文履行倉庫を運用して製品の注文を履行する又はその履行を支援する自律型ロボット又は半自律型ロボットのポーズを決定する改善された方法である。
【背景技術】
【０００３】
多くの用途において、生産性及び効率を高めるために、人間の代わりに機能を実行するための、又は人間を支援するためのロボットが使用される。そのような用途の１つは注文履行であり、これは、典型的には、宅配のためにインターネットを通じて注文した顧客に出荷される製品で満たされた大型倉庫で実行される。そのような注文を適時、正確、且つ効率的な方法で履行することは、控えめに言っても物流上の難問である。
【０００４】
例えば、オンラインのインターネット・ショッピングの用途では、仮想ショッピング・カート内の「清算」ボタンをクリックすると、「注文」が作成される。注文は、特定の住所に出荷される物品のリストを含む。「履行」のプロセスは、これらの物品を大型倉庫から物理的に取ること又は「ピッキング」、それらを梱包すること、及びそれらを指定された住所に出荷することを含む。
【０００５】
したがって、注文履行プロセスの重要な目標は、できるだけ多くの物品をできるだけ短時間で出荷することである。注文を受け、その履行を計画し、保管棚又はビンを見つけ、製品をピックし、注文中の物品ごとにこのプロセスを繰り返し、その後、注文品を出荷ステーションに配送するというプロセスは、反復的で労働集約的である。急速に在庫が変化する何千又は何万もの物品が保管されている倉庫において、ロボットは、適時で効率的な注文履行を確保する上で重要な役割を果たす。さらに、最終的に出荷されることになる製品は、最初に倉庫内に受け入れられ、出荷のために容易に取り出せるように倉庫全体にわたって規則的な方法で保管ビンに保管又は「配置」される必要がある。
【０００６】
ロボットを使用してピッキング及び配置の機能を実行することは、ロボット単独で、又は人間の作業者の支援と共に実施される。人間が介在して実行されるかどうかに関わりなく、ピッキング及び配置又は保管の機能は、ロボットがその現在位置からターゲットの製品保管場所又は「ビン」位置にナビゲートする必要がある。ロボットは、通常、現在位置から製品保管ビンまでのロボットの目標経路に沿って、壁、棚、支持構造、人間、及び他のロボットなどの静止障害物及び移動障害物に遭遇する。新しい製品が保管されるとき及び在庫がなくなるとき、新しい棚及びビンが追加及び撤去されるとき、並びに多種多様な物体が共有の人間とロボットの空間に導入されるとき、注文履行倉庫の動的な性質上、倉庫及びその内容に関する情報を常に更新する必要がある。
【０００７】
注文履行倉庫でのロボットによるナビゲーションの１つの方法は、ロボットによってローカルに格納及び更新された倉庫の空間モデル又は「マップ」を利用して、ロボットがロボットに割り当てられた注文履行タスクを実行するときに自律的又は半自律的に動作できるようにする。マップは、倉庫、その保管場所、障害物、及び他の特徴のデジタル表現である。静止障害物及び動的障害物の存在下で製品ビンに到達するために、ロボットはマップ上で処理動作を実行してその現在位置を特定し、その移動を目標経路に沿って継続的に再較正する。
【０００８】
このようなマップを作成及び維持するために、例えば、ロボットが倉庫の至る所をナビゲートするときに、ローカル・レーザ・スキャン又はロボット上のセンサからの撮像などを用いる様々な技法が使用され得る。通常、ロボットのマッピング・アプリケーションでのマップの更新は、同時マッピング及び位置特定（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｍａｐｐｉｎｇ  ａｎｄ  Ｌｏｃａｔｉｏｎ）、すなわち「ＳＬＡＭ」を使用して実現される。名前が示すように、ＳＬＡＭはロボットの現在位置を見出すと同時にそのマップを更新する。しかしながら、ＳＬＡＭは、ロボットの障害物検知、ロボット制御及び位置検知、並びにマッピング・プロセス自体における不確実性に起因してエラーを引き起こしやすい。このようなエラーを防止するための従来の方法は、計算コストがかかる。
【０００９】
必要とされるのは、ＳＬＡＭマップを使用してポーズを決定するための計算時間を削減し、それにより、目標経路に沿ったロボットのナビゲーションを改善するための計算効率の高い方法である。このような効率化により、製品の保管ビンへのナビゲーションがより速く、より円滑になり、注文履行倉庫の全体的なスループットが向上する。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】Ｆｒｅｓｅ，Ｕ．、Ｗａｇｎｅｒ，Ｒ．、Ｒｏｆｅｒ，Ｔ．、「Ａ  ＳＬＡＭ  ｏｖｅｒｖｉｅｗ  ｆｒｏｍ  ａ  ｕｓｅｒ’ｓ  ｐｅｒｓｐｅｃｔｉｖｅ」、Ｋｕｎｓｔｌｉｃｈｅ  Ｉｎｔｅｌｌｉｇｅｎｚ  ２４（３）、１９１〜１９８頁（２０１０）
【非特許文献２】Ｂｅｒｔｈｏｌｄ  Ｋ．Ｐ．Ｈｏｒｎ、「Ｃｌｏｓｅｄ−ｆｏｒｍ  ｓｏｌｕｔｉｏｎ  ｏｆ  ａｂｓｏｌｕｔｅ  ｏｒｉｅｎｔａｔｉｏｎ  ｕｓｉｎｇ  ｕｎｉｔ  ｑｕａｔｅｒｎｉｏｎｓ」、Ｊｏｕｒｎａｌ  ｏｆ  ｔｈｅ  Ｏｐｔｉｃａｌ  Ｓｏｃｉｅｔｙ  ｏｆ  Ａｍｅｒｉｃａ、４（４）、１９８７年４月、６２９〜６４２頁
【非特許文献３】Ｄ．Ｆｏｘ、Ｗ．Ｂｕｒｇａｒｄ及びＳ．Ｔｈｒｕｎ、「Ｔｈｅ  Ｄｙｎａｍｉｃ  Ｗｉｎｄｏｗ  Ａｐｐｒｏａｃｈ  ｔｏ  Ｃｏｌｌｉｓｉｏｎ  Ａｖｏｉｄａｎｃｅ」、Ｒｏｂｏｔｉｃｓ＆Ａｕｔｏｍａｔｉｏｎ  Ｍａｇａｚｉｎｅ、ＩＥＥＥ、ｖｏｌ．４、ｎｏ．１．（１９９７年３月）、２３〜３３頁
【非特許文献４】Ｊｕｒ  ｖａｎ  ｄｅｎ  Ｂｅｒｇ、Ｓｔｅｐｈｅｎ  Ｊ．Ｇｕｙ、Ｍｉｎｇ  Ｌｉｎ及びＤｉｎｅｓｈ  Ｍａｎｏｃｈａ、「Ｒｅｃｉｐｒｏｃａｌ  ｎ−ｂｏｄｙ  ｃｏｌｌｉｓｉｏｎ  ａｖｏｉｄａｎｃｅ」、Ｒｏｂｏｔｉｃｓ  Ｒｅｓｅａｒｃｈ：Ｔｈｅ  １４ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ＩＳＲＲ、Ｃｅｄｒｉｃ  Ｐｒａｄａｌｉｅｒ、Ｒｏｌａｎｄ  Ｓｉｅｇｗａｒｔ及びＧｅｒｈａｒｄ  Ｈｉｒｚｉｎｇｅｒ（編）、Ｓｐｒｉｎｇｅｒ  Ｔｒａｃｔｓ  ｉｎ  Ａｄｖａｎｃｅｄ  Ｒｏｂｏｔｉｃｓ、Ｖｏｌ．７０、Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ、２０１１年５月、３〜１９頁
【非特許文献５】Ｓｅｂａｓｔｉａｎ  Ｔｈｒｕｎ、「Ｒｏｂｏｔｉｃ  Ｍａｐｐｉｎｇ：Ａ  Ｓｕｒｖｅｙ」、Ｃａｒｎｅｇｉｅ−Ｍｅｌｌｏｎ  Ｕｎｉｖｅｒｓｉｔｙ、ＣＭＵ−ＣＳ−０２−１１１、２００２年２月
【非特許文献６】Ｅｄｗｉｎ  Ｂ．Ｏｌｓｏｎ、「Ｒｅａｌ−Ｔｉｍｅ  Ｃｏｒｒｅｌａｔｉｖｅ  Ｓｃａｎ  Ｍａｔｃｈｉｎｇ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００９  ＩＥＥＥ  ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｒｏｂｏｔｉｃｓ  ａｎｄ  Ａｕｔｏｍａｔｉｏｎ（ＩＣＲＡ’０９）、ＩＥＥＥ  Ｐｒｅｓｓ、Ｐｉｓｃａｔａｗａｙ、ＮＪ、ＵＳＡ、２００９年、１２３３〜１２３９頁
【非特許文献７】Ｅｄｗｉｎ  Ｏｌｓｏｎ、「Ｍ３ＲＳＭ：Ｍａｎｙ−ｔｏ−ｍａｎｙ  ｍｕｌｔｉ−ｒｅｓｏｌｕｔｉｏｎ  ｓｃａｎ  ｍａｔｃｈｉｎｇ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｒｏｂｏｔｉｃｓ  ａｎｄ  Ａｕｔｏｍａｔｉｏｎ（ＩＣＲＡ）、２０１５年６月
【発明の概要】
【課題を解決するための手段】
【００１１】
既存のシステムを超える本発明の利益及び利点は、以下の発明の概要及び発明を実施するための形態から容易に明らかになるであろう。当業者は、本教示が、以下に要約又は開示されたもの以外の実施例で実現され得ることを理解するであろう。
【００１２】
本発明の一態様には、ロボットを現在ポーズから目標ポーズにナビゲートするための方法がある。方法は、ロボットのナビゲーション用のエリア内の障害物及び自由空間を表すマップを受信するステップと、受信したマップに基づいて、最高解像度のマッチング・マップ及び順次低下する解像度で間引かれたマッチング・マップのセットを含むマッチング・マップ・ピラミッドを構築するステップと、受信したマップに基づいて、最高解像度の除外マップ及び順次低下する解像度で間引かれた除外マップのセットを含む除外マップ・ピラミッドを構築するステップとを含む。方法は、受信及び構築すると、ロボットを目標経路に沿ってその現在位置から目標ポーズにナビゲートするための目標ポーズを受信するステップと、ロボットの現在位置でロボットに近接する障害物を表す点群を含むレーザ・レーダ・スキャンを受信するステップと、ロボットの現在ポーズを見出すステップとをさらに含む。ロボットは、ロボットの現在ポーズを見出すと、目標ポーズの方向で目標経路上の次のポーズに移動され得る。
【００１３】
好ましい実施例では、ロボットの現在ポーズを見出すステップは、受信したマップ内の検索エリアを決定すること、マッチング・マップ・ピラミッドの１つ又は複数の解像度で候補ポーズを表すタスクを含む検索ヒープを作成すること、及び検索ヒープ上で検索タスクをスコア化して最良の候補ポーズを決定することを含み、その結果、最良の候補ポーズが最高解像度のマッチング・マップにある場合、ポーズは、現在ポーズとして選択され、最良の候補ポーズが最高解像度のマッチング・マップにない場合、検索ヒープは、次に最高の解像度のマッチング・マップでの最良の候補ポーズに基づいて拡張され、又はその結果、検索ヒープは、次に最高の解像度の除外マップにおいて除外マップの除外区域内でロボットを位置特定することになる候補ポーズを伴う検索タスクで拡張されない。
【００１４】
いくつかの実施例では、方法は、同時位置特定及びマッピング（ＳＬＡＭ）マップを受信することを含み得る。方法は、検索ヒープを作成することをさらに含む場合があり、検索タスクのスコア化は、多対多マルチ解像度スキャン・マッチング（Ｍ３ＲＳＭ）によって実行される。方法は、２次減衰畳み込みフィルタによって障害物のサイズを増大させることによって、最高解像度のマッチング・マップを構築することを含み得る。方法は、ロボットの半径に基づいて障害物のサイズを増大させることによって、最高解像度の除外マップを構築することを含み得る。
【００１５】
方法のさらなる態様は、次に高い解像度のマッチング・マップ内でのスキャン・マッチのスコア化を高く見積もることによってマッチング・マップ・ピラミッドのそれぞれ順次低下する解像度を構築するために間引くことを含み得る。除外マップ・ピラミッドのそれぞれ順次低下する解像度を構築するために間引くことにより、次に高い解像度の除外マップ内の除外区域を小さく見積もることができる。有利なことに、低解像度の除外マップで除外区域を小さく見積もること、及び除外区域内で位置特定される検索タスクを拡張しないことにより、除外ピラミッドの高解像度での除外区域内の検索タスクを作成することを防止することができる。除外区域によって定義される障害物は、壁、棚、梁、ビン、及び充電ステーションを含むがこれらに限定されないグループから選択され得る。
【００１６】
本発明の一態様には、ロボットを現在ポーズから目標ポーズにナビゲートするためのシステムがある。システムは、レーザ・レーダ・スキャナと、トランシーバと、データ・ストレージ・デバイスと、データ・プロセッサ及びデータ・プロセッサによる実行のための記憶された命令を有するデータ・ストレージ・デバイスとを含み得る。データ・ストレージ・デバイス上に格納された命令によって、ロボットのプロセッサは、ロボットのナビゲーション用のエリア内の障害物及び自由空間を表すマップを受信し、受信したマップに基づいて、最高解像度のマッチング・マップ及び順次低下する解像度で間引かれたマッチング・マップのセットを含むマッチング・マップ・ピラミッドを構築し、受信したマップに基づいて、最高解像度の除外マップ及び順次低下する解像度で間引かれた除外マップのセットを含む除外マップ・ピラミッドを構築する。命令は、受信及び構築すると、ロボットを目標経路に沿ってその現在位置から目標ポーズにナビゲートするための目標ポーズを受信すること、ロボットの現在位置でロボットに近接する障害物を表す点群を含むレーザ・レーダ・スキャンを受信すること、ロボットの現在ポーズを見出すことをさらに含む。ロボットの現在ポーズを見出すと、命令によって、ロボットは、目標ポーズの方向で目標経路上の次のポーズに移動され得る。
【００１７】
好ましい実施例では、ロボットの現在ポーズを見出すステップは、受信したマップ内の検索エリアを決定すること、マッチング・マップ・ピラミッドの１つ又は複数の解像度で候補ポーズを表すタスクを含む検索ヒープを作成すること、及び検索ヒープ上で検索タスクをスコア化して最良の候補ポーズを決定することを含み、その結果、最良の候補ポーズが最高解像度のマッチング・マップにある場合、ポーズは、現在ポーズとして選択され、最良の候補ポーズが最高解像度のマッチング・マップにない場合、検索ヒープは、次に最高の解像度のマッチング・マップでの最良の候補ポーズに基づいて拡張され、又はその結果、検索ヒープは、次に最高の解像度の除外マップにおいて除外マップの除外区域内でロボットを位置特定することになる候補ポーズを伴う検索タスクで拡張されない。
【００１８】
いくつかの実施例では、システムは、同時位置特定及びマッピング（ＳＬＡＭ）マップを受信することを含み得る。システムは、検索ヒープを作成することをさらに含み、検索タスクのスコア化は、多対多マルチ解像度スキャン・マッチング（Ｍ３ＲＳＭ）によって実行される。方法は、２次減衰畳み込みフィルタによって障害物のサイズを増大させることによって、最高解像度のマッチング・マップを構築することを含み得る。システムは、ロボットの半径に基づいて障害物のサイズを増大させることによって、最高解像度の除外マップを構築することを含み得る。
【００１９】
システムのさらなる態様は、次に高い解像度のマッチング・マップ内でのスキャン・マッチのスコア化を高く見積もることによってマッチング・マップ・ピラミッドのそれぞれ順次低下する解像度を構築するために間引くことを含み得る。除外マップ・ピラミッドのそれぞれ順次低下する解像度を構築するために間引くことにより、次に高い解像度の除外マップ内での除外区域を小さく見積もることができる。有利なことに、低解像度の除外マップでの除外区域を小さく見積もること、及び除外区域内で位置特定される検索タスクを拡張しないことにより、除外ピラミッドの高解像度での除外区域内の検索タスクを作成することを防止することができる。除外区域によって定義される障害物は、壁、棚、梁、ビン、及び充電ステーションを含むがこれらに限定されないグループから選択され得る。
【００２０】
本発明のこれらの特徴及び他の特徴は、以下の詳細な説明及び添付の図面から明らかになるであろう。
【００２１】
次に、本発明の実施例を、添付の図面を参照して例としてのみ説明する。
【図面の簡単な説明】
【００２２】
【図１】注文履行倉庫の上面図である。
【図２Ａ】図１に示す倉庫内で使用されるロボットのうちの１つのベースの正面図である。
【図２Ｂ】図１に示す倉庫内で使用されるロボットのうちの１つのベースの斜視図である。
【図３】アーマチュアが装備され、図１に示す棚の前に駐機された、図２Ａ及び図２Ｂのロボットの斜視図である。
【図４】ロボット上のレーザ・レーダを使用して作成された図１の倉庫の部分マップである。
【図５】倉庫全体にわたって分散された基準マーカの位置を特定し、基準マーカのポーズを記憶するためのプロセスを示すフローチャートである。
【図６】基準識別情報とポーズとのマッピングの表である。
【図７】ビン位置と基準識別情報とのマッピングの表である。
【図８】製品ＳＫＵとポーズとのマッピング・プロセスを示すフローチャートである。
【図９】本発明の方法及びシステムで使用するためのロボット・システムの一実施例を示す図である。
【図１０】空間マップによって表される環境を通る現在位置からターゲット位置へのロボットの一般化されたナビゲーションを示す図である。
【図１１】本発明の一態様による、図１０の環境のＳＬＡＭマップに関連するロボットのナビゲーションを示す図である。
【図１２Ａ】空間環境内の位置でロボットによって測距スキャンを取得することを示す図である。
【図１２Ｂ】空間環境内の位置でロボットによって測距スキャンを取得することを示す図である。
【図１３Ａ】スキャン・マッチングを使用して、不整列のスキャン（１３Ａ）の整列したスキャン（１３Ｂ）への並進を見出すことによってポーズを見出すことを示す図である。
【図１３Ｂ】スキャン・マッチングを使用して、不整列のスキャン（１３Ａ）の整列したスキャン（１３Ｂ）への並進を見出すことによってポーズを見出すことを示す図である。
【図１４】本発明の一態様による、ロボットを大域的な経路に沿って移動させるためにロボットによって実行されるプロセスの図である。
【図１５Ａ】マッチング・ピラミッド及び除外ピラミッドの構築に用いるＳＬＡＭマップの変換を示す図である。
【図１５Ｂ】マッチング・ピラミッド及び除外ピラミッドの構築に用いるＳＬＡＭマップの変換を示す図である。
【図１６Ａ】マッチング・ピラミッドの図である。
【図１６Ｂ】除外ピラミッドの図である。
【図１７Ａ】マッチング・ピラミッドの高解像度のマップから２つの最低レベルの解像度までのマッチング・マップの一部分の間引きを示す図である。
【図１７Ｂ】マッチング・ピラミッドの高解像度のマップから２つの最低レベル解像度までのマッチング・マップの一部分の間引きを示す図である。
【図１７Ｃ】マッチング・ピラミッドの高解像度のマップから２つの最低レベル解像度までのマッチング・マップの一部分の間引きを示す図である。
【図１８Ａ】除外ピラミッドの高解像度のマップから２つの最低レベルの解像度までの除外マップの一部分の間引きを示す図である。
【図１８Ｂ】除外ピラミッドの高解像度のマップから２つの最低レベルの解像度までの除外マップの一部分の間引きを示す図である。
【図１８Ｃ】除外ピラミッドの高解像度のマップから２つの最低レベルの解像度までの除外マップの一部分の間引きを示す図である。
【図１９】除外マップ・ピラミッドを使用するＭ３ＲＳＭの実施例に基づいてロボットのポーズを見出すプロセスの図である。
【図２０】マッチング・マップの最高解像度のマップで最良のポーズに対する候補ポーズを検索するプロセスの図である。
【図２１】マッチング・マップの最高解像度のマップで最良のポーズに対する候補ポーズを検索するプロセスの図である。
【図２２】不整列のスキャン（２２Ａ）の整列したスキャン（２２Ｂ）への並進を見出すためのスキャン・マッチングを用いた最良のポーズの推定を示す図である。
【発明を実施するための形態】
【００２３】
本明細書に記載の発明は、障害物及び自由空間を含む環境内の「目標経路」に沿った現在位置からターゲット位置へのロボットの改善されたナビゲーションのための自律型又は半自律型ロボットで使用する方法及びシステムを対象とする。
【００２４】
具体的には、本発明の方法及びシステムは、空間環境内のロボットの現在位置及び向き又は「ポーズ」を正確に決定するために、従来技術に勝る計算効率の高い向上を提供する。ロボットのポーズを迅速且つ正確に決定すると、ロボットは、その動きを目標経路に沿ってより適切に制御して、障害物を回避し、ロボットを環境内の障害物間でより直接的且つより円滑に移動させることができる。さらに、ポーズ決定に必要とされる処理時間の短縮により、割り当てられた処理サイクル時間中にロボットによって実行される他のタスクのために計算資源が解放される。
【００２５】
本開示並びにその様々な特徴及び有利な詳細は、添付の図面で説明及び／又は図示され、以下の説明で詳述される非限定的な実施例及び実例を参照してさらに十分に説明される。図面に示されている特徴は必ずしも一定の縮尺で描かれているわけではなく、一実施例の特徴は、本明細書で明示的に述べられていない場合でも、当業者が認識するような他の実施例と共に使用され得ることに留意されたい。さらに、同一の参照番号は、図面のいくつかの図を通して同様の部分を表すことに留意されたい。
【００２６】
よく知られている構成要素及び処理技法の説明は、本開示の実施例を不必要に不明瞭にしないように省略される場合がある。本明細書で使用される実例は、単に、本開示が実現され得る方法の理解を容易にすること、及び当業者が本開示の実施例を実現することをさらに可能にすることを意図しているにすぎない。したがって、本明細書の実例及び実施例は、本開示の範囲を限定するものとして解釈されるべきではない。
【００２７】
当業者は、本教示が開示されたもの以外の実施例で実現され得ることを理解するであろう。本明細書で提供される説明は、顧客への出荷用に注文を履行するために倉庫内のビン位置から物品をピックすることに焦点が当てられているが、システムは、後から取り出して顧客に出荷するために、倉庫内に受け入れた物品を倉庫全体にわたるビン位置に保管又は配置する場合にも同様に適用される。本発明はまた、製品の統合、集計、検証、検査、及びクリーンアップなどの、そのような倉庫システムに関連する在庫管理タスクにも適用可能である。
【００２８】
本発明の方法及びシステムは、他のタイプの用途のための他のタイプの障害物を伴う他のタイプの環境にも適用され得る。静止の又は動的な、物理的物体又は構造は、本発明の適用例においては「障害物」と見なされ得る。障害物はさらに、環境内で動作する人間及び他のロボットを含む場合があり、人間及び他のロボットの位置は、協調タスクの実行における現在位置又はターゲット位置とすることができる。ターゲット位置は、１つ又は複数のロボットを配置して、タスク若しくは一連のタスクを実行するため、又はその実行において人間を支援するための環境内の、１つ又は複数の位置を含むことができる。
【００２９】
これら及び他の利益若しくは利点は、以下に説明する実例及び図から容易に明らかになろう。
【００３０】
図１を参照すると、典型的な注文履行倉庫１０は、注文１６に含まれる可能性のある様々な物品で満たされた棚１２を含む。動作に際して、倉庫管理サーバ１５からの注文１６が注文サーバ１４に届く。注文サーバ１４は、倉庫１０を動き回る複数のロボットから選択されたロボット１８に、注文１６を通信する。また、本発明の一態様による１つ又は複数の充電ステーションが配置され得る充電エリア１９も示されている。
【００３１】
好ましい実施例では、図２Ａ及び図２Ｂに示すロボット１８は、レーザ・レーダ２２を有する自律型車輪付きベース２０を含む。ベース２０は、ロボット１８が注文サーバ１４から命令を受信することを可能にするトランシーバ（図示せず）、及び一対のデジタル光学カメラ２４ａ及び２４ｂも特徴とする。ロボット・ベースは、自律型車輪付きベース２０に電力を供給するバッテリを再充電するための充電ポート２６も含む。ベース２０は、レーザ・レーダ２２からデータを受信するプロセッサ（図示せず）、並びにロボットの環境を表す情報を取り込むためのカメラ２４ａ及び２４ｂをさらに特徴とする。図３に示すように、倉庫１０内のナビゲーションに関連する様々なタスクを実行するため、並びに棚１２上に配置された基準マーカ３０にナビゲートするためにプロセッサと共に動作するメモリ（図示せず）が存在する。基準マーカ３０（例えば、２次元バーコード）は、注文を受けた物品のビン／位置に対応する。本発明のナビゲーション手法については、図４〜図８を参照して以下で詳細に説明する。基準マーカはまた、本発明の一態様により充電ステーションを識別するために使用され、そのような充電ステーションの基準マーカへのナビゲーションは、注文を受けた物品のビン／位置へのナビゲーションと同じである。ロボットが充電ステーションへナビゲートすると、より正確なナビゲーション手法を使用してロボットが充電ステーションにドッキングされ、このようなナビゲーション手法については以下で説明する。
【００３２】
再び図２Ｂを参照すると、ベース２０は、物品を保持するためのトート又はビンが格納され得る上面３２を含む。複数の交換可能なアーマチュア４０のいずれか１つと係合するカップリング３４も示され、その１つが図３に示されている。図３の特定のアーマチュア４０は、物品を受け入れるトート４４を保持するためのトート・ホルダ４２（この場合は棚）、及びタブレット４８を支持するためのタブレット・ホルダ４６（又はラップトップ／他のユーザ入力デバイス）を特徴とする。いくつかの実施例では、アーマチュア４０は、物品を保持するための１つ又は複数のトートを支持する。他の実施例では、ベース２０は、受け入れられた物品を保持するための１つ又は複数のトートを支持する。本明細書で使用する場合、「トート」という用語には、貨物ホルダ、ビン、ケージ、棚、物品を掛けることができる竿、小箱、クレート、ラック、スタンド、架台、コンテナ、ボックス、キャニスタ、容器、収納庫が含まれるが、これらに限定されない。
【００３３】
ロボット１８は、倉庫１０を動き回ることにおいて優れているが、現在のロボット技術では、物体のロボット操作に関連する技術的な問題により、ロボット１８は、棚から物品を迅速に且つ効率的にピックし、それらをトート４４に配置することにおいてあまり良好ではない。物品をより効率的にピックする方法は、注文された物品を棚１２から物理的に取り出し、それをロボット１８上、例えばトート４４内に配置するというタスクを実行するために、通常は人間である現場作業者５０を使用することである。ロボット１８は、現場作業者５０が読み取ることができるタブレット４８（若しくはラップトップ／他のユーザ入力デバイス）を介して、又は現場作業者５０によって使用されるハンドヘルド・デバイスに注文を送信することによって、現場作業者５０に注文を通信する。
【００３４】
ロボット１８は、注文サーバ１４から注文１６を受信すると、例えば図３に示すように最初の倉庫位置に進む。ロボット１８は、メモリに記憶され、プロセッサによって実行されるナビゲーション・ソフトウェアに基づいて、これを行う。ナビゲーション・ソフトウェアは、レーザ・レーダ２２によって収集されるような環境に関するデータと、特定の物品を見つけることができる倉庫１０内の位置に対応する基準マーカ３０の基準識別情報（「ＩＤ」）を識別するメモリ中の内部表と、ナビゲートするためのカメラ２４ａ及び２４ｂとに依拠する。
【００３５】
ロボット１８は、正確な位置に到達すると、物品が保管されている棚１２の前にそれ自体を駐機し、現場作業者５０が棚１２から物品を取り出し、それをトート４４内に配置するのを待つ。ロボット１８が他に取り出すべき物品を有する場合、ロボット１８はその位置に進む。次いで、ロボット１８によって取り出された物品は、図１の梱包ステーション１００に送られ、そこで物品が梱包され、出荷される。
【００３６】
各ロボットが１つ又は複数の注文を履行する場合があり、各注文が１つ又は複数の物品から構成され得ることは、当業者には理解されよう。通常、効率を高めるために何らかの形態のルート最適化ソフトウェアが含まれることになるが、これは本発明の範囲外であり、したがって本明細書では説明されない。
【００３７】
本発明の説明を簡略化するために、単一のロボット１８及び作業者５０が説明されている。しかしながら、図１から明らかなように、典型的な履行作業は、注文の連続的な流れに対応するために倉庫内で互いに働いている多くのロボット及び作業者を含む。
【００３８】
本発明のナビゲーション手法、及び取り出されるべき物品のＳＫＵと、物品が位置する倉庫内の基準マーカに関連付けられた基準ＩＤ／ポーズとのセマンティック・マッピングが、図４〜図８に関して以下に詳細に説明される。上記のように、同じナビゲーション手法を使用して、ロボットがそのバッテリを再充電するために充電ステーションにナビゲートできるようにすることができる。
【００３９】
静的物体と動的物体の両方の位置、及び倉庫全体にわたって分散された様々な基準マーカの位置を決定するために、１つ又は複数のロボット１８を使用して、倉庫１０のマップが作成され、動的に更新されなければならない。これを行うために、ロボット１８のうちの１つは、そのレーザ・レーダ２２と、未知の環境のマップを構築又は更新する計算方法である同時位置特定及びマッピング（ＳＬＡＭ：ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）とを使用して、倉庫をナビゲートし、図４のマップ１０ａを構築／更新する。ＳＬＡＭ近似解法は、ポーズ・グラフ、粒子フィルタ、及び拡張カルマン・フィルタ法を含む。ＳＬＡＭ  ＧＭａｐｐｉｎｇ手法は好ましい手法であるが、任意の好適なＳＬＡＭ手法を使用することができる。ＳＬＡＭに関する考察は、参照により本明細書に組み込まれる、Ｆｒｅｓｅ，Ｕ．、Ｗａｇｎｅｒ，Ｒ．、Ｒｏｆｅｒ，Ｔ．、「Ａ  ＳＬＡＭ  ｏｖｅｒｖｉｅｗ  ｆｒｏｍ  ａ  ｕｓｅｒ’ｓ  ｐｅｒｓｐｅｃｔｉｖｅ」、Ｋｕｎｓｔｌｉｃｈｅ  Ｉｎｔｅｌｌｉｇｅｎｚ  ２４（３）、１９１〜１９８頁（２０１０）において見出すことができる。
【００４０】
ロボット１８は、そのレーザ・レーダ２２を利用して、ロボット１８が空間全体にわたって移動し、レーザ・レーダが環境を走査するときに受け取る反射に基づいて空間内のオープン空間１１２、壁１１４、物体１１６、及び棚１２ａなどの他の静的障害物を識別するときに、倉庫１０のマップ１０ａを作成／更新する。
【００４１】
１つ又は複数のロボット１８は、マップ１０ａの構築しながら又はそれ以降、倉庫１０内をナビゲートし、環境を走査するためのカメラ２４ａ及び２４ｂを使用して、物品が保管されている図３の３２及び３４などのビンに近接した棚の、倉庫全体にわたって分散された基準マーカ（２次元バーコード）の位置を特定する。ロボット１８は、原点１１０などの既知の基準点又は原点を基準として使用する。ロボット１８がそのカメラ２４ａ及び２４ｂを使用することによって、図３及び図４における基準マーカ３０などの基準マーカの位置が特定されると、原点１１０に対する倉庫内の位置が決定される。ロボット１８は、図２Ａに示すようなロボット・ベースの両側にある２つのカメラを使用することによって、ロボットの両側から広がる比較的広い視野を有することができる。これにより、ロボットは、例えば、棚の通路を行き来するとき、ロボットの両側にある基準マーカを見ることができる。
【００４２】
ホイール・エンコーダ(図示せず)及び進行方向センサ(図示せず)を使用することによって、ベクトル１２０及び倉庫１０内のロボットの位置が決定され得る。ロボット１８は、基準マーカ／２次元バーコードの取り込まれた画像及びその知られているサイズを使用して、基準マーカ／２次元バーコードのロボットに対する向き及びそこからの距離であるベクトル１３０を決定することができる。ベクトル１２０及び１３０が知られている場合、原点１１０と基準マーカ３０との間のベクトル１４０を決定することができる。ベクトル１４０及びロボット１８に対する基準マーカ／２次元バーコードの決定された向きから、原点１１０に対するｘ，ｙ，ｚ座標によって、及び基準マーカ３０の４元数（ｘ，ｙ，ｚ，ω）によって定義されるポーズ（位置及び向き）が決定され得る。４元数を使用して向きを表現し導き出すことに関する考察は、参照により本明細書に組み込まれる、Ｂｅｒｔｈｏｌｄ  Ｋ．Ｐ．Ｈｏｒｎ、「Ｃｌｏｓｅｄ−ｆｏｒｍ  ｓｏｌｕｔｉｏｎ  ｏｆ  ａｂｓｏｌｕｔｅ  ｏｒｉｅｎｔａｔｉｏｎ  ｕｓｉｎｇ  ｕｎｉｔ  ｑｕａｔｅｒｎｉｏｎｓ」、Ｊｏｕｒｎａｌ  ｏｆ  ｔｈｅ  Ｏｐｔｉｃａｌ  Ｓｏｃｉｅｔｙ  ｏｆ  Ａｍｅｒｉｃａ、４（４）、１９８７年４月、６２９〜６４２頁において見出される。当業者は、基準マーカの位置及び向きを決定するための他の座標系及び技法が使用され得ること、並びにポーズが任意の原点からの絶対的又は相対的な位置及び／又は向きを決定できることを認識するであろう。
【００４３】
基準マーカの位置特定プロセスを説明する図５のフローチャート２００について説明する。これは、初期マッピング・モードで実行され、ロボット１８がピッキング、配置、及び／又は他のタスクを実行している間に倉庫内で新しい基準マーカに遭遇したときに実行される。ステップ２０２において、ロボット１８は、カメラ２４ａ及び２４ｂを使用して画像を取り込み、ステップ２０４において、取り込まれた画像内で基準マーカを検索する。ステップ２０６において、画像内で基準マーカが見つけられた場合（ステップ２０４）、その基準マーカがロボット１８のメモリに位置する図６の基準表３００にすでに記憶されているかどうかが判定される。その基準情報がすでにメモリに記憶されている場合、フローチャートは別の画像を取り込むためにステップ２０２に戻る。基準情報がメモリにない場合、上記のプロセスに従ってポーズが決定され、ステップ２０８において、その基準情報は、基準対ポーズのルックアップ表３００に追加される。
【００４４】
各ロボットのメモリに記憶され得るルックアップ表３００には、各基準マーカごとに、基準識別情報１、２、３などと、各基準識別情報に関連付けられた基準マーカ／バーコードのポーズとが含まれる。ポーズは、原点１１０に対する倉庫内のｘ，ｙ，ｚ座標、及び向き、すなわち４元数（ｘ，ｙ，ｚ，ω）から構成される。
【００４５】
図７の別のルックアップ表４００では、ルックアップ表４００は、同じく各ロボットのメモリに記憶されてもよく、倉庫１０内のビン位置（例えば、４０２ａ〜４０２ｆ）のリストであり、ビン位置は特定の基準ＩＤ４０４、例えば番号「１１」と相互に関連付けられている。ビン位置は、この実例では７つの英数字で構成されている。最初の６文字（Ｌ０１００１など）は、倉庫内の棚位置に関係し、最後の文字（例えばＡ〜Ｆ）は棚位置における特定のビンを識別する。この実例では、基準ＩＤ「１１」に関連付けられた６つの異なるビン位置がある。各基準ＩＤ／マーカに関連付けられた１つ又は複数のビンがある場合がある。図１の充電エリア１９に位置する充電ステーションは、表４００に記憶され、基準ＩＤと相互に関連付けられてもよい。基準ＩＤから、図６の表３００において、充電ステーションのポーズが判明し得る。
【００４６】
英数字のビン位置は、物品が保管された倉庫１０内の物理的位置に対応するものとして、人間、例えば図３の作業者５０にとって理解可能である。しかしながら、英数字のビン位置は、ロボット１８にとって意味がない。ロボット１８は、位置を基準ＩＤにマッピングすることによって、図６の表３００の情報を使用して基準ＩＤのポーズを決定し、次いで、本明細書で説明されるようにポーズにナビゲートすることができる。
【００４７】
本発明による注文履行プロセスが、図８のフローチャート５００に示されている。ステップ５０２において、図１の倉庫管理システム１５は、取り出すべき１つ又は複数の物品で構成され得る注文を取得する。ステップ５０４において、倉庫管理システム１５によって物品のＳＫＵ番号が決定され、ステップ５０６において、ＳＫＵ番号からビン位置が決定される。次いで、注文に関するビン位置のリストがロボット１８に送信される。ステップ５０８において、ロボット１８はビン位置を基準ＩＤと相互に関連付け、ステップ５１０において、基準ＩＤから各基準ＩＤのポーズが取得される。ステップ５１２において、ロボット１８は図３に示されるようにそのポーズにナビゲートし、作業者は、取り出すべき物品を適切なビンからピックし、それをロボットに配置することができる。
【００４８】
倉庫管理システム１５によって取得されたＳＫＵ番号及びビン位置などの物品固有の情報は、ロボット１８上のタブレット４８に送信され得、それにより、作業者５０は、ロボットが各基準マーカ位置に到達したときに取り出されるべき特定の物品を通知され得る。
【００４９】
ＳＬＡＭマップ及び基準ＩＤのポーズが知られている場合、ロボット１８は、様々なロボット・ナビゲーション技法を使用して、基準ＩＤのうちのいずれか１つに容易にナビゲートすることができる。好ましい手法は、倉庫１０内のオープン空間１１２及び壁１１４、棚（棚１２など）、並びに他の障害物１１６の知識を与えられて、基準マーカ・ポーズへの初期ルートを設定することを含む。ロボットがそのレーザ・レーダ２２を使用して倉庫を横断し始めると、ロボットは、何らかの障害物、すなわち固定の障害物、又は他のロボット１８及び／若しくは作業者５０などの動的障害物がその経路にあるかどうかを判定し、基準マーカのポーズへのその経路を繰り返し更新する。ロボットは、障害物を回避しながら最も効率的且つ効果的な経路を常に探索して、約５０ミリ秒ごとにそのルートを再計画する。
【００５０】
一般に、倉庫１０ａ内のロボットの位置特定は、ＳＬＡＭマップ上で動作する多対多マルチ解像度スキャン・マッチング（Ｍ３ＲＳＭ）によって実現される。総当たりの方法と比較して、Ｍ３ＲＳＭは、ロボットのポーズ及び位置を決定する２つの重要なステップであるＳＬＡＭのループ閉じ込み及びスキャン・マッチングをロボットが実行するための計算時間を大幅に削減する。本明細書に開示されている方法によりＭ３ＲＳＭ探索空間を最小化することによって、ロボットの位置特定がさらに改善される。
【００５１】
共に明細書に記載の、製品ＳＫＵ／基準ＩＤと基準ポーズとのマッピング技法を、ＳＬＡＭナビゲーション技法と組み合わせることで、ロボット１８は、通常使用される倉庫内の位置を決定するためのグリッド線及び中間基準マーカを含むより複雑なナビゲーション手法を使用する必要なく、倉庫空間を非常に効率的且つ効果的にナビゲートすることができる。
【００５２】
一般的に、倉庫内に他のロボット及び移動障害物がある場合のナビゲーションは、ダイナミック・ウィンドウ・アプローチ（ＤＷＡ）及び最適相互衝突回避（ＯＲＣＡ）を含む衝突回避方法によって実現される。ロボットのナビゲーションは通常、約５０ミリ秒の更新間隔で計算された軌道に沿った一連の増分移動として進行する。ＤＷＡは、実現可能なロボットの動作軌道の中から、静止障害物との衝突を回避し、ターゲット基準マーカへの所望の経路を推奨する増分移動を計算する。ＤＷＡの考察は、参照により本明細書に組み込まれる、Ｄ．Ｆｏｘ、Ｗ．Ｂｕｒｇａｒｄ及びＳ．Ｔｈｒｕｎ、「Ｔｈｅ  Ｄｙｎａｍｉｃ  Ｗｉｎｄｏｗ  Ａｐｐｒｏａｃｈ  ｔｏ  Ｃｏｌｌｉｓｉｏｎ  Ａｖｏｉｄａｎｃｅ」、Ｒｏｂｏｔｉｃｓ＆Ａｕｔｏｍａｔｉｏｎ  Ｍａｇａｚｉｎｅ、ＩＥＥＥ、ｖｏｌ．４、ｎｏ．１．（１９９７年３月）、２３〜３３頁において提供される。
【００５３】
ＯＲＣＡは、他のロボットとの通信を必要とせずに、他の移動ロボットとの衝突を最適に回避する。ＯＲＣＡの考察は、参照により本明細書に組み込まれる、Ｊｕｒ  ｖａｎ  ｄｅｎ  Ｂｅｒｇ、Ｓｔｅｐｈｅｎ  Ｊ．Ｇｕｙ、Ｍｉｎｇ  Ｌｉｎ及びＤｉｎｅｓｈ  Ｍａｎｏｃｈａ、「Ｒｅｃｉｐｒｏｃａｌ  ｎ−ｂｏｄｙ  ｃｏｌｌｉｓｉｏｎ  ａｖｏｉｄａｎｃｅ」、Ｒｏｂｏｔｉｃｓ  Ｒｅｓｅａｒｃｈ：Ｔｈｅ  １４ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ＩＳＲＲ、Ｃｅｄｒｉｃ  Ｐｒａｄａｌｉｅｒ、Ｒｏｌａｎｄ  Ｓｉｅｇｗａｒｔ及びＧｅｒｈａｒｄ  Ｈｉｒｚｉｎｇｅｒ（編）、Ｓｐｒｉｎｇｅｒ  Ｔｒａｃｔｓ  ｉｎ  Ａｄｖａｎｃｅｄ  Ｒｏｂｏｔｉｃｓ、Ｖｏｌ．７０、Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ、２０１１年５月、３〜１９頁に記載されている。
【００５４】
衝突回避は、参照により本明細書に組み込まれる関連する米国出願第１５／７１２，２５６号に記載された技法によってさらに改善される可能性がある。
【００５５】
ロボット・システム
図９は、上述の注文履行倉庫アプリケーションで使用するためのロボット１８の一実施例のシステム図を示す。ロボット・システム６００は、データ・プロセッサ６２０、データ・ストレージ６３０、処理モジュール６４０、及びセンサ・サポート・モジュール６６０を含む。処理モジュール６４０は、経路計画モジュール６４２、駆動制御モジュール６４４、マップ処理モジュール６４６、位置特定モジュール６４８、及び状態推定モジュール６５０を含み得る。センサ・サポート・モジュール６６０は、距離センサ・モジュール６６２、駆動トレイン／ホイール・エンコーダ・モジュール６６４、及び慣性センサ・モジュール６６８を含み得る。
【００５６】
データ・プロセッサ６２０、処理モジュール６４２、及びセンサ・サポート・モジュール６６０は、ロボット・システム６００について本明細書に示され、又は説明されたコンポーネント、デバイス、又はモジュールのいずれとも通信することができる。トランシーバ・モジュール６７０は、データを送信及び受信するために含まれ得る。トランシーバ・モジュール６７０は、監視システムとの間で、又は１つ又は他のロボットとの間で、データ及び情報を送信及び受信することができる。データを送信及び受信することは、マップ・データ、経路データ、検索データ、センサ・データ、位置及び向きデータ、速度データ、並びに処理モジュールの命令又はコード、ロボット・パラメータ及び環境設定、並びにロボット・システム６００の動作に必要な他のデータを含む。
【００５７】
いくつかの実施例では、距離センサ・モジュール６６２は、走査レーザ・レーダ、レーザ距離計、距離計、超音波障害物検出器、ステレオ・ビジョン・システム、単眼ビジョン・システム、カメラ、及び撮像ユニットのうちの１つ又は複数を備え得る。距離センサ・モジュール６６２は、ロボットの周囲の環境を走査して、ロボットに対する１つ又は複数の障害物の位置を特定することができる。好ましい実施例では、駆動トレイン／ホイール・エンコーダ６６４は、ホイール位置を符号化するための１つ又は複数のセンサと、１つ又は複数のホイール（例えば、地面係合ホイール）の位置を制御するためのアクチュエータとを備える。ロボット・システム６００はまた、速度計又はレーダベースのセンサ若しくは回転速度センサを含む対地速度センサを含み得る。回転速度センサは、加速度計と積分器の組合せを備え得る。回転速度センサは、データ・プロセッサ６２０又はその任意のモジュールに、観測された回転速度を提供することができる。
【００５８】
いくつかの実施例では、センサ・サポート・モジュール６６０は、速度、並進、位置、回転、レベル、進行方向、及び慣性の瞬間的な測定値の履歴データを含む、並進データ、位置データ、回転データ、レベル・データ、慣性データ、及び進行方向データを経時的に提供してもよい。並進速度又は回転速度は、ロボット環境内の１つ又は複数の固定基準点又は静止物体を参照して検出され得る。並進速度は、方向の絶対速度として、又は時間に対するロボットの位置の１次導関数として表すことができる。回転速度は、角度単位の速度として、又は時間に対する角度位置の１次導関数として表すことができる。並進速度及び回転速度は、原点０，０（例えば、図１、１１０）及び絶対座標系又は相対座標系に対する０度の方角に関して表すことができる。処理モジュール６４０は、検出された回転速度と組み合わされた観測された並進速度（又は時間に対する位置の測定値）を使用して、ロボットの観測された回転速度を推定することができる。
【００５９】
いくつかの実施例では、ロボット・システム６００は、ＧＰＳ受信機、差分補正付きＧＰＳ受信機、又は無線信号を送信する衛星又は地上ビーコンに対するロボットの位置を決定するための別の受信機を含み得る。上記の倉庫用途などの屋内用途、又は衛星受信が信頼できない場所においては、ロボット・システム６００は、大域的な又は局所的なセンサ又はシステムによって絶対位置情報が確実に提供されない場合の位置特定を改善するために、上記のＧＰＳ以外のセンサ及び本明細書に記載の技法を使用することが好ましい。
【００６０】
他の実施例では、図９に示されていないモジュールは、ステアリング・システム、ブレーキ・システム、及び推進システムを含み得る。ブレーキ・システムは、油圧ブレーキ・システム、電気油圧ブレーキ・システム、電気機械ブレーキ・システム、電気機械アクチュエータ、電気ブレーキ・システム、ブレーキ・バイ・ワイヤ・ブレーキ・システム、又は駆動制御６４４と通信する別のブレーキ・システムを含み得る。推進システムは、電気モータ、駆動モータ、交流モータ、誘導モータ、永久磁石モータ、直流モータ、又はロボットを前進させるための別の好適なモータを含み得る。推進システムは、電気モータのモータ・シャフトの回転の速度、トルク、及び方向の少なくとも１つを制御するためのモータ・コントローラ（例えば、インバータ、チョッパ、波発生器、多相コントローラ、可変周波数発振器、可変電流供給、又は可変電圧供給）を含み得る。駆動制御６４４及び推進システム（図示せず）は、差動駆動（ＤＤ）制御及び推進システムであることが好ましい。ＤＤ制御システムにおいて、ロボット制御は、非ホロノミック（ＮＨ）であり、所望の並進速度及び角速度が与えられた場合に達成可能な増分経路に対する制約を特徴とする。推進システムと通信する駆動制御６４４は、経路計画モジュール６４２又はデータ・プロセッサ６２０によって決定された１つ又は複数の瞬間速度を変換することによって、ロボットの増分移動を始動させることができる。
【００６１】
当業者は、本明細書に記載の本発明の適用性を失うことなく、ロボット処理、データ・ストレージ、検知、制御、及び推進のための他のシステム及び技法を採用できること理解するであろう。
【００６２】
マップ
自律型ロボット又は半自律型ロボットによるナビゲーションは、ロボットの環境の何らかの形態の空間モデルを必要とする。空間モデルは、ビットマップ、オブジェクト・マップ、ランドマーク・マップ、及びその他の形態の２次元及び３次元デジタル表現によって表されてもよい。例えば、図１０に示すように、倉庫施設の空間モデルは、倉庫、並びに壁、天井、屋根の支柱、窓及びドア、棚及び保管ビンなどの障害物を表し得る。障害物は、例えば、倉庫内で動作する他のロボット若しくは機械などのように、静止若しくは移動しているか、又は、一時的な仕切り、パレット、棚、及びビンなどのように、比較的固定されているが、倉庫の物品が保管され、ピックされ、補充されるときに変化している場合がある。
【００６３】
倉庫施設の空間モデルはまた、ロボットが製品をピックするように若しくは何らかの他のタスクを実行するように指示され得る基準でマークされた棚若しくはビンなどのターゲット位置、又は、一時的な保持位置若しくは充電ステーションの位置を表し得る。例えば、図１０は、開始位置７０２から中間位置７０４、７０６、その経路７１２、７１４、７１６に沿った目的地又はターゲット位置７０８までのロボット１８のナビゲーションを示す。ここで、空間モデルは、棚若しくはビン又はロボット充電ステーションであり得る目的地７１８における構造物の特徴を含む、ロボットがナビゲートしなければならない環境の特徴を取り込む。
【００６４】
ロボットのナビゲーションに最も一般的に使用される空間モデルは、エリア又は施設のビットマップである。例えば、図１１は、図１０の空間モデル内に示されているエリアに対する２次元マップの一部分を示す。マップ７２０は、黒若しくは白を表すバイナリ範囲０、１のピクセル値を有するビットマップによって、又は例えば、黒（０）から白（２５５）のグレースケール範囲を表す０〜２５５のピクセル値の範囲によって、又はピクセル値で表される位置に特徴が存在するかどうかの不確実性を示し得る色の範囲によって表されてもよい。図１１に示すように、例えば、黒（０）のピクセルは障害物を表し、白（２５５）のピクセルは自由空間を表し、無地の灰色（０から２５５の間のある値、通常は１２８）のエリアは不明なエリアを表す。
【００６５】
図１１に示すマップ７２０の縮尺及び粒度は、環境の範囲及び詳細に適するような任意の縮尺及び寸法としてもよい。例えば、本発明のいくつかの実施例では、マップの各ピクセルは５平方センチメートル（ｃｍ２）を表す場合がある。他の実施例では、各ピクセルは、１ｃｍ２から５ｃｍ２の範囲を表す場合がある。しかしながら、本発明で使用するためのマップの空間解像度は、その方法の適用に対する一般性又は利益を失うことなく、より大きく又はより小さくなり得る。
【００６６】
図１１に示すように、マップ７２０は、障害物を回避しながら、環境内のロボットのポーズを決定し、経路７１２、７１４、７１６に沿ったロボットの動きを計画及び制御するために、ロボットによって使用され得る。このようなマップは、ロボット若しくはターゲット位置の直近の空間的特徴を表す「局所的マップ」、又は１つ若しくは複数のロボットの動作範囲を含むエリア又は施設の特徴を表す「大域的マップ」である場合がある。マップは、外部監視システムからロボットに提供され得るか、又はロボットが、搭載された距離計及び位置センサを使用してそのマップを構築してもよい。１つ又は複数のロボットは、共有環境を協調的にマッピングし、ロボットが環境に関する情報をナビゲート、収集、及び共有するとき、結果として生じるマップがさらに強化される。
【００６７】
いくつかの実施例では、監視システムは、製造倉庫若しくは他の施設内の複数のロボットの監視を実行する中央サーバを含んでもよく、又は監視システムは、本明細書に記載の方法及びシステムの適用における一般性を失うことなく、施設内若しくは施設なしで、完全に遠隔で若しくは部分的に遠隔で動作する１つ又は複数のサーバで構成される分散型監視システムを備えてもよい。監視システムは、監視システムを実行するための少なくともコンピュータ・プロセッサ及びメモリを有するサーバを含んでもよく、倉庫又は他の施設内で動作する１つ又は複数のロボットに情報を通信するための１つ又は複数のトランシーバをさらに含んでもよい。監視システムは、コンピュータ・サーバでホストされてもよく、又はクラウドでホストされてもよく、インターネット上を含む有線及び／又は無線通信メディア上で、ロボット及び監視システムとの間でメッセージを受信及び送信するように構成されたローカル・トランシーバを介して、ローカル・ロボットと通信する。
【００６８】
当業者は、本発明の目的のためのロボット・マッピングが、一般性を失うことなく、当技術分野で知られている方法を使用して実行され得ることを認識するであろう。ロボット・マッピングに関する方法のさらなる考察は、参照により本明細書に組み込まれる、Ｓｅｂａｓｔｉａｎ  Ｔｈｒｕｎ、「Ｒｏｂｏｔｉｃ  Ｍａｐｐｉｎｇ：Ａ  Ｓｕｒｖｅｙ」、Ｃａｒｎｅｇｉｅ−Ｍｅｌｌｏｎ  Ｕｎｉｖｅｒｓｉｔｙ、ＣＭＵ−ＣＳ−０２−１１１、２００２年２月において見出すことができる。
【００６９】
スキャン
上述のように、センサを装備したロボットは、そのセンサを使用して位置特定するだけでなく、その環境のマップの構築及び保守にも寄与することができる。マップの構築及び位置特定に使用されるセンサには、光検出及び測距（「ＬＩＤＡＲ：ｌｉｇｈｔ  ｄｅｔｅｃｔｉｏｎ  ａｎｄ  ｒａｎｇｉｎｇ」又は「レーザ・スキャニング」又は「レーザ・レーダ」）センサが含まれ得る。レーザ・レーダ・スキャナは、ロボットの局所環境の一連の離散的な角度スイープを用いて、水平面内の対象物までの距離（ｒａｎｇｅ  ａｎｄ  ｄｉｓｔａｎｃｅ）を測定する。測距センサは、ロボットを中心とした１８０度の弧若しくはそれより大きい弧若しくはそれより小さい弧、又は完全な３６０度の弧にわたる、好ましくは４分の１（０．２５）度の増分の離散的な角度増分で取得された「スキャン」である、測定値のセットを取得する。例えば、レーザ・レーダ・スキャンは、レーザ信号の戻り時間及び強度を表す測定値のセットであり、離散的な角度増分での各測定値は、ロボットの現在位置からある距離離れた潜在的な障害物を示す。
【００７０】
説明のために図１２Ａ及び図１２Ｂに示すように、位置７０４で取得されたレーザ・レーダ・スキャンは、２次元ビットマップ７３０としてグラフィックで表され得る。図示のスキャン７３０は、中間ポーズ７０４でのロボットの移動方向に面する約１８０度の水平弧を示している。方向のある破線で示された個々のレーザ・レーダ測定値７３１は、構造７２２、７２４、７２６、及び７２８で、ロボットの環境７００’にある障害物を検出する。これらは、スキャン７３０の７３２、７３４、７３６、及び７３８でピクセルによって表される。いくつかの実施例では、直線壁７２４のスキャンは、スキャン７３０内に「埋められ」てもよく、接続された地理的構造７３４は他のデータから知ることができ、又は点群ピクセルの整列によって識別することができる。
【００７１】
本発明の範囲から逸脱することなく、測距センサの他の形態には、ソナー、レーダ、及び触覚センサが含まれる。本発明での使用に好適な市販の測距センサ並びに位置及び方位センサの例には、北陽のＵＳＴ−１０ＬＸ、ＳＩＣＫのＬＭＳ  １００、及びＶｅｌｏｄｙｎｅのＶＬＰ−１６が含まれるが、これらに限定されない。ロボットは、特定のタイプの１つ又は複数の距離センサ又は位置センサを有してもよく、又は異なるタイプのセンサを有してもよく、センサのタイプの組合せは、その環境をまとめてマッピングする測定値を作成する。ＬＩＤＡＲ及び他のスキャナによるロボット・マッピングの方法のさらなる考察については、参照により明細書に組み込まれるＥｄｗｉｎ  Ｂ．Ｏｌｓｏｎ、「Ｒｏｂｕｓｔ  ａｎｄ  Ｅｆｆｉｃｉｅｎｔ  Ｒｏｂｏｔｉｃ  Ｍａｐｐｉｎｇ」、ＰｈＤ  Ｄｉｓｓｅｒｔａｔｉｏｎ、Ｃａｒｎｅｇｉｅ−Ｍｅｌｌｏｎ  Ｕｎｉｖｅｒｓｉｔｙ、２００８年において見出すことができる。
【００７２】
スキャン・マッチング
「スキャン・マッチング」は、異なるロボットによる測距スキャン、若しくは異なる時間に取得された単一のロボットのスキャンを比較する、又はＳＬＡＭマップなどの環境のマップと比較するプロセスである。スキャン間のマッチング・プロセスでは、ロボットによって一度に取得された第１のレーザ・レーダ・スキャンを第２の以前のスキャンと比較して、ロボットがマップ内の同じ位置に戻ったかどうかを判定することができる。同様に、スキャンを第２のロボットのスキャンとマッチングすると、２つのロボットがマップ内の共通の位置にナビゲートしたかどうかを判定することができる。マップに対するスキャン・マッチングを使用して、マッピングされた環境内でロボットのポーズを決定することができる。図１３Ａに示すように、スキャン７３０’は、マップの一部分７２０’に対して並進及び回転されたものとして示されている。不明なポーズ（ｘ、ｙ、θ）にあるロボットの場合、ロボットのレーザ・レーダ・スキャンをマップ７２０’にマッチングさせることによって、スキャン７３０’をマップ７２０’に最も強く相関させる並進Δｘ、Δｙ及び回転Δθを有する剛体変換Ｔを見出す。したがって、図１３Ｂに示すように、マップ７２０の一部分に対するロボットの正しいポーズ（ｘ＋Δｘ、ｙ＋Δｙ、θ＋Δθ）が決定され得る。
【００７３】
レーザ・レーダ・スキャンが任意の位置及び向きでマップと正確に一致することはほとんどない。センサ測定の不確実性、ポーズの正確さの要求、及び限られた計算サイクル時間には、ロボットの検知環境とその実際のポーズとの間の最適なスキャン・マッチを統計的に決定するための堅牢で効率的なアルゴリズムが必要である。しかしながら、統計的な方法は、不正確なポーズを生成しやすく、計算コストが高くなる可能性がある。これらの複雑さに対処するために、様々な方法及びアルゴリズムが開発されている。位置特定のためのスキャン・マッチングの計算の複雑さを軽減すると同時に正確さを確保するためのスキャン・マッチング技法及び２解像度方法の調査については、参照により本明細書に組み込まれる、Ｅｄｗｉｎ  Ｂ．Ｏｌｓｏｎ、「Ｒｅａｌ−Ｔｉｍｅ  Ｃｏｒｒｅｌａｔｉｖｅ  Ｓｃａｎ  Ｍａｔｃｈｉｎｇ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００９  ＩＥＥＥ  ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｒｏｂｏｔｉｃｓ  ａｎｄ  Ａｕｔｏｍａｔｉｏｎ（ＩＣＲＡ’０９）、ＩＥＥＥ  Ｐｒｅｓｓ、Ｐｉｓｃａｔａｗａｙ、ＮＪ、ＵＳＡ、２００９年、１２３３〜１２３９頁において見出すことができる。
【００７４】
Ｍ３ＲＳＭ
前述のように、スキャン・マッチングを使用して位置特定するためのこのような別の手法は、多対多マルチ解像度スキャン・マッチング、すなわち「Ｍ３ＲＳＭ」である。Ｍ３ＲＳＭは、２解像度の相関スキャン・マッチング手法を、計算効率を高めるためにそれぞれが間引きによって構築されたマップのピラミッドを使用する複数の解像度に拡張する。Ｍ３ＲＳＭの考察は、参照により本明細書に組み込まれるＥｄｗｉｎ  Ｏｌｓｏｎ、「Ｍ３ＲＳＭ：Ｍａｎｙ−ｔｏ−ｍａｎｙ  ｍｕｌｔｉ−ｒｅｓｏｌｕｔｉｏｎ  ｓｃａｎ  ｍａｔｃｈｉｎｇ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｒｏｂｏｔｉｃｓ  ａｎｄ  Ａｕｔｏｍａｔｉｏｎ（ＩＣＲＡ）、２０１５年６月において見出すことができる。
【００７５】
Ｍ３ＲＳＭは、マップの低解像度で候補ポーズを考慮対象から除外することによって、ＳＬＡＭマップに対してスキャン・マッチングを実行するための処理時間を大幅に削減する。しかしながら、Ｍ３ＲＳＭは、ロボットを障害物内に配置することになるポーズのスキャン・マッチングを不必要に実行する。改良されたＭ３ＲＳＭ手法を使用したスキャン・マッチングのさらなる改善によって、最適なポーズ推定を損なうことなく、計算時間をさらに節約することができる。
【００７６】
Ｍ３ＲＳＭの改善は、Ｍ３ＲＳＭスキャン・マッチングの検索プロセス内で使用するための「除外ピラミッド」構造にマルチ解像度の「除外マップ」を導入することによって実現される。本明細書で使用される除外マップは、ロボットが物理的に占有できない環境のマップ内の「除外区域」又は位置を定義する。本明細書に記載の改良されたＭ３ＲＳＭで使用される除外ピラミッドは、標準のＭ３ＲＳＭによって提供される証明可能な最適ポーズ推定値を保持する。したがって、除外マップ及び除外ピラミッドは、上記の注文履行倉庫アプリケーションの状況下でロボットの目標経路に沿ったナビゲーションのためのポーズを見出すために、Ｍ３ＲＳＭを使用して不明なポーズでレーザ・レーダ・スキャンの位置特定をする間に使用するために描写される。
【００７７】
位置特定
図１４は、本発明の実施例を、目標経路計画のためにロボットのポーズを見出し、ロボットを目標経路に沿ってそのターゲット位置又は「目標ポーズ」に移動させるための方法として示す。
【００７８】
ステップ８０２で開始し、ロボット・システム６００は、トランシーバ・モジュール６７０を介してＳＬＡＭマップを受信し、ＳＬＡＭマップはデータ・ストレージ６３０に格納されてもよい。その後、マップは、データ・プロセッサ６２０又はマップ処理モジュール６４６によって、データ・ストレージ６３０から取得され得る。マップを受信すると、ステップ８０４において、マップ処理モジュール６４６は、以下でより詳細に説明する改良されたＭ３ＲＳＭ技法に従ってマップ・ピラミッドを構築する。マップ・ピラミッドを構築する際、Ｍ３ＲＳＭの原理及び方法に従ってマルチ解像度の「マッチング・ピラミッド」が構築される。さらに、マッチング・ピラミッドと並行して、標準のＭ３ＲＳＭには存在しないマルチ解像度の除外ピラミッドが構築され、本発明の発明態様に従ってＭ３ＲＳＭを拡張する。
【００７９】
プロセス８００を続けると、ステップ８０６において、ロボット・システム６００は、目標ポーズを受信し、経路計画モジュール６４６を使用して、後の処理のために格納され得る目標経路を生成する。目標経路は、ロボットのポーズ推定に基づいて生成されてもよく、又は、以下でさらに説明するように目標経路の生成は、「ポーズを見出す」ステップ８１２の最初の反復後に決定されたロボットのポーズに基づくことが好ましい。経路計画モジュール６４２は、Ａ＊及びＤ＊経路探索アルゴリズムを含む、当業者に知られている様々な技法によって、現在ポーズから目標ポーズへの目標経路を生成することができる。代替として、ロボットは、トランシーバ・モジュール６７０を介して目標経路を受信するか、又はデータ・ストレージ６３０から目標経路を検索することができる。ロボット・システム６００は、マップを受信しマップ・ピラミッド及び目標経路を生成すると、プロセス８００の実行を進めて、以下のようにロボットを目標経路に沿って増分的に移動させる。
【００８０】
ステップ８１０において、ロボット・システム６００は、その環境（例えば、図１２Ａの７２０）のローカル・スキャン（例えば、図１３Ａの７３０）を受信する。上記のように、スキャンは、レーザ・レーダ・スキャン又は他の測距センサ・スキャンを含み得る。スキャンは、レーザ・レーダによって障害物が検出されたロボットの視野内の点を表すレーザ・レーダ「点群」で構成され得る。点群は、ロボットに対する位置及び向きでのレーザ・レーダ・スキャンの点を表す場合があり、点群の各点は、離散的な角度増分で取得され、ロボットの現在位置からある距離離れた潜在的な障害物を示す。
【００８１】
ステップ８１２において、ロボットのポーズが決定される。Ｍ３ＲＳＭを備えたマップを使用してローカル・スキャンからポーズを見出すことについては、図１５を参照して以下でさらに説明される。ステップ８１４において、プロセスは、最初又は後続の見出したポーズの結果に基づいて目標経路を生成又は更新するために、戻ることができる。
【００８２】
ポーズを見出した後、ステップ８１６において、ロボットは、ロボットを目標経路に沿って移動させるための次の瞬間速度を計算する。他のロボット及び障害物が存在する場合の目標経路に沿った瞬間速度は、ダイナミック・ウィンドウ・アプローチ（ＤＷＡ）及び最適相互衝突回避（ＯＲＣＡ）を含むがこれらに限定されない方法によって実現されることが好ましい。好ましい実施例では、ＤＷＡは、実現可能なロボット動作軌道の中から、障害物との衝突を回避し、ターゲット位置への所望の目標経路を推奨する増分移動を計算する。
【００８３】
ロボット・システム６００は、次の速度を決定し、ロボットを移動させると（ステップ８１８）、ロボットの移動が目標ポーズに到達するまで、新しいローカル・スキャンを取得すること（ステップ８１０）、ポーズを見出すこと（ステップ８１２）、次の速度を見出すこと（ステップ８１６）を繰り返す（ステップ８２０）。したがって、ナビゲーションは、各処理サイクルでの瞬間速度によって決定される増分軌道に沿った一連の増分運動として進行する。
【００８４】
マッチング・ピラミッド
図１４のステップ８０４を再び参照すると、Ｍ３ＲＳＭで使用するマップ・ピラミッドの構築は、ロボットの局所的又は大域的な環境のＳＬＡＭマップを受信したことから進行する。上述し図１１に示すように、例示のみのために、ＳＬＡＭマップ７２０は、自由空間及び障害物を含む倉庫の一部分を表す。バイナリ範囲０、１のマップ７２０のピクセル値は、障害物（０又は黒）及び自由空間（１又は白）を表す。代替として、マップ７２０は、障害物を表すゼロ（０）及び自由空間を示す２５５の値を用いて、０〜２５５の範囲のピクセル値を使用して倉庫内の障害物を表してもよい。通常は値１２８を有する灰色のピクセルがある場合、それは不明なエリア、マッピングされていないエリア、又はアクセスできないエリアを表す。
【００８５】
マッチング・ピラミッドの最高解像度のマッチング・マップの構築は、ＳＬＡＭマップを反転させることから開始する。次に、反転されたマップ上で２次減衰畳み込みが実行される。図１５Ａのマップ９００によって示されるように、ゼロ（０）又は黒のピクセル値は自由空間を表し、２５５又は白の値は障害物を表す。当業者は、２次減衰畳み込み又は「ファジー化」フィルタを適用すると、マップ９００内の障害物のサイズをわずかに増大させる効果があり、０〜２５５の範囲のピクセル値が生成されることを理解するであろう。
【００８６】
ステップ８０４において引き続き、マップ・ピラミッドの構築は以下のように進行する。図１６Ａに示すように、マッチング・ピラミッド９１０は、ピラミッドの底部にある最高解像度のマッチング・マップ９１２から始まり、最上部にある最低解像度のマッチング・マップまでの、順次低下する解像度のマップのセットである。マッチング・ピラミッドの構築は、マップ９１２（倉庫の全体的なマップを表す）をゼロ（黒）でパディングして、マッチング・ピラミッド９１０の最高解像度のマップで正方形のビットマップを形成することから開始する。最高解像度のマッチング・マップ９１２は、計算効率を高めるためにＮ×Ｎピクセルの正方形マップであるが、任意の次元又はＮの値とすることができる。
【００８７】
マッチング・ピラミッド９１０の構築は、続いてマップ９１２を、順次低下する解像度のマッチング・マップ（９１４、９１６、９１８、９２０）に間引き、各低解像度のマップは、次に最高の解像度のマップの間引きによって導出される。例えば、低解像度のマッチング・マップ９１４は、最高解像度のマッチング・マップ９１２の間引きから導出され、より低解像度でのマッチング・マップ９１６は、マッチング・マップ９１４を間引くことによって導出され、単一のピクセルのみが残るまで以下同様に行われる。
【００８８】
次に、マッチング・ピラミッド９１０を構築するための最高解像度のマッチング・マップ９１２の間引きについて、図１７Ａ〜図１７Ｃを参照して説明する。概して、高解像度のマップから低解像度のマップへの各間引きでは、９ピクセル（正方形３×３）のウィンドウ９４０が、マップの１行おきで１ピクセルおきに渡される。次に最低の解像度で対応するピクセルに保持される値は、９ピクセルのウィンドウ内の最大ピクセル値である。マッチング・ピラミッド内の最低解像度のマップは、単一のピクセルである。したがって、各間引きは、次に低い解像度のマッチング・マップでのスキャン・マッチの尤度を高く見積もる。これにより、低解像度でのスキャン・マッチングが、次に最高の解像度でのスキャン・マッチングと少なくとも同等にスコア化され、正しいポーズを見出すというＭ３ＲＳＭの最適性が維持される。
【００８９】
図１７Ａ及び図１７Ｂは、マッチング・ピラミッド９１０のマップ９２０の一部分９２０’の間引きを示す。例えば、マップ９２０’の間引きは、低解像度のマップ９２４を生成する。マップ９２４は、次に低い解像度でのマップの一部分とすることができる。最高解像度のマッチング・マップ内の黒（０）が最小値であり、白（２５５）が最大値であることを想起し、左上のピクセル９４１上に配置された９ピクセルのウィンドウ９４０は、図１７Ｂのピクセル９５１の値を生成する。ピクセル９５１の値は、ウィンドウ９４０内のピクセルの最大値である。ウィンドウ９４０をマップ９２０’の２ピクセル右にスライドさせると、ピクセル値９５２が生成される。ウィンドウ処理のプロセスは、ウィンドウ９４０が行の終わりに到達するまで続き、そこでは、行を超えてウィンドウ・エリアに存在しないピクセル値は無視される。
【００９０】
一部分９２０’の２行目の間引きを継続し、ウィンドウ９４０を２行下に移動すると、ウィンドウ９４０の左上にピクセル９４４が配置される。最大値を取得することにより、図１７Ｂのピクセル値９５４が生成され、２行目の終わりまで以下同様に行われる。このようにして、図１７Ｂのピクセル値９５１〜９５９は、ウィンドウ９４０がその左上隅をピクセル９４１〜９４９上にして配置されたときのピクセルの最大値にそれぞれ対応する。したがって、例えば、図１７Ｂの中心ピクセル９５５は白であり、最大値は、ウィンドウ９４０の左上隅を図１７Ａのピクセル９４５上にした状態のウィンドウ９４０で取得される。単一のピクセル９２６のみがマッチング・ピラミッド９１０の最低解像度に残るまで、引き続き間引きを繰り返し、次に低い解像度ごとに最大値を取得する。
【００９１】
除外ピラミッド
図１４のステップ８０４において引き続き、除外ピラミッドの構築は以下のように進行する。マッチング・ピラミッド構築について上記のように、受信されたマップ７２０は、自由空間及び障害物を含む倉庫のエリアを表す。マップ７２０は、バイナリ範囲０、１のピクセル値を有し、ゼロ（０）又は黒は障害物を表し、イチ（１）又は白は自由空間を表す。代替として、マップ７２０は、障害物を表すゼロ（０）及び自由空間を示す２５５の値を用いた０〜２５５の範囲のピクセル値を使用して倉庫内の障害物を表してもよい。灰色のピクセル（通常は値１２８を有する）は、不明なエリアを表す。最高解像度のマッチング・マップの構築と同様に、マップ７２０の灰色のエリアは黒に変換される。
【００９２】
図１５Ｂは、最高解像度の除外マップ９１０の一部分を示し、ゼロ（０）又は黒のピクセル値は障害物を表し、イチ（１）又は白の値は自由空間を表す。マッチング・ピラミッドとは異なり、マップ７２０は反転されず、マップ９１０を構築するためにファジー化は実行されない。むしろ、障害物（黒）は、ロボットの最大範囲、例えばロボットの半径によって拡大又は「膨張」される。ロボットの半径による膨張は、ロボットの半径に対応するピクセル数で障害物を表すマップ７２０のピクセルを全方向に拡張することによって容易に達成される。例えば、半径０．２５メートルのロボットに対して、ピクセルあたり５ｃｍのマップでは、２５の黒（０）ピクセルが、各黒（障害物）ピクセルのすべての方向に隣接して「パディング」されてもよい。代替として、障害物は、ロボット上のすべての点で障害のない動きを確保するために、ロボットの半径の最大２倍でパディングされてもよい。
【００９３】
図１６Ｂに示すように、除外ピラミッド９５０は、ピラミッドの底部にある最高解像度の除外マップ９５２から始まり、最上部にある最低解像度の除外マップまでの、順次低下する解像度のマップのセットを含む。除外ピラミッドの構築は、マップ９５２（倉庫の全体的なマップを表す）をゼロ（黒）でパディングして、除外ピラミッド９５０の最高解像度で正方形のビットマップを形成することから開始する。最高解像度の除外マップ９５２は、マッチング・ピラミッド９１０について図示し上述した最高解像度のマッチング・マップ９１２に等しいサイズ及び解像度の正方形のビットマップである。好ましい実施例では、除外マップ上でファジー化が実行されないので、除外マップ内のピクセル値はバイナリ０、１であり、障害物（黒）はロボットの半径によって膨張されていることに留意されたい。
【００９４】
マッチング・ピラミッドの構築と同様に、除外ピラミッド９５０の構築は、マップ９５２を、順次低下する解像度のマップ（９５４、９５６、９５８、９６０）に間引くことによって進行し、各低解像度のマップは、次に最高の解像度のマップの間引きによって導出される。例えば、低解像度の除外マップ９５４は、最高解像度の除外マップ９５２の間引きから導出され、より低解像度での除外マップ９５６は、除外マップ９５４を間引くことによって導出され、単一のピクセルの最低解像度の除外マップのみが残るまで以下同様に行われる。
【００９５】
図１８Ａ〜図１８Ｃに示すように、除外ピラミッド９５０の間引きは、マッチング・ピラミッド９１０の間引きの方式と同様に継続する。このように、図１８Ａ及び図１８Ｂは、次に低い解像度の除外マップ９６２を生成するための除外ピラミッド９５０のマップ９６０の一部分９６０’の間引きを示す。ウィンドウ９４０がマップ９６０’の１行おきで１ピクセルおきに渡されるとき、ウィンドウ内の最大ピクセル値は、次に低い解像度での対応するピクセルの値として保持される。次に低い解像度での間引きの繰返しは、単一のピクセル９８０のみが残るまで継続する。
【００９６】
除外ピラミッドのそれぞれ順次低下する解像度での間引きは、ロボットが障害物に配置されるスキャン・マッチングの尤度を低く見積もり、これにより有効なポーズ候補がピラミッドの低解像度で除外されることを防ぐ。同様に、除外マップを間引く方式は、自由空間でロボットのポーズを見出す可能性を高く見積もる。このような高く見積もることの目的及び利点は、以下でさらに説明するように、Ｍ３ＲＳＭを使用した除外マップ及び除外ピラミッドのアプリケーションで明らかになる。
【００９７】
ポーズを見出す
図１４のステップ８１０を再び参照すると、ロボット・システム６００は、局所環境のレーザ・レーダ・スキャンを受信し、受信したスキャンに最も良く一致するポーズを見出すことに進む。次いで、受信したマップを備え、マッチング・ピラミッド及び除外ピラミッドを構築したロボット・システム６００は、ロボットのポーズを見出すことに進むことができる。
【００９８】
ロボットのポーズを見出すことは、図１９を参照してさらに説明される。ステップ８３４から始まり、検索エリアは、候補ポーズの検索対象となる受信したマップの一部分として決定される。最初の反復では、検索エリアは、マップ全体を含み得る。その後の反復では、ロボット・システム６００は、マップの一部分のみでそのポーズを推定してもよい。検索エリアを決定するためのポーズは、駆動トレイン／ホイール・エンコーダ及び／又は駆動制御情報などのセンサ・データと組み合わされた最新の既知のポーズから推定されてもよい。
【００９９】
好ましい実施例では、状態推定モジュール６５０は、ポーズ・データをホイール・エンコーダ・データ及び慣性センサ・データと融合して、ロボットの現在ポーズ、速度、及びそれぞれの推定誤差を決定することができる。したがって、推定されたポーズは、検索をマップの一部分に限定して検索空間を削減し、スキャン・マッチングの処理時間を短縮する。ポーズ推定の不確実性が低いほど、スキャン・マッチングが必要になる可能性がある検索エリアが小さくなる。不確実性が高いほど、スキャン・マッチングが必要になる可能性がある検索エリアが大きくなる。当業者は、ポーズの推定及び検索エリアの決定が様々な方法及びパラメータによって実行され得ることを理解するであろう。
【０１００】
再び図１９を参照すると、ステップ８３６において、ロボット・システム６００は、決定された検索エリアに従って候補ポーズの初期検索空間を作成する。好ましくは、初期検索空間は、検索タスクを含む検索ヒープであり、各検索タスクは、１つ又は複数の候補ポーズ、マッチング・ピラミッドの１つの解像度でのマッチング・マップ、及びマッチング・マップの解像度に間引かれた受信したスキャンで構成される。一実施例では、各検索タスクは、受信したスキャンをマッチング・マップの一部分にスキャン・マッチングするための並進及び回転における候補ポーズを定義する。代替として、各検索タスクは、並進及び回転の範囲によって候補ポーズを定義することができ、解像度でのスキャンの回転及び／又は間引きは、要求に応じて実行され、キャッシュされる。検索ヒープが最初に生成されるとき、スキャンは検索ヒープの回転ごとに回転され、キャッシュされてもよい。スキャン・マッチングに特定の解像度でのスキャンが必要なとき、すでにキャッシュされた回転後のスキャンが、その間引き後のバージョンと共にキャッシュから取得されてもよい。したがって、同じ回転及び解像度を有する検索タスクが、異なる並進に対する間引き後のスキャン及び回転後のスキャンを必要とする場合、以前の回転後のスキャン及び間引き後のスキャンをキャッシュから取得して、反復的な点群操作（ｐｏｉｎｔ  ｃｌｏｕｄ  ｏｐｅｒａｔｉｏｎ）の計算時間を節約することができる。
【０１０１】
図１９を再び参照すると、候補ポーズの検索（ステップ８３８）は、マッチング・ピラミッドの最高解像度で最良のポーズが見出されるまで（ステップ８４０）進行する。選択された最良のポーズが最高解像度のマッチング・マップにない場合（ステップ８４４）、検索空間が拡張され（ステップ８４８）、候補ポーズの検索（ステップ８３８）が継続する。最良のポーズが最高解像度のマッチング・マップにある場合、処理は、前述のように図１４のステップ８１２に戻る（ステップ８４２）。
【０１０２】
検索ヒープ上の検索タスクは、候補ポーズがその検索タスクのマッチング・ピラミッド・マップの解像度でマップに一致する最大尤度の計算された上限を割り当てることによって順序付けられる。検索ヒープを効率的に作成及び拡張し、ヒープ内の検索タスクの最大尤度の上限を計算するための技法は、すでに参照により本明細書に組み込まれているＥｄｗｉｎ  Ｏｌｓｏｎ、「Ｍ３ＲＳＭ：Ｍａｎｙ−ｔｏ−ｍａｎｙ  ｍｕｌｔｉ−ｒｅｓｏｌｕｔｉｏｎ  ｓｃａｎ  ｍａｔｃｈｉｎｇ」において見出すことができる。
【０１０３】
しかしながら、従来のＭ３ＲＳＭでは、検索ヒープの拡張は、環境内の障害物内又は部分的に障害物内でロボットを位置特定することになる候補ポーズを含む検索タスクをヒープに追加することを含む。次に示すように、Ｍ３ＲＳＭに上述の除外ピラミッドを組み込むことによって、このようなタスクで検索ヒープが拡張するのを防止し、それにより無効なポーズを評価するための計算コストを削減する。さらに、検索ヒープに追加する前に検索タスクをプルーニングすることによって、無効なポーズに関連付けられた高解像度でのすべての検索タスクも考慮対象から除外される。
【０１０４】
図２０は、障害物内でロボットを位置特定する検索ヒープ上の検索タスクを作成及び評価する前に、除外ピラミッドを使用して候補ポーズを無効化するプロセスを示す。前述のように、検索ヒープ９９０はタスクＴ１及びＴ２を含む可能性があり、各タスクはレーザ・レーダ・スキャンＳ、マッチング・ピラミッドの解像度Ｒでのマッチング・マップＭ、スキャンＳの候補並進及び回転範囲を含む。タスクＴ１の評価は、スキャンＳを回転し、回転のセットを通じてスキャンＳをマップＭにスキャン・マッチングすることによって最良の候補ポーズＰを見出す。解像度Ｒがマッチング・ピラミッドの最高解像度である場合、ポーズＰはロボットのポーズであり、図１９のステップ８１２が完了する。解像度Ｒが最高解像度でない場合、タスクＴ１は次に最高の解像度Ｒ−１で拡張され得る。
【０１０５】
解像度Ｒでの検索タスクからの検索ヒープの拡張は、マッチング・ピラミッドの解像度Ｒ−１でのマッチング・マップからの４つの新しい検索タスク（例えば、図２０のＴ３〜Ｔ６）を追加する可能性がある。４つの新しい検索タスクは、解像度Ｒ−１でのマップの初期の間引きに対応する４ピクセルの正方形から、解像度Ｒで拡張される検索タスクのポーズまで作成される。各新しい検索タスクは、拡張された検索タスクの並進範囲の４分の１を有することになる。しかしながら、本発明の実施例では、新しい検索タスクを作成する前に、解像度Ｒ−１の除外マップが、各新しいタスクの候補ポーズＰの位置で照会される。解像度Ｒ−１の候補ポーズがロボットを解像度Ｒ−１の除外マップの黒のピクセル（障害物）上に配置する場合、そのポーズに対する拡張された検索タスクは除外され、検索ヒープに挿入されない。
【０１０６】
例えば、図２０に示すように、解像度ＲのタスクＴ１を解像度Ｒ−１の新しいタスクＴ３〜Ｔ６に拡張する場合、アルゴリズムは、タスクＴ５の候補ポーズＰを除外マップ９６０のピクセル９６９に配置し（その一部分９６０’は図２１に示されている）、タスクＴ５が検索ヒープに追加されることはない。タスクＴ５を検索ヒープに追加する前にタスクＴ５をプルーニングすることによって、タスクＴ５が次に最高の解像度のマップにおいてその対応する位置で評価されない（したがって、拡張されない）ので、解像度Ｒ−２以上のピクセル９６９に対応するポーズＰで作成された可能性のあるすべての検索タスクは、同様に除外される。
【０１０７】
図２２Ａ及び２２Ｂは、上記のプロセスから「最良のポーズ」を見出すことを示す。図２２Ａは、ローカル・スキャン７３０及び初期ポーズ推定７４０を示す。図２１Ｂは、マッチング・ピラミッドの最高解像度のマッチング・マップでの並進Ｔ＊によってポーズ推定７４０から最良ポーズ７５０に並進されたローカル・スキャン・マッチを示す。ステップ８４２から７５０を返すと、図１４からのステップ８１２が完了し、上記のように進行してロボットを目標経路に沿って増分的に移動させる次の瞬間速度を決定する。
【０１０８】
本発明の前述の説明により、当業者は現在その最良の方式であると考えられるものを作成及び使用することができるが、当業者は、本明細書の特定の実施例及び実例の変形、組合せ、及び均等物が存在することを理解及び認識するであろう。本発明の上記の実施例は、単なる実例であることが意図されている。当業者は、添付の特許請求の範囲によってのみ定義される本発明の範囲から逸脱することなく、特定の実施例に対して変更、修正、及び変形を行うことができる。
【０１０９】
本発明は、ソフトウェア及び／又はハードウェアで実施され得ることを理解されたい。したがって、本発明の態様は、完全にハードウェアの実施例、完全にソフトウェアの実施例（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、又は本明細書ではすべて「回路」、「モジュール」、若しくは「システム」と総称され得るソフトウェアの態様とハードウェアの態様を組み合わせた実施例の形態を取ることができる。当業者によって理解されるように、本発明の態様は、システム、方法、又はコンピュータ・プログラム製品として具現化され得る。
【０１１０】
本発明の態様は、方法及び装置（システム）のフローチャート、図、及び／又はブロック図を参照して説明される。フローチャート及びブロック図は、本発明の様々な実施例によるシステム・アーキテクチャ、機能、又は動作を示し得る。フローチャートにおける各ステップは、指定された機能を実施するための１つ又は複数の実行可能命令を含むモジュールを表す場合がある。いくつかの実施態様では、連続して示されるステップは、実際には実質的に同時に実行され得る。ステップは、指定された機能若しくは動作を実行する専用ハードウェアベースのシステム、又は専用ハードウェアとコンピュータ命令の組合せによって実行され得る。
【０１１１】
本発明の動作を実行するプロセッサによる実行のためのコンピュータ命令は、Ｃ＃、Ｃ＋＋、Ｐｙｔｈｏｎ、又はＪａｖａ（登録商標）プログラミング言語などのオブジェクト指向プログラミング言語を含む１つ又は複数のプログラミング言語で記述され得る。コンピュータ・プログラム命令は、本明細書に記載のフローチャート及び／又はシステム・ブロック図で指定されたステップを実施する命令を実行することを含む、データ・プロセッサを介してロボット・システムに特定の方法で機能するように命令することができるコンピュータ可読媒体に記憶され得る。コンピュータ可読ストレージ媒体は、データ・プロセッサによって、又はデータ・プロセッサに関連して使用するための命令を含むか、又は記憶することができる任意の有形の媒体とすることができる。コンピュータ可読媒体は、コンピュータ可読プログラム・コードがその中に具体化された伝搬データ信号も含み得る。
【０１１２】
したがって、本発明は、上述の実施例及び実例、実施例、並びに以下に特許請求される本発明の範囲及び精神内の用途によって限定されない。
【図１】
0006937898.tif 000002
【図２Ａ】
0006937898.tif 000003
【図２Ｂ】
0006937898.tif 000004
【図３】
0006937898.tif 000005
【図４】
0006937898.tif 000006
【図５】
0006937898.tif 000007
【図６】
0006937898.tif 000008
【図７】
0006937898.tif 000009
【図８】
0006937898.tif 000010
【図９】
0006937898.tif 000011
【図１０】
0006937898.tif 000012
【図１１】
0006937898.tif 000013
【図１２Ａ】
0006937898.tif 000014
【図１２Ｂ】
0006937898.tif 000015
【図１３Ａ−１３Ｂ】
0006937898.tif 000016
【図１４】
0006937898.tif 000017
【図１５Ａ】
0006937898.tif 000018
【図１５Ｂ】
0006937898.tif 000019
【図１６Ａ】
0006937898.tif 000020
【図１６Ｂ】
0006937898.tif 000021
【図１７Ａ】
0006937898.tif 000022
【図１７Ｂ】
0006937898.tif 000023
【図１７Ｃ】
0006937898.tif 000024
【図１８Ａ】
0006937898.tif 000025
【図１８Ｂ】
0006937898.tif 000026
【図１８Ｃ】
0006937898.tif 000027
【図１９】
0006937898.tif 000028
【図２０】
0006937898.tif 000029
【図２１】
0006937898.tif 000030
【図２２Ａ−２２Ｂ】
0006937898.tif 000031