(57)【特許請求の範囲】
【請求項１】
衛星測位装置、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つロケータとを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御装置において、
現在地点を地図上で探す簡易ロケータと、
前記ナビゲーション装置の正常／異常を監視する監視手段と、
この監視手段により、前記ナビゲーション装置の異常を検出したとき、前記ナビゲーション装置のソフトウェアの一部または全部を再起動する手段と、
前記ナビゲーション装置のソフトウェアの再起動中に、前記ナビゲーション装置が再起動中であることを前記簡易ロケータに通知する手段とを備え、
前記再起動中の通知を受取った前記簡易ロケータが、その動作を開始することを特徴とするナビゲーション利用自動車制御装置。
【請求項２】
請求項１において、前記ナビゲーション装置は、前記ロケータの動作と前記簡易ロケータの動作をそれぞれ独立して司る第１，第２のプロセッサを備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項３】
請求項１または２において、前記制御装置が、前記ロケータから道路情報を得られないとき、前記簡易ロケータは、自己の主記憶装置内の地図データの一部を用いて前記制御装置に対する通知を続行するように構成したことを特徴とするナビゲーション利用自動車制御装置。
【請求項４】
請求項１〜３のいずれかにおいて、前記制御装置に通知される道路情報は、道路の曲率情報であることを特徴とするナビゲーション利用自動車制御装置。
【請求項５】
請求項１〜４のいずれかにおいて、前記ナビゲーション装置と前記制御装置を接続するネットワークと、前記ナビゲーション装置の一部または全部を再起動するとき、前記ネットワークに対して、前記ナビゲーション装置が再起動中であることを示す情報を出力する再起動通知手段を備えたことを特徴とするナビゲーション利用自動車制御装置。
【請求項６】
衛星測位装置、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つ第１のロケータとを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御装置において、
前記第１のロケータから独立して現在地点を地図上で探す第２のロケータと、
前記ナビゲーション装置の正常／異常を監視する監視手段と、
この監視手段により、前記ナビゲーション装置の異常を検出したとき、前記ナビゲーション装置のソフトウェアの一部または全部を再起動する手段と、
前記ナビゲーション装置のソフトウェアの再起動中に、前記ナビゲーション装置が再起動中であることを前記第２のロケータに通知する手段とを備え、
前記再起動中の通知を受取った前記第２のロケータが、その動作を開始することを特徴とするナビゲーション利用自動車制御装置。
【請求項７】
衛星測位装置、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つロケータとを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御方法において、
現在地点を地図上で探す簡易ロケータを備え、
前記ナビゲーション装置の正常／異常を監視する監視ステップと、
この監視ステップにより、前記ナビゲーション装置の異常を検出したとき、前記ナビゲーション装置のソフトウェアの一部または全部を再起動する再起動ステップと、
前記ナビゲーション装置のソフトウェアの再起動ステップ中に、前記ナビゲーション装置が再起動中であることを前記簡易ロケータに通知する再起動中通知ステップとを備え、
前記再起動中の通知を受取った前記簡易ロケータが、その動作を開始することを特徴とするナビゲーション利用自動車制御方法。
【請求項８】
請求項７において、前記ナビゲーション装置は、第１，第２のプロセッサを備え、これら第１，第２のプロセッサが、前記ロケータの動作と前記簡易ロケータの動作をそれぞれ独立して司るステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項９】
請求項７または８において、前記制御装置が、前記ロケータから道路情報を得られないとき、前記簡易ロケータが、自己の主記憶装置内の地図データの一部を用いて前記制御装置に対する通知を続行するステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項１０】
請求項７〜９のいずれかにおいて、前記制御装置に通知される道路情報は、道路の曲率情報であることを特徴とするナビゲーション利用自動車制御方法。
【請求項１１】
請求項７〜１０のいずれかにおいて、前記ナビゲーション装置と前記制御装置を接続するネットワークで接続し、前記ナビゲーション装置の一部または全部を再起動するとき、前記ネットワークに対して、前記ナビゲーション装置が再起動中であることを示す情報を出力する再起動通知ステップを備えたことを特徴とするナビゲーション利用自動車制御方法。
【請求項１２】
衛星測位装置、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つロケータとを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御方法において、
現在地点を地図上で探す第２のロケータを備え、
前記ナビゲーション装置の正常／異常を監視する監視ステップと、
この監視ステップにより、前記ナビゲーション装置の異常を検出したとき、前記ナビゲーション装置のソフトウェアの一部または全部を再起動する再起動ステップと、
前記ナビゲーション装置のソフトウェアの再起動ステップ中に、前記ナビゲーション装置が再起動中であることを前記第２のロケータに通知する再起動中通知ステップとを備え、
前記再起動中の通知を受取った前記第２のロケータが、その動作を開始することを特徴とするナビゲーション利用自動車制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ナビゲーションを利用した自動車の制御装置および制御方法に関する。
【背景技術】
【０００２】
現在、ＧＰＳにより位置を把握し、ハードディスク等に記憶した地図のデータを用いてドライバに現在位置情報を提供したり、経路を誘導したりするナビゲーションが普及している。
【０００３】
一方、自動車のステアリングやブレーキの制御は電子的に行われるようになってきている。この制御には、ＥＣＵ（Electronic Control Unit）と呼ばれるコントローラが用いられている。このコントローラでは、ブレーキのロックを防ぐ制御をしたり、カメラで道路の白線を認識し道路から逸脱しないようにステアリングを操作する制御をしたりする機能が入ってきている。
【０００４】
また、ナビゲーションとコントローラを接続し、ナビゲーションにより進行方向先方にカーブがあることがわかった場合、ナビゲーションからコントローラに指示を出し、ギアをシフトダウンする自動車が販売されている。
【０００５】
このような、ナビゲーション装置の情報を利用した自動車の制御装置としては、例えば、特許文献１，２などが挙げられる。
【０００６】
【特許文献１】特開平８−１９４８９４号公報
【特許文献２】特開平８−２８７３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ナビゲーションを使って車両の制御をする機能は今後も進化し、カーブの前でブレーキをかけて速度を制御するという機能も出てくると思われる。そのようになってきたときにナビゲーションがソフトウェアのバグやノイズなどにより停止すると、ナビゲーションの情報を使用した制御が行えなくなる問題がある。そのためにナビゲーションの高信頼化が課題である。
【０００８】
また、ナビゲーションに障害が発生したときに、誤った制御を行わないようにする必要がある。
【０００９】
本発明の目的は、ナビゲーション装置に異常が発生しても、自動車の制御装置が安全に動作するナビゲーション利用自動車制御装置または制御方法を提供することである。
【課題を解決するための手段】
【００１０】
本発明はその一面において、衛星測位装置（ＧＰＳ）、地図データを格納する記憶装置、および現在地点を地図上で探す機能を持つロケータとを有するナビゲーション装置から通知された道路情報を用いて車両の制御を行うナビゲーション利用自動車制御装置において、ナビゲーション装置を監視する監視手段と、この監視手段により、ナビゲーション装置の異常を検出したとき、ナビゲーション装置のソフトウェアの一部または全部を再起動する手段を備える。
【００１１】
本発明は他の一面において、現在地点を地図上で探す機能を持つロケータを有するナビゲーション装置と、このナビゲーション装置から通知された道路情報を用いて車両の制御を行う制御装置を備えたナビゲーション利用自動車制御装置において、前記ロケータから独立した第２のロケータと、前記ロケータの異常時に、前記第２のロケータを用いて道路情報を制御装置に対して通知する手段を備える。
【００１２】
従来、ナビゲーションで位置を把握するロケータプロセスは一つしか存在しなかった。
【００１３】
また、従来のナビゲーションではプロセッサが１つであり、ＯＳ（オペレーティングシステム）も１つであった。
【００１４】
本発明の望ましい実施態様では、プロセッサを２つ以上搭載し、オペレーティングシステムをそれぞれに搭載する。１つのＯＳ上でロケータプロセスを実行する一方、別のＯＳ上でバックアップ用ロケータプロセスを実行する。
【００１５】
通常の状態ではロケータプロセスが制御連携プロセスに道路の形状など道路情報を通知して、その情報を用いて制御が行われる。
【００１６】
ロケータプロセスやロケータプロセスが実行されているＯＳで障害が発生した場合は、バックアップ用第２のロケータプロセスが道路情報提供の役割を引き継ぎ、処理を続行する。一方、障害が発生した部分はその間に再起動される。
【００１７】
再起動中は中間的状態であることから、これをコントローラに通知する。コントローラは、この通知を受けてナビゲーションへの依存を少なくあるいは無くした制御に切替える。
【００１８】
第２のロケータプロセスは、その主記憶装置上に地図保管領域を持ち、現在位置周辺の地図の一部を記憶する。ハードディスクへのアクセスが不可能になったときには、この地図保管領域に記憶されている地図データを用いて当面の制御を続行する。
【発明の効果】
【００１９】
本発明の望ましい実施態様によれば、ナビゲーション装置に異常が発生しても、自動車の制御装置が安全に動作するナビゲーション利用自動車制御装置または制御方法を提供することができる。
【００２０】
本発明のその他の目的と特徴は、以下に述べる実施例の中で明らかにする。
【発明を実施するための最良の形態】
【００２１】
以下に本発明の望ましい実施例を、図面を参照して説明する。
【００２２】
図１は、本発明の一実施例によるナビゲーション利用自動車制御装置の車上機器構成図である。ナビゲーション装置１０は、メモリ１００を備えて構成されている。制御装置２２は、ブレーキコントローラ２２１と、ステアリングコントローラ２２２を含んでいる。これらは、ＣＡＮネットワーク２１０で接続されている。ブレーキアクチュエータ２５は、ブレーキコントローラ２２１からの指示でブレーキをかける。ステアリングアクチュエータ２３は、ステアリングコントローラ２２２の指示によりステアリングを動かす。ブレーキセンサ２４１は、ブレーキペダルの踏まれた量を計測する。ステアリングセンサ２４２は、ステアリングホイールの回転を計測する。これらを測定した結果は、ＣＡＮ２１０に出力され、ブレーキコントローラ２２１、ステアリングコントローラ２２２は、これらのセンサのデータを用いて制御を行う。２６はエンジン、１３１はナビゲーションのＧＰＳアンテナである。
【００２３】
図２は、図１におけるナビゲーション装置１０の構成の一例を示している。ＧＰＳ受信機１３０は、ＧＰＳアンテナ１３１からＧＰＳ衛星の電波を受信して現在地の緯度と経度を計算する。ディスプレイ１４０は、地図等の表示を行う。第１のＣＰＵ１５１と第２のＣＰＵ１５２は、ナビゲーション装置１０の主記憶装置１００に記憶されているプログラムを実行するＣＰＵであり、複数のＣＰＵコアが入っているマルチコアを用いている。１５１１と１５１２はＣＰＵ番号レジスタである。ＣＰＵ１５１とＣＰＵ１５２は、それぞれのＣＰＵ番号レジスタを読むことにより自分のＣＰＵの番号を知ることができる。すなわち、ＣＰＵ１５１はＣＰＵ番号レジスタ１５１１を読むと「０」を読み出し、ＣＰＵ１５２がＣＰＵ番号レジスタ１５１２を読むと「１」を読み出す。これによりＣＰＵ１５１とＣＰＵ１５２は、リセットにより同じ初期プログラム１２３を実行し始めても、それぞれが別々のＯＳ１２１とＯＳ１２２にジャンプすることが可能である。１６０はバスであり、ＣＰＵ、主記憶装置、およびＩ／Ｏの間のデータ転送を行う。また、バス１６０にはＣＰＵ１５１とＣＰＵ１５２がお互いＣＰＵ間割り込みとリセットを送信する線を有している。ＣＡＮインターフェース１９０は、ＣＡＮ２１０に対してデータを出力したり、ＣＡＮ２１０からデータを入力したりする。ジャイロ１７０は、車の方向変化を検出するために用いられる。ハードディスク１８０は、地図データなどを記憶している。主記憶装置１００は、ＤＲＡＭなどのメモリで構成される。
【００２４】
図３は、図２のナビゲーション装置１０内の主記憶装置１００のメモリ内容を表している。図２における第１のＣＰＵ１５１、第２のＣＰＵ１５２は、この主記憶装置１００に記憶されているプログラムを読み出して実行する。この主記憶装置１００には、プログラムの実行において使用するデータも記憶される。１２１は、第１のＯＳのプログラムとデータである。このＯＳ１２１は、図２における第１のＣＰＵ１５１によって実行される。同様に、第２のＯＳ１２２のプログラムとデータも在るが、こちらは、第２のＣＰＵ１５２によって実行される。
【００２５】
図３において、ＯＳ１２１の上方に書かれているプログラムは、ＯＳ１２１によって管理され、ＣＰＵ１５１によって実行される。同様に、ＯＳ１２２の上方に書かれているプログラムは、ＯＳ１２２によって管理され、ＣＰＵ１５２によって実行される。検索プロセス１０１は、ドライバが目的地を探すときに実行される。探索プロセス１０２は、目的地が決定したときに、現在位置から目的地までの経路を計算する。誘導プロセス１０３は、計算された経路にしたがって、右折、左折などの情報をディスプレイ１４０に出力する。ロケータプロセス１０４は、図２のディスク１８０から地図データを読み出し、ＧＰＳ受信機１３０から得た現在位置の緯度、経度の情報を地図上にマッピングする。また、前方の曲率のデータ等を制御連携プロセス１０７に送信したりする。このロケータプロセスのフローは、図６を参照して後述する。
【００２６】
プロセス監視プロセス１０５は、ロケータプロセス１０４が正常に動作しているかを監視し、異常が発生したときにそれに対応した動作を行う。１０５１はシステム状態フラグであり、正常状態、簡易状態、および異常状態の３種類の状態をフラグで表す。このプロセス監視プロセス１０５のフローは、図８と図９を参照して後述する。
【００２７】
簡易ロケータプロセス１０６は、ロケータ１０４に異常が発生したときに処理を引き継ぐ。この中のメモリ領域１０６１は、ロケータ１０４から転送された地図データを記憶しておく領域である。ハードディスクにアクセスが不可能になったとき、ここに記憶されているデータを使用する。簡易ロケータプロセス１０６のフローは、図７を参照して後述する。
【００２８】
制御連携プロセス１０７は、コントローラに対して地図に関する情報をＣＡＮを通して送信する。この制御連携プロセス１０７のフローは、図１０、図１１を参照して後述する。
【００２９】
ＧＰＳドライバ１０８は、図２におけるＧＰＳ受信機１３０にアクセスするためのプログラムである。ＡＴＡドライバ１０９は、図２におけるディスク１８０にアクセスするためのプログラムである。グラフィックスライブラリ１１０は、図２のディスプレイ１４０に表示を行うためのプログラムである。
【００３０】
プロセス間通信ライブラリ１１１と１１２は、プロセス間でメッセージ通信を行うためのプログラムである。メッセージのあて先はＯＳ番号とプロセス番号の組からなっており、同じＯＳ内のプロセスに対してメッセージを送ることもできるし、異なるＯＳ内のプロセスに対してメッセージを送ることも可能である。このライブラリのフローは、図１６を参照して後述する。ＯＳ間割込みハンドラ１１５と１１６は、ＯＳ間にまたがるプロセス間通信を行うために用いるＣＰＵ間割込みの割込みハンドラである。このＣＰＵ間割込みハンドラは、図２のバス１６０にあるＣＰＵ割込みのラインにより伝達されるＣＰＵ間割込みが発生したときに実行される。このＣＰＵ間割込みハンドラのフローは、図１７を参照して後述する。ＣＡＮドライバ１１４は、図２のＣＡＮインターフェース１９０を通してＣＡＮ２１０の送受信を行う。
【００３１】
１２３は、ＣＰＵ１５１とＣＰＵ１５２がリセット時に実行する初期プログラムである。１２４は、ＯＳ間通信用領域であり、ＯＳ間にまたがるプロセス間通信を行うときに使用する領域である。
【００３２】
図１５は、ＣＰＵ１５１とＣＰＵ１５２がリセット時に実行する図３中の初期プログラム１２３のアルゴリズムである。ステップ１２３１で図２中のＣＰＵ番号レジスタを読み出す。図２のＣＰＵ１５１はＣＰＵ番号レジスタ１５１１を、他方ＣＰＵ１５２はＣＰＵ番号レジスタ１５１２をそれぞれ読み出すことになる。ステップ１２３２では、読み出したＣＰＵ番号を判断する。ＣＰＵ１５１とＣＰＵ１５２は、それぞれ別の番号を読み出すことになり、ここで処理が分岐する。ＣＰＵ１５１は０を読み出すので、ステップ１２３３でＯＳ１２１を実行し、ＣＰＵ１５２は１を読みだすのでＯＳ１２２を実行することになる。
【００３３】
図１６は、プロセス間通信１１１、および１１２のフローである。このプロセス間通信を用いてあるプロセスから同一ＯＳ内のプロセス、あるいは別のＯＳ内のプロセスに対してメッセージの通信を行うことができる。本プロセス間通信の呼び出しにはあて先のプロセスと送信するデータの内容を指定する。ステップ１１１１で通信のあて先が同一ＯＳ内のプロセスであるか判定する。同一ＯＳ内のプロセス宛の場合にはステップ１１１２でそのＯＳが持っているプロセス通信のシステムコールを使用して通信を行う。同一ＯＳ内のプロセスでなかった場合にはステップ１１１３でメッセージを図３のＯＳ間通信領域１２４に書き込む。メッセージはあて先プロセスの情報と送るデータからなる。ステップ１１１４であて先のプロセスがあるＯＳを実行しているＣＰＵに対してＣＰＵ間割込みを発生される。
【００３４】
図１７は、図１６のステップ１１１４でＣＰＵ間割込みを発生させたときにＣＰＵ間割込みの信号を受信したＣＰＵが実行するＣＰＵ間割込みハンドラのフローである。このプログラムは、図３のナビゲーション装置のメモリの内容の図ではＣＰＵ間割込み１１５と１１６にあたり、それぞれのＯＳに一つ存在する。ステップ１１５１で割り込みの種類を判定しており、割り込みの種類がプロセス間通信の割り込みかどうかで分岐する。プロセス間通信の割り込みでない場合には、ステップ１１５２でそれに対応した処理を行うが、ここではプロセス間通信の割り込みであった場合を中心に説明する。ステップ１１５３では、図３のＯＳ間通信領域１２４からメッセージを読み出す。メッセージには、あて先プロセスの情報とデータが含まれている。ステップ１１５４でＯＳが持っているプロセス間通信のシステムコールを用い読み出したメッセージをあて先のプロセスに対して送信する。
【００３５】
以上、図１６と図１７のフローを組み合わせることにより、ＯＳ間を跨るプロセス間通信が実現可能である。
【００３６】
図４は、自動車２がカーブ２９にさしかかった場面における車両制御イメージ図である。ナビゲーション装置１０の地図データを用いれば、自動車２は、先方にカーブ２９があることを予め知ることができる。そして、カーブ２９に進入する前に、自動的にブレーキをかけて、カーブ２９を安全に走行できる速度に、自動車２の速度を落としておくことができる。
【００３７】
図５は、地図データの内容、現在位置と地図とのマッチング方法、先方曲率の計算方法を示している。地図データは、３３１〜３３８のように緯度と経度の情報を持つ点列データからなる。ＧＰＳから得られた現在位置が３４の点であった場合、点列を結んだ線分で最も現在位置に近い３３１と３３２の間の線分が表す道路に居ると考える。先方曲率の計算は、現在位置から一定距離先の線分をいくつか選び、それらの垂直二等分線３４４〜３４７を求める。これら垂直二等分線３４４〜３４７の交点を計算し、線分から交点までの最短距離を曲率とする。
【００３８】
図６は、本発明の一実施例によるロケータプロセス１０４の処理フロー図である。ステップ４１２でＧＰＳドライバ１０８を通して現在位置の緯度経度を読み込み、ステップ４１３でＡＴＡドライバ１０９を通して地図データを読み込む。そして、ステップ４１４で読み込んだ地図データとＧＰＳの位置データとのマッチングを行う。次に、ステップ４１５で先方の道路の曲率を計算する。これらマッチングや曲率計算に関しては、図５を用いて前述した通りである。
【００３９】
ステップ４１６では、プロセス間通信ライブラリ１１１を使って読み込んだ地図データを簡易ロケータプロセス１０６に送信する。同様に、ステップ４１７では、現在位置を簡易ロケータに送信する。ステップ４１８では、現在位置を制御連携プロセス１０７に送信する。ステップ４１９では、ステップ４１５で計算した先方曲率を制御連携プロセス１０７に送信する。ステップ４２０では、自プロセスが正常に動作していることを示すハートビート情報をプロセス間通信ライブラリ１１１を使用してプロセス監視プロセス１０５に送信する。プロセス監視プロセス１０５は、一定時間、このハートビート情報が来なかった場合に、障害が発生したと認識する。
【００４０】
図７は、本発明の一実施例による簡易ロケータプロセスでの処理フローを示している。簡易ロケータプロセス１０６は、図３で説明したように、ロケータプロセス１０４が障害で停止したときのバックアップの役割を果たす。
【００４１】
まず、ステップ４３１で、ロケータプロセス１０４から送信されている地図データを受信する。ステップ４３２では、受信した地図データを、図３の地図格納領域１０６１に格納する。ステップ４３３では、ロケータプロセス１０４から送信されている現在位置情報を受信する。
【００４２】
さて、ステップ４３４では、システム状態をプロセス監視プロセス１０５から受信する。ステップ４３５で受信したシステム状態が簡易状態でなかった場合には、ステップ４３１に戻り、この自動車２の位置確認と、その付近の地図データの入手作業を繰返し、異常事態に備える。
【００４３】
ステップ４３４でプロセス監視プロセス１０５から受信したシステム状態が異常を示しており、これをステップ４３５で検知すると、ステップ４３６〜４４０の車両制御のバックアップ機能を開始する。まず、ステップ４３６でＧＰＳを受信する。ステップ４３７では、地図格納領域１０６１に格納されている受信地図データを使いマップマッチングを行い、ステップ４３８では、同じく受信地図データを用いて先方道路の曲率計算を行う。そして、ステップ４３９では、ステップ４３７のマップマッチングで求めた位置情報を制御連携プロセス１０７に送信する。また、ステップ４４０で、ステップ４３８で計算した先方曲率を制御連携プロセスに送信する。簡易ロケータは限られた周囲の地図しか地図格納領域１０６１に持っていないが、ロケータプロセス１０４が再度立ち上がるまでの分のデータがあれば十分である。
【００４４】
この実施例では、ステップ４３５で簡易状態か否かの判断を行っている。この簡易状態であることの１つとして、第１のロケータから道路情報を得られないときを含めることもでき、第２のロケータは、自己の主記憶装置内の地図データの一部を用いて制御装置に対する通知を続行することができる。
【００４５】
ステップ４４１では、簡易ロケータプロセスとしてのハートビートをプロセス間通信１１２を用いて送信する。プロセス間通信はデータを送ることが可能であり、データ部に識別子を入れておくことにより、図６のステップ４２０のハートビートと区別することも可能である。
【００４６】
図８は、本発明の一実施例によるプロセス監視プロセスのメインプログラムの処理フロー図である。この実施例では、ロケータプロセス１０４や簡易ロケータプロセス４３０からのハートビートを受信することによって、ロケータプロセス１０４や簡易ロケータプロセス４３０の監視を行うものとして説明する。
【００４７】
ステップ４５１でタイマーを設定する。ここで設定した時間が経過すると、図９のタイマーハンドラが実行される。設定時間に達する前に、再度、ステップ４５１のタイマー設定が実行された場合には、タイマーは、再度、初期値からカウントを開始する。ステップ４５４では図３中の状態フラグ１０５１の値を取得する。状態フラグが正常状態であった場合、ステップ４５２で、ロケータプロセス１０４からのハートビートを受信する。ハートビートが来ていない場合には、ハートビートが来るまでここで待つことになる。ロケータプロセス１０４で障害が発生して、ハートビートが来なくなると、ステップ４５１で設定したタイマーの設定時間が経過して、タイマーハンドラ４６０が呼ばれる。ハートビートが来た場合には、次のステップ４５３にて、簡易ロケータ１０６、制御連携プロセス１０７に対してシステム状態として正常状態を送信する。ステップ４５５で正常状態でない場合、ステップ４５６で状態フラグが簡易状態であるか判断する。簡易状態は、ＯＳ１２１を再起動中であり、簡易ロケータ１０６を用いている状態である。簡易状態であった場合には、ステップ４５８でＯＳ１２１の再起動が完了しているか判断する。
【００４８】
この実施例では、図３で説明したように、ナビゲーション装置１０のメモリ１００に、２つのＯＳ１２１と１２２、および簡易ロケータ１０６とを用意している。そこで、通常のＯＳ１２１とロケータ１０４側での異常を検知すると、第２のＯＳ１２２と簡易ロケータ１０６によるバックアップで車両制御を継続させ、この間に、自動的に、通常のＯＳ１２１とロケータ１０４側のリトライ（再起動）を実行させる。
【００４９】
完了している場合にはシステムが正常に状態に復帰したことを意味するので、ステップ４５９１で正常状態復帰を送信し、ステップ４５９３で状態フラグも正常状態に設定する。ステップ４５９４では簡易ロケータからのハートビートを受信するために待機する。ステップ４５８で再起動が完了していなかった場合には、簡易状態が継続しているということで、ステップ４５９２において簡易状態を送信する。ステップ４５６で状態が簡易状態でもなかった場合には、状態が異常になっているので、ステップ４５７において、システム全体の再立ち上げを行う。
【００５０】
図９は、本発明の一実施例によるタイマーハンドラの処理フロー図であり、図８のタイマー設定ステップ４５１で設定した時間が経過したときに実行されるタイマーハンドラの処理を示している。
【００５１】
このタイマーハンドラが実行されるということは、ロケータプロセス１０４、あるいは簡易ロケータプロセス４３０に異常があり、ハートビートが来ていないということである。このため、ステップ４６１で、図３中の状態フラグ１０５１の値を取得する。ステップ４６１１で状態フラグが正常状態か判断する。正常状態であった場合には、ステップ４６２において状態フラグを第一の異常状態である簡易状態に設定する。これは、ロケータプロセス１０４に異常があり、簡易ロケータプロセスによる簡易状態に移行するためである。ステップ４６３で簡易状態に移行することを制御連携状態通知４７０や簡易ロケータプロセス４３０に通知する。ロケータプロセス１０４の異常状態を解消するために、ステップ４６４で、ＯＳ１２１の再起動を行う。ＯＳ１２１の再起動は、ＯＳ１２１を実行している図２のＣＰＵ１５１に対してリセットをかけることによりなされる。リセットはバス１６０を通して行われる。リセット後、ＣＰＵ１５１は図３中の初期プログラム１２３を実行する。初期プログラムのフローは図１５にあり、最終的にＯＳ１２１が再実行される。ＯＳ１２１上で実行されるロケータ１０４などのプロセスの実行は、ＯＳ１２１の初期化部分に定義しておく等により可能である。ステップ４６１１で正常状態でなかった場合には、簡易状態からさらにエラーが発生したと判断して、ステップ４６５において状態フラグを第二の異常状態である「異常状態」に設定し、ステップ４６６にて異常状態を送信する。この状態から復帰はシステム全体を再立ち上げする必要があるので、ステップ４６７においてシステムの再起動を行う。
【００５２】
図１０は、本発明の一実施例による制御連携プロセスのプログラムの一部である状態通知処理フロー図であり、図３の制御連携プロセス１０７の処理の一部である。ステップ４７１で、プロセス監視プロセス１０５から送信されてくるシステム状態を受信する。ステップ４７２で、受信したシステム状態が簡易状態であった場合には、ステップ４７３でＣＡＮドライバ１１４を用い、ＣＡＮインターフェース１９０を通して、再起動中である通知をＣＡＮ２１０に送信する。ステップ４７４で、受信したシステム状態が正常状態復帰であった場合には、ステップ４７５にて、正常状態復帰の通知をＣＡＮ２１０に送信する。ステップ４７６において異常状態であった場合にはステップ４７７において異常通知をＣＡＮ２１０に送信する。
【００５３】
図１１は、本発明の一実施例による制御連携プロセスのプログラムの一部である制御連携処理フロー図であり、図３の制御連携プロセス１０７の処理の一部である。ステップ４８１で位置情報、ステップ４８２で先方曲率を受信する。これらの受信は、正常状態ではロケータプロセス１０４から送信されたものを受信し、ロケータプロセス１０４で障害が発生して、簡易ロケータプロセス１０６が処理を引き継いでいる場合には、このプロセスから受信する。受信した位置情報と先方曲率は、それぞれ、ステップ４８３と４８４でＣＡＮに送信される。
【００５４】
図１８は、図１のブレーキコントローラ２２１のメモリの内容を示した図である。２２１２はＯＳである。この例ではＯＳ２２１２上で３つのプロセスが実行されている。２２１５はブレーキペダルによるブレーキの制御を行うプロセスである。図１のブレーキセンサ２４１によりドライバがブレーキを踏んだことを検知し、その量に応じてブレーキアクチュエータ２５の制御を行う。４９０はナビゲーション１０から情報を用いてブレーキの制御を行うプロセスである。５００はナビゲーションの状態に応じてブレーキコントローラの状態を変化させるための状態管理プロセスである。状態管理５００とナビ連携制御４９０のフローは、それぞれ図１２と図１３を用いて以下に述べる。
【００５５】
図１２は、本発明の一実施例によるブレーキコントローラのプログラムの一部である状態管理部分の処理フロー図であり、図１のブレーキコントローラ２２１のプログラムの一部である。この部分でナビゲーション装置の状態を把握している。ステップ５０１で、ＣＡＮからナビゲーション装置１０の状態を受信する。ステップ５０２で受信した状態が異常状態であるか否か判断し、異常状態であった場合には、ステップ５０４でナビ再起動中フラグをセットする。ステップ５０３において、受信した状態が正常状態復帰であった場合には、ステップ５０５で、ナビ再起動中フラグをリセットする。ステップ５０６において、受信した状態が異常状態であった場合には、ステップ５０７において異常状態フラグをセットする。
【００５６】
図１３は、本発明の一実施例によるブレーキコントローラ２２１のナビゲーション連携制御のためのプログラムの処理フロー図である。ステップ４９１で異常状態フラグがセットされているか判断している。
【００５７】
異常状態フラグが立っているということはナビゲーション装置１０が、ロケータ１０４にも簡易ロケータ１０６にも異常がある第二の異常状態にあることを意味するので、ナビゲーション装置１０からの情報を使用した制御は行わないものとし、ステップ４９１では、異常状態のフラグがＯＦＦとなるまで待機することとなる。
【００５８】
次に、異常状態のフラグがセットされていない場合、あるいは、再起動中のフラグがＯＦＦとなると、ステップ４９８でナビ再起動中フラグがＯＮであるか判断する。再起動中フラグがＯＮでない場合には、ナビゲーション装置１０が正常状態にあることを意味するので、４９８１でブレーキ強度を計算するためのパラメータＰとして通常のパラメータＰ１を採用する。一方、ナビ再起動中のフラグがＯＮの場合には簡易ロケータで動作していることを意味するので、ステップ４９８２のように目標速度計算のためのパラメータとしてナビゲーションの重みを軽くしたパラメータＰ２を採用することが可能である。
【００５９】
このように、本実施例においては、ナビゲーション装置の再起動を通知されたとき、ナビゲーション装置からの情報を採用せずに制御するように切替える制御切替手段を構成している。
【００６０】
ステップ４９２、４９３でＣＡＮから位置情報と先方曲率を受信する。ステップ４９４では、現在の車速をブレーキ部分のセンサから計算する。ステップ４９５では、受信した先方曲率より安全に走行できる目標速度を求める。この方法は、計算で求めてもよいし、予め用意したテーブルより調べてもよい。ステップ４９６では、現在速度と目標速度を比較しており、もし、現在速度が目標速度を上回る場合には、ステップ４９７で、図１のブレーキアクチュエータ２５を動作させてブレーキをかける。このときのブレーキ強度は、現速度と目標速度の差とステップ４９８１、あるいは、ステップ４９８２で設定したパラメータとから計算する。
【００６１】
この図１３の実施例では、ナビゲーション装置１０に異常が発見され、その異常の部分を再起動した場合に、ナビゲーション装置１０を使わない車両制御に切替えるように構成している。しかし、ナビゲーション装置１０に異常が発見された場合、異常部分の再起動の如何にかかわらず、図９のプロセス監視プロセス１０５のタイマーハンドラのステップ４６１で、ナビゲーション装置の異常がＣＡＮ２１０上に通知される。したがって、この段階で、車両制御装置２２に異常を通知するように構成することは容易である。また、ナビゲーション装置１０の異常を通知された制御装置２２は、制御内容を変更したり、ナビゲーション装置１０を使わない車両制御に切替えるなど、切替えの内容も任意に改変することが可能である。さらに、第１段階の異常検知では、簡易ロケータ１０６を使用し、第２段階の異常を検知したとき、ナビゲーション装置１０を使わない車両制御に切替えることもできる。
【００６２】
図１４は、本発明の他の実施例によるナビゲーション装置１０の主記憶装置１００の内容を示している。図３の実施例では、２つのＯＳ１２１と１２２を動作させる構成について示したが、図１４のように、１つのＯＳ１２３上に、同様なプログラムを搭載する構成も考えられる。この場合、図２のナビゲーション装置１０は、ＣＰＵが１つであってもよいし、複数であって、それらが単一のＯＳを実行する対称型マルチプロセッサであってもよい。ＯＳが単一である場合には、図９のプロセス監視タイマーハンドラのステップ４６２のＯＳ再起動の部分は、ロケータプロセス１０４のみを再起動することとなる。図１４のプロセス間通信１１１は、図１６のフローのうち同一ＯＳ内のプロセス宛の通信のフローと同一になる。
【図面の簡単な説明】
【００６３】
【図１】本発明の一実施例によるナビゲーション利用自動車制御装置の車上機器構成図。
【図２】本発明の一実施例によるナビゲーション装置の構成図。
【図３】本発明の一実施例によるナビゲーション装置の主記憶装置のメモリ内容を示すイメージ図。
【図４】自動車２がカーブ２９にさしかかった場面における車両制御イメージ図。
【図５】図４の制御における地図データの内容、現在位置と地図とのマッチング方法、先方曲率の計算方法の一例図。
【図６】本発明の一実施例によるロケータプロセスの処理フロー図。
【図７】本発明の一実施例による簡易ロケータプロセスの処理フロー図。
【図８】本発明の一実施例によるプロセス監視プロセスのメインプログラムの処理フロー図。
【図９】本発明の一実施例による設定時間経過時に実行されるタイマーハンドラの処理フロー図。
【図１０】本発明の一実施例による制御連携プロセスの状態通知処理フロー図。
【図１１】本発明の一実施例による制御連携プロセスの制御連携部処理フロー図。
【図１２】本発明の一実施例によるブレーキコントローラのプログラムの一部である状態管理部分の処理フロー図。
【図１３】本発明の一実施例によるブレーキコントローラのナビゲーション連携制御プログラムの処理フロー図。
【図１４】本発明の他の実施例によるナビゲーション装置の主記憶装置のメモリ内容を示すイメージ図。
【図１５】両ＣＰＵがリセット時に実行する図３中の初期プログラムのアルゴリズム。
【図１６】両プロセス間通信の処理フロー図。
【図１７】図１６のステップ１１１４でＣＰＵ間割込みを発生させたときにＣＰＵ間割込みの信号を受信したＣＰＵが実行するＣＰＵ間割込みハンドラの処理フロー図。
【図１８】図１のブレーキコントローラ２２１のメモリの内容を示した図。
【符号の説明】
【００６４】
２…自動車、１０…ナビゲーション装置、２１０…ＣＡＮ、２２…制御装置、２２１…ブレーキコントローラ、２２２…ステアリングコントローラ、２３…ステアリングアクチュエータ、２４１…ブレーキセンサ、２４２…ステアリングセンサ、２５…ブレーキアクチュエータ、２６…エンジン、１００…主記憶装置、１０１…検索プロセス、１０２…探索プロセス、１０３…誘導プロセス、１０４…ロケータプロセス、１０５…プロセス管理プロセス、１０６…簡易ロケータプロセス、１０６１…地図保管領域、１０７…制御連携プロセス、１０８…ＧＰＳドライバ、１０９…ＡＴＡドライバ、１１０…グラフィックスライブラリ、１１１…プロセス間通信ライブラリ、１１２…プロセス間通信ライブラリ、１１４…ＣＡＮドライバ、１２１，１２２，１２３…ＯＳ、１３０…ＧＰＳ受信機、１３１…ＧＰＳアンテナ、１４０…ディスプレイ、１５１，１５２…ＣＰＵ、１６０…バス、１７０…ジャイロ、１８０…ハードディスク、１９０…ＣＡＮインターフェース。
【図１】
0005028198.tif 000002
【図２】
0005028198.tif 000003
【図３】
0005028198.tif 000004
【図４】
0005028198.tif 000005
【図５】
0005028198.tif 000006
【図６】
0005028198.tif 000007
【図７】
0005028198.tif 000008
【図８】
0005028198.tif 000009
【図９】
0005028198.tif 000010
【図１０】
0005028198.tif 000011
【図１１】
0005028198.tif 000012
【図１２】
0005028198.tif 000013
【図１３】
0005028198.tif 000014
【図１４】
0005028198.tif 000015
【図１５】
0005028198.tif 000016
【図１６】
0005028198.tif 000017
【図１７】
0005028198.tif 000018
【図１８】
0005028198.tif 000019