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

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

▶ 日本電気株式会社の特許一覧

特許7464130挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム
<>
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図1
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図2
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図3
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図4
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図5
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図6
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図7
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図8
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図9
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図10
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図11
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図12
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図13
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図14
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図15
  • 特許-挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-01
(45)【発行日】2024-04-09
(54)【発明の名称】挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240402BHJP
【FI】
G06N20/00
【請求項の数】 8
(21)【出願番号】P 2022542558
(86)(22)【出願日】2020-08-14
(86)【国際出願番号】 JP2020030831
(87)【国際公開番号】W WO2022034679
(87)【国際公開日】2022-02-17
【審査請求日】2023-02-06
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】猪爪 宏彰
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2020-67980(JP,A)
【文献】特開2018-135075(JP,A)
【文献】特開2018-118672(JP,A)
【文献】Hiroaki Inotsume, 外2名,"Robust Path Planning for Slope Traversing Under Uncertainty in Slip Prediction",IEEE Robotics and Automation Letters,第5巻, 第2号,2020年02月21日,p.3390-3397
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成する、挙動解析手段と、
第一の環境において生成された第一の挙動解析データと、既知の複数の第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境と前記第二の環境ごとの類似度を算出し、前記第二の環境ごとに生成した学習済みモデルと、前記学習済みモデルごとに対応する前記類似度を重みとした、前記学習済みモデルの重み和を生成し、前記第一の環境における前記移動体の挙動を推定するためのモデルを学習する、学習手段と、
を有する挙動学習装置。
【請求項2】
移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成する、挙動解析手段と、
第一の環境において生成された第一の挙動解析データと、既知の複数の第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境と前記第二の環境ごとの類似度を算出し、前記第二の環境ごとに生成した学習済みモデルと、前記学習済みモデルごとに対応する前記類似度を重みとした、前記学習済みモデルの重み和を生成し、前記第一の環境における前記移動体の挙動を推定するためのモデルを学習する、学習手段と、
前記第一の環境の状態を表す環境状態データに基づいて前記第一の環境について解析をし、環境解析データを生成する、環境解析手段と、
前記環境解析データを、前記第一の環境における移動体の挙動を推定するための前記モデルに入力して、前記第一の環境における前記移動体の挙動を推定する、推定手段と、
を有する挙動推定装置。
【請求項3】
請求項2に記載の挙動推定装置であって、
前記第一の環境における移動体の挙動を推定した結果である挙動推定結果データに基づいて、現在位置から目的地までの移動経路を表す移動経路データを生成する、移動経路生成手段と、
前記挙動推定結果データと前記移動経路データとに基づいて移動体を制御して移動させる、移動体制御手段と
を有する挙動推定装置。
【請求項4】
請求項に記載の挙動推定装置であって、
前記第一の環境における移動体の挙動を推定した結果である挙動推定結果データと前記環境状態データとに基づいて、出力装置に出力するための出力情報を生成する、出力情報生成手段と、
を有する挙動推定装置。
【請求項5】
移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成し、
第一の環境において生成された第一の挙動解析データと、既知の複数の第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境と前記第二の環境ごとの類似度を算出し、前記第二の環境ごとに生成した学習済みモデルと、前記学習済みモデルごとに対応する前記類似度を重みとした、前記学習済みモデルの重み和を生成し、前記第一の環境における前記移動体の挙動を推定するためのモデルを学習する、
挙動学習方法。
【請求項6】
移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成し、
第一の環境において生成された第一の挙動解析データと、既知の複数の第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境と前記第二の環境ごとの類似度を算出し、前記第二の環境ごとに生成した学習済みモデルと、前記学習済みモデルごとに対応する前記類似度を重みとした、前記学習済みモデルの重み和を生成し、前記第一の環境における前記移動体の挙動を推定するためのモデルを学習し、
前記第一の環境の状態を表す環境状態データに基づいて前記第一の環境について解析をし、環境解析データを生成し、
前記環境解析データを、前記第一の環境における移動体の挙動を推定するための前記モデルに入力して、前記第一の環境における前記移動体の挙動を推定する、
挙動推定方法。
【請求項7】
コンピュータに、
移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成し、
第一の環境において生成された第一の挙動解析データと、既知の複数の第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境と前記第二の環境ごとの類似度を算出し、前記第二の環境ごとに生成した学習済みモデルと、前記学習済みモデルごとに対応する前記類似度を重みとした、前記学習済みモデルの重み和を生成し、前記第一の環境における前記移動体の挙動を推定するためのモデルを学習する、
処理を実行させる命令を含むプログラム。
【請求項8】
コンピュータに、
移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成し、
第一の環境において生成された第一の挙動解析データと、既知の複数の第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境と前記第二の環境ごとの類似度を算出し、前記第二の環境ごとに生成した学習済みモデルと、前記学習済みモデルごとに対応する前記類似度を重みとした、前記学習済みモデルの重み和を生成し、前記第一の環境における前記移動体の挙動を推定するためのモデルを学習し、
前記第一の環境の状態を表す環境状態データに基づいて前記第一の環境について解析をし、環境解析データを生成し、
前記環境解析データを、前記第一の環境における移動体の挙動を推定するための前記モデルに入力して、前記第一の環境における前記移動体の挙動を推定する、
処理を実行させる命令を含むプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動体の挙動を推定するために用いる挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【0002】
近年、自然災害が多発しており、被災地では、危険な環境での作業を余儀なくされている。そこで、危険な環境で利用されている作業車両などを自動化する取り組みが進められている。
【0003】
ところが、被災地などの危険な環境では、作業車両の挙動を精度よく推定することは困難である。すなわち、危険な環境に対応して、作業車両を自律して走行させたり、作業車両に作業を実行させたりすることは困難である。
【0004】
その理由は、被災地などの危険な環境、すなわち整備されていない屋外の不整地などの未知の環境に関するデータを事前に取得することが難しいからである。
【0005】
関連する技術として特許文献1には、計測されたデータを、パターン認識アルゴリズムを用いて解析し、解析した結果であるデータと、データベースに記憶された複数のパターンとを比較し、マッチしたパターンを選択する方法が開示されている。
【0006】
また、関連する技術として特許文献2には、車両が同じ経路を二回目に進行したときに検出されたイベント及びイベントロケーションが、既に記憶されている特定のイベントロケーションと整合していれば、車両に対してそのイベントロケーションに関連するアクションを開始させることが開示されている。
【先行技術文献】
【特許文献】
【0007】
【文献】特表2016-528569号公報
【文献】特表2018-504303号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1、2に開示された方法では、未知の環境において作業車両の挙動を精度よく推定することはできない。すなわち、上述したように未知の環境に関するデータを事前に取得することが難しいため、特許文献1、2に開示された方法を用いても、作業車両の挙動を精度よく推定できない。
【0009】
一つの側面として、未知の環境において移動体の挙動を精度よく推定するために用いる挙動学習装置、挙動学習方法、挙動推定装置、挙動推定方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、一つの側面における挙動学習装置は、
移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成する、挙動解析部と、
第一の環境において生成された第一の挙動解析データと、第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境における前記移動体の挙動を推定するためのモデルを学習する、学習部と、
を有することを特徴とする。
【0011】
また、上記目的を達成するため、一つの側面における挙動推定装置は、
第一の環境の状態を表す環境状態データに基づいて前記第一の環境について解析をし、環境解析データを生成する、環境解析部と、
前記環境解析データを、前記第一の環境における移動体の挙動を推定するためのモデルに入力して、前記第一の環境における前記移動体の挙動を推定する、推定部と、
を有することを特徴とする。
【0012】
また、上記目的を達成するため、一側面における挙動学習方法は、
移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成する、挙動解析ステップと、
第一の環境において生成された第一の挙動解析データと、第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境における前記移動体の挙動を推定するためのモデルを学習する、学習ステップと、
を有することを特徴とする。
【0013】
また、上記目的を達成するため、一側面における挙動学習方法は、
第一の環境の状態を表す環境状態データに基づいて前記第一の環境について解析をし、環境解析データを生成する、環境解析ステップと、
前記環境解析データを、前記第一の環境における移動体の挙動を推定するためのモデルに入力して、前記第一の環境における前記移動体の挙動を推定する、推定ステップと、
を有することを特徴とする。
【0014】
また、上記目的を達成するため、本発明の一側面におけるプログラムは
コンピュータに、
移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成する、挙動解析ステップと、
第一の環境において生成された第一の挙動解析データと、第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境における前記移動体の挙動を推定するためのモデルを学習する、学習ステップと、
を実行させることを特徴とする。
【0015】
さらに、上記目的を達成するため、本発明の一側面におけるプログラムは
コンピュータに、
第一の環境の状態を表す環境状態データに基づいて前記第一の環境について解析をし、環境解析データを生成する、環境解析ステップと、
前記環境解析データを、前記第一の環境における移動体の挙動を推定するためのモデルに入力して、前記第一の環境における前記移動体の挙動を推定する、推定ステップと、
を実行させることを特徴とする。
【発明の効果】
【0016】
一つの側面として、未知の環境において移動体の挙動を精度よく推定することができる。
【図面の簡単な説明】
【0017】
図1図1は、未知の環境における傾斜角とスリップとの関係について説明するための図である。
図2図2は、未知の環境における急斜面におけるスリップの推定について説明するための図である。
図3図3は、挙動学習装置の一例を説明するための図である。
図4図4は、挙動推定装置の一例を説明するための図である。
図5図5は、システムの一例を説明するための図である。
図6図6は、地形形状に関する情報の一例を説明するための図である。
図7図7は、格子とスリップとの関係を説明するための図である。
図8図8は、格子と通行可能・不可能との関係を説明するための図である。
図9図9は、実施例2のシステムの説明をするための図である。
図10図10は、移動経路の一例を説明するための図である。
図11図11は、移動経路の一例を説明するための図である。
図12図12は、挙動学習装置の動作の一例を説明するための図である。
図13図13は、挙動推定装置の動作の一例を説明するための図である。
図14図14は、実施例1のシステムの動作の一例を説明するための図である。
図15図15は、実施例2のシステムの動作の一例を説明するための図である。
図16図16は、挙動学習装置と挙動推定装置を有するシステムを実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【0018】
はじめに、以降で説明する実施形態の理解を容易にするために概要を説明する。
従来、被災地、建設現場、山林、惑星などの未知の環境において作業をする自律型の作業車両は、作業車両に搭載された撮像装置から未知の環境を撮像した画像データを取得し、取得した画像データに対して画像処理をし、画像処理の結果に基づいて未知の環境の状態を推定している。
【0019】
しかしながら、画像データだけでは、未知の環境の状態を精度よく推定できない。そのため、未知の環境において、作業車両の挙動を推定し、作業車両を走行させたり、作業車両に作業をさせたりすることは困難である。
【0020】
ここで、未知の環境の状態とは、例えば、地形、地面の種類、地面の状態などが不明な環境である。地面の種類とは、例えば、レキ、砂、粘土、シルトなどの含有割合により、分類される土の種類などである。また、地面の種類として、植物が育成している地面、コンクリート、岩盤などの地面、障害物が存在する地面などを含めてもよい。地面の状態とは、例えば、地面の水分含有量、地面の緩さ(又は固さ)、地層などである。
【0021】
また、近年では、過去に様々な環境において撮像された画像データを訓練データとし、車両が走行する経路を推定するモデルを学習させ、学習させたモデルを用いて車両が走行する経路を推定する提案がされている。
【0022】
しかし、訓練データには、未知の環境の画像データ、急斜面や水たまりなどの作業車両にとってリスクが高い地形に関するデータが不足している。そのため、モデルの学習が不十分になる。そのため、学習が不十分なモデルを用いても、作業車両の走行を精度よく推定することは困難である。
【0023】
このようなプロセスを経て、発明者は、上述したような方法では、未知の環境において車両の挙動を精度よく推定できないという課題を見出した。また、それとともに係る課題を解決する手段を導出するに至った。
【0024】
すなわち、発明者は、未知の環境において、車両などの移動体の挙動を精度よく推定する手段を導出するに至った。その結果、車両などの移動体の挙動を精度よく推定できるので、未知の環境においても移動体を精度よく制御できる。
【0025】
以下、図面を参照して移動体の挙動の推定について説明する。なお、以下で説明する図面において、同一の機能又は対応する機能を有する要素には同一の符号を付し、その繰り返しの説明は省略することもある。
【0026】
図1図2を用いて移動体の挙動(作業車両1のスリップ)の推定について説明する。図1は、未知の環境における傾斜角とスリップとの関係について説明するための図である。図2は、未知の環境における急斜面におけるスリップの推定について説明するための図である。
【0027】
まず、図1に示す移動体である作業車両1は、未知の環境を走行中に、作業車両1の状態を計測するセンサから移動体の状態を表す移動体状態データを取得し、取得した移動体状態データを作業車両1の内部又は外部に設けられた記憶装置に記憶する。
【0028】
次に、作業車両1は、未知の環境のリスクの低い低斜面において、センサから取得した移動体状態データを解析して、低斜面における傾斜角と作業車両1のスリップとの関係を表す挙動解析データを求める。挙動解析データは、図1図2のグラフに示したようなイメージである。
【0029】
次に、作業車両1は、図1に示す急斜面における作業車両1のスリップを推定するために、急斜面におけるスリップに関するモデルを学習する。具体的には、作業車両1のスリップを推定するためのモデルを、未知の環境のリスクの低い低斜面における挙動解析データと、過去の複数の挙動解析データとを用いて学習する。
【0030】
過去の複数の挙動解析データは、図2のグラフに示したようなイメージで表すことができる。例えば、既知の環境がS(粘性土)、S(砂地)、S(岩盤)である場合、過去の複数の挙動解析データは、それぞれの環境において移動体状態データを解析し、生成された傾斜角とスリップとの関係を表すデータである。なお、過去の複数の挙動解析データは記憶装置に記憶されている。
【0031】
図2の例では、未知の環境の低斜面で計測された移動体状態データに基づいて生成された挙動解析データと、既知の環境S、S、Sそれぞれにおいて生成された過去の挙動解析データとを用いてモデルを学習する。
【0032】
次に、学習済みのモデルを用いて、未知の環境の急斜面におけるスリップの推定をする。具体的には、作業車両1は、未知の環境のリスクの低い低斜面において、作業車両1がセンサから取得した急斜面の状態を表す環境状態データを解析して、地形形状など表す環境解析データを生成する。
【0033】
次に、作業車両1は、環境解析データを、対象環境における移動体の挙動を推定するためのモデルに入力して、対象環境における急斜面における作業車両1のスリップを推定する。
【0034】
このようにすることで、未知の環境において移動体の挙動を精度よく推定することができる。したがって、未知の環境においても移動体を精度よく制御ができる。
【0035】
(実施形態)
以下、図面を参照して実施形態について説明する。図3を用いて、本実施形態における挙動学習装置10の構成について説明する。図3は、挙動学習装置の一例を説明するための図である。
【0036】
[挙動学習装置の構成]
図3に示す挙動学習装置10は、未知の環境において、移動体の挙動を精度よく推定するために用いるモデルを学習する装置である。また、図3に示すように、挙動学習装置10は、挙動解析部11と、学習部12とを有する。
【0037】
挙動学習装置10は、例えば、CPU(Central Processing Unit)、又はFPGA(Field-Programmable Gate Array)、又はGPU(Graphics Processing Unit)、又はそれらすべて、又はいずれか二つ以上を搭載した回路や情報処理装置である。
【0038】
挙動解析部11は、移動体の状態を表す移動体状態データに基づいて、移動体の挙動を解析し、移動体の挙動を表す挙動解析データを生成する。
【0039】
移動体は、例えば、自律型の車両、船舶、航空機、ロボットなどである。移動体が作業車両の場合、作業車両は、例えば、被災地、建設現場、山林での作業に用いられる建設車両や、惑星での探査に用いられる探査車両などである。
【0040】
移動体状態データは、移動体の状態を計測するための複数のセンサから取得した移動体の状態を表すデータである。移動体の状態を計測するセンサは、移動体が車両である場合、例えば、車両の位置を計測する位置センサ、IMU(Inertial Measurement Unit:三軸ジャイロセンサ+三軸角速度センサ)、車輪エンコーダ、消費電力を計測する計器、燃料の消費量を計測する計器などである。
【0041】
挙動解析データは、移動体状態データを用いて生成された、移動体の移動速度、姿勢角などを表すデータである。移動体が車両である場合、挙動解析データは、例えば、車両の走行速度、車両の車輪回転速度、車両の姿勢角、走行時のスリップ、走行時の車両の振動、消費電力、燃料の消費量などを表すデータである。
【0042】
学習部12は、対象環境(第一の環境)において生成された挙動解析データ(第一の挙動解析データ)と、過去に既知の環境(第二の環境)において、既知の環境ごとに生成された挙動解析データ(第二の挙動解析データ)とを用いて、対象環境と既知の環境の類似度を算出する。次に学習部12は、算出した類似度と既知の環境ごとに学習済みのモデルとを用いて、対象環境における移動体の挙動を推定するためのモデルを学習する。
【0043】
対象環境は、例えば、被災地、建設現場、山林、惑星などにおいて、移動体が移動する未知の環境である。
【0044】
モデルは、未知の環境において作業車両1などの移動体の挙動を推定するために用いるモデルである。モデルは、数1に示すような関数で表すことができる。
【0045】
【数1】
【0046】
数1を適用したモデルの一例として、数2に示すガウス過程回帰モデルがある。ガウス過程回帰モデルは、挙動解析データに基づいてモデルを構築する。また、数2に示す重みwを学習する。重みwは、対象環境に対応する挙動解析データと既知の環境に対応する挙動解析データとの類似度を表すモデルパラメータである。
【0047】
【数2】
【0048】
さらに、他のモデルの例として、数3に示す線形回帰モデルがある。線形回帰モデルは、過去の複数の既知の環境ごとに生成された学習済みモデルに基づいてモデルを構築する。
【0049】
【数3】
【0050】
[挙動推定装置の構成]
続いて、図4を用いて、本実施形態における挙動推定装置20の構成について説明する。図4は、挙動推定装置の一例を説明するための図である。
【0051】
図4に示す挙動推定装置20は、未知の環境において、移動体の挙動を精度よく推定するための装置である。また、図4に示すように、挙動推定装置20は、環境解析部13と、推定部14とを有する。
【0052】
挙動推定装置20は、例えば、CPU、又はFPGA、又はGPU、又はそれらすべて、又はいずれか二つ以上を搭載した回路や情報処理装置である。
【0053】
環境解析部13は、対象環境の状態を表す環境状態データに基づいて対象環境について解析をし、環境解析データを生成する。
【0054】
環境状態データは、移動体の周辺環境(対象環境)の状態を計測するための複数のセンサから取得した対象環境の状態を表すデータである。対象環境の状態を計測するセンサは、移動体が車両である場合、例えば、LiDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging)、撮像装置などである。
【0055】
LiDARは、例えば、車両の周辺の三次元点群データを生成する。撮像装置は、例えば、対象環境を撮像するカメラなどで、画像データ(動画又は静止画)を出力する。また、対象環境の状態を計測するセンサは、移動体以外に設けられたセンサ、例えば、航空機、ドローン、人工衛星などに設けられたセンサを用いてもよい。
【0056】
環境解析データは、環境状態データを用いて生成された、対象環境の状態を表すデータである。移動体が車両である場合、環境状態データは、例えば、傾斜角、凹凸などの地形形状を表すデータである。なお、環境状態データとして、三次元点群データ、画像データ、三次元地図データなどを用いてもよい。
【0057】
推定部14は、環境解析データを、対象環境における移動体の挙動を推定するためのモデルに入力して、対象環境における移動体の挙動を推定する。
【0058】
モデルは、上述した学習部12により生成された未知の環境において作業車両1などの移動体の挙動を推定するためのモデルである。モデルは数2、数3に示したようなモデルである。
【0059】
[システム構成]
続いて、図5を用いて、本実施形態における移動体に搭載されるシステム100の構成を説明する。図5は、システムの一例を説明するための図である。
【0060】
図5に示すように、本実施形態におけるシステム100は、挙動学習装置10、挙動推定装置20、計測部30、記憶装置40、出力情報生成部15、出力装置16を有する。
【0061】
計測部30は、センサ31とセンサ32を有する。センサ31は、上述した移動体の状態を計測するためのセンサである。センサ32は、上述した移動体の周辺環境(対象環境)の状態を計測するためのセンサである。
【0062】
センサ31は、移動体の状態を計測し、計測した移動体状態データを挙動解析部11に出力する。センサ31は複数のセンサを有する。移動体が車両である場合、センサ31は、例えば、車両の位置を計測する位置センサ、IMU、車輪エンコーダ、消費電力を計測する計器、燃料の消費量を計測する計器などである。位置センサは、例えば、GPS(Global Positioning System)受信機などである。IMUは、例えば、車両の三軸(XYZ軸)方向の加速度、車両の三軸周りの角速度を計測する。車輪エンコーダは、車輪の回転速度を計測する。
【0063】
センサ32は、移動体の周辺環境(対象環境)の状態を計測し、計測した環境状態データを環境解析部13に出力する。センサ32は複数のセンサを有する。移動体が車両である場合、センサ32は、例えば、LiDAR、撮像装置などである。また、対象環境の状態を計測するセンサは、移動体以外に設けられたセンサ、例えば、航空機、ドローン、人工衛星などに設けられたセンサでもよい。
【0064】
挙動解析部11は、まず、対象環境においてセンサ31に含まれるセンサそれぞれが計測した移動体状態データを取得する。次に、挙動解析部11は、取得した移動体状態データを解析して、移動体の挙動を表す第一の挙動解析データを生成する。次に、挙動解析部11は、生成した第一の挙動解析データを学習部12に出力する。
【0065】
学習部12は、まず、挙動解析部11から出力された第一の挙動解析データと、記憶装置40に記憶されている既知の環境ごとに生成された第二の挙動解析データとを取得する。次に、学習部12は、取得した第一の挙動解析データと第二の挙動解析データとを用いて、数2、数3などに示したモデルを用いて学習する。次に、学習部12は、学習により生成されたモデルパラメータを記憶装置40に記憶する。
【0066】
環境解析部13は、まず、対象環境においてセンサ32に含まれるセンサそれぞれが計測した環境状態データを取得する。次に、環境解析部13は、取得した環境状態データを解析して、環境の状態を表す環境解析データを生成する。次に、環境解析部13は、生成した環境解析データを推定部14に出力する。また、環境解析部13は、環境解析データを記憶装置40に記憶してもよい。
【0067】
推定部14は、まず、環境解析部13から出力された環境解析データ、記憶装置40に記憶されているモデルパラメータやハイパーパラメータなどを取得する。次に、推定部14は、取得した環境解析データ、モデルパラメータ、ハイパーパラメータなどを、対象環境における移動体の挙動を推定するためのモデルに入力して、対象環境における移動体の挙動を推定する。次に、推定部14は、移動体の挙動を推定した結果(挙動推定結果データ)を出力情報生成部15へ出力する。また、推定部14は、挙動推定結果データを記憶装置40に記憶する。
【0068】
記憶装置40は、システム100で取り扱う各種のデータを記憶するメモリである。図5の例では、記憶装置40は、システム100に設けられているが、システム100と別に設けてもよい。その場合、記憶装置40は、データベース、サーバコンピュータなどの記憶装置などが考えられる。
【0069】
出力情報生成部15は、まず、推定部14から出力された挙動推定結果データと、記憶装置40から環境状態データとを取得する。次に、出力情報生成部15は、挙動推定結果データと環境状態データに基づいて出力装置16に出力するための出力情報を生成する。
【0070】
出力情報は、例えば、対象環境の画像や地図などを、出力装置16のモニタに表示するために用いる情報である。また、対象環境の画像や地図には、挙動推定結果データに基づいて、移動体の挙動、対象環境のリスク、移動体の移動の可否などを表示してもよい。
【0071】
なお、出力情報生成部15は、挙動推定装置20内に設けてもよい。
【0072】
出力装置16は、出力情報生成部15により生成された出力情報を取得し、取得した出力情報に基づいて、画像及び音声などを出力する。出力装置16は、例えば、液晶、有機EL(Electro Luminescence)、CRT(Cathode Ray Tube)を用いた画像表示装置などである。さらに、画像表示装置は、スピーカなどの音声出力装置などを備えていてもよい。なお、出力装置16は、プリンタなどの印刷装置でもよい。また、出力装置16は、例えば、移動体、又は、遠隔地に設けてもよい。
【0073】
[実施例1]
挙動学習装置10と挙動推定装置20について具体的に説明する。実施例1では、未知の環境における作業車両1の斜面走行時のスリップ(挙動)を、低斜面を走行時に取得したデータから推定する場合について説明する。実施例1では、スリップを推定するので、スリップを、対象環境の地形形状(傾斜角、凹凸)の関数としてモデル化する。
【0074】
[実施例1における学習動作]
実施例1の学習において、挙動解析部11は、作業車両1を、対象環境のリスクの低いなだらかな地形を一定速度で走行させ、一定間隔で、計測部30のセンサ31から移動体状態データを取得する。挙動解析部11は、例えば、0.1[秒]間隔、又は0.1[m]間隔などで移動体状態データを取得する。
【0075】
次に、挙動解析部11は、取得した移動体状態データを用いて、作業車両1のXYZ方向の移動速度Vx、Vy、Vzと、作業車両1の車輪回転速度ωと、作業車両1のXYZ軸周りの姿勢角(ロール角θx、ピッチ角θy、ヨー角θz)を算出する。
【0076】
移動速度は、例えば、二点間のGPS緯度・経度・高度の差から、それらの点間の時刻の差を割ることにより算出する。姿勢角は、例えば、IMUの角速度を積分することにより算出する。
【0077】
なお、移動速度と姿勢角は、GPSとIMUにより計測された移動体状態データの両方を使用して、カルマンフィルタに基づいて算出してもよい。又は、移動速度と姿勢角は、GPS、IMU、LiDARのデータに基づいて、SLAM(Simultaneous Localization and Mapping:移動体の位置の推定と周辺地図の構築を同時に行う技術)に基づいて算出してもよい。
【0078】
次に、挙動解析部11は、数4に示すように、作業車両1の速度と車輪回転速度に基づいてスリップを算出する。なお、スリップは連続値である。
【0079】
【数4】
【0080】
作業車両1が目標速度と同じ速度で移動している場合にはスリップslip=0になる。また、作業車両1が全く進んでいない場合にはスリップslip=1になる。また、作業車両1が目標速度より速い速度で移動している場合にはスリップは負の値になる。
【0081】
次に、挙動解析部11は、ロール角θx、ピッチ角θy、スリップを一組のデータ点とする、複数のデータ点(第一の挙動解析データ)を学習部12に出力する。
【0082】
次に、学習部12は、挙動解析部11からデータ点(第一の挙動解析データ)と、記憶装置40に記憶されている過去に既知の環境において生成されたデータ点(第二の挙動解析データ)との間の類似度に基づいて、対象環境におけるロール角θx、ピッチ角θy、スリップに関係するモデルを学習する。
【0083】
又は、学習部12は、挙動解析部11からデータ点(第一の挙動解析データ)と、記憶装置40に記憶されている過去に既知の環境において生成されたデータ点(第二の挙動解析データ)に基づいて生成されたモデルとの間の類似度に基づいて、対象環境におけるロール角θx・ピッチ角θy、スリップに関係するモデルを学習する。
【0084】
具体例として、図2に示すように三つの既知環境データが得られている場合に、数2のf(Si)にガウス過程回帰を適用し、Sの挙動解析データと、対象環境の挙動解析データとを用いて、f(Si)のパラメータとハイパーパラメータを学習する例について説明する。
【0085】
数2のwには、f(Si)でモデル化した際の対象環境における挙動解析データの尤度を使用する。尤度は、既知の環境のモデルそれぞれが対象環境におけるスリップ現象を表すと仮定したときに、対象環境におけるデータ点がどの程度そのモデルに対して尤もらしいかを表す確率である。
【0086】
数2のg(w)はw/Σwとする。このとき、i=1、2、3について、対象環境における挙動解析データの尤度pが、それぞれp=0.5、P=0.2、P=0.1だったとすると、重みwそれぞれは、w=0.5、w=0.2、w=0.1となる。そして、重みwの合計は、Σw=0.5+0.2+0.1=0.8となる。
【0087】
したがって、g(w)=0.5/0.8=0.625、g(w)=0.2/0.8=0.25、g(w)=0.1/0.8=0.125となる。このように、g(w)を重みとしたf(Si)の重み和として、数2のf(T)のモデルを構築する。
【0088】
また、例えば、既知の環境それぞれについて、多項式回帰でスリップがモデル化されている場合、対象環境におけるデータが、それぞれの既知の環境におけるモデルで、どの程度表現可能かという指標に基づいて重みwを決定する。
【0089】
重みwは、例えば、既知の環境それぞれにおけるモデルを用いて対象環境におけるスリップを推定した際の平均二乗誤差(MSE)の逆数を重みwに設定する。又は、既知の環境それぞれにおけるモデルを用いて対象環境におけるスリップを推定した際の決定係数(R)を重みwに設定する。
【0090】
さらに、例えば、既知の環境それぞれについて、ガウス過程回帰でスリップがモデル化されている場合、ガウス過程回帰を用いると、平均的な推定だけでなく、推定の不確実性を確率分布で表すことができる。この場合、重みwとして、既知の環境それぞれのモデルを用いて対象環境におけるスリップを推定した際の、対象環境におけるデータの尤度を用いる。
【0091】
なお、平均二乗誤差(MSE)、決定係数(R)、尤度いずれかの指標を類似度とする場合においても、類似度が低い知識を組み合わせると、対象環境における推定精度が低下する可能性が高い。そのため、類似度(1/MSE、R、尤度)に対して閾値を設定しておき、類似度が閾値以上となる既知の環境のモデルのみ使用することとしてもよい。さらに、類似度が最大のモデルのみ使用してもよいし、類似度が高い順に規定個のモデルを使用してもよい。
【0092】
なお、上述した多項式回帰やガウス過程回帰以外の手法でモデル化を行ってもよい。他の機械学習手法としては、サポートベクトルマシン、ニューラルネットワークなどがある。また、機械学習手法のように、入力と出力の間の関係をブラックボックスとしてモデル化するのではなく、物理モデルに基づいてホワイトボックス的にモデリングしてもよい。
【0093】
上述したいずれのモデル化手法を用いる場合にも、記憶装置40に記憶しているモデルパラメータをそのまま使用してもよいし、対象環境を走行中に取得したデータを使用してモデルパラメータを学習し直してもよい。
【0094】
また、類似度が低い知識を組み合わせると、対象環境における推定精度が低下する可能性が高い。そのため、類似度(1/MSE、R、尤度)に対して閾値を設定しておき、類似度が閾値以上となる既知の環境のモデルのみ使用してもよい。
【0095】
なお、記憶装置40に記憶する複数の既知の環境におけるモデルは、実世界で取得したデータに基づいて学習したものでもよいし、物理シミュレーションにより取得したデータに基づいて学習したものでもよい。
【0096】
[実施例1における推定動作]
推定において、作業車両1がこれから走行する地形形状を計測し、学習したモデルに基づいて対象環境におけるスリップを推定する。
【0097】
具体的には、環境解析部13は、まず、計測部30のセンサ32から環境状態データを取得する。環境解析部13は、例えば、作業車両1に搭載したLiDARを用いて前方の対象環境を計測して生成された三次元点群(環境状態データ)を取得する。
【0098】
次に、環境解析部13は、三次元点群を処理して地形形状に関する地形形状データ(環境解析データ)を生成する。
【0099】
地形形状に関する情報の生成について具体的に説明する。
環境解析部13は、まず、図6に示すように、対象環境(空間)を格子に区切り、格子それぞれに点群を割り振る。図6は、地形形状に関する情報の一例を説明するための図である。
【0100】
次に、環境解析部13は、格子それぞれについて、格子自身とその周辺8方向の格子に含まれる点群から、点群の平均距離誤差が最小となるような近似平面を算出し、その近似平面の最大傾斜角と傾斜方向を算出する。
【0101】
次に、環境解析部13は、格子ごとに、格子の位置を表す座標と、近似平面の最大傾斜角と、傾斜方向とを関連付けて地形形状データ(環境解析データ)を生成して記憶装置40に記憶する。
【0102】
次に、推定部14は、環境解析部13が生成した地形形状データと、学習済みのスリップのモデルとに基づいて、格子それぞれにおけるスリップを推定する。
【0103】
格子それぞれにおけるスリップの推定方法について具体的に説明する。
(1)格子の最大傾斜角のみをモデルに入力してスリップを推定する。ただし、実際には、作業車両1のスリップは、斜面に対して作業車両1がどの向きを向いているかどうかによって決まる。例えば、最大傾斜角方向(一番傾斜が急な向き)を作業車両1が向いている場合、最もスリップが大きくなるので、最大傾斜角を使用してスリップを推定することは、保守的に予測を行うことを意味する。なお、作業車両1のピッチ角=最大傾斜角、ロール角=0として、スリップを推定してもよい。
【0104】
(2)各格子に格納された最大傾斜角と斜面方向の情報から、その格子を通る際の作業車両1の進行方向に応じてスリップを推定する。その場合、作業車両1のロール角とピッチ角は、最大傾斜角と斜面方向、作業車両1の進行方向に基づいて算出する。また、格子ごとに、複数の作業車両1の進行方向(例えば15度間隔など)に対してスリップを推定する。
【0105】
(3)ガウス過程回帰などにより、不確実性も考慮した推定を表現可能な場合、スリップの平均値と分散値を推定する。急斜面や凹凸の激しい地形では、作業車両1の挙動が複雑になるため、スリップのばらつきが大きくなる可能性が高くなるので、平均だけでなく分散を推定することにより、更に、安全な作業車両1の運用が可能となる。
【0106】
次に、推定部14は、図7に示すように、格子それぞれに、推定したスリップ(最大傾斜角方向のスリップの連続値)を関連付けて挙動推定結果データを生成して記憶装置40に記憶する。図7は、格子とスリップとの関係を説明するための図である。
【0107】
又は、推定部14は、格子それぞれに、推定したスリップと、車両進行方向とを関連付けて挙動推定結果データを生成して記憶装置40に記憶する。車両進行方向は、例えば、あらかじめ決められた方向に対する角度を用いて表す。
【0108】
又は、推定部14は、格子それぞれに、推定したスリップの平均と、スリップの分散と、車両進行方向とを関連付けて挙動推定結果データを生成して記憶装置40に記憶する。
【0109】
又は、推定部14は、あらかじめ設定したスリップに対する閾値に基づいて、通行可能か通行不可能かを判定し、判定結果を表す情報を格子に関連付けて挙動推定結果データを生成して記憶装置40に記憶する。図8は、格子と通行可能・不可能との関係を説明するための図である。図8に示す「〇」は通行可能を示し、「×」は通行不可能を示している。
【0110】
なお、上述したように実施例1では、地形形状のみを特徴量としてスリップのモデル化をしたが、作業車両1がカメラなどの撮像装置を搭載している場合、地形形状に加えて画像データ(例えば、各画素の輝度値やテクスチャ)を、モデルの入力データ(特徴量)に加えてもよい。
【0111】
また、現在の位置に近い場所での挙動は近くなる可能性が高いので、移動体状態データを取得した位置も特徴量に使用してもよい。さらに、移動速度、ステアリング操作量、作業車両1の積載物の増減による重量や重量バランスの変化、作業車両1の形状がサスペンションなどによるパッシブ/アクティブの変化などを、特徴量に加えてもよい。
【0112】
実施例1では、スリップについて説明したが、他の推定対象の挙動として、例えば、作業車両1の振動がある。基本的な処理の流れは、上述したスリップの場合と同様である。ただし、振動の場合、IMUで計測した加速度の時系列情報を、例えば、フーリエ変換により振動の大きさと周波数に変換し、それを地形形状の関数としてモデル化する。
【0113】
さらに、他の推定対象の挙動として、例えば、消費電力、燃料の消費燃料、車両の姿勢角などがある。いずれの挙動も基本的な学習と推定の流れは、上述したスリップと同様である。
【0114】
消費電力や燃料の消費燃料は、対応する計器の計測値と地形形状のデータとを用いて、モデル化をする。
【0115】
姿勢角は、多くの場合地面の傾斜角とほぼ同じになるが、地質特性や凹凸の激しさによっては、地面傾斜角以上に車体が傾いて危険な状態になる。そこで、例えば、事前にLiDARで計測した点群から推定した地形形状と、その地形を実際に走行した際の車両姿勢角(IMUで計測した角速度を用いて算出した車両の姿勢角)とをペアの入出力データとして、対象環境の地形を表す関数として姿勢角をモデル化する。
【0116】
[実施例2]
実施例2では、未知の環境における移動体の移動経路の計画及び移動制御の方法について説明する。具体的には、実施例2では、実施例1で求めた推定結果に基づいて移動経路を求め、求めた移動経路にしたがって移動体を移動させる。
【0117】
図9は、実施例2のシステムの説明をするための図である。図9に示すように、実施例2のシステム200は、挙動学習装置10、挙動推定装置20、計測部30、記憶装置40、移動経路生成部17、移動体制御部18を有する。
【0118】
[実施例2におけるシステム構成]
挙動学習装置10、挙動推定装置20、計測部30、記憶装置40については、既に説明しているので説明を省略する。
【0119】
移動経路生成部17は、対象環境における移動体の挙動を推定した結果(挙動推定結果データ)に基づいて、現在位置から目的地までの経路を表す移動経路データを生成する。
【0120】
具体的には、移動経路生成部17は、まず、推定部14から、図7図8に示すような対象環境における移動体の挙動推定結果データを取得する。次に、移動経路生成部17は、挙動推定結果データに一般的な経路計画処理を適用して移動経路データを生成する。次に、移動経路生成部17は、移動経路データを移動体制御部18に出力する。
【0121】
移動体制御部18は、挙動推定結果データと移動経路データとに基づいて移動体を制御して移動させる。
【0122】
具体的には、移動体制御部18は、まず、挙動推定結果データと移動経路データとを取得する。次に、移動体制御部18は、挙動推定結果データと移動経路データとに基づいて、移動体の移動に関係する各部を制御する情報を生成する。そして、移動体制御部18は、移動体を制御して、現在位置から目標地まで移動させる。
【0123】
なお、移動経路生成部17、移動体制御部18は、挙動推定装置20内に設けてもよい。
【0124】
推定部14でのスリップの推定に基づいて、作業車両1の現在位置から目標位置までの移動経路を計画する例について説明する。
【0125】
スリップの値が大きいほど、作業車両1の移動効率が低下するだけでなく、作業車両1が足を取られて身動きできなくなる可能性が高い。そこで、スリップの値が高いと推定された格子に対応する場所を避けて移動経路を生成する。
【0126】
図8に示した最大傾斜角に基づいて推定したスリップから通行可能か通行不可能を判定した例を用いて移動経路を計画する場合について説明する。
【0127】
ここで、移動経路を計画するアルゴリズムについては、任意のアルゴリズムを用いることができる。例えば、一般的に用いられているA*(エースター)アルゴリズムを使用する。A*アルゴリズムでは、現在位置から隣接するノードを順次探索していき、現在の探索ノードと、隣接ノードの間の移動コストと、隣接ノードから目標位置までの移動コストに基づき、効率的に経路を探索する。
【0128】
また、格子ごとの中心位置(座標)を一つのノードとし、各ノードは16方向の隣接ノードに移動可能とする。移動コストは、ノード間のユークリッド距離とする。
【0129】
ノードが通行可能と判定されている場合、別のノードからそのノードへ移動が可能として移動経路を探索する。その結果、図10に示すような、現在位置から目標位置Gまでの移動経路(図10の実線矢印)が生成される。図10は、移動経路の一例を説明するための図である。
【0130】
なお、移動経路生成部17は、移動経路上の一連のノードを表す情報を移動体制御部18に出力する。
【0131】
また、実際には、作業車両1の位置に加え、作業車両1の向きを含めて移動経路を生成する。理由は、作業車両1が真横に移動できないこと、ステアリング角に制限があることなど、作業車両1の移動方向に制限があるため、車両の向きも考慮しなければならないからである。
【0132】
次に、図7に示した連続的なスリップを格子に割り当てた例を用いて移動経路を計画する場合について説明する。
【0133】
ここで、格子ごとの中心位置(座標)を一つのノードとし、各ノードは16方向の隣接ノードに移動可能とする。移動コストは、推定したスリップを経路探索に反映するため、例えば、ノード間の移動コストを単なるユークリッド距離ではなく、数5に示す距離とスリップの重み和とする。図11は、移動経路の一例を説明するための図である。
【0134】
(数5)
Cost = a * L + b * Slip
Cost :ノード間の移動コスト
L :ユークリッド距離
Slip :スリップ
a,b :移動経路を生成に用いる重み(0以上の値)
【0135】
図11の例では、重みbに対して重みaを大きくすると、ユークリッド距離Lが比較的短い移動経路(図11の実線矢印)が生成される。対して、重みaに対して重みbを大きくすると、ユークリッド距離は長くなるが、スリップの値が高いノードを避けた移動経路(図11の破線矢印)が生成される。
【0136】
なお、ガウス過程回帰などにより不確実性も考慮した推定を表現可能な場合、すなわち格子ごとにスリップの平均値と分散値を推定した場合には、例えば、平均値が小さくても、分散値(予測の不確実性)が大きい格子を避けように移動経路を生成する。
【0137】
[装置動作]
次に、本発明の実施形態、実施例1、実施例2における挙動学習装置10、挙動推定装置20、システム100、200の動作について図を用いて説明する。
【0138】
図12は、挙動学習装置の動作の一例を説明するための図である。図13は、挙動推定装置の動作の一例を説明するための図である。図14は、実施例1のシステムの動作の一例を説明するための図である。図15は、実施例2のシステムの動作の一例を説明するための図である。
【0139】
以下の説明においては、適宜図を参照する。また、実施形態、実施例1、実施例2における挙動学習装置10、挙動推定装置20、システム100、200を動作させることによって、挙動学習方法、挙動推定方法、表示方法、移動体制御方法が実施される。よって、実施形態、実施例1、実施例2における挙動学習方法、挙動推定方法、表示方法、移動体制御方法の説明は、以下の挙動学習装置10、挙動推定装置20、システム100、200の動作説明に代える。
【0140】
[挙動学習装置の動作]
図12に示すように、まず、挙動解析部11は、センサ31から移動体状態データを取得する(ステップA1)。次に、挙動解析部11は、移動体の状態を表す移動体状態データに基づいて、移動体の挙動を解析し、移動体の挙動を表す挙動解析データを生成する(ステップA2)。
【0141】
続いて、学習部12は、対象環境において生成された第一の挙動解析データと、過去に既知の環境において、既知の環境ごとに生成された第二の挙動解析データとを用いて、対象環境における移動体の挙動を推定するためのモデルを学習する(ステップA3)。
【0142】
[挙動推定装置の動作]
図13に示すように、まず、環境解析部13は、センサ32から環境状態データを取得する(ステップB1)。次に、環境解析部13は、対象環境の状態を表す環境状態データに基づいて対象環境について解析をし、環境解析データを生成する(ステップB2)。
【0143】
続いて、推定部14は、環境解析データを、対象環境における移動体の挙動を推定するためのモデルに入力して、対象環境における移動体の挙動を推定する(ステップB3)。
【0144】
[システムの動作(表示方法)]
図14に示すように、センサ31は、移動体の状態を計測し、計測した移動体状態データを挙動解析部11に出力する。また、センサ32は、移動体の周辺環境(対象環境)の状態を計測し、計測した環境状態データを環境解析部13に出力する。
【0145】
挙動解析部11は、まず、対象環境においてセンサ31に含まれるセンサそれぞれが計測した移動体状態データを取得する(ステップC1)。次に、挙動解析部11は、取得した移動体状態データを解析して、移動体の挙動を表す第一の挙動解析データを生成する(ステップC2)。次に、挙動解析部11は、生成した第一の挙動解析データを学習部12に出力する。
【0146】
学習部12は、まず、挙動解析部11から出力された第一の挙動解析データと、記憶装置40に記憶されている既知の環境ごとに生成された第二の挙動解析データとを取得する(ステップC3)。次に、学習部12は、取得した第一の挙動解析データと第二の挙動解析データとを用いて、数2、数3などに示したモデルの学習をする(ステップC4)。次に、学習部12は、学習により生成されたモデルパラメータを記憶装置40に記憶する(ステップC5)。
【0147】
環境解析部13は、まず、対象環境においてセンサ32に含まれるセンサそれぞれが計測した環境状態データを取得する(ステップC6)。次に、環境解析部13は、取得した環境状態データを解析して、環境の状態を表す環境解析データを生成する(ステップC7)。次に、環境解析部13は、生成した環境解析データを推定部14に出力する。次に、環境解析部13は、解析により生成された環境解析データを記憶装置40に記憶する(ステップC8)。
【0148】
推定部14は、まず、環境解析部13から出力された環境解析データ、記憶装置40に記憶されているモデルパラメータやハイパーパラメータなどを取得する(ステップC9)。次に、推定部14は、取得した環境解析データ、モデルパラメータ、ハイパーパラメータなどを、対象環境における移動体の挙動を推定するためのモデルに入力して、対象環境における移動体の挙動を推定する(ステップC10)。次に、推定部14は、挙動推定結果データを出力情報生成部15へ出力する。
【0149】
出力情報生成部15は、まず、推定部14から出力された挙動推定結果データと、記憶装置40から環境状態データとを取得する(ステップC11)。次に、出力情報生成部15は、挙動推定結果データと環境状態データに基づいて出力装置16に出力するための出力情報を生成する(ステップC12)。出力情報生成部15は、出力情報を出力装置16に出力する(ステップC13)。
【0150】
出力情報は、例えば、対象環境の画像や地図などを、出力装置16のモニタに表示するために用いる情報である。なお、対象環境の画像や地図には、推定結果に基づいて、移動体の挙動、対象環境のリスク、移動体の移動の可否などを表示してもよい。
【0151】
出力装置16は、出力情報生成部15により生成された出力情報を取得し、取得した出力情報に基づいて、画像及び音声などを出力する。
【0152】
[システムの動作(移動体制御方法)]
図15に示すように、ステップC1からC10の処理を実行する。続いて、移動経路生成部17は、まず、推定部14から挙動推定結果データを取得する(ステップD1)。続いて、移動経路生成部17は、挙動推定結果データに基づいて、現在位置から目的地までの移動経路を表す移動経路データを生成する(ステップD2)。
【0153】
具体的には、ステップD1において、移動経路生成部17は、推定部14から、図7図8に示すような対象環境における移動体の挙動推定結果データを取得する。次に、ステップD2において、移動経路生成部17は、移動体の挙動推定結果データに一般的な経路計画処理を適用して移動経路データを生成する。次に、移動経路生成部17は、移動経路データを移動体制御部18に出力する。
【0154】
移動体制御部18は、挙動推定結果データと移動経路データとに基づいて移動体を制御して移動させる(ステップD3)。
【0155】
具体的には、ステップD3において、移動体制御部18は、まず、挙動推定結果データと移動経路データとを取得する。次に、移動体制御部18は、挙動推定結果データと移動経路データとに基づいて、移動体の移動に関係する各部を制御する情報を生成する。そして、移動体制御部18は、現在位置から目標地まで、移動体を制御して移動させる。
【0156】
[本実施形態の効果]
以上のように実施形態、実施例1、実施例2によれば、未知の環境において移動体の挙動を精度よく推定することができる。したがって、未知の環境においても移動体を精度よく制御ができる。
【0157】
[プログラム]
実施形態、実施例1、実施例2におけるプログラムは、コンピュータに、図12から図15に示すステップA1からA3、ステップB1からB3、ステップC1からC13、ステップD1からD3を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、実施形態、実施例1、実施例2における挙動学習装置10、挙動推定装置20、システム100、200とそれらの方法を実現することができる。この場合、コンピュータのプロセッサは、挙動解析部11、学習部12、環境解析部13、推定部14、出力情報生成部15、移動経路生成部17、移動体制御部18として機能し、処理を行なう。
【0158】
また、実施形態、実施例1、実施例2におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、挙動解析部11、学習部12、環境解析部13、推定部14、出力情報生成部15、移動経路生成部17、移動体制御部18のいずれかとして機能してもよい。
【0159】
[物理構成]
ここで、実施形態、実施例1、実施例2におけるプログラムを実行することによって、挙動学習装置10、挙動推定装置20、システム100、200を実現するコンピュータについて図16を用いて説明する。図16は、挙動学習装置と挙動推定装置を有するシステムを実現するコンピュータの一例を示すブロック図である。
【0160】
図16に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていてもよい。
【0161】
CPU111は、記憶装置113に格納された、本実施形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置である。また、本実施形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。なお、記録媒体120は、不揮発性記録媒体である。
【0162】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリなどの半導体記憶装置があげられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0163】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0164】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)などの汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)などの磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
【0165】
なお、実施形態、実施例1、実施例2における挙動学習装置10、挙動推定装置20、システム100、200は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。さらに、挙動学習装置10、挙動推定装置20、システム100、200は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0166】
[付記]
以上の実施形態に関し、更に以下の付記を開示する。上述した実施形態の一部又は全部は、以下に記載する(付記1)から(付記15)により表現することができるが、以下の記載に限定されるものではない。
【0167】
(付記1)
移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成する、挙動解析部と、
第一の環境において生成された第一の挙動解析データと、第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境における前記移動体の挙動を推定するためのモデルを学習する、学習部と、
を有する挙動学習装置。
【0168】
(付記2)
第一の環境の状態を表す環境状態データに基づいて前記第一の環境について解析をし、環境解析データを生成する、環境解析部と、
前記環境解析データを、前記第一の環境における移動体の挙動を推定するためのモデルに入力して、前記第一の環境における前記移動体の挙動を推定する、推定部と、
を有する挙動推定装置。
【0169】
(付記3)
付記2に記載の挙動推定装置であって、
前記移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成する、挙動解析部と、
前記第一の環境において生成された第一の挙動解析データと、第二の環境おいて前記第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境における前記移動体の挙動を推定するための前記モデルを学習する、学習部と、
を有する挙動推定装置。
【0170】
(付記4)
付記2又は3に記載の挙動推定装置であって、
前記第一の環境における移動体の挙動を推定した結果である挙動推定結果データに基づいて、現在位置から目的地までの移動経路を表す移動経路データを生成する、移動経路生成部と、
前記挙動推定結果データと前記移動経路データとに基づいて移動体を制御して移動させる、移動体制御部と
を有する挙動推定装置。
【0171】
(付記5)
付記2又は3に記載の挙動推定装置であって、
前記第一の環境における移動体の挙動を推定した結果である挙動推定結果データと前記環境状態データとに基づいて、出力装置に出力するための出力情報を生成する、出力情報生成部と、
を有する挙動推定装置。
【0172】
(付記6)
移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成する、挙動解析ステップと、
第一の環境において生成された第一の挙動解析データと、第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境における前記移動体の挙動を推定するためのモデルを学習する、学習ステップと、
を有する挙動学習方法。
【0173】
(付記7)
第一の環境の状態を表す環境状態データに基づいて前記第一の環境について解析をし、環境解析データを生成する、環境解析ステップと、
前記環境解析データを、前記第一の環境における移動体の挙動を推定するためのモデルに入力して、前記第一の環境における前記移動体の挙動を推定する、推定ステップと、
を有する挙動推定方法。
【0174】
(付記8)
付記7に記載の挙動推定方法であって、
前記移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成する、挙動解析ステップと、
前記第一の環境において生成された第一の挙動解析データと、第二の環境おいて前記第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境における前記移動体の挙動を推定するための前記モデルを学習する、学習ステップと、
を有する挙動推定方法。
【0175】
(付記9)
付記7又は8に記載の挙動推定方法であって、
前記第一の環境における移動体の挙動を推定した結果である挙動推定結果データに基づいて、現在位置から目的地までの移動経路を表す移動経路データを生成する、移動経路生成ステップと、
前記挙動推定結果データと前記移動経路データとに基づいて移動体を制御して移動させる、移動体制御ステップと
を有する挙動推定方法。
【0176】
(付記10)
付記7又は8に記載の挙動推定方法であって、
前記第一の環境における移動体の挙動を推定した結果である挙動推定結果データと前記環境状態データとに基づいて、出力装置に出力するための出力情報を生成する、出力情報生成ステップと、
を有する挙動推定方法。
【0177】
(付記11)
コンピュータに、
移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成する、挙動解析ステップと、
第一の環境において生成された第一の挙動解析データと、第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境における前記移動体の挙動を推定するためのモデルを学習する、学習ステップと、
を実行させる命令を含むプログラム。
【0178】
(付記12)
コンピュータに、
第一の環境の状態を表す環境状態データに基づいて前記第一の環境について解析をし、環境解析データを生成する、環境解析ステップと、
前記環境解析データを、前記第一の環境における移動体の挙動を推定するためのモデルに入力して、前記第一の環境における前記移動体の挙動を推定する、推定ステップと、
を実行させる命令を含むプログラム。
【0179】
(付記13)
付記12に記載のプログラムであって、
前記プログラムが、前記コンピュータに、
前記移動体の状態を表す移動体状態データに基づいて前記移動体の挙動を解析し、前記移動体の挙動を表す挙動解析データを生成する、挙動解析ステップと、
第一の環境において生成された第一の挙動解析データと、第二の環境おいて前記第二の環境ごとに生成された第二の挙動解析データとを用いて、前記第一の環境における前記移動体の挙動を推定するための前記モデルを学習する、学習ステップと、
を実行させる命令を更に含むプログラム。
【0180】
(付記14)
付記12又は13に記載のプログラムであって、
前記プログラムが、前記コンピュータに、
前記第一の環境における移動体の挙動を推定した結果である挙動推定結果データに基づいて、現在位置から目的地までの移動経路を表す移動経路データを生成する、移動経路生成ステップと、
前記挙動推定結果データと前記移動経路データとに基づいて移動体を制御して移動させる、移動体制御ステップと
を実行させる命令を更に含むプログラム。
【0181】
(付記15)
付記12又は13に記載のプログラムであって、
前記プログラムが、前記コンピュータに、
前記第一の環境における移動体の挙動を推定した結果である挙動推定結果データと前記環境状態データとに基づいて、出力装置に出力するための出力情報を生成する、出力情報生成ステップと、
を実行させる命令を更に含むプログラム。
【0182】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【0183】
以上のように本発明によれば、未知の環境において移動体の挙動を精度よく推定することができる。本発明は、移動体の挙動を推定が必要な分野において有用である。
【符号の説明】
【0184】
1 作業車両
10 挙動学習装置
11 挙動解析部
12 学習部
13 環境解析部
14 推定部
15 出力情報生成部
16 出力装置
17 移動経路生成部
18 移動体制御部
20 挙動推定装置
30 計測部
31、32 センサ
40 記憶装置
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16