(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
近年、交通事故は次第に減少傾向にあるとはいえ、車両の衝突を防止することは依然として課題である。交通事故の統計によれば、多くの交通事故は、車両が交差点に進入する際に起こる。そこで交通事故を防止するためには、車両の交差点進入時刻や予測計算などによって衝突予測を行い、車両に対して適切に警告を発することが有効である。これに関して、以下のような従来技術が知られている。
【0003】
特開2004−240506号公報は、車両毎に、携帯基地局を介してインターネット上のサーバーと通信可能な車載装置が搭載され、各車載装置が、自車両の位置を含む位置関連情報をサーバーに送信し、サーバーが、各車載装置から送信された位置関連情報と地図データとに基づき、各車両が他の車両と衝突する可能性があるかどうかを判断し、衝突する可能性がある車両に対して警報情報を送信し、その警報情報を受けた車載装置が、警報情報で知らされた他の車両と衝突する危険度を求め、その危険度に応じて危険回避のための警報及び車両の走行状態の制御を行う安全運転支援システムを開示する。
【0004】
特開2005−234778号公報は、ステアリングセンサ、車速センサ、ウィンカースイッチ、およびナビゲーションシステムからの出力に基づいて、遭遇判定部によって自車両が他車両等と遭遇したか否かを判定し、各地点ごとの遭遇回数がカウントし、所定の地点において、その走行回数とカウントされた遭遇回数に基づいて登録判定部は道路情報データベースへ遭遇状況を登録し、以って警報判定部が、道路情報データベースに登録された地点に自車両が接近した場合に、運転者に対して警告するシステムを開示する。
【0005】
特開2008−165604号公報は、走行中の第1の車両から位置情報及び速度情報を取得する無線通信装置と、第1の車両が走行している第1リンクと関連する第2リンクに関する速度情報を取得するデータ収集部と、複数の地図上の位置と、それぞれの位置の道路特徴とが対応付けて記憶されている個別事故と、事故情報をパターンに分類して記憶した事故パターンと、前記第1の車両の位置情報に基づいて、第1の車両の進行方向の道路特徴を取得し、事故パターンを参照して警告要否を判定し、警告が必要と判定されたときに、前記第1の車両の車載装置に警報を出力させる警告判定部とを備えることにより、周辺の道路状況に基づいて、ドライバーに対して自動車事故予防のための警告を行うシステムを開示する。
【0006】
これらのシステムでも、ある程度有効な自動車事故予防のための警告を行うことが可能であるが、道路上に近接して多数の車両が存在する場合、車両間を飛び交うパケットが多すぎて受信できない可能性がある。さらに、受信できたとしても、一般的に車両の組み込みプロセッサは処理能力が非力であり、関連する車両の全ての組み合わせの衝突予測計算を、衝突前に完了させることが保証できないことがある。
【0007】
そこで、特開2012−203478号公報に記載されたシステムにおいては、組み込みプロセッサ、すなわちCPUがまず、GPS受信部、走行状態検出部により自車走行情報および自車道路情報を取得し、車間通信部を介して他車走行情報および他車道路情報を取得する。次いで、他車両の経路に影響を与える関連情報を取得し、各他車両について、接近可能性の重み付け点数の算出を行う。次いで、各他車両について、重み付け点数が予め定められた閾値以上となったか否かを判定し、閾値以上となった他車両を運転支援対象車両として特定し、閾値未満となった他車両を運転支援対象車両から除外する。これにより、要求される処理能力の低減を図りつつ、運転支援対象とする他車両を的確に特定することを意図する。
【0008】
しかし、特開2012−203478号公報に記載されたシステムにおいても依然として、事故可能性が低い車両間でもパケット送受信及び組み込みプロセッサの関連処理が必要で、結果的に、組み込みプロセッサにかなりの負荷がかかることになる。
【発明の概要】
【発明が解決しようとする課題】
【0010】
従って、この発明の目的は、処理能力が低い組み込みプロセッサをもつ車載システムを備えた車両でも、十分に処理可能な車両衝突防止処理技法を提供することにある。
【課題を解決するための手段】
【0011】
この発明は上記課題を解決するためになされたものであり、事前に事故可能性判定の処理を行うプログラムを生成して、交差点進入時には、そのプログラムを実行するだけで車両で事故の可能性判定処理を行い、この事前処理によって、処理能力の低い組み込みプロセッサでも高速に処理することを可能ならしめるものである。
【0012】
この発明によれば、事前処理として以下のことが行われる。
交差点ごとに主要事故パターンを抽出する。
− 主要事故パターンの各事故要素リストに事故ビットベクトルを設定する。
− 事故ビットベクトルを葉ノード、事故要素を内部ノードとし、各内部ノードで事故要素値による条件分岐する決定木を作成する。
− この決定木から事故可能性判定プログラムを生成し、それをビルドすることで実行ファイルを作成する。
【0013】
以上の事前準備の下、車両は、交差点領域への進入前に、事故可能性判定プログラムを実行し、自車両が事故の構成車両となり得る事故パターンを事故ビットベクトルとして取得する。この際、プログラムの入力に、交差点への進入方向、車両動作、渋滞情報などのパラメータを与えるようにする。車両動作は、交差点進入前にカーナビ経路、ウインカー情報などから決定される。
【0014】
また好適には、事故可能性判定プログラムは、交差点までの距離と車速から交差点到着予測時刻を計算する。
【0015】
事故可能性判定プログラムは、所定の判定条件を満たすときのみ、送信パケット生成及び送信処理と、衝突判定処理を実行指示する。
【0016】
送信パケット生成及び送信処理では、事故可能性判定プログラムの判定に基づき、事故を構成することが予測された車両は、事故ビットベクトル、交差点到着予測時刻に基づく処理優先度を自車両のGPS/ECU情報に付加し、送信する。
【0017】
また、衝突予測計算プログラムは、車両ペアのパケットの事故ビットベクトルの論理積により比較し、一致した車両ペアのみの衝突予測計算を行うように指示する。
【発明の効果】
【0018】
この発明によれば、事故を構成することが予測された車両のみがパケットを送信することで、パケットの数を削減し、受信性の向上が実現される。
【0019】
また、事故ビットベクトルの論理積により比較し、一致した車両ペアのみの衝突予測計算を行い、それ以外はスキップするように指示することで、全体の処理量を削減し、全体性能を向上させることができる。
【0020】
さらに、事故地点までの到達距離が短い車両ペアから優先的に処理することで、危険性の高いパケットが優先的に処理される。
【発明を実施するための形態】
【0022】
以下、図面に従って、本発明の実施例を説明する。これらの実施例は、本発明の好適な態様を説明するためのものであり、発明の範囲をここで示すものに限定する意図はないことを理解されたい。また、以下の図を通して、特に断わらない限り、同一符号は、同一の対象を指すものとする。
【0023】
図1は、本発明の前提として、交差点102を複数の車両104、106、108及び110が走行する様子を示す模式図である。
図1において、参照番号112、114、及び116などで示すように、車両104、106、108及び110は互いにパケットを送り合い、衝突防止のための処理を行う。尚、
図1に示すような車両間の通信を以下では、V2V通信とも呼ぶ。
【0024】
また、サーバ120とパケット通信網122が別途用意され、好適には、車両104、106、108及び110は、参照番号124及び126で示されるように、パケット通信網122を介してパケットを飛ばすことにより、サーバ120と通信するようになされる。
【0025】
図2は、別の交差点202における事故発生の可能性を示す例の平面図である。図示されているように、交差点202には、右折待ち渋滞車両列204と、右折待ち渋滞車両列208が存在し、車両206がレーンBを直進し、車両210がレーンCを直進している。
【0026】
見て取れるように、この状況では、右折待ち渋滞車両列204の先頭車両と車両210が衝突事故の可能性があり、右折待ち渋滞車両列208の先頭車両と車両206が衝突事故の可能性がある。
【0027】
このような衝突事故の可能性を判定するためには、従来技術では多数の車両の間でV2Vでパケットを送受信して衝突可能性を判定する必要があるため、車両に搭載される車載システムの比較的非力なプロセッサの処理能力を超えることがあった。これが、本発明の解決課題である。
【0028】
次に、
図3のブロック図を参照して、この発明で対象とされる車両の車載システムのハードウェアについて説明する。なお、近年の車載システムはCAN、あるいはFlexRayなどの車載LANに接続された複雑で大規模なシステムであるが、ここで示すのは、この発明に関連するその一部のみであることを理解されたい。
【0029】
図3において、バス302には、CPU304と、ランダム・アクセス・メモリ(RAM)306と、不揮発性メモリであるフラッシュ・メモリ(SSD)308が接続されている。
【0030】
RAM306は、CPU304の演算作業領域として使用される。SSD308には、
図4に関して後述する、交差点ID毎の事故可能性判定プログラム404、パケット作成/送信プログラム408、パケット受信プログラム410、衝突予測計算プログラム412、などが保存されている。
【0031】
バス302にはさらに、カーナビゲーション・システム310、センサ群314からデータを入力するためのセンサ・インターフェース312、及びパケットを送受信するための通信装置316が接続されている。
【0032】
次に
図4のブロック図を参照して、この発明に係る機能構成について説明する。
図4において、プログラム選択ルーチン402は、カーナビゲーション・システム310が指し示す場所の交差点IDに関連して、予め用意された、交差点ID毎の事故可能性判定プログラム404から、該当する事故可能性判定プログラムを読み出して、好適にはRAM306に、事故可能性判定プログラム406としてロードする。なお、交差点ID毎の事故可能性判定プログラム404を用意する方法については、
図5のフローチャートを参照して後で説明する。
【0033】
事故可能性判定プログラム406は、カーナビゲーション・システム310及びセンサ・インターフェース312から様々なセンサのデータを入力し、それらの値に基づく判定に従い、所定の優先度でパケット作成/送信プログラム408により、パケットを作成し、通信モジュール316の動作により、パケットを送信する。事故可能性判定プログラム406が特にカーナビゲーション・システム310及びセンサ・インターフェース312の入力から利用するのは、交差点への進入方向、渋滞情報、カーナビゲーション経路、ウインカー情報などである。事故可能性判定プログラム406の処理は、
図12のフローチャートを参照して後で説明する。
【0034】
パケット受信プログラム410によって交差点付近の他の車両から受け取られたパケットのデータに基づき、衝突予測計算プログラム412は、その当該の車両との間で衝突解析計算を行う。衝突予測計算プログラム412は例えば、特開2011−204124号公報あるいは特開2010−095078号公報に記載されているような技術を用いるものであるが、この発明の主題にとって本質的なものではないので、説明を省略する。パケット受信プログラム412の処理は、
図13あるいは
図15のフローチャートを参照して後で説明する。
【0035】
衝突回避システム414は例えば、エンジンに制動をかけて減速させたり、ブレーキを作動させたり、ディスプレイ上に警告メッセージを出したり、パワーステアリングを制御したり、警告音を発生するなどの動作を行うものであり、例えば、特開平11−29060号公報、特開平11−353565号公報、特開2000−43741号公報、特開2000−67396号公報に記載されている技術等を利用するものであるが、この発明の主題にとって本質的なものではないので、説明を省略する。
【0036】
次に、
図5のフローチャートを参照して、交差点ID毎の事故可能性判定プログラム404を用意する処理について説明する。この処理は好適には、交通事故情報から事前に作成される交差点ごとの事故パターンを利用し、プログラムによる自動生成がなされる。
【0037】
ステップ502では、一定地域の事故パターンデータを取得する。このときの一定地域は、複数の交差点を含む市町村など事前に決めておく。
【0038】
ステップ504では、事故発生確率が高い事故パターン(主要事故パターン)を抽出する。このとき、事故発生確率などの閾値は事前に決めておく。
【0039】
ステップ506では、交差点ごとに、抽出された主要事故パターン数をカウントし、ベクトル長を決定する。パターン数=ベクトル長である。
【0040】
ステップ508では、
図6に示すように、各ビットが1つの主要事故パターンに1対1対応する事故ビットベクトルを各事故要素リストに設定する。
【0041】
ステップ510では、
図6に示す表において、事故要素リストが一致するものを探索し、一致するものは、事故ビットベクトルの論理和により結合する。その結果、
図7に示すような表の内容となる。
【0042】
ステップ512では、
図7に示す表から事故ビットベクトルを葉ノード、事故要素を内部ノードとし、各内部ノードで事故要素値により条件分岐する決定木を作成する。
【0043】
ステップ514では、コンピュータ・システム上で、決定木にID3アルゴリズムを適用し、条件分岐が少ない木を作成する。そのようにして作成された決定木の一例を
図8に示す。なお、ID3アルゴリズムは周知であり、http://en.wikipedia.org/wiki/ID3_algorithmなどを参照されたい。
【0044】
ステップ516では、条件分岐をswitch文で行うプログラムコードを生成・ビルドし、実行ファイルを作成する。このようにして生成されるswitch文の例は以下のとおりである。
SetBitVec(0000); //initialization
switch (D) {
case Y:
switch (A) {
case Y:
ThirdStage1();
case N:
ThirdStage2();
}
case N:
switch (B) {
case Y:
ThirdStage3();
case N:
ThirdStage4();
}
}
ThirdStage1() {
switch (B) {
case Y:
switch (C) {
case Y:
exit (0); // No
case N:
SetBitVec(0100);
}
case N:
switch (C) {
case Y:
SetBitVec(0001);
case N:
exit (0); // No
}
}
}
ThirdStage2() {
switch (B) {
case Y:
switch (C) {
case Y:
SetBItVec(0011);
case N:
exit(0); // No
}
case N:
exit(0); // No
}
}
ThirdStage3(){
switch (A) {
case Y:
switch (C) {
case Y:
exit(0); // No
case N:
SetBitVec(1100);
}
case N:
exit(0); // No
}
}
ThirdStage4() {
switch(A) {
case Y:
switch (C) {
case Y:
exit(0); // No
case N:
SetBitVec(0100);
}
case N:
switch (C) {
case Y:
SetBitVec(1010);
case N:
exit(0); // No
}
}
}
【0045】
ステップ504〜ステップ516を異なる地域の過去の事故パターンに適用することで、交差点ID毎の事故可能性判定プログラム404を作成する。
【0046】
図9は、事故要素取得方法をより具体的に説明するための表を示す図である。これは、
図10に示すような車両の状況を想定している。
【0047】
図9における事故要素は次のようにして取得する。
− 進入方向
地図情報と車両位置情報から取得する。
− 車両動作
カーナビゲーション・システム進路情報やウィンカー情報を利用する。
− 車速
ECUの車速センサー情報より取得する。
− 渋滞
カーナビゲーション・システムが利用している渋滞情報を利用する。
カーナビゲーション・システムはVICS (Vehicle Information and Communication System)や独自システムで渋滞情報を受信している。
− 渋滞の先頭
渋滞の先頭にいるかの判定は、前方確認用のカメラ画像情報やミリ波センサーを利用して行う。センサー情報から前方に車両がいないことが判明した場合、渋滞の先頭にいると判定する。
通常渋滞内部にいる場合は動作不可能であるため事故の可能性がないが、右折待ち渋滞の先頭にいる場合は右折動作可能となるなど、渋滞の先頭を分けて扱うために利用する。
【0048】
図11は、
図10に示す車両B及び車両Cの主要事故可能性判定プログラムの実行例を示す図である。この図において、最下段で、条件に応じて、0100、0001などの事故ビットベクトルが与えられ、あるいは、条件により、事故ビットベクトルは与えられないことになる。
【0049】
次に
図12のフローチャートを参照して、
図4の機能ブロックで示す、本発明に係るシステムが、事故可能性判定を行い、その結果に基づきパケットを送信する処理について説明する。
【0050】
図12のステップ1202において、システムは、カーナビゲーション・システム310から、現在の自車両の位置を取得し、それに基づき、カーナビゲーション・システム310が指し示す地域の交差点IDを取得する。
【0051】
ステップ1204で、システムは、プログラム選択ルーチン402により、ステップ1202で取得した交差点IDに関連して、交差点ID毎の事故可能性判定プログラム404から、該当する事故可能性判定プログラムを読み出して、好適にはRAM306に、事故可能性判定プログラム406としてロードする。
【0052】
ステップ1206で、システムは、車両位置、速度などの事故要素を、カーナビゲーション・システム310やセンサ群314から取得する。
【0053】
ステップ1208で、システムは、交差点情報、車両位置情報、速度情報から、次に向かう交差点の交差点IDを取得し、ステップ1210で、事故要素リストの各値、あるいは交差点IDが更新されたかどうかを判断する。そうでないなら処理は、ステップ1206に戻る。
【0054】
ステップ1210で、システムが、事故要素リストの各値、あるいは交差点IDが更新されたと判断すると、システムは、ステップ1212で事故可能性判定プログラム406を実行し、得られた事故ビットベクトルを、例えばRAM306に保存する。
【0055】
ステップ1214で、システムは、事故ビットベクトルにビットが立っているかどうか判断する。ここで
図11の例を参照すると、事故ビットベクトルにビットが立っているとは、そのビット列に1つでも1が含まれているということである。
【0056】
事故ビットベクトルがすべて0なら、処理はステップ1206に戻る。事故ビットベクトルにビットが立っているなら、システムはステップ1216で、車両の現在位置と交差点までの距離から、交差点到達予測時刻を計算し、交差点到達予測時刻に応じた処理優先度を取得する。
【0057】
次にシステムは、ステップ1218で、パケット作成/送信プログラム408を呼び出して、車両位置情報、ECU情報に、交差点IDと事故ビットベクトル、交差点到達予測時刻、処理優先度を付加したパケットを作成し、ステップ1220で、通信モジュール316によりパケットを送信する。
【0058】
次に、
図4のパケット受信プログラム410の処理について、
図13及び
図15のフローチャートを参照して説明する。
【0059】
図13及び
図15の処理はそれぞれ、異なる実施例に対応するものであり、
図13はV2Vによる処理、
図15の処理はサーバ120を用いた処理である。
【0060】
先ず、V2Vによる処理の場合から説明すると、
図13のステップ1302では、パケット受信プログラム410は、自車両の事故ビットベクトルが立っているかどうか判断し、そうでないなら、ステップ1302で待機し続ける。
【0061】
自車両の事故ビットベクトルが立っていると、パケット受信プログラム410は、ステップ1304で、受信パケットを処理優先度ごとのキューに保存し、以下のステップ1306からステップ1312までの処理を、優先度が高いものの順に処理する。
【0062】
ステップ1306では、パケット受信プログラム410は、受信パケットと自車両の交差点IDが一致しているかどうか判断し、そうでないならステップ1304に戻る。
【0063】
受信パケットと自車両の交差点IDが一致しているなら、パケット受信プログラム410は、ステップ1308で、車両毎に事故ビットベクトルと交差点到着予測時刻を自車両上に保存、あるいはデータを更新する。そのデータは例えば、
図14に示すようなものである。
【0064】
次のステップ1310で、パケット受信プログラム410は、自車両の事故ビットベクトルと、保存されている事故ビットベクトルの論理積を計算する。例えば、自車両の事故ビットベクトルが100のとき、
図14における車両ID3の事故ビットベクトル101との論理的がTrueとなる(100 & 101 = 100)。そして、ステップ1312の判断で、それがゼロならステップ1304に戻り、それがゼロでないなら、ステップ1314で、衝突予測計算プログラム412により、論理積がゼロでない車両との衝突解析計算を開始する。
【0065】
衝突解析計算例として、例えば、車両位置情報、車速情報を相互に通信し合い(例えば、100msecごとに)、位置情報と車速情報から交差点進入時刻を計算し、同時刻の場合は衝突の危険性があると判定され、音声やディスプレイ、シートベルト巻上げなどでドライバーに警告情報を提示する。減速させるなど直接的に直接車両を制御するようにしてもよい。
【0066】
次に、サーバ120を用いた処理の場合を説明すると、
図15のステップ1502では、パケット受信プログラム410は、受信パケットを処理優先度ごとのキューに保存し、以下のステップ1504からステップ1514までの処理を、優先度が高いものの順に処理する。
【0067】
ステップ1504で、パケット受信プログラム410は、受信パケットの交差点IDが、サーバ上データに存在するかどうか検索する。サーバ上データとは、参照番号1508のように、交差点IDと、車両IDと、事故ビットベクトルと、交差点到達時刻からなるデータのテーブルである。このデータは好適には、サーバ120の主記憶(図示しない)に配置される。
【0068】
ステップ1506で、パケット受信プログラム410は、受信パケットの事故ビットベクトルを、サーバ120上に車両ID、交差点IDとともに保存する。
【0069】
ステップ1510で、パケット受信プログラム410は、ステップ1504の検索で一致する交差点IDのデータが存在するかどうか判断し、そうでないなら、ステップ1502に戻る。
【0070】
ステップ1504の検索で一致する交差点IDのデータが存在するなら、ステップ1512で、パケット受信プログラム410は、一致する交差点IDをもつ全てのデータに対して、受信パケットIDの事故ビットベクトルと、サーバ上の事故ビットベクトルとの論理積を計算する。
【0071】
ステップ1514の判断で、パケット受信プログラム410は、それがゼロならステップ1502に戻り、それがゼロでないなら、ステップ1516で、衝突予測計算プログラム412により、論理積がゼロでない車両との衝突解析計算を開始する。
【0072】
なお、
図11などに示す事故ビットベクトルは、3ビットと短いものであるが、これは説明の例示としてそのような例を示しているだけで、実際はより一般に、数10ビット以上など、もっと長いビット列になることに留意されたい。
【0073】
以上、特定の実施例に従い本発明を説明してきたが、この発明は示されている特定の実施例に限定されず、任意の車種、任意の車載システムのハードウェア及びソフトウェアで実施可能であることを当業者は理解するであろう。