(57)【要約】      （修正有）【課題】多数の異なる製品の保管および取り出しのためのシステムの効率と、スケーラビリティを向上させる。【解決手段】製品を配置するための複数のコンテナから形成されるスタックが複数配列され、前記スタックの上部に格子状構造が形成され、前記格子状構造の上で前記コンテナを搬送する搬送デバイスを有するシステムであって、前記製品が選択されると、前記搬送デバイスが前記製品の配置された前記コンテナの上部にある他のコンテナを他のスタックへ移動し、前記コンテナをワークステーションまで出庫し、その後に前記コンテナを所定のスタックに入庫するものであり、その際に前記搬送デバイスの移動のタイミングと経路とを輻輳緩和技術及び機械学習技術によって最適化し、更に複数の前記コンテナの配置を最適に再配置する。【選択図】図７
2019194128.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の搬送デバイスの移動を制御するシステムにおいて、
前記搬送デバイスは設備中に保管されているコンテナを搬送し、前記設備は、複数のスタック中に前記コンテナを保管し、前記設備は、前記スタックの上部に格子状構造で配置されている複数の経路をさらに有し、前記１つ以上の搬送デバイスは、前記格子状構造上で動作し、
前記システムは、
コンピュータ命令を実行するように構成されている１つ以上のコンピュータを具備し、
前記コンピュータ命令は、実行されるとき、
１つ以上のユーティリティが、前記複数の経路を通して前記１つ以上の搬送デバイスを移動させるためのルートを決定して予約し、複数のコンテナのうちの１つ以上を搬送するときに、前記１つ以上の搬送デバイスを移動させるためのルートを決定して予約することと、
１つ以上のユーティリティが、ルートを決定して予約し、前記複数の搬送デバイスのうちの１つ以上を制御して、前記複数のスタックのうちの１つ以上内から、前記複数のコンテナのうちの１つ以上を取り出すこととを提供し、
前記１つ以上の取り出しユーティリティは、前記搬送デバイスのうちの１つ以上に命令して、１つ以上のコンテナを、１つ以上のスタック内から、前記スタック内の、または、前記スタック外のいずれかの代替ポジションに移動させるように構成され、前記ユーティリティには、取り出しのために前記１つ以上のコンテナにアクセスする前に、１つ以上のコンテナを移動させる際に、前記コンテナまたは各コンテナが除去されたスタック以外のスタックのうちの任意の１つ内のポジションに、前記スタック中に戻される前記１つ以上のコンテナを確実に配置する手段がさらに提供されるシステム。
【請求項２】
前記コンテナまたは前記コンテナのそれぞれは、物体を含み、前記物体は、その後の取り出しのために、前記スタック中の前記コンテナ中に保管される請求項１記載のシステム。
【請求項３】
衝突を避けるために、前記１つ以上の搬送デバイスの移動を許可するか、または、停止させるクリアランスシステムを提供する１つ以上のユーティリティをさらに具備する請求項１または２記載のシステム。
【請求項４】
前記複数の経路を通して、前記１つ以上の搬送デバイスの、移動とアクションとを最適化するように構成されている１つ以上のユーティリティをさらに具備する請求項１、２または３記載のシステム。
【請求項５】
前記設備中の前記１つ以上の搬送デバイスによって、前記複数のコンテナの配置を最適化するように構成されている１つ以上のユーティリティをさらに具備する任意の先行する請求項記載のシステム。
【請求項６】
１つ以上のワークステーション内で行われる移動または動作を制御する１つ以上のユーティリティをさらに具備する任意の先行する請求項記載のシステム。
【請求項７】
前記移動とアクションとを最適化する前記１つ以上のユーティリティは、１つ以上のパス発見アルゴリズムを利用する任意の先行する請求項記載のシステム。
【請求項８】
前記１つ以上のユーティリティは、１つ以上の輻輳緩和技術を使用して、前記移動とアクションとを最適化する任意の先行する請求項記載のシステム。
【請求項９】
前記１つ以上のユーティリティは、１つ以上の機械学習技術を使用して、前記移動とアクションとを最適化する任意の先行する請求項記載のシステム。
【請求項１０】
前記１つ以上のユーティリティは、前記設備内の前記複数のコンテナの配置を最適化し、前記設備内の前記複数の物体のうちの１つ以上の消耗に基づいて、前記設備の在庫レベルを更新する任意の先行する請求項記載のシステム。
【請求項１１】
前記１つ以上のユーティリティは、前記１つ以上のワークステーションのスループットに少なくとも基づいて、前記搬送デバイスのうちの１つ以上の移動を制御する請求項５記載のシステム。
【請求項１２】
前記１つ以上のユーティリティは、前記１つ以上の搬送デバイスのうちの少なくとも１つとの欠落した通信を許容するように構成されているクリアランスシステムを提供する任意の先行する請求項記載のシステム。
【請求項１３】
前記１つ以上のユーティリティは、ルートを決定して予約し、複数の搬送デバイスに命令して、前記複数のコンテナのうちの１つ以上を搬送する際に協同させる任意の先行する請求項記載のシステム。
【請求項１４】
前記１つ以上のユーティリティは、そうでなければ他の搬送デバイスにとって最適なルートから、アイドル中の搬送デバイスを移動させるルートを決定して予約する任意の先行する請求項記載のシステム。
【請求項１５】
前記設備は、複数のサブ格子に分割されて、コンピュータ処理の複雑性を低減させる任意の先行する請求項記載のシステム。
【請求項１６】
前記複数の搬送デバイスの移動を制御するための１つ以上の制御コマンドは、前記複数の搬送デバイスの移動に先立って、前記複数の搬送デバイスに提供される任意の先行する請求項記載のシステム。
【請求項１７】
前記１つ以上のユーティリティは、ヒブ中の空きポジションのうちの最も最適なポジションへの、前記コンテナの戻りを最適化する任意の先行する請求項記載のシステム。
【請求項１８】
前記１つ以上のユーティリティは、前記スタック内の代替コンテナからのもので、損害を受けている物体を、または、欠落している物体を、動的に置換する任意の先行する請求項記載のシステム。
【請求項１９】
複数のコンテナを搬送する１つ以上の搬送デバイスの移動を制御する方法において、
前記デバイスは、設備中で動作し、前記設備は、複数のスタック中に配置されている前記複数のコンテナを含み、前記設備は、前記スタックの上部に格子状構造で配置されている複数の経路をさらに有し、前記１つ以上の搬送デバイスは、前記格子状構造上で動作し、
前記方法は、
前記複数の経路を通して前記１つ以上の搬送デバイスを移動させるためのルートを決定して予約することと、
前記複数のコンテナのうちの１つ以上を搬送するときに、前記搬送デバイスを移動させるためのルートを決定して予約することと、
ルートを決定して予約し、前記複数の搬送デバイスのうちの１つ以上を制御して、前記複数のスタックのうちの１つ以上内から、前記複数のコンテナのうちの１つ以上を取り出すこととを含み、
前記１つ以上のスタック内から前記１つ以上のコンテナを取り出すことは、取り出しのために前記１つ以上のコンテナにアクセスする前に、前記スタック中の１つ以上の他のコンテナを移動させることをさらに要求し、
前記１つ以上の他のコンテナを移動させることは、前記コンテナまたは各コンテナが除去された元のスタックを除く、前記設備内の最適化されたポジション中に、前記１つ以上の他のコンテナのうちのそれぞれを配置することを含む方法。
【請求項２０】
前記コンテナは、前記設備内での保管と、前記設備内からの取り出しとのための物体を含む請求項１９記載の方法。
【請求項２１】
衝突を避けるために、前記１つ以上の搬送デバイスの移動を許可するか、または、停止させるクリアランスシステムを提供するステップをさらに含む請求項１９または２０記載の方法。
【請求項２２】
前記複数の経路を通して、前記１つ以上の搬送デバイスの、移動とアクションとを最適化するステップをさらに含む請求項１９、２０または２１記載の方法。
【請求項２３】
前記設備中の前記１つ以上の搬送デバイスによって、前記複数のコンテナの配置を最適化するステップをさらに含む請求項１９ないし２０のいずれか１項記載の方法。
【請求項２４】
１つ以上のワークステーション内で行われる移動または動作を制御するステップをさらに含む請求項１９ないし２３のいずれか１項記載の方法。
【請求項２５】
前記移動とアクションとを最適化することは、１つ以上のパス発見アルゴリズムを使用することを含む請求項１９ないし２４のいずれか１項記載の方法。
【請求項２６】
前記移動とアクションとを最適化することは、１つ以上の輻輳緩和技術を使用することを含む請求項１９ないし２５のいずれか１項記載の方法。
【請求項２７】
前記移動とアクションとを最適化することは、１つ以上の機械学習技術を使用することを含む請求項１９ないし２６のいずれか１項記載の方法。
【請求項２８】
前記設備内の前記複数のコンテナの配置を最適化して、前記設備の在庫レベルを更新することは、前記設備内の前記複数の物体のうちの１つ以上の消耗に基づいている請求項１９ないし２７のいずれか１項記載の方法。
【請求項２９】
前記搬送デバイスのうちの１つ以上の移動を制御することは、前記１つ以上のワークステーションのスループットに少なくとも基づいている請求項２４記載の方法。
【請求項３０】
前記１つ以上の搬送デバイスのうちの少なくとも１つとの欠落した通信を許容するクリアランスを提供することを含む請求項１９ないし２９のいずれか１項記載の方法。
【請求項３１】
ルートを決定して予約することと、
複数の搬送デバイスに命令して、前記複数のコンテナのうちの１つ以上を搬送する際に協同させることとを含む請求項１９ないし３０のいずれか１項記載の方法。
【請求項３２】
そうでなければ他の搬送デバイスにとって最適なルートから、アイドル中の搬送デバイスを移動させるルートを決定して予約することを含む請求項１９ないし３１のいずれか１項記載の方法。
【請求項３３】
前記設備は、複数のサブ格子に分割されて、コンピュータ処理の複雑性を低減させる請求項１９ないし３２のいずれか１項記載の方法。
【請求項３４】
前記複数の搬送デバイスの移動を制御するための１つ以上の制御コマンドは、前記複数の搬送デバイスの移動に先立って、前記複数の搬送デバイスに提供される請求項１９ないし３３のいずれか１項記載の方法。
【請求項３５】
１つ以上のユーティリティを提供して、コスト関数解析上で、前記スタックの残りのさらなる最適化を決定する任意の先行する請求項記載のシステムまたは方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、搬送デバイスの移動を制御する方法システムおよび装置に関連する。さらに特に、しかし排他的にではなく、本発明は、保管システムからユニットを取り出すための保管システムおよび方法に関連する。特に、しかし排他的にではなく、発明は、製品移動を調整し制御するためのシステムおよび方法にさらに関連する。
【発明の概要】
【０００２】
ある商用および工業用のアクティビティは、非常に多くの異なる製品の保管および取り出しを可能にするシステムを必要とする。
【０００３】
複数の製品ラインにおけるアイテムの保管および取り出しのための、１つの知られているシステムは、通路において配置されている棚の列上に、保管ビンまたはコンテナを配置することを伴っている。各ビンまたはコンテナは、１つ以上の製品タイプのうちの１つ以上の製品を保持している。通路は、棚の列間のアクセスを提供するので、要求された製品を、通路で巡回している作業員またはロボットによって取り出すことができる。
【０００４】
しかしながら、製品にアクセスするための通路スペースを提供する必要性が、このようなシステムの保管密度は比較的低いことを意味していることが正しく認識されるだろう。言い換えれば、製品の保管のために実際に使用されているスペースの量は、保管システム全体に対して必要とされているスペースの量に比較して、比較的小さい。
【０００５】
例えば、オンラインの食料雑貨店やスーパーマーケットのような、複数の製品ラインを販売しているオンライン小売ビジネスは、数十の、または、数百、数千もの異なる製品ラインを保管することができるシステムを必要とする。これらのビジネスのサプライチェーンおよび倉庫動作は、さまざまなコンテナに対して、アイテムを編成し、取り出し、そして、戻すためのそれらの能力に大いに依存している。
【０００６】
さまざまな倉庫および保管設備設計の特定のインプリメンテーションにおいて、コンテナを重ね合わせて積み重ねてもよく、スタックを列で配置してもよい。その後、コンテナに上からアクセスし、列間の通路に対する必要性を除去して、所定の量またはエリアにおいてさらなるコンテナを保管できるようにしてもよい。
【０００７】
これらのインプリメンテーションのうちのいくつかにおいて、コンテナは、１つ以上のロボットまたは自動の手段によってアクセスされるが、これは、コンテナを取り扱うために１つのロケーションから別のロケーションへ移動させることや、コンテナ上で動作を行うことや、コンテナを倉庫中のポジションに戻すこと等のようなさまざまな異なる動作のために、コンテナにアクセスするための経路の格子を通過する。
【０００８】
１つ以上のロボットの、またはそうでなければ自動手段の移動の調整は、多数の異なる製品の保管および取り出しのためのシステムの効率と、スケーラビリティ全体を決定する際に、重要な考慮すべき事柄であるかもしれない。
【０００９】
米国特許第６、６５４、６６２号および欧州特許第１０３７８２８号において、保管および取り出しシステムが説明されており、ここにおいて、コンテナのポジションが常にランダムであるコンテナのいくつかの水平レイヤを形成している垂直フレームワークにおいて、「平行パイプ形状」のコンテナが「深く積み重ねられ、連結して在庫されている」。コンピュータシステムは、コンテナのポジションを連続的に監視して記録しており、所望のコンテナをフレームワークの一番上から取り出し、不要なコンテナは、一度に１つ移動され、所望のコンテナが取り出されるまで一時的なロケーションに再位置付けされ、一時的に再位置付けされているコンテナが同一のスタックに戻され、同一の相対的な順序で戻されるポイントにおいて、所望のコンテナは、（最終的には）元のスタックの一番上に戻される。
【００１０】
米国特許第６、６５４、６６２号および欧州特許第１０３７８２８号において説明されているシステムは、コンテナのポジションが常にランダムであるコンテナのいくつかの水平な調整形成レイヤを有している。さらに、一時的に再配置されたコンテナは、元のスタックに戻されるので、これらの相対的な順序は維持され、所望のコンテナがスタックの一番上に戻される。
【００１１】
提供されているシステムとは対照的に、トラフィックフローや、（履歴の、現在の、および、予測の）アクセスの頻度や、特定のコンテナグループ化や、アクセス時間や、耐火性や、および、または、他の環境区分のような異なる基準に基づいて、水平および垂直の領域において最適化されてもよい計画的なコンテナ配置を提供することが有利であるかもしれない。
【００１２】
したがって、製品の移動を調整して制御するシステムおよびプロセスに対する必要性がある。
【００１３】
発明のいくつかの実施形態にしたがうと、システムは、複数の物体を搬送して、複数の経路を有する設備において動作する、１つ以上の搬送デバイスの移動を制御するために提供されており、システムは、
コンピュータ命令を実行するように構成されている１つ以上のコンピュータを具備し、  コンピュータ命令は、実行されるとき、
複数の経路を通して１つ以上の搬送デバイスを移動させるためのルートを決定して予約する１つ以上のユーティリティと、
衝突を避けるために、１つ以上の搬送デバイスの移動を許可するか、または、停止させるクリアランスシステムを提供する１つ以上のユーティリティとを提供している。
【００１４】
いくつかの実施形態において、システムは、複数の経路を通して、１つ以上の搬送デバイスの、移動とアクションとを最適化するように構成されている１つ以上のユーティリティをさらに具備する。
【００１５】
いくつかの実施形態において、システムは、設備中の１つ以上の搬送デバイスによって、複数の物体の配置を最適化するように構成されている１つ以上のユーティリティをさらに具備する。
【００１６】
いくつかの実施形態において、システムは、１つ以上のワークステーション内で行われる移動または動作を制御する１つ以上のユーティリティをさらに具備する。
【００１７】
いくつかの実施形態において、移動とアクションとを最適化する１つ以上のユーティリティは、パス発見アルゴリズムを利用する。
【００１８】
いくつかの実施形態において、１つ以上のユーティリティは、輻輳緩和技術を使用して、移動とアクションとを最適化する。
【００１９】
いくつかの実施形態において、１つ以上のユーティリティは、機械学習技術を使用して、移動とアクションとを最適化する。
【００２０】
いくつかの実施形態において、１つ以上のユーティリティは、設備内の複数の物体の配置を最適化し、設備内の複数の物体のうちの１つ以上の配置に基づいて、設備の在庫レベルを更新する。
【００２１】
いくつかの実施形態において、１つ以上のユーティリティは、１つ以上のワークステーションのスループットに少なくとも基づいて、搬送デバイスのうちの１つ以上の移動を制御する。
【００２２】
いくつかの実施形態において、１つ以上のユーティリティは、１つ以上の搬送デバイスのうちの少なくとも１つとの欠落した通信を許容するように構成されているクリアランスシステムを提供する。
【００２３】
いくつかの実施形態において、１つ以上のユーティリティは、ルートを決定して予約し、複数の搬送デバイスに命令して、複数の物体のうちの１つ以上を搬送する際に協同させる。
【００２４】
いくつかの実施形態において、１つ以上のユーティリティは、ルートを決定して予約し、そうでなければ他の搬送デバイスに対して最適なルートから、アイドル中の搬送デバイスを移動させる。
【００２５】
いくつかの実施形態において、複数の物体のうちの１つ以上は、複数のコンテナ内で保管されている。
【００２６】
いくつかの実施形態において、設備は、複数のスタック中に複数のコンテナを保管している。
【００２７】
いくつかの実施形態において、１つ以上のユーティリティは、複数のコンテナのうちの１つ以上を搬送するためのルートを決定して予約する。
【００２８】
いくつかの実施形態において、１つ以上のユーティリティが、ルートを決定して予約し、複数の搬送デバイスのうちの１つ以上を制御して、複数のスタックのうちの１つ以上内から、複数のコンテナのうちの１つ以上を取り出す。
【００２９】
いくつかの実施形態において、１つ以上のスタック内から１つ以上のコンテナを取り出すことは、取り出しのために１つ以上のコンテナにアクセスする前に、スタック中の１つ以上の他のコンテナを移動させることをさらに要求する。
【００３０】
いくつかの実施形態において、１つ以上の他のコンテナは、設備内の最適化されたポジション中に、１つ以上の他のコンテナのうちのそれぞれを配置することを含む。
【００３１】
いくつかの実施形態において、設備は、複数のサブ格子に分割されて、処理の複雑性を低減させる。
【００３２】
いくつかの実施形態において、複数の搬送デバイスの移動を制御するための１つ以上の制御コマンドは、複数の搬送デバイスの移動に先立って、複数の搬送デバイスに提供される。
【００３３】
さまざまな態様において、ここでの開示は、保持する設備を備えている少なくとも半自動の注文履行システムにおいて、製品移動を調整して制御するための方法、システムおよび対応する機械実行可能なコード化された命令セットを提供している。さまざまな態様において、開示は、注文の履行において、さまざまな貨物を取り扱うロボットの移動の調整および制御における改善を提供しており、注文は、いくつかのインスタンスにおいて、異なるサイズ、重さ、脆さ、および、他の特性を有するさまざまなアイテムを含んでいてもよい。
【００３４】
上記のさまざまな実施形態および他の態様において、このような保持する設備は、１つ以上の保管装置を含むことができる。同一のまたは他の実施形態において、保持する設備の少なくとも一部分は、動的に移動するように構成されていてもよい。
【００３５】
同一のまたは他の実施形態において、保持する設備は、２つ以上のワークステーション間で共有されていてもよい。
【００３６】
付随する図表式の図面を参照して、発明をここで説明するが、図面は、例示的なものであり、限定的なものでなく、図面において、類似する参照は、類似する部分または対応する部分を指すように意図している。
【図面の簡単な説明】
【００３７】
【図１】図１は、説明において詳述されている、ある態様の一般的なコンピュータハードウェアおよびソフトウェアのインプリメンテーションを提供している実例となるダイヤグラムである。
【図２】図２は、発明のいくつかの実施形態にしたがった、システムの見本のブロックダイヤグラムを提供している。
【図３】図３は、発明のいくつかの実施形態にしたがった、さらに詳細なロボット制御システムの見本のブロックダイヤグラムを提供している。
【図４】図４は、発明のいくつかの実施形態にしたがった、繰り返して用いられる見本のパス発見アルゴリズムに対する見本のワークフローを提供している。
【図５】図５は、発明のいくつかの実施形態にしたがった、見本のヒートマップを提供している。
【図６ａ】図６ａは、サーチ分岐の見積もられるコストが、パスサーチアルゴリズム中の異なる係数を使用した結果として、どのように変化することができるかを実証している表を提供している。これらの係数は、発明のいくつかの実施形態にしたがった、機械学習技術による改善を使用して導出することができる。
【図６ｂ】図６ｂは、図６ａにおいて実証されている異なるコスト係数の使用は、サーチアルゴリズムの次の反復によって、どの分岐が選択されるかを、どのように変化させるかを図示している。
【図７】図７は、発明のいくつかの実施形態にしたがった、倉庫の見本の斜視図を提供している。
【図８】図８は、発明のいくつかの実施形態にしたがった、ウィンチとコンテナとを有するロボットの見本のダイヤグラムを提供している。
【詳細な説明】
【００３８】
発明を実現する際の使用のために適切な方法、システムおよび装置の好ましい実施形態を、図面の参照を通して説明している。
【００３９】
全自動および半自動の貨物保管および取り出しシステムは、それらのさまざまな態様が、時には「注文履行」、「保管および取り出し」および／または「注文ピッキング」システムとして呼ばれることがあり、幅広いさまざまなタイプおよび形態において実現することができる。全自動および／または半自動の取り出しのために保管されている貨物へのアクセスを提供する１つの方法は、完全にまたは部分的に自動のコンテナ取り出しシステムによって個々のコンテナにアクセス可能であってもよいように、例えば、（以後、総称的にコンテナとして呼ばれる）ビンまたは他のコンテナにおける任意の所望のタイプであってもよい貨物の配置を含み、ラッキングにおいて、または、レイヤ中で垂直にコンテナを積み重ねることを、および／または、そうでなければ配置することを含む。
【００４０】
いくつかの実施形態において、システムは、貨物を処理し、修理し、操作し、アセンブリし、分類するシステム等のような、貨物の保管および取り出しを超えるシステムを含んでいてもよく、設備内で、および／または、他の設備または輸送機関に対しての両方で、貨物と、製品と、パーツと、コンポーネントと、サブコンポーネントとの移動が必要とされる。
【００４１】
本明細書の目的として、このような貨物へのアクセスが全自動または半自動の取り出しによって提供されている、注文の保管、取り出し、処理および／または履行のための保管設備は、「ヒブ（hive）」として呼ばれている。「ヒブ」における（「格子」として呼ばれている）さまざまなロケーションにおいて、通過して動作を実行するための、ロボットのエレメントまたはデバイス（「ロボット」）の移動のために、「ヒブ」は、潜在的な経路の格子状のレイアウトから構成されていてもよい。
【００４２】
本明細書は、「ヒブ」、「格子」および／または「ロボット」を有するシステムのみに限定されているのではなく、複数のデバイスの移動および／またはアクティビティを広く制御し、および／または、調整するシステムも企図していてもよい。これらのデバイスは、貨物および／または製品のような、さまざまなアイテムの輸送のために構成されていてもよく、ならびに／あるいは、空であるか、および／または、このような貨物および／または製品を保持していてもよいコンテナの輸送のために構成されていてもよい。これらのデバイスはさらに、注文の履行を伴っていてもよいが、ワークステーションへ、および、ワークステーションから、コンテナを輸送すること、出所ロケーションからターゲットロケーションへ物体を移動させること等のような他の何らかのタイプのアクティビティも伴っていてもよい。
【００４３】
示しているように、デバイスはロボットであってもよく、デバイスは、ヒブの周囲を移動するように、および／または、制御システムと通信して、それらの移動への命令を調整／受信するように構成されていてもよい。いくつかの実施形態において、デバイスは、それら自体の間で通信するように、および／または、それら自体の間で移動を調整するように構成されていてもよい。したがって、デバイスは、さまざまな搬送手段、通信手段、電源投入手段、処理手段、プロセッサ手段、センサ手段、監視する手段、オンボードワークステーション、電子／物理記憶手段、および／または、（ウィンチ、アーム等のような）持ち上げる／搬送する手段を有していてもよい。
【００４４】
デバイスは、システムからの命令を受信するように構成されていてもよいが、デバイスがシステムとの通信を失い、通信経路を低下させ、および／または、特定の時間フレーム内のシステムからの通信を受信しない状況があるかもしれない。
【００４５】
いくつかの実施形態において、デバイスは、互いの間で通信するように、および／または、互いに存在を感知するようにも構成されていてもよい。例えば、余分な通信チャネルを提供して、命令を検証する環境等についてのクラウドソーシング情報において、これらの通信および／または感覚インプットを利用してもよい。
【００４６】
注文の履行は、食料雑貨店チェーンに対するように、さまざまな製品を購入して、顧客への配送のために集約している場合、注文をアセンブリすること；さまざまなサブコンポーネントを有する製品をアセンブリすること；製品に（コンポーネントをともに結合することのような）さまざまな動作を行うこと；製品を分類すること等のような、しかしこれらに限定されないさまざまな動作を含んでいてもよい。
【００４７】
例えば、注文がキャンセルされた場合や、配送が失敗した場合等に、注文は戻されるかもしれない。いくつかのシナリオにおいて、注文がヒブ内の履行のプロセスにある間に、注文がキャンセルされるかもしれず、製品アイテムが戻される必要があるかもしれない。いくつかのシナリオにおいて、アイテムを再びコンテナ中に配置する必要があるかもしれず、コンテナをさまざまなロケーションに移動させる必要があるかもしれない。いくつかのシナリオにおいて、ワークステーションは、注文が戻されるかまたはキャンセルされたとき、製品を拒絶／再加工するためのタスクを行う必要があるかもしれない。
【００４８】
さらに、上述したように、個々のコンテナは、垂直レイヤ中にあってもよく、「ヒブ」におけるこれらのロケーションは、３次元における調整を使用して、ロボットまたはコンテナのポジションと、コンテナの深度（例えば、（Ｘ、Ｙ、Ｚ）、深度Ｗにおけるコンテナ）を表わしていてもよい。いくつかの実施形態において、ロボットまたはコンテナのポジションと、コンテナの深度（例えば、（Ｘ、Ｙ）、深度Ｚにおけるコンテナ）とを表わすために、「ヒブ」におけるロケーションを、２次元で示していてもよい。
【００４９】
ロボットおよびワークステーションのロケーションが、アクションに携わるためにヒブの異なる部分に関係付けられていてもよいという意味において、「ヒブ」自体は、「動的な」環境であってもよい。例えば、ロボットは、特定の注文を履行するために、または、「ヒブ」において製品を保管するために、ヒブ次元（例えば、（Ｘ、Ｙ、Ｚ）、深さＷにおけるコンテナ）における特定のロケーションにおいて、特定のコンテナにアクセスする必要があるかもしれない。これは、さまざまな可能性あるパスに沿った、例えば、格子の一番上に沿ってその後、スタックの選択された深度において、特定のコンテナにアクセスするロボットの移動を伴う。
【００５０】
スタックの選択された深度における特定のコンテナのアクセスは、そうでなければ特定のコンテナにアクセスする能力を妨害するかもしれないコンテナの移動を必要とするかもしれない（例えば、コンテナを積み重ねている場合、多数のコンテナをまず移動させて、スタックのアクセス可能な端にないコンテナにアクセスできるようにしなければならない）。いくつかの実施形態において、ターゲットコンテナにアクセスするために除去されることになる毎コンテナに対して、新たなポジションの評価と最適化とを提供するようにシステムを構成していることは、有利であってもよい。
【００５１】
スタックから移動されたコンテナは、元のスタックに戻るように移動させる必要はない。
【００５２】
潜在的な利点の１つは、より容易にアクセス可能なロケーションにおいて、またはそうでなければ、より便利なロケーションにおいて、コンテナを位置付けられるように、コンテナの分配を修正する能力である。
【００５３】
これは、例えば、より高い需要があることが予期され、進行距離を低減させるために、ワークステーションに近いまたはワークステーション内のロケーションのような、より容易にアクセス可能なロケーションにあることが予期されているコンテナをバイアスさせて、設備内のコンテナの最適な分配を維持するのを助けてもよい。
【００５４】
図７は、発明のいくつかの実施形態にしたがった、倉庫の見本の斜視図を提供している。
【００５５】
ロボットは、さまざまな形状、サイズおよびコンフィギュレーションを有していてもよく、さまざまな通信手段、センサおよびツールを有していてもよい。いくつかの実施形態において、各ロボットは、基地局と基地局制御装置とのセットを通して確立された周波数チャネルのセットを通して、制御システムと通信できてもよい。ロボットは、例えば、コンテナを運ぶためのウィンチを含んでいるさまざまなツールを利用して、コンテナをスタックから移動させて取得してもよい。
【００５６】
図８は、発明のいくつかの実施形態にしたがった、ウィンチとコンテナとを有するロボットの見本のダイヤグラムを提供している。
【００５７】
格子は、矩形の格子エレメントに限定されず、カーブした軌道、起伏のある軌道等から構成されていてもよい。格子経路は、交差点を有していてもよく、１つより多いロボットによってアクセスされてもよい。
【００５８】
各格子は、物理的に、または、論理的に、１つ以上のサブ格子中にセグメント化されていてもよい。
【００５９】
格子は、１つ以上のワークステーションから構成されていてもよい。ワークステーションは、手動であってもよく、半自動または全自動であってもよく、そして、ヒブの中または外で製品を移動させること、製品を製造すること、製品をアセンブリすること、製品をこれらのコンポーネントに対して処理すること、他のステップまたは動作をサポートするためのステージングロケーションを提供すること等のような動作が、ヒブ内で行われる、または、これらのような動作がヒブやコンテナや製品に関連して行われるロケーションまたはエリアからなっていてもよい。
【００６０】
ワークステーションは、例えば、アイテムをインバウンドキャリアから移動させるロケーション、製品が、それらの上で行われるさまざまな動作（例えば、コンポーネントのアセンブリ、塗装すること、分類すること、パッケージ化すること、取り外し、製品を再加工すること、固定パッケージ化すること、キャンセルされた注文において製品を再配置すること、戻された製品を拒絶すること、製品を配置すること）を有しているロケーション、製品をアウトバウンドキャリアに移動させるロケーション、冷却のための能力を有するロケーション、コンポーネントまたは物体をアセンブリするロケーション、製品をステージングまたは先取りするために使用されるロケーション、ロボットを修理して維持するロケーション、ロボットを充電するロケーション、ワーカーが、コンテナ中に置かれることになる製品を「ピッキング」するロケーション、ワーカーが、注文の履行においてコンテナから除去されることになる製品を「ピッキング」するロケーション、コンテナ中にバッグを配置しているロケーション等を含むことができる。
【００６１】
アイテム／製品がヒブに戻される場合、システムは、製品を再び戻して、製品を再加工して、および／または、拒絶された場合に製品を配置するプロセスをサポートおよび／または制御してもよい。シナリオは、製品をシステム中に戻して受け入れることができるか否かを、製品が再加工／再パッケージ化を必要とするか否かを、および／または、製品を代わりに配置すべき（例えば、腐敗しやすい製品が期限切れである）か否かを決定するために、いくつかの実施形態において、（配送トート（tote）であっても、または、同様に他の物体であってもよい）戻されたコンテナを、ワークステーションにおいて処理することを伴っていてもよい。
【００６２】
ワークステーションは、注文の履行のためにアイテムをピッキングするような、さまざまなタスクを行うために存在する１つ以上のワーカーまたはロボットを有していてもよい。
【００６３】
いくつかの実施形態において、ワークステーションは、コンベヤや、冷蔵庫や、さまざまなツーリング技術を有するステーションであってもよく、および／または、貨物やコンテナ等を、操作し、塗装し、固定し、修理し、冷凍し、加熱し、薬品にさらし、冷蔵し、フィルタリングし、アセンブリし、取り外し、分類し、パッケージ化し、スキャンし、テストし、搬送し、保管または処理するための他の技術を有するステーションであってもよい。
【００６４】
ワークステーションは、設備内にそれら自身の経路を有していてもよく、設備等を有する経路を共有していてもよい。ワークステーションは、設備内で、さまざまなインプットおよびアウトプットの経路を、または、他のタイプの入口／出口ポイントも有していてもよい。
【００６５】
いくつかの実施形態において、ワークステーションは、１つ以上の倉庫管理システムと通信して、ワークステーションのステータスに、ワークフローに、必要とされるコンテナに、問題に、保持されているまたそうでなければ操作されている製品（例えば、ともにアセンブリされているサブコンポーネント）等のステータスに関連する情報およびデータを提供する。
【００６６】
保管および取り出しシステムにおいて保管されている複数のアイテムに対する顧客からの注文の受け取りの際、全自動または半自動のコンテナハンドラは、関連するアイテムを含んでいる保管コンテナを、格子、ラッキング、または、他の注文された保管コンテナの配置から取り出してもよく、それらを１つ以上のワークステーションに配送してもよい。
【００６７】
ワークステーションにおいて、アイテムは、保管コンテナから除去されて、配送コンテナ中にピッキングされる前に、中間保持設備中に配置されてもよい。
【００６８】
この明細書を通して示しているように、あるワークステーションに対してインプットである可能性があるコンテナを、これらのワークステーションの至近距離に位置付けるように、コンテナの分配を行うことは有利であり得る。
【００６９】
コンテナからのアイテムのピッキングは、人間のピッカー（picker）によって手動でなされてもよく、あるいは、さまざまな機械的なエレメントまたはロボットのエレメントによる支援または参加を有する、半自動または全自動の方法において行われてもよい。
【００７０】
個々のコンテナがレイヤにおいて垂直に積み重ねられている場合、一番上のレイヤにないコンテナにアクセスすることは、所望のコンテナにアクセスできる前に、所望のコンテナ上のレイヤにおいて保管されているコンテナを移動させるための、さらなる動作のセットを必要とする。例えば、所望のコンテナが、一番上のレイヤより下の１つのレベルである場合、一番上のレイヤ内に存在しているコンテナは、所望のコンテナにアクセスする前に、別のロケーションに移動させる必要があるかもしれない。本明細書を通して示しているように、より高い需要にあるアイテムを保持しているコンテナを、より容易にアクセス可能なポジション（例えば、コンテナの垂直スタックの場合、最上レベル）に向けてバイアスさせるように、コンテナの分配を行うことは、有利であり得る。いくつかの実施形態において、最適化モジュールは、ポジショニングされることになるこれらのコンテナに対して最適なロケーションを提供する。
【００７１】
食料雑貨店注文処理システムのような、広くさまざまなアイテムを取り扱うために適合されている典型的な商品ピッキング動作において、ときには、さまざまなサイズ、形状、重さ、および、他の特徴の、幅広い範囲のアイテムを取り扱わなければならず、またはそうでなければ、対応しなければならないことがあり、これらのアイテムが、１つ以上の注文の履行の間、さまざまな動作を行うために、さまざまなステーションに対して設備の周囲を移動する必要があることが分かる。設備のサイズと編成と配置とに依存して、これらのアイテムの移動は、有利に最適化されていてもよいので、アイテムは効率的に移動され、衝突は回避され、従属性は解決される（例えば、物体は、適切な順序でピッキングされて、荷下ろしされる）。
【００７２】
異なるタイプのコンテナ中のアイテムの配置、ヒブ内でのコンテナの保管、および、説明したような分類／配送のような、これらの作業グループにおいて伴われるさまざまなアクションは、結果として、ヒブ内に含まれているが、異なるロケーションにおけるコンテナの配置も含んでいるコンテナのさまざまな移動になることがある。これらのアクションは、ヒブに対するインバウンド／アウトバウンドアクティビティ（例えば、アイテムを倉庫に運んで、倉庫から運ぶこと）を含んでいてもよく、保管／配送のために製品を乗物から降ろして運搬することと、また、注文履行のために乗物に乗せて運搬することとの管理のような、関係付けられている分類／配送システムも含んでいてもよい。
【００７３】
発明の他の実施形態において、ワークステーションを利用して、アクション（例えば、アセンブリ、取り外し、修正、分類すること、乾燥すること、冷凍すること、テストすること、薬品にさらすこと、物理的操作、固定すること、修理、印刷すること、塗装すること、切断すること、パッケージ化すること、保管、処理すること、溶接すること、テンパーリングすること、再処理すること）をアイテムに実行するワークステーションのように、他のタイプのアイテム取り扱いまたはコンテナ取り扱いを提供してもよい。これらのワークステーションは、手動であっても、半自動であっても、または、自動であってもよく、スループットや、必要とされるインプットや、必要とされるアウトプットや、積荷バランス、必要とされる遅延（例えば、乾燥時間）のような、これらの動作または性能に関係付けられているさまざまなパラメータを有していてもよい。
【００７４】
ロボットのさまざまな移動、コンテナ／物体の配置、そして、製品をいつコンテナから除去すべきかを選択することに対する制御は、１つ以上の制御システムによって制御されて最適化されていてもよい。この制御は、例えば、
１つ以上のロボットの中央管理；
より便利なロケーションに、例えば、ワークステーションに近いロケーションに、または、ワークステーション内のロケーションに、処理するためのコンテナを取り出すためのみでなく、コンテナを「先取り」するためにもロボットを管理すること；
１つ以上のパス発見アルゴリズム（例えば、分岐限定技術）のアプリケーションを通したパス最適化；
１つ以上のパス発見アルゴリズム（例えば、発明の１つの実施形態において、全体として見たとき、格子上の輻輳緩和に対して、ターゲットに対する総時間と、総「累積した熱」との関数としてコストが算出されてもよい、予測される最も低いコスト）に対する、１つ以上の発見的技術のアプリケーションを通したパス最適化；
前もって移動経路をスケジューリング／前処理すること；
移動経路をスケジューリング／前処理する際に、解析の最適な深度を決定するためにシミュレーションを行うこと；
１つ以上のアルゴリズムのコスト関数に適用されている、指数および係数を最適化するための機械学習技術のアプリケーション。いくつかの実施形態において、これは、パスを発見すること、コンテナ配置、および、ワークステーション積荷バランスアルゴリズムを含んでいてもよい；
ジャストインタイムのロボットパス競合解決システム；
それぞれが１つ以上のロボットを含んでいる別々の制御グループへの、ロボット集団の細分化；
重み付けられたコスト係数を使用する、スコアリングされた選択アルゴリズムのアプリケーションのようなさまざまな手段を通した、コンテナロケーション最適化；
ワークステーションへの作業の割り振りの最適化；
将来のタスクおよびアクションをスケジューリングするための、タスクおよびアクションの前処理；
を含んでいる、さまざまなストラテジーのインプリメンテーションを含んでいてもよい。
【００７５】
物体の、全自動または半自動の取り出しと保管と移動とのために、１つ以上のロボットを使用している例示的な環境において、倉庫はまず、異なるロボット、または、ロボットのグループの間で、どのようにコンテナ積荷を分配するかを決定しなくてはならないかもしれない。
【００７６】
例えば、さまざまなグループのロボットおよびピッキングステーションに渡るタスクの割り振りは、倉庫の特定のレイアウトに、アイテムの配置に、貨物の特定の特徴（例えば、アイテムが期限切れである、または、潜在的に危険である）に、および、ワークフローオーダリングに依存して、最適化されてもよい。
【００７７】
例えば、とりわけ、パスに沿った潜在的な輻輳を、動作を完了するために必要とされる時間を、衝突に対する可能性を、特定のロボットの在庫において保持されている物体を、予測される将来の動作を、および、特定のロボットの特徴（例えば、バッテリーのレベル、サービスの問題）を考慮に入れて、ロボットの目的地に対してロボットがとるための潜在的なパスを、インテリジェントに比較するシステムを有していることが望ましい。
【００７８】
さらに、ロボットのパスを妨げるか、または、ブロックするかもしれないアイドル中のロボット、障害物、または、特定のロボットが通過するために探索しているパスを予約している他のロボットのような、「ヒブ」におけるさまざまな条件にインテリジェントに適応しているシステムを有していることが望ましい。
【００７９】
さらに、（例えば、アクセスの容易さのために、コンテナのワークステーションの一番上近くおよび近くで、高需要のＳＫＵのアイテムを有するコンテナを保っている）アイテムの効率的な取り出しにおいて支援するコンテナの分配に向けて、システムをバイアスさせるためのアルゴリズムに基づいた、コンテナをインテリジェントにポジショニングするシステムを有していることはさらに望ましい。
【００８０】
これらは、例を限定するものではなく、任意の最適化方法、配置または考慮を実現してもよい。
【００８１】
図２を参照すると、発明のいくつかの実施形態にしたがった、見本の全自動および半自動の貨物保管および取り出しシステムの概略的なダイヤグラムが提供されている。図２は、高いレベルにおいて、例示的なインプリメンテーションを図示して提供されている。システム２００のさまざまなインプリメンテーションは、多かれ少なかれコンポーネントを伴っていてもよく、図２は、例として単に提供されているに過ぎない。
【００８２】
システム２００は、ロボット制御システム２０２；メンテナンス／監視システム２０４；基地局制御装置２０６；１つ以上の基地局２０８ａと２０８ｂ；１つ以上のロボット２１０ａ、２１０ｂおよび２１０ｃ、および、１つ以上の充電器局２３０から構成されている。２つの基地局２０８ａと２０８ｂと、３つのロボット２１０ａ、２１０ｂおよび２１０ｃのみが図示されているが、システムの他の実施形態において、多かれ少なかれロボットと基地局があってもよいことが理解されるべきである。
【００８３】
１つ以上の倉庫管理システム（ＷＭＳ）２３２、注文管理システム２３４、および、１つ以上の情報管理システム２３６があってもよい。倉庫管理システム２３２は、注文に対して必要とされているアイテム、倉庫中のＳＫＵ、予期される／予測される注文、注文上で欠落しているアイテム、いつ注文を搬送装置上に荷積みすることになるか、アイテムの有効期間満了日、何のアイテムがどのコンテナにあるか、アイテムが壊れやすいか否か、または、大きくて嵩張るか否か等のような情報を含んでいてもよい。
【００８４】
いくつかの実施形態において、倉庫管理システム２３２は、ワークステーションと通信していてもよく、ワークステーションのステータス、ワークステーションが何の製品および／または何のコンテナを特定の時間において受け取ることを必要としているか、ワークステーションが何の製品および／または何のコンテナを特定の時間において別のロケーションに移動させることを必要としているか、ワークステーションにおける動作に対して予期されるワークフロー、ワークステーションにコンテナを運ぶための現在待っているロボットの数のような、ワークステーションの動作に関連する情報も含んでいてもよい。
【００８５】
ロボット制御システム２０２は、１つのロケーションから別のロケーションに移動すること、衝突回避、移動パスの最適化、実行すべきアクティビティの制御等を含むが、これに限定されないロボットのナビゲーション／ルーティングを制御するように構成されていてもよい。ロボット制御装置２０２は、１つ以上のサーバを使用して実現されてもよく、１つ以上のプロセッサを含んでいるそれぞれは、１つ以上の一時的でないコンピュータ読取可能な記憶媒体上で記憶されている命令に基づいて構成されている。ロボット制御システム２０２は、１つ以上のロボットに制御メッセージを送るように、１つ以上のロボットからの１つ以上のアップデートを受信するように、そして、リアルタイムのプロトコルまたはリアルタイムに近いプロトコルを使用して、１つ以上のロボットと通信するように構成されていてもよい。ロボット制御システム２０２は、１つ以上の基地局２０８ａと２０８ｂとからのロボットロケーションおよび利用可能性を示している情報を受信してもよい。ロボット制御システム２０２は、利用可能なロボットの数を、１つ以上のロボットのステータスを、１つ以上のロボットのロケーションを、および／または、それらの現在の命令セットを追跡するように構成されていてもよい。ロボット制御システム２０２は、将来の移動を予期して、プロセッサ負荷を潜在的に低減させて、および、通信リンクに関してトラフィック負荷を予防的に管理もして、１つ以上のロボットに対して制御メッセージを処理するように、および／または、送るようにも構成されていてもよい。コンテナに対して最適な経路を決定して、最適なロケーションを算出すること、ならびに／あるいは、予約および／またはクリアランスを決定することにおいて、ロボット制御システム２０２による使用の際の複雑なアルゴリズムのことを考えると、このようなインプリメンテーションは有利であることがある。
【００８６】
いくつかの実施形態において、サーバは、分配された計算のために、「クラウドコンピューティング」タイプのプラットフォームを利用してもよい。クラウドベースのインプリメンテーションは、開放性、柔軟性、および、拡張性；中央管理可能；信頼性；スケーラビリティ；コンピューティングリソースに対して最適化されていること；多数のユーザに渡って情報を集約する能力を有していること；および、多数のユーザに渡って接続して、興味の一致するサブグループを見つける能力を含んでいる１つ以上の利点を提供してもよい。システムプラットフォームの態様を実現するためのクラウドの使用に関して、本発明の実施形態およびインプリメンテーションを、特定の限定されない例において議論してもよいが、ローカルサーバ、単一の遠隔サーバ、サービスプラットフォームのようなソフトウェア、または、他の任意のコンピューティングデバイスを、クラウドの代わりに使用してもよい。
【００８７】
いくつかの実施形態において、移動最適化モジュールは、１つ以上の制御グループを利用して、１つ以上のグループ中にロボットを隔離してもよい。広い格子に対する制御グループの使用は、（ｉ）ワイヤレス通信リンクが、プランニングにおいて許可されているよりシーケンシャルなパケットを切断する；（ｉｉ）１つ以上のロボットが故障する；（ｉｉｉ）１つ以上のロボットが、性能上で予め決定されている許容範囲外で動作するときのような制御異常の後に、リアルタイムの計算が再プランニングに追いつかないときはいつでも、非常に広い格子の動作を維持する能力のような、ある利点を提供してもよい。
【００８８】
制御停止メッセージは、特定の「制御グループ」におけるロボットに対してブロードキャストされてもよく個々のメッセージを送ることとは対照的に、ブロードキャストするメッセージからの潜在的な利益は、複数の送信スロットと、潜在的により高い信号対ノイズとの使用を通して改善された通信を含んでいてもよい。
【００８９】
いくつかの実施形態において、ロボット制御システム２０２は、ロボットが格子に渡って移動するにつれて、異なる「制御エリア」にロボットを動的に割り当てるように構成されていてもよい。
【００９０】
メンテナンス／監視システム（ＭＭＳ）２０４は、１つ以上のロボットまたは１つ以上の基地局からのアラートを受信することと、クエリロボットに対する接続を確立することとを含んでいる監視する機能を提供するように構成されていてもよい。ＭＭＳ２０４は、関数を監視するコンフィギュレーションに対してインターフェースを提供してもよい。ＭＭＳ２０４は、あるロボットをいつ回収するべきかを示すために、ロボット制御システム２０２と対話してもよい。
【００９１】
基地局制御装置２０６は、ロボット、基地局および格子をマッピングするために、マスタールーティング情報を保管していてもよい。いくつかの実施形態において、倉庫毎に１つの基地局制御装置２０６があってもよいが、発明の他の実施形態において、複数の基地局制御装置があってもよい。基地局制御装置２０６は、高い利用可能性を提供するように設計されていてもよい。基地局制御装置は、１つ以上の基地局２０８ａと２０８ｂとの、動的な周波数選択と周波数割り振りとを管理するように構成されていてもよい。
【００９２】
基地局２０８ａと２０８ｂとは、基地局のプールのように編成されていてもよく、これはその後、待機してアクティブになるように、または、システムを監視するように構成されていてもよい。メッセージは、さまざまな通信手段を通して、ロボットに対して／ロボットからルーティングされていてもよい。通信手段は、任意の通信手段であってもよく、いくつかの実施形態において、通信手段は、ワイヤレス標準規格８０２．１１のもとに置かれるもののような無線周波数リンクであってもよい。基地局２０８ａと２０８ｂとは、処理ユニット２１２ａ、２１２ｂ、デジタル信号プロセッサ２１４ａ、２１４ｂ、および、無線２１６ａ、２１６ｂをさらに含んでいてもよい。
【００９３】
１つ以上のロボット２１０ａ、２１０ｂおよび２１０ｃは、格子の周囲を移動して、動作を実行するように構成されていてもよい。動作は、１つのスタックから別のスタックへコンテナを移動させて、再充電するために充電局に行くこと等を含んでいてもよい。１つ以上のロボットは、１つ以上の基地局２０８ａと２０８ｂと通信するように割り当てられていてもよい。
【００９４】
１つ以上のロボット２１０ａ、２１０ｂおよび２１０ｃは、すべてが同一のタイプのロボットでなくてもよい。さまざまな形状、設計および目的を有する異なるロボットがあってもよく、例えば、内部の収容場所に対してコンテナをウィンチで動かす単一の格子ポジションのフットプリントを有するロボット、カンチレバーロボット、ブリッジロボット、回収ロボット等があってもよい。
【００９５】
いくつかの実施形態において、１つ以上のロボット２１０ａ、２１０ｂおよび２１０ｃは、それらの上にウィンチを有しており、ウィンチを使用して、格子上の１つのポジションから別のポジションへの移動のために、コンテナを維持していてもよい。
【００９６】
ロボット２１０ａ、２１０ｂおよび２１０ｃは、それぞれ、無線２１８ａ、２１８ｂ、２１８ｃ、デジタル信号プロセッサ２２０ａ、２２０ｂ、２２０ｃ、プロセッサ２２２ａ、２２２ｂ、２２２ｃ、リアルタイムの制御装置２２４ａ、２２４ｂ、２２４ｃ、バッテリー２２６ａ、２２６ｂ、２２６ｃ、および、モーター、センサ、コネクタ等、２２８ａ、２２８ｂ、２２８ｃを有していてもよい。
【００９７】
１つ以上の充電器局２３０は、１つ以上のロボット２１０ａ、２１０ｂおよび２１０ｃ上で、バッテリーを充電するための電力を提供するように構成されていてもよい。１つ以上の充電器局２３０は、１つ以上のロボットに対して高いスピードのワイヤードデータアクセスを提供するようにさらに構成されていてもよく、いくつかの充電局は、１つ以上のロボット２１０ａ、２１０ｂ、２１０ｃによる使用のために、格子の周囲に配置されていてもよい。
【００９８】
図３を参照すると、ブロックダイヤグラムは、発明のいくつかの実施形態にしたがった制御システム２０２を提供している。ブロックダイヤグラムは、さらに詳細に制御システム２０２のコンポーネントのうちのいくつかを識別するために、実例となる目的で提供されている。しかしながら、識別されているモジュールまたはインターフェースすべてが必要とされていなくてもよく、さまざまな実施形態において、より多くのモジュールが、または、より少ないモジュールが含まれていてもよい。
【００９９】
制御システム２０２は、作業割り振り、製品の移動、および、製品の配置をどのように改善するかを評価するように構成されていてもよい。発明のさまざまな実施形態にしたがうと、例えば、ダウンタイムの間に周期的に、または、よりアクティブでない時間で、他のものが稼動されている一方、最適化はリアルタイムで稼動されていてもよい。
【０１００】
制御システム２０２は、優先度等を示しているさまざまなビジネスルールのアプリケーションに依存して、特定のタイプの移動をいつ起こすべきか、何の注文においてそれらが生じるべきかをスケジューリングするように構成されていてもよい。制御システム２０２は、例えば、製品配置に対してさえ、決定を行う際に、インバウンドおよびアウトバンドの要因両方を決定するように構成されている。例えば、制御システム２０２は、製品供給の推定される配送ロケーション上で、および、推定される製品のアウトバウンド配送上でアクトしてもよい。制御システムは、決定を行ってもよく、自動システムによる実行のために信号を送ってもよく、および／または、人間（ピッカー、荷を積む人等）に対して効率的にタスクを割り振ってもよい。
【０１０１】
制御システム２０２は、１つ以上のロボットまたは一人以上のピッカーが、注文の履行において、または、他の任意の目的で、１つ以上のアクションを行うべきであると決定してもよい。１つ以上のロボットのアクションは、格子を通過するためのロボットを、および／または、コンテナを取り出すことのようなアクションを行うためのロボットを必要としていてもよい。
【０１０２】
制御システム２０２は、格子においてさまざまな経路を解析して、制約と条件とのセットを与えられている他の経路に対して、潜在的に優先であってもよい１つ以上のパスを決定するように構成されていてもよい。これらの優先経路は、その後、一度、周期的に、および／または、動的に、格子全体を通してロボットの移動を制御するために、ロボットに提供されてもよい。
【０１０３】
より少ない進行距離、より高い予期されるロボットの平均速度、より低いトラフィック（すなわち、輻輳）に遭遇する可能性、より少ない必要とされる総時間、より低い衝突の可能性、より少ない使用電力、経路を変えるために切り替えることの容易さ、障害（例えば、壊れたロボット、落とされたアイテム、壊れたパス、パスの一部が修理中である等）を防ぐ能力を含んでいるが、これに限定されない多数の理由によって、パスは優先であってもよい。
【０１０４】
制御システム２０２は、さまざまなアルゴリズムを使用して、それが接続されているさまざまなロボットの移動を、識別し、設計し、および／または、制御してもよい。いくつかの実施形態において、１つ以上の一時的でないコンピュータ読取可能媒体上に記憶されている１つ以上の命令のセットを実行するように構成されている１つ以上のプロセッサをそれぞれ含んでいる１つ以上のサーバを使用して、制御システムは実現される。コンピュータインプリメンテーションに対する潜在的な利点は、スケーラビリティ、大量の処理および計算の複雑性を取り扱う能力、増加された反応スピード、迅速に決定を行う能力、複雑な統計解析を行う能力、とりわけ、機械学習を行う能力を含んでいるが、これに限定されない。
【０１０５】
本明細書において、より深いところでさらに、これらのアルゴリズムを議論しており、発明のいくつかの実施形態にしたがって、見本のパス発見アルゴリズムと、発見的アプローチとを提供している。
【０１０６】
制約は、格子の現在のレイアウト、ロボットの物理的特性（例えば、最高速度、回転範囲、回転スピード、最大加速度、最大減速度）、輻輳（例えば、ある経路または交差点において予期されるトラフィック負荷）、確立された「ハイウェイ」、ロボットによって運ばれている物体のインパクト（例えば、大きな、嵩張る、または、脆い物体）、（バッテリー状態、損害、メンテナンス問題を含んでいる）ロボットステータスおよび状態、および、ステーションステータス（例えば、目的地ステーションがいっぱいであるか、または、一時的にブロックされている）を含んでいてもよい。
【０１０７】
制御システム２０２は、（ロボットを含んでいるさまざまなユニットと、コンベヤやピッカーや人間等が伴われるような、オプション的に関係付けられている他のユニットとのアクションを制御している）リアルタイムの、または、リアルタイムに近い制御システムであってもよい。制御システム２０２は、１つ以上のモジュールから構成されていてもよい。１つ以上のモジュールは、制御インターフェース３０２、移動最適化モジュール３０４、製品配置最適化モジュール３０６、ロボット物理モデルモジュール３０８、ビジネスルールモジュール３１０、クリアランスモジュール３１２、予約モジュール３１４、コマンド発生およびスケジュールモジュール３１６、ロボット通信モジュール３１８、充電マネージャーモジュール３２０、および、アラート／通知モジュール３２２を含んでいてもよい。これらのモジュールは、さまざまな方法で実現されてもよく、いくつかの実施形態において、１つ以上のプロセッサによって実行されることになる、１つ以上のコンピュータ読取可能媒体上で命令として記憶されているアプリケーションとして実現されてもよい。
【０１０８】
制御システム２０２は、発明のいくつかの実施形態にしたがった、リアルタイムの、または、リアルタイムに近い作業の割り振りと、ワークステーション動作と、ロボットの移動と、および／または、コンテナの配置との制御を提供してもよい。作業の割り振り、コンテナの移動および配置は、注文の履行や、より容易にアクセス可能なポジションへのコンテナの再分配や、推定される発送シーケンスや、メンテナンス動作や、ワークステーション動作や、将来の注文の予期等のような、倉庫内のアクティビティに関連があるようなアクションによって早められてもよい。
【０１０９】
制御インターフェース３０２は、制御システム２０２中に、指示および情報を提供するために、さまざまな外のシステムに対するインターフェースを提供する。制御インターフェース３０２は、さまざまな実施形態において、さまざまな機械およびシステムにインターフェースで接続するために、人間のユーザおよび／またはインターフェースに対するインターフェースを提供してもよい。
【０１１０】
人間に対するインターフェースは、例えば、キーボード、ビジュアルディスプレイ、コマンドプロンプト等を含んでいてもよい。
【０１１１】
機械およびシステムに対するインターフェースは、見本のアクセス物体オブジェクトプロトコル（ＳＯＡＰ）と、表現状態転送（ＲＥＳＴ）サービス、および／または、さまざまなプログラミング言語において書かれているインターフェースを含んでいるが、これに限定されない異なる仕様を使用して実現されるアプリケーションプログラマブルインターフェース（ＡＰＩ）を含んでいてもよい。制御インターフェース３０２は、さまざまな倉庫管理システムと、注文管理システムとを含んでいるが、これに限定されない、さまざまな外のデータベースと対話してもよい。また、さまざまなロボットからの情報（例えば、ロボットが誤動作している、ロボットが充電を必要としている、ロボットが目的地への途中である、ロボットが予期しない障害に遭遇した、等）も受信してもよい。
【０１１２】
制御インターフェース３０２は、ロボットおよびコンテナの制御および移動に関連した、倉庫管理システム（ＷＭＳ）への、および、倉庫管理システムからの情報を、受信して送信してもよい。このような情報は、格子ロケーションおよびサイジング、サブ格子の確立、在庫と注文とのマスター記録、ワークステーションのロケーション、ワークステーションに関連しているパラメータ、および／または、（例えば、注文が外に出される必要があるとき）発送シーケンスも含んでいるが、これに限定されない。アクションが実行され、コンテナがワークステーションに運ばれ、ワークステーション動作が完了され、配送トートが満たされたとき等に、制御インターフェース３０２は、ＷＭＳに対して更新を提供する。いくつかの実施形態において、ＷＭＳと制御インターフェース３０２との間に、確認プロセスがある。ＷＭＳに対するこれらの更新は、例えば、特定のＳＫＵに関連している更新されたストックレベル、更新されたコンテナポジション、コンテナ内の更新された物体ポジション、更新された設備状態等を含んでいてもよい。
【０１１３】
システムのいくつかの実施形態において、ＷＭＳに加えて、システムに入るさまざまな注文、注文の履行、ワークステーション動作、来たるべき注文、および、予測される注文に関する情報を含み提供する、別の注文システムがあってもよい。
【０１１４】
制御インターフェース３０２は、（例えば、誤作動、緊急事態等の事象の際に）特定のロボットの、ロボットのグループの、または、すべてのロボットの動作を停止させるためのコマンドも受信してもよい。
【０１１５】
移動最適化モジュール３０４は、さまざまなアルゴリズムを適用して、１つのロケーションから別のロケーションに潜在的に有利なルートを決定することを通して、ロボットの移動を最適化するように構成されていてもよい。潜在的な利点は、より短い進行距離を、より低い輻輳に遭遇する見込みを、より短い必要時間を、より少ない電力消費を、他のロボットの移動との調整を、壊れたロボットや追跡の切断されたエリアのような障害の周囲をルーティングすることを、さまざまなワークステーション動作との調整等を含んでいてもよい。
【０１１６】
移動最適化モジュール３０４は、作業割り振りと、機能性をプランニングしてスケジューリングすることと、タスクのセットを作り出すこととを含み、その後、どのピッキングステーションを選択するか、または、ロボットがどのタスクを行うべきかを提供するように構成されていてもよい。例えば、これは、ロボットまたはピッキングステーションが位置付けされている場所や、ロボットまたはピッキングステーションの特定の能力等に基づいていてもよい。さらに、特定の注文を履行するのに必要とされる特定の順列とアクションのセットとを決定して、１つ以上のロボットに、および、または、１つ以上のピッキングステーションに対して、アクション／タスクを展開させる。機能性は、とりわけ、インバウンドステーションに対して空のコンテナを配送すること、倉庫の周囲に貨物とともに荷積みされたコンテナを配置すること、コンテナをピッキングステーションまたは他のエリアに運ぶこと、倉庫中の１つのロケーションから別のロケーションにコンテナを移動させること等を含んでいてもよい。
【０１１７】
移動最適化モジュール３０４は、物体を配置するための潜在的に有利なロケーションのセットを決定する際、製品配置最適化モジュール３０６と対話するように構成されていてもよい。例えば、高頻度で要求される特定のＳＫＵのアイテムを含んでいるコンテナの場合、製品配置最適化モジュール３０６は、取り出しのために、よりアクセス可能である、あるスタック中の、あるロケーションにおいて、コンテナを配置するべきであることを示していてもよい。逆に言えば、コンテナが、低頻度で要求される特定のＳＫＵのアイテムを含んでいる場合、より容易にアクセス可能でない格子ロケーション内の、より低い深度において、製品を配置するように決定してもよい。
【０１１８】
移動を最適化する際、移動最適化モジュール３０４は、特定のロケーションを得るのに必要とされる予期される時間、コンテナがスタック内のどのくらい深くにあるか、コンテナをスタックの外に掘り出すのにどのくらい長くかかるか、上に位置付けられているコンテナを他のロケーションに移動させるのに必要であるさまざまな動作等のような、移動と、動作の実行との両方において伴われるさまざまな要因を考慮するように構成されていてもよい。
【０１１９】
移動最適化モジュール３０４に、ロボット物理モデルモジュール３０８からのインプットのセットも提供されてもよく、これは、さまざまな要因に依存して、ロボットの移動に対する制約のセットを通信してもよい（例えば、ロボットが壊れやすい物体を現在運んでいるとき、ロボットは、最高速度の５０％でのみ移動してもよい）。移動最適化モジュール３０４は、格子への、格子外への、および、格子内でのボックスの移動を調整してもよい。
【０１２０】
いくつかの実施形態において、移動最適化モジュール３０４は、ロボットの行程コースの間の優先パスを動的に再算出して、条件および制約が経時的に変化するにつれて、更新されるパスのセットを潜在的に決定してもよい。
【０１２１】
いくつかの実施形態において、格子は移動最適化モジュール３０４によって前処理されて、処理するスピードおよび／または処理する積荷を、潜在的に増加させてもよい。サーチの深度／幅を低減させること、格子をサブ格子に分割すること、分配して処理すること、将来のルートをキャッシュすること、格子を計算容易化する（例えば、解析下にあるノードの数を低減させる）こと、パス再算出を低減させること等のような、積荷を処理することを低減させる他の方法も企図されている。
【０１２２】
いくつかの実施形態において、移動最適化モジュール３０４は、解析のために、格子を複数のより小さなサブ格子に分割してもよい。このような分割は、電力を処理することに対する需要を緩和してもよく、これは、格子サイズが非常に大きい場合、特に有用であり得て、例えば、１０００×１０００のグリッドが１００に分割され、１００×１００の格子と各格子とを、別々に解析してもよい。これは、システムが、非常に多数のロボットを制御するように、または、多数の条件を考慮に入れるように試行している場合、さらに有用であり得る。
【０１２３】
提案された経路のナビゲーションが、他のロボットのクリアランスおよび予約に伴われる問題に遭遇するだろうか否かを決定する際に、そしてまた、これらの問題に遭遇する機会を低減させるかもしれない経路を決定する際に、移動最適化モジュール３０４は、クリアランスモジュール３１２と予約モジュール３１４と対話していてもよい。
【０１２４】
所望のコンテナがスタック内のさまざまな深度でスタック内に位置付けられている場合、所望のコンテナにアクセス可能であるように、移動最適化モジュール３０４は、スタックの外のコンテナの移動において、１つ以上のロボットを制御することを必要としているかもしれない。移動最適化モジュール３０４は、１つ以上のロボットが、コンテナをスタックの外に移動させる際に協同するように、１つ以上のロボットに渡って移動を調整してもよい。
【０１２５】
いくつかの実施形態において、移動最適化モジュール３０４は、コンテナをスタック上に戻す必要がなくてもよく、また、戻すように望まれてさえもいない。むしろ、スタックの外に移動されているコンテナは、製品配置最適化モジュール３０６によって決定されている最適なポジションを有していてもよく、１つ以上のロボットによってそこに移動されてもよい。このような実施形態の潜在的な利点は、コンテナが、それらの元のポジションに戻されていないが、むしろ、より最適なポジションに配置されているときに、増加された効率性が見つけられるかもしれないことである。
【０１２６】
いくつかの実施形態において、クリアランスモジュール３１２、予約モジュール３１４、および、移動最適化モジュール３０４は、パス競合レゾルバーとともに利用されており、移動最適化モジュール３０４は、パスを作り出して、その後、予約モジュール３１４を使用してパスを予約し、クリアランスモジュール３１２は、ロボットが潜在的に競合しているパスに携わっているときに優先を決定することに対して、ジャストインタイムのアプローチを提供する。
【０１２７】
いくつかの実施形態において、移動最適化モジュール３０４は、ロボットが、いっぱいのステーションにコンテナを乗せようと試行している状況に対処するように構成されている。この状況において、移動最適化モジュール３０４は、ステーションがコンテナを受け入れることができるまで、ロボットに、ロボットによって保持されることになる近くのコンテナを取るように命令するように構成されている。ステーションがコンテナを受け入れることができるとき、コンテナは降ろされる。これらの実施形態においては、優先すべき注文において、保持されているコンテナを降ろしてもよい。
【０１２８】
いくつかの実施形態において、ステーションが、保持されているコンテナがその保持されるロケーションに到着する前に降ろすためにフリーになった場合、移動最適化モジュール３０４は、コンテナを保持することなく直接降ろすように再プランニングするだろう。
【０１２９】
いくつかの実施形態において、移動最適化モジュール３０４は、動作を先取りするようにさらに構成されており、ステーションにおいてコンテナが要求される前に、コンテナをステーションのより近くに移動させる。コンテナは、その後、要求されたときに降ろされるように準備完了にされ、これは、降ろす時間の不確実性を低減させてもよい。
【０１３０】
いくつかの実施形態において、システムは、ロボットパスをプランニングするように、そして、遠い将来においてロボットパス予約を効率的に確立して、アルゴリズムが完了できるように構成されていてもよい。
【０１３１】
いくつかの実施形態において、必要とされているある程度の転送プランニングが、シミュレーションによって計算されてもよい。
【０１３２】
短期通信パケット損失、および／または、許可された許容範囲外で稼動されているロボットのようなさまざまな理由のせいで、ロボットがそれらのプランを維持できないとき、再プランニングをしなければならないより高い可能性を有する効率損失に対して、遠い将来へのプランニングをすることの効率利得の間で（統計上の意味において）裁定を下ろすために、シミュレーションを使用してもよい。
【０１３３】
製品配置最適化モジュール３０６は、特定のアイテムを含んでいる特定のコンテナを配置するための、潜在的に有利であるロケーションのセットを決定するように構成されていてもよい。製品配置最適化モジュール３０６は、格子のレイアウト、特定のアイテムが要求される頻度、将来のオーダリング、予測される将来のオーダリング、ワークステーションのロケーション、充電局のロケーション、および、パスの特定のエリアおよび分岐の輻輳レベル、のような関連する情報を、とりわけ、特定のアイテムを含んでいる特定のコンテナを配置するための潜在的に有利なロケーションのセットを決定する際、利用してもよい。
【０１３４】
ロボットは、１つ以上のコンテナを搬送することを課されてもよく、これらのうちのそれぞれは、１つ以上のアイテムを含んで、１つ以上のサービスピッキングステーションの需要を満たしてもよい。各コンテナに、スタックロケーションに関連している指数が提供されてもよいので、特定のコンテナは、特定のスタックロケーションに向かってバイアスされていてもよい。
【０１３５】
スタック内の、または、格子のレイアウトに対する、コンテナの分配およびポジショニングは、倉庫の動作効率全体を助長していてもよい。
【０１３６】
設備中のどこかにコンテナを配置する必要があるさまざまな状況があり、これらの状況は、設備中のコンテナのポジションの分配を再評価するための機会、および／または、最適化するための機会を提示している。
【０１３７】
ポジションが別のポジションよりも良い、または、より悪いことを示すだろうさまざまな考慮がある。これは、ワークステーションへの距離、エリアにおける輻輳のレベル、特定のコンテナによってどのコンテナがブロックされるか、環境要因に対するコンテナの論理グループ化（例えば、可燃性の物体を含んでいるコンテナは、特別なポジショニングを必要とするかもしれない）、ワークステーションによるロケーションに対するインテリジェントな先取りを含んでいてもよいが、これに限定されない。
【０１３８】
例えば、重み付けされたアルゴリズムを、または、他の何らかの適切な方法を使用することによって、これらの考慮をシステムによって利用して、１つのポジションと別のポジションとを比較してもよい。
【０１３９】
例えば、新たなコンテナが設備中に導入されたとき、コンテナを設備に対して戻すとき、スタック内の深くに保管されているアイテムにアクセスするように試行しているロボットによって１つ以上のコンテナを移動させるとき、アイテムがコンテナ中に配置される／コンテナから除去されるとき、コンテナが損害を受けているとして印付けられるとき、コンテナが汚れているとして印付けられるとき等である。
【０１４０】
この最適化は、さまざまなときに行うことができる。例えば、いくつかの実施形態において、下の特定のコンテナにアクセスできるようにするために除去しなければならないコンテナのような、移動させなければならないすべてのコンテナに対して、新たなポジションを決定するために最適化が行われる。
【０１４１】
例えば、各所定のＳＫＵに対して、頻繁に注文されているアイテム、一定数のみのアイテムが、アクセスするのに最も容易な倉庫のエリア（例えば、各ピッキングステーションおよび／またはコンテナのスタックの一番上に対して最も近いロケーション）において分配されている場合、ロボットの移動および動作の数は、潜在的に低減され得る。
【０１４２】
「アクティブウィンドウ」は、（サービスワークステーションに対して用意ができている）アクティブ状態にコンテナを保つ価値がある注文の数として定義されており、システムによって決定される。製品配置最適化モジュール３０６は、下部に予約在庫を有するアクティブなコンテナの一番上のレイヤに向かうように、ヒブレイアウト全体をバイアスさせて、コンテナに対してスコアを割り当てるように構成されていてもよい。
【０１４３】
このスコアリングシステムは、ビジネスルールモジュール３１０によって決定されてもよく、在庫の有効期間満了日のような情報に基づいて設定されていいてもよい。他の情報の間で、履歴の注文を利用して、コンテナに対するスコアを算出することを計算に入れてもよく、このスコアは、ＳＫＵの在庫レベルが変更する度毎に、継続ベース上で更新されてもよい。このスコアリングシステムを利用して、コンテナのポジションをバイアスさせるのを助けて、設備内のコンテナのポジションニングの最適性を維持してもよい。
【０１４４】
いくつかの実施形態において、システムは、ロボット移動を制御して、ＳＫＵ毎の１つ以上のコンテナの「アクティブ」なプールを維持して、１つ以上のサービスワークステーションの需要を満たすように構成されていてもよい。「アクティブ」なプールが消耗されたとき、「予約」コンテナが、「アクティブ」なプール中に促進されてもよい。
【０１４５】
システムのいくつかの実施形態において、システムは、「収納（put away）アルゴリズム」を使用して、コンテナを配置しているときに、空のロケーションの利用可能なプールから、「ベストマッチ」のスタックロケーションを決定して、ロボット移動を制御するように構成されていてもよい。
【０１４６】
いくつかの実施形態において、「アクティブ」なプールは、１つ以上のサービスワークステーションからの並行する需要をサポートするように構成されていてもよい。
【０１４７】
いくつかの実施形態において、製品配置最適化モジュール３０６はまた、ピッキングステーション間で注文をバランスさせてもよい。
【０１４８】
ロボット物理モデルモジュール３０８は、ロボットに関連した特定の物理的特性をモデリングするように構成されている変数のセットを保管するように構成されていてもよい。例えば、モデルは、ロボットの長さ、重さ、高さおよび幅、ロボットの最大の運ぶ能力、ロボットの回転スピード、ロボットのウィンチサイクル時間、ロボットの最大速度および加速度、セット量のバッテリー寿命を与えられているロボットが、あるアクションを実行する能力等のような、物理的な特性を示していてもよい。ロボット物理モジュール３０８は、ロボットの最大速度、最大加速度および最大回転スピードを含んでいる、ロボット移動のある特徴上の限定を決定する際に、ビジネスルールモジュール３１０とインターフェースで接続してもよい。例えば、多数の卵のカートンを運んでいるロボットは、物理的な力による卵の脆さ、および、壊れやすさによって、ロボットの最大の加速度／減速度のうちの２５％のみで加速／減速することが必要とされるかもしれない。
【０１４９】
ビジネスルールモジュール３１０は、倉庫、ロボットおよび通信システムの特定の環境に基づいて、ビジネスルールのセットを作り出して適用する。例えば、ビジネスルールモジュール３１０は、アイテムのある類に対して、それを提供してもよく、輸送における貨物によって受ける損害の量を潜在的に低減させるために、ロボット物理モデルモジュール３０８にとって、さまざまな制約が有効である。ビジネスルールが実現されてもよい場合の例は、高リスクの製品（例えば、酸、漂白剤等）、エアゾールを有するコンテナ、および、とりわけ、可燃性の内容物を有するコンテナを含んでいる。空のコンテナはまた、他のコンテナとは異なるように処置されてもよい。
【０１５０】
再使用する前にコンテナを洗浄すること、ある物体を含んでいるロボットを減速させること等のようなアクションを、ビジネスルールは含んでいてもよい。
【０１５１】
ビジネスルールモジュール３１０は、製品の配置を管理するルールのセットを作り出して適用するようにも構成されていてもよい。例えば、高頻度のアイテムや、到来している注文によってまもなくピッキングされるかもしれないアイテムのために、異なるルールが配置されていてもよい。
【０１５２】
クリアランスモジュール３１２は、さまざまなロボットに対してクリアランスを保管して提供するように構成されていてもよい。クリアランスのシステムは、通過するためのロボットに対してパスがクリアであるか否かを決定するためにアクセスされてもよい。クリアランスモジュール３１２は、受動的な衝突回避システムとして実現されてもよく、ロボットは、性能に影響することなく可能な最小量の作業のみを与えられる。
【０１５３】
新たな命令を有するロボットを提供する際、例えば、格子の次元、格子ポジション、プランニングによって発生された移動コマンド、（制御された停止のような、事象上で発生された）移動コマンドのキャンセル、ロボットの現在のポジションおよびスピード、ロボットの制動能力とともに、ロボットが訪れるのにクリアである場所に基づいて、クリアランスモジュール３１２は、別のロボットと衝突する可能性がないだろうことをチェックする。
【０１５４】
クリアランスモジュール３１２は、「ジャストインタイム」のクリアランスを発行するように構成されていてもよく、ロボットに対して、それらのプランニングされたパスに沿って継続するための許容を許可するのに使用してもよい。新たなクリアランスが、各ロボットステータス報告に応答して、発生されて（または、抑制されて）もよい。したがって、クリアランスモジュール３１２は、パス競合レゾルバーとしてアクトしてもよい。クリアランスが必要とされる場合、クリアランスモジュール３１２は、競合を解決するか、または回避するためのルートを動的に再プランニングするために、移動最適化モジュール３０４と対話してもよい。
【０１５５】
クリアランスモジュール３１２は、制御インターフェース３０２に対して、パスに対して何のクリアランスがあるかを、（例えば、プランニングシステムに対して、これが、現在のクリアランスの最後から、動的な再プランニングを可能にしてもよいとき、）クリアランスがいつ発行されるかの通知を、（例えば、エラーケースを識別するために、および、再プランニングの必要性を識別するために、）クリアランスをいつ抑制するかの通知を提供してもよく、（ロボット、ロボット通信、または、制御システム２０２での潜在的な問題があるので、）アラートシステムに対して、提供してもよい。
【０１５６】
クリアランスモジュール３１２は、欠落しているメッセージ、処理時間、クロック同期、および、とりわけ、物理モデルとのロボットの不一致を含んでいる許容範囲のセットに基づいて、クリアランススキームを考案するように構成されていてもよい。
【０１５７】
クリアランスモジュール３１２は、ロボットのポジションおよびスピード更新と、与えられている／抑制されているクリアランスとに基づいて、格子上の１つまたは多くのポジションに対して、安全なエントリ時間のセットを提供してもよい。安全なエントリ時間のセットは、格子の状態が変化するにつれて、動的に更新されてもよい。
【０１５８】
いくつかの実施形態において、予め決定された時間期間（例えば、３秒）の間、ロボットにクリアランスのみが提供されるように、クリアランスモジュール３１２は構成されていてもよい。時間期間が、衝突の危険にさらされることなくロボットが停止するのに十分であるように、ロボットに与えられたクリアランスは構成されていてもよい。
【０１５９】
いくつかの実施形態において、制御システム２０２が、ロボットからの構成可能な数のステータスメッセージを取り逃しても、短い時間期間の間、依然としてロボットに動作を継続させることができてもよいように、クリアランスを提供するように、クリアランスモジュール３１２は構成されていてもよい。この設計は、結果として、欠落しているパケットに対してより許容可能であるかもしれないシステムであってもよく、これは、通信が有するいくつかの問題に遭遇する場合でさえ継続されている動作を有することにおいて、有利であり得る。ロボットが、そのクリアランスの最後に、停止するために自律的に減速する前に、制御システム２０２が、ロボットからのステータスメッセージを受信する見込みがある高い可能性があるように、構成可能な数をセットしてもよい。
【０１６０】
いくつかの実施形態において、ロボットが減速し始めた場合、停止することが可能になるだろう、そして、制御システム２０２は、その後、先の予約をキャンセルして、格子を通してそのパスを再プランニングしてもよい。
【０１６１】
予約モジュール３１４は、格子上でさまざまなパスを予約している（例えば、ロボットＡは、パスＸをとるようにプランニングしており、予期される通過時間の間、パスＸを予約する。ロボットＢは、ロボットＡがパスＸを予約したことを知ると、代わりにパスＹを選ぶ）。予約モジュール３１４は、競合しないロボット移動プランを生成させるように設計されていてもよく、クリアランスモジュール３１２および移動最適化モジュール３０４とともに働くように構成されていてもよい。
【０１６２】
予約モジュール３１４は、２つのロボットにオーバーラップする予約が与えられてはよくない場合、とりわけ、プランにわずかに外れたロボットに対する許容範囲を、失われたロボット通信メッセージに対する許容範囲を、および、クロック不一致に対する許容範囲を考慮に入れて、タイムスパンの間、格子ロケーションに対するロボットのために予約を提供するように構成されていてもよい。
【０１６３】
いくつかの実施形態において、特に、同時に行われる非常に多数のロボットアクションおよびタスクがある場合、予約モジュール３１４を、前もってルートを予約するのに使用して、ロボットが競合パスをとるようにプランニングしないことを確実にしてもよい。予約モジュール３１４は、任意のロボットが、衝突の危険にさらされることなく、制御された制動下で停止するために、十分な許容範囲を可能にするように構成されていてもよい。
【０１６４】
予約モジュール３１４は、先行プランニングを可能にするために、移動最適化モジュール３０４と対話して、遠い将来において十分にロボットパス予約を確立するように構成されていてもよい。いくつかの実施形態において、予約モジュール３１４および移動最適化モジュール３０４は、移動アルゴリズムの計算を完了するのに十分な先行プランニングをさせる。
【０１６５】
コマンド発生およびスケジュールモジュール３１６は、１つ以上のロボットに送信されることになる命令のセットを発生させる。これらの命令は、例えば、ロボットＡが、コンテナＣを取得するためにロケーションＢに移動して、コンテナＣをワークステーションに運び、その後、コンテナＣを特定のロケーションＤに戻すように要求されていることを含んでいてもよい。これらの命令は、プランニングされた／スケジューリングされたルートを可能にするために、リアルタイムに近い／リアルタイムのコンフィギュレーションにおいて送信されてもよく、ジャストインタイムのコンフィギュレーションにおいて、および／または、時間の前に提供されていてもよい。さらに、いくつかの実施形態において、コマンド発生およびスケジュールモジュール３１６は、ロボットが、設備に渡ってその道を急速に進行するのを助けるために、予約およびクリアランスを調整する。
【０１６６】
コマンド発生およびスケジュールモジュール３１６は、単一のパスまたは１つ以上のパスを、および／または、さまざまなロケーションにおいて実行するための多数の動作を備えているコマンドセットを提供するように構成されていてもよい。コマンド発生およびスケジュールモジュール３１６は、個々のロボットに提供されることになるロボット通信モジュール３１８に対して、これらのコマンドを提供する。いくつかの実施形態において、コマンド発生およびスケジュールモジュール３１６は、特定のロボットに対する命令を予め格納しており、これらの命令は、その後、将来に実行されることになるロボット通信モジュール３１８を通してロボットに提供されてもよい。
【０１６７】
ロボット通信モジュール３１８は、１つ以上の基地局と基地局制御装置２０６とを介して、情報を、ロボットに戻るように送信し、ロボットから外に送信するように構成されていてもよい。いくつかの実施形態において、ロボット通信モジュール３１８は、ワイヤレス信号の使用を通して通信してもよい。上記で示しているように、これらの命令セットは、ジャストインタイムである必要はなく、将来の移動の調整のために命令セットを送ってもよい。
【０１６８】
ロボット通信モジュール３１８は、さまざまなロボットからのステータス報告を受信してもよい。ロボット通信モジュール３１８は、同期、非同期、ポーリング、プッシュまたはプルの方法論を利用することのようなさまざまな方法において実現されてもよい。さらに、さまざまなインプリメンテーションは、「ハンドシェイク」通信の使用を含んでいても、含んでいなくてもよい。
【０１６９】
いくつかの実施形態において、「ハンドシェイク」がない場合、通信システムは、メッセージ配信を保証しなくてもよいので、消失パケットが後から起こる。このようなシステムに対する潜在的な利点は、減少された帯域幅要件と、ベストエフォートのベースでの命令の提出とを含んでいてもよい。命令パケットを、タイミングして再ブロードキャストすること、パリティ情報または他の妥当性検証スキームを含むオーバーラップする命令パケットを送ること、または、他のフロー制御および再送信のスキームのような、消失パケットの影響を最小化するためのさまざまなスキームを実現してもよい。
【０１７０】
発明の他の実施形態において、「ハンドシェイク」を使用して、パケットが確実に受信されるようにしてもよい。
【０１７１】
ロボットに対するコマンドは、ロボットによって実行されることになる動作の開始時間の前に発行されてもよく、開始時間とコマンドの発行との間のこの時間は、構成可能なパラメータであってもよい。
【０１７２】
いくつかの実施形態において、配送を確実にするために、コマンドは、ロボットに対して繰り返され、ロボットは、コマンドが受信されたという肯定応答を提供してもよい。
【０１７３】
メッセージが、スケジューリングされている開始時間の前に受信されていない場合、ロボットは、コマンドを無視するように構成されていてもよく、コマンドを受信するのが遅過ぎたことを示しているステータスメッセージを戻してもよい。このケースにおいて、ロボット制御システム２０２は、ロボットに対する既存の予約をキャンセルし、ロボットに対するタスクを再プランニングするように構成されていてもよい。
【０１７４】
いくつかの実施形態において、ロボットは、（例えば、コマンドシーケンス番号によって）受信された最後のコマンドを肯定応答する、普通のステータスメッセージを戻す。ロボット制御システム２０２は、いくつかの実施形態において、発行された最後のコマンドが、ロボットによって肯定応答されるまで、特定のロボットに対して新たなコマンドが発行できないように構成されていてもよい。コマンドが、特定の期間（例えば、構成可能なタイムアウト期間）の後に、ロボットによって肯定応答されていない場合、ロボット制御システム２０２は、ロボットに対して既存の予約をキャンセルするように構成されていてもよい。（コマンド）通信がロボットによって再確立されたとき、ロボット制御システム２０２は、ロボットに対する動作を再プランニングする。
【０１７５】
各ロボットステータスメッセージの受信の際、ロボット制御システム２０２は、クリアランスモジュール３１２を通して、ロボットの現在の移動クリアランスを拡張するように構成されていてもよい。
【０１７６】
充電マネージャーモジュール３２０は、ロボットを再充電するための移動プランを作り出すように構成されていてもよい。充電マネージャーモジュール３２０は、ロボットが特定された最小の充電を有するだろうときを推定し、そのポイントにおいて、または、そのポイントの前に、すべてのロボットが確実に充電できるようにするように構成されていてもよい。
【０１７７】
アラート／通知モジュール３２２は、潜在的な問題が起こったときに、または、予め決定されているビジネスルール、例えば、競合によって抑制されている予め決定されている数のクリアランスに基づいて、制御インターフェース３０２に対して、アラートまたは通知を提供するように構成されていてもよい。
【０１７８】
本システムおよび方法は、さまざまな実施形態において実施されてもよい。適切に構成されているコンピュータデバイス、および、関係付けられている通信ネットワーク、デバイス、ソフトウェアおよびファームウェアは、上記で説明したような１つ以上の実施形態を可能にするためのプラットフォームを提供してもよい。例として、図１は、記憶ユニット１０４に、および、ランダムアクセスメモリ１０６に接続されている中央処理ユニット（「ＣＰＵ」）１０２を含んでいてもよい、一般的なコンピュータデバイス１００を示している。ＣＰＵ１０２は、動作システム１０１、アプリケーションプログラム１０３、および、データ１２３を処理してもよい。動作システム１０１、アプリケーションプログラム１０３、およびデータ１２３は、要求されるかもしれないので、記憶ユニット１０４において記憶されていてもよく、メモリ１０６中にロードされていてもよい。コンピュータデバイス１００は、グラフィック処理ユニット（ＧＰＵ）１２２をさらに含んでいてもよく、これは、ＣＰＵ１０２に、そして、メモリ１０６に、動作可能に接続されて、ＣＰＵ１０２からの集約的なイメージ処理算出をオフロードして、これらの算出を、ＣＰＵ１０２と並行して稼動させてもよい。オペレータ１０７は、ビデオインターフェース１０５によって接続されているビデオディスプレイ１０８と、Ｉ／Ｏインターフェース１０９によって接続されている、キーボード１１５、マウス１１２およびディスクドライブまたはソリッドステートドライブ１１４のような、さまざまなインプット／アウトプットデバイスとを使用して、コンピュータデバイス１００と対話してもよい。知られている方法において、マウス１１２は、ビデオディスプレイ１０８におけるカーソルの移動を制御するように、そして、ビデオディスプレイ１０８中に出現するさまざまなグラフィックユーザインターフェース（ＧＵ）制御を、マウスボタンで動作させるように構成されていてもよい。ディスクドライブまたはソリッドステートドライブ１１４は、コンピュータ読取可能媒体１１６を受け入れるように構成されていてもよい。コンピュータデバイス１００は、ネットワークインターフェース１１１を介してネットワークの一部を形成して、コンピュータデバイス１００が、（示されていない）他の適切に構成されているデータ処理システムと通信できるようにしてもよい。１つ以上の異なるタイプのセンサ１３５を使用して、さまざまな出所からのインプットを受信してもよい。
【０１７９】
本システムおよび方法は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータまたはワイヤレスハンドヘルドを含んでいるコンピュータデバイスの、実質的に任意の方法で実施されてもよい。本システムおよび方法は、本発明にしたがった方法において、さまざまなプロセスステップのそれぞれを実現するために、１つ以上のコンピュータデバイスを可能にするためのコンピュータプログラムコードを含むコンピュータ読取可能な／使用可能な媒体としても実現されてもよい。動作全体を実行する、１つより多いコンピュータデバイスのケースにおいて、コンピュータデバイスは、動作のさまざまなステップを分配するようにネットワーキングされている。用語コンピュータ読取可能な媒体またはコンピュータ使用可能な媒体は、プログラムコードの任意のタイプの物理実施形態のうちの１つ以上を備えていることが理解される。特に、コンピュータ読取可能な／使用可能な媒体は、コンピュータおよび／または記憶システムに関係付けられているメモリのような、コンピューティングデバイスの１つ以上のデータ記憶区分上で、製品の１つ以上のポータブル記憶物品（例えば、光学ディスク、磁気ディスク、テープ等）上で具現化されているプログラムコードを備えることがある。
【０１８０】
移動体デバイスが、本来のアプリケーションよりもむしろ、ウェブサービスにアクセスするためのリンクを含んでいる場合、本発明の移動体アプリケーションは、ウェブサービスとして実現されてもよい。
【０１８１】
説明している機能性は、ｉＯＳ（登録商標）プラットフォーム、アンドロイド（登録商標）、ウィンドウズ（登録商標）またはブラックベリー（登録商標）を含んでいる、任意の移動体プラットフォームに対して実現されてもよい。
【０１８２】
当業者によって、ここで説明している他の実施形態の他のバリエーションも、発明の範囲から逸脱することなく実施されてもよいことが正しく認識されるだろう。したがって、他の修正も可能性がある。
【０１８３】
分岐限定アルゴリズム、制約プログラミング、ローカルサーチ、発見的方法、グラフトラバーサル、動的パス学習アドバイザ技術、プルーニング技術、および、ベイズのグラフサーチ技術、ダイクストラのアルゴリズム、ベルマン・フォードのアルゴリズム、ワーシャル・フロイドのアルゴリズム、ジョンソンのアルゴリズム、幅優先の再帰的サーチ、および、深さ優先の再帰的サーチ、重み付けされたパス、Ａ＊サーチアルゴリズム、Ａ＊サーチアルゴリズム上の変形（例えば、Ｄ＊、フィールドＤ＊、ＩＤＡ＊、フリンジ、フリンジセービングＡ＊、一般化された適応Ａ＊、ライフロングプランニングＡ＊、単純化されたメモリ有界Ａ＊、ジャンプポイントサーチ、シータ＊）を含んでいるが、これらに限定されない多数の異なるアルゴリズムおよび技術を、ロボットがとるための優先パスを決定する際に使用してもよい。
【０１８４】
以下のセクションにおいて、発明のいくつかの実施形態にしたがった、見本のサーチアルゴリズムおよび発見的方法が提供されている。
【見本のサーチアルゴリズム】
【０１８５】
このセクションにおいて、発明のいくつかの実施形態にしたがった、見本の、単純化されたアルゴリズムが提供されている。
【０１８６】
実例となる目的のために、発明のいくつかの実施形態にしたがって、アルゴリズムを、図４のもとでワークフローとして図表を用いて提供している。この見本のアルゴリズムは、上記で説明しているような概念に対する実例として単に提供されているのみであり、限定している例ではないことが理解されるべきである。
【０１８７】
アルゴリズムは、分岐限定サーチを利用し得る反復サーチアルゴリズムであってもよく、輻輳回避のための「ヒートマップ」を含んでいる「ニア・ベスト・ファースト」の発見的モデルを適用してもよい。分岐は、重み付けされたコスト関数を使用して選択されてもよく、アルゴリズムは、格子／ロボットの形状／サイズに対して緩く結合されていてもよい。
【０１８８】
いくつかの実施形態において、分岐は、分類された収集において保持されていてもよい。
【０１８９】
アルゴリズムの実施形態にしたがうと、以下の再帰的な分岐限定関数が適用される。    各反復上で、
（ａ）最低コストの分岐ｂを選択
（ｂ）すべての方向においてｂ分岐して、新たな分岐Ｂを生成
（ｃ）Ｂにおける各分岐ｂ’に対して、
ｂ’がターゲットに到達している場合、
ｂに戻る
さもなければ、
ｂ’を追加して、サーチ
コスト比較器は、次の反復のために、最低コストの分岐の追跡を可能にする。
【０１９０】
パスサーチを実行する際、さまざまな発見的方法を適用して、適用された発見的方法に依存すること、分岐全体を除去すること、または、より計算の少ない集約的解析を行うことによって、必要とされる計算を低減させてもよい。見本の発見的技術を、本明細書の後のセクションにおいて提供している。
【０１９１】
新たな分岐が、別のロボットがとるかもしれないパスとの競合を、または、アイドル中のロボットとの競合を有している場合、サーチアルゴリズムは、
（加速プロフィールが可能にする場合、）競合している予約を追い越すために分岐を変更してもよい；
パスに沿った任意のポジションにおいて待つことを含むように、分岐を変更してもよい；または、
分岐を、実行不可能であるとして廃棄してもよい。
【０１９２】
いくつかの実施形態において、ロボットがそれらの開始ポイントにおいて待っている場合、パスを選択してもよい。
【０１９３】
そうしている際、サーチスペースを正しく使い果たすことはできない（例えば、ロボットがその目的地に対してとるための受け入れ可能なパスが現在ない場合、競合していないパスが利用可能になるまでロボットが待つパスが選択されるかもしれない）。
【見本の発見的（ｈｅｕｒｉｓｔｉｃ）技術】
【０１９４】
サーチアルゴリズムは、可能な最短時間をとることや、輻輳するエリアを回避するように対処すること等のような、任意の数のゴールを優先してバランスさせるように構成されていてもよい。
【０１９５】
以下に、見本の、実例となる目的に対する発見的方法(heuristics)の使用のアプリケーションの、限定していない例を提供している。
【０１９６】
発明の実施形態において、各サーチは、現在の最も低いコスト分岐を追跡してもよく、重み付けされたコスト関数を使用して、さまざまな発見的方法に基づいて、分岐の選択オーダリングをバイアスさせてもよく、これは、（ａ）計画された最短のパス時間と、（ｂ）ヒートマップに基づいて計画された累積された熱とを含んでいてもよい。他の発見的技術が企図されているが、実例となる目的のために、上記で識別した２つに対するさらなる詳細を提供しよう。
【０１９７】
（ａ）計画された最短のパス時間
任意の分岐に対して、制御システムは、現在の分岐先端から目的地までの可能性ある最短のパス時間を決定してもよい。
計画された時間コストは、その後、ターゲットに対する最短の、制約されていない、可能性あるパスに対する時間に追加された、分岐に対するそれまでの（例えば、必要とされた任意の待ち時間等を含んでいる）総時間として決定されてもよい。
【０１９８】
（ｂ）（ヒートマップに基づいて）計画された最小の熱
ヒートマップを作り出す際、「熱」値は、格子上のポイントにおいて、または、格子の特定のエリアに対して、輻輳のモデルを近似している各座標に割り当てられていてもよい。
【０１９９】
図５は、発明のいくつかの実施形態にしたがった、見本のヒートマップを提供している。
【０２００】
いくつかの実施形態において、「熱」値は、ワークステーションへの近接を使用して決定されてもよいが、発明の他の実施形態において、「熱」を、さまざまな他の技術を使用して、観測し／学習し／算出し／予測してもよく、これらのうちのいくつかは、動的な、または、反復の技術であってもよい。
【０２０１】
計画された最短のパスと同様に、集約されたパスを、目的地に対して計画してもよい。
【０２０２】
その後、計画された最小の熱が決定される。いくつかの実施形態において、計画された熱コストは、計画されたパスの「最も冷たい」（最小の熱さの）熱に追加された、現在の分岐におけるすべての訪れた座標の熱の合計である。
【見本の重み付けされたコスト関数】
【０２０３】
いくつかの実施形態において、使用されるアルゴリズムは、重み付けされたコスト関数に基づいている。異なる係数を使用するように構成されているクラウドにおける非常に多数の同時シミュレーションの結果を学ぶことによって、および／または、さまざまな機械学習アプローチと技術とを適用することによって、ことによると、観測されたデータおよび／またはシミュレートされたデータの広大なセットを使用することによって、関係付けられたコスト係数の最適化に対して、このようなアルゴリズムは影響を受けやすいかもしれない。
【０２０４】
いくつかの実施形態において、サーチアルゴリズムは、２つのコスト係数を有している。（ａ）計画された最短のパス時間係数（Ｃｔ）、および、（ｂ）計画された最小の熱係数（Ｃｈ）。
【０２０５】
いくつかの実施形態において、サーチアルゴリズムは、以下の方程式を含んでいてもよい。
【０２０６】
分岐コスト＝Ｃｔ＊ＰＳＰ+Ｃｈ＊ＰＭＨ
（ここで、ＰＳＰは、計画された最短のパス時間を指し、ＰＭＨは、計画された最小の熱を指している）。
【０２０７】
いくつかの実施形態において、複雑な関連性をモデリングする、構成可能な指数または機械学習して導出された指数とともに、コスト関数を利用してもよい。実例となる目的のために提供されている見本の、単純化されたコスト関数は、
分岐コスト＝Ｃｔ＊ＰＳＰ×＋Ｃｈ＊ＰＭＨｙを含み、ここで、ｘおよびｙは、さらに構成可能な、および／または、機械学習された指数であってもよい。
【０２０８】
図６ａは、サーチ分岐の計画されたコストが、パスサーチアルゴリズムにおいて異なる係数を使用したことの結果として、どのように変化できるかを実証している表を提供している。これらの係数は、発明のいくつかの実施形態にしたがった、機械学習技術による改良を使用して導出できる。
【０２０９】
図６ｂは、図６ａにおいて実証されている異なるコスト係数の使用が、サーチアルゴリズムの次の反復によって選択されるだろう分岐を、どのように変化させるかを図示している。
【０２１０】
いくつかの実施形態において、機械学習された係数および／または指数のセットをより良くするために、制御システム２０２は、経時的にルールのセットを作り出し、適応させ、適用するようにさらに構成されていてもよい。機械学習された係数および／または指数の使用は、時間期間を通して、発見的技術の効率を潜在的に増加させてもよい。
【見本の分路（ｓｈｕｎｔｉｎｇ）サーチ】
【０２１１】
システムは、ロボットパスを調節して、アイドル中のロボットのポジションを考慮するように構成されていてもよい。いくつかの実施形態において、タスクを有するロボットとは無関係に追跡されるかもしれないアイドル中のロボットがあってもよい。これらのアイドル中のロボットは、計画されたパスおよび関係付けられた予約を有していないかもしれず、別々に考慮される必要性があり得る。
【０２１２】
タスクが最終決定されたとき、別の「分路サーチ」を実行してもよい。「分路サーチ」は、タスクを課されているロボット（以後、主要なロボットと呼ぶ）のパスにおいて現在アイドル中であるか、またはこれからアイドル中になるだろうロボットを、それらが継続してアイドル中であってもよく、主要ロボットのパスの行く手を塞がないロケーションに移動させるためのパスを発見することから構成されていてもよい。
【０２１３】
この「分路サーチ」は、いくつかの実施形態において、サーチを実行することを備えており、主要ロボットのパスにおいて現在アイドル中であるか、またはこれからアイドル中になるだろう各ロボットに対して、サーチが実行され、ロボットがいつまでも残ることができるロケーションを発見したときに、これは解決されたと見なされてもよい。
【０２１４】
「分路サーチ」は、主要ロボットのパスサーチとして、同じ分岐限定サーチアルゴリズムを使用してもよいが、異なるコスト係数と解決基準を有しているかもしれない。ロボットが時間的に道の外に移動することができない場合、主要ロボットのパスの開始に対して、待ち時間が追加されてもよく、主要ロボットのパスが再算出されてもよい。
【見本の収納アルゴリズム】
【０２１５】
アルゴリズムを使用して、戻されることになるコンテナに対するスタックロケーションを決定してもよい。コンテナはさまざまな理由のために戻されるかもしれず、コンテナが戻されるロケーションは、ヒブ中の物体／コンテナの分配を改善することのような、さまざまな利点に対して最適化されてもよい。
【０２１６】
ヒブ中のすべてのスタックロケーションは、
すべてのワークステーションからの（ロボット動作時間において測定された）平均距離；
最も近いワークステーションからの（ロボット動作時間において測定された）距離；および、
（深度＞０の場合）概算の掘り出しコスト；の構成可能な、重み付けされたコスト関数でスコアリングされてもよい。
【０２１７】
システムは、プランにおけるすべての動作が実行された後、ヒブの現在の終了状態の「ヒブプラン」を保っていてもよい。
【０２１８】
「ヒブプラン」は、ロボットがコンテナを配置できる「利用可能な表面」も追跡してもよい。製品配置最適化モジュール３０６によって定義されているような、トータルで注文されたコンテナのセットにおいて、各コンテナは、そのポジションのインデックスを有している。
【０２１９】
各スタックロケーションは、重み付けられたコスト関数によって定義されているような、トータルで注文されたスタックのセットにおいて、均等なインデックスを有している。
【０２２０】
これらのインデックスは、それらのそれぞれのセットのサイズによって分割することによって、０〜１の範囲に再マッピングされて、それらのインデックスが、コンテナのインデックスのものとどのくらい近く一致するかによって、利用可能な表面におけるスタックロケーションをランク付けする。
【０２２１】
これらのインデックス間の差異の重み付けられたコスト関数を介して、ならびに、出所からスタックロケーションへの理想的なパスがどのくらい長いか、および、現在のプランにおいてスタックがどのくらい長く予約されているかのような他の要因を介して、最終の選択が行われる。
【０２２２】
スタックの総重量を制限すること、危険物質または特殊物質（例えば、エアゾールや可燃材料）のポジションを制御すること等のような他のビジネスルールが、このステージにおいて実施できる。
【見本の返品シナリオ】
【０２２３】
以下は、システムによってサポート／制御されていてもよい見本の返品処理を提供している。このプロセスは、注文が取り消された場合に適用され、トートはヒブを離れず、注文は顧客によって返品されるか、または、顧客に対して配送がされない。他の状況も、企図されていてもよい。（コンテナ、トートのような、他の保持するデバイス等の中にあるかもしれない）戻された製品を、製品の再加工または拒絶を提供するワークステーションにおいて、処理することができる。
【０２２４】
ワークステーションの近くにある必要があると予期される保管ビンを、制御装置がポジショニングできるように、コンテナ／トートはスキャンされてもよい。ＳＫＵと有効期間満了日とに基づいて、供給ビンを選択してもよい。製品アイテムを、ピッカーによって１つずつ除去して、スキャンしてもよい。コンテナがワークステーションに到着したとき、（自動の、または、手動の）ピッカーは、アイテムをコンテナ中に配置するように命令／制御されてもよい。
【０２２５】
ピッカーは、コンテナが開放される前に、このＳＫＵのさらなるそれぞれが残されていないことを確認するように頼まれてもよい。
【０２２６】
もはや在庫に対する返品として適切でない製品は、コンテナ中にピッキングされてもよく、これは、いっぱいであるときや、または一日の終わりのようなさまざまなとき、ワークステーションにおいて除去されてもよく、内容物は、スタッフショップのような別のエリアに送られるか、または、適宜廃棄に送られる。
【０２２７】
特定の、目下好ましい実施形態に関連して、開示を提供して図示しているが、ここで開示している発明の精神および範囲から逸脱することなく、多くのバリエーションおよび修正がなされてもよい。したがって、開示および発明は、上記で明らかにされている方法論または構成の、厳密なコンポーネントまたは詳細に限定されるべきものではない。処理自体において必要な、または、固有である程度を除いて、図面を含んでいるこの開示において説明している方法またはプロセスの、ステップまたはステージに対する特有の注文を、意図しているのでも、または、意味しているのでもない。多くのケースにおいて、説明している方法の目的を、影響を、または、インポートを変更することなく、プロセスステップの順序を変化させてもよい。発明の範囲は、均等物の理論と関連する理論とに対して然るべき考慮を与える、添付された特許請求の範囲によってのみ定義している。
【図１】
2019194128.tif 000003
【図２】
2019194128.tif 000004
【図３】
2019194128.tif 000005
【図４】
2019194128.tif 000006
【図５】
2019194128.tif 000007
【図６ａ】
2019194128.tif 000008
【図６ｂ】
2019194128.tif 000009
【図７】
2019194128.tif 000010
【図８】
2019194128.tif 000011
【手続補正書】
【提出日】令和1年7月4日(2019.7.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の搬送デバイスの移動を制御するように構成されているシステムにおいて、
前記複数の搬送デバイスは、コンテナを搬送するように構成され、前記コンテナは、設備中に保管され、前記設備は、複数のスタック中に前記コンテナを保管するように構成され、前記設備は、前記スタックの上部に格子状構造で構成されている複数の経路を備え、前記複数の搬送デバイスは、前記格子状構造上で動作するように構成され、
前記システムは、
前記複数の搬送デバイスのうちの少なくとも１つによって実行される少なくとも１つのタスクを決定するように構成されている制御手段（２０２）を具備し、
前記複数の搬送デバイスのうちの少なくとも１つによって実行される少なくとも１つのタスクは、搬送デバイスバッテリー状態と、搬送デバイス損害と、搬送デバイスメンテナンス問題と、搬送デバイスサービス問題とのうちの少なくとも１つに基づいて決定されるシステム。
【請求項２】
前記少なくとも１つのタスクは、前記格子状構造上の第１のロケーションから前記格子状構造上の第２のロケーションへ移動することと、前記制御手段（２０２）と通信することと、別の搬送デバイスと通信することと、別の搬送デバイスと移動を調整することと、コンテナのそれぞれが１つ以上のアイテムを含むかもしれないコンテナを搬送することと、前記スタックからコンテナを持ち上げることと、コンテナを前記スタックに下げることと、インバウンドステーションに対して空のコンテナを配送することと、前記設備の周囲に貨物が荷積みされたコンテナを配置することと、コンテナをピッキングステーションまたは他のエリアに運ぶことと、前記設備中の１つのロケーションから別のロケーションにコンテナを移動させることとのうちの１つを含む請求項１記載のシステム。
【請求項３】
前記複数の搬送デバイスのうちの少なくとも１つによって実行される少なくとも１つのタスクは、前記搬送デバイスが誤動作しているか否かに基づいて決定される請求項１または２記載のシステム。
【請求項４】
前記複数の搬送デバイスのうちの少なくとも１つによって実行される少なくとも１つのタスクは、前記搬送デバイスが充電を必要とするか否かに基づいて決定される任意の先行する請求項記載のシステム。
【請求項５】
前記複数の搬送デバイスのうちの少なくとも１つによって実行される少なくとも１つのタスクは、セット量のバッテリー寿命が与えられている前記搬送デバイスが、前記タスクを実行できるか否かに基づいて決定される任意の先行する請求項記載のシステム。
【請求項６】
前記制御手段（２０２）は、前記複数の搬送デバイスのそれぞれからステータス報告を受信するように構成されている任意の先行する請求項記載のシステム。
【請求項７】
前記制御手段（２０２）は、前記複数の搬送デバイスの移動を制御するように構成されている移動制御手段（３０２）を備える任意の先行する請求項記載のシステム。
【請求項８】
保管システムにおいて、
複数の格子スペースを備える格子パターンを形成するための、Ｘ方向に伸長する平行レールまたは軌道の第１のセット、および、実質的に水平面で前記第１のセットに横向きのＹ方向に伸長する平行レールまたは軌道の第２のセットと、
前記レールの下に位置付けられ、各スタックが単一の格子スペースのフットプリント内に位置付けられるように構成されているコンテナの複数のスタックと、
複数の荷積み取り扱いデバイスと、
任意の先行する請求項にしたがうシステムとを具備し、
各荷積み取り扱いデバイスは、前記スタックの上部で前記レール上で前記ＸまたはＹ方向に選択的に横方向に移動するように構成されている保管システム。
【請求項９】
１つの格子スペースを占有する荷積み取り扱いデバイスが前記ＸまたはＹ方向の隣接格子スペースを占有するまたは通過する荷積み取り扱いデバイスを妨害しないように、各荷積み取り扱いデバイスは、前記保管システム中の単一の格子スペースのみを占有するフットプリントを有する請求項８記載の保管システム。
【請求項１０】
複数の搬送デバイスの移動を制御するための方法において、
前記複数の搬送デバイスは、コンテナを搬送するように構成され、前記コンテナは、設備中に保管され、前記設備は、複数のスタック中に前記コンテナを保管するように構成され、前記設備は、前記スタックの上部に格子状構造で構成されている複数の経路を備え、前記複数の搬送デバイスは、前記格子状構造上で動作するように構成され、
前記方法は、
前記複数の搬送デバイスのうちの少なくとも１つによって実行される少なくとも１つのタスクを決定するステップを含み、
前記複数の搬送デバイスのうちの少なくとも１つによって実行される少なくとも１つのタスクは、搬送デバイスバッテリー状態と、搬送デバイス損害と、搬送デバイスメンテナンス問題と、搬送デバイスサービス問題とのうちの少なくとも１つに基づいて決定される方法。
【請求項１１】
前記少なくとも１つのタスクは、前記格子状構造上の第１のロケーションから前記格子状構造上の第２のロケーションへ移動することと、制御手段と通信することと、別の搬送デバイスと通信することと、別の搬送デバイスと移動を調整することと、コンテナのそれぞれが１つ以上のアイテムを含むかもしれないコンテナを搬送することと、前記スタックからコンテナを持ち上げることと、コンテナを前記スタックに下げることと、インバウンドステーションに対して空のコンテナを配送することと、前記設備の周囲に貨物が荷積みされたコンテナを配置することと、コンテナをピッキングステーションまたは他のエリアに運ぶことと、前記設備中の１つのロケーションから別のロケーションにコンテナを移動させることとのうちの１つを含む請求項１０記載の方法。
【請求項１２】
前記複数の搬送デバイスのうちの少なくとも１つによって実行される少なくとも１つのタスクは、前記搬送デバイスが誤動作しているか否かに基づいて決定される請求項１０または１１記載の方法。
【請求項１３】
前記複数の搬送デバイスのうちの少なくとも１つによって実行される少なくとも１つのタスクは、前記搬送デバイスが充電を必要とするか否かに基づいて決定される請求項１０ないし１２のうちのいずれか１項記載の方法。
【請求項１４】
前記複数の搬送デバイスのうちの少なくとも１つによって実行される少なくとも１つのタスクは、セット量のバッテリー寿命が与えられている前記搬送デバイスが、前記タスクを実行できるか否かに基づいて決定される請求項１０ないし１３のうちのいずれか１項記載の方法。
【請求項１５】
前記方法は、前記複数の搬送デバイスのそれぞれからステータス報告を受信するステップをさらに含む請求項１０ないし１４のうちのいずれか１項記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２２７
【補正方法】変更
【補正の内容】
【０２２７】
特定の、目下好ましい実施形態に関連して、開示を提供して図示しているが、ここで開示している発明の精神および範囲から逸脱することなく、多くのバリエーションおよび修正がなされてもよい。したがって、開示および発明は、上記で明らかにされている方法論または構成の、厳密なコンポーネントまたは詳細に限定されるべきものではない。処理自体において必要な、または、固有である程度を除いて、図面を含んでいるこの開示において説明している方法またはプロセスの、ステップまたはステージに対する特有の注文を、意図しているのでも、または、意味しているのでもない。多くのケースにおいて、説明している方法の目的を、影響を、または、インポートを変更することなく、プロセスステップの順序を変化させてもよい。発明の範囲は、均等物の理論と関連する理論とに対して然るべき考慮を与える、添付された特許請求の範囲によってのみ定義している。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］  １つ以上の搬送デバイスの移動を制御するシステムにおいて、
前記搬送デバイスは設備中に保管されているコンテナを搬送し、前記設備は、複数のスタック中に前記コンテナを保管し、前記設備は、前記スタックの上部に格子状構造で配置されている複数の経路をさらに有し、前記１つ以上の搬送デバイスは、前記格子状構造上で動作し、
前記システムは、
コンピュータ命令を実行するように構成されている１つ以上のコンピュータを具備し、
前記コンピュータ命令は、実行されるとき、
１つ以上のユーティリティが、前記複数の経路を通して前記１つ以上の搬送デバイスを移動させるためのルートを決定して予約し、複数のコンテナのうちの１つ以上を搬送するときに、前記１つ以上の搬送デバイスを移動させるためのルートを決定して予約することと、
１つ以上のユーティリティが、ルートを決定して予約し、前記複数の搬送デバイスのうちの１つ以上を制御して、前記複数のスタックのうちの１つ以上内から、前記複数のコンテナのうちの１つ以上を取り出すこととを提供し、
前記１つ以上の取り出しユーティリティは、前記搬送デバイスのうちの１つ以上に命令して、１つ以上のコンテナを、１つ以上のスタック内から、前記スタック内の、または、前記スタック外のいずれかの代替ポジションに移動させるように構成され、前記ユーティリティには、取り出しのために前記１つ以上のコンテナにアクセスする前に、１つ以上のコンテナを移動させる際に、前記コンテナまたは各コンテナが除去されたスタック以外のスタックのうちの任意の１つ内のポジションに、前記スタック中に戻される前記１つ以上のコンテナを確実に配置する手段がさらに提供されるシステム。
［２］  前記コンテナまたは前記コンテナのそれぞれは、物体を含み、前記物体は、その後の取り出しのために、前記スタック中の前記コンテナ中に保管される［１］記載のシステム。
［３］  衝突を避けるために、前記１つ以上の搬送デバイスの移動を許可するか、または、停止させるクリアランスシステムを提供する１つ以上のユーティリティをさらに具備する［１］または［２］記載のシステム。
［４］  前記複数の経路を通して、前記１つ以上の搬送デバイスの、移動とアクションとを最適化するように構成されている１つ以上のユーティリティをさらに具備する［１］、［２］または［３］記載のシステム。
［５］  前記設備中の前記１つ以上の搬送デバイスによって、前記複数のコンテナの配置を最適化するように構成されている１つ以上のユーティリティをさらに具備する任意の先行する請求項記載のシステム。
［６］  １つ以上のワークステーション内で行われる移動または動作を制御する１つ以上のユーティリティをさらに具備する任意の先行する請求項記載のシステム。
［７］  前記移動とアクションとを最適化する前記１つ以上のユーティリティは、１つ以上のパス発見アルゴリズムを利用する任意の先行する請求項記載のシステム。
［８］  前記１つ以上のユーティリティは、１つ以上の輻輳緩和技術を使用して、前記移動とアクションとを最適化する任意の先行する請求項記載のシステム。
［９］  前記１つ以上のユーティリティは、１つ以上の機械学習技術を使用して、前記移動とアクションとを最適化する任意の先行する請求項記載のシステム。
［１０］  前記１つ以上のユーティリティは、前記設備内の前記複数のコンテナの配置を最適化し、前記設備内の前記複数の物体のうちの１つ以上の消耗に基づいて、前記設備の在庫レベルを更新する任意の先行する請求項記載のシステム。
［１１］  前記１つ以上のユーティリティは、前記１つ以上のワークステーションのスループットに少なくとも基づいて、前記搬送デバイスのうちの１つ以上の移動を制御する［５］記載のシステム。
［１２］  前記１つ以上のユーティリティは、前記１つ以上の搬送デバイスのうちの少なくとも１つとの欠落した通信を許容するように構成されているクリアランスシステムを提供する任意の先行する請求項記載のシステム。
［１３］  前記１つ以上のユーティリティは、ルートを決定して予約し、複数の搬送デバイスに命令して、前記複数のコンテナのうちの１つ以上を搬送する際に協同させる任意の先行する請求項記載のシステム。
［１４］  前記１つ以上のユーティリティは、そうでなければ他の搬送デバイスにとって最適なルートから、アイドル中の搬送デバイスを移動させるルートを決定して予約する任意の先行する請求項記載のシステム。
［１５］  前記設備は、複数のサブ格子に分割されて、コンピュータ処理の複雑性を低減させる任意の先行する請求項記載のシステム。
［１６］  前記複数の搬送デバイスの移動を制御するための１つ以上の制御コマンドは、前記複数の搬送デバイスの移動に先立って、前記複数の搬送デバイスに提供される任意の先行する請求項記載のシステム。
［１７］  前記１つ以上のユーティリティは、ヒブ中の空きポジションのうちの最も最適なポジションへの、前記コンテナの戻りを最適化する任意の先行する請求項記載のシステム。
［１８］  前記１つ以上のユーティリティは、前記スタック内の代替コンテナからのもので、損害を受けている物体を、または、欠落している物体を、動的に置換する任意の先行する請求項記載のシステム。
［１９］  複数のコンテナを搬送する１つ以上の搬送デバイスの移動を制御する方法において、
前記デバイスは、設備中で動作し、前記設備は、複数のスタック中に配置されている前記複数のコンテナを含み、前記設備は、前記スタックの上部に格子状構造で配置されている複数の経路をさらに有し、前記１つ以上の搬送デバイスは、前記格子状構造上で動作し、
前記方法は、
前記複数の経路を通して前記１つ以上の搬送デバイスを移動させるためのルートを決定して予約することと、
前記複数のコンテナのうちの１つ以上を搬送するときに、前記搬送デバイスを移動させるためのルートを決定して予約することと、
ルートを決定して予約し、前記複数の搬送デバイスのうちの１つ以上を制御して、前記複数のスタックのうちの１つ以上内から、前記複数のコンテナのうちの１つ以上を取り出すこととを含み、
前記１つ以上のスタック内から前記１つ以上のコンテナを取り出すことは、取り出しのために前記１つ以上のコンテナにアクセスする前に、前記スタック中の１つ以上の他のコンテナを移動させることをさらに要求し、
前記１つ以上の他のコンテナを移動させることは、前記コンテナまたは各コンテナが除去された元のスタックを除く、前記設備内の最適化されたポジション中に、前記１つ以上の他のコンテナのうちのそれぞれを配置することを含む方法。
［２０］  前記コンテナは、前記設備内での保管と、前記設備内からの取り出しとのための物体を含む［１９］記載の方法。
［２１］  衝突を避けるために、前記１つ以上の搬送デバイスの移動を許可するか、または、停止させるクリアランスシステムを提供するステップをさらに含む［１９］または［２０］記載の方法。
［２２］  前記複数の経路を通して、前記１つ以上の搬送デバイスの、移動とアクションとを最適化するステップをさらに含む［１９］、［２０］または［２１］記載の方法。
［２３］  前記設備中の前記１つ以上の搬送デバイスによって、前記複数のコンテナの配置を最適化するステップをさらに含む［１９］ないし［２０］のいずれか１項記載の方法。
［２４］  １つ以上のワークステーション内で行われる移動または動作を制御するステップをさらに含む［１９］ないし［２３］のいずれか１項記載の方法。
［２５］  前記移動とアクションとを最適化することは、１つ以上のパス発見アルゴリズムを使用することを含む［１９］ないし［２４］のいずれか１項記載の方法。
［２６］  前記移動とアクションとを最適化することは、１つ以上の輻輳緩和技術を使用することを含む［１９］ないし［２５］のいずれか１項記載の方法。
［２７］  前記移動とアクションとを最適化することは、１つ以上の機械学習技術を使用することを含む［１９］ないし［２６］のいずれか１項記載の方法。
［２８］  前記設備内の前記複数のコンテナの配置を最適化して、前記設備の在庫レベルを更新することは、前記設備内の前記複数の物体のうちの１つ以上の消耗に基づいている［１９］ないし［２７］のいずれか１項記載の方法。
［２９］  前記搬送デバイスのうちの１つ以上の移動を制御することは、前記１つ以上のワークステーションのスループットに少なくとも基づいている［２４］記載の方法。
［３０］  前記１つ以上の搬送デバイスのうちの少なくとも１つとの欠落した通信を許容するクリアランスを提供することを含む［１９］ないし［２９］のいずれか１項記載の方法。
［３１］  ルートを決定して予約することと、
複数の搬送デバイスに命令して、前記複数のコンテナのうちの１つ以上を搬送する際に協同させることとを含む［１９］ないし［３０］のいずれか１項記載の方法。
［３２］  そうでなければ他の搬送デバイスにとって最適なルートから、アイドル中の搬送デバイスを移動させるルートを決定して予約することを含む［１９］ないし［３１］のいずれか１項記載の方法。
［３３］  前記設備は、複数のサブ格子に分割されて、コンピュータ処理の複雑性を低減させる［１９］ないし［３２］のいずれか１項記載の方法。
［３４］  前記複数の搬送デバイスの移動を制御するための１つ以上の制御コマンドは、前記複数の搬送デバイスの移動に先立って、前記複数の搬送デバイスに提供される［１９］ないし［３３］のいずれか１項記載の方法。
［３５］  １つ以上のユーティリティを提供して、コスト関数解析上で、前記スタックの残りのさらなる最適化を決定する任意の先行する請求項記載のシステムまたは方法。
【外国語明細書】
2019194128000001.pdf