ナビゲーション利用自動車制御装置および制御方法
【課題】ナビゲーション装置10を使って車両制御を行う自動車2において、ナビゲーション装置に異常が生じても、安全を確保できるナビゲーション利用車両制御を提供する。
【解決手段】ナビゲーション装置に通常のロケータ104とは別に、バックアップ用の簡易ロケータ106を設け、ロケータ104で障害が発生したときには、簡易ロケータ106で制御装置22に対して情報を提供し続ける。そして、その間にロケータ104の再起動を行い、その旨を制御装置22に通知し、必要に応じて、ナビゲーション不使用制御などの切替えを行う。
【効果】ナビゲーション装置に障害が発生しても制御装置に道路情報を継続して提供可能である。また、ナビゲーション異常や再起動を制御装置に通知することにより、ナビゲーション装置への依存度を下げ、安全を確保した制御が可能である。
【解決手段】ナビゲーション装置に通常のロケータ104とは別に、バックアップ用の簡易ロケータ106を設け、ロケータ104で障害が発生したときには、簡易ロケータ106で制御装置22に対して情報を提供し続ける。そして、その間にロケータ104の再起動を行い、その旨を制御装置22に通知し、必要に応じて、ナビゲーション不使用制御などの切替えを行う。
【効果】ナビゲーション装置に障害が発生しても制御装置に道路情報を継続して提供可能である。また、ナビゲーション異常や再起動を制御装置に通知することにより、ナビゲーション装置への依存度を下げ、安全を確保した制御が可能である。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ナビゲーションを利用した自動車の制御装置および制御方法に関する。
【背景技術】
【0002】
現在、GPSにより位置を把握し、ハードディスク等に記憶した地図のデータを用いてドライバに現在位置情報を提供したり、経路を誘導したりするナビゲーションが普及している。
【0003】
一方、自動車のステアリングやブレーキの制御は電子的に行われるようになってきている。この制御には、ECU(Electronic Control Unit)と呼ばれるコントローラが用いられている。このコントローラでは、ブレーキのロックを防ぐ制御をしたり、カメラで道路の白線を認識し道路から逸脱しないようにステアリングを操作する制御をしたりする機能が入ってきている。
【0004】
また、ナビゲーションとコントローラを接続し、ナビゲーションにより進行方向先方にカーブがあることがわかった場合、ナビゲーションからコントローラに指示を出し、ギアをシフトダウンする自動車が販売されている。
【0005】
このような、ナビゲーション装置の情報を利用した自動車の制御装置としては、例えば、特許文献1,2などが挙げられる。
【0006】
【特許文献1】特開平8−194894号公報
【特許文献2】特開平8−287395号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
ナビゲーションを使って車両の制御をする機能は今後も進化し、カーブの前でブレーキをかけて速度を制御するという機能も出てくると思われる。そのようになってきたときにナビゲーションがソフトウェアのバグやノイズなどにより停止すると、ナビゲーションの情報を使用した制御が行えなくなる問題がある。そのためにナビゲーションの高信頼化が課題である。
【0008】
また、ナビゲーションに障害が発生したときに、誤った制御を行わないようにする必要がある。
【0009】
本発明の目的は、ナビゲーション装置に異常が発生しても、自動車の制御装置が安全に動作するナビゲーション利用自動車制御装置または制御方法を提供することである。
【課題を解決するための手段】
【0010】
本発明はその一面において、衛星測位装置(GPS)、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つロケータとを有するナビゲーション装置から通知された道路情報を用いて車両の制御を行うナビゲーション利用自動車制御装置において、ナビゲーション装置を監視する監視手段と、この監視手段により、ナビゲーション装置の異常を検出したとき、ナビゲーション装置のソフトウェアの一部または全部を再起動する手段を備える。
【0011】
本発明は他の一面において、現在地点を地図上で探す機能を持つロケータを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御装置において、前記ロケータから独立した第2のロケータと、前記ロケータの異常時に、前記第2のロケータを用いて道路情報を制御装置に対して通知する手段を備える。
【0012】
従来、ナビゲーションで位置を把握するロケータプロセスは一つしか存在しなかった。
【0013】
また、従来のナビゲーションではプロセッサが1つであり、OS(オペレーティングシステム)も1つであった。
【0014】
本発明の望ましい実施態様では、プロセッサを2つ以上搭載し、オペレーティングシステムをそれぞれに搭載する。1つのOS上でロケータプロセスを実行する一方、別のOS上でバックアップ用ロケータプロセスを実行する。
【0015】
通常の状態ではロケータプロセスが制御連携プロセスに道路の形状など道路情報を通知して、その情報を用いて制御が行われる。
【0016】
ロケータプロセスやロケータプロセスが実行されているOSで障害が発生した場合は、バックアップ用第2のロケータプロセスが道路情報提供の役割を引き継ぎ、処理を続行する。一方、障害が発生した部分はその間に再起動される。
【0017】
再起動中は中間的状態であることから、これをコントローラに通知する。コントローラは、この通知を受けてナビゲーションへの依存を少なくあるいは無くした制御に切替える。
【0018】
第2のロケータプロセスは、その主記憶装置上に地図保管領域を持ち、現在位置周辺の地図の一部を記憶する。ハードディスクへのアクセスが不可能になったときには、この地図保管領域に記憶されている地図データを用いて当面の制御を続行する。
【発明の効果】
【0019】
本発明の望ましい実施態様によれば、ナビゲーション装置に異常が発生しても、自動車の制御装置が安全に動作するナビゲーション利用自動車制御装置または制御方法を提供することができる。
【0020】
本発明のその他の目的と特徴は、以下に述べる実施例の中で明らかにする。
【発明を実施するための最良の形態】
【0021】
以下に本発明の望ましい実施例を、図面を参照して説明する。
【0022】
図1は、本発明の一実施例によるナビゲーション利用自動車制御装置の車上機器構成図である。ナビゲーション装置10は、メモリ100を備えて構成されている。制御装置22は、ブレーキコントローラ221と、ステアリングコントローラ222を含んでいる。これらは、CANネットワーク210で接続されている。ブレーキアクチュエータ25は、ブレーキコントローラ221からの指示でブレーキをかける。ステアリングアクチュエータ23は、ステアリングコントローラ222の指示によりステアリングを動かす。ブレーキセンサ241は、ブレーキペダルの踏まれた量を計測する。ステアリングセンサ242は、ステアリングホイールの回転を計測する。これらを測定した結果は、CAN210に出力され、ブレーキコントローラ221、ステアリングコントローラ222は、これらのセンサのデータを用いて制御を行う。26はエンジン、131はナビゲーションのGPSアンテナである。
【0023】
図2は、図1におけるナビゲーション装置10の構成の一例を示している。GPS受信機130は、GPSアンテナ131からGPS衛星の電波を受信して現在地の緯度と経度を計算する。ディスプレイ140は、地図等の表示を行う。第1のCPU151と第2のCPU152は、ナビゲーション装置10の主記憶装置100に記憶されているプログラムを実行するCPUであり、複数のCPUコアが入っているマルチコアを用いている。1511と1512はCPU番号レジスタである。CPU151とCPU152は、それぞれのCPU番号レジスタを読むことにより自分のCPUの番号を知ることができる。すなわち、CPU151はCPU番号レジスタ1511を読むと「0」を読み出し、CPU152がCPU番号レジスタ1512を読むと「1」を読み出す。これによりCPU151とCPU152は、リセットにより同じ初期プログラム123を実行し始めても、それぞれが別々のOS121とOS122にジャンプすることが可能である。160はバスであり、CPU、主記憶装置、およびI/Oの間のデータ転送を行う。また、バス160にはCPU151とCPU152がお互いCPU間割り込みとリセットを送信する線を有している。CANインターフェース190は、CAN210に対してデータを出力したり、CAN210からデータを入力したりする。ジャイロ170は、車の方向変化を検出するために用いられる。ハードディスク180は、地図データなどを記憶している。主記憶装置100は、DRAMなどのメモリで構成される。
【0024】
図3は、図2のナビゲーション装置10内の主記憶装置100のメモリ内容を表している。図2における第1のCPU151、第2のCPU152は、この主記憶装置100に記憶されているプログラムを読み出して実行する。この主記憶装置100には、プログラムの実行において使用するデータも記憶される。121は、第1のOSのプログラムとデータである。このOS121は、図2における第1のCPU151によって実行される。同様に、第2のOS122のプログラムとデータも在るが、こちらは、第2のCPU152によって実行される。
【0025】
図3において、OS121の上方に書かれているプログラムは、OS121によって管理され、CPU151によって実行される。同様に、OS122の上方に書かれているプログラムは、OS122によって管理され、CPU152によって実行される。検索プロセス101は、ドライバが目的地を探すときに実行される。探索プロセス102は、目的地が決定したときに、現在位置から目的地までの経路を計算する。誘導プロセス103は、計算された経路にしたがって、右折、左折などの情報をディスプレイ140に出力する。ロケータプロセス104は、図2のディスク180から地図データを読み出し、GPS受信機130から得た現在位置の緯度、経度の情報を地図上にマッピングする。また、前方の曲率のデータ等を制御連携プロセス107に送信したりする。このロケータプロセスのフローは、図6を参照して後述する。
【0026】
プロセス監視プロセス105は、ロケータプロセス104が正常に動作しているかを監視し、異常が発生したときにそれに対応した動作を行う。1051はシステム状態フラグであり、正常状態、簡易状態、および異常状態の3種類の状態をフラグで表す。このプロセス監視プロセス105のフローは、図8と図9を参照して後述する。
【0027】
簡易ロケータプロセス106は、ロケータ104に異常が発生したときに処理を引き継ぐ。この中のメモリ領域1061は、ロケータ104から転送された地図データを記憶しておく領域である。ハードディスクにアクセスが不可能になったとき、ここに記憶されているデータを使用する。簡易ロケータプロセス106のフローは、図7を参照して後述する。
【0028】
制御連携プロセス107は、コントローラに対して地図に関する情報をCANを通して送信する。この制御連携プロセス107のフローは、図10、図11を参照して後述する。
【0029】
GPSドライバ108は、図2におけるGPS受信機130にアクセスするためのプログラムである。ATAドライバ109は、図2におけるディスク180にアクセスするためのプログラムである。グラフィックスライブラリ110は、図2のディスプレイ140に表示を行うためのプログラムである。
【0030】
プロセス間通信ライブラリ111と112は、プロセス間でメッセージ通信を行うためのプログラムである。メッセージのあて先はOS番号とプロセス番号の組からなっており、同じOS内のプロセスに対してメッセージを送ることもできるし、異なるOS内のプロセスに対してメッセージを送ることも可能である。このライブラリのフローは、図16を参照して後述する。OS間割込みハンドラ115と116は、OS間にまたがるプロセス間通信を行うために用いるCPU間割込みの割込みハンドラである。このCPU間割込みハンドラは、図2のバス160にあるCPU割込みのラインにより伝達されるCPU間割込みが発生したときに実行される。このCPU間割込みハンドラのフローは、図17を参照して後述する。CANドライバ114は、図2のCANインターフェース190を通してCAN210の送受信を行う。
【0031】
123は、CPU151とCPU152がリセット時に実行する初期プログラムである。124は、OS間通信用領域であり、OS間にまたがるプロセス間通信を行うときに使用する領域である。
【0032】
図15は、CPU151とCPU152がリセット時に実行する図3中の初期プログラム123のアルゴリズムである。ステップ1231で図2中のCPU番号レジスタを読み出す。図2のCPU151はCPU番号レジスタ1511を、他方CPU152はCPU番号レジスタ1512をそれぞれ読み出すことになる。ステップ1232では、読み出したCPU番号を判断する。CPU151とCPU152は、それぞれ別の番号を読み出すことになり、ここで処理が分岐する。CPU151は0を読み出すので、ステップ1233でOS121を実行し、CPU152は1を読みだすのでOS122を実行することになる。
【0033】
図16は、プロセス間通信111、および112のフローである。このプロセス間通信を用いてあるプロセスから同一OS内のプロセス、あるいは別のOS内のプロセスに対してメッセージの通信を行うことができる。本プロセス間通信の呼び出しにはあて先のプロセスと送信するデータの内容を指定する。ステップ1111で通信のあて先が同一OS内のプロセスであるか判定する。同一OS内のプロセス宛の場合にはステップ1112でそのOSが持っているプロセス通信のシステムコールを使用して通信を行う。同一OS内のプロセスでなかった場合にはステップ1113でメッセージを図3のOS間通信領域124に書き込む。メッセージはあて先プロセスの情報と送るデータからなる。ステップ1114であて先のプロセスがあるOSを実行しているCPUに対してCPU間割込みを発生される。
【0034】
図17は、図16のステップ1114でCPU間割込みを発生させたときにCPU間割込みの信号を受信したCPUが実行するCPU間割込みハンドラのフローである。このプログラムは、図3のナビゲーション装置のメモリの内容の図ではCPU間割込み115と116にあたり、それぞれのOSに一つ存在する。ステップ1151で割り込みの種類を判定しており、割り込みの種類がプロセス間通信の割り込みかどうかで分岐する。プロセス間通信の割り込みでない場合には、ステップ1152でそれに対応した処理を行うが、ここではプロセス間通信の割り込みであった場合を中心に説明する。ステップ1153では、図3のOS間通信領域124からメッセージを読み出す。メッセージには、あて先プロセスの情報とデータが含まれている。ステップ1154でOSが持っているプロセス間通信のシステムコールを用い読み出したメッセージをあて先のプロセスに対して送信する。
【0035】
以上、図16と図17のフローを組み合わせることにより、OS間を跨るプロセス間通信が実現可能である。
【0036】
図4は、自動車2がカーブ29にさしかかった場面における車両制御イメージ図である。ナビゲーション装置10の地図データを用いれば、自動車2は、先方にカーブ29があることを予め知ることができる。そして、カーブ29に進入する前に、自動的にブレーキをかけて、カーブ29を安全に走行できる速度に、自動車2の速度を落としておくことができる。
【0037】
図5は、地図データの内容、現在位置と地図とのマッチング方法、先方曲率の計算方法を示している。地図データは、331〜338のように緯度と経度の情報を持つ点列データからなる。GPSから得られた現在位置が34の点であった場合、点列を結んだ線分で最も現在位置に近い331と332の間の線分が表す道路に居ると考える。先方曲率の計算は、現在位置から一定距離先の線分をいくつか選び、それらの垂直二等分線344〜347を求める。これら垂直二等分線344〜347の交点を計算し、線分から交点までの最短距離を曲率とする。
【0038】
図6は、本発明の一実施例によるロケータプロセス104の処理フロー図である。ステップ412でGPSドライバ108を通して現在位置の緯度経度を読み込み、ステップ413でATAドライバ109を通して地図データを読み込む。そして、ステップ414で読み込んだ地図データとGPSの位置データとのマッチングを行う。次に、ステップ415で先方の道路の曲率を計算する。これらマッチングや曲率計算に関しては、図5を用いて前述した通りである。
【0039】
ステップ416では、プロセス間通信ライブラリ111を使って読み込んだ地図データを簡易ロケータプロセス106に送信する。同様に、ステップ417では、現在位置を簡易ロケータに送信する。ステップ418では、現在位置を制御連携プロセス107に送信する。ステップ419では、ステップ415で計算した先方曲率を制御連携プロセス107に送信する。ステップ420では、自プロセスが正常に動作していることを示すハートビート情報をプロセス間通信ライブラリ111を使用してプロセス監視プロセス105に送信する。プロセス監視プロセス105は、一定時間、このハートビート情報が来なかった場合に、障害が発生したと認識する。
【0040】
図7は、本発明の一実施例による簡易ロケータプロセスでの処理フローを示している。簡易ロケータプロセス106は、図3で説明したように、ロケータプロセス104が障害で停止したときのバックアップの役割を果たす。
【0041】
まず、ステップ431で、ロケータプロセス104から送信されている地図データを受信する。ステップ432では、受信した地図データを、図3の地図格納領域1061に格納する。ステップ433では、ロケータプロセス104から送信されている現在位置情報を受信する。
【0042】
さて、ステップ434では、システム状態をプロセス監視プロセス105から受信する。ステップ435で受信したシステム状態が簡易状態でなかった場合には、ステップ431に戻り、この自動車2の位置確認と、その付近の地図データの入手作業を繰返し、異常事態に備える。
【0043】
ステップ434でプロセス監視プロセス105から受信したシステム状態が異常を示しており、これをステップ435で検知すると、ステップ436〜440の車両制御のバックアップ機能を開始する。まず、ステップ436でGPSを受信する。ステップ437では、地図格納領域1061に格納されている受信地図データを使いマップマッチングを行い、ステップ438では、同じく受信地図データを用いて先方道路の曲率計算を行う。そして、ステップ439では、ステップ437のマップマッチングで求めた位置情報を制御連携プロセス107に送信する。また、ステップ440で、ステップ438で計算した先方曲率を制御連携プロセスに送信する。簡易ロケータは限られた周囲の地図しか地図格納領域1061に持っていないが、ロケータプロセス104が再度立ち上がるまでの分のデータがあれば十分である。
【0044】
この実施例では、ステップ435で簡易状態か否かの判断を行っている。この簡易状態であることの1つとして、第1のロケータから道路情報を得られないときを含めることもでき、第2のロケータは、自己の主記憶装置内の地図データの一部を用いて制御装置に対する通知を続行することができる。
【0045】
ステップ441では、簡易ロケータプロセスとしてのハートビートをプロセス間通信112を用いて送信する。プロセス間通信はデータを送ることが可能であり、データ部に識別子を入れておくことにより、図6のステップ420のハートビートと区別することも可能である。
【0046】
図8は、本発明の一実施例によるプロセス監視プロセスのメインプログラムの処理フロー図である。この実施例では、ロケータプロセス104や簡易ロケータプロセス430からのハートビートを受信することによって、ロケータプロセス104や簡易ロケータプロセス430の監視を行うものとして説明する。
【0047】
ステップ451でタイマーを設定する。ここで設定した時間が経過すると、図9のタイマーハンドラが実行される。設定時間に達する前に、再度、ステップ451のタイマー設定が実行された場合には、タイマーは、再度、初期値からカウントを開始する。ステップ454では図3中の状態フラグ1051の値を取得する。状態フラグが正常状態であった場合、ステップ452で、ロケータプロセス104からのハートビートを受信する。ハートビートが来ていない場合には、ハートビートが来るまでここで待つことになる。ロケータプロセス104で障害が発生して、ハートビートが来なくなると、ステップ451で設定したタイマーの設定時間が経過して、タイマーハンドラ460が呼ばれる。ハートビートが来た場合には、次のステップ453にて、簡易ロケータ106、制御連携プロセス107に対してシステム状態として正常状態を送信する。ステップ455で正常状態でない場合、ステップ456で状態フラグが簡易状態であるか判断する。簡易状態は、OS121を再起動中であり、簡易ロケータ106を用いている状態である。簡易状態であった場合には、ステップ458でOS121の再起動が完了しているか判断する。
【0048】
この実施例では、図3で説明したように、ナビゲーション装置10のメモリ100に、2つのOS121と122、および簡易ロケータ106とを用意している。そこで、通常のOS121とロケータ104側での異常を検知すると、第2のOS122と簡易ロケータ106によるバックアップで車両制御を継続させ、この間に、自動的に、通常のOS121とロケータ104側のリトライ(再起動)を実行させる。
【0049】
完了している場合にはシステムが正常に状態に復帰したことを意味するので、ステップ4591で正常状態復帰を送信し、ステップ4593で状態フラグも正常状態に設定する。ステップ4594では簡易ロケータからのハートビートを受信するために待機する。ステップ458で再起動が完了していなかった場合には、簡易状態が継続しているということで、ステップ4592において簡易状態を送信する。ステップ456で状態が簡易状態でもなかった場合には、状態が異常になっているので、ステップ457において、システム全体の再立ち上げを行う。
【0050】
図9は、本発明の一実施例によるタイマーハンドラの処理フロー図であり、図8のタイマー設定ステップ451で設定した時間が経過したときに実行されるタイマーハンドラの処理を示している。
【0051】
このタイマーハンドラが実行されるということは、ロケータプロセス104、あるいは簡易ロケータプロセス430に異常があり、ハートビートが来ていないということである。このため、ステップ461で、図3中の状態フラグ1051の値を取得する。ステップ4611で状態フラグが正常状態か判断する。正常状態であった場合には、ステップ462において状態フラグを第一の異常状態である簡易状態に設定する。これは、ロケータプロセス104に異常があり、簡易ロケータプロセスによる簡易状態に移行するためである。ステップ463で簡易状態に移行することを制御連携状態通知470や簡易ロケータプロセス430に通知する。ロケータプロセス104の異常状態を解消するために、ステップ464で、OS121の再起動を行う。OS121の再起動は、OS121を実行している図2のCPU151に対してリセットをかけることによりなされる。リセットはバス160を通して行われる。リセット後、CPU151は図3中の初期プログラム123を実行する。初期プログラムのフローは図15にあり、最終的にOS121が再実行される。OS121上で実行されるロケータ104などのプロセスの実行は、OS121の初期化部分に定義しておく等により可能である。ステップ4611で正常状態でなかった場合には、簡易状態からさらにエラーが発生したと判断して、ステップ465において状態フラグを第二の異常状態である「異常状態」に設定し、ステップ466にて異常状態を送信する。この状態から復帰はシステム全体を再立ち上げする必要があるので、ステップ467においてシステムの再起動を行う。
【0052】
図10は、本発明の一実施例による制御連携プロセスのプログラムの一部である状態通知処理フロー図であり、図3の制御連携プロセス107の処理の一部である。ステップ471で、プロセス監視プロセス105から送信されてくるシステム状態を受信する。ステップ472で、受信したシステム状態が簡易状態であった場合には、ステップ473でCANドライバ114を用い、CANインターフェース190を通して、再起動中である通知をCAN210に送信する。ステップ474で、受信したシステム状態が正常状態復帰であった場合には、ステップ475にて、正常状態復帰の通知をCAN210に送信する。ステップ476において異常状態であった場合にはステップ477において異常通知をCAN210に送信する。
【0053】
図11は、本発明の一実施例による制御連携プロセスのプログラムの一部である制御連携処理フロー図であり、図3の制御連携プロセス107の処理の一部である。ステップ481で位置情報、ステップ482で先方曲率を受信する。これらの受信は、正常状態ではロケータプロセス104から送信されたものを受信し、ロケータプロセス104で障害が発生して、簡易ロケータプロセス106が処理を引き継いでいる場合には、このプロセスから受信する。受信した位置情報と先方曲率は、それぞれ、ステップ483と484でCANに送信される。
【0054】
図18は、図1のブレーキコントローラ221のメモリの内容を示した図である。2212はOSである。この例ではOS2212上で3つのプロセスが実行されている。2215はブレーキペダルによるブレーキの制御を行うプロセスである。図1のブレーキセンサ241によりドライバがブレーキを踏んだことを検知し、その量に応じてブレーキアクチュエータ25の制御を行う。490はナビゲーション10から情報を用いてブレーキの制御を行うプロセスである。500はナビゲーションの状態に応じてブレーキコントローラの状態を変化させるための状態管理プロセスである。状態管理500とナビ連携制御490のフローは、それぞれ図12と図13を用いて以下に述べる。
【0055】
図12は、本発明の一実施例によるブレーキコントローラのプログラムの一部である状態管理部分の処理フロー図であり、図1のブレーキコントローラ221のプログラムの一部である。この部分でナビゲーション装置の状態を把握している。ステップ501で、CANからナビゲーション装置10の状態を受信する。ステップ502で受信した状態が異常状態であるか否か判断し、異常状態であった場合には、ステップ504でナビ再起動中フラグをセットする。ステップ503において、受信した状態が正常状態復帰であった場合には、ステップ505で、ナビ再起動中フラグをリセットする。ステップ506において、受信した状態が異常状態であった場合には、ステップ507において異常状態フラグをセットする。
【0056】
図13は、本発明の一実施例によるブレーキコントローラ221のナビゲーション連携制御のためのプログラムの処理フロー図である。ステップ491で異常状態フラグがセットされているか判断している。
【0057】
異常状態フラグが立っているということはナビゲーション装置10が、ロケータ104にも簡易ロケータ106にも異常がある第二の異常状態にあることを意味するので、ナビゲーション装置10からの情報を使用した制御は行わないものとし、ステップ491では、異常状態のフラグがOFFとなるまで待機することとなる。
【0058】
次に、異常状態のフラグがセットされていない場合、あるいは、再起動中のフラグがOFFとなると、ステップ498でナビ再起動中フラグがONであるか判断する。再起動中フラグがONでない場合には、ナビゲーション装置10が正常状態にあることを意味するので、4981でブレーキ強度を計算するためのパラメータPとして通常のパラメータP1を採用する。一方、ナビ再起動中のフラグがONの場合には簡易ロケータで動作していることを意味するので、ステップ4982のように目標速度計算のためのパラメータとしてナビゲーションの重みを軽くしたパラメータP2を採用することが可能である。
【0059】
このように、本実施例においては、ナビゲーション装置の再起動を通知されたとき、ナビゲーション装置からの情報を採用せずに制御するように切替える制御切替手段を構成している。
【0060】
ステップ492、493でCANから位置情報と先方曲率を受信する。ステップ494では、現在の車速をブレーキ部分のセンサから計算する。ステップ495では、受信した先方曲率より安全に走行できる目標速度を求める。この方法は、計算で求めてもよいし、予め用意したテーブルより調べてもよい。ステップ496では、現在速度と目標速度を比較しており、もし、現在速度が目標速度を上回る場合には、ステップ497で、図1のブレーキアクチュエータ25を動作させてブレーキをかける。このときのブレーキ強度は、現速度と目標速度の差とステップ4981、あるいは、ステップ4982で設定したパラメータとから計算する。
【0061】
この図13の実施例では、ナビゲーション装置10に異常が発見され、その異常の部分を再起動した場合に、ナビゲーション装置10を使わない車両制御に切替えるように構成している。しかし、ナビゲーション装置10に異常が発見された場合、異常部分の再起動の如何にかかわらず、図9のプロセス監視プロセス105のタイマーハンドラのステップ461で、ナビゲーション装置の異常がCAN210上に通知される。したがって、この段階で、車両制御装置22に異常を通知するように構成することは容易である。また、ナビゲーション装置10の異常を通知された制御装置22は、制御内容を変更したり、ナビゲーション装置10を使わない車両制御に切替えるなど、切替えの内容も任意に改変することが可能である。さらに、第1段階の異常検知では、簡易ロケータ106を使用し、第2段階の異常を検知したとき、ナビゲーション装置10を使わない車両制御に切替えることもできる。
【0062】
図14は、本発明の他の実施例によるナビゲーション装置10の主記憶装置100の内容を示している。図3の実施例では、2つのOS121と122を動作させる構成について示したが、図14のように、1つのOS123上に、同様なプログラムを搭載する構成も考えられる。この場合、図2のナビゲーション装置10は、CPUが1つであってもよいし、複数であって、それらが単一のOSを実行する対称型マルチプロセッサであってもよい。OSが単一である場合には、図9のプロセス監視タイマーハンドラのステップ462のOS再起動の部分は、ロケータプロセス104のみを再起動することとなる。図14のプロセス間通信111は、図16のフローのうち同一OS内のプロセス宛の通信のフローと同一になる。
【図面の簡単な説明】
【0063】
【図1】本発明の一実施例によるナビゲーション利用自動車制御装置の車上機器構成図。
【図2】本発明の一実施例によるナビゲーション装置の構成図。
【図3】本発明の一実施例によるナビゲーション装置の主記憶装置のメモリ内容を示すイメージ図。
【図4】自動車2がカーブ29にさしかかった場面における車両制御イメージ図。
【図5】図4の制御における地図データの内容、現在位置と地図とのマッチング方法、先方曲率の計算方法の一例図。
【図6】本発明の一実施例によるロケータプロセスの処理フロー図。
【図7】本発明の一実施例による簡易ロケータプロセスの処理フロー図。
【図8】本発明の一実施例によるプロセス監視プロセスのメインプログラムの処理フロー図。
【図9】本発明の一実施例による設定時間経過時に実行されるタイマーハンドラの処理フロー図。
【図10】本発明の一実施例による制御連携プロセスの状態通知処理フロー図。
【図11】本発明の一実施例による制御連携プロセスの制御連携部処理フロー図。
【図12】本発明の一実施例によるブレーキコントローラのプログラムの一部である状態管理部分の処理フロー図。
【図13】本発明の一実施例によるブレーキコントローラのナビゲーション連携制御プログラムの処理フロー図。
【図14】本発明の他の実施例によるナビゲーション装置の主記憶装置のメモリ内容を示すイメージ図。
【図15】両CPUがリセット時に実行する図3中の初期プログラムのアルゴリズム。
【図16】両プロセス間通信の処理フロー図。
【図17】図16のステップ1114でCPU間割込みを発生させたときにCPU間割込みの信号を受信したCPUが実行するCPU間割込みハンドラの処理フロー図。
【図18】図1のブレーキコントローラ221のメモリの内容を示した図。
【符号の説明】
【0064】
2…自動車、10…ナビゲーション装置、210…CAN、22…制御装置、221…ブレーキコントローラ、222…ステアリングコントローラ、23…ステアリングアクチュエータ、241…ブレーキセンサ、242…ステアリングセンサ、25…ブレーキアクチュエータ、26…エンジン、100…主記憶装置、101…検索プロセス、102…探索プロセス、103…誘導プロセス、104…ロケータプロセス、105…プロセス管理プロセス、106…簡易ロケータプロセス、1061…地図保管領域、107…制御連携プロセス、108…GPSドライバ、109…ATAドライバ、110…グラフィックスライブラリ、111…プロセス間通信ライブラリ、112…プロセス間通信ライブラリ、114…CANドライバ、121,122,123…OS、130…GPS受信機、131…GPSアンテナ、140…ディスプレイ、151,152…CPU、160…バス、170…ジャイロ、180…ハードディスク、190…CANインターフェース。
【技術分野】
【0001】
本発明は、ナビゲーションを利用した自動車の制御装置および制御方法に関する。
【背景技術】
【0002】
現在、GPSにより位置を把握し、ハードディスク等に記憶した地図のデータを用いてドライバに現在位置情報を提供したり、経路を誘導したりするナビゲーションが普及している。
【0003】
一方、自動車のステアリングやブレーキの制御は電子的に行われるようになってきている。この制御には、ECU(Electronic Control Unit)と呼ばれるコントローラが用いられている。このコントローラでは、ブレーキのロックを防ぐ制御をしたり、カメラで道路の白線を認識し道路から逸脱しないようにステアリングを操作する制御をしたりする機能が入ってきている。
【0004】
また、ナビゲーションとコントローラを接続し、ナビゲーションにより進行方向先方にカーブがあることがわかった場合、ナビゲーションからコントローラに指示を出し、ギアをシフトダウンする自動車が販売されている。
【0005】
このような、ナビゲーション装置の情報を利用した自動車の制御装置としては、例えば、特許文献1,2などが挙げられる。
【0006】
【特許文献1】特開平8−194894号公報
【特許文献2】特開平8−287395号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
ナビゲーションを使って車両の制御をする機能は今後も進化し、カーブの前でブレーキをかけて速度を制御するという機能も出てくると思われる。そのようになってきたときにナビゲーションがソフトウェアのバグやノイズなどにより停止すると、ナビゲーションの情報を使用した制御が行えなくなる問題がある。そのためにナビゲーションの高信頼化が課題である。
【0008】
また、ナビゲーションに障害が発生したときに、誤った制御を行わないようにする必要がある。
【0009】
本発明の目的は、ナビゲーション装置に異常が発生しても、自動車の制御装置が安全に動作するナビゲーション利用自動車制御装置または制御方法を提供することである。
【課題を解決するための手段】
【0010】
本発明はその一面において、衛星測位装置(GPS)、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つロケータとを有するナビゲーション装置から通知された道路情報を用いて車両の制御を行うナビゲーション利用自動車制御装置において、ナビゲーション装置を監視する監視手段と、この監視手段により、ナビゲーション装置の異常を検出したとき、ナビゲーション装置のソフトウェアの一部または全部を再起動する手段を備える。
【0011】
本発明は他の一面において、現在地点を地図上で探す機能を持つロケータを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御装置において、前記ロケータから独立した第2のロケータと、前記ロケータの異常時に、前記第2のロケータを用いて道路情報を制御装置に対して通知する手段を備える。
【0012】
従来、ナビゲーションで位置を把握するロケータプロセスは一つしか存在しなかった。
【0013】
また、従来のナビゲーションではプロセッサが1つであり、OS(オペレーティングシステム)も1つであった。
【0014】
本発明の望ましい実施態様では、プロセッサを2つ以上搭載し、オペレーティングシステムをそれぞれに搭載する。1つのOS上でロケータプロセスを実行する一方、別のOS上でバックアップ用ロケータプロセスを実行する。
【0015】
通常の状態ではロケータプロセスが制御連携プロセスに道路の形状など道路情報を通知して、その情報を用いて制御が行われる。
【0016】
ロケータプロセスやロケータプロセスが実行されているOSで障害が発生した場合は、バックアップ用第2のロケータプロセスが道路情報提供の役割を引き継ぎ、処理を続行する。一方、障害が発生した部分はその間に再起動される。
【0017】
再起動中は中間的状態であることから、これをコントローラに通知する。コントローラは、この通知を受けてナビゲーションへの依存を少なくあるいは無くした制御に切替える。
【0018】
第2のロケータプロセスは、その主記憶装置上に地図保管領域を持ち、現在位置周辺の地図の一部を記憶する。ハードディスクへのアクセスが不可能になったときには、この地図保管領域に記憶されている地図データを用いて当面の制御を続行する。
【発明の効果】
【0019】
本発明の望ましい実施態様によれば、ナビゲーション装置に異常が発生しても、自動車の制御装置が安全に動作するナビゲーション利用自動車制御装置または制御方法を提供することができる。
【0020】
本発明のその他の目的と特徴は、以下に述べる実施例の中で明らかにする。
【発明を実施するための最良の形態】
【0021】
以下に本発明の望ましい実施例を、図面を参照して説明する。
【0022】
図1は、本発明の一実施例によるナビゲーション利用自動車制御装置の車上機器構成図である。ナビゲーション装置10は、メモリ100を備えて構成されている。制御装置22は、ブレーキコントローラ221と、ステアリングコントローラ222を含んでいる。これらは、CANネットワーク210で接続されている。ブレーキアクチュエータ25は、ブレーキコントローラ221からの指示でブレーキをかける。ステアリングアクチュエータ23は、ステアリングコントローラ222の指示によりステアリングを動かす。ブレーキセンサ241は、ブレーキペダルの踏まれた量を計測する。ステアリングセンサ242は、ステアリングホイールの回転を計測する。これらを測定した結果は、CAN210に出力され、ブレーキコントローラ221、ステアリングコントローラ222は、これらのセンサのデータを用いて制御を行う。26はエンジン、131はナビゲーションのGPSアンテナである。
【0023】
図2は、図1におけるナビゲーション装置10の構成の一例を示している。GPS受信機130は、GPSアンテナ131からGPS衛星の電波を受信して現在地の緯度と経度を計算する。ディスプレイ140は、地図等の表示を行う。第1のCPU151と第2のCPU152は、ナビゲーション装置10の主記憶装置100に記憶されているプログラムを実行するCPUであり、複数のCPUコアが入っているマルチコアを用いている。1511と1512はCPU番号レジスタである。CPU151とCPU152は、それぞれのCPU番号レジスタを読むことにより自分のCPUの番号を知ることができる。すなわち、CPU151はCPU番号レジスタ1511を読むと「0」を読み出し、CPU152がCPU番号レジスタ1512を読むと「1」を読み出す。これによりCPU151とCPU152は、リセットにより同じ初期プログラム123を実行し始めても、それぞれが別々のOS121とOS122にジャンプすることが可能である。160はバスであり、CPU、主記憶装置、およびI/Oの間のデータ転送を行う。また、バス160にはCPU151とCPU152がお互いCPU間割り込みとリセットを送信する線を有している。CANインターフェース190は、CAN210に対してデータを出力したり、CAN210からデータを入力したりする。ジャイロ170は、車の方向変化を検出するために用いられる。ハードディスク180は、地図データなどを記憶している。主記憶装置100は、DRAMなどのメモリで構成される。
【0024】
図3は、図2のナビゲーション装置10内の主記憶装置100のメモリ内容を表している。図2における第1のCPU151、第2のCPU152は、この主記憶装置100に記憶されているプログラムを読み出して実行する。この主記憶装置100には、プログラムの実行において使用するデータも記憶される。121は、第1のOSのプログラムとデータである。このOS121は、図2における第1のCPU151によって実行される。同様に、第2のOS122のプログラムとデータも在るが、こちらは、第2のCPU152によって実行される。
【0025】
図3において、OS121の上方に書かれているプログラムは、OS121によって管理され、CPU151によって実行される。同様に、OS122の上方に書かれているプログラムは、OS122によって管理され、CPU152によって実行される。検索プロセス101は、ドライバが目的地を探すときに実行される。探索プロセス102は、目的地が決定したときに、現在位置から目的地までの経路を計算する。誘導プロセス103は、計算された経路にしたがって、右折、左折などの情報をディスプレイ140に出力する。ロケータプロセス104は、図2のディスク180から地図データを読み出し、GPS受信機130から得た現在位置の緯度、経度の情報を地図上にマッピングする。また、前方の曲率のデータ等を制御連携プロセス107に送信したりする。このロケータプロセスのフローは、図6を参照して後述する。
【0026】
プロセス監視プロセス105は、ロケータプロセス104が正常に動作しているかを監視し、異常が発生したときにそれに対応した動作を行う。1051はシステム状態フラグであり、正常状態、簡易状態、および異常状態の3種類の状態をフラグで表す。このプロセス監視プロセス105のフローは、図8と図9を参照して後述する。
【0027】
簡易ロケータプロセス106は、ロケータ104に異常が発生したときに処理を引き継ぐ。この中のメモリ領域1061は、ロケータ104から転送された地図データを記憶しておく領域である。ハードディスクにアクセスが不可能になったとき、ここに記憶されているデータを使用する。簡易ロケータプロセス106のフローは、図7を参照して後述する。
【0028】
制御連携プロセス107は、コントローラに対して地図に関する情報をCANを通して送信する。この制御連携プロセス107のフローは、図10、図11を参照して後述する。
【0029】
GPSドライバ108は、図2におけるGPS受信機130にアクセスするためのプログラムである。ATAドライバ109は、図2におけるディスク180にアクセスするためのプログラムである。グラフィックスライブラリ110は、図2のディスプレイ140に表示を行うためのプログラムである。
【0030】
プロセス間通信ライブラリ111と112は、プロセス間でメッセージ通信を行うためのプログラムである。メッセージのあて先はOS番号とプロセス番号の組からなっており、同じOS内のプロセスに対してメッセージを送ることもできるし、異なるOS内のプロセスに対してメッセージを送ることも可能である。このライブラリのフローは、図16を参照して後述する。OS間割込みハンドラ115と116は、OS間にまたがるプロセス間通信を行うために用いるCPU間割込みの割込みハンドラである。このCPU間割込みハンドラは、図2のバス160にあるCPU割込みのラインにより伝達されるCPU間割込みが発生したときに実行される。このCPU間割込みハンドラのフローは、図17を参照して後述する。CANドライバ114は、図2のCANインターフェース190を通してCAN210の送受信を行う。
【0031】
123は、CPU151とCPU152がリセット時に実行する初期プログラムである。124は、OS間通信用領域であり、OS間にまたがるプロセス間通信を行うときに使用する領域である。
【0032】
図15は、CPU151とCPU152がリセット時に実行する図3中の初期プログラム123のアルゴリズムである。ステップ1231で図2中のCPU番号レジスタを読み出す。図2のCPU151はCPU番号レジスタ1511を、他方CPU152はCPU番号レジスタ1512をそれぞれ読み出すことになる。ステップ1232では、読み出したCPU番号を判断する。CPU151とCPU152は、それぞれ別の番号を読み出すことになり、ここで処理が分岐する。CPU151は0を読み出すので、ステップ1233でOS121を実行し、CPU152は1を読みだすのでOS122を実行することになる。
【0033】
図16は、プロセス間通信111、および112のフローである。このプロセス間通信を用いてあるプロセスから同一OS内のプロセス、あるいは別のOS内のプロセスに対してメッセージの通信を行うことができる。本プロセス間通信の呼び出しにはあて先のプロセスと送信するデータの内容を指定する。ステップ1111で通信のあて先が同一OS内のプロセスであるか判定する。同一OS内のプロセス宛の場合にはステップ1112でそのOSが持っているプロセス通信のシステムコールを使用して通信を行う。同一OS内のプロセスでなかった場合にはステップ1113でメッセージを図3のOS間通信領域124に書き込む。メッセージはあて先プロセスの情報と送るデータからなる。ステップ1114であて先のプロセスがあるOSを実行しているCPUに対してCPU間割込みを発生される。
【0034】
図17は、図16のステップ1114でCPU間割込みを発生させたときにCPU間割込みの信号を受信したCPUが実行するCPU間割込みハンドラのフローである。このプログラムは、図3のナビゲーション装置のメモリの内容の図ではCPU間割込み115と116にあたり、それぞれのOSに一つ存在する。ステップ1151で割り込みの種類を判定しており、割り込みの種類がプロセス間通信の割り込みかどうかで分岐する。プロセス間通信の割り込みでない場合には、ステップ1152でそれに対応した処理を行うが、ここではプロセス間通信の割り込みであった場合を中心に説明する。ステップ1153では、図3のOS間通信領域124からメッセージを読み出す。メッセージには、あて先プロセスの情報とデータが含まれている。ステップ1154でOSが持っているプロセス間通信のシステムコールを用い読み出したメッセージをあて先のプロセスに対して送信する。
【0035】
以上、図16と図17のフローを組み合わせることにより、OS間を跨るプロセス間通信が実現可能である。
【0036】
図4は、自動車2がカーブ29にさしかかった場面における車両制御イメージ図である。ナビゲーション装置10の地図データを用いれば、自動車2は、先方にカーブ29があることを予め知ることができる。そして、カーブ29に進入する前に、自動的にブレーキをかけて、カーブ29を安全に走行できる速度に、自動車2の速度を落としておくことができる。
【0037】
図5は、地図データの内容、現在位置と地図とのマッチング方法、先方曲率の計算方法を示している。地図データは、331〜338のように緯度と経度の情報を持つ点列データからなる。GPSから得られた現在位置が34の点であった場合、点列を結んだ線分で最も現在位置に近い331と332の間の線分が表す道路に居ると考える。先方曲率の計算は、現在位置から一定距離先の線分をいくつか選び、それらの垂直二等分線344〜347を求める。これら垂直二等分線344〜347の交点を計算し、線分から交点までの最短距離を曲率とする。
【0038】
図6は、本発明の一実施例によるロケータプロセス104の処理フロー図である。ステップ412でGPSドライバ108を通して現在位置の緯度経度を読み込み、ステップ413でATAドライバ109を通して地図データを読み込む。そして、ステップ414で読み込んだ地図データとGPSの位置データとのマッチングを行う。次に、ステップ415で先方の道路の曲率を計算する。これらマッチングや曲率計算に関しては、図5を用いて前述した通りである。
【0039】
ステップ416では、プロセス間通信ライブラリ111を使って読み込んだ地図データを簡易ロケータプロセス106に送信する。同様に、ステップ417では、現在位置を簡易ロケータに送信する。ステップ418では、現在位置を制御連携プロセス107に送信する。ステップ419では、ステップ415で計算した先方曲率を制御連携プロセス107に送信する。ステップ420では、自プロセスが正常に動作していることを示すハートビート情報をプロセス間通信ライブラリ111を使用してプロセス監視プロセス105に送信する。プロセス監視プロセス105は、一定時間、このハートビート情報が来なかった場合に、障害が発生したと認識する。
【0040】
図7は、本発明の一実施例による簡易ロケータプロセスでの処理フローを示している。簡易ロケータプロセス106は、図3で説明したように、ロケータプロセス104が障害で停止したときのバックアップの役割を果たす。
【0041】
まず、ステップ431で、ロケータプロセス104から送信されている地図データを受信する。ステップ432では、受信した地図データを、図3の地図格納領域1061に格納する。ステップ433では、ロケータプロセス104から送信されている現在位置情報を受信する。
【0042】
さて、ステップ434では、システム状態をプロセス監視プロセス105から受信する。ステップ435で受信したシステム状態が簡易状態でなかった場合には、ステップ431に戻り、この自動車2の位置確認と、その付近の地図データの入手作業を繰返し、異常事態に備える。
【0043】
ステップ434でプロセス監視プロセス105から受信したシステム状態が異常を示しており、これをステップ435で検知すると、ステップ436〜440の車両制御のバックアップ機能を開始する。まず、ステップ436でGPSを受信する。ステップ437では、地図格納領域1061に格納されている受信地図データを使いマップマッチングを行い、ステップ438では、同じく受信地図データを用いて先方道路の曲率計算を行う。そして、ステップ439では、ステップ437のマップマッチングで求めた位置情報を制御連携プロセス107に送信する。また、ステップ440で、ステップ438で計算した先方曲率を制御連携プロセスに送信する。簡易ロケータは限られた周囲の地図しか地図格納領域1061に持っていないが、ロケータプロセス104が再度立ち上がるまでの分のデータがあれば十分である。
【0044】
この実施例では、ステップ435で簡易状態か否かの判断を行っている。この簡易状態であることの1つとして、第1のロケータから道路情報を得られないときを含めることもでき、第2のロケータは、自己の主記憶装置内の地図データの一部を用いて制御装置に対する通知を続行することができる。
【0045】
ステップ441では、簡易ロケータプロセスとしてのハートビートをプロセス間通信112を用いて送信する。プロセス間通信はデータを送ることが可能であり、データ部に識別子を入れておくことにより、図6のステップ420のハートビートと区別することも可能である。
【0046】
図8は、本発明の一実施例によるプロセス監視プロセスのメインプログラムの処理フロー図である。この実施例では、ロケータプロセス104や簡易ロケータプロセス430からのハートビートを受信することによって、ロケータプロセス104や簡易ロケータプロセス430の監視を行うものとして説明する。
【0047】
ステップ451でタイマーを設定する。ここで設定した時間が経過すると、図9のタイマーハンドラが実行される。設定時間に達する前に、再度、ステップ451のタイマー設定が実行された場合には、タイマーは、再度、初期値からカウントを開始する。ステップ454では図3中の状態フラグ1051の値を取得する。状態フラグが正常状態であった場合、ステップ452で、ロケータプロセス104からのハートビートを受信する。ハートビートが来ていない場合には、ハートビートが来るまでここで待つことになる。ロケータプロセス104で障害が発生して、ハートビートが来なくなると、ステップ451で設定したタイマーの設定時間が経過して、タイマーハンドラ460が呼ばれる。ハートビートが来た場合には、次のステップ453にて、簡易ロケータ106、制御連携プロセス107に対してシステム状態として正常状態を送信する。ステップ455で正常状態でない場合、ステップ456で状態フラグが簡易状態であるか判断する。簡易状態は、OS121を再起動中であり、簡易ロケータ106を用いている状態である。簡易状態であった場合には、ステップ458でOS121の再起動が完了しているか判断する。
【0048】
この実施例では、図3で説明したように、ナビゲーション装置10のメモリ100に、2つのOS121と122、および簡易ロケータ106とを用意している。そこで、通常のOS121とロケータ104側での異常を検知すると、第2のOS122と簡易ロケータ106によるバックアップで車両制御を継続させ、この間に、自動的に、通常のOS121とロケータ104側のリトライ(再起動)を実行させる。
【0049】
完了している場合にはシステムが正常に状態に復帰したことを意味するので、ステップ4591で正常状態復帰を送信し、ステップ4593で状態フラグも正常状態に設定する。ステップ4594では簡易ロケータからのハートビートを受信するために待機する。ステップ458で再起動が完了していなかった場合には、簡易状態が継続しているということで、ステップ4592において簡易状態を送信する。ステップ456で状態が簡易状態でもなかった場合には、状態が異常になっているので、ステップ457において、システム全体の再立ち上げを行う。
【0050】
図9は、本発明の一実施例によるタイマーハンドラの処理フロー図であり、図8のタイマー設定ステップ451で設定した時間が経過したときに実行されるタイマーハンドラの処理を示している。
【0051】
このタイマーハンドラが実行されるということは、ロケータプロセス104、あるいは簡易ロケータプロセス430に異常があり、ハートビートが来ていないということである。このため、ステップ461で、図3中の状態フラグ1051の値を取得する。ステップ4611で状態フラグが正常状態か判断する。正常状態であった場合には、ステップ462において状態フラグを第一の異常状態である簡易状態に設定する。これは、ロケータプロセス104に異常があり、簡易ロケータプロセスによる簡易状態に移行するためである。ステップ463で簡易状態に移行することを制御連携状態通知470や簡易ロケータプロセス430に通知する。ロケータプロセス104の異常状態を解消するために、ステップ464で、OS121の再起動を行う。OS121の再起動は、OS121を実行している図2のCPU151に対してリセットをかけることによりなされる。リセットはバス160を通して行われる。リセット後、CPU151は図3中の初期プログラム123を実行する。初期プログラムのフローは図15にあり、最終的にOS121が再実行される。OS121上で実行されるロケータ104などのプロセスの実行は、OS121の初期化部分に定義しておく等により可能である。ステップ4611で正常状態でなかった場合には、簡易状態からさらにエラーが発生したと判断して、ステップ465において状態フラグを第二の異常状態である「異常状態」に設定し、ステップ466にて異常状態を送信する。この状態から復帰はシステム全体を再立ち上げする必要があるので、ステップ467においてシステムの再起動を行う。
【0052】
図10は、本発明の一実施例による制御連携プロセスのプログラムの一部である状態通知処理フロー図であり、図3の制御連携プロセス107の処理の一部である。ステップ471で、プロセス監視プロセス105から送信されてくるシステム状態を受信する。ステップ472で、受信したシステム状態が簡易状態であった場合には、ステップ473でCANドライバ114を用い、CANインターフェース190を通して、再起動中である通知をCAN210に送信する。ステップ474で、受信したシステム状態が正常状態復帰であった場合には、ステップ475にて、正常状態復帰の通知をCAN210に送信する。ステップ476において異常状態であった場合にはステップ477において異常通知をCAN210に送信する。
【0053】
図11は、本発明の一実施例による制御連携プロセスのプログラムの一部である制御連携処理フロー図であり、図3の制御連携プロセス107の処理の一部である。ステップ481で位置情報、ステップ482で先方曲率を受信する。これらの受信は、正常状態ではロケータプロセス104から送信されたものを受信し、ロケータプロセス104で障害が発生して、簡易ロケータプロセス106が処理を引き継いでいる場合には、このプロセスから受信する。受信した位置情報と先方曲率は、それぞれ、ステップ483と484でCANに送信される。
【0054】
図18は、図1のブレーキコントローラ221のメモリの内容を示した図である。2212はOSである。この例ではOS2212上で3つのプロセスが実行されている。2215はブレーキペダルによるブレーキの制御を行うプロセスである。図1のブレーキセンサ241によりドライバがブレーキを踏んだことを検知し、その量に応じてブレーキアクチュエータ25の制御を行う。490はナビゲーション10から情報を用いてブレーキの制御を行うプロセスである。500はナビゲーションの状態に応じてブレーキコントローラの状態を変化させるための状態管理プロセスである。状態管理500とナビ連携制御490のフローは、それぞれ図12と図13を用いて以下に述べる。
【0055】
図12は、本発明の一実施例によるブレーキコントローラのプログラムの一部である状態管理部分の処理フロー図であり、図1のブレーキコントローラ221のプログラムの一部である。この部分でナビゲーション装置の状態を把握している。ステップ501で、CANからナビゲーション装置10の状態を受信する。ステップ502で受信した状態が異常状態であるか否か判断し、異常状態であった場合には、ステップ504でナビ再起動中フラグをセットする。ステップ503において、受信した状態が正常状態復帰であった場合には、ステップ505で、ナビ再起動中フラグをリセットする。ステップ506において、受信した状態が異常状態であった場合には、ステップ507において異常状態フラグをセットする。
【0056】
図13は、本発明の一実施例によるブレーキコントローラ221のナビゲーション連携制御のためのプログラムの処理フロー図である。ステップ491で異常状態フラグがセットされているか判断している。
【0057】
異常状態フラグが立っているということはナビゲーション装置10が、ロケータ104にも簡易ロケータ106にも異常がある第二の異常状態にあることを意味するので、ナビゲーション装置10からの情報を使用した制御は行わないものとし、ステップ491では、異常状態のフラグがOFFとなるまで待機することとなる。
【0058】
次に、異常状態のフラグがセットされていない場合、あるいは、再起動中のフラグがOFFとなると、ステップ498でナビ再起動中フラグがONであるか判断する。再起動中フラグがONでない場合には、ナビゲーション装置10が正常状態にあることを意味するので、4981でブレーキ強度を計算するためのパラメータPとして通常のパラメータP1を採用する。一方、ナビ再起動中のフラグがONの場合には簡易ロケータで動作していることを意味するので、ステップ4982のように目標速度計算のためのパラメータとしてナビゲーションの重みを軽くしたパラメータP2を採用することが可能である。
【0059】
このように、本実施例においては、ナビゲーション装置の再起動を通知されたとき、ナビゲーション装置からの情報を採用せずに制御するように切替える制御切替手段を構成している。
【0060】
ステップ492、493でCANから位置情報と先方曲率を受信する。ステップ494では、現在の車速をブレーキ部分のセンサから計算する。ステップ495では、受信した先方曲率より安全に走行できる目標速度を求める。この方法は、計算で求めてもよいし、予め用意したテーブルより調べてもよい。ステップ496では、現在速度と目標速度を比較しており、もし、現在速度が目標速度を上回る場合には、ステップ497で、図1のブレーキアクチュエータ25を動作させてブレーキをかける。このときのブレーキ強度は、現速度と目標速度の差とステップ4981、あるいは、ステップ4982で設定したパラメータとから計算する。
【0061】
この図13の実施例では、ナビゲーション装置10に異常が発見され、その異常の部分を再起動した場合に、ナビゲーション装置10を使わない車両制御に切替えるように構成している。しかし、ナビゲーション装置10に異常が発見された場合、異常部分の再起動の如何にかかわらず、図9のプロセス監視プロセス105のタイマーハンドラのステップ461で、ナビゲーション装置の異常がCAN210上に通知される。したがって、この段階で、車両制御装置22に異常を通知するように構成することは容易である。また、ナビゲーション装置10の異常を通知された制御装置22は、制御内容を変更したり、ナビゲーション装置10を使わない車両制御に切替えるなど、切替えの内容も任意に改変することが可能である。さらに、第1段階の異常検知では、簡易ロケータ106を使用し、第2段階の異常を検知したとき、ナビゲーション装置10を使わない車両制御に切替えることもできる。
【0062】
図14は、本発明の他の実施例によるナビゲーション装置10の主記憶装置100の内容を示している。図3の実施例では、2つのOS121と122を動作させる構成について示したが、図14のように、1つのOS123上に、同様なプログラムを搭載する構成も考えられる。この場合、図2のナビゲーション装置10は、CPUが1つであってもよいし、複数であって、それらが単一のOSを実行する対称型マルチプロセッサであってもよい。OSが単一である場合には、図9のプロセス監視タイマーハンドラのステップ462のOS再起動の部分は、ロケータプロセス104のみを再起動することとなる。図14のプロセス間通信111は、図16のフローのうち同一OS内のプロセス宛の通信のフローと同一になる。
【図面の簡単な説明】
【0063】
【図1】本発明の一実施例によるナビゲーション利用自動車制御装置の車上機器構成図。
【図2】本発明の一実施例によるナビゲーション装置の構成図。
【図3】本発明の一実施例によるナビゲーション装置の主記憶装置のメモリ内容を示すイメージ図。
【図4】自動車2がカーブ29にさしかかった場面における車両制御イメージ図。
【図5】図4の制御における地図データの内容、現在位置と地図とのマッチング方法、先方曲率の計算方法の一例図。
【図6】本発明の一実施例によるロケータプロセスの処理フロー図。
【図7】本発明の一実施例による簡易ロケータプロセスの処理フロー図。
【図8】本発明の一実施例によるプロセス監視プロセスのメインプログラムの処理フロー図。
【図9】本発明の一実施例による設定時間経過時に実行されるタイマーハンドラの処理フロー図。
【図10】本発明の一実施例による制御連携プロセスの状態通知処理フロー図。
【図11】本発明の一実施例による制御連携プロセスの制御連携部処理フロー図。
【図12】本発明の一実施例によるブレーキコントローラのプログラムの一部である状態管理部分の処理フロー図。
【図13】本発明の一実施例によるブレーキコントローラのナビゲーション連携制御プログラムの処理フロー図。
【図14】本発明の他の実施例によるナビゲーション装置の主記憶装置のメモリ内容を示すイメージ図。
【図15】両CPUがリセット時に実行する図3中の初期プログラムのアルゴリズム。
【図16】両プロセス間通信の処理フロー図。
【図17】図16のステップ1114でCPU間割込みを発生させたときにCPU間割込みの信号を受信したCPUが実行するCPU間割込みハンドラの処理フロー図。
【図18】図1のブレーキコントローラ221のメモリの内容を示した図。
【符号の説明】
【0064】
2…自動車、10…ナビゲーション装置、210…CAN、22…制御装置、221…ブレーキコントローラ、222…ステアリングコントローラ、23…ステアリングアクチュエータ、241…ブレーキセンサ、242…ステアリングセンサ、25…ブレーキアクチュエータ、26…エンジン、100…主記憶装置、101…検索プロセス、102…探索プロセス、103…誘導プロセス、104…ロケータプロセス、105…プロセス管理プロセス、106…簡易ロケータプロセス、1061…地図保管領域、107…制御連携プロセス、108…GPSドライバ、109…ATAドライバ、110…グラフィックスライブラリ、111…プロセス間通信ライブラリ、112…プロセス間通信ライブラリ、114…CANドライバ、121,122,123…OS、130…GPS受信機、131…GPSアンテナ、140…ディスプレイ、151,152…CPU、160…バス、170…ジャイロ、180…ハードディスク、190…CANインターフェース。
【特許請求の範囲】
【請求項1】
衛星測位装置、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つロケータとを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御装置において、
前記ナビゲーション装置の正常/異常を監視する監視手段と、この監視手段により、前記ナビゲーション装置の異常を検出したとき、前記ナビゲーション装置のソフトウェアの一部または全部を再起動する手段とを備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項2】
請求項1において、前記再起動中に、前記制御装置に対して、前記ナビゲーション装置が再起動中であることを通知する手段を備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項3】
請求項2において、前記制御装置は、前記ナビゲーション装置の再起動を通知されたとき、制御を切替える制御切替手段を備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項4】
請求項3において、前記制御装置は、前記ナビゲーション装置の再起動を通知されたとき、前記ナビゲーション装置からの情報を採用せずに制御するように切替える制御切替手段を備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項5】
衛星測位装置、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つ第1のロケータとを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御装置において、
前記第1のロケータから独立した第2のロケータと、前記第1のロケータの異常時に、前記第2のロケータを用いて前記道路情報を前記制御装置に対して通知する手段を備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項6】
請求項5において、前記ナビゲーション装置は、第1,第2のロケータの動作をそれぞれ独立して司る第1,第2のプロセッサを備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項7】
請求項5または6において、前記第2のロケータは、自己の主記憶装置内に、前記地図データの一部を記憶する領域を持ち、前記制御装置が、前記第1のロケータから道路情報を得られないとき、前記第2のロケータは、自己の主記憶装置内の前記地図データの一部を用いて前記制御装置に対する通知を続行するように構成したことを特徴とするナビゲーション利用自動車制御装置。
【請求項8】
請求項1〜7のいずれかにおいて、前記制御装置に通知される道路情報は、道路の曲率情報であることを特徴とするナビゲーション利用自動車制御装置。
【請求項9】
請求項1〜8のいずれかにおいて、前記ナビゲーション装置と前記制御装置を接続するネットワークと、前記ナビゲーション装置の一部または全部を再起動するとき、前記ネットワークに対して、前記ナビゲーション装置が再起動中であることを示す情報を出力する再起動通知手段を備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項10】
衛星測位装置、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つ第1のロケータとを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両のブレーキおよび/またはステアリングの制御を行う制御装置を備えたナビゲーション利用自動車制御装置において、
前記第1のロケータから独立し、自己の主記憶装置内に、前記地図データの一部を記憶する領域を持った第2のロケータと、前記第1,第2のロケータの動作をそれぞれ独立して司る第1,第2のプロセッサと、前記ナビゲーション装置の正常/異常を監視する監視手段と、この監視手段により、前記ナビゲーション装置の異常を検出したとき、前記ナビゲーション装置のソフトウェアの一部または全部を再起動する手段と、前記第1のロケータの異常時に、前記第2のロケータを用いて前記道路情報を前記制御装置に対して通知する手段と、前記ナビゲーション装置の第2段階の異常を検知する手段と、この第2段階の異常が検知されたとき、前記制御装置を前記ナビゲーション装置からの情報を用いずに制御するように切替える制御切替手段とを備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項11】
衛星測位装置、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つロケータとを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御方法において、
前記ナビゲーション装置の正常/異常を監視するステップと、この監視ステップにより、前記ナビゲーション装置の異常を検出したとき、前記ナビゲーション装置のソフトウェアの一部または全部を再起動するステップとを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項12】
請求項11において、前記再起動中に、前記制御装置に対して、前記ナビゲーション装置が再起動中であることを通知するステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項13】
請求項12において、前記ナビゲーション装置の再起動を通知されたとき、前記制御装置の制御を切替える制御切替ステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項14】
請求項13において、前記ナビゲーション装置の再起動を通知されたとき、前記制御装置の制御を、前記ナビゲーション装置からの情報を採用せずに制御するように切替える制御切替ステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項15】
衛星測位装置、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つ第1のロケータとを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御方法において、
前記第1のロケータの異常時に、前記第1のロケータとは独立した第2のロケータを用いて、前記道路情報を前記制御装置に対して通知するステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項16】
請求項15において、前記第2のロケータは、自己の主記憶装置内に、前記地図データの一部を記憶する領域を持ち、前記第1のロケータから前記地図データを得られないとき、前記第2のロケータは、自己の主記憶装置内の前記地図データの一部を用いて前記制御装置に対する通知を続行するステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項17】
請求項12〜16のいずれかにおいて、前記制御装置に通知される道路情報は、道路の曲率情報であることを特徴とするナビゲーション利用自動車制御方法。
【請求項18】
請求項12〜17のいずれかにおいて、前記ナビゲーション装置と前記制御装置をネットワークで接続し、前記ナビゲーション装置の一部または全部を再起動するとき、前記ネットワークに対して、前記ナビゲーション装置が再起動中であることを示す情報を出力する再起動通知ステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項1】
衛星測位装置、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つロケータとを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御装置において、
前記ナビゲーション装置の正常/異常を監視する監視手段と、この監視手段により、前記ナビゲーション装置の異常を検出したとき、前記ナビゲーション装置のソフトウェアの一部または全部を再起動する手段とを備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項2】
請求項1において、前記再起動中に、前記制御装置に対して、前記ナビゲーション装置が再起動中であることを通知する手段を備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項3】
請求項2において、前記制御装置は、前記ナビゲーション装置の再起動を通知されたとき、制御を切替える制御切替手段を備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項4】
請求項3において、前記制御装置は、前記ナビゲーション装置の再起動を通知されたとき、前記ナビゲーション装置からの情報を採用せずに制御するように切替える制御切替手段を備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項5】
衛星測位装置、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つ第1のロケータとを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御装置において、
前記第1のロケータから独立した第2のロケータと、前記第1のロケータの異常時に、前記第2のロケータを用いて前記道路情報を前記制御装置に対して通知する手段を備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項6】
請求項5において、前記ナビゲーション装置は、第1,第2のロケータの動作をそれぞれ独立して司る第1,第2のプロセッサを備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項7】
請求項5または6において、前記第2のロケータは、自己の主記憶装置内に、前記地図データの一部を記憶する領域を持ち、前記制御装置が、前記第1のロケータから道路情報を得られないとき、前記第2のロケータは、自己の主記憶装置内の前記地図データの一部を用いて前記制御装置に対する通知を続行するように構成したことを特徴とするナビゲーション利用自動車制御装置。
【請求項8】
請求項1〜7のいずれかにおいて、前記制御装置に通知される道路情報は、道路の曲率情報であることを特徴とするナビゲーション利用自動車制御装置。
【請求項9】
請求項1〜8のいずれかにおいて、前記ナビゲーション装置と前記制御装置を接続するネットワークと、前記ナビゲーション装置の一部または全部を再起動するとき、前記ネットワークに対して、前記ナビゲーション装置が再起動中であることを示す情報を出力する再起動通知手段を備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項10】
衛星測位装置、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つ第1のロケータとを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両のブレーキおよび/またはステアリングの制御を行う制御装置を備えたナビゲーション利用自動車制御装置において、
前記第1のロケータから独立し、自己の主記憶装置内に、前記地図データの一部を記憶する領域を持った第2のロケータと、前記第1,第2のロケータの動作をそれぞれ独立して司る第1,第2のプロセッサと、前記ナビゲーション装置の正常/異常を監視する監視手段と、この監視手段により、前記ナビゲーション装置の異常を検出したとき、前記ナビゲーション装置のソフトウェアの一部または全部を再起動する手段と、前記第1のロケータの異常時に、前記第2のロケータを用いて前記道路情報を前記制御装置に対して通知する手段と、前記ナビゲーション装置の第2段階の異常を検知する手段と、この第2段階の異常が検知されたとき、前記制御装置を前記ナビゲーション装置からの情報を用いずに制御するように切替える制御切替手段とを備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項11】
衛星測位装置、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つロケータとを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御方法において、
前記ナビゲーション装置の正常/異常を監視するステップと、この監視ステップにより、前記ナビゲーション装置の異常を検出したとき、前記ナビゲーション装置のソフトウェアの一部または全部を再起動するステップとを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項12】
請求項11において、前記再起動中に、前記制御装置に対して、前記ナビゲーション装置が再起動中であることを通知するステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項13】
請求項12において、前記ナビゲーション装置の再起動を通知されたとき、前記制御装置の制御を切替える制御切替ステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項14】
請求項13において、前記ナビゲーション装置の再起動を通知されたとき、前記制御装置の制御を、前記ナビゲーション装置からの情報を採用せずに制御するように切替える制御切替ステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項15】
衛星測位装置、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つ第1のロケータとを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御方法において、
前記第1のロケータの異常時に、前記第1のロケータとは独立した第2のロケータを用いて、前記道路情報を前記制御装置に対して通知するステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項16】
請求項15において、前記第2のロケータは、自己の主記憶装置内に、前記地図データの一部を記憶する領域を持ち、前記第1のロケータから前記地図データを得られないとき、前記第2のロケータは、自己の主記憶装置内の前記地図データの一部を用いて前記制御装置に対する通知を続行するステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項17】
請求項12〜16のいずれかにおいて、前記制御装置に通知される道路情報は、道路の曲率情報であることを特徴とするナビゲーション利用自動車制御方法。
【請求項18】
請求項12〜17のいずれかにおいて、前記ナビゲーション装置と前記制御装置をネットワークで接続し、前記ナビゲーション装置の一部または全部を再起動するとき、前記ネットワークに対して、前記ナビゲーション装置が再起動中であることを示す情報を出力する再起動通知ステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2009−73386(P2009−73386A)
【公開日】平成21年4月9日(2009.4.9)
【国際特許分類】
【出願番号】特願2007−245317(P2007−245317)
【出願日】平成19年9月21日(2007.9.21)
【出願人】(000005108)株式会社日立製作所 (27,607)
【出願人】(000001487)クラリオン株式会社 (1,722)
【Fターム(参考)】
【公開日】平成21年4月9日(2009.4.9)
【国際特許分類】
【出願日】平成19年9月21日(2007.9.21)
【出願人】(000005108)株式会社日立製作所 (27,607)
【出願人】(000001487)クラリオン株式会社 (1,722)
【Fターム(参考)】
[ Back to top ]