(57)【要約】【課題】  単一のターゲットだけでなく、複数のターゲットにも対応可能な車両搭載カメラの光軸調整方法を提供することを課題とする。【解決手段】  車両搭載カメラの光軸調整方法であって、光軸調整指示コマンド、全ターゲット指示コマンド又は／及びターゲット毎の個別ターゲット指示コマンドを検査装置３から受信するステップと、光軸調整指示コマンドに基づいて光軸調整を行うか否かを判定するステップと、全ターゲット指示コマンド又は／及びターゲット毎の個別ターゲット指示コマンドに基づいていずれのターゲットを利用するかを決定するステップと、決定したターゲットを利用して光軸調整用の補正量を求める処理を実行するステップと、光軸調整用の補正量を求める処理が完了したか否かを判定するステップと、全ターゲット完了コマンド又は／及びターゲット毎の個別ターゲット完了コマンドを検査装置３に送信するステップとを含むことを特徴とする。【選択図】  図１
2005143040.tif 000002
【特許請求の範囲】
【請求項１】
ターゲットを利用して車両に搭載されたカメラの光軸調整を行う光軸調整方法であって、
光軸調整を行うか否かを指示する光軸調整指示コマンド、複数のターゲット配置箇所に各々配置されたターゲットを全て一緒に利用するか否かの指示をする全ターゲット指示コマンド又は／及び複数のターゲット配置箇所のうちの任意の箇所あるいは単一のターゲット配置箇所に配置されたターゲットを個別に利用するか否かの指示をするターゲット毎の個別ターゲット指示コマンドを、検査装置から通信手段を介して受信するステップと、
前記光軸調整指示コマンドに基づいて光軸調整を行うか否かを判定するステップと、
前記全ターゲット指示コマンド又は／及び前記ターゲット毎の個別ターゲット指示コマンドに基づいていずれのターゲットを利用して光軸調整用の補正量を求めるかを決定するステップと、
前記決定したターゲットを利用し、ターゲットの配置情報、カメラの配置情報及び車両の情報に基づいて光軸調整用の補正量を求める処理を実行するステップと、
前記全ターゲットを利用した光軸調整用の補正量を求める処理又は前記個別ターゲットを利用した光軸調整用の補正量を求める処理が完了したか否かを判定するステップと、
前記全ターゲットを利用した光軸調整用の補正量を求める処理が完了したか否かを示す全ターゲット完了コマンド又は／及び前記個別ターゲットを利用した光軸調整用の補正量を求める処理が完了したか否かを示すターゲット毎の個別ターゲット完了コマンドを、前記通信手段を介して前記検査装置に送信するステップと
を含むことを特徴とする車両搭載カメラの光軸調整方法。
【請求項２】
前記全ターゲット又は個別ターゲットを利用した光軸調整用の補正量を求める処理の経過を示す経過フラグを設定するステップと、
複数の個別ターゲットを利用して光軸調整用の補正量を求める場合、前記経過フラグに基づいて、任意の個別ターゲットを利用した光軸調整用の補正量を求める処理が、他の個別ターゲットを利用した光軸調整用の補正量を求める処理に対して何番目に処理を完了したかを判定するステップと
を含むことを特徴とする請求項１に記載する車両搭載カメラの光軸調整方法。
【請求項３】
前記全ターゲットを利用した光軸調整用の補正量を求める処理が完了した場合又は前記個別ターゲットを利用した光軸調整用の補正量を求める処理が全ての個別ターゲットに対して完了した場合に求めた光軸調整用の補正量を記憶手段に記憶するステップを含むことを特徴とする請求項１又は請求項２に記載する車両搭載カメラの光軸調整方法。
【請求項４】
複数の個別ターゲットを利用して光軸調整用の補正量を求める場合、前記決定した個別ターゲットを利用する光軸調整用の補正量を求める処理が、他の個別ターゲットを利用する光軸調整用の補正量を求める処理に対して何番目に実行する処理かを判定するステップを含むことを特徴とする請求項１〜請求項３のいずれか１項に記載する車両搭載カメラの光軸調整方法。
【請求項５】
光軸調整用の補正量を正常に求めることができるか否かを判定するするステップを含むことを特徴とする請求項１〜請求項４のいずれか１項に記載する車両搭載カメラの光軸調整方法。
【請求項６】
前記検査装置との間の通信に異常が発生したか否かを検出するステップを含み、
光軸調整用の補正量を求める処理中に異常を検出した場合でも光軸調整用の補正量を求める処理を継続することを特徴とする請求項１〜請求項５のいずれか１項に記載する車両搭載カメラの光軸調整方法。
【請求項７】
車両が停止状態か否かを判定するステップを含み、
車両が停止状態でない場合には光軸調整を行わないことを特徴とする請求項１〜請求項６のいずれか１項に記載する車両搭載カメラの光軸調整方法。
【請求項８】
前記光軸調整指示コマンドに基づいて光軸調整を行うと判定したときに、車両の情報を１回だけ記憶手段に書き込むステップを含むことを特徴とする請求項１〜請求項７のいずれか１項に記載する車両搭載カメラの光軸調整方法。
【請求項９】
前記光軸調整指示コマンドは、工場で光軸調整を行うか否かを指示する工場光軸調整モード指示コマンド及びディーラで光軸調整を行うか否かを指示するディーラ光軸調整モード指示コマンドを含むことを特徴とする請求項１〜請求項８のいずれか１項に記載する車両搭載カメラの光軸調整方法。
【請求項１０】
前記経過フラグは、光軸調整用の補正量を求める処理の開始を示す開始フラグ、当該処理の継続中を示す継続フラグ、当該処理の完了を示す完了フラグ、最後に当該処理を完了したことを示す終了フラグを含むことを特徴とする請求項２〜請求項９のいずれか１項に記載する車両搭載カメラの光軸調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単一のターゲットのみならず、複数のターゲットを利用した光軸調整が可能な車両搭載カメラの光軸調整方法に関する。
【背景技術】
【０００２】
近年、車両には、車両周辺の画像情報を取得するためにカメラを搭載したものがある。例えば、後退時の安全性の確保や駐車支援を図るために、車両の後方の画像情報を取得するためのカメラを搭載した車両がある。また、車間制御や操舵支援等の運転支援を行うために、車両の前方の画像情報を取得するためのカメラを搭載する車両がある。車両にカメラを搭載する場合、ピントが合った精度の高い画像情報を得るために、車両の製造工場やディーラにおいてカメラの光軸調整が行われる（特許文献１〜３参照）。カメラの光軸調整としては、例えば、カメラの前方に配置されたターゲットを利用し、カメラの光軸中心とターゲットとの中心との差からＦＯＥ［Focus Of End］の補正量（Ｘ方向、Ｙ方向）を求める。そして、このＦＯＥの補正量により、カメラで撮影した画像の中心を画面の中心に補正する。
【特許文献１】特開２００２−２９３３１号公報
【特許文献２】特開平６−１８１５７６号公報
【特許文献３】特開２００２−２１８５０４号公報
【特許文献４】特開２００１−６５８７号公報
【特許文献５】特開２００１−３４１５７８号公報
【特許文献６】特開平９−２０７６０８号公報
【特許文献７】特開平１１−９１４６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、前方を走行する車両の情報等の狭い範囲の画像情報を必要とする場合だけでなく、車線を示す車両の両側の白線の情報、歩行者や隣接車線を走行する車両の情報等の左右方向あるいは上下方向に広い範囲の画像情報を必要とする場合もある。この場合、カメラで撮影した画像の中心付近だけでなく、カメラで広い範囲を撮影した画像の端部までピントが合った画像情報が必要となる。そのため、光軸調整では、ＦＯＥの補正量だけでなく、カメラのロール角、ヨー角等の角度も補正量として必要となる。角度の補正量まで求めるためには、カメラの中心軸上に配置された単一のターゲットだけでは求まることができないので、その中心のターゲット以外に左右両側や上下両側にモードゲットを配置する必要がある。しかし、従来のターゲットを利用した光軸調整では、単一のターゲットを対象としており、複数のターゲットには対応できない。さらに、製造工場やディーラの検査施設でも、従来、単一のターゲットで検査を行っているので、左右あるいは上下に複数のターゲットを同時に配置するスペースが確保されていない場合がある。
【０００４】
そこで、本発明は、単一のターゲットだけでなく、複数のターゲットにも対応可能な車両搭載カメラの光軸調整方法を提供することを課題とする。
【課題を解決するための手段】
【０００５】
本発明に係る車両搭載カメラの光軸調整方法は、ターゲットを利用して車両に搭載されたカメラの光軸調整を行う光軸調整方法であって、光軸調整を行うか否かを指示する光軸調整指示コマンド、複数のターゲット配置箇所に各々配置されたターゲットを全て一緒に利用するか否かの指示をする全ターゲット指示コマンド又は／及び複数のターゲット配置箇所のうちの任意の箇所あるいは単一のターゲット配置箇所に配置されたターゲットを個別に利用するか否かの指示をするターゲット毎の個別ターゲット指示コマンドを、検査装置から通信手段を介して受信するステップと、光軸調整指示コマンドに基づいて光軸調整を行うか否かを判定するステップと、全ターゲット指示コマンド又は／及びターゲット毎の個別ターゲット指示コマンドに基づいていずれのターゲットを利用して光軸調整用の補正量を求めるかを決定するステップと、決定したターゲットを利用し、ターゲットの配置情報、カメラの配置情報及び車両の情報に基づいて光軸調整用の補正量を求める処理を実行するステップと、全ターゲットを利用した光軸調整用の補正量を求める処理又は個別ターゲットを利用した光軸調整用の補正量を求める処理が完了したか否かを判定するステップと、全ターゲットを利用した光軸調整用の補正量を求める処理が完了したか否かを示す全ターゲット完了コマンド又は／及び個別ターゲットを利用した光軸調整用の補正量を求める処理が完了したか否かを示すターゲット毎の個別ターゲット完了コマンドを、通信手段を介して検査装置に送信するステップとを含むことを特徴とする。
【０００６】
この車両搭載カメラの光軸調整方法では、車両に設けられている通信手段に検査装置を接続し、この通信手段を介して車両側と検査装置側とで通信を行う。まず、この光軸調整方法では、光軸調整指示コマンド、全ターゲット指示コマンド、ターゲット毎の個別ターゲット指示コマンドを検査装置から通信手段を介して受信する。受信後、光軸調整方法では、光軸調整指示コマンドに基づいて光軸調整を行うか否かを判定する。光軸調整を行う場合、この光軸調整方法では、全ターゲット指示コマンドに基づいて複数のターゲット配置箇所に各々配置された全てのターゲットを同時に利用するのか、または、ターゲット毎の個別ターゲット指示コマンドに基づいて単一のターゲットを利用するのかあるいは複数のターゲット配置箇所のうちの任意の箇所に配置された個別ターゲットを利用するのかを決定する。利用するターゲットを決定後、光軸調整方法では、決定したターゲットを利用し、ターゲットの配置情報、カメラの配置情報及び車両の情報に基づいて光軸調整用の補正量を求める処理を実行する。ターゲットの配置されている箇所によって光軸調整用の補正量を求める処理が異なるので（例えば、個別にターゲットを利用する場合にはＦＯＥの補正量を求める処理、ロール角を求めるための処理等のターゲット毎に異なる処理があり、全てのターゲットを同時に利用する場合にはＦＯＥの補正量やロール角等を一度に求めるための処理がある。）、決定したターゲットに応じた処理を実行する。そして、光軸調整方法では、全ターゲット又は個別ターゲットを利用した光軸調整用の補正量を求める処理が完了したか否かを判定する。さらに、光軸調整方法では、検査装置側に光軸調整用の補正量を求める処理が完了したか否かを知らせるために、全ターゲット完了コマンド又は／及びターゲット毎の個別ターゲット完了コマンドを通信手段を介して検査装置に送信する。検査装置側では、全ターゲット完了コマンドにより光軸調整用の補正量を求める処理が完了したか否かを認識でき、ターゲット毎の個別ターゲット完了コマンドにより各個別コマンドを利用した光軸調整用の補正量を求める処理が完了したか否か（ただし、単一ターゲットの場合にはその単一ターゲットを利用した光軸調整用の補正量を求める処理が完了したか否か）を認識できる。この際、検査装置側では、複数の個別ターゲットを利用する場合、この個別ターゲット完了コマンドに基づいて、次の個別ターゲットへのターゲットの移動や個別ターゲット指示コマンドの送信等を行うことができる。したがって、１つのターゲットを複数のターゲット配置箇所に移動させて光軸調整を行う場合、検査装置側では、個別ターゲット完了コマンドにより、複数の個別ターゲットに対して順番に関係なく光軸調整を指示でき、同一個別ターゲットに対する重複した指示を防止できる。このように、この光軸調整方法では、検査装置からのコマンドによりどのターゲットに対する処理を実行するかを確定するとともに各ターゲットに対する処理が完了したことを検査装置に伝えることにより、複数ターゲット及び単一ターゲットに対する光軸調整が可能であり、さらに、複数ターゲットの場合には全ターゲットを同時に利用するか又は個別ターゲットを順番に利用するかにも対応可能である。
【０００７】
なお、検査装置は、車両の製造工場やディーラに配備されている検査用のテスタ等であり、車両に設けられているＣＡＮ[Controller Area Network]（車内ＬＡＮの標準インターフェース規格）通信システム等の通信手段を介して車両側と通信を行うことができる装置である。全ターゲット指示コマンドと個別ターゲット指示コマンドとは、両方のコマンドが送信される場合と一方のコマンドのみが送信される場合がある。個別ターゲット指示コマンドは、複数のターゲットを利用する場合には複数のターゲット配置箇所のうちの任意の箇所に配置された各ターゲットに対して各々設定され、単一のターゲットを利用する場合にはその単一のターゲットに対してのみ設定される。ターゲットの配置情報は、車両（特に、カメラ）とターゲットとの位置関係を示す情報である。カメラの配置情報は、車両に搭載されているカメラの位置やカメラの向き等を示す情報である。車両の情報は、光軸調整用の補正量を求める際に必要な車両に関する情報であり、例えば、右ハンドル、左ハンドル、２ＷＤ、４ＷＤ、ボンネットの長さである。全ターゲット完了コマンドと個別ターゲット完了コマンドとは、両方のコマンドが送信される場合と一方のコマンドのみが送信される場合がある。個別ターゲット完了コマンドは、複数のターゲットを利用する場合には複数のターゲット配置箇所のうちの任意の箇所に配置された各ターゲットに対して各々設定され、単一のターゲットを利用する場合にはその単一のターゲットに対してのみ設定される。ちなみに、複数の個別ターゲットは、１つのターゲットを複数のターゲット配置箇所に順次移動させることによって、その１つのターゲットが各ターゲット配置箇所に配置されて複数の個別ターゲットとなる。
【０００８】
本発明の上記車両搭載カメラの光軸調整方法では、全ターゲット又は個別ターゲットを利用した光軸調整用の補正量を求める処理の経過を示す経過フラグを設定するステップと、複数の個別ターゲットを利用して光軸調整用の補正量を求める場合、経過フラグに基づいて、任意の個別ターゲットを利用した光軸調整用の補正量を求める処理が、他の個別ターゲットを利用した光軸調整用の補正量を求める処理に対して何番目に処理を完了したかを判定するステップとを含む構成としてもよい。
【０００９】
この車両搭載カメラの光軸調整方法では、光軸調整用の補正量を求める処理の経過（例えば、処理開始、処理中、処理完了）を示す経過フラグを設定する。この経過フラグにより、光軸調整方法では、複数の個別ターゲットを利用して光軸調整用の補正量を求める場合、ある個別ターゲットを利用した処理が、他の個別ターゲットを利用した処理に対して何番目に処理を完了したかを判定する。このように処理を完了した順番を判定することにより、複数の個別ターゲットのうち最後に処理を完了した個別ターゲットが判り、複数の個別ターゲットを利用した場合の光軸調整の全ての処理の終了を知ることができる。このようにこの光軸調整方法では、経過フラグを設定して各ターゲットの処理状況を把握することによって、複数の個別ターゲットのうちのいずれの個別ターゲットの処理が完了したかを認識でき、個別ターゲットの順番に関係なく光軸調整が可能であり、同一の個別ターゲットに対する光軸調整の重複した指示がきた場合でもその指示を排除できる。
【００１０】
なお、経過フラグは、全てのターゲットの場合には全ターゲットに対する経過フラグが１つあり、個別ターゲットの場合には各ターゲット毎に経過フラグがある。
【００１１】
本発明の上記車両搭載カメラの光軸調整方法では、全ターゲットを利用した光軸調整用の補正量を求める処理が完了した場合又は個別ターゲットを利用した光軸調整用の補正量を求める処理が全ての個別ターゲットに対して完了した場合に求めた光軸調整用の補正量を記憶手段に記憶するステップを含む構成としてもよい。
【００１２】
この車両搭載カメラの光軸調整方法では、全ターゲットを利用した処理が完了したこと又は個別ターゲットを利用した処理を全ての個別ターゲットに対して完了したこと（ただし、単一ターゲットの場合にはその単一ターゲットを利用した光軸調整用の補正量を求める処理が完了したこと）を判定すると、求めた光軸調整用の補正量を記憶手段に記憶する。そして、この記憶手段に記憶した補正量を用いて、カメラで撮影した画像を補正する。
【００１３】
本発明の上記車両搭載カメラの光軸調整方法では、複数の個別ターゲットを利用して光軸調整用の補正量を求める場合、決定した個別ターゲットを利用する光軸調整用の補正量を求める処理が、他の個別ターゲットを利用する光軸調整用の補正量を求める処理に対して何番目に実行する処理かを判定するステップを含む構成としてもよい。
【００１４】
この車両搭載カメラの光軸調整方法では、複数の個別ターゲットを利用して光軸調整用の補正量を求める場合、ターゲット毎の個別ターゲット指示コマンドに基づいて決定した個別ターゲットが（つまり、今回の処理で利用する個別ターゲットが）、他の個別ターゲットに対して何番目に利用されるかを判定する（つまり、どの個別ターゲットが既に利用されたかを判定する）。この判定により、この光軸調整方法では、今回の処理で利用する個別ターゲットが既に利用されている場合には（つまり、検査装置側から、同一個別ターゲットに対する重複した指示コマンドが送信された場合には）、その個別ターゲットに対する処理を禁止でき、光軸調整時間を短縮でき、検査効率を向上させることができる。
【００１５】
本発明の上記車両搭載カメラの光軸調整方法では、光軸調整用の補正量を正常に求めることができるか否かを判定するするステップを含む構成としてもよい。
【００１６】
この車両搭載カメラの光軸調整方法では、光軸調整用の補正量を正常に求めることができるか否かを判定し、光軸調整用の補正量を正常に求めることができない場合には光軸調整用の補正量を求める処理を禁止する。なお、光軸調整用の補正量を正常に求めることができるか否かの判断対象としては、例えば、電源電圧が正常か否か、電源が安定しているか否か、通信状態が正常か否か、その通信状態が一時的なものか否か、光軸調整を行う装置が正常か否か、検査装置からの補正量の書き換え要求の有無である。
【００１７】
本発明の上記車両搭載カメラの光軸調整方法では、検査装置との間の通信に異常が発生したか否かを検出するステップを含み、光軸調整用の補正量を求める処理中に異常を検出した場合でも光軸調整用の補正量を求める処理を継続するように構成してもよい。
【００１８】
この車両搭載カメラの光軸調整方法では、検査装置との間の通信に異常が発生したか否かを検出し、光軸調整用の補正量を求める処理中（補正量を求めるための各情報を取得した後）に異常を検出した場合でも光軸調整用の補正量を求める処理を継続する。補正量を求める処理中に一時的に通信異常となっても、その処理に必要な情報を予め取得しているので、補正量を求めることができる。そこで、この光軸調整方法では、処理を継続し、処理を再度やり直す等の無駄な処理を無くし、検査効率を向上させる。
【００１９】
本発明の上記車両搭載カメラの光軸調整方法では、車両が停止状態か否かを判定するステップを含み、車両が停止状態でない場合には光軸調整を行わないように構成してもよい。
【００２０】
この車両搭載カメラの光軸調整方法では、車両が停止状態か否かを判定し、車両が停止状態でない場合には光軸調整を行わない。つまり、この光軸調整方法では、車両が動いている場合にはターゲットとの距離が変わり、光軸調整を正確に行うことができなので、光軸調整を中止する。また、車両の停止状態で検査を行うことによって、作業者の安全を確保する。
【００２１】
本発明の上記車両搭載カメラの光軸調整方法では、光軸調整指示コマンドに基づいて光軸調整を行うと判定したときに、車両の情報を１回だけ記憶手段に書き込むステップを含む構成としてもよい。
【００２２】
この車両搭載カメラの光軸調整方法では、光軸調整を行うと判定したときに、車両の情報を１回だけ記憶手段に書き込む。このように、この光軸調整方法では、情報の書き込み回数を制限し、光軸調整時間を短縮し、検査効率を向上させる。
【００２３】
本発明の上記車両搭載カメラの光軸調整方法では、光軸調整指示コマンドは、工場で光軸調整を行うか否かを指示する工場光軸調整モード指示コマンド及びディーラで光軸調整を行うか否かを指示するディーラ光軸調整モード指示コマンドを含むと好適である。
【００２４】
この車両搭載カメラの光軸調整方法では、光軸調整指示コマンドとして工場光軸調整モード指示コマンド及びディーラ光軸調整モード指示コマンドを含んでいるので、工場で光軸調整を行うのかあるいはディーラで光軸調整を行うのかを認識できる。そのため、工場における環境及びディーラにおける環境に応じて、光軸調整の状況を作業者に知らせることができる。例えば、光軸調整の状況を知らせるために音を鳴らす場合、工場では騒音があるので、大きな音を継続して鳴らしたほうが良いが、ディーラではお客さん等がいるので、小さい音を短時間鳴らしたほうが良い。
【００２５】
本発明の上記車両搭載カメラの光軸調整方法では、経過フラグは、光軸調整用の補正量を求める処理の開始を示す開始フラグ、当該処理の継続中を示す継続フラグ、当該処理の完了を示す完了フラグ、最後に当該処理を完了したことを示す終了フラグを含むと好適である。
【００２６】
この車両搭載カメラの光軸調整方法では、経過フラグとして開始フラグ、継続フラグ、完了フラグ、終了フラグを含むので、この経過フラグにより何番目に処理を完了した個別ターゲットか、光軸調整が全て終了したか、あるいは、既に処理を完了した個別ターゲットか等を簡単に判定することができる。なお、終了フラグは、全ターゲットの場合には全ターゲットに対する処理が完了した時点でその全ターゲットの終了フラグがオンされ、複数の個別ターゲットの場合には全ての個別ターゲットに対する処理が完了した時点でその最後の処理を完了した個別ターゲットの終了フラグがオンされる。
【発明の効果】
【００２７】
本発明によれば、車両搭載カメラの光軸調整において単一のターゲットだけでなく、複数のターゲットにも対応可能であり、複数のターゲットの場合には全てのターゲットを同時に利用した光軸調整及び複数の個別ターゲットを順番に利用した光軸調整に対応可能である。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照して、本発明に係る車両搭載カメラの光軸調整方法の実施の形態を説明する。
【００２９】
本実施の形態では、本発明に係る車両搭載カメラの光軸調整方法を、車両に搭載された白線検出ＥＣＵ[Electronic Control Unit]、車間制御ＥＣＵ及びＣＡＮ通信システムと車両製造工場やディーラに配備されるテスタ及びターゲットとで構成される光軸調整システムにおける光軸調整に適用する。本実施の形態に係る光軸調整システムでは、白線検出ＥＣＵが車間制御ＥＣＵをバイパスとしてＣＡＮ通信システムによりテスタと通信可能である。本実施の形態に係る白線検出ＥＣＵは、車線を示す白線を検出するための画像情報を取得するカメラの光軸調整を行う機能を有し、光軸調整用の補正量としてＦＯＥ（Ｘ方向、Ｙ方向）の補正量及びカメラのロール角を求める。本実施の形態では、このＦＯＥの補正量及びロール角を求めるために３つのターゲットが利用され、３つのターゲットを３箇所に各々配置させて同時に利用する場合と１つのターゲットを３箇所に順次移動させて個別ターゲットとして利用する場合がある。
【００３０】
図１及び図２を参照して、光軸調整システム１について説明する。図１は、本実施の形態に係る光軸調整システムの構成図である。図２は、本実施の形態に係るターゲットと車両搭載カメラとの位置関係を示す図であり、（ａ）が側面図であり、（ｂ）が平面図である。
【００３１】
光軸調整システム１は、車両の製造工場又はディーラにおいて車両搭載カメラの光軸調整を行うときに構築される。光軸調整システム１では、光軸調整用の補正量として、画面上の中心（ＦＯＥ）とカメラの中心とのずれであるＦＯＥの補正量を求めるとともに、カメラの傾きを示すロール角を求める。そのために、光軸調整システム１は、車両２、製造工場やディーラに配備される検査装置としてのテスタ３及びターゲット４から構成される。製造工場では、車両２が検査ラインを流れ、検査ライン上のターゲット４が配置されている位置で車両２に対して順々に光軸調整を行う。また、ディーラでは、ターゲット４が配置されている場所に車両２を移動させ、その位置で車両２に対して一台づつ光軸調整を行う。
【００３２】
車両２は、操舵支援システム２ａ及び車間制御システム２ｂを備えている。操舵支援システム２ａでは、車両２が車線を示す左右両側の白線の中央を走行するように操舵をアシストする。操舵支援システム２ａは、カメラ１０、白線検出ＥＣＵ１１、車間制御ＥＣＵ１２を備えている。操舵支援システム２ａでは、カメラ１０で車両２の前方の左右両側の白線を含む広い範囲を撮影し、白線検出ＥＣＵ１１でカメラ１０からの画像情報に基づいて２本の白線を検出する。さらに、操舵支援システム２ａでは、車間制御ＥＣＵ１２でその検出した白線情報から２本の白線の中心を演算し、その白線の中心に車両２の中心が一致するように目標操舵トルクを演算し、目標操舵トルクになるように操舵アクチュエータ（図示せず）を制御する。また、車間制御システム２ｂは、レーザレーダセンサ１３、車間制御ＥＣＵ１２を備えている。車間制御システム２ｂでは、レーザレーダセンサ１３で前車との距離を検出し、車間制御ＥＣＵ１２で前車との車間距離を一定距離以上に保つように目標車速（あるいは、目標加減速度）を演算する。そして、車間制御システム２ｂでは、車間制御ＥＣＵ１２で目標車速となるように、駆動力やブレーキ力を制御する。
【００３３】
このカメラ１０からピントが合った精度の高い画像情報を得るために、製造工場又はディーラにおいて光軸調整が施される。そのために、車両２では、白線検出ＥＣＵ１１が光軸調整を行うための主要な処理を行い、さらに、車間制御ＥＣＵ１２やＣＡＮ通信システム１４がテスタ３との通信で利用される。白線検出ＥＣＵ１１は、光軸調整を行うためのソフトウエアが組み込まれており、このソフトウエアにより光軸調整処理を行う。車間制御ＥＣＵ１２は、白線検出ＥＣＵ１１とテスタ３との通信を実現するためのソフトウエアが組み込まれており、白線検出ＥＣＵ１１とテスタ３とのバイパスとして機能する。
【００３４】
白線検出ＥＣＵ１１では、テスタ３側と光軸調整に関する情報を遣り取りするために、テスタ３と通信を行うためにＣＡＮ通信システム１４を利用する。白線検出ＥＣＵ１１は、ＣＡＮ通信システム１４に直接接続していないので、ＣＡＮ通信するためのＣＡＮＩ／Ｆ１２ａを備える車間制御ＥＣＵ１２を介してＣＡＮ通信を行う。白線検出ＥＣＵ１１と車間制御ＥＣＵ１２との間は、シリアル通信が行われる。また、白線検出ＥＣＵ１１では、光軸調整処理を実行する際の開始条件を判定するために、車間制御ＥＣＵ１２及びＣＡＮ通信システム１４を介して操舵支援スイッチ１５及び車速センサ１６から情報を取得する。ちなみに、操舵支援スイッチ１５は、ステアリングホイール（図示せず）に設けられ、操舵支援を行うか否かを選択するためのスイッチである。光軸調整を行うか否かは、操舵支援スイッチ１５がオンされていることが開始条件の一つとなる。また、白線検出ＥＣＵ１１では、光軸調整を行っていることを作業者に知らせるために、車間制御ＥＣＵ１２及びＣＡＮ通信システム１４を介してブザー１７及びメータＥＣＵ１８に指令を出す。
【００３５】
また、白線検出ＥＣＵ１１では、車間制御ＥＣＵ１２を介したＣＡＮ通信が異常と判定した場合には、ＣＡＮＩ／Ｆ１２ａにＣＡＮＣ信号を送信する。ＣＡＮＣ信号は、車間制御ＥＣＵ１２によるＣＡＮ通信を強制的に禁止させる信号であり、オン（１）が強制停止であり、オフ（０）が非停止である。異常か否かを検出するために、白線検出ＥＣＵ１１では、車間制御ＥＣＵ１２に対して宿題演算を行わせる指令信号を送信する。その指令信号を受信すると、車間制御ＥＣＵ１２では、白線検出ＥＣＵ１１からの簡単な宿題演算（例えば、足し算）を実行し、その宿題を実行し、宿題の回答を白線検出ＥＣＵ１１に対して送信する。そして、白線検出ＥＣＵ１１では、その宿題の回答が正しいか否かを判断し、正しい場合には車間制御ＥＣＵ１２が正常と判定し、正しくない場合や回答が送信されてこない場合には車間制御ＥＣＵ１２が異常と判定する。この異常と判定した場合に、白線検出ＥＣＵ１１では、ＣＡＮＩ／Ｆ１２ａにＣＡＮＣ信号を送信する。
【００３６】
カメラ１０は、図２に示すように、車両内部に、車両２中心より運転席側（右ハンドル車）の最上部に配置される。カメラ１０は、車両２の前方の下方を撮影するように取り付けされ、左右両側の白線を十分含む範囲を撮影する。カメラ１０の配置情報は、車両２の中心Ｃからのオフセット量Ｏ（ｍ）、地面からの高さＨ（ｍ）、水平面Ｗとなす角である仰角Ａ（°）である。高さＨは、フロントホイールアーチの高さＨ１とフロントホイールアーチからカメラ１０までの距離Ｈ２とを加算して求められる。フロントホイールアーチの高さＨ１は、製造工場やディーラに配備される測定装置によって測定される。
【００３７】
テスタ３は、車両検査を行うための検査装置であり、車両２のＣＡＮ通信システム１４と接続可能である。また、テスタ３は、ダイアグノース（診断ツール）を備え、車両の各種状態をスキャンできる。テスタ３では、光軸調整を行う際に、作業者による手動又は自動で各種情報を車両２側に送信するとともに、車両２側から各種情報を受信する。
【００３８】
ターゲット４は、水平方向に各々配置されたターゲット１、ターゲット２、ターゲット３からなる。ターゲット１は、その中心が画面中心（ＦＯＥ）となる位置に配置される。したがって、カメラ１０の光軸（画像中心）と画面中心とにずれがない場合にはカメラ１０の光軸上にターゲット１の中心が位置する。ターゲット２は、ターゲット１と同じ高さで、車両２側から見てターゲット１の左側にターゲット１から一定距離あけて配置される。ターゲット３は、ターゲット１と同じ高さで、車両２側から見てターゲット１の右側にターゲット１から一定距離あけて配置される。ターゲット１とターゲット２との間隔は、ターゲット１とターゲット３との間隔と同一である。ターゲットの配置情報としては、ターゲット２の中心とターゲット３の中心との間隔Ｗｔａｒｇｅｔ（ｍ）、地面からターゲットの中心までの高さＨｔｅｒｇｅｔ（ｍ）、カメラ１０の前面からの距離Ｌｔｅｒｇｅｔ（ｍ）でもよいし、あるいは、ターゲット１〜３それぞれのターゲット１を基準（０ｍ）とした左右方向の中心の位置（ｍ）、地面からの中心の高さＨｔｅｒｇｅｔ（ｍ）、カメラ１０の前面からの距離Ｌｔｅｒｇｅｔ（ｍ）でもよい。
【００３９】
なお、ターゲット４は、製造工場やディーラにスペースがある場合には、３つのターゲットで３つのターゲット配置箇所に各々配置されてターゲット１〜３を構成してもよい。この場合、３つのターゲット１〜３を同時に利用して光軸調整用の補正量を１度に求めるので、本実施の形態では全ターゲット同時学習と呼ぶ。また、ターゲット１〜３は、製造工場やディーラに十分なスペースがない場合には、１つのターゲットを３つのターゲット配置箇所に順次移動させてターゲット１〜３を構成してもよい。この場合、ターゲット１〜３を個別に利用して光軸調整用の補正量を順に求めるので、本実施の形態ではターゲット１学習、ターゲット２学習、ターゲット３学習とそれぞれ呼び、それぞれが個別ターゲット学習である。ちなみに、本実施の形態では、ターゲットを利用して光軸調整用の補正量を求めることを「学習」と呼ぶ。
【００４０】
光軸調整システム１における白線検出ＥＣＵ１１、車間制御ＥＣＵ１２、テスタ３の情報の流れ及び動作について説明する。
【００４１】
まず、光軸調整を行う場合、作業者が、操舵支援スイッチ１５をオンし、車両２を停止状態（車速０ｋｍ／ｈ）とする。この際、車両２の前方にターゲット４が配置される。ターゲット４としては、全ターゲット同時学習の場合にはターゲット１〜３が全て配置又は個別ターゲット学習の場合にはターゲット１〜３のいずれか１つが配置される。ターゲット１〜３のいずれか１つが配置される場合、各ターゲット１〜３を利用した光軸調整が完了する毎に、作業者が手動又は自動で、あるターゲット配置箇所に配置さているターゲットを他のターゲット配置箇所に移動させる。そして、作業者は、テスタ３からＣＡＮ通信システム１４を介して車間制御ＥＣＵ１２に各種情報を送信する。
【００４２】
各種情報としては、車両情報、カメラの配置情報、ターゲットの配置情報、モード情報、学習要求情報等である。車両情報は、車種、右ハンドルかあるいは左ハンドルか、２ＷＤかあるいは４ＷＤか、日本向けや米国向けの仕向け等の光軸調整用の補正量を求めるために必要な情報である。モード情報は、工場光軸調整モードか、あるいは、ディーラ光軸調整モードかである。学習要求情報は、全ターゲット同時学習要求か、ターゲット１学習要求か、ターゲット２学習要求か、あるいは、ターゲット３学習要求かである。
【００４３】
テスタ３からの各種情報を受信すると、車間制御ＥＣＵ１２では、モード情報及び操舵支援スイッチ１５からのオン／オフ情報並び車速センサ１６からの車速情報に基づいて、モード判定を行う。操舵支援スイッチ１５がオンかつ車速が０ｋｍ／ｈのときに、モード情報が工場光軸調整モードの場合には工場光軸調整モードとし、モード情報がディーラ光軸調整モードの場合にはディーラ光軸調整モードとし、それ以外の場合には操舵支援モードとする。さらに、車間制御ＥＣＵ１２では、判定したモード及び学習要求情報に基づいて、各種フラグを設定する。そして、車間制御ＥＣＵ１２では、設定した各フラグ、ターゲットの配置情報、カメラの配置情報及び車両情報を白線検出ＥＣＵ１１に送信する。
【００４４】
設定するフラグとしては、工場光軸調整要求フラグ、ディーラ光軸調整要求フラグ、操舵支援要求フラグ、ターゲット１学習要求フラグ、ターゲット２学習要求フラグ、ターゲット３学習要求フラグ、全ターゲット同時学習要求フラグ、ＦＯＥ変更要求フラグ、機種変更要求フラグである。工場光軸調整要求フラグは、モードが工場光軸調整モードの場合には１であり、それ以外の場合には０である。ディーラ光軸調整要求フラグは、モードがディーラ光軸調整モードの場合には１であり、それ以外の場合には０である。操舵支援要求フラグは、モードが操舵支援モードの場合には１であり、それ以外の場合には０である。ターゲット１学習要求フラグは、工場光軸調整モード又はディーラ光軸調整モードであり、学習要求情報がターゲット１学習要求の場合には１であり、それ以外の場合には０である。ターゲット２学習要求フラグは、工場光軸調整モード又はディーラ光軸調整モードであり、学習要求情報がターゲット２学習要求の場合には１であり、それ以外の場合には０である。ターゲット３学習要求フラグは、工場光軸調整モード又はディーラ光軸調整モードであり、学習要求情報がターゲット３学習要求の場合には１であり、それ以外の場合には０である。全ターゲット同時学習要求フラグは、工場光軸調整モード又はディーラ光軸調整モードであり、学習要求情報が全ターゲット同時学習要求の場合には１であり、それ以外の場合には０である。ＦＯＥ変更要求フラグは、工場光軸調整モード又はディーラ光軸調整モードの場合（すなわち、光軸調整量の補正量の書き換え要求がある場合）には１であり、それ以外の場合には０である。機種変更要求フラグは、白線検出ＥＣＵ１１で車両情報の書き込みをさせるか否かのフラグであり、車種情報を書き込ませる場合には１であり、それ以外の場合には０である。なお、全ターゲット同時学習の場合にはターゲット１学習要求フラグ、ターゲット２学習要求フラグ、ターゲット３学習要求フラグを設定及び送信しなくてもよい。また、ターゲット１〜３の個別ターゲット学習の場合には全ターゲット同時学習要求フラグを設定及び送信しなくてもよい。
【００４５】
車間制御ＥＣＵ１２からの各種情報や各種フラグを受信すると、白線検出ＥＣＵ１１では、光軸調整処理を実行する。白線検出ＥＣＵ１１では、機種変更要求フラグ１の場合には車両情報をＥＥＰＲＯＭ１１ａに書き込み、正常に書き込めない場合にはセンサ故障フラグに１を設定する。そして、白線検出ＥＣＵ１１では、工場光軸調整フラグが１の場合かつＦＯＥ変更要求フラグが１の場合又はディーラ光軸調整フラグが１の場合かつＦＯＥ変更要求フラグが１の場合、全ターゲット同時学習要求フラグ、ターゲット１学習要求フラグ、ターゲット２学習要求フラグ又はターゲット３学習要求フラグに基づいて学習を行うために利用するターゲットを決定し、そのターゲットを利用して学習を行う。個別ターゲット学習の場合にはターゲット１を利用した学習によってＦＯＥの補正量を求めることができ、ターゲット２及びターゲット３を利用した学習によってロール角を求めることができる。また、全ターゲット同時学習の場合にはＦＯＥの補正量及びロール角を一度に求めることができる。各学習後、白線検出ＥＣＵ１１では、車間制御ＥＣＵ１２からのフラグに対する各種応答フラグ及び全ターゲット同時学習終了フラグ又は個別ターゲット学習終了フラグを設定する。さらに、白線検出ＥＣＵ１１では、学習で求めた光軸調整用の補正量（ＦＯＥの補正量（Ｘ方向、Ｙ方向）、ロール角）をＥＥＰＲＯＭ１１ａに書き込むとともにターゲット配置情報及びカメラ配置情報をＥＥＰＲＯＭ１１ａに書き込み、正常に書き込めない場合にはセンサ故障フラグに１を設定する。また、白線検出ＥＣＵ１１では、光軸調整が異常となった場合や規定時間中に学習を終了できない場合等には初期学習異常フラグに１を設定する。そして、白線検出ＥＣＵ１１では、設定した各種フラグや求めた光軸調整用の補正量を車間制御ＥＣＵ１２に送信する。なお、白線検出ＥＣＵ１１における光軸調整処理については、後で詳細に説明する。
【００４６】
各種応答フラグとしては、工場光軸調整応答フラグ、ディーラ光軸調整応答フラグ、操舵支援応答フラグ、ターゲット１学習応答フラグ、ターゲット２学習応答フラグ、ターゲット３学習応答フラグ、全ターゲット同時学習応答フラグ、ＦＯＥ変更応答フラグである。工場光軸調整応答フラグは、工場光軸調整モードでの学習が正常に終了した場合には１であり、それ以外の場合には０である。ディーラ光軸調整応答フラグは、ディーラ光軸調整モードでの学習が正常に終了した場合には１であり、それ以外の場合には０である。操舵支援応答フラグは、操舵支援を正常に行っている場合には１であり、それ以外の場合には０である。ターゲット１学習応答フラグは、ターゲット１を利用した学習を正常に完了した場合には１であり、それ以外の場合には０である。ターゲット２学習応答フラグは、ターゲット２を利用した学習を正常に完了した場合には１であり、それ以外の場合には０である。ターゲット３学習応答フラグは、ターゲット３を利用した学習を正常に完了した場合には１であり、それ以外の場合には０である。全ターゲット同時学習応答フラグは、全ターゲットを同時に利用した学習を正常に完了した場合には１であり、それ以外の場合には０である。ＦＯＥ変更応答フラグは、光軸調整用の補正量を正常にＥＥＰＲＯＭに書き込めた場合には１であり、それ以外の場合には０である。全ターゲット同時学習終了フラグは、全ターゲットを同時に利用した学習が正常に終了し、光軸調整用の補正量を正常にＥＥＰＲＯＭ１１ａに書き込めた場合には１であり、それ以外の場合には０である。個別ターゲット学習終了フラグは、ターゲット１〜３を個別に利用した学習が全て正常に終了し、光軸調整用の補正量を正常にＥＥＰＲＯＭ１１ａに書き込めた場合には１であり、それ以外の場合には０である。なお、全ターゲット同時学習の場合には個別ターゲット学習終了フラグを設定及び送信しなくてもよい。また、ターゲット１〜３の個別ターゲット学習の場合には全ターゲット同時学習終了フラグを設定及び送信しなくてもよい。
【００４７】
白線検出ＥＣＵ１１からの各種フラグを受信すると、車間制御ＥＣＵ１２では、工場光軸調整モードの場合、全ターゲット同時学習終了フラグが０又は個別ターゲット学習終了フラグが０のときには学習が継続中と判定し、ブザー音を連続して鳴らすためのブザー信号をＣＡＮ通信システム１４を介してブザー１７に送信する。また、車間制御ＥＣＵ１２では、ディーラ光軸調整モードの場合、全ターゲット同時学習終了フラグが０又は個別ターゲット学習終了フラグが０のときには学習が継続中と判定し、ブザー音を数秒間鳴らすためのブザー信号をＣＡＮ通信システム１４を介してブザー１７に送信する。さらに、車間制御ＥＣＵ１２では、工場光軸調整モード又はディーラ光軸調整モードの場合、全ターゲット同時学習終了フラグが０又は個別ターゲット学習終了フラグが０のときには学習が継続中と判定し、メータ１９に光軸調整中であることを表示させるためのメータ表示信号をＣＡＮ通信システム１４を介してメータＥＣＵ１８に送信する。
【００４８】
また、車間制御ＥＣＵ１２では、工場光軸調整モード又はディーラ光軸調整モードの場合、全ターゲット同時学習終了フラグが１又は個別ターゲット学習終了フラグが１になると学習が終了したと判定し、ブザー音を断続して（例えば、０．５秒鳴らし、０．５秒消す）鳴らすためのブザー信号をＣＡＮ通信システム１４を介してブザー１７に送信するとともに、メータ１９に光軸調整終了であることを表示させるためのメータ表示信号をＣＡＮ通信システム１４を介してメータＥＣＵ１８に送信する。
【００４９】
さらに、車間制御ＥＣＵ１２では、各種応答フラグ及び全ターゲット同時学習終了フラグ又は個別ターゲット学習終了フラグ並びに光軸調整用の補正量をＣＡＮ通信システム１４を介してテスタ３に送信する。
【００５０】
車間制御ＥＣＵ１２からの各種フラグを受信すると、テスタ３では、ダイアグノースに全ターゲット同時学習が完了か未完了か、ターゲット１学習が完了か未完了か、ターゲット２学習が完了か未完了か、ターゲット３学習が完了か未完了かを書き込む。また、車間制御ＥＣＵ１２からの光軸調整用の補正量を受信すると、テスタ３では、ダイアグノースにＦＯＥの補正量及びロール角を書き込む。また、テスタ３側（作業者を含む）では、個別ターゲット学習の場合、各ターゲット学習完了フラグに基づいて各個別ターゲット学習が完了したか否かを判断し、完了した場合には次のターゲットに対する学習に移る。また、テスタ３側では、全ターゲット同時学習終了フラグ又は個別ターゲット学習終了フラグに基づいて車両２に対する光軸調整が全て終了したか否かを判断し、終了した場合には次の車両２に対する光軸調整に移る。
【００５１】
次に、白線検出ＥＣＵ１１における光軸調整処理について詳細に説明する。白線検出ＥＣＵ１１では、車間制御ＥＣＵ１２を介してテスタ３からのターゲットを利用した学習要求を受けると、光軸調整処理を行うためのメインルーチンを一定時間毎に実行する。白線検出ＥＣＵ１１における光軸調整処理のメインルーチンについて図３のフローチャートに沿って説明する。図３は、白線検出ＥＣＵにおける光軸調整処理のメインルーチンを示すフローチャートである。
【００５２】
まず、メインルーチンでは、機能コード設定サブルーチンを実行し、車間制御ＥＣＵ１２からのモード情報に基づいて機能コードを設定する（Ｓ１）。
【００５３】
続いて、メインルーチンでは、光軸調整モード移行判定サブルーチンを実行し、光軸調整モードに移行したか否かを判定し、光軸調整モードに移行していないと判定した場合にはメインルーチンを終了する（Ｓ２）。
【００５４】
続いて、メインルーチンでは、光軸調整を正常に行うことができるか否かの異常判定を行い、異常がある場合にはメインルーチンを終了する（Ｓ３）。この異常判定では、工場光軸調整モード変化判定サブルーチン、ディーラ光軸調整モード変化判定サブルーチン、全ターゲット同時学習許可変化判定サブルーチン、ターゲット３学習許可変化判定サブルーチン、ターゲット２学習許可変化判定サブルーチン、ターゲット１学習許可変化判定サブルーチン、学習中ＥＥＰＲＯＭクリア要求判定サブルーチン、学習中ＥＥＰＲＯＭ書換要求判定サブルーチン、初期学習異常フラグ設定サブルーチンを実行する。
【００５５】
Ｓ３にて異常がない場合、メインルーチンでは、車両情報書込サブルーチンを実行し、初めて光軸調整モードに入った場合には車間制御ＥＣＵ１２からの車両情報をＥＥＰＲＯＭ１１ａに書き込む（Ｓ４）。続いて、メインルーチンでは、Ｓ３と同様の異常判定を行い、異常がある場合にはメインルーチンを終了する（Ｓ５）。
【００５６】
Ｓ５にて異常がない場合、メインルーチンでは、ＥＥＰＲＯＭ１１ａの変更を許可されているか否か（ＦＯＥ変更要求フラグが１か否か）を判定し（Ｓ６）、変更が許可されていない場合にはＳ８の処理に移行し、変更が許可されている場合にはターゲット配置情報及びカメラ配置情報をＥＥＰＲＯＭ１１ａに書き込む（Ｓ７）。続いて、メインルーチンでは、Ｓ３と同様の異常判定を行い、異常がある場合にはメインルーチンを終了する（Ｓ８）。
【００５７】
Ｓ８にて異常がない場合、メインルーチンでは、学習を許可できるか否かを判定し、許可できない場合にはＳ１６の処理に移行する（Ｓ９）。この許可判定では、まず、学習許可フラグ設定サブルーチンを実行し、さらに、ターゲット別学習許可フラグ設定サブルーチンを実行する。
【００５８】
学習を許可すると、メインルーチンでは、ターゲット別学習開始フラグ設定サブルーチンを実行し、各ターゲットに対する学習を開始するか否かを判定し、学習を開始しない場合にはＳ１６の処理に移行する（Ｓ１０）。そして、メインルーチンでは、学習開始と判定した場合には学習を開始する（Ｓ１１）。この学習開始では、全ターゲット同時学習の場合には全ターゲット同時学習中フラグ設定サブルーチンを実行し、ターゲット３学習の場合には順位毎ターゲット３学習中フラグ設定サブルーチンを実行し、ターゲット２学習の場合には順位毎ターゲット２学習中フラグ設定サブルーチンを実行し、ターゲット１学習の場合には順位毎ターゲット１学習中フラグ設定サブルーチンを実行する。
【００５９】
続いて、メインルーチンでは、ターゲット配置情報、カメラ配置情報及び車両情報に基づいて光軸補正用の補正量を演算する（Ｓ１２）。この際、個別ターゲット学習の場合、ターゲット１、ターゲット２、ターゲット３に分けて３度の学習が行われ、ターゲット１による学習によってＦＯＥの補正量が求められ、ターゲット２による学習及びターゲット３による学習によってカメラのロール角が求められる。また、全ターゲット同時学習の場合、全ターゲットによる１度の学習が行われ、ＦＯＥの補正量及びロール角を求められる。
【００６０】
学習を開始すると、メインルーチンでは、全ターゲット又は各個別ターゲットによる学習が完了したか否かを判定し、完了するまで光軸補正用の補正量の演算を継続する（Ｓ１３）。この完了判定では、全ターゲット同時学習の場合には全ターゲット同時学習終了フラグ設定サブルーチンを実行し、ターゲット３学習の場合にはターゲット３学習終了フラグ設定サブルーチンを実行し、ターゲット２学習の場合にはターゲット２学習終了フラグ設定サブルーチンを実行し、ターゲット１学習の場合にはターゲット１学習終了フラグ設定サブルーチンを実行する。なお、全ターゲット同時学習の場合には全ターゲット同時学習が完了した時点で学習が全て終了したことになり、個別ターゲット学習の場合にはターゲット１学習、ターゲット２学習、ターゲット３学習の３つの学習が全て完了して時点で学習が全て終了したことになる。したがって、Ｓ９〜Ｓ１３までの処理は、全ターゲット同時学習の場合には１度だけ行われ、個別ターゲット学習の場合には３回繰り返し行われる。
【００６１】
学習が全て終了すると、メインルーチンでは、ＥＥＰＲＯＭ１１ａの変更を許可されているか否か（ＦＯＥ変更要求フラグが１か否か）を判定し（Ｓ１４）、変更が許可されていない場合にはＳ１６の処理に移行し、変更が許可されている場合には求めた光軸調整用の補正量をＥＥＰＲＯＭ１１ａに書き込む（Ｓ１５）。続いて、メインルーチンでは、Ｓ３と同様の異常判定を行い、異常がある場合にはメインルーチンを終了する（Ｓ１６）。
【００６２】
Ｓ１６にて異常がない場合、メインルーチンでは、テスタ３から人為的又は車間制御ＥＣＵ１２の要求によりＥＥＰＲＯＭ１１ａのクリアが許可されているか否か判定し（Ｓ１７）、許可されていない場合にはＳ１９の処理に移行し、クリア許可されている場合にはＥＥＰＲＯＭ１１ａの書き込まれた内容をクリアする（Ｓ１８）。ちなみに、車両２が光軸調整中に動いた等の異常が発生すると、再光軸調整するために作業者が意図的にＥＥＰＲＯＭ１１ａの内容のクリア要求を出す場合や再光軸調整のときに車間制御ＥＣＵ１２が自動的にクリア要求を出す場合がある。
【００６３】
最後に、メインルーチンでは、ＥＥＰＲＯＭ１１ａから光軸調整用の補正量を読み出し、車間制御ＥＣＵ１２に送信する（Ｓ１９）。
【００６４】
ここで、学習に関するフラグについて説明しておく。学習許可フラグ［ａ＿ｓ］は、光軸調整による学習を許可するか否かのフラグであり、許可する場合には１であり、非許可の場合には０である。全ターゲット同時学習許可フラグ［ａ＿ｓａ］、ターゲット３学習許可フラグ［ａ＿ｓ３］、ターゲット２学習許可フラグ［ａ＿ｓ２］、ターゲット１学習許可フラグ［ａ＿ｓ１］は、各ターゲットによる学習を許可するか否かのフラグであり、許可する場合には１であり、非許可の場合には０である。全ターゲット同時学習開始フラグ［ｓａ＿ｓｔ］、ターゲット３学習開始フラグ［ｓ３＿ｓｔ］、ターゲット２学習開始フラグ［ｓ２＿ｓｔ］、ターゲット１学習開始フラグ［ｓ１＿ｓｔ］は、各ターゲットによる学習を開始するか否かのフラグであり、開始する場合には１であり、開始しない場合には０である。全ターゲット同時学習中フラグ［ｓａ＿ｓｐ］、ターゲット３学習中フラグ［ｓ３＿ｓｐ］、ターゲット２学習中フラグ［ｓ２＿ｓｐ］、ターゲット１学習中フラグ［ｓ１＿ｓｐ］は、各ターゲットによる学習が継続中か否かのフラグであり、継続中の場合には１であり、継続中でない場合には０である。全ターゲット同時学習完了フラグ［ｓａ＿ｆ］、ターゲット３学習完了フラグ［ｓ３＿ｆ］、ターゲット２学習完了フラグ［ｓ２＿ｆ］、ターゲット１学習完了フラグ［ｓ１＿ｆ］は、各ターゲットによる学習が完了したか否かのフラグであり、完了した場合には１であり、完了していない場合には０である。全ターゲット同時学習終了フラグ［ｓａ＿ｅ］、ターゲット３学習終了フラグ［ｓ３＿ｅ］、ターゲット２学習終了フラグ［ｓ２＿ｅ］、ターゲット１学習終了フラグ［ｓ１＿ｅ］は、全ターゲット同時学習の場合には全ターゲット同時学習が完了してＥＥＰＲＯＭ１１ａに補正量を書き込みまたは個別ターゲット学習の場合には３つの個別ターゲット学習が全て完了してＥＥＰＲＯＭ１１ａに補正量を書き込み、学習が全て終了したか否かのフラグであり、終了した場合には１であり、終了していない場合には０である。
【００６５】
また、異常に関するフラグについても説明しておく。初期学習異常フラグ［ｗ＿ｆ］は、光軸調整で異常がある場合には１であり、正常の場合には０である。初期学習異常フラグを構成する全ての異常フラグ［ｗ＿ｆ（ａｌｌ）］は、機能コード変化異常フラグ［ｗｓｅ０］、ターゲット１学習許可変化異常フラグ［ｗｓｅ１］、ターゲット２学習許可変化異常フラグ［ｗｓｅ２］、ターゲット３学習許可変化異常フラグ［ｗｓｅ３］、全ターゲット同時学習許可変化異常フラグ［ｗｓｅ４］、クリア要求発生異常フラグ［ｗｓｅ５］、書換要求発生異常フラグ［ｗｓｅ６］、この７つの異常フラグ［ｗｓｅ０〜ｗｓｅ６］のまとめ異常フラグ［ｗｓｅａ］、カメラ角度異常フラグ［ｗｓｅ１０］、学習時間異常フラグ［ｗｓｅ１１］、ターゲット相対位置異常フラグ［ｗｓｅ１２］、ターゲット数異常フラグ［ｗｓｅ１３］、この４つの異常フラグ［ｗｓｅ１０〜ｗｓｅ１３］のまとめ異常フラグ［ｗｓｅｂ］があり、異常がある場合には１であり、正常の場合には０である。全ての異常フラグ用のカウンタ［ｃ＿ｗ＿ｆ（ａｌｌ）］は、６つの異常フラグ［ｗｓｅ１〜ｗｓｅ６］を設定する際に用いるカウンタである。
【００６６】
次に、白線検出ＥＣＵ１１における各サブルーチンについて説明する。まず、白線検出ＥＣＵ１１における機能コード設定サブルーチンを図４のフローチャートに沿って説明する。図４は、白線検出ＥＣＵにおける光軸調整処理の機能コード設定サブルーチンのフローチャートである。機能コード設定サブルーチンでは、操舵支援モードから光軸調整モード（工場光軸調整モード又はディーラ光軸調整モード）への移行を判定し、移行判定したモードに応じて機能コードを設定する。
【００６７】
まず、機能コード設定サブルーチンでは、前回機能コードを前々回機能コードに格納し、現在設定されている機能コードを前回機能コードに格納する（Ｓ２０ａ）。続いて、機能コード設定サブルーチンでは、車両が停止状態（車速が０ｋｍ／ｈ）かつ操舵支援スイッチ［ＳＡＳＷ］がオンか否かを判定し（Ｓ２０ｂ）、車両が停止状態でない場合又は操舵支援スイッチがオフの場合には機能コードに操舵支援モードを設定する（Ｓ２０ｈ）。
【００６８】
Ｓ２０ｂにて車両が停止状態かつ操舵支援スイッチがオンの場合、機能コード設定サブルーチンでは、ＣＡＮＣ信号がオフか否かを判定し（Ｓ２０ｃ）、ＣＡＮＣ信号がオンの場合には機能コードに操舵支援モードを設定する（Ｓ２０ｈ）。
【００６９】
Ｓ２０ｃにてＣＡＮＣ信号がオフの場合、機能コード設定サブルーチンでは、機能コードが操舵支援モード又は工場光軸調整モードかつテスタ３側からの工場光軸調整要求が有りか（すなわち、工場光軸調整要求フラグが１）を判定し（Ｓ２０ｄ）、この条件を満たす場合には機能コードに工場光軸調整モードを設定する（Ｓ２０ｅ）。
【００７０】
Ｓ２０ｄにて条件を満たさない場合、機能コード設定サブルーチンでは、機能コードが操舵支援モード又はディーラ光軸調整モードかつテスタ３側からのディーラ光軸調整要求が有りか（すなわち、ディーラ光軸調整要求フラグが１）を判定し（Ｓ２０ｆ）、この条件を満たす場合には機能コードにディーラ光軸調整モードを設定（Ｓ２０ｇ）、条件を満たさない場合には機能コードに操舵支援モードを設定する（Ｓ２０ｈ）。
【００７１】
機能コード設定サブルーチンでは、車両２が動いている状態で作業者が光軸調整を行おうとしている場合や作業者が操舵支援スイッチ１５をオフしている場合には光軸調整を行う環境が整っていないので、光軸調整モードに移行させない。また、機能コード設定サブルーチンでは、車間制御ＥＣＵ１２によるＣＡＮ通信が強制停止されている場合には、学習を行うために必要な情報を得られない可能性があるので、光軸調整モードに移行させない。このように、機能コード設定サブルーチンでは、光軸調整を行うための開始条件が整っていない場合には光軸調整モードに移行させない。
【００７２】
次に、白線検出ＥＣＵ１１における光軸調整モード移行判定サブルーチンを図５のフローチャートに沿って説明する。図５は、白線検出ＥＣＵにおける光軸調整処理の光軸調整モード移行判定サブルーチンのフローチャートである。光軸調整モード移行判定サブルーチンでは、２回連続の操舵支援モードから光軸調整モードに移行したか否かを判定し、光軸調整モードに移行した場合には新規な光軸調整あるいは作業者が意図した再光軸調整とみなし、各フラグ及び各カウンタを初期化する。ここでは、イグニッションスイッチがオンした後、テスタ３からの要求により光軸調整モードに移行した状態か否かを判定する。また、光軸調整を１度実施した後、操舵支援モードに復帰し、その後、再度、光軸調整モードに移行する場合を判定する。つまり、光軸調整モード中、車間制御ＥＣＵ１２からの通信が一時的にエラーとなり、直ぐに、通信が正常に復帰した場合（この場合、新規に光軸調整モードに移行したとみなされるのを避けたい）とを見分ける。
【００７３】
まず、光軸調整モード移行判定サブルーチンでは、前々回機能コードが操舵支援モードかつ前回機能コードが操舵支援モードかつ今回機能コードが工場光軸調整モード又はディーラ光軸調整モードか否かを判定する（Ｓ２１ａ）。Ｓ２１ａの条件を満たさない場合、光軸調整モード移行判定サブルーチンでは、光軸調整モードに移行していないと判定する。
【００７４】
Ｓ２１ａの条件を満たす場合、光軸調整モード移行判定サブルーチンでは、新規な光軸調整あるいは作業者が意図した再光軸調整と判断し、初期学習異常フラグ［ｗ＿ｆ］、初期学習異常フラグを構成する全ての異常フラグ［ｗ＿ｆ（ａｌｌ）］、全ての異常フラグ用の各カウンタ［ｃ＿ｗ＿ｆ（ａｌｌ）］を全て初期化する（Ｓ２１ｂ）。
【００７５】
車間制御ＥＣＵ１２からの通信が一時的に異常になり、直ぐに正常復帰した場合、機能コードが一時的に操舵支援モードになり、直ぐに、光軸調整モードになる可能性がある。この場合、再度、車両情報をＥＥＰＲＯＭ１１ａに書き込む処理や今学習中なのに最初から学習をやり直すのを防止するために（つまり、意図しない再光軸調整を行わないために）、光軸調整モード移行判定サブルーチンでは、Ｓ２１ａの判定を行う。つまり、光軸調整モード移行判定サブルーチンにより、作業者が意図的に再光軸調整に移行させたか、あるいは、単に車間制御ＥＣＵ１２による通信が一時的に異常になったので機能コードが変化したのかを判別できる。これにより、再光軸調整時の各処理を実行せずに済むので、光軸調整時間を低減することができる。再光軸調整時には、前回の光軸調整（学習）において初期学習異常フラグが異常（１）になっていると考えられるので、初期学習異常フラグ等を初期化しておき、別の処理において初期化することによる光軸調整時間の増加を防止する。
【００７６】
次に、白線検出ＥＣＵ１１における工場光軸調整モード変化判定サブルーチンを図６のフローチャートに沿って説明する。図６は、白線検出ＥＣＵにおける光軸調整処理の工場光軸調整モード変化判定サブルーチンのフローチャートである。工場光軸調整モード変化判定サブルーチンでは、学習中に機能コード（工場光軸調整モード）が変化した場合、初期学習異常とするために機能コード変化異常フラグ［ｗｓｅ０］に異常設定をする。ちなみに、基準ルーチンは今回実行しているメインルーチンのことであり、次ルーチンは次回実行するメインルーチンのことである。
【００７７】
まず、工場光軸調整モード変化判定サブルーチンでは、前々回機能コードが工場光軸調整モードかつ前回機能コードが工場光軸調整モードかを判定する（Ｓ２２ａ）。Ｓ２２ａの条件には満たさない場合には、このサブルーチンを終了する。
【００７８】
Ｓ２２ａの条件を満たす場合、工場光軸調整モード変化判定サブルーチンでは、全ターゲット同時学習中フラグ［ｓａ＿ｓｐ］が１か、または、ターゲット３学習中フラグ［ｓ３＿ｓｐ］が１か、または、ターゲット２学習中フラグ［ｓ２＿ｓｐ］が１か、または、ターゲット１学習中フラグ［ｓ１＿ｓｐ］が１か（すなわち、いずれかのターゲットにより学習中か）を判定する（Ｓ２２ｂ）。学習中でない場合には、このサブルーチンを終了する。
【００７９】
いずれかのターゲットにより学習中の場合、工場光軸調整モード変化判定サブルーチンでは、機能コードが工場光軸調整モードでないか否かを判定する（Ｓ２２ｃ）。機能コードが工場光軸調整モードの場合には、このサブルーチンを終了する。
【００８０】
機能コードが工場光軸調整モードでない場合には、工場光軸調整モード変化判定サブルーチンでは、次のルーチンにおいて、再度、全ターゲット同時学習中フラグ［ｓａ＿ｓｐ］が１か、ターゲット３学習中フラグ［ｓ３＿ｓｐ］が１か、ターゲット２学習中フラグ［ｓ２＿ｓｐ］が１か、または、ターゲット１学習中フラグ［ｓ１＿ｓｐ］が１かを判定する（Ｓ２２ｄ）。学習中でない場合には、このサブルーチンを終了する。
【００８１】
いずれかのターゲットにより学習中の場合、工場光軸調整モード変化判定サブルーチンでは、再度、機能コードが工場光軸調整モードでないか否かを判定する（Ｓ２２ｅ）。機能コードが工場光軸調整モードの場合には、このサブルーチンを終了する。
【００８２】
機能コードが工場光軸調整モードでない場合には、工場光軸調整モード変化判定サブルーチンでは、学習中に機能コードが変化したと判断し、機能コード変化異常フラグ［ｗｓｅ０］に１（異常）を設定するとともに、全ターゲット同時学習、ターゲット３学習、ターゲット２学習、ターゲット１学習の全ての学習を禁止し（Ｓ２２ｆ）、このサブルーチンを終了する。
【００８３】
このように、工場光軸調整モード変化判定サブルーチンでは、機能コード（工場光軸調整モード）が何らかの原因で変化した場合、意図的な学習中止あるいは何らかの異常とみなせるので、無駄な学習を禁止する。２回のルーチンで連続して判定することにより、車間制御ＥＣＵ１２からの通信の一時的な異常になった場合を排除でき、システムとしての信頼性を向上させる。ちなみに、機能コードが変化する原因としては、作業者のミスや意図的に変化させる場合や車間制御ＥＣＵ１２の異常により変化させる場合等がある。
【００８４】
次に、白線検出ＥＣＵ１１におけるディーラ光軸調整モード変化判定サブルーチンを図７のフローチャートに沿って説明する。図７は、白線検出ＥＣＵにおける光軸調整処理のディーラ光軸調整モード変化判定サブルーチンのフローチャートである。ディーラ光軸調整モード変化判定サブルーチンでは、学習中に機能コード（ディーラ光軸調整モード）が変化した場合、初期学習異常とするために機能コード変化異常フラグ［ｗｓｅ０］に異常設定をする。ディーラ光軸調整モード変化判定サブルーチンは、機能コードが工場光軸調整モードからディーラ光軸調整モードに変わるだけで工場光軸調整モード変化判定サブルーチンと同様の処理であり、工場光軸調整モード変化判定サブルーチンのＳ２２ａ〜Ｓ２２ｆに対応してＳ２３ａ〜Ｓ２３ｆの処理がある。そこで、ディーラ光軸調整モード変化判定サブルーチンの詳細な説明は省略する。
【００８５】
次に、白線検出ＥＣＵ１１における全ターゲット同時学習許可変化サブルーチンを図８のフローチャートに沿って説明する。図８は、白線検出ＥＣＵにおける光軸調整処理の全ターゲット同時学習許可変化判定サブルーチンのフローチャートである。全ターゲット同時学習許可変化サブルーチンでは、全ターゲット同時学習中に、全ターゲット同時学習の学習許可が変化して異なる学習許可が発生した場合、作業者のミスや意図的な学習中止とみなし、初期学習異常とするために全ターゲット同時学習許可変化異常フラグ［ｗｓｅ４］に異常設定をする。
【００８６】
まず、全ターゲット同時学習許可変化サブルーチンでは、全ターゲット同時学習中フラグ［ｓａ＿ｓｐ］が１かつ（全ターゲット同時学習許可フラグ［ａ＿ｓａ］が０か、または、ターゲット３学習許可フラグ［ａ＿ｓ３］が１か、または、ターゲット２学習許可フラグ［ａ＿ｓ２］が１か、または、ターゲット１学習許可フラグ［ａ＿ｓ１］が１か）か（つまり、全ターゲット同時学習中に、他のターゲットに対する学習許可がでたか否か）を判定する（Ｓ２４ａ）。Ｓ２４ａの条件を満たさない場合には、全ターゲット同時学習許可変化サブルーチンでは、カウンタ［ｃ＿ｗｓｅ４］に０を設定し（Ｓ２４ｃ）、このサブルーチンを終了する。
【００８７】
全ターゲット同時学習中に、他のターゲットに対する学習許可がでた場合には、全ターゲット同時学習許可変化サブルーチンでは、カウンタ［ｃ＿ｗｓｅ４］に１を加算する（Ｓ２４ｂ）。続いて、全ターゲット同時学習許可変化サブルーチンでは、カウンタ［ｃ＿ｗｓｅ４］が２以上か否かを判定する（Ｓ２４ｄ）。カウンタ［ｃ＿ｗｓｅ４］が２未満の場合、このサブルーチンを終了する。
【００８８】
カウンタ［ｃ＿ｗｓｅ４］が２以上の場合、全ターゲット同時学習許可変化サブルーチンでは、全ターゲット同時学習許可変化異常フラグ［ｗｓｅ４］に１（異常）を設定するとともに、全ターゲット同時学習、ターゲット３学習、ターゲット２学習、ターゲット１学習の全ての学習を禁止する（Ｓ２４ｅ）。そして、全ターゲット同時学習許可変化サブルーチンでは、カウンタ［ｃ＿ｗｓｅ４］に０を設定し（Ｓ２４ｆ）、このサブルーチンを終了する。
【００８９】
次に、白線検出ＥＣＵ１１におけるターゲット３学習許可変化サブルーチンを図９のフローチャートに沿って説明する。図９は、白線検出ＥＣＵにおける光軸調整処理のターゲット３学習許可変化判定サブルーチンのフローチャートである。ターゲット３学習許可変化サブルーチンでは、ターゲット３学習中に、ターゲット３学習の学習許可が変化して異なる学習許可が発生した場合、初期学習異常とするためにターゲット３学習許可変化異常フラグ［ｗｓｅ３］に異常設定をする。ターゲット３学習許可変化サブルーチンは、学習のターゲットが全ターゲット同時からターゲット３に変わるだけで全ターゲット同時学習許可サブルーチンと同様の処理であり、全ターゲット同時学習許可サブルーチンのＳ２４ａ〜Ｓ２４ｆに対応してＳ２５ａ〜Ｓ２５ｆの処理がある。そこで、ターゲット３学習許可変化サブルーチンの詳細な説明は省略する。ちなみに、Ｓ２５ａの処理では、ターゲット３学習中に、他のターゲットに対する学習許可がでたか否かを判定している。
【００９０】
次に、白線検出ＥＣＵ１１におけるターゲット２学習許可変化サブルーチンを図１０のフローチャートに沿って説明する。図１０は、白線検出ＥＣＵにおける光軸調整処理のターゲット２学習許可変化判定サブルーチンのフローチャートである。ターゲット２学習許可変化サブルーチンでは、ターゲット２学習中に、ターゲット２学習の学習許可が変化して異なる学習許可が発生した場合、初期学習異常とするためにターゲット２学習許可変化異常フラグ［ｗｓｅ２］に異常設定をする。ターゲット２学習許可変化サブルーチンも、学習のターゲットが全ターゲット同時からターゲット２に変わるだけで全ターゲット同時学習許可サブルーチンと同様の処理であり、全ターゲット同時学習許可サブルーチンのＳ２４ａ〜Ｓ２４ｆに対応してＳ２６ａ〜Ｓ２６ｆの処理がある。そこで、ターゲット２学習許可変化サブルーチンの詳細な説明は省略する。ちなみに、Ｓ２６ａの処理では、ターゲット２学習中に、他のターゲットに対する学習許可がでたか否かを判定している。
【００９１】
次に、白線検出ＥＣＵ１１におけるターゲット１学習許可変化サブルーチンを図１１のフローチャートに沿って説明する。図１１は、白線検出ＥＣＵにおける光軸調整処理のターゲット１学習許可変化判定サブルーチンのフローチャートである。ターゲット１学習許可変化サブルーチンでは、ターゲット１学習中に、ターゲット１学習の学習許可が変化して異なる学習許可が発生した場合、初期学習異常とするためにターゲット１学習許可変化異常フラグ［ｗｓｅ１］に異常設定をする。ターゲット１学習許可変化サブルーチンも、学習のターゲットが全ターゲット同時からターゲット１に変わるだけで全ターゲット同時学習許可サブルーチンと同様の処理であり、全ターゲット同時学習許可サブルーチンのＳ２４ａ〜Ｓ２４ｆに対応してＳ２７ａ〜Ｓ２７ｆの処理がある。そこで、ターゲット１学習許可変化サブルーチンの詳細な説明は省略する。ちなみに、Ｓ２７ａの処理では、ターゲット１学習中に、他のターゲットに対する学習許可がでたか否かを判定している。
【００９２】
このように、学習中に何らかの原因で学習許可が変化した場合、学習中止とみなせるので、無駄な学習を禁止する。また、２回のルーチンで連続して判定することにより、車間制御ＥＣＵ１２による通信が一時的に異常になった場合を排除でき、システムとしての信頼性を向上させる。ちなみに、学習許可が変化する原因としては、作業者によるヒューマンエラーの場合や車間制御ＥＣＵ１２が異常の場合等がある。
【００９３】
次に、白線検出ＥＣＵ１１における学習中ＥＥＰＲＯＭクリア要求判定サブルーチンを図１２のフローチャートに沿って説明する。図１２は、白線検出ＥＣＵにおける光軸調整処理の学習中ＥＥＰＲＯＭクリア要求判定サブルーチンのフローチャートである。学習中ＥＥＰＲＯＭクリア要求判定サブルーチンでは、学習中にＥＥＰＥＯＭ１１ａのクリア要求があった場合、作業者のミスや意図的な学習中止とみなし、初期学習異常とするためにクリア要求発生異常フラグ［ｗｓｅ５］に異常設定をする。
【００９４】
まず、学習中ＥＥＰＲＯＭクリア要求判定サブルーチンでは、（全ターゲット同時学習中フラグ［ｓａ＿ｓｐ］が１か、または、ターゲット３学習中フラグ［ｓ３＿ｓｐ］が１か、または、ターゲット２学習中フラグ［ｓ２＿ｓｐ］が１か、または、ターゲット１学習中フラグ［ｓ１＿ｓｐ］が１か）の時にＥＥＰＲＯＭクリア要求があるか否かを判定する（Ｓ２８ａ）。Ｓ２８ａの条件を満たさない場合には、学習中ＥＥＰＲＯＭクリア要求判定サブルーチンでは、カウンタ［ｃ＿ｗｓｅ５］に０を設定し（Ｓ２８ｃ）、このサブルーチンを終了する。
【００９５】
学習中にＥＥＰＲＯＭクリア要求があった場合には、学習中ＥＥＰＲＯＭクリア要求判定サブルーチンでは、カウンタ［ｃ＿ｗｓｅ５］に１を加算する（Ｓ２８ｂ）。続いて、学習中ＥＥＰＲＯＭクリア要求判定サブルーチンでは、カウンタ［ｃ＿ｗｓｅ５］が２以上か否かを判定する（Ｓ２８ｄ）。カウンタ［ｃ＿ｗｓｅ５］が２未満の場合、このサブルーチンを終了する。
【００９６】
カウンタ［ｃ＿ｗｓｅ５］が２以上の場合、学習中ＥＥＰＲＯＭクリア要求判定サブルーチンでは、クリア要求発生異常フラグ［ｗｓｅ５］に１（異常）を設定するとともに、全ターゲット同時学習、ターゲット３学習、ターゲット２学習、ターゲット１学習の全ての学習を禁止する（Ｓ２８ｅ）。そして、学習中ＥＥＰＲＯＭクリア要求判定サブルーチンでは、カウンタ［ｃ＿ｗｓｅ５］に０を設定し（Ｓ２８ｆ）、このサブルーチンを終了する。
【００９７】
次に、白線検出ＥＣＵ１１における学習中ＥＥＰＲＯＭ書換要求判定サブルーチンを図１３のフローチャートに沿って説明する。図１３は、白線検出ＥＣＵにおける光軸調整処理の学習中ＥＥＰＲＯＭ書換要求判定サブルーチンのフローチャートである。学習中ＥＥＰＲＯＭ書換要求判定サブルーチンでは、学習中にＥＥＰＥＯＭ１１ａの書換要求があった場合、作業者のミスや意図的な学習中止とみなし、初期学習異常とするために書換要求発生異常フラグ［ｗｓｅ６］に異常設定をする。学習中ＥＥＰＲＯＭ書換要求判定サブルーチンは、ＥＥＰＲＯＭに対する要求がクリア要求から書換要求に変わるだけで学習中ＥＥＰＲＯＭクリア要求判定サブルーチンと同様の処理であり、学習中ＥＥＰＲＯＭクリア要求判定サブルーチンのＳ２８ａ〜Ｓ２８ｆに対応してＳ２９ａ〜Ｓ２９ｆの処理がある。そこで、学習中ＥＥＰＲＯＭ書換要求判定サブルーチンの詳細な説明は省略する。
【００９８】
このように、学習中に何らかの原因でクリア要求や書換要求が発生した場合、学習中止とみなせるので、無駄な学習を禁止する。また、２回のルーチンで連続して判定することにより、上記と同様に、システムとしての信頼性を向上させる。ちなみに、クリア要求や書換要求の発生原因としては、作業者によるヒューマンエラーの場合や車間制御ＥＣＵ１２が異常の場合等がある。
【００９９】
次に、白線検出ＥＣＵ１１における初期学習異常フラグ設定サブルーチンを図１４のフローチャートに沿って説明する。図１４は、白線検出ＥＣＵにおける光軸調整処理の初期学習異常フラグ設定サブルーチンのフローチャートである。初期学習異常フラグ設定サブルーチンでは、各種異常フラグのいずれかに異常設定がされている場合に、初期学習異常フラグ［ｗ＿ｆ］に異常設定する。
【０１００】
まず、初期学習異常フラグ設定サブルーチンでは、書換要求発生異常フラグ［ｗｓｅ６］が１か、または、クリア要求発生異常フラグ［ｗｓｅ５］が１か、または、全ターゲット同時学習許可変化異常フラグ［ｗｓｅ４］が１か、または、ターゲット３学習許可変化異常フラグ［ｗｓｅ３］が１か、または、ターゲット２学習許可変化異常フラグ［ｗｓｅ２］が１か、または、ターゲット１学習許可変化異常フラグ［ｗｓｅ１］が１か、または、機能コード変化異常フラグ［ｗｓｅ０］が１かを判定する（Ｓ３０ａ）。Ｓ３０ａの条件を満たさない場合には、Ｓ３０ｃの処理に移行する。
【０１０１】
７つの異常フラグ［ｗｓｅ０〜ｗｓｅ６］のいずれかが異常設定されている場合、初期学習異常フラグ設定サブルーチンでは、まとめ異常フラグ［ｗｓｅａ］に１（異常）を設定する（Ｓ３０ｂ）。
【０１０２】
続いて、初期学習異常フラグ設定サブルーチンでは、ターゲット数異常フラグ［ｗｓｅ１３］が１か、または、ターゲット相対位置異常フラグ［ｗｓｅ１２］が１か、または、学習時間異常フラグ［ｗｓｅ１１］が１か、または、カメラ角度異常フラグ［ｗｓｅ１０］が１かを判定する（Ｓ３０ｃ）。Ｓ３０ｃの条件を満たさない場合には、Ｓ３０ｅの処理に移行する。
【０１０３】
４つの異常フラグ［ｗｓｅ１０〜ｗｓｅ１３］のいずれかが異常設定されている場合、初期学習異常フラグ設定サブルーチンでは、まとめ異常フラグ［ｗｓｅｂ］に１（異常）を設定する（Ｓ３０ｄ）。
【０１０４】
続いて、初期学習異常フラグ設定サブルーチンでは、まとめ異常フラグ［ｗｓｅａ］が１か、または、まとめ異常フラグ［ｗｓｅｂ］が１かを判定する（Ｓ３０ｅ）。Ｓ３０ｅの条件を満たさない場合には、このサブルーチンを終了する。
【０１０５】
まとめ異常フラグ［ｗｓｅａ，ｗｓｅｂ］のいずれかが異常設定（すなわち、１１の異常フラグ［ｗｓｅ０〜ｗｓｅ６，ｗｓｅ１０〜ｗｓｅ１３］のいずれかが異常設定）されている場合、初期学習異常フラグ設定サブルーチンでは、初期学習異常フラグ［ｗ＿ｆ］に１（異常）を設定し（Ｓ３０ｆ）、このサブルーチンを終了する。
【０１０６】
次に、白線検出ＥＣＵ１１における車両情報書込サブルーチンを図１５のフローチャートに沿って説明する。図１５は、白線検出ＥＣＵにおける光軸調整処理の車両情報書込サブルーチンのフローチャートである。車両情報書込サブルーチンでは、操舵支援モードから光軸調整モードに初めて移行したか否かを判定し、初めて移行した場合にはＥＥＰＲＯＭ１１ａに車両情報を書き込む。
【０１０７】
まず、車両情報書込サブルーチンでは、機能コードが操舵支援モードから工場光軸調整モードまたはディーラ光軸調整モードに今回のルーチンで移行したか否かを判定する（Ｓ３１ａ）。車両情報書込サブルーチンでは、Ｓ３１ａにて移行したと判定した場合には光軸調整モード初回移行フラグ［ｆ＿ｕ］に１を設定し（Ｓ３１ｂ）、Ｓ３１ａにて移行していないと判定した場合にはＳ３１ｃの処理に移行する。光軸調整モード初回移行フラグ［ｆ＿ｕ］は、光軸調整モードに初めて移行したか否かを示すとともに車両情報がＥＥＰＲＯＭ１１ａに書き込まれているか否かも示し、初めて移行した場合（書き込まれていない場合）には１であり、初めての移行でない場合（書き込まれている場合）には０である。
【０１０８】
続いて、車両情報書込サブルーチンでは、光軸調整モード初回移行フラグ［ｆ＿ｕ］が１か否かを判定する（Ｓ３１ｃ）。Ｓ３１にて光軸調整モード初回移行フラグ［ｆ＿ｕ］が１でない場合、このサブルーチンを終了する。
【０１０９】
Ｓ３１にて光軸調整モード初回移行フラグ［ｆ＿ｕ］が１の場合、車両情報書込サブルーチンでは、再度、機能コードが工場光軸調整モードか、または、ディーラ光軸調整モードか（すなわち、光軸調整モードか）を判定する（Ｓ３１ｄ）。光軸調整モードでない場合には、車両情報書込サブルーチンでは、車両情報の書き込みを止めて、Ｓ３１ｆの処理に移行する。
【０１１０】
光軸調整モードの場合、車両情報書込サブルーチンでは、車両情報をＥＥＰＲＯＭ１１ａに書き込む（Ｓ３１ｅ）。そして、車両情報書込サブルーチンでは、光軸調整モード初回移行フラグ［ｆ＿ｕ］に０を設定し（Ｓ３１ｆ）、このサブルーチンを終了する。
【０１１１】
このように、車両情報書込サブルーチンでは、光軸調整モードに初めて移行したとき１回だけ車両情報を書き込み、車両情報の書き込み回数を制限し、光軸調整時間を短縮する。
【０１１２】
次に、白線検出ＥＣＵ１１における学習許可フラグ設定サブルーチンを図１６のフローチャートに沿って説明する。図１６は、白線検出ＥＣＵにおける光軸調整処理の学習許可フラグ設定サブルーチンのフローチャートである。学習許可フラグ設定サブルーチンでは、学習を始める（光軸調整用の補正量を求める）ための諸条件が成立しているか否かを判定し、成立している場合には光軸調整による学習を許可する。ちなみに、各学習には１分程度の時間が必要であり、この学習時間を短くすることが検査ライン（生産ライン）の効率を上げることになる。したがって、外乱等によって車間制御ＥＣＵ１２との通信が一時的に異常となった場合でも、学習を中止せずに、可能な限り学習を続けさせる。
【０１１３】
まず、学習許可フラグ設定サブルーチンでは、機能コードが工場光軸調整モードか、または、ディーラ光軸調整モードかを判定する（Ｓ３２ａ）。光軸調整モードでない場合、学習許可フラグ設定サブルーチンでは、学習を非許可とし、学習許可フラグ［ａ＿ｓ］に０を設定する（Ｓ３２ｌ）。
【０１１４】
光軸調整モードの場合、学習許可フラグ設定サブルーチンでは、電源電圧が正常か否かを判定する（Ｓ３２ｂ）。電源電圧が異常の場合には、学習許可フラグ設定サブルーチンでは、学習を非許可とし、学習許可フラグ［ａ＿ｓ］に０を設定する（Ｓ３２ｌ）。
【０１１５】
電源電圧が正常の場合には、学習許可フラグ設定サブルーチンでは、電源投入から１秒以上が経過しているか否かを判定する（Ｓ３２ｃ）。１秒以上経過していない場合には、学習許可フラグ設定サブルーチンでは、学習を非許可とし、学習許可フラグ［ａ＿ｓ］に０を設定する（Ｓ３２ｌ）。電源投入から間もないとシステム的に安定していないので、電源投入から１秒間を条件としている。
【０１１６】
１秒以上経過している場合、学習許可フラグ設定サブルーチンでは、全ターゲット同時学習開始フラグ［ｓａ＿ｓｔ］が１か、または、ターゲット１学習開始フラグ［ｓ１＿ｓｔ］が１か、または、ターゲット２学習開始フラグ［ｓ２＿ｓｔ］が１か、または、ターゲット３学習開始フラグ［ｓ３＿ｓｔ］が１か、または、全ターゲット同時学習中フラグ［ｓａ＿ｓｐ］が１か、または、ターゲット１学習中フラグ［ｓ１＿ｓｐ］が１か、または、ターゲット２学習中フラグ［ｓ２＿ｓｐ］が１か、または、ターゲット３学習中フラグ［ｓ３＿ｓｐ］が１か（すなわち、いずれかのターゲットによる学習中か否か）を判定する（Ｓ３２ｄ）。
【０１１７】
Ｓ３２ｄにて学習中の場合には、学習許可フラグ設定サブルーチンでは、車間制御ＥＣＵ１２とのシリアル通信の異常時間がＴｉ以下か、または、車間制御ＥＣＵ１２とのシリアル通信が正常かを判定する（Ｓ３２ｅ）。Ｔｉは、車間制御ＥＣＵ１２とのシリアル通信の一時的な異常の許容時間である。
【０１１８】
Ｓ３２ｄにて学習中でない場合、学習許可フラグ設定サブルーチンでは、（全ターゲット同時学習開始フラグ［ｓａ＿ｓｔ］が０か、かつ、ターゲット１学習開始フラグ［ｓ１＿ｓｔ］が０か、かつ、ターゲット２学習開始フラグ［ｓ２＿ｓｔ］が０か、かつ、ターゲット３学習開始フラグ［ｓ３＿ｓｔ］が０か、かつ、全ターゲット同時学習中フラグ［ｓａ＿ｓｐ］が０か、かつ、ターゲット１学習中フラグ［ｓ１＿ｓｐ］が０か、かつ、ターゲット２学習中フラグ［ｓ２＿ｓｐ］が０か、かつ、ターゲット３学習中フラグ［ｓ３＿ｓｐ］が０か（すなわち、いずれのターゲットでも学習中でないか））、かつ、車間制御ＥＣＵ１２とのシリアル通信が正常かを判定する（Ｓ３２ｆ）。Ｓ３２ｆの条件を満たさない場合には、学習許可フラグ設定サブルーチンでは、学習を非許可とし、学習許可フラグ［ａ＿ｓ］に０を設定する（Ｓ３２ｌ）。
【０１１９】
Ｓ３２ｅの条件を満たす場合またはＳ３２ｆの条件を満たす場合、学習許可フラグ設定サブルーチンでは、宿題演算フラグ［ｗｈ］が０か否かを判定する（Ｓ３２ｇ）。宿題演算フラグ［ｗｈ］は、車間制御ＥＣＵ１２での宿題演算が正常に行われたか否かを示すフラグであり、正常の場合には０であり、異常の場合には１である。車間制御ＥＣＵ１２での宿題演算が異常の場合には、学習許可フラグ設定サブルーチンでは、学習を非許可とし、学習許可フラグ［ａ＿ｓ］に０を設定する（Ｓ３２ｌ）。
【０１２０】
車間制御ＥＣＵ１２での宿題演算が正常の場合には、学習許可フラグ設定サブルーチンでは、ＣＡＮＣフラグが０か否かを判定する（Ｓ３２ｈ）。ＣＡＮＣフラグは、ＣＡＮＣ信号がオンされて車間制御ＥＣＵ１２によるＣＡＮ通信が強制停止させたか否かを示すフラグであり、強制停止中の場合には１であり、非停止中の場合には０である。ＣＡＮ通信が強制停止中の場合には、学習許可フラグ設定サブルーチンでは、学習を非許可とし、学習許可フラグ［ａ＿ｓ］に０を設定する（Ｓ３２ｌ）。
【０１２１】
ＣＡＮ通信が非停止中の場合には、学習許可フラグ設定サブルーチンでは、白線検出ＥＣＵ１１が正常か否かを判定する（Ｓ３２ｉ）。白線検出ＥＣＵ１１が異常の場合には、学習許可フラグ設定サブルーチンでは、学習を非許可とし、学習許可フラグ［ａ＿ｓ］に０を設定する（Ｓ３２ｌ）。
【０１２２】
白線検出ＥＣＵ１１が正常の場合には、学習許可フラグ設定サブルーチンでは、ＦＯＥ変更要求フラグが１か否か（すなわち、光軸調整量の補正量の書き換え要求があるか否か）を判定する（Ｓ３２ｊ）。光軸調整量の補正量の書き換え要求がない場合には、学習許可フラグ設定サブルーチンでは、学習を非許可とし、学習許可フラグ［ａ＿ｓ］に０を設定する（Ｓ３２ｌ）。
【０１２３】
光軸調整量の補正量の書き換え要求がある場合には、学習許可フラグ設定サブルーチンでは、学習を許可し、学習許可フラグ［ａ＿ｓ］に１を設定する（Ｓ３２ｋ）。学習許可フラグ設定サブルーチンでは、学習許可フラグ［ａ＿ｓ］に１または０を設定し、このサブルーチンを終了する。
【０１２４】
このように、学習許可フラグ設定サブルーチンでは、学習中に一時的に車間制御ＥＣＵ１２の通信が異常となっても学習に必要な情報は既に取得しているので、学習を継続させ、光軸調整時間の短縮を図る。また、学習許可フラグ設定サブルーチンでは、車間制御ＥＣＵ１２の通信が正常であっても、宿題演算が異常の場合（すなわち、車間制御ＥＣＵ１２の異常の場合）には車間制御ＥＣＵ１２からの情報の信憑性に欠けるので、学習を許可せず、システムとしての信頼性を向上させる。
【０１２５】
次に、白線検出ＥＣＵ１１におけるターゲット別学習許可フラグ設定サブルーチンを図１７のフローチャートに沿って説明する。図１７は、白線検出ＥＣＵにおける光軸調整処理のターゲット別学習許可フラグ設定サブルーチンのフローチャートである。ターゲット別学習許可フラグ設定サブルーチンでは、光軸調整による学習が許可されている場合、いずれのターゲットに対する学習要求が有るかを判定し、学習要求が有るターゲットに対する学習を許可する。
【０１２６】
まず、ターゲット別学習許可フラグ設定サブルーチンでは、学習許可フラグ［ａ＿ｓ］が１か否かを判定する（Ｓ３３ａ）。光軸調整による学習が許可されていない場合、ターゲット別学習許可フラグ設定サブルーチンでは、全てのターゲットに対する学習を非許可とし、全ターゲット同時学習許可フラグ［ａ＿ｓａ］、ターゲット１学習許可フラグ［ａ＿ｓ１］、ターゲット２学習許可フラグ［ａ＿ｓ２］、ターゲット３学習許可フラグ［ａ＿ｓ３］に全て０を設定し（Ｓ３３ｎ）、このサブルーチンを終了する。
【０１２７】
光軸調整による学習が許可されている場合、ターゲット別学習許可フラグ設定サブルーチンでは、全ターゲット同時学習要求が有るか否か（すなわち、全ターゲット同時学習要求フラグが１か否か）を判定する（Ｓ３３ｂ）。
【０１２８】
全ターゲット同時学習要求が有る場合には、ターゲット別学習許可フラグ設定サブルーチンでは、全ターゲット同時学習許可フラグ［ａ＿ｓａ］に１を設定（すなわち、全ターゲット同時学習を許可）し（Ｓ３３ｃ）、このサブルーチンを終了する。全ターゲット同時学習要求がない場合には、ターゲット別学習許可フラグ設定サブルーチンでは、全ターゲット同時学習許可フラグ［ａ＿ｓａ］に０を設定（すなわち、全ターゲット同時学習を非許可と）し（Ｓ３３ｄ）、ターゲット１学習要求が有るか否か（すなわち、ターゲット１学習要求フラグが１か否か）を判定する（Ｓ３３ｅ）。
【０１２９】
ターゲット１学習要求が有る場合には、ターゲット別学習許可フラグ設定サブルーチンでは、ターゲット１学習許可フラグ［ａ＿ｓ１］に１を設定（すなわち、ターゲット１学習を許可）し（Ｓ３３ｆ）、このサブルーチンを終了する。ターゲット１学習要求がない場合には、ターゲット別学習許可フラグ設定サブルーチンでは、ターゲット１学習許可フラグ［ａ＿ｓ１］に０を設定（すなわち、ターゲット１学習を非許可と）し（Ｓ３３ｇ）、ターゲット２学習要求が有るか否か（すなわち、ターゲット２学習要求フラグが１か否か）を判定する（Ｓ３３ｈ）。
【０１３０】
ターゲット２学習要求が有る場合には、ターゲット別学習許可フラグ設定サブルーチンでは、ターゲット２学習許可フラグ［ａ＿ｓ２］に１を設定（すなわち、ターゲット２学習を許可）し（Ｓ３３ｉ）、このサブルーチンを終了する。ターゲット２学習要求がない場合には、ターゲット別学習許可フラグ設定サブルーチンでは、ターゲット２学習許可フラグ［ａ＿ｓ２］に０を設定（すなわち、ターゲット２学習を非許可と）し（Ｓ３３ｊ）、ターゲット３学習要求が有るか否か（すなわち、ターゲット３学習要求フラグが１か否か）を判定する（Ｓ３３ｋ）。
【０１３１】
ターゲット３学習要求が有る場合には、ターゲット別学習許可フラグ設定サブルーチンでは、ターゲット３学習許可フラグ［ａ＿ｓ３］に１を設定（すなわち、ターゲット３学習を許可）し（Ｓ３３ｌ）、このサブルーチンを終了する。ターゲット３学習要求がない場合には、ターゲット別学習許可フラグ設定サブルーチンでは、ターゲット３学習許可フラグ［ａ＿ｓ３］に０を設定（すなわち、ターゲット３学習を非許可と）し（Ｓ３３ｍ）、このサブルーチンを終了する。
【０１３２】
このように、ターゲット別学習許可フラグ設定サブルーチンにおいて各ターゲットに対する学習を許可することによって、全ターゲット同時に学習することもできるし、あるいは、ターゲット１、ターゲット２、ターゲット３によって個別に学習することもできる。
【０１３３】
次に、白線検出ＥＣＵ１１におけるターゲット別学習開始サブルーチンを図１８のフローチャートに沿って説明する。図１８は、白線検出ＥＣＵにおける光軸調整処理のターゲット別学習開始フラグ設定サブルーチンのフローチャートである。ターゲット別学習開始サブルーチンでは、全ターゲット同時またはターゲット１、ターゲット２、ターゲット３のいずれのターゲットによって学習を始めるのかを判定する。特に、複数の個別ターゲット学習の場合、あるターゲットに対して学習が許可されていても、そのターゲットに対する学習が完了しているときにはそのターゲットに対する学習を開始しない。
【０１３４】
まず、ターゲット別学習開始サブルーチンでは、全ターゲット同時学習許可フラグ［ａ＿ｓａ］が今回のルーチンで初めて０から１に切り替わり（全ターゲット同時学習が今回のルーチンで許可され）、かつ、（いずれのターゲットに対しても学習開始していないかつ学習中でもない）を判定する（Ｓ３４ａ）。いずれのターゲットに対しても学習開始していないかつ学習中でもないかは、条件Ｘに示すように、全ターゲット同時学習開始フラグ［ｓａ＿ｓｔ］、全ターゲット同時学習中フラグ［ｓａ＿ｓｐ］、ターゲット１学習開始フラグ［ｓ１＿ｓｔ］、ターゲット１学習中フラグ［ｓ１＿ｓｐ］、ターゲット２学習開始フラグ［ｓ２＿ｓｔ］、ターゲット２学習中フラグ［ｓ２＿ｓｐ］、ターゲット３学習開始フラグ［ｓ３＿ｓｔ］、ターゲット３学習中フラグ［ｓ３＿ｓｐ］が全て０であるか否かで判定され、全て０の場合がいずれのターゲットに対しても学習開始していないかつ学習中でもない。
【０１３５】
Ｓ３４ａの条件を満たす場合には、ターゲット別学習開始サブルーチンでは、全ターゲット同時学習を始めると決定し、全ターゲット同時学習開始フラグ［ｓａ＿ｓｔ］に１を設定し（Ｓ３４ｂ）、このサブルーチンを終了する。Ｓ３４ａの条件を満たさない場合には、ターゲット別学習開始サブルーチンでは、ターゲット１学習許可フラグ［ａ＿ｓ１］が今回のルーチンで初めて０から１に切り替わり（ターゲット１学習が今回のルーチンで許可され）、かつ、（いずれのターゲットに対しても学習開始していないかつ学習中でもない）を判定する（Ｓ３４ｃ）。
【０１３６】
Ｓ３４ｃの条件を満たす場合には、ターゲット別学習開始サブルーチンでは、ターゲット１学習完了フラグ［ｓ１＿ｆ］が０か否かを判定する（Ｓ３４ｄ）。ターゲット１学習完了フラグ［ｓ１＿ｆ］が１の場合、ターゲット１による学習は既に完了しているので、ターゲット１による再学習をさせないために、このＳ３４ｄの判定を行う。
【０１３７】
Ｓ３４ｄの条件を満たす場合（すなわち、ターゲット１による初めて学習の場合）には、ターゲット別学習開始サブルーチンでは、ターゲット１学習を始めると決定し、ターゲット１学習開始フラグ［ｓ１＿ｓｔ］に１を設定し（Ｓ３４ｅ）、このサブルーチンを終了する。Ｓ３４ｃの条件を満たさない場合またはＳ３４ｄの条件を満たさない場合には、ターゲット別学習開始サブルーチンでは、ターゲット２学習許可フラグ［ａ＿ｓ２］が今回のルーチンで初めて０から１に切り替わり（ターゲット２学習が今回のルーチンで許可され）、かつ、（いずれのターゲットに対しても学習開始していないかつ学習中でもない）を判定する（Ｓ３４ｆ）。
【０１３８】
Ｓ３４ｆの条件を満たす場合には、ターゲット別学習開始サブルーチンでは、ターゲット２学習完了フラグ［ｓ２＿ｆ］が０か否かを判定する（Ｓ３４ｇ）。ターゲット２学習完了フラグ［ｓ２＿ｆ］が１の場合、ターゲット２による学習は既に完了しているので、ターゲット２による再学習をさせないために、このＳ３４ｇの判定を行う。
【０１３９】
Ｓ３４ｇの条件を満たす場合（すなわち、ターゲット２による初めて学習の場合）には、ターゲット別学習開始サブルーチンでは、ターゲット２学習を始めると決定し、ターゲット２学習開始フラグ［ｓ２＿ｓｔ］に１を設定し（Ｓ３４ｈ）、このサブルーチンを終了する。Ｓ３４ｆの条件を満たさない場合またはＳ３４ｇの条件を満たさない場合には、ターゲット別学習開始サブルーチンでは、ターゲット３学習許可フラグ［ａ＿ｓ３］が今回のルーチンで初めて０から１に切り替わり（ターゲット３学習が今回のルーチンで許可され）、かつ、（いずれのターゲットに対しても学習開始していないかつ学習中でもない）を判定する（Ｓ３４ｉ）。
【０１４０】
Ｓ３４ｉの条件を満たす場合には、ターゲット別学習開始サブルーチンでは、ターゲット３学習完了フラグ［ｓ３＿ｆ］が０か否かを判定する（Ｓ３４ｊ）。ターゲット３学習完了フラグ［ｓ２＿ｆ］が１の場合、ターゲット３による学習は既に完了しているので、ターゲット３による再学習をさせないために、このＳ３４ｉの判定を行う。
【０１４１】
Ｓ３４ｉの条件を満たす場合（すなわち、ターゲット３による初めて学習の場合）には、ターゲット別学習開始サブルーチンでは、ターゲット３学習を始めると決定し、ターゲット３学習開始フラグ［ｓ３＿ｓｔ］に１を設定し（Ｓ３４ｋ）、このサブルーチンを終了する。Ｓ３４ｉの条件を満たさない場合またはＳ３４ｊの条件を満たさない場合には、ターゲット別学習開始サブルーチンでは、このサブルーチンを終了する。
【０１４２】
このように、ターゲット別学習開始サブルーチンでは、各ターゲットに対する学習許可されたルーチンにおいてのみそのターゲットによる学習開始を決定するので、学習中に同じターゲットに対する学習要求がきても、再度、学習を開始することなくそのまま学習を継続し、光軸調整時間を短縮する。また、ターゲット別学習開始サブルーチンでは、個別ターゲット学習の場合、既に学習が完了しているターゲットに対する学習要求がきても、その学習を開始させないので、再度、学習を開始することなく、光軸調整時間を短縮する。これにより、作業者によるミスをカバーできる。
【０１４３】
次に、白線検出ＥＣＵ１１における全ターゲット同時学習中フラグ設定サブルーチンを図１９のフローチャートに沿って説明する。図１９は、白線検出ＥＣＵにおける光軸調整処理の全ターゲット同時学習中フラグ設定サブルーチンのフローチャートである。全ターゲット同時学習中フラグ設定サブルーチンでは、全ターゲット同時学習が継続している状態であれば、全ターゲット学習を開始し、全ターゲット同時学習開始フラグ［ｓａ＿ｓｔ］をクリアする。
【０１４４】
まず、全ターゲット同時学習中フラグ設定サブルーチンでは、全ターゲット同時学習開始フラグ［ｓａ＿ｓｔ］が１か否かを判定する（Ｓ３５ａ）。全ターゲット同時学習開始フラグ［ｓａ＿ｓｔ］が０の場合には、このサブルーチンを終了する。
【０１４５】
全ターゲット同時学習開始フラグ［ｓａ＿ｓｔ］が１の場合には、全ターゲット同時学習中フラグ設定サブルーチンでは、全ターゲット同時学習を開始するとともに、全ターゲット同時学習開始フラグ［ｓａ＿ｓｔ］に０を設定し、全ターゲット同時学習中フラグ［ｓａ＿ｓｐ］に１を設定する（Ｓ３５ｂ）。さらに、全ターゲット同時学習中フラグ設定サブルーチンでは、全ターゲット同時学習完了フラグ［ｓａ＿ｆ］、ターゲット１学習完了フラグ［ｓ１＿ｆ］、ターゲット２学習完了フラグ［ｓ２＿ｆ］、ターゲット３学習完了フラグ［ｓ３＿ｆ］に全て０を設定して初期化し（Ｓ３５ｃ）、このサブルーチンを終了する。
【０１４６】
このように、全ターゲット同時学習中フラグ設定サブルーチンでは、学習開始時期と学習継続時期とを見極めることができる。
【０１４７】
次に、白線検出ＥＣＵ１１における順位毎ターゲット３学習中フラグ設定サブルーチンを図２０のフローチャートに沿って説明する。図２０は、図１の白線検出ＥＣＵにおける光軸調整処理の順位毎ターゲット３学習中フラグ設定サブルーチンのフローチャートである。順位毎ターゲット３学習中フラグ設定サブルーチンでは、ターゲット３学習が他の個別ターゲット学習に対してどの順位で学習を実行するかを見極め、ターゲット３学習を開始し、ターゲット３学習開始フラグ［ｓ３＿ｓｔ］をクリアする
まず、順位毎ターゲット３学習中フラグ設定サブルーチンでは、最初にターゲット３学習を実行するかを見極めるために、ターゲット３学習開始フラグ［ｓ３＿ｓｔ］が１、かつ、全ターゲット同時学習許可フラグ［ａ＿ｓａ］が０、かつ、ターゲット２学習許可フラグ［ａ＿ｓ２］が０、かつ、ターゲット１学習許可フラグ［ａ＿ｓ１］が０、かつ、ターゲット２学習完了フラグ［ｓ２＿ｆ］が０、かつ、ターゲット１学習完了フラグ［ｓ１＿ｆ］が０か（つまり、ターゲット３の開始フラグが開始にセットされ、かつ、ターゲット３以外のターゲットの学習許可がなく、かつ、他の個別ターゲット学習が完了していないか）を判定する（Ｓ３６ａ）。
【０１４８】
Ｓ３６ａの条件を満たす場合には、順位毎ターゲット３学習中フラグ設定サブルーチンでは、３つの個別ターゲット学習のうちでターゲット３学習を最初に実行すると判断し、全ターゲット同時学習完了フラグ［ｓａ＿ｆ］、ターゲット１学習完了フラグ［ｓ１＿ｆ］、ターゲット２学習完了フラグ［ｓ２＿ｆ］、ターゲット３学習完了フラグ［ｓ３＿ｆ］に全て０を設定し、完了フラグを全て初期化する（Ｓ３６ｃ）。
【０１４９】
Ｓ３６ａの条件を満たさない場合には、順位毎ターゲット３学習中フラグ設定サブルーチンでは、ターゲット１学習完了後にターゲット３学習を実行するかを見極めるために、ターゲット３学習開始フラグ［ｓ３＿ｓｔ］が１、かつ、全ターゲット同時学習許可フラグ［ａ＿ｓａ］が０、かつ、ターゲット２学習許可フラグ［ａ＿ｓ２］が０、かつ、ターゲット１学習許可フラグ［ａ＿ｓ１］が０、かつ、ターゲット２学習完了フラグ［ｓ２＿ｆ］が０、かつ、ターゲット１学習完了フラグ［ｓ１＿ｆ］が１か（つまり、ターゲット３の開始フラグが開始にセットされ、かつ、ターゲット３以外のターゲットの学習許可がなく、かつ、ターゲット１学習のみ完了しているか）を判定する（Ｓ３６ｃ）。
【０１５０】
Ｓ３６ｃの条件を満たす場合には、順位毎ターゲット３学習中フラグ設定サブルーチンでは、３つの個別ターゲット学習のうちでターゲット１学習の次にターゲット３学習を実行すると判断し、全ターゲット同時学習完了フラグ［ｓａ＿ｆ］、ターゲット２学習完了フラグ［ｓ２＿ｆ］、ターゲット３学習完了フラグ［ｓ３＿ｆ］に全て０を設定し、ターゲット１学習以外の完了フラグを初期化する（Ｓ３６ｄ）。
【０１５１】
Ｓ３６ｃの条件を満たさない場合には、順位毎ターゲット３学習中フラグ設定サブルーチンでは、ターゲット２学習完了後にターゲット３学習を実行するかを見極めるために、ターゲット３学習開始フラグ［ｓ３＿ｓｔ］が１、かつ、全ターゲット同時学習許可フラグ［ａ＿ｓａ］が０、かつ、ターゲット２学習許可フラグ［ａ＿ｓ２］が０、かつ、ターゲット１学習許可フラグ［ａ＿ｓ１］が０、かつ、ターゲット２学習完了フラグ［ｓ２＿ｆ］が１、かつ、ターゲット１学習完了フラグ［ｓ１＿ｆ］が０か（つまり、ターゲット３の開始フラグが開始にセットされ、かつ、ターゲット３以外のターゲットの学習許可がなく、かつ、ターゲット２学習のみ完了しているか）を判定する（Ｓ３６ｅ）。
【０１５２】
Ｓ３６ｅの条件を満たす場合には、順位毎ターゲット３学習中フラグ設定サブルーチンでは、３つの個別ターゲット学習のうちでターゲット２学習の次にターゲット３学習を実行すると判断し、全ターゲット同時学習完了フラグ［ｓａ＿ｆ］、ターゲット１学習完了フラグ［ｓ１＿ｆ］、ターゲット３学習完了フラグ［ｓ３＿ｆ］に全て０を設定し、ターゲット２学習以外の完了フラグを初期化する（Ｓ３６ｆ）。
【０１５３】
Ｓ３６ｅの条件を満たさない場合には、順位毎ターゲット３学習中フラグ設定サブルーチンでは、ターゲット１学習完了後かつターゲット２学習完了後に（つまり、最後に）ターゲット３学習を実行するかを見極めるために、ターゲット３学習開始フラグ［ｓ３＿ｓｔ］が１、かつ、全ターゲット同時学習許可フラグ［ａ＿ｓａ］が０、かつ、ターゲット２学習許可フラグ［ａ＿ｓ２］が０、かつ、ターゲット１学習許可フラグ［ａ＿ｓ１］が０、かつ、ターゲット２学習完了フラグ［ｓ２＿ｆ］が１、かつ、ターゲット１学習完了フラグ［ｓ１＿ｆ］が１か（つまり、ターゲット３の開始フラグが開始にセットされ、かつ、ターゲット３以外のターゲットの学習許可がなく、かつ、ターゲット１学習及びターゲット２学習が完了しているか）を判定する（Ｓ３６ｇ）。
【０１５４】
Ｓ３６ｇの条件を満たす場合には、順位毎ターゲット３学習中フラグ設定サブルーチンでは、３つの個別ターゲット学習のうちでターゲット３学習を最後に実行すると判断し、全ターゲット同時学習完了フラグ［ｓａ＿ｆ］及びターゲット３学習完了フラグ［ｓ３＿ｆ］に０を設定し、ターゲット１学習及びターゲット２学習以外の完了フラグを初期化する（Ｓ３６ｈ）。Ｓ３６ｇの条件を満たさない場合には、このサブルーチンを終了する。
【０１５５】
各順位において完了フラグを０に初期化すると、順位毎ターゲット３学習中フラグ設定サブルーチンでは、ターゲット３学習を開始するとともに、ターゲット３学習開始フラグ［ｓ３＿ｓｔ］に０を設定し、ターゲット３学習中フラグ［ｓ３＿ｓｐ］に１を設定し（Ｓ３６ｉ）、このサブルーチンを終了する。
【０１５６】
次に、白線検出ＥＣＵ１１における順位毎ターゲット２学習中フラグ設定サブルーチンを図２１のフローチャートに沿って説明する。図２１は、図１の白線検出ＥＣＵにおける光軸調整処理の順位毎ターゲット２学習中フラグ設定サブルーチンのフローチャートである。順位毎ターゲット２学習中フラグ設定サブルーチンでは、ターゲット２学習が他の個別ターゲット学習に対してどの順位で学習を実行するかを見極め、ターゲット２学習を開始し、ターゲット２学習開始フラグ［ｓ２＿ｓｔ］をクリアする。順位毎ターゲット２学習中フラグ設定サブルーチンは、学習対象の個別ターゲットがターゲット３からターゲット２に変わるだけで順位毎ターゲット３学習中フラグ設定サブルーチンと同様の処理であり、順位毎ターゲット３学習中フラグ設定サブルーチンのＳ３６ａ〜Ｓ３６ｉに対応してＳ３７ａ〜Ｓ３７ｉの処理がある。そこで、順位毎ターゲット２学習中フラグ設定サブルーチンの詳細な説明は省略する。ちなみに、ターゲット２学習の場合、最初にターゲット２学習を実行するかの見極め（Ｓ３７ａ）、ターゲット１学習完了後にターゲット２学習を実行するかの見極め（Ｓ３７ｃ）、ターゲット３学習完了後にターゲット２学習を実行するかの見極め（Ｓ３７ｅ）、最後にターゲット２学習を実行するかの見極め（Ｓ３７ｇ）がある。
【０１５７】
次に、白線検出ＥＣＵ１１における順位毎ターゲット１学習中フラグ設定サブルーチンを図２２のフローチャートに沿って説明する。図２２は、図１の白線検出ＥＣＵにおける光軸調整処理の順位毎ターゲット１学習中フラグ設定サブルーチンのフローチャートである。順位毎ターゲット１学習中フラグ設定サブルーチンでは、ターゲット１学習が他の個別ターゲット学習に対してどの順位で学習を実行するかを見極め、ターゲット１学習を開始し、ターゲット１学習開始フラグ［ｓ１＿ｓｔ］をクリアする。順位毎ターゲット１学習中フラグ設定サブルーチンは、学習対象の個別ターゲットがターゲット３からターゲット１に変わるだけで順位毎ターゲット３学習中フラグ設定サブルーチンと同様の処理であり、順位毎ターゲット３学習中フラグ設定サブルーチンのＳ３６ａ〜Ｓ３６ｉに対応してＳ３８ａ〜Ｓ３８ｉの処理がある。そこで、順位毎ターゲット１学習中フラグ設定サブルーチンの詳細な説明は省略する。ちなみに、ターゲット１学習の場合、最初にターゲット１学習を実行するかの見極め（Ｓ３８ａ）、ターゲット２学習完了後にターゲット１学習を実行するかの見極め（Ｓ３８ｃ）、ターゲット３学習完了後にターゲット１学習を実行するかの見極め（Ｓ３８ｅ）、最後にターゲット１学習を実行するかの見極め（Ｓ３８ｇ）がある。
【０１５８】
このように、順位毎ターゲット１〜３学習中フラグ設定サブルーチンにより、個別ターゲットによる学習の場合、他の個別ターゲットに対してどの順位で学習を実行するかを見極めることによって、既に学習が完了しているターゲットに対して学習要求がきても、その学習要求を排除できる。その結果、作業者のミスをカバーでき、同じ学習を重複して行うようなことなく、光軸調整時間を短縮できる。
【０１５９】
次に、白線検出ＥＣＵ１１における全ターゲット同時学習終了フラグ設定サブルーチンを図２３のフローチャートに沿って説明する。図２３は、白線検出ＥＣＵにおける光軸調整処理の全ターゲット同時学習終了フラグ設定サブルーチンのフローチャートである。全ターゲット同時学習終了フラグ設定サブルーチンでは、全ターゲット同時学習の完了したか否かを判定し、正常に完了した場合には全ターゲット同時学習が終了したと判定する。
【０１６０】
まず、全ターゲット同時学習終了フラグ設定サブルーチンでは、前回ルーチンで全ターゲット同時学習中（全ターゲット同時学習中フラグ［ｓａ＿ｓｐ］が１）、かつ、今回ルーチンで全ターゲット同時学習が完了かを判定する（Ｓ３９ａ）。Ｓ３９ａの条件を満たさない場合には、このサブルーチンを終了する。
【０１６１】
Ｓ３９ａの条件を満たす場合には、全ターゲット同時学習終了フラグ設定サブルーチンでは、全ターゲット同時学習の完了形態が正常か否かを判定する（Ｓ３９ｂ）。完了形態が異常とは、例えば、作業者が学習中にＥＥＰＲＯＭクリア要求を出した等のヒューマンエラー、車間制御ＥＣＵ１２の異常、ＥＥＰＲＯＭ１１ａへの補正量の書き込み異常がある。
【０１６２】
完了形態が正常の場合には、全ターゲット同時学習終了フラグ設定サブルーチンでは、全ターゲット同時学習が終了したと判定し、全ターゲット同時学習中フラグ［ｓａ＿ｓｐ］に０、全ターゲット同時学習完了フラグ［ｓａ＿ｆ］に１、ターゲット３学習完了フラグ［ｓ３＿ｆ］に１、ターゲット２学習完了フラグ［ｓ２＿ｆ］に１、ターゲット１学習完了フラグ［ｓ１＿ｆ］に１、全ターゲット同時学習終了フラグ［ｓａ＿ｅ］に１、ターゲット３学習終了フラグ［ｓ３＿ｅ］に０、ターゲット２学習終了フラグ［ｓ２＿ｅ］に０、ターゲット１学習終了フラグ［ｓ１＿ｅ］に０を設定する（Ｓ３９ｃ）。ちなみに、全ターゲット同時学習の場合、学習が完了し、ＥＥＰＲＯＭ１１ａに光軸調整量の補正量を正常に書き込んだ時点で学習が終了するので、全ターゲット同時学習終了フラグ［ｓａ＿ｅ］に１を設定している。
【０１６３】
完了形態が異常の場合には、全ターゲット同時学習終了フラグ設定サブルーチンでは、全ターゲット同時学習が終了していないと判定し、全ターゲット同時学習中フラグ［ｓａ＿ｓｐ］に０、全ターゲット同時学習終了フラグ［ｓａ＿ｅ］に０、ターゲット３学習終了フラグ［ｓ３＿ｅ］に０、ターゲット２学習終了フラグ［ｓ２＿ｅ］に０、ターゲット１学習終了フラグ［ｓ１＿ｅ］に０を設定する（Ｓ３９ｄ）。ちなみに、全ターゲット同時学習の場合、学習が正常に完了し、ＥＥＰＲＯＭ１１ａに光軸調整量の補正量を正常に書き込んでいないと、学習が終了しないので、全ターゲット同時学習終了フラグ［ｓａ＿ｅ］に０を設定している。
【０１６４】
次に、白線検出ＥＣＵ１１におけるターゲット３学習終了フラグ設定サブルーチンを図２４のフローチャートに沿って説明する。図２４は、白線検出ＥＣＵにおける光軸調整処理のターゲット３学習終了フラグ設定サブルーチンのフローチャートである。ターゲット３学習終了フラグ設定サブルーチンでは、ターゲット３学習を完了したことを判定し、さらに、ターゲット３学習が他の個別ターゲット学習に対してどの順位で完了したかを見極め、最後に正常に完了した場合には個別ターゲット学習が全て終了したと判定する。
【０１６５】
まず、ターゲット３学習終了フラグ設定サブルーチンでは、最初にターゲット３学習を完了することを見極めるために、全ターゲット同時学習許可フラグ［ａ＿ｓａ］が０、かつ、ターゲット２学習許可フラグ［ａ＿ｓ２］が０、かつ、ターゲット１学習許可フラグ［ａ＿ｓ１］が０、かつ、ターゲット２学習完了フラグ［ｓ２＿ｆ］が０、かつ、ターゲット１学習完了フラグ［ｓ１＿ｆ］が０、かつ、前回ルーチンでターゲット３同時学習中（ターゲット３学習中フラグ［ｓ３＿ｓｐ］が１）、かつ、今回ルーチンでターゲット３が学習完了か（つまり、ターゲット３以外のターゲットの学習許可がなく、かつ、他の個別ターゲット学習が完了していない、かつ、ターゲット３が前回ルーチンまで学習中で今回のルーチンで学習完了か）を判定する（Ｓ４０ａ）。
【０１６６】
Ｓ４０ａの条件を満たす場合には、ターゲット３学習終了フラグ設定サブルーチンでは、ターゲット３学習の完了形態が正常か否かを判定する（Ｓ４０ｂ）。
【０１６７】
完了形態が正常の場合には、ターゲット３学習終了フラグ設定サブルーチンでは、３つの個別ターゲット学習のうち最初にターゲット３学習が正常に完了したと判断し、ターゲット３学習中フラグ［ｓａ＿ｓｐ］に０、ターゲット３学習完了フラグ［ｓａ＿ｆ］に１を設定し（Ｓ４０ｃ）、このサブルーチンを終了する。ちなみに、個別ターゲット学習の場合、３つの個別ターゲット学習が完了し、光軸調整量の補正量をＥＥＰＲＯＭ１１ａに書き込まないと学習が終了しないので、ターゲット３学習のみが完了した時点では学習が終了しない。完了形態が異常の場合には、ターゲット３学習終了フラグ設定サブルーチンでは、ターゲット３学習中フラグ［ｓ３＿ｓｐ］に０、全ターゲット同時学習終了フラグ［ｓａ＿ｅ］に０、ターゲット３学習終了フラグ［ｓ３＿ｅ］に０、ターゲット２学習終了フラグ［ｓ２＿ｅ］に０、ターゲット１学習終了フラグ［ｓ１＿ｅ］に０を設定する（Ｓ４０ｄ）。ちなみに、個別ターゲット学習の場合、３つの個別ターゲット学習が正常に完了しないと学習が終了しないので、ターゲット１〜３学習終了フラグに０を設定している。
【０１６８】
Ｓ４０ａの条件を満たさない場合には、ターゲット３学習終了フラグ設定サブルーチンでは、ターゲット１学習完了後にターゲット３学習を完了することを見極めるために、全ターゲット同時学習許可フラグ［ａ＿ｓａ］が０、かつ、ターゲット２学習許可フラグ［ａ＿ｓ２］が０、かつ、ターゲット１学習許可フラグ［ａ＿ｓ１］が０、かつ、ターゲット２学習完了フラグ［ｓ２＿ｆ］が０、かつ、ターゲット１学習完了フラグ［ｓ１＿ｆ］が１、かつ、前回ルーチンでターゲット３同時学習中、かつ、今回ルーチンでターゲット３が学習完了か（つまり、ターゲット３以外のターゲットの学習許可がなく、かつ、ターゲット１学習のみ完了している、かつ、ターゲット３が前回ルーチンまで学習中で今回のルーチンで学習完了か）を判定する（Ｓ４０ｅ）。
【０１６９】
Ｓ４０ｅの条件を満たす場合には、ターゲット３学習終了フラグ設定サブルーチンでは、ターゲット３学習の完了形態が正常か否かを判定する（Ｓ４０ｆ）。ターゲット３学習終了フラグ設定サブルーチンでは、完了形態が正常の場合には、３つの個別ターゲット学習のうちターゲット１学習完了後にターゲット３学習が正常に完了したと判断し、Ｓ４０ｃと同様のフラグ設定し（Ｓ４０ｇ）、完了形態が異常の場合にはＳ４０ｄと同様のフラグ設定をし（Ｓ４０ｈ）、このサブルーチンを終了する。ちなみに、個別ターゲット学習の場合、ターゲット３学習及びターゲット１学習が完了した時点では学習が終了しない。
【０１７０】
Ｓ４０ｅの条件を満たさない場合には、ターゲット３学習終了フラグ設定サブルーチンでは、ターゲット２学習完了後にターゲット３学習を完了することを見極めるために、全ターゲット同時学習許可フラグ［ａ＿ｓａ］が０、かつ、ターゲット２学習許可フラグ［ａ＿ｓ２］が０、かつ、ターゲット１学習許可フラグ［ａ＿ｓ１］が０、かつ、ターゲット２学習完了フラグ［ｓ２＿ｆ］が１、かつ、ターゲット１学習完了フラグ［ｓ１＿ｆ］が０、かつ、前回ルーチンでターゲット３同時学習中、かつ、今回ルーチンでターゲット３が学習完了か（つまり、ターゲット３以外のターゲットの学習許可がなく、かつ、ターゲット２学習のみ完了している、かつ、ターゲット３が前回ルーチンまで学習中で今回のルーチンで学習完了か）を判定する（Ｓ４０ｉ）。
【０１７１】
Ｓ４０ｉの条件を満たす場合には、ターゲット３学習終了フラグ設定サブルーチンでは、ターゲット３学習の完了形態が正常か否かを判定する（Ｓ４０ｊ）。ターゲット３学習終了フラグ設定サブルーチンでは、完了形態が正常の場合には、３つの個別ターゲット学習のうちターゲット２学習完了後にターゲット３学習が正常に完了したと判断し、Ｓ４０ｃと同様のフラグ設定し（Ｓ４０ｋ）、完了形態が異常の場合にはＳ４０ｄと同様のフラグ設定をし（Ｓ４０ｌ）、このサブルーチンを終了する。ちなみに、個別ターゲット学習の場合、ターゲット３学習及びターゲット２学習が完了した時点では学習が終了しない。
【０１７２】
Ｓ４０ｉの条件を満たさない場合には、ターゲット３学習終了フラグ設定サブルーチンでは、ターゲット１学習完了後かつターゲット２学習完了後に（つまり、最後に）ターゲット３学習を完了することを見極めるために、全ターゲット同時学習許可フラグ［ａ＿ｓａ］が０、かつ、ターゲット２学習許可フラグ［ａ＿ｓ２］が０、かつ、ターゲット１学習許可フラグ［ａ＿ｓ１］が０、かつ、ターゲット２学習完了フラグ［ｓ２＿ｆ］が１、かつ、ターゲット１学習完了フラグ［ｓ１＿ｆ］が１、かつ、前回ルーチンでターゲット３同時学習中、かつ、今回ルーチンでターゲット３が学習完了か（つまり、ターゲット３以外のターゲットの学習許可がなく、かつ、ターゲット１学習及びターゲット２学習が完了している、かつ、ターゲット３が前回ルーチンまで学習中で今回のルーチンで学習完了か）を判定する（Ｓ４０ｍ）。
【０１７３】
Ｓ４０ｍの条件を満たす場合には、ターゲット３学習終了フラグ設定サブルーチンでは、ターゲット３学習の完了形態が正常か否かを判定する（Ｓ４０ｎ）。
【０１７４】
完了形態が正常の場合には、ターゲット３学習終了フラグ設定サブルーチンでは、３つの個別ターゲット学習のうちターゲット３学習が最後に完了したと判断し、ターゲット３学習中フラグ［ｓａ＿ｓｐ］に０、ターゲット３学習完了フラグ［ｓ３＿ｆ］に１、全ターゲット同時学習終了フラグ［ｓａ＿ｅ］に０、ターゲット３学習終了フラグ［ｓ３＿ｅ］に１、ターゲット２学習終了フラグ［ｓ２＿ｅ］に０、ターゲット１学習終了フラグ［ｓ１＿ｅ］に０を設定し（Ｓ４０ｏ）、このサブルーチンを終了する。個別ターゲット同時学習の場合、３つの個別ターゲット学習が全て正常に完了し、ＥＥＰＲＯＭ１１ａに光軸調整量の補正量を正常に書き込んだ時点で学習が終了するので、最後に学習を完了したターゲット３のターゲット３学習終了フラグ［ｓ３＿ｅ］に１を設定している。完了形態が異常の場合には、ターゲット３学習終了フラグ設定サブルーチンでは、Ｓ４０ｄと同様のフラグ設定をし（Ｓ４０ｐ）、このサブルーチンを終了する。
【０１７５】
次に、白線検出ＥＣＵ１１におけるターゲット２学習終了フラグ設定サブルーチンを図２５のフローチャートに沿って説明する。図２５は、白線検出ＥＣＵにおける光軸調整処理のターゲット２学習終了フラグ設定サブルーチンのフローチャートである。ターゲット２学習終了フラグ設定サブルーチンでは、ターゲット２学習を完了したことを判定し、さらに、ターゲット２学習が他の個別ターゲット学習に対してどの順位で完了したかを見極め、最後に正常に完了した場合には個別ターゲット学習が全て終了したと判定する。ターゲット２学習終了フラグ設定サブルーチンは、学習対象の個別ターゲットがターゲット３からターゲット２に変わるだけでターゲット３学習終了フラグ設定サブルーチンと同様の処理であり、ターゲット３学習終了フラグ設定のＳ４０ａ〜Ｓ４０ｐに対応してＳ４１ａ〜Ｓ４１ｐの処理がある。そこで、ターゲット２学習終了フラグ設定サブルーチンの詳細な説明は省略する。ちなみに、ターゲット２学習の場合、最初にターゲット２学習を完了したかの見極め（Ｓ４１ａ）、ターゲット１学習完了後にターゲット２学習を完了したかの見極め（Ｓ４１ｅ）、ターゲット３学習完了後にターゲット２学習を完了したかの見極め（Ｓ４１ｉ）、最後にターゲット２学習を完了したかの見極め（Ｓ４１ｍ）がある。
【０１７６】
次に、白線検出ＥＣＵ１１におけるターゲット１学習終了フラグ設定サブルーチンを図２６のフローチャートに沿って説明する。図２６は、白線検出ＥＣＵにおける光軸調整処理のターゲット１学習終了フラグ設定サブルーチンのフローチャートである。ターゲット１学習終了フラグ設定サブルーチンでは、ターゲット１学習を完了したことを判定し、さらに、ターゲット１学習が他の個別ターゲット学習に対してどの順位で完了したかを見極め、最後に正常に完了した場合には個別ターゲット学習が全て終了したと判定する。ターゲット１学習終了フラグ設定サブルーチンは、学習対象の個別ターゲットがターゲット３からターゲット１に変わるだけでターゲット３学習終了フラグ設定サブルーチンと同様の処理であり、ターゲット３学習終了フラグ設定のＳ４０ａ〜Ｓ４０ｐに対応してＳ４２ａ〜Ｓ４２ｐの処理がある。そこで、ターゲット２学習終了フラグ設定サブルーチンの詳細な説明は省略する。ちなみに、ターゲット１学習の場合、最初にターゲット１学習を完了したかの見極め（Ｓ４２ａ）、ターゲット２学習完了後にターゲット１学習を完了したかの見極め（Ｓ４２ｅ）、ターゲット３学習完了後にターゲット１学習を完了したかの見極め（Ｓ４２ｉ）、最後にターゲット１学習を完了したかの見極め（Ｓ４２ｍ）がある。
【０１７７】
このように、ターゲット１〜３学習終了フラグ設定サブルーチンにより、個別ターゲット学習の場合、最後に学習を正常に完了したターゲットが明確になるので、個別ターゲットによる学習が全て終了したことが判る。また、学習を完了したターゲットが明確になるので、そのターゲットの学習の完了結果をテスタ３に送信することにより、作業者が同一のターゲットによる学習要求を発行するようなことがなくなる。その結果、作業者のミスを極力無くしことでき、光軸調整時間を短縮できる。
【０１７８】
光軸調整システム１によれば、ターゲット１〜３による左右方向に配置した複数のターゲットを利用した光軸調整が可能であり、ＦＯＥの補正量のみならず、ロール角も求めることができ、カメラ１０に対するロール角の調整も可能となる。その結果、カメラ１０により、車線を示す左右両側の白線を含む精度の高い画像情報を得ることができる。さらに、光軸調整システム１によれば、３つのターゲットによる全ターゲット同時学習のみならず、１つのターゲットによる個別ターゲット学習にも対応可能であり、ターゲットを１つしか配置できない検査スペースやターゲットを１つしか備えない検査装置に対応可能である。
【０１７９】
また、光軸調整システム１（特に、白線検出ＥＣＵ１１）によれば、個別ターゲット学習の場合、各個別ターゲット学習を実行する際の順位及び完了した際の順位を判別しているので、同一の個別ターゲットに対する重複した学習を防止でき、光軸調整時間を短縮化できる。また、作業者の学習要求ミスを防止できるとともに、学習要求ミスを行った場合でもそのミスをカバーできる。さらに、ターゲット１〜３の順番に関係なく、個別ターゲット学習が可能であり、また、作業者が順番を間違えても白線検出ＥＣＵ１１では対応可能である。その結果、検査効率を向上させることができる。
【０１８０】
また、光軸調整システム１（特に、白線検出ＥＣＵ１１）によれば、作業者が意図的に再光軸調整に移行させたか否かを判別できる。さらに、光軸調整システム１（特に、白線検出ＥＣＵ１１）によれば、必要な情報を白線検出ＥＣＵ１１で取り込んだ後、車間制御ＥＣＵ１２による通信が一時的に異常となった場合でも学習を継続させ、ロバスト性を向上させる。
【０１８１】
また、光軸調整システム１によれば、機能コードとして３つの光軸調整モードを設けることにより、製造工場やディーラにおける環境に対応して光軸調整中や光軸調整終了を作業者に知らせることができる。
【０１８２】
また、白線検出ＥＣＵ１１に光軸調整処理を行うためのソフトウエアを組み込むとともに車間制御ＥＣＵ１２にバイパス処理を行うためのソフトウエアを組み込み、テスタ３側から各種フラグ及び各種情報を送信するだけで、光軸調整システム１を簡単に構築することができる。
【０１８３】
以上、本発明に係る実施の形態について説明したが、本発明は上記実施の形態に限定されることなく様々な形態で実施される。
【０１８４】
例えば、本実施の形態では３つのターゲットを左右方向に配置させて光軸調整を行う場合に適用したが、複数のターゲットを上下方向に配置させて光軸調整を行う場合に適用してもよいし、複数のターゲットを上下左右に配置させて光軸調整を行う場合に適用してもよいし、あるいは、単一のターゲットで光軸調整を行う場合に適用してもよい。
【０１８５】
また、本実施の形態では白線を検出するためのカメラの光軸調整に適用したが、車両や歩行者等を検出するためのカメラの光軸調整に適用してもよいし、車両の後方の情報を取得するためのカメラの光軸調整に適用してもよい。
【０１８６】
また、本実施の形態では車間制御ＥＣＵにバイパス機能をさせて車間制御ＥＣＵを介して白線検出ＥＣＵがＣＡＮ通信を行う構成としたが、ＣＡＮ通信システムに直接接続可能な場合にはＣＡＮ通信を直接行う構成でもよい。
【図面の簡単な説明】
【０１８７】
【図１】本実施の形態に係る光軸調整システムの構成図である。
【図２】本実施の形態に係るターゲットと車両搭載カメラとの位置関係を示す図であり、（ａ）が側面図であり、（ｂ）が平面図である。
【図３】図１の白線検出ＥＣＵにおける光軸調整処理のメインルーチンを示すフローチャートである。
【図４】図１の白線検出ＥＣＵにおける光軸調整処理の機能コード設定サブルーチンのフローチャートである。
【図５】図１の白線検出ＥＣＵにおける光軸調整処理の光軸調整モード移行判定サブルーチンのフローチャートである。
【図６】図１の白線検出ＥＣＵにおける光軸調整処理の工場光軸調整モード変化判定サブルーチンのフローチャートである。
【図７】図１の白線検出ＥＣＵにおける光軸調整処理のディーラ光軸調整モード変化判定サブルーチンのフローチャートである。
【図８】図１の白線検出ＥＣＵにおける光軸調整処理の全ターゲット同時学習許可変化判定サブルーチンのフローチャートである。
【図９】図１の白線検出ＥＣＵにおける光軸調整処理のターゲット３学習許可変化判定サブルーチンのフローチャートである。
【図１０】図１の白線検出ＥＣＵにおける光軸調整処理のターゲット２学習許可変化判定サブルーチンのフローチャートである。
【図１１】図１の白線検出ＥＣＵにおける光軸調整処理のターゲット１学習許可変化判定サブルーチンのフローチャートである。
【図１２】図１の白線検出ＥＣＵにおける光軸調整処理の学習中ＥＥＰＲＯＭクリア要求判定サブルーチンのフローチャートである。
【図１３】図１の白線検出ＥＣＵにおける光軸調整処理の学習中ＥＥＰＲＯＭ書換要求判定サブルーチンのフローチャートである。
【図１４】図１の白線検出ＥＣＵにおける光軸調整処理の初期学習異常フラグ設定サブルーチンのフローチャートである。
【図１５】図１の白線検出ＥＣＵにおける光軸調整処理の車両情報書込サブルーチンのフローチャートである。
【図１６】図１の白線検出ＥＣＵにおける光軸調整処理の学習許可フラグ設定サブルーチンのフローチャートである。
【図１７】図１の白線検出ＥＣＵにおける光軸調整処理のターゲット別学習許可フラグ設定サブルーチンのフローチャートである。
【図１８】図１の白線検出ＥＣＵにおける光軸調整処理のターゲット別学習開始フラグ設定サブルーチンのフローチャートである。
【図１９】図１の白線検出ＥＣＵにおける光軸調整処理の全ターゲット同時学習中フラグ設定サブルーチンのフローチャートである。
【図２０】図１の白線検出ＥＣＵにおける光軸調整処理の順位毎ターゲット３学習中フラグ設定サブルーチンのフローチャートである。
【図２１】図１の白線検出ＥＣＵにおける光軸調整処理の順位毎ターゲット２学習中フラグ設定サブルーチンのフローチャートである。
【図２２】図１の白線検出ＥＣＵにおける光軸調整処理の順位毎ターゲット１学習中フラグ設定サブルーチンのフローチャートである。
【図２３】図１の白線検出ＥＣＵにおける光軸調整処理の全ターゲット同時学習終了フラグ設定サブルーチンのフローチャートである。
【図２４】図１の白線検出ＥＣＵにおける光軸調整処理のターゲット３学習終了フラグ設定サブルーチンのフローチャートである。
【図２５】図１の白線検出ＥＣＵにおける光軸調整処理のターゲット２学習終了フラグ設定サブルーチンのフローチャートである。
【図２６】図１の白線検出ＥＣＵにおける光軸調整処理のターゲット１学習終了フラグ設定サブルーチンのフローチャートである。
【符号の説明】
【０１８８】
１…光軸調整システム、２…車両、２ａ…操舵支援システム、２ｂ…車間制御システム、３…テスタ、４…ターゲット、１０…カメラ、１１…白線検出ＥＣＵ、１１ａ…ＥＥＰＲＯＭ、１２…車間制御ＥＣＵ、１２ａ…ＣＡＮＩ／Ｆ、１３…レーザレーダセンサ、１４…ＣＡＮ通信システム、１５…操舵支援スイッチ、１６…車速センサ、１７…ブザー、１８…メータＥＣＵ、１９…メータ
【図１】
2005143040.tif 000003
【図２】
2005143040.tif 000004
【図３】
2005143040.tif 000005
【図４】
2005143040.tif 000006
【図５】
2005143040.tif 000007
【図６】
2005143040.tif 000008
【図７】
2005143040.tif 000009
【図８】
2005143040.tif 000010
【図９】
2005143040.tif 000011
【図１０】
2005143040.tif 000012
【図１１】
2005143040.tif 000013
【図１２】
2005143040.tif 000014
【図１３】
2005143040.tif 000015
【図１４】
2005143040.tif 000016
【図１５】
2005143040.tif 000017
【図１６】
2005143040.tif 000018
【図１７】
2005143040.tif 000019
【図１８】
2005143040.tif 000020
【図１９】
2005143040.tif 000021
【図２０】
2005143040.tif 000022
【図２１】
2005143040.tif 000023
【図２２】
2005143040.tif 000024
【図２３】
2005143040.tif 000025
【図２４】
2005143040.tif 000026
【図２５】
2005143040.tif 000027
【図２６】
2005143040.tif 000028