IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特許7638146計算機システム及び計算機システムの制御方法
<>
  • 特許-計算機システム及び計算機システムの制御方法 図1
  • 特許-計算機システム及び計算機システムの制御方法 図2
  • 特許-計算機システム及び計算機システムの制御方法 図3
  • 特許-計算機システム及び計算機システムの制御方法 図4
  • 特許-計算機システム及び計算機システムの制御方法 図5
  • 特許-計算機システム及び計算機システムの制御方法 図6
  • 特許-計算機システム及び計算機システムの制御方法 図7
  • 特許-計算機システム及び計算機システムの制御方法 図8
  • 特許-計算機システム及び計算機システムの制御方法 図9
  • 特許-計算機システム及び計算機システムの制御方法 図10
  • 特許-計算機システム及び計算機システムの制御方法 図11
  • 特許-計算機システム及び計算機システムの制御方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-20
(45)【発行日】2025-03-03
(54)【発明の名称】計算機システム及び計算機システムの制御方法
(51)【国際特許分類】
   G05B 23/02 20060101AFI20250221BHJP
   B25J 13/00 20060101ALI20250221BHJP
【FI】
G05B23/02 Z
B25J13/00 Z
【請求項の数】 12
(21)【出願番号】P 2021077181
(22)【出願日】2021-04-30
(65)【公開番号】P2022170898
(43)【公開日】2022-11-11
【審査請求日】2024-01-30
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】吉武 宏
【審査官】岩▲崎▼ 優
(56)【参考文献】
【文献】特許第6632095(JP,B1)
【文献】特開2020-087206(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 23/00-23/02
G05D 1/00- 1/87
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
制御系を構成する、自律的に動作する複数のオブジェクトと、前記複数のオブジェクトと通信可能に接続する制御システムとを備える計算機システムであって、
前記制御システムは、
少なくとも一つの計算機を含み、
前記制御系の一部であって、前記オブジェクトを含む部分系の定義及び前記部分系において遂行されるタスクの定義を含む初期情報と、前記制御系において遂行されるタスクの計画と、を保持し、
前記制御系全体の状態を把握するための監視データを取得し、
前記監視データから時系列データを生成し、前記初期情報及び前記計画を用いて、前記部分系及び前記部分系において遂行するタスクの識別情報を決定し、前記部分系の識別情報、前記タスクの識別情報、及び前記時系列データを対応づけた監視履歴を生成し、第1データベースに保存し、
前記タスクの遂行のために実行する行動を決定するための方策を新たに生成する必要があるターゲットオブジェクトが存在する場合、前記計画を参照して、前記ターゲットオブジェクトを含む前記部分系と、当該部分系において遂行される前記タスクとを特定し、
前記第1データベースから、特定された前記部分系及び特定された前記タスクの組合せに一致する前記監視履歴を取得し、
前記ターゲットオブジェクトに、取得した前記監視履歴を送信し、
前記オブジェクトは、
前記部分系の状態及び前記方策に基づいて実行する行動を決定し、
決定された前記行動を実行し、
実行した前記行動に関する行動履歴を第2データベースに保存し、
前記計算機から前記監視履歴を受信した場合、前記行動履歴及び受信した前記監視履歴を用いて前記新たな方策を生成することを特徴とする計算機システム。
【請求項2】
請求項1に記載の計算機システムであって、
前記制御システムは、
前記第1データベースから取得した前記監視履歴を、当該監視履歴に対応する前記タスクを構成するサブタスク単位に分割することによって、部分監視履歴を生成し、
前記ターゲットオブジェクトに、前記部分監視履歴を送信することを特徴とする計算機システム。
【請求項3】
請求項2に記載の計算機システムであって、
前記制御システムは、
前記サブタスク間の因果関係を解析し、
因果関係によって関連づけられる前記部分監視履歴を送信することを特徴とする計算機システム。
【請求項4】
請求項1に記載の計算機システムであって、
前記監視履歴は、時間情報を含み、
前記制御システムは
前記監視履歴に含まれる前記時間情報及び前記計画に基づいて、前記第1データベースから取得した前記監視履歴を、当該監視履歴に対応する前記タスクを構成するサブタスク単位に分割することによって、部分監視履歴を生成し、
前記ターゲットオブジェクトに、前記部分監視履歴を送信することを特徴とする計算機システム。
【請求項5】
請求項1に記載の計算機システムであって、
前記オブジェクトは、前記方策を用いた前記タスクの遂行中に、前記新たな方策を生成することを特徴とする計算機システム。
【請求項6】
請求項5に記載の計算機システムであって、
前記オブジェクトは、前記新たな方策を保存し、又は、現在使用している前記方策を前記新たな方策に更新することを特徴とする計算機システム。
【請求項7】
制御系を構成する、自律的に動作する複数のオブジェクトと、前記複数のオブジェクトと通信可能に接続する制御システムとを含む計算機システムの制御方法であって、
前記制御システムは、
少なくとも一つの計算機を含み、
前記制御系の一部であって、前記オブジェクトを含む部分系の定義及び前記部分系において遂行されるタスクの定義を含む初期情報と、前記制御系において遂行されるタスクの計画と、を保持し、
前記計算機システムの制御方法は、
前記制御システムが、前記制御系全体の状態を把握するための監視データを取得する第1のステップと、
前記制御システムが、前記監視データから時系列データを生成し、前記初期情報及び前記計画を用いて、前記部分系及び前記部分系において遂行するタスクの識別情報を決定し、前記部分系の識別情報、前記タスクの識別情報、及び前記時系列データを対応づけた監視履歴を生成し、第1データベースに保存する第2のステップと、
前記制御システムが、前記タスクの遂行のために実行する行動を決定するための方策を新たに生成する必要があるターゲットオブジェクトが存在する場合、前記計画を参照して、前記ターゲットオブジェクトを含む前記部分系と、当該部分系において遂行されるタスクとを特定する第3のステップと、
前記第1データベースから、特定された前記部分系及び特定された前記タスクの組合せに一致する前記監視履歴を取得する第4のステップと、
前記制御システムが、前記ターゲットオブジェクトに、取得した前記監視履歴を送信する第5のステップと、
前記オブジェクトが、前記部分系の状態及び前記方策に基づいて実行する行動を決定する第6のステップと、
前記オブジェクトが、決定された前記行動を実行する第7のステップと、
前記オブジェクトが、実行した前記行動に関する行動履歴を第2データベースに保存する第8のステップと、
前記オブジェクトが、前記計算機から前記監視履歴を受信した場合、前記行動履歴及び受信した前記監視履歴を用いて前記新たな方策を生成する第9のステップと、を含むことを特徴とする計算機システムの制御方法。
【請求項8】
請求項7に記載の計算機システムの制御方法であって、
前記第5のステップは、
前記制御システムが、前記第1データベースから取得した前記監視履歴を、当該監視履歴に対応する前記タスクを構成するサブタスク単位に分割することによって、部分監視履歴を生成する第10のステップと、
前記制御システムが、前記ターゲットオブジェクトに、前記部分監視履歴を送信する第11のステップと、を含むことを特徴とする計算機システムの制御方法。
【請求項9】
請求項8に記載の計算機システムの制御方法であって、
前記第10のステップは、前記制御システムが、前記サブタスク間の因果関係を解析するステップを含み、
前記第11のステップは、前記制御システムが、因果関係によって関連づけられる前記部分監視履歴を送信するステップを含むことを特徴とする計算機システムの制御方法。
【請求項10】
請求項7に記載の計算機システムの制御方法であって、
前記監視履歴は、時間情報を含み、
前記第5のステップは、
前記制御システムが、前記監視履歴に含まれる前記時間情報及び前記計画に基づいて、前記第1データベースから取得した前記監視履歴を、当該監視履歴に対応する前記タスクを構成するサブタスク単位に分割することによって、部分監視履歴を生成するステップと、
前記制御システムが、前記ターゲットオブジェクトに、前記部分監視履歴を送信するステップと、を含むことを特徴とする計算機システムの制御方法。
【請求項11】
請求項7に記載の計算機システムの制御方法であって、
前記第7のステップは、前記オブジェクトが、前記方策を用いた前記タスクの遂行中に、前記新たな方策を生成するステップを含むことを特徴とする計算機システムの制御方法。
【請求項12】
請求項11に記載の計算機システムの制御方法であって、
前記第8のステップは、前記オブジェクトが、前記新たな方策を保存し、又は、現在使用している前記方策を前記新たな方策に更新するステップを含むことを特徴とする計算機システムの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自律体として機能するオブジェクトが協調して動作するシステムに関する。
【背景技術】
【0002】
自律体として機能するオブジェクトが協調して動作するシステムに関する技術として特許文献1に記載の技術が知られている。
【0003】
特許文献1には、「複数の自律体を有する自律体システムであって、複数の自律体の各々は、状況を把握する状況把握部と、把握された状況に基づいて動作を決定する動作決定部と、決定した動作を実行する動作実行部と、を有し、前記自律体システムが有する前記複数の自律体は、一つ以上の第1の自律体と、二つ以上の第2の自律体とを含み、第1の自律体の状況把握部が把握する状況は、第2の自律体の状況を含み、第2の自律体の状況把握部が把握する状況は、第1の自律体の動作実行部によって実行された動作の結果を含み、第2の自律体の動作決定部は、第1の自律体の動作実行部によって実行された動作の結果に基づいて動作を決定する。」と記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2020-87206号公報
【非特許文献】
【0005】
【文献】Alexander Sasha Vezhnevets, Simon Osindero, Tom Schaul, Nicolas Heess, Max Jaderberg, David Silver, Koray Kavukcuoglu、"FeUdal Networks for Hierarchical Reinforcement Learning"、[online]、2017年3月3日、[令和3年4月16日検索]、インターネット<https://arxiv.org/abs/1703.01161>
【発明の概要】
【発明が解決しようとする課題】
【0006】
自律体として機能するオブジェクトは、タスク遂行のために実行する行動を決定するための方策(モデル)を保持する。タスク及びタスクを遂行する系(環境)等に応じて方策は異なる。方策は、一般的に、学習処理によって生成され、また、更新される。
【0007】
タスク及び系の少なくともいずれかが変化した場合に、新たな方策を獲得する方法として以下の二つが考えられる。
【0008】
一つの方法は、現在の方策に基づいて行動を試行錯誤することによって、新たな方策を獲得する方法である。この方法の場合、タスクを遂行に必要な行動が行わない可能性がある。
【0009】
もう一つの方法は、現在の方策を初期化し、行動を試行錯誤することによって、新たな方策を獲得する方法である。この方法の場合、学習コストが大きくなるという問題がある。
【0010】
本発明は、自律体として機能するオブジェクトの方策の効率的な獲得を支援する方法及びシステムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、制御系を構成する、自律的に動作する複数のオブジェクトと、前記複数のオブジェクトと通信可能に接続する制御システムとを備える計算機システムであって、前記制御システムは、少なくとも一つの計算機を含み、前記制御系の一部であって、前記オブジェクトを含む部分系の定義及び前記部分系において遂行されるタスクの定義を含む初期情報と、前記制御系において遂行されるタスクの計画と、を保持し、前記制御系全体の状態を把握するための監視データを取得し、前記監視データから時系列データを生成し、前記初期情報及び前記計画を用いて、前記部分系及び前記部分系において遂行するタスクの識別情報を決定し、前記部分系の識別情報、前記タスクの識別情報、及び前記時系列データを対応づけた監視履歴を生成し、第1データベースに保存し、前記タスクの遂行のために実行する行動を決定するための方策を新たに生成する必要があるターゲットオブジェクトが存在する場合、前記計画を参照して、前記ターゲットオブジェクトを含む前記部分系と、当該部分系において遂行される前記タスクとを特定し、前記第1データベースから、特定された前記部分系及び特定された前記タスクの組合せに一致する前記監視履歴を取得し、前記ターゲットオブジェクトに、取得した前記監視履歴を送信し、前記オブジェクトは、前記部分系の状態及び前記方策に基づいて実行する行動を決定し、決定された前記行動を実行し、実行した前記行動に関する行動履歴を第2データベースに保存し、前記計算機から前記監視履歴を受信した場合、前記行動履歴及び受信した前記監視履歴を用いて前記新たな方策を生成する。
【発明の効果】
【0012】
本発明によれば、制御システムは、有用な監視履歴を送信することによって、自律体として機能するオブジェクトの方策の効率的な獲得を支援できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0013】
図1】実施例1の計算機システムの構成例を示す図である。
図2】実施例1の制御システムに含まれる計算機の構成の一例を示す図である。
図3】実施例1の装置の構成の一例を示す図である。
図4】実施例1の監視履歴のデータ構造の一例を示す図である。
図5】実施例1の行動履歴のデータ構造の一例を示す図である。
図6】実施例1の制御システムが実行する制御処理の一例を説明するフローチャートである。
図7】実施例1の制御システムによって提示される画面の一例を示す図である。
図8】実施例1の制御システムが実行する監視履歴送信処理を説明するフローチャートである。
図9】実施例1の装置が実行する行動決定処理を説明するフローチャートである。
図10】実施例1の装置が実行する行動方策生成処理を説明するフローチャートである。
図11】実施例2の制御システムが実行する監視履歴送信処理を説明するフローチャートである。
図12】実施例3の制御システムが実行する監視履歴送信処理を説明するフローチャートである。
【発明を実施するための形態】
【0014】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0015】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0016】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【0017】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例1】
【0018】
図1は、実施例1の計算機システムの構成例を示す図である。
【0019】
計算機システムは、制御システム100及び複数の装置101を含む。制御システム100及び複数の装置101によって一つの系(制御系)が構成される。制御システム100及び装置101は、ネットワークを介して接続される。ネットワークは、例えば、WAN(Wide Area Network)及びLAN(Local Area Network)等であり、接続方式は有線及び無線のいずれでもよい。
【0020】
制御システム100及び装置101は自律体として機能する。ここで、自律体とは、自身を含む系の状態を把握し、状態に応じて行動を選択し、選択した行動を実行するオブジェクトを表す。なお、人間が状態を判断し、判断結果に基づいて行動を選択し、装置101に対して行動を実行するための操作を行うオブジェクトも自律体として扱うことができる。また、人間そのものを自律体として扱うこともできる。
【0021】
制御システム100は、制御系の状態を監視し、制御系全体を最適化するために装置101に協調を促す出力を送信する。出力は、例えば、制御情報及び制御指示等である。制御システム100は、装置101の状態及び実行した行動等の情報を取得せずに、制御系を俯瞰的に監視する。例えば、物流倉庫が制御系である場合、制御システム100は、物流倉庫内の物品の位置、装置の位置、及び装置の稼働状態等を監視する。
【0022】
なお、制御システム100は、制御系全体を最適化する自律体であり、全体知と呼んでもよい。
【0023】
制御システム100は、制御部110及び監視部111を有し、また、監視履歴データベース120を保持する。監視部111は、制御系の状態を把握するための監視データを取得し、監視履歴400(図4参照)として監視履歴データベース120に格納する。制御部110は、監視履歴400に基づいて、制御系全体を最適化するための出力を決定し、対象の装置101に出力を送信する。例えば、制御部110は、制御系全体に対して設定されたKPI(Key Performance Indicator)を改善する出力を送信する。
【0024】
装置101が存在する空間には、監視データを取得するカメラ、センサ等が設置されている。装置101の状態を特定するための情報として、画像、動画、並びに、温度及び湿度等の計測値等の監視データが取得される。なお、センサは装置101に設置されてもよい。装置101に設置されるセンサは、装置101の通信手段とは異なる通信手段を用いて、制御システム100に監視データを送信する。
【0025】
装置101は、所定の目的を達成するためのタスクを遂行する。具体的には、装置101は、センサ等を用いて、自身を含む系の状態を把握し、状態及び制御システム100からの出力に基づいて、タスク遂行のための行動を選択し、行動を実行する。装置101は、制御系の一部であって、装置101の周囲の系(部分系)の下で、自律的に行動を選択する。
【0026】
装置101は、例えば、ピッキングロボット、搬送車、及びフォークリフト等である。装置101がピッキングロボットである場合、ピッキングロボットは、「物品Aの把持及び移動」というタスクを遂行するために、物品Aの収容状態等に応じて、アームを所定の角度に伸ばし、物品Aの所定の位置で物品Aを把持し、物品Aを配置エリアの所定の位置に置く、という行動を実行する。
【0027】
なお、装置101は、部分系を最適化する自律体であり、自律個と呼んでもよい。
【0028】
装置101は、行動決定部130、実行部131、及び学習部132を有し、また、行動履歴データベース140を保持する。行動決定部130は、行動を決定するための行動方策150、部分系の状態、及び制御システム100の出力に基づいて、行動を選択する。例えば、行動決定部130は、部分系に対して設定されたKPIを改善する行動を決定する。なお、行動方策150では部分系が環境として扱われる。実行部131は、選択された行動を実行し、実行した行動に関する行動履歴500(図5参照)を行動履歴データベース140に格納する。学習部132は、行動履歴500を用いて、行動方策150を生成するための学習処理を実行する。学習処理は、例えば、強化学習である。
【0029】
図2は、実施例1の制御システム100に含まれる計算機200の構成の一例を示す図である。
【0030】
制御システム100は、少なくとも一つの計算機200を含む。計算機200は、プロセッサ201、メモリ202、及びネットワークインタフェース203を有する。なお、計算機200は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等の記憶装置を有してもよい。また、計算機200は、キーボード、マウス、及びタッチパネル等の入力装置、並びに、ディスプレイ等の出力装置を有してもよい。
【0031】
プロセッサ201は、メモリ202に格納されるプログラムを実行する。プロセッサ201がプログラムにしたがって処理を実行することによって、特定の機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ201が当該機能部を実現するプログラムを実行していることを示す。
【0032】
メモリ202は、プロセッサ201が実行するプログラム及びプログラムが使用する情報を格納する。本実施例のメモリ202は、制御部110及び監視部111を実現するプログラムを格納し、また、監視履歴データベース120を格納する。
【0033】
ネットワークインタフェース203は、ネットワークを介して外部装置と通信するためのインタフェースである。
【0034】
なお、計算機200が有する各機能部は、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。
【0035】
なお、制御システム100は、監視履歴データベース120を管理するストレージシステムを含んでもよい。
【0036】
図3は、実施例1の装置101の構成の一例を示す図である。
【0037】
装置101は、プロセッサ301、メモリ302、ネットワークインタフェース303、及び駆動装置304を有する。なお、装置101は、記憶装置、入力装置、及び出力装置を有してもよい。
【0038】
プロセッサ301、メモリ302、及びネットワークインタフェース303は、プロセッサ201、メモリ202、及びネットワークインタフェース203と同じハードウェア要素である。駆動装置304は、行動に応じた動作を実現する装置であり、ローラ、ベルト、センサ、モータ、リフト、アーム、及びタイヤ等である。
【0039】
本実施例のメモリ302は、行動決定部130、実行部131、及び学習部132を実現するプログラムを格納し、また、行動履歴データベース140を格納する。
【0040】
なお、装置101が有する各機能部は、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。
【0041】
図4は、実施例1の監視履歴400のデータ構造の一例を示す図である。
【0042】
監視履歴400は、部分系ID401、タスクID402、期間403、及び時系列データ404を含む。
【0043】
部分系ID401は、部分系を識別するための環境IDを格納するフィールドである。タスクID402は、部分系において遂行されるタスクを識別するためのタスクIDを格納するフィールドである。
【0044】
なお、部分系及びタスクを一つの識別情報で識別するようにしてもよい。例えば、上位ビットが部分系を表し、下位ビットがタスクを表すビット列が考えられる。
【0045】
時系列データ404は、監視データから生成される時系列データを格納するフィールドである。監視データが画像又は計測値の場合、時間が連続する、複数の画像及び計測値から生成された時系列データが時系列データ404に格納される。監視データが動画の場合、一つの動画が時系列データ404に格納される。期間403は、時系列データの期間を格納するフィールドである。例えば、「2020/04/01 09:30-2020/04/01 09:40」等が格納される。
【0046】
図5は、実施例1の行動履歴500のデータ構造の一例を示す図である。
【0047】
行動履歴500は、タスクID501、時間502、状態503、行動504、及び遷移状態505を含む。
【0048】
タスクID501は、装置101が遂行するタスクを識別するためのタスクIDを格納するフィールドである。時間502は、選択された行動が実行された時刻を格納するフィールドである。状態503は、行動実行前の部分系の状態に関するデータを格納するフィールドである。行動504は、選択した行動に関するデータを格納するフィールドである。遷移状態505は、行動実行後の部分系の状態に関するデータを格納するフィールドである。
【0049】
図6は、実施例1の制御システム100が実行する制御処理の一例を説明するフローチャートである。図7は、実施例1の制御システム100によって提示される画面の一例を示す図である。
【0050】
監視部111は、制御系から監視データを取得する(ステップS101)。
【0051】
このとき、監視部111は、監視履歴400として管理するために必要な時間幅(例えば、10分等)の監視データが取得されるまで、監視データを一時的に蓄積する。なお、監視部111は、制御系において遂行するタスクの計画を保持し、当該計画に基づいて、時系列データを生成するための時間幅を決定してもよい。
【0052】
次に、監視部111は、監視データから監視履歴400を生成し(ステップS102)、監視履歴データベース120に監視履歴400を保存する(ステップS103)。
【0053】
具体的には、監視部111は、監視データから時系列データを生成し、付与する部分系ID及びタスクIDを決定する。また、監視部111は、部分系ID、タスクID、時系列データ、及び時系列データの期間を含む監視履歴400を生成する。
【0054】
ここで、部分系ID及びタスクIDの付与方法として以下のような方法が考えられる。
【0055】
(方法1)制御システム100に部分系の定義及び部分系IDの対応付け、並びに、タスクの定義及びタスクIDの対応付けを初期情報として設定する。また、制御システム100にタスクの計画を設定する。監視部111は、監視データの取得位置、タスクの計画、及び初期情報に基づいて、部分系ID及びタスクIDを決定する。
【0056】
(方法2)監視部111は、ユーザに対して、部分系ID及びタスクIDを入力するための画面700を提示する。画面700は、時系列データ表示欄701、部分系ID入力欄702、タスクID入力欄703、及び登録ボタン704を含む。時系列データ表示欄701には、監視履歴400に含まれる時系列データが表示される。なお、ユーザが監視履歴400に含める時系列データを選択できるようにしてもよい。部分系ID入力欄702及びタスクID入力欄703は、部分系ID及びタスクIDを入力するための欄である。ユーザは、時系列データを参照して、部分系ID入力欄702及びタスクID入力欄703に値を入力する。登録ボタン704は、部分系ID入力欄702及びタスクID入力欄703に入力した値を登録するための操作ボタンである。
【0057】
図6の説明に戻る。
【0058】
制御部110は、監視履歴400に基づいて、制御系全体の状態を把握し、制御系全体を最適化するための出力を決定し、決定した出力を装置101に送信する(ステップS104)。例えば、制御部110は、図示しない方策及び監視履歴400を用いて出力を決定する。制御部110の方策では制御系が環境として扱われる。なお、制御部110は、監視データに基づいて、制御系全体の状態を把握してもよい。
【0059】
このように、制御システム100は、部分系のKPI等、各装置101の特性を把握することなく、制御系全体の最適化を促す出力を装置101に送信する。
【0060】
なお、制御システム100は、監視履歴データベース120とは別に行動履歴データベースを保持してもよい。この場合、制御部110は、出力を送信した時刻、出力送信前の制御系の状態、決定した出力、及び出力送信後の制御系の状態を含む行動履歴を生成し、行動履歴データベースに格納する。制御システム100は、行動履歴データベースを用いて、方策を生成又は更新するための学習処理を実行してもよい。
【0061】
図8は、実施例1の制御システム100が実行する監視履歴送信処理を説明するフローチャートである。
【0062】
制御システム100の制御部110は、ある装置101について、部分系及びタスクのいずれかの変化に伴って、新たな行動方策150が必要と判定した場合、監視履歴送信処理を実行する。例えば、ユーザからの入力に基づいて新たな行動方策150の要否を判定できる。
【0063】
以下の説明では、新たな行動方策150が必要となった装置101をターゲット装置101と記載する。
【0064】
制御部110は、新たな行動方策150を適用する部分系及びタスクを確認する(ステップS201)。例えば、制御部110は、タスクの計画、又は、ユーザ入力に基づいて、新たな行動方策150を適用する部分系及びタスクを確認する。
【0065】
次に、制御部110は、監視履歴データベース120から、確認した部分系及びタスクに対応する監視履歴400を選択する(ステップS202)。具体的には、制御部110は、部分系ID401及びタスクID402の値が、確認した部分系及びタスクの識別情報に一致する監視履歴400を選択する。
【0066】
次に、制御部110は、ターゲット装置101に、選択した監視履歴400を含む学習指示を送信する(ステップS203)。
【0067】
図9は、実施例1の装置101が実行する行動決定処理を説明するフローチャートである。
【0068】
装置101は、センサ等を用いて、部分系の状態を把握するための状態データを取得する(ステップS301)。
【0069】
装置101の行動決定部130は、状態データ及び行動方策150に基づいて、行動を決定し、装置101の実行部131は、決定した行動を実行する(ステップS302)。制御システム100から出力を受信している場合、実行部131は、状態データ、行動方策150、及び当該出力に基づいて、行動を決定する。実行部131は、制御システム100から受信した出力をそのまま使用するわけではなく、部分系のKPI等を改善するように、自律的に行動を決定する。
【0070】
装置101の実行部131は、実行した行動に関する行動履歴500を生成し、行動履歴データベース140に行動履歴500を格納する(ステップS303)。
【0071】
このように、装置101は、他の装置101の特性等を把握することなく、部分系を最適化するように行動を実行する。
【0072】
図10は、実施例1の装置101が実行する行動方策生成処理を説明するフローチャートである。
【0073】
装置101の学習部132は、実行契機が発生した場合、行動方策生成処理を実行する。例えば、一定時間の経過、行動履歴500が一定数蓄積された場合、又は、制御システム100からの学習指示の受信等が実行契機となる。ここでは、制御システム100から学習指示を受信した場合に実行される行動方策生成処理を説明する。
【0074】
なお、行動方策生成処理は、タスクの開始前に実行されてもよいし、また、タスクの遂行中に実行されてもよい。タスクの遂行中に新たな行動方策150を生成することによって、タスクの切り替えに迅速に対応することができる。
【0075】
学習部132は、行動履歴データベース140に格納される行動履歴500、及び制御システム100から受信した監視履歴400を読み出す(ステップS401)。
【0076】
次に、学習部132は、監視履歴400及び行動履歴500を用いて、学習処理を実行する(ステップS402)。本実施例では、強化学習が実行されるものとする。強化学習は公知の技術であるため詳細な説明は省略する。
【0077】
次に、学習部132は、学習処理によって生成された新たな行動方策150を保存する(ステップS403)。
【0078】
学習部132は、現在の行動方策150を新たな行動方策150に更新してもよいし、現在の行動方策150を更新せずに、新たな行動方策150をストックとして保存してもよい。
【0079】
具体例を用いて、実施例1に係る発明の効果を説明する。ここでは、装置101としてピッキングロボットを考える。ピッキングロボットは、「単独で、搬送レーン上の物品Aを把持し、所定の位置に移動させる」タスクAを遂行しているものとする。また、当該ピッキングロボットに、「二つのピッキングロボットが協働して物品Aを把持し、所定の位置に移動させる」タスクBが新たに割り当てられるものとする。ただし、部分系は同一であるものとする。
【0080】
現在の行動方策150を用いて行動の試行錯誤を行う場合、ピッキングロボット同士が衝突を回避しようとして物品の把持が成功しない可能性がある。この場合、新たな方策を生成できない。ピッキングロボットが、行動方策150を初期化し、行動の試行錯誤を行って、行動方策150を更新する方法が考えられる。しかし、この方法の場合、学習処理のコストが高いという問題がある。
【0081】
実施例1の制御システム100は、部分系が同一で、かつ、タスクBを遂行していたピッキングロボットに関する監視履歴400を送信することによって試行錯誤する行動を絞り込むことができる。したがって、学習処理のコストを削減することができる。
【0082】
以上で説明したように、実施例1によれば、制御システム100は、装置101に新たな行動方策150の生成に有用な監視履歴400を送信できる。装置101は、行動履歴500及び監視履歴400を用いることによって、効率的に行動方策150を生成することができる。
【実施例2】
【0083】
実施例2では、制御システム100は、サブタスク単位に監視履歴400を分割し、分割された監視履歴400を装置101に送信する。以下、実施例1との差異を中心に実施例2について説明する。
【0084】
実施例2の計算機システムの構成は実施例1と同一である。実施例2の制御システム100及び装置101のハードウェア構成及びソフトウェア構成は実施例1と同一である。実施例2の制御処理、行動決定処理、及び行動方策生成処理は、実施例1と同一である。
【0085】
実施例2では、監視履歴送信処理が一部異なる。図11は、実施例2の制御システム100が実行する監視履歴送信処理を説明するフローチャートである。
【0086】
制御部110は、新たな行動方策150を適用する部分系及びタスクを確認する(ステップS201)。
【0087】
次に、制御部110は、監視履歴データベース120から、確認した部分系及びタスクの識別情報(部分系ID及びタスクID)に対応する監視履歴400を選択する(ステップS202)。
【0088】
次に、制御部110は、選択された監視履歴400をサブタスク単位に分割することによって、部分監視履歴を生成する(ステップS211)。分割方法としては、以下のような方法が考えられる。
【0089】
(方法1)制御部110は、非特許文献1に記載の手法を用いて監視履歴400をサブタスク単位に分割する。なお、非特許文献1に記載の手法を用いれば、サブタスク間の遷移順番等、サブタスク間の因果関係も取得できる。
【0090】
(方法2)制御部110は、タスクの計画に基づいて、各サブタスクが遂行される時間範囲を特定し、特定された時間範囲に基づいて、監視履歴400をサブタスク単位に分割する。
【0091】
次に、制御部110は、ターゲット装置101に、部分監視履歴を含む学習指示を送信する(ステップS212)。このとき、制御部110は、重要なサブタスクの部分監視履歴のみを学習指示に含めてもよい。また、制御部110は、サブタスク間の因果関係に基づいて、関連性を有するサブタスクの部分監視履歴のみを学習指示に含めてもよい。
【0092】
実施例2によれば、監視履歴400をサブタスク単位に分割した部分監視履歴を送信することによって、サブタスク単位で試行錯誤する行動を絞り込むことができる。したがって、学習部132は、行動方策150をより効率的に生成することができる。
【0093】
なお、監視部111が、非特許文献1に記載の手法を用いて、監視履歴400から部分監視履歴を生成し、監視履歴データベース120に保存してもよい。この場合、監視部111は、部分監視履歴にサブタスクの識別情報を含める。制御部110は、監視部111によって生成された部分監視履歴を選択し、ターゲット装置101に送信する。
【実施例3】
【0094】
実施例3では、制御システム100は、新たな行動方策150を適用する部分系と同一の部分系であって、新たな行動方策150を適用するタスクと同一のタスクを遂行する装置101から行動履歴500を取得し、ターゲット装置101に送信する。以下、実施例1との差異を中心に実施例3について説明する。
【0095】
実施例3の計算機システムの構成は実施例1と同一である。実施例3の制御システム100及び装置101のハードウェア構成及びソフトウェア構成は実施例1と同一である。実施例3の制御処理、行動決定処理、及び行動方策生成処理は、実施例1と同一である。
【0096】
実施例3では、監視履歴送信処理が一部異なる。図12は、実施例3の制御システム100が実行する監視履歴送信処理を説明するフローチャートである。
【0097】
制御部110は、新たな行動方策150を適用する部分系及びタスクを確認する(ステップS201)。
【0098】
次に、制御部110は、確認した部分系及びタスクに対応する行動履歴500を保持するソース装置101を特定する(ステップS221)。例えば、制御部110は、タスクの計画に基づいてソース装置101を特定する。
【0099】
次に、制御部110は、ソース装置101から行動履歴500を取得する(ステップS222)。
【0100】
次に、制御部110は、ターゲット装置101に、行動履歴500を含む学習指示を送信する(ステップS223)。
【0101】
なお、制御部110は、実施例1と同様に、監視履歴データベース120から監視履歴400を取得してもよい。
【0102】
実施例3によれば、他の装置101の行動履歴500をターゲット装置101に送信することによって、学習部132は、行動方策150をより効率的に生成することができる。
【0103】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0104】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0105】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0106】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0107】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【0108】
100 制御システム
101 装置
110 制御部
111 監視部
120 監視履歴データベース
130 行動決定部
131 実行部
132 学習部
140 行動履歴データベース
150 行動方策
200 計算機
201、301 プロセッサ
202、302 メモリ
203、303 ネットワークインタフェース
304 駆動装置
400 監視履歴
500 行動履歴
700 画面
701 時系列データ表示欄
702 部分系ID入力欄
703 タスクID入力欄
704 登録ボタン
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12