JP2019175275A - 制御システム、制御装置、制御プログラム、学習データ作成方法、及び学習方法 - Google Patents

制御システム、制御装置、制御プログラム、学習データ作成方法、及び学習方法 Download PDF

Info

Publication number
JP2019175275A
JP2019175275A JP2018064777A JP2018064777A JP2019175275A JP 2019175275 A JP2019175275 A JP 2019175275A JP 2018064777 A JP2018064777 A JP 2018064777A JP 2018064777 A JP2018064777 A JP 2018064777A JP 2019175275 A JP2019175275 A JP 2019175275A
Authority
JP
Japan
Prior art keywords
control
learning
value
learned
control value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018064777A
Other languages
English (en)
Inventor
安藤 丹一
Tanichi Ando
丹一 安藤
光司 滝沢
Koji Takizawa
光司 滝沢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2018064777A priority Critical patent/JP2019175275A/ja
Publication of JP2019175275A publication Critical patent/JP2019175275A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Manipulator (AREA)
  • Steering Control In Accordance With Driving Conditions (AREA)
  • Feedback Control In General (AREA)

Abstract

【課題】機械学習により獲得した能力に基づいて制御対象装置を制御する際の安全性を確保する技術を提供する。【解決手段】本発明の一側面に係る制御装置は、制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第1の学習器の演算処理を実行することで、当該学習済みの第1の学習器から制御値を取得する第1演算部と、前記学習済みの第1の学習器から得られる前記制御値が、前記制御対象装置が安全に動作するための制限値を規定した安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正する能力を機械学習により獲得した学習済みの第2の学習器の演算処理を実行することで、当該学習済みの第2の学習器から出力を取得し、取得した出力に応じて前記制御値を補正する第2演算部と、補正された前記制御値に基づいて、前記制御対象装置の動作を制御する動作制御部と、を備える。【選択図】図6

Description

本発明は、制御システム、制御装置、制御プログラム、学習データ作成方法、及び学習方法に関する。
近年、対象の装置を制御する能力を獲得させるために、ディープラーニング等の機械学習が様々な場面で用いられている。例えば、特許文献1には、演算パラメータ及びハンドルの操作量の入力に応じて、外乱による車両の運動状態の変化を抑制する制御量を決定する能力を獲得したニューラルネットワークを備える車両運動制御装置が提案されている。
特開2006−160180号公報
上記のとおり、機械学習を利用すれば、制御対象装置を制御する能力を制御装置に獲得させることができる。しかしながら、本件発明者らは、制御対象装置を制御する能力を機械学習により獲得させた制御装置には次のような問題点が発生し得ることを見出した。
すなわち、制御対象装置を制御する能力を獲得するための機械学習には、当該制御対象装置を制御する様々の状況を想定して用意された学習データ(学習用データセット)が利用される。この学習データを利用した機械学習により、対象の制御装置は、想定された様々な状況に応じて制御対象装置を制御する能力を獲得することができる。しかしながら、制御対象装置に起き得るあらゆる状況を想定して学習データを用意できるとは限らない。機械学習に利用した学習データを収集する際に想定されていなかった事態に遭遇した場合には、当該制御装置が制御対象装置をどのように制御するかは不明であり、その事態に対して危険な動作を引き起こす可能性がある。例えば、制御装置は、突発的に動作を加速させたり、動作を急停止させる等のように、制御対象装置を利用する環境の安全性を害する動作を当該制御対象装置に実行させる可能性がある。また、例えば、制御装置は、制御対象装置の駆動限界を超える動作を実行させる等のように、制御対象装置自身の安全性を害する動作を当該制御対象装置に実行させる可能性がある。
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、機械学習により獲得した能力に基づいて制御対象装置を制御する際の安全性を確保する技術を提供することである。
本発明は、上述した課題を解決するために、以下の構成を採用する。
すなわち、本発明の一側面に係る制御システムは、制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第1の学習器の演算処理を実行することで、当該学習済みの第1の学習器から制御値を取得する演算部と、取得した制御値に基づいて、前記制御対象装置の動作を試験する動作試験部と、前記試験において、前記制御対象装置の動作が所定の安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正するための補正値を決定する補正値決定部と、前記学習済みの第1学習器から取得した制御値、及び前記制御値を前記補正値により補正することで得られる補正済みの制御値又は前記補正値を組み合わせることで、学習用データセットを作成する学習データ作成部と、前記学習用データセットの前記制御値を訓練データとして利用し、前記学習用データセットの前記補正済みの制御値又は前記補正値を教師データとして利用した機械学習を行うことで、前記学習済みの第1の学習器から得られる前記制御値が前記安全条件を満たさない場合に、前記安全条件を満たすように前記制御値を補正する能力を獲得した学習済みの第2の学習器を構築する学習処理部と、を備える。
当該構成に係る制御システムでは、学習済みの第1の学習器を用いることで、制御対象装置に所望の動作を実行させることができる。加えて、学習済みの第1の学習器から得られる制御値が安全条件を満たさない場合に、安全条件を満たすように制御値を補正する能力を獲得した学習済みの第2学習器を構築することができる。この学習済みの第2の学習器を用いることで、学習済みの第1の学習器から得られた制御値を、安全条件を満たすように補正することができ、これによって、制御対象装置の動作の安全性を確保することができる。したがって、当該構成によれば、機械学習により獲得した能力に基づいて制御対象装置を制御する際の安全性を確保することができる。
なお、制御対象装置は、コンピュータにより動作を制御可能な装置であれば特に限定されなくてもよく、例えば、車両、生産ラインにおける産業用ロボット、自律的に動作可能に構成された自律型ロボット、治療装置(例えば、ネブライザ)等であってよい。また、車両において制御する対象となる装置は、例えば、電動パワーステアリング装置等であってよい。「学習器」は、例えば、ニューラルネットワーク等の、機械学習により所定の推論を行う能力を獲得可能な学習モデルにより構成される。この学習器の種類は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。「学習済みの学習器」は、「識別器」又は「分類器」と称されてもよい。
また、本発明の一側面に係る制御装置は、制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第1の学習器の演算処理を実行することで、当該学習済みの第1の学習器から制御値を取得する第1演算部と、前記学習済みの第1の学習器から得られる前記制御値が、前記制御対象装置が安全に動作するための制限値を規定した安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正する能力を機械学習により獲得した学習済みの第2の学習器の演算処理を実行することで、当該学習済みの第2の学習器から出力を取得し、取得した出力に応じて前記制御値を補正する第2演算部と、補正された前記制御値に基づいて、前記制御対象装置の動作を制御する動作制御部と、を備える。当該構成によれば、機械学習により獲得した能力に基づいて制御対象装置を制御する際の安全性を確保することができる。
上記一側面に係る制御装置において、前記制御対象装置は、複数の要因に基づいて非線形に制御される装置であってよく、前記学習済みの第1の学習器は、前記複数の要因に対応する複数の値が入力されると、前記複数の要因に適応した前記制御値を出力するように構築されていてもよい。制御対象装置が非線形に制御される場合には、安全条件(制御値の制限値)も多様になり得る。当該構成によれば、このような安全条件が多様になり得る場合であっても、学習済みの第2の学習器を用いることによって、制御対象装置の動作の安全性を適切に確保することができる。
上記一側面に係る制御装置において、前記学習済みの第2の学習器は、前記複数の値の少なくとも一部及び前記制御値が入力されると、前記安全条件を満たすように前記制御値を補正するための補正値又は当該補正値により前記制御値を補正することで得られる補正済みの制御値を出力するように構築されていてもよい。当該構成によれば、制御対象装置の動作の安全性を適切に確保することができる。
上記一側面に係る制御装置において、前記第1の学習器及び前記第2の学習器はそれぞれ、ニューラルネットワークにより構成されてもよい。当該構成によれば、安全性を確保した上で制御対象装置の動作を制御する制御装置を簡易に実現することができる。
上記一側面に係る制御装置は、前記学習済みの第1の学習器から得られた前記制御値が前記安全条件を満たさない場合に、前記学習済みの第1の学習器から得られた前記制御値と、前記学習済みの第2の学習器からの出力に応じて得られた補正済みの制御値とを紐付けて記録する履歴作成部を更に備えてもよい。当該構成によれば、制御対象装置を安全条件に則って制御したことを示す履歴を残すことができる。
上記一側面に係る制御装置において、前記制御対象装置は、車両であってよく、前記動作制御部は、前記車両の動作を制御してもよい。当該構成によれば、機械学習により獲得した能力に基づいて車両の動作を制御する際の安全性を確保することができる。
上記一側面に係る制御装置において、前記制御対象装置は、生産ラインにおける産業用ロボットであってよく、前記動作制御部は、前記産業用ロボットの動作を制御してもよい。当該構成によれば、機械学習により獲得した能力に基づいて産業用ロボットの動作を制御する際の安全性を確保することができる。
上記一側面に係る制御装置において、前記制御対象装置は、自律的に動作可能に構成された自律型ロボットであってよく、前記動作制御部は、前記自律型ロボットの動作を制御してもよい。当該構成によれば、機械学習により獲得した能力に基づいて自律型ロボットの動作を制御する際の安全性を確保することができる。
なお、上記各形態に係る制御システム及び制御装置の別の形態として、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記録したコンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記録媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
例えば、本発明の一側面に係る制御プログラムは、コンピュータに、制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第1の学習器の演算処理を実行することで、当該学習済みの第1の学習器から制御値を取得するステップと、前記学習済みの第1の学習器から得られる前記制御値が、前記制御対象装置が安全に動作するための制限値を規定した安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正する能力を機械学習により獲得した学習済みの第2の学習器の演算処理を実行することで、当該学習済みの第2の学習器から出力を取得し、取得した出力に応じて前記制御値を補正するステップと、補正された前記制御値に基づいて、前記制御対象装置の動作を制御するステップと、を実行させるための、プログラムである。
また、本発明の一側面に係る学習データ作成方法は、コンピュータが、制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第1の学習器の演算処理を実行することで、当該学習済みの第1の学習器から制御値を取得するステップと、取得した制御値に基づいて、前記制御対象装置の動作を試験するステップと、前記試験において、前記制御対象装置の動作が所定の安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正するための補正値を決定するステップと、前記学習済みの第1学習器から取得した制御値、及び前記制御値を前記補正値により補正することで得られる補正済みの制御値又は前記補正値を組み合わせることで、学習用データセットを作成するステップと、を実行する情報処理方法である。当該構成によれば、上記制御対象装置の動作の安全性を確保するのに利用する第2の学習器を構築するための学習用データセットを収集することができる。
上記一側面に係る学習データ作成方法において、前記コンピュータは、所定の補正条件に従って前記補正値を決定してもよい。当該構成によれば、学習用データセットを自動的にかつ適切に作成することができる。
また、本発明の一側面に係る学習方法は、コンピュータが、上記いずれかの形態に係る学習データ作成方法により作成された前記学習用データセットを取得するステップと、取得した前記学習用データセットの前記制御値を訓練データとして利用し、取得した前記学習用データセットの前記補正済みの制御値又は前記補正値を教師データとして利用した機械学習を行うことで、前記学習済みの第1の学習器から得られる前記制御値が前記安全条件を満たさない場合に、前記安全条件を満たすように前記制御値を補正する能力を獲得した学習済みの第2の学習器を構築するステップと、を実行する、情報処理方法である。当該構成によれば、上記制御対象装置の動作の安全性を確保するのに利用する第2の学習器を構築することができる。
なお、上記各形態に係る学習データ作成方法及び学習方法の別の形態として、以上の各構成を実現する情報処理装置であってもよいし、プログラムであってもよいし、このようなプログラムを記録したコンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記録媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
本発明によれば、機械学習により獲得した能力に基づいて制御対象装置を制御する際の安全性を確保する技術を提供することができる。
図1は、実施の形態に係る制御装置及び学習装置の適用場面の一例を模式的に例示する。 図2は、実施の形態に係る制御装置のハードウェア構成の一例を模式的に例示する。 図3は、実施の形態に係るパワーステアリング装置のハードウェア構成の一例を模式的に例示する。 図4は、実施の形態に係るデータ収集用制御装置のハードウェア構成の一例を模式的に例示する。 図5は、実施の形態に係る学習装置のハードウェア構成の一例を模式的に例示する。 図6は、実施の形態に係る制御装置のソフトウェア構成の一例を模式的に例示する。 図7は、実施の形態に係るデータ収集用制御装置のソフトウェア構成の一例を模式的に例示する。 図8は、実施の形態に係る学習装置のソフトウェア構成の一例を模式的に例示する。 図9は、実施の形態に係る制御装置の処理手順の一例を例示する。 図10は、実施の形態に係るデータ収集用制御装置の処理手順の一例を例示する。 図11Aは、実施の形態に係る制御値の補正の一例を例示する。 図11Bは、実施の形態に係る制御値の補正の一例を例示する。 図11Cは、実施の形態に係る制御値の補正の一例を例示する。 図12は、実施の形態に係る学習装置の処理手順の一例を例示する。 図13は、制御装置の適用場面の他の例を模式的に例示する。 図14は、制御装置の適用場面の他の例を模式的に例示する。 図15は、変形例に係る制御装置の構成の一例を模式的に例示する。
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
§1 適用例
まず、図1を用いて、本発明が適用される場面の一例について説明する。図1は、車両の制御、特に、パワーステアリング装置の制御に本発明を適用した場面の一例を模式的に例示する。ただし、本発明の適用範囲は、以下で例示する車両の制御の例に限られる訳ではない。本発明は、コンピュータにより制御可能なあらゆる装置に適用可能である。
図1で例示される制御システム1000は、制御装置1、データ収集用制御装置3、及び学習装置4を備えており、パワーステアリング装置2の動作を制御するように構成される。制御装置1、データ収集用制御装置3、及び学習装置4は、互いにネットワークを介して接続されてよい。制御装置1、データ収集用制御装置3、及び学習装置4の間のネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
なお、図1の例では、制御装置1、データ収集用制御装置3、及び学習装置4は、別個のコンピュータである。しかしながら、制御システム1000の構成は、このような例に限定されなくてもよい。制御装置1、データ収集用制御装置3、及び学習装置4のうちの少なくともいずれかのペアは一体のコンピュータであってもよい。また、制御装置1、データ収集用制御装置3、及び学習装置4はそれぞれ複数台のコンピュータにより構成されてもよい。
本実施形態に係る制御装置1は、車両に搭載される情報処理装置であり、パワーステアリング装置2と共に、電動パワーステアリングシステム100を構成する。車両は、例えば、自動車である。車両の種類は、実施の形態に応じて適宜選択されてよい。制御装置1は、車両の動作、具体的には、パワーステアリング装置2の動作を制御するように構成される。パワーステアリング装置2は、本発明の「制御対象装置」の一例である。本実施形態では、制御装置1は、パワーステアリング装置2の制御に利用する学習済みの第1の学習器(後述する動作制御用ニューラルネットワーク5)を備えている。
制御装置1は、車速センサ20等から各種情報を取得し、取得した各種情報を学習済みの第1の学習器に入力する。車速センサ20は、車両の走行速度を測定可能に適宜構成されている。学習済みの第1の学習器は、パワーステアリング装置2の動作、詳細には、ステアリングホイール21のアシストを制御する能力を機械学習により予め獲得している。そのため、制御装置1は、学習済みの第1の学習器の演算処理を実行することで、各種情報により示される状況に適応したパワーステアリング装置2の動作を制御するための制御値を当該学習済みの第1の学習器から取得することができる。
この制御値が、パワーステアリング装置2が安全に動作するための制限値を規定した所定の安全条件を満たさない場合、パワーステアリング装置2は、ステアリングホイール21の操舵を全くアシストしなかったり、過剰にアシストしたりする等の危険な動作を行う可能性がある。そこで、制御装置1は、安全条件を満たすように制御値を補正する能力を機械学習により獲得した学習済みの第2の学習器(後述する安全制御用ニューラルネットワーク6)を備えている。制御装置1は、この第2の学習器を用いて、安全条件を満たすように制御値を補正する。
すなわち、学習済みの第1の学習器から得られる制御値が安全条件を満たさない場合に、制御装置1は、学習済みの第2の学習器に当該制御値を入力し、当該学習済みの第2の学習器の演算処理を実行することで、当該学習済みの第2の学習器から出力を取得する。そして、制御装置1は、学習済みの第2の学習器から取得した出力に応じて制御値を補正する。これにより、制御装置1は、安全条件を満たすように補正した制御値を得ることができる。制御装置1は、これにより得られた補正済みの制御値(以下、「補正済み制御値」とも記載する)に基づいて、パワーステアリング装置2の動作を制御する。
一方、本実施形態に係る学習装置4は、第2の学習器の機械学習を行うように構成された情報処理装置である。本実施形態では、学習装置4は、データ収集用の電動パワーステアリングシステム101を利用して、第2の学習器の機械学習に利用する学習データ(後述する学習用データセット323)を収集する。なお、データ収集用の電動パワーステアリングシステム101は、例えば、上記電動パワーステアリングシステム100を搭載した車両と同じタイプの異なる個体の車両に搭載される。このデータ収集用の電動パワーステアリングシステム101は、上記電動パワーステアリングシステム100とほぼ同様に構成され、データ収集用制御装置3、パワーステアリング装置2、及び車速センサ20を備える。
データ収集用制御装置3は、上記学習済みの第1の学習器を利用して、パワーステアリング装置2の動作を制御する。すなわち、データ収集用制御装置3は、車速センサ20等から各種情報を取得し、取得した各種情報を学習済みの第1の学習器に入力する。そして、データ収集用制御装置3は、学習済みの第1の学習器の演算処理を実行することで、各種情報により示される状況に適応したパワーステアリング装置2の動作を制御するための制御値を当該学習済みの第1の学習器から取得する。データ収集用制御装置3は、この学習済みの第1の学習器から取得した制御値に基づいて、パワーステアリング装置2の動作を試験する。すなわち、データ収集用制御装置3は、安全条件を考慮しない(学習済みの第2の学習器を利用しない)点で、上記制御装置1とは相違する。
この試験では、上記のとおり、パワーステアリング装置2の動作が上記安全条件を満たさない可能性があり得る。そこで、データ収集用制御装置3は、この試験において、パワーステアリング装置2の動作が安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正するための補正値を決定する。そして、データ収集用制御装置3は、学習済みの第1の学習器から取得した制御値、及び制御値を補正値により補正することで得られる補正済みの制御値又は当該補正値を組み合わせることで、学習用データセットを作成する。
学習装置4は、これにより作成された学習用データセットを取得し、取得した学習用データセットを利用して、第2の学習器の機械学習を行う。すなわち、学習装置4は、学習用データセットの制御値を訓練データ(入力データ)として利用し、学習用データセットの補正済みの制御値又は補正値を教師データとして利用した機械学習を行う。これにより、学習装置4は、学習済みの第1の学習器から得られる補正値が安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正する能力を獲得した学習済みの第2の学習器であって、上記制御装置1で利用可能な学習済みの第2の学習器を構築する。なお、制御装置1は、例えば、ネットワークを介して、学習装置4により構築された学習済みの第2の学習器を取得してもよい。また、制御装置1を製造する際に、学習済みの第2の学習器は、組み込みデータとして制御装置1に予め組み込まれてもよい。
以上のとおり、本実施形態に係る制御装置1は、学習済みの第1の学習器を利用することで、所望の動作を実行するようにパワーステアリング装置2を制御することができる。例えば、人が心地良いと考えるアシスト量を学習し、そのアシスト量をステアリングホイール21に与えることができる。加えて、学習済みの第1の学習器から得られる制御値が安全条件を満たさない場合には、学習済みの第2の学習器を利用して、当該安全条件を満たすように当該制御値を補正することができる。これにより、パワーステアリング装置2の動作の安全性を確保することができる。すなわち、本実施形態では、学習済みの第1の学習器及び第2の学習器を利用することで、例えば、人の感覚に合わせたアシスト量を与えつつ、安全性も両立したパワーステアリング装置2を提供することができる。したがって、本実施形態によれば、機械学習により獲得した能力に基づいてパワーステアリング装置2の動作を制御する際の安全性を確保することができる。
§2 構成例
[ハードウェア構成]
<制御装置>
次に、図2を用いて、本実施形態に係る制御装置1のハードウェア構成の一例について説明する。図2は、本実施形態に係る制御装置1のハードウェア構成の一例を模式的に例示する。
図2に示されるとおり、本実施形態に係る制御装置1は、制御部11、記憶部12、及び外部インタフェース13が電気的に接続されたコンピュータである。なお、図2では、外部インタフェースを「外部I/F」と記載している。
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、RAM、ROM等で構成される。本実施形態では、記憶部12は、制御プログラム121、動作制御学習結果データ122、安全制御学習結果データ123等の各種情報を記憶する。
制御プログラム121は、後述するパワーステアリング装置2の動作を制御する情報処理(図9)を制御装置1に実行させるためのプログラムであり、当該情報処理の一連の命令を含む。動作制御学習結果データ122は、パワーステアリング装置2の動作を制御する能力を獲得した学習済みの第1の学習器の設定を行うためのデータである。安全制御学習結果データ123は、学習済みの第1の学習器から得られる制御値が安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正する能力を獲得した学習済みの第2の学習器の設定を行うためのデータである。詳細は後述する。
外部インタフェース13は、外部装置と接続するためのインタフェースであり、接続する外部装置に応じて適宜構成される。本実施形態では、外部インタフェース13は、パワーステアリング装置2及び車速センサ20との接続に利用される。これにより、制御装置1は、外部インタフェース13を介して、車速センサ20から車両の速度情報を取得することができる。また、制御装置1は、外部インタフェース13を介して、パワーステアリング装置2の動作を制御することができる。
なお、制御装置1は、外部インタフェース13を介して、記憶媒体に記憶されたデータを読み込むためのドライブ装置、CAN(Controller Area Network)等に接続されてよい。この場合、制御装置1は、上記制御プログラム121、動作制御学習結果データ122及び安全制御学習結果データ123の少なくともいずれかをドライブ装置又はCANを介して取得してもよい。
また、ドライブ装置に接続される場合、上記制御プログラム121、動作制御学習結果データ122及び安全制御学習結果データ123の少なくともいずれかは、記憶媒体に記憶されていてもよい。記憶媒体は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。記憶媒体は、例えば、CD(Compact Disk)、DVD(Digital Versatile Disk)、フラッシュメモリ等である。
なお、制御装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、ECU(Electronic Control Unit)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。記憶部12は、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置で構成されてもよい。制御装置1は、通信インタフェースを更に備えることで、ネットワークを介して他の情報処理装置とデータのやりとりが可能に構成されてもよい。また、制御装置1には、提供されるサービス専用に設計された情報処理装置の他に、汎用のデスクトップPC(Personal Computer)、ノートPC、タブレットPC、スマートフォンを含む携帯電話等が用いられてよい。
<パワーステアリング装置>
次に、図3を用いて、本実施形態に係るパワーステアリング装置2の構成の一例について説明する。図3は、本実施形態に係るパワーステアリング装置2の構成の一例を模式的に例示する。図3に示すとおり、本実施形態に係るパワーステアリング装置2は、ステアリングホイール21、アシスト用モータ22、及びモータ駆動回路23を備える。
ステアリングホイール21は、車両の走行方向をドライバが操舵するのに利用される。ステアリングホイール21は、ステアリングシャフト(不図示)の一端に取り付けられており、ステアリングシャフトの他端にはピニオンギアを介してラックバー(不図示)が取り付けられている。そして、ラックバーの両端には、車輪が取り付けられている。これにより、ステアリングシャフトの回転運動をラックバーの左右方向の直線運動に変換することができ、ドライバは、ステアリングホイール21を回転操作することで、車輪の向きを変更し、車両を操舵することができる。
モータ駆動回路23は、制御装置1からの指令に基づいて駆動電流を発生させ、発生させた駆動電流によりアシスト用モータ22を駆動するように構成される。アシスト用モータ22は、例えば、ブラシレスモータで構成され、ステアリングホイール21に対して駆動電流に応じたトルクをアシスト力として出力する。これにより、ドライバは、比較的に小さな力で車両を操舵することができるようになる。
また、パワーステアリング装置2は、上記各構成要素の状態を監視するため、舵角センサ24、トルクセンサ25、温度センサ26、及び電流検出回路27を備えている。舵角センサ24は、ステアリングホイール21の舵角を検出するように構成されている。トルクセンサ25は、ステアリングホイール21の操舵トルクを検出するように構成されている。温度センサ26は、アシスト用モータ22の温度を検出するように構成されている。電流検出回路27は、モータ駆動回路23からアシスト用モータ22に与えられる駆動電流の大きさを検出するように構成される。各センサ24〜26及び電流検出回路27には公知のものを利用可能である。
<データ収集用制御装置>
次に、図4を用いて、本実施形態に係るデータ収集用制御装置3のハードウェア構成の一例について説明する。図4は、本実施形態に係るデータ収集用制御装置3のハードウェア構成の一例を模式的に例示する。
図4に示されるとおり、本実施形態に係るデータ収集用制御装置3は、上記制御装置1とほぼ同様の構成を有する。すなわち、本実施形態に係るデータ収集用制御装置3は、制御部31、記憶部32、及び外部インタフェース33が電気的に接続されたコンピュータである。なお、図4では、上記図2と同様に、外部インタフェースを「外部I/F」と記載している。
制御部31は、上記制御部11と同様に、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部32は、例えば、RAM、ROM等で構成される。本実施形態では、記憶部32は、データ収集用制御プログラム321、動作制御学習結果データ122、データ収集用制御プログラム321を実行することで作成した学習用データセット323等を記憶する。
データ収集用制御プログラム321は、データ収集用制御装置3に後述する学習データを収集する情報処理(図10)を実行させるためのプログラムであり、当該情報処理の一連の命令を含む。学習用データセット323は、第1の学習器から得られる制御値を入力すると、安全条件を満たすように制御値を補正するための補正値又は補正済み制御値を出力するように第2の学習器の機械学習を行うためのデータである。詳細は後述する。
外部インタフェース33は、上記外部インタフェース13と同様に、接続する外部装置に応じて適宜構成される。本実施形態では、データ収集用制御装置3は、外部インタフェース33を介してパワーステアリング装置2及び車速センサ20に接続する。また、データ収集用制御装置3は、外部インタフェース33を介して、ドライブ装置、CAN等に接続してもよい。更に、データ収集用制御装置3は、外部インタフェース33を介してマイクロフォンに接続することで、ドライバの音声を入力可能に構成されてもよい。
なお、データ収集用制御装置3の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部31は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、ECU等で構成されてもよい。記憶部32は、制御部31に含まれるRAM及びROMにより構成されてもよい。記憶部32は、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置で構成されてもよい。データ収集用制御装置3は、通信インタフェースを更に備えることで、ネットワークを介して他の情報処理装置とデータのやりとりが可能に構成されてもよい。また、データ収集用制御装置3には、提供されるサービス専用に設計された情報処理装置の他に、汎用のデスクトップPC、ノートPC、タブレットPC、スマートフォンを含む携帯電話等が用いられてよい。
<学習装置>
次に、図5を用いて、本実施形態に係る学習装置4のハードウェア構成の一例を説明する。図5は、本実施形態に係る学習装置4のハードウェア構成の一例を模式的に例示する。
図5に示されるとおり、本実施形態に係る学習装置4は、制御部41、記憶部42、通信インタフェース43、入力装置44、出力装置45、及びドライブ46が電気的に接続されたコンピュータである。なお、図5では、通信インタフェースを「通信I/F」と記載している。
制御部41は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部42は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部42は、制御部41により実行される学習プログラム421、第2の学習器の機械学習に利用する学習用データセット323、機械学習により構築された第2の学習器を示す安全制御学習結果データ123等を記憶する。学習プログラム421は、学習装置4に後述する機械学習の情報処理(図12)を実行させ、当該機械学習の結果として安全制御学習結果データ123を作成させるためのプログラムであり、当該情報処理の一連の命令を含む。
通信インタフェース43は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。入力装置44は、例えば、マウス、キーボード等の入力を行うための装置である。出力装置45は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。
ドライブ46は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ46の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記学習プログラム421及び/又は学習用データセット323は、この記憶媒体91に記憶されていてもよい。
記憶媒体91は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。学習装置4は、この記憶媒体91から、上記学習プログラム421及び/又は学習用データセット323を取得してもよい。
ここで、図5では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
なお、学習装置4の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部41は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、ECU等で構成されてよい。学習装置4は、複数台の情報処理装置で構成されてもよい。また、学習装置4には、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、PC等が用いられてもよい。
[ソフトウェア構成]
<制御装置>
次に、図6を用いて、本実施形態に係る制御装置1のソフトウェア構成の一例を説明する。図6は、本実施形態に係る制御装置1のソフトウェア構成の一例を模式的に例示する。
制御装置1の制御部11は、記憶部12に記憶された制御プログラム121をRAMに展開する。そして、制御部11は、RAMに展開された制御プログラム121をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図6に示されるとおり、本実施形態に係る制御装置1は、第1演算部111、第2演算部112、及び動作制御部をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部11(CPU)により実現される。
第1演算部111は、パワーステアリング装置2の動作を制御する能力を機械学習により獲得した学習済みの第1の学習器の演算処理を実行する。これにより、第1演算部111は、パワーステアリング装置2の動作の制御するための制御値を学習済みの第1の学習器から取得する。本実施形態では、第1の学習器(後述する動作制御用ニューラルネットワーク5)は、機械学習によって、車両の速度情報等の各種情報の入力に対して、当該入力により示される状況に適応したパワーステアリング装置2の動作(具体的には、ステアリングホイール21のアシスト)を制御する能力を獲得している。そのため、第1演算部111は、車速センサ20等から得られる各種情報を第1の学習器に入力し、第1の学習器の演算処理を実行することで、パワーステアリング装置2に対する制御値を当該第1の学習器から取得することができる。
第1の学習器の入力は、実施の形態に応じて適宜決定されてよい。本実施形態では、例えば、車両の速度(車速)を示す速度情報を車速センサ20から得ることができる。ステアリングホイール21の舵角を示す舵角情報を舵角センサ24から得ることができる。ステアリングホイール21の操舵トルクを示すトルク情報をトルクセンサ25から得ることができる。アシスト用モータ22の温度(以下、「モータ温度」とも記載する)を示す温度情報を温度センサ26から得ることができる。モータ駆動回路23からアシスト用モータ22に供給される駆動電流の大きさを示す電流情報を電流検出回路27から得ることができる。車速、舵角、操舵トルク、モータ温度、及び駆動電流は、本発明の「複数の要因」の一例である。パワーステアリング装置2は、これらの複数の要因に基づいて非線形に制御される装置であってよい。これに応じて、学習済みの第1の学習器は、複数の要因に対する複数の値が入力されると、当該複数の要因に適応した制御値を出力するように構築されてよい。なお、「複数の要因」は、制御対象装置(本実施形態では、パワーステアリング装置2)の動作に影響を与え得るパラメータに関するものであれば特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。制御対象装置の動作に影響を与えるパラメータとして、例えば、制御対象装置が動作する環境、制御対象装置に対する操作、制御対象装置の物理的状態等を挙げることができる。制御対象装置が動作する環境に関する情報として、例えば、制御対象装置の周囲における温度、湿度、明るさ、周囲の状況が写る画像、周囲で発生した音等を挙げることができる。制御対象装置に対する操作に関する情報として、例えば、ステアリングホイール21等の操作装置に対する操作量を示す操作情報を挙げることができる。制御対象装置の物理的状態に関する情報として、例えば、制御対象装置を構成する部材(例えば、アクチュエータ等)の温度、抵抗値、応答速度等を挙げることができる。なお、これらの情報は、対象の指標の値を間接的に示してもよい。例えば、温度情報は、対象の温度を直接的に示してもよいし、測定指標の数値(例えば、抵抗値)により温度を間接的に示してもよい。
第2演算部112は、学習済みの第1の学習器から得られる制御値が、パワーステアリング装置2が安全に動作するための制限値を規定した安全条件を満たさない場合に、第2の学習器を利用して、安全条件を満たすように制御値を補正する。第2の学習器は、学習済みの第1の学習器から得られる制御値が安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正する能力を機械学習により獲得している。そのため、第2演算部112は、学習済みの第1の学習器から得られる制御値を学習済みの第2の学習器に入力し、学習済みの第2の学習器の演算処理を実行する。これにより、第2演算部112は、当該学習済みの第2の学習器から出力を取得し、取得した出力に応じて制御値を補正する。動作制御部113は、補正された制御値に基づいて、パワーステアリング装置2の動作を制御する。
なお、学習済みの第2の学習器の入力は、実施の形態に応じて適宜決定されてよい。例えば、学習済みの第2の学習器は、学習済みの第1の学習器から得られる制御値のみの入力を受け付けるように構築されてもよい。また、例えば、学習済みの第1の学習器が、上記複数の要因に対応する複数の値の入力を受け付けるように構築される場合に、学習済みの第2の学習器は、当該複数の値の少なくとも一部、及び学習済みの第1の学習器から得られる制御値の入力を受け付けるように構築されてもよい。また、学習済みの第2の学習器の出力は、最終的に補正済みの制御値を取得可能であれば、実施の形態に応じて適宜決定されてよい。例えば、学習済みの第2の学習器は、安全条件を満たすように制御値を補正するための補正値、又は当該補正値により制御値を補正することで得られる補正済み制御値を出力するように構築されてよい。
(学習器)
次に、各学習器について説明する。図6に示されるとおり、各学習器は、ニューラルネットワークにより構成される。すなわち、本実施形態では、第1演算部111は、動作制御用ニューラルネットワーク5を含む。第2演算部112は、安全制御用ニューラルネットワーク6を含む。動作制御用ニューラルネットワーク5は、学習済みの第1の学習器の一例である。安全制御用ニューラルネットワーク6は、学習済みの第2の学習器の一例である。
まず、動作制御用ニューラルネットワーク5から説明する。動作制御用ニューラルネットワーク5は、いわゆる深層学習に用いられる多層構造のニューラルネットワークであり、入力から順に、入力層51、中間層(隠れ層)52、及び出力層53を備えている。なお、図6の例では、動作制御用ニューラルネットワーク5は、1層の中間層52を備えており、入力層51の出力が中間層52の入力となり、中間層52の出力が出力層53の入力となっている。ただし、中間層52の数は、1層に限られなくてもよく、動作制御用ニューラルネットワーク5は、2層以上の中間層52を備えてもよい。
各層51〜53は、1又は複数のニューロンを備えている。例えば、入力層51のニューロンの数は、入力に利用する情報の件数に応じて設定することができる。中間層52のニューロンの数は、実施の形態に応じて適宜設定することができる。また、出力層53のニューロンの数は、出力する制御値の種類数に応じて設定することができる。
隣接する層のニューロン同士は適宜結合され、各結合には重み(結合荷重)が設定されている。図6の例では、各ニューロンは、隣接する層の全てのニューロンと結合されているが、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。機械学習の結果に基づいて、各ニューロンには閾値が設定される。基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。
第1演算部111は、速度(車速)、舵角、操舵トルク、モータ温度、駆動電流等の各種情報を入力層51に入力し、動作制御用ニューラルネットワーク5の演算処理、すなわち、順伝搬の方向に各層51〜53に含まれる各ニューロンの発火判定を行う。これにより、第1演算部111は、パワーステアリング装置2の動作を制御するための制御値に対応する出力値を出力層53から取得することができる。
なお、このような動作制御用ニューラルネットワーク5の構成(例えば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数)、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、動作制御学習結果データ122に含まれている。第1演算部111は、動作制御学習結果データ122を参照することで、パワーステアリング装置2の動作を制御する能力を獲得している学習済みの動作制御用ニューラルネットワーク5の設定を行うことができる。
次に、安全制御用ニューラルネットワーク6について説明する。本実施形態では、安全制御用ニューラルネットワーク6も、上記動作制御用ニューラルネットワーク5と同様に、いわゆる深層学習に用いられる多層構造のニューラルネットワークであり、入力から順に、入力層61、中間層(隠れ層)62、及び出力層63を備えている。
中間層62の数、各層61〜63のニューロンの数、及び隣接する層のニューロンの結合は、実施の形態に応じて適宜設定されてよい。例えば、入力層61のニューロンの数は、入力される制御値及び情報の種類数に応じて設定することができる。また、出力層63のニューロンの数は、出力される補正値又は補正済みの制御値の種類数に応じて設定することができる。
第2演算部112は、動作制御用ニューラルネットワーク5から得られる制御値を入力層61に入力し、動作制御用ニューラルネットワーク5の演算処理、すなわち、順伝搬の方向に各層61〜63に含まれる各ニューロンの発火判定を行う。このとき、第2演算部112は、動作制御用ニューラルネットワーク5に入力した各種情報に対応する複数の値の少なくとも一部を入力層61に更に入力するようにしてもよい。これにより、第2演算部112は、補正済みの制御値又は補正値に対応する出力値を出力層63から取得することができる。
なお、このような安全制御用ニューラルネットワーク6の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、安全制御学習結果データ123に含まれている。第2演算部112は、安全制御学習結果データ123を参照することで、動作制御用ニューラルネットワーク5から得られる制御値が安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正する能力を獲得している学習済みの安全制御用ニューラルネットワーク6の設定を行うことができる。
<データ収集用制御装置>
次に、図7を用いて、本実施形態に係るデータ収集用制御装置3のソフトウェア構成の一例を説明する。図7は、本実施形態に係るデータ収集用制御装置3のソフトウェア構成の一例を模式的に例示する。
データ収集用制御装置3の制御部31は、記憶部32に記憶されたデータ収集用制御プログラム321をRAMに展開する。そして、制御部31は、RAMに展開されたデータ収集用制御プログラム321をCPUにより解釈及び実行して、各構成要素を制御する。これにより、図7に示されるとおり、本実施形態に係るデータ収集用制御装置3は、演算部311、動作試験部312、補正値決定部313、及び学習データ作成部314をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部31(CPU)により実現される。
演算部311は、動作制御用ニューラルネットワーク5を含んでおり、上記制御装置1の第1演算部111と同様に動作する。すなわち、演算部311は、動作制御学習結果データ122を参照することで、学習済みの動作制御用ニューラルネットワーク5の設定を行う。次に、演算部311は、パワーステアリング装置2及び車速センサ20から各種情報を取得し、動作制御用ニューラルネットワーク5の入力層51に取得した各種情報を入力する。そして、演算部311は、動作制御用ニューラルネットワーク5の演算処理、すなわち、順伝搬の方向に各層51〜53に含まれる各ニューロンの発火判定を行う。これにより、演算部311は、パワーステアリング装置2の動作を制御するための制御値に対応する出力値を出力層53から取得する。動作試験部312は、これにより取得される制御値に基づいて、パワーステアリング装置2の動作を試験する。
この試験において、パワーステアリング装置2の動作が上記所定の安全条件を満たさない場合、補正値決定部313は、当該安全条件を満たすように制御値を補正するための補正値を決定する。そして、学習データ作成部314は、動作制御用ニューラルネットワーク5から取得した制御値、及び制御値を補正値により補正することで得られる補正済みの制御値又は補正値を組み合わせることで、安全制御用ニューラルネットワーク6を構築するための学習用データセット323を作成する。
<学習装置>
次に、図8を用いて、本実施形態に係る学習装置4のソフトウェア構成の一例を説明する。図8は、本実施形態に係る学習装置4のソフトウェア構成の一例を模式的に例示する。
学習装置4の制御部41は、記憶部42に記憶された学習プログラム421をRAMに展開する。そして、制御部41は、RAMに展開された学習プログラム421をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図8に示されるとおり、本実施形態に係る学習装置4は、学習データ取得部411及び学習処理部412をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部41(CPU)により実現される。
学習データ取得部411は、上記により作成された学習用データセット323を取得する。学習処理部412は、取得した学習用データセット323を利用して、第2の学習器の機械学習を行う。すなわち、学習処理部412は、学習用データセット323の制御値を訓練データ(入力データ)として利用し、学習用データセット323の補正済みの制御値又は補正値を教師データ(正解データ)として利用した機械学習を行う。これにより、学習処理部412は、動作制御用ニューラルネットワーク5から得られた制御値が安全条件を満たさない場合に、安全条件を満たすように制御値を補正する能力を獲得した学習済みの第2の学習器を構築する。具体的には、学習処理部412は、動作制御用ニューラルネットワーク5から得られた制御値を入力すると、安全条件を満たした補正済みの制御値、又は安全条件を満たすように制御値を補正するための補正値を出力する第2の学習器を構築する。
図8に示されるとおり、本実施形態において、学習対象となる学習器は、ニューラルネットワーク7である。ニューラルネットワーク7は、上記安全制御用ニューラルネットワーク6と同様に構成される。すなわち、ニューラルネットワーク7は、入力層71、中間層(隠れ層)72、及び出力層73を備える。各層71〜73は、上記各層61〜63と同様に構成される。
学習処理部412は、ニューラルネットワークの学習処理により、学習用データセット323の制御値を入力層71に入力されると、対応する補正済み制御値又は補正値に対応する出力値を出力層73から出力するようにニューラルネットワーク7の機械学習を行う。これにより、学習済みの安全制御用ニューラルネットワーク6が構築される。そして、学習処理部412は、学習後のニューラルネットワーク7(すなわち、学習済みの安全制御用ニューラルネットワーク6)の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を安全制御学習結果データ123として記憶部42に格納する。
<その他>
制御装置1、データ収集用制御装置3、及び学習装置4の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、制御装置1、データ収集用制御装置3、及び学習装置4の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、制御装置1、データ収集用制御装置3、及び学習装置4それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
§3 動作例
[制御装置]
次に、図9を用いて、制御装置1の動作例を説明する。図9は、制御装置1の処理手順の一例を例示するフローチャートである。なお、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(起動)
まず、ドライバ(利用者)は、車両のエンジンを始動させる等により、制御装置1を起動する。起動した制御装置1は、制御プログラム121を読み込んで、初期設定の処理を実行する。具体的には、制御部11は、動作制御学習結果データ122を参照して、動作制御用ニューラルネットワーク5の構造、各ニューロン間の結合の重み及び各ニューロンの閾値の設定を行う。同様に、制御部11は、安全制御学習結果データ123を参照して、安全制御用ニューラルネットワーク6の構造、各ニューロン間の結合の重み及び各ニューロンの閾値の設定を行う。そして、制御部11は、以下の処理手順に従って、パワーステアリング装置2の動作を制御する。
(ステップS101)
ステップS101では、制御部11は、第1演算部111として動作し、動作制御用ニューラルネットワーク5に入力するための各種情報を取得する。本実施形態では、制御部11は、各種情報として、車速センサ20から車両の速度(車速)を示す速度情報を取得する。また、制御部11は、パワーステアリング装置2の舵角センサ24、トルクセンサ25、温度センサ26、及び電流検出回路27から、ステアリングホイール21の舵角、操舵トルク、モータ温度、及び駆動電流を示す情報を取得する。各種情報を取得すると、制御部11は、次のステップS102に処理を進める。
(ステップS102)
ステップS102では、制御部11は、第1演算部111として動作し、パワーステアリング装置2の動作を決定する要因となる各種情報を動作制御用ニューラルネットワーク5に入力し、動作制御用ニューラルネットワーク5の演算処理を実行する。これにより、制御部11は、各要因に適応した制御値に対応する出力値を動作制御用ニューラルネットワーク5から取得する。
本実施形態では、上記ステップS101で取得した、車速、舵角、操舵トルク、モータ温度、及び駆動電流の値が、パワーステアリング装置2の動作を決定する要因となる情報として利用可能である。そこで、動作制御用ニューラルネットワーク5は、車速、舵角、操舵トルク、モータ温度、及び駆動電流の各値を入力すると、これらの各値に応じた所望のアシスト力を指示する制御値に対応する出力値を出力するように構築されてよい。このような動作制御用ニューラルネットワーク5は、車速等の各値を訓練データ(入力データ)に利用し、所望のアシスト力を指示する制御値を教師データ(正解データ)に利用した機械学習により生成することができる。動作制御用ニューラルネットワーク5の機械学習は、後述する安全制御用ニューラルネットワーク6と同様の方法により実施することができる。
これに応じて、制御部11は、制御部11は、車速、舵角、操舵トルク、モータ温度、及び駆動電流の各値を、動作制御用ニューラルネットワーク5の入力層51に含まれる各ニューロンに入力する。入力となる各値と入力層51の各ニューロンとの対応関係は、実施の形態に応じて適宜設定されてよい。次に、制御部11は、動作制御用ニューラルネットワーク5の演算処理を行う。すなわち、制御部11は、順伝搬の方向に各層51〜53に含まれる各ニューロンの発火判定を行う。これにより、制御部11は、パワーステアリング装置2に対する制御値に対応する出力値を動作制御用ニューラルネットワーク5の出力層53から取得する。制御値を取得すると、制御部11は、次のステップS103に処理を進める。
ただし、動作制御用ニューラルネットワーク5の入力は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、動作制御用ニューラルネットワーク5の入力から、車速、舵角、操舵トルク、モータ温度、及び駆動電流の少なくともいずれかは省略されてもよい。
また、動作制御用ニューラルネットワーク5の出力形式は、実施の形態に応じて適宜設定されてよい。動作制御用ニューラルネットワーク5から得られる出力値は、パワーステアリング装置2に対する制御値そのものであってもよいし、制御値を取得するためのインデックス(クラス)であってもよい。動作制御用ニューラルネットワーク5から得られる出力値がインデックス(クラス)を示す場合、記憶部12は、出力値と制御値との対応関係を示すテーブル形式等の参照情報(不図示)を記憶していてもよい。制御部11は、動作制御用ニューラルネットワーク5から得られる出力値をこの参照情報に照合することで、パワーステアリング装置2に対する制御値を取得することができる。
(ステップS103)
ステップS103では、制御部11は、第2演算部112として動作し、上記動作制御用ニューラルネットワーク5から得られた制御値を安全制御用ニューラルネットワーク6の入力層61に入力する。そして、制御部11は、安全制御用ニューラルネットワーク6の演算処理を実行する。すなわち、制御部11は、順伝搬の方向に各層61〜63に含まれる各ニューロンの発火判定を行う。これにより、制御部11は、安全条件を満たした補正済み制御値、又は安全条件を満たすように制御値を補正するための補正値に対応する出力値を取得する。補正値を取得した場合には、制御部11は、取得した補正値により制御値を補正することで、補正済み制御値を取得する。本実施形態では、これらの一連の処理によって、上記動作制御用ニューラルネットワーク5から得た制御値が安全条件を満たさない場合に、安全制御用ニューラルネットワーク6から取得した出力に応じて、当該安全条件を満たすように制御値を補正することができる。補正済みの制御値を取得すると、制御部11は、次のステップS104に処理を進める。
ここで、本ステップS103では、制御部11は、ステップS102で取得した制御値が安全条件を満たすか否かを区別せずに、安全制御用ニューラルネットワーク6にステップS102で取得した制御値を入力している。つまり、上記動作制御用ニューラルネットワーク5から得た制御値が安全条件を満たす場合にも、制御部11は、安全制御用ニューラルネットワーク6に当該制御値を入力している。
そのため、安全制御用ニューラルネットワーク6は、上記動作制御用ニューラルネットワーク5から得た制御値が安全条件を満たす場合にも、当該制御値を補正するように構築されてもよい。つまり、安全制御用ニューラルネットワーク6は、後述する機械学習により、安全条件を満たす制御値については補正しないように構築されていてもよいし、安全条件を満たさない制御値と同様に安全条件を満たす制御値も補正するように構築されていてもよい。なお、以下では、安全条件を満たす制御値を補正しないように安全制御用ニューラルネットワーク6を構築した場合に、当該安全制御用ニューラルネットワーク6から得られる制御値も「補正済みの制御値(補正済み制御値)」と称する。
なお、安全制御用ニューラルネットワーク6は、動作制御用ニューラルネットワーク5に入力される複数の要因に対応する複数の値の少なくとも一部、及び動作制御用ニューラルネットワーク5から得られた制御値の入力を受け付けるように構築されていてもよい。この場合、制御部11は、ステップS101で取得した各種情報に対応する各値の少なくとも一部及びステップS102で取得した制御値を安全制御用ニューラルネットワーク6に入力して、安全制御用ニューラルネットワーク6の演算処理を実行する。
また、安全制御用ニューラルネットワーク6の出力形式は、上記動作制御用ニューラルネットワーク5と同様に、実施の形態に応じて適宜設定されてよい。安全制御用ニューラルネットワーク6から得られる出力値は、補正済み制御値又は補正値そのものであってもよいし、補正済み制御値又は補正値を取得するためのインデックス(クラス)であってもよい。安全制御用ニューラルネットワーク6から得られる出力値がインデックス(クラス)を示す場合、記憶部12は、出力値と補正済み制御値又は補正値との対応関係を示すテーブル形式等の参照情報(不図示)を記憶していてもよい。制御部11は、安全制御用ニューラルネットワーク6から得られる出力値をこの参照情報に照合することで、補正済み制御値又は補正値を取得することができる。
(ステップS104)
次のステップS104では、制御部11は、動作制御部113として動作し、上記ステップS103により補正された制御値(補正済み制御値)に基づいて、パワーステアリング装置2の動作を制御する。
制御値の形式は、実施の形態に応じて適宜決定されてよい。制御値は、例えば、アシスト力の方向及び大きさを規定していてもよい。この場合、制御部11は、ステップS103により取得した補正済み制御値をパワーステアリング装置2のモータ駆動回路23に通知する。モータ駆動回路23は、受け取った補正済み制御値に応じた駆動電流を生成し、生成した駆動電流によりアシスト用モータ22を駆動する。これにより、パワーステアリング装置2は、補正済み制御値に応じたアシスト力でステアリングホイール21の操舵をアシストするように制御される。
以上により、制御部11は、本動作例に係る処理を終了する。制御部11は、車両が走行している間、以上のステップS101〜S104の処理を繰り返し実行してよい。これにより、制御装置1は、パワーステアリング装置2が車両の走行中に継続的にステアリングホイール21の操舵をアシストするように制御することができる。
[データ収集用制御装置]
次に、図10を用いて、データ収集用制御装置3の動作例を説明する。図10は、データ収集用制御装置3の処理手順の一例を例示するフローチャートである。なお、以下で説明する処理手順は、本発明の「学習データ作成方法」の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(起動)
上記制御装置1と同様に、ドライバ(利用者)は、車両のエンジンを始動させる等により、データ収集用制御装置3を起動する。起動したデータ収集用制御装置3は、データ収集用制御プログラム321を読み込んで、初期設定の処理を実行する。具体的には、制御部31は、動作制御学習結果データ122を参照して、動作制御用ニューラルネットワーク5の構造、各ニューロン間の結合の重み及び各ニューロンの閾値の設定を行う。そして、制御部31は、以下の処理手順に従って、安全制御用ニューラルネットワーク6を構築するための学習用データセット323を作成する。
(ステップS201)
ステップS201では、制御部31は、演算部311として動作し、上記ステップS101と同様に、動作制御用ニューラルネットワーク5に入力するための各種情報を取得する。本実施形態では、制御部31は、車速センサ20から車速の情報を取得する。また、制御部31は、パワーステアリング装置2の舵角センサ24、トルクセンサ25、温度センサ26、及び電流検出回路27から、ステアリングホイール21の舵角、操舵トルク、モータ温度、及び駆動電流の情報を取得する。各種情報を取得すると、制御部31は、次のステップS202に処理を進める。
(ステップS202)
ステップS202では、制御部31は、演算部311として動作し、上記ステップS102と同様に、動作制御用ニューラルネットワーク5の演算処理を実行する。本実施形態では、制御部31は、ステップS201で取得した車速、舵角、操舵トルク、モータ温度、及び駆動電流の各値を、動作制御用ニューラルネットワーク5の入力層51に含まれる各ニューロンに入力する。そして、制御部31は、順伝搬の方向に各層51〜53に含まれる各ニューロンの発火判定を行う。これにより、制御部31は、パワーステアリング装置2に対する制御値に対応する出力値を動作制御用ニューラルネットワーク5の出力層53から取得する。制御値を取得すると、制御部31は、次のステップS203に処理を進める。
(ステップS203)
ステップS203では、制御部31は、動作試験部312として動作し、上記ステップS202において動作制御用ニューラルネットワーク5から取得した制御値に基づいて、パワーステアリング装置2の動作を試験する。本実施形態では、制御部31は、動作制御用ニューラルネットワーク5から取得した制御値をパワーステアリング装置2のモータ駆動回路23に通知する。モータ駆動回路23は、受け取った制御値に応じた駆動電流を生成し、生成した駆動電流によりアシスト用モータ22を駆動する。これにより、パワーステアリング装置2は、動作制御用ニューラルネットワーク5から得られる制御値に応じたアシスト力でステアリングホイール21の操舵をアシストするように制御される。なお、この試験は、シミュレーションで行われてもよい。パワーステアリング装置2の動作を試験すると、制御部31は、次のステップS204に処理を進める。
(ステップS204)
ステップS204では、制御部31は、ステップS203で試験したパワーステアリング装置2の動作が安全条件を満たすか否かを判定する。そして、パワーステアリング装置2の動作が安全条件を満たさないと判定した場合には、制御部31は、次のステップS205に処理を進める。一方、パワーステアリング装置2の動作が安全条件を満たすと判定した場合には、次のステップS205及びS206の処理を省略して、本動作例に係る処理を終了する。
パワーステアリング装置2の動作が安全条件を満たすか否かを判定する方法は、実施の形態に応じて適宜決定されてよい。例えば、パワーステアリング装置2が安全に動作するための制限値として、制御値の上限値及び下限値が設定されていてもよい。この場合、制御部31は、パワーステアリング装置2に対する制御値が当該上限値及び下限値で定められる数値範囲に含まれるか否かによって、パワーステアリング装置2の動作が安全条件を満たすか否かを判定してもよい。
また、例えば、制御値が制限値を満たすか否かの判定をドライバの官能評価により行ってもよい。すなわち、制御部31は、パワーステアリング装置2の動作が安全条件を満たすか否かの回答をドライバから受け付けて、受け付けた回答に基づいて、本ステップS204の判定処理を行ってもよい。この場合、データ収集用制御装置3は、外部インタフェース33を介してキーボード、マイクロフォン等の入力装置に接続していてもよい。これにより、オペレータ(ドライバ又は同行者)は、キーボード入力、音声入力等により、パワーステアリング装置2の動作が安全条件を満たすか否かの回答を行うことができる。
なお、本実施形態では、安全条件により規定される制限値は、パワーステアリング装置2のアシスト力を制限する。この制限値は、複数の要因に基づいて非線形に変更されてよい。例えば、操舵トルクの増大に応じて、制限値は大きくなってもよい。モータ温度が所定値を超えた場合に、制限値は小さくなる又はゼロになってもよい。車速が低速である場合に制限値は大きくなり、車速が高速である場合に制限値は小さくなってもよい。また、例えば、路面の摩擦係数を測定可能なセンサが車両に搭載され、データ収集用制御装置3が当該センサの測定結果を取得可能な場合には、路面の摩擦係数の増大に応じて、制限値は大きくなってもよい。本実施形態に係るパワーステアリング装置2は、複数の要因に基づいて非線形に制御される装置の一例である。
(ステップS205)
次のステップS205では、制御部31は、補正値決定部313として動作し、上記安全条件を満たすように制御値を補正するための補正値を決定する。
例えば、図11A〜図11Cに示されるとおり、制御部31は、所定の補正条件に従って補正値を決定してもよい。図11A〜図11Cは、所定の補正条件に従って補正値を決定する方法の一例を示す。
図11Aに示される補正条件は、制御値が制限値を超えた場合に、制御値を制限値に一致させることである。この場合、制御部31は、制御値が制限値を超えた場合に、制御値が制限値と同じ値になるように補正値を決定する。すなわち、制御部31は、制御値と制限値との差を補正値に設定する。
また、図11Bに示される補正条件は、制御値が制限値を超えた場合に、制御値を制限値よりも小さい値にすることである。この場合、制御部31は、制御値が制限値を超えた場合に、制限値より小さい所定の値に制御値がなるように補正値を決定する。すなわち、制御部31は、制限値より小さい所定の値と制御値との差を補正値に設定する。
また、図11Cに示される補正条件は、制御値が制限値に近付いた場合に、制限値を超えないように制御値の増加を抑えることである。この場合、制御部31は、制御値が制限値に近付くにつれて、制御値が増加し難くなるように補正値を決定する。すなわち、制御部31は、制御値に適用する係数を補正値に設定する。
ただし、補正値を決定する方法は、これらに限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部31は、補正値又は補正値の示唆についての入力をオペレータ(ドライバ又は同行者)から受け付けてもよい。そして、制御部31は、オペレータからの入力に基づいて補正値を決定してもよい。この場合、データ収集用制御装置3は、外部インタフェース33を介してキーボード、マイクロフォン等の入力装置に接続していてもよい。これにより、オペレータは、キーボード入力、音声入力等により、補正値又は補正値の示唆を入力することができる。なお、補正値の示唆とは、例えば、制御値を小さくする、補正値を大きくする等の制御値を補正する方向を示す回答である。制御部31は、このような回答に基づいて、補正値を適宜決定してよい。補正値を決定すると、制御部31は、次のステップS206に処理を進める。
(ステップS206)
ステップS206では、制御部31は、学習データ作成部314として動作し、動作制御用ニューラルネットワーク5から取得した制御値、及び上記ステップS205で決定した補正値により当該制御値を補正することで得られる補正済みの制御値又は当該補正値を組み合わせる。これにより、制御部31は、学習用データセット323を作成する。そして、制御部31は、作成した学習用データセット323を記憶部32に保存する。
以上により、制御部31は、本動作例に係る処理を終了する。制御部31は、車両が走行している間、以上のステップS201〜S206の処理を繰り返し実行してよい。これにより、データ収集用制御装置3は、複数件の学習用データセット323を収集することができる。
なお、安全条件を満たす制御値は補正しないように安全制御用ニューラルネットワーク6を学習させる場合には、制御部31は、ステップS204でパワーステアリング装置2の動作が安全条件を満たすと判定した際の制御値を訓練データ及び教師データとして利用可能な学習用データセット323を作成してもよい。あるいは、制御部31は、ステップS204でパワーステアリング装置2の動作が安全条件を満たすと判定した際の制御値と、補正しないことを示す値とを組み合わせることで、学習用データセット323を作成してもよい。
一方、安全条件を満たす制御値も補正するように安全制御用ニューラルネットワーク6を学習させる場合には、制御部31は、ステップS204の判定処理を省略して、制御値が安全条件を満たすときにも、ステップS205により制御値に対する補正値を決定してもよい。この場合、例えば、制御部31は、ドライバからの回答を受け付けて、ドライバの感覚に適合する制御値が得られるように補正値を決定してもよい。これにより、動作制御用ニューラルネットワーク5から得られる制御値を入力すると、ドライバの感覚に適合するアシスト力を指示する補正済みの制御値又は補正値に対応する出力値を出力する能力を獲得するための機械学習に利用可能な学習用データセット323を作成することができる。
[学習装置]
次に、図12を用いて、学習装置4の動作例を説明する。図12は、学習装置4の処理手順の一例を例示するフローチャートである。なお、以下で説明する処理手順は、本発明の「学習方法」の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS301)
ステップS301では、制御部41は、学習データ取得部411として動作し、上記データ収集用制御装置3により作成された学習用データセット323を取得する。
データ収集用制御装置3により作成した学習用データセット323を学習装置4に転送する方法は、実施の形態に応じて適宜選択されてよい。例えば、学習装置4とデータ収集用制御装置3とがネットワークを介して接続している場合には、制御部41は、ネットワークを介してデータ収集用制御装置3にアクセスすることで、学習用データセット323を取得してもよい。また、例えば、データ収集用制御装置3で作成された学習用データセット323は、NAS(Network Attached Storage)等のその他の情報処理装置(記憶装置)に格納されていてもよい。この場合、制御部41は、当該その他の情報処理装置にアクセスすることで、学習用データセット323を取得してもよい。また、例えば、データ収集用制御装置3で作成された学習用データセット323は、記憶媒体91に格納されていてもよい。この場合、制御部41は、ドライブ46を介して記憶媒体91から学習用データセット323を取得してもよい。なお、本ステップS301で取得する学習用データセット323の件数は、ニューラルネットワーク7の学習を行うことができるように、実施の形態に応じて適宜決定されてよい。
(ステップS302)
次のステップS302では、制御部41は、学習処理部412として動作し、ステップS301で取得した学習用データセット323を利用した機械学習を行う。すなわち、制御部41は、学習用データセット323の制御値を訓練データ(入力データ)として利用し、学習用データセットの補正済みの制御値又は補正値を教師データ(正解データ)として利用した機械学習を行う。これにより、制御部41は、学習済みの動作制御用ニューラルネットワーク5から得られる制御値が安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正する能力を獲得した学習済みの安全制御用ニューラルネットワーク6を構築する。
具体的には、まず、制御部41は、学習処理を行う対象となるニューラルネットワーク7を用意する。用意するニューラルネットワーク7の構成、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部41は、再学習を行う対象となる安全制御学習結果データ123に基づいて、ニューラルネットワーク7を用意してもよい。
次に、制御部41は、ステップS301で取得した学習用データセット323に含まれる制御値を訓練データ(入力データ)として利用し、補正済みの制御値又は補正値を教師データ(正解データ)として利用して、ニューラルネットワーク7の機械学習を行う。このニューラルネットワーク7の学習には、勾配降下法、確率的勾配降下法等が用いられてよい。
例えば、制御部41は、学習用データセット323に含まれる制御値を入力層71に入力して、ニューラルネットワーク7の順伝播方向の演算処理を行う。これにより、制御部41は、ニューラルネットワーク7の出力層73から出力値を得る。次に、制御部41は、出力層73から出力された出力値と学習用データセット323に含まれる補正済みの制御値又は補正値に対応する値との誤差を算出する。続いて、制御部41は、誤差逆伝搬法により、算出した出力値の誤差を用いて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。そして、制御部41は、算出した各誤差に基づいて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。
制御部41は、各件の学習用データセット323について、出力層73から出力される出力値が、入力した制御値に関連付けられた補正済みの制御値又は補正値に対応する値と一致するまでこの一連の処理を繰り返す。これにより、制御部41は、動作制御用ニューラルネットワーク5から得られる制御値を入力すると、安全条件を満たした補正済みの制御値又は補正値に対応する出力値を出力するニューラルネットワーク7(すなわち、学習済みの安全制御用ニューラルネットワーク6)を構築することができる。
(ステップS303)
次のステップS303では、制御部41は、学習処理部412として動作して、機械学習後のニューラルネットワーク7(すなわち、学習済みの安全制御用ニューラルネットワーク6)の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を安全制御学習結果データ123として記憶部42に格納する。これにより、制御部41は、本動作例に係る学習処理を終了する。
なお、学習装置4と制御装置1とがネットワークを介して接続可能な場合、制御部41は、上記ステップS303の処理が完了した後に、作成した安全制御学習結果データ123を制御装置1に適宜転送してもよい。また、制御部41は、上記ステップS301〜S303の学習処理を定期的に実行することで、安全制御学習結果データ123を定期的に更新してもよい。そして、制御部41は、作成した安全制御学習結果データ123を当該学習処理の実行毎に制御装置1に転送することで、制御装置1の保持する安全制御学習結果データ123を定期的に更新してもよい。
[特徴]
以上のように、本実施形態では、動作制御用ニューラルネットワーク5によって、所望の動作を実行するようにパワーステアリング装置2を制御することができる。ただし、学習時に想定していない事態に遭遇する等の不測の事態が生じた場合には、動作制御用ニューラルネットワーク5から得られる制御値が安全条件を満たさない可能性がある。これに対して、本実施形態では、動作制御用ニューラルネットワーク5から得られる制御値を、上記ステップS103の処理により、安全条件を満たすように補正することができる。したがって、本実施形態によれば、機械学習により獲得した能力に基づいてパワーステアリング装置2を制御する際の安全性を確保することができる。
また、製造時にあらゆる事態を想定して、動作制御用ニューラルネットワーク5を構築するのは困難である。これに対して、本実施形態では、パワーステアリング装置2の一応の動作を決定する動作制御用ニューラルネットワーク5とパワーステアリング装置2の安全性を確保する安全制御用ニューラルネットワーク6とに分けられている。これにより、パワーステアリング装置2を動作制御用ニューラルネットワーク5で運用しながら、安全条件を満たさない未知の事象に対して学習用データセットを収集して、安全制御用ニューラルネットワーク6の保証する安全性を高めていくことができる。
また、本実施形態では、上記ステップS103において、安全条件を満たすように制御値を補正するのにニューラルネットワーク(安全制御用ニューラルネットワーク6)を用いている。そのため、車速、舵角、操舵トルク、モータ温度、駆動電流等の複数の要因に基づいて非線形に制御されるパワーステアリング装置2であっても、安全条件を満たすような制御値の補正を容易に実現することができる。
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
<4.1>
上記実施形態では、パワーステアリング装置2の動作を制御する場面を例示している。しかしながら、制御装置1により制御される車両の動作は、パワーステアリング装置2の動作に限定されなくてもよく、例えば、アクセル操作、ブレーキ操作等のその他の動作であってもよい。
また、上記実施形態では、制御対象装置の一例として車両(パワーステアリング装置2)を例示している。しかしながら、制御対象装置は、車両に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。制御対象装置は、車両の他、例えば、生産ラインにおける産業用ロボット、自律的に動作可能に構成された自律型ロボット、治療装置(例えば、ネブライザ)等であってよい。
図13は、生産ラインにおける産業用ロボットRAの動作を制御装置1により制御する場面を例示する。この場合、産業用ロボットRAの動作を決定する要因となる情報は、例えば、産業用ロボットRAと共に作業する作業員UAの写る画像情報、産業用ロボットRAの周囲で発生する音を含む音情報等であってよい。
これに応じて、動作制御用ニューラルネットワークは、画像情報、音情報等の各種情報の入力に対して、各種情報により示される状況に適応した産業用ロボットRAの動作を制御するための制御値に対応する出力値を出力するように構築されてよい。また、安全制御用ニューラルネットワークは、動作制御用ニューラルネットワークから得られた制御値が産業用ロボットRAの安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正するための補正値、又は当該補正値により制御値を補正することで得られた補正済みの制御値に対応する出力値を出力するように構築されてよい。
制御装置1は、カメラ、マイク等の装置により、画像情報、音情報等の各種情報を取得し、取得した各種情報を動作制御用ニューラルネットワークに入力する。そして、制御装置1は、動作制御用ニューラルネットワークの演算処理を実行することで、産業用ロボットRAに対する制御値を動作制御用ニューラルネットワークから取得することができる。また、制御装置1は、動作制御用ニューラルネットワークから取得した制御値を安全制御用ニューラルネットワークに入力し、当該安全制御用ニューラルネットワークの演算処理を実行する。これにより、動作制御用ニューラルネットワークから得られた制御値が産業用ロボットRAの安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正することができる。したがって、本変形例によれば、機械学習により獲得した能力に基づいて産業用ロボットRAの動作を制御する際の安全性を確保することができる。
図14は、自律的に動作可能に構成された自律型ロボットRBの動作を制御装置1により制御する場面を例示する。この場合、自律型ロボットRBの動作を決定する要因となる情報は、例えば、自律型ロボットRBの近傍に存在するユーザUBの写る画像情報、自律型ロボットRBに向けて発せられた音声を含む音情報等であってよい。
これに応じて、動作制御用ニューラルネットワークは、画像情報、音情報等の各種情報の入力に対して、各種情報により示される状況に適応した自律型ロボットRBの動作を制御するための制御値に対応する出力値を出力するように構築されてよい。また、安全制御用ニューラルネットワークは、動作制御用ニューラルネットワークから得られた制御値が自律型ロボットRBの安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正するための補正値、又は当該補正値により制御値を補正することで得られた補正済みの制御値に対応する出力値を出力するように構築されてよい。
制御装置1は、カメラ、マイク等の装置により、画像情報、音情報等の各種情報を取得し、取得した各種情報を動作制御用ニューラルネットワークに入力する。そして、制御装置1は、動作制御用ニューラルネットワークの演算処理を実行することで、自律型ロボットRBに対する制御値を動作制御用ニューラルネットワークから取得することができる。また、制御装置1は、動作制御用ニューラルネットワークから取得した制御値を安全制御用ニューラルネットワークに入力し、当該安全制御用ニューラルネットワークの演算処理を実行する。これにより、動作制御用ニューラルネットワークから得られた制御値が自律型ロボットRBの安全条件を満たさない場合に、当該安全条件を満たすように制御値を補正することができる。したがって、本変形例によれば、機械学習により獲得した能力に基づいて自律型ロボットRBの動作を制御する際の安全性を確保することができる。
また、制御対象となる動作は、各装置に応じて適宜選択されてよい。なお、上記実施形態に係るパワーステアリング装置2は、車速、舵角、操舵トルク、モータ温度、駆動電流等の複数の要因に基づいて非線形に制御される装置である。しかしながら、制御対象装置は、このような非線形に制御される装置に限られなくてもよい。また、動作制御用ニューラルネットワーク5の入力は、制御対象装置に応じて適宜選択されてよい。
<4.2>
例えば、上記実施形態では、図6〜図8に示されるとおり、各ニューラルネットワーク5〜7として、多層構造を有する一般的な順伝播型ニューラルネットワークを用いている。しかしながら、各ニューラルネットワーク5〜7の種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、入力データとして画像を用いる場合、各ニューラルネットワーク5〜7には、畳み込み層及びプーリング層を備える畳み込みニューラルネットワークを用いてもよい。また、例えば、各ニューラルネットワーク5〜7には、中間層から入力層等のように出力側から入力側に再帰する結合を有する再帰型ニューラルネットワークが用いられてもよい。なお、各ニューラルネットワーク5〜7の層数、各層におけるニューロンの個数、ニューロン同士の結合関係、及び各ニューロンの伝達関数は、実施の形態に応じて適宜決定されてよい。
<4.3>
また、上記実施形態では、制御装置1、データ収集用制御装置3及び学習装置4はそれぞれ別々の装置である。しかしながら、制御装置1、データ収集用制御装置3及び学習装置4のうちの少なくともいずれかの組は同一の装置で実現されてもよい。また、制御装置1、データ収集用制御装置3及び学習装置4はそれぞれ、異なる複数の装置により構成されてもよい。例えば、データ収集用制御装置3は、パワーステアリング装置2を制御する第1装置及び学習用データセット323を作成する第2装置の2つの装置で構成されてもよい。この場合、第1装置は、演算部311及び動作試験部312を備えるコンピュータとして機能するように適宜構成される。第2装置は、補正値決定部313及び学習データ作成部314を備えるコンピュータとして機能するように適宜構成される。
<4.4>
また、上記実施形態では、各学習器は、ニューラルネットワークにより構成されている。しかしながら、各学習器の種類は、ニューラルネットワークに限られなくてもよく、実施の形態に応じて適宜選択されてよい。各学習器には、例えば、サポートベクターマシン、自己組織化マップ、強化学習により学習を行う学習器等が用いられてもよい。
<4.5>
また、上記ステップS103では、ステップS102で取得した制御値が安全条件を満たすか否かを区別せずに、安全制御用ニューラルネットワーク6にステップS102で取得した制御値を入力している。しかしながら、上記実施形態は、このような例に限られなくてもよく、ステップS102で取得した制御値が安全条件を満たさない場合にのみ、制御部11は、安全制御用ニューラルネットワーク6にステップS102で取得した制御値を入力してもよい。この場合、ステップS102で取得した制御値が安全条件を満たすときには、制御部11は、上記ステップS103を省略して、次のステップS104の処理を実行することで、動作制御用ニューラルネットワーク5の出力値をそのままパワーステアリング装置2に対して出力してよい。
<4.6>
また、上記動作制御用ニューラルネットワーク5を作成するための学習装置を用意してもよい。この学習装置は、上記学習装置4とほぼ同様に構成することができる。すなわち、機械学習に利用する学習用データセット323を、パワーステアリング装置2の動作を制御する機能を獲得する機械学習に利用可能な学習用データセットに変更することで、動作制御用ニューラルネットワーク5を作成する学習装置を構成することができる。この学習用データセットは、パワーステアリング装置2の動作を決定する要因となる情報(上記実施形態では、車速、舵角、操舵トルク、モータ温度、及び駆動電流の情報)と、当該情報に適応するアシスト力を指示する制御値との組み合わせにより構成される。また、学習対象とするニューラルネットワークは、上記動作制御用ニューラルネットワーク5と同じように構成する。これにより、学習装置は、用意した学習用データセットを利用して、上記ステップS301〜S303までの処理を実行することで、上記動作制御用ニューラルネットワーク5を構築し、動作制御学習結果データ122を作成することができる。
<4.7>
また、上記制御装置1は、上記ステップS102で取得した制御値が安全条件を満たさない場合に、上記ステップS102で取得した制御値と上記ステップS103で取得した補正済みの制御値とを制御履歴情報として記録してもよい。
図15は、本変形例に係る制御装置1Aを模式的に例示する。制御装置1Aは、ソフトウェアモジュールとして履歴作成部114を更に備える点を除き、上記制御装置1と同様の構成を有する。この場合、制御装置1Aの制御部11は、上記ステップS102とステップS103との間において、ステップS102で取得した制御値が安全条件を満たすか否かを判定してもよい。そして、ステップS102で取得した制御値が安全条件を満たさないと判定した場合に、制御部11は、上記ステップS103の後に、履歴作成部114として動作し、上記ステップS102で取得した制御値と上記ステップS103で取得した補正済みの制御値とを制御履歴情報として紐付けて記録する。このとき、制御部11は、制御履歴情報を記憶部12に格納してもよいし、外部インタフェース13を介して接続されるCANに出力してもよい。この制御履歴情報は、安全条件を満たした上で、ニューラルネットワークを利用してパワーステアリング装置2の動作を制御したことを示す証拠として利用することができる。
<4.8>
また、例えば、上記制御装置1は、複数件の動作制御学習結果データ122及び複数件の安全制御学習結果データ123を保持し、利用者の指定に応じて、利用する動作制御用ニューラルネットワーク5及び安全制御用ニューラルネットワーク6を切り替え可能に構成されてもよい。この場合、制御装置1は、利用者の入力に応じて、各件の動作制御学習結果データ122及び各件の安全制御学習結果データ123を、ネットワークを介して学習装置4等から取得してもよいし、記憶媒体等から取得してもよい。
1・1A…制御装置、
11…制御部、12…記憶部、13…外部インタフェース、
111…第1演算部、112…第2演算部、113…動作制御部、
121…制御プログラム、122…動作制御学習結果データ、
123…安全制御学習結果データ、
2…パワーステアリング装置、
21…ステアリングホイール、22…アシスト用モータ、23…モータ駆動回路、
24…舵角センサ、25…トルクセンサ、
26…温度センサ、27…電流検出回路、
3…データ収集用制御装置、
31…制御部、32…記憶部、33…外部インタフェース、
311…演算部、312…動作試験部、
313…補正値決定部、314…学習データ作成部、
321…データ収集用制御プログラム、323…学習用データセット、
4…学習装置、
41…制御部、42…記憶部、43…通信インタフェース、
44…入力装置、45…出力装置、46…ドライブ、
411…学習データ取得部、412…学習処理部、
421…学習プログラム、
5…動作制御用ニューラルネットワーク、
51…入力層、52…中間層(隠れ層)、53…出力層、
6…安全制御用ニューラルネットワーク、
61…入力層、62…中間層(隠れ層)、63…出力層、
7…ニューラルネットワーク、
71…入力層、72…中間層(隠れ層)、73…出力層、
91…記憶媒体、
100…電動パワーステアリングシステム、
101…データ収集用電動パワーステアリングシステム

Claims (13)

  1. 制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第1の学習器の演算処理を実行することで、当該学習済みの第1の学習器から制御値を取得する演算部と、
    取得した制御値に基づいて、前記制御対象装置の動作を試験する動作試験部と、
    前記試験において、前記制御対象装置の動作が所定の安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正するための補正値を決定する補正値決定部と、
    前記学習済みの第1学習器から取得した制御値、及び前記制御値を前記補正値により補正することで得られる補正済みの制御値又は前記補正値を組み合わせることで、学習用データセットを作成する学習データ作成部と、
    前記学習用データセットの前記制御値を訓練データとして利用し、前記学習用データセットの前記補正済みの制御値又は前記補正値を教師データとして利用した機械学習を行うことで、前記学習済みの第1の学習器から得られる前記制御値が前記安全条件を満たさない場合に、前記安全条件を満たすように前記制御値を補正する能力を獲得した学習済みの第2の学習器を構築する学習処理部と、
    を備える、
    制御システム。
  2. 制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第1の学習器の演算処理を実行することで、当該学習済みの第1の学習器から制御値を取得する第1演算部と、
    前記学習済みの第1の学習器から得られる前記制御値が、前記制御対象装置が安全に動作するための制限値を規定した安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正する能力を機械学習により獲得した学習済みの第2の学習器の演算処理を実行することで、当該学習済みの第2の学習器から出力を取得し、取得した出力に応じて前記制御値を補正する第2演算部と、
    補正された前記制御値に基づいて、前記制御対象装置の動作を制御する動作制御部と、
    を備える、
    制御装置。
  3. 前記制御対象装置は、複数の要因に基づいて非線形に制御される装置であり、
    前記学習済みの第1の学習器は、前記複数の要因に対応する複数の値が入力されると、前記複数の要因に適応した前記制御値を出力するように構築されている、
    請求項2に記載の制御装置。
  4. 前記学習済みの第2の学習器は、前記複数の値の少なくとも一部及び前記制御値が入力されると、前記安全条件を満たすように前記制御値を補正するための補正値又は当該補正値により前記制御値を補正することで得られる補正済みの制御値を出力するように構築されている、
    請求項3に記載の制御装置。
  5. 前記第1の学習器及び前記第2の学習器はそれぞれ、ニューラルネットワークにより構成される、
    請求項2から4のいずれか1項に記載の制御装置。
  6. 前記学習済みの第1の学習器から得られた前記制御値が前記安全条件を満たさない場合に、前記学習済みの第1の学習器から得られた前記制御値と、前記学習済みの第2の学習器からの出力に応じて得られた補正済みの制御値とを紐付けて記録する履歴作成部を更に備える、
    請求項2から5のいずれか1項に記載の制御装置。
  7. 前記制御対象装置は、車両であり、
    前記動作制御部は、前記車両の動作を制御する、
    請求項2から6のいずれか1項に記載の制御装置。
  8. 前記制御対象装置は、生産ラインにおける産業用ロボットであり、
    前記動作制御部は、前記産業用ロボットの動作を制御する、
    請求項2から6のいずれか1項に記載の制御装置。
  9. 前記制御対象装置は、自律的に動作可能に構成された自律型ロボットであり、
    前記動作制御部は、前記自律型ロボットの動作を制御する、
    請求項2から6のいずれか1項に記載の制御装置。
  10. コンピュータに、
    制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第1の学習器の演算処理を実行することで、当該学習済みの第1の学習器から制御値を取得するステップと、
    前記学習済みの第1の学習器から得られる前記制御値が、前記制御対象装置が安全に動作するための制限値を規定した安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正する能力を機械学習により獲得した学習済みの第2の学習器の演算処理を実行することで、当該学習済みの第2の学習器から出力を取得し、取得した出力に応じて前記制御値を補正するステップと、
    補正された前記制御値に基づいて、前記制御対象装置の動作を制御するステップと、
    を実行させるための、
    制御プログラム。
  11. コンピュータが、
    制御対象装置の動作を制御する能力を機械学習により獲得した学習済みの第1の学習器の演算処理を実行することで、当該学習済みの第1の学習器から制御値を取得するステップと、
    取得した制御値に基づいて、前記制御対象装置の動作を試験するステップと、
    前記試験において、前記制御対象装置の動作が所定の安全条件を満たさない場合に、当該安全条件を満たすように前記制御値を補正するための補正値を決定するステップと、
    前記学習済みの第1学習器から取得した制御値、及び前記制御値を前記補正値により補正することで得られる補正済みの制御値又は前記補正値を組み合わせることで、学習用データセットを作成するステップと、
    を実行する、
    学習データ作成方法。
  12. 前記コンピュータは、所定の補正条件に従って前記補正値を決定する、
    請求項11に記載の学習データ作成方法。
  13. コンピュータが、
    請求項11又は12に記載の学習データ作成方法により作成された前記学習用データセットを取得するステップと、
    取得した前記学習用データセットの前記制御値を訓練データとして利用し、取得した前記学習用データセットの前記補正済みの制御値又は前記補正値を教師データとして利用した機械学習を行うことで、前記学習済みの第1の学習器から得られる前記制御値が前記安全条件を満たさない場合に、前記安全条件を満たすように前記制御値を補正する能力を獲得した学習済みの第2の学習器を構築するステップと、
    を実行する、
    学習方法。
JP2018064777A 2018-03-29 2018-03-29 制御システム、制御装置、制御プログラム、学習データ作成方法、及び学習方法 Pending JP2019175275A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018064777A JP2019175275A (ja) 2018-03-29 2018-03-29 制御システム、制御装置、制御プログラム、学習データ作成方法、及び学習方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018064777A JP2019175275A (ja) 2018-03-29 2018-03-29 制御システム、制御装置、制御プログラム、学習データ作成方法、及び学習方法

Publications (1)

Publication Number Publication Date
JP2019175275A true JP2019175275A (ja) 2019-10-10

Family

ID=68168973

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018064777A Pending JP2019175275A (ja) 2018-03-29 2018-03-29 制御システム、制御装置、制御プログラム、学習データ作成方法、及び学習方法

Country Status (1)

Country Link
JP (1) JP2019175275A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113359591A (zh) * 2020-03-04 2021-09-07 西门子股份公司 确定和/或选择安全状态的方法和安全相关控制装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07225894A (ja) * 1994-02-15 1995-08-22 Toshiba Corp 車両用走行制御装置とその制御知識獲得方法
JP2014174585A (ja) * 2013-03-06 2014-09-22 Mikuni Corp 制御装置及び制御方法
JP2015204701A (ja) * 2014-04-15 2015-11-16 株式会社デンソー 回転機の制御装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07225894A (ja) * 1994-02-15 1995-08-22 Toshiba Corp 車両用走行制御装置とその制御知識獲得方法
JP2014174585A (ja) * 2013-03-06 2014-09-22 Mikuni Corp 制御装置及び制御方法
JP2015204701A (ja) * 2014-04-15 2015-11-16 株式会社デンソー 回転機の制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113359591A (zh) * 2020-03-04 2021-09-07 西门子股份公司 确定和/或选择安全状态的方法和安全相关控制装置

Similar Documents

Publication Publication Date Title
WO2018168039A1 (ja) 運転者監視装置、運転者監視方法、学習装置及び学習方法
CN104806363B (zh) 油门响应方法及装置
WO2018180143A1 (ja) 情報処理装置及び情報処理方法、コンピュータ・プログラム、並びにプログラム製造方法
US20210162589A1 (en) Systems and methods for learning agile locomotion for multiped robots
Toffin et al. Role of steering wheel feedback on driver performance: driving simulator and modeling analysis
JP2019200453A (ja) 制御システム、学習データ作成装置、学習装置および判定装置
JP2007238070A (ja) 電動可変ギア伝達装置と電動パワーステアリング装置の制御装置
US11971709B2 (en) Learning device, control device, learning method, and recording medium
JP6826091B2 (ja) ラック力を決定する方法及びシステム、作業装置用動作支援方法、動作支援装置及び作業装置
JP2019175275A (ja) 制御システム、制御装置、制御プログラム、学習データ作成方法、及び学習方法
JP6904287B2 (ja) 制御装置、制御方法、及び制御プログラム
Menhour et al. Two degrees of freedom PID multi-controllers to design a mathematical driver model: Experimental validation and robustness tests
CN114310895A (zh) 机器人碰撞检测方法、装置、电子设备及存储介质
Xu et al. Modeling Lateral Control Behaviors of Distracted Drivers for Haptic-Shared Steering System
KR101799700B1 (ko) 뉴로모픽 신경망 모델 기반 내비게이션 장치 및 그 방법
WO2018029904A1 (ja) 運転性向判定装置および運転性向判定システム
Zou et al. Neuroevolution of a recurrent neural network for spatial and working memory in a simulated robotic environment
KR102376615B1 (ko) 주행 로봇의 제어 방법 및 그 장치
US10831209B2 (en) Using a long-term recurrent convolutional network to plan a sequence of lateral controls in autonomous driving
JP2021082139A (ja) 追加学習装置、方法、及びプログラム
CN111738046A (zh) 对用于基于深度学习的装置的学习的虚拟世界模拟器的物理引擎进行标定的方法及装置
Teodorescu et al. A rule-based assistive control algorithm for safe navigation for a powered wheelchair
CN108022472B (zh) 一种飞行力感模拟系统以及模拟方法
JP6947091B2 (ja) 運転支援装置、運転支援方法、運転支援プログラム、動作制御装置、動作制御方法、及び動作制御プログラム
US11679717B2 (en) Method and apparatus for operating a haptic system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210518

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210803