(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-09
(45)【発行日】2024-09-18
(54)【発明の名称】車両管理システムおよび車両管理方法
(51)【国際特許分類】
G06F 8/65 20180101AFI20240910BHJP
B60W 50/00 20060101ALI20240910BHJP
B60W 60/00 20200101ALI20240910BHJP
【FI】
G06F8/65
B60W50/00
B60W60/00
(21)【出願番号】P 2021200834
(22)【出願日】2021-12-10
【審査請求日】2023-11-08
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】眞屋 朋和
【審査官】児玉 崇晶
(56)【参考文献】
【文献】特開2020-021142(JP,A)
【文献】特開2021-123145(JP,A)
【文献】特許第7328928(JP,B1)
【文献】寺岡 秀敏ほか,軽量スクリプト言語を用いた自動車ソフトウェア遠隔更新制御方式の開発,情報処理学会 研究報告 グループウェアとネットワークサービス,Vol. 2018-GN-103, NO.11,2018年01月19日,pp.1-7
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65
B60W 50/00
B60W 60/00
(57)【特許請求の範囲】
【請求項1】
第1サーバと第2サーバと車両とを含む車両管理システムであって、
前記第1サーバは、第1通信部と第1制御部と第1記憶部とを備え、
前記第2サーバは、第2通信部と第2制御部と第2記憶部とを備え、
前記車両は、
走り曲がり止まるための機能を有する車両機能部と、
前記車両機能部に着脱可能であり、前記第1通信部と互いに通信可能な第3通信部と、少なくとも1つの第3制御部と、対応する前記第3制御部で実行されるプログラムを記憶する第3記憶部とを備え、前記車両機能部に自動運転の指示を出す自動運転装置と、
前記車両機能部を制御するための制御コマンドを出力する第4制御部と、
前記第2通信部と互いに通信可能な第4通信部とを備え、
前記第1サーバにおいて、
前記第1記憶部は、前記第3制御部の前記プログラムのバージョンを更新するための更新用データを記憶し、
前記第1制御部は、前記車両の前記自動運転装置に、前記更新用データを送信するよう前記第1通信部を制御し、
前記車両の前記自動運転装置において、前記第3制御部は、前記第1サーバから前記第3通信部によって受信された前記更新用データを用いて、対応する前記第3記憶部に記憶された前記プログラムのバージョンを更新し、
前記車両において、前記第4制御部は、
前記第3制御部の更新された前記プログラムのバージョンを検知し、
検知したバージョンを示す第1特定情報を前記第2サーバに送信するよう、前記第4通信部を制御し、
前記第2サーバにおいて、前記第2制御部は、前記車両から前記第2通信部によって受信された前記第1特定情報で示されるバージョンを更新済バージョンとして認知する、車両管理システム。
【請求項2】
前記第1サーバにおいて、前記第1制御部は、前記プログラムの新しいバージョンが作成されるごとに、前記第2サーバに当該バージョンを示す第2特定情報を送信するよう前記第1通信部を制御し、
前記第2サーバにおいて、前記第2制御部は、
前記第1サーバから前記第2通信部によって受信された前記第2特定情報で示される新しいバージョンを古いバージョンに追加して動作可能バージョンとして前記第2記憶部に記憶させ、
前記更新済バージョンが、前記第2記憶部に記憶された前記動作可能バージョンに含まれるか否かを判断し、
前記更新済バージョンが前記動作可能バージョンに含まれるか否かの判断結果を管理者に通知する、請求項1に記載の車両管理システム。
【請求項3】
前記第2サーバにおいて、前記第2制御部は、前記更新済バージョンが前記動作可能バージョンに含まれないと判断された場合、前記車両の運用を停止させるための処理を実行する、請求項2に記載の車両管理システム。
【請求項4】
前記車両において、前記第4制御部は、自動運転の開始前に、前記自動運転装置から前記プログラムのバージョンを取得することでバージョンを検知する、請求項1から請求項3のいずれかに記載の車両管理システム。
【請求項5】
第1サーバと第2サーバと車両とを含む車両管理システムにおける車両管理方法であって、
前記第1サーバは、第1通信部と第1制御部と第1記憶部とを備え、
前記第2サーバは、第2通信部と第2制御部と第2記憶部とを備え、
前記車両は、
走り曲がり止まるための機能を有する車両機能部と、
前記車両機能部に着脱可能であり、前記第1通信部と互いに通信可能な第3通信部と、少なくとも1つの第3制御部と、対応する前記第3制御部で実行されるプログラムを記憶する第3記憶部とを備え、前記車両機能部に自動運転の指示を出す自動運転装置と、
前記車両機能部を制御するための制御コマンドを出力する第4制御部と、
前記第2通信部と互いに通信可能な第4通信部とを備え、
前記第1サーバにおいて、前記第1制御部が、前記車両の前記自動運転装置に、前記第1記憶部に記憶された前記第3制御部の前記プログラムのバージョンを更新するための更新用データを送信するよう前記第1通信部を制御するステップと、
前記車両の前記自動運転装置において、前記第3制御部が、前記第1サーバから前記第3通信部によって受信された前記更新用データを用いて、対応する前記第3記憶部に記憶された前記プログラムのバージョンを更新するステップと、
前記車両において、前記第4制御部が、
前記第3制御部の更新された前記プログラムのバージョンを検知するステップと、
検知したバージョンを示す第1特定情報を前記第2サーバに送信するよう、前記第4通信部を制御するステップと、
前記第2サーバにおいて、前記第2制御部が、前記車両から前記第2通信部によって受信された前記第1特定情報で示されるバージョンを更新済バージョンとして認知するステップとを含む、車両管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
この開示は、車両管理システムおよび車両管理方法に関し、特に、車両の自動運転装置のプログラムのバージョンの管理に適した車両管理システムおよび車両管理方法に関する。
【背景技術】
【0002】
従来、動力システムと電源システムと自動運転システムとを搭載した車両があった(たとえば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
車両の自動運転装置のプログラムが車両に適合したバージョンであれば、車両を適切に制御可能である。このため、自動運転装置のプログラムのバージョンを適切に管理できるようにすることが課題として考えられる。
【0005】
この開示は、このような課題を解決するためになされたものであって、その目的は、自動運転装置のプログラムのバージョンを適切に管理することが可能な車両管理システムおよび車両管理方法を提供することである。
【課題を解決するための手段】
【0006】
この開示に係る車両管理システムは、第1サーバと第2サーバと車両とを含む。第1サーバは、第1通信部と第1制御部と第1記憶部とを備える。第2サーバは、第2通信部と第2制御部と第2記憶部とを備える。車両は、走り曲がり止まるための機能を有する車両機能部と、車両機能部に着脱可能であり、第1通信部と互いに通信可能な第3通信部と、少なくとも1つの第3制御部と、対応する第3制御部で実行されるプログラムを記憶する第3記憶部とを備え、車両機能部に自動運転の指示を出す自動運転装置と、車両機能部を制御するための制御コマンドを出力する第4制御部と、第2通信部と互いに通信可能な第4通信部とを備える。
【0007】
第1サーバにおいて、第1記憶部は、第3制御部のプログラムのバージョンを更新するための更新用データを記憶し、第1制御部は、車両の自動運転装置に、更新用データを送信するよう第1通信部を制御する。車両の自動運転装置において、第3制御部は、第1サーバから第3通信部によって受信された更新用データを用いて、対応する第3記憶部に記憶されたプログラムのバージョンを更新する。車両において、第4制御部は、第3制御部の更新されたプログラムのバージョンを検知し、検知したバージョンを示す第1特定情報を第2サーバに送信するよう、第4通信部を制御する。第2サーバにおいて、第2制御部は、車両から第2通信部によって受信された第1特定情報で示されるバージョンを更新済バージョンとして認知する。
【0008】
このような構成によれば、第1サーバに記憶されている更新用データによって更新された車両の自動運転装置のプログラムのバージョンが更新済バージョンとして第2サーバによって認知される。その結果、自動運転装置のプログラムのバージョンを適切に管理することが可能な車両管理システムを提供することができる。
【0009】
第1サーバにおいて、第1制御部は、プログラムの新しいバージョンが作成されるごとに、第2サーバに当該バージョンを示す第2特定情報を送信するよう第1通信部を制御するようにしてもよい。第2サーバにおいて、第2制御部は、第1サーバから第2通信部によって受信された第2特定情報で示される新しいバージョンを古いバージョンに追加して動作可能バージョンとして第2記憶部に記憶させ、更新済バージョンが、第2記憶部に記憶された動作可能バージョンに含まれるか否かを判断し、更新済バージョンが動作可能バージョンに含まれるか否かの判断結果を管理者に通知するようにしてもよい。
【0010】
このような構成によれば、第2サーバによって、車両の自動運転装置のプログラムの新しいバージョンが作成されるごとに、新しいバージョンが古いバージョンに追加されて動作可能バージョンとして記憶され、車両の自動運転装置のプログラムの更新済バージョンが動作可能バージョンに含まれるか否かの判断結果が管理者に通知される。その結果、車両の自動運転装置のプログラムの更新済バージョンが動作可能バージョンであるか否かを管理者に分からせることができる。
【0011】
第2サーバにおいて、第2制御部は、更新済バージョンが動作可能バージョンに含まれないと判断された場合、車両の運用を停止させるための処理を実行するようにしてもよい。
【0012】
このような構成によれば、車両の自動運転装置のプログラムの更新済バージョンが動作可能バージョンでないような場合に、車両の運用を停止させることができる。
【0013】
車両において、第4制御部は、自動運転の開始前に、自動運転装置からプログラムのバージョンを取得することでバージョンを検知するようにしてもよい。
【0014】
このような構成によれば、車両の自動運転装置のプログラムの更新済バージョンが動作可能バージョンであるか否かを確認した後に、自動運転を開始することができる。
【0015】
この開示の他の局面によれば、車両管理方法は、第1サーバと第2サーバと車両とを含む車両管理システムにおける方法である。第1サーバは、第1通信部と第1制御部と第1記憶部とを備える。第2サーバは、第2通信部と第2制御部と第2記憶部とを備える。車両は、走り曲がり止まるための機能を有する車両機能部と、車両機能部に着脱可能であり、第1通信部と互いに通信可能な第3通信部と、少なくとも1つの第3制御部と、対応する第3制御部で実行されるプログラムを記憶する第3記憶部とを備え、車両機能部に自動運転の指示を出す自動運転装置と、車両機能部を制御するための制御コマンドを出力する第4制御部と、第2通信部と互いに通信可能な第4通信部とを備える。
【0016】
車両管理方法は、第1サーバにおいて、第1制御部が、車両の自動運転装置に、第1記憶部に記憶された第3制御部のプログラムのバージョンを更新するための更新用データを送信するよう第1通信部を制御するステップと、車両の自動運転装置において、第3制御部が、第1サーバから第3通信部によって受信された更新用データを用いて、対応する第3記憶部に記憶されたプログラムのバージョンを更新するステップと、車両において、第4制御部が、第3制御部の更新されたプログラムのバージョンを検知するステップと、検知したバージョンを示す第1特定情報を第2サーバに送信するよう、第4通信部を制御するステップと、第2サーバにおいて、第2制御部が、車両から第2通信部によって受信された第1特定情報で示されるバージョンを更新済バージョンとして認知するステップとを含む。
【0017】
このような構成によれば、自動運転装置のプログラムのバージョンを適切に管理することが可能な車両管理方法を提供することができる。
【発明の効果】
【0018】
この開示によれば、自動運転装置のプログラムのバージョンを適切に管理することが可能な、車両管理システムおよび車両管理方法を提供することができる。
【図面の簡単な説明】
【0019】
【
図1】この開示の実施の形態に係る車両管理システムの構成の概略を示す図である。
【
図2】この開示の実施の形態に係る車両の概要を示す図である。
【
図3】この実施の形態に係るADS、VCIBおよびVPの構成を詳細に示す図である。
【
図4】第1実施形態に係る車両管理システムにおけるADKのプログラムのバージョンを管理するための処理の流れを示すフローチャートである。
【
図5】第2実施形態に係る車両管理システムにおけるADKのプログラムのバージョンを管理するための処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0020】
[第1実施形態]
以下、本開示の実施の形態について、図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付して、その説明は繰り返さない。
【0021】
<全体構成>
図1は、この開示の実施の形態に係る車両管理システム100の構成の概略を示す図である。
図1を参照して、車両1は、走り曲がり止まるための機能を有する車両プラットフォーム(VP:Vehicle Platform)20と、VP20に着脱可能であるとともにVP20に自動運転の指示を出す自動運転キット(ADK:Autonomous Driving Kit)10とを備える。VP20は、ADK10からの指示を受付けてVP20の各部を制御する車両制御インターフェースボックス(VCIB:Vehicle Control Interface Box)40と、車両プラットフォーム(VP:Vehicle Platform)20の製造者のサーバ3などの外部装置と無線通信が可能な通信装置であるDCM(Data Communication Module)90とを含む。
【0022】
車両管理システム100は、複数の車両1を管理するためのシステムである。車両管理システム100は、この実施の形態においては、ADK10によって実行される、自動運転のためのプログラムのバージョンを管理する。車両管理システム100は、複数の車両1と、当該車両1のADK10の製造者のサーバ2と、前述のサーバ3と、当該車両1の運用管理者のサーバ4とを含む。
【0023】
運用管理者は、複数の車両1を運用して所定の事業(たとえば、貨物または旅客などの輸送事業)を営んでいる。VP20の製造者は、VP20を管理および管制している。ADK10の製造者は、ADK10を管理および管制している。
【0024】
サーバ4は、CPU(Central Processing Unit)410と、メモリ420と、入力部430と、出力部440と、補助記憶装置450と、外部装置と無線通信および有線通信が可能な外部通信ユニット490とを備える。メモリ420は、ROM(Read Only Memory)およびRAM(Random Access Memory)などで構成されるとともにCPU410によって実行されるプログラムおよびプログラムで用いられるデータを記憶する。入力部430は、たとえば、キーボードおよびマウスなどであり、所定情報または所定操作のサーバ4への入力を受付ける。出力部440は、たとえば、ディスプレイおよびスピーカなどであり、所定情報をサーバ4から出力する。補助記憶装置450は、メモリ420を補助して大容量のプログラムおよびデータを記憶する。
【0025】
CPU410は、メモリ420または補助記憶装置450に記憶されたプログラムにしたがって、メモリ420もしくは補助記憶装置450に記憶されたデータ、入力部430から入力されたデータ、または、外部装置から外部通信ユニット490で受信されたデータを処理し、メモリ420または補助記憶装置450に記憶させたり、出力部440で出力させたり、外部通信ユニット490で外部装置に送信させたりする。
【0026】
サーバ2,3のサーバ4と同じ名称の装置は、サーバ4と同様の装置である。
図1においては、サーバ2,3には、入力部および出力部が含まれていないが、含めるようにしてもよい。
【0027】
図2は、この開示の実施の形態に係る車両1の概要を示す図である。前述したように、車両1は、ADK10と、VP20とを備える。ADK10は、VP20に取り付け可能(車両1に着脱可能)に構成されている。ADK10とVP20とは、VCIB40を介して相互に通信可能に構成されている。
【0028】
VP20は、ADK10からの制御要求に従って自動運転を行うことができる。なお、
図2では、ADK10がVP20から離れた位置に示されているが、ADK10は、実際にはVP20のルーフトップ等に取り付けられる。ADK10をVP20から取り外すことも可能である。ADK10が取り外されている場合には、VP20は、マニュアルモードによる走行制御(ユーザ操作に応じた走行制御)を実行する。
【0029】
ADK10は、車両1の自動運転を行うための自動運転システム(ADS:Autonomous Driving System)11を含む。ADS11は、たとえば、車両1の走行計画を作成する。ADS11は、走行計画に従って車両1を走行させるための各種制御要求を、制御要求毎に定義されたAPI(Application Program Interface)に従ってVP20に出力する。また、ADS11は、車両状態(VP20の状態)を示す各種信号を、信号毎に定義されたAPIに従ってVP20から受ける。そして、ADS11は、車両状態を走行計画に反映する。ADS11の詳細な構成については
図3にて説明する。
【0030】
VP20は、ベース車両30と、VCIB40とを含む。ベース車両30は、ADK10(ADS11)からの制御要求に従って各種車両制御を実行する。ベース車両30は、ベース車両30を制御するための各種システムおよび各種センサを含む。より具体的には、ベース車両30は、統合制御マネージャ31と、ブレーキシステム32と、ステアリングシステム33と、パワートレーンシステム34と、アクティブセーフティシステム35と、ボディシステム36と、車輪速センサ51,52と、ピニオン角センサ53と、カメラ54と、レーダセンサ55,56とを含む。
【0031】
統合制御マネージャ31は、いずれも図示しないが、CPUなどのプロセッサと、ROMおよびRAMなどのメモリとを含み、車両1の動作に関わる上記各システム(ブレーキシステム32、ステアリングシステム33、パワートレーンシステム34、アクティブセーフティシステム35、ボディシステム36)を統合して制御する。
【0032】
ブレーキシステム32は、ベース車両30の各車輪に設けられた制動装置を制御するように構成されている。制動装置は、たとえば、アクチュエータによって調整される油圧に応じて動作するディスクブレーキシステム(図示せず)を含む。
【0033】
ブレーキシステム32には車輪速センサ51,52が接続されている。車輪速センサ51は、ベース車両30の前輪の回転速度を検出し、検出された前輪の回転速度をブレーキシステム32に出力する。車輪速センサ52は、ベース車両30の後輪の回転速度を検出し、検出された後輪の回転速度をブレーキシステム32に出力する。ブレーキシステム32は、各車輪の回転速度を車両状態に含まれる情報の一つとしてVCIB40に出力する。また、ブレーキシステム32は、ADS11からVCIB40および統合制御マネージャ31を介して出力される所定の制御要求に従って、制動装置に対する制動指令を生成する。ブレーキシステム32は、生成された制動指令を用いて制動装置を制御する。なお、統合制御マネージャ31は、各車輪の回転速度に基づいて車両1の速度(車速)を算出できる。
【0034】
ステアリングシステム33は、車両1の操舵輪の操舵角(タイヤの切れ角)を操舵装置を用いて制御可能に構成されている。操舵装置は、たとえば、アクチュエータにより操舵角の調整が可能なラック&ピニオン式の電動パワーステアリング(EPS:Electric Power Steering)を含む。
【0035】
ステアリングシステム33にはピニオン角センサ53が接続されている。ピニオン角センサ53は、アクチュエータの回転軸に連結されたピニオンギヤの回転角(ピニオン角)を検出し、検出されたピニオン角をステアリングシステム33に出力する。ステアリングシステム33は、ピニオン角を車両状態に含まれる情報の一つとしてVCIB40に出力する。また、ステアリングシステム33は、ADS11からVCIB40および統合制御マネージャ31を介して出力される所定の制御要求に従って、操舵装置に対する操舵指令を生成する。ステアリングシステム33は、生成された操舵指令を用いて操舵装置を制御する。
【0036】
パワートレーンシステム34は、複数の車輪のうちの少なくとも1つに設けられた電動パーキングブレーキ(EPB:Electric Parking Brake)システム341と、車両1のトラッスミッションに設けられたパーキングロック(P-Lock)システム342と、シフトレンジを選択可能に構成されたシフト装置(図示せず)を含む推進システム343とを制御する。パワートレーンシステム34の詳細な構成については、
図3にて説明する。
【0037】
アクティブセーフティシステム35は、カメラ54およびレーダセンサ55,56を用いて前方または後方の障害物(歩行者、自転車、駐車車両、電柱など)を検出する。アクティブセーフティシステム35は、車両1と障害物との間の距離、および、車両1の移動方向に基づいて、車両1が障害物と衝突する可能性があるかどうかを判定する。アクティブセーフティシステム35は、衝突の可能性があると判定した場合、制動力が増加するように、統合制御マネージャ31を介してブレーキシステム32に制動指令を出力する。
【0038】
ボディシステム36は、たとえば、車両1の走行状態または環境等に応じて、方向指示器、ホーン、ワイパー等の部品(いずれも図示せず)を制御するように構成されている。ボディシステム36は、ADS11からVCIB40および統合制御マネージャ31を介して出力される所定の制御要求に従って、上記の各部品を制御する。
【0039】
VCIB40は、CAN(Controller Area Network)等を通じてADS11と通信可能に構成されている。VCIB40は、信号毎に定義された所定のAPIを実行することにより、ADS11から各種制御要求を受信したり、車両状態をADS11に出力したりする。VCIB40は、ADK10から制御要求を受信すると、その制御要求に対応する制御指令を統合制御マネージャ31を介して、その制御指令に対応するシステムに出力する。また、VCIB40は、ベース車両30の各種情報を各種システムから統合制御マネージャ31を介して取得し、ベース車両30の状態を車両状態としてADS11に出力する。
【0040】
なお、車両1は、MaaS(Mobility as a Service)システムの構成の一つとして使用され得る。MaaSシステムは、車両1に加えて、たとえば、データサーバと、モビリティサービス・プラットフォーム(MSPF:Mobility Service Platform)(いずれも図示せず)とを備える。
【0041】
MSPFとは、様々なモビリティサービスが接続される統一プラットフォームである。MSPFには、自動運転関連のモビリティサービスが接続される。MSPFには、自動運転関連のモビリティサービス以外にも、ライドシェア事業者、カーシェア事業者、レンタカー事業者、タクシー事業者、保険会社等により提供されるモビリティサービスが接続され得る。
【0042】
車両1は、前述したように、データサーバと無線通信が可能なDCM90をさらに備える。DCM90は、たとえば、速度、位置、自動運転状態のような車両情報をデータサーバに出力する。また、DCM90は、たとえば、自動運転関連のモビリティサービスにおいて車両1を含む自動運転車両の走行を管理するための各種データを、モビリティサービスからMSPFおよびデータサーバを通じて受信する。
【0043】
MSPFにおいては、ADS11の開発に必要な車両状態および車両制御の各種データを利用するためのAPIが公開されている。各種モビリティサービスは、MSPF上で公開されたAPIを用いて、MSPFが提供する様々な機能をサービス内容に応じて利用できる。たとえば自動運転関連のモビリティサービスは、MSPF上で公開されたAPIを用いて、車両1の運転制御データ、データサーバに蓄えられた情報等をMSPFから取得できる。また、自動運転関連のモビリティサービスは、上記APIを用いて、車両1を含む自動運転車両を管理するためのデータ等をMSPFへ送信できる。
【0044】
<詳細構成>
図3は、この実施の形態に係るADS11、VCIB40およびVP20の構成を詳細に示す図である。
図3に示すように、ADS11は、コンピュータ111と、HMI(Human Machine Interface)112と、認識用センサ113と、姿勢用センサ114と、センサクリーナ115と、サーバ2などの外部装置と無線通信が可能な外部通信ユニット119とを含む。
【0045】
コンピュータ111は、CPUなどのプロセッサ111Aと、ROMおよびRAMなどのメモリ111Bとを含む。メモリ111Bは、プロセッサ111Aによって実行可能なプログラムを記憶する。コンピュータ111は、車両1の自動運転時に各種センサ(後述)を用いて車両1の環境、ならびに、車両1の姿勢、挙動および位置を取得するとともに、VP20からVCIB40を経由して車両状態を取得して車両1の次の動作(加速、減速、曲がる、止まる等)を設定する。コンピュータ111は、次の動作を実現するための各種指令をVCIB40に出力する。コンピュータ111は、さらに、通信モジュール111C,111Dを含む。通信モジュール111C,111Dの各々は、VCIB40と通信可能に構成されている。
【0046】
HMI112は、自動運転時、ユーザ操作を要する運転時、自動運転とユーザ操作を要する運転との間の移行時などに、ユーザに情報を提示したりユーザ操作を受け付けたりする。HMI112は、たとえば、ベース車両30に設けられたタッチパネルディスプレイ等の入出力装置(図示せず)と接続されるように構成されている。
【0047】
認識用センサ113は、車両1の環境を認識するためのセンサである。認識用センサ113は、たとえばLIDAR(Laser Imaging Detection and Ranging)と、ミリ波レーダと、カメラ(いずれも図示せず)とのうちの少なくとも1つを含む。LIDARは、たとえば赤外パルスのレーザ光を発し、そのレーザ光の対象物からの反射光を検出することによって対象物の距離および方向を計測する。ミリ波レーダは、ミリ波を発し、そのミリ波の対象物からの反射波を検出することによって対象物の距離および方向を計測する。カメラは、たとえばルームミラーの裏側に配置され、車両1の前方の画像を撮影する。
【0048】
姿勢用センサ114は、車両1の姿勢、挙動、位置を検出するためのセンサである。姿勢用センサ114は、たとえば、IMU(Inertial Measurement Unit)と、GPS(Global Positioning System)(いずれも図示せず)とを含む。IMUは、たとえば、車両1の前後方向、左右方向および上下方向の加速度と、車両1のロール方向、ピッチ方向およびヨー方向の角速度とを検出する。GPSは、地球の軌道上を周回する複数のGPS衛星から受信する情報を用いて車両1の位置を検出する。
【0049】
センサクリーナ115は、洗浄液、ワイパー等を用いて、車両1の走行中に上記の各種センサ(カメラのレンズ、レーザ光の照射部など)に付着する汚れを除去するように構成される。
【0050】
VCIB40は、VCIB41と、VCIB42とを含む。VCIB41,42の各々は、CPUなどのプロセッサ411,421と、ROMおよびRAMなどのメモリ412,422と、外部と通信するためのインターフェースである通信部413,423とを含む。メモリは、プロセッサによって実行可能なプログラムを記憶する。VCIB41の通信部413と通信モジュール111Cとは相互に通信可能に接続されている。VCIB42の通信部423と通信モジュール111Dとは相互に通信可能に接続されている。さらに、VCIB41の通信部413とVCIB42の通信部423とは相互に通信可能に接続されている。
【0051】
VCIB41,42の各々は、ADS11とVP20との間で制御要求および車両情報を中継する。より具体的には、VCIB41は、APIを用いて、ADS11からの制御要求から制御指令を生成する。
【0052】
ADS11からVCIB40に供給される制御要求に対応する制御指令(コマンド)は、たとえば、シフトレンジの切り替えを要求する推進方向コマンドと、EPBシステム341およびP-Lockシステム342の作動/作動解除を要求する不動コマンドと、車両1の加速または減速を要求する加速コマンドと、操舵輪のタイヤ切れ角を要求するタイヤ切れ角コマンドと、自律(Autonomous)モードとマニュアルモードとの切り替えを要求する自律化コマンドと、車両の停車保持または停車保持の解除を要求する停止コマンドとを含む。
【0053】
そして、VCIB41は、生成された制御指令を、VP20に含まれる複数のシステムのうちの対応するシステムに出力する。また、VCIB41は、APIを用いて、VP20の各システムからの車両情報から車両状態を示す情報を生成する。車両状態を示す情報は、車両情報と同一の情報であってもよいし、車両情報からADS11で実行される処理に用いられる情報が抽出されたものであってもよい。VCIB41は、生成された車両状態を示す情報をADS11に出力する。VCIB42についても同様である。
【0054】
ブレーキシステム32は、ブレーキシステム321,322を含む。ステアリングシステム33は、ステアリングシステム331,332を含む。パワートレーンシステム34は、EPBシステム341と、P-Lockシステム342と、推進システム343とを含む。
【0055】
VCIB41とVCIB42とは基本的には同等の機能を有するが、VCIB41とVCIB42との間では、VP20を含まれるシステムへの接続先が一部異なっている。具体的には、VCIB41と、ブレーキシステム321と、ステアリングシステム331と、EPBシステム341と、P-Lockシステム342と、推進システム343と、ボディシステム36とは、通信バスを介して相互に通信可能に接続されている。VCIB42と、ブレーキシステム322と、ステアリングシステム332と、P-Lockシステム342とは、通信バスを介して相互に通信可能に接続されている。
【0056】
このように、一部システムの動作(ブレーキ、操舵など)に関して同等の機能を有するVCIB41,42をVCIB40が含むことにより、ADS11とVP20との間の制御系統が冗長化されている。したがって、当該システムに何らかの障害が発生した場合に、適宜、制御系統を切り替えたり障害が発生した制御系統を遮断したりすることによって、VP20の機能を維持できる。
【0057】
ブレーキシステム321,322の各々は、制動装置を制御可能に構成されている。ブレーキシステム321は、ADS11からVCIB41を介して出力される制御要求に従って、制動装置に対する制動指令を生成する。ブレーキシステム322は、ADS11からVCIB42を介して出力される制御要求に従って、制動装置に対する制動指令を生成する。ブレーキシステム321とブレーキシステム322とは同等の機能を有していてもよい。あるいは、ブレーキシステム321,322のうちの一方は各車輪の制動力を独立して制御可能に構成され、他方は各車輪において同じ制動力が発生するように制御可能に構成されていてもよい。ブレーキシステム321,322は、たとえば、いずれか一方のブレーキシステムにより生成された制動指令を用いて制動装置を制御し、そのブレーキシステムに異常が発生した場合に他方のブレーキシステムにより生成された制動指令を用いて制動装置を制御してもよい。
【0058】
ステアリングシステム331,332の各々は、車両1の操舵輪の操舵角を操舵装置を用いて制御可能に構成されている。ステアリングシステム331は、ADS11からVCIB41を介して出力される制御要求に従って、操舵装置に対する操舵指令を生成する。ステアリングシステム332は、ADS11からVCIB42を介して出力される制御要求に従って、操舵装置に対する操舵指令を生成する。ステアリングシステム331とステアリングシステム332とは同等の機能を有していてもよい。あるいは、ステアリングシステム331,332は、たとえば、いずれか一方のステアリングシステムにより生成された操舵指令を用いて操舵装置を制御し、そのステアリングシステムに異常が発生した場合に他方のステアリングシステムにより生成された操舵指令を用いて操舵装置を制御してもよい。
【0059】
EPBシステム341は、ADS11からVCIB41を介して出力される制御要求に従ってEPBを制御する。EPBは、制動装置(ディスクブレーキシステムなど)とは別に設けられ、アクチュエータの動作によって車輪を固定する。EPBは、たとえば、複数の車輪のうちの一部に設けられたパーキングブレーキ用のドラムブレーキをアクチュエータを用いて作動させて車輪を固定したり、ブレーキシステム321,322とは別に制動装置に供給される油圧を調整可能なアクチュエータを用いて制動装置を作動させて車輪を固定したりする。EPBシステム341は、ブレーキホールド機能を有し、ブレーキホールドの作動と解除とを切替可能に構成されている。
【0060】
P-Lockシステム342は、ADS11からVCIB41を介して出力される制御要求に従ってP-Lock装置を制御する。P-Lockシステム342は、たとえば、制御要求がシフトレンジをパーキングレンジ(Pレンジ)にする制御要求を含む場合にP-Lock装置を作動させ、制御要求がシフトレンジをPレンジ以外にする制御要求を含む場合にP-Lock装置の作動を解除する。P-Lock装置は、車両1のトランスミッション内の回転要素に連結して設けられた歯車(ロックギヤ)の歯部に対して、アクチュエータによる位置調整が可能なパーキングロックポールの先端の突起部を嵌合させる。これにより、トランスミッションの出力軸の回転が固定され、車輪が固定される。
【0061】
推進システム343は、ADS11からVCIB41を介して出力される制御要求に従って、シフト装置のシフトレンジを切り替えたり、駆動源(モータジェネレータ、エンジンなど)からの駆動力を制御したりする。シフトレンジは、Pレンジに加えて、たとえば、ニュートラルレンジ(Nレンジ)と、前進走行レンジ(Dレンジ)と、後進走行レンジ(Rレンジ)とを含む。
【0062】
アクティブセーフティシステム35は、ブレーキシステム321と通信可能に接続されている。アクティブセーフティシステム35は、前述のとおり、カメラ54および/またはレーダセンサ55を用いて前方の障害物を検出し、衝突の可能性があると判定した場合に制動力が増加するようにブレーキシステム321に制動指令を出力する。
【0063】
ボディシステム36は、ADS11からVCIB41を介して出力される制御要求に従って、方向指示器、ホーン、ワイパー等の部品を制御する。
【0064】
車両1においては、たとえばユーザのHMI112に対する操作によって自律モードが選択された場合に自動運転が実行される。前述したように、ADS11は、自動運転中には、まず走行計画を作成する。走行計画の例としては、たとえば、直進を継続する計画、予め定められた走行経路の途中の所定の交差点で左折/右折する計画、走行車線を変更する計画などが挙げられる。ADS11は、作成された走行計画に従って、車両1が動作するために必要な制御的な物理量(加速度、減速度、タイヤ切れ角など)を算出する。ADS11は、APIの実行周期毎の物理量を分割する。ADS11は、APIを用いて、分割された物理量を表す制御要求をVCIB40に出力する。さらに、ADS11は、VP20から車両状態(車両1の実際の移動方向、車両の固定化の状態など)を取得し、取得された車両状態を反映した走行計画を再作成する。このようにして、ADS11は、車両1の自動運転を可能とする。
【0065】
<ADK10のプログラムのバージョンの管理>
上述したようなADK10のADS11のコンピュータ111のプロセッサ111Aは、メモリ111Bに記憶されたプログラムにしたがって所定の処理を実行する。なお、ここでは、ADS11のコンピュータ111には、プロセッサ111Aが1つ備えられている例について示しているが、コンピュータ111に備えられるプロセッサは1つに限定されず、複数のプロセッサが備えられるようにしてもよい。プロセッサが複数、備えられる場合、各プロセッサで実行されるプログラムを記憶したメモリが対応して設けられる。
【0066】
この車両1のADK10のプログラムが車両1に適合したバージョンであれば、車両1を適切に制御可能である。逆に、ADK10のプログラムが車両1に適合したバージョンでなければ、車両1を適切に制御できない場合が生じる。このため、ADK10のプログラムのバージョンを適切に管理できるようにすることが課題として考えられる。
【0067】
そこで、ADK10の製造者のサーバ2において、メモリ220または補助記憶装置250は、ADK10のプロセッサ111Aのプログラムのバージョンを更新するための更新用データを記憶し、CPU210は、車両1のADK10に、更新用データを送信するよう外部通信ユニット290を制御する。車両1のADK10において、プロセッサ111Aは、サーバ2から外部通信ユニット119によって受信された更新用データを用いて、対応するメモリ111Bに記憶されたプログラムのバージョンを更新する。車両1において、VCIB41,42のプロセッサ411,421は、ADK10のプロセッサ111Aの更新されたプログラムのバージョンを検知し、検知したバージョンを示す特定情報をVP20の製造者のサーバ3に送信するよう、DCM90を制御する。サーバ3において、CPU310は、車両1から外部通信ユニット390によって受信された特定情報で示されるバージョンを更新済バージョンとして認知する。
【0068】
これにより、ADK10の製造者のサーバ2に記憶されている更新用データによって更新された車両1のADK10のプログラムのバージョンが更新済バージョンとしてVP20の製造者のサーバ3によって認知される。このため、ADK10のプログラムのバージョンをVP20の製造者のサーバ3でも管理することができる。その結果、ADK10のプログラムのバージョンを適切に管理することができる。
【0069】
ADK10の製造者によってADK10のプロセッサ111Aで実行されるプログラムのバージョンが更新されると、通常、VP20の製造者は、車両1に取付けられているADK10に更新されたバージョンのプログラムを組込んだときに、適切に動作するかを確認している。
【0070】
図4は、第1実施形態に係る車両管理システム100におけるADK10のプログラムのバージョンを管理するための処理の流れを示すフローチャートである。
図4を参照して、ADK10の製造者のサーバ2において、CPU210は、新しいバージョンの作成を把握したか否かを判断する(ステップS211)。新バージョンの作成を把握した(ステップS211でYES)と判断した場合、CPU210は、新バージョンを示す情報を含む新バージョンが作成されたことを示す情報を、VP20の製造者のサーバ3に通知するよう外部通信ユニット290を制御する(ステップS212)。
【0071】
VP20の製造者のサーバ3において、CPU310は、外部通信ユニット390によって、ADK10の製造者のサーバ2から、新バージョンが作成されたことを示す情報の通知が受信されたか否かを判断する(ステップS311)。新バージョンが作成されたことを示す情報の通知が受信された(ステップS311でYES)と判断した場合、CPU310は、当該新バージョンのプログラムを組込んだ、実車またはシミュレーションでの試験において車両1が適切に動作することを事前に確認していることによって、新バージョンへの更新を許可できるか否かを判断する(ステップS312)。
【0072】
新バージョンへの更新が許可できる(ステップS312でYES)と判断した場合、CPU310は、新バージョンへの更新を許可する旨の情報をサーバ2へ送信するよう外部通信ユニット390を制御する(ステップS313)。そして、CPU310は、車両1のADK10で動作可能なバージョンを示す動作可能バージョン情報に新バージョンを示す情報を追加して、メモリ320または補助記憶装置350に記憶させる(ステップS314)。
【0073】
ADK10の製造者のサーバ2において、CPU210は、外部通信ユニット290によって、VP20の製造者のサーバ3から、新バージョンへの更新を許可する旨の情報を受信されたか否かを判断する(ステップS213)。新バージョンへの更新を許可する旨の情報が受信された(ステップS213でYES)と判断した場合、CPU210は、車両1のADK10に、ADK10のコンピュータ111のプロセッサ111Aのプログラムを新バージョンへ更新するための更新用情報を送信するよう、外部通信ユニット290を制御する(ステップS214)。
【0074】
新バージョンの作成を把握していない(ステップS211でNO)と判断した場合、新バージョンへの更新を許可する旨の情報を受信していない(ステップS213でNO)と判断した場合、または、ステップS214の後、CPU210は、実行する処理を上位の処理に戻す。
【0075】
車両1のADK10において、ADS11のコンピュータ111のプロセッサ111Aは、外部通信ユニット119によって、ADK10の製造者のサーバ2から、更新用情報を受信されたか否かを判断する(ステップS111)。更新用情報が受信された(ステップS111でYES)と判断した場合、プロセッサ111Aは、更新用情報を用いて、メモリ111Bに記憶された更新対象のプロセッサ111Aのプログラムを更新する(ステップS112)。
【0076】
プロセッサ111Aは、現在がADK10による自動運転の開始時であるか否かを判断する(ステップS113)。自動運転の開始時である(ステップS113でYES)と判断した場合、プロセッサ111Aは、プロセッサ111Aで実行されているプログラムのバージョンを示す特定情報をVCIB40に送信するよう通信モジュール111C,111Dを制御する(ステップS114)。
【0077】
自動運転の開始時でない(ステップS113でNO)と判断した場合、または、ステップS114の後、プロセッサ111Aは、実行する処理を上位の処理に戻す。
【0078】
車両1のVP20のVCIB40において、VCIB41,42のプロセッサ411,421は、それぞれ、通信部413,423によって、ADK10から、特定情報が受信されたか否かを判断する(ステップS411)。特定情報が受信された(ステップS411でYES)と判断した場合、プロセッサ411,421は、それぞれ、受信した特定情報をVP20の製造者のサーバ3に送信するようDCM90を制御する(ステップS412)。
【0079】
特定情報が受信されていない(ステップS411でNO)と判断した場合、または、ステップS412の後、プロセッサ411,421は、実行する処理を上位の処理に戻す。
【0080】
VP20の製造者のサーバ3において、CPU310は、外部通信ユニット390によって、車両1のVP20から特定情報が受信されたか否かを判断する(ステップS321)。特定情報が受信された(ステップS321でYES)と判断した場合、CPU310は、受信された特定情報で示されるADK10の更新済のプログラムのバージョンが、メモリ320または補助記憶装置350に記憶されている動作可能バージョン情報に含まれる、車両1のADK10で動作可能なバージョンに一致するかを判断する(ステップS322)。
【0081】
更新済のバージョンが動作可能バージョンに一致しない(ステップS322でNO)と判断した場合、CPU310は、運行管理者によるその特定情報を送信してきた車両1の運用を停止させるため、バージョンが不一致であった旨を、当該車両1の運用管理者のサーバ4に送信するよう、外部通信ユニット390を制御する(ステップS323)。運用管理者は、バージョンが不一致であった旨を受信することで、状況に応じた車両1の運行を停止させるための処理を実行できる。運行を停止させるための処理としては、たとえば、車両1に運転者がいる場合は、手動運転で整備工場に向かうように運転者に指示する処理であってもよいし、運転者がいるかいないかに関わらず、自動運転で整備工場に向かうよう制御する処理であってもよいし、すぐに運行を停止させる処理であってもよい。
【0082】
特定情報が受信されていない(ステップS321でNO)と判断した場合、更新済のバージョンが動作可能バージョンに一致する(ステップS322でYES)と判断した場合、または、ステップS323の後、CPU310は、実行する処理を上位の処理に戻す。
【0083】
これによって、車両1のADK10で更新済のプログラムのバージョンが、事前に確認された動作可能バージョンでない場合は、当該車両1の運用を停止させることができる。このため、ADK10の製造者によってADK10のプログラムが、動作可能なことが確認されていないバージョンに故意または過失で更新された場合、または、悪意を持った第三者によってADK10のプログラムが不正に更新された場合であっても、当該車両1が誤動作する前に運用を停止させることができる。その結果、ADK10のプログラムのバージョンを適切に管理することができる。
【0084】
[第2実施形態]
第1実施形態においては、更新済のプログラムのバージョンが動作可能バージョンであるか否かは、VP20の製造者のサーバ3で確認されるようにした。第2実施形態においては、更新済のプログラムのバージョンが動作可能バージョンであるか否かは、車両1のVCIB41,42で確認されるようにする。
【0085】
図5は、第2実施形態に係る車両管理システム100におけるADK10のプログラムのバージョンを管理するための処理の流れを示すフローチャートである。
図5を参照して、
図5の各ステップの処理のうち、第1実施形態の
図4と同じステップの番号の処理は、
図4で説明した処理の内容と同じであるので、重複する説明は繰り返さない。
【0086】
VP20の製造者のサーバ3において、
図4で説明したステップS313の後、CPU310は、車両1のADK10のプログラムの新バージョンを示すバージョン情報を、車両1のVCIB40に送信するよう外部通信ユニット390を制御する。
【0087】
車両1のVP20のVCIB40において、VCIB41,42のプロセッサ411,421は、それぞれ、通信部413,423によって、サーバ3から、バージョン情報が受信されたか否かを判断する(ステップS421)。バージョン情報が受信された(ステップS421でYES)と判断した場合、当該車両1のADK10で動作可能なバージョンを示す動作可能バージョン情報に、受信されたバージョン情報で示される新バージョンを示す情報を追加して、VCIB40のメモリ412,422に記憶させる(ステップS422)。
【0088】
VCIB41,42のプロセッサ411,421は、それぞれ、通信部413,423によって、ADK10から、特定情報が受信されたか否かを判断する(ステップS423)。特定情報が受信された(ステップS423でYES)と判断した場合、プロセッサ411,421は、それぞれ、受信した特定情報で示されるADK10の更新済のプログラムのバージョンが、メモリ412,422に記憶されている動作可能バージョン情報に含まれる、ADK10で動作可能なバージョンに一致するかを判断する(ステップS424)。
【0089】
更新済のバージョンが動作可能バージョンに一致しない(ステップS424でNO)と判断した場合、プロセッサ411,421は、車両1の運用を停止させるための処理を実行する(ステップS425)。車両1の運用を停止させるための処理としては、たとえば、車両1に運転者がいる場合は、手動運転で整備工場に向かうように運転者に指示する処理であってもよいし、運転者がいるかいないかに関わらず、自動運転で整備工場に向かうようVP20の各部を制御する処理であってもよいし、すぐに運行を停止させるようVP20の各部を制御する処理であってもよい。
【0090】
特定情報が受信されていない(ステップS423でNO)と判断した場合、更新済のバージョンが動作可能バージョンに一致する(ステップS424でYES)と判断した場合、または、ステップS425の後、プロセッサ411,421は、実行する処理を上位の処理に戻す。
【0091】
これによって、車両1のADK10で更新済のプログラムのバージョンが、事前に確認された動作可能バージョンでない場合は、当該車両1の運用を停止させることができる。このため、ADK10の製造者によってADK10のプログラムが、動作可能なことが確認されていないバージョンに故意または過失で更新された場合、または、悪意を持った第三者によってADK10のプログラムが不正に更新された場合であっても、当該車両1が誤動作する前に運用を停止させることができる。その結果、ADK10のプログラムのバージョンを適切に管理することができる。
【0092】
[変形例]
(1) 前述した実施の形態においては、
図3で示したように、ADK10のコンピュータ111のプロセッサ111Aが1つである場合の例について示した。しかし、これに限定されず、ADK10のコンピュータ111のプロセッサが複数であってもよい。この場合、複数のプロセッサのそれぞれに対応するプログラムは、1つのメモリ111Bに記憶されるようにしてもよいし、複数のプロセッサにそれぞれ対応するメモリに記憶されるようにしてもよく、それぞれ、独立に更新されることとする。
【0093】
(2) 前述した実施の形態においては、
図1で示したように、サーバ2,3は、それぞれ、ADK10およびVP20の製造者のサーバであることとした。しかし、これに限定されず、サーバ2,3は、他の者のサーバであってもよく、たとえば、それぞれ、ADK10およびVP20の販売者のサーバであってもよい。
【0094】
(3) 前述した実施の形態においては、
図4および
図5のステップS113等で示したように、バージョンが適正か否かの判断のタイミングが、自動運転の開始時であることとした。しかし、バージョンが適正か否かの判断のタイミングは、これに限定されず、他のタイミングであってもよく、車両1の起動時であってもよいし、手動運転から自動運転への切替え時であってもよい。
【0095】
(4) 前述した実施の形態においては、
図4および
図5で示したように、VP20の側の制御部がVCIB41,42のプロセッサ411,421であることした。しかし、これに限定されず、VP20の制御部は、他の制御部であってもよく、たとえば、
図2で示した統合制御マネージャ31のプロセッサであってもよいし、他のECUのプロセッサであってもよい。
【0096】
(5) 前述した実施の形態においては、
図1で示したように、車両1の運行管理者は、VP20の製造者(または販売者)と異なることとした。しかし、これに限定されず、車両1の運行管理者が、VP20の製造者(または販売者)と同じであってもよい。
【0097】
(6) 前述した実施の形態では、ADK10およびVCIB41,42は、CANで接続されることとした。しかし、これに限定されず、ADK10およびVCIB41,42を接続するのは、どのような接続方式であってもよく、CANと異なる車載通信ネットワークであってもよいし、他の通信方式の接続方式であってもよい。
【0098】
(7) 前述した実施の形態を、サーバ2,3,4、車両1、ADK10、ADS11、VP20、ベース車両30またはVCIB40などの装置の開示と捉えることができるし、これらの装置のうちいずれか複数の装置を含むシステムの開示と捉えることができるし、これらの装置またはシステムでの方法またはプログラムの開示と捉えることができる。
【0099】
[まとめ]
(1)
図1で示したように、車両管理システム100は、ADK10の製造者(または販売者)のサーバ2と、VP20の製造者(または販売者)のサーバ3と、車両1とを含む。
図1で示したように、サーバ2は、外部通信ユニット290とCPU210とメモリ220(または補助記憶装置250)とを備える。
図1で示したように、サーバ3は、外部通信ユニット390とCPU310とメモリ320(または補助記憶装置350)とを備える。
図1から
図3で示したように、車両1は、走り曲がり止まるための機能を有するVP20と、VP20に着脱可能であり、サーバ2の外部通信ユニット290と互いに通信可能な外部通信ユニット119と、少なくとも1つのプロセッサ111Aと、対応するプロセッサ111Aで実行されるプログラムを記憶するメモリ111Bとを備え、VP20に自動運転の指示を出すADK10と、VP20を制御するための制御コマンドを出力するVCIB40と、サーバ3の外部通信ユニット290と互いに通信可能なDCM90とを備える。
【0100】
図4および
図5で示したように、ADK10の製造者のサーバ2において、メモリ220(または補助記憶装置250)は、ADK10のプロセッサ111Aのプログラムのバージョンを更新するための更新用情報を記憶し、CPU210は、車両1のADK10に、更新用情報を送信するよう外部通信ユニット290を制御する(たとえば、ステップS214)。
図4および
図5で示したように、車両1のADK10において、プロセッサ111Aは、サーバ2から外部通信ユニット119によって受信された更新用情報を用いて、対応するメモリ111Bに記憶されたプログラムのバージョンを更新する(たとえば、ステップS112)。
図4で示したように、車両1において、VCIB41,42は、ADK10のプロセッサ111Aの更新されたプログラムのバージョンを検知し(たとえば、ステップS411)、検知したバージョンを示す特定情報を、VP20の製造者のサーバ3に送信するよう、DCM90を制御する(たとえば、ステップS412)。
図4で示したように、VP20の製造者のサーバ3において、CPU310は、車両1から外部通信ユニット390によって受信された特定情報で示されるバージョンを更新済バージョンとして認知する(たとえば、ステップS321)。
【0101】
これにより、ADK10の製造者のサーバ2に記憶されている更新用情報によって更新された車両1のADK10のプログラムのバージョンが更新済バージョンとしてVP20の製造者のサーバ3によって認知される。その結果、ADK10のプログラムのバージョンを適切に管理することができる。
【0102】
(2)
図4で示したように、ADK10の製造者のサーバ2において、CPU210は、プログラムの新しいバージョンが作成されるごとに、VP20の製造者のサーバ3に当該バージョンを示す情報を送信するよう外部通信ユニット290を制御する(たとえば、ステップS211,ステップS212)。
図4および
図5で示したように、VP20の製造者のサーバ3において、CPU310は、サーバ2から外部通信ユニット390によって受信された情報で示される新しいバージョンを古いバージョンに追加して動作可能バージョンとしてメモリ320(または補助記憶装置350)に記憶させ(たとえば、ステップS314)、更新済バージョンが、メモリ320(または補助記憶装置350)に記憶された動作可能バージョンに含まれるか否かを判断し(たとえば、ステップS322)、更新済バージョンが動作可能バージョンに含まれるか否かの判断結果を運用管理者のサーバ4に通知する(たとえば、ステップS323)。
【0103】
これにより、ADK10の製造者のサーバ2によって、車両1のADK10のプログラムの新しいバージョンが作成されるごとに、新しいバージョンが古いバージョンに追加されて動作可能バージョンとして記憶され、車両1のADK10のプログラムの更新済バージョンが動作可能バージョンに含まれるか否かの判断結果が運用管理者に通知される。その結果、車両1のADK10のプログラムの更新済バージョンが動作可能バージョンであるか否かを運用管理者に分からせることができる。
【0104】
(3)
図4および
図5で示したように、VP20の製造者のサーバ3において、CPU310は、更新済バージョンが動作可能バージョンに含まれないと判断された場合、車両1の運用を停止させるための処理を実行する(たとえば、ステップS323)。
【0105】
これにより、車両1のADK10のプログラムの更新済バージョンが動作可能バージョンでないような場合に、車両1の運用を停止させることができる。
【0106】
(4)
図4および
図5で示したように、車両1において、VCIB41,42は、自動運転の開始前に、ADK10からプログラムのバージョンを取得することでバージョンを検知する(たとえば、ステップS411,ステップS423)。
【0107】
これにより、車両1のADK10のプログラムの更新済バージョンが動作可能バージョンであるか否かを確認した後に、自動運転を開始することができる。
【0108】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0109】
1 車両、2,3,4 サーバ、10 ADK、11 ADS、20 VP、30 ベース車両、31 統合制御マネージャ、32,321,322 ブレーキシステム、33,331,332 ステアリングシステム、34 パワートレーンシステム、35 アクティブセーフティシステム、36 ボディシステム、40,41,42 VCIB、51,52 車輪速センサ、53 ピニオン角センサ、54 カメラ、55,56 レーダセンサ、90 DCM、100 車両管理システム、111 コンピュータ、111A,411,421 プロセッサ、111B,220,320,412,420,422 メモリ、111C,111D 通信モジュール、112 HMI、113 認識用センサ、114 姿勢用センサ、115 センサクリーナ、119,290,390,490 外部通信ユニット、210,310,410 CPU、250,350,450 補助記憶装置、341 EPBシステム、342 P-Lockシステム、343 推進システム、413,423 通信部、430 入力部、440 出力部。