(57)【要約】【課題】壁を検出すること。【解決手段】フォークリフトには、壁検出装置が搭載されている。壁検出装置は、２つの撮像装置と、画像処理装置と、を備える。各撮像装置はステレオカメラである。画像処理装置は、各撮像装置によって撮像された画像から視差を算出する。画像処理装置は、算出された視差から、画像に写る対象物の座標を算出し、ワールド座標系に対象物をプロットする。ワールド座標系のＸ軸上に並んだ複数の特徴点Ｐである点群Ｐ１が存在し、かつ、点群Ｐ１よりも奥に特徴点Ｐがない場合、画像処理装置は、点群Ｐ１が壁の上端であると判定する。【選択図】図８
2019090711.tif 000002
【特許請求の範囲】
【請求項１】
移動体に搭載され、鉛直方向に立設する壁を検出する壁検出装置であって、
前記移動体の周辺を撮像するステレオカメラと、
前記ステレオカメラによって撮像された画像から視差を算出する視差算出手段と、
前記移動体の進行方向に延びる軸を第１の軸、鉛直方向に延びる軸を第２の軸、前記第１の軸及び前記第２の軸に直交する軸を第３の軸とする３軸直交座標系において、前記視差が得られた特徴点についての実空間上での座標を算出する座標算出手段と、
前記第３の軸上に並んだ複数の前記特徴点である点群が、鉛直方向において予め定められた高さよりも高い位置に存在し、かつ、前記点群よりも前記移動体の進行方向における奥に前記特徴点が存在しない場合、前記点群が前記壁の上端であると判定する判定手段と、を備える壁検出装置。
【請求項２】
前記判定手段は、前記第３の軸上に並んだ複数の前記特徴点である下側点群が前記点群の下方に存在する場合、前記下側点群が前記壁の下端であると判定する請求項１に記載の壁検出装置。
【請求項３】
前記ステレオカメラを構成する複数のカメラは、鉛直方向に並んで配置されている請求項１又は請求項２に記載の壁検出装置。
【請求項４】
前記判定手段は、前記第２の軸上に並んだ複数の前記特徴点である横点群が存在する場合、前記横点群が前記壁における左右方向の端部であると判定する請求項１〜請求項３のうちいずれか一項に記載の壁検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、壁検出装置に関する。
【背景技術】
【０００２】
移動体が障害物に衝突することを抑止するため、移動体には障害物を検出するための障害物検出装置が搭載されている（例えば、特許文献１参照）。
特許文献１の障害物検出装置は、ステレオカメラによって得られた視差（視差画像）を用いて障害物を検出している。ステレオカメラは、複数のカメラによって構成されている。視差は、複数のカメラで同一の対象物を撮像した場合に、各カメラによって撮像された画像に写る対象物の画像位置の差（画素数の差）である。障害物検出装置は、天井部に相当する高さ位置から下方に向けて所定の長さ以上に連続した面を含む物体を検出すると、当該物体は壁であると判断する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３２６２６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ステレオカメラを用いて障害物を検出する場合、視差から障害物の位置を検出する。視差を得るためには、各カメラによって撮像された画像から同一の対象物を抽出する必要がある。同一の対象物を抽出する際には、画像から特徴となる部分（エッジ）を抽出し、この特徴部分を対象物とする。しかし、模様や、凹凸などの特徴がない壁をステレオカメラで撮像した場合、視差を得ることができず、面の検出を行えない場合がある。すると、特許文献１の障害物検出装置では、壁を検出することができない場合が生じ得る。
【０００５】
本発明の目的は、壁を検出することができる壁検出装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決する壁検出装置は、移動体に搭載され、鉛直方向に立設する壁を検出する壁検出装置であって、前記移動体の周辺を撮像するステレオカメラと、前記ステレオカメラによって撮像された画像から視差を算出する視差算出手段と、前記移動体の進行方向に延びる軸を第１の軸、鉛直方向に延びる軸を第２の軸、前記第１の軸及び前記第２の軸に直交する軸を第３の軸とする３軸直交座標系において、前記視差が得られた特徴点についての実空間上での座標を算出する座標算出手段と、前記第３の軸上に並んだ複数の前記特徴点である点群が、鉛直方向において予め定められた高さよりも高い位置に存在し、かつ、前記点群よりも前記移動体の進行方向における奥に前記特徴点が存在しない場合、前記点群が前記壁の上端であると判定する判定手段と、を備える。
【０００７】
壁の上端には天井や空間などとの境目が存在するため、視差算出手段は、画像に写る壁の上端から視差を算出することができる。視差が得られた特徴点について座標を算出すると、壁の上端を示す特徴点は、第３の軸上に並ぶことになる。また、進行方向における壁よりも奥は、撮像することができないため、壁が撮像されている場合、点群よりも奥には特徴点が存在しない。このため、鉛直方向において予め定められた高さよりも高い位置に点群が存在し、かつ、点群よりも奥に特徴点が存在しない場合、判定手段は、点群が壁の上端であると判定することができる。壁検出装置は、上端から下方に向けて壁が存在していると判断することで、壁を検出することができる。
【０００８】
上記壁検出装置について、前記判定手段は、前記第３の軸上に並んだ複数の前記特徴点である下側点群が前記点群の下方に存在する場合、前記下側点群が前記壁の下端であると判定してもよい。
【０００９】
壁の上端と同様に、壁の下端には床との境目が存在する。点群の下方に下側点群が存在する場合、判定手段は、下側点群が壁の下端であると判定することができる。壁検出装置は、点群と下側点群との間に壁が存在していると判断することができる。
【００１０】
上記壁検出装置について、前記ステレオカメラを構成する複数のカメラは、鉛直方向に並んで配置されていてもよい。
ステレオカメラを構成する複数のカメラを鉛直方向に並べると、各カメラによって撮像される画像に写る同一の対象物は、上下方向にずれて撮像されることになる。すると、視差は、各画像における縦ピクセルの差となって現れることになる。壁の上端のように、画像の横方向に延びるエッジから視差を算出する場合、視差算出手段は、縦ピクセルの差のほうが視差を算出しやすい。したがって、カメラを鉛直方向に並べて配置することで、壁検出装置は、壁の検出を行いやすくなる。
【００１１】
上記壁検出装置について、前記判定手段は、前記第２の軸上に並んだ複数の前記特徴点である横点群が存在する場合、前記横点群が前記壁における左右方向の端部であると判定してもよい。
【００１２】
壁における左右方向の端部を撮像すると、この端部は第２の軸上に並ぶ特徴点となる。したがって、横点群が存在する場合、判定手段は、横点群は壁における左右方向の端部であると判定できる。
【発明の効果】
【００１３】
本発明によれば、壁を検出することができる。
【図面の簡単な説明】
【００１４】
【図１】壁検出装置が搭載されるフォークリフトの側面図。
【図２】フォークリフト、及び、壁検出装置の概略構成図。
【図３】壁を示す概略図。
【図４】（ａ）は第１カメラによって壁を撮像したときの第１画像を示す図、（ｂ）は第２カメラによって壁を撮像したときの第２画像を示す図。
【図５】壁検出処理を示すフローチャート。
【図６】壁特徴探索処理を示すフローチャート。
【図７】相対位置算出処理を示すフローチャート。
【図８】ワールド座標系上にプロットされた特徴点を示す概略図。
【図９】通路の状態を説明するための図。
【図１０】ワールド座標系上にプロットされた特徴点を示す概略図。
【発明を実施するための形態】
【００１５】
以下、壁検出装置の一実施形態について説明する。
図１及び図２に示すように、移動体としてのフォークリフト１０は、車体１１と、車体１１の前部に設けられた荷役装置１２と、を備える。フォークリフト１０は、駆動輪１３と、操舵輪１４と、駆動輪１３を駆動させる走行用モータＭ１と、を備える。なお、フォークリフト１０は、自動で走行動作及び荷役動作が行われるものであってもよいし、搭乗者（オペレータ）による操作によって走行動作及び荷役動作が行われるものであってもよい。
【００１６】
フォークリフト１０は、メインコントローラ２０と、走行用モータＭ１を制御する走行制御装置２３と、車速センサ２４と、を備える。メインコントローラ２０は、走行動作、及び、荷役動作に関する制御を行う。メインコントローラ２０は、ＣＰＵ（演算部）２１と、種々の制御を行うためのプログラムなどが記憶されたメモリ２２と、を備える。
【００１７】
メインコントローラ２０のＣＰＵ２１は、フォークリフト１０の車速が目標速度となるように走行制御装置２３に走行用モータＭ１の回転数の指令を与える。メインコントローラ２０は、走行制御装置２３に走行用モータＭ１を回転させる方向の指令を与えることで、フォークリフト１０を進行させる方向（前進又は後進）を制御する。
【００１８】
本実施形態の走行制御装置２３は、モータドライバである。本実施形態の車速センサ２４は、走行用モータＭ１の回転数を検出する回転数センサである。車速センサ２４は、走行用モータＭ１の回転数を走行制御装置２３に出力する。走行制御装置２３は、メインコントローラ２０からの指令に基づき、走行用モータＭ１の回転数が指令と一致するように走行用モータＭ１を制御する。走行制御装置２３は、走行用モータＭ１の回転方向がメインコントローラ２０からの指令と一致するように走行用モータＭ１を制御する。
【００１９】
フォークリフト１０には、壁検出装置３０が搭載されている。壁検出装置３０は、２つの撮像装置３１，４１を備える。２つの撮像装置３１，４１のうちの一方は、前方撮像装置３１であり、他方は後方撮像装置４１である。前方撮像装置３１は、フォークリフト１０の前方を撮像するステレオカメラである。後方撮像装置４１は、フォークリフト１０の後方を撮影するステレオカメラである。
【００２０】
各撮像装置３１，４１は、車体１１の上部に配置されている。前方撮像装置３１は、２つのカメラ３２，３３を備える。カメラ３２，３３としては、例えば、ＣＣＤイメージセンサや、ＣＭＯＳイメージセンサが用いられる。各カメラ３２，３３は、互いの光軸が平行となるように配置されている。なお、各カメラ３２，３３の光軸は、水平であってもよいし、水平でなくてもよい。本実施形態において、２つのカメラ３２，３３は、鉛直方向に並んで配置されている。２つのカメラ３２，３３のうち、上方に位置するカメラ３２を第１カメラ３２とし、下方に位置するカメラ３３を第２カメラ３３とする。後方撮像装置４１は、前方撮像装置３１と同一構成であり、第１カメラ４２と、第２カメラ４３と、を備える。
【００２１】
第１カメラ３２，４２によって撮像された画像を第１画像、第２カメラ３３，４３によって撮像された画像を第２画像とすると、第１画像と第２画像とでは、同一の対象物が縦方向（画像のＹ軸）にずれて写ることになる。
【００２２】
図３に示すように、鉛直方向に立設する壁Ｗを前方撮像装置３１で撮像したとする。この場合、各カメラ３２，３３によって撮像された画像には、壁Ｗの上端Ｅ１、及び、壁Ｗの下端Ｅ２が写る。なお、鉛直方向に立設する壁Ｗとは、鉛直方向に対して傾斜して立設したものも含む。即ち、上端Ｅ１及び下端Ｅ２を備える壁であればよい。
【００２３】
図４（ａ）、及び、図４（ｂ）に示すように、第１画像と、第２画像では、上端Ｅ１及び下端Ｅ２が縦方向（画像のＹ軸）にずれて写ることになる。なお、本実施形態において、各カメラ３２，３３，４２，４３によって撮像される画像の画素数は、同一である。画像としては、例えば、ＶＧＡ（６４０×４８０ピクセル）が用いられる。
【００２４】
図２に示すように、壁検出装置３０は、各撮像装置３１，４１によって撮像された画像から壁Ｗを検出する画像処理装置５０を備える。画像処理装置５０は、ＣＰＵ、ＲＡＭ、ＲＯＭ等から構成されている。なお、画像処理装置５０は、壁Ｗ以外にも障害物となり得る物体を検出しているが、説明の便宜上、壁Ｗを検出する場合についてのみ説明する。画像処理装置５０は、撮像装置３１，４１によって撮像された画像から壁Ｗを含む障害物を検出する障害物検出装置ともいえる。
【００２５】
以下、画像処理装置５０の行う壁検出処理について壁検出装置３０の作用とともに説明する。
図５に示すように、画像処理装置５０は、撮像装置３１，４１によって撮像された画像から、視差を算出する（ステップＳ１０）。視差は、撮像装置３１，４１のそれぞれについて第１画像と、第２画像とを比較し、各画像に写る同一の対象物について第１画像と第２画像の画像位置（ピクセル）の差を算出することで得られる。画像位置の差は、第１画像に写る対象物と、第２画像に写る対象物との画素（ピクセル）数の差［ｐｘ］である。本実施形態において、視差は視差画像として得られる。視差画像とは、撮像装置３１，４１によって撮像された画像に写る対象物と、当該対象物の視差とを対応付けた画像である。視差画像には、画素毎に視差が対応付けられている。視差画像の画素数は、第１画像（第２画像）の画素数と同一である。なお、視差画像とは、必ずしも表示を要するものではなく、視差画像における各画素（視差画像におけるＸ座標及びＹ座標）に視差が対応付けられたデータのことを示す。本実施形態において、画像処理装置５０は、視差算出手段として機能する。
【００２６】
図４（ａ）、及び、図４（ｂ）に示すように、各画像に写る同一の対象物の画素を比較すると、第１画像と第２画像で横ピクセルは同一となる一方で、縦ピクセルは異なる。即ち、視差は縦ピクセルの差となって現れることになる。第１画像と第２画像との視差を算出する際には、各画像を縦方向（Ｙ軸）に走査していくことで、各画像における同一の対象物を抽出する。なお、対象物とは、各画像に含まれる特徴部分であり、例えば、物体のエッジなど、境目として認識可能な部分である。対象物は、輝度情報などから検出することができ、画像処理装置５０は、対象物から視差を算出することができる。一方で、画像中で特徴のない部分（画素）については、視差を算出することができない。
【００２７】
図５に示すように、画像処理装置５０は、視差からフォークリフト１０の周囲に存在する対象物の位置を算出する（ステップＳ１１）。まず、画像処理装置５０は、各撮像装置３１，４１によって得られた視差画像からカメラ座標系における対象物の位置を算出する。カメラ座標系は、光軸をＺ軸とし、光軸に直交する２つの軸のそれぞれをＸ軸、Ｙ軸とする３軸直交座標系である。カメラ座標系における対象物の位置は、カメラ座標系におけるＺ座標Ｚｃ、Ｘ座標Ｘｃ、Ｙ座標Ｙｃで表わすことができる。Ｚ座標Ｚｃ、Ｘ座標Ｘｃ、及び、Ｙ座標Ｙｃは、それぞれ、以下の（１）式〜（３）式を用いて算出することができる。
【００２８】
【数１】
2019090711.tif 000003
【００２９】
【数２】
2019090711.tif 000004
【００３０】
【数３】
2019090711.tif 000005
ここで、Ｂは各撮像装置３１，４１の眼間距離［ｍ］、ｆは焦点距離［ｍ］、ｄは視差［ｐｘ］である。ｘｐは視差画像中の任意のＸ座標（任意の画素の横ピクセル）、ｘ’は視差画像中の中心Ｘ座標である。ｙｐは視差画像中の任意のＹ座標（任意の画素の縦ピクセル）、ｙ’は視差画像中の中心Ｙ座標である。視差画像中の全ての対象物について、上記した（１）式〜（３）式の計算は行われる。
【００３１】
ここで、フォークリフト１０の進行方向に延びる軸を第１の軸としてのＹ軸、鉛直方向に延びる軸を第２の軸としてのＺ軸、Ｙ軸及びＺ軸に直交する軸を第３の軸としてのＸ軸とする３軸直交座標系（ワールド座標系）での座標を実空間上での座標（ワールド座標）とする。実空間上での対象物の位置は、実空間上におけるＸ座標Ｘｗ、Ｙ座標Ｙｗ、Ｚ座標Ｚｗで表わすことができる。
【００３２】
各カメラ３２，３３，４２，４３の光軸が水平（鉛直方向と直交）となるように撮像装置３１，４１が設置されている場合、Ｘｃ＝Ｘｗ、Ｙｃ＝Ｚｗ、Ｚｃ＝Ｙｗとなる。即ち、カメラ座標系における対象物の位置が実空間上での対象物の位置となる。
【００３３】
一方で、各カメラ３２，３３、４２，４３の光軸が水平（鉛直方向と直交）ではない場合、画像処理装置５０は、以下の（４）式を用いて座標変換（ワールド座標変換）を行う。
【００３４】
【数４】
2019090711.tif 000006
ここで、Ｈはワールド座標系における撮像装置３１，４１の取り付け高さであり、θはカメラ３２，３３、４２，４３の光軸と、水平面とがなす角＋９０°の角度である。本実施形態において、画像処理装置５０は、座標算出手段として機能する。
【００３５】
次に、画像処理装置５０は、進行方向の判定を行う（ステップＳ１２）。進行方向（前進、又は、後進）は、例えば、車速センサ２４によって検出される走行用モータＭ１の回転方向から判定することができる。
【００３６】
画像処理装置５０は、ステップＳ１１によって得られた対象物の位置から、壁特徴が現れているかを探索する壁特徴探索処理を行う（ステップＳ１３）。
図８に示すように、壁特徴の探索は、ワールド座標系におけるＸＹ平面を任意の広さに分割した複数のエリアＡのうち、進行方向に存在する各エリアＡについて行われる。進行方向が前であれば、フォークリフト１０より前の各エリアＡについて壁特徴の探索が行われ、進行方向が後であれば、フォークリフト１０より後の各エリアＡについて壁特徴の探索が行われる。
【００３７】
壁特徴の探索は、ステップＳ１１で得られた対象物の位置を、ワールド座標系にプロットすることで行われる。以下、ワールド座標系にプロットされた対象物の位置を特徴点Ｐとして説明を行う。特徴点Ｐとは、ワールド座標系において、視差（対象物の位置）を得られた座標といえる。
【００３８】
図６に示すように、画像処理装置５０は、鉛直方向において予め定められた高さよりも高い位置にＸ軸上に並ぶ複数の特徴点Ｐである点群Ｐ１が存在するか否かを判定する（ステップＳ２１）。即ち、探索を行うエリアＡに、Ｚ座標Ｚｗ及びＹ座標Ｙｗが同様の値である特徴点Ｐが、Ｘ軸上に並んで複数存在するか否かを判定する。なお、ここでいう「同様の値」とは、若干のずれを許容するものである。
【００３９】
撮像装置３１，４１により壁Ｗが撮像される場合、壁Ｗの上端Ｅ１には、天井や空間などとの境目が存在するため、画像に写る上端Ｅ１から視差を得ることができる。上端Ｅ１は、水平方向に延びるため、上端Ｅ１を示す特徴点Ｐをプロットした場合、複数の特徴点ＰがＸ軸上に並び、点群Ｐ１となる。なお、「鉛直方向において予め定められた高さよりも高い位置」とは、壁の上端Ｅ１が存在すると想定される高さであり、例えば、フォークリフト１０の高さ（最高点）よりも高い位置である。壁Ｗの上端Ｅ１が鉛直方向において予め定められた高さよりも高い位置にあるか否かは、点群Ｐ１を構成する特徴点ＰのＺ座標Ｚｗから判定することができる。
【００４０】
ステップＳ２１の判定結果が否定の場合、画像処理装置５０は、該当エリアＡには壁Ｗが存在しないと判断する（ステップＳ２４）。ステップＳ２１の判定結果が肯定の場合、画像処理装置５０は、ステップＳ２２に移行する。
【００４１】
画像処理装置５０は、鉛直方向において予め定められた高さよりも低い位置に点群Ｐ１とは異なる点群である下側点群Ｐ２が存在するか否かを判定する（ステップＳ２２）。壁Ｗの上端Ｅ１と同様に、壁Ｗの下端Ｅ２についても床との境目が存在する。下端Ｅ２を示す特徴点Ｐをプロットした場合、複数の特徴点ＰがＸ軸上に並び、下側点群Ｐ２となる。なお、ステップＳ２２における「鉛直方向において点群Ｐ１よりも低い位置」とは、点群Ｐ１よりも低い位置であり、例えば、フォークリフト１０が走行している床面と同一高の位置である。
【００４２】
ステップＳ２２の判定結果が否定の場合、画像処理装置５０は、該当エリアＡには壁Ｗが存在しないと判断する（ステップＳ２４）。ステップＳ２２の判定結果が肯定の場合、画像処理装置５０は、ステップＳ２３に移行する。
【００４３】
画像処理装置５０は、点群Ｐ１（下側点群Ｐ２）より奥に特徴点Ｐが存在するか否かを判定する（ステップＳ２３）。点群Ｐ１より奥とは、フォークリフト１０が前進している場合には点群Ｐ１よりも前方であり、フォークリフト１０が後進している場合には点群Ｐ１よりも後方である。ステップＳ２３の判定結果が否定の場合、画像処理装置５０は、該当エリアＡには壁Ｗが存在すると判断する（ステップＳ２５）。ステップＳ２３の判定結果が肯定の場合、画像処理装置５０が、該当エリアＡには壁Ｗが存在しないと判断する（ステップＳ２４）。
【００４４】
図９に示すように、進行方向に壁Ｗが存在しない場合であっても、色の異なる２つの通路Ｆ１，Ｆ２が繋がっている場合や２つの通路Ｆ１，Ｆ２の継目がある場合など、２つの通路Ｆ１，Ｆ２の境界から視差（対象物の位置情報）が算出される場合がある。この場合、２つの通路Ｆ１，Ｆ２同士の境界に壁Ｗが存在しないにも関わらず点群Ｐ１が検出されることになる。壁Ｗが存在しない場合には、通路Ｆ１，Ｆ２の境界よりも奥にある物体Ｏが画像に写り、この物体によって視差が得られる。したがって、図１０に示すように、点群Ｐ１が存在する場合であっても、点群Ｐ１より奥に特徴点Ｐが存在する場合、壁Ｗが存在しないと判断できる。
【００４５】
一方で、進行方向における壁Ｗよりも奥は、撮像することができないため、壁Ｗが撮像されている場合、点群Ｐ１よりも奥には特徴点Ｐが存在しない。点群Ｐ１より奥に特徴点Ｐが存在しない場合、点群Ｐ１は壁Ｗの上端Ｅ１であり、下側点群Ｐ２は壁Ｗの下端Ｅ２であると判断することができる。そして、画像処理装置５０は、点群Ｐ１及び下側点群Ｐ２が存在するエリアには、点群Ｐ１と下側点群Ｐ２との間に壁Ｗが存在すると検出することができる。本実施形態において、画像処理装置５０は、判定手段として機能する。
【００４６】
図６に示すように、エリアＡの探索を終えると、即ち、ステップＳ２４又はステップＳ２５の処理が行われると、画像処理装置５０は、探索数のインクリメント（加算）を行い（ステップＳ２６）、壁特徴探索処理を終了する。
【００４７】
図５に示すように、壁特徴探索処理が終了すると、画像処理装置５０は、進行方向に存在するエリアＡの数と、探索数とを比較し、進行方向に存在するエリアＡの数が探索数よりも多いか否かを判定する（ステップＳ１４）。即ち、進行方向に存在するエリアＡの全てについて、壁特徴探索処理を行ったか否かの判定を行う。ステップＳ１４の判定結果が肯定の場合、画像処理装置５０は、壁特徴の探索が終了していないエリアＡについて、壁特徴探索処理を行う。一方で、ステップＳ１４の判定結果が否定の場合、画像処理装置５０はステップＳ１５に移行する。
【００４８】
画像処理装置５０は、フォークリフト１０の進行方向に壁Ｗが存在するか否かを判定する（ステップＳ１５）。即ち、ステップＳ１３における壁特徴探索処理において、壁Ｗが検出されたか否かを判定する。ステップＳ１５の判定結果が否定の場合、画像処理装置５０は、処理を終了する。一方で、ステップＳ１５の判定結果が肯定の場合、画像処理装置５０は、相対位置算出処理を行う（ステップＳ１６）。
【００４９】
図７に示すように、相対位置算出処理において、画像処理装置５０は、フォークリフト１０と、壁Ｗとの相対位置を算出する（ステップＳ３１）。相対位置の算出は、点群Ｐ１、あるいは、下側点群Ｐ２を構成する特徴点ＰのＹ座標から算出することができる。画像処理装置５０は、算出した相対位置をメインコントローラ２０に出力する。
【００５０】
メインコントローラ２０は、フォークリフト１０と壁Ｗとの相対距離が所定値以下か否かを判定する（ステップＳ３２）。所定値とは、例えば、フォークリフト１０の最高速度や、制動性能などに基づき定められる値である。
【００５１】
ステップＳ３２の判定結果が否定の場合、メインコントローラ２０は処理を終了する。ステップＳ３２の判定結果が肯定の場合、メインコントローラ２０は減速処理を行う（ステップＳ３３）。減速処理としては、フォークリフト１０を停止させる処理、フォークリフト１０の速度を現在速度から段階的に低下させる処理、フォークリフト１０の速度に制限を課し、制限速度を上回る速度での走行を規制する処理など、様々な処理が挙げられる。
【００５２】
したがって、上記実施形態によれば、以下の効果を得ることができる。
（１）点群Ｐ１が存在し、かつ、点群Ｐ１よりも奥に特徴点Ｐがない場合、画像処理装置５０は、点群Ｐ１が壁Ｗの上端Ｅ１であると判定している。画像処理装置５０は、点群Ｐ１から下方に向けて壁Ｗが存在していると検出できる。壁Ｗの上端Ｅ１は、壁Ｗに模様や凹凸などの特徴がない場合であっても存在する。このため、上端Ｅ１から得られた視差により壁Ｗを検出することで、壁Ｗに特徴がない場合であっても、壁Ｗを検出することができる。
【００５３】
（２）点群Ｐ１の下方に下側点群Ｐ２が存在する場合、画像処理装置５０は、下側点群Ｐ２が壁Ｗの下端Ｅ２であると判定している。画像処理装置５０は、点群Ｐ１と下側点群Ｐ２との間に壁Ｗが存在していると検出できる。このため、壁Ｗの検出をより正確に行うことができる。
【００５４】
（３）仮に、カメラ３２，３３，４２，４３を左右方向に並ぶように配置した場合、第１画像と第２画像とは横方向（画像におけるＸ座標）にずれた画像となる。壁Ｗの上端Ｅ１は水平方向に延びているため、第１画像と第２画像とが横方向にずれた場合、第１画像に写る対象物と同一の対象物が第２画像のいずれの画素に対応するかを判定しにくい。これに対して、カメラ３２，３３，４２，４３を鉛直方向にずらして配置することで、各カメラ３２，３３によって撮像される画像は縦方向にずれた画像となる。すると、視差は、各画像における縦ピクセルの差（画像におけるＹ座標の差）となって現れる。結果として、各画像から同一の対象物を抽出しやすくなり、視差が算出されやすくなる。したがって、画像処理装置５０は、壁Ｗの検出を行いやすくなる。
【００５５】
なお、実施形態は以下のように変更してもよい。
○図８に破線で示すように、画像処理装置５０は、ワールド座標系においてＺ軸上に並んだ複数の特徴点Ｐである縦点群Ｐ３が存在する場合、当該縦点群Ｐ３が壁Ｗにおける左右方向の端部であると判定してもよい。この場合、画像処理装置５０は、上端Ｅ１、下端Ｅ２、左右方向の端部に囲まれる部分に壁Ｗが存在すると検出する。また、画像処理装置５０は、左右方向の端部を２つ検出した場合、２つの端部の間の部分に壁Ｗが存在すると検出してもよい。
【００５６】
○画像処理装置５０は、壁Ｗを検出する処理が行えればよく、相対位置の算出などを行わなくてもよい。例えば、画像処理装置５０は、ステップＳ１５までの処理を行い、壁Ｗが検出されたか否かの検出結果をメインコントローラ２０に出力してもよい。この場合、メインコントローラ２０は、壁Ｗが存在することを表示部に表示したり、ブザー音を鳴らすことで報知を行ってもよい。即ち、壁Ｗが検出された場合に行われる処理は、任意に変更してもよい。
【００５７】
○撮像装置３１，４１を構成するカメラ３２，３３，４２，４３は、水平方向（左右方向）に並んで設けられていてもよい。この場合、鉛直方向に延びるエッジから視差を算出しやすい。
【００５８】
○画像処理装置５０は、鉛直方向において予め定められた高さよりも高い位置に点群Ｐ１が存在し、かつ、点群Ｐ１よりも奥に特徴点Ｐが存在しない場合に点群Ｐ１から下方に向けて壁Ｗが存在していると判断してもよい。即ち、壁Ｗの下端Ｅ２が存在するか否かの判定であるステップＳ２２を省略してもよい。
【００５９】
○画像処理装置５０は、点群Ｐ１と下側点群Ｐ２との間に特徴点Ｐが存在する場合、点群Ｐ１の存在するエリアＡに壁Ｗが存在すると判断してもよい。この場合、壁Ｗは模様や凹凸などの特徴がある壁である。
【００６０】
○撮像装置３１，４１として、３つ以上のカメラを備えるものを用いてもよい。
○移動体としては、建設機械、自動搬送車、トラックなどの車両や、二足歩行式のロボットであってもよい。なお、移動体としては、屋内を移動するものであることが好ましい。
【００６１】
○前方撮像装置３１と、後方撮像装置４１とは同一構成でなくてもよい。
○フォークリフト１０の進行方向の判定は、車速センサ２４の検出結果以外に基づいて行われてもよい。例えば、フォークリフト１０の進行方向がディレクションレバーによって変更される場合、ディレクションレバーの操作位置を検出するディレクションセンサの検出結果に基づいて行われてもよい。また、メインコントローラ２０から走行用モータＭ１の回転方向を取得してもよい。
【００６２】
○撮像装置３１，４１によって撮像された画像の画像処理を行う装置として、画像処理装置５０を設けたが、画像処理をメインコントローラ２０などに行わせてもよい。即ち、走行動作や荷役動作に関する制御を行いメインコントローラ２０の１つの機能として画像処理が行われるようにしてもよい。
【００６３】
○画像処理装置５０が視差算出手段、座標算出手段、及び、判定手段として機能するようにしたが、それぞれの手段として機能する個別の装置を設けてもよい。
○各実施形態において、走行駆動装置として、エンジンが用いられてもよい。すなわち、フォークリフト１０は、エンジンの駆動によって走行してもよい。この場合、走行制御装置は、エンジンへの燃料噴射量などを制御する装置となる。
【００６４】
○前進のみしか行えない移動体の場合、後方撮像装置４１を設けなくてもよい。
○搭乗者が搭乗可能な移動体に壁検出装置３０が搭載される場合、搭乗者による視認が行われにくい後方の壁Ｗのみを検出してもよい。この場合、前方撮像装置３１を設けなくてもよい。
【００６５】
○前方撮像装置３１は、フォークリフト１０の前方を撮像できれば、どのような位置に配置されていてもよい。後方撮像装置４１は、フォークリフト１０の後方を撮像できれば、どのような位置に配置されていてもよい。例えば、前方撮像装置３１は、荷役装置１２に配置されていてもよいし、後方撮像装置４１は、車体１１の後方に設けられるカウンタウェイトに配置されていてもよい。
【００６６】
○座標変換は、（４）式に代えて、テーブルデータによって行われてもよい。テーブルデータは、Ｙ座標ＹｃとＺ座標Ｚｃの組み合わせにＹ座標Ｙｗを対応させたテーブルデータと、Ｙ座標ＹｃとＺ座標Ｚｃとの組み合わせにＺ座標Ｚｗを対応させたテーブルデータである。これらのテーブルデータを画像処理装置５０のＲＯＭなどに記憶しておくことで、カメラ座標系におけるＹ座標ＹｃとＺ座標Ｚｃから、ワールド座標系におけるＹ座標Ｙｗ及びＺ座標Ｚｗを求めることができる。なお、実施形態では、カメラ座標系におけるＸ座標Ｘｃと、ワールド座標系におけるＸ座標Ｘｗとは一致するため、Ｘ座標Ｘｗを求めるためのテーブルデータは記憶されない。
【符号の説明】
【００６７】
Ｐ…特徴点、Ｐ１…点群、Ｐ２…下側点群、Ｐ３…縦点群、１０…フォークリフト（移動体）、３０…壁検出装置、３１，４１…撮像装置（ステレオカメラ）、３２，３３，４２，４３…カメラ、５０…画像処理装置（視差算出手段、座標算出手段、及び、判定手段）。
【図１】
2019090711.tif 000007
【図２】
2019090711.tif 000008
【図３】
2019090711.tif 000009
【図４】
2019090711.tif 000010
【図５】
2019090711.tif 000011
【図６】
2019090711.tif 000012
【図７】
2019090711.tif 000013
【図８】
2019090711.tif 000014
【図９】
2019090711.tif 000015
【図１０】
2019090711.tif 000016