(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023108612
(43)【公開日】2023-08-04
(54)【発明の名称】自律システム及びその制御方法
(51)【国際特許分類】
G05D 1/02 20200101AFI20230728BHJP
B65G 1/137 20060101ALI20230728BHJP
【FI】
G05D1/02 P
B65G1/137 G
【審査請求】有
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023006666
(22)【出願日】2023-01-19
(31)【優先権主張番号】17/584,247
(32)【優先日】2022-01-25
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】吉武 宏
【テーマコード(参考)】
3F522
5H301
【Fターム(参考)】
3F522AA02
3F522AA03
3F522CC01
3F522GG05
3F522GG34
3F522GG48
3F522JJ02
3F522JJ04
3F522KK05
5H301AA02
5H301AA10
5H301BB05
5H301BB14
5H301CC03
5H301CC06
5H301CC10
5H301DD07
5H301DD17
5H301KK02
5H301KK03
5H301KK08
5H301KK09
5H301KK18
5H301KK19
(57)【要約】 (修正有)
【課題】未知のタスク及び種々のレイアウトにAIの最適制御ストラテジを素早く適応させることができる、柔軟なロボット制御方法を提供する。
【解決手段】システム及び方法は、複数のロボットを包含する環境を対象としており、複数のオーダの受領に対して、システム及び方法は、複数のオーダを遂行する複数のタスクバッチを生成し、複数のロボットによる、複数のタスクバッチを実行する実行のパラメータセットを生成する。コントローラによる、複数のロボットのうちの1つ以上が複数のタスクバッチを実行することとなるとの決定に対して、システム及び方法は、パラメータセットをロードし、ロードされたパラメータセットに基づいて、複数のロボットのうちの1つ以上を、タスクバッチを実行するように制御する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のロボットを備えるシステムの方法であって、 複数のオーダの受領に対して、 前記複数のオーダを遂行する複数のタスクバッチを生成することと、 前記複数のロボットによる、前記複数のタスクバッチの各々を実行する実行のパラメータセットを生成することと、 コントローラによる、前記複数のロボットのうちの1つ以上が前記複数のタスクバッチのうちの1つを実行することとなるとの決定に対して、 前記タスクバッチに対して生成された前記パラメータセットをロードすることと、 前記ロードされたパラメータセットに基づいて、前記複数のロボットのうちの前記1つ以上を、前記複数のタスクバッチを実行するように制御することとを含む、方法。
【請求項2】
前記コントローラは、前記複数のタスクバッチの各々と、前記複数のタスクバッチの前記各々を実行するように割り当てられた、前記複数のロボットのうちの対応するロボットとの間の関係を管理するように構成されており、 前記複数のロボットのうちの前記1つ以上が前記複数のタスクバッチを実行すると前記決定することは、前記管理される関係に基づいて行われる、請求項1に記載の方法。
【請求項3】
前記複数のロボットは、少なくとも1つのピッキングロボット及び少なくとも1つの無人搬送車両を含む、請求項1に記載の方法。
【請求項4】
前記パラメータセットは、第1のパラメータセット及び第2のパラメータセットを含み、 前記コントローラは、前記第1のパラメータセットを使用することによって、受領されたオーダの割り付けを管理するように構成されたオーダコントローラと、前記第2のパラメータセットを使用することによって、前記複数のロボットのうちの前記1つ以上を管理するように構成されたロボットコントローラとを含む、請求項3に記載の方法。
【請求項5】
前記ロードされたパラメータセットは、ニューラルネットワークに関連付けられたパラメータを含み、前記コントローラは、前記ロードされたパラメータセットを用いて前記ニューラルネットワークに従って、前記複数のロボットの最適化されたプロセスを計算するように構成されており、前記ロボットは、前記計算された最適化されたプロセスに従って実行動作するように命令される、請求項1に記載の方法。
【請求項6】
前記パラメータセットは、前記複数のロボットのシミュレーションを実行することから生成される、請求項5に記載の方法。
【請求項7】
前記ロードされたパラメータセットは、強化学習から獲得されたポリシーまたは状態行動価値を表す関数に関連付けられたパラメータを含む、請求項1に記載の方法。
【請求項8】
前記ロードされたパラメータセットに基づいて前記複数のロボットのうちの前記1つ以上を、前記複数のタスクバッチを実行するように前記制御することは、ロボットタイプまたはロボット機能のうちの1つ以上に基づいて、前記複数のロボットのうちの前記1つ以上の各々の制御ストラテジを実行することを含み、 前記複数のロボットによる、前記複数のタスクバッチを実行する前記実行の前記パラメータセットを前記生成することは、前記ロボットタイプまたは前記ロボット機能のうちの1つ以上について行われ、 前記パラメータセットを前記ロードすることは、前記ロボットタイプまたは前記ロボット機能に基づいて実施される、請求項1に記載の方法。
【請求項9】
前記複数のロボットによる、前記複数のタスクバッチを実行する前記実行の前記パラメータセットを前記生成することは、前記複数のタスクバッチ中のサブタスクのタイプごとに1つ以上のパラメータセットを生成することを含む、請求項8に記載の方法。
【請求項10】
システムであって、 複数のロボットと、 1つ以上のコントローラとを備え、前記1つ以上のコントローラは、 プロセッサであって、複数のオーダの受領に対して、 前記複数のオーダを遂行する複数のタスクバッチを生成することと、 前記複数のロボットによる、前記複数のタスクバッチの各々を実行する実行のパラメータセットを生成することと、 前記1つ以上のコントローラからのコントローラによる、前記複数のロボットのうちの1つ以上が前記複数のタスクバッチのうちの1つを実行することとなるとの決定に対して、 前記タスクバッチに対して生成された前記パラメータセットをロードすることと、 前記ロードされたパラメータセットに基づいて、前記複数のロボットのうちの前記1つ以上を、前記複数のタスクバッチを実行するように制御することとを含む命令を実行するように構成されたプロセッサを備える、システム。
【請求項11】
前記1つ以上のコントローラは、前記複数のタスクバッチの各々と、前記複数のタスクバッチの前記各々を実行するように割り当てられた、前記複数のロボットのうちの対応するロボットとの間の関係を管理するように構成されており、 前記複数のロボットのうちの前記1つ以上が前記複数のタスクバッチを実行すると前記決定することは、前記管理される関係に基づいて行われる、請求項10に記載のシステム。
【請求項12】
前記複数のロボットは、少なくとも1つのピッキングロボット及び少なくとも1つの無人搬送車両を含む、請求項10に記載のシステム。
【請求項13】
前記パラメータセットは、第1のパラメータセット及び第2のパラメータセットを含み、 前記1つ以上のコントローラは、前記第1のパラメータセットを使用することによって、受領されたオーダの割り付けを管理するように構成されたオーダコントローラと、前記第2のパラメータセットを使用することによって、前記複数のロボットのうちの前記1つ以上を管理するように構成されたロボットコントローラとを含む、請求項12に記載のシステム。
【請求項14】
前記ロードされたパラメータセットは、ニューラルネットワークに関連付けられたパラメータを含み、前記1つ以上のコントローラは、前記ロードされたパラメータセットを用いて前記ニューラルネットワークに従って、前記複数のロボットの最適化されたプロセスを計算するように構成されており、前記ロボットは、前記計算された最適化されたプロセスに従って実行動作するように命令される、請求項10に記載のシステム。
【請求項15】
前記パラメータセットは、前記複数のロボットのシミュレーションを実行することから生成される、請求
項14に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、ロボットシステムに関し、より詳細には、自律システムをこれら自律システムの制御方法とともに支援することに関する。
【背景技術】
【0002】
労働力不足を克服し、かつ高効率で長時間の作業を達成する必要性に起因して、物流倉庫及び生産ラインなどの、工業用地における様々な作業が、自動化されるに至った。これらの自動作業は、人間の労働者をインテリジェントロボットに置き換えることによって実現することができる。関連技術分野におけるこれらのロボットの大部分は、タスクがバッチに集約されて自動システムに送り込まれる、ルールベースのロジックで制御される。しかしながら、ロボット自動システムは、製品寿命の短縮化及び市場の拡大に起因して、高混合化かつ低容量化した出荷オーダを取り扱う傾向がある。多様なオーダを処理することは、タスクの複雑さの増大につながり、作業環境をより動的にする。
【0003】
最近の研究は、訓練期間を経て様々な状況に柔軟に適応させることができる、強化学習などの人工知能(AI:Artificial Intelligence)を、ロボット制御に適用することに取り組んでいる。ルールベースの制御とは異なり、AIベースの制御は、AIベースの制御を未知の状況に容易に組み込むことができるように、各作業に対して、あらかじめ定義されたif-thenルールの組み込みを必要としない。しかしながら、訓練期間は、AIの最適制御ストラテジを獲得するための時間を要し、そのため、間際にシステムに割り付けられたタスクの最適ストラテジを素早く確立することは難しい。このような長い訓練の問題を克服するための解決手法として、関連技術分野では、メタ学習手法を使用することによる、様々な状況における高速訓練のために、制御ストラテジの初期化方法が提案されている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
最適なAIベースのストラテジを短時間で取得することができても、種々のポリシー最適ストラテジを有する複数のタスクセットを並行して動作させるときに、最適制御を維持することは難しい。したがって、工業用地において効率的な作業を達成するためには、未知のタスク及び種々のレイアウトにAIの最適制御ストラテジを素早く適応させることができる、柔軟なロボット制御方法が必要である。本明細書に記載された実装態様例において、コントローラは、制御ストラテジの複数のパラメータセットを記憶し、タスクセットの分類及び優先度に基づいて、これらパラメータセットを切り替える。
【課題を解決するための手段】
【0005】
本開示の態様は、複数のロボットを包含するシステムの方法を包含することができ、この方法は、複数のオーダの受領に対して、複数のオーダを遂行する複数のタスクバッチを生成することと、複数のロボットによる、複数のタスクバッチを実行する実行のパラメータセットを生成することと、コントローラによる、複数のロボットのうちの1つ以上が複数のタスクバッチを実行することとなるとの決定に対して、パラメータセットをロードすることと、ロードされたパラメータセットに基づいて、複数のロボットのうちの1つ以上を、複数のタスクバッチを実行するように制御することとを包含する。
【0006】
本開示の態様は、複数のロボットを包含するシステムの命令を記憶したコンピュータプログラムを包含することができ、これらの命令は、複数のオーダの受領に対して、リアルタイムオーダを遂行する複数のタスクバッチを生成することと、複数のロボットによる、複数のタスクバッチを実行する実行のパラメータセットを生成することと、コントローラによる、複数のロボットのうちの1つ以上が複数のタスクバッチを実行することとなるとの決定に対して、パラメータセットをロードすることと、ロードされたパラメータセットに基づいて、複数のロボットのうちの1つ以上を、複数のタスクバッチを実行するように制御することとを包含する。コンピュータプログラム及び命令を、非一時的コンピュータ可読媒体に記憶し、1つ以上のプロセッサによって実行することができる。
【0007】
本開示の態様は、複数のロボットを包含するシステムを包含することができ、このシステムは、複数のオーダの受領に対する、リアルタイムオーダを遂行する複数のタスクバッチを生成する手段と、複数のロボットによる、複数のタスクバッチを実行する実行のパラメータセットを生成する手段と、コントローラによる、複数のロボットのうちの1つ以上が複数のタスクバッチを実行することとなるとの決定に対する、パラメータセットをロードする手段と、ロードされたパラメータセットに基づいて、複数のロボットのうちの1つ以上を、複数のタスクバッチを実行するように制御する手段とを包含する。
【0008】
本開示の態様は、複数のロボットを包含するシステムを管理する装置を包含することができ、この装置は、命令を記憶するように構成されたメモリと、メモリ内の命令を実行してプロセスを実行するように構成されたプロセッサとを包含し、プロセスは、複数のオーダの受領に対して、リアルタイムオーダを遂行する複数のタスクバッチを生成することと、複数のロボットによる、複数のタスクバッチを実行する実行のパラメータセットを生成することと、コントローラによる、複数のロボットのうちの1つ以上が複数のタスクバッチを実行することとなるとの決定に対して、パラメータセットをロードすることと、ロードされたパラメータセットに基づいて、複数のロボットのうちの1つ以上を、複数のタスクバッチを実行するように制御することとを包含する。
【図面の簡単な説明】
【0009】
【
図1】一実装態様例による、自動オーダピッキングシステム(AOPS:Automated Order Picking System)のプロセスフローを例示するものである。
【
図2】実装態様例が適用されたAOPSの実施例を示す。
【
図3】一実装態様例による、
図2に示された設備構成に基づいて、AOPSのシステム構成の実施例を例示するものである。
【
図4】は、一実装態様例による、RCにおける経路探索及び移動命令プロセスを含む、在庫エリアから在庫棚を搬出するための、AGVの制御フローの実施例を例示するものである。
【
図5】一実装態様例による、AGVを制御するのに使用されるRCのハードウェア構成の実施例を例示するものである。
【
図6】一実装態様例による、RCの制御ストラテジに使用されるパラメータセットのデータテーブルの実施例を例示するものである。
【
図7】一実装態様例による、タスクバッチに対応するRCのパラメータセットを選択するプロセスフローを例示するものである。
【発明を実施するための形態】
【0010】
以下の詳細な説明は、本出願の図及び実装態様例の詳細を提供する。図相互間の冗長な要素の参照符号及び説明は、明確さのために省略されている。説明の全体を通して使用される用語は、例として提供されており、限定することを意図するものではない。例えば、「自動の」という用語の使用は、本出願の実装態様を実施する当業者の所望の実装態様に応じた、実装態様の特定の態様に対する、ユーザまたは管理者の制御を包含する、全自動または半自動の実装態様を包含し得る。ユーザによって、ユーザインターフェースまたは他の入力手段を介して選択を行うこともできるし、所望のアルゴリズムを介して選択を実装することもできる。本明細書に記載される実装態様例を、単独でも組み合わせでも利用することができるし、実装態様例の機能性を、所望の実装態様に従う任意の手段によって実装することもできる。
【0011】
本実施形態は、物流倉庫における自動オーダピッキング作業への、本発明の適用実施例を表す。
【0012】
図1は、一実装態様例による、自動オーダピッキングシステム(AOPS)のプロセスフローを例示するものである。
図2は、実装態様例が適用され得るAOPS(200)の実施例を示す。
図1のAOPSのプロセスフローを、
図2に関して説明する。オーダピッキング作業は、無人搬送車(AGV:Automated Guided Vehicle、201)及びピッキングロボット(PR:picking robot)のフリートによって全自動化されている。このシステムでは、2つのタイプの棚が使用される。第1の棚は、物品を保管する在庫棚(202)である。第2のものは、オーダ物品を仕分けする出荷箱(208)を含む仕分け棚(203)である。在庫棚は、AGVによって搬送され得る。AGVは、在庫棚の場所まで進んで在庫棚をリフトし、ピッキングロボットが作業する(204)ピッキングステーション(207)まで、在庫棚を搬送する。ピッキングロボットは、搬送された在庫棚からオーダ物品をピッキングし、これらオーダ物品を選別棚上の選別された出荷箱(209)中に仕分けする。ピッキングステーションにおいて物品がピッキングされた基点である在庫棚(202)は、在庫エリア(205)に返却されるか、または他の出荷宛先に向けて在庫棚(202)に物品を載置することを必要とする別のピッキングステーションに搬送される。全てのオーダ物品が選別された出荷箱は、コンベア(206)または他の設備によって次の作業エリアに搬送される。
【0013】
図1のプロセスフローにおいて、倉庫管理システム(WMS:Warehouse Management System)は、小売店及びホストシステムなどの、物品取引きに関連する施設から出荷オーダを受領する(S101)。このような複数のオーダを、リアルタイムに受領することもできるし、所望の実装態様に従って(例えば、夜間オーダの未処理分として)蓄積することもできる。さらに、受領された順次のオーダを、所望の実装態様に従って順次に処理することができる。本明細書に記載された実装態様例において、複数のオーダを履行することに応答して、複数のタスクバッチが作成され、この結果、環境のロボットが、複数のタスクバッチを協働的に処理する。これらの出荷オーダは、任意の期間ごとに、または任意のオーダ数ごとに、タスクバッチに集約される(S102)。WMSは、タスクバッチをAOPSに割り当てる(S103)。AOPSコントローラに備えられた計算装置は、予想される作業環境に関する情報に基づいて、割り当てられたタスクバッチの最適制御ストラテジを計算する(S104)。最適ストラテジは、あらかじめ定義された作業プロセスでのAOPSのシミュレーションを通じた最適ストラテジの目標の制御を計算するのに使用される最適ストラテジのパラメータセットをチューニングすることによって取得され得る。パラメータセットは、シス
テムスループットを最大化すること、またはシステムにおける物品待ち行列を最小化することなどの、システムオペレータによって要求される作業ステータスを達成するようにチューニングされる。AOPSにおいて作業をシミュレートするために、計算装置は、システムレイアウト、AOPSにおいて利用されるマテリアルハンドリングロボットの仕様及び機能、ならびに作業ルールなどの、作業に関する情報を有する。
【0014】
計算装置は、WMSに含まれていてもよいし、計算装置が、WMSとAOPSコントローラとの両方と通信し、かつ計算に必要とされる情報を取得することができる場合に、WMSとAOPSコントローラとの両方の外に位置していてもよい。計算装置は、導出された最適ストラテジに使用されるパラメータセットをメモリの部分に送信し(S105)、メモリ部分は、受信されたパラメータセットをAOPSコントローラに記憶する(S106)。AOPSが、複数のタイプのマテリアルハンドリングロボット(例えば、ピッキングロボット、AGVなど)を制御するか、または複数のプロセス(例えば、運搬機能、ピッキング機能)を伴う場合、計算装置は、対応する制御ストラテジを最適化するために、S104において、各タイプのロボットまたは機能の複数のパラメータセットを生成し得る。制御目標の相違があるために、生成された複数のタイプのパラメータセットを、いくつかのメモリ部分に登録することができる。
【0015】
AOPSコントローラは、制御目標のステータスに基づいて、メモリ部分に記憶されたパラメータセットを参照することによって、割り当てられたタスクバッチを最適ストラテジで処理する(S107)。参照されるパラメータセットを、ロードし、ロードされたパラメータセットに基づいて複数のロボットのうちの1つ以上を、複数のタスクバッチを実行するように制御するために使用する。さらなる出荷オーダがWMSに追加される場合には、上記のプロセスが繰り返し実施される。
【0016】
それゆえ、
図1及び2のシステムによって、オーダをシミュレーションにより処理して、メモリに記憶されているパラメータセットを(テーブル形式で、または管理情報として)生成し、次いで、複数のタスクバッチに割り当てられる適切なコントローラにロードすることができる。パラメータセットを、センサ値/他の値に基づいて実行すべき特定の状態またはプロセスを示す状態遷移表とすることができ、ニューラルネットワークの重み及びバイアスとすることができ、及び所望の実装態様による別様のものとすることができる。
【0017】
図3は、一実装態様例による、
図2に示された機器構成に基づくAOPSのシステム構成(300)の実施例を例示するものである。
図1において導入されたAOPSコントローラは、自動化された作業を処理する2つのコントローラを包含する。第1のコントローラは、S105に記載されるように、第1のコントローラの制御ストラテジに使用されるパラメータセットをWMS(301)から受信するオーダコントローラ(OC、302)である。OCはまた、出荷オーダを受信し、制御ストラテジに基づいて、受信されたオーダのオーダバッチング及び処理シーケンスなどの、ピッキング作業の情報を計算する。第2のコントローラは、S105に記載されるように、第2のコントローラの制御ストラテジに使用されるパラメータセットをWMS(301)から受信するロボットコントローラ(RC、303)である。RCはまた、ロボットの動作条件を受信し、物品または場所の選択などのロボットの行動に必要とされる情報を計算する。
【0018】
ここでは、パラメータセットは、OCとRCとの間で異なっており、それは、これらのコントローラが異なる機能性を有しているからである。それゆえ、パラメータセットを、OC用のあるセットとRC用の別のセットとに分岐させることができ、これらパラメータセットを、OC及びRCの別々の役割に起因する所望の実装態様に従って、別々に生成することができる。OC及びRCは、計算サーバなどの計算機である。OCは、OCのパラメータセットを利用して、受領されたオーダの割り付けを管理するようになっているのに対して、RCは、RCのパラメータセットを利用して、ロボットのうちの1つ以上を管理するようになっている。実装態様例において、AGV及びPRは、RCによって管理される。OC、RC、AGV、及びPRは、無線ネットワーク(304)によって接続されている。ネットワークを介して、あらゆる構成要素が、他の構成要素からの当該構成要素のタスクを処理するのに必要とされる情報を送受信する。受信されたロボットステータス及び当該ロボットのロボットタイプに基づいて、ロボットの次のタスクを処理するのに適切なコントローラが、制御ストラテジを特定し、対応するパラメータセットを設定して、次の制御を計算する。
【0019】
ロボットステータスと対応するタスクとの間の関係は、状態遷移表などのハッシュテーブルを導入することによって精緻化され得る。計算装置はまた、AOPS作業をシミュレートするために、同じテーブルを参照または管理してもよい。RCの制御ストラテジは、ロボットタイプごとに異なる。
図3の同様の構成を達成する代替法として、OCとRCとを、単一の計算機に統合し、この計算機上に他の機能として実装することができる。さらに、AOPSに3つ以上のOC及びRCを導入してもよく、この場合に、AGV及びPRは、AGV及びPRのタイプに基づいてロボットを編成する異なるRCによって制御される。
【0020】
実装態様例において、AGVは、RCによって示されたAGVの宛先まで、経路に沿って移動する。AGVは、車両本体の底部に、可視光カメラまたは赤外カメラなどの読み取りデバイスを有し、移動しながら床面をスキャンする。例えば、床上の2次元座標を示す位置マーカがバーコードである場合、読み取りデバイスは、バーコードリーダである。AGVがマーカを通過するときに、読み取りデバイスは、バーコード表示をスキャンし、AGVは、座標値を獲得する。AGVは、獲得された座標値をRCに送信する。
【0021】
図4は、一実装態様例による、RCにおける経路探索及び移動命令プロセスを含む、在庫エリアから在庫棚を搬出するAGVの制御フローの一実施例を例示するものである。
図5は、一実装態様例による、AGVを制御するのに使用されるRC(500)のハードウェア構成の一実施例を例示するものである。所望の実装態様に応じて、このハードウェア構成を、OCにも適用することができるし、RCとOCとの両方を同じハードウェア上に実装することもできる。RC(500)のハードウェア構成は、中央処理装置(CPU:central processing unit)などのハードウェアプロセッサ、またはハードウェアプロセッサとソフトウェアプロセッサとの任意の組み合わせの形態をなし得るプロセッサ(501)、キャッシュメモリ、ランダムアクセスメモリ、または所望の実装態様による他の記憶メモリなどのメモリデバイス(502)、キーボード、マウス、タッチスクリーンなどのような入力デバイス(503)、ディスプレイなどの出力デバイス(504)、ロボットと通信するための通信インターフェース(I/F)(505)、及び要素を通信可能に連結するバス(506)を包含するが、これらに限定されない。メモリデバイス(502)は、AGV搬送制御プログラム(507)、レイアウトデータ(508)、経路探索関数(509)、及びパラメータセット(複数可)(510)を含むことができる。
【0022】
RC(500)は、制御ストラテジに基づいて、宛先までの(準)最適AGV経路を生成し(S403)、(準)最適AGV経路をAGVに送信する(S404)。一実施例として、AGVの制御ストラテジが経路探索関数(509)に対応して経路探索することは、ダクストラ法、A*、または所望の実装態様による他のアルゴリズムなどの、最短経路アルゴリズムを実装することによって、達成され得る。この場合に、S104において計算装置によって導出されたパラメータセット(510)は、AGVの並進移動及び回転移動並びにAGVの輻輳などの、経路探索アルゴリズムにおいて使用される経路コストを表す。
【0023】
制御ストラテジによってAGV経路を生成する代替法として、RCは、RCの経路探索アルゴリズムに使用されるいくつかのあらかじめ定義された経路コストセットを有し、制御ストラテジは、AGV稼働エリアの輻輳ステータス及びレイアウトデータ(508)に基づいて適切な経路コストセットを選択することができるテーブルまたは関数によって表される。テーブルタイプの制御ストラテジは、輻輳ステータスと経路コストセットとの所与のペアがどの程度作業に適切であるかを示す値を示す。この場合に、パラメータセットは、テーブル形式の値を推定するように構成された推定器において使用される。推定器が全結合ニューラルネットワークとして表現される場合、パラメータセットは、全結合ニューラルネットワークの重み及びバイアスに対応する。
【0024】
他方で、関数タイプの制御ストラテジは、所与の輻輳ステータスに対して適切な経路コストセットを直接選択することもできる。関数が全結合ニューラルネットワークとして表現される場合、パラメータセットは、全結合ニューラルネットワークの重み及びバイアスに対応する。制御ストラテジは、所与の宛先に対する計算された経路の経路コストを出力することもできる。これらの経路コストは、OCから送信された棚搬送タスク(S401)に3つ以上のAGVを割り当てることができる場合に、適切なAGVを選択するのに使用される(S402)。AGVの経路が部分的に生成されるか、またはAGVが他のAGVによって引き起こされた輻輳に巻き込まれると(S405において「いいえ」)、RCは、AGVがAGVの宛先に到着するまで(S405において「いいえ」)、経路を再帰的に生成する。AGVが割り当てられたタスクを完了し(例えば、AGVの宛先に到着する)(S405において「はい」)、かつ棚をリフトアップ及びリフトダウンすること、及び搬送された棚から物品をピッキングすることなどの、関連タスクが完了すると、ロボットは、コントローラに信号を伝送し、RCは、AGVに新たな搬送タスクを割り当てる。所望の実装態様に応じて、コントローラは、代わりにまたは併せて、各ロボットのステータスを観察し、新たな割り当てタイミングを決定することができる。コントローラは、ステータス要求への応答、またはロボットからの伝送された通知から、ロボットのステータスを確認する。ロボットが手空きであるか、または後続のタスクを有していない場合、コントローラは、ロボットに新たなタスクバッチを割り当て、ロボットとロボットの割り当てられたタスクバッチとの関係を記憶することができる。
【0025】
本明細書に記載された実装態様例において、複数のロボットによる、複数のタスクバッチを実行する実行のパラメータセットを生成することは、複数のタスクバッチ中のサブタスクのタイプごとに1つ以上のパラメータセットを生成することを包含することができる。例えば、在庫エリアからピッキングステーションまでの棚搬送、及びピッキングステーションから在庫までの棚返却などの、他のAGVのサブタスクを、
図4に示されるのと同様のプロセスによって達成することができる。このような種々のタイプの搬送サブタスクを、固有の経路探索関数を用いて制御することができる。したがって、RCは、複数の経路探索関数を、搬送サブタスクのタイプごとにチューニングされた種々のパラメータセットとともに有し得る。このような一実施例において、AGVは、このような搬送タスクのシーケンスを行うことができ(例えば、タスクバッチのシーケンスは、棚をピッキングステーションまで運搬し、棚を在庫エリアに返却するなどの順次のサブタスクを包含することができる)、この結果、対象のロボットの現在の状況に従って、適切なパラメータセットがロードされる。
【0026】
ピッキングロボット(PR)は、
AGVからの搬送された在庫棚から1つ以上の物品をピッキングし、これら物品を出荷箱にプレースする。計画された物品及び出荷箱が、RCによって、ピッキングステーションにおける状況に基づいて選択される。AGV経路探索の制御ストラテジに加えて、物品及び仕分け箱を選択する制御ストラテジが、テーブルまたは関数によって表される。RCは、物品を選択することができるいくつかのあらかじめ定義された関数を有する。テーブルタイプの制御ストラテジは、ピッキングステーションのステータスとあらかじめ定義された関数との所与のペアがどの程度作業に適切であるかを示す値を示す。この場合に、パラメータセットは、テーブル形式の値を推定するように構成された推定器において使用される。推定器が全結合ニューラルネットワークとして表現される場合、パラメータセットは、全結合ニューラルネットワークの重み及びバイアスに対応する。他方で、関数タイプの制御ストラテジは、所与の輻輳ステータスに対して適切なあらかじめ定義された関数を直接選択することもできる。
【0027】
関数が全結合ニューラルネットワークとして表現される場合、パラメータセットは、ニューラルネットワークの重み及びバイアスに対応する。パラメータセットをロードして、全結合ニューラルネットワークを、全結合ニューラルネットワークの重み及びバイアスを用いて実行することによって、最適化されたプロセスを計算することができ、この結果、ロボットは、全結合ニューラルネットワークによって決定される、計算された最適化されたプロセスに従って実行動作することができる。このようなパラメータセットを、複数のロボットのシミュレーションを実行することから決定して、最適化されたプロセスを決定することができる。ピッキング物品及び仕分け箱の選択は、1つの搬送された在庫棚について、全ての物品がこの在庫棚からピッキングされるまで、再帰的に実行される。PRの機能がAGVの機能とは異なるため、これらのロボットは、所望の実装態様に応じて、異なるRCを用いて制御されてもよい。それゆえ、ロボットタイプまたは当該ロボットの機能タイプに従って、種々の制御ストラテジを用意することができる。パラメータセットの生成は、ロボットタイプまたは当該ロボットの機能(例えば、ピッキング、運搬など)に照らして実施され、ロボットタイプまたは機能に基づいて、適切なパラメータセットをロードすることができる。
【0028】
OCは、OCの制御ストラテジに基づいて、ピッキングステーションに出荷箱を割り付ける。割り付けられた出荷箱に必要とされるオーダ物品は、いずれの在庫棚をAGVによってピッキングステーションに搬送すべきかを決定する。例えば
図2に例示される実装態様例において、RCは、ピッキングロボット及びAGVを含めて、ロボット作業を管理する。OCは、タスクの割り当てを制御する。例えば、
図2に例示されたピッキングステーションにおいて、OCは、いずれの出荷箱がいずれのステーションにおいて処理されることとなるかを制御することができる。出荷箱は、ピッキング作業の進捗ステータスに基づいて選択される。PRがピッキングステーションへの在庫棚の到着を待つ場合の待ち時間を最小化することによって、効率的なピッキング作業を達成することができるため、システム効率は、AGVの棚搬送時間とPRのピックアンドプレース時間との両方に依存する。したがって、AGV稼働エリアにおける輻輳ステータスとピッキングステーションにおけるピッキング作業ステータスとの両方が、OCの制御ストラテジの入力として使用される。RCの制御ストラテジに加えて、OCの制御ストラテジを、テーブルまたは関数によって表すことができる。その上、OCのハードウェアを、RCの同様の構成をインストールすることによって達成することができる。出荷箱選択アルゴリズムの一実施例として、シードアルゴリズムを、OCにおけるあらかじめ定義された関数として適用することができる。この場合に、スコアリング係数及びシード選択方法などの、このアルゴリズムにおいて使用されるいくつかのハイパーパラメータセットがまた、OCのメモリデバイスに記憶されている。OCの制御ストラテジは、所与の入力に対して適切なハイパーパラメータセットを選択することができる。OCの別の機能として、同じ種類の物品が異なる在庫棚に保管されている場合、OCは、ストックレイアウト及び他のオーダを考慮に入れることによって、OCのオーダに対して適切な在庫棚を選択してもよい。この場合に、OCの制御ストラテジはまた、組み合わせ最適化方法のハイパーパラメータセットを選択する。OCが種々のタイプのタスク(出荷箱割り付け及び在庫棚選択など)に対応するパラメータセットを制御する場合、OCは、タスクのタイプに基づく複数のコントローラを包含し得る。
【0029】
計算装置は、OC及びRCと同様の制御ストラテジを有し、AOPSの作業をシミュレートすることができる。実装態様例において、このシミュレーションは、AGVの棚搬送とPRのピックアンドプレース作業との両方を含む。制御ストラテジの最適なパラメータセットを取得する方法の一実施例として、計算装置に強化学習フレームワークを導入することができる。このような実装態様例において、パラメータセットは、強化学習フレームワークから獲得されたポリシーまたは状態行動価値を表す関数に関連付けられたパラメータを含むことができ、これらのパラメータを使用して、最適制御ストラテジまたはプロセスを定義することができる。最適制御ストラテジは、訓練フェーズを経て取得でき、訓練フェーズの間、計算装置は、ピッキング作業を繰り返しシミュレートし、シミュレーション結果に基づいて、パラメータセットを更新する。
【0030】
プロセッサ(複数可)501は、複数のロボットを包含するシステムの方法またはコンピュータ命令を実行するように構成でき、これらの命令は、
図1及び2に例示されるように、複数のリアルタイムオーダの受領に対して、リアルタイムオーダを遂行する複数のタスクバッチを生成することと、複数のロボットによる、複数のタスクバッチを実行する実行のパラメータセットを生成することと、コントローラによる、複数のロボットのうちの1つ以上が複数のタスクバッチを実行することとなるとの決定に対して、パラメータセットをロードすることと、ロードされたパラメータセットに基づいて、複数のロボットのうちの1つ以上を、複数のタスクバッチを実行するように制御することとを包含する。
【0031】
プロセッサ(複数可)501は、方法またはコンピュータ命令を実行して、RCに記憶されたロボットとこれらロボットのタスクバッチとの間の関係に基づいて、複数のロボットのうちの、複数のタスクバッチに関連付けられた制御ストラテジを実行することとなるロボットを特定することによって、複数のロボットのうちの1つ以上が複数のタスクバッチを実行すると決定するように構成でき、関係に基づく複数のロボットのうちの1つ以上を、複数のタスクバッチを実行するように制御することは、
図4に例示されるように、制御ストラテジによって計算から取得された命令を、複数のロボットのうちの1つ以上に実行のために伝送することを包含する。
【0032】
本明細書に記載されるように、パラメータセットは、オーダコントローラの第1のパラメータセットと、ロボットコントローラの第2のパラメータセットとを包含することができる。プロセッサ(複数可)501は、第1のパラメータセットをオーダコントローラとして使用することによって、少なくとも1つのピッキングロボットへの受領されたオーダの割り付けを管理することと、第2のパラメータセットをロボットコントローラとして使用することによって、複数のロボットのうちの1つ以上を管理することとを包含する方法またはコンピュータ命令を実行するように構成できる。
【0033】
所望の実装態様に応じて、ロードされたパラメータセットは、ニューラルネットワークに関連付けられたパラメータを包含することができ、プロセッサ(複数可)501は、ロードされたパラメータセットを用いてニューラルネットワークに従って、複数のロボットの最適化されたプロセスを計算することを包含する方法またはコンピュータ命令を実行するように構成でき、ロボットは、計算された最適化されたプロセスに従って実行動作するように命令される。このようなパラメータセットを、複数のロボットのシミュレーションを実行することから生成することができる。
【0034】
所望の実装態様に応じて、ロードされたパラメータセットは、強化学習から獲得されたポリシーまたは状態行動価値を表す関数に関連付けられたパラメータを含む。
【0035】
プロセッサ(複数可)501は、方法またはコンピュータ命令を実行して、ロードされたパラメータセットに基づく複数のロボットのうちの1つ以上を、ロボットタイプまたはロボット機能のうちの1つ以上に基づいて、複数のロボットのうちの1つ以上の各々の制御ストラテジを実行することによって、複数のタスクバッチを実行するように制御するように構成でき、複数のロボットによる複数のタスクバッチを実行する実行のパラメータセットを生成することは、ロボットタイプまたはロボット機能のうちの1つ以上について行われ、パラメータセットをロードすることは、本明細書に記載されるように、ロボットタイプまたはロボット機能に基づいて実施される。さらに、本明細書に記載されるように、複数のロボットによる、複数のタスクバッチを実行する実行のパラメータセットを生成することは、複数のタスクバッチ中のサブタスクのタイプごとに1つ以上のパラメータセットを生成することを包含することができる。
【0036】
本実施形態では、AOPSにおいて、いくつかのタスクバッチが並列に処理され得る。例えば、先行するタスクバッチがこのタスクバッチのピッキングタスクの完了に近付くと、このタスクバッチは、タスクバッチを処理するのに、システムリソースのわずかな部分のみを要する。したがって、後続のタスクをWMSからAOPSにインストールすることができる。
図2に例示されるように一点鎖線で囲まれたピッキングエリアは、先行するタスクバッチのピッキング作業の実施例を示す。この場合に、OC及びRCは、一点鎖線で囲まれたエリアの外に位置する、ピッキングステーション、AGV、及び在庫棚を利用することによって、後続のタスクバッチのピッキング作業を開始することができる。しかしながら、ピッキングタスク、AGV、ピッキングステーション、及び在庫棚が異なるため、最適制御ストラテジは、これらのタスクバッチ間で異なる傾向がある。両方のタスクバッチの最適制御ストラテジを達成するために、RCは、計算装置によって導出された2つのパラメータセットを記憶する。各パラメータセットは、異なるタスクバッチに対応し、これらの関連付けもRCに記憶される。
【0037】
図6は、一実装態様例による、RCの制御ストラテジに使用されるパラメータセットのデータテーブルの実施例を例示するものである。データテーブルは、
図5に例示されるように、メモリデバイス(502)に記憶されている。
図6における各列は、タスクバッチID、パラメータセットID、及び各パラメータの値を包含するタプルを記録する。
図6において、制御ストラテジのN個のパラメータがあり、各パラメータは、浮動小数点型変数として記憶されている。制御ストラテジが、同じ形状の多項式関数及びニューラルネットワークなどの固定関数型として表現されるため、全てのパラメータセットがN個のパラメータを有する。RCは、パラメータセットを切り替え、RCの制御ストラテジは、ピッキングタスクを処理することが内包されるタスクバッチに従って、切り替えられたパラメータセットを使用することによって計算を実行する。
【0038】
図7は、一実装態様例による、タスクバッチに対応するRCのパラメータセットを選択するプロセスフローを例示するものである。棚搬送及び物品ピッキングなどのロボットタスクの全てが、これらロボットタスクのタスクバッチとリンクされてい
る。ロボットの制御について最適な決定を行うために、RCがまず、いずれのタスクバッチがロボットのタスクに対応するかを確認する(S701)。次いで、RCが、S701における検証されたタスクバッチに対応するパラメータセットを選択し(S702)、選択されたパラメータセットをRCの制御ストラテジに適用する(S703)。ここでは、パラメータセットは、
図6に示されたデータテーブルを参照することによって選択される。RCの制御ストラテジは、ロボットの行動に必要とされる情報を計算する(S704)。ロボットの制御フローへのこのプロセスフローの適用の一実施例として、
図4においてRCが棚搬送タスクを受信する(S401)と、一連のフローが適用される。
【0039】
本明細書に記載された実装態様例によって、自動システムは、種々のタスクセットの並列化された作業の間、高生産性の作業を維持することができる。自動オーダピッキングシステムにおける物品保管及び搬送の機能は、自動保管及び取り出しシステムと複数のコンベアとの組み合わせなどの他のマテリアルハンドリング機器を設置することによっても、達成され得る。
【0040】
詳細な説明のいくつかの部分は、コンピュータ内での動作のアルゴリズム及び記号表現の観点で提示されている。これらのアルゴリズムの説明及び記号表現は、データ処理分野の当業者によって他の当業者にそれらの技術革新の本質を伝達するために使用される手段である。アルゴリズムは、所望の終状態または結果を導く一連の定義されたステップである。実装態様例において、実行されるステップは、実体的な結果を達成するための実体的な量の物理的操作を必要とする。
【0041】
特に別段述べない限り、議論から明らかなように、説明の全体を通して、「処理する」、「計算する(computing)」、「計算する(calculating)」、「決定する」、「表示する」などの用語を利用する議論は、コンピュータシステム、またはコンピュータシステムのレジスタ及びメモリ内の物理(電子的)量として表されるデータを操作して、コンピュータシステムのメモリもしくはレジスタまたは他の情報記憶デバイス、情報伝送デバイス、もしくは情報表示デバイス内の物理量として同様に表される他のデータに変換する他の情報処理デバイスのアクション及びプロセスを含むことができる。
【0042】
実装態様例は、本明細書における動作を実行する装置にも関連し得る。この装置は、必要とされる目的のために専用に構成されていてもよいし、この装置は、1つ以上のコンピュータプログラムによって選択的に作動または再構成される1つ以上の汎用コンピュータを含んでいてもよい。このようなコンピュータプログラムは、コンピュータ可読記憶媒体またはコンピュータ可読信号媒体などの、コンピュータ可読媒体に記憶されていてもよい。コンピュータ可読記憶媒体は、光ディスク、磁気ディスク、読み取り専用メモリ、ランダムアクセスメモリ、ソリッドステートデバイス及びドライブ、または電子情報を記憶するのに好適な任意の他のタイプの有形のもしくは非一時的な媒体などであるが、これらに限定されない、有形の媒体を包含し得る。コンピュータ可読信号媒体は、搬送波などの媒体を含み得る。本明細書に提示されたアルゴリズム及び表示は、任意の特定のコンピュータまたは他の装置に固有に関連するものではない。コンピュータプログラムは、所望の実装態様の動作を実行する命令を包含する純粋なソフトウェア実装態様を包含することができる。
【0043】
様々な汎用システムが、本明細書における実施例によるプログラム及びモジュールとともに使用されてもよいし、所望の方法ステップを実行するより専用化された装置を構成することに利便性があることが分かり得る。加えて、実装態様例は、任意の特定のプログラミング言語を参照して記載されてはいない。多様なプログラミング言語を使用して、本明細書に記載される実装態様例の技法を実装し得ることが理解されよう。プログラミング言語(複数可)の命令は、1つ以上の処理デバイス、例えば、中央処理装置(CPU)、プロセッサ、またはコントローラによって実行され得る。
【0044】
当該分野で知られているように、上述した動作を、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアとの何らかの組み合わせによって実行することができる。実装態様例の様々な態様を、回路及び論理デバイス(ハードウェア)を使用して実装してもよい一方、他の態様を、機械可読媒体(ソフトウェア)に記憶された命令を使用して実装してもよく、これらの命令は、プロセッサによって実行されるならば、プロセッサに、本出願の実装態様を実行する方法を実行させるであろう。さらに、本出願のいくつかの実装態様例は、ハードウェア単独で実行されてもよいのに対して、他の実装態様例は、ソフトウェア単独で実行されてもよい。また、記載された様々な機能を、単一のユニットで実行することもできるし、任意の数の方途でいくつかの構成要素にわたって分散させることもできる。ソフトウェアによって実行される場合、これらの方法は、コンピュータ可読媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行されてもよい。所望であれば、これらの命令を、圧縮された形式及び/または暗号化された形式で媒体に記憶することができる。
【0045】
また、本出願の他の実装態様は、本明細書の考慮と本出願の技法の実施とから、当業者に明らかであろう。記載された実装態様例の様々な態様及び/または構成要素を、単独で、または任意の組み合わせで使用してもよい。本明細書及び実装態様例は単に例とみなされることを意図しており、本出願の範囲及び趣旨は、以下の特許請求の範囲によって示されている。