(57)【要約】【課題】車両の走行に関する規範に対して違反が発生したことを判定する違反走行判定装置において、規範の変更に違反走行判定装置が従来よりも柔軟に対応できるようにする。【解決手段】適合判定部１５は、規範に対する違反の種別を示す違反種別と、違反種別に対応する違反が成立する要件と、要件の各々が成立する場合の車両の走行状態を規定する要件成立事例と、を含むレコードを保持している規範データベース１２から、当該レコードを取得する。そして適合判定部１５は、走行データベース１４から車両の走行状態を取得する。そして適合判定部１５は取得した走行状態を要件に適用した結果を、要件成立事例と比較することで、要件の各々が成立したか否かを判定し、その判定結果に基づいて、違反種別に対応する違反が成立するか否かを判定する【選択図】図１
2017045327.tif 000002
【特許請求の範囲】
【請求項１】
規範に対する違反の種別を示す違反種別（ｔｅｉｓｈｉ＿ｉｈａｎ）と、前記違反種別に対応する違反が成立するＮ個の要件（ｓｉｇｎ、ｎｏｓｔｏｐ）と、前記Ｎ個の要件の各々が成立する場合の車両の走行状態を規定するＭ個の要件成立事例（ｉｃｈｉｊｉ、ｆｕｍｉｋｉｒｉ、２、３、…２５５）と、を含むレコードを保持している規範データベース（１２）から、前記レコードを取得する規範取得手段（５１０）と、
車両に搭載されたセンサ（２）の検出結果に基づいて得られた車両のＬ種類の走行状態を保持している走行データベース（１４）から、前記Ｌ種類の走行状態を取得する走行状態取得手段（１５ａ）と、
前記走行状態取得手段が取得した前記Ｌ種類の走行状態の各々を前記Ｎ個の要件のうち対応する要件に適用した結果を、前記Ｍ個の要件成立事例のうち対応する要件成立事例と比較することで、前記Ｎ個の要件の各々が成立したか否かを判定し、その判定結果に基づいて、前記レコードに含まれる前記違反種別に対応する違反が成立するか否かを判定する判定手段（５３０〜５６０）と、を備え、
Ｎは１または２以上の整数であり、Ｍは１または２以上の整数であり、Ｌは１または２以上の整数である違反走行判定装置。
【請求項２】
走行記述手段（１３）を備え、
Ｌは２以上であり、
前記走行記述手段は、前記センサの検出結果に基づいて、前記Ｌ種類の走行状態を特定し、特定したＬ種類の走行状態の各々に、予め定められた変数名（Ｖ、Ｘ、Ｙ）を対応付けて前記走行データベースに登録し、
前記レコードは、前記違反種別に関連するＬ個の変数名が、前記Ｎ個の要件のどれに対応する変数であるかを示す変数対応情報を含み、
前記走行状態取得手段は、前記走行データベースに保持されている前記レコードから、前記Ｌ個の変数名および前記Ｌ個の変数名にそれぞれ対応する前記Ｌ種類の走行状態を取得し、
前記判定手段は、前記変数対応情報中のＬ個の変数名と前記走行状態取得手段が取得したＬ個の変数名との対応関係に基づいて、前記Ｌ種類の走行状態の各々を前記Ｎ個の要件のうち対応する要件に適用し、適用後の前記Ｎ個の要件を前記Ｍ個の要件成立事例のうち対応する要件成立事例と比較することで、前記Ｎ個の要件の各々が成立したか否かを判定し、その判定結果に基づいて、前記レコードに含まれる前記違反種別に対応する違反が成立するか否かを判定することを特徴とする請求項１に記載の違反走行判定装置。
【請求項３】
前記規範データベースは、ｐｒｏｌｏｇで記述されたソースコードを含み、前記ソースコードが、前記レコードの情報を含んでいることを特徴とする請求項１または２に記載の違反走行判定装置。
【請求項４】
前記判定手段は、前記ソースコードを読み出して実行するｐｒｏｌｏｇの処理系として機能することを特徴とする請求項３に記載の違反走行判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、違反走行判定装置に関するものである。
【背景技術】
【０００２】
従来、車両の走行に関する規範（例えば、制限速度遵守）に対して違反が発生したことを判定する違反走行判定装置が、種々知られている。例えば、特許文献１では、車両の後進距離が所定距離を超えたことに基づいて、車両を自動停止させる技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−１３１８６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
発明者の検討によれば、特許文献１のような技術では、車両のどのような走行状態がどのようになったときに規範に対する違反と判定するのかについては、違反走行判定装置の処理アルゴリズムの一部として、あらかじめ規定されることが想定される。
【０００５】
発明者の検討によれば、このような方法では、規範の変更に違反走行判定装置が柔軟に対応することが困難である。なぜなら、規範が変更すると、違反走行判定装置の処理アルゴリズムを設計し直さなければならないからである。処理アルゴリズムを書き換えるためには、判定内容の変更、判定結果の分岐先の変更等の複雑な作業が必要になる。
【０００６】
本発明は上記点に鑑み、車両の走行に関する規範に対して違反が発生したことを判定する違反走行判定装置において、規範の変更に違反走行判定装置が従来よりも柔軟に対応できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するための請求項１に記載の発明は、規範に対する違反の種別を示す違反種別（ｓｐｅｅｄ＿ｉｈａｎ、ｔｅｉｓｈｉ＿ｉｈａｎ）と、前記違反種別に対応する違反が成立するＮ個の要件（ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ、ｓｉｇｎ、ｎｏｓｔｏｐ）と、前記Ｎ個の要件の各々が成立する場合の車両の走行状態を規定するＭ個の要件成立事例（６１、６２、…２５５、ｉｃｈｉｊｉ、ｆｕｍｉｋｉｒｉ、１、２、…２５５）と、を含むレコードを保持している規範データベース（１２）から、前記レコードを取得する規範取得手段（５１０）と、車両に搭載されたセンサ（２）の検出結果に基づいて得られた車両のＬ種類の走行状態を保持している走行データベース（１４）から、前記Ｌ種類の走行状態を取得する走行状態取得手段（１５ａ）と、前記走行状態取得手段が取得した前記Ｌ種類の走行状態の各々を前記Ｎ個の要件のうち対応する要件に適用した結果を、前記Ｍ個の要件成立事例のうち対応する要件成立事例と比較することで、前記Ｎ個の要件の各々が成立したか否かを判定し、その判定結果に基づいて、前記レコードに含まれる前記違反種別に対応する違反が成立するか否かを判定する判定手段（５３０〜５６０）と、を備え、Ｎは１または２以上の整数であり、Ｍは１または２以上の整数であり、Ｌは１または２以上の整数である違反走行判定装置である。
【０００８】
このように、規範取得手段が違反種別および当該違反種別に対応するＮ個の要件、Ｍ個の要件成立事例のレコードを規範データベースから取得する。そして判定手段が、当該レコードに対して車両走行状態を適用することで、違反が成立するか否かを判定する。このようになっていれば、規範が変更されても、規範データベースの違反種別、要件、要件成立事例のうち１つまたは複数を書き換えるだけで済む。したがって、違反走行判定装置は規範の変更に対して従来よりも柔軟に対応できる。
【０００９】
なお、上記および特許請求の範囲における括弧内の符号は、特許請求の範囲に記載された用語と後述の実施形態に記載される当該用語を例示する具体物等との対応関係を示すものである。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る車載システムの構成図である。
【図２】規範データベースのデータ構成図である。
【図３】規範内の各部の名称を示す図である。
【図４】走行記述部が実行するＶ登録処理のフローチャートである。
【図５】走行記述部が実行するＸ登録処理のフローチャートである。
【図６】走行記述部が実行するＹ登録処理のフローチャートである。
【図７】走行データベースのデータ構成を示す図である。
【図８】質問部が実行する処理のフローチャートである。
【図９】質問の形式を示す図である。
【図１０】質問部が実行する処理のフローチャートである。
【発明を実施するための形態】
【００１１】
以下、実施形態について説明する。本実施形態に係る車載システムは、車両に搭載され、図１に示すように、自動運転制御装置１、センサ群２、アクチュエータ群３を有している。
【００１２】
自動運転制御装置１は、運転者の運転操作が無くても車両を目的地まで走行させる自動運転を実現するための制御装置である。
【００１３】
センサ群２は、自動運転を実現するために必要なセンサを複数有する。センサ群２が含むセンサとしては、例えば、車速センサ、加速度センサ、ＧＰＳ受信機、車載カメラ、距離センサ等がある。車載カメラは、自車両の前方の道路等を撮影する。距離センサは、自車両と自車両前方の先行車両との車間距離を計測する。距離センサとしては、例えばレーダーセンサ、ソナーセンサ等がある。
【００１４】
アクチュエータ群３は、車両の操舵、駆動、制動のそれぞれを実現するためのアクチュエータである。例えば、操舵を実現するためのアクチュエータは、ステアリングハンドルの操舵角を変化させるモータであり、駆動を実現するためのアクチュエータは、アクセル開度を変化させるモータであり、制動を実現するためのアクチュエータは、ブレーキ液圧を変化させるポンプを駆動するモータである。
【００１５】
以下、自動運転制御装置１について詳細に説明する。自動運転制御装置１は、車両制御部１１、規範データベース１２、走行記述部１３、走行データベース１４、適合判定部１５を有している。
【００１６】
車両制御部１１は、車両の運転モードが自動運転モードのときに車両を走行させるための制御装置であり、例えば、ＣＰＵ、ＲＡＭ、ＲＯＭ、フラッシュメモリ等を備えて実現される。フラッシュメモリには、道路地図データが記録されている。道路地図データは、道路の位置、形状、接続関係等の情報を含んでいる。更に道路地図データは、複数の注意対象物の位置情報を有している。注意対象物は、各種道路上または道路付近に設けられており、例えば、一時停止標識、信号機、踏切、横断歩道、交通標識、ＥＴＣ入場ゲート等が該当する。
【００１７】
運転モードとしては、自動運転モード、手動運転モードの２つがあり、例えば、図示しない操作部に対して車両の乗員が所定の切り替え操作を行うことで、自動運転モードと手動運転モードとが相互に切り替わる。
【００１８】
自動運転モードは、車両の乗員の運転操作によらずに、車両制御部１１が車両を自動運転する運転モードである。手動運転モードは、車両の乗員の運転操作（ステアリングハンドルの操作、アクセルペダルの操作、ブレーキペダルの操作等）により車両が運転される運転モードである。手動運転モードにおいては、車両制御部１１はアクチュエータ群３を駆動しない。
【００１９】
自動運転モードの間は、車両制御部１１は、自動運転を実現するための制御を行う。具体的には、車両制御部１１は、以下（ａ）〜（ｅ）のような作動を行う。
（ａ）センサ群２のＧＰＳ受信機、加速度センサ、車速センサ等からの検出信号に基づいて、車両の現在位置および走行速度ベクトルを特定する。
（ｂ）道路地図データに基づいて、目的地までの最適な予定ルートを算出する。
（ｃ）センサ群２の距離センサからの検出信号に基づいて、自車両を基準とする先行車両（または障害物）までの距離および先行車両（または障害物）の相対速度を検出する。
（ｄ）車載カメラの撮影画像に基づいて、自車両前方の道路上の白線の位置を検知する。
（ｅ）上記（ａ）〜（ｄ）で検出した結果に基づいて、自車両が上記予定ルート上の道路に沿って、前方車両および障害物にぶつからないよう、かつ、右左折時等の必要時以外は白線を横切らないよう、アクチュエータ群３を制御して、両の駆動、制動、操舵を自動的に行う。
【００２０】
また、車両制御部１１は、後述するように、自動運転モードの間に、適合判定部１５から違反発生の通知を受けた場合は、上記（ｅ）よりも優先して、その通知に応じた制御をアクチュエータ群３に対して行う。
【００２１】
規範データベース１２は、規範毎に、規範に対する違反の成立条件が記述されたデータを保持する記憶媒体（例えば、フラッシュメモリ等の不揮発性記憶媒体）を有している。規範は、車両が走行する際に守るべき事項である。この規範は、法律（例えば道路交通法）、判例、企業が独自に設定した独自基準等に基づいて決められる。車両が走行する際に守るべき事項としては、法定最高速度の遵守、特定の場所における停止義務等を含む道路交通法によって規定された事項がある。
【００２２】
図２に、規範データベース１２の記憶媒体が保持する上記データの構成を示す。規範データベース１２は、複数のレコードを含み、各レコードは、１つの規範に対する違反成立条件と、１つのチェック番号を含んでいる。チェック番号は、違反の種類毎に異なる値が割り当てられている。
【００２３】
例えば、チェック番号０００１、０００２、０００３は、それぞれ、スピード違反、加速違反（すなわち急加速）、停止義務違反に対応する。各レコード中の違反成立条件は、法律、判例、企業が独自に設定した独自基準等に基づいて、人が作成してもよいし、コンピュータが自動的に作成してもよい。
【００２４】
規範データベース１２中の違反成立条件の各々は、例えばｐｒｏｌｏｇなどの論理プログラムによって記述されている。したがって、規範データベース１２中の違反成立条件の各々は、一階述語論理のサブセットの論理式（すなわち、論理記述）である。各違反成立条件は、１つの節と、Ｍ個の要件成立事例を含む。ｐｒｏｌｏｇの用語では、節は「条件」とも呼ばれ、要件成立事例は「事実」と呼ばれる。Ｍは１または２以上の整数である。
【００２５】
例えば、チェック番号０００１（スピード違反）の違反成立条件は、図２のｓｐｅｅｄ＿から始まる行に相当する１つの節を含み、更に、残りの各行に相当する要件成立事例を１９５個（Ｍ個の一例に相当する）含む。
【００２６】
また例えば、チェック番号０００３（停止義務違反）の違反成立条件は、図２のｔｅｉｓｈｉ＿から始まる行に相当する１つの節を含み、更に、残りの各行に相当する要件成立事例を２５６個（Ｍ個の一例に相当する）含む。
【００２７】
また、図３に例示するように、１つの節は、違反種別と、当該違反種別に関連するＬ個の変数名と、２項演算子：−と、Ｎ個の要件とが、この順に左から右に記述されている。Ｎは１または２以上の整数であり、Ｌは１または２以上の整数である。
【００２８】
違反種別は、規範に対する違反の種別を示すものであり、図３の例では、違反種別はｔｅｉｓｈｉ＿ｉｈａｎという文字列によって表される。また、図３の例では、当該違反種別に関連する変数名はＸとＹという２つ（Ｌ個の一例に相当する）であることが表されている。
【００２９】
また、ｐｒｏｌｏｇの用語では、２項演算子「：−」よりも左の部分および右の部分が、それぞれ、頭部および本体部と呼ばれる。また、要件は、同じ節中の違反種別に対応する違反（すなわち停止義務違反）が成立する要件を表している。図３の例では、ｓｉｇｎ（Ｘ）とｎｏｓｔｏｐ（Ｙ）という２つ（Ｎ個の一例に相当する）の要件が表されている。
【００３０】
したがって、図３中の節で示すのは、次のことである。ｔｅｉｓｈｉ＿ｉｈａｎという違反種別に対応する違反は、ｓｉｇｎ（Ｘ）という要件およびｎｏｓｔｏｐ（Ｙ）という要件が満たされた場合に成立する。
【００３１】
また、図２でチェック番号０００１と同じレコード中に記録された節が示すのは、次のことである。ｓｐｅｅｄ＿ｉｈａｎという違反種別に対応する違反は、ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（Ｖ）という要件が満たされた場合に成立する。
【００３２】
また、節の各々は、変数対応情報を含む。ある節の変数対応情報は、その節中の違反種別と２項演算子：−の間に挟まれた部分（図３中の（Ｘ、Ｙ））の変数名の並び、および、その節中の各要件の後尾に記載された変数名（図３中の（Ｘ）および（Ｙ））の並びを、含む。
【００３３】
ある節の変数対応情報は、その節中で示された違反種別に関連するＬ個の変数名が、その節中に表されたＮ個の要件のどれに対応し、かつ何番目に対応する変数であるかを示す。例えば、図３の例では、変数名Ｘは、要件ｓｉｇｎ（Ｘ）に、１番目に、対応する変数であることを示し、変数名Ｙは、要件ｎｏｓｔｏｐ（Ｙ）に、１番目に、対応する変数であることを示している。
【００３４】
要件成立事例の各々は、同じレコード中のＮ個の要件のいずれかが成立する場合の車両の走行状態を規定するデータである。あるレコード中のＮ個の要件のいずれに対しても、当該要件が成立する場合の車両の走行状態を規定する要件成立事例が、同じレコードに含まれている。
【００３５】
例えば、図２のチェック番号０００１（スピード違反）と同じレコード中のｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（６１）という要件成立事例は、要件ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（Ｖ）の変数Ｖが６１になるような車両の走行状態が実現した場合に、要件ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（Ｖ）が成立することを規定している。変数Ｖの６１という値は、後述するように、車速が６０ｋｍ／ｈより大きくかつ６１ｋｍ／ｈ以下であることを示す値である。
【００３６】
図２のチェック番号０００１と同じレコード中には、ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（Ｖ）の変数Ｖを６１から２５５まで１ずつ変化させた計１９５個の要件成立事例が含まれている。つまり、事実上、車速が６０ｋｍ／ｈより大きい場合は、要件ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（Ｖ）が成立するよう規定されている。
【００３７】
また、当該レコード中のｓｉｇｎ（ｉｃｈｉｊｉ）という要件成立事例は、要件ｓｉｇｎ（Ｘ）の変数Ｘがｉｃｈｉｊｉになるような車両の走行状態が実現した場合に、要件ｓｉｇｎ（Ｘ）が成立することを規定している。変数Ｘのｉｃｈｉｊｉという値は、後述するように、車両が一時停止標識を通り過ぎた直後のタイミングであることを示す値である。
【００３８】
また、当該レコード中のｓｉｇｎ（ｆｕｍｉｋｉｒｉ）という要件成立事例は、要件ｓｉｇｎ（Ｘ）の変数Ｘがｆｕｍｉｋｉｒｉになるような車両の走行状態が実現した場合に、要件ｓｉｇｎ（Ｘ）が成立することを規定している。変数Ｘのｆｕｍｉｋｉｒｉという値は、後述するように、車両が踏切を通り過ぎた直後のタイミングであることを示す値である。
【００３９】
当該レコード中のｎｏｓｔｏｐ（２）という要件成立事例は、要件ｎｏｓｔｏｐ（Ｙ）の変数Ｖが２になるような車両の走行状態が実現した場合に、要件ｎｏｓｔｏｐ（Ｙ）が成立することを規定している。変数Ｙの２という値は、後述するように、過去所定距離（例えば２０メートル）走行分の期間の最低車速が１ｋｍ／ｈより大きくかつ２ｋｍ／ｈ以下であることを示す値である。
【００４０】
また、当該レコード中には、ｎｏｓｔｏｐ（Ｙ）の変数Ｙを２から２５５まで１ずつ変化させた計２５４個の要件成立事例が含まれている。つまり、事実上、過去２０メートル走行分の期間の最低車速が１ｋｍ／ｈより大きい場合は、要件ｎｏｓｔｏｐ（Ｙ）が成立するよう規定されている。
【００４１】
次に、走行記述部１３について説明する。走行記述部１３は、センサ群２の検出結果に基づいて、複数種類の走行状態を特定する。そして走行記述部１３は、特定された複数種類の走行状態の各々に、予め定められた変数名を対応付ける。そして走行記述部１３は、対応付けられた走行状態と変数名の複数組を、走行データベース１４に登録する。走行データベース１４は、記憶媒体（例えば、フラッシュメモリ等の不揮発性記憶媒体）を有している。
【００４２】
走行記述部１３は、上記のような作動を実現するため、例えば、ＣＰＵ、ＲＡＭ、ＲＯＭ、フラッシュメモリ等の記憶媒体を備えている。そしてこのＣＰＵは、ＲＯＭまたはフラッシュメモリに記録されている所定のプログラムを実行することで、図４、図５、図６に示す処理等を、マルチタスクで同時並行的に実行する。以下、このＣＰＵが実行する処理を、走行記述部１３が実行する処理として説明する。
【００４３】
まず、図４の処理について説明する。この処理により、走行記述部１３はステップ１１０〜１３０を繰り返す。これにより走行記述部１３は、車速とその変数名Ｖの組を走行データベース１４に繰り返し定期的に登録する。
【００４４】
まず走行記述部１３は、ステップ１１０で、所定時間（例えば１００ミリ秒、２５０ミリ秒等）待機する。続いてステップ１２０では、センサ群２のうち車速センサの検出信号（すなわち車速パルス信号）に基づいて車両の現在の車速を取得する。
【００４５】
続いてステップ１３０では、直前のステップ１３０にて取得済みの車速を、ｋｍ／ｈの単位で小数点以下を切り上げる。これによって、直前のステップ１３０にて取得済みの車速がｋｍ／ｈの単位の整数値に丸められる。
【００４６】
ステップ１３０では更に、丸め済みの車速に、あらかじめ固定的に定められた変数名Ｖを対応付け、更に、図７に例示するように、これら変数名Ｖと丸め済みの車速（変数値に相当する）を１つのレコードとして走行データベース１４の記憶媒体に登録する。このとき、既に同じ変数名Ｖのレコードが走行データベース１４の記憶媒体に登録されていれば、当該レコードを当該記憶媒体から削除する。つまり、同じ変数名を含むレコードについては、最新のレコードのみ残す。ステップ１３０の後、ステップ１１０に戻る。
【００４７】
次に、図５の処理について説明する。この処理により、走行記述部１３はステップ２１０〜２４０（または２５０）を繰り返す。これにより走行記述部１３は、車両が直前に通過済みの注意対象物の名称とその変数名Ｘの組を走行データベース１４に繰り返し定期的に登録する。
【００４８】
まず走行記述部１３は、ステップ２１０で、図４のステップ１１０と同じ所定時間待機する。続いてステップ２２０では、センサ群２のうち車載カメラの検出信号（すなわち、撮影画像の映像信号）に基づいて、周知の画像認識処理により、撮影画像中にある車両前方の注意対象物を、検出する。既に説明した通り、検出できる注意対象物は、信号機、踏切、横断歩道、交通標識、ＥＴＣ入場ゲート等である。また、交通標識については、より細かく、一時停止標識、一方通行標識、制限速度標識、駐車禁止標識等の交通標識種別を区別して検出できる。
【００４９】
ステップ２２０では更に、今回のステップ２２０で検出した注意対象物と、今回よりも１回前のステップ２２０で検出した注意対象物とを比較し、１回前に検出したが今回検出しなかった注意対象物を、直前に通過済みの注意対象物として特定する。
【００５０】
続いてステップ２３０では、直前のステップ２２０の特定結果に基づいて、直前に通過済みの注意対象物を特定できたか否か判定する。特定できた場合は、ステップ２４０に進む。特定できなかった場合は、ステップ２５０に進む。
【００５１】
ステップ２４０では、直前のステップ２２０で特定した注意対象物の名称に、あらかじめ固定的に定められた変数名Ｘを対応付ける。注意対象物の名称は、例えば信号機、踏切、横断歩道、ＥＴＣ入場ゲートならば、それぞれ、ｓｉｎｇｏｕｋｉ、ｆｕｍｉｋｉｒｉ、ｏｕｄａｎｈｏｄｏｕ、ｅｔｃ＿ｉｎとなる。また例えば、一時停止標識、一方通行標識、制限速度標識、または駐車禁止標識ならば、それぞれ名称は、ｉｃｈｉｊｉ、ｏｎｅ＿ｗａｙ、ｓｅｉｇｅｎｓｏｋｕｄｏ、ｃｈｕｕｓｈａｋｉｎｓｉとなる。
【００５２】
ステップ２４０では更に、図７に例示するように、これら変数名Ｘと注意対象物の名称（変数値に相当する）を１つのレコードとして走行データベース１４の記憶媒体に登録する。このとき、既に同じ変数名Ｘのレコードが走行データベース１４の記憶媒体に登録されていれば、当該レコードを当該記憶媒体から削除する。つまり、同じ変数名を含むレコードについては、最新のレコードのみ残す。ステップ２４０の後、ステップ２１０に戻る。
【００５３】
ステップ２５０に進む場合は、直前に注意対象物を通過していない。したがって、ステップ２５０では、注意対象物を通過していないことを示す名称ｎｏｎｅに、あらかじめ固定的に定められた変数名Ｘを対応付ける。
【００５４】
ステップ２５０では更に、これら変数名Ｘと名称ｎｏｎｅを１つのレコードとして走行データベース１４の記憶媒体に登録する。このとき、既に同じ変数名Ｘのレコードが走行データベース１４の記憶媒体に登録されていれば、当該レコードを当該記憶媒体から削除する。ステップ２５０の後、ステップ２１０に戻る。
【００５５】
次に、図６の処理について説明する。走行記述部１３は、この処理においてステップ３１０〜３６０を繰り返す。これにより走行記述部１３は車両の過去所定距離（例えば２０メートル）走行分の期間の最低車速とその変数名Ｙの組を走行データベース１４に繰り返し定期的に登録する。
【００５６】
まず走行記述部１３は、ステップ３１０で、図４のステップ１１０と同じ所定時間待機する。続いてステップ３２０で、センサ群２のＧＰＳ受信機、車速センサ、加速度センサの検出信号に基づいて、車両の現在位置を特定する。
【００５７】
続いてステップ３３０では、センサ群２の車速センサの検出信号に基づいて、現在の車速を取得する。続いてステップ３４０では、直前のステップ３２０、３３０で取得した位置および車速をＲＡＭに追加記録する。これにより、ステップ３４０が実行される度に、ＲＡＭ中に位置および車速の組が１組ずつ蓄積されていく。
【００５８】
続いてステップ３５０では、現時点でＲＡＭに記録されている位置および車速の複数組に基づいて、車両の過去所定距離（例えば２０メートル）走行分の期間の最低車速を特定する。
【００５９】
続いてステップ３６０では、直前のステップ３５０にて取得済みの最低車速を、ｋｍ／ｈの単位で小数点以下を切り上げる。これによって、直前のステップ３５０にて取得済みの最低車速がｋｍ／ｈの単位の整数値に丸められる。
【００６０】
ステップ３６０では更に、丸め済みの最低車速に、あらかじめ固定的に定められた変数名Ｙを対応付け、更に、図７に例示するように、これら変数名Ｙと丸め済みの最低車速（変数値に相当する）を１つのレコードとして走行データベース１４の記憶媒体に登録する。このとき、既に同じ変数名Ｙのレコードが走行データベース１４の記憶媒体に登録されていれば、当該レコードを当該記憶媒体から削除する。つまり、同じ変数名を含むレコードについては、最新のレコードのみ残す。ステップ３６０の後、ステップ３１０に戻る。
【００６１】
このようにして、走行記述部１３は、センサ群２の検出結果に基づいて、例えばスピード違反については１種類（Ｌ種類の一例に相当する）、停止義務違反については２種類（Ｌ種類の一例に相当する）の走行状態（すなわち、車速、注意対象物、最低車速）を特定し、特定した走行状態の各々に、予め定められた変数名Ｖ、Ｘ、Ｙを対応付けて走行データベース１４に登録する。
【００６２】
次に、適合判定部１５について説明する。適合判定部１５は、質問部１５ａと回答部１５ｂを有している。質問部１５ａは、走行記述部１３によって走行データベース１４に登録されたデータ（変数名、走行状態）に基づいて回答部１５ｂに質問を出力する。
【００６３】
質問部１５ａは、上記のような作動を実現するため、例えば、ＣＰＵ、ＲＡＭ、ＲＯＭ、フラッシュメモリ等の記憶媒体を備えている。そしてこのＣＰＵは、ＲＯＭまたはフラッシュメモリに記録されている所定のプログラムを実行することで、図８に示す処理を実行する。以下、このＣＰＵが実行する処理を、質問部１５ａが実行する処理として説明する。
【００６４】
質問部１５ａは、まずステップ４１０で、図４のステップ１１０と同じ所定時間待機する。続いてステップ４２０で、チェック番号を０００１に初期化する。
【００６５】
続いてステップ４３０で、規範データベース１２の記憶媒体から、現在のチェック番号に対応するレコード、すなわち、当該チェック番号を含むレコードを抽出し、更に、抽出したレコードに含まれる節の頭部、すなわち、１個の違反種別およびＬ個の変数名を取得する。具体的には、チェック番号が０００１なので、ｓｐｅｅｄ＿ｉｈａｎという違反種別および１個の変数名Ｖを取得する。
【００６６】
続いてステップ４４０では、直前のステップ４３０で取得済みのＬ個の変数名に走行データベース１４中でそれぞれ対応するＬ種類の変数値（すなわち走行状態）を取得する。具体的には、走行データベース１４中で変数名Ｖに対応する走行状態である車速の具体値（図７の例では１０）を取得する。
【００６７】
続いてステップ４５０では、直前のステップ４３０で取得済みの違反種別および直前のステップ４４０で取得済みの変数値を用いて、質問を生成する。具体的には、例えば、走行データベース１４が図７のようになっている場合は、
？−  ｓｐｅｅｄ＿ｉｈａｎ（１０）．
という文字列を回答部１５ｂに出力する。ここで、「？−」という記号は、質問であることを示す記号である。この質問は、１０という速度（すなわち、９ｋｍ／ｈ超かつ１０ｋｍ／ｈ以下）でスピード違反が成立するかという質問である。
【００６８】
続いてステップ４６０では、チェック番号の値を１だけ増加させる。これによりチェック番号が０００２になる。続いてステップ４７０では、チェック番号が規範データベース１２に登録されている最大値（例えば１０００）より大きいか否かを判定する。最大値は、規範データベース１２中の最大のチェック番号と同じに設定する。最大値より大きくないと判定すればステップ４３０に戻り、最大値より大きいと判定すればステップ４１０に戻る。チェック番号が０００２であれば最大値より小さいので、ステップ４３０に戻る。
【００６９】
その後、質問部１５ａは、チェック番号０００２について、ステップ４３０、４４０、４５０で既に説明した通りの処理を行うことで、急加速という違反が成立するかという質問を、回答部１５ｂに出力する。
【００７０】
続いてステップ４６０では、チェック番号の値を１だけ増加させて０００３にする。続いてステップ４７０では、チェック番号が最大値より大きくないと判定してステップ４３０に戻る。
【００７１】
その後、質問部１５ａは、チェック番号０００３について、ステップ４３０、４４０、４５０で既に説明した通りの処理を行う。これにより、ステップ４３０では、ｔｅｉｓｈｉ＿ｉｈａｎという違反種別および２個の変数名Ｘ、Ｙを取得する。そして、ステップ４４０では、走行データベース１４中で変数名Ｘに対応する走行状態である通過済み注意喚起対象の具体値（図７の例ではｉｃｈｉｊｉ）を取得し、走行データベース１４中で変数名Ｙに対応する走行状態である最低速度の具体値（図７の例では３）を取得する。
【００７２】
続いてステップ４５０では、直前のステップ４３０で取得済みの違反種別および直前のステップ４４０で取得済みの変数値を用いて、質問を生成する。具体的には、例えば、走行データベース１４が図７のようになっている場合は、図９に示すような文字列を回答部１５ｂに出力する。この質問は、ｉｃｈｉｊｉという注意喚起対象（すなわち、一時停止標識）を直前に通過済みであり、かつ、３という過去所定距離走行分の期間の最低車速（すなわち、２ｋｍ／ｈ超かつ３ｋｍ／ｈ以下）で停止義務違反が成立するかという質問である。なお、質問部１５ａは、質問中の変数値の順序は、直前のステップ４３０で取得した頭部中の変数名の順序に、それら変数値に対応する変数名を当てはめることで決定する。
【００７３】
続いてステップ４６０では、チェック番号の値を１だけ増加させて０００３にする。続いてステップ４７０では、チェック番号が最大値より大きくないと判定してステップ４３０に戻る。
【００７４】
質問部１５ａは、このようなステップ４３０〜４７０の処理を、チェック番号が最大値を超えるまで行う。これにより、規範データベース１２に記録されているすべての違反成立条件について、走行データベース１４中の変数値（すなわち走行状態）を用いて、質問を出力することができる。
【００７５】
また質問部１５ａは、定期的にステップ４１０、４２０、およびステップ４３０〜４７０のループを繰り返し実行することで、時々刻々と変化する車両状態の変化に応じて質問中の車両状態（すなわち変数値）を変化させることができる。
【００７６】
次に回答部１５ｂについて説明する。回答部１５ｂは、質問部１５ａから出力された質問中の変数値（すなわち走行状態）を、当該質問中の違反種別を含む違反成立条件に適用することで、当該違反種別に対応する違反が成立するか否かを判定する。
【００７７】
回答部１５ｂは、上記のような作動を実現するため、例えば、ＣＰＵ、ＲＡＭ、ＲＯＭ、フラッシュメモリ等の記憶媒体を備えている。そしてこのＣＰＵは、ＲＯＭまたはフラッシュメモリに記録されている所定のプログラムを実行することで、図１０に示す処理を実行する。以下、このＣＰＵが実行する処理を、回答部１５ｂが実行する処理として説明する。
【００７８】
回答部１５ｂは、まずステップ５１０で、規範データベース１２からすべての違反成立条件を読み出す。このようにして読み出されたデータは、説明済みのｐｒｏｌｏｇのソースコードである。回答部１５ｂは、ステップ５１０でこのソースコードを実行することで、以後、ｐｒｏｌｏｇの処理系（例えば周知のＳＷＩ−Ｐｒｏｌｏｇ）として機能する。
【００７９】
ｐｒｏｌｏｇの処理系として機能し始めた回答部１５ｂは、続くステップ５２０で、質問部１５ａから質問が出力されるまで待機する。そして質問部１５ａから質問が出力されると、当該質問を取得してステップ５３０に進む。
【００８０】
ステップ５３０では、直前のステップ５２０で取得済みの質問中の違反種別と同じ違反種別を含む節を、規範データベース１２から特定する。
【００８１】
例えば、ｓｐｅｅｄ＿ｉｈａｎという違反種別を上記質問が含む場合、規範データベース１２中のチェック番号０００１中の節が特定される。また例えば、図９のような、ｔｅｉｓｈｉ＿ｉｈａｎという違反種別を上記質問が含む場合、規範データベース１２中のチェック番号０００３中の節が特定される。
【００８２】
続いてステップ５４０では、上記質問中のＬ種類の走行状態（すなわち変数値）の各々を、直前のステップ５３０で特定した節中のＮ個の要件のうち対応する要件に適用する。どの走行状態がどの要件に対応するか、および、各要件でどの順番でどの走行条件が適用されるかは、上記の節に含まれる変数対応情報（図３参照）に従って決める。つまり、上記の節に含まれる変数対応情報中のＬ個の変数名と、上記質問中のＬ個の変数名との対応関係に従って決める。
【００８３】
例えば、質問が？−  ｓｐｅｅｄ＿ｉｈａｎ（１０）．である場合、ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（Ｖ）の変数Ｖに１０という変数値を当てはめる。これにより、変数値の適用が実現し、ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（１０）という要件が得られる。
【００８４】
また例えば、質問が図９のように？−  ｔｅｉｓｈｉ＿ｉｈａｎ（ｉｃｈｉｊｉ，３）．である場合、ｓｉｇｎ（Ｘ）の変数Ｘにｉｃｈｉｊｉという変数値を当てはめ、ｎｏｓｔｏｐ（Ｙ）の変数Ｘに３という変数値を当てはめる。これにより、変数値の適用が実現し、ｓｉｇｎ（ｉｃｈｉｊｉ）という要件およびｎｏｓｔｏｐ（３）という要件が得られる。
【００８５】
続いてステップ５５０では、直前のステップ５４０において適用後に得られたＮ個の要件を、上記の節と同じレコードに含まれるＭ個の要件成立事例のうち対応する要件成立事例と比較する。対応するか否かは、要件のうち括弧内を除く部分が同じか否かで決定する。
【００８６】
例えば、質問が？−  ｓｐｅｅｄ＿ｉｈａｎ（１０）．である場合、ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（１０）という要件を、規範データベース１２中のｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（６１）、ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（６２）、…、ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（６５）の個々と比較する。
【００８７】
また例えば、質問が図９のように？−  ｔｅｉｓｈｉ＿ｉｈａｎ（ｉｃｈｉｊｉ，３）．である場合、以下の通りである。すなわち、ｓｉｇｎ（ｉｃｈｉｊｉ）という要件を規範データベース１２中のｓｉｇｎ（ｉｃｈｉｊｉ）およびｓｉｇｎ（ｆｕｍｉｋｉｒｉ）の個々と比較する。また、ｎｏｓｔｏｐ（３）という要件を規範データベース１２中のｎｏｓｔｏｐ（２）、ｎｏｓｔｏｐ（３）、…、ｎｏｓｔｏｐ（２５５）の個々と比較する。
【００８８】
そして比較の結果、要件成立事例のいずれかと一致した要件については、当該要件が成立したと判定する。また、比較の結果、要件成立事例のいずれとも一致しなかった要件については、当該要件が成立していないと判定する。
【００８９】
例えば、質問が？−  ｓｐｅｅｄ＿ｉｈａｎ（１０）．である場合、比較の結果、ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（１０）という要件と一致する要件成立事例は存在しない。したがって、当該要件ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（Ｖ）は成立しないと判定する。
【００９０】
また、質問が？−  ｓｐｅｅｄ＿ｉｈａｎ（８０）．である場合、すなわち、車両が７９ｋｍ／ｈ超かつ８０ｋｍ／ｈ未満で走行している場合、比較の結果、ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（８０）という要件と一致する要件成立事例が存在する。したがって、当該要件ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（Ｖ）は成立すると判定する。
【００９１】
また、質問が図９のように？−  ｔｅｉｓｈｉ＿ｉｈａｎ（ｉｃｈｉｊｉ，３）．である場合、比較の結果は以下のようになる。すなわち、ｓｉｇｎ（ｉｃｈｉｊｉ）という要件と一致する要件成立事例が存在する。また、ｎｏｓｔｏｐ（３）という要件と一致する要件成立事例が存在する。したがって、ｓｉｇｎ（Ｘ）およびｎｏｓｔｏｐ（Ｙ）という要件の両方が成立すると判定する。
【００９２】
また、質問が図９とは異なり？−  ｔｅｉｓｈｉ＿ｉｈａｎ（ｆｕｍｉｋｉｒｉ，３）．である場合、比較の結果は以下のようになる。すなわち、ｓｉｇｎ（ｆｕｍｉｋｉｒｉ）という要件と一致する要件成立事例が存在する。また、ｎｏｓｔｏｐ（３）という要件と一致する要件成立事例が存在する。したがって、ｓｉｇｎ（Ｘ）およびｎｏｓｔｏｐ（Ｙ）という要件の両方が成立すると判定する。
【００９３】
また、質問が図９とは異なり？−  ｔｅｉｓｈｉ＿ｉｈａｎ（ｃｈｕｕｓｈａｋｉｎｓｉ，３０）．である場合、比較の結果は以下のようになる。すなわち、ｓｉｇｎ（ｃｈｕｕｓｈａｋｉｎｓｉ）という要件と一致する要件成立事例が存在しない。また、ｎｏｓｔｏｐ（３０）という要件と一致する要件成立事例が存在する。したがって、ｓｉｇｎ（Ｘ）という要件が成立せず、ｎｏｓｔｏｐ（Ｙ）という要件が成立すると判定する。
【００９４】
また、質問が図９とは異なり？−  ｔｅｉｓｈｉ＿ｉｈａｎ（ｉｃｈｉｊｉ，１）．である場合、比較の結果は以下のようになる。すなわち、ｓｉｇｎ（ｉｃｈｉｊｉ）という要件と一致する要件成立事例が存在する。また、ｎｏｓｔｏｐ（１）という要件と一致する要件成立事例が存在しない。したがって、ｓｉｇｎ（Ｘ）という要件が成立し、ｎｏｓｔｏｐ（Ｙ）という要件が成立しないと判定する。
【００９５】
続いてステップ５６０では、直前のステップ５５０の判定結果に基づいて、上記違反種別に対応する違反が成立するか否かを判定する。具体的には、当該違反種別と同じ節に属する要件のすべてが成立したと判定された場合に、当該違反種別に対応する違反が成立すると判定し、当該違反種別と同じ節に属する要件の１つ以上が成立しないと判定された場合に、当該違反種別に対応する違反が成立しないと判定する。
【００９６】
例えば、質問が？−  ｓｐｅｅｄ＿ｉｈａｎ（１０）．である場合、ステップ５４０で要件ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（Ｖ）は成立しないと判定されたので、ｓｐｅｅｄ＿ｉｈａｎに対応する違反、すなわち、スピード違反が成立しないと判定する。
【００９７】
例えば、質問が？−  ｓｐｅｅｄ＿ｉｈａｎ（８０）．である場合、ステップ５４０で要件ｏｖｅｒｓｐｅｅｄ＿ｈｏｕｔｅｉ（Ｖ）は成立すると判定されたので、ｓｐｅｅｄ＿ｉｈａｎに対応する違反、すなわち、スピード違反が成立すると判定する。
【００９８】
また、質問が図９のように？−  ｔｅｉｓｈｉ＿ｉｈａｎ（ｉｃｈｉｊｉ，３）．である場合、ステップ５４０で要件ｓｉｇｎ（Ｘ）および要件ｎｏｓｔｏｐ（Ｙ）の両方が成立すると判定された。したがって、ｔｅｉｓｈｉ＿ｉｈａｎに対する違反、すなわち、停止義務違反が成立すると判定する。
【００９９】
また、質問が図９とは異なり？−  ｔｅｉｓｈｉ＿ｉｈａｎ（ｆｕｍｉｋｉｒｉ，３）．である場合、ステップ５４０で要件ｓｉｇｎ（Ｘ）および要件ｎｏｓｔｏｐ（Ｙ）の両方が成立すると判定された。したがって、ｔｅｉｓｈｉ＿ｉｈａｎに対する違反、すなわち、停止義務違反が成立すると判定する。
【０１００】
また、質問が図９とは異なり？−  ｔｅｉｓｈｉ＿ｉｈａｎ（ｃｈｕｕｓｈａｋｉｎｓｉ，３０）．である場合、要件ｓｉｇｎ（Ｘ）が成立せず、要件ｎｏｓｔｏｐ（Ｙ）が成立すると判定された。したがって、ｔｅｉｓｈｉ＿ｉｈａｎに対する違反、すなわち、停止義務違反が成立しないと判定する。
【０１０１】
また、質問が図９とは異なり？−  ｔｅｉｓｈｉ＿ｉｈａｎ（ｉｃｈｉｊｉ，１）．である場合、要件ｓｉｇｎ（Ｘ）が成立し、要件ｎｏｓｔｏｐ（Ｙ）が成立しないと判定された。したがって、ｔｅｉｓｈｉ＿ｉｈａｎに対する違反、すなわち、停止義務違反が成立しないと判定する。
【０１０２】
違反が成立しないと判定した場合は、ステップ５２０に戻って次の質問を待つ。違反が成立すると判定した場合は、ステップ５７０に進む。ステップ５７０では、回答部１５ｂは、違反発生の通知を行う。具体的には、規範データベース１２で上記違反種別と同じレコードに含まれるチェック番号を、車両制御部１１に通知する。
【０１０３】
この通知を受けた車両制御部１１は、通知されたチェック番号に応じて、上述の（ｅ）の制御に優先して、アクチュエータ群３を制御する。例えば、チェック番号０００１の通知を受けた場合は、車両に制動をかけて車両を減速させる。また例えば、チェック番号０００３の通知を受けた場合は、車両に制動をかけて車両を停止させる。
【０１０４】
あるいは、回答部１５ｂは、ステップ５７０では、違反が発生したこと、および、違反種別を、画像または音声で車両の乗員に通知してもよい。
【０１０５】
以上説明した通り、本実施形態では、回答部１５ｂが、規範データベース１２から、当該レコードを取得する。また質問部１５ａが、走行データベース１４から、Ｌ種類の走行状態を取得する。そして回答部１５ｂは、質問部１５ａが取得したＬ種類の走行状態の各々を上記Ｎ個の要件のうち対応する要件に適用した結果を、上記Ｍ個の要件成立事例のうち対応する要件成立事例と比較することで、当該Ｎ個の要件の各々が成立したか否かを判定する。そして回答部１５ｂは、その判定結果に基づいて、当該レコードに含まれる違反種別に対応する違反が成立するか否かを判定する。
【０１０６】
このように、規範取得手段として機能する回答部１５ｂが違反種別および当該違反種別に対応するＮ個の要件、Ｍ個の要件成立事例のレコードを規範データベース１２から取得する。そして判定手段として機能する回答部１５ｂが、当該レコードに対して車両走行状態を適用することで、違反が成立するか否かを判定する。このようになっていれば、規範が変更されても、規範データベース１２の違反種別、要件、要件成立事例のうち１つまたは複数を書き換えるだけで済む。したがって、違反走行判定装置は規範の変更に対して従来よりも柔軟に対応できる。
【０１０７】
特に、規範データベース１２を製造する団体と、車両制御部１１、走行記述部１３、適合判定部１５を製造する団体が異なっている場合、後者の団体は、規範データベース１２の規範の変更の内容によっては、その変更に対応して装置１１、１３、１５の構成および処理内容を修正しないで済む。規範データベース１２、適合判定部１５を製造する団体と、車両制御部１１、走行記述部１３を製造する団体が異なっている場合も同じである。
【０１０８】
また、走行記述部１３は、センサ群２の検出結果に基づいて、上記Ｌ種類の走行状態を特定し、特定したＬ種類の走行状態の各々に、予め定められた変数名（Ｖ、Ｘ、Ｙ等）を対応付けて前記走行データベースに登録する。また、当該レコードは、当該違反種別に関連するＬ個の変数名が、当該Ｎ個の要件のどれに対応する変数であるかを示す変数対応情報を含む。そして、質問部１５ａは、走行データベース１２に保持されているレコードから、上記Ｌ個の変数名および上記Ｌ個の変数名にそれぞれ対応するＬ種類の走行状態を取得する。また、回答部１５ｂは、変数対応情報中のＬ個の変数名と質問部１５ａが取得したＬ個の変数名との対応関係に基づいて、当該Ｌ種類の走行状態の各々を当該Ｎ個の要件のうち対応する要件に適用する。そして回答部１５ｂは、適用後の当該Ｎ個の要件を該Ｍ個の要件成立事例のうち対応する要件成立事例と比較することで、該Ｎ個の要件の各々が成立したか否かを判定する。そして回答部１５ｂは、その判定結果に基づいて、当該レコードに含まれる違反種別に対応する違反が成立するか否かを判定する。
【０１０９】
このように、走行データベース１４中で、予め定められた変数名が各走行状態に付与され、回答部１５ｂは、その変数名と規範データベース１２から取得したレコード中の変数対応情報に基づいて、走行状態をどの要件に適用するかを決定する。このようにすることで、走行状態が複数種類ある場合における走行状態と要件との対応を容易に決定することができる。
【０１１０】
また、規範データベースは、ｐｒｏｌｏｇで記述されたソースコードを含み、当該ソースコードが、当該レコードの情報を含んでいる。そして回答部１５ｂは、ソースコードを読み出して実行するｐｒｏｌｏｇの処理系として機能する。このようになっていることで、判定手段は、当該リストを読み込むだけで、必要な処理を実現できる。
【０１１１】
なお、上記実施形態では、走行記述部１３が走行記述手段に対応し、質問部１５ａが走行状態取得手段に対応し、回答部１５ｂがステップ５１０を実行することで規範取得手段として機能し、回答部１５ｂがステップ５３０〜５６０を実行することで判定手段として機能する。
【０１１２】
（他の実施形態）
なお、本発明は上記した実施形態に限定されるものではなく、特許請求の範囲に記載した範囲内において適宜変更が可能である。また、また、上記実施形態において、実施形態を構成する要素は、特に必須であると明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。また、上記実施形態において、実施形態の構成要素の個数、数値、量、範囲等の数値が言及されている場合、特に必須であると明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではない。特に、ある量について複数個の値が例示されている場合、特に別記した場合および原理的に明らかに不可能な場合を除き、それら複数個の値の間の値を採用することも可能である。また、上記実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に特定の形状、位置関係等に限定される場合等を除き、その形状、位置関係等に限定されるものではない。また、本発明は、上記実施形態に対する以下のような変形例も許容される。なお、以下の変形例は、それぞれ独立に、上記実施形態に適用および不適用を選択できる。すなわち、以下の変形例のうち明らかに矛盾する組み合わせを除く任意の組み合わせを、上記実施形態に適用することができる。
【０１１３】
（変形例１）
上記実施形態では、回答部１５ｂはｐｒｏｌｏｇ処理系として実現されているが、必ずしもそのようになっておらずともよい。また、規範データベース１２中の違反成立条件は、ｐｒｏｌｏｇのソースコードになっていなくてもよい。規範データベース１２は、規範に対する違反の種別を示す違反種別と、違反種別に対応する違反が成立するＮ個の要件と、当該Ｎ個の要件の各々が成立する場合の車両の走行状態を規定するＭ個の要件成立事例と、を含んでいればよい。
【０１１４】
（変形例２）
上記実施形態では、自動運転制御装置１の構成要素はすべて車両に搭載されている。しかし、規範データベース１２および適合判定部１５は車両外のサーバに配置されており、適合判定部１５は走行データベース１４、車両制御部１１と通信するようになっていてもよい。その場合、違反走行判定装置はサーバになり、サーバは、図１０のステップ５２０を実行することで走行状態取得手段として機能する。
【０１１５】
あるいは、自動運転制御装置１のうち規範データベース１２だけがサーバに配置されていてもよい。この場合は、回答部１５ｂは、サーバと通信することで規範データベース１２から必要なデータを取得する。
【０１１６】
（変形例３）
走行記述部１３は、図５のステップ２２０において、車載カメラの撮影画像に基づいて、直前に通過した注意対象物を特定する。しかし、車載カメラではなく、センサ群２のＧＰＳ受信機から取得した現在位置、および車両制御部１１の道路地図データ中の注意対象物の位置情報に基づいて、直前に通過した注意対象物を特定してもよい。
【０１１７】
（変形例４）
上記車両制御部１１、走行記述部１３、質問部１５ａ、回答部１５ｂは、１つのマイクロコンピュータとして実現されていてもよい。その場合、当該マイクロコンピュータは、車両制御部１１、走行記述部１３、質問部１５ａ、回答部１５ｂの各々の機能を実現するプログラムを実行する。
【符号の説明】
【０１１８】
１                自動運転制御装置
１１              車両制御部
１２              規範データベース
１３              走行記述部
１４              走行データベース
１５ａ            質問部
１５ｂ            回答部１５ｂ
【図１】
2017045327.tif 000003
【図２】
2017045327.tif 000004
【図３】
2017045327.tif 000005
【図４】
2017045327.tif 000006
【図５】
2017045327.tif 000007
【図６】
2017045327.tif 000008
【図７】
2017045327.tif 000009
【図８】
2017045327.tif 000010
【図９】
2017045327.tif 000011
【図１０】
2017045327.tif 000012