(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0019】
以下、本発明の実施例を図面に基づいて説明する。
図1には、本発明の一実施形態に係る環境地図生成制御装置を備えた無人車両の概略構成図、
図2には当該無人車両が搭載するコンピュータユニットの制御構成を示すブロック図がそれぞれ示されており、以下同図に基づき、移動体の構成について説明する。
図1に示すように、無人車両(UGV:Unmanned Ground Vehicle)1は、図示しない遠隔操縦装置の指示に応じた走行を行う、自律型移動体である。
【0020】
当該無人車両1には、自己の位置を計測するためのGPS(Global Positioning System)受信機2、自己の姿勢を計測するためのジャイロセンサ4が搭載されている。また、無人車両1には、車両の操舵を行うステアリング6、車両の駆動力を操作するアクセル8が設けられており、それぞれに操作量を調整可能なアクチュエータ6a、8aが設けられている。
さらに、無人車両1には、屋根部の先端部分に第1LRF10(第1の測距手段)が固定されている。当該第1LRF10は屋根部先端から車両前方の路面に向けてレーザを照射し測距を行うことで、主に路面状態を検出するLRFである。当該第1LRF10は、車両前方の路面において進行方向に並んだ4つの範囲にて車両幅方向に走査する4つのレーザを備えた、4ラインLRFである。なお、
図1では、1ライン分のレーザ照射範囲のみを示している。
【0021】
さらに当該無人車両1には、車体の前部に第2LRF12(第2の測距手段)が固定されている。当該第2LRF12は、当該車体前部から進行方向にレーザを照射して水平方向の測距を行うことで、主に移動障害物を検出するLRFである。当該第2LRF12は、車両前方の空間に対し縦方向に並んだ4つの範囲にて車幅方向に走査する4つのレーザを備えた、4ラインLRFである。なお、当該第2LRF12についても、
図1では1ライン分のレーザ照射範囲のみを示している。
【0022】
そして、無人車両1には、自律走行を制御するためのコンピュータユニット20が搭載されており、当該コンピュータユニット20は、図示しない遠隔操縦装置の指示を受け、各種センサ等からの情報に基づき上記アクチュエータ6a、8aを操作して無人車両1を走行させるものである。
図2に、当該コンピュータユニット20内の制御構成がブロック図で示されており、以下同図に基づき、当該コンピュータユニット20の構成について説明する。
【0023】
図2に示すようにコンピュータユニット20内では、LAN等の通信線を介して各種センサと各種制御部とが接続されている。当該コンピュータユニット20は、大別すると環境認識・自己位置計測部22と車両制御部24とを有している。
そして、環境認識・自己位置計測部22は、自己位置評定部26、LRFデータ処理部28、及び環境地図生成部30を有している。
【0024】
自己位置評定部26は、GPS受信機2からの自己位置情報及びジャイロセンサ4からの自己姿勢情報に基づき自己位置を評定する機能を備えている。
また、LRFデータ処理部28は、第1LRF10及び第2LRF12からの測距情報を処理する機能を備えている。
これら自己位置評定部26及びLRFデータ処理部28にて処理された情報は環境地図生成部30に送られ、当該環境地図生成部30は、取得した情報に基づき、無人車両1の周辺における環境地図を生成する機能を有している。
【0025】
一方、車両制御部24は、経路生成部32及び車両操作部34を有している(移動制御手段)。
経路生成部32は、環境認識・自己位置計測部22の自己位置評定部26において評定された自己位置情報及び環境地図生成部30にて生成された環境地図情報を取得し、図示しない遠隔操縦装置の指示に応じた経路を生成する機能を備えている。
また、車両操作部34は、当該経路生成部32において生成された経路を走行するのに必要な操舵量や駆動力を算出する機能を備えている。そして、当該車両操作部34は、算出した操舵量及び駆動力に応じたステアリング操作及びアクセル操作を行うべく対応するアクチュエータ6a、8aを制御する。
【0026】
ここで、環境認識・自己位置計測部22のLRFデータ処理部28においては、第1LRF10及び第2LRF12によりそれぞれ障害物を検出し、環境地図生成部30においては、障害物について静止障害物であるか移動障害物であるかの識別を行いつつ(障害物識別手段、障害物識別ステップ)、走行可能な領域及び走行不可能な領域を認定して環境地図を生成している(環境地図生成手段、環境地図生成ステップ)。以下、当該環境認識・自己位置計測部22のLRFデータ処理部28及び環境地図生成部30において実行される障害物の検出制御及び環境地図の生成制御について説明する。
【0027】
(第1LRFデータ処理)
まず、環境認識・自己位置計測部22のLRFデータ処理部28において実行される障害物の検出制御について説明する。
ここで
図3を参照すると、LRFデータ処理部において実行される第1LRFデータ処理の流れについてのフローチャートが示されており、以下同フローチャートに沿って第1LRFデータ処理について説明する。
【0028】
図3に示すように、まずLRFデータ処理部28はステップS10として、第1LRF10により測距された所定数(N個)の計測点における情報を、ジャイロセンサ4により検出される無人車両1の姿勢角に基づき環境地図の生成に合わせた座標情報へ座標変換する。例えば、第1LRF10により測距される計測点の情報は距離と角度とからなり、当該計測点の情報をx、y、zの直交3軸からなるデカルト座標系に座標変換する。
【0029】
続くステップS11から、LRFデータ処理部28は、座標変換後の1〜NまでのN個の各計測点jについて順次以下の制御を繰り返す。
ステップS12において、LRFデータ処理部28は、隣接する計測点間の高さ(z成分)の差分を算出して、当該差分が予め定めた所定の差分より大であるか否かを判別することで、障害物の有無を判定する。当該判別結果が偽(No)である場合、即ち隣接点との差分がない又は差分が小さい場合は、ステップS13に進む。
【0030】
ステップS13において、LRFデータ処理部28は、当該計測点jが障害物ではなく路面を検出していると判断し、障害物検出結果値Ajとして、障害物なく走行可能であることを示す値(Aj=走行可能)を入力する。
一方、上記ステップS12の判別結果が真(Yes)である場合、即ち隣接点との差分が大きく変化しているような場合は、ステップS14に進む。
【0031】
ステップS14において、LRFデータ処理部28は、当該計測点jがなんらかの障害物を検出していると判断し、障害物検出結果値Ajとして、障害物があることを示す値(Aj=障害物)を入力する。
ステップS13又はS14において障害物検出結果値Ajを入力した後、LRFデータ処理部28は、S15に進む。当該ステップS15において、LRFデータ処理部28は、計測点jについてN個まで処理を終えていない場合には、上記ステップS11に戻り、次の計測点jについて上記ステップS12、S13、S14の処理を行う。一方、N個まで上記処理を終えた場合には次のステップS16に進む。
【0032】
ステップS16において、LRFデータ処理部28は、各計測点jにおける障害物検出結果値Ajと当該時点におけるタイムスタンプ(ts)を第1データD1j(第1の測距情報)として登録する。
そして、ステップS17において、LRFデータ処理部28は、環境地図生成部30へ第1データD1jを送信し、当該第1LRFデータ処理をリターンする。
【0033】
このように、第1LRFデータ処理では、第1LRF10により測距した計測点jの高さ成分に基づき、走行可能な路面を検出したものであるか、障害物を検出したものであるかを識別して、その結果を環境地図生成部30へと送信する。
【0034】
(第2LRFデータ処理)
次に
図4を参照すると、LRFデータ処理部28において実行される第2LRFデータ処理の流れについてのフローチャートが示されており、以下同フローチャートに沿って第2LRFデータ処理について説明する。
図4に示すように、まずLRFデータ処理部28はステップS20として、上記ステップS10と同様、第2LRF12により測距された所定数(M個)の計測点における情報を、ジャイロセンサ4により検出される無人車両1の姿勢角に基づき環境地図の生成に合わせた座標情報へ座標変換する。
【0035】
続くステップS21から、LRFデータ処理部28は、座標変換後の1〜MまでのM個の各計測点jについて順次以下の制御を繰り返す。
ステップS22において、LRFデータ処理部28は、計測点jの高さ(z成分)が所定の基準高さより大であるか否かを判別することで、障害物の有無を判定する。当該判別結果が真(Yes)である場合、即ち計測点jの高さが一定の高さより高い場合は、ステップS23に進む。
【0036】
ステップS23において、LRFデータ処理部28は、当該計測点jが障害物を検出していると判断し、障害物検出結果値Ajとして障害物であることを示す値(Aj=障害物)を入力する。
一方、上記ステップS22の判別結果が偽(No)である場合、即ち計測点jの高さ位置が基準高さ以下である場合は、そのまま障害物検出結果値Ajを設定することなく、ステップS24に進む。なお、Ajの初期値は障害物なしとなっている。
【0037】
ステップS24において、LRFデータ処理部28は、計測点jについてM個まで処理を終えていない場合には、上記ステップS21に戻り、次の計測点jについて上記ステップS22、S23の処理を行う。一方、M個まで上記処理を終えた場合には次のステップS25に進む。
ステップS25において、LRFデータ処理部28は、各計測点jにおける障害物検出結果値Ajとタイムスタンプ(ts)を第2データD2j(第2の測距情報)として登録する。
【0038】
そして、ステップS26において、LRFデータ処理部28は、環境地図生成部30へ第2データD2jを送信し、当該第2LRFデータ処理をリターンする。
このように、第2LRFデータ処理では、第2LRF12により基準高さより高い計測点jを検出した場合には障害物とみなして、結果を環境地図生成部30へと送信している。
【0039】
(環境地図生成処理)
次に、環境認識・自己位置計測部22の環境地図生成部30において実行される環境地図の生成制御について説明する。
ここで、
図5〜
図11を参照すると、
図5、
図6には環境地図生成部30において実行される環境地図生成処理の流れについてのフローチャートが、
図7〜
図11には当該環境地図生成処理内で実行される各制御についてのフローチャート及びその説明図が示されており、以下各フローチャートに沿って説明する。
【0040】
まず、
図5、
図6に基づき環境地図生成処理の全体的な流れについて説明する。
図5に示すステップS30において、環境地図生成部30は上記LRFデータ処理部28から第1データD1j及び第2データD2jを受信する。
続くステップS31において、環境地図生成部30は、各データのタイムスタンプに基づき、データ取得時刻における自己位置及び方位角データを取得する。
【0041】
そして、ステップS32から、環境地図生成部30は、1〜NまでのN個の各第1データD1jについて順次以下の制御を繰り返す。
ステップS33において、環境地図生成部30は、ステップS31で取得した情報に基づき第1データD1jに対応する環境地図上の位置(以下、グリッドiという)を算出する。
そして、ステップS34において、環境地図生成部30は、第1データD1jを環境地図に反映させる処理を行う。当該第1データD1jの反映処理の具体的な内容については、
図7に基づき後述するが、当該ステップS34にて環境地図生成部30は、第1LRF10により検出した走行可能領域及び障害物領域を、環境地図へ登録する。
【0042】
ステップS35において、環境地図生成部30は、第1データD1jについてN個まで処理を終えていない場合には、上記ステップS32に戻り、次の第1データD1jについて上記ステップS33、S34の処理を行う。一方、N個まで上記処理を終えた場合には
図6のステップS36に進む。
図6のステップS36から、環境地図生成部30は、1〜MまでのM個の各第2データD2jについて順次以下の制御を繰り返す。
【0043】
ステップS37において、環境地図生成部30は、ステップS31で取得した情報に基づき第2データD2jに対応する環境地図上のグリッドiを算出する。
そして、ステップS38において、環境地図生成部30は、第2データD2jを環境地図に反映させる処理を行う。当該第2データD2jの反映処理の具体的な内容については、
図8に基づき後述するが、当該ステップS38にて環境地図生成部30は、第2データD2jに対応するグリッドの認定状態の変遷に基づいて、障害物の登録を行う。また、第1LRF10及び第2LRF12により検出した障害物が静止障害物か移動障害物かを識別する。
【0044】
ステップS39において、環境地図生成部30は、第2データD2jについてM個まで処理を終えていない場合には、上記ステップS36に戻り、次の第2データD2jについて上記ステップS37、S38の処理を行う。一方、M個まで上記処理を終えた場合には、ステップS40に進む。
ステップS40において、環境地図生成部30は、ここまでのステップを経て生成した環境地図情報を、経路生成部32へと送信する。
【0045】
その後ステップS41において、環境地図生成部30は、移動障害物のタイムアウト処理を行い、当該フローチャートをリターンする。当該移動障害物のタイムアウト処理の具体的な内容については、
図10に基づき後述するが、当該ステップS41にて環境地図生成部30は、移動障害物があると認定されているグリッドiについては所定のタイムアウト時間(一定期間)の間は走行不可能な領域として認定し、当該タイムアウト時間経過後は当該認定前の元の認定状態に戻す処理を行う。
【0046】
このようにして環境地図生成部30は、第1データD1j及び第2データD2jを環境地図に反映し、移動障害物についてはタイムアウト処理を行って、環境地図を生成する。
以下、個々の処理について詳しく説明する。
【0047】
(第1データD1j反映処理)
図7には、
図5のステップS34で実行する第1データD1jの反映処理を示すフローチャートが示されており、以下同フローチャートに沿って説明する。
まず、
図7のステップS50において、環境地図生成部30は、第1データD1jの障害物検出結果値Ajとして障害物を示す値が入力されているか否かを判別する。当該判別結果が真(Yes)である場合、次のステップS51に進む。
【0048】
ステップS51において、環境地図生成部30は、上記
図5のステップS33で算出した第1データD1jに対応するグリッドiの状態がこの時点で走行可能状態であるか否かを判別する。当該判別結果が真(Yes)である場合は、次のステップS52に進む。
ステップS52において、環境地図生成部30は、グリッドiの切替直前状態を記憶する。上記ステップS50及びステップS51の判別結果がいずれも真(Yes)であることから、いままで障害物が検出されていなかったグリッドiに障害物が検出された状態を示しており、当該ステップS52では、障害物が検出される前の状態を記憶しておく。具体的には、切替直前タイムスタンプts_i_chとしてこの時点の時刻ts_iを記憶し(ts_i_ch=ts_i)、グリッドiの切替直前状態A_i_chとして走行可能状態であったことを記憶する(A_i_ch=走行可能)。
【0049】
上記ステップS52の後、又は上記ステップS51においてすでにグリッドiに障害物があると認定されており判別結果が偽(No)であった場合には、ステップS53に進む。
ステップS53において、環境地図生成部30は、グリッドiの状態の更新を行う。具体的には、グリッドiのタイムスタンプts_iをこの時点の時刻ts_jに更新し、グリッドiの状態A_iを障害物あり(走行不可能)の状態に更新する。なお、タイムスタンプにおけるiはグリッドで保持している時刻、jは取得したLRFデータの持つ時刻であり、ts_i<ts_jの関係となる。
【0050】
一方、上記ステップS50において第1データD1jの障害物検出結果値Ajが走行可能な状態を示す値であり判別結果が偽(No)であった場合には、ステップS54に進む。ステップS54において、環境地図生成部30は、グリッドiの状態がこの時点で障害物がある状態であるか否かを判別する。当該判別結果が偽(No)である場合は、次のステップS55に進む。
ステップS55において、環境地図生成部30は、グリッドiの状態の更新を行う。具体的には、グリッドiのタイムスタンプts_iをこの時点の時刻ts_jに更新し、グリッドiの状態A_iを走行可能の状態に更新する。
【0051】
上記ステップS53の後若しくはステップS55の後、又は上記ステップS54においてグリッドiの状態が障害物ありで判別結果が真(Yes)であった場合には、当該処理を終了し、
図5のステップS35に戻る。
このように第1データD1jの反映処理においては、第1LRF10により障害物が検出された場合には、対応するグリッドiの状態が切り替わる直前のデータを記憶した上で、当該グリッドiの状態を障害物ありの状態に更新し、走行不可能な領域とする。
【0052】
(第2データD2j反映処理)
次に、
図8には、
図6のステップS38で実行する第2データD2jの反映処理を示すフローチャートが示されており、以下同フローチャートに沿って説明する。
まず、
図8のステップS60において、環境地図生成部30は、第2データD2jの障害物検出結果値Ajとして障害物を示す値が入力されているか否かを判別する。当該判別結果が偽(No)である場合は当該処理を終了し、
図6のステップS39に戻る。一方、当該判別結果が真(Yes)である場合は、ステップS61に進む。
【0053】
ステップS61において、環境地図生成部30は、上記
図6のステップS37で算出した第2データD2jに対応するグリッドiに、移動障害物の識別結果を示す移動障害物フラグFmが立っていない(Fm=false)か否かを判別する。なお、当該移動障害物フラグは初期状態では立っていないFm=falseとする。当該判別結果が真(Yes)である場合、即ち当該グリッドiにおいて未だ移動障害物の識別がされていないような場合には、ステップS62に進む。
【0054】
ステップS62において、環境地図生成部30は、グリッドiの移動障害物フラグFmをtrueに設定し、次のステップS63に進む。
ステップS63において、環境地図生成部30は、この時点におけるグリッドiの状態A_iが障害物であることを示している(A_i=障害物)か否かを判別する。当該判別結果が偽(No)である場合、即ちグリッドiの状態A_iが走行可能状態又は未計測状態(A_i=走行可能/未計測)である場合は、ステップS64に進む。
【0055】
ステップS64において、環境地図生成部30は、グリッドiの切替直前状態を記憶する。つまり、上記ステップS60〜S63の判別結果から、走行可能又は未計測な領域であったグリッドiに移動障害物が入ってきた状態を示しており、当該ステップS64では、移動障害物が入ってくる直前の状態を記憶しておく。具体的には、切替直前タイムスタンプts_i_chとしてこの時点の時刻ts_iを記憶し(ts_i_ch=ts_i)、グリッドiの切替直前状態A_i_chとして走行可能状態又は未計測状態であったことを記憶する(A_i_ch=走行可能/未計測)。
【0056】
上記ステップS64の後、又は上記ステップS61においてすでにグリッドiの移動障害物フラグFmがすでにtrueであって判別結果が偽(No)であった場合は、ステップS65に進む。
ステップS65において、環境地図生成部30は、グリッドiの状態の更新を行う。具体的には、グリッドiのタイムスタンプts_iをこの時点の時刻ts_jに更新し、グリッドiの状態A_iを障害物あり(走行不可能)の状態に更新し、移動障害物フラグFmをtrueに更新する。
【0057】
一方、上記ステップS63において、グリッドiの状態A_iが障害物であることを示しており(A_i=障害物)、判別結果が真(Yes)である場合にはステップS66に進む。
ステップS66において、環境地図生成部30は、この時点で記憶されているグリッドiの切替直前状態データを取得する。
そして、次のステップS67では、記憶されていた切替直前状態のタイムスタンプts_i_chと現時刻ts_iまでの差分時間δtを算出する。
【0058】
ステップS68において、環境地図生成部30は、当該差分時間δtが所定時間(例えば0.1s)より大であるか否かを判別する。前回の切替直前時点(ts_i_ch)から所定時間経過していない場合は、当該判別結果は偽(No)となり、ステップS69に進む。
ステップS69において、環境地図生成部30は、前回のグリッドiの切替状態データを記憶した時点から第2LRF12による障害物の検出から所定時間経過していないことから、当該障害物は移動障害物であると判断し、切替直前状態のデータはそのまま保持しておく。
【0059】
一方、上記ステップS68の判別結果が真(Yes)である場合、即ち前回のグリッドiの切替時点から所定時間経過している場合はステップS70に進む。つまり、この場合は所定時間以上もの間、第1LRF10及び第2LRF12により障害物を検出していることから、静止障害物で存在すると判断する。これにより、例えば移動障害物と静止障害物が同領域で重なっている場合等で、移動障害物が抜けた後も静止障害物があることを認定し続けることが可能となる。
【0060】
そして、ステップS70において、環境地図生成部30は、グリッドiの切替直前状態のデータを更新する。具体的には、切替直前タイムスタンプts_i_chとしてこの時点の時刻ts_iに更新し(ts_i_ch=ts_i)、グリッドiの切替直前状態A_i_chを障害物ありの状態とする(A_i_ch=障害物)。
【0061】
なお、当該ステップS66〜S70は、実質的には障害物が移動障害物であるか静止障害物であるかの識別を行っており、当該処理を以下障害物識別処理という。
上記ステップS65、S69、又はS70を経た後は、ステップS71において第1LRF10により検出した障害物と第2LRF12により検出した障害物とのずれを補償する位置ずれ補償処理を行った後、第2データD2jの反映処理を終了し、
図6のステップS39に戻る。
【0062】
(位置ずれ補償処理)
ここで、当該ステップS71で実行される位置ずれ補償処理について詳しく説明する。
図9には、
図8のステップS71で実行する位置ずれ補償処理を示すフローチャートが示されており、以下同フローチャートに沿って説明する。
ステップS80において、環境地図生成部30は、上記
図6のステップS37で算出した第2データD2jに対応するグリッドiに隣接するグリッドmの範囲を設定する。当該グリッドmの個数Lとしては、例えばグリッドiの前後左右のグリッド4つとしたり、それ以上の範囲としたりしても構わない。
【0063】
ステップS81において、環境地図生成部30は、1〜LまでのL個の各グリッドmについて順次以下の制御を繰り返す。
ステップS82において、環境地図生成部30は、グリッドmの移動障害物フラグFmがfalseであるか否かを判別する。当該判別結果が真(Yes)である場合には、ステップS83に進む。
【0064】
ステップS83において、環境地図生成部30はグリッドmの状態A_mが障害物ありであるか否かを判別する。当該判別結果が真(Yes)である場合、即ちグリッドmにおいて障害物の認定がされている場合には、ステップS84に進む。
ステップS84において、環境地図生成部30は、グリッドmの移動障害物フラグをtrueに設定する。
【0065】
続くステップS85において、環境地図生成部30は、上記
図8のステップS66〜S70からなる障害物識別処理をグリッドiからグリッドmに置き換えて行う。当該障害物識別処理により移動障害物であるか静止障害物であるかの識別を終えた後、ステップS86に進む。
一方、上記ステップS82においてグリッドmの移動障害物フラグFmがfalseでなく当該判別結果が偽(No)であった場合、又は上記ステップS83においてグリッドmの状態A_mが障害物ありではなく当該判別結果が偽(No)であった場合は、上記ステップS84、S85の処理を行わずステップS86に進む。つまり、グリッドmの移動障害物フラグFmがtrueだった場合やグリッドmの状態A_mが走行可能若しくは未計測であった場合には、そのままステップS86に進む。
【0066】
そして、ステップS86において、環境地図生成部30は、グリッドmについてL個まで処理を終えていない場合には、上記ステップS81に戻り、次のグリッドmについて上記ステップS82〜S84の処理を行う。一方、L個まで上記処理を終えた場合には当該位置ずれ補償処理を終了する。
当該位置ずれ補償処理は、例えば
図10の説明図に示すように、無人車両1の前方に歩行者が横切るような場合であって、第1LRF10では歩行者の肩部分を検出し、第2LRF12では歩行者の足部分を検出したとすると、第1データD1jに対応するグリッドiaと第2データD2jに対応するグリッドibが一致しない場合がある。このような場合であっても、上記位置ずれ補償処理により第2データD2jに対応するグリッドiに隣接するグリッドmについて障害物識別処理を行うことで、グリッドiaについても移動障害物と確実に識別することができる。
【0067】
(移動障害物タイムアウト処理)
最後に、
図6のステップS41において実行する移動障害物タイムアウト処理について説明する。
図11には、移動障害物タイムアウト処理を示すフローチャートが示されており、以下同フローチャートに沿って説明する。
まず、ステップS90において、環境地図生成部30は、環境地図上において所定の範囲をタイムアウト処理範囲として設定する。なお、当該タイムアウト処理範囲は、無人車両1が経路を生成しうる範囲として設定するものであり、例えば50m程度に設定する。
【0068】
次にステップS91において、環境地図生成部30は、当該タイムアウト処理範囲におけるグリッドiの移動障害物フラグFmがtrueであるか否かを判別する。当該判別結果が偽(No)である場合、即ち移動障害物フラグFmがfalseである場合はタイムアウト処理の必要はなく、当該処理を終了する。
一方、ステップS91の判別結果が真(Yes)である場合、即ち移動障害物があると識別されている場合にはステップS92に進む。
【0069】
ステップS92において、環境地図生成部30は、現在時刻t_nowとグリッドiに登録されているタイムスタンプts_iとの差分であるδt2を算出する。
そしてステップS93において、当該δt2が予め定められたタイムアウト時間(例えば0.2s)より大であるか否かを判別する。なお、当該タイムアウト時間は、上記
図8のステップS68における所定時間より長い。当該判別結果が偽(No)である場合、即ちグリッドiにおいてFm=trueとなってからタイムアウト時間を経過していない場合には、そのまま当該処理を終了する。一方、当該判別結果が真(Yes)である場合は、ステップS94に進む。
【0070】
ステップS94において、環境地図生成部30は、グリッドiに対応する切替直前状態データを取得し、グリッドiの状態を当該切替直前状態として更新して、当該移動障害物タイムアウト処理を終了する。具体的には当該グリッドiのタイムスタンプts_iを現在時刻t_nowとし、状態A_iをA_i_chとし、移動障害物フラグFmをfalseとする。
つまり、グリッドiの移動障害物フラグFm=trueとなってから所定のタイムアウト時間を経過したときには、グリッドiの状態を元の状態に戻すこととする。元々グリッドiが走行可能な領域であったならば再び走行可能となり、静止障害物があった場合には障害物として走行不可な領域が維持される。これにより移動障害物が通り過ぎた範囲が走行不可能のまま残ることを防ぐことができる。
【0071】
以上のようなタイムアウト処理を行った後、
図5、6で示した環境地図生成処理をリターンして、上述した処理を繰り返していくことで、無人車両1の走行に伴い環境地図を更新していく。
このように、本実施形態における無人車両1は、路面状態を検出するための第1LRF10に加えて、移動障害物を識別するために第2LRF12を設けている。当該第2LRF12は無人車両1の進行方向に向けて測距を行うものであるから比較的高速な移動でも確実に障害物を検出することができる。
【0072】
そして、特に上記障害物識別処理において示されるように環境地図上におけるグリッドの認定状態に基づいて、障害物が静止障害物であるか移動障害物であるかを識別している。移動障害物と識別されたグリッドiにおいては、所定のタイムアウト時間の間走行不可能な領域と認定した後当該認定前の元の状態A_iに戻して、環境地図を生成することとしている。これにより再び同じ領域の検出を行うことなく、環境地図上に移動障害物の残像が残ることを抑制でき、移動体の移動可能範囲が狭まるのを防止することができる。
【0073】
これにより、多数のLRFを設けたり高性能化を必要としたりすることなく、第1LRF10及び第2LRF12の2つのLRFのみを用いることから、コストの増加を抑えることができる。そして、無人車両1が比較的高速な移動を行う場合でも、移動障害物と静止障害物を識別し、移動可能な領域を不要に狭めることのない正確な環境地図を生成することができる。
【0074】
以上で本発明に係る実施形態についての説明を終えるが、実施形態は上記実施形態に限られるものではない。
上記実施形態では、移動体を無人車両としているが、移動体は車両に限られるものではなく、例えば自律歩行をするロボット等でも構わない。
また、移動体は自律型移動体に限られるものではなく、遠隔操縦又は運転者が自ら搭乗して運転するような車両やロボット等にも本発明を適用することができる。例えば、運転者が搭乗する自動車において、本発明により生成した環境地図を用いて周辺環境を認識し、当該周辺環境に応じて運転支援したり、衝突回避のために警告表示をしたり、自動的にブレーキ制御したりしてもよい。
【0075】
また上記実施形態では、第1LRF10及び第2LRF12としてそれぞれ4ラインLRFを用いているが、LRFはこれに限られず、例えばそれぞれ1ラインのみのLRFを用いても本発明の効果を得ることができる。