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