【実施例1】
【0028】
以下、図面を参照して本発明の実施例1を説明する。本発明における移動体の実施形態として、自律走行するゴルフカートを挙げる。本発明における移動体はゴルフカートに限られず、工場や果樹園で走行する無人搬送車も含まれる。また、本発明における移動体は4輪車に限られず、3輪車でもよいし、モノレール型でもよい。なお、以下の説明で、前後および左右とは移動体の前進する方向を基準としている。
【0029】
1.車両の概略構成
図1を参照する。
図1は、実施例に係る車両1の前面図である。車両1はゴルフ場内を自律走行するゴルフカートである。車両1は、走路に埋め込まれた誘導線から発せられる電磁波に誘導されて自律走行することができる。車両1の前面中央部にステレオカメラ3が設けられている。
【0030】
また、車両1は、ハンドル4の回転により操舵される右前輪5および左前輪6を備える。車両1の下部には、走路Tr上に予め埋設された定点Fp(
図5)を読み取る読み取り部7が設けられている。定点Fpはスタート位置So以外にも走路Tr上に複数個埋設されている。定点Fpは複数の磁石の磁極の組み合わせで構成されている。読み取り部7は、このような磁場情報を定点Fpから読み取る磁力センサである。磁場情報には、スタート位置So、または、ある特定位置を示す位置情報と、一旦停止や車速の増減速等の速度制御情報とが含まれる。なお、定点Fpは磁石だけでなく、RFID(radio frequency identifier)で用いられるRFタグでもよい。
【0031】
右前輪5には、右前輪5の回転角を検出する回転角センサ8および右前輪5の回転速度を検出する車輪速センサ9が備えられている。また、ハンドル4の近傍には種々の情報を表示するタッチパネルディスプレイ12が設置されている。回転角センサ8は、車輪の回転角を検出するもので、例えば、ロータリーエンコーダである。なお、回転角センサ8および車輪速センサ9は、右前輪5の代わりに左前輪6または後輪に備えてもよい。
【0032】
次に、
図2を参照する。
図2は車両1の構成を示す機能ブロック図である。車両1には、走路上の障害物を検出する障害物検出装置14と、車両1が誘導線に沿って自律走行するのを制御する自律走行制御部15と、自律走行および障害物の検出により車速の加減速の制御をする車速制御部16と、障害物の検出により車両前方および搭乗者に警告を発する警報器17とを備える。自律走行制御部15は従来の自律走行の制御方法を用いるので、ここでの説明は省略する。警報器17は、車両1の前面に設けられ、音により車両1が接近しているのを周囲に報知することができる。
【0033】
2.障害物検出装置の構成
次に
図3を参照して車両1に備えられた障害物検出装置14の構成を説明する。
図3は、障害物検出装置14の構成を示すブロック図である。
【0034】
障害物検出装置14は、車両1の前方の物体までの距離情報を検出する距離情報検出部21と、車両1の前方の視差画像を生成する視差画像生成部23と、スタート位置Soからの車両1の位置に応じて視差画像上の走路を特定する走路位置情報が記憶された走路位置情報記憶部25と、走路上における車両1の位置を推定する位置推定部27と、推定された位置と走路位置情報により視差画像における走路を特定する走路特定部29と、視差画像を基に障害物を検出する障害物検出部31と、検出された障害物が特定された走路上にあるか否かを判定する判定部33と、視差情報から距離情報を算出する距離算出部34と検出された障害物が人であるか否かを判定する人判定部35とを備える。
【0035】
距離情報検出部21は、車両1の前方の画像を撮影するステレオカメラ3と、ステレオカメラ3により撮影された画像を一時的に保管するバッファ41とを備える。
【0036】
ステレオカメラ3は、左画像センサ3aと右画像センサ3bとの2個の画像センサで構成される。左画像センサ3aおよび右画像センサ3bはCCDやCMOSなど一般的な可視光センサである。左画像センサ3a、右画像センサ3bは予め定められた幾何条件の下で車両1に設置されている。実施例1では、左画像センサ3a、右画像センサ3bは水平方向に一定距離を保たれて設置されている。すなわち、左画像センサ3aおよび右画像センサ3bはそれぞれ平行ステレオの位置関係で配置されている。
【0037】
左画像センサ3a、右画像センサ3bは、それぞれ撮影された画像の各行の位置が一致するように、すなわち、エピポーラ線が一致するように配置されている。左画像センサ3aで撮影された画像を左画像とし、右画像センサ3bで撮影された画像を右画像とする。実施例1では左画像センサ3aを基準カメラとし、左画像を基準画像とする。なお、ステレオカメラ3が備える画像センサの数は2個に限られず3個以上でもよい。また、右画像を基準画像としてもよい。
【0038】
図4を参照して、撮像センサ3a、3bの座標系を説明する。ステレオカメラ3の横方向(左右方向)にX軸が設けられ、ステレオカメラ3の縦方向(上下方向)にY軸が設けられ、ステレオカメラ3の前方向(奥行き方向)にZ軸が設けられている。なお、X軸およびY軸は左画像および右画像の座標軸である。左画像および右画像との視差情報が障害物検出装置14から車両1の前方の物体までの距離情報となる。
【0039】
図3に戻って説明する。バッファ41は、ステレオカメラ3から送られる画像、すなわち、画像センサ3a、3bから送られる各画像を一時的に保管する。バッファ41は、メモリ、フラッシュメモリ、ハードディスク(HDD)などを用いる。なお、
図3上ではバッファ41は画像センサ3a、3bのそれぞれに対応して設けられているが、1つのバッファでもよい。なお、保管される各画像は、補正パラメータを用いてレンズ歪み、焦点距離のばらつき等が補正された画像が好ましい。このような補正により、画像センサの光軸に対して垂直な面のテクスチャが画像投影面に対しても同様に投影される。
【0040】
視差画像生成部23は、入力される各画像から視差画像を生成する。すなわち、バッファ41に保管されている左画像および右画像を基に視差画像を生成する。視差画像は例えばSAD等のステレオマッチングにより生成することができる。ステレオマッチングの方法は、他にも、面積相関法や、Census transformが挙げられる。ここでの視差は複数画像間の画素のずれ量を示す。実施例1において、視差は、左画像に対する右画像の横方向の画素のずれ量である。なお、視差画像上のX座標およびY座標は基準画像上のX座標およびY座標と同じである。生成された視差画像は障害物検出部31および走路特定部29へ出力される。
【0041】
走路位置情報記憶部25には、走路のスタート位置Soからの距離に応じて、視差画像上の視差値とX座標値により走路を特定する位置情報が記憶されている。
図5に示すように、走路Tr上のスタート地点Soから、例えば等距離間隔ごとに、各地点S1〜Snにおける視差画像上の走路の視差値とX座標値とが予め測定されて記憶されている。なお、
図5において、地点の表示を途中省略している。
【0042】
図6を参照して説明する。
図6は、例えば、
図5におけるスタート位置Soから距離Laの地点Saにおける視差画像P1を示している。走路位置情報記憶部25には、この視差画像P1における走路TrのX座標値が視差値と関連づけて予め記憶されている。すなわち、地点Saの走路位置情報として、視差値daに対してX座標領域X
1−X
10、視差値dbに対してX座標領域X
2−X
9、視差値dcに対してX座標領域X
3−X
8、視差値ddに対してX座標領域X
4−X
7、視差値deに対してX座標領域X
5−X
6が走路位置情報記憶部25に保管されている。なお、視差値da〜dgの関係は、da>db>dc>dd>de>df>dgである。
【0043】
このように、走路位置情報記憶部25は、地点S1〜Snごとに、その地点における視差画像において、走路TrのX座標値と視差値とが関連づけて保管されている。走路位置情報記憶部25は、メモリ、フラッシュメモリ、ハードディスク(HDD)などを用いる。
【0044】
図3に戻って説明する。位置推定部27は、読み取り部7、回転角センサ8、および、位置算出部43を備える。読み取り部7、および、回転角センサ8の各検出値は位置算出部43へ出力される。
【0045】
位置算出部43は、入力される各検出値を基に、簡易化されたオドメトリの方法を用いて、スタート位置Soからの車両1の現在位置を算出する。すなわち、スタート位置So、又は、各定点Fpの位置情報が読み取り部7から位置算出部43へ入力される。また、スタート位置So、又は、各定点Fpからの移動距離は、回転角センサ8の検出値をカウントすることで位置算出部43が算出することができる。算出された車両1の位置情報は走路位置情報記憶部25へ出力され、車両1の位置情報と対応する走路位置情報が読み出される。読み出された走路位置情報は走路特定部29へ出力される。
【0046】
車両1は予め定められた走路Trを走行するので、予め定められた位置であるスタート位置So、又は、各定点Fpからの移動距離で走路Tr上の車両1の位置を特定することができる。このように、位置推定部27が走路Tr上における車両1の位置を、スタート位置So、又は、各定点Fpからの移動距離により推定するので、全体座標系を用いなくても車両座標系だけで車両1の位置を推定することができる。さらに、移動距離は1次元のデータ量であるので、車両位置の特定に扱うデータ量を格段に低減することができる。また、位置推定部27は、スタート位置So以外の位置に埋設された定点Fpの磁場情報を読み取ることで、算出された位置の誤差を修正することができる。これにより、車両1の現在位置を高精度に推定することができる。
【0047】
走路特定部29は、入力される走路位置情報を基に、視差画像生成部23により生成された視差画像上における走路Trを特定する。走路の特定は、予め記憶されているX座標値と対応する視差値により特定される。
図7に示される視差画像P2は、
図6に示される視差画像P1と同一の地点のものである。
図7において、走路位置情報における視差値deのX座標領域はX
5−X
6であるが、障害物Ob4により、X座標がX
5の視差値deの領域は無い。この場合、X座標領域がX
5−X
6間で視差値deの範囲が走路として特定される。特定された走路領域は判定部33へ出力される。
【0048】
障害物検出部31は、視差画像において、X方向に異なる視差値と接し、かつ、同じ視差値の領域が予め定められた値以上のY方向の画素数を有する領域、言い換えると、同じ視差値であって予め定められた高さを有する領域を障害物として検出する。
図6および
図7において、領域Ob1、Ob2、Ob3、Ob4が障害物として検出される。検出された障害物の領域Ob1〜Ob4が判定部33へ出力される。なお、障害物の領域として同じ視差値に限られず、ある視差値を基準として予め定められた範囲の視差値の領域を一纏めにする処理をすることで、複数の視差値を有する障害物の領域を特定してもよい。
【0049】
判定部33は、検出された障害物が走路Tr上に存在するか否かを判定する。判定部33は、入力された障害物の領域の下端のX座標値の範囲が走路の各視差のX座標の範囲内に含まれるかどうかで判定する。これにより、例えば、
図7に示される障害物Ob1〜Ob4のうち、障害物Ob4だけが走路Tr上にあると判定される。
【0050】
なお、判定部33は、障害物の領域を囲む矩形領域が走路領域と重なるか判定した後で、走路領域と重なる矩形領域を有する障害物に対して、上述した判定をする2段階の判定を実施してもよい。この2段階判定により、より高速に障害物が走路上に存在するか否かを判定することができる。なお、矩形の下端のY座標値(高さ)が予め定められた高さよりも大きい場合は、走路上空にかかる橋や枝等の木の一部として障害物ではないと判定することで、障害物判定の精度を向上させることもできる。
【0051】
距離算出部34は、走路Tr上に障害物が存在すると判定されると、障害物の領域の視差情報を基に、障害物までの実空間上の距離を算出する。視差画像から距離を算出する方法は、従来から利用されている平行ステレオ法を用いる。算出された距離は車速制御部16へ出力される。車速制御部16は、障害物までの距離に応じて車両1の車速を減速または停止する。車両1と障害物との距離が近い程、減速が大きくなされる。これにより、車両1と障害物との接触回避を向上させることができる。
【0052】
人判定部35は、視差画像において走路上に存在する障害物の領域と対応する、基準画像上の領域が人であるか否かを判定する。人判定の方法は、画像局所特徴量(HOG特徴量)と統計的学習手法との組み合わせた方法を用いる。また、この他にも、予め用意されたテンプレートを用いたマッチングにより、人判定を実施してもよい。基準画像において、障害物の領域が人であると判定されると、タッチパネルディスプレイ12に人が車両1の前方にいることを搭乗者に注意喚起する。また、警報器17から警笛が鳴らされて車両1の前方にいる人に対して警告する。基準画像において、障害物の領域が人でないと判定された場合、走路の前方に障害物が存在することをタッチパネルディスプレイ12から搭乗者に注意喚起する。
【0053】
視差画像生成部23、走路特定部29,障害物検出部31、判定部33、距離算出部34、人判定部35、および、位置算出部43はマイクロプロセッサまたはFPGA(Field Programmable Gate Array;再構成可能なゲートアレイ)で構成される。
【0054】
次に、
図8を参照して、実施例1における障害物検出の動作を説明する。
図8は距離推定の処理手順を示すフローチャートである。
【0055】
車両1が走路Trのスタート地点Soから移動開始すると、位置推定部27が車両1の走路Tr上の現在位置を推定する(ステップS01)。また、予め定められた時間間隔でステレオカメラ3が車両1の前方の画像を撮影する。このように複数の画像を撮影することで視差情報(距離情報)を取得する。また、視差画像生成部23が、複数の撮影画像を基に視差画像を生成することで3次元情報を生成する(ステップS02)。次に、走路特定部29が、車両1の現在位置と対応する走路位置情報を基に、視差画像における走路Trを特定する(ステップS03)。また、障害物検出部31が、生成された視差画像内において、障害物を検出する(ステップS04)。次に、判定部33は、検出された障害物が走路Tr上にあるか否かの障害物判定をする(ステップS05)。
【0056】
障害物判定において、走路Tr上に障害物が無いと判定されると(ステップS06のNo)、障害物検出の動作を終了し、ステップS01からの処理が開始される。障害物判定において、走路Tr上に障害物があると判定されると(ステップS06のYes)、人判定部35は、障害物が人か否かを判定する(ステップS07)。障害物が人でない場合(ステップS08のNo)、車速制御部16が障害物との距離に応じて車両1をブレーキ制動も含めた減速または停止制御する(ステップS10)。障害物が人であると判定された場合(ステップS08)、車両1の警報器17から車両前方に、車両1が接近していることを警告する音が発せられる(ステップS09)。また、車速制御部16が人との距離に応じて車両1をブレーキ制動も含めた減速または停止制御する(ステップS10)。
【0057】
このように、実施例1によれば、3次元情報上の走路Trを特定する走路位置情報は、距離情報である視差値と車両1の水平方向の座標情報であるX座標値との2次元の情報であるので、3次元の情報量を用いて特定していた従来よりも扱う情報量を少なくすることができ、演算負荷を軽減することができる。これにより、演算時間を短くすることができ、障害物から距離が確保された時点で障害物が走路上にあるか否かを判定することができ、障害物との接触回避を向上させることができる。
【0058】
また、障害物の判定を走路Tr上に限定することで、走路脇にある木などの立体物を障害物として判定しないので、車両1の誤停止を防止し、スムーズに走行することができる。このように、接触可能性の高い走路Tr上の障害物に対して、車両1を、確実に、減速および停止することができる。
【0059】
また、距離情報検出部21がステレオカメラ3を有することで、視差画像を3次元情報として用いることができる。これにより、視差画像中の走路Trの判定および障害物の検出を適切に実施することができる。また、1次元スキャンのレーザーレーダを用いると、路面のアップダウンにより路面を障害物として検出しやすいが、ステレオカメラ3を用いることで、より路面のうねりの影響を受けにくく障害物を検出することができる。
【0060】
また、現在位置推定の精度をさらに向上させたい場合、誤差を補正する間隔を短くすればよい。例えば、走路に埋設する定点Fpの数を増やすだけでよい。このようにすることで、高価なGPSやセンサを車両ごとに搭載する必要がないので、安価で高精度な現在位置推定が可能となる。
【実施例3】
【0065】
次に、
図10を参照して実施例3に係る障害物検出装置について説明する。
図10は実施例3における障害物検出装置の構成を示すブロック図である。実施例3において、実施例1に示した符号と同一の符号で示した部分は、実施例1と同様の構成であるのでここでの説明は省略する。また、以下に記載した以外の車両および障害物検出装置の構成は実施例1と同様である。
【0066】
実施例1において、走路Tr上にあると判定された障害物に対して人であるか否かを判定することで、人を検出していた。これに対して、実施例3の障害物検出装置54の特徴は、走路Trを含む走路Trよりも広い範囲内に存在する障害物に対して人であるか否かを判定することで、人を検出する点である。このように人を検出する場合、特定された走路Tr領域よりも、走路幅方向に実距離で例えば1mほど広げた範囲において、人を検出することが好ましい。これにより、走路Tr領域に体の一部だけがあるような人も検出することができるので、早期に回避行動をとることができる。
【0067】
実施例3の障害物検出装置54は、実施例1における障害物検出装置14の構成に走路拡張領域特定部64を備えている点である。実施例1では、判定部33により障害物が有るか否かを判定していたのは、走路特定部29により特定された走路内においてであった。実施例3では、これに加えて、
図11に示すように、走路Trから幅方向外側に予め定められた範囲だけ拡張された領域を走路拡張領域Tr’として走路拡張領域特定部64が特定する。この走路拡張領域Tr’において、障害物の判定および人の判定を実施する。拡張される予め定められた範囲は、走路幅方向に実距離で例えば1mほど広げた範囲である。すなわち、1mに対応する視差に応じた画素数分だけ、
図6で示される特定された走路幅よりも外側へ拡張される。
【0068】
実施例3の判定部33’は実施例1の判定部33の機能に加えて、障害物検出部31にて検出された障害物が、走路拡張領域特定部64により特定された走路拡張領域Tr’に存在するか否かを判定する。さらに、実施例3の人判定部35’は実施例1の人判定部35の機能に加えて、走路拡張領域特定部64により特定された走路拡張領域Tr’に存在すると判定された障害物が人であるか否かを判定する。
【0069】
以上の構成により、判定部33’および人判定部35’において、走路Tr上および走路拡張領域Tr’上における障害物判定および人判定のそれぞれの処理頻度を変えることができる。すなわち、処理時間がかかり、かつ、検出結果を速度制御に用いない走路周辺の人検出の処理頻度を少なくすることができる。したがって、走路Tr上の障害物検出処理のフレームレートを確保することができる。この結果、障害物の誤検出を避けることができ、車両1の安定した停止が可能となる。1フレームの検出結果だけを用いるより、複数フレームの検出結果を用いる方が誤検出による誤停止を抑制できるので、走路Tr上の障害物検出処理のフレームレートは高い方がよい。
【0070】
このように、接触可能性の高い走路Tr上の障害物に対して、車両1を、確実に、減速および停止することができる。また、走路の幅方向端部付近にいる人は、走路周辺の木々等の静止物と混同しやすい。さらに、このような人の手等の体の一部が、車両1に接触してしまう接触可能性の判断は難しい。このような人に対しても、人を検出することで、警報を発することができ、走路から離れた位置に移動してもらうことで、接触率低減と、不快な誤停止の回避との両立を可能とすることができる。
【実施例4】
【0071】
次に、
図12を参照して実施例4に係る障害物検出装置について説明する。
図12は実施例4における障害物検出装置の構成を示すブロック図である。実施例4において、実施例1に示した符号と同一の符号で示した部分は、実施例1と同様の構成であるのでここでの説明は省略する。また、以下に記載した以外の車両および障害物検出装置の構成は実施例1と同様である。
【0072】
実施例1において、生成した視差画像全体の中から障害物を検出し、検出された障害物が走路上にあるか否かを判定していた。これに対して、実施例4では、生成した視差画像の中から、走路上の視差画像を抽出し、抽出された走路上視差画像の中から障害物を検出する。これにより、障害物を検出する領域が小さくなるので、演算負荷をより軽減することができる。
【0073】
実施例4の走路上視差画像抽出部66は、視差画像生成部23により生成された視差画像に対して、走路位置情報記憶部25に記憶されている走路位置情報を基に、走路上の視差画像のみを抽出する。例えば、
図7に示す視差画像を視差画像生成部23が生成したとする。走路上視差画像抽出部66は走路位置情報から、走路Tr領域の視差画像および視差領域ごとに同一の視差値を有する走路TrよりY方向上の視差画像を抽出する。
図13は、抽出された走路上視差画像P3を示す。
【0074】
領域Ob4は視差値dcを有する。領域Ob4は、走路Tr上の視差値dcを有するX座標領域X
3−X
8間の走路TrよりY方向上方向にある視差画像として抽出される。また、領域Ob1’は、走路Tr上の視差値deを有するX座標領域X
5−X
6間の走路TrよりY方向上方向にある視差画像として抽出される。走路Tr上の視差画像だけを抽出するので、走路Trが特定されるだけでなく、実施例1の
図7の視差画像と比べて、Ob2、Ob3が削除されており、走路Tr外の障害物を検出しなくてよい。
【0075】
抽出された走路上視差画像は障害物検出部31’に送られる。障害物検出部31’は走路上視差画像P3内から実施例1と同様に障害物を検出する。この結果、領域Ob4が障害物として検出される。領域Ob1’は、そのY座標値の最小値が走路Trより離れているので障害物として検出されない。人判定部35は検出された障害物Ob4が人であるか否かを判定する。また、障害物検出装置56は拡張領域抽出部64を備えてもよい。拡張領域抽出部64は、
図14に示すように、抽出された走路Trから幅方向外側に予め定められた範囲だけ拡張された走路拡張領域Tr’の視差情報を抽出する。
図14は、例えば、
図6に示す視差画像P1を視差画像生成部23が生成した場合に抽出される走路Trおよび走路拡張領域Tr’上の視差画像P4を示す。障害物検出部31’は、この抽出された走路拡張領域Tr’上においても障害物を検出する。走路拡張領域Tr’において障害物が検出されると、人判定部35が検出された障害物に対して人であるか否かの判定を実施する。これにより、実施例3における走路拡張領域特定部64を備えた場合と同様の効果を得ることができる。
【0076】
次に、
図15を参照して、実施例4における障害物検出の動作を説明する。
図15は障害物検出の処理手順を示すフローチャートである。なお、ステップS01、S02は実施例1と同様であるので説明を省略する。
【0077】
走路上視差画像抽出部66が、車両1の現在位置と対応する走路位置情報を基に、視差画像の中から走路上の視差画像を抽出する(ステップS03)。次に、障害物検出部31’が、抽出された走路上の視差画像内において障害物検出を開始する(ステップS04)。走路上視差画像内にて障害物が検出されないと(ステップS06のNo)、障害物検出の動作を終了し、ステップS01からの処理が開始される。障害物検出において、走路Tr上に障害物が検出されると(ステップS06のYes)、人判定部35は、障害物が人か否かを判定する(ステップS07)。なお、ステップS07以降の処理は実施例1と同様であるので説明を省略する。
【0078】
このように、実施例4によれば、走路外の静止物を障害物として検出しなくなるので、演算負荷を軽減することができる。例えば、走路外の塀などにもたれかかる人を検出する場合、塀と人とが一体で障害物として検出されるので、この一体物を人として検出するのは困難であった。しかしながら、実施例4によれば、走路外の塀は視差画像上において除去されるので、走路内の人だけを障害物として検出することができ、障害物の検出精度を向上させることができる。なお、ステレオカメラの代わりにレーダーを用いる場合は、走路上範囲外のデータをマスクすればよい。
【0079】
本発明は、上記実施例のものに限らず、次のように変形実施することができる。
【0080】
(1)実施例3において、走路上にあると判定された障害物に対して人であるか否かを判定することで人を検出していた。これに限らず、障害物の検出と並行して、走路Trを含む走路Trよりも広い範囲内において人を検出する人検出部を備えてもよい。これにより、走路Tr領域に体の一部だけがあるような人も検出することができるので、早期に回避行動をとることができる。また、障害物検出部31とは別体の人検出部を備えることで、それぞれ異なる処理を並行してすることができる。すなわち、接触可能性の高い走路上の障害物に対してと、接触可能性の判断が難しく、かつ走路周辺の木々と混同しやすい走路の幅方向両端付近の領域にいる人に対して異なる処理をすることができる。
【0081】
(2)実施例1から4において、それぞれの構成の組み合わせにより得られる障害物検出装置を構成してもよい。
【0082】
(3)上記実施例において、障害物検出装置14は車両1に備えられていたがこれに限られない。他にも、例えば、自律走行するロボット用のビジョンシステムや視覚障害者の支援システムなどに採用してもよい。