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

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

▶ オムロン株式会社の特許一覧

特許7585999学習及び制御装置、学習装置、制御装置、学習及び制御方法、学習方法、制御方法、学習及び制御プログラム、学習プログラム、及び制御プログラム
<>
  • 特許-学習及び制御装置、学習装置、制御装置、学習及び制御方法、学習方法、制御方法、学習及び制御プログラム、学習プログラム、及び制御プログラム 図1
  • 特許-学習及び制御装置、学習装置、制御装置、学習及び制御方法、学習方法、制御方法、学習及び制御プログラム、学習プログラム、及び制御プログラム 図2
  • 特許-学習及び制御装置、学習装置、制御装置、学習及び制御方法、学習方法、制御方法、学習及び制御プログラム、学習プログラム、及び制御プログラム 図3
  • 特許-学習及び制御装置、学習装置、制御装置、学習及び制御方法、学習方法、制御方法、学習及び制御プログラム、学習プログラム、及び制御プログラム 図4
  • 特許-学習及び制御装置、学習装置、制御装置、学習及び制御方法、学習方法、制御方法、学習及び制御プログラム、学習プログラム、及び制御プログラム 図5
  • 特許-学習及び制御装置、学習装置、制御装置、学習及び制御方法、学習方法、制御方法、学習及び制御プログラム、学習プログラム、及び制御プログラム 図6
  • 特許-学習及び制御装置、学習装置、制御装置、学習及び制御方法、学習方法、制御方法、学習及び制御プログラム、学習プログラム、及び制御プログラム 図7
  • 特許-学習及び制御装置、学習装置、制御装置、学習及び制御方法、学習方法、制御方法、学習及び制御プログラム、学習プログラム、及び制御プログラム 図8
  • 特許-学習及び制御装置、学習装置、制御装置、学習及び制御方法、学習方法、制御方法、学習及び制御プログラム、学習プログラム、及び制御プログラム 図9
  • 特許-学習及び制御装置、学習装置、制御装置、学習及び制御方法、学習方法、制御方法、学習及び制御プログラム、学習プログラム、及び制御プログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】学習及び制御装置、学習装置、制御装置、学習及び制御方法、学習方法、制御方法、学習及び制御プログラム、学習プログラム、及び制御プログラム
(51)【国際特許分類】
   B25J 9/22 20060101AFI20241112BHJP
   G06N 20/00 20190101ALI20241112BHJP
【FI】
B25J9/22 A
G06N20/00
【請求項の数】 15
(21)【出願番号】P 2021109158
(22)【出願日】2021-06-30
(65)【公開番号】P2023006521
(43)【公開日】2023-01-18
【審査請求日】2024-03-18
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】井尻 善久
(72)【発明者】
【氏名】フェリクス フォン ドリガルスキ
(72)【発明者】
【氏名】田中 一敏
(72)【発明者】
【氏名】▲濱▼屋 政志
(72)【発明者】
【氏名】米谷 竜
【審査官】牧 初
(56)【参考文献】
【文献】特開2020-104215(JP,A)
【文献】特開2018-124982(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G05B 11/00-13/04
(57)【特許請求の範囲】
【請求項1】
制御対象に対して予め定めた一連の動作を行わせることにより得られた、前記制御対象の状態と、前記状態で前記制御対象に指令した指令動作と、前記制御対象が指令動作を行った後の次状態と、を含む状態遷移データを複数取得する状態遷移データ取得部と、
前記状態及び前記指令動作を入力とし前記次状態を出力とするダイナミクスモデルを複数生成し、それぞれの前記ダイナミクスモデルは取得した複数の前記状態遷移データの一部から成る状態遷移データの組に対して適合し、複数の前記ダイナミクスモデルは互いに異なる前記状態遷移データの組に適合する、ダイナミクスモデル生成部と、
生成したダイナミクスモデルに適合する前記状態遷移データの組に含まれる前記状態遷移データに対して、適合する前記ダイナミクスモデルを識別するラベルを付与する付与部と、
前記ラベルが付与された前記状態遷移データを学習データとして、複数の前記ダイナミクスモデルの中から、入力された前記制御対象の状態及び前記指令動作に対応する前記ダイナミクスモデルを特定するスイッチングモデルを学習する学習部と、
前記制御対象の状態を取得する状態取得部と、
前記制御対象に対する仮の指令系列を複数生成する仮指令系列生成部と、
仮の各指令系列に含まれる各指令及び各指令に対応する状態を入力して前記スイッチングモデルを実行することにより、指令及び指令に対応する状態毎に適用するダイナミクスモデルを特定する特定部と、
仮の前記指令系列毎に、仮の前記指令系列に含まれる各指令に対応して特定された前記ダイナミクスモデルを用いて予測状態系列を生成する予測状態系列生成部と、
各予測状態系列の報酬を算出する算出部と、
前記報酬が最大化されると予測される予測指令系列を生成する予測指令系列生成部と、
生成された前記予測指令系列に含まれる最初の指令を出力する出力部と、
前記状態取得部、前記仮指令系列生成部、前記特定部、前記予測状態系列生成部、前記算出部、前記予測指令系列生成部、及び前記出力部の一連の動作を繰り返すことにより前記制御対象の動作を制御する実行制御部と、
を備えた学習及び制御装置。
【請求項2】
前記ダイナミクスモデル生成部は、複数の前記ダイナミクスモデルの内の1つのダイナミクスモデルを生成するに際して、当該ダイナミクスモデルを生成するために使用可能な全ての前記状態遷移データを用いて仮の前記ダイナミクスモデルを生成し、その後は、生成した仮の前記ダイナミクスモデルに前記制御対象の状態及び前記指令動作を入力して得られた前記次状態と、当該状態及び当該指令動作を含んでいる前記状態遷移データに含まれている前記次状態と、の誤差を算出し、前記誤差が最大となる前記状態遷移データを除いて仮の前記ダイナミクスモデルを生成することを繰り返すことにより、算出した前記誤差が予め定めた閾値以下となる前記ダイナミクスモデルを生成する
請求項1記載の学習及び制御装置。
【請求項3】
前記ダイナミクスモデル生成部は、複数の前記ダイナミクスモデルの内の1つのダイナミクスモデルを生成する毎に、当該ダイナミクスモデルの生成過程において除かれずに残った前記状態遷移データを以降の前記ダイナミクスモデルの生成において使用不能にして、次の前記ダイナミクスモデルを生成する
請求項2記載の学習及び制御装置。
【請求項4】
前記ダイナミクスモデル生成部は、前記誤差が最大となって除かれた前記状態遷移データの中からランダムに選択した前記状態遷移データを予め定めた頻度で前記ダイナミクスモデルを生成するために用いる前記状態遷移データに戻して前記ダイナミクスモデルを生成する
請求項2又は請求項3記載の学習及び制御装置。
【請求項5】
前記仮指令系列生成部は、1つの仮の前記指令系列を生成し、前記予測状態系列生成部は、前記仮指令系列生成部が生成した仮の前記指令系列に対応する前記予測状態系列を生成し、前記算出部は、前記予測状態系列生成部が生成した予測状態系列の報酬を算出し、前記予測指令系列生成部は、前記仮指令系列生成部、前記特定部、予測状態系列生成部、及び算出部の一連の動作を複数回実行させることにより前記報酬をより大きくするように仮の前記指令系列を1回以上更新することによって前記報酬が最大化されると予測される予測指令系列を生成する
請求項1~4の何れか1項に記載の学習及び制御装置。
【請求項6】
前記仮指令系列生成部は、複数の仮の前記指令系列をまとめて生成し、前記予測状態系列生成部は、前記複数の仮の前記指令系列の各々から前記予測状態系列を生成し、前記算出部は、各予測状態系列の報酬を算出し、前記予測指令系列生成部は、前記各予測状態系列の報酬に基づいて前記報酬が最大化されると予測される予測指令系列を生成する
請求項1~4の何れか1項に記載の学習及び制御装置。
【請求項7】
前記仮指令系列生成部は、前記複数の仮の前記指令系列をまとめて生成する処理から前記報酬を算出する処理までの一連の処理を複数回繰り返して実行させ、2回目以降の前記一連の処理においては、前記仮指令系列生成部は、前回の一連の処理において算出された報酬のうち予め定めた上位の報酬に対応する複数の仮の前記指令系列を選択し、選択した複数の仮の前記指令系列の分布に基づいて新たな複数の仮の前記指令系列を生成する
請求項6記載の学習及び制御装置。
【請求項8】
制御対象に対して予め定めた一連の動作を行わせることにより得られた、前記制御対象の状態と、前記状態で前記制御対象に指令した指令動作と、前記制御対象が指令動作を行った後の次状態と、を含む状態遷移データを複数取得する状態遷移データ取得部と、
前記状態及び前記指令動作を入力とし前記次状態を出力とするダイナミクスモデルを複数生成し、それぞれの前記ダイナミクスモデルは取得した複数の前記状態遷移データの一部から成る状態遷移データの組に対して適合し、複数の前記ダイナミクスモデルは互いに異なる前記状態遷移データの組に適当する、ダイナミクスモデル生成部と、
生成したダイナミクスモデルに適合する前記状態遷移データの組に含まれる前記状態遷移データに対して、適合する前記ダイナミクスモデルを識別するラベルを付与する付与部と、
前記ラベルが付与された前記状態遷移データを学習データとして、複数の前記ダイナミクスモデルの中から、入力された前記制御対象の状態及び前記指令動作に対応する前記ダイナミクスモデルを特定するスイッチングモデルを学習する学習部と、
を備えた学習装置。
【請求項9】
制御対象の状態を取得する状態取得部と、
前記制御対象に対する仮の指令系列を複数生成する仮指令系列生成部と、
仮の各指令系列に含まれる各指令及び各指令に対応する状態を入力して請求項8記載の学習装置により学習されたスイッチングモデルを実行することにより、前記学習装置により生成されたダイナミクスモデルのうち指令及び指令に対応する状態毎に適用する前記ダイナミクスモデルを特定する特定部と、
仮の前記指令系列毎に、仮の前記指令系列に含まれる各指令に対応して特定された前記ダイナミクスモデルを用いて予測状態系列を生成する予測状態系列生成部と、
各予測状態系列の報酬を算出する算出部と、
前記報酬が最大化されると予測される予測指令系列を生成する予測指令系列生成部と、
生成された前記予測指令系列に含まれる最初の指令を出力する出力部と、
前記状態取得部、前記仮指令系列生成部、前記特定部、前記予測状態系列生成部、前記算出部、前記予測指令系列生成部、及び前記出力部の一連の動作を繰り返すことにより前記制御対象の動作を制御する実行制御部と、
を備えた制御装置。
【請求項10】
コンピュータが、
制御対象に対して予め定めた一連の動作を行わせることにより得られた、前記制御対象の状態と、前記状態で前記制御対象に指令した指令動作と、前記制御対象が指令動作を行った後の次状態と、を含む状態遷移データを複数取得する状態遷移データ取得ステップと、
前記状態及び前記指令動作を入力とし前記次状態を出力とするダイナミクスモデルを複数生成し、それぞれの前記ダイナミクスモデルは取得した複数の前記状態遷移データの一部から成る状態遷移データの組に対して適合し、複数の前記ダイナミクスモデルは互いに異なる前記状態遷移データの組に適合する、ダイナミクスモデル生成ステップと、
生成したダイナミクスモデルに適合する前記状態遷移データの組に含まれる前記状態遷移データに対して、適合する前記ダイナミクスモデルを識別するラベルを付与する付与ステップと、
前記ラベルが付与された前記状態遷移データを学習データとして、複数の前記ダイナミクスモデルの中から、入力された前記制御対象の状態及び前記指令動作に対応する前記ダイナミクスモデルを特定するスイッチングモデルを学習する学習ステップと、
前記制御対象の状態を取得する状態取得ステップと、
前記制御対象に対する仮の指令系列を複数生成する仮指令系列生成ステップと、
仮の各指令系列に含まれる各指令及び各指令に対応する状態を入力して前記スイッチングモデルを実行することにより、指令及び指令に対応する状態毎に適用するダイナミクスモデルを特定する特定ステップと、
仮の前記指令系列毎に、仮の前記指令系列に含まれる各指令に対応して特定された前記ダイナミクスモデルを用いて予測状態系列を生成する予測状態系列生成ステップと、
各予測状態系列の報酬を算出する算出ステップと、
前記報酬が最大化されると予測される予測指令系列を生成する予測指令系列生成ステップと、
生成された前記予測指令系列に含まれる最初の指令を出力する出力ステップと、
前記状態取得ステップ、前記仮指令系列生成ステップ、前記特定ステップ、前記予測状態系列生成ステップ、前記算出ステップ、前記予測指令系列生成ステップ、及び前記出力ステップの一連の動作を繰り返すことにより前記制御対象の動作を制御する実行制御ステップと、
を含む処理を実行する学習及び制御方法。
【請求項11】
コンピュータが、
制御対象に対して予め定めた一連の動作を行わせることにより得られた、前記制御対象の状態と、前記状態で前記制御対象に指令した指令動作と、前記制御対象が指令動作を行った後の次状態と、を含む状態遷移データを複数取得する状態遷移データ取得ステップと、
前記状態及び前記指令動作を入力とし前記次状態を出力とするダイナミクスモデルを複数生成し、それぞれの前記ダイナミクスモデルは取得した複数の前記状態遷移データの一部から成る状態遷移データの組に対して適合し、複数の前記ダイナミクスモデルは互いに異なる前記状態遷移データの組に適合する、ダイナミクスモデル生成ステップと、
生成したダイナミクスモデルに適合する前記状態遷移データの組に含まれる前記状態遷移データに対して、適合する前記ダイナミクスモデルを識別するラベルを付与する付与ステップと、
前記ラベルが付与された前記状態遷移データを学習データとして、複数の前記ダイナミクスモデルの中から、入力された前記制御対象の状態及び前記指令動作に対応する前記ダイナミクスモデルを特定するスイッチングモデルを学習する学習ステップと、
を含む処理を実行する学習方法。
【請求項12】
コンピュータが、
制御対象の状態を取得する状態取得ステップと、
前記制御対象に対する仮の指令系列を複数生成する仮指令系列生成ステップと、
仮の各指令系列に含まれる各指令及び各指令に対応する状態を入力して請求項11記載の学習方法により学習されたスイッチングモデルを実行することにより、前記学習方法により生成されたダイナミクスモデルのうち指令及び指令に対応する状態毎に適用する前記ダイナミクスモデルを特定する特定ステップと、
仮の前記指令系列毎に、仮の前記指令系列に含まれる各指令に対応して特定された前記ダイナミクスモデルを用いて予測状態系列を生成する予測状態系列生成ステップと、
各予測状態系列の報酬を算出する算出ステップと、
前記報酬が最大化されると予測される予測指令系列を生成する予測指令系列生成ステップと、
生成された前記予測指令系列に含まれる最初の指令を出力する出力ステップと、
前記状態取得ステップ、前記仮指令系列生成ステップ、前記特定ステップ、前記予測状態系列生成ステップ、前記算出ステップ、前記予測指令系列生成ステップ、及び前記出力ステップの一連の動作を繰り返すことにより前記制御対象の動作を制御する実行制御ステップと、
を含む処理を実行する制御方法。
【請求項13】
コンピュータに、
制御対象に対して予め定めた一連の動作を行わせることにより得られた、前記制御対象の状態と、前記状態で前記制御対象に指令した指令動作と、前記制御対象が指令動作を行った後の次状態と、を含む状態遷移データを複数取得する状態遷移データ取得ステップと、
前記状態及び前記指令動作を入力とし前記次状態を出力とするダイナミクスモデルを複数生成し、それぞれの前記ダイナミクスモデルは取得した複数の前記状態遷移データの一部から成る状態遷移データの組に対して適合し、複数の前記ダイナミクスモデルは互いに異なる前記状態遷移データの組に適合する、ダイナミクスモデル生成ステップと、
生成したダイナミクスモデルに適合する前記状態遷移データの組に含まれる前記状態遷移データに対して、適合する前記ダイナミクスモデルを識別するラベルを付与する付与ステップと、
前記ラベルが付与された前記状態遷移データを学習データとして、複数の前記ダイナミクスモデルの中から、入力された前記制御対象の状態及び前記指令動作に対応する前記ダイナミクスモデルを特定するスイッチングモデルを学習する学習ステップと、
前記制御対象の状態を取得する状態取得ステップと、
前記制御対象に対する仮の指令系列を複数生成する仮指令系列生成ステップと、
仮の各指令系列に含まれる各指令及び各指令に対応する状態を入力して前記スイッチングモデルを実行することにより、指令及び指令に対応する状態毎に適用するダイナミクスモデルを特定する特定ステップと、
仮の前記指令系列毎に、仮の前記指令系列に含まれる各指令に対応して特定された前記ダイナミクスモデルを用いて予測状態系列を生成する予測状態系列生成ステップと、
各予測状態系列の報酬を算出する算出ステップと、
前記報酬が最大化されると予測される予測指令系列を生成する予測指令系列生成ステップと、
生成された前記予測指令系列に含まれる最初の指令を出力する出力ステップと、
前記状態取得ステップ、前記仮指令系列生成ステップ、前記特定ステップ、前記予測状態系列生成ステップ、前記算出ステップ、前記予測指令系列生成ステップ、及び前記出力ステップの一連の動作を繰り返すことにより前記制御対象の動作を制御する実行制御ステップと、
を含む処理を実行させる学習及び制御プログラム。
【請求項14】
コンピュータに、
制御対象に対して予め定めた一連の動作を行わせることにより得られた、前記制御対象の状態と、前記状態で前記制御対象に指令した指令動作と、前記制御対象が指令動作を行った後の次状態と、を含む状態遷移データを複数取得する状態遷移データ取得ステップと、
前記状態及び前記指令動作を入力とし前記次状態を出力とするダイナミクスモデルを複数生成し、それぞれの前記ダイナミクスモデルは取得した複数の前記状態遷移データの一部から成る状態遷移データの組に対して適合し、複数の前記ダイナミクスモデルは互いに異なる前記状態遷移データの組に適合する、ダイナミクスモデル生成ステップと、
生成したダイナミクスモデルに適合する前記状態遷移データの組に含まれる前記状態遷移データに対して、適合する前記ダイナミクスモデルを識別するラベルを付与する付与ステップと、
前記ラベルが付与された前記状態遷移データを学習データとして、複数の前記ダイナミクスモデルの中から、入力された前記制御対象の状態及び前記指令動作に対応する前記ダイナミクスモデルを特定するスイッチングモデルを学習する学習ステップと、
を含む処理を実行させる学習プログラム。
【請求項15】
コンピュータに、
制御対象の状態を取得する状態取得ステップと、
前記制御対象に対する仮の指令系列を複数生成する仮指令系列生成ステップと、
仮の各指令系列に含まれる各指令及び各指令に対応する状態を入力して請求項14記載の学習プログラムにより学習されたスイッチングモデルを実行することにより、前記学習プログラムにより生成されたダイナミクスモデルのうち指令及び指令に対応する状態毎に適用する前記ダイナミクスモデルを特定する特定ステップと、
仮の前記指令系列毎に、仮の前記指令系列に含まれる各指令に対応して特定された前記ダイナミクスモデルを用いて予測状態系列を生成する予測状態系列生成ステップと、
各予測状態系列の報酬を算出する算出ステップと、
前記報酬が最大化されると予測される予測指令系列を生成する予測指令系列生成ステップと、
生成された前記予測指令系列に含まれる最初の指令を出力する出力ステップと、
前記状態取得ステップ、前記仮指令系列生成ステップ、前記特定ステップ、前記予測状態系列生成ステップ、前記算出ステップ、前記予測指令系列生成ステップ、及び前記出力ステップの一連の動作を繰り返すことにより前記制御対象の動作を制御する実行制御ステップと、
を含む処理を実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、学習及び制御装置、学習装置、制御装置、学習及び制御方法、学習方法、制御方法、学習及び制御プログラム、学習プログラム、及び制御プログラムに関する。
【背景技術】
【0002】
非特許文献1には、複数の状態遷移モデルを用いたモデルベースの強化学習の方法が開示されている。
【0003】
非特許文献2には、教示軌道から、空間全体を別のサブゴールをもつ小空間に分割し、分割した小空間ごとに異なる方策(制御器)を学習する方法が開示されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】K.Doya, K.Samejima, K.Katagiri, and M.Kawato, "Multiple model-based reinforcement learning," Neural computation, vol.14, no.6, pp.1347-1369,2002.
【文献】Paul, Sujoy, Jeroen van Baar, and Amit K. Roy-Chowdhury. "Learning from trajectories via subgoal discovery." arXiv preprint arXiv:1911.07224 (2019).
【発明の概要】
【発明が解決しようとする課題】
【0005】
ロボット等の制御対象が実行する一連の動作をプログラミングする労力は大きく、制御対象の一連の動作を自律的に学習することができれば、その労力を無くすことができる。
【0006】
しかしながら、一連の動作の全ての状態遷移を単一のモデルで正確に予測するよう学習させようとした場合、多数の試行が必要となる。
【0007】
開示の技術は、上記の点に鑑みてなされたものであり、制御対象が実行する一連の動作の全体に適用できるモデルを少数の試行で学習できると共に、学習したモデルを用いて制御対象が実行する一連の動作の全体を制御することができる学習及び制御装置、学習装置、制御装置、学習及び制御方法、学習方法、制御方法、学習及び制御プログラム、学習プログラム、及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
開示の第1態様は、学習及び制御装置であって、制御対象に対して予め定めた一連の動作を行わせることにより得られた、前記制御対象の状態と、前記状態で前記制御対象に指令した指令動作と、前記制御対象が指令動作を行った後の次状態と、を含む状態遷移データを複数取得する状態遷移データ取得部と、前記状態及び前記指令動作を入力とし前記次状態を出力とするダイナミクスモデルを複数生成し、それぞれの前記ダイナミクスモデルは取得した複数の前記状態遷移データの一部から成る状態遷移データの組に対して適合し、複数の前記ダイナミクスモデルは互いに異なる前記状態遷移データの組に適合する、ダイナミクスモデル生成部と、生成したダイナミクスモデルに適合する前記状態遷移データの組に含まれる前記状態遷移データに対して、適合する前記ダイナミクスモデルを識別するラベルを付与する付与部と、前記ラベルが付与された前記状態遷移データを学習データとして、複数の前記ダイナミクスモデルの中から、入力された前記制御対象の状態及び前記指令動作に対応する前記ダイナミクスモデルを特定するスイッチングモデルを学習する学習部と、前記制御対象の状態を取得する状態取得部と、前記制御対象に対する仮の指令系列を複数生成する仮指令系列生成部と、仮の各指令系列に含まれる各指令及び各指令に対応する状態を入力して前記スイッチングモデルを実行することにより、指令及び指令に対応する状態毎に適用するダイナミクスモデルを特定する特定部と、仮の前記指令系列毎に、仮の前記指令系列に含まれる各指令に対応して特定された前記ダイナミクスモデルを用いて予測状態系列を生成する予測状態系列生成部と、各予測状態系列の報酬を算出する算出部と、前記報酬が最大化されると予測される予測指令系列を生成する予測指令系列生成部と、生成された前記予測指令系列に含まれる最初の指令を出力する出力部と、前記状態取得部、前記仮指令系列生成部、前記特定部、前記予測状態系列生成部、前記算出部、前記予測指令系列生成部、及び前記出力部の一連の動作を繰り返すことにより前記制御対象の動作を制御する実行制御部と、を備える。
【0009】
上記第1態様において、前記ダイナミクスモデル生成部は、複数の前記ダイナミクスモデルの内の1つのダイナミクスモデルを生成するに際して、当該ダイナミクスモデルを生成するために使用可能な全ての前記状態遷移データを用いて仮の前記ダイナミクスモデルを生成し、その後は、生成した仮の前記ダイナミクスモデルに前記制御対象の状態及び前記指令動作を入力して得られた前記次状態と、当該状態及び当該指令動作を含んでいる前記状態遷移データに含まれている前記次状態と、の誤差を算出し、前記誤差が最大となる前記状態遷移データを除いて仮の前記ダイナミクスモデルを生成することを繰り返すことにより、算出した前記誤差が予め定めた閾値以下となる前記ダイナミクスモデルを生成するようにしてもよい。
【0010】
上記第1態様において、前記ダイナミクスモデル生成部は、複数の前記ダイナミクスモデルの内の1つのダイナミクスモデルを生成する毎に、当該ダイナミクスモデルの生成過程において除かれずに残った前記状態遷移データを以降の前記ダイナミクスモデルの生成において使用不能にして、次の前記ダイナミクスモデルを生成するようにしてもよい。
【0011】
上記第1態様において、前記ダイナミクスモデル生成部は、前記誤差が最大となって除かれた前記状態遷移データの中からランダムに選択した前記状態遷移データを予め定めた頻度で前記ダイナミクスモデルを生成するために用いる前記状態遷移データに戻して前記ダイナミクスモデルを生成するようにしてもよい。
【0012】
上記第1態様において、前記仮指令系列生成部は、1つの仮の前記指令系列を生成し、前記予測状態系列生成部は、前記仮指令系列生成部が生成した仮の前記指令系列に対応する前記予測状態系列を生成し、前記算出部は、前記予測状態系列生成部が生成した予測状態系列の報酬を算出し、前記予測指令系列生成部は、前記仮指令系列生成部、前記特定部、予測状態系列生成部、及び算出部の一連の動作を複数回実行させることにより前記報酬をより大きくするように仮の前記指令系列を1回以上更新することによって前記報酬が最大化されると予測される予測指令系列を生成するようにしてもよい。
【0013】
上記第1態様において、前記仮指令系列生成部は、複数の仮の前記指令系列をまとめて生成し、前記予測状態系列生成部は、前記複数の仮の前記指令系列の各々から前記予測状態系列を生成し、前記算出部は、各予測状態系列の報酬を算出し、前記予測指令系列生成部は、前記各予測状態系列の報酬に基づいて前記報酬が最大化されると予測される予測指令系列を生成するようにしてもよい。
【0014】
上記第1態様において、前記仮指令系列生成部は、前記複数の仮の前記指令系列をまとめて生成する処理から前記報酬を算出する処理までの一連の処理を複数回繰り返して実行させ、2回目以降の前記一連の処理においては、前記仮指令系列生成部は、前回の一連の処理において算出された報酬のうち予め定めた上位の報酬に対応する複数の仮の前記指令系列を選択し、選択した複数の仮の前記指令系列の分布に基づいて新たな複数の仮の前記指令系列を生成するようにしてもよい。
【0015】
開示の第2態様は、学習装置であって、制御対象に対して予め定めた一連の動作を行わせることにより得られた、前記制御対象の状態と、前記状態で前記制御対象に指令した指令動作と、前記制御対象が指令動作を行った後の次状態と、を含む状態遷移データを複数取得する状態遷移データ取得部と、前記状態及び前記指令動作を入力とし前記次状態を出力とするダイナミクスモデルを複数生成し、それぞれの前記ダイナミクスモデルは取得した複数の前記状態遷移データの一部から成る状態遷移データの組に対して適合し、複数の前記ダイナミクスモデルは互いに異なる前記状態遷移データの組に適当する、ダイナミクスモデル生成部と、生成したダイナミクスモデルに適合する前記状態遷移データの組に含まれる前記状態遷移データに対して、適合する前記ダイナミクスモデルを識別するラベルを付与する付与部と、前記ラベルが付与された前記状態遷移データを学習データとして、複数の前記ダイナミクスモデルの中から、入力された前記制御対象の状態及び前記指令動作に対応する前記ダイナミクスモデルを特定するスイッチングモデルを学習する学習部と、を備える。
【0016】
開示の第3態様は、制御装置であって、制御対象の状態を取得する状態取得部と、前記制御対象に対する仮の指令系列を複数生成する仮指令系列生成部と、仮の各指令系列に含まれる各指令及び各指令に対応する状態を入力して前記学習装置により学習されたスイッチングモデルを実行することにより、前記学習装置により生成されたダイナミクスモデルのうち指令及び指令に対応する状態毎に適用する前記ダイナミクスモデルを特定する特定部と、仮の前記指令系列毎に、仮の前記指令系列に含まれる各指令に対応して特定された前記ダイナミクスモデルを用いて予測状態系列を生成する予測状態系列生成部と、各予測状態系列の報酬を算出する算出部と、前記報酬が最大化されると予測される予測指令系列を生成する予測指令系列生成部と、生成された前記予測指令系列に含まれる最初の指令を出力する出力部と、前記状態取得部、前記仮指令系列生成部、前記特定部、前記予測状態系列生成部、前記算出部、前記予測指令系列生成部、及び前記出力部の一連の動作を繰り返すことにより前記制御対象の動作を制御する実行制御部と、を備える。
【0017】
開示の第4態様は、学習及び制御方法であって、コンピュータが、制御対象に対して予め定めた一連の動作を行わせることにより得られた、前記制御対象の状態と、前記状態で前記制御対象に指令した指令動作と、前記制御対象が指令動作を行った後の次状態と、を含む状態遷移データを複数取得する状態遷移データ取得ステップと、前記状態及び前記指令動作を入力とし前記次状態を出力とするダイナミクスモデルを複数生成し、それぞれの前記ダイナミクスモデルは取得した複数の前記状態遷移データの一部から成る状態遷移データの組に対して適合し、複数の前記ダイナミクスモデルは互いに異なる前記状態遷移データの組に適合する、ダイナミクスモデル生成ステップと、生成したダイナミクスモデルに適合する前記状態遷移データの組に含まれる前記状態遷移データに対して、適合する前記ダイナミクスモデルを識別するラベルを付与する付与ステップと、前記ラベルが付与された前記状態遷移データを学習データとして、複数の前記ダイナミクスモデルの中から、入力された前記制御対象の状態及び前記指令動作に対応する前記ダイナミクスモデルを特定するスイッチングモデルを学習する学習ステップと、前記制御対象の状態を取得する状態取得ステップと、前記制御対象に対する仮の指令系列を複数生成する仮指令系列生成ステップと、仮の各指令系列に含まれる各指令及び各指令に対応する状態を入力して前記スイッチングモデルを実行することにより、指令及び指令に対応する状態毎に適用するダイナミクスモデルを特定する特定ステップと、仮の前記指令系列毎に、仮の前記指令系列に含まれる各指令に対応して特定された前記ダイナミクスモデルを用いて予測状態系列を生成する予測状態系列生成ステップと、各予測状態系列の報酬を算出する算出ステップと、前記報酬が最大化されると予測される予測指令系列を生成する予測指令系列生成ステップと、生成された前記予測指令系列に含まれる最初の指令を出力する出力ステップと、前記状態取得ステップ、前記仮指令系列生成ステップ、前記特定ステップ、前記予測状態系列生成ステップ、前記算出ステップ、前記予測指令系列生成ステップ、及び前記出力ステップの一連の動作を繰り返すことにより前記制御対象の動作を制御する実行制御ステップと、を含む処理を実行する。
【0018】
開示の第5態様は、学習方法であって、コンピュータが、制御対象に対して予め定めた一連の動作を行わせることにより得られた、前記制御対象の状態と、前記状態で前記制御対象に指令した指令動作と、前記制御対象が指令動作を行った後の次状態と、を含む状態遷移データを複数取得する状態遷移データ取得ステップと、前記状態及び前記指令動作を入力とし前記次状態を出力とするダイナミクスモデルを複数生成し、それぞれの前記ダイナミクスモデルは取得した複数の前記状態遷移データの一部から成る状態遷移データの組に対して適合し、複数の前記ダイナミクスモデルは互いに異なる前記状態遷移データの組に適合する、ダイナミクスモデル生成ステップと、生成したダイナミクスモデルに適合する前記状態遷移データの組に含まれる前記状態遷移データに対して、適合する前記ダイナミクスモデルを識別するラベルを付与する付与ステップと、前記ラベルが付与された前記状態遷移データを学習データとして、複数の前記ダイナミクスモデルの中から、入力された前記制御対象の状態及び前記指令動作に対応する前記ダイナミクスモデルを特定するスイッチングモデルを学習する学習ステップと、を含む処理を実行する。
【0019】
開示の第6態様は、制御方法であって、コンピュータが、制御対象の状態を取得する状態取得ステップと、前記制御対象に対する仮の指令系列を複数生成する仮指令系列生成ステップと、仮の各指令系列に含まれる各指令及び各指令に対応する状態を入力して前記学習方法により学習されたスイッチングモデルを実行することにより、前記学習方法により生成されたダイナミクスモデルのうち指令及び指令に対応する状態毎に適用する前記ダイナミクスモデルを特定する特定ステップと、仮の前記指令系列毎に、仮の前記指令系列に含まれる各指令に対応して特定された前記ダイナミクスモデルを用いて予測状態系列を生成する予測状態系列生成ステップと、各予測状態系列の報酬を算出する算出ステップと、前記報酬が最大化されると予測される予測指令系列を生成する予測指令系列生成ステップと、生成された前記予測指令系列に含まれる最初の指令を出力する出力ステップと、前記状態取得ステップ、前記仮指令系列生成ステップ、前記特定ステップ、前記予測状態系列生成ステップ、前記算出ステップ、前記予測指令系列生成ステップ、及び前記出力ステップの一連の動作を繰り返すことにより前記制御対象の動作を制御する実行制御ステップと、を含む処理を実行する。
【0020】
開示の第7態様は、学習及び制御プログラムであって、コンピュータに、制御対象に対して予め定めた一連の動作を行わせることにより得られた、前記制御対象の状態と、前記状態で前記制御対象に指令した指令動作と、前記制御対象が指令動作を行った後の次状態と、を含む状態遷移データを複数取得する状態遷移データ取得ステップと、前記状態及び前記指令動作を入力とし前記次状態を出力とするダイナミクスモデルを複数生成し、それぞれの前記ダイナミクスモデルは取得した複数の前記状態遷移データの一部から成る状態遷移データの組に対して適合し、複数の前記ダイナミクスモデルは互いに異なる前記状態遷移データの組に適合する、ダイナミクスモデル生成ステップと、生成したダイナミクスモデルに適合する前記状態遷移データの組に含まれる前記状態遷移データに対して、適合する前記ダイナミクスモデルを識別するラベルを付与する付与ステップと、前記ラベルが付与された前記状態遷移データを学習データとして、複数の前記ダイナミクスモデルの中から、入力された前記制御対象の状態及び前記指令動作に対応する前記ダイナミクスモデルを特定するスイッチングモデルを学習する学習ステップと、前記制御対象の状態を取得する状態取得ステップと、前記制御対象に対する仮の指令系列を複数生成する仮指令系列生成ステップと、仮の各指令系列に含まれる各指令及び各指令に対応する状態を入力して前記スイッチングモデルを実行することにより、指令及び指令に対応する状態毎に適用するダイナミクスモデルを特定する特定ステップと、仮の前記指令系列毎に、仮の前記指令系列に含まれる各指令に対応して特定された前記ダイナミクスモデルを用いて予測状態系列を生成する予測状態系列生成ステップと、各予測状態系列の報酬を算出する算出ステップと、前記報酬が最大化されると予測される予測指令系列を生成する予測指令系列生成ステップと、生成された前記予測指令系列に含まれる最初の指令を出力する出力ステップと、前記状態取得ステップ、前記仮指令系列生成ステップ、前記特定ステップ、前記予測状態系列生成ステップ、前記算出ステップ、前記予測指令系列生成ステップ、及び前記出力ステップの一連の動作を繰り返すことにより前記制御対象の動作を制御する実行制御ステップと、を含む処理を実行させる。
【0021】
開示の第8態様は、学習プログラムであって、コンピュータに、制御対象に対して予め定めた一連の動作を行わせることにより得られた、前記制御対象の状態と、前記状態で前記制御対象に指令した指令動作と、前記制御対象が指令動作を行った後の次状態と、を含む状態遷移データを複数取得する状態遷移データ取得ステップと、前記状態及び前記指令動作を入力とし前記次状態を出力とするダイナミクスモデルを複数生成し、それぞれの前記ダイナミクスモデルは取得した複数の前記状態遷移データの一部から成る状態遷移データの組に対して適合し、複数の前記ダイナミクスモデルは互いに異なる前記状態遷移データの組に適合する、ダイナミクスモデル生成ステップと、生成したダイナミクスモデルに適合する前記状態遷移データの組に含まれる前記状態遷移データに対して、適合する前記ダイナミクスモデルを識別するラベルを付与する付与ステップと、前記ラベルが付与された前記状態遷移データを学習データとして、複数の前記ダイナミクスモデルの中から、入力された前記制御対象の状態及び前記指令動作に対応する前記ダイナミクスモデルを特定するスイッチングモデルを学習する学習ステップと、を含む処理を実行させる。
【0022】
開示の第9態様は、制御プログラムであって、コンピュータに、制御対象の状態を取得する状態取得ステップと、前記制御対象に対する仮の指令系列を複数生成する仮指令系列生成ステップと、仮の各指令系列に含まれる各指令及び各指令に対応する状態を入力して前記学習プログラムにより学習されたスイッチングモデルを実行することにより、前記学習プログラムにより生成されたダイナミクスモデルのうち指令及び指令に対応する状態毎に適用する前記ダイナミクスモデルを特定する特定ステップと、仮の前記指令系列毎に、仮の前記指令系列に含まれる各指令に対応して特定された前記ダイナミクスモデルを用いて予測状態系列を生成する予測状態系列生成ステップと、各予測状態系列の報酬を算出する算出ステップと、前記報酬が最大化されると予測される予測指令系列を生成する予測指令系列生成ステップと、生成された前記予測指令系列に含まれる最初の指令を出力する出力ステップと、前記状態取得ステップ、前記仮指令系列生成ステップ、前記特定ステップ、前記予測状態系列生成ステップ、前記算出ステップ、前記予測指令系列生成ステップ、及び前記出力ステップの一連の動作を繰り返すことにより前記制御対象の動作を制御する実行制御ステップと、を含む処理を実行させる。
【発明の効果】
【0023】
本発明によれば、制御対象が実行する一連の動作の全体に適用できるモデルを少数の試行で学習できると共に、学習したモデルを用いて制御対象が実行する一連の動作の全体を制御することができる。
【図面の簡単な説明】
【0024】
図1】ロボットシステムの構成図である。
図2】ロボットの概略構成を示す図である。
図3】ロボットが実行する一連の動作を示す図である。
図4】学習及び制御装置のハードウェア構成を示すブロック図である。
図5】学習装置の機能構成を示す図である。
図6】制御装置の機能構成を示す図である。
図7】学習処理のフローチャートである。
図8】モデル生成処理のフローチャートである。
図9】制御処理1のフローチャートである。
図10】制御処理2のフローチャートである。
【発明を実施するための形態】
【0025】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されている場合があり、実際の比率とは異なる場合がある。
【0026】
図1は、ロボットシステム1の構成を示す。ロボットシステム1は、制御対象の一例としてのロボット10、モデル20、状態観測センサ30、及び学習及び制御装置40を有する。
【0027】
(ロボット)
【0028】
図2は、制御対象の一例としてのロボット10の概略構成を示す図である。本実施形態におけるロボット10は、6自由度のアーム11を有する6軸垂直多関節ロボットである。アーム11の先端には、平板状のハンド12が設けられている。
【0029】
なお、ロボット10は、垂直多関節ロボットに限らず、水平多関節ロボット(スカラーロボット)であってもよい。また、6軸ロボットを例に挙げたが、5軸や7軸などその他の自由度の多関節ロボットであってもよく、パラレルリンクロボットであってもよい。
【0030】
本実施形態では、図3に示すように、ハンド12の表面にボールBLを載せた状態を初期状態として、ボールBLを図3において上方に放り投げてハンド12を裏返し、ハンド12の裏面に載せるジャグリング動作をロボット10が実行する一連の動作とする。すなわち、ハンド12を人間の手と見なした場合に、水平にした手の平の上にボールBLを載せた状態からボールBLを上方に放り投げ、手を裏返して水平にした手の甲にボールBLを載せるジャグリング動作をロボット10が実行する一連の動作とする。
【0031】
(モデル)
【0032】
モデル20は、ダイナミクスモデル群F、スイッチングモデルg、及びモデル選択部21を備える。ダイナミクスモデル群Fは、複数のダイナミクスモデルf、f、...を備える。なお、それぞれのダイナミクスモデルを区別しない場合はダイナミクスモデルfと称する。
【0033】
ダイナミクスモデルfは、ロボット10の状態s及び状態sでロボット10に指令した指令動作aを入力とし、ロボット10が指令動作aを行った後の次状態st+1を出力とするモデルである。
【0034】
スイッチングモデルgは、複数のダイナミクスモデルfの中から、入力されたロボット10の状態s及び指令動作aに対応するダイナミクスモデルfを特定する。
【0035】
モデル選択部21は、スイッチングモデルgによって特定されたダイナミクスモデルfを選択し、選択したダイナミクスモデルfから出力された次状態st+1を学習及び制御装置60に出力する。
【0036】
ロボットシステム1は、上記のようにロボット10の制御を行うためのダイナミクスモデルfを選択するスイッチングモデルgを、機械学習(例えばモデルベース強化学習)を用いて獲得する。
【0037】
(状態観測センサ)
【0038】
状態観測センサ30は、ロボット10及びボールBLの状態を観測し、観測したデータを状態観測データとして出力する。状態観測センサ30としては、例えば、ロボット10の関節のエンコーダを含む。ロボット10の状態として、各関節の角度からアーム11の先端のハンド12の位置・姿勢を特定できる。また、状態観測センサ30は、例えばボールBLを撮影するカメラを含む。カメラで撮影された画像に基づいてボールBLの位置を特定できる。
【0039】
(学習及び制御装置)
【0040】
図1に示すように、学習及び制御装置40は、学習装置50及び制御装置60を備える。
【0041】
図4は、本実施形態に係る学習及び制御装置40のハードウェア構成を示すブロック図である。図4に示すように、学習及び制御装置40は、一般的なコンピュータ(情報処理装置)と同様の構成であり、CPU(Central Processing Unit)40A、ROM(Read Only Memory)40B、RAM(Random Access Memory)40C、ストレージ40D、キーボード40E、マウス40F、モニタ40G、及び通信インタフェース40Hを有する。各構成は、バス40Iを介して相互に通信可能に接続されている。
【0042】
本実施形態では、ROM40B又はストレージ40Dには、モデルの学習処理を実行するための学習プログラム及びロボット10を制御するための制御プログラムが格納されている。CPU40Aは、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU40Aは、ROM40B又はストレージ40Dからプログラムを読み出し、RAM40Cを作業領域としてプログラムを実行する。CPU40Aは、ROM40B又はストレージ40Dに記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。ROM40Bは、各種プログラム及び各種データを格納する。RAM40Cは、作業領域として一時的にプログラム又はデータを記憶する。ストレージ40Dは、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又はフラッシュメモリにより構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。キーボード40E及びマウス40Fは入力装置の一例であり、各種の入力を行うために使用される。モニタ40Gは、例えば、液晶ディスプレイであり、ユーザインタフェースを表示する。モニタ40Gは、タッチパネル方式を採用して、入力部として機能してもよい。通信インタフェース40Hは、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI又はWi-Fi(登録商標)等の規格が用いられる。
【0043】
次に、学習装置50の機能構成について説明する。
【0044】
図5に示すように、学習装置50は、その機能構成として、状態遷移データ取得部51、ダイナミクスモデル生成部52、付与部53、及び学習部54を備える。各機能構成は、CPU40AがROM40Bまたはストレージ40Dに記憶された学習プログラムを読み出して、RAM40Cに展開して実行することにより実現される。なお、一部または全部の機能は専用のハードウェア装置によって実現されても構わない。
【0045】
状態遷移データ取得部51は、ロボット10に対して予め定めた一連の動作を行わせることにより得られた、ロボット10の状態sと、状態sでロボット10に指令した指令動作aと、ロボット10が指令動作を行った後の次状態st+1と、を含む状態遷移データとしてのタプル(touple)を複数取得する。
【0046】
ダイナミクスモデル生成部52は、状態s及び指令動作aを入力とし次状態st+1を出力とするダイナミクスモデルfを複数生成する。それぞれのダイナミクスモデルfは、取得した複数のタプルの一部から成るタプルの組に対して適合し、複数のダイナミクスモデルfは、互いに異なるタプルの組に適合する。
【0047】
また、ダイナミクスモデル生成部52は、複数のダイナミクスモデルfの内の1つのダイナミクスモデルfを生成するに際して、当該ダイナミクスモデルfを生成するために使用可能な全てのタプルを用いて仮のダイナミクスモデルfを生成し、その後は、生成した仮のダイナミクスモデルfにロボット10の状態s及び指令動作aを入力して得られた次状態st+1と、当該状態s及び当該指令動作aを含んでいるタプルに含まれている次状態st+1と、の誤差を算出し、誤差が最大となるタプルを除いて仮のダイナミクスモデルfを生成することを繰り返すことにより、算出した誤差が予め定めた閾値以下となるダイナミクスモデルfを生成する。
【0048】
また、ダイナミクスモデル生成部52は、複数のダイナミクスモデルfの内の1つのダイナミクスモデルfを生成する毎に、当該ダイナミクスモデルfの生成過程において除かれずに残ったタプルを以降のダイナミクスモデルfの生成において使用不能にして、次のダイナミクスモデルfを生成する。
【0049】
また、ダイナミクスモデル生成部52は、誤差が最大となって除かれたタプルの中からランダムに選択したタプルを予め定めた頻度でダイナミクスモデルfを生成するために用いるタプルに戻してダイナミクスモデルfを生成する
【0050】
付与部53は、生成したダイナミクスモデルfに適合するタプルの組に含まれるタプルに対して、適合するダイナミクスモデルfを識別するラベルを付与する。
【0051】
学習部54は、ラベルが付与されたタプルを学習データとして、複数のダイナミクスモデルfの中から、入力されたロボット10の状態s及び指令動作aに対応するダイナミクスモデルfを特定するスイッチングモデルgを学習する。
【0052】
図6に示すように、制御装置60は、その機能構成として、状態取得部61、仮指令系列生成部62、特定部63、予測状態系列生成部64、算出部65、予測指令系列生成部66、出力部67、及び実行制御部68を備える。各機能構成は、CPU40AがROM40Bまたはストレージ40Dに記憶された制御プログラムを読み出して、RAM40Cに展開して実行することにより実現される。なお、一部または全部の機能は専用のハードウェア装置によって実現されても構わない。
【0053】
状態取得部61は、ロボット10の状態sを取得する。
【0054】
仮指令系列生成部62は、ロボット10に対する仮の指令系列を複数生成する。
【0055】
特定部63は、仮の各指令系列に含まれる各指令及び各指令に対応する状態を入力してスイッチングモデルgを実行することにより、指令及び指令に対応する状態毎に適用するダイナミクスモデルfを特定する。
【0056】
予測状態系列生成部64は、仮の指令系列毎に、仮の指令系列に含まれる各指令に対応して特定されたダイナミクスモデルfを用いて予測状態系列を生成する。
【0057】
算出部65は、各予測状態系列の報酬を算出する。
【0058】
予測指令系列生成部66は、報酬が最大化されると予測される予測指令系列を生成する。
【0059】
ここで、仮指令系列生成部62は、1つの仮の指令系列を生成し、予測状態系列生成部64は、仮指令系列生成部62が生成した仮の指令系列に対応する予測状態系列を生成し、算出部65は、予測状態系列生成部64が生成した予測状態系列の報酬を算出し、予測指令系列生成部66は、仮指令系列生成部62、特定部63、予測状態系列生成部64、及び算出部65の一連の動作を複数回実行させることにより報酬をより大きくするように仮の前記指令系列を1回以上更新することによって報酬が最大化されると予測される指令系列を生成する。
【0060】
また、仮指令系列生成部62は、複数の仮の前記指令系列をまとめて生成し、予測状態系列生成部64は、複数の仮の指令系列の各々から予測状態系列を生成し、算出部65は、各予測状態系列の報酬を算出し、予測指令系列生成部66は、各予測状態系列の報酬に基づいて報酬が最大化されると予測される指令系列を生成してもよい。
【0061】
この場合、仮指令系列生成部62は、複数の仮の指令系列をまとめて生成する処理から報酬を算出する処理までの一連の処理を複数回繰り返して実行させ、2回目以降の一連の処理においては、仮指令系列生成部62は、前回の一連の処理において算出された報酬のうち予め定めた上位の報酬に対応する複数の仮の指令系列を選択し、選択した複数の仮の指令系列の分布に基づいて新たな複数の仮の指令系列を生成するようにしてもよい。
【0062】
出力部67は、生成された予測指令系列に含まれる最初の指令を出力する。
【0063】
実行制御部68は、状態取得部61、仮指令系列生成部62、特定部63、予測状態系列生成部64、算出部65、予測指令系列生成部66、及び出力部67の一連の動作を繰り返すことによりロボット10の動作を制御する。
【0064】
(学習処理)
【0065】
図7は、機械学習を用いて学習装置50が実行する学習処理の流れを示すフローチャートである。
【0066】
ステップS100では、学習装置50は、準備設定を行う。具体的には、ロボット10の目標状態を設定する。本実施形態ではロボット10が実行する一連の動作がジャグリング動作であるので、目標状態は、ボールBLを上方に放り投げてハンド12を裏返した後、ハンド12が水平になったときにボールBLがハンド12の裏面の所定の中央部分に載っている状態である。目標状態は、ハンド12の位置及び姿勢と、ハンド12とボールBLの相対位置と、によって定めることができる。
【0067】
なお、ロボット10が実行する一連の動作がペグを把持して穴に挿入する動作であり、ハンド12がペグを把持するグリッパであった場合は、目標状態は、ペグが穴に挿入された状態である。この場合、目標状態は、ペグ及びグリッパの位置姿勢によって定めることができる。
【0068】
また、目標状態にいたるまでの途中の状態を目標状態として指定してもよい。この場合は、途中の状態を規定する中間目標、目標軌道の一部、目標経路の一部、及び報酬算出方法等を設定する。
【0069】
また、ダイナミクスモデルfの構造を一定程度与えてもよい。本実施形態では、ダイナミクスモデルfは、ハンド12のモデルとボールBLのモデルを合成したモデルをダイナミクスモデルfとしている。一例として、ハンド12のモデルは、ニューラルネットワークであり、ボールBLのモデルは線形関数である。
【0070】
ステップS101では、学習装置50は、試行動作を実行し、複数のタプルを取得する。すなわち、ロボット10に前述したジャグリング動作を実行させ、ジャグリング動作中におけるタプルを複数取得する。具体的には、状態sにおいて指令動作aをロボット10に指令し、ロボット10が指令動作を行った後に状態観測センサ30で観測された状態観測データを次状態st+1とする。次に、次状態st+1を状態sとして指令動作aをロボット10に指令し、ロボット10が指令動作を行った後に状態観測センサ30で観測された状態観測データを次状態st+1とする。これを繰り返すことによりジャグリング動作の試行動作を実行し、ジャグリング動作中における複数のタプルを取得する。
【0071】
ステップS102では、学習装置50は、予め定めた学習終了条件を充足したか否かを判定する。ここで、学習終了条件とは、ロボット10による一連の動作が習熟したと判断できる条件であり、例えば試行動作を規定回数行った場合とすることができる。また、目標状態に到達した回数、すなわち試行動作が成功した回数が規定回数に達した場合を学習終了条件としてもよい。また、目標状態に到達するまでの時間が規定時間以内になった場合を学習終了条件としてもよい。また、一定回数当たりの試行動作の成功率が規定値以上になった場合を学習終了条件としてもよい。
【0072】
学習終了条件を充足した場合は本ルーチンを終了し、学習終了条件を充足していない場合はステップS103へ移行する。
【0073】
ステップS103では、学習装置50は、ステップS101で取得したタプルをメインデータベースに追加する。なお、メインデータベースとは、取得したタプルを格納する記憶領域を表す概念である。
【0074】
ステップS104では、図8に示すモデル生成処理を実行する。
【0075】
図8に示すように、ステップS200では、学習装置50は、生成されたダイナミクスモデルfの数を表すと共に、ダイナミクスモデルfを特定するラベルとしてのkに「1」を代入し、初期化する。
【0076】
ステップS201では、学習装置50は、メインデータベースに記憶されているタプルの数であるnが、1つのダイナミクスモデルfを作成するのに必要なタプルの下限数であるnlow以上になったか否かを判定する。そして、nがnlow以上になった場合はステップS202へ移行する。一方、nがnlow未満の場合は本ルーチンを終了し、図7のステップS105へ移行する。
【0077】
ステップS202では、学習装置50は、メインデータベースの全タプルを作業箱に移動させる。なお、作業箱とは、ダイナミクスモデルfの生成に使用するタプルを格納する記憶領域を表す概念である。
【0078】
また、ステップS202では、作業箱に格納されているタプルの数であるnにnを代入する。また、nに「0」を代入して初期化する。また、カウンタcに0を代入して初期化する。
【0079】
ステップS203では、学習装置50は、カウンタcの値を除数nextで除算したときの余りであるMOD(c,next)がnext-1と等しいか否かを判定する。そして、MOD(c,next)がnext-1と等しい場合はステップS204へ移行し、MOD(c,next)がnext-1と等しくない場合はステップS205へ移行する。すなわち、ステップS204の処理は、除数nextに応じて予め定めた頻度で実行される。除数nextは、ステップS204の処理を実行させたい頻度に応じて予め設定される。
【0080】
ステップS204では、学習装置50は、メインデータベースに存在するm番目のタプルを作業箱に移動させる。なお、m≦nである。mはランダムに設定される。すなわち、メインデータベースから作業箱に移動するタプルは、ランダムに選択される。メインデータベースに存在するタプルは、後述するステップS209で最大予測誤差dmaxを生じたタプルであり、ダイナミクスモデルfの生成過程において除かれたタプルである。従って、ステップS209で最大予測誤差dmaxを生じたタプルは、予め定めた頻度でダイナミクスモデルfの生成に使用されることとなる。これにより、生成されるダイナミクスモデルfが、局所最適なダイナミクスモデルfとなってしまうのを回避することができる。
【0081】
ステップS205では、学習装置50は、作業箱に格納されているタプルの数nが、1つのダイナミクスモデルfを作成するのに必要なタプルの下限数であるnlow未満であるか否かを判定する。そして、nがnlow未満である場合は、ダイナミクスモデルfを作成できないので本ルーチンを終了し、図7のステップS105に移行する。一方、nがnlow以上の場合は、ダイナミクスモデルfを作成できるためステップS206へ移行する。
【0082】
ステップS206では、学習装置50は、作業箱に格納されているタプルの組に適合するダイナミクスモデルfを生成する。本実施形態では、ダイナミクスモデルfは一例として線形関数であり、例えば最小二乗法等を用いて求める。なお、ダイナミクスモデルfは線形関数に限られるものではない。例えば、ニューラルネットワーク、ガウス混合回帰(Gaussian Mixture Regression:GMR)、ガウス過程回帰(Gaussian Process Regression:GPR)、サポートベクター回帰等の他の線形近似又は非線形近似の方法を用いてダイナミクスモデルfを生成してもよい。
【0083】
また、ステップS206では、学習装置50は、生成したダイナミクスモデルfの最大予測誤差dmaxを算出する。まず、作業箱の全タプルに対して次式により誤差d(i=1、2、...、n)を算出する。
【0084】
di=||st+1- f(st,at)||2
【0085】
そして、算出した誤差dのうち最も大きい誤差dを最大誤差dmaxとする。
【0086】
ステップS207では、学習装置50は、ステップS206で算出した最大誤差dmaxが予め定めた閾値dup未満であるか否かを判定する。そして、最大誤差dmaxが閾値dup未満であった場合はステップS208へ移行し、最大誤差dmaxが閾値dup以上であった場合はステップS209へ移行する。
【0087】
ステップS208では、学習装置50は、ステップS207で生成したダイナミクスモデルfをk番目(k=1、2、・・・)のダイナミクスモデルfとする。なお、前述したように、kはダイナミクスモデルfを識別するためのラベルである。
【0088】
また、ステップS208では、学習装置50は、作業箱に格納されている全てのタプルをk番目のサブデータベースに移動させる。換言すれば、格納されている全てのタプルにラベルkを付与する。ここで、サブデータベースとは、生成されたダイナミクスモデルfが適合するタプルを格納する記憶領域の概念である。これにより、作業箱は空となるので、nに「0」を代入し初期化する。また、kをインクリメントする。すなわち、k←k+1とする。その後、ステップS201へ移行する。
【0089】
ステップS209では、学習装置50は、ステップS206で求めた最大誤差dmaxを生じたタプルをメインデータベースに移動させる。これにより、作業箱からタプルが1つ減るので、nをデクリメントする。すなわちn←n-1とする。また、メインデータベースのタプルが1つ増えるので、nをインクリメントする。すなわちn←n+1とする。また、カウンタcをインクリメントする。すなわち、c←c+1とする。その後、ステップS203へ移行する。
【0090】
このように、ステップS209で除かれずに残ったタプルによってダイナミクスモデルfが生成されるが、このダイナミクスモデルfの生成に使用されたタプルはk番目のサブデータベースに移動するため、次のk+1番目のダイナミクスモデルfの生成においては使用不能とされる。
【0091】
ステップS201で否定判定された場合及びステップS205で肯定判定された場合は、図7のステップS105へ移行する。
【0092】
図7のステップS105では、学習装置50は、過去にステップS101で取得した全てのタプルをメインデータベースに移動させる。
【0093】
このように、試行動作を行う毎に、生成したダイナミクスモデルfを捨てて、過去に取得した全てのタプルをメインデータベースへ移動させて学習し直す。これにより、学習終了条件を充足するまで複数のダイナミクスモデルfが自動的に生成される。
【0094】
従来のように、ロボット10が実行する一連の動作の全ての状態遷移を単一のモデルで正確に予測するよう学習させようとした場合、多数の試行が必要となるが、本実施形態によれば、ロボット10が実行する一連の動作の全体に適用できるモデルを少数の試行で学習できる。
【0095】
(制御処理1)
【0096】
図9は、制御装置60が実行する制御処理1の流れを示すフローチャートである。
【0097】
ステップS300では、ロボット10の動作終了条件を設定する。動作終了条件とは、例えば、状態sと目標状態との差が規定値以内の場合である。
【0098】
以下で説明するステップS301~S308の処理は、制御周期に従って一定の時間間隔で実行される。制御周期は、ステップS301~ステップS308の処理を実行可能な時間に設定される。
【0099】
ステップS301では、制御装置60は、前回の制御周期を開始してから制御周期の長さに相当する所定時間が経過するまで待機する。
【0100】
ステップS302では、制御装置60は、ロボット10の状態sを取得する。すなわち、状態観測センサ30からロボット10の状態観測データを取得する。具体的には、状態sは、例えば、ロボット10(ハンド12)及び操作対象物(ボールBL)の位置である。なお、速度は過去の位置と現在の位置とから求める。
【0101】
ステップS303では、制御装置60は、ステップS302で取得した状態sがステップS300で設定した動作終了条件を充足するか否かを判定する。そして、状態sが動作終了条件を充足する場合は、本ルーチンを終了する。一方、状態sが動作終了条件を充足しない場合は、ステップS304へ移行する。
【0102】
ステップS304では、制御装置60は、ロボット10に対する仮の指令系列を生成する。本実施形態では、時系列ステップ数を3(t、t+1、t+2)とし、ステップS302で計測されたロボット10の状態sに対応する仮の指令系列a,at+1,at+2を生成する。なお、時系列ステップ数は3に限らず任意に設定することができる。なお、ループの1回目の処理では、ランダムに仮の指令系列a,at+1,at+2を生成する。ループの2回目以降の処理においては、報酬がより大きくなるように、例えばニュートン法を用いて仮の指令系列a,at+1,at+2を更新する。
【0103】
ステップS305では、制御装置60は、ロボット10の予測状態系列を生成する。すなわち、ステップS304で生成された仮の指令系列a,at+1,at+2に対応して特定されたダイナミクスモデルfを用いて予測状態系列を生成する。
【0104】
具体的には、状態s、指令aを複数のダイナミクスモデルf及びスイッチングモデルgに入力し、スイッチングモデルgが特定した状態s、指令aに適用するダイナミクスモデルfから出力された次状態st+1を取得する。なお、状態s、指令aをスイッチングモデルgに入力し、スイッチングモデルgが特定した状態s、指令aに適用するダイナミクスモデルfのみに状態s、指令aを入力して、次状態st+1を取得してもよい。これは以下の処理でも同様である。
【0105】
次に、状態st+1、指令at+1を複数のダイナミクスモデルf及びスイッチングモデルgに入力し、スイッチングモデルgが特定した状態st+1、指令at+1に適用するダイナミクスモデルfから出力された次状態st+2を取得する。
【0106】
次に、状態st+2、指令at+2を複数のダイナミクスモデルf及びスイッチングモデルgに入力し、スイッチングモデルgが特定した状態st+2、指令at+2に適用するダイナミクスモデルfから出力された次状態st+3を取得する。これにより、予測状態系列st+1、st+2、st+3が得られる。
【0107】
ステップS306では、制御装置60は、ステップS305で生成した予測状態系列st+1、st+2、st+3に対応する報酬を予め定めた算出式により算出する。
【0108】
ステップS307では、制御装置60は、ステップS306で算出した報酬が規定条件を充足するか否かを判定する。ここで、規定条件を充足する場合とは、例えば報酬が規定値を超えた場合、または、ステップS304~S307の処理のループを規定回数実行した場合等である。規定回数は、例えば10回、100回、1000回等に設定される。
【0109】
そして、報酬が規定条件を充足した場合はステップS308へ移行し、報酬が規定条件を充足していない場合はステップS304へ移行する。
【0110】
ステップS308では、制御装置60は、ステップS307で算出したロボット10の予測状態系列に対応する報酬に基づいて予測指令系列を生成する。なお、予測指令系列は、報酬が規定条件を充足したときの指令系列そのものでもよいし、指令系列の変化に対応する報酬の変化の履歴から予測される、更に報酬を最大化できる予測指令系列としてもよい。そして、生成した予測指令系列の最初の指令aをロボット10に出力する。
【0111】
このように、制御周期毎にステップS301~S308の処理を繰り返す。
【0112】
(制御処理2)
【0113】
図10は、制御処理の他の例として制御装置60が実行する制御処理2の流れを示すフローチャートである。なお、図9と同一の処理を行うステップには同一符号を付し、詳細な説明を省略する。
【0114】
図10に示すように、ステップS304A~S308Aの処理が図9に示す処理と異なる。
【0115】
ステップS304Aでは、制御装置60は、ロボット10に対する複数の仮の指令系列をまとめて生成する。複数の仮の指令系列の生成には、例えばクロスエントロピー法(cross-entropy method:CEM)を用いることができるが、これに限られるものではない。
【0116】
CEMの場合、ループの1回目は複数(例えば300個)の仮の指令系列a,at+1,at+2をランダムに生成する。ループの2回目以降は、前回の一連の処理において算出された報酬のうち予め定めた上位の報酬に対応する指令系列を複数(例えば30個)選択し、選択した指令系列の分布(平均、分散)に従って新たな複数(例えば300個)の指令系列を生成する。
【0117】
ステップS305Aでは、制御装置60は、ステップS304Aで生成した指令系列毎に予測状態系列を生成する。各指令系列に対応する予測状態系列の生成処理は、図9のステップS305と同様の処理である。
【0118】
ステップS306Aでは、制御装置60は、ステップS305Aで生成された予測状態系列毎に報酬を算出する。各予測状態系列の報酬を算出する処理は、ステップS306と同様の処理である。
【0119】
ステップS307Aでは、制御装置60は、ステップS304A~S306Aの処理を所定回数実行したか否かを判定する。所定回数は、例えば10回等とすることができるが、1回以上であれば任意に設定できる。
【0120】
ステップS308Aでは、制御装置60は、ステップS306Aで算出した予測状態系列毎の報酬に基づいて、報酬が最大化されると予測される予測指令系列を生成する。例えば、指令系列a,at+1,at+2と、当該指令系列a,at+1,at+2から得られる予測状態系列st+1、st+2、st+3の報酬との対応関係を表す関係式を算出し、算出した関係式によって表される曲線上における最大の報酬に対応する予測指令系列a,at+1,at+2を生成し、その最初の指令aを出力する。
【0121】
ところで、ステップS302で状態sが取得されてから指令動作aが決定され出力されるまでには図9又は図10に示した処理を実行するだけの時間が必要である。先に、「ダイナミクスモデルfは、ロボット10の状態s及び状態sでロボット10に指令した指令動作aを入力とし、ロボット10が指令動作aを行った後の次状態st+1を出力とするモデルである。」と説明したが、ここで状態sと指令動作aとは理論上は同時刻における値であるところ、現実には状態sを用いて指令動作aを算出するための処理時間の発生が避けられない。「状態sでロボット10に指令した指令動作a」という表現は、この処理時間がある場合を排除していない。実際の制御動作を理論上の動作に近づけるためには、制御周期の長さは、この処理時間に対して十分に大きいこと(例えば10倍以上であること)が好ましい。
【0122】
なお、上記実施形態は、本発明の構成例を例示的に説明するものに過ぎない。本発明は上記の具体的な形態には限定されることはなく、その技術的思想の範囲内で種々の変形が可能である。
【0123】
上記の例では、ロボット10が実行する一連の動作がジャグリング動作である場合を例に説明したが、ロボット10が実行する一連の動作は任意の動作であってよい。
【0124】
なお、上各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した学習処理及び制御処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、学習処理及び制御処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0125】
また、上記各実施形態では、学習プログラム及び制御プログラムがストレージ40D又はROM40Bに予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0126】
1 ロボットシステム
10 ロボット
11 アーム
12 ハンド
20 モデル
21 モデル選択部
g スイッチングモデル
30 状態観測センサ
40 学習及び制御装置
50 学習装置
51 状態遷移データ取得部
52 ダイナミクスモデル生成部
53 付与部
54 学習部
60 制御装置
61 状態取得部
62 仮指令系列生成部
63 特定部
64 予測状態系列生成部
65 算出部
66 予測指令系列生成部
67 出力部
68 実行制御部
BL ボール
f ダイナミクスモデル
g スイッチングモデル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10