(57)【要約】【課題】複数の自律体を含む自律体システムにおいて、全体にとって望ましく、かつ、各自律体にとっても望ましい、各自律体の動作を決定する。【解決手段】複数の自律体を有する自律体システムであって、複数の自律体の各々は、状況を把握する状況把握部と、把握された状況に基づいて動作を決定する動作決定部と、決定した動作を実行する動作実行部と、を有し、前記自律体システムが有する前記複数の自律体は、一つ以上の第１の自律体と、二つ以上の第２の自律体とを含み、第１の自律体の状況把握部が把握する状況は、第２の自律体の状況を含み、第２の自律体の状況把握部が把握する状況は、第１の自律体の動作実行部によって実行された動作の結果を含み、第２の自律体の動作決定部は、第１の自律体の動作実行部によって実行された動作の結果に基づいて動作を決定する。【選択図】図１
2020087206.tif 000002
【特許請求の範囲】
【請求項１】
複数の自律体を有する自律体システムであって、
前記複数の自律体の各々は、状況を把握する状況把握部と、把握された状況に基づいて動作を決定する動作決定部と、決定した動作を実行する動作実行部と、を有し、
前記自律体システムが有する前記複数の自律体は、一つ以上の第１の自律体と、二つ以上の第２の自律体とを含み、
前記第１の自律体の前記状況把握部が把握する状況は、前記第２の自律体の状況を含み、
前記第２の自律体の前記状況把握部が把握する状況は、前記第１の自律体の動作実行部によって実行された動作の結果を含み、
前記第２の自律体の前記動作決定部は、前記第１の自律体の動作実行部によって実行された動作の結果に基づいて動作を決定することを特徴とする自律体システム。
【請求項２】
請求項１に記載の自律体システムであって、
前記第１の自律体の前記動作決定部は、前記第１の自律体の前記状況把握部が把握した状況に基づいて算出される評価パラメータが高い評価を示す値となるように前記第１の自律体の動作を決定することを特徴とする自律体システム。
【請求項３】
請求項２に記載の自律体システムであって、
前記第１の自律体の前記動作決定部は、前記第１の自律体の前記状況把握部が把握した状況に基づいて動作を決定する関数を保持し、前記評価パラメータが高い評価を示す値となるように前記関数のパラメータを変更することを特徴とする自律体システム。
【請求項４】
請求項１に記載の自律体システムであって、
前記第２の自律体の前記動作決定部は、前記第２の自律体の前記状況把握部が把握した状況に基づいて算出される評価パラメータが高い評価を示す値となるように前記第２の自律体の動作を決定することを特徴とする自律体システム。
【請求項５】
請求項４に記載の自律体システムであって、
前記第２の自律体の前記状況把握部が把握した状況は、前記第１の自律体の動作実行部によって実行された動作の結果と、それ以外の状況と、を含み、
前記第２の自律体の前記動作決定部は、前記第１の自律体の動作実行部によって実行された動作の結果と、それ以外の状況と、に基づいて動作を決定する関数を保持し、前記評価パラメータが高い評価を示す値となるように前記関数のパラメータを変更することを特徴とする自律体システム。
【請求項６】
請求項５に記載の自律体システムであって、
前記関数のパラメータは、前記第１の自律体の動作実行部によって実行された動作の結果と、それ以外の状況と、のそれぞれに付される重みを含むことを特徴とする自律体システム。
【請求項７】
複数の自律体を有する自律体システムの制御方法であって、
前記複数の自律体の各々が、状況を把握する状況把握手順と、把握された状況に基づいて動作を決定する動作決定手順と、決定した動作を実行する動作実行手順と、を含み、
前記自律体システムが有する前記複数の自律体は、一つ以上の第１の自律体と、二つ以上の第２の自律体とを含み、
前記第１の自律体が前記状況把握手順において把握する状況は、前記第２の自律体の状況を含み、
前記第２の自律体が前記状況把握手順において把握する状況は、前記第１の自律体の動作実行手順で実行された動作の結果を含み、
前記第２の自律体は、前記動作決定手順において、前記第１の自律体の動作実行手順で実行された動作の結果に基づいて動作を決定することを特徴とする制御方法。
【請求項８】
請求項７に記載の制御方法であって、
前記第１の自律体は、前記動作決定手順において、前記第１の自律体の前記状況把握手順で把握された状況に基づいて算出される評価パラメータが高い評価を示す値となるように前記第１の自律体の動作を決定することを特徴とする制御方法。
【請求項９】
請求項８に記載の制御方法であって、
前記第１の自律体は、前記第１の自律体の前記状況把握手順で把握された状況に基づいて動作を決定する関数を保持し、前記動作決定手順において、前記評価パラメータが高い評価を示す値となるように前記関数のパラメータを変更することを特徴とする制御方法。
【請求項１０】
請求項７に記載の制御方法であって、
前記第２の自律体は、前記動作決定手順において、前記第２の自律体の前記状況把握手順で把握された状況に基づいて算出される評価パラメータが高い評価を示す値となるように前記第２の自律体の動作を決定することを特徴とする制御方法。
【請求項１１】
請求項１０に記載の制御方法であって、
前記第２の自律体が前記状況把握手順において把握した状況は、前記第１の自律体の前記動作実行手順において実行された動作の結果と、それ以外の状況と、を含み、
前記第２の自律体は、
前記第１の自律体の動作実行手順で実行された動作の結果と、それ以外の状況と、に基づいて動作を決定する関数を保持し、前記動作決定手順において、前記評価パラメータが高い評価を示す値となるように前記関数のパラメータを変更することを特徴とする制御方法。
【請求項１２】
請求項１１に記載の制御方法であって、
前記関数のパラメータは、前記第１の自律体の動作実行手順で実行された動作の結果と、それ以外の状況と、のそれぞれに付される重みを含むことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の自律体を含む自律体システムに関する。
【背景技術】
【０００２】
複数のロボットを含むシステムを制御する技術として、例えば特開２００６−０００９５４号公報（特許文献１）又は特開２０１５−２０８８１１号公報（特許文献２）に開示された技術がある。
【０００３】
特許文献１には、複数台のロボットが協調的に動作し、全体としてある特定の目的を実現するマルチロボット・システムに関して、「マルチロボット・システムは、舞台上で活動する複数のロボットと、舞台上のロボットの動作を監視するモニタ・システムと、マルチロボットの運用を行なう統括コントローラで構成される。統括コントローラは、ロボットの状態と、モニタされた位置及び方向に基づいて、ロボットに対する動作指示や、ロボットに対する位置及び方向の補正指示、異常発生（若しくは予測）時におけるロボットへの動作指示を、無線ＬＡＮ経由でリアルタイムに行なう。」と記載されている。
【０００４】
特許文献２には、複数台のロボットを有するロボットシステムの動作プログラムの最適化に関して、「シミュレーション装置は、駆動軸の指令速度と指令加速度と動作待ち指令とを含む動作プログラムをシミュレーションにより実行するシミュレーション部と、動作プログラムの行番号と行番号における指令速度および指令加速度とを関連付けて時系列に記憶する記憶部と、シミュレーション部により実行されたシミュレーション結果に基づき、記憶部に記憶された行番号毎に、動作プログラムの実行時間を算出する実行時間算出部と、実行時間算出部により算出された実行時間に基づき、動作待ち指令に応じた動作待ち時間を算出する待ち時間算出部とを備える。」と記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−０００９５４号公報
【特許文献２】特開２０１５−２０８８１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記の特許文献１に記載されたロボットシステムでは、各ロボットがコントローラからの指示を受けるために、コントローラとの通信に適合したインターフェースを持つ必要がある。また、コントローラが各ロボットを制御するために、必要に応じて情報の統合、無矛盾性の保証及び同期の保証等が必要となる。また、ロボットの仕様の変更又は新たな仕様を持ったロボットの追加等があった場合には、それに合わせてコントローラ側の情報の変更又はインターフェースの変更等が必要になる場合がある。
【０００７】
また、上記の特許文献２に記載されたシミュレーション装置では、ロボットシステムの動作プログラムのシミュレーションを行うために、事前に各ロボットの仕様を把握しておく必要があり、仕様が変更されたり、異なる仕様のロボットが追加されたりした場合にはそれに合わせてシミュレーション装置の情報を更新する必要がある。
【課題を解決するための手段】
【０００８】
上記課題の少なくとも一つを解決するために、本願において開示される発明の代表的な一例は、複数の自律体を有する自律体システムであって、前記複数の自律体の各々は、状況を把握する状況把握部と、把握された状況に基づいて動作を決定する動作決定部と、決定した動作を実行する動作実行部と、を有し、前記自律体システムが有する前記複数の自律体は、一つ以上の第１の自律体と、二つ以上の第２の自律体とを含み、前記第１の自律体の前記状況把握部が把握する状況は、前記第２の自律体の状況を含み、前記第２の自律体の前記状況把握部が把握する状況は、前記第１の自律体の動作実行部によって実行された動作の結果を含み、前記第２の自律体の前記動作決定部は、前記第１の自律体の動作実行部によって実行された動作の結果に基づいて動作を決定することを特徴とする。
【発明の効果】
【０００９】
本発明の一態様によれば、下位の各自律体（第２の自律体）が上位の自律体（第１の自律体）に対するインターフェースを明示的に持つ必要がない。このため、自律体の機種及び製造者等にかかわらず、下位の自律体と上位の自律体の接続が容易になる。また、予め各自律体に関する情報を統合したり、それらの無矛盾性及び同期等を保証したりする必要がなくなるため、動作のロバスト性が増す。さらに、下位の自律体の仕様が変化したり、新たな仕様を持った下位の自律体が追加されたりした場合にも、特別な作業を行うことなく上位の自律体が適応できるため、自律体システムの継続的な更新が可能になる。
【００１０】
前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例１の自律体システムの全体構成を示す説明図である。
【図２】本発明の実施例１の自律体システムにおける管制システムの構成を示すブロック図である。
【図３】本発明の実施例１の自律体システムにおけるウィング車の構成を示すブロック図である。
【図４】本発明の実施例１の自律体システムにおけるフォークリフトの構成を示すブロック図である。
【図５】本発明の実施例１の自律体システムにおける管制システムが実行する処理を示すフローチャートである。
【図６】本発明の実施例１の自律体システムにおけるウィング車が実行する処理を示すフローチャートである。
【図７】本発明の実施例１の自律体システムにおけるフォークリフトが実行する処理を示すフローチャートである。
【図８】本発明の実施例２の自律体システムの全体構成を示す説明図である。
【図９】本発明の実施例３の自律体システムの全体構成を示す説明図である。
【図１０】本発明の実施例４の自律体システムの全体構成を示す説明図である。
【図１１】本発明の実施例５の自律体システムの全体構成を示す説明図である。
【発明を実施するための形態】
【実施例１】
【００１２】
図１は、本発明の実施例１の自律体システム１００の全体構成を示す説明図である。
【００１３】
実施例１の自律体システム１００は、物流倉庫における自律フォークリフトによるウィング車からにパレット自動卸しシステムである。この自律体システム１００は、自律体として、一つ以上のウィング車１０２と、一つ以上のフォークリフト１０３と、管制システム１０１と、を含む。
【００１４】
ここで、自律体とは、自ら状況を把握し、判断し、動作を行う物体の総称である。例えば、センサ情報等に基づいて自律運転をするウィング車１０２及びフォークリフト１０３、並びに、センサ情報等に基づいて自律的な判断を行ってその結果を出力する管制システム１０１が自律体である。実施例１では主にこのような自律体について説明する。ただし、人間が運転するウィング車１０２及びフォークリフト１０３であっても、人間が自ら状況を把握し、判断した結果に従って動作する自律体として扱うことができる。さらに、例えば倉庫内に物品の運搬、仕分け等の作業をする人間がいる場合、その人間自身も、自ら視覚及び聴覚等によるセンシングの結果に基づいて状況を把握し、その人間の知能を用いて判断することで自律的に行動する自律体として扱うことができる。
【００１５】
倉庫は、入荷エリア１１０、在庫エリア１１１及び出荷エリア１１２を含む。入荷エリア１１０にウィング車１０２が到着すると、フォークリフト１０３は、物品が積載されたパレット１０４を下ろして在庫エリア１１１に運ぶ。在庫エリア１１１に搬送された物品は、パレット１０４に積載されたままで保管されてもよいし、パレット１０４から下ろされ、棚に保管されてもよい。物品を保管する棚は、在庫エリア１１１に固定されていてもよいし、自動搬送車（図示省略）等によって移動可能なものであってもよい。
【００１６】
フォークリフト１０３は、出荷オーダに応じて必要なパレット１０４を在庫エリア１１１から出荷エリア１１２に搬出し、出荷エリア１１２に到着したウィング車１０２に積み込む。パレット１０４の積み込みが終了したウィング車１０２は、出荷エリア１１２から離れて、次の配送先に物品を搬送する。
【００１７】
なお、図１では説明を簡単にするために省略されているが、実際の倉庫は、一般に、ウィング車１０２から下ろされたパレット１０４（又はこれからウィング車１０２に積み込まれるパレット）を仮置きするエリア、パレット１０４に積まれた物品の荷ほどきを行うエリア、出荷オーダに応じて物品のピッキング、仕分け、検品等を行うエリア、出荷する物品をパレットに積載するエリア等を含む。
【００１８】
管制システム１０１は、倉庫内の各ウィング車１０２及び各フォークリフト１０３の状況を把握して、それらを管制するための情報を出力する、上位の（又は第１の種類の）自律体である。これは、自律体システム全体に関する情報を取得して全体を最適化するための処理を行うものであり、これを全体知と呼んでもよい。これに対して、各ウィング車１０２及び各フォークリフト１０３は、管制システム１０１から出力された情報を必要に応じて利用しながら、自律的に自らの動作を決定する下位の（又は第２の種類の）自律体である。これは、それぞれ自らの周囲の情報を取得して自律的に動作するものであり、これを自律個と呼んでもよい。
【００１９】
図１の例では、倉庫内に、管制システム１０１と通信可能な一つ以上のカメラ１０５及び管制システム１０１と通信可能な一つ以上の信号機１０６が設けられる。各カメラ１０５は、倉庫内を撮影して、撮影した画像のデータを管制システム１０１に送信する。各信号機１０６は、例えば入荷エリア１１０又は出荷エリアに設けられ、管制システム１０１から送信された情報に従って何らかの信号を出力する。さらに、管制システム１０１は、各フォークリフト１０３と通信をしてもよい。
【００２０】
管制システム１０１は、カメラ１０５、信号機１０６及びフォークリフト１０３等と通信可能である限り、倉庫内又は倉庫外（遠隔地を含む）のいずれに設けられてもよい。
【００２１】
図２は、本発明の実施例１の自律体システム１００における管制システム１０１の構成を示すブロック図である。
【００２２】
管制システム１０１は、プロセッサ２０１、通信インターフェース（Ｉ／Ｆ）２０２及び記憶装置２０３を有する計算機である。
【００２３】
プロセッサ２０１は、記憶装置２０３に格納されたプログラムに従って種々の処理を実行する。通信インターフェース２０２は、ネットワーク２１０に接続され、ネットワーク２１０を介して、カメラ１０５、信号機１０６及びフォークリフト１０３等と（ウィング車１０２が管制システム１０１との通信機能を有する場合には、ウィング車１０２とも）通信する。
【００２４】
記憶装置２０３は、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の主記憶装置と、ハードディスクドライブ又はフラッシュメモリ等の補助記憶装置との組合せであってもよい。記憶装置２０３は、状況把握部２０４、動作決定部２０５、動作実行部２０６及びタスク情報２０８を保持する。
【００２５】
状況把握部２０４、動作決定部２０５及び動作実行部２０６は、プロセッサ２０１によって実行されるプログラムである。以下の説明において上記の各部が実行する処理は、実際には、プロセッサ２０１が、記憶装置２０３に保持されたプログラムに従って、必要に応じて通信インターフェース２０２、カメラ１０５及び信号機１０６等を制御することによって実行する。
【００２６】
例えば、カメラ１０５による撮影機能と、プロセッサ２０１が状況把握部２０４のプログラムに従ってカメラ１０５が撮影した画像から状況を把握する機能と、の全体を状況把握部２０４の機能として扱ってもよい。言い換えると、カメラ１０５を状況把握部２０４の一部と考えてもよい。同様に、信号機１０６を動作実行部２０６の一部と考えてもよい。上記の各部の処理については後述する。
【００２７】
タスク情報２０８は、管制システム１０１が実行すべきタスクに関する情報である。例えば、実施例１の管制システム１０１が倉庫内のウィング車１０２及びフォークリフト１０３を管制する場合には、タスク情報２０８は、その倉庫から出荷されるべき物品の種類、数量及び出荷先等を含んだ出荷オーダを含んでもよい。
【００２８】
カメラ１０５は、倉庫内を撮影する光学カメラである。倉庫の状況を把握するために必要であれば倉庫外を撮影するカメラ１０５が設置されてもよい。カメラ１０５は、倉庫内を撮影して、その画像データをネットワーク２１０を介して管制システム１０１に送信する。状況把握部２０４は、画僧データに基づいて、倉庫の状況（例えば倉庫内の各エリアにおけるパレット１０４の配置、各ウィング車１０２及び各フォークリフト１０３の位置及び状態等）を把握する。
【００２９】
なお、カメラ１０５は、管制システム１０１が倉庫の状況を把握するための情報を取得するセンサの一例である。センサとして、カメラ１０５の代わりに（又はカメラ１０５に加えて）レーダー又はＬＩＤＡＲ（Ｌａｓｅｒ  Ｉｍａｇｉｎｇ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｒａｎｇｉｎｇ）を用いてもよい。また、管制システム１０１が各ウィング車１０２及び各フォークリフト１０３の位置を把握するために例えばビーコンを使用してもよい。その場合はビーコン信号の受信機が倉庫内の各所に設置されてネットワーク２１０に接続される。倉庫に複数のカメラ１０５が設置されてもよいし、複数の種類のセンサが設置されてもよい。
【００３０】
信号機１０６は、例えば交通信号と同様に、進行を許可する青色、停止を指示する黄色又は赤色の色信号を出力してもよい。信号機１０６は、例えば入荷エリア１１０及び出荷エリア１１２に設置され、ウィング車１０２に対して進行の許可又は停止等の情報を提示するために使用される。信号機１０６は、ネットワーク２１０を介して管制システム１０１から送信された信号に従って、いずれかの色信号を出力してもよい。あるいは、信号機１０６は、色信号の代わりに図形、記号又は文字等を含む信号によって進行、停止等の情報を表示してもよい。さらに、信号機１０６は、ウィング車１０２のウィングの開閉を指示する情報を表示してもよい。あるいは、信号機１０６の代わりに（又はそれに加えて）、上記のような情報を含む音声信号を出力する装置が使用されてもよい。
【００３１】
ネットワーク２１０は、管制システム１０１とウィング車１０２、フォークリフト１０３、カメラ１０５及び信号機１０６との通信を可能にするものである限り、いかなる種類のものであってもよい。例えば、ネットワーク２１０は、管制システム１０１が遠隔地にある場合には広域ネットワークを含んでもよいし、移動するフォークリフト１０３等と通信するために無線ネットワークを含んでもよい。
【００３２】
図３は、本発明の実施例１の自律体システム１００におけるウィング車１０２の構成を示すブロック図である。
【００３３】
ウィング車１０２は、物品が積載されたパレット１０４を搬送する車両である。ここではフォークリフト１０３によるパレットの積み下ろしが容易なウィング車（すなわち荷台部分の側板と天井が跳ね上がるタイプのトラック車両）を例示したが、それ以外のタイプの車両が使用されてもよい。
【００３４】
ウィング車１０２は、プロセッサ３０１、通信インターフェース３０２、センサ部３０３、駆動部３０４及び記憶装置３０５を有する。
【００３５】
プロセッサ３０１は、記憶装置３０５に格納されたプログラムに従って種々の処理を実行する。通信インターフェース３０２は、ネットワーク２１０に接続され、管制システム１０１と通信する。ただし、ウィング車１０２は管制システム１０１との通信機能を持たなくてもよく、その場合はウィング車１０２は通信インターフェース３０２を持たなくてもよい。
【００３６】
センサ部３０３は、ウィング車１０２の周囲の状況を把握するための情報を取得する。センサ部３０３は、例えば光学カメラ、レーダー又はＬＩＤＡＲ等を含んでもよいし、マイクロフォンのような音声センサを含んでもよい。ウィング車１０２は複数のセンサ部３０３を有してもよいし、複数の種類のセンサ部３０３を有してもよい。
【００３７】
駆動部３０４は、ウィング車１０２の走行及びウィングの開閉等の機能を有する。駆動部３０４は、例えば、内燃機関又は電動機のような原動機、原動機が発生した動力を車輪又はウィングに伝達する伝達装置、ウィング車１０２を所望の方向に走行させるための操舵装置等を含む。
【００３８】
記憶装置３０５は、例えば、ＤＲＡＭ等の主記憶装置と、ハードディスクドライブ又はフラッシュメモリ等の補助記憶装置との組合せであってもよい。記憶装置３０５は、状況把握部３０６、動作決定部３０７、動作実行部３０８及びタスク情報３１０を保持する。
【００３９】
状況把握部３０６、動作決定部３０７及び動作実行部３０８は、プロセッサ３０１によって実行されるプログラムである。以下の説明において上記の各部が実行する処理は、実際には、プロセッサ３０１が、記憶装置３０５に保持されたプログラムに従って、必要に応じて通信インターフェース３０２、センサ部３０３及び駆動部３０４等を制御することによって実行する。
【００４０】
例えば、センサ部３０３によるセンシング機能と、センサ部３０３がセンシングした情報に基づいて、プロセッサ３０１が状況把握部３０６のプログラムに従って状況を把握する機能と、の全体を状況把握部３０６の機能として扱ってもよい。言い換えると、センサ部３０３を状況把握部３０６の一部と考えてもよい。通信インターフェース３０２が受信した情報が状況把握に利用される場合には、通信インターフェース３０２も状況把握部３０６の一部と考えてもよい。同様に、駆動部３０４を動作実行部３０８の一部と考えてもよい。
【００４１】
なお、本実施例のウィング車１０２は、運転者なしで自動運転を行う自動運転機能、又は、運転者の運転を支援する運転支援機能を有する。上記の状況把握部３０６、動作決定部３０７及び動作実行部３０８の少なくとも一部は、自動運転機能又は運転支援機能の少なくとも一部として実装されてもよい。
【００４２】
また、図３では省略されているが、記憶装置３０５は、自動運転機能又は運転支援機能によって参照される地図データ等をさらに保持してもよい。
【００４３】
タスク情報３１０は、ウィング車１０２が実行すべきタスクに関する情報である。例えば、タスク情報３１０は、ウィング車１０２が次に向かうべき倉庫又は出荷先の情報等を含んでもよい。
【００４４】
図４は、本発明の実施例１の自律体システム１００におけるフォークリフト１０３の構成を示すブロック図である。
【００４５】
フォークリフト１０３は、ウィング車１０２からのパレット１０４の荷卸し、入荷エリア１１０、在庫エリア１１１及び出荷エリア１１２の間のパレット１０４の搬送、及び、ウィング車１０２へのパレット１０４の積み込み等を行う車両である。
【００４６】
フォークリフト１０３は、プロセッサ４０１、通信インターフェース４０２、センサ部４０３、駆動部４０４及び記憶装置４０５を有する。
【００４７】
プロセッサ４０１は、記憶装置４０５に格納されたプログラムに従って種々の処理を実行する。通信インターフェース４０２は、ネットワーク２１０に接続され、管制システム１０１と通信する。
【００４８】
センサ部４０３は、フォークリフト１０３の周囲の状況を把握するための情報を取得する。センサ部４０３は、例えば光学カメラ、レーダー又はＬＩＤＡＲ等を含んでもよいし、マイクロフォンのような音声センサを含んでもよい。フォークリフト１０３は複数のセンサ部４０３を有してもよいし、複数の種類のセンサ部４０３を有してもよい。具体的には、センサ部４０３は、フォークリフト１０３の走行のために周囲の物体を検知するためのセンサ、及び、フォークの爪とパレット１０４との位置関係を計測するためのセンサ等を含んでもよい。
【００４９】
駆動部４０４は、フォークリフト１０３の走行及びフォークによるパレット１０４の上げ下ろしの機能を有する。駆動部４０４は、例えば、内燃機関又は電動機のような原動機、原動機が発生した動力を車輪又はフォークに伝達する伝達装置、フォークリフト１０３を所望の方向に走行させるための操舵装置等を含む。
【００５０】
記憶装置４０５は、例えば、ＤＲＡＭ等の主記憶装置と、ハードディスクドライブ又はフラッシュメモリ等の補助記憶装置との組合せであってもよい。記憶装置４０５は、状況把握部４０６、動作決定部４０７、動作実行部４０８及びタスク情報４１０を保持する。
【００５１】
状況把握部４０６、動作決定部４０７及び動作実行部４０８は、プロセッサ４０１によって実行されるプログラムである。以下の説明において上記の各部が実行する処理は、実際には、プロセッサ４０１が、記憶装置４０５に保持されたプログラムに従って、必要に応じて通信インターフェース４０２、センサ部４０３及び駆動部４０４等を制御することによって実行する。
【００５２】
例えば、センサ部４０３によるセンシング機能と、センサ部４０３がセンシングした情報に基づいて、プロセッサ４０１が状況把握部４０６のプログラムに従って状況を把握する機能と、の全体を状況把握部４０６の機能として扱ってもよい。言い換えると、センサ部４０３を状況把握部４０６の一部と考えてもよい。通信インターフェース４０２が受信した情報が状況把握に利用される場合には、通信インターフェース４０２も状況把握部４０６の一部と考えてもよい。同様に、駆動部４０４を動作実行部４０８の一部と考えてもよい。上記の各部の処理については後述する。
【００５３】
なお、本実施例のフォークリフト１０３は、運転者なしで自動運転を行う自動運転機能、又は、運転者の運転を支援する運転支援機能を有する。上記の状況把握部４０６、動作決定部４０７及び動作実行部４０８の少なくとも一部は、自動運転機能又は運転支援機能の少なくとも一部として実装されてもよい。
【００５４】
また、図４では省略されているが、記憶装置４０５は、自動運転機能又は運転支援機能によって参照される倉庫内の地図データ等をさらに保持してもよい。
【００５５】
タスク情報４１０は、フォークリフト１０３が実行すべきタスクに関する情報である。例えば、タスク情報４１０は、フォークリフト１０３が搬送すべきパレット１０４及びその搬送先を示す情報等を含んでもよい。
【００５６】
図５は、本発明の実施例１の自律体システム１００における管制システム１０１が実行する処理を示すフローチャートである。
【００５７】
最初に、管制システム１０１の状況把握部２０４は、倉庫の状況を把握する（ステップ５０１）。例えば、状況把握部２０４は、各カメラ１０５から送信された画像データの画像認識等を行って、倉庫内の各エリアにおけるパレット１０４の配置、各ウィング車１０２の位置及び状態（例えば走行中であるか否か、駐車している場合はどこに駐車しているか、ウィングを開いているか否か等）、各フォークリフト１０３の位置及び状態（例えば走行中であるか否か、パレット１０４を積載しているか否か等）を把握してもよい。
【００５８】
次に、管制システム１０１の動作決定部２０５は、管制システム１０１の動作を決定する（ステップ５０２）。具体的には、動作決定部２０５は、状況把握部２０４によって把握された状況が入力されると、それに基づいて、管制システム１０１の動作を決定する。ここで管制システム１０１の動作とは、例えば、各信号機１０６への信号の送信及び各フォークリフト１０３への指示の送信等である。例えば、動作決定部２０５は、状況把握部２０４が把握した状況に基づいて、ウィング車１０２の入荷エリア又は出荷エリアへの到着、及びウィングの開閉等を把握又は予測し、それに基づいてフォークリフト１０３がパレット１０４を取りに行く（又は積み込みに行く）タイミングを決定してもよい。あるいは、ウィング車１０２からの荷卸し又はウィング車１０２への物品の積み込みが終了し、フォークリフト１０３が荷台から離れた状況を把握して、ウィング車１０２がウィングを閉じて発車するタイミングを決定してもよい。
【００５９】
具体的には、例えば、動作決定部２０５は、状況把握部２０４によって把握された状況を入力として、実行されるべき動作を出力とする関数を保持し、その関数を用いてステップ５０２を実行してもよい。この関数は、いかなるものであってもよいが、例えばニューラルネットワークによって実装されてもよい。
【００６０】
次に、管制システム１０１の動作実行部２０６は、決定した動作を実行する（ステップ５０３）。例えば、ステップ５０２において各信号機１０６が表示すべき信号（例えばウィング車１０２の進行又は停止、ウィングの開閉等を示す信号）が決定された場合、動作実行部２０６は、通信インターフェース２０２及びネットワーク２１０を介して、決定された信号を表示させる指示を各信号機１０６に送信する。また、ステップ５０２において各フォークリフト１０３に送信すべき情報（例えば各フォークリフト１０３の行き先、搬送すべきパレットの識別情報等）が決定された場合、動作実行部２０６は、通信インターフェース２０２及びネットワーク２１０を介して、決定された情報を各フォークリフト１０３に送信する。
【００６１】
その後、処理はステップ５０１に戻り、上記のステップ５０１から５０３の処理が繰り返し実行される。
【００６２】
なお、動作決定部２０５は、いずれかのタイミングで（例えば、学習に使用できる十分な量のデータが蓄積されたと判定された時点で）、動作の決定を最適化するための学習処理を行ってもよい。例えば、動作決定部２０５は、管制システム１０１に設定されたＫＰＩ（Ｋｅｙ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｉｎｄｉｃａｔｏｒ）を保持し、その値が向上する（すなわち高い評価を示す値となる）ように関数のパラメータを変更してもよい。
【００６３】
ここで、動作決定部２０５が実行する学習処理の一例を説明する。管制システム１０１に設定されたＫＰＩ（すなわち管制システム１０１のパフォーマンスを評価するパラメータ）は、例えば、倉庫全体のスループット又は売上高等である。動作決定部２０５は、例えば、ステップ５０２において決定した動作が実行された後のＫＰＩに基づいて、ＫＰＩを向上させる（例えばスループット又は売上高等が向上する）ように、ステップ５０２で用いられる関数のパラメータを変更してもよい。このようにして学習された関数を用いることによって、ステップ５０２では、ＫＰＩが向上するような動作が決定される。
【００６４】
図６は、本発明の実施例１の自律体システム１００におけるウィング車１０２が実行する処理を示すフローチャートである。
【００６５】
最初に、ウィング車１０２の状況把握部３０６は、当該ウィング車１０２の周囲の状況を把握する（ステップ６０１）。例えば、状況把握部３０６は、センサ部３０３によって取得された情報に基づいて、当該ウィング車１０２の周囲の物体の識別、当該ウィング車１０２が荷卸し又は積み込みを行う入荷エリア１１０又は出荷エリア１１２の状況、及び、当該ウィング車１０２から視認できる信号機１０６の表示内容の識別等を行ってもよい。
【００６６】
次に、ウィング車１０２の動作決定部３０７は、ウィング車１０２の動作を決定する（ステップ６０２）。具体的には、動作決定部３０７は、状況把握部３０６によって把握された状況が入力されると、それに基づいて、ウィング車１０２の動作を決定する。ここでウィング車１０２の動作とは、例えば、入荷エリア１１０又は出荷エリア１１２への駐車及びそれらのエリアからの離脱、のための走行、停止及び操舵、並びに、ウィングの開閉等である。
【００６７】
具体的には、例えば、動作決定部３０７は、状況把握部３０６によって把握された状況を入力として、実行されるべき動作を出力とする関数を保持し、その関数を用いてステップ６０２を実行してもよい。この関数は、いかなるものであってもよいが、例えばニューラルネットワークによって実装されてもよい。
【００６８】
次に、ウィング車１０２の動作実行部３０８は、決定した動作を実行する（ステップ６０３）。例えば、ステップ６０２においてウィング車１０２の走行、停止、操舵又はウィングの開閉が決定された場合、動作実行部３０８は、決定された動作を実行する指示を駆動部３０４に送信する。
【００６９】
その後、処理はステップ６０１に戻り、上記のステップ６０１から６０３の処理が繰り返し実行される。
【００７０】
なお、動作決定部３０７は、いずれかのタイミングで、動作の決定を最適化するための学習処理を行ってもよい。例えば、動作決定部３０７は、ウィング車１０２に設定されたＫＰＩを保持し、その値が向上する（すなわち高い評価を示す値となる）ように関数のパラメータを変更してもよい。
【００７１】
ここで、動作決定部３０７が実行する学習処理の一例を説明する。ウィング車１０２に設定されたＫＰＩ（すなわちウィング車１０２のパフォーマンスを評価するパラメータ）は、例えば、ウィング車１０２の倉庫における滞在時間が短いほど評価が高くなるように設定される。動作決定部３０７は、例えば、ステップ６０２において決定した動作が実行された後に算出されたＫＰＩに基づいて、ＫＰＩを向上させる（例えば滞在時間が短くなる）ように、ステップ６０２で用いられる関数のパラメータを変更してもよい。
【００７２】
より詳細には、例えば、動作決定部３０７は、センサ部３０３が取得した情報に基づいて状況把握部３０６が把握した周囲の状況を関数に入力して、その出力に基づいて動作を決定する。このとき、把握された周囲の状況には、ウィング車１０２の周囲の物体の認識結果等の他に、当該ウィング車１０２に向けて出力された信号機１０６の信号の表示内容の認識結果が含まれる。信号機１０６の表示内容は、管制システム１０１の動作結果であり、管制システム１０１が管制システム１０１のＫＰＩを向上させるために当該ウィング車１０２が行うべきであると判断した動作を指示するものである。
【００７３】
しかし、このような管制システム１０１からの指示をそのまま実行することで当該ウィング車１０２のＫＰＩが向上するとは限らない。これは、例えば使用しているセンサの種類及び設置位置等の違いのために、管制システム１０１が取得できる倉庫の状況と、ウィング車１０２が取得できる周囲の状況とが必ずしも一致しないこと、及び、管制システム１０１がウィング車１０２のＫＰＩを把握していないことに起因する。ウィング車１０２に設定されたＫＰＩは一般には管制システム１０１に設定されたものとは異なる。また、複数のウィング車１０２のそれぞれに異なるＫＰＩが設定されている場合もある。
【００７４】
このため、動作決定部３０７は、例えば、周囲の状況のうち管制システム１０１の動作結果を認識した結果と、それ以外の状況と、のそれぞれに与える重みを、ウィング車１０２に設定されたＫＰＩが向上するように変更することによって、ステップ６０２で用いられるパラメータを変更してもよい。このようにして学習された関数を用いることによって、ステップ６０２では、ＫＰＩが向上するような動作が決定される。
【００７５】
図７は、本発明の実施例１の自律体システム１００におけるフォークリフト１０３が実行する処理を示すフローチャートである。
【００７６】
最初に、フォークリフト１０３の状況把握部４０６は、当該フォークリフト１０３の周囲の状況を把握する（ステップ７０１）。例えば、状況把握部４０６は、センサ部４０３によって取得された情報、及び、通信インターフェース４０２が管制システム１０１から受信した情報に基づいて、当該フォークリフト１０３の周囲の物体の識別、ウィング車の荷台の状況、荷台のパレットの状況、入荷エリア及び出荷エリアの状況、並びに、管制システム１０１の動作結果の識別等を行ってもよい。
【００７７】
次に、フォークリフト１０３の動作決定部４０７は、フォークリフト１０３の動作を決定する（ステップ７０２）。具体的には、動作決定部４０７は、状況把握部４０６によって把握された状況が入力されると、それに基づいて、フォークリフト１０３の動作を決定する。ここでフォークリフト１０３の動作とは、例えば、パレットの位置までの移動、パレットへのフォークのツメの差し込み及び持ち上げ、パレットの搬送先までの移動、並びに、搬送先にパレットを置く動作等である。
【００７８】
具体的には、例えば、動作決定部４０７は、状況把握部４０６によって把握された状況を入力として、実行されるべき動作を出力とする関数を保持し、その関数を用いてステップ７０２を実行してもよい。この関数は、いかなるものであってもよいが、例えばニューラルネットワークによって実装されてもよい。
【００７９】
次に、フォークリフト１０３の動作実行部４０８は、決定した動作を実行する（ステップ７０３）。例えば、ステップ７０２においてフォークリフト１０３の走行、停止、操舵又はフォークの上げ下げが決定された場合、動作実行部４０８は、決定された動作を実行する指示を駆動部４０４に送信する。
【００８０】
その後、処理はステップ７０１に戻り、上記のステップ７０１から７０３の処理が繰り返し実行される。
【００８１】
なお、動作決定部４０７は、いずれかのタイミングで、動作の決定を最適化するための学習処理を行ってもよい。例えば、動作決定部４０７は、フォークリフト１０３に設定されたＫＰＩを保持し、その値が向上する（すなわち高い評価を示す値となる）ように関数のパラメータを変更してもよい。
【００８２】
ここで、動作決定部４０７が実行する学習処理の一例を説明する。フォークリフト１０３に設定されたＫＰＩ（すなわちウィング車１０２のパフォーマンスを評価するパラメータ）は、例えば、フォークリフト１０３が効率的に作業をするほど、又は、確実に作業をするほど、評価が高くなるように設定される。作業の効率は、例えば単位時間当たりの作業量（搬送した物品の量又は移動距離等）によって計測されてもよい。また、作業の確実性は、例えば単位時間当たりの緊急停止回数等によって計測されてもよい。
【００８３】
動作決定部４０７は、例えば、ステップ７０２において決定した動作が実行された後に算出されたＫＰＩに基づいて、ＫＰＩを向上させる（例えば作業の効率が向上する）ように、ステップ７０２で用いられる関数のパラメータを変更してもよい。
【００８４】
より詳細には、例えば、動作決定部４０７は、センサ部４０３が取得した情報及び通信インターフェース４０２を介して受信した情報に基づいて状況把握部４０６が把握した周囲の状況を関数に入力して、その出力に基づいて動作を決定する。このとき、把握された周囲の状況には、フォークリフト１０３の周囲の物体の認識結果等の他に、当該フォークリフト１０３に向けて管制システム１０１から送信された情報が含まれる。管制システムから送信された情報は、管制システム１０１の動作結果であり、例えば、管制システム１０１が管制システム１０１のＫＰＩを向上させるために当該フォークリフト１０３が行うべきであると判断した動作を指示するものである。
【００８５】
しかし、このような管制システム１０１からの指示をそのまま実行することで当該フォークリフト１０３のＫＰＩが向上するとは限らない。これは、例えば使用しているセンサの種類及び設置位置等の違いのために、管制システム１０１が取得できる倉庫の状況と、フォークリフト１０３が取得できる周囲の状況とが必ずしも一致しないこと、及び、管制システム１０１がフォークリフト１０３のＫＰＩを把握していないことに起因する。フォークリフト１０３に設定されたＫＰＩは一般には管制システム１０１に設定されたものとは異なる。また、複数のフォークリフト１０３のそれぞれに異なるＫＰＩが設定されている場合もある。
【００８６】
このため、動作決定部３０７は、例えば、周囲の状況のうち管制システム１０１の動作結果を認識した結果と、それ以外の状況と、のそれぞれに与える重みを、フォークリフト１０３に設定されたＫＰＩが向上するように変更することによって、ステップ７０２で用いられるパラメータを変更してもよい。このようにして学習された関数を用いることによって、ステップ７０２では、ＫＰＩが向上するような動作が決定される。
【００８７】
管制システム１０１、ウィング車１０２及びフォークリフト１０３がそれぞれに図５から図７に示したような方法で関数を学習することによって、各々が互いのＫＰＩを把握していなくても、それぞれのＫＰＩが向上するようにそれぞれの動作を決定することができる。
【００８８】
例えば、管制システム１０１は、カメラ１０５が撮影した画像から把握した倉庫の状況に基づいて、ＫＰＩ（例えば倉庫のスループット）が向上するように、各ウィング車１０２及び各フォークリフト１０３に情報を提供する。例えば、管制システム１０１は、入荷エリア１１０にウィング車１０２が到着したことを把握すると、荷卸しのために入荷エリア１１０に行くことを指示する情報を各フォークリフト１０３に送信してもよい。
【００８９】
この情報を受信したフォークリフト１０３は、この情報と、自らのセンサ部４０３を介して把握した周囲の状況と、タスク情報４１０と、に基づいて、自らに設定されたＫＰＩ（例えば作業効率）が向上するように、自らの動作を決定する。その結果、フォークリフト１０３は、受信した情報に含まれる指示に従って入荷エリア１１０に移動してもよいし、従わずに他の動作を行ってもよい。
【００９０】
例えば、フォークリフト１０３は、既に他のパレット１０４を搬送中である場合、指示に従わずに当該パレット１０４の搬送を継続してもよい。また、フォークリフト１０３の現在地が入荷エリア１１０から遠い場合には、自らに設定されたＫＰＩを向上させるために指示に従うことが適切でないと判断して、指示に従わずに別の動作を行ってもよい。
【００９１】
あるいは、例えば倉庫内で複数の機種のフォークリフト１０３が使用されており、機種によって搬送できるパレット１０４の条件（例えば重量等）が異なる場合がある。このような場合に、フォークリフト１０３が到着したウィング車１０２に積まれている物品に関する情報を取得できたとすると、フォークリフト１０３は、自らが搬送できないパレットを積んだウィング車１０２が到着した場合には、管制システム１０１からの指示を受けたとしてもそのウィング車１０２からの荷卸しを行わないという決定をすることができる。
【００９２】
あるいは、例えば管制システム１０１が倉庫内の画像から特定のエリアにおけるフォークリフト１０３の混雑を検出した場合に、その混雑を解消してＫＰＩを向上させるために、混雑に関与しているフォークリフト１０３に対して当該エリアから離れるように移動の指示を送信してもよい。この指示を受けたフォークリフト１０３は、指示に従って移動してもよいし、指示に従うことによってフォークリフト１０３のＫＰＩが悪化すると判断して指示に従わないという決定をしてもよい。
【００９３】
このように、管制システム１０１からフォークリフト１０３への指示は、必ず従わせるためのものではなく、フォークリフト１０３の動作の決定に緩やかに働きかけるものである。
【００９４】
ウィング車１０２も同様に、信号機１０６を介して受け取った管制システム１０１からの指示に沿った動作を行うことを決定してもよいし、自らに設定されたＫＰＩを向上させるためにその指示に反する動作を行うことを決定してもよい。
【００９５】
このように、管制システム１０１が自らの動作を決定してそれを実行（すなわちそれぞれの下位の自律体に対する指示の内容を決定してそれを送信）すると、ある自律体はその指示に沿った動作を行い、別のある自律体はその指示に反する動作を行う場合がある。その結果、倉庫内の状態が変化する。管制システム１０１は、変化した倉庫内の状況を把握して、ＫＰＩの値を算出する。管制システム１０１は、先に把握した状況と、それに基づいて決定した動作と、その動作を実行した後の状況に基づいて算出されたＫＰＩの値と、に基づいて、ＫＰＩの値が向上するように、把握した状況から動作を決定するための関数のパラメータを学習してもよい。
【００９６】
例えば、当初の管制システム１０１は、入荷エリア１１０にウィング車１０２が到着したときに、全てのフォークリフト１０３に入荷エリア１１０への移動を指示してもよい。しかし、学習の結果、管制システム１０１は、パレット１０４を搬送中でないフォークリフト１０３、入荷エリア１１０の近くにいるフォークリフト１０３、又は、到着したウィング車１０２に積まれているパレットの条件に合致するフォークリフト１０３に移動の指示を送信しやすくなることが考えられる。
【００９７】
このように、管制システム１０１は、事前に下位の各自律体の特性等（ＫＰＩを含む）を把握していなくても、各自律体に緩やかに働きかけて、その結果を学習することによって、下位の各自律体が自らに設定されたＫＰＩに照らして受け入れやすい指示を出すことができるようになる。これによって、管制システム１０１の（すなわち自律体システム１００全体の）ＫＰＩの向上に寄与し、かつ、各自律体のＫＰＩの向上にも寄与するように、各自律体の動作を決定することができる。
【００９８】
なお、このような学習を行うために、管制システム１０１は、ある程度の割合で、あえて自らに設定されたＫＰＩの値を悪化させるような指示、又は、各自律体が受け入れ難いことが予想される指示を送信してもよい。
【００９９】
一方、下位の自律体について言えば、例えばフォークリフト１０３は、センサ部４０３から取得された周囲の状況と、通信インターフェース４０２が受信した管制システム１０１からの指示と、に従って、自らのＫＰＩを向上させるように、指示に沿った動作を行う場合もあり、指示に反する動作を行う場合もある。フォークリフト１０３は、決定した動作を行った後で、その動作が反映された状況に基づいて、自らに設定されたＫＰＩの値を算出する。フォークリフト１０３は、先に把握した状況と、それに基づいて決定した動作と、その動作を実行した後の状況に基づいて算出されたＫＰＩの値と、に基づいて、ＫＰＩの値が向上するように、把握した状況から動作を決定するための関数のパラメータを学習してもよい。
【０１００】
ここで、関数のパラメータは、センサ部４０３を介して把握した状況と、管制システム１０１からの指示と、のそれぞれに付される重みを含んでもよい。また、このような学習を行うために、フォークリフト１０３は、あえて自らに設定されたＫＰＩの値を悪化させるような動作を決定してもよい。
【０１０１】
ウィング車１０２については、上記のフォークリフト１０３と同様である。
【０１０２】
上記のように上位及び下位の自律体がそれぞれに学習を行うことによって、各自律体が他の自律体の特性等を把握していなくても（いわば、上位の自律体から見た下位の自律体がブラックボックスであっても）、各自律体のＫＰＩが向上し、かつ、全体としてのＫＰＩも向上するように、各自律体の行動を決定することが可能になる。これによって、全体の情報を統合したり、全体の無矛盾性及び同期を保証したりする必要がなくなり、ロバストな動作が実現される。また、未知の下位の自律体が追加されたり、既にある下位の自律体の特性が変化したりしても、上位の自律体がそれに適応できるため、自律体システムの継続的な進化が可能になる。
【０１０３】
また、上記の信号機１０６のような情報伝達手段を利用すれば、下位の自律体は上位の自律体に対するインターフェースを明示的に持つ必要がなくなる。これによって、例えば当初は想定されていなかった品種の（例えば他の自律体とは製造者が異なる）自律体も容易に接続することが可能になる。
【０１０４】
上記の例では、ウィング車１０２への指示は信号機１０６を介して伝達され、フォークリフト１０３への指示は通信インターフェース４０２を介して伝達される。この例では、ウィング車１０２は通信インターフェース３０２を持たなくてもよい。これによって、事前に詳細な通信手順などを決めておくことなく、管制システム１０１からフォークリフト１０３への情報伝達が可能になる。
【０１０５】
しかし、このような情報伝達方法は一例である。例えばウィング車１０２への情報伝達が通信インターフェース３０２を介して行われてもよい。あるいは、倉庫内の各所に信号機１０６と同様の信号機が設けられ、それを介してフォークリフト１０３への情報伝達が行われてもよい。
【０１０６】
また、上記の例では、ウィング車１０２及びフォークリフト１０３のいずれも、自動運転機能又は運転支援機能を有しているが、それらの少なくとも一部は自動運転機能及び運転支援機能のいずれも有しなくてもよい。例えば、いずれかのウィング車１０２は、プロセッサ３０１、通信インターフェース３０２、センサ部３０３及び記憶装置３０５を有しなくてもよい。その場合、当該ウィング車１０２の運転者（すなわち人間）が、駆動部３０４を操作してウィング車１０２の走行及びウィングの開閉を制御する。また、通信インターフェース３０２及びセンサ部３０３は運転者の感覚器（例えば目及び耳等）によって代替される。また、状況把握部３０６、動作決定部３０７及び動作実行部３０８の機能は運転者の知能によって代替される。
【０１０７】
この場合でも、運転者は、信号機１０６を参照することで管制システム１０１からの指示を受け取ることができる。また、この場合、ウィング車１０２に設定されたＫＰＩは、例えば運転者が早く業務を終わらせたい、又は、確実に業務を遂行したい、といったものであってもよい。
【０１０８】
フォークリフト１０３も、同様に、人間が運転するものであってもよい。その場合、信号機を介して管制システム１０１からの指示が伝達されてもよいし、通信インターフェース４０２を介して受信した指示が、フォークリフト１０３の表示部（図示省略）に表示され、運転者がそれを見て指示を受け取ってもよい。
【０１０９】
また、実施例１の自律体システムは下位の自律体として複数のウィング車１０２及び複数のフォークリフト１０３を含むが、実際には、いずれか一方のみを含んでもよいし、さらに別の自律体を含んでもよい。例えば、倉庫内に物品をピッキングするロボットが設置される場合に、そのロボットが第２の種類の自律体として追加されてもよい。あるいは、在庫エリア１１１で物品を保管する棚をピッキングエリア等に搬送するための自動搬送車が使用される場合には、そのような自動搬送車が第２の種類の自律体として追加されてもよい。その場合、第２の種類の自律体もウィング車１０２及びフォークリフト１０３と同様に何らかのＫＰＩが設定され、上記と同様の処理を実行する。
【０１１０】
また、複数のウィング車１０２は、例えば製造者が異なる複数の種類の車両を含んでもよいし、それぞれに異なるＫＰＩが設定されていてもよい。複数のフォークリフト１０３についても同様である。
【０１１１】
以上の実施例１によれば、管制システム１０１がカメラ１０５等を介して把握した倉庫の状況に従って、管制システム１０１のＫＰＩを向上させるために有効と判断される情報を下位の自律体（例えばウィング車１０２及びフォークリフト１０３）に提供する。これによって、例えば、フォークリフト１０３がウィング車１０２の荷台にアクセスするタイミングを当該ウィング車１０２及びその周囲の実際の状況にあわせて正確に知ることができる。このため、フォークリフト１０３の待ち時間等が減少し、荷卸し及び積み込みの作業時間が短縮される。また、ウィング車１０２が荷卸し及び物品の積み込みの実際の状況に合わせて、発車するタイミングを正確に知ることができる。このため、ウィング車１０２の停車時間が短縮される。
【０１１２】
管制システム１０１のような上位の自律体がなく、下位の自律体が情報を直接交換する自律体システムでは、以下の理由によって、上記のような効果を得ることは困難である。すなわち、上位の自律体がないシステムでは、各ウィング車１０２及び各フォークリフト１０３がそれぞれ自車のセンサによって取得した情報に基づいて、それぞれに設定されたＫＰＩを向上させるための動作を決定する。しかし、それぞれのセンサからは限られた範囲内の情報しか得られないため、取得した情報と実際の倉庫の状況との間に乖離が発生し、その結果としてＫＰＩが向上しない場合がある。
【０１１３】
一方、本実施例によれば、管制システム１０１が倉庫全体の（すなわち自律体システム全体の）状況を把握してそれに基づいて全体のＫＰＩを向上させるために望ましい各自律体の動作を通知することができるため、全体のＫＰＩを向上させることができる。
【０１１４】
また、ウィング車１０２とフォークリフト１０３との間で直接情報をやり取りするために互いの通信手段を予め決めておく必要がある。しかし、実際には、例えばフォークリフト１０３が倉庫の所有者によって管理されるのに対してウィング車１０２は運送会社によって管理されるなど、管理者が異なる場合があり、通信手段を予め決めておくことが現実的には困難である。しかし、本実施例によれば、例えば信号機１０６等の情報伝達手段を用いることによって、予め通信手段を決めておかなくても必要な情報を提供することが可能になる。
【実施例２】
【０１１５】
次に、本発明の実施例２を説明する。以下に説明する相違点を除き、実施例２の自律体システムの各部は、図１〜図７に示された実施例１の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。
【０１１６】
図８は、本発明の実施例２の自律体システム８００の全体構成を示す説明図である。
【０１１７】
実施例２の自律体システム８００は、棚８０４に格納された物品８０５を取り出して仕分け用の箱８０６に詰めるピッキング作業を行うロボットシステムである。この自律体システム８００は、自律体として、アーム・リフタ統合管理システム８０１、アームロボット８０２及びリフタ８０３を含む。
【０１１８】
アームロボット８０２は、例えば垂直多関節ロボットであり、棚８０４に格納された物品８０５の取り出し、その物品８０５を箱８０６へ詰め込む。このために、アームロボット８０２は、周囲の状況として棚８０４に積まれた物品８０５の状況を把握する。この状況の把握のために、アームロボット８０２に設置されたセンサ（例えばカメラ等）が使用される。アームロボット８０２の動作の決定はアームロボット８０２の知能（例えば後述するアームロボット８０２の動作決定部３０７）によって行われる。
【０１１９】
アームロボット８０２の構成は、以下の相違点を除いて、図３に示した実施例１のウィング車１０２又は図４に示した実施例１のフォークリフト１０３の構成と同様である。ここでは、図３を参照してアームロボット８０２の構成を説明する。
【０１２０】
アームロボット８０２の通信インターフェース３０２は、ネットワーク２１０を介してアーム・リフタ統合管理システム８０１と通信する。アームロボット８０２のセンサ部３０３は、例えばアームロボット８０２に取り付けられたカメラである。このカメラが棚８０４の方向を撮影した画像に基づいて、アームロボット８０２の状況把握部３０６が棚８０４に積まれた物品８０５の状況を把握する。さらに、アームロボット８０２の状況把握部３０６は、アーム・リフタ統合管理システム８０１から伝達されたメッセージ（例えば、後述する、リフタ８０３が所望の高さまで持ち上がったことを示す情報）を把握する。
【０１２１】
また、アームロボット８０２の駆動部３０４は、アームロボット８０２のアーム８０７の関節８０８及びアーム８０７の先端のハンド部８０９を駆動するモータ（図示省略）等を含む。
【０１２２】
タスク情報３１０は、例えば、アームロボット８０２が取りだすべき物品を識別する情報等を含む。動作決定部３０７は、例えば、通信インターフェース３０２を介して取得した、アーム・リフタ統合管理システム８０１からの情報と、センサ部３０３によるセンシングの結果から把握される状態と、タスク情報３１０と、に基づいて、所望の物品８０５を取りだすための各関節８０８及びハンド部８０９の動作を決定する。そして、動作実行部３０８が、駆動部３０４を介して、決定された動作を実行する。
【０１２３】
また、動作決定部３０７は、いずれかのタイミングで、動作の決定を最適化するための学習処理を行ってもよい。これらの処理の流れは、図６に示したウィング車１０２の処理の流れと同様である。なお、アームロボット８０２に設定されるＫＰＩは、例えば、作業の効率である。
【０１２４】
リフタ８０３は、アームロボット８０２を所定の範囲内の任意の高さに移動させる機能を有する。このために、リフタ８０３は、周囲の状況として棚８０４の状況を把握する。この状況の把握のために、リフタ８０３に設置されたセンサ（例えばカメラ等）が使用される。リフタ８０３の動作の決定はリフタ８０３の知能（例えば後述するリフタ８０３の動作決定部４０７）によって行われる。
【０１２５】
リフタ８０３の構成は、以下の相違点を除いて、図３に示した実施例１のウィング車１０２又は図４に示した実施例１のフォークリフト１０３の構成と同様である。ここでは、図４を参照してリフタ８０３の構成を説明する。
【０１２６】
リフタ８０３の通信インターフェース４０２は、ネットワーク２１０を介してアーム・リフタ統合管理システム８０１と通信する。リフタ８０３のセンサ部４０３は、例えばリフタ８０３に取り付けられたカメラである。このカメラが棚８０４の方向を撮影した画像に基づいて、状況把握部４０６が棚８０４の状況を把握する。さらに、リフタ８０３の状況把握部４０６は、アーム・リフタ統合管理システム８０１から伝達されたメッセージ（例えば、後述する、アームロボット８０２を持ち上げるべき高さを示す情報）を把握する。また、リフタ８０３の駆動部４０４は、リフタ８０３を上下方向に駆動するモータ（図示省略）等を含む。
【０１２７】
タスク情報４１０は、例えば、アームロボット８０２が取り出すべき物品が格納された棚の位置を示す情報等を含んでもよい。動作決定部４０７は、例えば、通信インターフェース４０２を介して取得した、アーム・リフタ統合管理システム８０１からの情報と、センサ部４０３によるセンシングの結果から把握される状態と、タスク情報４１０と、に基づいて、アームロボット８０２が所望の物品８０５を取りだすために適切なリフタ８０３の高さを決定する。そして、動作実行部４０８が、駆動部３０４を介して、決定された動作（例えば決定された高さまでのアームロボット８０２の持ち上げ）を実行する。
【０１２８】
また、動作決定部４０７は、いずれかのタイミングで、動作の決定を最適化するための学習処理を行ってもよい。これらの処理の流れは、図７に示したフォークリフト１０３の処理の流れと同様である。なお、リフタ８０３に設定されるＫＰＩは、例えば、上下方向の移動回数の少なさ（すなわち、上下方向の移動回数が少ないほど評価が高くなる）である。
【０１２９】
アーム・リフタ統合管理システム８０１は、アームロボット８０２及びリフタ８０３と通信してそれらを管理する計算機である。アーム・リフタ統合管理システム８０１の構成は、以下の相違点を除いて、図２に示した実施例１の管制システム１０１の構成と同様である。ここで、図２を参照してアーム・リフタ統合管理システム８０１の構成を説明する。
【０１３０】
アーム・リフタ統合管理システム８０１の通信インターフェース２０２は、ネットワーク２１０を介してアームロボット８０２及びリフタ８０３と通信する。さらに、ネットワーク２１０には一つ以上のカメラ１０５が接続される。ただし、カメラ１０５はネットワーク２１０を介さずにアーム・リフタ統合管理システム８０１に接続されてもよい。各カメラ１０５は、自律体システム８００の全体を撮影してもよいし、自律体システム８００の所定の部分を撮影してもよいし、自律体システム８００の周囲（例えば棚８０４及び物品８０５）を撮影してもよい。このカメラ１０５は、自律体システム８００の状況を把握するためのセンサの一例であり、他の種類のセンサが使用されてもよい。
【０１３１】
状況把握部２０４は、カメラ１０５が撮影した画像に基づいて、自律体システム８００の状況を把握する。ここで把握される状況は、例えば、棚８０４の状況、棚８０４に格納された物品８０５の状況、アームロボット８０２の状況及びリフタ８０３の状況である。
【０１３２】
タスク情報２０８は、例えば、アームロボット８０２が取り出すべき物品を識別する情報及びその物品が格納された棚の位置を示す情報等を含んでもよい。動作決定部２０５は、カメラ１０５によって撮影された画像から把握される状況と、タスク情報２０８と、に基づいて、棚８０４のどの位置に目的の物品８０５があるかを把握する。そして、動作決定部２０５は、アームロボット８０２が目的の物品８０５を取りだすために適切なリフタ８０３の高さ（すなわちアームロボット８０２を持ち上げるべき高さ）を決定する。動作実行部２０６は、通信インターフェース２０２を介して決定された高さをリフタ８０３に伝達する。続いて、動作実行部２０６は、リフタ８０３がアームロボット８０２を決定された高さまで持ち上げたことをアームロボット８０２に伝達する。
【０１３３】
アームロボット８０２は、目的の物品８０５を掴む動作を行う。その結果、目的の物品８０５をつかめなかった場合は、状況把握部２０４がカメラ１０５からの情報に従ってそのことを把握する。動作決定部２０５は、把握された情報に基づいて、リフタ８０３の高さが適切でなかったと判断して、より適切なリフタ８０３の高さを決定し、動作実行部２０６がその高さをリフタ８０３に伝達する。
【０１３４】
また、動作決定部２０５は、いずれかのタイミングで、動作の決定を最適化するための学習処理を行ってもよい。これらの処理の流れは、図５に示した管制システム１０１の処理の流れと同様である。なお、アーム・リフタ統合管理システム８０１に設定されるＫＰＩは、例えば、自律体システム８００全体としての作業の効率である。
【０１３５】
なお、本実施例の自律体システム８００は、より大きな自律体システム一部であってもよい。例えば、実施例２の自律体システム８００は、実施例１の自律体システム１００の倉庫に、棚からの物品のピッキングを行うロボットとして組み込まれてもよい。その場合、実施例２のアーム・リフタ統合管理システム８０１は、アームロボット８０２及びリフタ８０３に対しては上位の自律体として動作し、管制システム１０１に対しては下位の自律体として動作する。
【０１３６】
また、上記の例ではアームロボット８０２を一つの下位の自律体として扱ったが、実際にはアームロボット８０２が上位の自律体と下位の自律体とからなる自律体システムであってもよい。例えば、下位の自律体は、それぞれの関節８０８の状況を把握するセンサ部、それから得られた情報に基づいて動作を決定する動作決定部、及び、決定した動作に従って関節を駆動する駆動部等を有してもよい。一方、上位の自律体は、アームロボット８０２全体及びその周囲の状況を把握するセンサ部、それから得られた情報に基づいて動作を決定する動作決定部、及び、決定した動作を各関節８０８に伝達する動作実行部等を有してもよい。
【０１３７】
このように、本発明が適用される自律体システムは、３以上の階層を有してもよい。その場合でも、上記の実施例１及び実施例２に説明したように、それぞれの自律体が、それぞれに設定されたＫＰＩが向上するように学習した結果に基づいて、それぞれが取得した情報からそれぞれの動作を決定することによって、個々の自律体のＫＰＩを向上させながら、自律体システム全体としてのＫＰＩも向上するような動作を行うことができる。また、そのような自律体システムを、上位と下位の自律体のインターフェースの詳細な取り決めを必要とせず、事前の情報の統合等を必要とせず、下位の自律体の構成が変化しても上位の自律体が適応できる、柔軟なシステムとして構築することができる。
【０１３８】
以上の実施例２によれば、アーム・リフタ統合管理システム８０１がカメラ１０５等を介して把握した倉庫の状況に従って、アーム・リフタ統合管理システム８０１のＫＰＩを向上させるために有効と判断される情報を下位の自律体（例えばアームロボット８０２及びリフタ８０３）に提供する。これによって、例えば、リフタ８０３は、どの高さまでアームロボット８０２を持ちあげればよいか、リフタ８０３自身では判断できないものを知ることができる。また、アームロボット８０２は、おおよそどの位置に目的の物品８０５が置かれているかを予め知ることができる。このため、リフタ８０３によって持ち上げられたときに目的の物品８０５を見つけやすい。言い換えると、目的の物品８０５を見つけるまでの時間を短縮することができ、また、確実に見つけることができる。
【０１３９】
アーム・リフタ統合管理システム８０１のような上位の自律体がなく、下位の自律体が情報を直接交換する自律体システムでは、以下の理由によって、上記のような効果を得ることは困難である。すなわち、上位の自律体がないシステムでは、リフタ８０３は、まだアームロボット８０２を持ち上げていない状態では、センサ部４０３を介して棚８０４の上の段の状態を知ることができない。同様に、まだ持ち上げられていないアームロボット８０２は、センサ部３０３を介して棚の中の物品を把握することができない。
【０１４０】
一方、本実施例によれば、アーム・リフタ統合管理システム８０１が自律体システム８００全体及びその周囲の状況を把握してそれに基づいて全体のＫＰＩを向上させるために望ましい各自律体の動作を通知することができるため、全体のＫＰＩを向上させることができる。
【実施例３】
【０１４１】
次に、本発明の実施例３を説明する。以下に説明する相違点を除き、実施例３の自律体システムの各部は、図１〜図７に示された実施例１の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。
【０１４２】
図９は、本発明の実施例３の自律体システム９００の全体構成を示す説明図である。
【０１４３】
実施例３の自律体システム９００は、自律体として、自動運転車９０２、人が運転する自動車９０３及びそれらが利用する駐車場９０４を管制する駐車場内管制システム９０１を含む駐車場システムである。
【０１４４】
駐車場内管制システム９０１は、広い駐車場９０４内で、車両（例えば一つ以上の自動運転車９０２及び一つ以上の人が運転する自動車９０３を含む）がどこをどれだけの速度で走行しているか、駐車場内の路上（すなわち、駐車領域９０６以外の、車両が移動するための領域）をどのように占有しているか、といったことを監視する。さらに、駐車場内管制システム９０１は、駐車領域９０６のどの区画が空いているかを監視する。そして、駐車場内管制システム９０１は、上記の監視結果を把握して、自動運転車９０２及び人が運転する自動車９０３に対して緩やかな制御を行う。
【０１４５】
駐車場９０４には、例えば、一つ以上の案内表示板９０８が設けられる。これは、駐車場内管制システム９０１からの情報を自動運転車９０２及び人が運転する自動車９０３に伝達する手段の一例である。
【０１４６】
自動運転車９０２の構成は、以下の相違点を除いて、図３に示した実施例１のウィング車１０２の構成と同様である。ここで、図３を参照して自動運転車９０２の構成を説明する。
【０１４７】
自動運転車９０２の通信インターフェース３０２は、ネットワーク２１０を介して駐車場内管制システム９０１と通信する。自動運転車９０２のセンサ部３０３は、例えば自動運転車９０２に取り付けられ、自動運転車９０２の周囲を撮影するカメラ又は距離センサ等である。ここではカメラの例を説明する。自動運転車９０２の状況把握部３０６は、カメラが撮影した画像に基づいて、駐車場９０４内の自車の周囲の状況を把握する。
【０１４８】
さらに、自動運転車９０２の状況把握部３０６は、駐車場内管制システム９０１から伝達された情報（例えば、駐車場９０４内の状況、移動先の区画及びそこまでの経路の情報等）を把握する。状況把握部３０６は、この情報を、センサ部３０３のカメラ等によって取得された情報（例えば案内表示板９０８の表示内容の認識結果）から把握してもよいし、通信インターフェース３０２を介して取得した情報から把握してもよい。
【０１４９】
また、自動運転車９０２の駆動部３０４は、例えば、内燃機関又は電動機のような原動機、原動機が発生した動力を車輪に伝達する伝達装置、自動運転車９０２を所望の方向に走行させるための操舵装置等を含む。
【０１５０】
タスク情報３１０は、例えば、駐車可能な区画を探してそこに自車を移動させる、といった情報を含む。動作決定部３０７は、例えば、通信インターフェース３０２又はセンサ部３０３を介して取得した、駐車場内管制システム９０１からの情報と、センサ部３０３によるセンシングの結果から把握される状態と、タスク情報３１０と、に基づいて、進行、停止及び操舵量等の動作を決定する。そして、動作実行部３０８が、駆動部３０４を介して、決定された動作を実行する。
【０１５１】
また、動作決定部３０７は、いずれかのタイミングで、動作の決定を最適化するための学習処理を行ってもよい。これらの処理の流れは、図６に示したウィング車１０２の処理の流れと同様である。なお、自動運転車９０２に設定されるＫＰＩは、例えば、燃料（又は電力）の消費量を最小にしたい、又は、自車を駐車する区画及びそこまでの経路を指示してほしい、といったものである。
【０１５２】
なお、自動運転車９０２は、人による操作を必要とせずに走行できる完全な自動運転機能を有してもよいし、人の運転の一部を支援する運転支援機能を有してもよい。また、実施例１のウィング車１０２の場合と同様、上記の状況把握部３０６、動作決定部３０７及び動作実行部３０８の機能の少なくとも一部は、自動運転機能又は運転支援機能の少なくとも一部として実装されてもよい。
【０１５３】
人が運転する自動車９０３の構成は、以下の相違点を除いて、自動運転車９０２の構成と同様である。すなわち、人が運転する自動車９０３は、プロセッサ３０１、通信インターフェース３０２、センサ部３０３及び記憶装置３０５を有しなくてもよい。自動運転車９０２における状況把握部３０６、動作決定部３０７及び動作実行部３０８に相当する機能は、人が運転する自動車９０３においては、運転者の知能によって置き換えられる。タスク情報３１０は運転者によって記憶される。また、センサ部３０３は、運転者の感覚器（例えば目及び耳等）によって置き換えられる。
【０１５４】
なお、人が運転する自動車９０３に設定されるＫＰＩは、自動運転車９０２に設定されるものと同様のものであってもよいが、それとは逆に、例えば、自車を駐車する区画及びそこまでの経路を指示してほしくない、といったものであってもよいし、人の出口に近いところに駐車したい、又は日陰に駐車したい、といったものであってもよい。
【０１５５】
駐車場内管制システム９０１は、駐車場９０４内を監視して、自動運転車９０２及び人が運転する自動車９０３に対して緩やかな制御を行う計算機である。駐車場内管制システム９０１の構成は、以下の相違点を除いて、図２に示した実施例１の管制システム１０１の構成と同様である。ここで、図２を参照して駐車場内管制システム９０１の構成を説明する。
【０１５６】
ネットワーク２１０にはそれぞれが駐車場９０４の少なくとも一部の領域を撮影する一つ以上のカメラ１０５が接続される。各カメラ１０５は、それぞれ適切な場所に据え付けられた固定カメラであってもよいが、カメラ付きドローンのように移動するカメラであってもよい。このカメラ１０５は、自律体システム９００の状況を把握するためのセンサの一例であり、他の種類のセンサが使用されてもよい。
【０１５７】
さらに、ネットワーク２１０には案内表示板９０８が接続される。これは、駐車場内管制システム９０１が各車両を制御するための情報伝達手段の一例である。このような情報伝達手段の他の例としては、駐車場９０４内の各所に設けられた、実施例１と同様の信号機等が挙げられる。
【０１５８】
状況把握部２０４は、カメラ１０５が撮影した画像に基づいて、自律体システム９００の状況を把握する。ここで把握される状況は、例えば、各車両がどこをどれだけの速度で走行しているか、駐車場内の路上をどのように占有しているか、といった状況である。
【０１５９】
タスク情報２０８は、例えば、駐車場９０４に入ってきた車両を、駐車場９０４内の空き区画に誘導する、及び、いずれかの区画から出た車両を駐車場９０４の出口に誘導する、といったものであってもよい。動作決定部２０５は、カメラ１０５によって撮影された画像から把握される駐車場９０４の状況（例えば駐車場９０４内の各車両の状況）と、タスク情報２０８と、に基づいて、駐車場９０４内に渋滞が発生しないように、及び、各車両が早く、現在位置の近くに駐車できるように、各車両の制御を決定し、動作実行部２０６がその制御を実行する。制御は、例えば、案内表示板９０８への情報の表示によって行われる。車両がネットワーク２１０に接続された通信インターフェース３０２を介して情報を受信可能である場合には、動作実行部２０６は、通信インターフェース２０２及びネットワーク２１０を介して制御情報を伝達してもよい。
【０１６０】
なお、図９には一つの案内表示板９０８のみを示しているが、実際には駐車場９０４に複数の案内表示板９０８が設置されてもよい。その場合、それぞれの案内表示板９０８は、全て同じ内容（例えば駐車場９０４内の全ての空き区画）を表示してもよいが、それぞれ異なる内容を表示してもよい。例えば、各案内表示板９０８は、その付近を走行している車両を誘導したい空き区画のみを表示してもよい。また、各案内表示板９０８は、例えば車両の進行方向等、空き区画以外の情報を表示してもよい。それぞれの案内表示板９０８がどのような状況においてどのような表示をするかは、後述する学習の結果に基づいて決定される。
【０１６１】
動作決定部２０５は、いずれかのタイミングで、動作の決定を最適化するための学習処理を行ってもよい。具体的には、動作決定部２０５は、どういう情報を車両に提供すると、どういう車両の流れが発生するかを過去の実績等から学習してもよい。また、動作決定部２０５は、適切な制御が行われる情報の提供方法（例えば案内表示板９０８への表示方法）をシミュレーションで探索してもよい。このとき、駐車場内管制システム９０１に設定されたＫＰＩは、例えば、駐車場９０４の利用効率、又は、駐車場９０４を利用する人の満足度等であってもよい。そして、動作実行部２０６は、最適な情報を最適な方法で車両に提供する。これらの処理の流れは、図５に示した管制システム１０１の処理の流れと同様である。
【０１６２】
以上の実施例３によれば、自動運転車９０２の、例えば燃料消費を最少にしたいというＫＰＩが向上するように、駐車位置及びそこまでの移動経路が最適化される。また、人が運転する自動車９０３の、例えば早く駐車したい、人の出口に近い場所に駐車したい、又は日陰に駐車したいといったそれぞれのＫＰＩが向上するように、駐車位置及びそこまでの移動経路が最適化される。このような効果は、駐車場内管制システム９０１を有しない自律体システムにおいて、各自動運転車９０２及び人が運転する各自動車９０３が相互に直接情報を交換しても、得ることは困難である。
【実施例４】
【０１６３】
次に、本発明の実施例４を説明する。以下に説明する相違点を除き、実施例４の自律体システムの各部は、図１〜図７に示された実施例１の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。
【０１６４】
図１０は、本発明の実施例４の自律体システム１０００の全体構成を示す説明図である。
【０１６５】
実施例４の自律体システム１０００は、自律体として、ショベルカー１００２、ダンプカー１００３、人１００４及びそれらを管制する施工現場管制システム１００１を含む建機システムである。
【０１６６】
施工現場管制システム１００１は、施工現場における自律体（例えばショベルカー１００２、ダンプカー１００３及び人１００４）の干渉及び干渉可能性を監視し、各自律体に対して適切な制御（情報の提示）を行う。また、施工現場管制システム１００１は、施工現場の自律体以外に関する状況（例えば掘削された穴の状況又は施工に使用される資材の状況等）を監視し、各自律体に対して適切な制御（情報の提示）を行う。
【０１６７】
なお、図１０には説明を簡単にするために自律体システム１０００に含まれる自律体として一つのショベルカー１００２、一つのダンプカー１００３及び一人の人１００４を示しているが、これらは一例であり、自律体システム１０００は、複数のショベルカー１００２、複数のダンプカー１００３及び複数の人１００４を含んでもよいし、それらの少なくともいずれかを含まなくてもよいし、例えば一つ以上のブルドーザ等、他の建機を含んでもよい。
【０１６８】
また、一つ以上のショベルカー１００２及び一つ以上のダンプカー１００３の少なくともいずれかは、人の操作によらずに（又は人の操作を支援して）自律的に動作する建機（以下、自律建機と記載する）であってもよく、他のいずれかは人が運転する一般的な建機（以下、一般建機とも記載する）であってもよい。
【０１６９】
自律建機の構成は、例えば図３に示したウィング車１０２又は図４に示したフォークリフト１０３の構成と同様であってもよい。ここでは図３を参照する。自律建機の状況把握部３０６は、例えばカメラ等の、当該自律建機のセンサ部３０３を介して、周囲の状況として施工現場の当該自律建機の周囲の状況を把握する。
【０１７０】
このようにして把握された周囲の状況には、施工現場管制システム１００１から提供された情報が含まれる。この情報は、例えば、当該自律建機の付近に他の自律体がある否か、及び、他の自律体が接近中であるか否か、といった情報を含んでもよい。動作決定部３０７は、把握された状況及びタスク情報３１０（例えばこれから行うべき掘削又は運搬等の動作に関する情報）に基づいて、例えば掘削又は運搬といった動作を決定し、動作実行部３０８が駆動部３０４を介して決定した動作を実行する。
【０１７１】
一般建機の構成は、例えば図３に示したウィング車１０２又は図４に示したフォークリフト１０３の構成と同様であってもよい。ここでは図３を参照する。ただし、一般建機は、プロセッサ３０１、通信インターフェース３０２、センサ部３０３及び記憶装置３０５を有しなくてもよい。一般建機の運転者の感覚器（例えば目及び耳等）が自律建機のセンサ部３０３に相当する。一般建機の運転者の知能が自律建機の状況把握部３０６、動作決定部３０７及び動作実行部３０８に相当する。また、タスク情報３１０に相当する情報（例えばこれから行うべき掘削又は運搬等の動作に関する情報）が運転者によって記憶されていてもよい。
【０１７２】
一般建機の運転者は、自らの感覚器を介して、周囲の状況として施工現場の当該自律建機の周囲の状況を把握する。このようにして把握された周囲の状況には、施工現場管制システム１００１から提供された情報（例えば、上記と同様の他の自律体の接近に関する情報）が含まれる。
【０１７３】
運転者は、把握された状況及びタスク情報３１０に相当する情報に基づいて、例えば掘削又は運搬といった動作を決定し、駆動部３０４を介して決定した動作を実行する。
【０１７４】
自律建機及び一般建機に設定されるＫＰＩは、例えば、効率的に作業をしたい、又は、確実に作業をしたい、と言ったものであってもよい。建機ごとに異なるＫＰＩが設定されていてもよい。
【０１７５】
人１００４は、目及び耳等の感覚器を使って周囲の状況を把握し、動作（例えば現在行っている作業を続ける、周囲の物体（例えば接近してきた他の自律体）を回避する、又は周囲を再確認するなど）を決定し、決定した動作を行う。人１００４が把握する周囲の状況には、施工現場管制システム１００１から提供された情報（例えば、上記と同様のに関する情報）が含まれる。
【０１７６】
人１００４のＫＰＩは、その人１００４が施工現場における施工作業を行う作業者である場合には、例えば効率的に作業をしたい、確実に作業をしたい、又は疲れたくない、といったものであってもよい。また、その人１００４が作業者以外の人（例えば施工現場の観察をする人又は作業者への物品（例えば弁当）の配達をする人）である場合には、例えばそれぞれの目的を効率的に、かつ確実に達成したい、といったものであってもよい。
【０１７７】
施工現場管制システム１００１の構成は、図２に示した実施例１の管制システム１０１の構成と同様である。施工現場管制システム１００１の状況把握部２０４は、例えば一つ以上のカメラ１０５を介して、周囲の状況として施工現場の全体の状況（例えば、ショベルカー１００２、ダンプカー１００３及び人１００４といった各自律体の状況、並びに、施工現場内の穴及び資材の状況等）を把握する。ここで、各カメラ１０５は、それぞれ適切な場所に据え付けられた固定カメラであってもよいが、カメラ付きドローンのように移動するカメラであってもよい。このカメラ１０５は、自律体システム１０００の状況を把握するためのセンサの一例であり、他の種類のセンサが使用されてもよい。
【０１７８】
施工現場管制システム１００１のタスク情報２０８は、例えば施工現場において実行されるべき作業（例えば掘削及び運搬等）に関する情報であってもよい。施工現場管制システム１００１の動作決定部２０５は、カメラ１０５によって撮影された画像から把握された施工現場の状況と、タスク情報２０８と、に基づいて、各自律体の連携作業が効率的かつ確実に行われるように、それぞれの制御内容を決定する。ここで、各自律体の連携作業とは、例えば、ショベルカー１００２が掘削した土をダンプカー１００３に入れ、人１００４が掘削によって生じた穴を成型する、などである。
【０１７９】
そして、動作実行部２０６が、決定された制御を行う。制御は、各自律体への情報提示によって行われる。例えば、実施例１と同様の信号機１０６が施工現場内に設けられてもよいし、音声によって必要な情報が各自律体に提供されてもよい。
【０１８０】
動作決定部２０５は、いずれかのタイミングで、動作の決定を最適化するための学習処理を行ってもよい。具体的には、動作決定部２０５は、どういう情報を各自律体に提供すると、それぞれがどういう動作を行い、全体としてどのような挙動になるかを、実績等から学習してもよい。また、動作決定部２０５は、適切な制御が行われる情報の提供方法をシミュレーションで探索してもよい。このとき、施工現場管制システム１００１に設定されたＫＰＩは、例えば、施工現場の作業効率であってもよい。そして、動作実行部２０６は、最適な情報を最適な方法で各自律体に提供する。これらの処理の流れは、図５に示した管制システム１０１の処理の流れと同様である。
【０１８１】
以上の実施例４によれば、自律建機の動作が、他の自律体及び現場の状況に合わせて、効率の観点で最適になる。同様に、一般建機の動作が、他の自律体及び現場の状況に合わせて、効率の観点で最適になる。作業者や作業者以外の人の動作が、他の自律体及び現場の状況に合わせて、効率及び疲労度の観点で最適になる。
【０１８２】
このような効果は、施工現場管制システム１００１を有しない自律体システムにおいて、各自律体が相互に直接情報を交換しても、得ることは困難である。これは、例えば以下の理由による。すなわち、それぞれの自律体が把握した状況と実際の状況との間に乖離が発生する可能性がある。また、互いの通信手段を予め決めておく必要があるが、一般的にはそれぞれの自律体の提供者、運営者が異なるため、それが現実的には困難である。
【実施例５】
【０１８３】
次に、本発明の実施例５を説明する。以下に説明する相違点を除き、実施例５の自律体システムの各部は、図１〜図７に示された実施例１の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。
【０１８４】
図１１は、本発明の実施例５の自律体システム１１００の全体構成を示す説明図である。
【０１８５】
実施例５の自律体システム１１００は、二つのワーク（加工対象の部品）を組合せてそれらをネジで締めるネジ締めロボットシステムである。この自律体システム１１００は、自律体として、ネジ締め監視システム１１０１、第１のハンドロボット１１０２及び第２のハンドロボット１１０３を含む。
【０１８６】
第１のハンドロボット１１０２は、第１のワーク１１０４を作業台１１０７の上に置き、続いて第２のワーク１１０５を第１のワーク１１０４の上に載せてそのまま静止させる。
【０１８７】
第２のハンドロボット１１０３は、第１のワーク１１０４及び第２のワーク１１０５のネジ穴１１０８にネジ１１０６を差し込み、第２のハンドロボット１１０３のアームの先端に取り付けられたネジ締め器具１１０９がネジ１１０６を締める。
【０１８８】
ネジ締め監視システム１１０１は、第２のワーク１１０５を載せた位置のずれ、及び、ネジ締めの失敗等を監視し、第１のハンドロボット１１０２及び第２のハンドロボット１１０３に対して適切な制御（情報の提示）を行う。
【０１８９】
第１のハンドロボット１１０２及び第２のハンドロボット１１０３の構成は、例えば図３に示したウィング車１０２又は図４に示したフォークリフト１０３の構成と同様であってもよい。また、以下の説明において省略されている部分に関しては、実施例２のアームロボット８０２に関する説明が適用されてもよい。ここでは第１のハンドロボット１１０２の構成に関して図３を、第２のハンドロボット１１０３の構成に関して図４を参照する。
【０１９０】
第１のハンドロボット１１０２の状況把握部３０６は、例えば第１のハンドロボット１１０２に取り付けられたカメラ等の、第１のハンドロボット１１０２のセンサ部３０３を介して、周囲の状況として第１のワーク１１０４の状態、第２のワーク１１０５の状態及び作業台１１０７の状態を把握する。
【０１９１】
また、状況把握部３０６が把握する状況には、ネジ締め監視システム１１０１から提供された情報が含まれる。この情報は、例えば、各ワークの固定位置のずれ、及び、ネジ締め作業の完了又は失敗の情報等を含む。動作決定部３０７は、把握された状況及びタスク情報３１０（例えばこれから行うべきネジ締め作業に関する情報）に基づいて、例えば各ワークの保管場所からの取り出し及び作業台１１０７上の所定の位置への固定といった動作を決定し、動作実行部３０８が駆動部３０４を介して決定した動作を実行する。
【０１９２】
なお、第１のハンドロボット１１０２に設定されるＫＰＩは、例えば、効率的に作業をしたい、といったものである。
【０１９３】
第２のハンドロボット１１０３の状況把握部４０６は、例えば第２のハンドロボット１１０３に取り付けられたカメラ等の、第２のハンドロボット１１０３のセンサ部４０３を介して、周囲の状況としてネジ穴１１０８、ネジ１１０６及びネジ締め器具１１０９の状況を把握する。
【０１９４】
また、状況把握部４０６が把握する状況には、ネジ締め監視システム１１０１から提供された情報が含まれる。この情報は、例えば、各ワークがネジ締め作業が開始できる状態になっているかどうか、及び、ネジ締め作業の完了又は失敗の情報等を含む。動作決定部４０７は、把握された状況及びタスク情報４１０（例えばこれから行うべきネジ締め作業に関する情報）に基づいて、例えばネジ穴１１０８へのネジ１１０６の差し込み及びネジ締め器具１１０９によるネジ締めといった動作を決定し、動作実行部４０８が駆動部４０４を介して決定した動作を実行する。
【０１９５】
なお、第２のハンドロボット１１０３に設定されるＫＰＩは、例えば、効率的に作業をしたい、及び、ネジ締めを成功させたい、といったものである。
【０１９６】
ネジ締め監視システム１１０１の構成は、図２に示した実施例１の管制システム１０１の構成と同様である。ネジ締め監視システム１１０１の状況把握部２０４は、例えば一つ以上のカメラ１０５を介して、周囲の状況として、例えば、第１のワーク１１０４及び第２のワーク１１０５の状態（例えば互いのネジ穴が重なっているか）、並びに、第１のハンドロボット１１０２及び第２のハンドロボット１１０３の状況を把握する。ここで、カメラ１０５は、例えば、各ワーク及びハンドロボットを撮影できる適切な場所に設置された一つ以上のカメラである。このカメラ１０５は、自律体システム１１００の状況を把握するためのセンサの一例であり、他の種類のセンサが使用されてもよい。
【０１９７】
ネジ締め監視システム１１０１のタスク情報２０８は、例えばこれから実行されるべきネジ締め作業に関する情報である。ネジ締め監視システム１１０１の動作決定部２０５は、カメラ１０５によって撮影された画像から把握された状況と、タスク情報２０８と、に基づいて、第１のハンドロボット１１０２及び第２のハンドロボット１１０３の制御内容を決定する。
【０１９８】
例えば、動作決定部２０５は、二つのワークの状況（例えば互いのネジ穴が重なった状態で置かれているか等）を把握し、状況によって第２のワーク１１０５の位置の補正指示を第１のハンドロボット１１０２に通知することを決定してもよい。また、動作決定部２０５は、例えば二つのワークのネジ穴が重なったことによってネジ締め作業が実行できる状態になった場合にはそのことを第２のハンドロボット１１０３に通知することを決定してもよい。さらに、動作決定部２０５は、ネジ締めが成功又は失敗したことを把握し、失敗したときはやり直しを第２のハンドロボット１１０３に通知することを決定してもよい。
【０１９９】
そして、動作実行部２０６が、決定された制御を行う。制御は、各自律体への情報提示（例えばネットワーク２１０を介した情報の送信）によって行われる。
【０２００】
動作決定部２０５は、いずれかのタイミングで、動作の決定を最適化するための学習処理を行ってもよい。具体的には、動作決定部２０５は、どういう情報を各ハンドロボットに提供すると、ネジ締め作業の結果（成功又は失敗）がどうなるか、また、作業に要する時間の長さがどうなるか、といったことを、実績等から学習してもよい。このとき、ネジ締め監視システム１１０１に設定されたＫＰＩは、例えば、効率的に作業をしたい、及び、ネジ締めを成功させたい、といったものであってもよい。これらの処理の流れは、図５に示した管制システム１０１の処理の流れと同様である。
【０２０１】
以上の実施例５によれば、第１のハンドロボット１１０２の動作が、ネジ締めの成功の観点で適切になる。また、第２のハンドロボット１１０３の動作が効率的（例えば待ち時間が少ない、及び、失敗の可能性が少ない）になる。
【０２０２】
このような効果は、ネジ締め監視システム１１０１を有しない自律体システムにおいて、各ハンドロボットが相互に直接情報を交換しても、得ることは困難である。これは、例えば以下の理由による。すなわち、それぞれのハンドロボットが把握した状況と実際の状況との間に乖離が発生する可能性がある。また、それぞれのハンドロボットが状況を観測できない可能性がある。
【０２０３】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明のより良い理解のために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０２０４】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【０２０５】
また、制御線及び情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０２０６】
１００、８００、９００、１０００、１１００  自律体システム
１０１  管制システム
１０２  ウィング車
１０３  フォークリフト
１０４  パレット
１０５  カメラ
１０６  信号機
８０１  リフタ統合管理システム
８０２  アームロボット
８０３  リフタ
９０１  駐車場内管制システム
９０２  自動運転車
９０３  自動車
９０４  駐車場
９０６  駐車領域
９０８  案内表示板
１００１  施工現場管制システム
１００２  ショベルカー
１００３  ダンプカー
１００４  人
１１０１  ネジ締め監視システム
１１０２  第１のハンドロボット
１１０３  第２のハンドロボット
１１０４  第１のワーク
１１０５  第２のワーク
１１０６  ネジ
【図１】
2020087206.tif 000003
【図２】
2020087206.tif 000004
【図３】
2020087206.tif 000005
【図４】
2020087206.tif 000006
【図５】
2020087206.tif 000007
【図６】
2020087206.tif 000008
【図７】
2020087206.tif 000009
【図８】
2020087206.tif 000010
【図９】
2020087206.tif 000011
【図１０】
2020087206.tif 000012
【図１１】
2020087206.tif 000013