(57)【要約】      （修正有）【課題】車両の制御が行われているか否かにかかわらず、プログラムを更新することができるプログラム更新装置、プログラム更新システム及びプログラム更新方法を提供する。【解決手段】車両１００の制御装置５０のためのプログラムを更新するプログラム更新装置１０は、車両の走行状況を取得する走行状況取得部１２と、プログラムを、現在使用されている第１プログラムＰ１から第２プログラムＰ２に更新する必要がある場合に、取得された走行状況が、予め定められた第２プログラムの使用が許可される走行状況である許可状況に該当しない場合に第１プログラムを使用し、取得された走行状況が許可状況に該当する場合に第２プログラムを使用して第１プログラムを前記第２プログラムに更新する更新制御部１６とを備える。【選択図】図１
2019192058.tif 000002
【特許請求の範囲】
【請求項１】
車両（１００、１００ａ、１００ｂ、１００ｃ）の制御装置（５０、５０ｃ）のためのプログラムを更新するプログラム更新装置（１０、１０ａ、１０ｂ、１０ｃ、１０ｄ）であって、
検出された前記車両の走行状況を取得する走行状況取得部（１２）と、
前記プログラムを、現在使用されている第１プログラム（Ｐ１）から第２プログラム（Ｐ２）に更新する必要がある場合に、取得された前記走行状況が、予め定められた前記第２プログラムの使用が許可される前記走行状況である許可状況に該当しない場合に第１プログラムを使用し、取得された前記走行状況が前記許可状況に該当する場合に前記第２プログラムを使用して前記第１プログラムを前記第２プログラムに更新する更新制御部（１６、１６ａ、１６ｃ）と、
を備える、プログラム更新装置。
【請求項２】
請求項１に記載のプログラム更新装置であって、
前記許可状況は、前記プログラムの属性ごとに予め定められている、プログラム更新装置。
【請求項３】
請求項１又は請求項２に記載のプログラム更新装置であって、
前記制御装置は、前記車両の運転支援を実行する運転支援制御装置であり、
前記プログラムは、前記運転支援制御装置に運転支援処理を実行させるためのプログラムである、プログラム更新装置。
【請求項４】
請求項１から請求項３までのいずれか一項に記載のプログラム更新装置であって、
前記第２プログラムの使用によるプログラムエラーを取得するエラー取得部（１４、１４ｄ）を備え、
前記更新制御部は、前記プログラムエラーが取得された場合には、前記第１プログラムを使用する、プログラム更新装置。
【請求項５】
請求項４に記載のプログラム更新装置であって、
前記更新制御部は、前記第２プログラムの使用により前記プログラムエラーが取得されない場合に、前記許可状況を緩和させて、前記第２プログラムが使用される前記走行状況を増加させる、プログラム更新装置。
【請求項６】
請求項５に記載のプログラム更新装置であって、
前記更新制御部は、前記許可状況の緩和により前記第１プログラムの使用に対する制限がなくなった場合には、前記第１プログラムを削除する、プログラム更新装置。
【請求項７】
請求項１から請求項６までのいずれか一項に記載のプログラム更新装置であって、
前記車両の前記走行状況を、前記許可状況に移行させる移行制御部（１８）を備える、プログラム更新装置。
【請求項８】
請求項１から請求項７までのいずれか一項に記載のプログラム更新装置であって、
前記制御装置は、前記車両の運転支援を実行する運転支援制御装置であり、
前記プログラムは、前記運転支援制御装置に運転支援処理を実行させるためのプログラムであり、
前記許可状況は、前記車両の乗員による手動運転が可能な前記走行状況である、プログラム更新装置。
【請求項９】
請求項１から請求項８までのいずれか一項に記載のプログラム更新装置であって、
前記車両は複数であり、
前記プログラム更新装置は、前記車両と通信可能なサーバ（１３０ｃ、１３０ｄ）に設けられており、
前記更新制御部は、複数の前記車両のうち、取得された前記走行状況が前記許可状況に該当する前記車両について、前記第２プログラムを使用する、プログラム更新装置。
【請求項１０】
請求項９に記載のプログラム更新装置であって、
前記第２プログラムが使用された前記車両の前記走行状況を用いて検出されたプログラムエラーを取得するエラー取得部を備える、プログラム更新装置。
【請求項１１】
請求項１０に記載のプログラム更新装置であって、
前記更新制御部は、前記第２プログラムの使用により前記プログラムエラーが取得されない場合に、前記許可状況を緩和させて、前記第２プログラムが使用される前記走行状況を増加させる、プログラム更新装置。
【請求項１２】
請求項１から請求項１１までのいずれか一項に記載のプログラム更新装置であって、
前記プログラムは、前記車両と通信可能なサーバに設けられた前記制御装置を動作するためのプログラムである、プログラム更新装置。
【請求項１３】
プログラム更新システムであって、
請求項１から請求項１２までのいずれか一項に記載のプログラム更新装置と、
前記走行状況を検出するセンサ部（４０）と、
前記プログラムによって動作する前記制御装置と、を備える、プログラム更新システム。
【請求項１４】
車両の制御装置のためのプログラムを更新する方法であって、
前記プログラムを、現在使用されている第１プログラムから第２プログラムに更新する必要がある場合に（Ｓ１０）、
取得された前記車両の走行状況が、予め定められた前記第２プログラムの使用が許可される前記走行状況である許可状況に該当しない場合に第１プログラムを使用し（Ｓ４０）、取得された前記走行状況が前記許可状況に該当する場合に前記第２プログラムを使用して（Ｓ３０）、前記第１プログラムを前記第２プログラムに更新する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、プログラム更新装置、プログラム更新システム及びプログラム更新方法に関する。
【背景技術】
【０００２】
特許文献１には、車両の制御部におけるプログラム更新を行う装置が記載されている。この装置では、制御部のプログラム更新が必要である場合に、その制御部が制御を行わない走行ルートを設定し、車両が当該走行ルートを走行中である場合にプログラムを更新する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−７９４９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、車両の制御が行われているか否かにかかわらず、プログラムを更新する技術が求められていた。
【課題を解決するための手段】
【０００５】
本開示は、上述の課題を解決するためになされたものであり、以下の形態として実現することが可能である。
【０００６】
本開示の一形態によれば、車両（１００、１００ａ、１００ｂ、１００ｃ）の制御装置（５０、５０ｃ）のためのプログラムを更新するプログラム更新装置（１０、１０ａ、１０ｂ、１０ｃ、１０ｄ）が提供される。この装置は、検出された前記車両の走行状況を取得する走行状況取得部（１２）と；前記プログラムを、現在使用されている第１プログラム（Ｐ１）から第２プログラム（Ｐ２）に更新する必要がある場合に、取得された前記走行状況が、予め定められた前記第２プログラムの使用が許可される前記走行状況である許可状況に該当しない場合に第１プログラムを使用し、取得された前記走行状況が前記許可状況に該当する場合に前記第２プログラムを使用して前記第１プログラムを前記第２プログラムに更新する更新制御部（１６、１６ａ、１６ｃ）と；を備える。
【０００７】
この形態によれば、車両の制御装置のためのプログラムを第１プログラムから第２プログラムに更新する必要がある場合に、車両の走行状況が許可状況に該当しない場合には第１プログラムを使用し、車両の走行状況が許可状況に該当する場合には第２プログラムを使用するので、プログラムが使用されていても、車両の安全性を保ちつつプログラムを早期に更新することができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態のプログラム更新装置を示す概略構成図。
【図２】第１実施形態のプログラム更新処理を示す工程図。
【図３】第２実施形態のプログラム更新装置を示す概略構成図。
【図４】許可状況を緩和する例について示す図。
【図５】第２実施形態のプログラム更新処理を示す工程図。
【図６】第３実施形態のプログラム更新装置を示す概略構成図。
【図７】第３実施形態のプログラム更新処理を示す工程図。
【図８】第４実施形態のプログラム更新装置を示す概略構成図。
【図９】第５実施形態のプログラム更新装置を示す工程図。
【図１０】第５実施形態の異常状況検出処理を示す工程図。
【図１１】第６実施形態の修正処理を実行するシステムを示す概略構成図。
【図１２】第６実施形態の修正処理を示す工程図。
【発明を実施するための形態】
【０００９】
・第１実施形態
図１に示すように、第１実施形態のプログラム更新装置１０は、車両１００に搭載される。車両１００は、プログラム更新装置１０の他、車両側通信機３０と、センサ部４０と、運転支援制御装置５０と、運転装置６０と、を備える。
【００１０】
センサ部４０は、車両１００の走行状況を検出する。走行状況には、車両１００の走行状態と、車両１００の周囲の環境である走行環境と、車両１００の乗員の状態である乗員状況とが、含まれる。センサ部４０は、第１センサ部４１と第２センサ部４２と第３センサ部４３と、を備える。
【００１１】
第１センサ部４１は、車両１００の走行状態を検出するセンサ部であり、車速センサ、加速度センサ、ヨーレートセンサ、操舵角センサ、を含む。車両１００の走行状態は、例えば、車速センサにより検出された車両１００の速度、ヨーレートセンサにより検出された車両１００のヨーレート、操舵角センサにより検出された操舵角としての車両１００のステアリングホイールの回転角が含まれる。第２センサ部４２は、車両１００の走行環境を検出するセンサ部であり、車両１００の周囲を撮像するカメラ、ミリ波レーダ、ＬＩＤＡＲ（Light Detection and Ranging）、ＧＰＳ、ＧＮＳＳを含む。車両１００の走行環境は、カメラにより検出された車両１００の前方と後方を含む周囲の物標の存否、ミリ波レーダやＬＩＤＡＲにより検出された車両１００の周囲における物標の存否、物標と車両１００との距離、物標の位置、物標の大きさ、物標の形状および物標の車両１００に対する相対速度等である。第３センサ部４３は、車両１００の乗員の状態を検出するセンサ部であり、車両１００内を撮像する車室内カメラ、車両１００の座席に備えられ、乗員の着席を検知するシートセンサ、車両１００のハンドルに備えられ、乗員の手がハンドルに置かれているか否かを検出するハンズオフセンサを含む。車室内カメラは、少なくとも運転席に着席する乗員を撮像可能な場所に配置されて、乗員の姿勢を検出する。姿勢は、乗員の運転席への着席の有無、まぶたの開閉、視線位置が含まれる。車室内カメラは、例えば、車両１００のブレーキペダルを撮像可能な場所に配置されていてもよく、第３センサ部４３は、ブレーキペダルから予め定められた範囲内に乗員の足が位置していることを検出してもよい。
【００１２】
運転支援制御装置５０は、センサ部４０の検出結果を用いて、運転装置６０を制御する。運転支援制御装置５０は、ＣＰＵ５１とメモリ５２と図示しないインターフェースとを搭載したＥＣＵ（Electronic Control Unit）として構成されている。運転支援制御装置５０は、ＣＰＵ５１がメモリ５２に記憶されたプログラムを展開して実行することで、運転装置６０を制御して車両１００の運転支援処理を実行する。メモリ５２には、現在使用されている第１プログラムＰ１が記憶されている。運転支援制御装置５０を「制御装置」とも呼ぶ。ＣＰＵ５１は、メモリ５２に記憶されたプログラムを展開して実行することで、更新要否判断部５３として機能する。本実施形態では、更新要否判断部５３は、後述の更新制御部１６から、メモリ２０に第２プログラムＰ２が記憶されたことを示す信号を受信すると、運転支援処理を実行するためのプログラムを、更新制御部１６の指示に従って第１プログラムＰ１と第２プログラムＰ２とで切り替える。プログラム更新装置１０によって、メモリ５２の第１プログラムＰ１が第２プログラムＰ２に更新された場合には、ＣＰＵ５１は、メモリ５２に記憶された更新後のプログラムを用いて、車両１００の運転支援を実行する。他の形態では、更新要否判断部５３の機能を、更新制御部１６が実行してもよい。
【００１３】
運転装置６０は、車両１００の運転のための各種の制御を実行する部分であり、自動運転と手動運転のいずれの場合にも利用される。運転装置６０は、駆動部制御装置６１と、ブレーキ制御装置６２と、操舵角制御装置６３と、を含む。駆動部制御装置６１は、車両１００の車輪を駆動する駆動部（図示せず）を制御する機能を有する。車輪の駆動部としては、内燃機関と電動モータのうち１つ以上の原動機を使用可能である。ブレーキ制御装置６２は、車両１００のブレーキ制御を実行する。ブレーキ制御装置６２は、例えば電子制御ブレーキシステム（ＥＣＢ）として構成される。操舵角制御装置６３は、車両１００の車輪の操舵角を制御する。操舵角制御装置６３は、例えば電動パワーステアリングシステム（ＥＰＳ）として構成される。
【００１４】
車両側通信機３０は、車両１００の外部に設けられたサーバや、交通インフラ（Infrastructure）や、他車両との間で無線通信を行う通信装置である。本実施形態では、車両側通信機３０は、第１サーバ１１０及び第２サーバ１２０との間で無線通信を行う。
【００１５】
第１サーバ１１０は、いずれも図示しないＣＰＵとメモリとインターフェースとを備える。第１サーバ１１０のメモリには、第２プログラムＰ２が記憶されている。第２プログラムＰ２は、第１プログラムＰ１のバージョンアッププログラムである。
【００１６】
第２サーバ１２０は、いずれも図示しないＣＰＵとメモリとインターフェースとを備える。第２サーバ１２０のＣＰＵは、メモリに記憶されたプログラムを展開して実行することにより、車両１００の走行状況を特定する特定部１２１として機能する。特定部１２１は、プログラム更新装置１０から走行状況の送信要求があった場合に、走行状況を特定してもよい。例えば、プログラム更新装置１０が、車両１００の現在位置や、走行経路を含む要求信号を送信した場合に、特定部１２１は、車両１００の現在位置や走行経路に対応する渋滞情報や工事状況情報、車線規制情報を、車両１００の走行状況（走行環境）として特定する。
【００１７】
プログラム更新装置１０は、ＣＰＵ１１とメモリ２０と図示しないインターフェースとを搭載したＥＣＵ（Electronic Control Unit）として構成されている。ＣＰＵ１１は、メモリ２０に記憶された更新処理プログラムＰ３を展開して実行することにより、走行状況取得部１２、エラー取得部１４、更新制御部１６として機能する。本実施形態では、プログラム更新装置１０のメモリ２０には、さらに、車両側通信機３０を介して第１サーバ１１０から取得された第２プログラムＰ２が記憶されている。
【００１８】
走行状況取得部１２は、センサ部４０の検出結果から車両１００の走行状況を取得する。また、走行状況取得部１２は、車両側通信機３０を介して、車両１００の現在位置と走行経路とを含む信号を第２サーバ１２０に送信し、車両１００の現在位置や走行経路に対する走行状況を第２サーバ１２０から取得する。プログラム更新装置１０は、現在位置として、センサ部４０に含まれるＧＮＳＳセンサから取得した位置情報を送信してもよいし、走行経路として、車両１００の図示しないナビゲーション装置から取得した走行経路を送信してもよい。
【００１９】
更新制御部１６は、運転支援制御装置５０のためのプログラムを、現在使用されている第１プログラムＰ１から第２プログラムＰ２に更新する必要があるか否かを判断する。「プログラムを更新する」とは、プログラムの一部を修正又は削除すること、プログラムの機能を一部追加すること、プログラムの全てを修正することを含む。プログラムの修正は、プログラムの変更を含む。本実施形態では、第１サーバ１１０のＣＰＵは、第２プログラムＰ２を生成あるいは取得可能であり、第２プログラムＰ２が生成あるいは取得された場合に、車両１００へ更新信号を送信するように構成されている。更新制御部１６は、更新信号を取得した場合にプログラムを更新する必要があると判断し、第１サーバ１１０から第２プログラムＰ２を取得してメモリ２０に記憶する。更新制御部１６は、メモリ２０に第２プログラムＰ２を記憶すると、運転支援制御装置５０に信号を送信する。他の形態では、更新制御部１６は、予め定められた間隔ごとに、第１サーバ１１０へ第２プログラムＰ２の有無を確認する信号を送信してもよい。第１サーバ１１０は、確認信号を受信し、かつ、第２プログラムＰ２が存在する場合に、プログラム更新装置１０へ更新信号を送信してもよい。
【００２０】
更新制御部１６は、車両１００の走行状況が許可状況に該当しない場合に第１プログラムＰ１を使用し、許可状況に該当する場合に第２プログラムＰ２を使用する。本実施形態において、更新制御部１６が第１プログラムＰ１を使用するとは、更新制御部１６が、運転支援制御装置５０の更新要否判断部５３に、第１プログラムＰ１を用いる信号を送信することである。更新制御部１６が第２プログラムＰ２を使用するとは、更新制御部１６が、運転支援制御装置５０の更新要否判断部５３に、第２プログラムＰ２を用いる信号を送信することである。許可状況は、第２プログラムＰ２の使用が許可される、予め定められた走行状況である。車両１００の走行状況が許可状況に該当しない場合に、第１プログラムＰ１を使用することは、車両１００の走行状況が許可状況に該当しない場合に、第２プログラムＰ２の使用を制限することでもある。本実施形態では、許可状況は、プログラムエラーが生じても、車両１００と車両１００の周囲の車両や人物等を含む物標との衝突可能性が低い走行状況である。許可状況は、車両１００及び車両１００の周囲の車両や人物等の安全性が十分に保たれる走行状況と言い換えることもできる。許可状況は、プログラムエラーが生じた場合における車両１００の安全性をシミュレーションした結果を用いて定められていてもよい。許可状況は、プログラムの属性によって定められていてもよい。プログラムの属性とは、プログラムの種別であり、自動運転を含む運転支援に関するプログラム、車両１００のライト、オーディオ、ワイパー等の補機の制御に関するプログラム、車両１００の機器へのハッキングを防止するためのプログラム等である。運転支援に関するプログラムは、例えば、レーンチェンジプログラム、衝突被害軽減のためのブレーキプログラム等、車両１００の種々の操作に関するプログラムである。以下に示す（ａ）〜（ｄ）は、運転支援に関するプログラムの許可状況の一例である。
【００２１】
（ａ）他の車両や人物等が車両１００の走行に与える影響が比較的低い状況。
（ａ１）車両１００が分岐地点及び合流地点以外を走行
（ａ２）車両１００の走行車線が、予め定められた数以下
（ａ３）車両１００が高速道路、自動者専用道路及び幹線道路の道路を走行
（ａ４）車両１００が踏切以外を走行
（ａ５）車両１００の周囲に歩行者が存在しない
（ａ６）車両１００の周囲の車両密度が予め定められた値以下
（ａ７）車両１００と、車両１００の前後の車両との車間距離が予め定められた値以上
なお、（ａ６）における車両密度とは、所定の範囲当たりの車両の台数や、車両の閉める面積である。車両密度が高い状態とは、渋滞が発生している状態である。車両密度は、撮像カメラによる撮像結果、交通インフラから得ることができる。
【００２２】
（ｂ）車両１００の乗員による手動運転が可能な状況。
（ｂ１）乗員が覚醒
（ｂ２）乗員が運転席に着席
（ｂ３）乗員の手がハンドル付近に位置
（ｂ４）乗員の足がブレーキペダル付近に位置
【００２３】
（ｃ）車両１００が停止、あるいは、即時停止が可能な状況。
（ｃ１）車両１００の速度が、予め定められた速度以下
（ｃ２）車両１００の単位時間あたりの操舵角変化が、予め定められた値以下
（ｃ３）車両１００が、車線の両外側の路面である路肩に対し、最も近い車線を走行
（ｃ４）車両１００が、トンネル、踏切以外を走行
（ｃ５）車両１００が、路肩の幅が予め定められた幅より大きい車線を走行
【００２４】
プログラム更新装置１０のエラー取得部１４は、第２プログラムＰ２の使用によるプログラムエラーを検出、取得する。本実施形態では、エラー取得部１４は、運転支援制御装置５０に所定のエラーチェック用の信号を送信し、運転支援制御装置５０におけるエラーチェック用の信号の処理結果を受信して、処理結果を解析することでプログラムエラーを検出、取得する。エラー取得部１４は、車両１００に備えられた図示しない衝突回避装置が動作した結果を受信して、処理結果を用いてプログラムエラーを検出、取得してもよい。衝突回避装置は、例えば、運転支援制御装置５０の制御によって車両１００が物標と衝突する可能性がある場合に運転支援制御装置５０による制御をキャンセルし、ブレーキ制御装置６２により車両１００を停止させる装置である。
【００２５】
図２に示すプログラム更新処理は、車両１００のシステムがオンになっている場合に所定の間隔で繰り返し実行される。プログラム更新処理の開始時には、運転支援制御装置５０を動作させるためのプログラムとして、第１プログラムＰ１が使用されている。
【００２６】
更新制御部１６は、運転支援制御装置５０において現在使用されている第１プログラムＰ１の更新が必要か否かを判断する（ステップＳ１０）。更新制御部１６は、第１プログラムＰ１の更新が必要な場合には、第２プログラムＰ２を取得してメモリ２０に記憶する。第２プログラムＰ２は、プログラム更新装置１０に備えられたメモリとは別のメモリに記憶されてもよい。
【００２７】
更新制御部１６は、走行状況取得部１２により取得された車両１００の走行状況が、許可状況に該当するか否かを判断する（ステップＳ２０）。車両１００の走行状況が許可状況に該当しない場合（ステップＳ２０、ＮＯ）、更新制御部１６は、運転支援制御装置５０を動作させるためのプログラムとして第１プログラムＰ１を使用し（ステップＳ４０）、プログラム更新処理をステップＳ２０に戻す。
【００２８】
車両１００の走行状況が許可状況に該当する場合（ステップＳ２０、ＹＥＳ）、更新制御部１６は、運転支援制御装置５０を動作させるためのプログラムとして第２プログラムＰ２を使用して、第１プログラムＰ１を第２プログラムＰ２に更新する（ステップＳ３０）。
【００２９】
更新制御部１６は、第２プログラムＰ２の使用から予め定められた期間内に、エラー取得部１４によりプログラムエラーが取得されなかった場合に（ステップＳ５０、ＮＯ）、第１プログラムＰ１を削除する（ステップＳ９０）。ステップＳ９０において、更新制御部１６は、プログラム更新装置１０のメモリ２０に記憶された第２プログラムＰ２を、運転支援制御装置５０のメモリ５２における第１プログラムＰ１が記憶された領域に移動させてもよい。メモリ５２における第１プログラムＰ１が記憶された領域に第２プログラムＰ２を記憶した後、メモリ２０に記憶された第２プログラムＰ２を削除してもよい。更新制御部１６は、第１プログラムＰ１を削除すると、許可状況を全ての走行状況に変更し、第２プログラムＰ２の使用に対する制限をなくす。
【００３０】
プログラムエラーが取得された場合には（ステップＳ５０、ＹＥＳ）、更新制御部１６は、運転支援制御装置５０に運転支援処理を実行させるためのプログラムを、第２プログラムＰ２から第１プログラムＰ１に切り替える（ステップＳ６０）。また、エラー取得部１４は、エラー処理を実行する（ステップＳ７０）。エラー取得部１４は、エラー処理として、第１サーバ１１０へプログラムエラーに関する情報を送信する。当該情報は、プログラムエラーが生じたことを示す信号、プログラムエラーコード等のエラー情報、走行状況取得部１２により取得された、プログラムエラーが生じた際の車両１００の走行状況を含む情報である。第１サーバ１１０では、送信された情報を用いて第２プログラムＰ２が修正される。第２プログラムＰ２の修正は、第１サーバ１１０のＣＰＵや、他の修正用サーバのＣＰＵ、又はオペレータが、プログラムエラーに関する情報を解析して第２プログラムＰ２を適正化することによって実行されてもよい。第２プログラムＰ２が修正された場合には、第１サーバ１１０は、車両側通信機３０を介してプログラム更新装置１０に更新信号を送信する。
【００３１】
上記形態によれば、車両１００の制御装置のためのプログラムを第１プログラムＰ１から第２プログラムＰ２に更新する必要がある場合に、車両１００の走行状況が許可状況に該当しない場合には第１プログラムＰ１を使用し、車両１００の走行状況が許可状況に該当する場合には第２プログラムＰ２を使用するので、プログラムが使用されていても、車両１００の安全性を保ちつつ、プログラムを早期に更新することができる。さらに、仮に、第２プログラムＰ２の提供者における車両１００の安全性を保つことに対する知見が、車両１００の製造者に比べて十分でない場合等であっても、プログラム更新装置１０において十分に車両１００の安全性を保つことができる。
【００３２】
上記形態によれば、第２プログラムＰ２の使用によってプログラムエラーが生じた場合に第１プログラムＰ１が使用されるので、第２プログラムＰ２にプログラムエラーが生じた場合の車両１００の安全性を高めることができる。
【００３３】
上記形態によれば、プログラムが車両１００の運転支援に関するプログラムであり、車両１００の運転支援が実行されている場合であっても、車両１００の安全性を保ちつつプログラムを更新することができる。
【００３４】
上記形態によれば、許可状況が車両１００の乗員による手動運転が可能な状況である場合には、プログラムエラーが生じて例えば運転支援や自動運転がキャンセルされても乗員による手動運転が実行可能であるため、車両１００の安全性を高めることができる。
【００３５】
・第２実施形態
図３を用いて第１実施形態と異なる点について説明する。以下では、既に説明した実施形態と同じ符号は、同一の構成及び処理を示すものであって、先行する説明を参照する。第２実施形態のプログラム更新装置１０ａは、車両１００ａに搭載される。
【００３６】
ＣＰＵ１１ａは、メモリ２０ａに記憶された更新処理プログラムＰ３ａを展開して実行することにより、走行状況取得部１２、エラー取得部１４、更新制御部１６ａとして機能する。本実施形態では、更新制御部１６ａは、プログラムエラーが検出されなかった場合に、許可状況を緩和させる。「許可状況を緩和させる」とは、第２プログラムＰ２が使用される走行状況を増加させることである。更新制御部１６ａは、プログラムエラーが検出されなかった場合には、図４に示すように段階的に許可状況を緩和して、第２プログラムＰ２が使用される走行状況の制限をなくす。更新制御部１６ａは、制限がなくなった場合には、第１プログラムＰ１を削除する。図４には複数の許可状況の種別が示されているが、第２プログラムＰ２の使用が使用される許可状況は、図４に示す種別のうちいずれか１つであってもよい。種別は、プログラムの属性に応じて定められてもよい。図４に示す許可種別は、例えば、運転支援制御装置５０によるレーンチェンジのためのプログラムに用いられてもよい。
【００３７】
図５に示す第２実施形態のプログラム更新処理では、プログラムエラーが検出されない場合に（ステップＳ５０、ＮＯ）、更新制御部１６ａは、許可状況を緩和する（ステップＳ８０）。例えば、許可状況が車速３０ｋｍ以下の走行状況であり、車両１００ａの車速が２０ｋｍである場合、ステップＳ２０が肯定判定されて、第２プログラムが使用される（ステップＳ３０）プログラムエラーが検出されなかった場合には（ステップＳ５０、ＮＯ）、更新制御部１６ａは、許可状況を車速８０ｋｍ以下の走行状況に緩和する（図５ステップＳ８０、図４）。許可状況が緩和された結果、第２プログラムＰ２の使用に対する制限がなくなった場合（ステップＳ８５、ＹＥＳ）、更新制御部１６ａは、第１プログラムＰ１を削除する（ステップＳ９０）。第２プログラムＰ２の使用に対する制限がある場合には（ステップＳ８５、ＮＯ）、更新制御部１６ａは処理をステップＳ２０に戻す。
【００３８】
上記形態によれば、第２プログラムの使用によりプログラムエラーが検出されない場合に、許可状況を緩和させて第２プログラムが使用される走行状況を増加させることができる。また、第２プログラムの使用に対する制限がなくなった場合に、第１プログラムを削除するので、車両１００ａの安全性を保ちつつ、プログラムを更新することができる。
【００３９】
・第３実施形態
図６を用いて第１実施形態と異なる点について説明する。第３実施形態のプログラム更新装置１０ｂは、車両１００ｂに搭載される。
【００４０】
ＣＰＵ１１ｂは、メモリ２０ｂに記憶された更新処理プログラムＰ３ｂを展開して実行することにより、走行状況取得部１２、エラー取得部１４、更新制御部１６、移行制御部１８として機能する。移行制御部１８は、車両１００ｂの走行状況を許可状況に移行させるための移行指示を、車両１００ｂの種々の装置に対して出力する。例えば、許可状況が、車速３０ｋｍ以下の走行状況である場合には、移行制御部１８は、車速を３０ｋｍ以下に減速させる指示信号を運転支援制御装置５０に出力して、車速を３０ｋｍ以下に減速させる。許可状況が、乗員が手動運転可能な走行状況である場合には、移行制御部１８は、車両１００ｂに備えられた音声、振動、光等を発する図示しない報知装置に、乗員に対し手動運転に備えることを報知させてもよい。
【００４１】
図７に示すように、第３実施形態のプログラム更新処理では、第１プログラムＰ１を第２プログラムＰ２に更新する必要がある場合には（ステップＳ１０、ＹＥＳ）、移行制御部１８は、走行状況を許可状況に移行させる移行指示を行う（ステップＳ１５）。走行状況取得部１２により取得された走行状況が、許可状況に移行した場合には、ステップＳ２０が肯定判定されて、第２プログラムＰ２が使用される（ステップＳ３０）。
【００４２】
上記形態によれば、移行制御部１８は、車両１００ｂの走行状況を許可状況に移行させるので、車両１００ｂの走行状況が許可状況になるために要する時間を短くすることができ、より早期に第２プログラムを使用することができる。そのため、更新に対する緊急性の高いプログラムをより早期に更新することができる。
【００４３】
なお、第３実施形態の更新制御部１６は、第２実施形態の更新制御部１６ａと同様の制御を行ってもよく、プログラムエラーが検出されなかった場合には、許可状況を緩和させてもよい。すなわち、第３実施形態のプログラム更新処理において、図５に示すステップＳ８０、ステップＳ８５と同様の処理が、更新制御部１６によって実行されてもよい。
【００４４】
・第４実施形態
図８を用いて、第１実施形態と異なる点について説明する。第４実施形態では、プログラム更新装置１０ｃは、第３サーバ１３０ｃに備えられている。第３サーバ１３０ｃは、無線通信を行うサーバ側通信機３０ｃと、運転支援制御装置５０ｃと、を備える。本実施形態において、車両１００ｃは、運転支援制御装置を備えていない。
【００４５】
運転支援制御装置５０ｃは、各車両１００ｃのセンサ部４０の検出結果を用いて、各車両１００ｃごとに、運転装置６０を遠隔制御する。運転支援制御装置５０ｃは、ＣＰＵ５１ｃがメモリ５２ｃに記憶されたプログラムを展開して実行することで各車両１００ｃの運転支援を実行する。メモリ５２ｃには、現在使用されている第１プログラムＰ１が記憶されている。また、ＣＰＵ５１ｃは、メモリ５２ｃに記憶されたプログラムを展開して実行することで、更新要否判断部５３ｃとして機能する。本実施形態では、更新要否判断部５３ｃは、後述の更新制御部１６ｃから、メモリ２０ｃに第２プログラムＰ２が記憶されたことを示す信号を受信すると、運転支援処理を実行するためのプログラムを、更新制御部１６ｃの車両１００ｃごとの指示に従って、第１プログラムＰ１と第２プログラムＰ２とで切り替える。プログラム更新装置１０ｃによって、メモリ５２ｃの第１プログラムＰ１が第２プログラムＰ２に更新された場合には、ＣＰＵ５１ｃは、メモリ５２ｃに記憶された更新後のプログラムを用いて、各車両１００ｃの運転支援を実行する。他の形態では、更新要否判断部５３ｃの機能を、更新制御部１６ｃが実行してもよい。
【００４６】
プログラム更新装置１０ｃのＣＰＵ１１ｃは、メモリ２０ｃに記憶された更新処理プログラムＰ３ｃを展開して実行することで、走行状況取得部１２、エラー取得部１４、更新制御部１６ｃとして機能する。更新制御部１６ｃは、複数の車両１００ｃのうち、取得された走行状況が許可状況に該当しない車両１００ｃについて第１プログラムＰ１を使用し、複数の車両１００ｃのうち、取得された走行状況が許可状況に該当する車両１００ｃについて、第２プログラムＰ２を使用する。本実施形態において、許可状況は、車両１００ｃと第３サーバ１３０ｃとの通信速度が予め定められた速度以上であることを含んでもよい。
【００４７】
更新制御部１６ｃは、複数の車両１００ｃのうち、システムがオンである少なくとも１つの車両１００ｃについて第２プログラムＰ２を使用した結果、エラーが取得されなかった場合には、第１プログラムＰ１を削除して、運転支援制御装置５０ｃのためのプログラムを第２プログラムＰ２に更新する。更新制御部１６ｃは、プログラムエラーの生じた回数が予め定められた閾値以下である場合に、第１プログラムＰ１を削除してもよい。第１プログラムＰ１が削除された後に、システムがオンにされた車両１００ｃは、第２プログラムＰ２が使用された運転支援制御装置５０ｃの制御によって運転支援が実行される。
【００４８】
上記形態によれば、複数の車両１００ｃについてプログラムを更新することができる。また、第２プログラムＰ２を使用しエラーが取得されなかった場合には、更新制御部１６ｃは、第１プログラムＰ１を削除して、第２プログラムＰ２を使用するので、複数の車両１００ｃについて安全性を保ちつつ、プログラムの更新が完了するまでの時間を短くすることができる。
【００４９】
第４実施形態において、更新制御部１６ｃは、第２実施形態の更新制御部１６ａと同様に、プログラムエラーが検出、取得されなかった場合に、許可状況を緩和させてもよい。更新制御部１６ｃは、プログラムエラーが取得されなかった場合には、段階的に許可状況を緩和して、第２プログラムＰ２の使用に対する制限をなくし、制限がなくなった場合には、第１プログラムＰ１を削除してもよい。この形態によれば、他の車両１００ｃについては緩和された許可状況を適用することができる。そのため、他の車両１００ｃについて第２プログラムが使用される走行状況を増加させて、プログラム更新を行うことができる。
【００５０】
・第５実施形態
図９を用いて、第４実施形態と異なる点について説明する。第５実施形態では、プログラム更新装置１０ｄは、第３サーバ１３０ｄに備えられている。プログラム更新装置１０ｄは、複数の車両１００ｃや、第４サーバ１４０と通信可能である。
【００５１】
第４サーバ１４０は、車両１００ｃや、車両１００ｃの周囲に存在する信号機や施設等を含む図示しない交通インフラと通信可能である。第４サーバ１４０は、いずれも図示しないＣＰＵとメモリとインターフェースとを備える。第４サーバ１４０のＣＰＵは、メモリに記憶されたプログラムを展開して実行することで、車両１００ｃの異常状況を検出する異常状況検出部１４１として機能する。異常状況は、車両１００ｃの走行状況のうち、プログラムエラーが生じた可能性がある走行状況である。異常状況は、プログラムの属性によって予め定められていてもよい。プログラムが運転支援制御装置５０のためのプログラムである場合には、異常状況は、予め定められた期間以内に予め定められた距離以上、車両１００ｃが上下あるいは左右へふらつくこと、車両１００ｃと物標との距離が予め定められた距離以内であること（以下、異常接近とも呼ぶ）等を含む。プログラムが車両１００ｃのライトのためのプログラムであれば、異常状況は、ライトが点滅し続けることや、夜間にライトがオフであること等を含む。異常状況検出部１４１は、車両１００ｃのセンサ部４０や交通インフラから取得した情報を用いて、異常状況検出処理を実行する。他の形態では、異常状況検出部１４１の機能は、車両１００ｃや交通インフラに備えられたＥＣＵにおいて実行されてもよい。
【００５２】
プログラム更新装置１０ｄは、ＣＰＵ１１ｄがメモリ２０ｄに記憶された更新処理プログラムＰ３ｄを展開して実行することにより、走行状況取得部１２、エラー取得部１４ｄ、更新制御部１６ｃとして機能する。エラー取得部１４ｄは、上記実施形態においてプログラムエラーを検出、取得した態様に加え、さらに、異常状況検出部１４１によって検出された異常状況を、プログラムエラーとして検出、取得する。
【００５３】
図１０に示す異常状況検出処理では、異常状況検出部１４１は、複数の車両１００ｃや交通インフラの備えるカメラの撮像結果と、複数の車両１００ｃや交通インフラの識別情報と、を取得する（ステップＳ１００）。
【００５４】
異常状況検出部１４１は、第３サーバ１３０ｄから、プログラム更新処理が実行中であり、第２プログラムが使用されている車両１００ｃ（以下、車両Ａとも呼ぶ）の識別情報を取得する。異常状況検出部１４１は、撮像結果と、識別情報とを用いて、車両Ａの走行状況を解析し、車両Ａの走行状況が異常状況であるか否かを検出する（ステップＳ１１０）。
【００５５】
異常状況検出部１４１は、異常状況を検出した場合には（ステップＳ１１０、ＹＥＳ）、異常状況ありを示す信号をプログラム更新装置１０ｄに送信する（ステップＳ１２０）。異常状況検出部１４１は、例えば、車両Ａについて予め定められた期間内に異常状況を検出しなかった場合には（ステップＳ１１０、ＮＯ）、異常状況なしを示す信号をプログラム更新装置１０ｄに送信する（ステップＳ１３０）。
【００５６】
プログラム更新装置１０ｄのエラー取得部１４ｄは、異常状況ありを示す信号を、プログラムエラーとして取得する。プログラム更新装置１０ｄの更新制御部１６ｃは、エラー取得部１４ｄの検出結果に応じて、上述の実施形態におけるステップＳ５０〜ステップＳ９０（図２、図５、図７）の各処理を実行する。なお、エラー処理（ステップＳ７０）では、エラー取得部１４ｄに代えて、異常状況検出部１４１が、第１サーバ１１０に異常状況に関する情報を送信してもよい。当該情報は、プログラムエラーが生じた可能性が検出されたことを示す信号、車両Ａの識別情報、当該車両Ａを撮像した車両や交通インフラの識別情報、車両Ａの異常状況等に関する情報である。
【００５７】
上記形態によれば、第２プログラムＰ２が使用されている車両１００ｃの周辺車両のセンサ部や交通インフラのセンサ部の検出結果を用いて、第２プログラムＰ２が使用されている車両１００ｃのプログラムエラーを検出することができる。
【００５８】
・第６実施形態
第６実施形態では、第１サーバ１１０ｄのＣＰＵが実行する修正処理について説明する。図１１に示すように、第１サーバ１１０ｄのＣＰＵは、メモリに記憶された修正プログラムを展開して実行することで、修正部１１１として機能する。修正部１１１は、エラーや異常状況に関する情報を取得した場合に、プログラム修正処理を実行する。
【００５９】
図１２に示すように、まず、修正部１１１は、上述したプログラムエラーや異常状況（以下、異常状況等）に関する情報を取得する（ステップＳ２００）。
【００６０】
次に、修正部１１１は、異常状況等が、車両Ａに起因して発生したか否かを判断する（ステップＳ２１０）。車両Ａに起因して発生する異常状況等とは、第２プログラムＰ２のロジックが原因で生じる異常状況等である。例えば、修正部１１１は、異常状況等に関する情報として、車両Ａが上下あるいは左右へふらついたことと、車両Ａがふらついた時には車両Ａの周囲に障害物が存在していないことを、車両Ａや他車両や交通インフラ等の撮像結果から取得した場合に、異常状況等は車両Ａに起因して発生したと判断する。また、修正部は、異常状況等に関する情報として、車両Ａと障害物とが異常接近しており、当該障害物が車両Ａのセンサ部４０の検出範囲内にあることを取得した場合には、異常状況等は車両Ａに起因して発生したと判断してもよい。修正部１１１は、車両Ａと障害物とが異常接近しているが、当該障害物が車両Ａのセンサ部４０の検出範囲外にあることを取得した場合には、異常状況等は車両Ａに起因して発生していない判断してもよい。
【００６１】
修正部１１１は、異常状況等が、車両Ａに起因して発生している場合には（ステップＳ２１０、ＹＥＳ）、第２プログラムＰ２を修正する優先度を、他のプログラムよりも高い第１優先度に設定する（ステップＳ２２０）。修正部１１１は、第２プログラムＰ２のうち、異常状況等の発生に関するプログラムのロジックを修正する優先度を、他のロジックよりも高くしてもよい。
【００６２】
修正部１１１は、異常状況等が車両Ａに起因して発生しておらず（ステップＳ２１０、ＮＯ）、ステップＳ２１０の判断に用いられた異常状況等の取得回数が、予め定められた閾値よりも少ない場合には（ステップＳ２３０、ＮＯ）、修正の優先度を、第１優先度よりも低い第３優先度に設定する（ステップＳ２５０）。ステップＳ２１０の判断に用いられた異常状況等の取得回数が、予め定め得られた閾値よりも大きい場合には（ステップＳ２３０、ＹＥＳ）、修正部１１１は、優先度を、第１優先度よりも低く第３優先度よりも高い第２優先度に設定する（ステップＳ２４０）。
【００６３】
修正部１１１は、設定された優先度で、第２プログラムＰ２や、第２プログラムＰ２のうち、異常状況等の発生に関するプログラムのロジックを修正する（ステップＳ２６０）。修正は、修正部１１１がディープラーニングを実行することで行われてもよいし、修正部１１１がオペレータによる修正結果を取得することで実行されてもよい。
【００６４】
上記形態によれば、プログラムを修正する優先度を変更して修正を行うので、車両１００ｃの安全性を高めることができる。
【００６５】
・他の実施形態１
上記実施形態において、走行状況取得部１２は、センサ部４０と、第２サーバ１２０の特定部１２１のと、のいずれか一方から走行状況を取得すればよい。例えば、走行状況取得部１２は、センサ部４０の検出結果を用いて走行状況を取得する場合には、第２サーバ１２０の検出結果から走行状況を取得しなくともよい。
【００６６】
・他の実施形態２
上記第１実施形態において、プログラム更新装置１０は、エラー取得部１４を備えていなくともよい。この場合には、更新制御部１６は、走行状況が許可状況に該当する場合に、第２プログラムＰ２を使用して、第１プログラムＰ１を削除してもよい。また、第１実施形態のエラー取得部１４は、第５実施形態のエラー取得部１４ｄと同様に、第４サーバ１４０から異常状況をプログラムエラーとして取得してもよい。
【００６７】
・他の実施形態３
上記実施形態において、プログラムは、メインプログラムと、サブプログラムと、から構成されていてもよく、プログラム更新装置１０、１０ａ、１０ｂ、１０ｃ、１０ｄは、サブプログラムについてプログラムを更新してもよい。
【００６８】
・他の実施形態４
上記実施形態において、更新制御部１６、１６ａ、１６ｃは、プログラム更新の緊急性に応じて許可条件を緩和させてもよい。プログラム更新の緊急性が高い場合には、更新制御部１６、１６ａ、１６ｃは、全ての走行状況を許可状況に該当させてもよい。
【００６９】
・他の実施形態５
上記第３実施形態において、プログラム更新装置１０ｂのメモリ２０ｂには、更新処理プログラムＰ３ｂとは別に、移行制御用のプログラムが記憶されていてもよく、ＣＰＵ１１ｂはメモリ２０ｂに記憶された移行制御プログラムを展開して実行することで、移行制御部１８として機能してもよい。
【００７０】
・他の実施形態６
上記第４実施形態において、運転支援制御装置５０ｃは車両１００ｃに備えられていてもよい。
【００７１】
本開示は、プログラム更新装置いがいの種々の形態で実現することも可能である。プログラム更新方法、かかる方法を実現するためのコンピュータプログラム、かかるコンピュータプログラムを記憶した記憶媒体、プログラム更新装置とセンサ部４０あるいは第２サーバと、車両の制御装置を含むプログラム更新システム、プログラム更新装置を搭載した車両等の形態で実現することができる。また、上記実施形態において、ソフトウエアによって実現された機能及び処理の一部又は全部は、ハードウエアによって実現されてもよい。また、ハードウエアによって実現された機能及び処理の一部又は全部は、ソフトウエアによって実現されてもよい。ハードウエアとしては、例えば、集積回路、ディスクリート回路、又は、それらの回路を組み合わせた回路モジュールなど、各種回路を用いてもよい。
【符号の説明】
【００７２】
１０、１０ａ、１０ｂ、１０ｃ、１０ｄ  プログラム更新装置、１６、１６ａ、１６ｃ  更新制御部、５０、５０ｃ  運転支援制御装置、１００、１００ａ、１００ｂ、１００ｃ  車両、Ｐ１  第１プログラム、Ｐ２  第２プログラム
【図１】
2019192058.tif 000003
【図２】
2019192058.tif 000004
【図３】
2019192058.tif 000005
【図４】
2019192058.tif 000006
【図５】
2019192058.tif 000007
【図６】
2019192058.tif 000008
【図７】
2019192058.tif 000009
【図８】
2019192058.tif 000010
【図９】
2019192058.tif 000011
【図１０】
2019192058.tif 000012
【図１１】
2019192058.tif 000013
【図１２】
2019192058.tif 000014