(57)【要約】【課題】周辺環境の幾何学形状を対応付けるのが困難な場合であっても、複数の幾何学形状を合成して、周辺環境の地図を生成する。【解決手段】形状取得部１１５は、計測装置２００が計測した計測結果に基づいて、移動前位置（第一の位置）及び移動後位置（第二の位置）における周辺環境の幾何学形状を取得する。移動量取得部１３２は、計測装置２００が移動前位置から移動後位置へ移動した移動量を取得する。形状合成部１４３は、移動量取得部１３２が取得した移動量に基づいて、形状取得部１１５が取得した周辺環境の幾何学形状を重ね合わせて合成する。地図生成部１５１は、形状合成部１４３が合成した合成結果に基づいて、周辺環境の地図を生成する。【選択図】図３
2010054315.tif 000002
【特許請求の範囲】
【請求項１】
周辺環境の幾何学形状を計測する計測装置の計測結果に基づいて、上記周辺環境の地図を生成する地図生成装置において、
データを処理する処理装置と、形状取得部と、移動量取得部と、形状合成部と、地図生成部とを有し、
上記形状取得部は、上記処理装置を用いて、上記計測装置が計測した計測結果に基づいて、上記周辺環境の幾何学形状を取得し、上記計測装置が第一の位置で計測した計測結果に基づいて取得した幾何学形状を第一形状とし、上記計測装置が上記第一の位置と異なる第二の位置へ移動して計測した計測結果に基づいて取得した幾何学形状を第二形状とし、
上記移動量取得部は、上記処理装置を用いて、上記計測装置が上記第一の位置から上記第二の位置へ移動した移動量を取得し、
上記形状合成部は、上記処理装置を用いて、上記移動量取得部が取得した移動量に基づいて、上記形状取得部が取得した第一形状と第二形状とを重ね合わせて合成し、
上記地図生成部は、上記処理装置を用いて、上記形状合成部が合成した合成結果に基づいて、上記周辺環境の地図を生成することを特徴とする地図生成装置。
【請求項２】
上記地図生成装置は、更に、壁面検出部を有し、
上記壁面検出部は、上記処理装置を用いて、上記形状取得部が取得した第一形状に基づいて、上記周辺環境に存在する壁面を検出し、
上記移動量取得部は、上記処理装置を用いて、上記壁面検出部が検出した壁面に基づいて、上記計測装置が上記第一の位置から上記第二の位置へ移動した移動量のうち、上記壁面と略平行な方向の移動量を取得して、壁面平行移動量とし、
上記形状合成部は、上記処理装置を用いて、上記移動量取得部が取得した壁面平行移動量に基づいて、上記形状取得部が取得した第一形状と第二形状とを重ね合わせて合成することを特徴とする請求項１に記載の地図生成装置。
【請求項３】
上記地図生成装置は、更に、参照方向通知部と、参照距離取得部とを有し、
上記参照方向通知部は、上記処理装置を用いて、上記壁面検出部が検出した壁面に基づいて、上記壁面と略平行な方向を、参照方向として上記計測装置に対して通知し、
上記参照距離取得部は、上記処理装置を用いて、上記参照方向通知部が通知した参照方向に基づいて上記計測装置が計測した上記参照方向に存在する対象までの距離を取得し、上記計測装置が上記第一の位置で計測した距離を第一参照距離とし、上記計測装置が上記第二の位置で計測した距離を第二参照距離とし、
上記移動量取得部は、上記処理装置を用いて、上記参照距離取得部が取得した第一参照距離と第二参照距離との差を算出して、上記壁面平行移動量とすることを特徴とする請求項２に記載の地図生成装置。
【請求項４】
上記地図生成装置は、更に、計測距離取得部を有し、
上記計測距離取得部は、上記処理装置を用いて、上記計測装置が複数の計測方向の各計測方向について計測した上記計測方向に存在する対象までの距離を取得して、複数の計測距離とし、上記計測装置が上記第一の位置で計測した複数の計測距離を複数の第一計測距離とし、上記計測装置が上記第二の位置で計測した複数の計測距離を複数の第二計測距離とし、
上記形状取得部は、上記処理装置を用いて、上記計測距離取得部が取得した複数の計測距離に基づいて、上記周辺環境の幾何学形状を算出し、上記複数の第一計測距離に基づいて算出した幾何学形状を上記第一形状とし、上記複数の第二計測距離に基づいて算出した幾何学形状を上記第二形状とすることを特徴とする請求項１乃至請求項３のいずれかに記載の地図生成装置。
【請求項５】
上記地図生成装置は、更に、計測距離分類部と、部分図形検出部とを有し、
上記計測距離分類部は、上記処理装置を用いて、上記計測距離取得部が取得した複数の計測距離に基づいて、上記複数の計測距離を一以上の計測点群に分類し、
上記部分図形検出部は、上記処理装置を用いて、上記計測距離分類部が分類した一以上の計測点群の各計測点群について、上記計測点群に分類された計測距離によって構成される幾何学図形を検出して、一以上の部分図形とし、
上記形状取得部は、上記処理装置を用いて、上記部分図形検出部が検出した一以上の部分図形に基づいて、上記周辺環境の幾何学形状を算出することを特徴とする請求項４に記載の地図生成装置。
【請求項６】
上記地図生成装置は、更に、連続判定部を有し、
上記連続判定部は、上記処理装置を用いて、上記複数の計測方向の各計測方向について、上記計測方向についての計測距離と、上記計測方向に隣接する計測方向についての計測距離とが連続しているか否かを判定し、
上記計測距離分類部は、上記計測方向についての計測距離と上記計測方向に隣接する計測方向についての計測距離とが連続していると上記連続判定部が判定した場合、上記処理装置を用いて、上記計測方向についての計測距離と、上記計測方向と隣接する計測方向についての計測距離とを同一の計測点群に分類し、上記計測方向についての計測距離と上記計測方向に隣接する計測方向についての計測距離とが連続していないと上記連続判定部が判定した場合、上記処理装置を用いて、上記計測方向についての計測距離と、上記計測方向に隣接する計測方向についての計測距離とを異なる計測点群に分類することを特徴とする請求項５に記載の地図生成装置。
【請求項７】
上記部分図形検出部は、上記処理装置を用いて、ハフ変換により、上記計測点群に分類された計測距離によって構成される幾何学図形を検出することを特徴とする請求項５または請求項６に記載の地図生成装置。
【請求項８】
上記地図生成装置は、更に、特徴抽出部を有し、
上記特徴抽出部は、上記処理装置を用いて、上記形状取得部が取得した幾何学形状に基づいて、上記幾何学形状の特徴を抽出し、上記第一形状に基づいて抽出した特徴を第一特徴とし、上記第二形状に基づいて抽出した特徴を第二特徴とし、
上記形状合成部は、上記処理装置を用いて、上記特徴抽出部が抽出した第一特徴と第二特徴とに基づいて、上記形状取得部が取得した第一形状と第二形状とを重ね合わせて合成することを特徴とする請求項１乃至請求項７のいずれかに記載の地図生成装置。
【請求項９】
上記形状合成部は、上記処理装置を用いて、上記特徴抽出部が抽出した第一特徴と第二特徴との間に一致する部分がある場合に、上記第一特徴と第二特徴とが一致する部分に対応する部分が重なるよう、上記第一形状と第二形状とを重ね合わせて合成することを特徴とする請求項８に記載の地図生成装置。
【請求項１０】
上記地図生成装置は、更に、合成方式選択部を有し、
上記合成方式選択部は、上記処理装置を用いて、上記特徴抽出部が抽出した第一特徴と第二特徴とに基づいて、上記移動量取得部が取得した移動量に基づく合成方式と、上記特徴抽出部が抽出した特徴に基づく合成方式ととのなかから合成方式を選択し、
上記形状合成部は、上記処理装置を用いて、上記合成方式選択部が選択した合成方式に基づいて、上記形状取得部が取得した第一形状と第二形状とを重ね合わせて合成することを特徴とする請求項８または請求項９に記載の地図生成装置。
【請求項１１】
周辺環境の幾何学形状を計測する計測装置と、請求項１乃至請求項１０のいずれかに記載の地図生成装置とを有することを特徴とする地図生成システム。
【請求項１２】
上記計測装置は、参照方向取得部と、参照距離計測部と、参照距離通知部とを有し、
上記参照方向取得部は、上記地図生成装置が通知した参照方向を取得し、
上記参照距離計測部は、上記参照方向取得部が取得した参照方向に基づいて、上記参照方向に存在する対象までの距離を計測し、
上記参照距離通知部は、上記第一の位置で上記参照距離計測部が計測した距離を第一参照距離として上記地図生成装置に対して通知し、上記第二の位置で上記参照距離計測部が計測した距離を第二参照距離として上記地図生成装置に対して通知することを特徴とする請求項１１に記載の地図生成システム。
【請求項１３】
上記計測装置は、更に、参照方向移動部を有し、
上記参照方向移動部は、上記参照方向取得部が取得した参照方向に基づいて、上記参照方向と同一または反対の方向へ上記計測装置を移動することを特徴とする請求項１２に記載の地図生成システム。
【請求項１４】
上記計測装置は、計測距離計測部を有し、
上記計測距離計測部は、複数の計測方向の各計測方向について、上記計測方向に存在する対象までの距離を計測して、複数の計測距離とし、
上記計測距離通知部は、上記第一の位置で上記計測距離計測部が計測した複数の計測距離を複数の第一計測距離として上記地図生成装置に対して通知し、上記第二の位置で上記計測距離計測部が計測した複数の計測距離を複数の第二計測距離として上記地図生成装置に対して通知することを特徴とする請求項１１乃至請求項１３のいずれかに記載の地図生成システム。
【請求項１５】
データを処理する処理装置を有するコンピュータが実行することにより、上記コンピュータが請求項１乃至請求項１０のいずれかに記載の地図生成装置として機能することを特徴とするコンピュータプログラム。
【請求項１６】
周辺環境の幾何学形状を計測する計測装置と、上記計測装置の計測結果に基づいて上記周辺環境の地図を生成する地図生成装置とを有する地図生成システムが、上記周辺環境の地図を生成する地図生成方法において、
上記計測装置が、第一の位置で上記周辺環境の幾何学形状を計測し、
上記地図生成装置が、上記計測装置が上記第一の位置で計測した計測結果に基づいて、上記周辺環境の幾何学形状を取得して、第一形状とし、
上記計測装置が、上記第一の位置と異なる第二の位置へ移動し、
上記地図生成装置が、上記計測装置が上記第一の位置から上記第二の位置へ移動した移動量を取得し、
上記計測装置が、上記第二の位置で上記周辺環境の幾何学形状を計測し、
上記地図生成装置が、上記計測装置が上記第二の位置で計測した計測結果に基づいて、上記周辺環境の幾何学形状を取得して、第二形状とし、
上記地図生成装置が、取得した移動量に基づいて、取得した第一形状と第二形状とを重ね合わせて合成し、
上記地図生成装置が、合成した合成結果に基づいて、上記周辺環境の地図を生成することを特徴とする地図生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、周辺環境の幾何学形状を計測して、周辺環境の地図を生成する地図生成装置及び地図生成システムに関する。
【背景技術】
【０００２】
レーザ光を用いて反射物までの距離を測定する装置（レーザ測距装置などと呼ばれる。）がある。また、レーザ測距装置のレーザ光を左右に振ることにより、様々な方向角にレーザ光を照射し、その方向角に存在する反射物までの距離を計測する装置（レーザスキャナなどと呼ばれる。）がある。レーザスキャナが計測した距離に基づいて、周辺環境の幾何学形状を取得することができる。
レーザスキャナの位置が固定されていると、その地点から見える範囲の幾何学形状しか取得できないので、レーザスキャナを移動させ、複数の地点で周辺環境の幾何学形状を取得し、取得した幾何学形状を繋ぎ合わせることにより、広範囲な環境地図を構築する。
【非特許文献１】平岡透、若松浩二、尾崎直人「屋内地図作成のための時系列レーザスキャナデータのロバストな重ね合わせ」、『写真測量とリモートセンシング』４６巻２号、３７〜４１ページ、社団法人日本写真測量学会、２００７年。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
複数の地点で取得した幾何学形状を繋ぎ合わせるにあたり、幾何学形状の位置合わせをする必要がある。例えば、複数の幾何学形状から同じ形状の部分を抽出し、抽出した部分が重なるように位置合わせをすることが考えられる。
しかし、例えば、長い廊下など、一つの地点で取得した幾何学形状が単純な直線である場合や、同じ間隔で柱が並んでいるなど、同じ形状の繰り返しがある場合、部分の形状を重ね合わせて位置合わせをするのは、困難な場合がある。
この発明は、例えば、上記のような課題を解決するためになされたものであり、部分の形状を重ね合わせて位置合わせをするのが困難な場合であっても、複数の幾何学形状を位置合わせして合成できるようにすることを目的とする。
【課題を解決するための手段】
【０００４】
この発明にかかる地図生成装置は、
周辺環境の幾何学形状を計測する計測装置の計測結果に基づいて、上記周辺環境の地図を生成する地図生成装置において、
データを処理する処理装置と、形状取得部と、移動量取得部と、形状合成部と、地図生成部とを有し、
上記形状取得部は、上記処理装置を用いて、上記計測装置が計測した計測結果に基づいて、上記周辺環境の幾何学形状を取得し、上記計測装置が第一の位置で計測した計測結果に基づいて取得した幾何学形状を第一形状とし、上記計測装置が上記第一の位置と異なる第二の位置へ移動して計測した計測結果に基づいて取得した幾何学形状を第二形状とし、
上記移動量取得部は、上記処理装置を用いて、上記計測装置が上記第一の位置から上記第二の位置へ移動した移動量を取得し、
上記形状合成部は、上記処理装置を用いて、上記移動量取得部が取得した移動量に基づいて、上記形状取得部が取得した第一形状と第二形状とを重ね合わせて合成し、
上記地図生成部は、上記処理装置を用いて、上記形状合成部が合成した合成結果に基づいて、上記周辺環境の地図を生成することを特徴とする。
【発明の効果】
【０００５】
この発明にかかる地図生成装置によれば、移動量取得部が取得した移動量に基づいて、形状取得部が取得した第一形状と第二形状とを、形状合成部が合成するので、形状取得部が取得した第一形状と第二形状とにおいて対応する点を見つけることが困難な場合であっても、第一形状と第二形状とを合成し、周辺環境の地図を生成することができる。
【発明を実施するための最良の形態】
【０００６】
実施の形態１．
実施の形態１について、図１〜図９を用いて説明する。
【０００７】
図１は、この実施の形態における地図生成システム８００の外観の一例を示す図である。
なお、配線等の細部は、省略している。
【０００８】
地図生成システム８００は、自走式のロボットである。地図生成システム８００は、周辺環境の幾何学形状を計測し、計測した計測結果に基づいて周辺環境の地図を生成する。ここで、周辺環境とは、例えば、屋外における地面、周辺の建物、ガードレールなどの構造物などや、屋内における壁、天井、机、パーティション、テーブルなどの家具や、床の上に置いている瓶や缶など、地図生成システム８００の周辺に存在するあらゆる物をいい、周辺環境の地図とは、これら周辺環境の幾何学形状を、二次元あるいは三次元でモデル化したデータをいう。
なお、地図生成システム８００は、自走式のロボットではなく、人間が手で押すなどして移動する構成であってもよい。
【０００９】
地図生成システム８００は、移動台上板９５１、移動台中板９５２、移動台下板９５３、四つの車輪９５４〜９５７、可動台９６１、球面状支持体９６２、凹状支持体９６３、棒状支持体９６４、スリット状支持体９６５、二つの可動柱９６６，９６７、二つの傾斜計９６８，９６９、回転台９７１、短距離レーザ測距装置９８１、ミラー９８２、長距離レーザ測距装置９８４、カメラ９８６、六つのステッピングモータ９９１〜９９６、計算機８１０を有する。
【００１０】
ステッピングモータ９９１〜９９６は、計算機８１０が出力する制御信号を入力し、入力した制御信号により指定された角変位量だけ任意の方向に回転する。
【００１１】
移動台上板９５１、移動台中板９５２、移動台下板９５３は、例えば、スペーサーなどにより互いに平行に固定されている。
車輪９５４は、移動台下板９５３上に固定されたステッピングモータ９９１に接続固定されていて、ステッピングモータ９９１の回転に伴って回転する。車輪９５５も同様に、移動台下板９５３上に固定されたステッピングモータ９９２に接続固定されていて、ステッピングモータ９９２の回転に伴って回転する。ステッピングモータ９９１とステッピングモータ９９２とが同じ量回転することにより、地図生成システム８００は、真っ直ぐ前進あるいは後退し、ステッピングモータ９９１とステッピングモータ９９２とが異なる量回転することにより、地図生成システム８００は、左または右に方向転換する。
車輪９５６及び車輪９５７は、向きが自由に変えられるよう移動台上板９５１に固定されていて、それぞれ自由に回転する。
【００１２】
以下の説明において、車輪９５４及び車輪９５５が位置する側を「前」、車輪９５６及び車輪９５７が位置する側を「後」と呼ぶ。また、車輪９５４が位置する側を「右」、車輪９５５が位置する側を「左」と呼ぶ。
【００１３】
可動台９６１は、前後方向（ピッチ方向）及び左右方向（ロー方向）の角度を所定範囲内の任意の角度に固定することができる台である。
球面状支持体９６２は、半球状であり、可動台９６１の下側に固定されている。凹状支持体９６３は、上端に球面状支持体９６２と係合する凹部があり、移動台上板９５１の上側に固定されている。球面状支持体９６２と凹状支持体９６３とが係合することにより、可動台９６１を支持するとともに、球面状支持体９６２と凹状支持体９６３とが摺動することにより、可動台９６１の角度が変わっても、可動台９６１を支持し続ける。
棒状支持体９６４は、円柱棒状であり、可動台９６１の前端中央から前方向に突出している。スリット状支持体９６５は、上下方向に長いスリットを有する。スリット状支持体９６５のスリットに棒状支持体９６４を差し込むことにより、可動台９６１の角度が変化したとき、棒状支持体９６４が左右方向に移動するのを規制するとともに、棒状支持体９６４が上下方向へは自由に移動できるよう保持する。また、棒状支持体９６４が円柱棒状なので、可動台９６１は、スリット状支持体９６５に規制されることなく、ロー方向へ自由に回転できる。
可動柱９６６は、棒状であり、移動台上板９５１及び移動台中板９５２にそれぞれ設けられた貫通穴を貫通している。可動柱９６６は、移動台中板９５２上に固定されたステッピングモータ９９３の回転により、上下方向へ移動する。可動柱９６７も同様に棒状であり、移動台上板９５１及び移動台中板９５２にそれぞれ設けられた貫通穴を貫通し、移動台中板９５２上に固定されたステッピングモータ９９４の回転に伴って上下方向へ移動する。可動柱９６６は、可動台９６１の右前方を支持し、可動柱９６７は、可動台９６１の左前方を支持している。可動柱９６６と可動柱９６７とが同じ量移動することにより、可動台９６１のピッチ方向の角度を変えることができる。また、可動柱９６６と可動柱９６７とが異なる量移動することにより、可動台９６１のロー方向の角度を変えることができる。
なお、この例における可動台９６１の構成は一例であり、可動台９６１の角度を変える構成は、他の構成であってもよい。例えば、可動台９６１は、自動精密ステージや電動雲台といわれる機器を用いて構成してもよい。
可動台９６１の角度を変えられる範囲は、採用する機構や部品の配置などによって異なるが、例えば、ピッチ方向で＋３１度〜−４８度の範囲である。
【００１４】
傾斜計９６８及び傾斜計９６９は、可動台９６１上に固定されている。傾斜計９６８は、可動台９６１の左右方向の傾斜角度を測定し、傾斜計９６９は、可動台９６１の前後方向の傾斜角度を測定する。傾斜計９６８及び傾斜計９６９は、測定した傾斜角度を表わす信号を出力する。傾斜計９６８及び傾斜計９６９が出力した信号は、計算機８１０が入力する。計算機８１０は、入力した信号に基づいて、可動台９６１の角度を調整するなどの制御をする。例えば、計算機８１０は、入力した信号が表わす傾斜角度が０になるよう、ステッピングモータ９９３及びステッピングモータ９９４を回転させて可動柱９６６及び可動柱９６７を上下方向に移動させ、可動台９６１を水平に保つよう制御する。
【００１５】
回転台９７１は、可動台９６１の上に設置されていて、可動台９６１の上面に垂直な軸を中心に、所定範囲内の任意の角度に固定できる台である。回転台９７１は、可動台９６１に固定されたステッピングモータ９９５に接続されていて、ステッピングモータ９９５の回転に伴って回転する。
なお、この例における回転台９７１の構成は一例であり、回転台９７１の角度を変える構成は、他の構成であってもよい。また、可動台９６１と一体の機構により、三軸方向の角度を変えられる構成であってもよい。
回転台９７１の角度を変えられる範囲は、採用する機構や部品の配置などによって異なるが、例えば、±１５９度の範囲である。
【００１６】
短距離レーザ測距装置９８１は、パルス状のレーザ光を照射し、照射したレーザ光が周辺環境に反射した反射光を受光して、レーザ光を照射してから受光するまでの時間を測定することにより、レーザ光を照射した方向に存在する対象物までの距離を測定する装置である。短距離レーザ測距装置９８１は、例えば、最大４メートルまでの距離を測定可能である。短距離レーザ測距装置９８１は、測定した距離を表わす信号を出力する。短距離レーザ測距装置９８１が出力した信号は、計算機８１０が入力する。短距離レーザ測距装置９８１は、回転台９７１に固定されている。
ミラー９８２は、回転台９７１の中心軸上に設置されていて、可動台９６１の上面に垂直な軸を中心に、所定範囲内の任意の角度に回転可能に固定されている。ミラー９８２は、回転台９７１上に固定されたステッピングモータ９９６に接続されていて、ステッピングモータ９９６の回転に伴って回転する。ミラー９８２は、短距離レーザ測距装置９８１がレーザ光を照射する方向に位置し、短距離レーザ測距装置９８１が照射したレーザ光を可動台９６１の上面に平行な任意の方向へ反射するとともに、反射したレーザ光がその方向に存在する対象物に反射して戻ってきた反射光を反射して、短距離レーザ測距装置９８１に戻す。
これにより、回転台９７１全体を回転させることなく、短距離レーザ測距装置９８１は、可動台９６１の上面に平行な任意の方向に存在する対象物までの距離を測定することができる。
なお、この例における短距離レーザ測距装置９８１及びミラー９８２が任意の方向に存在する対象物までの距離を測定する構成は一例であり、他の構成であってもよい。例えば、レーザスキャナを用いて構成してもよい。
短距離レーザ測距装置９８１が距離を測定できる方向の範囲は、採用する機構や部品の配置などによって異なるが、例えば、左右１２０度の範囲であり、分解能は０．３６度〜１度である。
【００１７】
長距離レーザ測距装置９８４は、短距離レーザ測距装置９８１と同様に、所定の方向に存在する対象物までの距離を測定する。長距離レーザ測距装置９８４は、短距離レーザ測距装置９８１よりも精度が低い代わりに、長距離を測定することができる。長距離レーザ測距装置９８４は、例えば、３ミリメートルの精度で、１００メートルまでの距離を測定できる。長距離レーザ測距装置９８４は、測定した距離を表わす信号を出力する。長距離レーザ測距装置９８４が出力した信号は、計算機８１０が入力する。長距離レーザ測距装置９８４は、回転台９７１に固定されている。
長距離レーザ測距装置９８４には、ミラー９８２のような機構が附属していないので、長距離レーザ測距装置９８４は、可動台９６１の角度及び回転台９７１の向きによって定まる方向に存在する対象物までの距離を測定する。
【００１８】
カメラ９８６は、回転台９７１に固定されていて、長距離レーザ測距装置９８４が距離を測定する方向を中心とする範囲を撮影する。カメラ９８６は、撮影した画像を表わす信号を出力する。カメラ９８６が出力した信号は、計算機８１０が入力する。
【００１９】
計算機８１０は、移動台中板９５２に固定されていて、地図生成システム８００の各部が出力した信号を入力し、地図生成システム８００の各部を制御する。
なお、計算機８１０を、自走式のロボットである地図生成システム８００に搭載するのではなく、自走式のロボットとは別の場所に設置し、自走式のロボットには通信装置を搭載して、自走式のロボットに搭載された通信装置が、地図生成システム８００の各部が出力した信号を計算機８１０に対して送信し、計算機８１０が送信した制御信号を受信して、地図生成システム８００の各部に伝達する構成としてもよい。
【００２０】
図２は、この実施の形態における計算機８１０のハードウェア資源の一例を示す図である。
計算機８１０は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信装置９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ装置９０６、スキャナ装置９０７、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。通信装置９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力部、入力装置の一例である。また、通信装置９１５、表示装置９０１、プリンタ装置９０６などは、出力部、出力装置の一例である。
【００２１】
通信装置９１５は、ファクシミリ機９３２、電話器９３１、ＬＡＮ９４２等に接続されている。通信装置９１５は、ＬＡＮ９４２に限らず、インターネット９４０、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。インターネット９４０或いはＩＳＤＮ等のＷＡＮに接続されている場合、ゲートウェイ９４１は不用となる。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００２２】
上記プログラム群９２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００２３】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００２４】
図３は、この実施の形態における計算機８１０の機能ブロックの構成の一例を示すブロック構成図である。
計算機８１０は、大きく分けて、地図生成装置１００と計測装置２００との二つのブロックに分かれる。
計測装置２００は、地図生成システム８００に搭載されたハードウェアを用いて、周辺環境の幾何学形状を計測する。
地図生成装置１００は、計測装置２００が計測した計測結果に基づいて、周辺環境の地図を生成する。
【００２５】
計測装置２００は、計測距離計測部２１１、計測距離通知部２１２、参照方向取得部２２１、参照距離計測部２２２、参照距離通知部２２３、参照方向移動部２３１を有する。
【００２６】
計測距離計測部２１１は、短距離レーザ測距装置９８１を用いて、周辺環境の対象物までの距離を計測するブロックである。
計測距離計測部２１１は、ＣＰＵ９１１を用いて、ステッピングモータ９９６に対する制御信号を生成して出力し、ステッピングモータ９９６を回転させることにより、ミラー９８２を所定の方向に向ける。
計測距離計測部２１１は、ＣＰＵ９１１を用いて、短距離レーザ測距装置９８１に対する制御信号を生成して出力し、短距離レーザ測距装置９８１に距離の測定を開始させる。計測距離計測部２１１は、ＣＰＵ９１１を用いて、短距離レーザ測距装置９８１が出力した信号を入力し、短距離レーザ測距装置９８１が測定した距離（以下「計測距離」と呼ぶ。）を取得する。計測距離計測部２１１は、ＣＰＵ９１１を用いて、短距離レーザ測距装置９８１が計測距離を測定した方向（以下「計測方向」と呼ぶ。）と、短距離レーザ測距装置９８１が測定した計測距離とのペア（以下「計測距離データ」と呼ぶ。）を表わすデータを生成し、出力する。
計測距離計測部２１１は、ＣＰＵ９１１を用いて、ステッピングモータ９９６に対する制御信号を生成して出力し、ステッピングモータ９９６を回転させることにより、ミラー９８２を向きを変える。計測距離計測部２１１は、その方向について、短距離レーザ測距装置９８１に距離を測定させ、計測距離データを生成し、出力する。
これを、測定可能な全方向について繰り返すことにより、計測距離計測部２１１は、計測距離データを複数生成し、出力する。
【００２７】
計測距離通知部２１２は、ＣＰＵ９１１を用いて、計測距離計測部２１１が計測した計測距離を、地図生成装置１００に対して通知するブロックである。
計測距離通知部２１２は、ＣＰＵ９１１を用いて、計測距離計測部２１１が出力した複数の計測距離データを入力する。計測距離通知部２１２は、ＣＰＵ９１１を用いて、入力した複数の計測距離データを地図生成装置１００に対して通知する。
【００２８】
計測距離計測部２１１は、ＣＰＵ９１１を用いて、地図生成装置１００が通知した参照方向（長距離レーザ測距装置９８４が距離を測定すべき方向をいう。以下同じ。）を取得するブロックである。
参照方向取得部２２１は、ＣＰＵ９１１を用いて、地図生成装置１００が通知した参照方向データ（参照方向を表わすデータをいう。以下同じ。）を取得する。参照方向取得部２２１は、ＣＰＵ９１１を用いて、取得した参照方向データを出力する。
【００２９】
参照距離計測部２２２は、長距離レーザ測距装置９８４を用いて、参照方向に存在する対象物までの距離を計測するブロックである。
参照距離計測部２２２は、ＣＰＵ９１１を用いて、参照方向取得部２２１が出力した参照方向データを入力する。参照距離計測部２２２は、ＣＰＵ９１１を用いて、入力した参照方向データに基づいて、ステッピングモータ９９３〜９９５に対する制御信号を生成して出力し、ステッピングモータ９９３〜９９５を回転させて、可動台９６１の角度及び回転台９７１の向きを調整し、長距離レーザ測距装置９８４が距離を測定する方向を参照方向へ向ける。参照距離計測部２２２は、ＣＰＵ９１１を用いて、長距離レーザ測距装置９８４に対する制御信号を生成して出力し、長距離レーザ測距装置９８４に距離の測定を開始させる。参照距離計測部２２２は、ＣＰＵ９１１を用いて、長距離レーザ測距装置９８４が出力した信号を入力し、長距離レーザ測距装置９８４が測定した距離（以下「参照距離」と呼ぶ。）を取得する。参照距離計測部２２２は、ＣＰＵ９１１を用いて、取得した参照距離を表わすデータ（以下「参照距離データ」と呼ぶ。）を生成し、出力する。
【００３０】
なお、参照距離計測部２２２は、ＣＰＵ９１１を用いて、参照方向に存在する対象物までの距離だけでなく、参照方向と垂直な方向に存在する対象物までの距離（以下「横方向参照距離」と呼ぶ。）を、長距離レーザ測距装置９８４に測定させる構成としてもよい。その場合、参照距離計測部２２２は、ＣＰＵ９１１を用いて、長距離レーザ測距装置９８４が測定した横方向参照距離を取得し、取得した参照距離と横方向参照距離とを表わす参照距離データを生成し、出力する。
【００３１】
参照距離通知部２２３は、ＣＰＵ９１１を用いて、参照距離計測部２２２が計測した参照距離を、地図生成装置１００に対して通知するブロックである。
参照距離通知部２２３は、ＣＰＵ９１１を用いて、参照距離計測部２２２が出力した参照距離データを入力する。参照距離通知部２２３は、ＣＰＵ９１１を用いて、入力した参照距離データを地図生成装置１００に対して通知する。
【００３２】
参照方向移動部２３１は、車輪９５４〜９５７を用いて、地図生成システム８００を参照方向へ移動させるブロックである。
参照方向移動部２３１は、ＣＰＵ９１１を用いて、参照方向取得部２２１が出力した参照方向データを入力する。参照方向移動部２３１は、ＣＰＵ９１１を用いて、入力した参照方向データに基づいて、ステッピングモータ９９１，９９２に対する制御信号を生成して出力し、ステッピングモータ９９１，９９２を回転させて、車輪９５４，９５５を回転させ、地図生成システム８００を参照方向へ所定の距離（以下「移動距離」と呼ぶ。）移動させる。
参照方向移動部２３１が地図生成システム８００を移動させる移動距離は、移動後の位置で計測距離計測部２１１が再び計測距離を計測したとき、同じ対象物までの距離を重複して計測できる距離に設定する。短距離レーザ測距装置９８１が測定できる最大距離が４メートルの場合、例えば、その半分である２メートルを移動距離とする。
【００３３】
なお、参照方向移動部２３１は、地図生成システム８００を参照方向と逆の方向へ移動させる構成としてもよい。
【００３４】
地図生成装置１００が通知した参照方向を参照方向取得部２２１が取得すると、まず、参照距離計測部２２２が参照距離を計測する。次に、参照方向移動部２３１が、地図生成システム８００を参照方向へ移動させる。その後、参照距離計測部２２２が、再び参照距離を計測する。このように、参照距離を二回計測することにより、地図生成システム８００がどれだけ移動したかがわかる。以下、参照方向移動部２３１が地図生成システム８００を移動させる前の位置を「移動前位置」、移動させた後の位置を「移動後位置」、参照距離計測部２２２が移動前位置で計測した参照距離を「移動前参照距離」、参照距離計測部２２２が移動後位置で計測した参照距離を「移動後参照距離」と呼ぶ。参照距離通知部２２３は、移動前参照距離を表わす参照距離データと、移動後参照距離を表わす参照距離データとを、地図生成装置１００に対して通知する。
その後、計測装置２００では、計測距離計測部２１１が再び、短距離レーザ測距装置９８１を用いて、周辺環境の対象物までの距離を計測し、計測距離通知部２１２が、計測距離計測部２１１が計測した計測距離を、地図生成装置１００に対して通知する。
計測装置２００は、以上の動作を繰り返す。
【００３５】
地図生成装置１００は、計測距離取得部１１１、連続判定部１１２、計測距離分類部１１３、部分図形検出部１１４、形状取得部１１５、壁面検出部１２１、参照方向通知部１２２、参照距離取得部１３１、移動量取得部１３２、特徴抽出部１４１、合成方式選択部１４２、形状合成部１４３、地図生成部１５１、地図出力部１５２を有する。
【００３６】
計測距離取得部１１１は、ＣＰＵ９１１を用いて、計測装置２００が計測した計測距離を取得するブロックである。
計測距離取得部１１１は、ＣＰＵ９１１を用いて、計測装置２００が通知した複数の計測距離データを取得する。計測距離取得部１１１は、ＣＰＵ９１１を用いて、取得した複数の計測距離データを出力する。
【００３７】
連続判定部１１２は、ＣＰＵ９１１を用いて、計測距離の連続性を判定するブロックである。
計測距離の連続性とは、計測距離データが表わす方向と計測距離とのペアによって極座標で表わされる点（以下「計測点」と呼ぶ。）、すなわち、周辺環境において、短距離レーザ測距装置９８１が照射したレーザ光を反射した対象物の表面上の点が、同じ対象物に属するか、異なる対象物に属するかということである。同じ対象物に属するなら、計測距離は連続しているが、異なる対象物に属するなら、計測距離は非連続になる。
連続判定部１１２は、ＣＰＵ９１１を用いて、計測距離取得部１１１が出力した複数の計測距離データを入力する。連続判定部１１２は、ＣＰＵ９１１を用いて、入力した複数の計測距離データに基づいて、隣接する計測距離が連続しているか否かを判定する。連続判定部１１２は、ＣＰＵ９１１を用いて、判定した結果を表わすデータ（以下「連続判定データ」と呼ぶ。）を生成し、出力する。
【００３８】
図４は、この実施の形態における地図生成システム８００が計測する周辺環境８５０と、計測装置２００が出力する計測距離データ３１０との関係の一例を示す図である。
周辺環境８５０は、例えば、壁などである。計測可能範囲８６０は、地図生成システム８００が移動したり、可動台９６１の角度や回転台９７１の向きを変えたりせずに、ミラー９８２の動きだけで短距離レーザ測距装置９８１が距離を測定できる扇型の範囲である。
計測距離データ３１０は、計測方向を表わす方向データ３１１と計測距離を表わす距離データ３１２とのペアからなる。この例において、方向データ３１１は、左をマイナス、右をプラスとして、計測可能範囲８６０の中央方向からの角度で、計測方向を表わしている。
この例において、計測可能範囲８６０は、−６０度〜＋６０度の範囲であり、計測装置２００は、この範囲内を５度刻み（説明のため、実際よりも大きな刻み幅としている。）で、合計２５個の計測距離を計測する。したがって、計測装置２００は、２５個の計測距離データ３１０を出力する。
【００３９】
この例における計測距離データ３１０において、−５度〜＋５度方向には、計測可能範囲８６０内にレーザ光を反射する対象物が存在しないため、距離データ３１２が「９９９９．９」になっている。これは、短距離レーザ測距装置９８１が測定できる最大距離よりも大きい数字であり、計測可能範囲８６０内にレーザ光を反射する対象物が存在しないことを表わす距離データ３１２の一例である。
このように、計測可能範囲８６０内にレーザ光を反射する対象物が存在しない方向がある場合、連続判定部１１２は、その方向より左側の計測距離と、その方向より右側の計測距離とが、連続していないと判定する。
【００４０】
また、この例において、＋４０度方向の計測距離と、それに隣接する＋４５度方向の計測距離とを比較すると、それに近い方向の計測距離と比べて、急激に変化している。これは、＋４０度方向の計測距離が、手前にある対象物までの距離であるのに対し、＋４５度方向の計測距離が、その対象物よりも奥にある異なる対象物までの距離であることに起因している。
このように、隣接する二つの計測距離の差が大きい場合、連続判定部１１２は、その二つの計測距離が連続していないと判定し、隣接する二つの計測距離の差が小さい場合、連続判定部１１２は、その二つの計測距離が連続していると判定する。
連続判定部１１２が隣接する二つの計測距離の差が大きいか小さいかを判断する方式としては、例えば、二つの計測距離の差を所定の閾値を比較する方式がある。あるいは、二つの計測距離の比を所定の閾値と比較する方式を採用してもよい。また、連続判定部１１２は、隣接する三つの計測距離に基づいて、それぞれ隣接する二つの計測距離の差又は比を算出し、算出した二つの差又は比に基づいて、二つの差又は比の間の差又は比を算出し、所定の閾値と比較してもよい。
【００４１】
図３に戻り、計算機８１０の機能ブロックの説明を続ける。
【００４２】
計測距離分類部１１３は、ＣＰＵ９１１を用いて、連続判定部１１２の判定結果に基づいて、計測点を分類するブロックである。
計測距離分類部１１３は、ＣＰＵ９１１を用いて、連続判定部１１２が出力した連続判定データを入力する。計測距離分類部１１３は、ＣＰＵ９１１を用いて、入力した連続判定データに基づいて、計測距離が連続する方向を一つのグループ（以下「計測点群」と呼ぶ。）とし、計測装置２００が距離を計測した複数の方向を、一以上の計測点群に分類する。計測距離分類部１１３は、分類した結果を表わすデータ（以下「計測分類データ」と呼ぶ。）を生成し、出力する。
例えば、図４に示した例において、計測距離分類部１１３は、計測点を、点線で示した四つの計測点群８７０に分類する。
【００４３】
部分図形検出部１１４は、ＣＰＵ９１１を用いて、計測距離分類部１１３が分類した一以上の計測点群の各計測点群について、その計測点群に分類された計測点によって構成される幾何学図形（以下「部分図形」と呼ぶ。）を抽出するブロックである。
部分図形検出部１１４は、ＣＰＵ９１１を用いて、計測距離取得部１１１が出力した計測距離データと、計測距離分類部１１３が出力した計測分類データとを入力する。部分図形検出部１１４は、ＣＰＵ９１１を用いて、入力した計測分類データに基づいて、入力した計測距離データを計測点群ごとに分類し、分類したそれぞれの計測点群に属する計測距離データに基づいて、部分図形を抽出する。なお、部分図形検出部１１４は、一つの計測点群に属する計測距離データに基づいて、複数の部分図形を抽出する場合がある。部分図形検出部１１４は、ＣＰＵ９１１を用いて、抽出した部分図形を表わすデータ（以下「部分図形データ」と呼ぶ。）を生成し、出力する。
部分図形検出部１１４が部分図形を抽出する方式には、例えば、ハフ（Ｈｏｕｇｈ）変換を用いる方式がある。
【００４４】
ハフ変換を用いた部分図形抽出の原理について、簡単に説明する。
【００４５】
直交二次元座標（ｘ，ｙ）で表わされる平面上の直線は、方程式：ρ＝ｘ・ｃｏｓθ＋ｙ・ｓｉｎθで表わされる。ここで、ρは、原点と直線Ｌとの距離であり、θは、原点から直線Ｌに降ろした垂線とｘ軸とがなす角度である。したがって、直交二次元座標（ｘ，ｙ）で表わされる平面上の直線は、２つの変数の順序対（θ，ρ）で表わすことができる。これは、直交二次元座標（ｘ，ｙ）で表わされる平面上の直線に、直交二次元座標（θ，ρ）で表わされる平面上の一点が対応することを意味する。
計測点Ｐ１の座標を（ｘ１，ｙ１）とすると、計測点Ｐ１を通る直線（θ，ρ）について、ρ＝ｘ１・ｃｏｓθ＋ｙ１・ｓｉｎθが成り立つ。θ及びρは未知数なので、この方程式を直交二次元座標（θ，ρ）で表わされる平面上にプロットすると、サイン曲線になる。この曲線は、計測点Ｐ１を通る直線全体に対応する。このように、直交二次元座標（ｘ，ｙ）で表わされる平面上の一点を通る直線全体を、直交二次元座標（θ，ρ）で表わされる平面上の曲線に対応づける変換を、ハフ変換という。なお、ハフ変換は、直交二次元座標（ｘ，ｙ）で表わされる平面上の一点を通る円全体を、直交三次元座標（θ，ρ，１／ｒ）で表わされる空間上の曲面に対応づける変換に拡張するなど、直線以外の幾何学図形に適用することもできる。また、直交三次元座標（ｘ，ｙ，ｚ）で表わされる空間上の一点を通る平面群を、直交三次元座標（θ，φ，ρ）で表わされる空間上の曲面に対応づける変換に拡張するなど、三次元空間に適用することもできる。
複数の計測点を通る幾何学図形は、それぞれの計測点をハフ変換した曲線（曲面）すべてが交わる点に対応する。
そこで、ハフ変換した曲線（曲面）の交点を求めることにより、複数の計測点を通る幾何学図形を抽出することができる。
【００４６】
実際には、対象物の表面は数学的な幾何学図形と完全に一致するものではなく、計測距離には計測誤差があり、更に他の対象物などの雑音が存在するため、ハフ変換した曲線（曲面）すべてが一点で交わることはない。
そこで、多数決の原理に基づいて、ハフ変換した曲線（曲面）が、最も多く通る点を求めることにより、一番もっともらしい幾何学図形を抽出する。
このように、多数決の原理を導入することにより、ハフ変換を用いた図形抽出は、雑音に強いことが知られている。
【００４７】
例えば、部分図形検出部１１４は、ＣＰＵ９１１を用いて、分類した計測点群のなかから、計測点群を一つずつ順に選択する。部分図形検出部１１４は、ハフ変換後の平面（空間）を多数決投票用に複数の領域に分割し、分割した複数の領域それぞれに対する投票数を記憶するため、ＲＡＭ９１４を用いて、分割した複数の領域それぞれに対応する複数の記憶領域を確保する。部分図形検出部１１４は、ＣＰＵ９１１を用いて、確保した複数の記憶領域を初期化して、値「０」を記憶する。
部分図形検出部１１４は、ＣＰＵ９１１を用いて、選択した計測点群に属する計測距離データのなかから、計測距離データを一つずつ順に選択し、選択した計測距離データが表わす計測点の座標をハフ変換した曲線の方程式を求める。部分図形検出部１１４は、ＣＰＵ９１１を用いて、確保した複数の記憶領域のうち、ハフ変換した曲線が通る複数の点にそれぞれ対応する複数の記憶領域が記憶した値に「１」を加える。
部分図形検出部１１４は、ＣＰＵ９１１を用いて、選択した計測点群に属するすべての計測距離データについて、以上の処理を繰り返す。選択した計測点群に属するすべての計測距離データについて処理が終了したのち、部分図形検出部１１４は、ＣＰＵ９１１を用いて、確保した複数の記憶領域のうち、記憶した値が所定の値以上であって、かつ、記憶した値が大きい順に並べたとき上位から所定の順位内に入る記憶領域を抽出する。部分図形検出部１１４は、ＣＰＵ９１１を用いて、ハフ変換後の平面（空間）を分割した複数の領域のうち、抽出した記憶領域に対応する領域を求め、その領域の中心点に対応する幾何学図形を抽出する。
部分図形検出部１１４は、ＣＰＵ９１１を用いて、分類したすべての計測点群について、以上の処理を繰り返し、幾何学図形を抽出する。
【００４８】
ハフ変換を用いた幾何学図形の抽出方式によれば、周辺環境の幾何学形状が、複数の幾何学図形が複合した複雑な形状であっても、原理上、複数の幾何学図形を抽出することが可能である。しかし、多数決の原理に基づいて幾何学図形を抽出するため、全体の計測点の数と比較して、ある幾何学図形を構成する計測点の数が少な過ぎると、雑音に紛れてしまって抽出できない場合がある。
この実施の形態における地図生成装置１００は、計測点を複数の計測点群に分類して、分類した計測点群に属する計測点の数を少なくし、その計測点群によって構成される幾何学形状をなるべく単純化することにより、構成する計測点の数が比較的少ない幾何学図形であっても、抽出することができるという効果を奏する。
【００４９】
また、周辺環境が直交する壁などにより構成される屋内などに限定される場合には、部分図形検出部１１４は、次のような抽出方式を用いて、幾何学図形を抽出する構成であってもよい。
まず、分類した計測点群のなかから、計測点群を一つずつ順に選択し、ハフ変換した平面（空間）を分割した領域に対応する記憶領域を確保し、選択した計測点群に属するすべての計測距離データについて、ハフ変換した曲線が通る複数の点にそれぞれ対応する記憶領域が記憶した値に「１」を加えるところまでは、上述した方式と同様である。
そして、部分図形検出部１１４は、ＣＰＵ９１１を用いて、確保した複数の記憶領域のうち、記憶した値が最大である記憶領域を抽出する。次に、部分図形検出部１１４は、ＣＰＵ９１１を用いて、ハフ変換後の平面を分割した領域のうち、抽出した記憶領域に対応する領域のθの値に対して、θの値がπ／２異なる領域の付近の領域に対応する記憶領域のなかから、記憶した値が極大である記憶領域を抽出する。これは、壁のレイアウトが直交しているという特徴に着目したものである。これにより、傾きの似通った直線の過検出を防止するとともに、最初に検出した直線と直交する直線を構成する計測点が少ない場合であっても、確実に検出することができる。
【００５０】
なお、部分図形検出部１１４が幾何学図形を抽出する方式は、ハフ変換を用いた方式に限らず、他の方式であってもよい。その場合であっても、計測点を複数の計測点群に分類して、分類した計測点群に属する計測点の数を少なくし、その計測点群によって構成される幾何学形状をなるべく単純化することにより、構成する計測点の数が比較的少ない幾何学図形であっても、雑音に紛れることなく、抽出することができるという効果は、ハフ変換を用いた方式の場合と同様である。
【００５１】
次に、部分図形検出部１１４は、ＣＰＵ９１１を用いて、抽出した幾何学図形から、計測点によって構成される部分を切り出して、部分図形とする。例えば、抽出した幾何学図形が直線である場合、部分図形検出部１１４は、抽出した直線から、計測点によって構成される線分を切り出す。また、抽出した幾何学図形が円である場合、部分図形検出部１１４は、抽出した円から、計測点によって構成される円弧を切り出す。
【００５２】
部分図形検出部１１４が抽出した幾何学図形から部分図形を切り出す方式としては、例えば、以下のような方式がある。
【００５３】
部分図形検出部１１４が選択した計測点群について幾何学図形を抽出したのち、部分図形検出部１１４は、ＣＰＵ９１１を用いて、選択した計測点群に属する計測点の各計測点について、抽出した幾何学図形との間の距離を算出する。部分図形検出部１１４は、ＣＰＵ９１１を用いて、選択した計測点群に属する計測点のうちから、算出した距離が小さい計測点を抽出する。算出した距離が小さいか否かの判断基準は、例えば、算出した距離が所定の閾値より小さいか否かを判断基準としてもよいし、算出した距離全体の平均に対する比率が所定の閾値より小さいか否かを判断基準としてもよい。部分図形検出部１１４は、ＣＰＵ９１１を用いて、抽出した計測点の各計測点について、計測点から幾何学図形に降ろした垂線の足を求める。部分図形検出部１１４は、ＣＰＵ９１１を用いて、抽出した幾何学図形上で、求めた垂線の足が分布する範囲を切り出して、部分図形とする。
【００５４】
また、部分図形検出部１１４が選択した一つの計測点群について複数の幾何学図形を抽出した場合、隣接する部分図形は、複数の幾何学図形の交点で接合していると考えられる。そこで、部分図形検出部１１４は、ＣＰＵ９１１を用いて、抽出した複数の幾何学図形の各幾何学図形を、抽出した他の幾何学図形との交点で、複数の部分に分割する。部分図形検出部１１４は、ＣＰＵ９１１を用いて、分割した複数の部分のうち、求めた垂線の足が分布する部分を、部分図形とする。
【００５５】
なお、部分図形検出部１１４が抽出した幾何学図形から部分図形を切り出す方式は、他の方式でもよい。また、部分図形検出部１１４は、計測点によって構成される直線や円など範囲が限定されない幾何学図形を抽出してから、その後、線分や円弧など範囲が限定された部分図形を切り出すのではなく、計測点によって構成される線分や円弧など範囲の限定された幾何学図形を直接抽出する抽出方式を用いる構成としてもよい。
【００５６】
形状取得部１１５は、ＣＰＵ９１１を用いて、計測装置２００が計測した計測結果に基づいて抽出された周辺環境の幾何学形状を取得するブロックである。
形状取得部１１５は、ＣＰＵ９１１を用いて、部分図形検出部１１４が出力した部分図形データを入力する。形状取得部１１５は、ＣＰＵ９１１を用いて、入力した部分図形データに基づいて、周辺環境の幾何学形状を算出する。形状取得部１１５は、ＣＰＵ９１１を用いて、算出した幾何学形状を表わすデータ（以下「環境形状データ」と呼ぶ。）を生成し、出力する。
例えば、形状取得部１１５は、ＣＰＵ９１１を用いて、入力した部分図形データが表わす部分図形に基づいて、矛盾する点があるか否かを判定し、矛盾する点がある場合には矛盾点が解消するよう部分図形を修正するなどしたのち、部分図形を結合して、周辺環境の幾何学形状とする。部分図形が矛盾する場合とは、例えば、手前の部分図形（対象物）の後に隠れて見えないはずの部分図形（対象物）が検出されている場合などである。
【００５７】
壁面検出部１２１は、ＣＰＵ９１１を用いて、形状取得部１１５が取得した周辺環境の幾何学形状に基づいて、周辺環境に存在する壁面を検出するブロックである。
壁面検出部１２１は、ＣＰＵ９１１を用いて、形状取得部１１５が出力した環境形状データを入力する。壁面検出部１２１は、ＣＰＵ９１１を用いて、入力した環境形状データが表わす周辺環境の幾何学形状のなかから、線分を一つ選択する。選択の基準は、例えば、基準点（すなわち、地図生成システム８００が現在いる位置）からの距離に基づいて、最も近い線分を選択する構成としてもよいし、線分の長さに基づいて、最も長い線分を選択する構成としてもよい。あるいは、壁面検出部１２１は、基準点からの距離と、線分の長さとに基づいて、線分を選択する構成としてもよい。例えば、線分の長さが所定の閾値よりも長い線分のなかから、基準点からの距離が最も近い線分を選択する構成としてもよいし、基準点から距離と線分の長さとから所定の評価関数に基づいて評価値を算出し、算出した評価値が最も高い線分を選択する構成としてもよい。
周辺環境の幾何学形状に含まれる線分は、周辺環境に存在する壁面に対応するものと考えられる。基準点から最も近い線分を選択するということは、地図生成システム８００に最も近い壁面を検出することを意味する。また、最も長い線分を選択するということは、最も大きい壁面を検出することを意味する。
壁面検出部１２１は、ＣＰＵ９１１を用いて、選択した線分を表わすデータ（以下「壁面データ」と呼ぶ。）を出力する。
【００５８】
参照方向通知部１２２は、ＣＰＵ９１１を用いて、参照方向を計測装置２００に対して通知するブロックである。参照方向通知部１２２は、ＣＰＵ９１１を用いて、壁面検出部１２１が検出した壁面に基づいて、検出した壁面と略平行な方向を、参照方向とする。
参照方向通知部１２２は、ＣＰＵ９１１を用いて、壁面検出部１２１が出力した壁面データを入力する。参照方向通知部１２２は、ＣＰＵ９１１を用いて、入力した壁面データが表わす線分と平行な方向を算出する。参照方向通知部１２２は、ＣＰＵ９１１を用いて、算出した方向を表わすデータを生成し、参照方向データとする。参照方向通知部１２２は、ＣＰＵ９１１を用いて、生成した参照方向データを計測装置２００に対して通知する。
【００５９】
参照距離取得部１３１は、ＣＰＵ９１１を用いて、計測装置２００が計測した参照距離（移動前参照距離及び移動後参照距離）を取得するブロックである。
参照距離取得部１３１は、ＣＰＵ９１１を用いて、計測装置２００が通知した参照距離データを取得する。参照距離取得部１３１は、ＣＰＵ９１１を用いて、取得した参照距離データを出力する。
参照距離取得部１３１は、移動前参照距離を表わす参照距離データと、移動後参照距離を表わす参照距離データとを取得し、出力する。
【００６０】
移動量取得部１３２は、ＣＰＵ９１１を用いて、地図生成システム８００が移動した移動量を取得するブロックである。移動量取得部１３２は、ＣＰＵ９１１を用いて、参照距離取得部１３１が取得した参照距離に基づいて、移動量を算出する。
移動量取得部１３２は、ＣＰＵ９１１を用いて、参照距離取得部１３１が出力した二つの参照距離データを入力する。移動量取得部１３２は、ＣＰＵ９１１を用いて、入力した二つの参照距離データが表わす移動前参照距離と移動後参照距離との差を算出する。移動量取得部１３２は、ＣＰＵ９１１を用いて、算出した差を表わすデータ（以下「移動量データ」と呼ぶ。）を生成し、出力する。
【００６１】
なお、計測装置２００の参照距離計測部２２２が参照距離だけでなく横方向参照距離も計測する構成の場合、移動量取得部１３２は、ＣＰＵ９１１を用いて、参照方向の移動量だけでなく、参照方向に垂直な方向の移動量（以下「横方向移動量」と呼ぶ。）を算出する構成としてもよい。その場合、移動量取得部１３２は、ＣＰＵ９１１を用いて、入力した二つの参照距離データが表わす横方向参照距離の差を算出して横方向移動量とし、算出した参照方向の移動量と横方向移動量とを表わす移動量データを生成し、出力する。
【００６２】
特徴抽出部１４１は、ＣＰＵ９１１を用いて、形状取得部１１５が取得した周辺環境の幾何学形状から、幾何学形状の特徴を抽出するブロックである。
特徴抽出部１４１は、ＣＰＵ９１１を用いて、形状取得部１１５が出力した環境形状データを入力する。特徴抽出部１４１は、ＣＰＵ９１１を用いて、入力した環境形状データに基づいて、幾何学形状の特徴を抽出する。特徴抽出部１４１は、ＣＰＵ９１１を用いて、抽出した特徴を表わすデータ（以下「特徴データ」と呼ぶ。）を生成し、出力する。
【００６３】
図５は、この実施の形態における形状取得部１１５が取得した幾何学形状８８０と、その幾何学形状から特徴抽出部１４１が抽出する特徴との一例を示す図である。
【００６４】
特徴抽出部１４１が抽出する幾何学形状の特徴とは、例えば、出っ張った角、凹んだ角など、幾何学形状の一部の形状であって、複数の幾何学形状を照合する際に手掛かりとなる部分のことである。例えば、特徴抽出部１４１は、直線区間（Ｌ）、空間区間（Ｓ）、閉端点（Ｅ）、開端点（Ｕ）、凸角点（ＡまたはＢ）、凹角点（ＣまたはＤ）などを、幾何学形状の特徴として抽出する。直線区間とは、幾何学形状のうち直線状の部分のことである。空間区間とは、その方向の幾何学形状が途切れている部分のことである。閉端点及び開端点とは、直線区間などがその点で途切れていて、他の直線区間などと繋がっていない点のことである。このうち、開端点は、直線区間がその先へ繋がっている可能性がある点であり、閉端点は、それ以外の点である。凸角点とは、２つの直線区間が凸形状で繋がっている点である。凹角点とは、２つの直線区間が凹形状で繋がっている点である。
【００６５】
特徴抽出部１４１は、ＣＰＵ９１１を用いて、例えば、抽出した特徴を表わす文字を並べた文字列データを生成して、特徴データ３３０とする。この例において、特徴抽出部１４１は、ＣＰＵ９１１を用いて、抽出した特徴を表わす文字を、計測可能範囲８６０の左端である方向から、右端である方向へ向かう順に並べることにより、特徴データ３３０を生成する。
【００６６】
図６は、この実施の形態における特徴抽出部１４１が抽出する特徴とその特徴を表わす文字との関係の一例を示す図である。
この例において、直線区間を「Ｌ」、空間区間を「Ｓ」、直線の端が角になっていない点を「Ｅ」、短距離レーザ測距装置９８１の計測可能距離や計測可能方向の限界といったその先がどのようになっているかわからない点を「Ｕ」として表現する。また、直線の端点については、向かって左端で奥へ折れ曲がっている点を「Ａ」、向かって右端で奥へ折れ曲がっている点を「Ｂ」、向かって左端で手前に折れ曲がっている点を「Ｃ」、向かって右端で手前に折れ曲がっている点を「Ｄ」として表現する。また、区間と点とが複合した特徴として、右よりも左が手前にあるクランクを「Ｇ」、左より右が手前にあるクランクを「Ｈ」として表現する。
なお、特徴抽出部１４１は、両端が「Ａ」乃至「Ｅ」のいずれかである「Ｌ」及び「Ｓ」について、その長さも特徴として抽出し、その長さを表わす文字列を、文字「Ｌ」の次に挿入するなどして、直線区間や空間区間の長さに関する情報を含む特徴データ３３０を生成する構成としてもよい。
【００６７】
図３に戻り、計算機８１０の機能ブロックの説明を続ける。
【００６８】
合成方式選択部１４２は、ＣＰＵ９１１を用いて、特徴抽出部１４１が抽出した幾何学形状の特徴に基づいて、幾何学形状の合成方式を選択するブロックである。形状合成部１４３が幾何学形状を合成する合成方式には、大きく分けて特徴抽出部１４１が抽出した特徴に基づいて合成する方式と、移動量取得部１３２が取得した移動量に基づいて合成する方式とがある。
合成方式選択部１４２は、ＣＰＵ９１１を用いて、特徴抽出部１４１が出力した特徴データ３３０を入力する。合成方式選択部１４２は、ＣＰＵ９１１を用いて、入力した特徴データ３３０に基づいて、特徴抽出部１４１が抽出した特徴を手掛かりにして形状合成部１４３が幾何学形状を合成できるか否かを判定する。合成方式選択部１４２は、ＣＰＵ９１１を用いて、判定した結果に基づいて、特徴抽出部１４１が抽出した特徴を手掛かりにして形状合成部１４３が幾何学形状を合成できると判定した場合、特徴に基づく合成方式を選択し、特徴抽出部１４１が抽出した特徴を手掛かりにして形状合成部１４３が幾何学形状を合成できないと判定した場合、移動量に基づく合成方式を選択する。合成方式選択部１４２は、ＣＰＵ９１１を用いて、選択した合成方式を表わすデータ（以下「合成方式データ」と呼ぶ。）を生成し、出力する。
【００６９】
形状合成部１４３は、ＣＰＵ９１１を用いて、合成方式選択部１４２が選択した合成方式により、移動前位置で計測装置２００が計測した計測結果に基づいて形状取得部１１５が取得した周辺環境の幾何学形状（以下「移動前取得形状」と呼ぶ。）と、移動後位置で計測装置２００が計測した計測結果に基づいて形状取得部１１５が取得した周辺環境の幾何学形状（以下「移動後取得形状」と呼ぶ。）とを合成するブロックである。
【００７０】
特徴に基づく合成方式とは、特徴抽出部１４１が移動前取得形状から抽出した特徴（以下「移動前抽出特徴」と呼ぶ。）と、特徴抽出部１４１が移動後取得形状から抽出した特徴（以下「移動後抽出特徴」と呼ぶ。）とを比較して、特徴が共通する部分（以下「特徴共通部分」と呼ぶ。）を抽出し、抽出した特徴共通部分が重なるように、移動前取得形状と移動後取得形状とを合成する合成方式である。
【００７１】
形状合成部１４３は、ＣＰＵ９１１を用いて、合成方式選択部１４２が出力した合成方式データを入力する。形状合成部１４３は、ＣＰＵ９１１を用いて、入力した合成方式データに基づいて、合成方式選択部１４２が選択した合成方式を判定する。
【００７２】
特徴に基づく合成方式を合成方式選択部１４２が選択したと判定した場合、形状合成部１４３は、ＣＰＵ９１１を用いて、形状取得部１１５が出力した環境形状データ（移動前取得形状を表わす環境形状データ及び移動後取得形状を表わす環境形状データ）と、特徴抽出部１４１が出力した特徴データ（移動前抽出特徴を表わす特徴データ及び移動後抽出特徴を表わす特徴データ）とを入力する。
形状合成部１４３は、ＣＰＵ９１１を用いて、入力した二つの特徴データに基づいて、特徴共通部分を抽出する。例えば、形状合成部１４３は、ＣＰＵ９１１を用いて、二つの特徴データに共通する部分文字列を探し、探した部分文字列に対応する特徴を、特徴共通部分とする。
形状合成部１４３は、ＣＰＵ９１１を用いて、抽出した特徴共通部分が重なるよう、入力した二つの環境形状データが表わす移動前取得形状と移動後取得形状とを合成する。例えば、形状合成部１４３は、ＣＰＵ９１１を用いて、移動前取得形状と移動後取得形状とのうちいずれかを平行移動・回転移動して、抽出した特徴共通部分の座標がほぼ一致するよう変換し、移動前取得形状と移動後取得形状とを重ね合わせて合成する。形状合成部１４３は、ＣＰＵ９１１を用いて、合成した幾何学形状を表わすデータ（以下「合成結果データ」と呼ぶ。）を出力する。
【００７３】
図７は、この実施の形態における計測装置２００が距離を計測した計測可能範囲８６０と、形状取得部１１５が取得した周辺環境の幾何学形状８８０と、特徴抽出部１４１が抽出した幾何学形状の特徴との一例を示す図である。
この例において、地図生成システム８００は、図４に示した例と同じ環境内で、図４での計測位置から少し移動した位置に存在し、周辺環境の幾何学形状を計測している。特徴に基づく合成方式による具体例として、図４に示した地図生成システム８００の位置を移動前位置、図７に示した地図生成システム８００の位置を移動後位置として、形状合成部１４３がどのように移動前取得形状と移動後取得形状とを合成するかを説明する。
【００７４】
図８は、この実施の形態における形状合成部１４３が移動前取得形状と移動後取得形状とを合成する様子を模式的に表わした図である。
この図において、左側の列には、移動前位置での計測結果に基づく周辺環境の幾何学形状８８０、特徴データ３３０及び特徴点８９０を示し、右側の列には、移動後位置での計測結果に基づく周辺環境の幾何学形状８８０、特徴データ３３０及び特徴点８９０を示している。ここで、特徴点８９０とは、形状合成部１４３が抽出した特徴共通部分のうち、種別が「点」であるものをいう。
【００７５】
形状合成部１４３は、ＣＰＵ９１１を用いて、移動前位置にかかる特徴データ３３０と、移動後位置にかかる特徴データ３３０とを比較して、一致する部分文字列を探す。部分文字列が一致するか否かの判断基準は、例えば、以下のとおりである。
【００７６】
直線区間「Ｌ」と直線区間「Ｌ」とは、一致するものとして扱う。直線区間「Ｌ」の長さを表わす情報が両方の特徴データに含まれている場合、直線区間「Ｌ」の長さを比較して、両者の差が所定の閾値以下である場合のみ、両者が一致するものとして扱い、そうでない場合は、一致しないものとして扱う。
凸角点「Ａ」「Ｂ」と凸角点「Ａ」「Ｂ」及び閉端点「Ｅ」とは、一致するものとして扱う。同じ形状が、見る角度や位置によって、凸角点に見える場合と閉端点に見える場合とがあるからである。
凹角点「Ｃ」「Ｄ」と凹角点「Ｃ」「Ｄ」とは、一致するものとして扱う。
開端点「Ｕ」は、任意の部分文字列と一致するものとして扱う。見る角度や位置によって、見えていなかった部分が見えるようになる場合があり、その部分がどのような形状であるか予測できないからである。空間区間「Ｓ」も、開端点「Ｕ」と同様、任意の部分文字列と一致するものとして扱う。
【００７７】
形状合成部１４３は、ＣＰＵ９１１を用いて、例えば、上記のような判断基準に基づいて、二つの特徴データ３３０を比較して、一致する部分文字列を抽出する。
形状合成部１４３は、ＣＰＵ９１１を用いて、抽出した部分文字列のなかから、位置を特定できる特徴点８９０を抽出する。なお、形状合成部１４３は、開端点「Ｕ」は抽出しない。開端点「Ｕ」は、たまたま見える範囲の端であるにすぎず、見る角度や位置によって、位置が変化するからである。
【００７８】
形状合成部１４３は、ＣＰＵ９１１を用いて、抽出した特徴点８９０に基づいて、移動後位置にかかる特徴点８９０を平行移動及び回転移動して、移動前位置にかかる特徴点８９０との間の距離が最小になる平行移動量及び回転角度を算出する。形状合成部１４３は、ＣＰＵ９１１を用いて、例えば、最小二乗法などにより、平行移動量及び回転角度を算出する。
形状合成部１４３は、ＣＰＵ９１１を用いて、算出した平行移動量及び回転角度に基づいて、移動後位置にかかる幾何学形状８８０を平行移動及び回転移動して、移動前位置にかかる幾何学形状８８０と位置を揃え、二つの幾何学形状８８０を合成する。
【００７９】
なお、形状合成部１４３は、形状取得部１１５が取得した幾何学形状を合成するのではなく、計測距離取得部１１１が取得した距離データが表わす計測点を、算出した平行移動量及び回転角度に基づいて座標変換して合成する構成としてもよい。その場合、形状合成部１４３は、ＣＰＵ９１１を用いて、座標変換した計測点を表わすデータを合成結果データとして出力する構成としてもよいし、連続判定部１１２〜形状取得部１１５と同様の処理により、座標変換して合成した計測点から幾何学形状を抽出し、抽出した幾何学形状を、合成結果データとして出力する構成としてもよい。
【００８０】
次に、移動量に基づく合成方式について説明する。
移動量に基づく合成方式とは、移動量取得部１３２が取得した移動量に基づいて、移動前取得形状と移動後取得形状との間の対応関係を判定し、その判定結果に基づいて、移動前取得形状と移動後取得形状とを合成する合成方式である。
例えば、形状取得部１１５が取得した幾何学形状が、真っ直ぐな直線のみである場合や、同じ形状の繰り返しである場合、特徴に基づく合成方式では、正しく合成できない場合がある。そのような場合に、合成方式選択部１４２は、移動量に基づく合成方式を選択する。
【００８１】
移動量に基づく合成方式を合成方式選択部１４２が選択したと判定した場合、形状合成部１４３は、ＣＰＵ９１１を用いて、形状取得部１１５が出力した環境形状データ（移動前取得形状を表わす環境形状データ及び移動後取得形状を表わす環境形状データ）と、移動量取得部１３２が出力した移動量データとを入力する。
形状合成部１４３は、ＣＰＵ９１１を用いて、入力した移動量データに基づいて、移動後位置にかかる幾何学形状の平行移動量及び回転角度を算出する。形状合成部１４３は、ＣＰＵ９１１を用いて、算出した平行移動量及び回転角度に基づいて、入力した環境形状データが表わす移動後位置にかかる幾何学形状を平行移動及び回転移動する。形状合成部１４３は、ＣＰＵ９１１を用いて、入力した環境形状データが表わす移動前位置にかかる幾何学形状と、平行移動及び回転移動した移動後位置にかかる幾何学形状とを合成する。
形状合成部１４３は、ＣＰＵ９１１を用いて、合成した幾何学形状を表わす合成結果データを出力する。
【００８２】
このように、特徴抽出部１４１が抽出した特徴に基づいて、特徴に基づく合成方式と、移動量に基づく合成方式とのうちから合成方式選択部１４２が合成方式を選択し、合成方式選択部１４２が選択した合成方式にしたがって形状合成部１４３が幾何学形状を合成するので、それぞれの合成方式の利点を生かした合成をすることができる。
特に、形状取得部１１５が取得した幾何学形状が複雑である場合など、対応する特徴点を発見することが容易な場合には、合成方式選択部１４２が、特徴に基づく合成方式を選択することにより、二つの幾何学形状を正確に合成することができる。
逆に、形状取得部１１５が取得した幾何学形状が単純である場合など、対応する特徴点を発見することが困難な場合には、合成方式選択部１４２が、移動量に基づく合成方式を選択することにより、対応する特徴点を見つけることなく、二つの幾何学形状を合成することができる。
【００８３】
なお、特徴に基づく合成方式は、移動前位置と移動後位置との間の位置関係が不明であっても移動前取得形状と移動後取得形状とを合成できる。したがって、形状合成部１４３は、ＣＰＵ９１１を用いて、他の地図生成装置１００の形状取得部１１５が取得した幾何学形状を入力し、形状取得部１１５が取得した幾何学形状と、入力した幾何学形状とを合成する構成としてもよい。
【００８４】
なお、上述した合成方式は一例であり、形状合成部１４３は、他の合成方式により、幾何学形状を合成してもよい。
【００８５】
例えば、形状取得部１１５が取得した幾何学形状が、閉端点のない直線のみから構成されている場合、形状合成部１４３は、ＣＰＵ９１１を用いて、形状取得部１１５が出力した二つの環境形状データに基づいて、移動前位置における幾何学形状を構成する直線と、移動後位置における幾何学形状を構成する直線とがなす角度を算出し、算出した角度を、移動後位置にかかる幾何学形状の回転角度とする。形状合成部１４３は、ＣＰＵ９１１を用いて、移動量取得部１３２が出力した移動量データに基づいて、移動後位置にかかる幾何学形状の平行移動量を算出する。形状合成部１４３は、ＣＰＵ９１１を用いて、算出した平行移動量及び回転角度に基づいて、移動後位置にかかる幾何学形状を平行移動及び回転移動する。形状合成部１４３は、ＣＰＵ９１１を用いて、
移動前位置における幾何学形状を構成する直線と、平行移動及び回転移動した移動後位置における幾何学形状を構成する直線が一致したか否かを判定する。二つの直線が一致していない場合であっても、二つの直線は平行になっている。そこで、二つの直線が一致していないと判定した場合、形状合成部１４３は、ＣＰＵ９１１を用いて、二つの直線の間の距離を算出する。形状合成部１４３は、ＣＰＵ９１１を用いて、算出した距離に基づいて、平行移動及び回転移動した移動後位置における幾何学形状を更に平行移動して、二つの直線を一致させる。形状合成部１４３は、ＣＰＵ９１１を用いて、移動前位置における幾何学形状と、直線を一致させた移動後位置における幾何学形状とを合成する。
【００８６】
また、形状取得部１１５が取得した幾何学形状が、同じ形状の繰り返しから構成されている場合、形状合成部１４３は、ＣＰＵ９１１を用いて、移動量取得部１３２が出力した移動量データに基づいて、移動後位置にかかる幾何学形状の平行移動量及び回転角度を算出する。形状合成部１４３は、ＣＰＵ９１１を用いて、算出した平行移動量及び回転角度に基づいて、移動後位置における幾何学形状を平行移動及び回転移動する。形状合成部１４３は、ＣＰＵ９１１を用いて、特徴抽出部１４１が出力した二つの特徴データ３３０に基づいて、一致する部分文字列を抽出する。幾何学形状が同じ形状の繰り返しなので、一致する部分文字列が複数存在し、どの特徴点がどの特徴点に対応するか判定できない場合がある。その場合、形状合成部１４３は、ＣＰＵ９１１を用いて、移動前位置における幾何学形状と、平行移動及び回転移動した移動後位置における幾何学形状とに基づいて、対応する可能性のある特徴点の間の距離を算出し、算出した距離が最も近いものを、対応する特徴点と判定する。形状合成部１４３は、ＣＰＵ９１１を用いて、移動後位置にかかる特徴点８９０を平行移動及び回転移動して、対応する特徴点の間の距離が最小になる平行移動量及び回転角度を算出する。形状合成部１４３は、ＣＰＵ９１１を用いて、算出した平行移動量及び回転角度に基づいて、平行移動及び回転移動した移動後位置にかかる幾何学形状を更に平行移動及び回転移動する。形状合成部１４３は、ＣＰＵ９１１を用いて、移動前位置にかかる幾何学形状と、更に平行移動及び回転移動した移動後位置にかかる幾何学形状とを合成する。
【００８７】
なお、移動量取得部１３２が参照方向の移動量だけでなく横方向移動量を取得する構成の場合、形状合成部１４３は、ＣＰＵ９１１を用いて、入力した移動量データに基づいて、参照方向の移動量と横方向移動量とを取得し、取得した参照方向の移動量と横方向移動量とに基づいて、移動後位置にかかる幾何学形状の平行移動量を算出してもよい。
【００８８】
このように、特徴抽出部１４１が抽出した特徴に基づいて、特徴に基づく合成方式と移動量に基づく合成方式とを組み合わせた合成方式やその他の様々な合成方式のうちから合成方式選択部１４２が合成方式を選択し、合成方式選択部１４２が選択した合成方式にしたがって形状合成部１４３が幾何学形状を合成するので、それぞれの合成方式の利点を生かした合成をすることができる。
【００８９】
図３に戻り、計算機８１０の機能ブロックの説明を続ける。
【００９０】
地図生成部１５１は、ＣＰＵ９１１を用いて、形状合成部１４３が合成した合成結果に基づいて、周辺環境の地図を生成するブロックである。
地図生成部１５１は、ＣＰＵ９１１を用いて、形状合成部１４３が出力した合成結果データを入力する。地図生成部１５１は、ＣＰＵ９１１を用いて、入力した合成結果データに基づいて、周辺環境全体の幾何学形状を取得し、取得した幾何学形状に基づいて、周辺環境の地図を生成する。地図生成部１５１は、ＣＰＵ９１１を用いて、生成した地図を表わすデータ（以下「環境地図データ」と呼ぶ。）を生成し、出力する。
【００９１】
地図出力部１５２は、ＣＰＵ９１１を用いて、地図生成部１５１が生成した地図を出力するブロックである。
地図出力部１５２は、ＣＰＵ９１１を用いて、地図生成部１５１が出力した環境地図データを入力する。地図出力部１５２は、例えば、ＬＣＤなどの表示装置９０１を用いて、入力した環境地図データが表わす地図を表示し、あるいは、通信装置９１５を用いて、入力した環境地図データを、他のコンピュータなどに対して送信するなどして、地図生成部１５１が生成した地図を出力する。
【００９２】
次に、動作について説明する。
【００９３】
図９は、この実施の形態における地図生成システム８００が周辺環境の地図を生成する地図生成処理の流れの一例を示すフローチャート図である。
地図生成処理は、計測距離計測工程Ｓ６１１、移動前参照距離計測工程Ｓ６１２、参照方向移動工程Ｓ６１３、移動後参照距離計測工程Ｓ６１４、形状取得工程Ｓ６２１、特徴抽出工程Ｓ６２２、形状合成工程Ｓ６２３、壁面検出工程Ｓ６２４、移動量取得工程Ｓ６２５、地図生成工程Ｓ６２６を有する。
【００９４】
計測装置２００では、計測距離計測工程Ｓ６１１において、計測距離計測部２１１が、短距離レーザ測距装置９８１を用いて、計測距離を計測する。計測距離通知部２１２は、ＣＰＵ９１１を用いて、計測距離計測部２１１が計測した計測距離を、計測距離取得部１１１に対して通知する。
【００９５】
地図生成装置１００では、形状取得工程Ｓ６２１において、計測距離取得部１１１が、ＣＰＵ９１１を用いて、計測距離計測工程Ｓ６１１で計測距離通知部２１２が通知した計測距離を取得する。連続判定部１１２は、ＣＰＵ９１１を用いて、計測距離取得部１１１が取得した計測距離に基づいて、計測点の連続性を判定する。計測距離分類部１１３は、ＣＰＵ９１１を用いて、連続判定部１１２が判定した判定結果に基づいて、計測点を計測点群に分類する。部分図形検出部１１４は、ＣＰＵ９１１を用いて、計測距離分類部１１３が分類した計測点群ごとに、部分図形を抽出する。形状取得部１１５は、ＣＰＵ９１１を用いて、部分図形検出部１１４が抽出した部分図形に基づいて、周辺環境の幾何学形状を取得する。
【００９６】
地図生成装置１００では、特徴抽出工程Ｓ６２２において、特徴抽出部１４１が、ＣＰＵ９１１を用いて、形状取得工程Ｓ６２１で形状取得部１１５が取得した幾何学形状に基づいて、幾何学形状の特徴を抽出する。
【００９７】
その後、地図生成装置１００は、ＣＰＵ９１１を用いて、形状取得工程Ｓ６２１で形状取得部１１５が幾何学形状を取得したのが１回目であるか、２回目以降であるかを判定する。１回目である場合、合成すべき幾何学形状が存在しないので、地図生成装置１００は、移動量取得工程Ｓ６２５へ進む。２回目以降である場合、今回取得した幾何学形状を前回取得した幾何学形状と合成できるので、地図生成装置１００は、形状合成工程Ｓ６２３へ進む。
【００９８】
形状合成工程Ｓ６２３において、合成方式選択部１４２は、ＣＰＵ９１１を用いて、特徴抽出工程Ｓ６２２で特徴抽出部１４１が抽出した特徴に基づいて、合成方式を選択する。形状合成部１４３は、ＣＰＵ９１１を用いて、合成方式選択部１４２が選択した合成方式に基づいて、形状取得工程Ｓ６２１で形状取得部１１５が前回取得した幾何学形状と今回取得した幾何学形状とを合成する。
【００９９】
壁面検出工程Ｓ６２４において、壁面検出部１２１は、ＣＰＵ９１１を用いて、形状取得工程Ｓ６２１で形状取得部１１５が取得した幾何学形状に基づいて、周辺環境に存在する壁面を検出する。参照方向通知部１２２は、ＣＰＵ９１１を用いて、壁面検出部１２１が検出した壁面と平行な方向を参照方向として、参照方向取得部２２１に対して通知する。
【０１００】
計測装置２００では、移動前参照距離計測工程Ｓ６１２において、参照方向取得部２２１が、ＣＰＵ９１１を用いて、壁面検出工程Ｓ６２４で参照方向通知部１２２が通知した参照方向を取得する。参照距離計測部２２２は、長距離レーザ測距装置９８４を用いて、参照方向取得部２２１が取得した参照方向に基づいて、参照距離を計測する。参照距離通知部２２３は、ＣＰＵ９１１を用いて、参照距離計測部２２２が計測した参照距離を移動前参照距離として、参照距離取得部１３１に対して通知する。
【０１０１】
参照方向移動工程Ｓ６１３において、参照方向移動部２３１は、車輪９５４及び車輪９５５を用いて、移動前参照距離計測工程Ｓ６１２で参照方向取得部２２１が取得した参照方向へ向かって、地図生成システム８００を移動させる。
【０１０２】
移動後参照距離計測工程Ｓ６１４において、参照距離計測部２２２は、ＣＰＵ９１１を用いて、移動前参照距離計測工程Ｓ６１２で参照方向取得部２２１が取得した参照方向に基づいて、参照距離を計測する。参照距離通知部２２３は、ＣＰＵ９１１を用いて、参照距離計測部２２２が計測した参照距離を移動後参照距離として、参照距離取得部１３１に対して通知する。
【０１０３】
その後、計測装置２００は、計測距離計測工程Ｓ６１１に戻り、計測距離を計測する。
【０１０４】
地図生成装置１００では、移動量取得工程Ｓ６２５において、参照距離取得部１３１が、ＣＰＵ９１１を用いて、移動前参照距離計測工程Ｓ６１２で参照距離通知部２２３が通知した移動前参照距離と、移動後参照距離計測工程Ｓ６１４で参照距離通知部２２３が通知した移動後参照距離とを取得する。移動量取得部１３２は、ＣＰＵ９１１を用いて、参照距離取得部１３１が取得した移動前参照距離と移動後参照距離とに基づいて、地図生成システム８００の移動量を取得する。
【０１０５】
その後、地図生成装置１００は、ＣＰＵ９１１を用いて、計測が終了したか否かを判定する。計測が終了していない場合、地図生成装置１００は、形状取得工程Ｓ６２１に戻り、次の幾何学形状を取得する。計測が終了した場合、地図生成装置１００は、地図生成工程Ｓ６２６へ進む。
【０１０６】
地図生成工程Ｓ６２６において、地図生成部１５１は、ＣＰＵ９１１を用いて、形状合成工程Ｓ６２３で形状合成部１４３が合成した幾何学形状に基づいて、周辺環境の地図を生成する。地図出力部１５２は、ＣＰＵ９１１を用いて、地図生成部１５１が生成した地図を出力する。
【０１０７】
この実施の形態における地図生成装置１００は、周辺環境の幾何学形状を計測する計測装置２００の計測結果に基づいて、上記周辺環境の地図を生成する。
上記地図生成装置１００は、データを処理する処理装置（ＣＰＵ９１１）と、形状取得部１１５と、移動量取得部１３２と、形状合成部１４３と、地図生成部１５１とを有する。
上記形状取得部１１５は、上記処理装置（ＣＰＵ９１１）を用いて、上記計測装置２００が計測した計測結果に基づいて、上記周辺環境の幾何学形状を取得し、上記計測装置２００が第一の位置（移動前位置）で計測した計測結果に基づいて取得した幾何学形状を第一形状（移動前取得形状）とし、上記計測装置２００が上記第一の位置と異なる第二の位置（移動後位置）へ移動して計測した計測結果に基づいて取得した幾何学形状を第二形状（移動後取得形状）とする。
上記移動量取得部１３２は、上記処理装置（ＣＰＵ９１１）を用いて、上記計測装置２００が上記第一の位置から上記第二の位置へ移動した移動量を取得する。
上記形状合成部１４３は、上記処理装置（ＣＰＵ９１１）を用いて、上記移動量取得部１３２が取得した移動量に基づいて、上記形状取得部１１５が取得した第一形状（移動前取得形状）と第二形状（移動後取得形状）とを重ね合わせて合成する。
上記地図生成部１５１は、上記処理装置（ＣＰＵ９１１）を用いて、上記形状合成部１４３が合成した合成結果に基づいて、上記周辺環境の地図を生成する。
【０１０８】
この実施の形態における地図生成装置１００によれば、移動量取得部１３２が取得した移動量に基づいて、形状取得部１１５が取得した第一形状と第二形状とを、形状合成部１４３が合成するので、形状取得部１１５が取得した第一形状と第二形状とにおいて対応する点を見つけることが困難な場合であっても、第一形状と第二形状とを合成し、周辺環境の地図を生成することができる。
【０１０９】
この実施の形態における地図生成装置１００は、更に、壁面検出部１２１を有する。
上記壁面検出部１２１は、上記処理装置（ＣＰＵ９１１）を用いて、上記形状取得部１１５が取得した第一形状（移動前取得形状）に基づいて、上記周辺環境に存在する壁面を検出する。
上記移動量取得部１３２は、上記処理装置（ＣＰＵ９１１）を用いて、上記壁面検出部１２１が検出した壁面に基づいて、上記計測装置２００が上記第一の位置（移動前位置）から上記第二の位置（移動後位置）へ移動した移動量のうち、上記壁面と略平行な方向の移動量を取得して、壁面平行移動量とする。
上記形状合成部１４３は、上記処理装置（ＣＰＵ９１１）を用いて、上記移動量取得部１３２が取得した壁面平行移動量に基づいて、上記形状取得部１１５が取得した第一形状（移動前取得形状）と第二形状（移動後取得形状）とを重ね合わせて合成する。
【０１１０】
この実施の形態における地図生成装置１００によれば、移動量取得部１３２が取得した壁面平行移動量に基づいて、形状取得部１１５が取得した第一形状と第二形状とを、形状合成部１４３が合成するので、長い廊下など壁面に特徴がなく真っ直ぐな場合や、等間隔に柱が並んでいて同じ形状の繰り返しである場合などであっても、第一形状と第二形状とを合成し、周辺環境の地図を生成することができる。
なお、計測装置２００の移動量のうち、壁面に垂直な方向の移動量は、壁面からの距離が変わるので、第一形状と第二形状とを比較することにより求めることができる。形状合成部１４３は、壁面に平行な方向については、移動量取得部１３２が取得した壁面平行移動量に基づいて、第一形状と第二形状とを位置合わせし、壁面に垂直な方向については、第一形状と第二形状とを比較することにより位置合わせして、第一形状と第二形状とを合成する構成であってもよい。
【０１１１】
この実施の形態における地図生成装置１００は、更に、参照方向通知部１２２と、参照距離取得部１３１とを有する。
上記参照方向通知部１２２は、上記処理装置（ＣＰＵ９１１）を用いて、上記壁面検出部１２１が検出した壁面に基づいて、上記壁面と略平行な方向を、参照方向として上記計測装置２００に対して通知する。
上記参照距離取得部１３１は、上記処理装置（ＣＰＵ９１１）を用いて、上記参照方向通知部１２２が通知した参照方向に基づいて上記計測装置２００が計測した上記参照方向に存在する対象までの距離（参照距離）を取得し、上記計測装置２００が上記第一の位置（移動前位置）で計測した距離を第一参照距離（移動前参照距離）とし、上記計測装置が上記第二の位置で計測した距離を第二参照距離（移動後参照距離）とする。
上記移動量取得部１３２は、上記処理装置（ＣＰＵ９１１）を用いて、上記参照距離取得部１３１が取得した第一参照距離（移動前参照距離）と第二参照距離（移動後参照距離）との差を算出して、上記壁面平行移動量とする。
【０１１２】
この実施の形態における地図生成装置１００によれば、計測装置２００が計測した移動前参照距離と移動後参照距離との差を、移動量取得部１３２が算出して、壁面平行移動量とするので、車輪９５４〜９５７の回転数などにより移動量を算出するよりも、高い精度で壁面平行移動量を算出することができる。
【０１１３】
この実施の形態における地図生成装置１００は、更に、計測距離取得部１１１を有する。
上記計測距離取得部１１１は、上記処理装置（ＣＰＵ９１１）を用いて、上記計測装置２００が複数の計測方向の各計測方向について計測した上記計測方向に存在する対象までの距離を取得して、複数の計測距離とし、上記計測装置２００が上記第一の位置（移動前位置）で計測した複数の計測距離を複数の第一計測距離とし、上記計測装置２００が上記第二の位置（移動後位置）で計測した複数の計測距離を複数の第二計測距離とする。
上記形状取得部１１５は、上記処理装置（ＣＰＵ９１１）を用いて、上記計測距離取得部１１１が取得した複数の計測距離に基づいて、上記周辺環境の幾何学形状を算出し、上記複数の第一計測距離に基づいて算出した幾何学形状を上記第一形状（移動前取得形状）とし、上記複数の第二計測距離に基づいて算出した幾何学形状を上記第二形状（移動後取得形状）とする。
【０１１４】
この実施の形態における地図生成装置１００によれば、計測装置２００が各計測方向について計測した計測距離に基づいて、形状取得部１１５が周辺環境の幾何学形状を算出するので、周辺環境の幾何学形状を正確に算出することができる。
【０１１５】
この実施の形態における地図生成装置１００は、更に、計測距離分類部１１３と、部分図形検出部１１４とを有する。
上記計測距離分類部１１３は、上記処理装置（ＣＰＵ９１１）を用いて、上記計測距離取得部１１１が取得した複数の計測距離に基づいて、上記複数の計測距離を一以上の計測点群に分類する。
上記部分図形検出部１１４は、上記処理装置（ＣＰＵ９１１）を用いて、上記計測距離分類部１１３が分類した一以上の計測点群の各計測点群について、上記計測点群に分類された計測距離によって構成される幾何学図形を検出して、一以上の部分図形とする。
上記形状取得部１１５は、上記処理装置（ＣＰＵ９１１）を用いて、上記部分図形検出部１１４が検出した一以上の部分図形に基づいて、上記周辺環境の幾何学形状を算出する。
【０１１６】
この実施の形態における地図生成装置１００によれば、計測距離取得部１１１が取得した複数の計測距離を、計測距離分類部１１３が一以上の計測点群に分類し、分類された各計測点群について、部分図形検出部１１４が部分図形を検出し、検出した部分図形に基づいて形状取得部１１５が周辺環境の幾何学形状を算出するので、周辺環境の幾何学形状が複雑な場合であっても、周辺環境の幾何学形状を算出することができる。
【０１１７】
この実施の形態における地図生成装置１００は、更に、連続判定部１１２を有する。
上記連続判定部１１２は、上記処理装置（ＣＰＵ９１１）を用いて、上記複数の計測方向の各計測方向について、上記計測方向についての計測距離と、上記計測方向に隣接する計測方向についての計測距離とが連続しているか否かを判定する。
上記計測距離分類部１１３は、上記計測方向についての計測距離と上記計測方向に隣接する計測方向についての計測距離とが連続していると上記連続判定部１１２が判定した場合、上記処理装置（ＣＰＵ９１１）を用いて、上記計測方向についての計測距離と、上記計測方向と隣接する計測方向についての計測距離とを同一の計測点群に分類し、上記計測方向についての計測距離と上記計測方向に隣接する計測方向についての計測距離とが連続していないと上記連続判定部が判定した場合、上記処理装置（ＣＰＵ９１１）を用いて、上記計測方向についての計測距離と、上記計測方向に隣接する計測方向についての計測距離とを異なる計測点群に分類する。
【０１１８】
この実施の形態における地図生成装置１００によれば、計測距離の連続性を連続判定部１１２が判定し、連続していると判定した計測距離を、計測距離分類部１１３が一つの計測点群に分類するので、周辺環境の幾何学形状を、単純な部分図形に分割して、部分図形検出部１１４が検出することができる。
【０１１９】
この実施の形態における地図生成装置１００において、上記部分図形検出部１１４は、上記処理装置（ＣＰＵ９１１）を用いて、ハフ変換により、上記計測点群に分類された計測距離によって構成される幾何学図形を検出する。
【０１２０】
この実施の形態における地図生成装置１００によれば、部分図形検出部１１４がハフ変換を用いて幾何学図形を検出するので、雑音の影響を少なくすることができる。
【０１２１】
この実施の形態における地図生成装置１００は、更に、特徴抽出部１４１を有する。
上記特徴抽出部１４１は、上記処理装置（ＣＰＵ９１１）を用いて、上記形状取得部１１５が取得した幾何学形状に基づいて、上記幾何学形状の特徴を抽出し、上記第一形状（移動前取得形状）に基づいて抽出した特徴を第一特徴（移動前抽出特徴）とし、上記第二形状（移動後取得形状）に基づいて抽出した特徴を第二特徴（移動後抽出特徴）とする。
上記形状合成部１４３は、上記処理装置（ＣＰＵ９１１）を用いて、上記特徴抽出部１４１が抽出した第一特徴（移動前抽出特徴）と第二特徴（移動後抽出特徴）とに基づいて、上記形状取得部１１５が取得した第一形状（移動前取得形状）と第二形状（移動後取得形状）とを重ね合わせて合成する。
【０１２２】
この実施の形態における地図生成装置１００によれば、特徴抽出部１４１が抽出した第一特徴と第二特徴とに基づいて、形状合成部１４３が第一形状と第二形状とを合成するので、第一形状と第二形状とにおいて対応する点を見つけられる場合に、第一形状と第二形状とを正しく合成することができる。
【０１２３】
この実施の形態における地図生成装置１００において、上記形状合成部１４３は、上記処理装置（ＣＰＵ９１１）を用いて、上記特徴抽出部１４１が抽出した第一特徴（移動前抽出特徴）と第二特徴（移動後抽出特徴）との間に一致する部分（特徴共通部分）がある場合に、上記第一特徴と第二特徴とが一致する部分に対応する部分（特徴点）が重なるよう、上記第一形状（移動前取得形状）と第二形状（移動後取得形状）とを重ね合わせて合成する。
【０１２４】
この実施の形態における地図生成装置１００によれば、特徴抽出部１４１が抽出した第一特徴と第二特徴との間に一致する部分がある場合に、形状合成部１４３が、その部分に対応する部分が重なるよう、第一形状と第二形状とを重ね合わせて合成するので、第一形状と第二形状とが対応する点を手掛かりにして、第一形状と第二形状とを合成することができる。
【０１２５】
この実施の形態における地図生成装置１００は、更に、合成方式選択部１４２を有する。
上記合成方式選択部１４２は、上記処理装置（ＣＰＵ９１１）を用いて、上記特徴抽出部１４１が抽出した第一特徴（移動前抽出特徴）と第二特徴（移動後抽出特徴）とに基づいて、上記移動量取得部１３２が取得した移動量に基づく合成方式と、上記特徴抽出部１４１が抽出した特徴に基づく合成方式ととのなかから合成方式を選択する。
上記形状合成部１４３は、上記処理装置（ＣＰＵ９１１）を用いて、上記合成方式選択部１４２が選択した合成方式に基づいて、上記形状取得部１１５が取得した第一形状（移動前取得形状）と第二形状（移動後取得形状）とを重ね合わせて合成する。
【０１２６】
この実施の形態における地図生成装置１００によれば、特徴抽出部１４１が抽出した第一特徴と第二特徴とに基づいて、合成方式選択部１４２が合成方式を選択し、合成方式選択部１４２が選択した合成方式に基づいて、形状合成部１４３が第一形状と第二形状とを合成するので、周辺環境の幾何学形状に合った適切な合成方式により、第一形状と第二形状とを合成することができる。
【０１２７】
この実施の形態における地図生成システム８００は、周辺環境の幾何学形状を計測する計測装置２００と、上記地図生成装置１００とを有する。
【０１２８】
この実施の形態における地図生成システム８００によれば、計測装置２００が計測した計測結果に基づいて、地図生成装置１００が周辺環境の地図を生成するので、第一形状と第二形状とにおいて対応する点を見つけることが困難な場合であっても、第一形状と第二形状とを合成し、周辺環境の地図を生成することができる。
【０１２９】
この実施の形態における地図生成システム８００において、上記計測装置２００は、参照方向取得部２２１と、参照距離計測部２２２と、参照距離通知部２２３とを有する。
上記参照方向取得部２２１は、上記地図生成装置１００が通知した参照方向を取得する。
上記参照距離計測部２２２は、上記参照方向取得部２２１が取得した参照方向に基づいて、上記参照方向に存在する対象までの距離（参照距離）を計測する。
上記参照距離通知部２２３は、上記第一の位置（移動前位置）で上記参照距離計測部２２２が計測した距離を第一参照距離（移動前参照距離）として上記地図生成装置１００に対して通知し、上記第二の位置（移動後位置）で上記参照距離計測部２２２が計測した距離を第二参照距離（移動後参照距離）として上記地図生成装置１００に対して通知する。
【０１３０】
この実施の形態における地図生成システム８００によれば、参照方向取得部２２１が取得した参照方向に基づいて、参照距離計測部２２２が第一の位置及び第二の位置で参照距離を計測し、参照距離計測部２２２が計測した参照距離を、参照距離通知部２２３が地図生成装置１００に対して通知するので、地図生成装置１００は、通知された参照距離に基づいて、計測装置２００の移動量を取得することができる。
【０１３１】
この実施の形態における地図生成システム８００において、上記計測装置２００は、更に、参照方向移動部２３１を有する。
上記参照方向移動部２３１は、上記参照方向取得部２２１が取得した参照方向に基づいて、上記参照方向と同一または反対の方向へ上記計測装置２００を移動する。
【０１３２】
この実施の形態における地図生成システム８００によれば、参照方向移動部２３１が計測装置２００を参照方向と同一または反対の方向へ移動するので、参照距離計測部２２２が計測する第一参照距離及び第二参照距離が参照方向に存在する対象物の同じ位置までの距離となり、これに基づいて、地図生成装置１００が計測装置２００の移動量を正しく算出することができる。
【０１３３】
この実施の形態における地図生成システム８００において、上記計測装置２００は、計測距離計測部２１１を有する。
上記計測距離計測部２１１は、複数の計測方向の各計測方向について、上記計測方向に存在する対象までの距離を計測して、複数の計測距離とする。
上記計測距離通知部２１２は、上記第一の位置（移動前位置）で上記計測距離計測部２１１が計測した複数の計測距離を複数の第一計測距離として上記地図生成装置１００に対して通知し、上記第二の位置（移動後位置）で上記計測距離計測部２１１が計測した複数の計測距離を複数の第二計測距離として上記地図生成装置１００に対して通知する。
【０１３４】
この実施の形態における地図生成システム８００によれば、計測距離通知部２１２が各計測方向について計測した計測距離に基づいて、地図生成装置１００が周辺環境の幾何学形状を算出するので、周辺環境の幾何学形状を正確に算出することができる。
【０１３５】
この実施の形態における地図生成装置１００は、データを処理する処理装置（ＣＰＵ９１１）を有するコンピュータ（計算機８１０）を上記地図生成装置１００として機能させるコンピュータプログラムを、上記コンピュータ（計算機８１０）が実行することにより実現することができる。
【０１３６】
この実施の形態におけるコンピュータプログラムによれば、移動量取得部１３２が取得した移動量に基づいて、形状取得部１１５が取得した第一形状と第二形状とを、形状合成部１４３が合成するので、形状取得部１１５が取得した第一形状と第二形状とにおいて対応する点を見つけることが困難な場合であっても、第一形状と第二形状とを合成し、周辺環境の地図を生成する地図生成装置１００を実現することができる。
【０１３７】
この実施の形態における地図生成方法は、周辺環境の幾何学形状を計測する計測装置２００と、上記計測装置２００の計測結果に基づいて上記周辺環境の地図を生成する地図生成装置１００とを有する地図生成システム８００が、上記周辺環境の地図を生成する地図生成方法であって、以下の工程を有する。
上記計測装置２００が、第一の位置（移動前位置）で上記周辺環境の幾何学形状を計測する。
上記地図生成装置１００が、上記計測装置２００が上記第一の位置（移動前位置）で計測した計測結果に基づいて、上記周辺環境の幾何学形状を取得して、第一形状（移動前取得形状）とする。
上記計測装置２００が、上記第一の位置（移動前位置）と異なる第二の位置（移動後位置）へ移動する。
上記地図生成装置１００が、上記計測装置２００が上記第一の位置（移動前位置）から上記第二の位置（移動後位置）へ移動した移動量を取得する。
上記計測装置２００が、上記第二の位置（移動後位置）で上記周辺環境の幾何学形状を計測する。
上記地図生成装置１００が、上記計測装置２００が上記第二の位置（移動後位置）で計測した計測結果に基づいて、上記周辺環境の幾何学形状を取得して、第二形状（移動後取得形状）とする。
上記地図生成装置１００が、取得した移動量に基づいて、取得した第一形状（移動前取得形状）と第二形状（移動後取得形状）とを重ね合わせて合成する。
上記地図生成装置１００が、合成した合成結果に基づいて、上記周辺環境の地図を生成する。
【０１３８】
この実施の形態における地図生成方法によれば、地図生成装置１００が取得した移動量に基づいて、地図生成装置１００が取得した第一形状と第二形状とを、地図生成装置１００が合成するので、地図生成装置１００が取得した第一形状と第二形状とにおいて対応する点を見つけることが困難な場合であっても、第一形状と第二形状とを合成し、周辺環境の地図を生成することができる。
【０１３９】
実施の形態２．
実施の形態２について、図１０〜図１１を用いて説明する。
なお、実施の形態１で説明した地図生成システム８００と共通する部分については、同一の符号を付し、ここでは説明を省略する。
【０１４０】
地図生成システム８００の外観は、実施の形態１で説明したものとほぼ同様であるので、図１を用いて説明する。
【０１４１】
地図生成システム８００（環境地図取得装置）は、移動台（移動台上板９５１、移動台中板９５２、移動台下板９５３）に搭載されている。
移動台には、前方の左右に二つの前方車輪９５４，９５５が取り付けられ、後方の中心に一つの後方車輪が取り付けられている。
二つの前方車輪９５４，９５５には、ステッピングモータ９９１，９９２が実装されていて、計算機８１０が出力する制御信号にしたがって指定の角変位量だけ任意方向に回転する。また、前方車輪９５４，９５５には、回転計（図示せず）が取り付けられており、その回転計により検知された回転角度を計算機８１０に送信する。
後方車輪は、左右に曲がることが可能な車輪である。
【０１４２】
可動台９６１及び回転台９７１は、例えば、自動精密ステージや、電動雲台といわれる機器を用いて構成されており、移動台の上面部に固定されている。可動台９６１は、移動台の上面部に対する上下方向（ピッチ方向）と、進行方向へ向かう軸を中心とする左右方向（ロー方向）に回転することができる。
すなわち、可動台９６１は、計算機８１０が出力する制御信号にしたがって上下向き方向（ピッチ方向）又は進行方向を軸とした左右回転方向（ロー方向）に回転する。また、計算機８１０が可動台９６１を任意のピッチ角及び回転角で傾けることができるようにするために、可動台９６１の中心には、ピッチ方向の角度と、ロー方向の水平からの角度を検知する傾斜計９６８，９６９が設置されており、その傾斜計９６８，９６９により検知された角度を計算機８１０に送信する。
回転台９７１は、計算機８１０が出力した制御信号にしたがって上下方向を軸とした左右回転方向（アジマス方向）に任意の変位角だけ回転する。これにより、アジマス方向もピッチ方向及びロー方向と同様に、計算機８１０の指示の下で、任意の変位角だけ回転させることができる。この場合、任意の変位角とは、正面角度からの変位角である。
一例として、可動台９６１及び回転台９７１は、アジマス方向に±１５９度、ピッチ方向に＋３１度−４８度回転できる。
【０１４３】
レーザスキャナ（短距離レーザ測距装置９８１及びミラー９８２）は、可動台９６１及び回転台９７１の上面部に設置されており、可動台９６１及び回転台９７１のピッチ、ロー、アジマス回転に追従して向きを変える。
レーザスキャナは、レーザ光を照射する光源を中心にして、左右水平に回転することにより、レーザ光を走査角度範囲（レーザスキャナがレーザ光を向ける方向を変えられる面）で振り、レーザ光の反射光（物体に反射されたレーザ光）が戻ってくるまでの時間から反射物までの距離を測定するレーザ測距装置である。一例として、レーザスキャナは、例えば、進行方向左右１２０度の範囲を約０．３６度または約１度の分解能で、壁やドアといった構造物までの距離をスキャンデータとして取得する。測定可能距離は、例えば４０９５ミリメートルである。
【０１４４】
長距離計測器（長距離レーザ測距装置９８４）は、可動台９６１及び回転台９７１の上面部に設置されており、可動台９６１及び回転台９７１のピッチ、ロー、アジマス回転に追従して向きをかえる。長距離計測器は、１点の方向に突き当たる物体までの距離を計測する。一例として、長距離計測器は１００メートルの距離まで計測でき、精度は３ミリメートルである。
【０１４５】
カメラ９８６は、可動台９６１及び回転台９７１の上面部に設置されており、可動台９６１及び回転台９７１のピッチ、ロー、アジマス回転に追従して向きを変える。
【０１４６】
計算機８１０は、移動台の上面部に固定されており、前方車輪９５４，９５５及び後方車輪を制御して、移動台を前後左右や、向きの変更といった任意の位置、方向に動かす処理を実施するとともに、可動台９６１及び回転台９７１を任意のピッチ方向及びロー方向に動かす処理を実施する。
また、計算機８１０は、レーザスキャナにより測定された距離を示す距離データを収集し、その距離データから反射物の形状を特定する処理を実施する。
【０１４７】
図１０は、この実施の形態における地図生成システム８００（環境地図取得装置）の計算機８１０の詳細を示すブロック構成図である。
【０１４８】
参照データ収集部４１１は、レーザスキャナに測定処理を実施させる。参照データ記憶部４１２は、レーザスキャナが測定した測定結果である参照データを電子データとして蓄積する。
壁検出部４１３は、参照データから、周辺の壁の位置と壁の方向を検出して、方向変換部４１４へこれを電子データの形式で通知する。
方向変換部４１４は、可動台９６１及び回転台９７１を制御して、長距離計測器（長距離レーザ測距装置９８４）によるレーザ光の照射方向を壁と平行な方向へ変更する。同時に、回転量データ記憶部４１５は、可動台９６１のピッチ、ロール（アジマス）、ロー方向の回転角度を電子データとして記録する。
地図データ収集部４２１は、地図データを作成する元となる周辺の地図距離データをレーザスキャナを用いて取得する。地図距離データ記憶部４２２は、地図データ収集部４２１が取得した地図距離データを電子データとして記録する。
距離計測部４３１は、長距離の位置用距離データを長距離計測器（長距離レーザ測距装置９８４）を用いて取得する。位置用距離データ記憶部４３２は、距離計測部４３１が取得した位置用距離データを電子データとして記録する。
距離データ合成部４５１は、複数の地点で取得した地図距離データを合成して地図データを生成し、または地図データに追加する。地図データ記憶部４５２は、距離データ合成部４５１が生成・追加した地図データを記憶する。地図データ出力部４５３は、地図データ記憶部４５２が記憶した地図データを出力する。
移動部４４１は、例えば操作員の指示により、左右の駆動輪（車輪９５４，９５５）を別々に回転させることにより、前後方向または、左右旋回方向に地図生成システム８００（環境地図取得装置）を移動させる。移動量データ記憶部４４２は、移動部４４１が地図生成システム８００を移動させた移動量データを電子データとして記録する。
【０１４９】
次に、地図生成システム８００（環境地図取得装置）の動作の概略について、説明する。
【０１５０】
操作員は、地図表示や、地図生成システム８００（環境地図取得装置）に搭載したカメラ９８６の画像を確認しながら、地図生成システム８００（環境地図取得装置）の移動操作を行って移動させる。１回の移動距離は、移動前後で取得した地図距離データに同一区間が重複して計測できる距離とし、例えば、レーザスキャナの到達距離の半分のであるおおよそ２メートルとする。
【０１５１】
移動後の停止した状態で、地図生成システム８００（環境地図取得装置）は、参照データの取得、壁検出、可動台の向き変更、位置用距離データの計測、地図距離データの収集、距離データの合成による地図データの作成を自動で行うことにより、地図データの生成または、地図データの追加を行う。
【０１５２】
移動部４４１は、操作員の指示により、左右の駆動輪（車輪９５４，９５５）を指定速度で指定時間回転することにより移動する。左右の回転速度、回転方向を変えることにより旋回することができる。また、移動部４４１を自動化することにより、一定範囲の空間を操作員の操作がなくとも自動的に計測することができる。
【０１５３】
次に、各部の動作について、説明する。
【０１５４】
参照データ収集部４１１は、レーザスキャナに測定処理を実施させる。参照データ記憶部４１２は、測定結果である参照データを電子データとして蓄積する。
参照データ記憶部４１２は、参照データとして、角度１，距離１，角度２，距離２，・・・・，角度ｎ，距離ｎの数値を記録する。角度の差は一定であり、使用する機器により異なるが、例えば１度に１データである。また、参照データ記憶部４１２は、レーザ測距離装置に設置した傾斜計の測定結果に基づいて、水平であれば、参照距離データをそのまま記録し、水平でなければ、水平面に参照距離データを射影した距離を記録する。
【０１５５】
壁検出部４１３は、参照データから、周辺の壁の位置と壁の方向を検出して、方向変換部４１４へこれを電子データの形式で通知する。
壁検出部４１３は、スキャンデータ（参照データ）から周辺の壁を検知するために、スキャンデータが直線状に並んでいる部分を抽出する。直線抽出には、例えば、ハフ検出を用いる。
例えば、壁検出部４１３は、スキャンデータに含まれる点群に対してハフ変換を行い、ハフ平面上で投票する。壁検出部４１３は、投票数が多い順に１０点を選択し、ハフ逆変換により、スキャンデータの直線成分を求める。
【０１５６】
なお、未検出や過検出を防ぐため、壁検出部４１３は、次のようにして直線を検出してもよい。
未検出は、直線を構成する点の数が少ないと発生する。過検出は、壁の表面の細かな凹凸やレーザスキャナの測定誤差により、点群が厳密には直線に並ばずに蛇行しているので、投票するハフ平面上の点も分散することにより、複数の点への投票値がなされて発生する。
例えば、未検出をなくすため、開いたドアや曲がり角においてスキャンデータが途切れる特徴に着目し、壁検出部４１３は、スキャンデータを点同士の距離が一定距離以内の連結成分に分離する。これにより、個々の連結成分は、１方向の直線の壁か、直交する２つの曲がり角を含む。壁検出部４１３は、分離した個々の連結成分に対してハフ変換を実施する。これにより、投票数の少ない短い直線も検出できる。
また、過検出をなくすため、壁のレイアウトが直交している特徴に着目し、壁検出部４１３は、ハフ平面における投票数が最大の点（θ，ρ）をハフ逆変換した直線を抽出し、次に、この直線と直交する直線を抽出する。これにより、傾きの似通った直線の過検出を防止する。壁検出部４１３は、直交する直線として、Ｈｏｕｇｈ平面上の最大投票数になるθ値とπ／２差異のあるθ値において投票数が極大となる点（θ，ρ）を逆変換した直線を抽出する。
このように、壁検出部４１３は、連結成分に分割して直交する直線成分を抽出することにより、スキャンデータから全ての壁を直線成分として抽出できる。
【０１５７】
壁検出部４１３は、スキャンデータのうち、ロボット（地図生成システム８００）に最も近い点から抽出した直線の傾きを、ロボットの姿勢が直近の壁となす水平面の角度（以下「姿勢角」と呼ぶ。）とする。壁検出部４１３は、この姿勢角の値と、参照データを取得したときの傾斜計９６８，９６９のピッチ、ロー角を方向変換部４１４へ渡す。
【０１５８】
方向変換部４１４は、参照データを取得したときの傾斜計９６８，９６９のピッチ、ロー角を打ち消して水平になるように可動台９６１を回転させる。方向変換部４１４は、次に、ロボットが至近の壁となす角度を打ち消す方向に回転台９７１にアジマス回転を加える。
【０１５９】
地図データ収集部４２１は、レーザスキャナに測定処理を実施させる。地図距離データ記憶部４２２は、測定結果である地図距離データを電子データとして蓄積する。地図距離データ記憶部４２２は、地図距離データとして、角度１，距離１，角度２，距離２，・・・・，角度ｎ，距離ｎの数値を記録する。角度の差は一定であり、使用する機器により異なるが、例えば１度に１データである。
【０１６０】
距離計測部４３１は、位置用距離を計測する。位置用距離は、地図生成システム８００（環境地図取得装置）の進行方向に突き当たる物体までの距離である。位置用距離データ記憶部４３２は、距離計測部４３１が計測した位置用距離を電子データとして記録する。
なお、距離計測部４３１は、位置用距離として、壁と略平行な距離だけでなく、壁までの距離を計測してもよい。その場合、地図生成システム８００は、９０度異なる方向を向いた二つの長距離計測器（長距離レーザ測距装置９８４）を有していてもよいし、回転台９７１を９０度回転させることにより、１つの長距離計測器（長距離レーザ測距装置９８４）が、壁と略平行な距離と、壁までの距離とを計測してもよい。
【０１６１】
距離データ合成部４５１は、地図距離データを合成する。
図１１は、この実施の形態における距離データ合成部４５１が地図距離データを合成する距離データ合成処理の流れの一例を示すフローチャート図である。
まず、特徴抽出工程Ｓ６３１において、距離データ合成部４５１は、地図距離データから、特徴を抽出する。特徴照合工程Ｓ６３２において、距離データ合成部４５１は、抽出した特徴を照合することにより、他の地図距離データと接続できるかどうかを判断する。照合に成功した場合、特徴合成工程Ｓ６３３へ進み、距離データ合成部４５１は、抽出した特徴を用いて地図距離データを合成する。特徴同士が照合できない場合、距離合成工程Ｓ６３４へ進み、距離データ合成部４５１は、位置用距離データを用いて地図距離データを合成する。
【０１６２】
特徴抽出工程Ｓ６３１の処理は、例えば、以下のように行う。
地図距離データ同士を照合できるようにするため、距離データ合成部４５１は、地図距離データから、柱、ドア、曲がり角を検出する。柱は一定区間の凸形状であり、ドアは凹形状である。ドアが開いている場合や曲がり角は空間になる。距離データ合成部４５１は、地図距離データから、壁検出手法と同じ手法により直線を抽出して、直線と地図距離データの点の距離から凹凸特徴を抽出する。
抽出直線上に設定した基準点からの距離を横軸にとり、測定点と抽出直線の距離を縦軸にとると、連続する点は蛇行しているので、隣接する点を用いて傾きを求めると、傾きの変動が大きく、正確な凹凸を求めることができない。そこで、距離データ合成部４５１は、連続する複数の点における差分Δｘ、Δｈを用いて傾きを求める。距離データ合成部４５１は、傾きの大小により、点列が凹凸を表しているのか、蛇行しているのかを判断する。
【０１６３】
抽出した凹凸特徴の照合を容易にするため、距離データ合成部４５１は、特徴を文字記号に置き換えて文字列として表現する。例えば、距離データ合成部４５１は、直線区間をＬ、空間区間をＳ、直線の端が角になっていない点をＥ、レーザの到達距離限界や、スキャン範囲の最大値といったその先がどのようになっているかわからない点をＵとして表現する。また、直線の端点については、向かって左端で奥へ折れ曲がっている点をＡ、向かって右端で奥へ折れ曲がっている点をＢ、向かって左端で手前に折れ曲がっている点をＣ、向かって右端で手前に折れ曲がっている点をＤとする。また、右よりも左が手前にあるクランクをＧ、左よりも右が手前にあるクランクをＨとする。地図距離データの直線成分の方向は直行する２方向で、かつ、逆方向を区別すると４方向である。距離データ合成部４５１は、各方向に対して、反時計まわりに特徴の記号を並べて文字列とする。
例えば、反時計まわりの右側を下から上へ向かう方向を０方向とし、反時計まわりに９０度回転を２回施した上から下へ向かう方向を回転回数にあわせて２とし、距離データ合成部４５１は、回転回数と特徴文字から形状を表現する文字列を生成する。距離データ合成部４５１は、照合に必要な情報として、Ｌの長さと、Ｓの間隔も記録する。ただし、ＬやＳがＵに隣接している場合は、長さが定まらないので記録しない。
距離データ合成部４５１は、このようにして抽出した特徴の文字列に基づいて、特徴を照合する。
【０１６４】
特徴照合工程Ｓ６３２の処理は、例えば、以下のように行う。
距離データ合成部４５１は、長さの一致したＬまたはＳを起点として、左右の文字の照合を行う。ただし、凸形状の曲がり角を計測した地図距離データは、記号Ａ、Ｂのように凸形状が示す場合と、記号Ｅのように見切れて端点となる場合があるので、記号Ａ、Ｂは記号Ｅと対応付くとみなす。
【０１６５】
特徴合成工程Ｓ６３３の処理は、例えば、以下のように行う。
距離データ合成部４５１は、文字列の照合によって対応付いた記号の位置用距離データの差異が一定以下となる地図距離データを連結する。すなわち、距離データ合成部４５１は、測定点ａ、ｂとの相対位置（位置用距離データＤａとＤｂの差異）から求めた特徴点Ｅの地点から、至近の壁に平行な方向にある壁までの距離Ｅａ、Ｅｂを、Ｄａ，ＤｂとａとＥａの相対距離、ｂとＥｂの相対距離から求め、これらの差異が一定以下であるか否かを判断する。一定以下である場合、距離データ合成部４５１は、２つの地図距離データは連結可能と判断する。距離データ合成部４５１は、対応付いた特徴記号と、至近の壁に平行な方向にある壁までの距離が重なるように一方の地図距離データを平行移動して地図距離データを結合して環境地図を構築する。対応する特徴点が一つの場合、距離データ合成部４５１は、単純に平行移動する移動量を求めて電子データとして出力する。距離データ合成部４５１は、移動量として、例えば、基準とする地図距離データを表示したときに、上側をＹ、右側をＸとした距離をミリメートルで表現したＸ、Ｙの値とする。対応する特徴点が複数ある場合、距離データ合成部４５１は、平行移動量として、特徴点同士の距離の和が最小となる移動量を求める。距離データ合成部４５１がこれを求める方式は、例えば、Ｋ個の特徴点が対応ついた場合、それぞれの点同士の差異である移動量１、移動量２、・・・、移動量ＫのＸ、Ｙの範囲内でＸ、Ｙを変化させ、特徴点同士の距離の和が最小となる移動量を求める。
【０１６６】
距離合成工程Ｓ６３４の処理は、例えば、以下のように行う。
特徴の少ない空間においては、地図距離データが、直線Ｌや空間Ｓといった長さ属性をもつ特徴を含まない場合がある。この場合、距離データ合成部４５１は、位置用距離データの差異から判断して、重複する部分を含む地図距離データ同士が対応つくと判断する。距離データ合成部４５１は、進行方向の位置用距離データの差異および、進行方向と平行な壁との距離差異が無くなるように、一方の地図距離データを平行移動して地図距離データを結合する。このとき、距離データ合成部４５１は、特徴点同士が一定距離内にあれば、さらにこの局所座標が重なるように平行移動して結合する。
また、距離計測部４３１が壁と略平行な距離だけでなく、壁までの距離を計測する構成の場合、距離データ合成部４５１は、壁と略平行な距離だけでなく、壁までの距離も利用して、一方の地図距離データを平行移動する。
【０１６７】
地図データ記憶部４５２は、地図データを記憶する。
地図データ記憶部４５２が記憶する地図データの形式は、例えば、地図距離データｎ個を合成する場合、地図距離データ１、地図距離データ２、地図距離データ２を地図距離データ１と重ねる場合の地図距離データ２の移動量２、地図距離データ３、地図距離データ３を地図距離データ２と重ねる場合の地図距離データ２の移動量３、・・・、地図距離データｎ、地図距離データｎを地図距離データｎ−１と重ねる場合の地図距離データ２の移動量ｎを記録したものである。
【０１６８】
地図データ出力部４５３は、地図データ記憶部４５２が記憶した地図データに基づいて地図を生成する。地図データ出力部４５３は、例えば、生成した地図と、カメラが取得した映像とをディスプレイに表示する。複数の地図距離データを合成している場合、地図データ出力部４５３は、複数の地図距離データを合成して地図を生成し、表示する。なお、表示するディスプレイは、例えば、地図生成システム８００（環境地図取得装置）に搭載した計算機に接続したデジプレイである。あるいは、地図データ出力部４５３は、地図生成システム８００（環境地図取得装置）に搭載した計算機８１０から、複数の地図距離データを合成した地図画像と、カメラで撮影した映像とを、無線ＬＡＮ装置などの通信装置９１５を介して他の場所に設置した計算機へ伝送する構成としてもよい。これにより、必ずしも環境地図取得装置に搭載した計算機ではない場所に、周辺環境の地図を表示することができる。
【０１６９】
移動部４４１は、例えば、操作員が、地図生成システム８００（環境地図取得装置）に搭載した計算機８１０からキーボード９０２を介した入力により、左右の駆動輪（車輪９５４，９５５）を別々に回転させることにより、前後方向または、左右旋回方向に地図生成システム８００（環境地図取得装置）を移動させる。指示の例としては、例えば、毎秒１回転で左右５秒間といった指示や、右側の駆動輪が毎秒０．５回転、左側の駆動輪が毎秒１回転で同時に３秒間といった指示がある。
なお、別の場所に設置した計算機上で指示を入力し、無線ＬＡＮ装置などの通信装置９１５を介して地図生成システム８００（環境地図取得装置）に搭載した計算機８１０へ指示を伝送し、移動部４４１が、指示にしたがって地図生成システム８００を移動させてもよい。
移動部４４１が地図生成システム８００を１回移動させた後、カメラ９８６が撮影した画像を、再び、地図生成システム８００（環境地図取得装置）に搭載した計算機８１０に接続したディスプレイに表示する。もちろん、カメラ９８６が撮影した画像を無線ＬＡＮ装置などの通信装置９１５を介して他の場所に設置した計算機へ伝送して、表示してもよい。
操作員は、この表示内容をみて、再度操作入力を行って地図生成システム８００（環境地図取得装置）を移動させるか、または参照データ収集部４１１からの一連の処理を実行するかを決定して、計算機８１０へ入力することにより、いずれかの処理を実行する。
また、移動部４４１は、自動化する構成としてもよい。例えば、移動部４４１は、最新の位置用距離データの値が一定以上（例えば１００ｃｍ以上）である場合に、所定の距離だけ地図生成システム８００を前進させる。さらに、進行方向が左右にずれないようにするため、移動部４４１は、アジマス方向の回転量データから地図生成システム８００（環境地図取得装置）の正面の方向と、壁のずれを求め、壁と平行になる方向に向くように車輪を回転させる。
【０１７０】
以上説明した地図生成システム８００（環境地図取得装置）は、
レーザ測距装置（短距離レーザ測距装置９８１）により測定された距離を示す参照データを収集する参照データ収集部４１１と、
参照データから、周辺の壁を検出する壁検出部４１３と、
可動台９６１及び回転台９７１を制御してレーザ測距装置（長距離レーザ測距装置９８４）によるレーザ光の照射方向を壁と平行な方向へ変更する方向変換部４１４と、
地図データを作成する元となる周辺の地図距離データ（計測距離）をレーザ測距装置（短距離レーザ測距装置９８１）を用いて取得する地図データ収集部４２１と、
自位置を推定するために長距離の位置用距離データ（参照距離）を取得する距離計測部４３１と、
装置全体が移動一定量移動して移動記録を残す移動部４４１と、
地図距離データ（計測距離）を合成して地図データを生成する距離データ合成部４５１と、
計測する場所を変える移動部４４１とを備える。
【０１７１】
これにより、地図生成システム８００（環境地図取得装置）は、壁に凹凸特長の無い長い廊下などであっても、環境地図を構築することができる。例えば、計測した点群が一直線状に並んでいる場合や、同じ凹凸パターンが繰り返している場合であっても、直線状の並びに平行な方向の位置ずれを正確にあわせた対応付けをすることができる。したがって、壁の形状の特徴の有無によらず、正確に形状を計測することができる。
【０１７２】
以上説明した地図生成システム８００（環境地図取得装置）によれば、参照データ収集部４１１が収集した参照用の距離データ（参照データ）から、壁検出部４１３が壁を検出し、方向変換部４１４が長距離計測器（長距離レーザ測距装置９８４）の向きを壁と平行にすることにより、至近の壁と平行な方向にある壁までの位置用距離データ（参照距離）を距離計測部４３１が計測し、これと同時に地図データ収集部４２１が地図距離データ（計測距離）を収集し、距離データ合成部４５１が地図距離データ（計測距離）から形状特徴を抽出して、形状特徴の位置あわせと位置用距離データ（参照距離）の距離を位置合わせすることにより、複数地点で取得した地図距離データを重ね合わせることにより大域地図を合成し、移動部４４１が、地図生成システム８００を移動させることにより大域地図の範囲を広げることができるので、形状特徴だけではなく、長距離計測器（長距離レーザ測距装置９８４）を用いて取得した位置用距離データの距離を位置合わせに用いるので、形状に凹凸のない空間であっても、多地点で取得した地図用距離データを正確に合成できるという効果を奏する。
【０１７３】
なお、複数の地図生成システム８００が協調して、１つの環境地図を生成する構成としてもよい。
例えば、１つの地図生成システム８００（以下「合成担当システム」と呼ぶ。）が合成を担当し、他の地図生成システム８００（以下「測定担当システム」と呼ぶ。）は、主に測定を担当する。
測定担当システムは、距離データ合成部４５１・地図データ記憶部４５２・地図データ出力部４５３に代えて、もしくは、これらに加えて、距離データ送信部を有する。距離データ送信部は、通信装置９１５を用いて、地図距離データ記憶部４２２が記憶した地図距離データを、合成担当システムに対して送信する。
合成担当システムは、更に、距離データ受信部を有する。距離データ受信部は、通信装置９１５を用いて、測定担当システムが送信した地図距離データを受信する。地図距離データ記憶部４２２は、地図データ収集部４２１が測定した地図距離データとともに、地図距離データ受信部が受信した地図距離データを記憶する。距離データ合成部４５１は、複数の地図生成システム８００が取得した地図距離データを合成する。
距離データ合成部４５１は、特徴合成工程Ｓ６３３の処理により、複数の地図生成システム８００が取得した地図距離データを合成する。特徴合成工程Ｓ６３３では、測定点間の位置関係を使わずに合成をすることができるので、複数の地図生成システム８００の間の位置関係が不明な場合や大まかな位置関係しかわからない場合であっても、複数の地図生成システム８００が取得した取得形状を合成することができる。
【０１７４】
実施の形態３．
実施の形態３について、図１２を用いて説明する。
なお、実施の形態２で説明した地図生成システム８００と共通する部分については、同一の符号を付し、説明を省略する。
【０１７５】
この実施の形態における地図生成システム８００（環境地図取得装置）の外観は、実施の形態２で説明したものと同様である。
【０１７６】
図１２は、この実施の形態における地図生成システム８００（環境地図取得装置）の計算機８１０の詳細を示すブロック構成図である。
計算機８１０は、実施の形態２で説明したブロックに加えて、更に、分割判断部４６１、部分地図データ記憶部４６２、分割領域合成部４６３を有する。
分割判断部４６１は、地図データ収集部４２１が収集した地図距離データを、取得済みの地図距離データと合成する手法を選択する。
距離データ合成部４５１は、地図生成システム８００（環境地図取得装置）の移動する向きに変化のない地図距離データを合成する。
部分地図データ記憶部４６２は、距離データ合成部４５１が合成して生成した地図データを部分地図データとして記憶する。
分割領域合成部４６３は、地図生成システム８００（環境地図取得装置）の移動する向きに変化のある地図距離データを合成する。
地図データ記憶部４５２は、分割領域合成部４６３が合成して生成した地図データを記憶する。
【０１７７】
地図生成システム８００は、環境全体を複数の仮想的な部分空間にわけて計測する。地図生成システム８００は、各部分空間内において、周辺の壁と平行な方向のつきあたりにある壁までの距離を位置用距離データとして利用することにより、各部分空間内の地図データを構築する。そして、地図生成システム８００は、複数の部分空間が重なった部分の地図データを合成することにより、広域の地図データを構築する。
【０１７８】
次に、地図生成システム８００（環境地図取得装置）の動作の概略について、説明する。
【０１７９】
操作員は、地図表示や、地図生成システム８００（環境地図取得装置）に搭載したカメラ９８６の画像を確認しながら、地図生成システム８００（環境地図取得装置）の移動操作を行って移動させる。１回の移動距離は、移動前後で取得した地図距離データに同一区間が重複して計測できる距離とし、例えば、レーザスキャナの到達距離の半分のであるおおよそ２メートルとする。
【０１８０】
移動後の停止した状態で、地図生成システム８００（環境地図取得装置）は、参照データの取得、壁検出、可動台の向き変更、位置用距離データの計測、地図距離データの収集、距離データの合成による地図データの作成を自動で行うことにより、地図データの生成または、地図データの追加を行う。
【０１８１】
移動部４４１は、操作員の指示により、左右の駆動輪（車輪９５４，９５５）を指定速度で指定時間回転することにより移動する。左右の回転速度、回転方向を変えることにより旋回することができる。移動部４４１は、移動経路として、通路などの分岐点で左または右へ向かう。また、移動部４４１を自動化することにより、一定範囲の空間を操作員の操作がなくとも自動的に計測することができる。
【０１８２】
次に、各部の動作について、説明する。
【０１８３】
分割判断部４６１は、同一の部分空間にいるか、異なる部分空間に入ったかを判断する。分割判断部４６１は、例えば、以下の基準に基づいて、判断をする。
分割判断部４６１は、時系列に位置用距離データの長さを比較する。分割判断部４６１は、最新に取得した位置用距離データの長さが、１回前の取得した位置用距離データの長さより長い場合は、異なる部分空間に入ったと判断する。
分割判断部４６１の判断基準は、異なる判断基準であってもよい。例えば、分割判断部４６１は、時系列に回転量データのアジマス角度を比較する。回転量データのアジマス角とは、壁と平行な方向を示す角度である。例えば、車両正面を０度として右向きが正、左向きが負とする。分割判断部４６１は、最新に取得した回転量データのアジマス角と、１回前に取得した回転量データのアジマス角の正負が異なり、かつ、一定以上の角度差がある場合は異なる部分空間へ入ったと判断する。
【０１８４】
異なる部分空間に入ったと分割判断部４６１が判断した場合、距離データ合成部４５１は、部分空間ごとに分けて地図距離データを合成する。部分地図データ記憶部４６２は、それまでに蓄積した部分地図データと別の部分空間であることから、別の電子データとして、部分地図データの蓄積を開始する。分割領域合成部４６３は、それまでに蓄積した地図データの最後の地図距離データと、最新の地図距離データを合成する。
【０１８５】
分割領域合成部４６３は、複数の部分空間の重複する位置で取得した地図距離データを照合することにより、異なる部分空間の環境地図を大域的に合成する。
分割領域合成部４６３は、例えば、ある部分空間において局所座標値が最小となるスキャンデータ（地図距離データ）と、別の部分空間において局所座標値が最大となる地図距離データとを照合する。
例えば、第一の部分空間において、地図生成システム８００（環境地図取得装置）の進行方向と直交する方向の面から抽出した特徴と、第二の部分空間において、地図生成システム８００（環境地図取得装置）の進行方向と平行な方向の面から抽出した特徴とが一致している場合、第一の部分空間の環境地図と、第二の部分空間の環境地図は、直交する方向で連結できる。
このように、分割領域合成部４６３は、照合により一致した特徴の方向に基づいて、各部分空間の環境地図を結合する方向を判断する。
また、部分空間同士の結合には、方向だけでなく、位置を合わせる必要がある。
分割領域合成部４６３は、第二の部分空間の一つの特徴点の座標が、第一の部分空間の対応付いた特徴点と一致する量の平行移動を、第二の部分空間の環境地図全体に施す。更に、分割領域合成部４６３は、位置を合わせた特徴点を中心として、対応付いた特徴記号文字列の方向の角度変位量を打ち消す角度の回転を、第二の部分空間の環境地図にかけることにより、部分空間にまたがる環境地図を結合する。
【０１８６】
以上説明した地図生成システム８００（環境地図取得装置）は、参照データ収集部４１１が収集した参照用の距離データ（参照データ）から、壁検出部４１３が壁を検出し、方向変換部４１４が長距離計測器（長距離レーザ測距装置９８４）の向きを壁と平行にすることにより、至近の壁と平行な方向にある壁までの位置用距離データ（参照距離）を距離計測部４３１が計測し、これと同時に地図データ収集部４２１が地図距離データ（計測距離）を収集し、距離データ合成部４５１が地図距離データから形状特徴を抽出して、形状特徴の位置あわせと位置用距離データ（参照距離）の距離を位置合わせすることにより、複数地点で取得した地図距離データを重ね合わせることにより大域地図を合成し、分割判断部４６１が、異なる方向に地図生成システム８００（環境地図取得装置）が進みだしたことを検知して、異なる部分空間の地図データの作成を開始し、分割領域合成部４６３が、異なる部分空間のデータの接合をし、移動部４４１が、地図生成システム８００を移動させることにより大域地図の範囲を広げる。このように、形状特徴だけではなく、長距離計測器（長距離レーザ測距装置９８４）を用いて取得した位置用距離データの距離を位置合わせに用いるので、形状に凹凸のない空間でかつ、曲がり角を曲を含んでいてもあっても、多地点で取得した地図用距離データを、正確に合成できるという効果を奏する。
【０１８７】
実施の形態４．
実施の形態４について、図１３を用いて説明する。
なお、実施の形態２で説明した地図生成システム８００と共通する部分については、同一の符号を付し、説明を省略する。
【０１８８】
この実施の形態における地図生成システム８００（環境地図取得装置）の外観は、実施の形態２で説明したものと同様である。
【０１８９】
図１３は、この実施の形態における地図生成システム８００（環境地図取得装置）の計算機８１０の詳細を示すブロック構成図である。
計算機８１０は、実施の形態２で説明したブロックに加えて、更に、ランドマーク抽出部４７１、ランドマークデータ記憶部４７２、ランドマーク追跡部４７３を有する。
なお、計算機８１０は、実施の形態３と同様、更に、分割判断部４６１、部分地図データ記憶部４６２、分割領域合成部４６３を有する構成であってもよい。
【０１９０】
ランドマーク抽出部４７１は、カメラ９８６が撮影した映像から、ランドマークを抽出する。ランドマークデータ記憶部４７２は、ランドマーク抽出部４７１が抽出したランドマークを記憶する。ランドマーク追跡部４７３は、ランドマークデータ記憶部４７２が記憶したランドマークから、基準となるランドマークを決め、このランドマークの方向に長距離計測器（長距離レーザ測距装置９８４）が向くように可動台９６１・回転台９７１を動作させる。
距離計測部４３１は、長距離計測器（長距離レーザ測距装置９８４）からランドマークまでを結んだ線を水平面に射影した距離に換算する。位置用距離データ記憶部４３２は、換算した距離を、位置用距離データとして蓄積するとともに、壁との角度を記録する。
【０１９１】
次に、各部の動作について、説明する。
【０１９２】
ランドマーク抽出部４７１は、カメラ映像からランドマークを抽出し、抽出したランドマークのピッチ、アジマス方向を得る。
例えば、ランドマークとして、特殊な色のマーカーを用いる場合、ランドマーク抽出部４７１は、カメラ画像に対して、特定の色を例えばＣＭＹ色空間の一定値範囲の色抽出を行い、抽出できた色の画素の中心をランドマーク点とする。
あるいは、ランドマークとして、並んで配置されている蛍光灯を対象とする場合、ランドマーク抽出部４７１は、白色で輝度が一定以上の画素をグループ化した後、一番遠い蛍光灯グループの画素中心をランドマーク点として選択する。このとき、遠近法に基づいて、ランドマーク抽出部４７１は、画像の中心より上で一番中心に近いグループが一番遠いと判断する。
次に、ランドマーク抽出部４７１は、カメラの視野角から、ランドマーク点の方向をカメラ中心からのアジマス方向およびピッチ方向の角度差として抽出する。このとき、ランドマーク抽出部４７１は、レンズの収差補正を行ってもよい。
【０１９３】
ランドマークデータ記憶部４７２は、ランドマーク抽出部４７１が抽出したランドマークのアジマス角およびピッチ角をランドマークデータとして記憶する。
【０１９４】
ランドマーク追跡部４７３は、ランドマークデータ記憶部４７２が記憶したランドマークデータから、追跡するランドマークを決定し、決定したランドマークのアジマス方向及びピッチ方向を、方向変換部４１４へ通知する。
【０１９５】
方向変換部４１４は、可動台９６１・回転台９７１へ指示を出すことにより、ピッチ角、アジマス角にあわせて可動台の方向を変える。
【０１９６】
次に、距離計測部４３１は、長距離計測器（長距離レーザ測距装置９８４）へ指示を出して、ランドマークまでの距離を求める。
位置用距離データ記憶部４３２は、記録として、計測した位置用距離を記録する。このとき、位置用距離データ記憶部４３２は、計測した位置用距離を水平面に射影した長さを位置距離データとして記録する。
【０１９７】
距離データ合成部４５１は、実施の形態２で説明したのと同様にして、特徴あるいは距離による位置合わせをして、地図距離データを合成する。なお、位置距離データを用いて位置あわせをする場合、位置用距離データ記憶部４３２が記憶した位置用距離データは、壁に垂直でないので、ランドマークデータ記憶部４７２が記憶したランドマークデータに基づいて、アジマス方向の角度だけ、位置用距離データの角度を傾けて位置あわせを行う。
【０１９８】
以上説明した地図生成システム８００（環境地図取得装置）は、参照データ収集部４１１が収集した参照用の距離データ（参照データ）から、壁検出部４１３が壁を検出し、方向変換部４１４が長距離計測器（長距離レーザ測距装置９８４）の向きを壁と平行にすることにより、至近の壁と平行な向きで地図データ収集部４２１が地図距離データを収集し、ランドマーク追跡部４７３と距離計測部４３１とが、一定の目標物（ランドマーク）までの位置用距離データを計測し、距離データ合成部４５１が地図距離データから形状特徴を抽出して、形状特徴の位置あわせと位置用距離データ（参照距離）の距離を位置合わせすることにより、複数地点で取得した地図距離データを重ね合わせることにより大域地図を合成し、移動部４４１が、地図生成システム８００を移動させることにより大域地図の範囲を広げることができるので、形状特徴だけではなく、長距離計測器（長距離レーザ測距装置９８４）を用いて取得した位置用距離データの距離を位置合わせに用いるので、形状に凹凸のない空間であっても、かつ、壁と平行な方向に乱雑に物が置いてあるような空間においても、多地点で取得した地図用距離データを正確に合成できるという効果を奏する。
【図面の簡単な説明】
【０１９９】
【図１】実施の形態１における地図生成システム８００の外観の一例を示す図。
【図２】実施の形態１における計算機８１０のハードウェア資源の一例を示す図。
【図３】実施の形態１における計算機８１０の機能ブロックの構成の一例を示すブロック構成図。
【図４】実施の形態１における地図生成システム８００が計測する周辺環境８５０と、計測装置２００が出力する計測距離データ３１０との関係の一例を示す図。
【図５】実施の形態１における形状取得部１１５が取得した幾何学形状８８０と、その幾何学形状から特徴抽出部１４１が抽出する特徴との一例を示す図。
【図６】実施の形態１における特徴抽出部１４１が抽出する特徴とその特徴を表わす文字との関係の一例を示す図。
【図７】実施の形態１における計測装置２００が距離を計測した計測可能範囲８６０と、形状取得部１１５が取得した周辺環境の幾何学形状８８０と、特徴抽出部１４１が抽出した幾何学形状の特徴との一例を示す図。
【図８】実施の形態１における形状合成部１４３が移動前取得形状と移動後取得形状とを合成する様子を模式的に表わした図。
【図９】実施の形態１における地図生成システム８００が周辺環境の地図を生成する地図生成処理の流れの一例を示すフローチャート図。
【図１０】実施の形態２における地図生成システム８００（環境地図取得装置）の計算機８１０の詳細を示すブロック構成図。
【図１１】実施の形態２における距離データ合成部４５１が地図距離データを合成する距離データ合成処理の流れの一例を示すフローチャート図。
【図１２】実施の形態３における地図生成システム８００（環境地図取得装置）の計算機８１０の詳細を示すブロック構成図。
【図１３】実施の形態４における地図生成システム８００（環境地図取得装置）の計算機８１０の詳細を示すブロック構成図。
【符号の説明】
【０２００】
１００  地図生成装置、１１１  計測距離取得部、１１２  連続判定部、１１３  計測距離分類部、１１４  部分図形検出部、１１５  形状取得部、１２１  壁面検出部、１２２  参照方向通知部、１３１  参照距離取得部、１３２  移動量取得部、１４１  特徴抽出部、１４２  合成方式選択部、１４３  形状合成部、１５１  地図生成部、１５２  地図出力部、２００  計測装置、２１１  計測距離計測部、２１２  計測距離通知部、２２１  参照方向取得部、２２２  参照距離計測部、２２３  参照距離通知部、２３１  参照方向移動部、３１０  計測距離データ、３１１  方向データ、３１２  距離データ、３３０  特徴データ、４１１  参照データ収集部、４１２  参照データ記憶部、４１３  壁検出部、４１４  方向変換部、４１５  回転量データ記憶部、４２１  地図データ収集部、４２２  地図距離データ記憶部、４３１  距離計測部、４３２  位置用距離データ記憶部、４４１  移動部、４４２  移動量データ記憶部、４５１  距離データ合成部、４５２  地図データ記憶部、４５３  地図データ出力部、４６１  分割判断部、４６２  部分地図データ記憶部、４６３  分割領域合成部、４７１  ランドマーク抽出部、４７２  ランドマークデータ記憶部、４７３  ランドマーク追跡部、８００  地図生成システム、８１０  計算機、８５０  周辺環境、８６０  計測可能範囲、８７０  計測点群、８８０  幾何学形状、８９０  特徴点、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９０７  スキャナ装置、９１０  システムユニット、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信装置、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９３１  電話器、９３２  ファクシミリ機、９４０  インターネット、９４１  ゲートウェイ、９４２  ＬＡＮ、９５１  移動台上板、９５２  移動台中板、９５３  移動台下板、９５４〜９５７  車輪、９６１  可動台、９６２  球面状支持体、９６３  凹状支持体、９６４  棒状支持体、９６５  スリット状支持体、９６６，９６７  可動柱、９６８，９６９  傾斜計、９７１  回転台、９８１  短距離レーザ測距装置、９８２  ミラー、９８４  長距離レーザ測距装置、９８６  カメラ、９９１〜９９６  ステッピングモータ。
【図１】
2010054315.tif 000003
【図２】
2010054315.tif 000004
【図３】
2010054315.tif 000005
【図４】
2010054315.tif 000006
【図５】
2010054315.tif 000007
【図６】
2010054315.tif 000008
【図７】
2010054315.tif 000009
【図８】
2010054315.tif 000010
【図９】
2010054315.tif 000011
【図１０】
2010054315.tif 000012
【図１１】
2010054315.tif 000013
【図１２】
2010054315.tif 000014
【図１３】
2010054315.tif 000015