以下に説明する実施例の主要な特徴を列記しておく。なお、以下に記載する技術要素は、それぞれ独立した技術要素であって、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時の請求項に記載の組合せに限定されるものではない。
(特徴1)本明細書に開示する地図データ生成装置では、抽出部は、正または負の第1傾きを有して連続するM個(Mは2以上K以下の自然数)の一群の計測点を抽出してもよい。このような構成によると、K個の計測点から、正または負の第1傾きを有して連続するM個の一群の計測点が抽出される。すなわち、K個の計測点が、正の第1傾きを有する群または負の第1傾きを有する群に分割される。これにより、第1傾きと第2傾きを比較しやくなり、第2傾きの第1傾きに対する一致の度合いが高いか否かを容易に判定することができる。
(特徴2)本明細書に開示する地図データ生成装置では、抽出部は、M個の一群の計測点全体において、第2傾きの正負が第1傾きの正負と一致するか否かによって、第2傾きの前記第1傾きに対する一致の度合いを判定してもよい。このような構成によると、第2傾きの第1傾きに対する一致の度合いを容易に判定することができる。
(特徴3)本明細書に開示する地図データ生成装置では、抽出部は、M個の一群の計測点全体において、第1傾きと第2傾きの間の差分を算出し、差分が閾値以下のときに第2傾きの第1傾きに対する一致の度合いが高いと判定してもよい。このような構成によると、第1傾きと第2傾きの間の差分を算出することによって、第2傾きの第1傾きに対する一致の度合いを容易に判定することができる。
(特徴4)本明細書に開示する地図データ生成装置は、抽出部によって抽出された標高情報に対応する計測点の3次元座標を生成する座標生成部と、環境情報が計測されたK個の計測点のそれぞれの位置を規定する計測点ノードと、隣接する計測点ノード間の相対的位置関係を規定する計測点アークと、3次元座標の位置を規定する座標ノードと、計測点の位置とその位置に対応する3次元座標との間のずれを規定する座標アークと、を備えるグラフ構造データを生成するグラフ構造データ生成部と、グラフ構造データについて、各計測点アークおよび各座標アークから算出される誤差関数の和が最小となるようにグラフ構造データを最適化するグラフ構造データ最適化部と、をさらに備えていてもよい。このような構成によると、座標生成部は、抽出部によって第2傾きの第1傾きに対する一致の度合いが高いと判定された標高上雄法に対応する3次元座標のみ生成するため、精度の信頼度が高い座標のみが生成される。このため、計測点の位置と、その位置に対応する3次元座標からグラフ構造データを生成して最適化することによって、精度の信頼度が高い座標情報のみがグラフ構造データに追加される。このため、3次元の地図データ全体の精度を高くすることができる。
(特徴5)本明細書に開示する地図データ生成装置は、最適化されたグラフ構造データ内の計測点ノードと、計測点ノードが規定する位置から計測された環境情報を用いて、地図データを生成する地図データ生成部をさらに備えていてもよい。このような構成によると、精度の信頼度が高い3次元座標のみを取り込み、最適化されたグラフ構造データ内の計測点ノードが規定するセンサの位置から計測された環境情報に基づいて、精度の高い地図データを生成することができる。
(実施例1)
以下、実施例1に係る地図データ生成装置10について説明する。地図データ生成装置10は、対象領域の3次元の地図用の地図データを生成する。地図データ生成装置10は、例えば、CPU、ROM、RAM等を備えたコンピュータによって構成することができる。コンピュータがプログラムを実行することで、地図データ生成装置10は、図1に示す標高判定部16、絶対座標生成部18、グラフ構造データ生成部20、グラフ構造データ最適化部22、地図データ生成部24等として機能する。地図データ生成装置10の各部16、18、20、22、24の処理については、後で詳述する。
また、図1に示すように、地図データ生成装置10は、環境計測データ記憶部12と、標高情報記憶部14を備えている。環境計測データ記憶部12は、環境計測センサ52によって計測された対象領域内の環境情報と、環境計測センサ52の姿勢情報と、環境計測センサ52の相対位置と、環境計測センサ52の2次元座標を記憶する。後述するように環境計測センサ52は移動体50に搭載される。以下では、環境計測センサ52の姿勢情報を「移動体50の姿勢情報」ともいい、環境計測センサ52の相対位置を「移動体50の相対位置」ともいい、環境計測センサ52の2次元座標を「移動体50の2次元座標」ともいう。移動体50は対象領域内を移動しながら、環境計測センサ52によって対象領域内の環境(例えば、建造物や木々等の計測物)を計測する。環境計測センサ52によって取得された環境情報は、その環境情報が取得されたときの移動体50の姿勢情報、相対位置及び2次元座標と共に環境計測データ記憶部12に記憶される。標高情報記憶部14は、環境計測センサ52が環境情報を計測した地点の標高情報を記憶する。環境計測データ記憶部12に記憶される環境情報、姿勢情報、相対位置及び2次元座標と、標高情報記憶部14に記憶される標高情報については、後で詳述する。
図2〜図10を参照して、地図データ生成装置10が行う処理について説明する。図2は、地図データ生成装置10が行う地図データ生成処理の一例を示すフローチャートである。図2に示すように、まず、地図データ生成装置10は、移動体50から、対象領域内の複数(本実施例では、K個(Kは1以上の自然数))の計測地点において計測された環境情報と、各計測地点における移動体50の姿勢情報と、各計測地点における移動体50の相対位置と、各計測地点における移動体50の2次元座標を取得し、環境計測データ記憶部12に記憶する(S12)。
ここで、移動体50によって環境情報、姿勢情報、相対位置及び2次元座標を取得する手順について説明する。移動体50は、車輪駆動型の移動体である。移動体50は、図示しない操作装置を備えており、例えば、ジョイスティック等のリモコンで操縦される。なお、本実施例では、移動体50はリモコンで操縦されるが、このような構成に限定されない。例えば、移動体50は、作業者がハンドル操作によって運転することによって移動してもよいし、作業者が手で押すことによって移動してもよい。
移動体50は、環境計測センサ52と記憶部54を備えている(図1参照)。環境計測センサ52は、環境計測センサ52が搭載される移動体50の周囲の環境情報と、移動体50の姿勢情報と、移動体50の位置情報を計測する。本実施例では、移動体50に搭載される環境計測センサ52は、3D−LiDRA、慣性センサ及びGPSセンサである。
3D−LiDRAは、レーザ光を射出し、射出したレーザ光が物体で反射して返ってくるまでの時間を計測する。3D−LiDRAで計測された時間から、3D−LiDRAから物体までの距離が計測される。また、3D−LiDRAからレーザ光を射出した方向(すなわち、物体から反射されるレーザ光の入射角度)は既知であるため、3D−LiDRAに対する物体の方位を決定することができる。3D−LiDRAは、計測地点から見た建造物や木々等(以下、「計測物62」という)の位置、姿勢及び形状等の環境情報を計測することができる。3D−LiDRAで計測された環境情報は、記憶部54に記憶される。慣性センサは、例えば、ジャイロセンサであり、移動体50の姿勢情報(例えば、ピッチ角)を計測する。慣性センサで計測された移動体50の姿勢情報は、記憶部54に記憶される。GPSセンサは、GPSによって移動体50の位置を測位する。本実施例では、GPSセンサによって測位される環境計測センサ52の位置は、緯度及び経度による2次元座標で示される。GPSセンサで測位された移動体50の2次元座標は、記憶部54に記憶される。
また、各計測地点における移動体50の相対位置は、各計測地点において環境計測センサ52によって計測された環境情報を用いて算出される。詳細には、1つの計測地点(例えば、N−1個目の計測地点(Nは1以上K以下の自然数))において3D−LiDRAが計測した環境情報と、次の計測地点(例えば、N個目の計測地点)において3D−LiDRAが計測した環境情報をマッチングさせることによって、両者の間の位置及び姿勢の変位を算出する。ここで算出された変位が、1つの計測地点から次の計測地点までの移動体50の移動量といえる。マッチングの方法としては、パターンマッチングやICP(Iterative Closest Point)等の公知の方法を用いることができる。このように、各計測地点の間の移動体50の移動量を算出することによって、各計測地点における移動体50の姿勢及び位置(すなわち、相対位置)を算出することができる。また、移動体50は、車輪の回転角を検出するセンサ(例えば、エンコーダ)を備えていてもよい。このセンサによって車輪の回転角を検出することで、移動体50の移動方向及び移動量を算出することができる。移動体50は、算出された移動体50の移動方向及び移動量と、慣性センサで計測された移動体50の姿勢情報に基づいて、各計測地点における移動体50の姿勢及び位置(すなわち、相対位置)を算出することができる。
記憶部54には、各計測地点において環境計測センサ52で計測された環境情報に対応付けて、その計測地点における移動体50の姿勢情報、相対位置及び2次元座標が時系列で記憶される。本実施例では、環境計測センサ52が計測する環境情報、移動体50の姿勢情報及び2次元座標と、算出される移動体50の相対位置を合わせて「環境計測データ」と称することがある。なお、本実施例では、環境計測センサ52として、3D−LiDRA、慣性センサ及びGPSセンサを用いているが、このような構成に限定されない。各計測地点から環境情報を計測できると共に、各計測地点における移動体50の姿勢情報、相対位置及び2次元座標を取得または算出できる構成であればよい。例えば、環境計測センサ52は、レーザ距離センサ、単願又は複眼のカメラシステム、気圧センサ、傾斜計等であってもよい。
図3(a)〜図3(c)は、移動体50が環境計測センサ52によって環境情報を計測しながら移動する移動経路60を模式的に示している。図3(a)〜図3(c)に示すように、移動経路60は、始点P0から地点P1までの間は略平坦となっており、地点P1から地点P2までの間は上りとなっており、地点P2から終点P3までの間は下りとなっている。また、地点P1から地点P2までの間の上り区間の周辺には、移動経路60より高さ方向(図3(a)ではz方向)に突出する計測物62aと計測物62bが存在する。例えば、計測物62aは建造物であり、計測物62bは木々である。移動体50は、移動経路60を移動しながら、K個の計測地点において環境情報と、移動体50の姿勢情報及び2次元座標を計測し、また、各計測地点における移動体50の相対位置を算出する。計測された環境情報、移動体50の姿勢情報及び2次元座標と、算出された移動体50の相対位置は、計測時の時系列情報と共に記憶部54に記憶される。
次に、地図データ生成装置10は、K個の計測地点についての標高情報を取得し、標高情報記憶部14に記憶する(S14)。本実施例では、国土地理院が整備するデータベース(以下、地理院地図ともいう)から、K個の計測地点のそれぞれについて標高情報を取得し、標高情報記憶部14に記憶する。
ここで、地理院地図から計測地点の標高情報を取得する方法について説明する。地理院地図を用いると、緯度及び経度からその地点における標高を取得することができる。地理院地図の標高は、航空レーザ測量により計測されている。航空レーザ測量では、航空機に搭載されたレーザスキャナから、地上に向かってレーザ光を射出し、航空機から地上までの距離を計測する。また、航空機の位置情報は、全地球衛星測位システム(GNSS)測量器と、慣性計測装置(IMU)から取得している。航空レーザ測量では、航空機から地上までの距離と航空機の位置情報から、地上の標高や地形の形状を計測している。このとき、計測された標高データは、南北及び東西に5m間隔で内挿補間される。地理院地図では、緯度及び経度を入力すると、その地点の標高情報が出力される。地図データ生成装置10は、地理院地図に環境計測データ記憶部12に記憶される2次元座標を入力し、その2次元座標に対応する位置の標高情報を地理院地図から出力する。出力された標高情報は、対応する2次元座標と、その2次元座標が計測された際の時系列情報と共に、標高情報記憶部14に記憶される。
次に、標高判定部16は、標高情報記憶部14に記憶されるK個の計測地点の標高情報から、信頼度が高いと判定される標高情報を抽出する(S16)。地理院地図から取得した標高情報は、実際の移動経路60の標高と一致していないことがある。上述したように、地理院地図の標高情報は、航空レーザ測量によって計測され、内挿補間されている。このため、例えば、航空レーザ測量によって計測された位置の周辺にその位置の標高より高い物体(例えば、建造物や木々等)が存在していると、それらの物体が計測結果に影響を及ぼし、計測地点の標高を精度よく計測できないことがある。ステップS16では、標高判定部16は、地理院地図から取得したK個の計測地点の標高情報について、精度の信頼性が高いか否かを判定し、精度の信頼性が高いと判定された標高情報のみを抽出する。
ここで、ステップS16の処理について、図4を参照して説明する。図4に示すように、ステップS16の処理では、まず、標高判定部16は、K個の計測地点について、環境計測データ記憶部12に記憶される移動体50の姿勢情報から、移動体50の姿勢(すなわち、ピッチ角)が時系列に連続して正となる群と、連続して負となる群と、連続して略0となる群に分類する(S32)。
図5(a)は、K個の計測地点で計測されたピッチ角と時間との関係を示すグラフである。図5(a)では、縦軸はピッチ角を示し、横軸は時間を示している。グラフAは、慣性センサによって計測された各計測地点のピッチ角を時系列で示している。また、図5(b)は、図5(a)に対応する実際の標高を示しており、グラフBは、比較のため、移動経路60の実際の標高を、グラフAの各計測地点に対応付けて示している。移動体50が上り坂を移動すると、移動体50は上を向くため、ピッチ角は負の値となる。一方、移動体50が下り坂を移動すると、移動体50は下を向くため、ピッチ角は正の値となる。図5(a)に示すように、ピッチ角は、時間T0から時間T1までの間、連続して略0となっている。したがって、時間T0から時間T1までの間、移動体50は平坦な経路を移動したことがわかり、これは、図3に示す始点P0から地点P1までの平坦な区間と一致する。標高判定部16は、時間T0から時間T1までの間に移動体50が移動した計測地点(すなわち、図3の始点P0から地点P1まで間の計測地点)を、グループG1と分類する。
また、ピッチ角は、時間T1から時間T2までの間、連続して負の値となっている。したがって、時間T1から時間T2までの間、移動体50は上りの経路を移動したことがわかり、これは、図3に示す地点P1から地点P2までの上り区間と一致する。標高判定部16は、時間T1から時間T2までの間に移動体50が移動した計測地点(すなわち、図3の地点P1から地点P2まで間の計測地点)を、グループG2と分類する。また、ピッチ角は、時間T2から時間T3までの間、連続して正となっており、移動体50は下りの経路を移動したことがわかる。標高判定部16は、時間T2から時間T3までの間に移動体50が移動した計測地点を、グループG3と分類する。このようにして、K個の計測地点全てについて、ピッチ角が時系列に連続して正となる群と、連続して負となる群と、連続して略0となる群に分類する。
次に、標高判定部16は、標高情報記憶部14に記憶される標高情報を、ステップS32で分類された群に分類する(S34)。上述したように、標高情報は、対応する2次元座標が計測された際の時系列情報と共に、標高情報記憶部14に記憶されている。標高判定部16は、標高情報記憶部14に記憶される標高情報を、各群に分類される計測地点の時系列情報と対応するように、ステップS32で設定された各群に分類する。図6(a)は、図5(a)と同様のグラフであり、慣性センサによって計測された各計測地点のピッチ角を時系列で示している。図6(b)は、図5(b)に示されるグラフに、標高情報記憶部14に記憶された標高情報を追加したものである。グラフCは、標高情報記憶部14に記憶された標高情報を対応する時系列順で示している。図6(b)に示すように、標高情報記憶部14に記憶される標高情報は、グループG1〜G3に分類される。
次に、標高判定部16は、標高情報を時間Δt毎にさらに分割し、時間Δt毎の標高の変化率を算出する(S36)。時間Δt毎の標高の変化率は、正、負、略0のいずれかで示される。例えば、図7(b)に示すように、標高情報を時間Δt毎に分割すると、グループG1では、標高情報は3つの小グループg11、g12、g13に分割される。また、グループG2では、標高情報は5つの小グループg21〜g25に分割され、グループG3では、標高情報は5つの小グループg31〜g35に分割される。そして、標高判定部16は、時間Δt毎に分割された各小グループについて、標高の変化率を算出する。例えば、小グループを規定する時間が時間tから時間t+1までの間であり、時間tに対応する標高情報がhtであり、時間t+1に対応する標高情報がht+1である場合、小グループの標高の変化率は、(ht+1−ht)/Δtによって算出される。このようにして小グループの標高の変化率を算出すると、グループG1では、小グループg11〜g13の標高の変化率は、時系列順に略0、略0、正となる。また、グループG2では、小グループg21〜g25の標高の変化率は、5つすべて略0となる。さらに、グループG3では、小グループg31〜g35の標高の変化率は、時系列順に略0、負、略0、負、負となる。
次に、標高判定部16は、ステップS34で分類された群毎に、標高情報の起伏状態を決定する(S38)。標高情報の起伏状態は、ステップS36において算出した小グループの標高の変化率に基づいて決定する。詳細には、各群を構成する小グループの標高の変化率のうち、最も多いものをその群全体の起伏状態と決定する。例えば、グループG1では、3つの小グループg11〜g13の標高の変化率のうち、2つが略0であり、1つが正であるため、略0が最も多い。このため、標高判定部16は、グループG1全体における標高情報の起伏状態を平坦と決定する。また、グループG2では、5つの小グループg21〜g25の標高の変化率が全て略0であるため、標高判定部16は、グループG2全体における標高情報の起伏状態を平坦と決定する。さらに、グループG3では、5つの小グループg31〜g35の標高の変化率のうち、2つが略0であり、3つが負であるため、負が最も多い。このため、標高判定部16は、グループG3全体における標高情報の起伏状態を下りと決定する。
次に、標高判定部16は、ステップS38で決定した標高情報の起伏状態と、それに対応する群のピッチ角から決定される起伏状態を比較し、両者の起伏状態が一致するか否かを判定する(S40)。上述したように、ステップS32では、ピッチ角が時系列に連続して正となる群と、連続して負となる群と、連続して略0となる群に分類している。すなわち、ピッチ角が正の群では、ピッチ角から決定される起伏状態は下りとなり、ピッチ角が負の群では、ピッチ角から決定される起伏状態は上りとなり、ピッチ角が略0の群では、ピッチ角から決定される起伏状態は平坦となる。標高判定部16は、ステップS32で分類された各群について、ピッチ角から決定される起伏状態と、対応する群における標高情報の起伏状態を比較し、両者の起伏状態が一致するか否かを判定する。
例えば、グループG1は、ステップS32において、ピッチ角が略0の群として分類されている。すなわち、グループG1は、ピッチ角から決定される起伏状態が平坦となっている。また、グループG1は、ステップS38において、標高情報の起伏状態が平坦と決定されている。したがって、グループG1では、ピッチ角から決定される起伏状態と標高情報の起伏状態はいずれも平坦となっている。このため、標高判定部16は、グループG1において、ピッチ角から決定される起伏状態と標高情報の起伏状態が一致すると判定する。
グループG2は、ステップS32において、ピッチ角が負の群として分類されているため、ピッチ角から決定される起伏状態が上りとなる。一方、グループG2は、ステップS38において、標高情報の起伏状態が平坦と決定されている。このため、標高判定部16は、グループG2において、ピッチ角から決定される起伏状態と標高情報の起伏状態が一致しないと判定する。また、グループG3は、ステップS32において、ピッチ角が正の群として分類されているため、ピッチ角から決定される起伏状態が下りとなる。そして、グループG2は、ステップS38において、標高情報の起伏状態も下りと決定されている。このため、標高判定部16は、グループG3において、ピッチ角から決定される起伏状態と標高情報の起伏状態が一致すると判定する。
ピッチ角から決定される起伏状態と、それに対応する群の標高情報の起伏状態が一致すると判定された場合(ステップS40でYESの場合)、標高判定部16は、その群に分類される標高情報を抽出する(S42)。図7(a)及び図7(b)では、グループG1及びグループG3において、ピッチ角から決定される起伏状態と標高情報の起伏状態が一致すると判定されている。したがって、標高判定部16は、グループG1及びグループG3に分類される標高情報を抽出する。その後、ステップS44に進む。
一方、ピッチ角から決定される起伏状態と、それに対応する群の標高情報の起伏状態が一致しないと判定された場合(ステップS40でNOの場合)、標高判定部16は、ステップS42をスキップして、ステップS44に進む。すなわち、ピッチ角から決定される起伏状態と標高情報の起伏状態が一致しない場合には、その群に分類される標高情報は抽出されない。図7(a)及び図7(b)では、グループG2において、ピッチ角から決定される起伏状態と標高情報の起伏状態が一致しないと判定されている。したがって、標高判定部16は、グループG2に分類される標高情報を抽出しない。慣性センサは、その計測地点におけるピッチ角が正であるか、負であるか、又は略0であるかを正確に計測することができる。このため、標高情報の起伏状態を、ピッチ角から決定される起伏状態と比較することによって、精度の信頼度の高い標高情報のみを抽出することができる。
次に、標高判定部16は、全ての群について、ステップS40の判定(すなわち、ピッチ角から決定される起伏状態と、それに対応する群の標高情報の起伏状態が一致するか否かの判定)を実行したか否かを判定する(S44)。全ての群についてステップS40の判定を実行していない場合(ステップS44でNOの場合)、ステップS40に戻り、ステップS40〜ステップS44の処理を繰り返す。一方、全ての群についてステップS40の判定を実行した場合(ステップS44でYESの場合)、ステップS16の処理を終了し、図2のステップS18に進む。
ステップS16の処理が終了すると、絶対座標生成部18は、ステップS16で抽出された標高情報と、それに対応する2次元座標から、3次元座標(以下、この3次元座標を絶対座標ともいう)を生成する(S18)。したがって、ステップS18では、絶対座標生成部18は、ステップS16で抽出された標高情報についてのみ絶対座標を生成し、ステップS16で抽出されなかった標高情報については絶対座標を生成しない。すなわち、本実施例では、ステップS34でグループG1及びグループG3に分類された標高情報から絶対座標を生成し、ステップS34でグループG2に分類された標高情報については絶対座標を生成しない。2次元座標は緯度及び経度に対応しており、緯度及び経度は、地球楕円体中心を原点とする地心直交座標に変換することによって、メートル単位に変換できる。
図8は、ステップS18で生成された絶対座標を模式的に示したものである。図8に示すように、領域R1内には、グループG1に分類された標高情報とそれに対応する緯度及び経度から生成された絶対座標が示されている。また、領域R3内には、グループG3に分類された標高情報とそれに対応する緯度及び経度から生成された絶対座標が示されている。一方、領域R2内には、絶対座標が示されていない。これは、ステップS18において、グループG2に分類される標高情報が抽出されなかったためである。したがって、ステップS18で生成された絶対座標を時系列順に並べると、連続して存在しない領域(図8では領域R2)が存在する。
次に、グラフ構造データ生成部20は、環境計測データ記憶部12に記憶される移動体50の姿勢情報及び相対位置と、ステップS18で生成された絶対座標から、グラフ構造データを生成する(S20)。図9及び図10に示すように、グラフ構造データは、計測点ノード32と、計測点アーク34と、座標ノード36と、座標アーク38によって構成される。計測点ノード32は、環境計測データ記憶部12に記憶される、K個の計測地点における移動体50の姿勢及び位置(相対位置)を規定する。計測点アーク34は、時系列に隣接する計測点ノード32間における移動体50の相対位置関係を規定する。計測点アーク34は、計測点アーク34の両端にある2つの計測点ノード32の各姿勢についての制約を表している。計測点アーク34は、各計測地点において環境計測センサ52(詳細には、3D−LiDRA)が計測した環境情報をマッチングさせることによって算出することができる。座標ノード36は、ステップS18で生成された絶対座標の位置を規定する。座標アーク38は、計測点ノード32の位置と、その位置に対応する座標ノード36の位置との間のずれを規定する。
次に、グラフ構造データ最適化部22は、ステップS20で生成されたグラフ構造データを最適化する(S22)。具体的には、グラフ構造データ最適化部22は、グラフ構造データ内の計測点アーク34及び座標アーク38に基づいて算出される誤差関数の和が最小となるように、グラフ構造データを最適化する。誤差関数は、Graph−based SLAM技術で用いられている、公知の方法を用いて生成することができ、また、最適化方法についても、最急降下法や共役勾配法等の最小二乗法等の公知の方法を用いることができる。グラフ構造データ最適化部22は、グラフ構造データ内の全てのアーク(計測点アーク34及び座標アーク38)から誤差関数を算出し、これら算出された誤差関数を加算し、次いで、この誤差関数の和が最小となるように最適化する。環境計測センサ52によって計測される環境情報から算出される移動体50の相対位置は、短い距離間においては精度が高い一方、移動経路60全体においては誤差が蓄積される。座標アーク38を追加したグラフ構造データを最適化することによって、絶対座標を取り込んだグラフ構造データを最適化できる。これによって、移動経路60全体において、移動体50の相対位置の精度を高くすることができる。
次に、地図データ生成部24は、環境計測データ記憶部12に記憶される環境情報と、ステップS22で最適化されたグラフ構造データに基づいて、対象領域の環境地図データを生成する(S24)。具体的には、地図データ生成部24は、グラフ構造データ最適化部22によって最適化されたグラフ構造データを構成する計測点ノード32(以下では、最適化された計測点ノード32ともいう)に基づいて、その計測点ノード32に対応する位置から計測した環境情報を用いて環境地図データを生成する。地図データ生成部24は、各計測点ノード32について、環境情報に、最適化された計測点ノード32が規定する移動体50の位置及び姿勢をそれぞれ適用する。そして、地図データ生成部24は、最適化された計測点ノード32が規定する移動体50の位置及び姿勢が適用された複数の環境情報を、ICP等の公知の方法を用いてマッチングして環境地図データを生成する。このように、グラフ構造データ最適化部22によって最適化されたグラフ構造データに基づいて環境地図データを生成することによって、環境地図データ全体の精度を高めることができる。
なお、本実施例では、標高情報記憶部14は、K個の計測地点全ての標高情報を記憶しているが、このような構成に限定されない。標高情報の起伏状態と、ピッチ角から決定される起伏状態を比較できればよく、例えば、標高情報記憶部14は、K個の計測地点から選択された地点の標高情報のみを記憶していてもよい。
また、本実施例では、グラフ構造データ最適化部22は、計測点アーク34及び座標アーク38に基づいて算出される誤差関数の和が最小となるように、グラフ構造データを最適化しているが、このような構成に限定されない。例えば、ステップS20で生成されたグラフ構造データに、時系列で隣接しない2つの計測点ノード32間における移動体50の相対位置や姿勢を規定するアーク(以下、第3のアークともいう)を追加してもよい。この第3のアークを規定するために選択される2つの計測点ノード32は、2つの計測点ノード32によって規定される移動体50間の距離が比較的近く、かつ、2つの計測点ノード32によって規定される移動体50から環境情報を計測した時間が比較的離れているほうがよい。そして、グラフ構造データ最適化部22は、計測点アーク34、座標アーク38及び第3のアークに基づいて算出される誤差関数の和が最小となるように、グラフ構造データを最適化してもよい。グラフ構造データに第3のアークを追加して、グラフ構造データを最適化することによって、環境地図データ全体の精度をより高くすることができる。
(実施例2)
上記の実施例1では、ステップS16において、信頼度の高い標高情報を抽出する際に、環境計測データ記憶部12に記憶される移動体50のピッチ角を用いていたが、このような構成に限定されない。地理院地図から取得した標高情報から算出される傾きと計測地点の傾きを比較できればよく、例えば、計測地点の傾きは、移動体50の3次元の位置変動量から算出してもよい。なお、本実施例では、環境計測データ記憶部12に記憶される移動体50の姿勢情報と、ステップS16の標高情報の抽出処理が、実施例1と相違しており、その他の構成については略同一となっている。そこで、実施例1の地図データ生成装置10と同一の構成については、その説明を省略する。
本実施例では、環境計測データ記憶部12には、3次元ジャイロオドメトリによって計測された移動体50の姿勢情報が記憶される。移動体50は、ジャイロセンサを搭載しており、ジャイロセンサによって、X軸、Y軸及びZ軸周りの回転量を計測する。移動体50は、X軸、Y軸及びZ軸周りの回転量から、移動体50の姿勢変動量を算出する。移動体50が移動すると、移動前の姿勢(例えば、時間t−1の姿勢)と移動後の姿勢(例えば、時間tの姿勢)の変動から、新たな姿勢を更新する。また、移動体50は、移動体50の車輪の回転量から並進量を算出する。移動体50は、更新された姿勢と、算出された並進量から、移動体50の3次元の位置変動量を算出し、移動体50の3次元の位置変動量は、相対座標(x,y,z)で示される。記憶部54には、各計測点において環境計測センサ52で計測された環境情報に対応付けて、その計測点における移動体50の相対座標が時系列で記憶される。
次に、本実施例におけるステップS16の処理について、図11を参照して説明する。図11に示すように、まず、標高判定部16は、K個の計測地点について、環境計測データ記憶部12に記憶される相対座標から算出される傾きが、時系列に連続して正となる群と、連続して負となる群と、連続して略0となる群に分類する(S52)。
図12(a)は、相対座標のz座標と移動体50の移動距離の関係を示すグラフである。図12(a)では、縦軸は相対座標のz座標を示し、横軸は移動距離を示している。グラフDは、相対座標のz座標と移動体50の移動距離を示している。図12(a)に示すように、相対座標のz座標と移動距離との関係を示すと、各計測地点における移動体50の傾きを算出できる。標高判定部16は、移動体50の傾きの変曲点を検出し、傾きが連続して正となる群と、負となる群と、略0となる群に分類する。図12(a)では、移動距離が0からd1までの間では、グラフDの傾きが略0となっている。したがって、移動距離が0からd1までの間に位置する計測地点をグループG1と分類する。また、移動距離がd1からd2までの間では、グラフDの傾きが正となっている。したがって、移動距離がd1からd2までの間に位置する計測地点をグループG2と分類する。さらに、移動距離がd2からd3までの間では、グラフDの傾きが負となっている。したがって、移動距離がd2からd3までの間に位置する計測地点をグループG3と分類する。
次に、標高判定部16は、標高情報記憶部14に記憶される標高情報を、ステップS32で分類された群に分類する(S54)。なお、ステップS54の処理は、実施例1のステップS34の処理と略同一であるため、詳細な説明は省略する。図12(b)は、図12(a)に対応する標高情報を示すグラフである。グラフEは、比較のため、移動経路60の実際の標高を、図12(a)のグラフDと対応付けて示している。グラフFは、標高情報記憶部14に記憶された標高情報を、図12(a)のグラフDと対応付けて示している。図12(b)に示すように、標高情報記憶部14に記憶される標高情報は、グループG1〜G3に分類される。
次に、標高判定部16は、ステップS52で分類した群毎に、相対座標のz座標の平均勾配を算出する(S56)。図12(a)に示すように、例えば、グループG2において、移動距離d1のz座標がziであり、移動距離d2のz座標がzi+1であり、移動距離d1、d2の間の距離が、ΔDjであるとする。この場合、グループG2のz座標の平均勾配は、(zi+1−zi)/ΔDjと算出される。同様に、グループG3において、移動距離d2のz座標がzi+1であり、移動距離d3のz座標がzi+2であり、移動距離d2、d3の間の距離が、ΔDj+1である場合、グループG3のz座標の平均勾配は、(zi+2−zi+1)/ΔDj+1と算出される。
次に、標高判定部16は、ステップS54で分類した群毎に、標高情報の平均勾配を算出する(S58)。図12(b)に示すように、例えば、グループG2において、移動距離d1の標高がhiであり、移動距離d2の標高がhi+1であるとする。この場合、移動距離d1、d2の間の距離はステップS56の場合と同様にΔDjであるため、グループG2の標高情報の平均勾配は、(hi+1−hi)/ΔDjと算出される。同様に、グループG3において、移動距離d2の標高がhi+1であり、移動距離d2の標高がhi+2である場合、移動距離d2、d3の間の距離はΔDj+1であるため、グループG3の標高情報の平均勾配は、(hi+2−hi+1)/ΔDj+1と算出される。
次に、標高判定部16は、ステップS52及びステップS54で分類した群毎に、ステップS56で算出したz座標の平均勾配と、ステップS58で算出した標高情報の平均勾配の差分を算出し、その差分の絶対値が閾値以内であるか否かを判定する(S60)。本実施例では、閾値を1%とするが、このような構成に限定されない。閾値は特に限定されるものではなく、適宜変更して用いることができる。z座標の平均勾配と標高情報の平均勾配の差分の絶対値が閾値以内である場合(ステップS60でYESの場合)、両者の勾配は略一致していると判定される。すなわち、この群に分類された標高情報は精度の信頼度が高いと判定される。したがって、この場合には、標高判定部16は、その群に分類される標高情報を抽出する(S62)。一方、z座標の平均勾配と標高情報の平均勾配の差分の絶対値が閾値以内ではない場合(ステップS60でNOの場合)、両者の勾配は一致しないと判定される。すなわち、この群に分類された標高情報は精度の信頼度が低いと判定される。したがって、この場合には、ステップS62をスキップする。
例えば、グループG2において、実際の標高を示すグラフEが上りを示しており、その平均勾配が約3%であったとする。この場合、図12(a)に示されるz座標の平均勾配(zi+1−zi)/ΔDjは3%となる。一方、図12(b)に示されるように、標高情報の平均勾配(hi+1−hi)/ΔDjは、略0となっている。したがって、z座標の平均勾配と標高情報の平均勾配の差分の絶対値は、3%となる。すなわち、グループG2では、z座標の平均勾配と標高情報の平均勾配の差分の絶対値が1%以内となっていないため、この群に分類された標高情報は精度の信頼度が低いと判定される。したがって、ステップS62をスキップし、グループG2に分類された標高情報は抽出されない。
また、グループG3において、実際の標高を示すグラフEが下りを示しており、その平均勾配が約−2.5%であったとする。この場合、図12(a)に示されるz座標の平均勾配(zi+2−zi+1)/ΔDj+1は−2.5%となる。そして、図12(b)に示されるように、標高情報の平均勾配(hi+2−hi+1)/ΔDj+1も全体として減少しており、例えば、標高情報の平均勾配は−3%となっていたとする。すると、z座標の平均勾配と標高情報の平均勾配の差分の絶対値は、0.5%となる。すなわち、グループG3では、z座標の平均勾配と標高情報の平均勾配の差分の絶対値が1%以内となっているため、この群に分類された標高情報は精度の信頼度が高いと判定される。したがって、ステップS62に進み、グループG3に分類された標高情報は抽出される。
次に、標高判定部16は、全ての群について、ステップS60の判定(すなわち、z座標の平均勾配と標高情報の平均勾配の差分の絶対値が閾値以内であるか否かの判定)を実行したか否かを判定する(S64)。全ての群についてステップS60の判定を実行していない場合(ステップS64でNOの場合)、ステップS60に戻り、ステップS60〜ステップS64の処理を繰り返す。一方、全ての群についてステップS60の判定を実行した場合(ステップS64でYESの場合)、図2のステップS18に進む。このように、本実施例の方法を用いても、標高情報記憶部14に記憶される標高情報から、精度の信頼度の高い標高情報を抽出することができる。このため、3次元の地図データの精度を高くすることができる。
実施例で説明した地図データ生成装置10に関する留意点を述べる。実施例の環境計測データ記憶部12は、「環境情報記憶部」及び「傾き情報記憶部」の一例であり、標高判定部16は、「傾き算出部」及び「抽出部」の一例であり、絶対座標生成部18は「座標生成部」の一例である。
以上、本明細書に開示の技術の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。