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

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

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

<>
  • 特開-コントローラ及び学習システム 図1
  • 特開-コントローラ及び学習システム 図2
  • 特開-コントローラ及び学習システム 図3
  • 特開-コントローラ及び学習システム 図4
  • 特開-コントローラ及び学習システム 図5
  • 特開-コントローラ及び学習システム 図6
  • 特開-コントローラ及び学習システム 図7
  • 特開-コントローラ及び学習システム 図8
  • 特開-コントローラ及び学習システム 図9
  • 特開-コントローラ及び学習システム 図10
  • 特開-コントローラ及び学習システム 図11
  • 特開-コントローラ及び学習システム 図12
  • 特開-コントローラ及び学習システム 図13
  • 特開-コントローラ及び学習システム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023084444
(43)【公開日】2023-06-19
(54)【発明の名称】コントローラ及び学習システム
(51)【国際特許分類】
   B60W 30/00 20060101AFI20230612BHJP
【FI】
B60W30/00
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021198624
(22)【出願日】2021-12-07
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000925
【氏名又は名称】弁理士法人信友国際特許事務所
(72)【発明者】
【氏名】永崎 佑里
(72)【発明者】
【氏名】伊藤 誠也
(72)【発明者】
【氏名】月舘 統宙
(72)【発明者】
【氏名】石郷岡 祐
(72)【発明者】
【氏名】杉本 和也
【テーマコード(参考)】
3D241
【Fターム(参考)】
3D241CC03
3D241CC17
3D241CD09
3D241CE08
3D241CE09
3D241DA20Z
3D241DA54Z
3D241DB02Z
3D241DB05Z
3D241DB12Z
3D241DB46Z
3D241DC33Z
(57)【要約】
【課題】車両モデルを構築するために必要な学習データを過不足なく取得することが可能なコントローラ及び学習システムを提供する。
【解決手段】車載コントローラ114は、任意時刻先の車両が、予め設定された制約条件を満たす範囲内で走行可能であるか否かを判定する走行安全評価部305と、学習データ不足度を算出するデータ不足度評価部306と、走行安全評価部305及びデータ不足度評価部306の評価結果に基づき、制約条件を満たす範囲内で、学習データ不足度が低くなる走行を車両に行わせるための制御指令を生成し、駆動部202に制御指令を与える制御指令生成部307と、センサ201から取得した学習データを学習して、車両モデルを推定する車両モデル推定部304と、を備える。
【選択図】図3
【特許請求の範囲】
【請求項1】
車両の運動を表現する車両モデルと、現在の車両状態とに基づいて任意時刻先の前記車両状態を予測し、予測した任意時刻先の前記車両が、予め設定された制約条件を満たす範囲内で走行可能であるか否かを判定する走行安全評価部と、
過去の学習で取得した学習データと、次の学習で取得する学習データとの類似度を評価指標とする学習データ不足度を算出するデータ不足度評価部と、
前記走行安全評価部の評価結果、及び前記データ不足度評価部の評価結果に基づき、前記制約条件を満たす範囲内で、前記学習データ不足度が低くなる走行を前記車両に行わせるための制御指令を生成し、前記車両を駆動する駆動部に前記制御指令を与える制御指令生成部と、
現在の前記車両の車両状態と、前記車両の周辺に存在する障害物の位置とを計測するセンサから取得した前記学習データを学習して、前記車両モデルを推定する車両モデル推定部と、を備える
コントローラ。
【請求項2】
前記制御指令生成部は、過去に取得した学習データに基づき、前記車両モデル推定部による学習が不足している前記車両の動作を決定し、前記動作を前記車両に行わせるための前記制御指令を前記駆動部に与える
請求項1に記載のコントローラ。
【請求項3】
前記制御指令生成部は、現在の環境から前記車両が実行可能な動作を把握し、実行可能な前記動作の中から前記データ不足度が最も高い制御入力を含む前記制御指令を前記駆動部に与える
請求項2に記載のコントローラ。
【請求項4】
前記制御指令生成部は、前記学習データ不足度の評価結果において、前記制約条件を満たす範囲内で、前記学習データ不足度が同様の制御入力が複数存在している場合、前記データ不足度評価部の評価結果に加え、事前に決めた優先度により前記制御指令を生成する
請求項2に記載のコントローラ。
【請求項5】
前記制御指令生成部は、前記センサにより取得した障害物情報と、過去に取得された前記学習データに基づき制御指令を決定し、過去の学習時の環境に応じて、次の学習のために生成する制御指令を変化させる
請求項2に記載のコントローラ。
【請求項6】
前記制御指令に含まれる制御指令値と、前記学習データ不足度の最大値との時系列データを送信するデータ送信部と、
前記データ送信部から送信される前記時系列データを格納するデータ格納部と、
前記データ格納部に格納された前記時系列データを読み出し、学習の継続可否を判断する学習動作切替部と、を有する
請求項2に記載のコントローラ。
【請求項7】
前記学習動作切替部は、前記データ不足度評価部の評価結果の最小値が閾値未満である場合は前記走行安全評価部の評価結果に基づき学習の停止を指示し、前記データ不足度評価部の最小値が前記閾値以上の場合は前記データ不足度評価部及び前記走行安全評価部の評価結果に基づき学習の継続を指示する
請求項6に記載のコントローラ。
【請求項8】
複数の車両と、学習管理部と、を備える学習システムであって、
前記車両は、
現在の前記車両の車両状態と、前記車両の周辺に存在する障害物の位置とを計測するセンサと、
前記車両を駆動する駆動部と、を有し、
前記学習管理部は、
複数の前記車両の運動を表現する車両モデルと、前記センサにより計測された現在の車両状態とに基づいて任意時刻先の前記車両状態を予測し、予測した任意時刻先の前記車両が、予め設定された制約条件を満たす範囲内で走行可能であるか否かを判定する走行安全評価部と、
過去の学習で取得した学習データと、次の学習で取得する学習データとの類似度を評価指標とする学習データ不足度を算出するデータ不足度評価部と、
前記走行安全評価部の評価結果、及び前記データ不足度評価部の評価結果に基づき、前記制約条件を満たす範囲内で、前記学習データ不足度が低くなる走行を複数の前記車両に行わせるための制御指令を生成し、複数の前記車両が有する前記駆動部に前記制御指令を与える制御指令生成部と、
前記センサから取得した前記車両状態とを表す前記学習データを学習して、複数の前記車両の前記車両モデルを推定する車両モデル推定部と、を有する
学習システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コントローラ及び学習システムに関する。
【背景技術】
【0002】
近年、少子化による労働力不足やE-コマース市場拡大による物流件数の増加に伴い、物流倉庫内の省人化や作業効率の向上が課題となっている。この課題を解決するために、無人で動作可能な無人搬送車両(以下、「車両」とも略称する)の導入が進められている。
【0003】
無人搬送車両は、移動する路面の環境や、自車両の周辺にある障害物の状況、自車両の走行経路、搬送する荷物の状態等に応じて、無人搬送車両に出力される制御指令値に対する応答値が変化し、経路追従精度や走行時間が変化する。そのため、無人搬送車両を物流倉庫で運用する際には、車両を顧客現場に導入してから実際に運用するまでの期間において、車両が現場で所望の走行を実現するための走行制御機能の調整作業が実施される。走行制御機能の調整作業として、例えば、無人搬送車両の走行制御のためのパラメーター及び重みの入力、タイヤと床の摩擦係数の入力等が想定される。これらの調整作業は、例えば、無人搬送車両が運用される現場の状況に基づいて、作業員により行われる。物流倉庫の中では、低床型や台車型、フォークリフト型など多種の無人搬送車両を導入する例もあり、この際、走行制御機能の調整工数が膨大になる。
【0004】
無人搬送車両の走行制御機能の調整工数削減のため、車両に備えられたセンサから取得したデータを用いて車両自身でモデルや制御方式を更新する仕組みが存在する。例えば、車両のモデルや制御方式を更新するために、想定されるモデルの入力を離散化し、1ステップずつ入力をずらしながらデータを取得し、全ての入力が終了した後に取得したデータを用いて、車両のモデルに含まれるパラメーター値の推定や調整を行う技術がある。
【0005】
例えば、特許文献1には、不確定要素を含む車両の運動のモデルを用いて車両の運動を制御する方法について開示されている。この方法として、特許文献1には、「車両の運動のモデルに対する可能な制御入力の制御空間をサンプリングして、サンプリングされた制御入力のセットを生成し、車両の運動についての制約を満たす状態に車両を移動させる、各サンプリングされた制御入力の確率を決定する」と記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特表2018-534205号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1に記載された方法では、車両パラメーターの不確かさや、車両内部の状態を検出するセンサの計測誤差を考慮した車両モデルを構築し、車両モデルを用いて予測される将来の状態と車両周辺の環境情報に基づき走行経路を決定していた。この際、車両と障害物との距離や車両と目標経路との距離等の評価指標を基に走行経路が決定されている。特許文献1に開示された技術を用いることで、安全で人手がかからず自動的に車両モデルや制御方式の更新を実施することが可能となるが、モデルや制御方式の更新のために必要なデータの取得に時間がかかっていた。また、特許文献1に開示された技術では、例えば低速走行から1ステップずつ走行速度を上げ、最高速度のデータを取得した後に、学習データを用いてモデルの更新を行うことで、モデルのパラメーターの値の推定や調整を実施することができる。
【0008】
ただし、速度の刻み幅が小さい場合、要求されるモデルの精度に対し必要以上にデータを取得するため、学習データの取得に時間がかかっていた。一方、速度の刻み幅が大きい場合、取得すべきデータに不足が生じてしまう。また、特許文献1に記載された技術では、安全性を考慮した走行を実現するために、直進走行や旋回半径の大きい走行、又は低速走行等が優先される。このため、類似したデータを何度も取得することが想定される。その結果、取得されるデータに過不足が生じており、モデル構築のためのデータ取得に時間がかかっていた。
【0009】
本発明はこのような状況に鑑みて成されたものであり、車両モデルを構築するために必要な学習データを過不足なく取得し、車両モデルを推定することを目的とする。
【課題を解決するための手段】
【0010】
本発明に係るコントローラは、車両の運動を表現する車両モデルと、現在の車両状態とに基づいて任意時刻先の車両状態を予測し、予測した任意時刻先の車両が、予め設定された制約条件を満たす範囲内で走行可能であるか否かを判定する走行安全評価部と、過去の学習で取得した学習データと、次の学習で取得する学習データとの類似度を評価指標とする学習データ不足度を算出するデータ不足度評価部と、走行安全評価部の評価結果、及びデータ不足度評価部の評価結果に基づき、制約条件を満たす範囲内で、学習データ不足度が低くなる走行を車両に行わせるための制御指令を生成し、車両を駆動する駆動部に制御指令を与える制御指令生成部と、現在の車両の車両状態と、車両の周辺に存在する障害物の位置とを計測するセンサから取得した学習データを学習して車両モデルを推定する車両モデル推定部と、を備える。
【発明の効果】
【0011】
本発明によれば、車両モデルを構築するために必要な学習データを過不足なく取得し、車両モデルを推定することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0012】
図1】本発明の第1実施形態に係る搬送車両の構成例を示す側面図である。
図2】本発明の第1実施形態に係る搬送車両の構成例を示す上面図である。
図3】本発明の第1実施形態に係る学習システムの機能ブロックの最小構成例を示すブロック図である。
図4】本発明の第1実施形態に係る車両モデルの構築のために用いられるデータの一例を示す図である。
図5】本発明の第1実施形態に係る車両モデル推定部が用いるガウス過程回帰により構築される車両モデルの概要図である。
図6】本発明の第1実施形態に係る複数の学習データを用いて推定される車両モデルの一例を示す図である。
図7】本発明の第1実施形態に係る1ステップ先の車両の走行経路の平均値と分散値を、二次元地図にマッピングした様子を表す説明図である。
図8】本発明の第1実施形態に係る学習システムの処理の流れを示すフローチャートである。
図9】本発明の第1実施形態に係る走行安全評価部が車両モデルを用いて行う障害物干渉判定の一例を示す図である。
図10】本発明の第1実施形態に係る制御指令生成部が駆動部へ送信する制御入力の各候補に対する値の例を示す一覧表である。
図11】本発明の第1実施形態に係る走行安全評価結果及びデータ不足度評価結果が最も小さい制御入力が複数存在した場合における、値の例を示す一覧表である。
図12】本発明の第1実施形態に係る計算機のハードウェア構成例を示すブロック図である。
図13】本発明の第2実施形態に係る第2実施形態に係る学習システムの構成例を示すブロック図である。
図14】本発明の第2実施形態に係る学習システムが、複数車両を用いて学習する際の走行環境の例を示す説明図です。
【発明を実施するための形態】
【0013】
以下、本発明を実施するための形態について、添付図面を参照して説明する。本明細書及び図面において、実質的に同一の機能又は構成を有する構成要素については、同一の符号を付することにより重複する説明を省略する。
【0014】
[第1実施形態]
始めに、第1実施形態に係る搬送車両の学習システムについて、図1図12を参照して、詳述する。本実施形態では、車両モデル学習のための学習データを取得するための、車両の走行動作を計画する。特に、第1実施形態に係る学習システムは、過去の学習データから学習が不足しているデータを算出し、学習が不足しているデータを補うための走行を車両に行わせる。ここで、車両の走行動作計画は、車両の走行環境と過去に取得した学習データに基づき決定される。この計画によれば、事前に設定した安全制約を満たす範囲で、過去に取得した学習データとの類似度が低いデータを取得可能な走行を実現し、データの取得と車両モデルの更新を行うことを可能とする。
【0015】
図1は、第1実施形態に係る搬送車両100の構成例を示す側面図である。
図2は、第1実施形態に係る搬送車両100の構成例を示す上面図である。
【0016】
搬送車両100は、後述する図3に示す第1実施形態に係る学習システム300の一部として構成され、自動走行が可能な自動搬送車両の一例として用いられる。搬送車両100として、例えば、低床型のAGV(Automatic Guided Vehicle)が用いられる。搬送車両100は、台車の下方に潜り込み、台車と結合することで、台車に積載されている荷を搬送する。ただし、搬送車両100は上記例に限定されず、別種の無人搬送車でもよい。例えば、搬送車両100は、キャスタ付きの台車をけん引する牽引車両でもよく、パレットに積載された荷を搬送するフォークリフトでもよい。また、第1実施形態に係る学習システム300は、構内地図を作成する自走式センサに用いられてもよい。自走式センサは、搬送車両100のような搬送機能を有さない自走式の車両に設置されるセンサである。
【0017】
第1実施形態では、学習システム300で行われる搬送車両100の車両モデルの学習方法について説明する。
まず、学習システム300が搬送車両100の車両モデルを構築するための計測データを取得し、車両モデルを更新する方法について詳述する。
次に、学習システム300が、学習により得られた車両モデルに基づき、次時刻に取得すべき学習データを決定する方法について詳述する。
【0018】
なお、学習システム300は、顧客現場において車両モデルを微調整する際に使用することを想定している。学習システム300の使用時期の例として、搬送車両100を顧客現場に導入してから現場での運用を開始するまでの期間がある。この使用時期の例として、他には、現場内で搬送車両100の走行可能領域が拡大したり、倉庫内における搬送車両100の走行速度の上限が変更されたりする場合等の搬送車両100を使用する環境が変化するタイミングも想定される。また、この使用時期の例として、搬送車両100の定期点検やメンテナンス期間なども想定される。
【0019】
(搬送車両100)
第1実施形態に係る搬送車両100は、車両フレーム101と積載部102を備える。車両フレーム101の上部に積載部102が設置される。積載部102は、荷が積載される部分である。
【0020】
搬送車両100には、搬送車両100を支持する駆動輪103、従動輪104が配設されている。また、搬送車両100の内部には、走行モータ105が設けられており、駆動輪103は走行モータ105により駆動される。また、搬送車両100の内部には、操舵モータ106が設けられており、駆動輪103は操舵モータ106により操舵される。
【0021】
また、搬送車両100は、自己の車両位置の推定に使用するLiDAR(Light Detection and Ranging)107を備える。LiDAR107は、搬送車両100の移動方向の前方側に設けられる。LiDAR107は、レーザー光の照射角度を変化させながら照射範囲に存在する物体との距離を計測するセンサの一例である。第1実施形態に係るLiDAR107は、前方の物体にレーザーを照射した時の光軸角度の情報と、レーザーを反射した物体との距離の情報から、物体の形状を示す特徴点の点群情報を取得する。また、図3に示す学習システム300は、LiDAR107を活用し、SLAM(Simultameous Localization and Mapping)方式により、周辺障害物の点群データを用いて、車両位置の推定や、障害物の位置情報を含む現場倉庫の二次元地図の生成を実施する。
【0022】
また、搬送車両100は、車両速度を検出する車速センサ108、駆動輪103の駆動トルクを検出するトルクセンサ109、駆動輪103の操舵角を検出する操舵角センサ110、搬送車両100の加速度を検出する加速度センサ111、搬送車両100のヨー角速度を検出する角速度センサ112、積載部102に積載された荷による圧力を検出する圧力センサ113を備える。
【0023】
圧力センサ113の出力値は、例えば、二次元地図の作成に際して用いられる。例えば、二次元地図の作成時は、積載部102に荷が積載されていないことが望ましいので、圧力センサ113の出力値が0を示していれば、二次元地図の作成が行われる。一方で、圧力センサ113の出力値が1を示していれば、積載部102に荷が積載されているので、二次元地図の作成が行われない。なお、圧力センサ113の出力値が、積み荷の積載量に応じて変化してもよい。この場合、搬送車両100の走行速度の変化と、積み荷の積載量の組み合わせに応じた学習データの取得も可能となる。
【0024】
車両フレーム101の内部には、車載コントローラ114が搭載されている。車載コントローラ114では、上述のセンサより取得した値に基づき、車両モデルの学習や、搬送車両100の運動制御を実現するための制御指令値の演算を実施する。
【0025】
図3は、第1実施形態に係る学習システム300の機能ブロックの最小構成例を示すブロック図である。
図3において、矢印線はデータの流れを表している。なお、図3におけるセンサ201とは、図1図2に示したLiDAR107、車速センサ108、トルクセンサ109、操舵角センサ110、加速度センサ111、角速度センサ112及び圧力センサ113の総称である。センサ201から入力される各種の情報をセンサデータと称する。センサ201は、現在の搬送車両100の車両状態と、搬送車両100の周辺に存在する障害物の位置とを計測する。また、図3における駆動部202とは、走行モータ105及び操舵モータ106の総称である。
【0026】
第1実施形態に係る学習システム300は、環境情報格納部301、車両位置推定部302、学習データ集約部303、車両モデル推定部304、走行安全評価部305、データ不足度評価部306、制御指令生成部307、データ送信部308、データ格納部309、及び学習動作切替部310といった機能ブロックにより構成される。各機能ブロックは搬送車両100に搭載された車載コントローラ114上に実装される。以降では、各機能ブロックの機能の概要について説明する。
【0027】
(環境情報格納部301)
環境情報格納部301は、搬送車両100が走行する倉庫環境の二次元地図を格納する。第1実施形態において、二次元地図は、倉庫の基準座標系における障害物の位置情報を格納する。なお、二次元地図は、搬送車両100に物流倉庫内を走行させ、センサ201から入力されるセンサデータを用いることで自動生成可能である。例えば、車速センサ108や角速度センサ112を用いて算出される搬送車両100の移動量や、LiDAR107を用いて算出される車両周辺障害物との距離の情報を用いて、環境情報格納部301が二次元地図を生成することができる。
【0028】
(車両位置推定部302)
車両位置推定部302は、環境情報格納部301に格納される二次元地図の基準座標系における搬送車両100の位置及び姿勢を算出する。このため、車両位置推定部302は、環境情報格納部301から二次元地図を読み出し、センサ201から入力されるセンサデータを用いて、搬送車両100の位置及び姿勢を算出する。搬送車両100の位置及び姿勢の推定は、車速センサ108及び角速度センサ112により取得した搬送車両100の速度及び角速度の積分値を用いる方法や、LiDAR107により取得される障害物との距離情報を利用する方法がある。
【0029】
(学習データ集約部303)
学習データ集約部303は、センサデータを用いて学習に必要なデータセットを生成する。第1実施形態に係る学習データ集約部303は、車両モデルの構築に必要なセンサデータとして、搬送車両100の状態の時系列と、搬送車両100に与える制御入力の時系列を集約する。第1実施形態で想定する車両モデルは、次式(1)のように表される。
【0030】
【数1】
【0031】
式(1)において、kは時刻、sは時刻kにおける搬送車両100の状態、uは時刻kにおける制御入力を表す。
【0032】
図4は、車両モデルの構築のために用いられるデータの一例を示す図である。
図4の説明図(A)には、車両モデルの構築のために取得されるデータの一例が示される。
【0033】
第1実施形態では、搬送車両100の状態sを、進行方向に対する加速度、角加速度、進行方向に対する速度、角速度、基準座標系における搬送車両100の位置及び姿勢とする。また、車両に与える制御入力uを、トルク及び操舵角とする。また、車両モデルの入力aは、任意時刻における搬送車両100の状態sと同時刻における制御入力uで表される。車両モデルの出力として与えるデータは、任意時刻の1ステップ先の搬送車両100の状態である。ここで、図4の説明図(A)に示す時刻T1からT2、時刻T2からT3に遷移することをステップとも呼ぶ。例えば、時刻T1から見て1ステップ先とは、時刻T2である。
【0034】
例えば、図4の説明図(A)に示すように、車両モデルの入力を、時刻T1における加速度、角加速度、速度、角速度、位置、姿勢、トルク及び操舵角とした場合、モデルの出力は、時刻T2における加速度、角加速度、速度、角速度、位置及び姿勢として表される。なお、以降では、車両モデルの入力に関するデータセットを「a」と記述し、車両モデルの出力に関するデータセットを「b」と記述する。
【0035】
図4の説明図(B)には、車両モデルの構築のために生成される学習データの一例が示される。学習データ集約部303は、車両モデルの入力に関するデータセットaと、車両モデルの出力に関するデータセットbを並べた学習データを構築する。例えば、図4の説明図(A)の時刻T1からT5までの時系列データを取得した場合、図4の説明図(B)に示すように、学習データ集約部303は、車両モデルの入力に関するデータセットaと車両モデルの出力に関するデータセットbを並べた学習データn1、n2、n3、n4を作成する。そして、学習データ集約部303は、作成した学習データn1、n2、n3、n4のデータセットを車両モデル推定部304へ送信する。学習データn1、n2、n3、n4は、1ステップごとに作成される。なお、学習データの作成は、任意時刻先としてよい。例えば、2ステップ、又は3ステップごとに学習データが作成されてもよい。
【0036】
(車両モデル推定部304)
車両モデル推定部304は、学習データ集約部303で集約されたデータセットを用いて、搬送車両100の運動を表現する車両モデルを推定する。このため、車両モデル推定部304は、現在の搬送車両100の車両状態と、搬送車両100の周辺に存在する障害物の位置とを計測するセンサ201から取得した学習データとを学習して、搬送車両100の運動を表現する車両モデルを推定する。第1実施形態では、車両モデル推定部304が上式(1)の車両モデルの関数fを、ガウス過程回帰を用いて生成する。ガウス過程回帰とは、対象の車両モデルf(a)がガウス過程に従うという仮定の下で、モデルの入力のデータセットaを与えたときの車両モデル関数の事後分布f(a)を推定する方法である。ガウス過程に従う関数fは、関数の平均値m(a)と共分散行列k(a,a’)、観測ノイズσIを用いて以下の正規分布の関数の式(2)で表現される。
【0037】
【数2】
【0038】
なお、共分散行列k(a,a’)はカーネル関数を用いて表現され、aとa’の値が近いほど大きい値をとる。以降では、車両モデルの出力の平均値であるm(a)を「m」と記載し、車両モデルの出力の分散値である(k(a,a’)+σI)を「V」と記載する。車両モデル推定部304は、式(1)における車両モデルの入力である制御入力uと状態sに対する、車両モデルの出力であるsk+1の平均値mと分散値Vを演算する。
【0039】
図5は、車両モデル推定部304が用いるガウス過程回帰により構築される車両モデルの概要図である。
図5の説明図(A)には、車両モデルの入力aにおける確率密度関数の概形が表されている。図5の説明図(A)の横軸に車両モデルの出力b、縦軸にその確率Pが示されている。確率密度関数は、平均値mを中心とする釣り鐘型の形状で表される。
【0040】
図5の説明図(B)には、車両モデルの関数が示されている。図5の説明図(B)の横軸は車両モデルの入力a、縦軸は車両モデルの出力bを示している。また、図5の説明図(B)は、車両モデルの関数の平均値mを実線で示し、関数の平均値mと分散値Vにより算出される車両モデルの95%信頼区間(m±2√V)を破線で示している。類似度が高い学習データが密集している箇所については、分散値Vが小さくなる。一方、類似度が高い学習データが密集していない箇所については、分散値Vが大きくなる。このため、データ不足度評価部306は、分散値Vの大きさに基づいて、学習データ不足度を判別することが可能となる。
【0041】
図6は、図4の説明図(B)に示した複数の学習データn1、n2、n3、n4を用いて推定される車両モデルの一例を示す図である。車両モデルは、図6に実線で示す平均値mと、破線で示す分散値Vのいずれをも含むグラフとして表される。図中に示す分散閾値th1は、あるデータaにおける、平均値mと分散値Vの距離の大小を判断するために用いられる。
【0042】
学習データの周辺に類似した計測データが存在する領域は車両モデルの信頼区間の幅が狭く、周辺に類似した計測データが存在しない領域は車両モデルの信頼区間の幅が広い。例えば、図6に示す車両モデルに対し、未計測のデータである入力a1、a2、a3を車両モデルの入力として与えた場合、車両モデルの入力a2に対して計測データn3が近接している。そして、入力a1を車両モデルに与えた際の出力b1の分散値は小さく、平均値mと分散値Vの距離が分散閾値th1未満である。このことは、入力a1,a2において学習データが充足していることを表す。一方、入力a3の周辺には計測データが存在しないため、入力a3を車両モデルに与えた際の出力b3の分散値は大きく、平均値mと分散値Vの距離が分散閾値th1以上である。このことは、入力a3の周辺の学習データが不足していることを表す。本手法により、搬送車両100の運動を表す車両モデルの構築と、車両モデル構築にあたるデータの充足、不足状況を確認することができる。
【0043】
図7は、1ステップ先の搬送車両100の走行経路401の平均値と分散値を、二次元地図にマッピングした様子を表す説明図である。ここでは、図6に示した車両モデルに未学習の入力a1、a2、a3を与えた場合に計算される1ステップ先の搬送車両100の走行経路401の平均値と分散値が二次元地図にマッピングされている。
【0044】
ただし、図7の走行経路401について、実線は予測される将来の位置の平均値mを表し、点線領域は将来の位置の95%信頼区間(m±2√V)を表している。図6において、事後確率の分散値が小さい出力b2は、図7の走行経路の位置の信頼区間が狭く、車両モデルにより予測される将来の状態が絞られていることから、将来の状態の確からしさが高いことが分かる。一方、事後確率の分散値が大きい出力b3は、図7の走行経路の位置の信頼区間が広いため、将来の状態の確からしさが低いことが分かる。
【0045】
(走行安全評価部305)
走行安全評価部305は、車両モデル推定部304で推定される車両モデルを用いて将来の走行安全評価を行う。そこで、走行安全評価部305は、搬送車両100の運動を表現する車両モデルと、現在の搬送車両100の車両状態とに基づいて任意時刻先の車両状態を予測し、予測した任意時刻先の車両が、予め設定された制約条件を満たす範囲内で走行可能であるか否かを判定する。この際、走行安全評価部305は、車両モデル推定部304が推定した車両モデルと、センサ201から取得した現在の状態とを用いて、現在時刻から任意時刻先までの時刻における搬送車両100の状態の平均値m及び分散値Vを予測する。そして、走行安全評価部305は、予測した状態が車両安全に関する制約を満たしているかを判定し、判定結果を制御指令生成部307へ送信する。
【0046】
車両安全に関する制約は、例えば操舵角の上下限、トルクの上下限、速度の上下限、加速度の上下限、角速度の上下限、角加速度の上下限、などが挙げられる。また、現場運用ルールについては車両が走行可能な位置や、倉庫内位置に応じた速度上限などが挙げられる。搬送車両に関する安全規格として、例えば無人産業車両とそのシステムに関する安全規格ISO3691-4では、車両と周辺障害物の距離の下限値、人が混在している状況における走行速度上限値や人と搬送車両100の距離の下限値などが挙げられる。このような情報も車両安全に関する制約として用いることができる。
【0047】
(データ不足度評価部306)
データ不足度評価部306は、車両モデル推定部304で推定される車両モデルを用いて、任意の制御入力uに対するデータの不足度(「学習データ不足度」と呼ぶ)を算出する。この時、データ不足度評価部306は、過去の学習で取得した学習データと、次の学習で取得する学習データとの類似度を評価指標とする学習データ不足度を算出する。学習データ不足度は、過去の学習でセンサ201から取得した学習データの類似度により決定され、類似度が高いほど学習データ不足度は低く、過去の学習データとの類似度が低いほど学習データ不足度は高く算出される値である。
【0048】
第1実施形態では、学習データ不足度として、将来の搬送車両100の状態の分散値を用いる。例えば、図6に示す制御入力uを含む車両モデルの入力aにおいて、複数の入力aの候補が存在する。そして、複数の入力aの候補から求められる将来の状態の分散値を比較する。例えば、図6に示す入力a2とa3の将来の状態の分散値が比較される。この結果、データ不足度評価部306は、将来の状態の分散値が大きい場合、車両モデルの入力に相当するデータが不足していると評価し、将来の状態の分散値が小さい場合、データは充足していると評価する。
【0049】
データ不足度評価部306は、車両モデル推定部304が推定した車両モデルと、センサ201から取得した現在の状態とを用いて、現在時刻から任意時刻先までの時刻における状態の分散値を算出し、分散値を用いた評価関数を計算して求めた学習データ不足度を制御指令生成部307へ送信する。データ不足度評価部306がセンサ201から現在の搬送車両100の状態を表すセンサデータを取得する方法として、学習データ集約部303を介してセンサデータを取得してもよいし、センサ201から直接センサデータを取得してもよい。データ不足度評価部306は、評価関数の計算結果に加え、現在時刻から任意時刻先までの走行速度の最大値、走行旋回半径の最小値を予測し、予測結果を制御指令生成部307とデータ送信部308へ送信する。
【0050】
なお、データ不足度評価部306は、学習が不足している動作、及び車両に積載される積み荷の積載量の組み合わせを算出することができる。そして、制御指令生成部307は、現在の積載状況と学習データの不足状況に応じて、走行動作に加え、搬送車両100に積み荷動作及び積み下ろし動作を行わせるための制御指令を生成する。このため、走行安全評価部305は、圧力センサ113の出力値に基づいて積み荷の積載状況を判断できる。また、学習データ集約部303は、積み荷の状況に応じた学習データを取得することができる。そして、制御指令生成部307は、積み荷の積載量が多い時は搬送車両100の速度が遅くなるような車両状態であっても、搬送車両100の動作を正確に制御することが可能となる。
【0051】
(制御指令生成部307)
制御指令生成部307は、走行安全評価部305の評価結果と、データ不足度評価部306の評価結果に基づき、制約条件を満たす範囲内で、学習データ不足度を下げる走行を搬送車両100に行わせるための制御指令を駆動部202へ送信する。そこで、走行安全評価部305の評価結果、及びデータ不足度評価部306の評価結果に基づき、制約条件を満たす範囲内で、学習データ不足度が低くなる走行を搬送車両100に行わせるための制御指令を生成し、搬送車両100を駆動する駆動部202に制御指令を与える。例えば、制御指令生成部307は、学習データ不足度が最も高い制御入力uを含む制御指令を生成する。この時、制御指令生成部307は、過去に収集した学習データに基づき、車両モデル推定部304による学習が不足している搬送車両100の動作を決定し、動作を搬送車両100に行わせるための制御指令を駆動部202に与える。この制御指令に従って駆動部202が駆動することで、学習データ不足度が低くなることが見込まれる。
【0052】
制約条件は、搬送車両100の安全性を確保するための安全制約であって、安全制約は、搬送車両100の走行速度の上下限、角速度の上下限、加速度の上下限、角加速度の上下限、及び車両と障害物との距離に関する情報の少なくとも1つを含む。安全制約は、搬送車両100の車両性能、搬送車両100が使用される現場の運用ルール、搬送車両100の形状、搬送車両100に積載される積み荷の形状、積み荷の重さ及び重心位置に応じて変化する。
【0053】
また、学習データ不足度が高い制御入力uは、例えば、後述する図10に示す制御入力u1~u6から選択される一つのデータである。そして、駆動部202は、学習データデータ不足度が低くなるよう、例えば、将来の状態の分散値が小さくなるように搬送車両100を駆動する。
【0054】
(データ送信部308)
データ送信部308は、制御指令生成部307により生成された制御指令値と、学習データ不足度の最大値との時系列データを送信する。
【0055】
(データ格納部309)
データ格納部309は、データ送信部308から送信される時系列データを格納する。
【0056】
(学習動作切替部310)
学習動作切替部310は、データ格納部309に格納された時系列データを読み出し、車両モデル推定部304による学習の継続可否を判断する。学習動作切替部310は、データ不足度評価部306の評価結果である平均値mと分散値Vの距離の最小値が分散閾値未満である場合は走行安全評価部305の評価結果に基づき学習の停止を指示する。一方、データ不足度評価部306である平均値mと分散値Vの距離の最小値が分散閾値以上の場合はデータ不足度評価部306及び走行安全評価部305の評価結果に基づき学習の継続を指示する。この学習の継続可否の判断は、例えば、搬送車両100が走行可能な全ての領域に対して行われる。そして、学習動作切替部310により学習の継続可否が自動で判断されるので、同じ場所での重複した学習を防ぐことができる。
【0057】
以上が第1実施形態を実現するための最小機能ブロック構成である。以降では、図8を用いて、第1実施形態に係る学習システム300の処理の流れを説明する。
図8は、第1実施形態に係る学習システム300の処理の流れを示すフローチャートである。
【0058】
まず、車両モデル推定部304は、学習開始時に車両モデル(図6を参照)を初期化する(S1)。制御対象の車両モデルの初期化として、車両モデル推定部304が搬送車両100の入力に対する状態の平均値や分散値を初期化する処理がある。そして、車両モデル推定部304は、初期化した車両モデル(「初期モデル」とも呼ぶ)を自身に格納する。車両モデル推定部304は、例えば、制御入力uに対する状態の平均値の初期値を、搬送車両100の力学特性を考慮した運動方程式を用いて算出する。また、車両モデル推定部304は、車両モデルの分散値を、制御入力uの値に依存しない一定値に設定する。分散値は、車両モデルのモデル化誤差や車両モデルのパラメーター計測誤差、センシング誤差を考慮等、車両モデルの不確定要素を考慮して設計される。
【0059】
次に、車両位置推定部302及び学習データ集約部303は、センサ201から入力されるセンサデータを用いて、現在時刻における加速度、速度、角速度、角加速度、トルク、操舵角等の搬送車両100の状態を取得する(S2)。ここでは、図4に示した状態s及び制御入力uからなるデータセットがステップごとに取得される。また、車両位置推定部302は、環境情報格納部301から二次元地図を取得し、二次元地図上における搬送車両100の現在位置と姿勢を取得し、次処理へ移行する。
【0060】
次に、走行安全評価部305は、将来の走行安全評価を実施し、走行安全評価結果を制御指令生成部307に送信する(S3)。走行安全評価部305は、将来の走行安全評価を実施する際、環境情報格納部301から入力した二次元地図と、車両モデル推定部304から入力した車両モデルと、センサ201から取得したセンサデータに基づく搬送車両100の現在の状態と、車両位置推定部302が推定した車両位置とを用いる。走行安全評価結果に基づいて、制御指令生成部307により制御指令が生成される。
【0061】
ステップS3にて、まず、走行安全評価部305は、現在時刻kから予測ステップ数Ny後のk+Ny-1までの各ステップにおける状態の平均値及び分散値を算出する。現在時刻kから予測ステップ数Ny後のk+Ny-1の制御入力uは、次式(3)のように表される。
【0062】
【数3】
【0063】
状態予測では、まず1ステップ目として、走行安全評価部305が、センサ201から取得した現在時刻の入力uと状態s、車両モデル推定部304で推定した車両モデルを用いて、次ステップ(時刻k+1)における状態sk+1を予測する。2ステップ目以降については、走行安全評価部305が、前ステップで演算された状態sk+nと任意の制御入力uk+n、車両モデルを用いて、次ステップの状態sk+n+1を算出する。走行安全評価部305は、このような処理を予測ステップ数Nyまで繰り返すことで、任意の制御入力に対する状態の平均値m及び分散値Vを各ステップ算出することが可能である。制御入力uを与えた際の、現在時刻kから予測ステップ数Ny後(時刻k+Ny-1)の将来の状態sは、次式(4)のように表される。
【0064】
【数4】
【0065】
次に、走行安全評価部305は、予測した現在時刻kから予測ステップ数Nyまでの状態やその確率が、車両の限界性能等の車両制約や現場運用ルール、搬送車両に関する安全規格などにより決定される搬送車両100の状態に関する制約を満たしているかを判定する。まず、走行安全評価部305は、現在時刻kから予測ステップ数Ny後の将来の状態が、事前に設定した操舵角の上下限、速度の上下限、加速度の上下限、角速度の上下限、角加速度の上下限、車両が走行可能な位置や、倉庫内位置に応じた速度上限を95パーセント以上の確率(信頼区間m±2√V以内)で満たしているかを判定する。
【0066】
また、現在時刻kから予測ステップ数Ny後の車両位置と、障害物の位置情報に基づき車両と障害物の干渉判定を実施する。
図9は、走行安全評価部305が車両モデルを用いて行う障害物干渉判定の一例を示す図である。
【0067】
図9には、図の左から右に移動する搬送車両100の車両モデルの例が示される。図9に示す車両モデルは、横軸をXm、縦軸をYmとする基準座標系500で表される。搬送車両100の上下には、移動方向に沿った障害物501が設けられている。搬送車両100が走行する様子は、図9の説明図(A)の走行経路402,図9の説明図(B)の走行経路403により示される。障害物501の内側が、搬送車両100が走行可能な走行可能領域502である。搬送車両100は、障害物501に干渉(例えば、接触)しないように走行可能領域502の範囲内を移動することが求められる。
【0068】
走行安全評価部305により実施される障害物干渉判定では、現場倉庫内の二次元地図やLiDAR107で検知した、基準座標系500上に存在する障害物501の位置情報が用いられる。また、障害物緩衝判定では現場運用ルールや安全規格を踏まえて設定される、基準座標系500上の走行可能領域502が用いられる。走行安全評価部305は、障害物干渉判定に際して、現在時刻kから予測ステップ数Ny後の車両位置で示される搬送車両100が、95パーセント以上の確率(信頼区間m±2√V以内)で走行安全領域の範囲内を走行するか否かを判定する。
【0069】
図9の説明図(A)は、未学習のデータである入力a1、a2、a3について、車両モデルの出力の分散値が大きい順、すなわちモデルの入力がa3、a1、a2の順となるように制御入力uを与えた場合の走行経路を示している。
また、図9の説明図(B)は、車両モデルの入力がa1、a3、a2の順となるような制御入力uを与えた場合の走行経路を示している。
【0070】
このように図9の説明図(A)に示す搬送車両100の走行経路402より、1ステップ目の車両モデルの入力がa3となる制御入力uを与えた結果、次ステップで搬送車両100が障害物501に干渉している。一方、図9の説明図(B)に示す走行経路403より、モデルの入力がa1、a3、a2の順となる制御入力uを与えた場合、搬送車両100が障害物501と干渉せずに走行可能である。
【0071】
そして、ステップS3では、走行安全評価部305が走行安全に関する評価結果を0又は1の値で出力する。なお、走行安全評価結果が1であることは、事前に設定した安全に関する制約を満たしていることを意味する。走行安全評価部305は、現在時刻kから予測ステップ数Ny後の将来の状態が、事前に設定した操舵角の上下限、速度の上下限、加速度の上下限、角速度の上下限、角加速度の上下限、車両が走行可能な位置や、倉庫内位置に応じた速度上限を95パーセント(m±2√V)以上の確率で満たしており、かつ、現在時刻kから予測ステップ数Ny後の車両位置が、95パーセント以上の確率で走行可能領域502の範囲内を走行すると評価した場合、走行安全評価結果として1を出力する。一方、走行安全評価結果が0であることは、事前に設定した安全に関する制約を満たしていないことを意味する。走行安全評価部305は、上述した条件を満たしていないと評価した場合は走行安全評価結果として0を出力する。
【0072】
また、ステップS3では、現在時刻からNy後のk+Ny-1までの制御入力uの時系列u=[u、・・・、uk+Ny-1]Tと、制御入力uを与えた際の走行安全評価結果である0又は1を、制御指令生成部307へ送信する。
【0073】
また、データ不足度評価部306は、データ不足度評価結果を制御指令生成部307に送信する(S4)。データ不足度評価部306は、データ不足度評価に際して、車両モデル推定部304で推定された車両モデルと、センサ201から取得した現在の状態sと、任意の制御入力uを用いる。そして、データ不足度評価部306は、現在時刻から予測ステップ数Ny後の時刻k+Ny-1までの各ステップにおける状態の平均値m及び分散値Vを予測し、分散値Vを評価指標とした評価関数を計算する。また、データ不足度評価部306は、データ不足度の評価関数の一例として、現在時刻kから予測ステップ数Ny後について、制御入力uを与えた際の将来の位置・姿勢の分散値の逆数を用いた、次式(5)に示す評価関数Jを設定する。
【0074】
【数5】
【0075】
式(5)のV(k)、V(k)、Vθ(k)は、それぞれ図7に示した基準座標系500において、時刻kにおける制御入力u(k)を与えた際の、X方向における車両位置の分散値、Y方向における車両位置の分散値、車両姿勢の分散値を表し、p、q、rはそれぞれ重みを表す。ただし、使用される評価関数は上記以外のものでもよく、例えば、加速度、角加速度、速度、角速度の分散を用いてもよい。
【0076】
また、データ不足度評価部306は、次に取得するデータによる車両モデル精度向上に関する評価を実施するために、状態予測時に車両モデルの入力(x、u)と出力(xk+1)のデータを保存しておく。そして、データ不足度評価部306は、保存したデータを用いて車両モデル推定部304と同様の手法で車両モデルを更新する。データ不足度評価部306は、更新した車両モデルにより実現される状態予測結果の分散の減少量を評価する関数を設定することで、車両モデルを効率的に更新する制御入力uを算出することもできる。
【0077】
ステップS4では、データ不足度評価部306は、現在時刻からNy後のk+Ny-1までの制御入力uの時系列データである制御入力u=[u、・・・、uk+Ny-1]Tと、制御入力u=[u、・・・、uk+Ny-1]Tを与えた際の最高速度、最小旋回半径、評価関数Jの計算結果を、制御指令生成部307とデータ送信部308へ送信する。
【0078】
次に、制御指令生成部307は、ステップS3,S4における処理結果を元に、搬送車両100の制御入力uを決定し、制御入力uに基づく制御指令を生成する(S5)。ここでは、制御指令生成部307は、走行安全評価結果に基づいて、走行安全を確保した車両モデルに対して、データ不足度が最も高い制御入力uに基づく制御指令を生成する。併せて、制御指令生成部307は、現在の環境から搬送車両100が実行可能な動作を把握し、実行可能な動作の中からデータ不足度が最も高い制御入力uを含む制御指令を駆動部202に与える。駆動部202には、図4に示した制御入力uの1ステップごとに制御指令が生成され、送信される。
【0079】
図10は、制御指令生成部307が駆動部202へ送信する制御入力uの各候補に対する値の例を示す一覧表である。ここでは、制御入力の各候補(制御入力u1~u6)に対して、ステップS3で算出された走行安全に関する評価結果、ステップS4で算出したデータ不足度評価結果、最高速度[m/s]、最小旋回半径[m]が示されている。
【0080】
制御指令生成部307は、図10内に示す候補の中から、走行安全に関する評価結果の出力値が1である制御入力uの中で、データ不足度評価結果が最も小さい制御入力uを抽出し、制御入力uの1ステップ目の値を駆動部202へ送信する。図10に示す例の場合、走行安全評価結果が1である制御入力はu1、u3、u6である。u1、u3、u6の制御入力に対応するデータ不足度評価結果は、それぞれ20、40、10である。データ不足度評価結果が最も小さい制御入力はu6である。そこで、制御指令生成部307は、制御入力u6の1ステップ目を駆動部202へ送信し、次処理へ移行する。
【0081】
図11は、走行安全評価結果及びデータ不足度評価結果が最も小さい制御入力が複数存在した場合における、値の例を示す一覧表である。図10図11の違いは、図10に示す制御入力u6のデータ不足度評価結果が10であるのに対し、図11に示す制御入力u6のデータ不足度評価結果が20であることである。
【0082】
制御指令生成部307は、学習データ不足度の評価結果において、車両に設定した制約条件を満たす範囲内で、学習データ不足度が同様の制御入力が複数存在している場合、データ不足度評価部306の評価結果に加え、事前に決めた優先度により制御指令を決定する。例えば、学習データ不足度が同じ値であれば、制御指令生成部307は、安全性の高い制御入力、すなわち搬送車両100の速度が低速である、又は最小旋回半径が大きいといった優先度により決定した制御入力に基づいて、制御指令を決定する。このように優先度としては、搬送車両100の速度、最小旋回半径といった指標を用いることができる。
【0083】
図11において、走行安全評価結果が1である制御入力はu1,u3,u6である。また、u1とu6の制御入力に対応するデータ不足度評価結果は、それぞれ20、20である。この場合、制御指令生成部307は、データ不足度及び走行安全に関する評価結果に加え、別の優先度に基づき制御入力を決定する。
【0084】
第1実施形態では、制御指令生成部307がデータ不足度評価部306より取得する、各制御入力列を与えた際の最高速度と最小旋回半径に基づき制御入力を決定する。例えば、制御指令生成部307は、走行安全に関する評価結果の出力値が1である制御入力の中で、データ不足度評価結果が最も小さい制御入力が複数存在した場合、最高速度が小さい制御入力を優先的に選択する。
【0085】
また、走行安全評価結果の列が1であり、かつデータ不足度評価結果が最も小さい制御入力列が複数あり、最高速度が最も小さい制御入力が複数ある場合、制御指令生成部307は、走行旋回半径が大きい制御入力を優先的に選択する。例えば、図11において、走行安全評価結果が1であり、かつデータ不足度評価結果が最も小さい制御入力はu1とu6である。この場合、制御指令生成部307では、u1とu6の最高速度を比較する。u1とu6の制御入力に対応する最高速度は、それぞれ0.1、0.5である。そこで、制御指令生成部307は、最高速度の小さい制御入力u1を選択する。その後、制御指令生成部307は、制御入力u1の1ステップ目を駆動部202へ送信し、次処理へ移行する。
【0086】
次に、学習データ集約部303は、学習データを生成する(S6)。この処理では、ステップS5にて生成された制御指令に基づき駆動部202が搬送車両100を走行させた結果を用いて学習データが生成される。例えば、車両位置推定部302が基準座標系500上における搬送車両100の位置と姿勢を演算し、学習データ集約部303が図4の説明図(A)に示す時系列データを集約し、図4の説明図(B)に示す学習データを生成する。学習データ集約部303により学習データが生成された後、次処理へ移行する。
【0087】
次に、車両モデル推定部304は、ステップS6で生成された学習データを用いて、車両モデルを更新する(S7)。車両モデルの入力をa、車両モデルの出力をbとする。車両モデル推定部304は、取得したn個の観測データ(a、b)に基づき、入力aが与えられたときの車両モデルの関数の事後分布の平均値m及び分散値Vを、以下の変量正規分布の公式(6)、(7)を用いて計算する。
【0088】
【数6】
【0089】
式(6)、(7)により、図6に示した折れ線で示される車両モデルの関数の事後分布の平均値m及び分散値Vが算出される。車両モデル推定部304は、上記の計算により車両モデルの関数の平均値と分散値を算出後、次処理へ移行する。
【0090】
次に、車両モデル推定部304は、車両モデルが目標精度を達成したか否かを判定する(S8)。車両モデルの目標精度は、例えば、ステップS7で計算された車両モデルの分散値の最大値により決定される。車両モデルの分散値の最大値が分散閾値未満である場合、過不足なくデータを取得できたと判断され、車両モデルの分散値の最大値が分散閾値以上である場合、データが不足していると判断される。例えば、図6に示す入力a1の分散値の最大値と平均値との差分は分散閾値th1未満であるので、車両モデル推定部304は、過不足なくデータを取得できると判断する。一方、図6に示す入力a3の分散値の最大値と平均値との差分は分散閾値th1以上であるので、車両モデル推定部304は、データが不足すると判断する。
【0091】
なお、この分散閾値th1は、車両に搭載されているセンサ201の性能(センシング誤差)等を基に決定される。車両モデルが目標精度を達成した場合(S8のYES)、車両モデル推定部304は、学習を終了する。一方、車両モデルが目標精度を達成していない場合(S8のNO)、ステップS2へ移行し、再び処理が繰り返される。
【0092】
(計算機10)
次に、学習システム300の車載コントローラ114を構成する計算機10のハードウェア構成を説明する。
図12は、計算機10のハードウェア構成例を示すブロック図である。計算機10は、本実施の形態に係る車載コントローラ114として動作可能なコンピューターとして用いられるハードウェアの一例である。本実施の形態に係る車載コントローラ114は、計算機10(コンピューター)がプログラムを実行することにより、図3に示した各機能ブロックが連携して行う、図8に示す車両モデルの更新方法を実現する。
【0093】
計算機10は、バス14にそれぞれ接続されたCPU(Central Processing Unit)11、ROM(Read Only Memory)12、及びRAM(Random Access Memory)13を備える。さらに、計算機10は、不揮発性ストレージ15及び通信インターフェイス16を備える。
【0094】
CPU11は、本実施の形態に係る各機能を実現するソフトウェアのプログラムコードをROM12から読み出してRAM13にロードし、実行する。RAM13には、CPU11の演算処理の途中で発生した変数やパラメーター等が一時的に書き込まれ、これらの変数やパラメーター等がCPU11によって適宜読み出される。CPU11がROM12から読み出したプログラムコードを実行することで、車載コントローラ114内の各機能ブロックの機能が実現される。ただし、CPU11に代えてMPU(Micro Processing Unit)を用いてもよい。
【0095】
不揮発性ストレージ15としては、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-ROM、CD-R又は不揮発性のメモリ等が用いられる。この不揮発性ストレージ15には、OS(Operating System)、各種のパラメーターの他に、計算機10を機能させるためのプログラムが記録されている。ROM12及び不揮発性ストレージ15は、CPU11が動作するために必要なプログラムやデータ等を記録しており、計算機10によって実行されるプログラムを格納したコンピューター読取可能な非一過性の記憶媒体の一例として用いられる。
【0096】
通信インターフェイス16には、例えば、NIC(Network Interface Card)等が用いられ、NICの端子に接続されたLAN(Local Area Network)、専用線等を介して各種のデータを装置間で送受信することが可能である。例えば、車載コントローラ114がセンサ201からセンサデータを取得するインターフェイス、車載コントローラ114が駆動部202に制御指令を送信するインターフェイスは、通信インターフェイス16により構成される。
【0097】
以上が第1実施形態に係る学習システム300で行われる処理の流れである。以上説明した第1実施形態に係る学習システム300では、データ不足度評価部306によるデータ不足度の評価結果が制御指令生成部307に出力されるので、制御指令生成部307が不足するデータを補うような制御指令を生成することができる。この際、生成される制御指令は、走行安全評価部305により走行安全の評価結果が反映されたものとなる。このため、学習システム300では、搬送車両100の走行安全性を高めつつ、車両モデルの作成に必要な学習データを過不足なく集めて、駆動部202に制御指令を送信可能な車載コントローラ114を構成することができる。また、学習システム300が学習データを集めるために、搬送車両100に不要な動作を行わせる必要がないので、学習データの取得に要する時間が短くなる。
【0098】
また、制御指令生成部307は、センサ201から取得した障害物情報と、過去に収集された学習データに基づき制御指令を決定し、過去の学習時の環境に応じて、次の学習のために生成する制御指令を変化させる。このため、駆動部202に出力される制御指令は一定にならず、学習時の環境に応じた柔軟な学習及び制御指令による搬送車両100の運用が可能となる。
【0099】
[第1実施形態の変形例]
なお、制御指令生成部307は、搬送車両100の安全性と、学習データ不足度に加え、作業目標に関する評価結果に基づき動作を決定してもよい。この場合、制御指令生成部307は、目標走行速度、目標位置までの到達時間、及び単位時間当たりの目標搬送量に関する情報の少なくとも1つに基づいて作業目標を決定する。そして、制御指令生成部307は、作業目標を満たす範囲で、安全制約を満たし、学習データ不足度評価が高い学習データが存在する場合、その学習データを取得するための走行を実施し、取得したデータを用いて車両モデルを更新する。このような構成とすることで、搬送車両100の実運用が行われている間に、倉庫内の荷物や棚等の配置が変わっても、学習システム300は、現在の倉庫内の荷物や棚等の配置に合わせた倉庫内地図を作成することができる。このため、学習システム300は、搬送車両100の搬送効率を低下させることなく、学習データを収集し、車両モデルを更新することができる。
【0100】
[第2実施形態]
次に、本発明の第2実施形態に係る搬送車両の学習システムの構成例について、図13図14を参照して、詳述する。
第1実施形態に係る学習システム300では、一台の搬送車両を用いて学習データの取得と車両モデルの更新を実施する手法について記載した。一方、一台の搬送車両で学習データの取得と車両モデルの更新を実施する場合、車両モデルの更新に必要な学習データの取得に時間がかかることや、単一車両では取得できない学習データが存在する場合がある。これを踏まえ、図13に示す第2実施形態に係る学習システム300Aでは、第1実施形態に係る学習システム300の枠組みを拡張し、複数の搬送車両の学習をサーバにより管理し、同一車種の複数の車両を用いて学習データを取得し、車両ごとに車両モデルを更新する。以下、第2実施形態に係る学習システム300Aで行われる車両モデルの更新方法について説明する。
図13は、第2実施形態に係る学習システム300Aの構成例を示すブロック図である。
【0101】
本実施形態では、図3に示した学習システム300に対して、複数台の車両モデルを更新するためのサーバである学習管理部2001と、学習管理部2001と各車両間のデータのやり取りを実施する通信装置2002が追加されている。そして、学習システム300Aは、複数の車両1000~1002と、学習管理部2001とで構成される。
【0102】
学習管理部2001は、サーバ機能を有しており、環境情報格納部301、車両位置推定部302、学習データ集約部303、車両モデル推定部304、走行安全評価部305、データ不足度評価部306、制御指令生成部307を備える。学習管理部2001が備える各機能ブロックの機能は、図3に示した車載コントローラ114が備える各機能ブロックの機能と同様であるため、機能の詳細な説明は省略する。
【0103】
また、搬送車両1000~1002(搬送車両を区別しない場合、「各車両」のように略記する)は、図3に示した学習システム300と同様に、駆動部202とセンサ201を備える。そして、図13に示す学習システム300Aは、図3に示した車載コントローラ114と同様の機能が、学習管理部2001に集約された構成としている。
【0104】
学習管理部2001は、図3に示した学習システム300の車載コントローラ114と同様の機能ブロックを有する。
走行安全評価部305は、複数の車両の運動を表現する車両モデルと、センサにより計測された現在の車両状態とに基づいて任意時刻先の車両状態を予測し、予測した任意時刻先の車両が、予め設定された制約条件を満たす範囲内で走行可能であるか否かを判定する。
データ不足度評価部306は、過去の学習で取得した学習データと、次の学習で取得する学習データとの類似度を評価指標とする学習データ不足度を算出する。
制御指令生成部307は、走行安全評価部305の評価結果、及びデータ不足度評価部306の評価結果に基づき、制約条件を満たす範囲内で、学習データ不足度が低くなる走行を複数の車両に行わせるための制御指令を生成し、各車両が有する駆動部202に制御指令を与える。
車両モデル推定部304は、各車両のセンサ201から取得した車両状態とを表す学習データを学習して、複数の車両の車両モデルを推定する。
【0105】
各車両は、走行時に取得したセンサデータを、通信装置2002を介して、学習管理部2001に設けられる車両位置推定部302、学習データ集約部303及び走行安全評価部305へ送信する。学習管理部2001が取得したセンサデータを用いて、車両モデル推定部304が車両モデルを更新する。また、走行安全評価部305が評価した走行安全評価結果と、データ不足度評価部306が評価したデータ不足度評価結果とに基づいて、制御指令生成部307が各車両の制御入力uを決定する。ここで、走行安全評価結果は各車両の走行環境に応じて変化するので、制御指令生成部307は、各車両の走行安全が確保された状態で、各車両から取得可能な学習データであって、学習データ不足度が最も高い制御入力uを各車両に与える構成となっている。そして、学習管理部2001は、制御指令生成部307が決定した各車両の制御入力uを、通信装置2002を介して各車両の駆動部202に送信する。
【0106】
図14は、学習システム300Aが、複数車両を用いて学習する際の走行環境の例である。図14には、第2実施形態に係る学習システム300Aで想定される利用形態が示されている。ここでは、略U字型の通路に各車両が配置され、移動する様子が示される。
【0107】
搬送車両1001は矢印で示す車両進行方向に対し、左右方向に存在する障害物501との距離が近い。そのため、搬送車両1001が旋回走行を実施した場合、基準座標系500における搬送車両1001の車両位置が、走行可能領域502を逸脱してしまう。一方で、搬送車両1001の車両進行方向における行き止まりとなる障害物501までの経路長が長いため、搬送車両1001のセンサ201は、搬送車両1001が直進走行する時のデータを取得可能である。
【0108】
一方、搬送車両1002は、搬送車両1002の車両進行方向に対する経路長が短い。このため、搬送車両1002が直進すると障害物501に干渉してしまう。しかし、搬送車両1002の進行方向に対する右方向に存在する障害物501との距離が遠いため、搬送車両1002のセンサ201は、搬送車両1002が旋回走行する時のデータを取得可能である。
【0109】
このような状況を踏まえると、搬送車両1001が直進走行データを取得し、搬送車両1002が旋回データを取得することで、搬送車両1000が、搬送車両1001と搬送車両1002が取得したデータを補完するようにデータを取得するとよい。このように各車両がそれぞれデータを取得することで、単一の搬送車両100だけでは取得できない学習データを取得することが可能となる。このため、学習システム300Aが学習データの取得に要する時間を削減することができる。
【0110】
以降では、本実施形態の処理の流れについて説明する。なお、第1実施形態に係る処理と重複する箇所に関してはその概略のみ説明する。また、図8のフローチャートに対応付けて各ステップ番号と共に処理を説明する。
【0111】
まず、車両モデル推定部304は、学習開始時に、第1実施形態に係る処理と同様に制御対象の車両モデルの初期化を行う(S1)。この初期化では、例えば、図6に示した車両モデルが初期化される。そして、車両モデル推定部304は、各車両の入力に対する状態の平均値と分散値を用いて表現した車両モデルの初期モデルを設計し、格納する。
【0112】
次に、車両位置推定部302及び学習データ集約部303は、通信装置2002を介して各車両の現在の加速度、速度、角速度、角加速度、トルク、操舵角を取得する(S2)。また、車両位置推定部302が環境情報格納部301から二次元地図を取得し、各車両の二次元地図上の現在位置と姿勢を取得する。
【0113】
次に、走行安全評価部305が、車両モデルと現在の状態を用いて、各車両の将来の走行安全評価を実施し、走行安全評価結果を制御指令生成部307に送信する(S3)。状態予測では、現在時刻kから予測ステップ数Ny後のk+Ny-1までの各ステップにおける状態の平均値及び分散値を算出する。各車両の現在時刻kから予測ステップ数Ny後のk+Ny-1の制御入力uは、次式(8)により表される。
【0114】
【数7】
【0115】
ただし、iは車両番号であり、車両ごとに割り振られている値である。また、車両iについて、制御入力u(i)を与えた際の、現在時刻kから予測ステップ数Ny後のk+Ny-1の将来の状態sは、次式(9)により表される。
【0116】
【数8】
【0117】
次に、走行安全評価部305は、各車両について、予測した現在時刻kから予測ステップ数Nyまでの状態やその確率が、車両の限界性能等の車両制約や現場運用ルール、搬送車両に関する安全規格などにより決定される車両の状態に関する制約を満たしているかを判定する。
【0118】
各車両について、任意の制御入力uを与えた際の現在時刻kから予測ステップ数Ny後の将来の状態を計算し、全ての車両が、事前に設定した操舵角の上下限、速度の上下限、加速度の上下限、角速度の上下限、角加速度の上下限、車両が走行可能な位置や、倉庫内位置に応じた速度上限を95パーセント(m±2√V)以上の確率で満たしており、かつ、現在時刻kから予測ステップ数Ny後の車両位置が、走行可能領域502の範囲内である場合、走行安全に関する評価結果として1を出力し、そうでない場合は0を出力する。その後、走行安全評価部305は、現在時刻からNy後のk+Ny-1までの各車両の制御入力uと、その制御入力uを与えた際の走行安全に関する評価結果の出力値として0又は1を、制御指令生成部307へ送信する。
【0119】
次に、データ不足度評価部306は、データ不足度評価結果を制御指令生成部307に送信する(S4)。データ不足度評価部306は、データ不足度評価に際して、車両モデル推定部304で推定した車両モデルと、各車両に搭載されるセンサ201から取得した各車両の現在の状態sと、任意の制御入力uとを用いる。そして、データ不足度評価部306は、現在時刻から予測ステップ数Ny後のk+Ny-1までの各車両の状態の平均値m及び分散値Vを予測し、将来の状態の分散の総和を評価するための、次式(10)に示す評価関数Jを計算する。
【0120】
【数9】
【0121】
式(10)にて、nは学習で使用する車両数を表しており、第1実施形態との差分として、本実施形態では、複数車両の状態の分散値の総和を評価関数Jとして用いている。そして、分散値の総和が大きくなるようなデータであればデータ不足度が高いので、このデータに対する各車両の制御入力uが求められる。
【0122】
なお、評価関数は上記以外のものでもよく、例えば各車両の制御入力uの差分に関する評価指標を加えることで、複数車両が同じデータセットを同時に取得することを回避するようにしてもよい。また、第1実施形態と同様に、車両モデルの更新による分散の減少量を評価する評価関数を設定してもよい。
【0123】
次に、制御指令生成部307は、走行安全評価部305、データ不足度評価部306の評価結果に基づき、通信装置2002を介して各車両の駆動部202へ送信する制御指令を決定する(S5)。制御指令生成部307は、各車両の制御入力uの組み合わせに対し、全ての車両に対して走行安全に関する評価結果の出力値が1である制御入力uの組み合わせを選出する。そして、制御指令生成部307は、制御入力の組み合わせの中から、データ不足度評価結果が最も小さくなるような、制御入力uの組み合わせを算出する。その後、制御指令生成部307は、制御入力uの1ステップ目の値を、通信装置2002を介して各車両の駆動部202へ送信する。
【0124】
次に、制御指令生成部307により生成された制御指令に基づき各車両が走行する。そして、車両位置推定部302が基準座標系500上における各車両の位置・姿勢を演算し、学習データ集約部303が各車両における図4の説明図(A)に示す時系列データを集約し、図4の説明図(B)に示す学習データを生成する(S6)。その後、学習データ集約部303は、車両毎に作成された学習データをマージし、車両モデル推定部304にデータを送信する。
【0125】
次に、車両モデル推定部304は、学習データ集約部303で生成された学習データを用いて、車両モデルの関数の平均値と分散値を更新する(S7)。次に、車両モデル推定部304は、車両モデルが目標精度を達成したか否かを判定する(S8)。車両モデル推定部304は、車両モデルの関数の分散値の最大値が分散閾値未満であって目標精度を達成した場合(S8のYES)、学習を終了する。車両モデルの関数の分散値の最大値が分散閾値以上であって目標精度を達成していない場合(S8のNO)、学習管理部2001は、更新された車両モデルを用いて、再び走行安全に関する評価とデータ不足度の計算を行い、新たな制御指令を生成する。
【0126】
以上が第2実施形態の処理の流れである。また、以上が本発明内容である搬送車両100の学習システムを実現する第2の実施形態である。
【0127】
なお、第2実施形態において想定される車両は同一車種を想定し、車両モデル推定部304で生成される車両モデルは1種類であったが、車両モデル推定部で推定されるモデルの種類は、車両種類に応じて複数格納してもよい。
【0128】
また、学習管理部2001に設けた環境情報格納部301、車両位置推定部302は、各車両に設ける構成としてもよい。この場合、学習管理部2001は、通信装置2002を介して1ステップごとに各車両の環境情報及び車両位置を取得し、処理に用いればよい。
【0129】
なお、本発明は上述した各実施形態に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
例えば、上述した各実施形態は本発明を分かりやすく説明するために装置及びシステムの構成を詳細かつ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されない。また、ここで説明した実施形態の構成の一部を他の実施形態の構成に置き換えることは可能であり、さらにはある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0130】
100…搬送車両、201…センサ、202…駆動部、300…学習システム、301…環境情報格納部、302…車両位置推定部、303…学習データ集約部、304…車両モデル推定部、305…走行安全評価部、306…データ不足度評価部、307…制御指令生成部、308…データ送信部、309…データ格納部、310…学習動作切替部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14