(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-26
(45)【発行日】2025-01-10
(54)【発明の名称】安全ルール生成装置、ナビゲーションシステム、安全ルール生成方法、ナビゲーション方法及びプログラム
(51)【国際特許分類】
G06N 5/022 20230101AFI20241227BHJP
G06N 5/04 20230101ALI20241227BHJP
B60W 60/00 20200101ALI20241227BHJP
【FI】
G06N5/022
G06N5/04
B60W60/00
(21)【出願番号】P 2024516212
(86)(22)【出願日】2023-04-11
(86)【国際出願番号】 JP2023014681
(87)【国際公開番号】W WO2023204098
(87)【国際公開日】2023-10-26
【審査請求日】2024-10-16
(31)【優先権主張番号】P 2022069068
(32)【優先日】2022-04-19
(33)【優先権主張国・地域又は機関】JP
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成29年度、国立研究開発法人科学技術振興機構、戦略的創造研究推進事業・総括実施型研究(ERATO)「蓮尾メタ数理システムデザインプロジェクト」に係る委託業務、産業技術力強化法第17条の適用を受ける特許出願
【早期審査対象出願】
(73)【特許権者】
【識別番号】504202472
【氏名又は名称】大学共同利用機関法人情報・システム研究機構
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(72)【発明者】
【氏名】蓮尾 一郎
(72)【発明者】
【氏名】エバーハート クロビス
(72)【発明者】
【氏名】ヘイドン ジェームス
(72)【発明者】
【氏名】デュブ ジェレミー
(72)【発明者】
【氏名】ボーラー ローズ
(72)【発明者】
【氏名】パラス エリック アンドレ
(72)【発明者】
【氏名】小林 努
(72)【発明者】
【氏名】プルエクプラサート サシニー
(72)【発明者】
【氏名】ジャン ショイ
(72)【発明者】
【氏名】山田 晃久
(72)【発明者】
【氏名】末永 幸平
(72)【発明者】
【氏名】石川 冬樹
【審査官】大倉 崚吾
(56)【参考文献】
【文献】特開2015-194917(JP,A)
【文献】特開2020-187754(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 5/00-5/048
B60W 30/06
B60W 60/00
G08G 1/16
G05B 19/048
(57)【特許請求の範囲】
【請求項1】
制御戦略と目的とを対応付けたサブシナリオを連鎖することで所定のシナリオを表したシナリオ情報の入力を受け付けるように構成されている入力部と、
前記目的を達成しながら前記制御戦略を実行する事前条件を前記サブシナリオ毎に計算するように構成されている事前条件計算部と、
前記サブシナリオ毎の前記事前条件及び前記制御戦略を結合した安全ルール情報を出力するように構成されている出力部と、
を備える安全ルール生成装置。
【請求項2】
請求項1に記載の安全ルール生成装置であって、
前記目的は、所定の安全条件及び事後条件を含み、
前記事前条件計算部は、前記安全条件を満たしながら前記制御戦略を実行することで前記事後条件を満たすことができる前記事前条件を計算するように構成されている
安全ルール生成装置。
【請求項3】
請求項2に記載の安全ルール生成装置であって、
前記事前条件計算部は、後続の前記サブシナリオの前記事前条件を満たすように、当該サブシナリオの前記事前条件を計算するように構成されている、
安全ルール生成装置。
【請求項4】
請求項3に記載の安全ルール生成装置であって、
前記事前条件計算部は、前記サブシナリオの連鎖を遡って前記事前条件を順次計算するように構成されている、
安全ルール生成装置。
【請求項5】
請求項2に記載の安全ルール生成装置であって、
前記事前条件計算部は、前記制御戦略の実行中に前記安全条件を維持していることを検証するプログラム検証器を用いて、前記事前条件を計算するように構成されている、
安全ルール生成装置。
【請求項6】
自動運転車のためのナビゲーションシステムであって、
前記自動運転車を動作させるシナリオが記憶されたシナリオ記憶部と、
前記シナリオを分割したサブシナリオ毎に、当該サブシナリオの目的を達成しながら制御戦略を実行する事前条件を計算した安全ルールが記憶された安全ルール記憶部と、
前記自動運転車の環境を表す環境情報を取得する環境取得部と、
前記シナリオ及び前記環境情報に基づいて、ナビゲーション目標を達成するためのナビゲーション動作を決定する動作決定部と、
前記安全ルール及び前記環境情報に基づいて、前記ナビゲーション動作に対応する前記制御戦略が前記ナビゲーション目標を達成できるか否かを検証する動作検証部と、
を備えるナビゲーションシステム。
【請求項7】
自動運転車のためのナビゲーションシステムであって、
前記自動運転車を動作させる複数のシナリオが記憶されたシナリオ記憶部と、
前記シナリオを分割したサブシナリオ毎に、当該サブシナリオの目的を達成しながら制御戦略を実行する事前条件を計算した安全ルールが記憶された安全ルール記憶部と、
前記自動運転車の環境を表す環境情報を取得する環境取得部と、
ユーザにより入力されたナビゲーション目標を達成するための前記シナリオを取得するシナリオ取得部と、
前記安全ルール及び前記環境情報に基づいて、前記シナリオ取得部により取得された前記シナリオが前記ナビゲーション目標を達成できるか否かを検証するシナリオ検証部と、
を備えるナビゲーションシステム。
【請求項8】
コンピュータが、
制御戦略と目的とを対応付けたサブシナリオを連鎖することで所定のシナリオを表したシナリオ情報の入力を受け付ける入力手順と、
前記目的を達成しながら前記制御戦略を実行する事前条件を前記サブシナリオ毎に計算する事前条件計算手順と、
前記サブシナリオ毎の前記事前条件及び前記制御戦略を結合した安全ルール情報を出力する出力手順と、
を実行する安全ルール生成方法。
【請求項9】
自動運転車のためのナビゲーション方法であって、
シナリオ記憶部に、前記自動運転車を動作させるシナリオが記憶されており、
安全ルール記憶部に、前記シナリオを分割したサブシナリオ毎に、当該サブシナリオの目的を達成しながら制御戦略を実行する事前条件を計算した安全ルールが記憶されており、
コンピュータが、
前記自動運転車の環境を表す環境情報を取得する環境取得手順と、
前記シナリオ及び環境情報に基づいて、ナビゲーション目標を達成するためのナビゲーション動作を決定する動作決定手順と、
前記安全ルール及び前記環境情報に基づいて、前記ナビゲーション動作に対応する前記制御戦略が前記ナビゲーション目標を達成できるか否かを検証する動作検証手順と、
を実行するナビゲーション方法。
【請求項10】
自動運転車のためのナビゲーション方法であって、
シナリオ記憶部に、前記自動運転車を動作させる複数のシナリオが記憶されており、
安全ルール記憶部に、前記シナリオを分割したサブシナリオ毎に、当該サブシナリオの目的を達成しながら制御戦略を実行する事前条件を計算した安全ルールが記憶されており、
コンピュータが、
前記自動運転車の環境を表す環境情報を取得する環境取得手順と、
ユーザにより入力されたナビゲーション目標を達成するための前記シナリオを取得するシナリオ取得手順と、
前記安全ルール及び前記環境情報に基づいて、前記シナリオ取得手順により取得された前記シナリオが前記ナビゲーション目標を達成できるか否かを検証するシナリオ検証手順と、
を実行するナビゲーション方法。
【請求項11】
コンピュータに、
制御戦略と目的とを対応付けたサブシナリオを連鎖することで所定のシナリオを表したシナリオ情報の入力を受け付ける入力手順と、
前記目的を達成しながら前記制御戦略を実行する事前条件を前記サブシナリオ毎に計算する事前条件計算手順と、
前記サブシナリオ毎の前記事前条件及び前記制御戦略を結合した安全ルール情報を出力する出力手順と、
を実行させるためのプログラム。
【請求項12】
自動運転車のためのプログラムであって、
シナリオ記憶部に、前記自動運転車を動作させるシナリオが記憶されており、
安全ルール記憶部に、前記シナリオを分割したサブシナリオ毎に、当該サブシナリオの目的を達成しながら制御戦略を実行する事前条件を計算した安全ルールが記憶されており、
コンピュータに、
前記自動運転車の環境を表す環境情報を取得する環境取得手順と、
前記シナリオ及び環境情報に基づいて、ナビゲーション目標を達成するためのナビゲーション動作を決定する動作決定手順と、
前記安全ルール及び前記環境情報に基づいて、前記ナビゲーション動作に対応する前記制御戦略が前記ナビゲーション目標を達成できるか否かを検証する動作検証手順と、
を実行させるためのプログラム。
【請求項13】
自動運転車のためのプログラムであって、
シナリオ記憶部に、前記自動運転車を動作させる複数のシナリオが記憶されており、
安全ルール記憶部に、前記シナリオを分割したサブシナリオ毎に、当該サブシナリオの目的を達成しながら制御戦略を実行する事前条件を計算した安全ルールが記憶されており、
コンピュータに、
前記自動運転車の環境を表す環境情報を取得する環境取得手順と、
ユーザにより入力されたナビゲーション目標を達成するための前記シナリオを取得するシナリオ取得手順と、
前記安全ルール及び前記環境情報に基づいて、前記シナリオ取得手順により取得された前記シナリオが前記ナビゲーション目標を達成できるか否かを検証するシナリオ検証手順と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、安全ルール生成装置、ナビゲーションシステム、安全ルール生成方法、ナビゲーション方法及びプログラムに関する。
【背景技術】
【0002】
自動運転の安全ルールを策定する技術がある。安全ルール策定技術は、数学的に安全であることが証明可能な安全ルールを策定する技術である。例えば、非特許文献1には、責任感知型安全論(RSS; Responsibility-Sensitive Safety)と呼ばれる数理モデルが開示されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】Shai Shalev-Shwartz, Shaked Shammah, and Amnon Shashua, "On a formal model of safe and scalable self-driving cars," CoRR, abs/1708.06374, 2017.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の責任感知型安全論は、複雑なシナリオに対応できない、という課題がある。例えば、非特許文献1では、自動運転車が同一の車線を走行する他の自動車との衝突を回避するといった単純なシナリオにしか対応できていない。
【0005】
本発明の一態様は、上記のような技術的課題に鑑みて、複雑なシナリオに対応可能な安全ルールを策定することを目的とする。
【課題を解決するための手段】
【0006】
上記の課題を解決するために、本発明の一態様の安全ルール生成装置は、制御戦略と目的とを対応付けたサブシナリオを連鎖することで所定のシナリオを表したシナリオ情報の入力を受け付けるように構成されている入力部と、目的を達成しながら制御戦略を実行する事前条件をサブシナリオ毎に計算するように構成されている事前条件計算部と、サブシナリオ毎の事前条件及び制御戦略を結合した安全ルール情報を出力するように構成されている出力部と、を備える。
【発明の効果】
【0007】
本発明の一態様によれば、複雑なシナリオに対応可能な安全ルールを策定することができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、同一車線同一方向シナリオの一例を示す概念図である。
【
図2】
図2は、路肩停止シナリオの一例を示す概念図である。
【
図3】
図3は、サブシナリオの一例を示す概念図である。
【
図4】
図4は、目的達成RSSのワークフローの一例を示す図である。
【
図5】
図5は、サブシナリオとシナリオツリーとの関係の一例を示す概念図である。
【
図6】
図6は、サブシナリオとサブゴール及び安全条件との関係の一例を示す概念図である。
【
図7】
図7は、サブシナリオと制御戦略との関係の一例を示す概念図である。
【
図8】
図8は、事前条件の計算手順の一例を示す概念図である。
【
図9】
図9は、目的達成RSSのプログラム論理体系の一例を示す図である。
【
図10】
図10は、安全ルール生成システムの全体構成の一例を示すブロック図である。
【
図11】
図11は、コンピュータのハードウェア構成の一例を示すブロック図である。
【
図12】
図12は、安全ルール生成システムの機能構成の一例を示す図である。
【
図13】
図13は、安全ルール生成方法の処理手順の一例を示すフローチャートである。
【
図14】
図14は、シンプレックスアーキテクチャの一例を示す図である。
【
図15】
図15は、ナビゲーションシステムの機能構成の一例を示すブロック図である。
【
図16】
図16は、ナビゲーション方法の処理手順の一例を示すフローチャートである。
【
図18A】
図18Aは、目的達成RSSを用いたシンプレックスアーキテクチャ及び衝突回避RSSを用いたシンプレックスアーキテクチャの走行時間の分布の一例を示す図である。
【
図18B】
図18Bは、目的達成RSSを用いたシンプレックスアーキテクチャ及びアドバンストコントローラの走行時間の分布の一例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の各実施形態について添付の図面を参照しながら説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【0010】
[概要]
<自動運転安全ルール策定技術>
自動運転安全ルール策定技術は、自動運転車が「この安全ルールを満たす限り安全である」ということが数学的に証明可能な安全ルールを策定する技術である。例えば、2台の自動車が同一の車線を同一の方向に走行しているとき、後続の自動運転車が、先行する自動車との衝突を回避できる安全な車間距離を求める数式を導出する、といった技術である。
【0011】
自動運転安全ルールは、以下のような用途で用いられることを想定している。第1に、事故の責任所在の特定である。これは、事故が発生したときは安全ルールに違反していた側に過失があるという考え方である。第2に、自動運転車の安全性証明である。これは、特定の安全ルールに準拠することで、自動運転車の安全性が証明できるという考え方である。
【0012】
第3に、自動運転車の実行時監視である。これは、自動運転車が安全ルールに違反しそうなことを検知した場合に安全ルールを守るように制御することである。第4に、自動運転の安全性基準又は規格である。これは、特定の安全ルールに準拠しない限り、販売を許可しないといった規制である。第5に、保険料率計算である。これは、特定の安全ルールに準拠する/しない自動運転車は保険料を安く/高くすることである。
【0013】
自動運転安全ルールは、自動運転が社会的に需要される基礎となる概念である。安全ルールに準拠している自動運転車は安全であり、公道を走行していても安心であると社会一般に認識されれば、自動運転車の普及を促進すると考えられる。また、自動運転安全ルールは、製造者責任の範囲を特定する基準となる。自動運転車で事故が発生した際に、安全ルールに準拠している限り、製造者が責任を負う必要がないという考え方である。
【0014】
<衝突回避RSS(Collision Avoiding RSS; CA-RSS)>
従来の自動運転安全ルール策定技術として、非特許文献1に開示されている責任感知型安全論(RSS)がある。RSSは、自動運転安全ルールとして広く認知されている。例えば、RSSは、多数の学術研究で利用されており、国際規格への反映が検討されている。
【0015】
従来のRSSは、以下の論理的構造で構築されている。すなわち、事前条件を満たしていれば、制御戦略(proper response)を実行することで、安全条件を満たすことができる、といった論理である。制御戦略とは、自動運転車を制御する方策である。制御戦略の一例は、ハンドルを切る、ブレーキを利かせる、又はアクセルを踏んで加速する等の運転操作である。
【0016】
従来のRSSは、例えば、同一車線同一方向シナリオを想定している。
図1は、同一車線同一方向シナリオの一例を示す概念図である。
図1に示されているように、当該シナリオは、2台の自動車(Car
rear及びCar
front)が同一の車線を同一の方向に走行している状況を想定する。少なくとも後続する自動車Car
rearは自動運転車であり、安全ルールの対象となる。従来のRSSは、所定の数式で求められる車間距離を守っていれば、加速度ブレーキをかけることで衝突を回避できることを示している。
【0017】
しかしながら、従来のRSSでは、安全条件を満たすことしか保証されない。例えば、上記の同一車線同一方向シナリオでは、衝突回避という安全条件のみが保証されている。以下、従来のRSSを「衝突回避RSS(又はCA-RSS)」と呼ぶ。
【0018】
<目的達成RSS(Goal-Aware RSS; GA-RSS)>
本発明では、安全条件に加えて所定の事後条件を満たすことを保証する安全ルールを策定する。以下、本発明で提案するRSSを「目的達成RSS(又はGA-RSS)」と呼ぶ。
【0019】
目的達成RSSは、以下の論理的構造で構築されている。すなわち、事前条件を満たしていれば、制御戦略を実行することで、安全条件を満たしながら所定の事後条件を達成することができる、といった論理である。
【0020】
下記の実施形態では、路肩停止シナリオを例として説明する。
図2は、路肩停止シナリオの一例を示す概念図である。
図2に示されているように、当該シナリオは、複数車線(Lane 1~3)からなる道路を複数の自動車が走行している状況において、対象の自動運転車(Subject Vehicle; SV)が他の自動車(Principal Other Vehicles; POVs)と安全な距離を維持することを安全条件とし、同時に、複数回の車線変更を行い、路肩(Lane 3)に設置された非常電話(SOS)の位置y
tgtに安全に停止することを事後条件とする。
【0021】
このような複雑なシナリオでは、ゴールを達成するために取り得る方法は多数考えられる。例えば、第1車線(Lane 1)から第2車線(Lane 2)へ車線変更する際に、第2車線を走行している他の自動車(POV1)の前で合流するか後で合流するかという選択がある。このとき、他の自動車の前で合流するためには、現在の走行速度のまま合流するか加速して合流するかという選択がある。このように、所定の事後条件を安全に達成できる事前条件は自明ではない。
【0022】
目的達成RSSは、路肩停止シナリオにおいて所定の事後条件及び安全条件を達成するために、当該シナリオを複数のサブシナリオに分割する。
図3は、路肩停止シナリオを複数に分割したサブシナリオの一例を示す概念図である。
【0023】
図3に示されているように、目的達成RSSは、路肩に設置された非常電話の位置に安全に停止するという事後条件が設定されたシナリオを、サブゴール1~4に分割する。サブゴール1は、合流の準備をすることである。サブゴール2は、第2車線に車線変更することである。サブゴール3は、路肩に車線変更することである。サブゴール4は、非常電話の位置に停止することである。
【0024】
これらのサブゴール1~4を順に達成することで、シナリオの事後条件を達成することができる。また、各サブゴール1~4を達成する制御戦略を、常に安全条件を満たしながら実行できれば、安全条件を満たしつつ事後条件を達成できる。
【0025】
<論理的ワークフロー>
図4は、目的達成RSSが安全ルールを生成するための論理的ワークフローである。目的達成RSSは、
図4に示した論理的ワークフローを実行することで、安全条件及び事後条件を満たすことを保証する安全ルールを、現実的な計算量で導出する。
【0026】
ただし、本論理的ワークフローは、目的達成RSSのみに適用されるものではなく、例えば、衝突回避RSSにも適用可能である。本論理的ワークフローは、安全条件及び事後条件を満たす安全ルールを導出するものである。衝突回避RSSは安全条件のみを満たせばよいため、複数のサブシナリオに分割できる複雑なシナリオを想定した衝突回避RSSであれば、目的達成RSSと同様にして適用することができる。
【0027】
目的達成RSSのワークフローには、運転シナリオSが入力される。また、目的達成RSSのワークフローは、安全ルール(α,A)を出力する。ただし、αはシナリオSにおける制御戦略の集合を表す。AはシナリオSにおける事前条件の集合を表す。
【0028】
ワークフローの第1ステップでは、シナリオS=(Var,Safe,Env,Goal)を取得する。ただし、Safeは自車が守る安全条件を表し、Envは他車により守られる環境条件を表し、Goalは所定のゴールを表す。Varは安全ルールの導出に使用されるすべての変数をカバーする変数の有限集合である。
【0029】
ワークフローの第2ステップでは、シナリオを分割する。具体的には、N個のサブゴールGoal(1),…,Goal(N)を特定し、シナリオSをN個のサブシナリオS(1),…,S(N)に分割する。ただし、S(i)=(Var,Safe,Env,Goal(i))(i=1,…,N)である。
【0030】
ワークフローの第3ステップでは、サブシナリオを更新する。具体的には、各サブシナリオS(i)の状況を特定し、その状況における安全条件Safe(i)及び環境条件Env(i)を定義する。そして、サブシナリオS(1),…,S(N)の依存関係を表現したシナリオツリーT=T1,T11,T12,…,T111,T121,…を生成する。
【0031】
図5は、サブシナリオS
(i)とサブシナリオT
wとの対応関係を示す概念図である。
図5に示されているように、サブシナリオS
(i)の添え字iは、シナリオSの先頭からの順番を表す。サブシナリオT
wの添え字wは、シナリオSの末尾から先頭に向かって桁数が増えるように割り当てられる。このように、シナリオツリーTに含まれるサブシナリオT
wの添え字wにより、各サブシナリオT
wの依存関係が表現される。
【0032】
ワークフローの第4~6ステップでは、各サブシナリオの制御戦略を特定する。具体的には、各サブシナリオTw=(Var,Safew,Envw,Goalw)について、安全条件Safew∧Envwを満たしながらサブゴールGoalwを達成する制御戦略αw,1,…,αw,Kwを探索する。
【0033】
図6は、サブシナリオT
wにおけるサブゴールGoal
w、安全条件Safe
w及び環境条件Env
wの一例を示す概念図である。
図6に示されているように、各サブシナリオのサブゴールGoal
w、安全条件Safe
w及び環境条件Env
wは、サブシナリオT
wの状況に応じて、より具体的に定義される。
【0034】
図7は、サブシナリオT
wと制御戦略α
w,iの対応関係を示す概念図である。
図7に示されているように、各サブシナリオT
wに対して、1以上の制御戦略α
w,iが特定される。各サブシナリオT
wに対応する制御戦略α
w,iの数は異なり、1の制御戦略α
w,iが特定されるサブシナリオもあれば、複数の制御戦略α
w,iが特定されるサブシナリオもある。
【0035】
ワークフローの第7ステップでは、各サブシナリオの事前条件を特定する。具体的には、各制御戦略αw,kについて、プログラム論理体系の表明(assertion)(Aw,u)w,uを探索する。このとき、当該制御戦略αw,kを実行することで、サブゴールGoalwを達成し、かつ、後続のサブシナリオの事前条件を満たすように、桁数の小さいwから大きいwに向かって後ろ向き推論を行う。なお、目的達成RSSにおけるプログラム論理体系については後述する。
【0036】
図8は、事前条件A
w,uの計算手順を示す概念図である。
図8に示されているように、各サブシナリオT
wにおける事前条件A
w,uは、サブシナリオT
w間の依存関係に従って順次計算される。このとき、事前条件A
w,uは、安全条件Safe
w∧Env
wを満たしながら各制御戦略α
w,kを実行することで、サブゴールGoal
wを満たすように計算される。
【0037】
ワークフローの第8ステップでは、シナリオ全体における制御戦略及び事前条件を計算する。具体的には、サブシナリオの制御戦略αw,k及び事前条件Aw,uをそれぞれ結合する。これにより、{A} α {Goal}:Safe∧Envが真である制御戦略α及び事前条件Aを得ることができる。
【0038】
ワークフローの第9ステップでは、安全ルール(α,A)を出力する。αはシナリオSにおける制御戦略αw,kの集合を表す。AはシナリオSにおける事前条件Aw,uの集合を表す。
【0039】
<プログラム論理体系>
目的達成RSSでは、
図4に示したワークフローを実現するために、安全条件を追加したプログラム論理体系dFHL(differential Floyd-Hoare Logic)を導入する。プログラム論理体系dFHLは、プログラム検証のためのホーア論理(参考文献1参照)に、連続ダイナミクスのための常微分方程式(Ordinary Differential Equation; ODE)拡張を適用し、さらにプログラム実行中に真であるべき安全条件を追加したものである。
【0040】
なお、ホーア論理についての詳細は、下記参考文献1に開示されている。安全条件の追加についての詳細は、下記参考文献2に開示されている。
【0041】
〔参考文献1〕C. A. R. Hoare, "An axiomatic basis for computer programming," Communications of the ACM, vol. 12, pp. 576-580, 583, 1969.
〔参考文献2〕F. S. de Boer, U. Hannemann, and W. P. de Roever, "Hoare-style compositional proof systems for reactive shared variable concurency," in Foundations of Software Technology and Theoretical Computer Science, 17th Conference, Kharagpur, India, December 18-20, 1997.
【0042】
ホーア論理は、事前条件Aが真であることが、プログラムαを実行後に事後条件Bが真であることを保証する。なお、A、α、Bは「ホーアの3つ組(Hoare triples)」と呼ばれる。ホーア論理は、次式で表される。
【0043】
【0044】
プログラム論理体系dFHLは、ホーアの3つ組に安全条件Sを追加する。プログラム論理体系dFHLは、事前条件Aが真であることが、プログラムαを実行後に事後条件Bが真であり、かつ、プログラムαを実行中は常に安全条件Sが真であることを保証する。以下、A、α、B、Sは「ホーアの4つ組(Hoare quadruples)」と呼ぶ。dFHLは、次式で表される。
【0045】
【0046】
図9は、プログラム論理体系dFHLを構成する推論規則である。目的達成RSSでは、
図4に示した論理的ワークフローのステップ7を実行するために、
図9に示したプログラム論理体系dFHLを用いる。
【0047】
<ソフトウェア実装>
目的達成RSSは、当該ワークフローをソフトウェア実装することで、数十行の論理式によって表現される事前条件を計算することができる。特に、目的達成RSSは、公知の計算機代数システムであるMathematica(登録商標)を用いた半形式的ソフトウェア実装を実現することができる。具体的には、プログラムダイナミクスに陽に関わらない代数・論理的記号操作(例えば、代入、二次方程式解、不等式証明等)をMathematicaにより形式化することが可能である。
【0048】
[実施形態]
本発明の実施形態は、所定の事後条件を達成するシナリオ及び所定の安全条件を入力とし、当該シナリオに対応する安全ルールを生成する安全ルール生成システムである。本実施形態では、所定の事後条件及び安全条件を達成するシナリオとして、上記の路肩停止シナリオを想定する。本実施形態における安全ルール生成システムは、所定の事後条件を達成するシナリオを複数のサブシナリオが連鎖したシナリオツリーに変換し、各サブシナリオにおける制御戦略及び事前条件をそれぞれ結合した安全ルールを生成する。
【0049】
本実施形態における安全ルール生成システムは、所定の事後条件及び安全条件を達成する複雑なシナリオを、サブゴールを達成する複数の単純なサブシナリオに分割する。サブゴールとは、最終的な事後条件及び安全条件を達成する過程で達成されるべき事後条件である。サブシナリオにおける制御戦略は、これらのサブゴールを達成するために行うべき制御(運転操作)を表している。つまり、本実施形態における安全ルールは、現在の状況に対応するサブシナリオにおいて制御戦略を実行することを繰り返せば、最終的に所定の事後条件及び安全条件を達成することができることを表した安全ルールである。
【0050】
<安全ルール生成システムの全体構成>
まず、本実施形態における安全ルール生成システムの全体構成を、
図10を参照しながら説明する。
図10は、本実施形態における安全ルール生成システムの全体構成の一例を示すブロック図である。
【0051】
図10に示されているように、本実施形態における安全ルール生成システム1は、安全ルール生成装置10及びユーザ端末30を含む。安全ルール生成装置10及びユーザ端末30は、LAN(Local Area Network)又はインターネット等の通信ネットワークN1を介してデータ通信可能に接続されている。
【0052】
安全ルール生成装置10は、ユーザ端末30からの要求に応じて、安全ルールを生成するPC(Personal Computer)、ワークステーション、サーバ等の情報処理装置である。安全ルール生成装置10は、ユーザ端末30からシナリオ情報を受信する。シナリオ情報は、安全ルールの生成対象とするシナリオを表す情報である。また、安全ルール生成装置10は、安全ルール情報を生成し、ユーザ端末30に送信する。安全ルール情報は、受信したシナリオ情報に対する安全ルールを表す情報である。
【0053】
ユーザ端末30は、ユーザが操作するPC、タブレット端末、スマートフォン等の情報処理端末である。ユーザ端末30は、ユーザの操作に応じて、安全ルールの生成対象とするシナリオの入力を受け付け、当該シナリオをシナリオツリーに変換したシナリオ情報を安全ルール生成装置10に送信する。また、ユーザ端末30は、安全ルール生成装置10から安全ルール情報を受信し、ユーザに対して出力する。
【0054】
なお、
図10に示した安全ルール生成システム1の全体構成は一例であって、用途や目的に応じて様々なシステム構成例があり得る。例えば、安全ルール生成装置10は、複数台のコンピュータにより実現してもよいし、クラウドコンピューティングのサービスとして実現してもよい。また、例えば、安全ルール生成システム1は、安全ルール生成装置10及びユーザ端末30がそれぞれ備えるべき機能を兼ね備えたスタンドアローンの情報処理装置により実現してもよい。
【0055】
<安全ルール生成システムのハードウェア構成>
次に、本実施形態における安全ルール生成システム1のハードウェア構成を、
図11を参照しながら説明する。
【0056】
≪コンピュータのハードウェア構成≫
本実施形態における安全ルール生成装置10及びユーザ端末30は、例えばコンピュータにより実現される。
図11は、本実施形態におけるコンピュータのハードウェア構成の一例を示すブロック図である。
【0057】
図11に示されているように、本実施形態におけるコンピュータ500は、CPU(Central Processing Unit)501、ROM(Read Only Memory)502、RAM(Random Access Memory)503、HDD(Hard Disk Drive)504、入力装置505、表示装置506、通信I/F(Interface)507及び外部I/F508を有する。CPU501、ROM502及びRAM503は、いわゆるコンピュータを形成する。コンピュータ500の各ハードウェアは、バスライン509を介して相互に接続されている。なお、入力装置505及び表示装置506は外部I/F508に接続して利用する形態であってもよい。
【0058】
CPU501は、ROM502又はHDD504等の記憶装置からプログラムやデータをRAM503上に読み出し、処理を実行することで、コンピュータ500全体の制御や機能を実現する演算装置である。
【0059】
ROM502は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)の一例である。ROM502は、HDD504にインストールされている各種プログラムをCPU501が実行するために必要な各種プログラム、データ等を格納する主記憶装置として機能する。具体的には、ROM502には、コンピュータ500の起動時に実行されるBIOS(Basic Input/Output System)、EFI(Extensible Firmware Interface)等のブートプログラムや、OS(Operating System)設定、ネットワーク設定等のデータが格納されている。
【0060】
RAM503は、電源を切るとプログラムやデータが消去される揮発性の半導体メモリ(記憶装置)の一例である。RAM503は、例えば、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等である。RAM503は、HDD504にインストールされている各種プログラムがCPU501によって実行される際に展開される作業領域を提供する。
【0061】
HDD504は、プログラムやデータを格納している不揮発性の記憶装置の一例である。HDD504に格納されるプログラムやデータには、コンピュータ500全体を制御する基本ソフトウェアであるOS、及びOS上において各種機能を提供するアプリケーション等がある。なお、コンピュータ500はHDD504に替えて、記憶媒体としてフラッシュメモリを用いる記憶装置(例えばSSD:Solid State Drive等)を利用するものであってもよい。
【0062】
入力装置505は、ユーザが各種信号を入力するために用いるタッチパネル、操作キーやボタン、キーボードやマウス、音声等の音データを入力するマイクロホン等である。
【0063】
表示装置506は、画面を表示する液晶や有機EL(Electro-Luminescence)等のディスプレイ、音声等の音データを出力するスピーカ等で構成されている。
【0064】
通信I/F507は、通信ネットワークに接続し、コンピュータ500がデータ通信を行うためのインタフェースである。
【0065】
外部I/F508は、外部装置とのインタフェースである。外部装置には、ドライブ装置510等がある。
【0066】
ドライブ装置510は、記録媒体511をセットするためのデバイスである。ここでいう記録媒体511には、CD-ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体511には、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。これにより、コンピュータ500は外部I/F508を介して記録媒体511の読み取り及び/又は書き込みを行うことができる。
【0067】
なお、HDD504にインストールされる各種プログラムは、例えば、配布された記録媒体511が外部I/F508に接続されたドライブ装置510にセットされ、記録媒体511に記録された各種プログラムがドライブ装置510により読み出されることでインストールされる。あるいは、HDD504にインストールされる各種プログラムは、通信I/F507を介して、通信ネットワークとは異なる他のネットワークよりダウンロードされることでインストールされてもよい。
【0068】
<安全ルール生成システムの機能構成>
続いて、本実施形態における安全ルール生成システムの機能構成を、
図12を参照しながら説明する。
図12は本実施形態における安全ルール生成システム1の機能構成の一例を示すブロック図である。
【0069】
≪ユーザ端末30の機能構成≫
図12に示されているように、本実施形態におけるユーザ端末30は、シナリオ入力部301、シナリオ分割部302、シナリオ情報生成部303、制御戦略決定部304、シナリオ情報送信部305及び安全ルール表示部306を備える。
【0070】
シナリオ入力部301、シナリオ分割部302、シナリオ情報生成部303、制御戦略決定部304、シナリオ情報送信部305及び安全ルール表示部306は、
図11に示されているHDD504からRAM503上に展開されたプログラムがCPU501に実行させる処理によって実現される。
【0071】
シナリオ入力部301は、ユーザの操作に応じて、シナリオの入力を受け付ける。当該シナリオは、安全条件及び事後条件を対応付ける情報である。当該事後条件は、シナリオ全体の事後条件を示す情報である。
【0072】
シナリオ分割部302は、ユーザの操作に応じて、シナリオ入力部301が受け付けたシナリオをサブシナリオに分割する。当該サブシナリオは、安全条件及び事後条件を対応付ける情報である。当該事後条件は、サブシナリオのサブゴールを表す情報である。
【0073】
シナリオ情報生成部303は、ユーザの操作に応じて、シナリオ分割部302が分割した各サブシナリオの状況を特定する。また、シナリオ情報生成部303は、ユーザの操作に応じて、各サブシナリオの安全条件を定義する。シナリオ情報生成部303は、サブシナリオを依存関係に従ってツリー状に連鎖させたシナリオツリー(以下、「シナリオ情報」とも呼ぶ)を生成する。
【0074】
制御戦略決定部304は、シナリオ情報生成部303が生成したシナリオ情報に含まれる各サブシナリオについて、当該サブシナリオの制御戦略を特定する。当該制御戦略は、安全条件を満たしながら実行することで、事後条件を満たすことができる制御戦略である。また、制御戦略決定部304は、特定した制御戦略をシナリオ情報に設定する。
【0075】
シナリオ情報送信部305は、制御戦略決定部304が制御戦略を設定したシナリオ情報を安全ルール生成装置10に送信する。
【0076】
安全ルール表示部306は、安全ルール生成装置10から受信した安全ルール情報を表示装置506等に表示する。
【0077】
≪安全ルール生成装置の機能構成≫
図12に示されているように、本実施形態における安全ルール生成装置10は、シナリオ情報受付部101、事前条件計算部102、安全ルール生成部103及び安全ルール出力部104を備える。
【0078】
シナリオ情報受付部101、事前条件計算部102、安全ルール生成部103及び安全ルール出力部104は、
図11に示されているHDD504からRAM503上に展開されたプログラムがCPU501に実行させる処理によって実現される。
【0079】
シナリオ情報受付部101は、ユーザ端末30から受信したシナリオ情報の入力を受け付ける。
【0080】
事前条件計算部102は、シナリオ情報受付部101が受け付けたシナリオ情報に含まれる各サブシナリオについて、当該サブシナリオの事前条件を計算する。このとき、事前条件計算部102は、上記のプログラム論理体系dFHLに基づくプログラム検証器を用いて、事前条件を計算する。当該プログラム検証器は、事前条件が真であることにより、制御戦略を実行後に事後条件が真であり、かつ、制御戦略の実行中に安全条件が維持されるか否かを検証する。
【0081】
また、事前条件計算部102は、漸進的逆伝播によりサブシナリオの連鎖を遡って、各サブシナリオの事前条件を順次計算する。事前条件計算部102は、安全条件を満たしながら制御戦略を実行することで当該サブシナリオの事後条件を満たし、かつ、後続のサブシナリオの事前条件を満たすように、当該サブシナリオの事前条件を計算する。
【0082】
安全ルール生成部103は、シナリオ情報に含まれる各サブシナリオの制御戦略を結合する。また、安全ルール生成部103は、事前条件計算部102が計算した事前条件を結合する。さらに、安全ルール生成部103は、結合した制御戦略及び事前条件からなる安全ルール情報を生成する。
【0083】
安全ルール出力部104は、安全ルール生成部103が生成した安全ルール情報をユーザ端末30に送信する。
【0084】
<安全ルール生成システムの処理手順>
次に、本実施形態における安全ルール生成システム1が実行する安全ルール生成方法の処理手順を、
図13を参照しながら説明する。
図13は、本実施形態における安全ルール生成方法の処理手順の一例を示すフローチャートである。
【0085】
ステップS301において、ユーザ端末30が備えるシナリオ入力部301は、ユーザの操作に応じて、シナリオの入力を受け付ける。次に、シナリオ入力部301は、受け付けたシナリオをシナリオ分割部302に送る。
【0086】
ステップS302において、ユーザ端末30が備えるシナリオ分割部302は、シナリオ入力部301からシナリオを受け取る。次に、シナリオ分割部302は、ユーザの操作に応じて、シナリオをサブシナリオに分割する。続いて、シナリオ分割部302は、分割により生成された複数のサブシナリオをシナリオ情報生成部303に送る。
【0087】
ステップS303において、ユーザ端末30が備えるシナリオ情報生成部303は、シナリオ分割部302から複数のサブシナリオを受け取る。次に、シナリオ情報生成部303は、ユーザの操作に応じて、各サブシナリオの状況及び安全条件を特定する。
【0088】
続いて、シナリオ情報生成部303は、ユーザの操作に応じて、サブシナリオを依存関係に従ってツリー状に連鎖させたシナリオ情報を生成する。次に、シナリオ情報生成部303は、生成したシナリオ情報を制御戦略決定部304に送る。
【0089】
ステップS304において、ユーザ端末30が備える制御戦略決定部304は、シナリオ情報生成部303からシナリオ情報を受け取る。次に、制御戦略決定部304は、ユーザの操作に応じて、シナリオ情報に含まれる各サブシナリオについて、当該サブシナリオの制御戦略を特定する。
【0090】
続いて、制御戦略決定部304は、特定した制御戦略をシナリオ情報に設定する。次に、制御戦略決定部304は、制御戦略を設定したシナリオ情報をシナリオ情報送信部305に送る。
【0091】
ステップS305において、ユーザ端末30が備えるシナリオ情報送信部305は、制御戦略決定部304からシナリオ情報を受け取る。次に、シナリオ情報送信部305は、受け取ったシナリオ情報を安全ルール生成装置10に送信する。
【0092】
ステップS101において、安全ルール生成装置10が備えるシナリオ情報受付部101は、ユーザ端末30からシナリオ情報を受信する。次に、シナリオ情報受付部101は、受信したシナリオ情報を事前条件計算部102に送る。
【0093】
ステップS102において、安全ルール生成装置10が備える事前条件計算部102は、シナリオ情報受付部101からシナリオ情報を受け取る。次に、事前条件計算部102は、シナリオ情報に含まれる各サブシナリオについて、当該サブシナリオの事前条件を計算する。
【0094】
続いて、事前条件計算部102は、計算した事前条件をシナリオ情報に設定する。次に、事前条件計算部102は、事前条件を設定したシナリオ情報を安全ルール生成部103に送る。
【0095】
ステップS103において、安全ルール生成装置10が備える安全ルール生成部103は、事前条件計算部102からシナリオ情報を受け取る。次に、安全ルール生成部103は、各サブシナリオの制御戦略及び事前条件をそれぞれ結合する。
【0096】
続いて、安全ルール生成部103は、結合した制御戦略及び事前条件からなる安全ルール情報を生成する。次に、安全ルール生成部103は、生成した安全ルール情報を安全ルール出力部104に送る。
【0097】
ステップS104において、安全ルール生成装置10が備える安全ルール出力部104は、安全ルール生成部103から安全ルール情報を受け取る。次に、安全ルール出力部104は、受け取った安全ルール情報をユーザ端末30に送信する。
【0098】
ステップS306において、ユーザ端末30が備える安全ルール表示部306は、安全ルール生成装置10から安全ルール情報を受信する。次に、安全ルール表示部306は、受け取った安全ルール情報を表示装置506等に表示する。
【0099】
<実施形態の効果>
本実施形態における安全ルール生成システムは、所定の事後条件及び安全条件を達成するシナリオを複数のサブシナリオが連鎖したシナリオツリーに変換し、各サブシナリオにおいて特定された制御戦略に対する事前条件を計算することで、所定の事後条件及び安全条件を達成する複雑なシナリオに対応可能な安全ルールを生成する。サブシナリオは、所定のサブゴールを達成するための単純なシナリオであるため、制御戦略に対する事前条件を容易に計算することが可能である。したがって、本実施形態における安全ルール生成システムによれば、所定の事後条件及び安全条件を達成する複雑なシナリオに対応可能な安全ルールを策定することができる。
【0100】
特に、本実施形態における安全ルール生成システムは、各サブシナリオの事前条件を計算するために、安全条件を追加したプログラム論理体系を導入する。また、本実施形態における安全ルール生成システムは、数十行の論理式によって表現される安全条件をソフトウェア実装可能である。したがって、本実施形態における安全ルール生成システムによれば、現実的な計算量で複雑なシナリオに対応可能な安全ルールを計算することができる。
【0101】
[応用例1]
目的達成RSSにより導出した安全ルールは、シンプレックスアーキテクチャ(Simplex Architecture)に応用することができる。シンプレックスアーキテクチャについての詳細は、下記参考文献3、4に開示されている。
【0102】
〔参考文献3〕T. L. Crenshaw, E. Gunter, C. L. Robinson, L. Sha, and P. R. Kumar, "The simplex reference model: Limiting fault-propagation due to unreliable components in cyber-physical system architectures," in 28th IEEE International Real-Time Systems Symposium (RTSS 2007), 2007, pp. 400-412.
〔参考文献4〕D. Seto, B. Krogh, L. Sha, and A. Chutinan, "The simplex architecture for safe online control system upgrades," in Proceedings of the 1998 American Control Conference. ACC (IEEE Cat. No.98CH36207), vol. 6, 1998, pp. 3504-3508.
【0103】
図14は、シンプレックスアーキテクチャの一例を示す概念図である。
図14に示されているように、シンプレックスアーキテクチャは、アドバンストコントローラ(Advanced Controller)401、ベースラインコントローラ(Baseline Controller)402、決定モジュール(Decision Module)403及びプラント(Plant)404から構成される。
【0104】
アドバンストコントローラ401は、安全性のみならず多様な性能指標をも追及する複雑な制御を行う。性能指標は、例えば、快適性、速度及び燃料効率等である。ベースラインコントローラ402は、安全性を重視した比較的単純な制御を行う。
【0105】
決定モジュール403は、アドバンストコントローラ401とベースラインコントローラ402との間の切り替えを行う。決定モジュール403は、通常はより良い性能を求めてアドバンストコントローラ401を用いる。一方、決定モジュール403は、安全性に重大な問題を検知したときは、ベースラインコントローラ402に切り替える。
【0106】
アドバンストコントローラ401は、複雑な制御を行うため、動作の予測や検証が困難である。一方、ベースラインコントローラ402は、単純な制御を行うため、予測や検証が容易である。したがって、シンプレックスアーキテクチャは、アドバンストコントローラ401とベースラインコントローラ402との間で適切に制御を切り替えることで、システム全体として安全性を保証することが可能である。
【0107】
従来の衝突回避RSSをシンプレックスアーキテクチャに応用することが行われている。この場合、アドバンストコントローラ401は、一般的な自動運転制御モジュールである。自動運転制御モジュールは、蓄積された運転データから学習された機械学習モデルであるため、その判断過程がブラックボックスとなっている。
【0108】
決定モジュール403は、衝突回避RSSの事前条件を監視する。決定モジュール403は、事前条件を充足しなくなりそうなことを検知した場合、ベースラインコントローラ402に制御を切り替える。
【0109】
ベースラインコントローラ402は、衝突回避RSSの制御戦略に従った制御を行う。ベースラインコントローラ402は、快適性等の性能指標は考慮せず、安全性を追求する制御を行う。したがって、衝突回避RSSを応用したシンプレックスアーキテクチャによれば、通常は高い性能を実現した自動運転を行い、安全性の危機に際しては衝突を回避することができる自動運転車を実現することができる。
【0110】
目的達成RSSによる安全ルールは、衝突回避RSSによる安全ルールとの互換性を担保している。そのため、衝突回避RSSと同様にして目的達成RSSをシンプレックスアーキテクチャに応用することができる。
【0111】
目的達成RSSによる安全ルールは、安全条件及び事後条件を満たすことを保証する。衝突回避RSSによる安全ルールは、安全条件を満たすことを保証する。そのため、目的達成RSSによる安全ルールは、衝突回避RSSによる安全ルールを包摂しつつ、所定の事後条件を達成することを可能とする。
【0112】
したがって、目的達成RSSを応用したシンプレックスアーキテクチャによれば、通常は高い性能を実現した自動運転を行い、安全性の危機に際しては衝突を回避しつつ所定の事後条件を達成することができる自動運転車を実現することができる。
【0113】
[応用例2]
目的達成RSSを応用したシンプレックスアーキテクチャは、例えば、自動運転車のためのナビゲーションシステムの実装に用いることができる。従来の衝突回避RSSを実装したナビゲーションシステムは、例えば、下記参考文献5に開示されている。
【0114】
〔参考文献5〕国際公開2018/115963号
【0115】
本応用例におけるナビゲーションシステムは、実施形態における安全ルール生成システム1によって生成された安全ルールを用いて、自動運転車の挙動又は動作を制御する車載システムである。ナビゲーションシステムは、所定のナビゲーション目標を達成するために、目的地までの経路を決定し、自動運転中の挙動を計画し、各挙動における動作を計画し、計画された挙動又は動作を実現するための車体制御を行う。
【0116】
本応用例におけるナビゲーションシステムは、例えば、自動運転車に搭載される。例えば、ナビゲーションシステムは、自動運転車のインストルメントパネルやセンターコンソール等に設置される。ナビゲーションシステムは、携帯電話網等を介して遠隔地に設置された情報処理装置と連携するクラウドコンピューティング等で実装されてもよい。
【0117】
<ナビゲーションシステムの機能構成>
まず、本応用例におけるナビゲーションシステムの機能構成を、
図15を参照しながら説明する。
図15は本応用例におけるナビゲーションシステム6の機能構成の一例を示すブロック図である。
【0118】
図15に示されているように、本応用例におけるナビゲーションシステム6は、目標入力部61、経路計画部62、環境取得部63、挙動計画部64、動作計画部65、動作制御部66、経路情報記憶部601、シナリオ記憶部602及び安全ルール記憶部603を備える。挙動計画部64は、シナリオ取得部641及びシナリオ検証部642を備える。動作計画部65は、動作決定部651及び動作検証部652を備える。
【0119】
経路情報記憶部601には、経路情報が予め記憶されている。経路情報は、地図情報、道路情報及び渋滞情報等を含む。経路情報は、携帯通信網等に接続された通信手段を用いて、随時更新されてもよい。
【0120】
シナリオ記憶部602には、複数のシナリオが予め記憶されている。シナリオには、ナビゲーション目標が設定されている。ナビゲーション目標は、シナリオの安全条件及び事後条件に相当する。したがって、ナビゲーション目標を達成するようにシナリオに従って自動運転車を動作させることで、シナリオの安全条件及び事後条件が達成される。
【0121】
安全ルール記憶部603には、シナリオ記憶部602に記憶された各シナリオに対応する安全ルールが予め記憶されている。安全ルールは、実施形態における安全ルール生成システム1により、シナリオ記憶部602に記憶された各シナリオについて事前に生成されたものである。すなわち、安全ルール記憶部603は、シナリオ記憶部602に記憶された各シナリオについて、当該シナリオを分割したサブシナリオ毎に、当該サブシナリオのサブゴールを達成しながら制御戦略を実行する事前条件を計算した安全ルールが記憶されている。
【0122】
目標入力部61は、所望のナビゲーション目標の入力を受け付ける。ナビゲーション目標は、ユーザにより入力されてもよいし、シナリオに基づいて自動的に決定されてもよい。
【0123】
経路計画部62は、経路情報記憶部601に記憶されている経路情報に基づいて、ナビゲーション目標を達成する経路を決定する。
【0124】
環境取得部63は、自動運転車に搭載された車載カメラ等により自動運転車の周辺を撮影した画像に基づいて、当該自動運転車の環境を表す環境情報を取得する。車載カメラは、車体の周囲を死角が生じないように撮影可能な位置及び個数で設置される。車載カメラは、例えば、バックミラー、バンパー、サイドミラー等、任意の位置に設置すればよい。
【0125】
挙動計画部64は、環境取得部63により取得された環境情報に基づいて、自動運転車の挙動を計画する。挙動計画部64は、シナリオ取得部641及びシナリオ検証部642を用いて、目標入力部61に入力されたナビゲーション目標を達成可能なシナリオを決定する。
【0126】
シナリオ取得部641は、ナビゲーション目標を達成するためのシナリオを、シナリオ記憶部602から取得する。ナビゲーション目標を達成するためのシナリオとは、事後条件がナビゲーション目標を包含しており、事後条件を達成することでナビゲーション目標を達成することができるシナリオである。
【0127】
シナリオ検証部642は、シナリオ取得部641により取得されたシナリオに対応する安全ルール及び環境取得部63により取得された環境情報に基づいて、各シナリオがナビゲーション目標を達成できるか否かを検証する。
【0128】
シナリオ検証部642は、シナリオがナビゲーション目標を達成できないと判定した場合、当該シナリオを却下する。シナリオ検証部642は、ナビゲーション目標を達成できるシナリオが複数ある場合、予め定めた規則に従って、実行するシナリオを決定する。
【0129】
動作計画部65は、環境取得部63により取得された環境情報に基づいて、自動運転車の動作を計画する。動作計画部65は、動作決定部651及び動作検証部652を用いて、目標入力部61に入力されたナビゲーション目標を達成するナビゲーション動作を決定する。
【0130】
動作決定部651は、挙動計画部64により決定されたシナリオ及び環境取得部63により取得された環境情報に基づいて、目標入力部61に入力されたナビゲーション目標を達成するためのナビゲーション動作を決定する。
【0131】
動作検証部652は、挙動計画部64により決定されたシナリオに対応する安全ルール及び環境取得部63により取得された環境情報に基づいて、動作決定部651により決定されたナビゲーション動作に対応する制御戦略が、目標入力部61に入力されたナビゲーション目標を達成できるか否かを検証する。
【0132】
動作検証部652は、ナビゲーション動作がナビゲーション目標を達成できると判定した場合、当該ナビゲーション動作の実行を決定する。動作検証部652は、ナビゲーション動作がナビゲーション目標を達成できないと判定した場合、当該ナビゲーション動作を却下する。
【0133】
なお、動作計画部65は、応用例1で示したシンプレックアーキテクチャで実装することができる。この場合、動作決定部651は、アドバンストコントローラ401又はベースラインコントローラ402で実現される。動作検証部652は、決定モジュール403で実現される。プラント404は、環境取得部63に相当する。
【0134】
動作制御部66は、動作計画部65により決定されたナビゲーション動作に従って、自動運転車の車体を制御する。
【0135】
<ナビゲーションシステムの処理手順>
次に、本応用例におけるナビゲーションシステム6が実行するナビゲーション方法の処理手順を、
図16を参照しながら説明する。
図16は、本応用例におけるナビゲーション方法の処理手順の一例を示すフローチャートである。
【0136】
ステップS61において、ナビゲーションシステム6が備える目標入力部61は、ナビゲーション目標の入力を受け付ける。ナビゲーション目標は、ユーザにより入力されてもよいし、シナリオに基づいて自動的に決定されてもよい。
【0137】
ユーザがナビゲーション目標を入力する場合、ユーザはコンソール操作によりナビゲーション目標を入力してもよいし、音声認識を用いた音声入力等によりナビゲーション目標を入力してもよい。
【0138】
ステップS62において、ナビゲーションシステム6が備える経路計画部62は、目標入力部61からナビゲーション目標を受け取る。次に、経路計画部62は、経路情報記憶部601に記憶されている経路情報に基づいて、ナビゲーション目標を達成する経路を決定する。続いて、経路計画部62は、決定した経路を挙動計画部64に送る。
【0139】
ステップS63において、ナビゲーションシステム6が備える環境取得部63は、自動運転車の環境を表す環境情報を取得する。環境情報は、自動運転車の周囲を走行する他の自動車の状態、走行している道路の状態、道路に設置された信号機又は交通標識の状態等、自動運転車の安全条件及び事後条件に影響し得るあらゆる情報を含むことができる。
【0140】
ステップS64において、ナビゲーションシステム6が備える挙動計画部64は、経路計画部62から経路を受け取る。次に、挙動計画部64は、目標入力部61からナビゲーション目標を受け取る。続いて、挙動計画部64は、受け取ったナビゲーション目標をシナリオ取得部641に入力する。
【0141】
シナリオ取得部641は、挙動計画部64からナビゲーション目標を受け取る。次に、シナリオ取得部641は、ナビゲーション目標を達成するためのシナリオを、シナリオ記憶部602から取得する。シナリオ取得部641は、複数のシナリオを取得してもよい。続いて、シナリオ取得部641は、取得したシナリオをシナリオ検証部642に送る。
【0142】
シナリオ検証部642は、シナリオ取得部641からシナリオを受け取る。次に、シナリオ検証部642は、環境取得部63から環境情報を取得する。続いて、シナリオ検証部642は、シナリオ取得部641から受け取ったシナリオに対応する安全ルールを安全ルール記憶部603から取得する。
【0143】
シナリオ検証部642は、取得した安全ルール及び環境情報に基づいて、各シナリオがナビゲーション目標を達成できるか否かを検証する。シナリオ検証部642は、シナリオがナビゲーション目標を達成できないと判定した場合、当該シナリオを却下する。シナリオ検証部642は、ナビゲーション目標を達成できるシナリオが複数ある場合、予め定めた規則に従って、実行するシナリオを決定する。シナリオ検証部642は、ナビゲーション目標を達成できる複数のシナリオをユーザに提示し、ユーザの選択に応じて、実行するシナリオを決定してもよい。シナリオ検証部642は、決定したシナリオを動作計画部65に送る。
【0144】
ステップS65において、ナビゲーションシステム6が備える動作計画部65は、挙動計画部64からシナリオを受け取る。次に、動作計画部65は、受け取ったシナリオを動作決定部651に入力する。
【0145】
動作決定部651は、動作計画部65からシナリオを受け取る。次に、動作決定部651は、環境取得部63から環境情報を取得する。続いて、動作決定部651は、環境取得部63から取得した環境情報に基づいて、ナビゲーション目標を達成するためのナビゲーション動作を決定する。そして、動作決定部651は、ナビゲーション動作を動作検証部652に送る。
【0146】
動作検証部652は、動作決定部651からナビゲーション動作を受け取る。次に、動作検証部652は、環境取得部63から環境情報を取得する。続いて、動作検証部652は、挙動計画部64により決定されたシナリオに対応する安全ルールを安全ルール記憶部603から取得する。
【0147】
動作検証部652は、安全ルール及び環境情報に基づいて、ナビゲーション動作に対応する制御戦略が、ナビゲーション目標を達成できるか否かを検証する。動作検証部652は、ナビゲーション動作がナビゲーション目標を達成できると判定した場合、当該ナビゲーション動作を動作制御部66に送る。
【0148】
一方、動作検証部652は、ナビゲーション動作がナビゲーション目標を達成できないと判定した場合、当該ナビゲーション動作を却下する。動作検証部652によりナビゲーション動作が却下された場合、動作決定部651は、ナビゲーション目標を達成するための他のナビゲーション動作を決定する。
【0149】
ステップS66において、ナビゲーションシステム6が備える動作制御部66は、動作計画部65からナビゲーション動作を受け取る。次に、動作制御部66は、受け取ったナビゲーション動作に従って、自動運転車の車体を制御する。
【0150】
上記のとおり、本応用例におけるナビゲーションシステム6では、目的達成RSSによる安全ルールを2つの用途で利用している。第1の用途は、挙動計画部64が実行するシナリオを決定するための条件である。例えば、第1の用途は、進行方向に2つの非常電話が設置されている状況において、現在位置に近い第1の非常電話の位置に停止する第1の路肩停止シナリオを実行するか、現在位置から遠い第2の非常電話の位置に停止する第2の路肩停止シナリオを実行するかを選択する際に用いることができる。
【0151】
例えば、第1の路肩停止シナリオ及び第2の路肩停止シナリオのいずれかが安全条件及び事後条件を満たせない場合、安全条件及び事後条件を満たすシナリオを選択すればよい。また、例えば、第1の路肩停止シナリオ及び第2の路肩停止シナリオのいずれも安全条件及び事後条件を満たす場合、現在位置に近い位置に停止する第1の路肩停止シナリオを選択すればよい。
【0152】
安全ルールの第2の用途は、動作計画部65が実行する動作を決定するための条件である。第2の用途は、例えば、第2の非常電話の位置に停止する第2の路肩停止シナリオを実行している中で、隣の車線を並走する他の自動車の前に車線変更するナビゲーション動作を実行するか、後ろに車線変更するナビゲーション動作を実行するかを選択する際に用いることができる。
【0153】
例えば、他の自動車の前に車線変更するナビゲーション動作では安全条件及び事後条件を満たせない場合、他の自動車の後ろに車線変更する動作を選択すればよい。また、例えば、他の自動車の前に車線変更しても後ろに車線変更しても安全条件及び事後条件を満たす場合、シナリオ全体の走行時間が短い方のナビゲーション動作を選択すればよい。
【0154】
[実験結果]
目的達成RSSの性能を評価する比較試験の実験結果について、
図17、
図18A及び
図18Bを参照しながら説明する。比較試験では、アドバンストコントローラのみの実装(以下、「AC」と呼ぶ)、衝突回避RSSを用いたシンプレックスアーキテクチャの実装(以下、「AC+RSS
CA」と呼ぶ)及び目的達成RSSを用いたシンプレックスアーキテクチャの実装(以下、「AC+RSS
GA」と呼ぶ)について、路肩停止シナリオをシミュレーションした。評価試験では、パラメータが異なる2,350本の路肩停止シナリオを、上記の3実装それぞれでシミュレーションした。
【0155】
図17は、実験結果を集計した表を示す図である。
図17において、goalは目的を達成した割合である。collisionは衝突が発生した割合である。RSS violationは安全な車間距離が守られなかったケースである。timeはシナリオを終えるまでの走行時間である。jerkは走行中の加速度の総量である。BC timeはベースラインコントローラが制御した時間の平均である。
【0156】
図17に示されているように、AC+RSS
CAでは、衝突は回避したものの、事後条件を達成できないケースが発生した。ACでは、衝突を回避しながら事後条件を達成できているが、RSSの安全条件を守れないケースが多数発生した。また、ACでは、事後条件達成までの時間が長くなるケースが見られた。一方、AC+RSSGAでは、衝突を回避しながら事後条件を達成し、一定時間内にすべてのケースを終えることができた。
【0157】
図18Aは、目的達成RSSを用いたシンプレックスアーキテクチャ及び衝突回避RSSを用いたシンプレックスアーキテクチャの走行時間の分布の一例を示す図である。
図18Aは、AC+RSS
GAの走行時間を縦軸にし、AC+RSS
CAの走行時間を横軸にして、各シミュレーション結果をプロットしたグラフである。
図18Bは、目的達成RSSを用いたシンプレックスアーキテクチャ及びアドバンストコントローラの走行時間の分布の一例を示す図である。
図18Bは、AC+RSS
GAの走行時間を縦軸にし、ACの走行時間を横軸にして、各シミュレーション結果をプロットしたグラフである。各円の大きさは、その走行時間の組み合わせに対応したシミュレーションの回数を表している。
【0158】
図18A及び
図18Bにおいて、グラフ右下にプロットされたサンプルは、AC+RSS
GAの方が短い時間で事後条件を達成したケースである。
図18A及び
図18Bに示されているように、AC及びAC+RSS
CAいずれの比較においても、AC+RSS
GAの方が有利な結果となる傾向が見られた。
【0159】
上記のように、本実験結果によって、目的達成RSSの安全ルールを用いれば、安全かつ短時間で所定の事後条件を達成することができるという結果が得られた。
【0160】
[補足]
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)や従来の回路モジュール等の機器を含むものとする。
【0161】
以上、本発明の実施の形態について詳述したが、本発明はこれらの実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【0162】
本願は、日本国特許庁に2022年4月19日に出願された日本国特許出願2022-69068号の優先権を主張するものであり、その全内容を参照することにより本願に援用する。
【符号の説明】
【0163】
1 安全ルール生成システム
10 安全ルール生成装置
101 シナリオ情報受付部
102 事前条件計算部
103 安全ルール生成部
104 安全ルール出力部
30 ユーザ端末
301 シナリオ入力部
302 シナリオ分割部
303 シナリオ情報生成部
304 制御戦略決定部
305 シナリオ情報送信部
306 安全ルール表示部
6 ナビゲーションシステム
601 経路情報記憶部
602 シナリオ記憶部
603 安全ルール記憶部
61 目標入力部
62 経路計画部
63 環境取得部
64 挙動計画部
641 シナリオ取得部
642 シナリオ検証部
65 動作計画部
651 動作決定部
652 動作検証部
66 動作制御部