(57)【要約】      （修正有）【課題】閉空間の画像から水平線分が抽出できずにジャイロセンサの累積誤差を補正ができない場合でも、自己位置推定を精度よく行うことができる移動体を提供する。【解決手段】移動面上を移動する移動体１００は、センサ１２（１２ａ、・・・、１２ｎ）と、センサ処理部と、制御部とを備える。センサ１２は、移動面よりも上方の移動体１００の周囲の画像３０１を取得する。センサ処理部は、センサ１２により取得された画像３０１から線分３０３Ａ〜Ｎ、３０４Ａ’〜Ｎ’を検出する。制御部は、センサ処理部により検出された線分３０３、３０４に基づいて移動体１００の移動を制御する。【選択図】図３
2020187664.tif 000002
【特許請求の範囲】
【請求項１】
移動面上を移動する移動体であって、
前記移動面よりも上方の前記移動体の周囲の画像を取得する撮像部と、
前記撮像部により取得された画像から線分を検出する処理部と、
前記処理部により検出された線分に基づいて前記移動体の移動を制御する制御部と
を備えたことを特徴とする移動体。
【請求項２】
前記処理部は、
前記撮像部により取得された画像から検出された線分から特定した基準線分に基づいて、前記撮像部により取得された画像から前記移動体の移動方向と平行な平行線分を特定するとともに、該特定した平行線分を、次に前記撮像部により取得された画像から前記移動体の移動方向と平行な平行線分を特定する際の前記基準線分とし、
前記制御部は、
前記処理部によって特定された前記平行線分の延伸方向へ前記移動体の移動を制御する
ことを特徴とする請求項１に記載の移動体。
【請求項３】
前記移動体は、屋内もしくは半屋内の移動面上を移動し、
前記撮像部は、屋内もしくは半屋内の壁または天井の画像を取得し、
前記処理部は、前記撮像部により取得された壁または天井の画像から線分を検出する
ことを特徴とする請求項１または２に記載の移動体。
【請求項４】
前記壁および前記天井には、平行な複数の線分を含む二次元のパターンが計画的に設けられ、
前記撮像部は、前記パターンを含んだ画像を取得し、
前記処理部は、前記撮像部により取得された画像から前記パターンに含まれる線分を検出する
ことを特徴とする請求項３に記載の移動体。
【請求項５】
前記壁および前記天井には、ランドマークが設けられ、
前記撮像部は、前記ランドマークを含んだ画像を取得し、
前記処理部は、前記撮像部により取得された画像上の前記ランドマークの位置に基づいて前記移動体の現在位置を推定する
ことを特徴とする請求項４に記載の移動体。
【請求項６】
前記処理部は、前記撮像部により取得された画像上の前記ランドマークの位置に基づいて前記移動体の現在方位を推定する
ことを特徴とする請求項５に記載の移動体。
【請求項７】
前記処理部は、
前記撮像部により取得された画像から、延伸方向が異なる複数の線分を検出し、
前記延伸方向が異なる複数の線分の多数決により前記基準線分を特定する
ことを特徴とする請求項２に記載の移動体。
【請求項８】
前記処理部は、
前記延伸方向が異なる複数の線分の多数決により前記基準線分を特定するとともに、
前記延伸方向が異なる複数の線分から、前記基準線分とは異なる延伸方向の線分を、第２の基準線分と特定し、
前記撮像部により取得された画像から、前記基準線分に基づいて前記平行線分が特定できない場合に、前記第２の基準線分に基づいて前記平行線分を特定する
ことを特徴とする請求項７に記載の移動体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動体に関する。
【背景技術】
【０００２】
ロボットや自動車などの移動体が、その周囲の情報を収集し、移動体の現在位置および走行状態を推定した結果に基づいて、自身の移動を制御する自律走行技術あるいは運転支援技術が開発されている。
【０００３】
例えば、特許文献１には、移動体の正確な現在位置を推定するために、ジャイロセンサとカメラを用いる自己位置推定方法が開示されている。特許文献１に開示の自己位置推定方法では、閉空間の画像から水平線分を抽出し、抽出された水平線分と、水平線分が抽出される閉空間の画像を撮像した際におけるカメラユニットの回動角に基づいて、ジャイロセンサの累積誤差を補正する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−３３８３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来技術では、閉空間の画像から水平線分が抽出できない場合、ジャイロセンサの累積誤差を補正できず、自己位置推定を精度よく行うことができないという問題がある。
【０００６】
本発明は以上の点を考慮してなされたもので、自己位置推定を精度よく行うことを１つの目的とする。
【課題を解決するための手段】
【０００７】
かかる課題を解決するため本発明においては、１つの目的を達成する一手段として、移動面上を移動する移動体は、前記移動面よりも上方の前記移動体の周囲の画像を取得する撮像部と、前記撮像部により取得された画像から線分を検出する処理部と、前記処理部により検出された線分に基づいて前記移動体の移動を制御する制御部とを備えるようにした。
【発明の効果】
【０００８】
本発明によれば、例えば、自己位置推定を精度よく行うことができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１に係る位置推定装置の構成例を示す図。
【図２】センサ処理部が行う情報処理手順を示すフローチャート。
【図３】基準特定処理の詳細を説明するための図。
【図４】線特定処理の詳細を説明するための図。
【図５】位置推定処理の詳細を説明するための図。
【図６Ａ】実施形態１の処理例を説明するための図。
【図６Ｂ】実施形態１の処理例を説明するための図。
【図７Ａ】実施形態２を説明するための図。
【図７Ｂ】実施形態２を説明するための図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態に係る移動体の位置推定装置について、図面を用いて説明する。
【００１１】
実施形態を説明するための各図面において、同一番号で同一または類似の構成または処理を示し、後出の説明を省略する。また、各実施形態および各変形例は、本発明の技術思想の範囲内および整合する範囲内でその一部または全部を組み合せることができる。
【００１２】
［実施形態１］
＜実施形態１の位置推定装置の構成＞
図１は、実施形態１に係る位置推定装置１の構成例を示す図である。位置推定装置１は、自動車またはロボットなどの移動体１００に搭載されている。位置推定装置１は、信号受付部２と、１または複数のセンサ１２（１２ａ，１２ｂ，・・・，１２ｎ）と、情報処理装置１３とを有する。
【００１３】
信号受付部２は、外部から受付けた信号に基づいて自己位置推定などを行う。信号受付部２は、例えば、世界座標で現在位置を推定するＧＰＳ（Global  Positioning  System）受信機である。なお、信号受付部２は、ＧＰＳ受信機に限らず、より精度よく現在位置を推定するＲＴＫ−ＧＰＳ受信機でもよい。また、信号受付部２は、準天頂衛星システムの受信機でもよい。また、信号受付部２は、既知の所定位置に設置されたビーコン発信機から発信されたビーコン信号を受信するビーコン受信機でもよい。
【００１４】
あるいは、信号受付部２は、車輪エンコーダやＩＭＵ（Inertial  Measurement  Unit）やジャイロなどのセンサから受信した情報に基づいて、相対座標で現在位置を推定してもよい。また、信号受付部２は、移動体１００が移動する走行環境の車線、標識、交通状態、立体物の形状や大きさ、高さなどの情報を受信してもよい。すなわち、信号受付部２が受信する信号や情報は、移動体１００の現在位置推定や、移動体１００の移動制御、走行環境の認識などに用いることができるものであれば、何れでもよい。
【００１５】
センサ１２は、例えばスチルカメラまたはビデオカメラである。また、センサ１２は、単眼カメラまたは複眼カメラでもよい。また、センサ１２は、レーザセンサでもよい。センサ１２は、移動体１００の周囲の画像を取得する撮像部の一例である。
【００１６】
情報処理装置１３は、センサ１２で取得された情報を処理して移動体１００の現在位置または移動量を算出する。情報処理装置１３は、算出された現在位置または移動量に応じた表示を行ってもよく、または移動体１００の制御に関する信号を出力してもよい。
【００１７】
情報処理装置１３は、例えば一般的なコンピュータであって、センサ１２によって取得された情報を処理するセンサ処理部１４と、センサ処理結果に基づく処理を行う制御部１５と、メモリ１６と、ディスプレイなどの表示部１７と、これら構成要素を相互に接続するバス１８とを有する。情報処理装置１３は、ＣＰＵなどの処理装置であるセンサ処理部１４および制御部１５において所定のコンピュータプログラムを実行することにより、様々な処理を行う。
【００１８】
センサ１２ａは、例えば、移動体１００の前方に設置されている。センサ１２ａのレンズは、例えば移動体１００の前方に向けられている。センサ１２ａは、例えば、移動体１００の前方の遠景情報を取得する。他のセンサ１２ｂ，・・・，１２ｎは、センサ１２ａと異なる位置に設置され、センサ１２ａと異なる撮像方向または領域を撮像する。センサ１２ｂは、例えば、移動体１００の後方で下方に向けて設置されていてもよい。センサ１２ｂは、移動体１００後方の近景情報を取得するものでよい。なお、本実施形態で説明するセンサ１２ａ，１２ｂ，・・・，１２ｎの設置位置、撮像方向、および撮像距離は、一例を示すに過ぎない。
【００１９】
センサ１２が単眼カメラの場合、路面が平らであれば、撮像した画像上のピクセル位置と実際の地上位置（ｘ，ｙ）との関係が一定になるため、センサ１２から画像の特徴点までの距離を幾何学的に計算できる。センサ１２がステレオカメラの場合、撮像した画像上の特徴点までの距離をより正確に計測できる。また、センサ１２がレーザの場合、より遠方の情報をより正確に取得できる。
【００２０】
以下の説明では、単眼カメラやステレオカメラを採用した例について説明するが、移動体１００の周囲の立体物までの距離を算出できれば、他のセンサ（例えば広角レンズを有するカメラ、ＴＯＦ（Time  Of  Flight）カメラまたはレーザセンサなど）でもよい。
【００２１】
また、センサ１２ａ，１２ｂ，・・・，１２ｎが、ある時刻において撮像画像を取得する対象物は、それぞれ互いに異なるものでよい。例えば、センサ１２ａは、移動体１００の前方の遠景情報を取得するものでよい。この場合、遠景から取得した情報は、立体物、または位置推定のためのランドマークなどの特徴が抽出されるようにしてもよい。センサ１２ｂは、移動体１００周辺の路面などの近景情報を取得するようにしてもよい。この場合、近景から取得した情報から、移動体１００の周囲の白線、または路面ペイントなどが検出されるようにしてもよい。
【００２２】
また、センサ１２ａ，１２ｂ，・・・，１２ｎは、雨や日差しなどの環境外乱の影響を同時に受けないように移動体１００に設置されてもよい。例えば、センサ１２ａは、移動体１００の前方で前向きに設置されるのに対して、センサ１２ｂは、移動体１００の後方で後ろ向きまたは下向きに設置されてもよい。これにより、例えば、降雨時にセンサ１２ａのレンズに雨滴が付着した場合でも、進行方向の逆向きまたは下向きのセンサ１２ｂのレンズには雨滴が付着しにくい。このため、センサ１２ａが取得した情報が雨滴の影響で不鮮明であっても、センサ１２ｂが取得した情報は雨滴の影響を受けずに鮮明である場合がある。あるいは、日差しの影響でセンサ１２ａが取得した情報が不鮮明であっても、センサ１２ｂが取得した情報は日差しの影響を受けずに鮮明である場合がある。
【００２３】
また、センサ１２ａ，１２ｂ，・・・，１２ｎは、互いに異なる取得条件（絞り値、ホワイトバランス、周期などのパラメータ）で情報を取得してもよい。移動体１００に、例えば、明るい環境に適応するようにパラメータを調整したセンサ１２と、暗い環境に適応するようにパラメータを調整したセンサ１２とを搭載することで、環境の明暗によらず、何れかのセンサ１２で移動体１００の周囲を撮像可能とできる。
【００２４】
センサ１２ａ，１２ｂ，・・・，１２ｎは、制御部１５から情報取得開始の指令を受けると、または一定の時間間隔で、移動体１００の周辺情報を取得する。取得された情報のデータおよび取得時刻は、メモリ１６に格納される。メモリ１６は、情報処理装置１３の主記憶装置（メインメモリ）およびストレージなどの補助記憶装置を含む。
【００２５】
センサ処理部１４は、メモリ１６に格納された情報のデータおよび取得時刻に基づいて、各種の情報処理を行う。この各種の情報処理では、例えば、中間情報が作成されてメモリ１６に保存される。中間情報は、センサ処理部１４による処理の他、制御部１５などの判断や処理に利用されてもよい。センサ処理部１４は、センサ１２により取得された画像から線分を検出する処理部の一例である。
【００２６】
センサ処理部１４は、センサ１２により取得された情報を処理する。センサ処理部１４は、例えば、移動体１００の走行中にセンサ１２が取得した情報を処理して、移動体１００の走行環境中の線を抽出する。また、センサ処理部１４は、例えば、移動体１００の走行中にセンサ１２が取得した情報を処理して、事前に定められたランドマークを認識する。
【００２７】
センサ処理部１４は、例えば、移動体１００の走行中にセンサ１２が取得した情報を処理して、移動体１００の現在方位および現在位置を推定する。例えば、センサ処理部１４は、センサ１２が時系列に取得した情報で移動体１００の移動量を算出し、過去の位置に移動量を加算して現在位置を推定する。
【００２８】
また、センサ処理部１４は、時系列に取得した情報から特徴を抽出してもよい。センサ処理部１４は、さらに、次以降の情報から同一の特徴を抽出する。そして、センサ処理部１４は、特徴のトラッキングにより移動体１００の移動量を算出する。また、センサ処理部１４は、ＳＬＡＭ（Simultaneous  Localization  And  Mapping）やStructure  from  Motion技術を用いて、移動体１００の走行環境の形状を算出する。
【００２９】
制御部１５は、センサ処理部１４の情報処理の結果に基づいて、移動体１００に対して移動速度や移動方向に関する指令を出力してもよい。例えば、制御部１５は、情報内の立体物の解像度や情報内の特徴のうちの外れ値の数または情報処理の種類等に応じて、移動体１００の移動速度を増加、減少、または維持させる何れかの指令を出力してもよい。制御部１５は、センサ１２により取得された画像から検出された線分から特定した基準線分（後述の基準αｒｅｆ３０５，５０１で向きが特定される線分）に基づいてセンサ１２により取得された画像から特定された移動体１００の移動方向と平行な平行線分の延伸方向へ移動体１００の移動を制御する制御部の一例である。
【００３０】
バス１８は、ＩＥＢＵＳ（Inter  Equipment  Bus）やＬＩＮ（Local  Interconnect  Network）やＣＡＮ（Controller  Area  Network）などで構成できる。
【００３１】
外部記憶装置１９は、移動体１００が走行する環境の情報を記憶している。外部記憶装置１９が記憶する情報は、例えば、移動体１００の走行環境にある静止物（木、建物、道路、車線、信号、標識、路面ペイント、路端など）の形状や位置である。
【００３２】
外部記憶装置１９に記憶される、走行環境にある静止物の形状や位置の情報は、数式で表わされてもよい。例えば、線情報を複数の点で構成せず、直線の傾きと切片で表してもよい。
【００３３】
また、外部記憶装置１９に記憶される、走行環境にある静止物の形状や位置の情報は、情報を区別せずに、点群で表してもよい。点群は、３次元（ｘ，ｙ，ｚ）あるいは４次元（ｘ，ｙ，ｚ，色）などで表してもよい。すなわち、移動体１００の現在位置から走行環境を検出し、マップマッチングができる情報であれば、外部記憶装置１９の情報は、いずれの形式であってもよい。
【００３４】
外部記憶装置１９は、制御部１５から取得開始の指令を受けると、記憶している情報をメモリ１６に送信する。外部記憶装置１９は、移動体１００に搭載される場合には、バス１８を介して情報を送受信する。一方、外部記憶装置１９は、移動体１００に搭載されない場合には、図示しない通信インターフェースを介して、ＬＡＮ（Local  Area  Network）もしくはＷＡＮ（Wide  Area  Network）、または近距離無線通信等を経由して情報を送受信する。
【００３５】
図２は、センサ処理部１４が行う情報処理手順を示すフローチャートである。
【００３６】
先ず、ステップＳ２０１では、センサ処理部１４は、移動体１００に搭載されているセンサ１２ａ，１２ｂ，・・・，１２ｎにより移動体１００の周囲の環境が撮像されたそれぞれの画像から線分を検出する（線検出処理）。センサ処理部１４は、例えば、Hough  TransformやCanny  Edge  Detector技術を用いて線を検出する。
【００３７】
次に、ステップＳ２０２では、センサ処理部１４は、ステップＳ２０１で検出された線の中から基準となる線分を特定する（基準特定処理）。ステップＳ２０２の基準特定処理の詳細は、後述する。
【００３８】
次に、ステップＳ２０３では、センサ処理部１４は、ステップＳ２０２で特定された基準に基づいて、ステップＳ２０１での処理対象フレームの次フレームについて、線検出処理でセンサ１２ａ，１２ｂ，・・・，１２ｎで撮像したそれぞれの画像から抽出した線分の中から線分を特定する（線特定処理）。ステップＳ２０３の線特定処理の詳細は、後述する。
【００３９】
次に、ステップＳ２０４では、センサ処理部１４は、ステップＳ２０３で特定した線に基づいて、位置推定を実施する（位置推定処理）。位置推定処理は、ステップＳ２０２の基準特定処理で特定された基準となる線分に対する、ステップＳ２０３の線特定処理で特定された線分の角度変化の推定と、移動体１００の現在位置の推定とを含む。
【００４０】
そして、ステップＳ２０４では、センサ処理部１４は、ステップＳ２０３で特定した線を、次の位置推定処理に用いる基準とする。以後、移動体１００において位置推定を終了するまで、フレームごとにステップＳ２０３およびステップＳ２０４が繰り返される。ステップＳ２０４の位置推定処理の詳細は、後述する。
【００４１】
以下、基準特定処理（ステップＳ２０２）、線特定処理（ステップＳ２０３）、位置推定処理（ステップＳ２０４）の詳細を説明するが、簡単のため、移動体１００の走行環境は、屋内もしくは室内であるとする。しかし、屋内に限らず、屋外、あるいは半屋内や半屋外でもよい。
【００４２】
また、以下の説明では、センサ１２ａ，１２ｂ，・・・，１２ｎの撮像方向を移動体１００の上方とし、天井３００を撮像するとする。しかし、センサ１２ａ，１２ｂ，・・・，１２ｎの撮像方向は、上方に限らず、移動体１００の走行面に対する垂直面もしくは仮想的な垂直面へ向かう方向であってもよい。すなわち、センサ１２ａ，１２ｂ，・・・，１２ｎの撮像方向は、移動体１００が移動する移動面よりも上方であってもよい。例えば、センサ１２ａ，１２ｂ，・・・，１２ｎの撮像方向が移動体１００の移動面よりも上方である場合、屋内などの閉空間において移動面に自己位置推定を行うための情報が存在しない場合であっても移動体１００の位置推定を行うことができる。
【００４３】
＜基準特定処理の詳細＞
図３は、基準特定処理（ステップＳ２０２）の詳細を説明するための図である。
【００４４】
画像３０１は、移動体１００の走行開始位置でセンサ１２ａ，１２ｂ，・・・，１２ｎで撮像した画像のうちの１つであり、画像３０１の座標系を座標系（ｕ，ｖ）とする。
【００４５】
パターン３０２は、画像３０１に写った天井３００のパターンである。パターン３０２は、例えば、模様や線などの二次元パターンである。なお、パターン３０２は、タイル、電球、看板、壁板、天井板、窓、ポスターなど、線を抽出可能な、屋内あるいは屋外に既存の立体物で構成されてもよい。また、パターン３０２は、複数種類の既存の立体物を組み合わせて構成されてもよい。例えば、パターン３０２が壁板および天井板で構成される場合には、床と壁の境界線、壁と壁の境界線（コーナー）、壁と天井の境界線が線分として検出される。
【００４６】
線３０３Ａ，・・・，３０３Ｎは、線検出処理（ステップＳ２０１）で検出された線であり、座標系（ｕ，ｖ）に対して角度αの向きを有する。以下、「角度ｘの向き」を単に「向きｘ」と表記する。また、図３に示す線３０４Ａ’，・・・，３０４Ｎ’は、同じく線検出処理で検出された線であり、座標系（ｕ，ｖ）に対して向きα’を有する。簡単のため、画像上で所定長以上の線を検出対象とする。
【００４７】
移動体１００の走行環境は、計画的に作成された屋内環境であり、計画的にパターンが配置されていることを前提とする。従って、画像３０１に写る線の向きは全て一定である。線３０３Ａ，・・・，３０３Ｎと線３０４Ａ’，・・・，３０４Ｎ’とは、一定の角度θ＝｜α’−α｜で向きが異なる。
【００４８】
よって、画像３０１から線検出処理（ステップＳ２０１）で検出した線の向きを多数決で算出すると、座標系（ｕ，ｖ）に対して向きαまたは向きα’が得られる。多数決とは、例えば、線検出処理（ステップＳ２０１）で検出された線の向きの平均、中央値、あるいは最頻値を算出することをいう。例えば、多数決で線３０４Ａ’，・・・，３０４Ｎ’の向きα’が得られ、向きα’が基準αｒｅｆ３０５として特定される。なお、座標系（ｕ，ｖ）に対する向きが基準αｒｅｆ３０５で表される線分自体を「基準」と呼ぶこともできる。
【００４９】
センサ１２ａ，１２ｂ，・・・，１２ｎを上向きとし、かつ走行環境の天井３００が平らである場合、天井３００に配置されている水平線と垂直線は、画像３０１上でもそれぞれ水平線と垂直線になる。水平線と垂直線の定義については、後述する。しかし、センサ１２ａ，１２ｂ，・・・，１２ｎを上向きとしない、または天井が平らではない場合、線検出処理（ステップＳ２０１）で検出された線の実際の向きは、次のように算出できる。
【００５０】
すなわち、センサ１２ａ，１２ｂ，・・・，１２ｎがステレオカメラの場合、視差画像を用いて、画像３０１上の線検出処理（ステップＳ２０１）で検出された線をピクセルからメートルに変換することで、線の実際の向きを算出できる。
【００５１】
また、センサ１２ａ，１２ｂ，・・・，１２ｎが単眼カメラの場合、カメラの設置高さと角度が既知で固定値であるとし、画像３０１上の線検出処理（ステップＳ２０１）で検出された線を幾何学的にピクセルからメートルに変換することで、線の実際の向きを算出できる。または、ＳＬＡＭまたはStructure  from  Motionを用いて、カメラの実際の移動量と検出した線の画像上での移動量に基づいて、線の実際の向きを算出する。
【００５２】
または、外部記憶装置１９に走行環境の形状に関する情報を事前に登録しておき、その事前に登録した情報に基づいて線検出処理（ステップＳ２０１）で検出した線をピクセルからメートルに変換することで、線の実際の向きを算出してもよい。
【００５３】
なお、センサ１２ａ，１２ｂ，・・・，１２ｎの全てが同じ方向を向いているとしたが、それぞれのセンサが異なる方向を向いていてもよい。また、単眼やステレオや魚眼カメラなどを組み合わせてもよい。
【００５４】
＜線特定処理の詳細＞
図４は、線特定処理（ステップＳ２０３）の詳細を説明するための図である。
【００５５】
画像４０１は、図３の走行開始位置と異なる移動体１００の現在位置でセンサ１２ａ，１２ｂ，・・・，１２ｎで撮像した画像のうちの１つである。画像４０１の座標系も座標系（ｕ，ｖ）である。
【００５６】
パターン４０２は、画像４０１に写った天井３００のパターンである。線４０４Ａ，・・・，４０４Ｎと線４０４Ａ’，・・・，４０４Ｎ’は、線検出処理（ステップＳ２０１）で検出された線である。
【００５７】
線４０４Ａ，・・・，４０４Ｎの座標系（ｕ，ｖ）に対する向きをβとし、線４０４Ａ’，・・・，４０４Ｎ’の座標系（ｕ，ｖ）に対する向きをβ’４０５とする。線特定処理（ステップＳ２０３）では、基準特定処理（ステップＳ２０２）において多数決で得られた基準αｒｅｆ３０５から閾値αｔ４０６以内の線の向きを特定する。図４の場合、αｔ＞｜αｒｅｆ−β’｜のため、向きβ’４０５を有する線４０４Ａ’，・・・，４０４Ｎ’の全てが特定される。
【００５８】
なお、簡単のため、線４０４Ａ’，・・・，４０４Ｎ’の向きを全てβ’４０５としたが、センサ１２ａ，１２ｂ，・・・，１２ｎのキャリブレーション状態やノイズの影響により、線４０４Ａ’，・・・，４０４Ｎ’の向きが一定ではない場合がある。しかし、基準αｒｅｆ３０５との差が閾値αｔ４０６より小さければ、同一の向きと見なすことで、向きβ’４０５と特定できる。
【００５９】
閾値αｔ４０６は、例えば、移動体１００の最大角速度とセンサ１２ａ，１２ｂ，・・・，１２ｎのフレームレートに基づいて設定される。例えば、センサ１２ａ，１２ｂ，・・・，１２ｎで連続して取得された２枚の画像での多数決で得られた線の向きの最大値を閾値αｔ４０６として設定する。または、閾値αｔ４０６を固定せず、フレームごとに閾値αｔ４０６を更新して設定してもよい。例えば、時系列フィルターを用いて、過去に取得したフレームに基づく予測によって、今回取得したフレームの閾値αｔ４０６を算出してもよい。
【００６０】
＜位置推定処理の詳細＞
図５は、位置推定処理（ステップＳ２０４）の詳細を説明するための図である。
【００６１】
基準αｒｅｆ５０１は、移動体１００が現在位置に移動する前の位置で基準特定処理（ステップＳ２０２）により多数決で得られた線の向きである。向きα１，α２，・・・，αＮ５０２は、現在位置での線特定処理（ステップＳ２０３）により特定されたそれぞれの線の向きである。向きαＭ５０３は、多数決で向きα１，α２，・・・，αＮ５０２から得られた向きである。
【００６２】
座標系（Ｉ，Ｊ）５０４は、移動体１００が走行する環境に固定された座標系である。基準特定処理（ステップＳ２０２）において多数決で得られた基準αｒｅｆ５０１が、座標系（ｕ，ｖ）に対する向きがαＧであり、座標系（Ｉ，Ｊ）５０４に対する実際の向きがαＲである場合を考える。
【００６３】
この場合、向きαＭ５０３が得られたとき、座標系（ｕ，ｖ）に対する向きαＭ５０３がαＧ’となっても、座標系（Ｉ，Ｊ）５０４に対する向きはαＲで不変である。従って、現在位置で算出した座標系（ｕ，ｖ）に対する向きαＭ５０３＝αＧ’と、座標系（Ｉ，Ｊ）５０４に対する実際の向きαＲをもとに、座標系（Ｉ，Ｊ）５０４に対する移動体１００の位置推定を行う。移動体１００の現在位置を推定した後、次の位置推定のために、座標系（ｕ，ｖ）に対する向きαＭ５０３を新たな基準αｒｅｆ５０１とする。
【００６４】
＜実施形態１の処理例＞
図６Ａおよび図６Ｂは、実施形態１の処理例を説明するための図である。
【００６５】
図６Ａに示す地図６００は、移動体１００が走行する環境の地図であり、座標系（Ｉ，Ｊ）におけるランドマーク６０１ａ，６０１ｂ，・・・，６０１ｎの位置の情報を含む。地図６００は、外部記憶装置１９に事前に登録されている。
【００６６】
また、図６Ａに示すパターン６１０は、移動体１００の走行環境の天井３００に設けられたパターンであり、例えば水平線と垂直線で構成される。なお、パターン６１０に含まれる、座標系（Ｉ，Ｊ）のＩ軸と平行な線を水平線といい、Ｊ軸と平行な線を垂直線という。
【００６７】
また、図６Ｂに示す、座標系（Ｉ，Ｊ）における位置６０２は、地図６００における移動体１００の走行開始位置である。
【００６８】
図６Ｂに示す画像６０２ｉは、位置６０２においてセンサ１２ａ，１２ｂ，・・・，１２ｎにより取得された画像である。既述の通り、移動体１００が走行している環境は屋内であり、センサ１２ａ，１２ｂ，・・・，１２ｎの撮像方向は、移動体１００の真上つまり天井３００であるとする。
【００６９】
画像６０２ｉに示すように、位置６０２において、基準特定処理（ステップＳ２０２）により、線６０５と、座標系（ｕ，ｖ）に対する向きαｒｅｆ５０１が得られたとする。移動体１００の走行環境は、計画的に作成された屋内環境であり、パターン６１０のような計画的な水平線と垂直線が多数配置されているとする。従って、位置６０２において基準特定処理（ステップＳ２０２）により多数決で得られた線６０５が水平線または垂直線である確率が高い。位置６０２における移動体１００の進行方向がＪ軸とほぼ同一とすると、位置６０２での線６０５の向きは、ほぼ０度（Ｉ軸と平行な水平線）となる。
【００７０】
そして、座標系（Ｉ，Ｊ）に対する線６０５の実際の向きを０度とした状態で、地図６００内における相対的な自己位置推定を行う。よって、走行における移動体１００の実際の方位は、線６０５をもとに基準αｒｅｆ５０１となる。
【００７１】
このように、移動体１００の方位を精度よく推定できると、移動体１００の移動量が容易に推定できる。例えば、画像６０２ｉにランドマーク６０１ａが写っているため、画像６０２ｉ上での位置と地図６００上での位置を比較することにより、移動体１００の移動量推定ができる。
【００７２】
次に、移動体１００が位置６０３に移動したとする。図６Ｂに示す画像６０３ｉは、位置６０３においてセンサ１２ａ，１２ｂ，・・・，１２ｎにより取得された画像である。この時、線特定処理（ステップＳ２０３）により多数決で線６０６が得られ、移動体１００の現在方位がαＭ５０３となる。また、画像６０３ｉには、ランドマーク６０１ａとランドマーク６０１ｂが写っているため、画像６０３ｉ上での位置と地図６００上での位置を比較することにより、移動体１００の現在位置が推定できる。
【００７３】
次に、移動体１００が位置６０４に移動したとする。図６Ｂに示す画像６０４ｉは、位置６０４においてセンサ１２ａ，１２ｂ，・・・，１２ｎにより取得された画像である。この時、線特定処理（ステップＳ２０３）により多数決で線６０７が得られ、移動体１００の現在方位がαＭ’５０４となる。また、画像６０４ｉには、ランドマーク６０１ｃとランドマーク６０１ｄが写っているため、画像６０４ｉ上での位置と地図６００上での位置を比較することにより、移動体１００の現在位置が推定できる。
【００７４】
このように本実施形態では、線特定処理（ステップＳ２０３）により少なくとも１本の線分が特定されることで、移動体１００の移動方向と平行な線分の延伸方向へ移動体１００の移動を制御することができる。
【００７５】
なお、本実施形態では、簡単のため、ランドマーク６０１ａ，６０１ｂ，・・・，６０１ｎの画像上の位置と地図６００の地図情報とのマッチングで移動体１００の移動量を推定するとした。しかし、これに限らず、例えば、本実施形態の方位推定により事前に推定した方位を、センサの移動量と方位が推定可能な画像オドメトリに入力することで、移動量を算出してもよい。この際、本実施形態の方位推定により事前に推定した方位は、処理時間を短縮する制約条件として利用できる。また、本実施形態の方位推定により推定した方位と移動体１００に搭載したエンコーダを用いて推定した移動量とを組み合わせて位置推定を行ってもよい。
【００７６】
また、本実施形態では、ランドマーク６０１ａ，６０１ｂ，・・・，６０１ｎを用いて移動体１００の移動量を算出するとしたが、これに限らず、ランドマーク６０１ａ，６０１ｂ，・・・，６０１ｎを用いて移動体１００の現在方位の推定を行ってもよい。また、ランドマーク６０１ａ，６０１ｂ，・・・，６０１ｎを用いた移動体１００の方位の推定結果と、本実施形態による方位推定結果とを併用することで位置推定の精度を向上させるようにしてもよい。
【００７７】
［実施形態２］
図７Ａおよび図７Ｂは、実施形態２を説明するための図である。本実施形態では、実施形態１で説明した基準αｒｅｆ５０１を第１基準とし、第１基準とは異なる第２基準を採用して複数の基準を併用することで、方位推定のロバスト性を向上させる。
【００７８】
先ず、図７Ａを参照して、第２基準を利用しない場合の課題を説明する。図７Ａに示す地図７００は、移動体１００の走行環境の地図であり、図７Ａに示すようなパターン７０１とパターン７０２の２種類のパターンを含んで構成されて天井３００に設けられているとする。簡単のため、センサ１２ａ，１２ｂ，・・・，１２ｎが真上を向いているとする。
【００７９】
図７Ａに示す画像７０３ｉは、移動体１００の走行開始位置７０３においてセンサ１２ａ，１２ｂ，・・・，１２ｎにより取得された画像である。基準特定処理（ステップＳ２０２）により線７０６と座標（ｕ，ｖ）に対する向きαｒｅｆ５０１が得られたとする。
【００８０】
そして、図７Ａの画像７０４ｉに示すように、移動体１００が位置７０４に移動した後、センサ１２ａ，１２ｂ，・・・，１２ｎにより取得された画像において線特定処理（ステップＳ２０３）での多数決により、線７０７と座標（ｕ，ｖ）に対する向きαＭ５０３が得られたとする。
【００８１】
しかし、図７Ａの画像７０５ｉに示すように、移動体１００が位置７０４から位置７０５へ移動すると、センサ１２ａ，１２ｂ，・・・，１２ｎにより取得された画像から水平線が全く検出されず、垂直線しか検出されない。従って、位置７０４で抽出された水平線である線７０７に対して位置７０５で抽出された垂直線の方向差が所定値以上の大きさとなり、線特定処理（ステップＳ２０３）が失敗するという問題がある。
【００８２】
次に、図７Ｂを参照して、第２基準を利用した場合を説明する。図７Ｂの画像７０３ｉは、移動体１００の走行開始位置７０３（図７Ａ参照）においてセンサ１２ａ，１２ｂ，・・・，１２ｎにより取得された画像であり、基準特定処理（ステップＳ２０２）での多数決により線７０６が得られたとする。ただし、線７０６の向きは、基準特定処理（ステップＳ２０２）で画像７０３ｉから抽出された線の向きの中で最も多い向きであり、２番目や３番目に多い線の向きもある。従って、画像７０３ｉにおいて例えば２番目に多い線の向きが線７０６’の向きであるとすると、線７０６’を第２基準αｒｅｆ５０１’とする。
【００８３】
次に、移動体１００が位置７０４（図７Ａ参照）に移動した後に取得された画像７０４ｉから線特定処理（ステップＳ２０３）の多数決により、第１基準の線７０６と第２基準αｒｅｆ５０１’に対して線７０７と線７０７’が特定されるので、線７０７と線７０７’をそれぞれ新たな第１基準と第２基準とする。
【００８４】
そして、移動体１００が位置７０５（図７Ａ参照）へ移動した後に取得された画像７０５ｉに対する線特定処理（ステップＳ２０３）において、第１基準の線７０７に対する線を特定できないが、第２基準の線７０７’に対する線７０８’を特定できる。そこで、線７０８’を用いて位置推定処理（ステップＳ２０４）で位置推定を行う。
【００８５】
また、画像７０５ｉからは、第１基準に対して線特定処理２０３で線を特定できないため、第１基準を更新できない。この場合、仮想の基準を算出する。例えば、移動体１００が走行する環境は屋内環境で計画的に作成されているとすると、水平線と垂直線が多い。つまり、特定した線７０８’の向きに対して９０度回転した線７０８が第１基準となる可能性が高いため、線７０８を仮想の第１基準とする。
【００８６】
そして、移動体１００が次の位置に移動したとき、仮想の第１基準の線７０８と第２基準の線７０８’に基づいて、線特定処理（ステップＳ２０３）でそれぞれの基準に対して線を特定する。このように、第１基準と第２基準を用いて位置推定する場合、次の線特定処理（ステップＳ２０３）で線の特定が失敗する可能性が低くなり、位置推定のロバスト性を高め得る。
【００８７】
また、簡単のため、図７Ａおよび図７Ｂに示したように、天井３００に２種類のパターン７０１とパターン７０２が設けられている場合で説明した。しかし、これに限らず、単一のパターンが日差しや障害物で箇所により異なるパターンとして認識される場合があるという課題に対しても、第１基準と第２基準を用いることで、位置推定のロバスト性を高め得るという効果が期待できる。また、第１基準と第２基準の２つの基準を用いて説明したが、これに限らず、３つ以上の基準を用いて位置推定を行ってもよい。
【００８８】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例を含む。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換・統合・分散をすることが可能である。また実施形態で示した各処理は、処理効率または実装効率に基づいて適宜分散または統合してもよい。
【符号の説明】
【００８９】
１：位置推定装置、１２，１２ａ，１２ｂ，・・・，１２ｎ：センサ、１３：情報処理装置、１４：センサ処理部、１５：制御部、１００：移動体、３００：天井、３０１，４０１，６０２ｉ，６０３ｉ，６０４ｉ，７０３ｉ，７０４ｉ，７０５ｉ：画像、６０１ａ，６０２ｂ，・・・，６０１ｎ：ランドマーク
【図１】
2020187664.tif 000003
【図２】
2020187664.tif 000004
【図３】
2020187664.tif 000005
【図４】
2020187664.tif 000006
【図５】
2020187664.tif 000007
【図６Ａ】
2020187664.tif 000008
【図６Ｂ】
2020187664.tif 000009
【図７Ａ】
2020187664.tif 000010
【図７Ｂ】
2020187664.tif 000011