(57)【特許請求の範囲】
【請求項１】
少なくとも１つの記録点に対するマップ上における位置情報および方向情報を、記録情報として記録する記録部と、
所定の測定位置と周囲の測定点との距離と、当該測定位置から上記測定点への測定方向とを表す測定データを取得する取得部と、
取得された上記測定データに基づき、上記マップ上における上記測定点の位置および測定方向を算出する算出部と、
上記記録情報における各上記記録点の上記マップ上における位置情報と、取得された測定データから算出された上記測定点の上記マップ上における位置との、それぞれの一致度合いを表す各位置評価値を算出する位置評価部と、
上記記録情報における各上記記録点の方向情報と、取得された上記測定データから算出された上記測定点の測定方向とのそれぞれの一致度合いを表す各方向評価値を算出する方向評価部と、
算出された上記各位置評価値および上記各方向評価値に基づき、上記測定点が上記記録情報における各上記記録点に一致するか否かに関する評価を行う一致性評価部とを備えていることを特徴とする一致性評価装置。
【請求項２】
上記算出部は、少なくとも１つの上記測定位置において取得された上記測定データに基づき、当該測定データごとに上記マップ上における各上記測定点の位置および測定方向を算出し、
上記記録部は、算出された上記測定点ごとの上記位置および測定方向に基づき、各上記測定点に対応する上記マップ上の各上記記録点の上記位置情報および上記方向情報を、上記記録情報として記録することを特徴とする請求項１に記載の一致性評価装置。
【請求項３】
上記一致性評価部は、上記記録情報における上記マップ上の各上記記録点のうち、上記位置評価値が所定の範囲内であり、かつ、上記方向評価値が所定の範囲内である上記記録点を、上記測定点と一致する一致点または当該一致点の候補と判定するか、または、一致度を算出することを特徴とする請求項１または２に記載の一致性評価装置。
【請求項４】
上記一致性評価部は、各上記位置評価値および各上記方向評価値に基づき、上記測定点が上記記録情報における上記マップ上のどの上記記録点に一致するかに関する１つの評価値を算出し、上記１つの評価値に基づいて、上記測定点に一致する上記記録情報における上記マップ上の１つの上記記録点を判定するか、または上記マップ上の１つの一致位置を算出することを特徴とする請求項１〜３のいずれか１項に記載の一致性評価装置。
【請求項５】
上記位置評価部は、上記マップにおける、上記記録点の上記位置情報と上記測定点の上記位置との相対的な位置関係に基づき、上記記録点と上記測定点との一致度合いを表す上記位置評価値を算出することを特徴とする請求項１〜４のいずれか１項に記載の一致性評価装置。
【請求項６】
上記取得部は、上記測定位置と、異なる複数の上記測定点との各上記距離と、当該測定位置から複数の上記測定点のそれぞれへの各上記測定方向とを表す複数の上記測定データを取得し、
上記算出部は、取得された上記複数の測定データのそれぞれに基づき、上記測定データごとに上記マップ上における上記測定点の位置および測定方向を算出し、
上記一致性評価部は、異なる上記測定点ごとに算出された上記各位置評価値および上記各方向評価値を総合することによって、複数の上記測定点のそれぞれに一致する複数の上記記録点を判定するか、または１つの一致度を算出することを特徴とする請求項１〜５のいずれか１項に記載の一致性評価装置。
【請求項７】
上記マップは、複数の領域に区分されており、
上記算出部は、上記マップにおける上記領域ごとに、上記測定データに基づき上記測定点の存在を示す評価値および上記測定点の測定方向を算出し、
上記記録部は、上記マップの上記領域ごとに、上記領域を上記記録点として、算出された上記測定点の存在を示す評価値および上記測定点の測定方向を、上記記録情報として記録することを特徴とする請求項１〜６のいずれか１項に記載の一致性評価装置。
【請求項８】
各上記領域において、所定の方位範囲ごとに区分された複数の方位区分が規定されており、
上記算出部は、上記マップにおける上記領域ごとに、上記測定データに基づき当該領域の各上記方位区分における上記測定点の測定方向の存在を示す各評価値を組み合わせた上記測定方向の情報を算出することを特徴とする請求項７に記載の一致性評価装置。
【請求項９】
上記複数の方位区分は、上記領域における全方位範囲が整数値の個数に均等に区分されたものであることを特徴とする請求項８に記載の一致性評価装置。
【請求項１０】
上記算出部は、上記複数の方位区分のうち１つの方位区分に対応する上記測定点の測定方向を算出した場合、当該１つの方位区分と、当該１つの方位区分に隣接する複数の上記方位区分とにそれぞれ上記測定点の測定方向の存在を示す上記評価値を割り当てることによって、上記測定方向の情報を算出することを特徴とする請求項８または９に記載の一致性評価装置。
【請求項１１】
記録部、取得部、算出部、位置評価部、方向評価部、および一致性評価部を備えている一致性評価装置によって実行される一致性評価方法であって、
前記記録部が、少なくとも１つの記録点に対するマップ上における位置情報および方向情報を、記録情報として記録する記録工程と、
前記取得部が、所定の測定位置と周囲の測定点との距離と、当該測定位置から上記測定点への測定方向とを表す測定データを取得する取得工程と、
前記算出部が、取得された上記測定データに基づき、上記マップ上における上記測定点の位置および測定方向を算出する算出工程と、
前記位置評価部が、上記記録情報における各上記記録点の上記マップ上における位置情報と、取得された測定データから算出された上記測定点の上記マップ上における位置との、それぞれの一致度合いを表す各位置評価値を算出する位置評価工程と、
前記方向評価部が、上記記録情報における各上記記録点の方向情報と、取得された上記測定データから算出された上記測定点の測定方向とのそれぞれの一致度合いを表す各方向評価値を算出する方向評価工程と、
前記一致性評価部が、算出された上記各位置評価値および上記各方向評価値に基づき、上記測定点が上記記録情報における各上記記録点に一致するか否かに関する評価を行う一致性評価工程とを有することを特徴とする一致性評価方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一致性評価装置および一致性評価方法に関する。
【背景技術】
【０００２】
従来、建物内や屋外の限定された領域内を自律的に走行する自律走行体が知られている。また、近年、自律走行体が移動すべき領域であって、周囲の環境に応じたマップを作成する機能を有する自律走行体が開発されている。距離センサを有するロボットによるマップ作成手法の一つとして、ＳＬＡＭ（Simultaneous Localization and Mapping）が知られている。ＳＬＡＭに関する技術の例が、以下に説明するように非特許文献１〜４に開示されている。
【０００３】
図１７は、非特許文献１の技術を説明するための図である。非特許文献１には、スキャンマッチの一方式が開示されている。この方式では、基準スキャンを用いて図１７に示す基準マップを作成する。この基準マップは、複数のグリッドによって構成されている。各グリッドは、基準マップにおけるそのグリッドがある場所での物体（壁など）の検出確率を表す値を有する。図１７の（ｂ）において、白い場所では検出確率が高く、黒い場所では低い。
【０００４】
非特許文献１の技術では、基準スキャンに含まれる各測定点を、基準グリッドマップに投影させる。そして、投影させた各点の位置を中心として、所定のぼやけ範囲に亘って等方（同心円状）に確率分布を算出する。ここで、検出確率およびぼやけ範囲は、計算効率の観点から、理論値（有理数）ではなく、規定範囲（たとえば０〜２５５）内の整数等によって表される。
【０００５】
基準マップの生成後、スキャンマッチの対象とするスキャン（以下、基準スキャン）をｓ、基準マップに投影する。次に、基準スキャンの位置に関するｘ、ｙ、およびθ値を、所定の探索範囲で変化させることによって、基準マップ内の探索範囲を全域走査する。これにより、所定の評価値が得られる。最後に、各評価値Ｐ［θ］［ｘ］［ｙ］を加重平均することによって、最大評価位置（ｘ、ｙ、θ）を算出する。この位置が、対象スキャンのマッチ位置に決定される。
【０００６】
非特許文献２には、非特許文献１に開示されたスキャンマッチを利用するＳＬＡＭの一例が開示されている。
【０００７】
図１８は、非特許文献３の技術を説明するための図である。非特許文献３には、スキャンマッチの一方式が開示されている。この技術では、基準マップを構成する各グリッドが、所定の方位値を有している。各グリッドの方位値は、対応するグリッドの位置がスキャンによって検出されたときの測定方向を平均することによって、算出される。また、図１８に示すように、薄い壁に対しては、グリッドが２つの方位値を有することによって、１つのグリッドが壁の表裏２面を表現する。
【０００８】
図１９は、非特許文献４の技術を説明するための図である。非特許文献４には、スキャンデータを用いたマップ生成の一方式が開示されている。この技術では、スキャンデータと、それに隣接するデータとの位置関係に基づき壁の向きを推測する。そして、図１９に示すように、この推測結果に基づき、スキャンデータに含まれる各点の測定距離の誤差を補正する。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Real-Time Correlative Scan Matching, Olson et al, Robotics and Automation, 2009. ICRA '09. IEEE International Conference on Page(s):4387-4393
【非特許文献２】Efficient Sparse Pose Adjustment for 2D Mapping, Konolige et al, Intelligent Robots and Systems (IROS), 2010 IEEE/RSJ International Conference on Page(s):22-29
【非特許文献３】High Quality Pose Estimation by Aligning Multiple Scans to a Latent Map”, Huang et al, Robotics and Automation (ICRA), 2010 IEEE International Conference on Page(s):1353-1360
【非特許文献４】Highly Accurate Maximum Likelihood Laser Mapping by Jointly Optimizing Laser Points and Robot Pose, Ruhnke M. et al , Robotics and Automation (ICRA), 2011 IEEE International Conference on Page(s):2812-2817
【発明の概要】
【発明が解決しようとする課題】
【００１０】
非特許文献１の技術では、各グリッドが、検出点における検出確率の情報は有するが、方向の情報は有しない。したがって、壁の表裏を区別することができない。そのため、スキャンマッチ時に、逆向きの壁同士を一致させる間違いによって、通路が一本ずれた形で対象スキャンと基準スキャンとがマッチしてしまうなど、スキャンマッチが正確になされない場合がある。
【００１１】
非特許文献２の技術は非特許文献１のスキャンマッチを利用するものであるので、非特許文献１と同様の問題がある。
【００１２】
特許文献３の技術では、グリッドが１または２の方位値を有する。したがって、グリッドは、３面以上から測定された点（細い棒など）を正しく表現することができない。その結果、スキャンマッチによる評価結果が不適切に上下する問題がある。また、この技術には、グリッドが「２つの方位値」を有する場合があるという例外処理が必要になる。この例外処理は、スキャンマッチにおける繰り返しループ処理内の最内ループに配置される。この結果、スキャンマッチに要する計算時間が著しく長くなるという問題もある。
【００１３】
特許文献４には、スキャンごとの距離誤差を低減する技術が開示されるにすぎず、これをスキャンマッチに適用する工夫は何ら示されていない。
【００１４】
本発明は、上記の問題点に鑑みてなされたものである。そしてその目的は、記録情報における記録点と、測定点との一致性をより正確に評価することができる一致性評価装置および一致性評価方法を提供することにある。
【課題を解決するための手段】
【００１５】
本発明の一態様に係る一致性評価装置は、少なくとも１つの記録点に対するマップ上における位置情報および方向情報を、記録情報として記録する記録部と、所定の測定位置と周囲の測定点との距離と、当該測定位置から上記測定点への測定方向とを表す測定データを取得する取得部と、取得された上記測定データに基づき、上記マップ上における上記測定点の位置および測定方向を算出する算出部と、上記記録情報における各上記記録点の上記マップ上における位置情報と、取得された測定データから算出された上記測定点の上記マップ上における位置との、それぞれの一致度合いを表す各位置評価値を算出する位置評価部と、上記記録情報における各上記記録点の方向情報と、取得された上記測定データから算出された上記測定点の測定方向とのそれぞれの一致度合いを表す各方向評価値を算出する方向評価部と、算出された上記各位置評価値および上記各方向評価値に基づき、上記測定点が上記記録情報における各上記記録点に一致するか否かに関する評価を行う一致性評価部とを備えていることを特徴としている。
【００１６】
本発明の一態様に係る一致性評価方法は、少なくとも１つの記録点に対するマップ上における位置情報および方向情報を、記録情報として記録する記録工程と、所定の測定位置と周囲の測定点との距離と、当該測定位置から上記測定点への測定方向とを表す測定データを取得する取得工程と、取得された上記測定データに基づき、上記マップ上における上記測定点の位置および測定方向を算出する算出工程と、上記記録情報における各上記記録点の上記マップ上における位置情報と、取得された測定データから算出された上記測定点の上記マップ上における位置との、それぞれの一致度合いを表す各位置評価値を算出する位置評価工程と、上記記録情報における各上記記録点の方向情報と、取得された上記測定データから算出された上記測定点の測定方向とのそれぞれの一致度合いを表す各方向評価値を算出する方向評価工程と、算出された上記各位置評価値および上記各方向評価値に基づき、上記測定点が上記記録情報における各上記記録点に一致するか否かに関する評価を行う一致性評価工程とを有することを特徴としている。
【発明の効果】
【００１７】
本発明の一態様によれば、記録情報における記録点と、測定点との一致性をより正確に評価することができるという効果を奏する。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態１に係るロボットの要部構成を示すブロック図である。
【図２】本発明の実施形態１に係るロボットの外観を示す図である。
【図３】本発明の実施形態１に係るロボットが備えるを説明する図である。
【図４】本実施形態に係るロボットにおけるマップ作成の概要を説明する図である。
【図５】本発明の実施形態１における、方位マップを構成するグリッドにおいて定義される方位区分の詳細を説明するための図である。
【図６】本発明の実施形態１における方位ビット値の算出例および方位マップの例を示す図である。
【図７】本発明の実施形態１におけるノード追加部による処理の流れを示すフローチャートである。
【図８】本発明の実施形態１におけるループ検出部による処理の流れを示すフローチャートである。
【図９】本発明の実施形態１における基準マップを作成するための処理手順を示す図である。
【図１０】本発明の実施形態１におけるマッチ位置算出のための基本的な処理手順を示す図である。
【図１１】本発明の実施形態１における方位マップを作成するための処理手順を示す図である。
【図１２】本発明の実施形態１に係るマッチ位置算出のための追加処理を示す図である。
【図１３】本発明の実施形態１における方位評価の一例を説明する図である。
【図１４】本発明の実施形態２における方位マップを構成するグリッドにおいて定義される方位区分の詳細を説明するための図である。
【図１５】本発明の実施形態２における方位ビット値の算出例および方位マップの例を示す図である。
【図１６】本発明の実施形態３に係るロボットの要部構成を示すブロック図である。
【図１７】非特許文献１の技術を説明するための図である。
【図１８】非特許文献２の技術を説明するための図である。
【図１９】非特許文献３の技術を説明するための図である。
【発明を実施するための形態】
【００１９】
〔実施形態１〕
図１〜図７を参照して、本発明の実施形態１について以下に説明する。
【００２０】
（ロボット１の概要）
本実施形態に係るロボット１（一致性評価装置）は、清掃作業を行う機能を有し、さらに、左右独立した駆動輪によって平面である床面を自律的に走行可能な装置である。本実施軽形態では、ロボット１は床面の清掃を行う自律走行体であるものとする。図示しないが、ロボット１は、清掃作業を行うための作業ユニットを備える。作業ユニットは、床に落ちているゴミを吸引する吸引部や、モップ、洗浄液タンクおよび廃液タンクを有するウェット洗浄部等を有する。なお、作業ユニットが有する機能は清掃に限定されず、たとえば、回転する刈刃を有することで芝を刈る芝刈り機能であってもよい。
【００２１】
ロボット１は、周囲の地形などの環境に応じて、自律走行して清掃すべき領域や清掃順等を特定するためのマップを作成する機能を有する。ロボット１は、マップを作成する機能として、ロボット１が自律走行をしてマップを作成する機能を有する。
【００２２】
（座標系）
本実施形態において、ロボット１ａは、マップ作成のために、それぞれ区別される複数の座標系を用いる。具体的には、車体座標系、センサ座標系、ワールド座標系、およびグリッド座標系が用いられる。
【００２３】
車体座標系とは、ロボット１ａ中の所定の基準点を原点とする座標系である。原点は、ロボット１ａの各駆動輪２２の中央にある。ロボット１ａの進行方向前方へ向かう方向を、ｘ軸プラス方向とし、左側に向かう方向をｙ軸プラス方向とする。
【００２４】
センサ座標系とは、図３に示すように、ＬＲＦ３から見た座標系のことである。車体座標系に、ＬＲＦ３の取り付け位置分のオフセットを加えることによって、センサ座標系が得られる。
【００２５】
ワールド座標系は、ロボット１ａ内部で計算する、所定の外部基準点を原点とする座標系である。たとえば、ロボット１ａの走行開始時のロボット１ａの座標を原点として設定される。ワールド座標系は、オドメトリ座標系とも呼ばれる。
【００２６】
グリッド座標系は、後述するマップにおいてグリッド数で各座標を表す座標系である。マップにおける右方向をｘ軸プラス方向とし、上方向をｙ軸プラス方向とする。グリッド座標系における原点は、この座標系の利用場面によって異なり、適宜設定される。
【００２７】
（ロボット１の構成）
図１は、本発明の実施形態１に係るロボット１の要部構成を示すブロック図である。この図に示すように、ロボット１は、駆動部２、ＬＲＦ（Laser Range Finder）３、制御部４、および記憶部５（記録部）を備えている。
【００２８】
（駆動部２）
駆動部２は、左右２式のモータ２１、駆動輪２２、およびエンコーダ２３を備えている。モータ２１は、駆動輪２２と接続されており、制御部４による制御に応じて駆動輪２２を回転させる。駆動輪２２は、本体部の左右に１つずつ配されている。２個の駆動輪２２は、自身に接続されているモータ２１によって回転する。エンコーダ２３は、各駆動輪２２に接続されている。各駆動輪２２の回転数を検出し制御部４へ出力する。
【００２９】
（ＬＲＦ３）
ＬＲＦ３は、光学式の距離センサを回転軸周りに回転させながら回転軸と直交する走査平面内の周囲物体までの距離を測定する測定器である。ＬＲＦ３は、レーザ光出力部３１、レーザ光受光部３２およびスキャンデータ出力部３３を備えている。レーザ光出力部３１、レーザ光受光部３２は、ＬＲＦ３における所定の回転軸で回転する走査機構上に配置されている。
【００３０】
図２は、本発明の実施形態１に係るロボット１の外観を示す図である。この図に示すように、ＬＲＦ３は、ロボット１のうち進行方向前側の面である、本体部の前面に配されている。なお、さらに、本体部の前面とは逆側である本体部の後面にも配されていてもよい。ＬＲＦ３は、レーザ光Ｌを放射状に出力して水平面内をスキャンすることで、ロボット１と、ロボット１の周囲の壁１０などの物体とのセンサ座標系における距離を測定し、スキャンデータとして出力するものである。
【００３１】
図３は、本発明の実施形態１に係るロボット１が備えるＬＲＦ３を説明する図である。ＬＲＦ３は、レーザ光Ｌの照射した角度と、照射してから反射するまでに要した時間とに基づいて、ある時点での測定方向についてのレーザ光Ｌを反射した障害物の距離を検出する、いわゆるＴＯＦ（time of flight）の原理による障害物検知（センシング）を行う。ＬＲＦ３は、その回転軸が略鉛直方向になるようにロボット１に設置されている。ＬＲＦ３は、回転軸を回転しつつ繰り返し、測定光の発信と反射光の受信とを行うことによって、略水平面内の周囲各方向の距離を測定する。
【００３２】
図３に示すように、ＬＲＦ３の左右方向の視野は、ロボット１の進行方向前方を０度として、左右１００度である。ＬＲＦ３は、１度ごとに距離を測定する。上述したように、本実施形態では、ロボット１の進行方向前方へ向かう方向をセンサ座標系におけるｘ軸プラス方向とする。また、当該ｘ軸と直角に交差する方向をｙ軸方向とする。さらに、ロボット１を平面視したとき、ｘ軸から反時計回り方向を角度のプラス方向とし、ｘ軸から時計回り方向を角度のマイナス方向とする。さらに、ｙ軸のうち、ｘ軸プラス方向を反時計回りへ９０度回転させた方向（図３の紙面左向き方向）をｙ軸プラス方向とし、ｘ軸プラス方向から時計回りへ９０度回転させた方向（図３の紙面右向き方向）をｙ軸マイナス方向とする。
【００３３】
ＬＲＦ３が取得するスキャンデータは、−１００度〜０度〜＋１００度の合計２０１件の測定データによって構成されている。ＬＲＦ３は、測定周期ごとに、現在の測定位置において周囲の測定点に対する測定を行い、それによって取得したスキャンデータを制御部４に出力する。ＬＲＦ３の測定周期は任意で設定すればよいが、一例として、５０ｍｓであるものとする。
【００３４】
ＬＲＦ３は、ある方位の距離が測定できなかった場合、その方位の距離データを、あかじめ設定した所定の無効値とする。このＬＲＦ３によって距離が測定できなかった場合とは、その方位の壁までの距離が遠すぎたり、反射率が低くすぎたりするなどによって、レーザ光Ｌの反射光の強度が小さすぎ、レーザ光受光部３２が反射光を検出できない場合や、ロボット１の周囲の光が強すぎることでレーザ光受光部３２がレーザ光Ｌの反射光を識別できない場合などを挙げることができる。
【００３５】
また、無効値は、ＬＲＦ３として規定されている定格距離よりも大幅に大きな値を設定しておく。一例として、ＬＲＦ３の定格距離が１０ｍと定められている場合、無効値は９９ｍと設定しておく。この場合、ＬＲＦ３が測定したスキャンデータが９９ｍである場合、その方位に存在する壁は、ＬＲＦ３にて距離を測定できない程遠い位置に存在すると判定できる。
【００３６】
（制御部４）
制御部４は、ノード追加部４１（取得部、算出部、位置評価部、方向評価部、一致性評価部）、ループ検出部４２（取得部、算出部、位置評価部、方向評価部、一致性評価部）、およびマップ生成部４３を備えている。ノード追加部４１、ループ検出部４２、およびマップ生成部４３は、後述するＳＬＡＭ機能を実現する構成要素である。
【００３７】
ノード追加部４１は、ＬＲＦ３からの出力である距離情報（スキャンデータ）およびエンコーダ２３からの出力である回転数情報から、各方位における壁等の障害物の距離および自己位置を表すノードと呼ばれる、所定のタイミングにおけるデータを生成し、ノード情報１６ｃとして記憶部５に記憶する。ノード追加部４１は、たとえば、ロボット１が所定距離や所定角度を移動したとき等、あらかじめ設定された所定のタイミングごとにノードを生成し、ノード５１ａとして記憶部５に順次追加して記憶する。
【００３８】
ノード追加部４１は、各ノードをつなぎ合わせる際、各ノードに示されている自己位置を中心に、各ノードにおける障害物の位置同士が最もよく重なり合う位置を見つける、いわゆるスキャンマッチ処理を行う。これによって、ノード追加部４１は、各ノード同士をつなぎ合わせる際の精度を向上させる。
【００３９】
マップ生成部４３は、測定範囲外形相当の面積を持つあらかじめ用意した空マップに、ノード追加部４１がつなぎ合わせた各ノードにおける障害物の位置を描いていく。そして、マップ生成部４３は、この空マップに入力した障害物の位置の内側を、ロボット１の走行可能領域として特定する。これによって、マップ生成部４３はマップを作成し、作成したマップを出力マップ５３ｃとして記憶部５に記憶する。
【００４０】
（記憶部５）
記憶部５は、ロボット１におけるマップ作成に関する各種のデータを記憶している。具体的には、記憶部５には、ノード群５１、拘束群５２、およびマップ群５３が記憶されている。
【００４１】
ノード群５１は、ノード追加部４１によって追加された複数のノード５１ａによって構成されている。各ノード５１ａは、ＬＲＦ３の位置５１ｂと、その位置５１ｂにおいて取得されたスキャンデータ５１ｃとによって構成されている。なお、各ノード５１ａには、生成順にノード番号が付与されている。ノード５１ａの位置５１ｂは、ワールド座標系上の位置である。
【００４２】
拘束群５２は、ノード追加部４１またはループ検出部４２によって追加された複数の拘束５２ａによって構成されている。各拘束５２ａは、２つのノードの位置関係を規定するデータである。一方を基準ノードと呼び、他方を対象ノードと呼ぶ。各拘束５２ａでは、基準ノードのセンサ座標系における、対象ノードの位置が車体座標系において規定されている。
【００４３】
マップ群５３は、基準マップ５３ａ（記録情報）、方位マップ５３ｂ（記録情報）、出力マップ５３ｃによって構成されている。基準マップ５３ａは、少なくとも１つのノード５１ａを用いて作成され、各ノード５１ａに含まれるスキャンデータ５１ｃに含まれる各測定データから算出されるプロット（測定点）の位置における壁の有無が規定されるマップである。
【００４４】
方位マップ５３ｂは、少なくとも１つのノード５１ａを用いて作成され、各スキャンデータ５１ｃに含まれる距離データから得られる各プロット（測定点）の方位を表す情報を有するマップである。
【００４５】
出力マップ５３ｃは、追加された全ノード５１ａおよび全拘束５２ａの情報が反映された最終的なマップである。出力マップ５３ｃは、まずワールド座標系においてマップ上に各ノード５１ａをプロットし、さらにワールド座標系上の各プロットの位置をグリッド座標系上の位置に換算することによって、作成される。出力マップ５３ｃはたとえばロボット１ａに出力され、ユーザの目に触れる。また、出力マップ５３ｃは、たとえば経路探索または自立走行をロボット１が行う際の、ロボット１の内部制御にも利用される。
【００４６】
（マップ作成）
次に、主に図４を参照して、本実施形態におけるマップ作成の概要について説明する。
【００４７】
図４は、本実施形態に係るロボット１ａにおけるマップ作成の概要を説明する図である。
【００４８】
ロボット１は、自己位置を推定しつつマップを作成する、いわゆるＳＬＡＭ（Simultaneous Localization and Mapping）処理を用いることによって、マップを作成する。ロボット１は、移動するにつれて、ノード追加部４１、ループ検出部４２、およびマップ生成部４３がそれぞれ所定の処理を実行することによって、マップを作成する。
【００４９】
（ノード追加部４１の処理）
１．オドメトリ処理
ノード追加部４１は、まず、オドメトリ処理を実行する。エンコーダ２３は、駆動輪２２の回転数を回転数情報として制御部４へ出力する。ＬＲＦ３のスキャンデータ出力部３３は、あらかじめ設定された所定の測定周期（たとえば５０ｍｓ）ごとに、スキャンデータを制御部４へ出力する。そして、ノード追加部４１は、駆動輪２２の回転数から車体の移動距離と方位を計算することによって、ロボット１が有するワールド座標系上の自己の位置（ｘ、ｙ、θ）を計算する（すなわちオドメトリ処理を行う）。これによって、ノード追加部４１は、ロボット１のワールド座標系上の自己位置を認識する。続いて、ノード追加部４１は、自己の位置（ｘ、ｙ、θ）に、ＬＲＦ３の取り付け分のオフセットを加えることによって、ワールド座標系上のＬＲＦ３の位置（ｘｓ、ｙｓ、θｓ）を算出する。
【００５０】
２．ノード追加処理
次にノード追加部４１は、ロボット１が、距離または方位角が所定以上となる程度移動するごとに、そのときのＬＲＦ３の位置（ｘｓ、ｙｓ、θｓ）およびスキャンデータからなるノード５１ａとして記憶部５に記憶する。
【００５１】
各ノードは、ＬＲＦ３からの出力をＳＬＡＭ処理に適したタイミングでノード追加部４１が生成するものである。ＬＲＦ３からの出力として、一例として５０ｍｓごとなど、比較的、短い時間間隔で一式のスキャンデータが制御部４へ出力されるため、このＬＲＦ３の出力ごとにノードを生成するとデータ量が多くなりすぎる。このため、ノード追加部４１は、適度に間引いた時間間隔で、各ノード５１ａを生成し記憶部５へ記憶していく。なお、このノード追加部４１がノード５１ａを生成するタイミングは、任意で設定すればよい。
【００５２】
３．拘束追加
次にノード追加部４１は、記憶部５に記憶された各ノード情報５１ａを参照し、各ノードの位置関係を算出する。ノード追加部４１は、オドメトリ処理による平面座標上のＬＲＦ３の（ｘｓ、ｙｓ、θｓ）を初期値として、各ノードにおける距離形状同士が最もよく重なり合う位置関係を見つける、いわゆるスキャンマッチ処理を行い、各ノード同士をつなぎ合わせる際の壁等の障害物の精度を向上させる。あるノードと他のノードとの位置関係は、拘束と呼ばれる。すなわちノード追加部４１は、スキャンマッチによって各ノード間の拘束を作成し、これを表す拘束情報５２ａを記憶部５に記憶する。
【００５３】
（ループ検出部４２の処理）
ループ検出部４２は、ループ閉合処理を実行する。この処理は、ロボット１の軌跡上において、ロボット１が同じ場所を２回通るループ経路がある場合に、マップを正しく作成するために、ループ経路における最初の位置と最後の位置とが一致するようにマップを変形する処理のことである。言い換えると、ループ経路における最初の位置と最後の位置とが一致する拘束を生成し、これに基づいてノードの位置を修正することである。図４の例では、ノードＮ２からノードＮ１への拘束がこれに該当する。
【００５４】
ループ閉合処理は、ループ検出処理およびグラフ最適化処理を含む。
【００５５】
１．ループ検出処理
図４の例では、ループ検出部４２は、スキャンマッチを実行することによって、ループ経路を構成するノードＮ２からノードＮ１への拘束を生成する。その際、ループ検出部４２は、拘束判定の対象であるノードを対象に、各方位における壁１０までの距離を平面座標系に投影演算することで一式の距離形状を生成する。ノードごとに、ＬＲＦ３が検出した壁１０の位置は、制御部４において、複数の点Ｐからなる距離形状で表される。
【００５６】
図４の（ｂ）は、ノードＮ１での距離形状を表している。図４の（ｃ）は、ノードＮ１から、ロボット１が移動経路Ｒを通って移動した後のノードＮ２での距離形状を表している。
【００５７】
ループ検出部４２は、ノードＮ１における距離形状と、ノードＮ２における距離形状とに基づき、ノードＮ１とノードＮ２との拘束を生成する。その際、ループ検出部４２は、図４の（ｄ）のようにノードＮ１とノードＮ２との位置関係を正しく算出できれば、適切な拘束を生成することができる。一方、図４の（ｅ）のようにノードＮ１とノードＮ２との位置関係を間違って算出（外れ値を算出）してしまうと、誤った拘束を生成する。図４の（ｅ）では、ノードＮ１の距離形状における壁と、ノードＮ２の距離形状における壁とを、壁の表裏を間違えて重ね合わせている。なお、外れ値（Outlier）とは、一般的には、統計などで集団から離れたところにあるデータを示す用語であり、本来は、間違った値という意味を持たないが、ＳＬＡＭの分野では、外れ値は「他のデータと矛盾する間違った値」の意味で実質的に用いられる。
【００５８】
本発明によって実現される新規なスキャンマッチは、ループ検出部４２によるループ閉合に関する拘束生成時に特に用いられる。このスキャンマッチによって、図４の（ｅ）のような誤った拘束を生成することを防止し、図４の（ｄ）に示すような正しい拘束を生成することが実現される。なお、本発明のスキャンマッチは、上述したノード追加部４１による通常の拘束生成時に用いてもよい。
【００５９】
２．グラフ最適化処理
ループ検出部４２は、新たに生成した拘束を記憶部５に記憶する。これにより、新たな拘束が基準マップ５３ａに追加される。ループ検出部４２は、追加した拘束を含む基準マップ５３ａ内の全拘束の誤差を最小化するように、基準マップ５３ａ内の全ノードの位置を調整する（グラフ最適化）。この処理によって、ループ経路における開始位置と終了位置とが一致する。ループ検出部４２は、具体的なグラフ最適処理として、たとえば非特許文献２に記載された従来の方法を利用することができる。この処理は本発明における本質的な特徴点ではないため、これ以上の詳細な説明は省略する。
【００６０】
（マップ生成部４３の処理）
マップ生成部４３は、測定範囲外形相当の面積を持つあらかじめ用意した空マップに、各ノードにおける障害物の位置である各点Ｐの位置を描いていく。マップ生成部４３は、最初は未知領域である空マップ上の、壁や柱等の障害物の位置座標を、各ノードにおける障害物を表す各点Ｐの位置から算出し、空マップに入力していく。そして、マップ生成部４３は、この空マップに入力した各点Ｐの位置の内側を、ロボット１の走行可能領域として特定する。これによって、マップ生成部４３は出力マップ５３ｃを作成し記憶部５に記憶する。
【００６１】
（方位区分の定義）
詳しくは後述するが、本実施形態のロボット１ａは、基準マップ５３ａに加えて、各基準スキャンに含まれるプロットの方位を表す所定の方位マップ５３ｂを作成することによって、スキャンマッチを正確に実行する。図５は、本発明の実施形態１における、方位マップ５３ｂを構成するグリッドＧにおいて規定される方位区分の詳細を説明するための図である。方位マップ５３ｂは、複数のグリッドＧによって構成されている。各グリッドＧは、その位置に壁が測定された場合、どの方位から測定されたかを、以下に説明する方位ビット値（記録点の測定方向の情報）として保持する。各グリットＧには、全方位範囲が所定の方位範囲ごとに区分された複数の方位区分が規定されている。図５に示すように、本実施形態では、方位マップ５３ｂ内の各グリッドＧにおいて規定される方位区分は８種類であり、それぞれ、４５度分の異なる角度範囲を有する。具体的には次のとおりである：
方位区分０＝０〜２２．５°および３３７．５〜３６０°間
方位区分１＝２２．５〜６７．５°間
方位区分２＝６７．５〜１１２．５°間
方位区分３＝１１２．５〜１５７．５°間
方位区分４＝１５７．５〜２０２．５°間
方位区分５＝２０２．５〜２４７．５°間
方位区分６＝２４７．５〜２９２．５°間
方位区分７＝２９２．５〜３３７．５°間。
【００６２】
このように複数の方位区分０〜７は、グリッドＧにおける全方位範囲が整数値の個数に均等に区分されたものである。なお、本実施形態では、方位マップ５３ｂにおけるｘ軸プラス方向を、方位マップ５３ｂにおける０度方向とする。
【００６３】
ノード追加部４１は、方位マップ５３ｂの作成時、まず、スキャンデータ５１ｃ中の各プロットの戻り光線方位が属する方位区分を算出する。戻り光線方位とは、グリッドＧからＬＲＦ３に向かう光線の方向を方位マップ５３ｂにおいて見た角度のことである。
【００６４】
グリッドＧにおいて、各方位区分に加えて所定の隣接幅があらかじめ規定されている。本実施形態では隣接幅は１である。ノード追加部４１は、プロットの戻り光線方位が属する方位区分を隣接幅だけ広げることによって、プロットの戻り光線方位に対応する、数値列としての方位範囲を算出する。戻り光線方位が属する方位区分と、そのとき算出される方位範囲との関係は次のとおりである。
【００６５】
方位区分＝０のとき、方位範囲＝（７、０、１）
方位区分＝１のとき、方位範囲＝（０、１、２）
方位区分＝２のとき、方位範囲＝（１、２、３）
方位区分＝３のとき、方位範囲＝（２、３、４）
方位区分＝４のとき、方位範囲＝（３、４、５）
方位区分＝５のとき、方位範囲＝（４、５、６）
方位区分＝６のとき、方位範囲＝（５、６、７）
方位区分＝７のとき、方位範囲＝（６、７、０）。
【００６６】
ここで、方位範囲における各数字は、グリッドＧにおいて規定される方位区分の番号を示す。
【００６７】
ノード追加部４１は、あるプロットに対して算出した方位範囲を用いて、方位マップ５３ｂにおける当該プロットに対応するグリッドＧの方位ビット値を算出する。方位ビット値とは、方位範囲に含まれる各０〜７の数値の有無を、それぞれ１桁〜８桁目のビット（測定方向の存在を示す評価値）の真偽に対応させ、各ビットをＯＲ演算することによって算出される値（測定方向の情報）である。具体的には、方位範囲に含まれる数字に対応する桁のビットを１とし、含まれない数字に対応する桁のビットを０として、各ビットの値をＯＲ演算する。これにより、本実施形態の方位ビット値は０〜２５５のいずれかの値を取る。方位ビット値が０であれば、グリッドＧにおける方位区分の値はすべて０である。一方、方位ビット値が２５５であれば、グリッドＧにおける方位区分の値はすべて１である。
【００６８】
図６は、本発明の実施形態１における方位ビット値の算出例および方位マップ５３ｂの例を示す図である。この図の（ａ）では、１つのグリッドＧが９つの同じ大きさのサブグリッドＧに分割され、中央を除く８つの各サブグリッドＧに対して、図１５に規定される方位区分０〜７のうち、サブグリッドＧの配置によって決まる方位に対応する方位区分の番号が振られている。
【００６９】
図６の（ａ）に示すように、プロットの戻り光線方位が方位区分１に含まれる場合、方位区分１には方位区分０および２が隣接している。そのため、方位範囲＝（０、１、２）である。この場合、このプロットに対応するグリッドＧの方位ビット値は、２＾０｜２＾１｜２＾２＝００００１１１ｂ＝０７ｈ（１６進数）である。これを１０進数で表すと、２０＋２１＋２２＝７である。
【００７０】
ノード追加部４１は、あるプロットに対応するグリッドＧに対して算出した方位ビット値を、このグリッドＧが有する方位ビット値の既存値と論理ＯＲ演算することによって、このグリッドＧの方位ビット値を更新する。この結果、グリッドＧは、複数の異なるプロットから算出される複数の方位区分を表す方位ビット値を有することができるようになる。たとえばグリッドＧの方位ビット値が１５（２０＋２１＋２２＋２３）であれば、このグリッドＧでは、方位区分０〜３がすべて「有」であることが分かる。
【００７１】
図６の（ｂ）に、本実施形態における方位マップ５３ｂの例を示す。この例では、２つのスキャンデータを合成することによって作成された方位マップ５３ｂを示す。ノードＮ１１において取得されたスキャンデータを方位マップ５３ｂに投影すると、このスキャンデータに含まれる２つのプロットが、グリッドＧ１およびグリッドＧ２に向かっている。したがって、グリッドＧ１およびグリッドＧ２におけるこれらのプロットの投影に対応する方位範囲（戻り光線方位が属する方位区分およびその隣接箇所）が「有」になる（図中の網掛け箇所）。
【００７２】
一方、ノードＮ１２において取得されたスキャンデータを方位マップ５３ｂに投影すると、このスキャンデータに含まれる２つのプロットが、グリッドＧ１〜Ｇ３に向かっている。したがって、グリッドＧ１〜Ｇ３におけるこれらのプロットの投影に対応する方位範囲が「有」になる（図中の網掛け箇所）。
【００７３】
本実施形態では、各グリッドＧの方位区分が８種類であるので、各グリッドＧが有することができる方位ビット値は、８ビット（０〜２５５までのいずれか）の値を取る。したがって、各グリッドＧにおけるプロットの方位を細かく規定することができる。
【００７４】
（処理の流れ）
図７および図８を参照して、ノード追加部４１における処理の流れおよびループ検出部４２による処理の流れをそれぞれ以下に説明する。図７は、本発明の実施形態１におけるノード追加部４１による処理の流れを示すフローチャートである。図８は、本発明の実施形態１におけるループ検出部４２による処理の流れを示すフローチャートである。ロボット１では、ノード追加部４１による一連の処理およびループ検出部４２による一連の処理は、並行して実行される。
【００７５】
図７に示すように、ノード追加部４１はまず、エンコーダ２３から取得した回転量情報と、スキャンデータ出力部３３から取得したスキャンデータとを用いて、オドメトリ処理を実行する（Ｓ１）。次に、ノード追加部４１は、ノードを追加すべきかを判定する（Ｓ２）。Ｓ２がＮＯなら、図７の処理は最初に戻る。一方、Ｓ２がＹＥＳなら、ノード追加部４１は、スキャンマッチを実行することによって、ノードおよび拘束を生成する（Ｓ３）。以下では、このとき拘束と共に追加される最新のノードを対象ノードと呼び、その一つ前に追加されたノードを基準ノードと呼ぶ。ノード追加部４１は、生成したノードおよび拘束を基準マップ５３ａに追加する（Ｓ４、Ｓ５）。この後、図７の処理はＳ１に戻る。すなわちノード追加部４１は、図７に示す一連の処理を繰り返し実行する。
【００７６】
図８に示すように、ループ検出部４２はまず、ループを構成する拘束の候補に残りがあるか否かを判定する（Ｓ１１）。本実施形態では、拘束の候補とは、ノード番号が所定値（たとえば１０）以上離れている２つのノードのことである。これらの２つのノードのうち、一方を基準ノードＮＲ１、他方を対象ノードＮＴと称する。ループ検出部４２は、拘束として追加すべきか否かを判定済みの２つのノードの組み合わせについては、その記録を残しておく。そして、記録済みの組み合わせの２つのノードについては、Ｓ１１において、拘束候補から除外する。Ｓ１１がＮＯなら、ループ検出部４２は一定時間待機する（Ｓ１２）。この後、図８の処理はＳ１１に戻る。
【００７７】
一方、Ｓ１１がＹＥＳなら、ループ検出部４２は、拘束候補の１件を評価する（Ｓ１３）。次にループ検出部４２は、拘束を追加すべきか否かを判定する（Ｓ１４）。具体的には、ループ検出部４２は、２つのノードの位置間の距離が、所定値（たとえば５メートル）よりも小さい場合、これらの２つのノード間の拘束を追加すべきであると判定する。Ｓ１４がＹＥＳなら、ループ検出部４２はスキャンマッチを実行し（Ｓ１５）、その結果に基づき、拘束を基準マップ５３ａに追加する（Ｓ１５）。その後、ループ検出部４２はグラフ最適化を実行する（Ｓ１６）。この後、図８の処理はＳ１１に戻る。すなわちループ検出部４２は、図８に示す一連の処理を繰り返し実行する。
【００７８】
（スキャンマッチの詳細）
図９〜図１２を参照して、本実施形態におけるスキャンマッチの詳細を説明する。図９は、本実施形態における基準マップ５３ａを作成するための処理手順を示す図である。図１０は、本実施形態におけるマッチ位置算出のための基本的な処理手順を示す図である。図９および図１０に示す一連の処理は、従来技術と同様のものである。一方、図１１および図１２に示す一連の処理は、それぞれ、図８および図１０に対して追加で行われる、本実施形態に特有な処理である。
【００７９】
本実施形態において、ノード追加部４１およびループ検出部４２のうち少なくともいずれかが、図９〜図１２に示すスキャンマッチ処理を行うことができる。以下では、ループ検出部４２が、まず基準マップ５３ａおよび方位マップ５３ｂを作成し、これらのマップを用いてマッチ位置の算出処理を実行することを例に挙げて、図９〜図１２に示すスキャンマッチの詳細を説明する。
【００８０】
（基準マップ５３ａの作成）
ループ検出部４２は、まず、複数のグリッド（領域）によって区分されている空の基準マップ５３ａを用意する。各グリッドのサイズ（一辺の長さ）は固定値であり、本実施形態では５０ｍｍとする。基準マップ５３ａのサイズ（一辺の長さ）は固定値であり、本実施形態では４００グリッドとする。このサイズは、概ね、ＬＲＦ３を定格距離の２倍をグリッドサイで割った値に決定する。基準マップ５３ａの原点は、その中央にある。基準マップ５３ａの各座標軸方向は、いずれも、基準ノードＮＲ１のセンサ座標系における各座標軸方向に合わせて作成される。各グリッドは、基準マップ５３ａ内のそのグリッドの位置における所定のグリッド値（占有確率）を有する。この占有確率は、そのグリッドの位置に実際の壁がある確率のことである。基準マップ５３ａの各グリッドに元々規定される座標情報と、そのグリッドの値との組み合わせが、記録点または測定点の位置情報に相当する。空の基準マップ５３ａの作成時点において、すべてのグリッドの値（占有確率）は、後述する所定の最低値である。
【００８１】
ループ検出部４２は、少なくとも１つのスキャンを用いて、基準マップ５３ａを作成する。ここでいう少なくとも１つのスキャンとは、ノード群５１に含まれる、基準ノードＮＲ１を含む所定数（たとえば過去の５件）のノードである。以下では、ループ検出部４２が、５つのノードＮＲ１〜ＮＲ５を用いて基準マップ５３ａを作成する例を説明する。
【００８２】
まず、ループ検出部４２は、基準マップ５３ａにおける、５つのノードを１つずつ対象スキャンとして選択する。そして、対象スキャン内のスキャンデータ５１ｃに含まれる各測定データから、評価対象である各プロットの位置Ｐ［ｘ、ｙ］を算出する。この位置Ｐ［ｘ、ｙ］は、基準マップ５３ａにおけるプロットに対するグリッドの座標（グリッド座標）である。具体的には、ノード追加部４１は、対象ノード内のスキャンデータに含まれる−１００度から＋１００度までの各方位における壁１０までの各距離を、基準ノードＮＲ１のセンサ座標系において該当ノードＮＲの位置および方位を起点にして平面座標系に投影演算し、これによって得られた各座標をグリッドサイズで割ることによって、グリッド座標である各対象プロットの各位置Ｐ［ｘ、ｙ］（測定点の位置）を算出する。これにより、１つの対象スキャンから２０１件のプロット位置Ｐ［ｘ、ｙ］が算出される。
【００８３】
図９に示す処理では、所定のぼやけ幅があらかじめ決定されている。このぼやけ幅は、ｘ軸方向およびｙ方向のいずれにおいても、−ｗ〜ｗ（Ｗは整数）の範囲の値を取り得る。ループ検出部４２は、ｘ軸方向の所定のぼやけ幅ｘｄと、ｙ軸方向のぼやけ幅ｙｄの組み合わせごとに、図９の７行および８行の処理を実行する。
【００８４】
まずループ検出部４２は、プロット位置Ｐ［ｘ、ｙ］を、ｘ軸方向にｘｄだけずらし、かつ、ｙ軸方向にｙｄだけずらしたことによって、位置Ｐ［ｘ＋ｘｄ、ｙ＋ｘｄ］を算出する。そして、Ｐ［ｘ＋ｘｄ、ｙ＋ｘｄ］に対応するグリッドにおける占有確率（測定点の存在を示す評価値）を、算出する。なお、ループ検出部４２は、この処理を全ｘｄおよび全ｙｄの組み合わせに対して実行することによって、Ｐ［ｘ、ｙ］を頂点とする正規分布を算出することができる。
【００８５】
次に、ループ検出部４２は、Ｐ［ｘ＋ｘｄ、ｙ＋ｘｄ］に対応するグリッドにおける、占有確率の既存値を、基準マップ５３ａから取得する。ループ検出部４２は、対象プロットのＰ［ｘ＋ｘｄ、ｙ＋ｘｄ］に対して算出した占有確率と、Ｐ［ｘ＋ｘｄ、ｙ＋ｘｄ］に対応するグリッドにおける占有確率の既存値とを比較する。そして、より大きい方の値を、基準マップ５３ａにおけるＰ［ｘ＋ｘｄ、ｙ＋ｘｄ］に対応するグリッドに書き込む。Ｐ［ｘ＋ｘｄ、ｙ＋ｘｄ］に対して算出した占有確率が既存値よりも大きければ、Ｐ［ｘ＋ｘｄ、ｙ＋ｘｄ］に対応するグリッドの占有確率が新たな値（記録点の存在を示す評価値）に更新される。
【００８６】
以上の処理によって、ループ検出部４２は、基準マップ５３ａを作成する。ループ検出部４２は、スキャンマッチを実行するたびに、基準マップ５３ａを作り直す。これは、基準マップ５３ａの作成に用いられるノード５１ａ（複数のノード５１ａが用いられる場合はノード範囲）が、スキャンマッチごとに異なるからである。なお、基準マップ５３ａにおける各グリッドの（占有確率）を輝度に対応させて画像化すると、図１７の（ｂ）に示すようなマップが得られる。
【００８７】
本実施形態では、ループ検出部４２は、図９に示す一連の処理を実行するとき、さらに、図１１に示す一連の処理も実行することによって、基準マップ５３ａに加えて方位マップ５３ｂも作成する。図１１は、本実施形態における方位マップ５３ｂを作成するための処理手順を示す図である。
【００８８】
ループ検出部４２は、図９の１行目の処理によって空の基準マップ５３ａを作成するとき、さらに、図１１の１．１行目の処理によって、空の方位マップ５３ｂを作成する。方位マップ５３ｂのサイズ、グリッドサイズ、および原点の位置は、いずれも空の基準マップ５３ａと同じである。ただし、方位マップ５３ｂのグリッドは、占有確率ではなく方位ビット値を値として有し、各グリッドの初期値はいずれも０とする。方位マップ５３ｂの各グリッドに元々規定される座標情報と、そのグリッドの値との組み合わせが、記録点または測定点の方向情報に相当する。
【００８９】
（方位マップ５３ｂの作成）
ループ検出部４２は、図９の８行目の処理を実行するとき、さらに、図１１の８．１行〜８．５行に示す処理を実行することによって、必要に応じて方位マップ５３ｂにおける各グリッドの値を更新する。具体的には、まずループ検出部４２は、基準マップ５３ａにおけるＰ［ｘ＋ｘｄ、ｙ＋ｘｄ］に対応するグリッドの占有確率を取得し、それが０であるか否かを判定する。そして、占有確率が０ではない場合、ループ検出部４２は、Ｐ［ｘ＋ｘｄ、ｙ＋ｘｄ］に対応するグリッドの方位区分および隣接幅に基づき、Ｐ［ｘ＋ｘｄ、ｙ＋ｘｄ］の方位範囲を算出する（８．２行）。次にループ検出部４２は、算出したＰ［ｘ＋ｘｄ、ｙ＋ｘｄ］の方位範囲に基づき、Ｐ［ｘ＋ｘｄ、ｙ＋ｘｄ］の方位ビット値を算出する（８．３行）。最後にループ検出部４２は、Ｐ［ｘ＋ｘｄ、ｙ＋ｘｄ］の方位ビット値と、方位マップ５３ｂにおけるＰ［ｘ＋ｘｄ、ｙ＋ｘｄ］に対応するグリッドの既存値と論理ＯＲ演算する。ループ検出部４２は、この演算によって得た値を、方位マップ５３ｂにおける当該グリッドの書き込むことによって、当該グリッド既存値を更新する（８．４行）。
【００９０】
以上の処理によって、ループ検出部４２は、方位マップ５３ｂを作成する。ループ検出部４２は、スキャンマッチを実行するたびに、方位マップ５３ｂを作り直す。これは、方位マップ５３ｂの作成に用いられるノード５１ａ（複数のノード５１ａが用いられる場合はノード範囲）が、スキャンマッチごとに異なるからである。
【００９１】
（マッチ位置の算出）
ループ検出部４２は、続いて図１０に示す処理を実行することによって、基準マップ５３ａにおける対象スキャンのマッチ位置を算出する。ループ検出部４２は、まず、基準マップ５３ａにおいて対象スキャンを探索するときの所定の探索範囲を算出する。本実施形態では、ループ検出部４２は、探索範囲として、θの最小値θｍｉｎ、最大値θｍａｘ、および間隔θｓｔｅｐ、ｘの最小値ｘｍｉｎおよびｘｍａｘ、ならびにｙの最小値ｙｍｉｎおよび最大値ｙｍａｘを算出する。ｘｍｉｎ、ｘｍａｘ、ｙｍｉｎ、およびｙｍａｘは、いずれもグリッド座標でありかつ整数値を取る。ｘｍｉｎ、ｘｍａｘ、ｙｍｉｎ、ｙｍａｘ、θｍｉｎ、およびθｍａｘは、それぞれ探索開始位置ＰＳ(x、y、θ)に対して所定の探索幅を加えることによって、決定される。具体的には、探索開始位置ＰＳは基準ノードＮＲ１の位置から見た対象ノードＮＴの位置として、ノードＮＲ１におけるセンサ座標系で算出されたのち、グリッド座標に換算して決定される。さらに、ｘｍｉｎ、ｘｍａｘ、ｙｍｉｎ、ｙｍａｘ、θｍｉｎおよびθｍａｘは、それぞれ所定値ｗ２またはｗθを用いて、以下の通り算出される。
【００９２】
ｘｍａｘ＝ＰＳ(ｘ)＋ｗ２
ｘｍｉｎ＝ＰＳ(ｘ)−ｗ２
ｙｍａｘ＝ＰＳ(ｙ)＋ｗ２
ｙｍｉｎ＝ＰＳ(ｙ)−ｗ２
θｍａｘ＝ＰＳ(θ)＋ｗθ
θｍｉｎ＝ＰＳ(θ)−ｗθ
次に、ループ検出部４２は、θｍｉｎ〜θｍａｘのうちいずれかのθｏと、ｘｍｉｎ〜ｘｍａｘのうちいずれかのｘｏと、ｙｍｉｎ〜ｙｍａｘのうちいずれかのｙｏとの異なる組み合わせごとに、図１０の５行〜７行の処理を実行する。このときループ検出部４２は、θをθｓｔｅｐずつ順次増加させ、ｘｏおよびｙｏを１つずつ順次増加させる。
【００９３】
具体的には、ループ検出部４２はまず、対象スキャンの各オフセット後プロットを算出する（５行）。ここでいうオフセット後プロットとは、対象スキャンを基準マップ５３ａにおけるオフセットされた座標（ｘｏ、ｙｏ、θｏ）に投影した場合の各プロットのことである。対象スキャンには合計２０１件のプロットが含まれるので、全オフセット後プロットは、各座標（ｘ、ｙ）を要素とする２０１件の配列である。
【００９４】
次に、ループ検出部４２は、基準マップ５３ａにおける各オフセット後プロットに対応する各グリッドの占有確率を取得する（６行）。これにより、合計２０１個の占有確率（
記録点の存在を示す評価値）が取得される。
【００９５】
ループ検出部４２は、全オフセット後プロット分の各占有確率を総合（積算）することによって、現在のオフセット位置（ｘｏ、ｙｏ、θｏ）における所定のオフセット確率を算出する（７行）。これにより、２０１個の占有確率に基づき１つのオフセット確率が算出される。このオフセット確率は、基準マップ５３ａにおける記録済みのプロット（測定された壁）の位置と、スキャンデータ５１ｃから算出されるプロットの位置との一致度合いを示す位置評価値である。
【００９６】
以上の処理によって、ループ検出部４２は、一つの対象スキャンに対して、全部でオフセット回数ＮＯ＝（２×ｗθ÷θｓｔｅｐ＋１）×（２×ｗ２＋１）×（２×ｗ２＋１）個のオフセット確率を算出する。ループ検出部４２は、こうして算出した全オフセット条件のオフセット確率とオフセット量（ｘｏ、ｙｏ、θｏ）とを掛け合わせ、これにより得られたｘ、ｙ、およびθの各２０１件の総和をオフセット回数ＮＯで除算する（すなわち加重平均する）ことによって、基準マップ５３ａにおける対象スキャンのマッチ位置（ｘｍ、ｙｍ、θｍ）を算出する（行１１）。なお、ｘｍ、ｙｍ、およびθｍは、整数ではなく、小数点以下の値を持つ数である。
【００９７】
（マッチ位置算出の追加処理）
図１２は、本実施形態に係るループ検出部４２によって実行されるスキャンマッチの追加処理を示す図である。ループ検出部４２は、図１０の５行に示す処理を実行するとき、さらに、図１２の５．１行に示す処理を実行する。具体的には、ループ検出部４２は、算出されたオフセット後プロットの各点について、戻り光線方位が属する方位区分を求め、さらに、それを元に方位ビット値（全２０１件）を算出する。
【００９８】
さらに、ループ検出部４２は、図１０の行６に示す処理を実行するとき、図１２の６．１行〜６．４行に示す処理を追加で実行する。具体的には、ループ検出部４２は、方位マップ５３ｂにおける各オフセット後プロットに対応する各グリッドから、現在の方位ビット値（全２０１個）を取得する（６．１行）。次に、ループ検出部４２は、オフセット後プロットごとに、対応するプロット方位区分のビット値と、対応するグリッドの現在の方位ビット値とをＡＮＤ演算する（６．２行）。すなわちこのＡＮＤ演算は、２０１件の方位ビット値のすべてに対して行われる。このＡＮＤ演算によって得られる演算結果は、方位マップ５３ｂに記録済みのプロットの測定方向と、対象スキャンから算出されたプロットの測定方向との一致度合いを示す方向評価値である。
【００９９】
ループ検出部４２は、あるオフセット後プロットにおける演算結果が偽の場合、方位が一致しないと判定し、方位マップ５３ｂにおける当該オフセットプロットに対応するグリッドから取得した占有確率を、所定の最低値に変更する（６．３行）。ここでいう最低値とは、占有確率の最大値（基準マップ５３ａ作成時における正規分布の頂点の値）に対して十分小さな値、たとえば最大値の１００分の１の値である。一方、あるオフセット後プロットにおける演算結果が真の場合、方位が一致したと判定し、基準マップ５３ａにおける当該オフセット後プロットに対応するグリッドから取得した占有確率を、現在の値に維持する。これにより、２０１件の各占有確率が、最低値に変更されるか、または、現在の値のままになる。方位が一致すればするほど、各占有確率が最低値に変更される可能性が低くなるので、図１０の７行において算出されるオフセット確率の値は、より高くなる。
【０１００】
このように、本実施形態では、各グリッド値（占有確率）が、方向評価値に基づき、最低値に変更されるか、または現在の値に維持されるので、各グリッド値から算出される位置評価値（オフセット確率）は、結果的に、方向評価値を内包する値であると言える。このことは、本実施形態において位置評価値（オフセット確率）に基づき評価を行うことが、位置評価値と、それに内包される方向評価値との両方に基づき評価を行うことと同義であることを、意味する。
【０１０１】
なお、ループ検出部４２は、算出された各位置評価値および各方向評価値に基づき、対象スキャンのプロットが基準マップ５３ａにおける記録済みのプロットに一致するか否かに関する評価を行ってもよい。その際、ループ検出部４２は、基準マップ５３ａに記録済みのプロットのうち、位置評価値が所定の範囲内であり、かつ、方向評価値が所定の範囲内であるプロットを、対象スキャンの測定点と一致する一致点または当該一致点の候補と判定することができる。
【０１０２】
（方位評価の一例）
図１３は、本実施形態における方位評価の一例を説明する図である。この図には、方位マップ５３ｂの一部分を示す。
【０１０３】
図１３において、対象スキャンのオフセット位置が位置Ｏ２１になったとき、方位マップ５３ｂに投影されたプロットＰＡ１〜ＰＡ３は、方位マップ５３ｂにおけるＧ２１〜Ｇ２３に向かう。ここで、プロットＰＡ１〜ＰＡ３に対して算出される方位区分（図１２における斜線箇所）は、グリッドＧ２１〜Ｇ２３において真である方位区分（図１２における網掛け箇所）に重なっている。これにより、プロットＰＡ１〜ＰＡ３の方位ビット値と、グリッドＧ２１〜Ｇ２３の方位ビット値既存値とをそれぞれＡＮＤ演算すれば、いずれも演算結果は真となる。したがって、３つのプロットＰＡ１〜ＰＡ３のすべておいて、その方位が、基準マップ５３ａにおける対応グリッドＧ２１〜Ｇ２３のすべての方位と一致しているので、オフセット位置Ｏ２１における対象スキャンのオフセット確率は高くなる。
【０１０４】
一方、図１３において、対象スキャンのオフセット位置が位置Ｏ２２になったとき、方位マップ５３ｂに投影されたプロットＰＢ１〜ＰＢ３は、方位マップ５３ｂにおけるＧ３１〜Ｇ３３に向かう。ここで、プロットＰＢ１〜ＰＢ３に対して算出される方位区分（図１２における斜線箇所）のうち、グリッドＧ３１〜Ｇ２３３において真である方位区分（図１３における網掛け箇所）に重なっているのは、わずかにプロットＰＢ３のみである。すなわち、プロットＰＢ２およびＰＢ３の方位区分は、対応するグリッドＧ３２およびＧ３３において偽である方位区分（図１３における空白箇所）に重なっている。これにより、プロットＰＢ１の方位ビット値とグリッドＧ３３の方位ビット値の既存値とをＡＮＤ演算すれば結果は真になるが、プロットＰＢ２およびＰＢ３の各方位ビット値と、グリッドＧ３２およびＧ３１の各方位ビット値の既存値とをそれぞれＡＮＤ演算すれば、結果はいずれも偽になる。したがって、３つのプロットＰＢ１〜ＰＢ３のうち、その方位が、基準マップ５３ａにおける対応グリッドＧ３１〜Ｇ３３の方位と一致しているのは１つのみであるので、オフセット位置Ｏ２２における対象スキャンのオフセット確率は低くなる。
【０１０５】
以上のように、図１３の例では、オフセット位置Ｏ２１におけるオフセット確率が、オフセット位置Ｏ２２におけるオフセット確率よりも高い。したがって、スキャンマッチによって対象スキャンのマッチ位置として算出されるのは、よりオフセット確率が高いオフセット位置Ｏ２１の方である。すなわち、ループ検出部４２は、対象スキャンを基準マップ５３ａにおけるより正しい位置にスキャンマッチすることができる。
【０１０６】
一方、従来のスキャンマッチでは、本実施形態のような、方位マップ５３ｂを用いた、プロットの戻り光線方位が属する方位区分の算出（方位ビット値の算出）を行わない。したがって、オフセット位置Ｏ２２のオフセット確率は、オフセット位置Ｏ２１のオフセット確率と同じように高くなる。このことから、スキャンマッチ時の探索範囲にオフセット位置Ｏ２１およびオフセット位置Ｏ２２の両方が含まれていれば、対象スキャンのマッチ位置として、よりオフセット位置Ｏ２２に近い位置が算出されることになる。本来なら、この対象スキャンのマッチ位置はよりオフセット位置ＯＡに近い位置に算出されるべきであるので、従来技術ではマッチ位置に誤差が生じる結果となる。
【０１０７】
特に、スキャンマッチ時の探索範囲にオフセット位置Ｏ２１が含まれずにオフセット位置Ｏ２２が含まれる場合、この誤差が極端に大きくなる。具体的には、対象スキャンに含まれる各プロットによって規定される一対の壁のうち、本来なら正しくマッチされるべき壁ではなく、その反対側にある壁の方が、基準マップ５３ａにおけるいずれかの基準スキャンに含まれる各プロットによって規定される壁に、マッチしてしまう不具合が発生する（図４の（ｅ）のような外れ値の発生）。
【０１０８】
（変形例）
基準マップ５３ａの原点、分解能、および座標方向は、上述した例に限らず、他の値に設定されてもよい。このことは、方位マップ５３ｂおよび出力マップ５３ｃでも同様である。
【０１０９】
方位マップ５３ｂにおける方位区分は、上述した８種類に限らず、任意の種類であればよい。コンピュータの構成上、方位区分の種類は８×２ｎ（ｎは０以上の整数）種類であることが望ましい。
【０１１０】
各方位区分の値と角度範囲との対応関係は、上述の例に限らず、他の関係に変更することができる。たとえば、方位区分０を、ｘ軸方向を基準とした０〜２２．５°および３３７．５〜３６０°範囲ではなく、別の範囲としてもよい。
【０１１１】
方位マップ５３ｂの各グリッドにおける隣接幅は、１以外の値、たとえば２または０であってもよい。
【０１１２】
上述の例では、ノード追加部４１が、基準マップ５３ａの生成時に、併せて方位マップ５３ｂを生成し、その際、隣接幅分の他の方位が含まれるように各グリッドにおける方位を算出しているが、本発明はこれに限られない。たとえば、ループ検出部４２が、対象スキャンの各方位ビット値を算出する際（図１２の５．１行）に、これに隣接するビットを真にするようにしてもよい。
【０１１３】
〔実施形態２〕
図１４および１５を参照して、本発明に係る実施形態２を以下に説明する。上述した実施形態１と共通する各部材には同じ符号を付し、詳細な説明を省略する。
【０１１４】
（方位区分の定義）
図１４は、本発明の実施形態２における方位マップ５３ｂを構成するグリッドにおいて定義される方位区分の詳細を説明するための図である。この図に示すように、本実施形態では、方位マップ５３ｂ内の各グリッドにおいて定義される方位区分は、４種類であり、それぞれ、９０度分の異なる角度範囲を有する。具体的には次のとおりである：
方位区分０：０〜９０°間
方位区分１：９０〜１８０°間
方位区分２：１８０〜２７０°間
方位区分３：２７０〜３６０°間。
【０１１５】
なお、本実施形態では、隣接幅は０である。
【０１１６】
ノード追加部４１は、スキャンデータ５１ｃに含まれるあるプロットの戻り光線方位が属する方位区分の番号がｎである場合、このプロットの方位ビット値を、２ｎであると算出する。
【０１１７】
図１５は、本発明の実施形態２における方位ビット値の算出例および方位マップ５３ｂの例を示す図である。この図の（ａ）に示すように、プロットの戻り光線方位が方位区分０に含まれる場合、このプロットに対応するグリッドＧの方位ビット値は、２０＝１である。算出される方位ビット値の値は、そのプロットの戻り光線方位が属する方位区分に応じて、２０＝１（方位区分０）、２１＝２（方位区分１）、２２＝４（方位区分２）、または２３＝８（方位区分４）のいずれかである。
【０１１８】
ノード追加部４１は、実施形態１と同様に、あるプロットに対応するグリッドＧに対して算出した方位ビット値を、このグリッドＧが有する方位ビット値の既存値と論理ＯＲ演算することによって、このグリッドＧの方位ビット値を更新する。この結果、グリッドＧは、複数の異なる方位区分の有無を表す方位ビット値を有することができる。たとえばグリッドＧの方位ビット値が３（２０＋２１）であれば、このグリッドＧでは方位区分０および方位区分１が「有」であることが分かる。
【０１１９】
図１５の（ｂ）に、本実施形態における方位マップ５３ｂの例を示す。この例では、２つのスキャンデータを合成することによって作成された方位マップ５３ｂを示す。ノード２１において取得されたスキャンデータを方位マップ５３ｂに投影すると、このスキャンデータに含まれる２つのプロットが、グリッドＧ４１およびグリッドＧ４２に向かっている。したがって、グリッドＧ４１およびグリッドＧ４２におけるこれらのプロットの投影に対応する方位区分が「有」になる（図中の網掛け箇所）。
【０１２０】
一方、ノード２２において取得されたスキャンデータを方位マップ５３ｂに投影すると、このスキャンデータに含まれる３つのプロットが、グリッドＧ４１〜Ｇ４３に向かっている。したがって、グリッドＧ４１〜Ｇ４３におけるこれらのプロットの投影に対応する方位区分が「有」になる（図中の網掛け箇所）。
【０１２１】
本実施形態では、各グリッドの方位区分が４種類であるので、各グリッドが有することができる方位ビット値は、４ビット（０〜１５までのいずれか）の値を取る。したがって、グリッドの方位ビット値が８ビット（０〜２５５までのいずれか）の値を取る実施形態１に比べて、方位マップ５３ｂのサイズを小さくすることができるという利点が得られる。
【０１２２】
〔実施形態３〕
図１６を参照して、本発明に係る実施形態３を以下に説明する。上述した実施形態１または２と共通する各部材には同じ符号を付し、詳細な説明を省略する。
【０１２３】
図１６は、本発明の実施形態３に係るロボット１ａの要部構成を示すブロック図である。この図に示すように、ロボット１ａは、駆動部２、ＬＲＦ３、制御部４ａ、記憶部５、およびディスプレイ６を備えている。駆動部２、ＬＲＦ３、および記憶部５は、実施形態１および２と同様である。一方、制御部４は、実施形態１または２に係るロボット１が備える各部材に加えて、さらにマップ表示部４４を備えている。
【０１２４】
本実施形態では、マップ生成部４３は、出力マップ５３ｃを構成する各グリッドの方位ビット値を算出することによって、方位マップ５３ｂと同等の方位マップを作成する。マップ生成部４３は、方位ビット値を含まないグリッドからなる通常のマップと、方位ビット値を有するグリッドからなる方位マップとによって構成される出力マップ５３ｃを作成し、マップ表示部４４に出力する。マップ表示部４４は、入力された出力マップ５３ｃをディスプレイ６に表示させる。
【０１２５】
その際、マップ表示部４４は、図１３と同様に、各グリッドを方位区分ごとにサブグリッドに分割して表示し、さらに、各サブグリッドにおいて方位の真偽（壁検出の有無）を表示する。この結果、通常のマップに加えて、方位ごとの壁の有無もディスプレイ６に表示される。したがってロボット１ａのユーザは、より詳細なマップを視認することができる。
【０１２６】
〔まとめ〕
本発明の態様１に係る一致性評価装置は、少なくとも１つの記録点に対するマップ上における位置情報および方向情報を、記録情報として記録する記録部と、所定の測定位置と周囲の測定点との距離と、当該測定位置から上記測定点への測定方向とを表す測定データを取得する取得部と、取得された上記測定データに基づき、上記マップ上における上記測定点の位置および測定方向を算出する算出部と、上記記録情報における各上記記録点の上記マップ上における位置情報と、取得された測定データから算出された上記測定点の上記マップ上における位置との、それぞれの一致度合いを表す各位置評価値を算出する位置評価部と、上記記録情報における各上記記録点の方向情報と、取得された上記測定データから算出された上記測定点の測定方向とのそれぞれの一致度合いを表す各方向評価値を算出する方向評価部と、算出された上記各位置評価値および上記各方向評価値に基づき、上記測定点が上記記録情報における各上記記録点に一致するか否かに関する評価を行う一致性評価部とを備えていることを特徴としている。
【０１２７】
上記の構成によれば、位置評価値および方向評価値の双方に基づき、記録点と測定点との一致性が評価されるので、方向の一致性を考慮しない従来技術とは異なり、測定方向が異なる測定点と記録点とが誤って一致すると評価されることが防止される。したがって、測定点と記録点との一致性をより正確に評価することができる。
【０１２８】
本発明の態様２に係る一致性評価装置は、上記態様１において、上記算出部は、少なくとも１つの上記測定位置において取得された上記測定データに基づき、当該測定データごとに上記マップ上における各上記測定点の位置および測定方向を算出し、上記記録部は、ｓ算出された上記測定点ごとの上記位置および測定方向に基づき、各上記測定点に対応する上記マップ上の各上記記録点の上記位置情報および上記方向情報を、上記記録情報として記録することを特徴としている。
【０１２９】
上記の構成によれば、測定データを用いて記録情報を生成することができるので、あらかじめ記録情報が用意されていなくても、一致性評価装置が自ら生成した記録情報における記録点と測定点との一致性を評価することができる。
【０１３０】
本発明の態様３に係る一致性評価装置は、上記態様１または２において、上記一致性評価部は、上記記録情報における上記マップ上の各上記記録点のうち、上記位置評価値が所定の範囲内であり、かつ、上記方向評価値が所定の範囲内である上記記録点を、上記測定点と一致する一致点または当該一致点の候補と判定するか、または一致度を算出することを特徴としている。
【０１３１】
上記の構成によれば、記録点と測定点との一致点または当該一致点の候補を適切に判定することができる。
【０１３２】
本発明の態様４に係る一致性評価装置は、上記態様１〜３のいずれかにおいて、上記一致性評価部は、各上記位置評価値および各上記方向評価値に基づき、上記測定点が上記記録情報における上記マップ上のどの上記記録点に一致するかに関する１つの評価値を算出し、上記１つの評価値に基づいて、上記測定点に一致する上記記録情報における上記マップ上の１つの上記記録点を判定するか、または上記マップ上の一致位置を算出することを特徴としている。
【０１３３】
上記の構成によれば、測定点に一致する一つの記録点を適切に判定したり、マップ上の記録点と測定点との一致位置を適切に算出したりすることができる。
【０１３４】
本発明の態様５に係る一致性評価装置は、上記態様１〜４のいずれかにおいて、上記位置評価部は、上記マップにおける、上記記録点の上記位置情報と上記測定点の上記位置との相対的な位置関係に基づき、上記記録点と上記測定点との一致度合いを表す上記位置評価値を算出することを特徴としている。
【０１３５】
上記の構成によれば、測定点と記録点との相対的な位置関係に基づき、測定点と記録点との一致性を評価することができる。
【０１３６】
本発明の態様６に係る一致性評価装置は、上記態様１〜５のいずれかにおいて、上記取得部は、上記測定位置と、異なる複数の上記測定点との各上記距離と、当該測定位置から複数の上記測定点のそれぞれへの各上記測定方向とを表す複数の上記測定データを取得し、上記算出部は、取得された上記複数の測定データのそれぞれに基づき、上記測定データごとに上記マップ上における上記測定点の位置および測定方向を算出し、上記一致性評価部は、異なる上記測定点ごとに算出された上記各位置評価値および上記各方向評価値を総合することによって、複数の上記測定点のそれぞれに一致する複数の上記記録点を判定するか、または１つの一致度を算出することを特徴としている。
【０１３７】
上記の構成によれば、複数の測定点と複数の記録点との一致性を一度に判定したり、複数の測定点と複数の記録点との一致性に関する１つの一致度を算出したりすることができる。
【０１３８】
本発明の態様７に係る一致性評価装置は、上記態様１〜６のいずれかにおいて、上記マップは、複数の領域に区分されており、上記算出部は、上記マップにおける上記領域ごとに、上記測定データに基づき上記測定点の存在を示す評価値および上記測定点の測定方向を算出し、上記記録部は、上記マップの上記領域ごとに算出された上記測定点の存在を示す評価値および上記測定点の測定方向に基づき、上記測定点に対応する上記マップ上の上記記録点の存在を示す評価値および上記方向情報を、上記記録情報として記録することを特徴としている。
【０１３９】
上記の構成によれば、領域ごとに記録点の存在を示す評価値および記録点の方向情報が規定された記録情報を記録することができる。
【０１４０】
本発明の態様８に係る一致性評価装置は、上記態様６において、各上記領域において、所定の方位範囲ごとに区分された複数の方位区分が規定されており、上記算出部は、上記マップにおける上記領域ごとに、上記測定データに基づき当該領域の各上記方位区分における上記測定点の測定方向の存在を示す各評価値を組み合わせた上記測定方向の情報を算出することを特徴としている。
【０１４１】
上記の構成によれば、各領域における記録点の各方位からの測定方向の有無がより詳細に規定された記録情報を記録することができる。
【０１４２】
本発明の態様９に係る一致性評価装置は、上記態様８において、上記複数の方位区分は、上記領域における全方位範囲が整数値の個数に均等に区分されたものであることを特徴としている。
【０１４３】
上記の構成によれば、記録点の測定方向の有無が方位ごとに均等に評価された記録情報を記録することができる。
【０１４４】
本発明の態様１０に係る一致性評価装置は、上記態様８または９において、上記算出部は、上記複数の方位区分のうち１つの方位区分に対応する上記測定点の測定方向を算出した場合、当該１つの方位区分と、当該１つの方位区分に隣接する複数の上記方位区分とにそれぞれ上記測定点の測定方向の存在を示す上記評価値を割り当てることによって、上記測定方向の情報を算出することを特徴としている。
【０１４５】
上記の構成によれば、ある方向からの記録点の測定方向の有無を、より広がりを持たせて、記録情報における記録点の測定方向の情報に反映させることができる。
【０１４６】
本発明の態様１１に係る一致性評価方法は、少なくとも１つの記録点に対するマップ上における位置情報および方向情報を、記録情報として記録する記録工程と、所定の測定位置と周囲の測定点との距離と、当該測定位置から上記測定点への測定方向とを表す測定データを取得する取得工程と、取得された上記測定データに基づき、上記マップ上における上記測定点の位置および測定方向を算出する算出工程と、上記記録情報における各上記記録点の上記マップ上における位置情報と、取得された測定データから算出された上記測定点の上記マップ上における位置との、それぞれの一致度合いを表す各位置評価値を算出する位置評価工程と、上記記録情報における各上記記録点の方向情報と、取得された上記測定データから算出された上記測定点の測定方向とのそれぞれの一致度合いを表す各方向評価値を算出する方向評価工程と、算出された上記各位置評価値および上記各方向評価値に基づき、上記測定点が上記記録情報における各上記記録点に一致するか否かに関する評価を行う一致性評価工程とを有することを特徴としている。
【０１４７】
上記の構成によれば、測定点と記録点との一致性をより正確に評価することができる。
【０１４８】
〔ソフトウェアによる実現例〕
ロボット１における制御部４（およびロボット１ａにおける制御部４ａ）の制御ブロックは、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【０１４９】
後者の場合、ロボット１における制御部４（およびロボット１ａにおける制御部４ａ）は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）がプログラムを記録媒体から読み取って実行することによって、本発明の目的が達成される。記録媒体としては、「一時的でない有形の媒体」、たとえば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介してコンピュータに供給されてもよい。なお、本発明は、プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１５０】
（付記事項）
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態も、本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることによって、新しい技術的特徴を形成できる。
【０１５１】
各実施形態では、自律走行体の一例として清掃用のロボットを挙げて説明したが、本発明は清掃用のロボットに限定されるものではない。たとえば、空気清浄機器、撮影機器、各種ロボット機器（たとえば、警備ロボット、家事支援ロボット、動物型ロボット等）に対しても本発明を適用できる。
【０１５２】
ロボット１における制御部４および記憶部５は、ロボット１から離れた場所にある別のマップ生成装置（コンピュータ）に備えられていてもよい。この場合、ロボット１とマップ作成装置は、ロボットシステムを構成する。ロボット１は、駆動部２、ＬＲＦ３、および図示しない送信部を備えている。一方、マップ作成装置は、制御部４、記憶部５、および図示しない受信部を備えている。ロボット１は、取得した回転情報およびスキャンデータを通信部を通じてマップ作成装置に送信する。マップ作成装置は、図示しない受信部を通じて回転情報およびスキャンデータを受信し、これらの情報およびデータを用いて出力マップを作成する。
【０１５３】
ロボット１は、ＬＲＦ３の代わりに、自身と環境（障害物）との距離を測定できることが任意のアレイセンサ（たとえば超音波アレイセンサ）を備えていてもよい。この場合、アレイセンサがスキャンデータまたはそれと同等の距離測定データを生成し、制御部４に出力する。
【０１５４】
ロボット１は、ＬＲＦ３の代わりに、３次元の距離データを測定することができる任意の３次元測定センサを備えてもよい。この場合、３次元測定センサは、３次元の距離データを取得し、制御部４に出力する。制御部４は、３次元の距離データに基づき、３次元の各種マップを作成する。この態様では、方位区分を、実世界における特定の座標平面を境界とする８象限に対応させて決定することが好ましい。具体的には、ロボット１の上方向をｚ軸プラス方向として、ｘ軸、ｙ軸、およびｚ軸のプラス方向およびマイナス方向の組み合わせ（２３＝８通り）のそれぞれを、方位区分０〜７に割り当てる。これにより、各グリッドにおいて定義される方位区分が実施形態１と同様に８種類となるため、計算上都合がよくなる。
【符号の説明】
【０１５５】
１、１ａ  ロボット
２  駆動部
３  ＬＲＦ
４、４ａ  制御部（取得部）
５  記憶部（記録部）
６  ディスプレイ
２１  モータ
２２  各駆動輪
２２  駆動輪
２３  エンコーダ
３１  レーザ光出力部
３２  レーザ光受光部
３３  スキャンデータ出力部
４１  ノード追加部（算出部、位置評価部、方向評価部、一致性評価部）
４２  ループ検出部（算出部、位置評価部、方向評価部、一致性評価部）
４３  マップ生成部
４４  マップ表示部
【図１】
0006649743.tif 000002
【図２】
0006649743.tif 000003
【図３】
0006649743.tif 000004
【図４】
0006649743.tif 000005
【図５】
0006649743.tif 000006
【図６】
0006649743.tif 000007
【図７】
0006649743.tif 000008
【図８】
0006649743.tif 000009
【図９】
0006649743.tif 000010
【図１０】
0006649743.tif 000011
【図１１】
0006649743.tif 000012
【図１２】
0006649743.tif 000013
【図１３】
0006649743.tif 000014
【図１４】
0006649743.tif 000015
【図１５】
0006649743.tif 000016
【図１６】
0006649743.tif 000017
【図１７】
0006649743.tif 000018
【図１８】
0006649743.tif 000019
【図１９】
0006649743.tif 000020