以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。
また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。
同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは特に明示した場合および原理的に明らかにそうではないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
また、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。なお、図面をわかりやすくするために平面図であってもハッチングを付す場合がある。
以下、本発明の実施の形態1を、図1〜図9を用いて詳細に説明する。
(実施の形態1)
<地図生成装置の構成例>
図1は、実施の形態1に係る地図生成装置10における構成の一例を示す説明図である。
地図生成装置10は、図1に示すように、計測センサ11,12、処理装置13、入力部14、表示部15、およびバッテリ16を有する。これら計測センサ11,12、処理装置13、入力部14、表示部15、バッテリ16は、測定用台車20に搭載されている。なお、測定用台車20に、図示しない速度センサ、加速度センサ、角速度センサが搭載されるようにしても良い。
測定用台車20は、作業者などが手押しで走行させる台車であり、例えば4つの車輪21が設けられている。2つの車輪21は、測定用台車20の進行方向である前方にそれぞれ設けられており、残りの2つの車輪21は、測定用台車20の後方にそれぞれ取り付けられている。
測定用台車20の前方に設けられている2つの車輪21は、回転可能となるように自在キャスタがそれぞれ設けられている。測定用台車20の後方に取り付けられている2つの車輪21は、固定されている。
なお、測定用台車20に取りけられている4つの車輪21は、すべて自在キャスタが設けられた構成であってもよいし、あるいは測定用台車20の後方に取り付けられている2つの車輪21のみに自在キャスタが設けられた構成であってもよい。
さらに、測定用台車20は、手押しによる走行に限定されるものではなく、例えば、電動走行が可能な構成としてもよい。この場合、測定用台車20には、例えばモータおよびモータを駆動する駆動回路などが備えられる。そして、モータの動力によって測定台車の車輪を駆動させる。
また、電動走行可能である場合、測定用台車20は、誘導用の磁気テープ、あるいは白線などのガイドテープなどの誘導設備によって走行する誘導型の自動走行車または誘導設備を用いることなく無軌道搬送を行う自動走行車などであってもよい。
第1の計測センサである計測センサ11および第2の計測センサである計測センサ12は、例えばレーザ測域センサなどである。このレーザ測域センサは、2次元平面を所定の周期間隔(例えば、25ms間隔)でスキャンするセンサであり、レーザ測域センサの内部に設けられたリフレクタを回転させることによって周囲にレーザパルスを照射し、レーザパルスが当たった点までの距離を計測する。
計測センサ11,12は、例えば計測可能距離が30m、計測範囲が水平方向に±135°、角度分解能が0.25°であり、合計1081点の距離を計測することができる。以下では、この1081点のデータの組を距離データと呼ぶ場合がある。
レーザパルスを照射した角度と距離が計測データとして得られているため、この距離データを直交座標系に変換すれば、台車周辺にある物体の二次元的な形状を得ることができる。この距離データの直交座標系による表現を幾何形状データと呼ぶ場合がある。
計測センサ11は、照射されるレーザパルスが測定用台車20が走行する走行路面25、すなわち床面と水平となるように取り付けられており、該レーザパルスが側壁面26を照射する。計測センサ11の取り付け位置は、走行路面25に対して垂直方向に変更可能である。
すなわち、計測センサ11は、周囲環境にある物体に合わせて、路面までの高さが変更自在となっている。この計測センサ11は、測定用台車20の位置および姿勢を推定するために用いる。
計測センサ12は、レーザパルス(レーザ)が走行路面25を照射するような角度、すなわち俯角を付けて取りけられている。その角度は、俯角0°よりも大きい角度である。ここで、俯角0°は、レーザパルスの照射角度が走行路面25に対して垂直となる角度であり、俯角90°は、レーザパルスの照射角度が走行路面に対して水平となる角度であるものとする。
具体的には、計測センサ12の取り付け角度が、望ましくは俯角50°程度〜俯角70°程度、特に望ましくは、俯角60°程度である。
この計測センサ12は、走行路面25に対して上下方向、すなわち走行路面25から天井面27にかけての上下方向にレーザパルスを照射し、測定用台車20の周囲にある物体の三次元的な形状を計測するために用いる。また、計測センサ12の仰角に取り付けられた傾きによって、壁面を密に計測し、また、2つのセンサの距離データの時刻的な対応を求めることができる。
計測センサ11は、前述したように水平に取り付けられている。そのため、測定用台車20を少し移動させて計測を行うと、距離データに同一の物体を計測したデータが多く含まれる。
そこで、計測センサ11によって計測した2つの距離データのマッチング処理を行うことで、計測センサ12の相対位置姿勢を検出することができる。このようにして、計測センサ11の測定データから、測定用台車20の位置と姿勢、すなわち測定用台車20の位置姿勢を算出する。
計測センサ11によって検出した計測センサ11の位置姿勢、言い換えれば測定用台車20の位置姿勢と、計測センサ12の相対位置姿勢と、2種類の距離データの計測開始時刻とがわかれば、計測センサ12が計測した物体の形状である、三次元地図データを算出できる。
よって、地図生成装置10では、測定用台車20を移動させながら計測を行っているので、通路をそのまま移動させることができる。測定用台車20によって物体のまわりを移動すれば、対象の物体の形状を余すことなく計測することができる。
図1では、計測センサ12は、レーザパルスが走行路面25を照射するように取り付けられた例を示しているが、図1の点線にて示すように、該計測センサ12をレーザパルスが走行路面と対向する面側、すなわち天井面27側を照射する方向である仰角に取りけるようにしてもよい。
その角度は、仰角0°よりも大きい角度である。ここで、仰角0°は、レーザパルスの照射角度が走行路面25に対して水平となる角度であり、仰角90°は、レーザパルスの照射角度が走行路面25に対して垂直となる角度である。
具体的には、計測センサ12の取り付け角度は、望ましくは仰角50°程度〜仰角70°程度、特に望ましくは、仰角60°程度である。
計測センサ12を俯角に取り付けた場合、例えば俯角50°よりも小さな角度では、計測できる範囲が小さくなってしまい、例えば俯角70°程度よりも大きな角度では、レーザパルスの反射強度が弱くなり、効率のよい測定ができない恐れが生じる。
同様に、計測センサ12を仰角に取り付けた場合、例えば仰角70°程度よりも大きな角度では、計測できる範囲が小さくなってしまい、例えば仰角50°よりも小さな角度では、レーザパルスの反射強度が弱くなり、効率のよい測定ができない恐れが生じてしまう。
また、計測センサ12は、回転自在に取りけられ、レーザパルスが走行路面25または天井面27のいずれかに照射されるように回転させる回転機構を介して、測定用台車20に取りけるようにしてもよい。このように、計測センサ12においても、取り付け位置や傾きなどを測定する周囲の状況に応じて変更することが可能である。
さらに、地図生成装置10は、レーザパルスが走行路面25を照射する計測センサと、天井面27を照射する計測センサとの2つ計測センサを有する構成としてもよい。また、計測センサ12は、前述したレーザ測域センサ以外であってもよく、例えば、ステレオカメラやデプスカメラなどの物体の形状情報を取得可能であり、かつ計測時間が記録できるものであればよい。
入力部14は、例えばキーボードやマウスなどであり、処理装置13を操作するデータなどの入力を受け付ける。表示部15は、液晶ディスプレイなどであり、測定結果などを表示する。バッテリ16は、計測センサ11,12、処理装置13、入力部14、および表示部15に電力を供給する。
<処理装置の構成例>
図2は、実施の形態1に係る地図生成装置10が有する処理装置13の構成の一例を示す説明図である。
地図生成部となる処理装置13は、例えばパーソナルコンピュータなどからなり、計測センサ11,12による計測データを処理する。処理装置13は、図示するように、プロセッサ30、メモリ31、および記憶装置32を有する。
プロセッサ30は、処理装置13における制御を司る。メモリ31は、例えばRAM(Random Access Memory)などの揮発性メモリからなり、記憶装置32に格納されているソフトウェアやデータ、あるいはプロセッサ30による演算処理結果などが一時的に格納される。記憶装置32は、例えばハードディスクドライブなどからなり、各種のソフトウェアやデータなどが格納されている。
また、プロセッサ30は、センサ制御部33、二次元地図生成・位置姿勢推定部34、および三次元地図生成部35を有する。
センサ制御部33は、計測センサ11,12の動作を制御する。また、センサ制御部33は、計測センサ11および計測センサ12による計測データを取得する。また、センサ制御部33は、二次元地図生成・位置姿勢推定部34により算出される計測センサ11,12が移動される速度と加速度と角速度と角加速度とを取得する。なお、センサ制御部33は、測定用台車20に取り付けられる、速度センサ、加速度センサ、角速度センサなどから計測センサ11,12が移動される速度と加速度と角速度と角加速度とを取得しても良い。
センサ制御部33は、前回スキャンが完了してから、スキャン周期時間(25ms)が経過した場合に、1周期分のスキャンが完了したと判定する。そして、センサ制御部33は、計測センサ11,12が移動される速度と加速度と角速度と角加速度とに基づいて、1周期の間に計測されている計測データの精度が低下しているのを判定する。例えば、センサ制御部33は、計測センサ11,12が移動される速度と加速度と角速度と角加速度との少なくともいずれか一つが所定の閾値を超えている場合に、1周期の間に計測されている計測データの精度が低下していると判定する。
位置姿勢推定部である二次元地図生成・位置姿勢推定部34は、計測センサ11による距離データに基づいて、測定用台車20の位置姿勢を推定し、位置姿勢推定データを算出する。二次元地図生成・位置姿勢推定部34は、算出した位置姿勢推定データを記憶装置32の後述する地図データ・位置姿勢データ格納部38に格納する。また、測定用台車20の位置姿勢とは、二次元地図上において位置(x,y)および方向θの3つのパラメータで表現される状態を意味する。方向θは、例えばX軸を基準として計測センサ11が何度の方向を向いているかなどと定義する。
二次元地図生成・位置姿勢推定部34は、推定した測定用台車20の位置姿勢に基づき、計測センサ11および計測センサ12が移動される速度と加速度と角速度と角加速度と算出する。例えば、二次元地図生成・位置姿勢推定部34は、測定用台車20の移動前の位置と移動後の位置との差分と、移動に要した時間とに基づき、速度と加速度とを算出する。また、二次元地図生成・位置姿勢推定部34は、測定用台車20の旋回前の方向(姿勢)と旋回後の方向との差分と、旋回に要した時間とに基づき、角速度と角加速度と算出する。
また、二次元地図生成・位置姿勢推定部34は、計測センサ11による距離データに基づいて、測定用台車20の周囲にある物体の二次元地図を生成する。二次元地図生成・位置姿勢推定部34は、生成した二次元地図も同様に、地図データ・位置姿勢データ格納部38に格納する。
1周期の間に計測されている計測データの精度が低下していないと判定される場合、二次元地図生成・位置姿勢推定部34は、センサ制御部33により割り振られる周期を識別するための番号であるインデックスkと、1周期分のスキャンを開始した際の位置姿勢データと、1周期の間に計測された各計測データとを対応付けて記憶装置32に格納する。
一方、1周期の間に計測されている計測データの精度が低下していると判定される場合、二次元地図生成・位置姿勢推定部34は、1ms間隔で計測センサ11,12の位置姿勢データを算出する。そして、二次元地図生成・位置姿勢推定部34は、0ms時(測定開始時刻)の測定用台車20の位置姿勢の位置姿勢データから、1ms間隔で25ms時の測定用台車20の位置姿勢の位置姿勢データまでを算出する。このようにして、二次元地図生成・位置姿勢推定部34は、測定用台車20の位置姿勢推定データを補間する。そして、二次元地図生成・位置姿勢推定部34は、センサ制御部33により割り振られるインデックスと、0ms時における位置姿勢データから、1ms間隔で25ms時における位置姿勢データまでを、1周期の間に計測された各計測データと対応付けて記憶装置32に格納する。
詳細には、二次元地図生成・位置姿勢推定部34は、計測センサが移動される速度と加速度と角速度と角加速度との少なくともいずれか一つに基づいて、1ms間隔で0ms時(測定開始時刻)の測定用台車20の位置姿勢から、25ms時の測定用台車20の位置姿勢までの軌跡(1周期の間に移動した軌跡)を算出する。例えば、二次元地図生成・位置姿勢推定部34は、速度と加速度とに基づいて、各位置(軌跡の構成する各位置)を推定することで、測定開始時刻の測定用台車20の位置姿勢から、25ms時の測定用台車20の位置姿勢までの軌跡を算出する。
そして、二次元地図生成・位置姿勢推定部34は、算出した軌跡を構成するすべての位置姿勢の位置姿勢データを、1周期の間に計測された各計測データと対応付けて記憶装置32に格納する。
なお、二次元地図生成・位置姿勢推定部34は、位置姿勢推定データを補間することに替えて、速度と加速度と角速度と角加速度とのいずれか一つが所定の閾値を超えた際に計測された計測データを記憶部32に格納せずに、破棄しても良い。例えば、二次元地図生成・位置姿勢推定部34は、1ms間隔で、速度と加速度と角速度と角加速度とのいずれか一つが所定の閾値を越えたかを判定し、閾値を越えたかと判定された際に照射されたレーザによって計測された計測データを破棄する。または、二次元地図生成・位置姿勢推定部34は、速度と加速度と角速度と角加速度とのいずれか一つが所定の閾値を超えた周期に計測された計測データをすべて破棄しても良い。
センサ制御部33は、1周期の間に計測された計測データに対応付けするための番号(周期を識別するための番号)であるインデックスkを付与する。そして、センサ制御部33は、番号を付与したその計測データをログデータとして、記憶装置32の後述する第1のログデータ格納部36と第2のログデータ格納部37にそれぞれ格納する。
三次元地図生成部35は、二次元地図生成・位置姿勢推定部34が求めた測定用台車20の位置姿勢から、物体の座標(x、y、z)の算出を行い、その算出結果を記憶装置32の後述する三次元地図格納部39に格納する。
また、三次元地図生成部35は、キャリブレーション処理を実行する。計測センサ11および計測センサ12によるデータの計測開始時刻の大まかな対応はわかっているが、後述するように測定開始時刻は同期していないためにずれが生じている。キャリブレーション処理は、厳密に時刻のずれを補正するためである。
記憶装置32は、第1のログデータ格納部36、第2のログデータ格納部37、地図データ・位置姿勢データ格納部38、および三次元地図格納部39を有している。第1のログデータ格納部36および第2のログデータ格納部37は、前述したセンサ制御部33から出力される距離データがそれぞれ格納される。
地図データ・位置姿勢データ格納部38には、二次元地図生成・位置姿勢推定部34が生成した二次元地図および推定した測定用台車20の位置姿勢推定データが格納される。三次元地図格納部39には、前述したように三次元地図生成部35による算出結果が格納される。
表示部15は、速度と加速度と角速度と角加速度とのいずれか一つが所定の閾値を超えた場合に、計測センサ11,12により取得されている計測データの精度が低下していることを警告する警告画面を表示する。
また、処理装置13は、計測センサ11,12が移動される速度と加速度と角速度と角加速度との少なくともいずれか一つに基づいて、計測センサ11,12が移動される速度を制御する。例えば、処理装置13は、計測センサ11,12が移動される速度と加速度と角速度と角加速度との少なくともいずれかが所定の閾値を超える場合、計測センサ11,12が移動される速度が遅くなるように、モータを制御する。
<ソフトウェアの構成例>
図3は、図2の処理装置13が有する記憶装置32に格納されるソフトウェア構成の一例を示す説明図である。
記憶装置32には、前述した第1のログデータ格納部36、第2のログデータ格納部37、地図データ・位置姿勢データ格納部38、および三次元地図格納部39だけではなく、三次元地図を生成するための様々なソフトウェアが格納されている。
この場合、記憶装置32は、図3に示すように、OS(Operating System)40、初期化プログラム41、レーザ距離センサ制御プログラム42、二次元地図生成・位置姿勢推定プログラム43、三次元座標変換プログラム44、およびキャリブレーションプログラム45が格納されている。
OS40は、入力部14からの入力や表示部15への出力などの入出力機能や記憶装置32の管理などの処理装置13全体を管理するソフトウェアである。初期化プログラム41は、処理装置13に電源が投入された際に、OS40を起動させるプログラムである。
レーザ距離センサ制御プログラム42は、計測センサ11,12(図1)の動作を制御するプログラムである。二次元地図生成・位置姿勢推定プログラム43は、二次元地図生成・位置姿勢推定部34が、計測センサ11による計測結果に基づいて二次元地図データを生成する際、および測定用台車20の位置姿勢を推定する際に用いられるプログラムである。
三次元座標変換プログラム44は、三次元地図生成部35が三次元地図を生成する際に用いるプログラムである。キャリブレーションプログラム45は、計測センサ11がデータ取得した際の時間のずれと計測センサ12がデータ取得した際の時間のずれとをキャリブレーションするプログラムである。
<計測センサの構成例>
図4は、実施の形態1に係る地図生成装置10に備えられる計測センサ11における構成の一例を示す説明図である。なお、図4では、計測センサ11の構成例を示しているが、計測センサ12における構成も同じである。
計測センサ11は、発光部50、リフレクタ51、リフレクタ52、受光部53、回転部54、エンコーダ55、および第1の時計部である内部時計56を有する構成からなる。
計測センサ11は、図4の上方から下方にかけて、発光部50、リフレクタ51、リフレクタ52、受光部53が位置している。
発光部50と受光部53との間には、回転可能に取り付けられた回転部54が設けられている。回転部54の上部には、リフレクタ51が取り付けられており、回転部54の下部には、リフレクタ52が取り付けられている。
発光部50は、レーザパルスを照射する。リフレクタ51は、発光部50が照射したレーザパルスを反射させ、該レーザパルスを水平方向に照射させる。リフレクタ52は、物体から反射したレーザパルスの反射光を、受光部53が受信できるように反射させる。これらリフレクタ51,52は、ミラーなどの反射板からなる。受光部53は、反射光を受光する。
発光部50が照射したレーザパルスは、リフレクタ51によって反射され、計測センサ11の外部に水平照射される。レーザパルスは、照射された物体によって反射され、その反射光がリフレクタ52によって反射し、受光部53によって受光される。発光部50が照射したレーザパルスを受光部53が受光するまでの時間を計測することによって、物体までの距離が算出される。
回動動作を行っている回転部54に取りけられたリフレクタ51,52が回転することによって水平方向に、例えば270°の範囲にてレーザパルスが照射される。また、発光部50は、例えば0.25°程度の刻みによってレーザパルスを照射する。受光部53におけるスキャン1回当たりの時間は、例えば25ms程度である。
回転部54における回転角速度は、該回転部54の移動方向や移動量、角度などを検出するエンコーダ55によって制御され、その角速度は、例えば20Hz程度〜40Hz程度である。また、内部時計56は、発光部50によるレーザパルスが照射されたタイミングの時刻、すなわち測定開始時刻を計測する。
この計測開始時刻は、計測センサ11が270°の範囲にてレーザパルスを照射する場合、基準となる最初のパルス、例えば0°の時にレーザパルスが照射される毎に計測される時間である。
このように、計測センサ11からは、移動体周囲にある物体との距離を計測した距離データおよび測定開始時刻がそれぞれ出力される。なお、計測センサ11の内部時計56と計測センサ12に設けられた第2の時計部となる内部時計56とは、同期していない。
計測センサ11,12の内部時計56を同期させていない場合、これら計測センサ11,12における距離データの測定開始時刻のずれが生じてしまうことになるが、この時間のずれにつては、上述したキャリブレーション処理によって補正を行う。
これによって、計測センサ11,12の内部時計56を同期させハードウェアを不要とすることができ、地図生成装置10の構成を簡単化し、低コストを実現することができる。
<地図生成装置の計測例>
図5は、実施の形態1に係る測定用台車20に搭載された地図生成装置10による計測の一例を示した説明図である。
この図5では、測定用台車20に搭載されている計測センサ11が、周囲にある物体を計測している様子を示したものである。計測センサ11によって2次元的に水平方向にレーザパルスLBが照射され、物体までの距離を計測する。
この測定によって得られるデータは、例えば図5の右側に示すようになり、レーザパルスLBが照射されて測距されたポイントが点となって示される。この点によって、周囲にある物体の形状が表される。計測は、測定用台車20を移動させながら、連続的に距離データを収集する。
<姿勢位置の推定処理>
図6は、実施の形態1に係る計測センサ11による測定用台車20の位置姿勢の推定処理の一例を示す説明図である。
この推定処理は、二次元地図生成・位置姿勢推定部34が二次元地図生成・位置姿勢推定プログラム43に基づいて、実行する処理である。
図2に示す記憶装置32の第1のログデータ格納部36に格納されている距離データは、ログデータとして、例えば距離{d1i}_k、方向{ω1i}_k、および時刻t1_k;i=1,2,…,1081,k=1,2,..,Nが保存されている。kは距離データの通し番号である。この距離データは、時刻t_kにおける移動体周辺にある物体の形状を表している。
ここで、時刻t_kにおける計測センサ11が計測したデータを36_kとし、時刻t_k+1における距離データを36_k+1とする。距離データ36_kと36_k+1は、測定用台車20が移動しながら連続的に計測を行ったデータであり、移動体の移動量は、ある程度限定されているものとする。
距離データ36_kと距離データ36_k+1は、近い位置姿勢で計測を行っているため、物体60のほぼ同じ部分を計測している。よって、2つの距離データの形状には、一致する部分が多くあるため、マッチング処理を行えば、物体60の形状を介して、お互いの相対的な位置関係を知ることができる。
幾何形状データのマッチングの方法としては、例えば、占有格子地図を用いる方法がある。占有格子地図とは、空間を格子状の領域に分割し、レーザによって計測できる物体の有無を各領域で表現する方法である。例えば物体がある場合を1、ない場合を0などと表現する方法である。距離データ36_kを占有格子によって表現すれば、重なりの度合いを評価することができる。このマッチング処理にはICP(Iterative Closest Point)法などを用いてもよい。
このマッチング処理を行うためには、適当な座標系を割り当てる必要があり、座標系としては、例えば36_1の位置を原点、計測センサ11の0°をx軸方向などとすればよい。このような割り当て方は、一例を示したものであり、例えば別の割り当て方としては、距離データを基準として座標を決定してもよい。例えば、計測した距離データに緯度経度が既知の物体が含まれれば、この点を基準として世界測地系の座標を用いてもよい。
一旦座標系が決定されれば、距離データ36_k+1から時刻t_kにおける測定用台車20の位置が確定する。上記の距離データをk=1から順に重ね合わせていき図6の右側に示すように、物体60の配置図である地図61aを拡張しながら、位置姿勢61bを算出していく。
上記のように、地図生成から位置姿勢推定のサイクルをログデータすべてに対して行うことで、測定用台車20の位置姿勢(xk,yk,θk,tk)61bを算出する。このようにして、測定用台車20の位置姿勢推定データが算出される。
ここで、測定用台車20の移動速度に対して計測周期が遅い場合や、計測センサ12の距離データに欠損がある場合(すなわち、計測データの精度が低下しているような場合)には、位置姿勢推定データを補間する必要がある。例えば、計測センサ12のスキャン周期が25msであり、キャリブレーションの精度を1msで行うためには、位置姿勢推定データを1ms間隔で求める必要があるため、補間処理を行う。
補間処理を行った場合、二次元地図生成・位置姿勢推定部34は、0ms(測定開始時刻)から25msまで1ms間隔で計測センサ11,12の位置姿勢と、各位置姿勢にて計測された計測データとを算出する。すなわち、二次元地図生成・位置姿勢推定部34は、測定開始時刻における測定用台車20の位置姿勢(xk0,yk0,θk0,tk0)から、25ms経過時における測定用台車20の位置姿勢(xk25,yk25,θk25,tk25)まで1ms間隔で算出する。このようにして、測定用台車20の位置姿勢推定データを補間する。
ここでは、計測センサ11のデータのみを用いて二次元地図を生成し、位置の推定を行ったが、あらかじめ地図データが存在する場合は、これを用いて測定用台車20の位置姿勢を推定すればよく、地図を生成する必要はない。
<三次元地図の生成例>
続いて、三次元地図の生成技術について説明する。
図7は、実施の形態1に係る地図生成装置10による三次元地図の生成の一例を示す説明図である。
図7において、測定用台車20は、移動しながら周囲にある物体60を計測し、計測センサ11の距離データ(36_k)と計測センサ12の距離データ(37_k)とを記憶装置32に格納する。ここで、k番目の距離データ角度ω2kiのデータは、点72を計測しており、その距離d2kiを距離71とする。
すでに述べたように、計測センサ11のログデータから、測定用台車20の位置姿勢(x_k,y_k,θ_k,t_k)61bの系列を算出することができる。
このとき、距離(d2ki)71を以下の(式1)に適用すれば、計測センサ12が計測した点72の三次元座標(x,y,z)を求めることができる。
(式1)におけるベクトルX’は、計測センサ12のk番目の距離d2kiをx−y平面直交座標系で表現したベクトルである。
a,b,cは、計測センサ11と計測センサ12との位置の差を表し、α,β,γは、相対的な姿勢をそれぞれ表している。U(α,β,γ,a,b,c)は、原点を中心としてベクトルを回転、平行移動させる同次変換行列であり、これをX’に演算すると計測センサ11を原点とした座標系に変換できる。
U(0,0,θ_k,x_k,y_k,0)は、計測センサ11の位置姿勢、すなわち測定用台車20の位置姿勢を表す同次変換行列であり、さらに、これを演算することによって、計測センサ12の位置姿勢を地図の座標系に変換する。上記の変換を行うことによって実際に計測した物体の座標を算出することができる。
<地図生成装置の動作例>
次に、地図生成装置10による三次元地図の生成について説明する。
図8は、実施の形態1に係る地図生成装置10による距離データの計測開始から三次元地図の生成までの処理の一例を示すフローチャートである。
まず、地図生成装置10による距離データの計測が開始される(S801)。
次に、処理装置13のセンサ制御部33は、計測センサ11および計測センサ12による計測データを取得する(S802,S803)。
次に、地図を生成したい範囲において、測定用台車20が移動される(S804)。そして、センサ制御部33は、計測センサ11および計測センサ12が移動される速度と加速度と角速度と角加速度とを取得する。
次に、センサ制御部33は、計測センサ11、12による1周期分のスキャンが完了したか判定する(S805)。センサ制御部33が、計測センサ11、12による1周期分のスキャンが完了していないと判定する場合(S805−No)、S802へ戻る。一方、センサ制御部33が、計測センサ11、12による1周期分のスキャンが完了したと判定する場合(S805−Yes)、S806へ進む。例えば、センサ制御部33は、測定開始時刻から、スキャン周期時間(25ms)が経過した場合に1周期分のスキャンが完了したと判定する。
次に、センサ制御部33は、計測センサ11,12により取得された、計測データの精度が低下しているか否かを判定する(S806)。センサ制御部33が、計測センサ11,12により取得されている計測データの精度が低下していないと判定する場合(S806−No)、S809へ進む。一方、センサ制御部33が、計測センサ11,12により取得された計測データの精度が低下していると判定する場合(S806−Yes)、S807へ進む。例えば、S804にて取得した速度と加速度と角速度と角加速度との少なくともいずれかが所定の閾値を超えている場合に、センサ制御部33は、計測センサ11,12により取得された計測データの精度が低下していると判定する。
次に、二次元地図生成・位置姿勢推定部34は、1ms間隔で計測センサ11,12の位置姿勢データを算出する。そして、二次元地図生成・位置姿勢推定部34は、0ms時(測定開始時刻)の測定用台車20の位置姿勢の位置姿勢データから、1ms間隔で25ms時の測定用台車20の位置姿勢の位置姿勢データまでを算出する(S807)。
次に、センサ制御部33は、インデックスkと、1ms間隔ごとに算出した各位置姿勢データと、1周期の間に計測された各計測データとを対応付けて記憶装置32に格納する(S808)。S808の次は、S810へ進む。
S806にてNoだった場合S809にて、二次元地図生成・位置姿勢推定部34は、センサ制御部33により割り振られるインデックスkと、1周期分のスキャンを開始した際の位置姿勢データと、1周期の間に計測された各計測データとを対応付けて記憶装置32に格納する(S809)。
次に、地図を生成したいすべての範囲の計測が終了するまで、上述した処理が繰り返される(S810)測定用台車20を移動させることによって地図を生成したいすべての範囲の計測が終了すると(S810−Yes)、三次元地図生成部35による三次元地図の生成処理が実行される(S811)。この処理は、三次元地図生成部35が、三次元座標変換プログラム44に基づいて、記憶装置32の第2のログデータ格納部37に格納されたログデータおよび地図データ・位置姿勢データ格納部38に格納された位置姿勢推定データから三次元座標(x,y,z)を生成する。
上記した処理を実行することによって、三次元データを復元することが可能となる。
<測定時刻のずれの影響>
図9は、実施の形態1に係る計測センサ11と計測センサ12とにおける測定開始時刻のずれの影響を示す説明図である。この図9においては、計測の様子を上方から俯瞰し、二次元的に示している。この図9を用いて、計測センサ11と計測センサ12との測定開始時刻のずれの影響について説明する。
まず、移動経路104に沿って測定用台車20を移動させて計測を行い、計測センサ11の距離データ、および計測センサ12の距離データを計測する。また、計測センサ11によるこの計測結果に基づいて、測定用台車20の位置姿勢推定データ105,106,101,102が得られている。
測定用台車20の移動速度に対して計測周期が遅い場合や、計測センサ12の距離データに欠損がある場合には、位置姿勢推定データを補間する必要がある。例えば、計測センサ12のスキャン周期が25msであり、キャリブレーションの精度を1msで行うためには、位置姿勢推定データを1ms間隔で求める必要があるため、補間処理を行う。
補間処理では、二次元地図生成・位置姿勢推定部34は、1周期(25ms)の間に計測センサ11,12が移動された軌跡を算出する。すなわち、1ms間隔で計測センサ11,12の位置姿勢データを算出する。そして、二次元地図生成・位置姿勢推定部34は、0ms時(測定開始時刻)の測定用台車20の位置姿勢の位置姿勢データから、1ms間隔で25ms時の測定用台車20の位置姿勢の位置姿勢データまでを算出する。
なお、補間の方法は、例えば線形補間や、スプライン補間などで行うようにしてもよい。また、位置推定結果に載っている誤差の影響を考慮したカルマンフィルタなど状態推定法による補間を行ってもよい。
<実施の形態1の効果>
以上説明した実施の形態1によれば、計測センサ11,12が移動される速度と加速度と角速度と角加速度との少なくともいずれか一つに基づいて、計測データを補間し、または計測センサ11,12が移動される速度を制御することで、測定用台車20の速度や加速度が変化することで、生成される地図の制度が低下することを抑止できるようになる。
また、速度と加速度と角速度と角加速度との少なくともいずれか一つが閾値を超えている場合に、計測センサ11,12により取得されている計測データ11,12の精度が低下していることを警告する警告画面を表示することで、計測データ11,12の精度が低下していることをユーザに認識させることができる。
また、速度と加速度と角速度と角加速度との少なくともいずれか一つが閾値を超えている際に取得された計測データを破棄することで、計測の失敗を防止でき、再計測なく短時間で地図を生成できる。
(実施の形態2)
図11(a)に示されるように、柱や壁の裏側など測定用台車20から見て死角になる領域には、計測センサ11、12から照射されるレーザパルスが通過できない。そのため、レーザパルスが通過していない領域に未計測領域110が形成されることがある。レーザパルスが通過していない未形成領域が存在する場合、地図に欠損が発生する可能性がある。
実施の形態2では、図11(b)に示されるように、計測センサ11、12から照射されるレーザパルスが通過した計測領域120とレーザパルスが通過していない未計測領域110とを異なる態様で表示する。これによって、未計測領域110があることをユーザに認識させることができ、地図を生成する精度を向上可能にしている。以下、本発明の実施の形態2を、実施の形態1と異なる点を主に、図10〜図12を用いて説明する。
<地図生成装置の動作例>
図10は、実施の形態2に係る地図生成装置10による距離データの計測開始から三次元地図の生成までの処理の一例を示すフローチャートである。
まず、地図生成装置10による距離データの計測が開始される(S1001)。
次に、処理装置13のセンサ制御部33は、計測センサ11および計測センサ12による計測データを取得する(S1002,S1003)。
次に、二次元地図生成・位置姿勢推定部34は、レーザパルスが照射されて測距されたポイント(点)の物体座標を算出し、算出した物体座標を保持する(S1004)。
次に、二次元地図生成・位置姿勢推定部34は、計測センサ11,12から、レーザパルスが照射されて測距されたポイント(点)までの空間に含まれるすべての座標を計測済空間座標として推定し、推定した計測済空間座標を保持する(S1005)。
次に、地図を生成したい範囲において、測定用台車20が移動される(S1006)。
次に、センサ制御部33は、計測センサ11、12による1周期分のスキャンが完了したか判定する(S1007)。センサ制御部33が、計測センサ11、12による1周期分のスキャンが完了していないと判定する場合(S1007−No)、S1002へ戻る。一方、センサ制御部33が、計測センサ11、12による1周期分のスキャンが完了したと判定する場合(S1007−Yes)、S1008へ進む。
次に、二次元地図生成・位置姿勢推定部34は、保持している物体座標と計測済空間座標以外の座標を未計測空間座標として算出する(S1008)。
次に、二次元地図生成・位置姿勢推定部34は、互いに隣り合う未計測空間座標と計測済空間座標とを境界座標として算出する(S1009)。なお、二次元地図生成・位置姿勢推定部34は、未計測空間座標と計測済空間座標との間に位置する座標を境界座標として算出しても良い。
次に、二次元地図生成・位置姿勢推定部34は、S1009にて算出した境界座標に基づく境界の中心点と直行する直線を算出する。そして、二次元地図生成・位置姿勢推定部34は、算出した直線を構成する座標と、計測済空間座標とに基づき、疑似画像座標を算出する(S1010)。例えば、二次元地図生成・位置姿勢推定部34は、計測領域に含まれる座標であって、かつ算出した直線を構成する座標から、所定間隔ごとに座標を抽出し、抽出した座標を疑似画像座標として算出する。
次に、二次元地図生成・位置姿勢推定部34は、計測データから計測センサ11、12の現在位置を示す現在位置座標を算出する(S1011)。
次に、二次元地図生成・位置姿勢推定部34は、S1004にて算出された物体座標と、S1005にて算出された計測済空間座標と、S1008にて算出した未計測空間座標と、S1009にて算出した境界座標と、S1010にて算出した疑似画像座標と、S1011にて算出した現在位置座標とに基づき、図11(b)に示される未計測領域表示画面を生成し、生成した未計測領域表示画面を表示部15に表示させる(S1012)。例えば、二次元地図生成・位置姿勢推定部34は、S1004にて算出した物体座標に基づいて、側壁面150の画像を生成し、S1005にて算出した計測済空間座標に基づいて計測領域120を第1の態様で表示する画像を生成し、S1008にて算出した未計測空間座標に基づいて未計測領域110を第二態様で表示する画像を生成し、S1009にて算出した境界座標に基づいて境界130の画像を生成し、S1010にて算出した疑似画像表示座標に表示される疑似画像140を生成し、S1011にて算出した現在位置座標に表示される測定用台車画像160を生成し、生成した各画像を含む未計測領域表示画面を表示部15に表示させる。なお、二次元地図生成・位置姿勢推定部34は、レーザパルスを未計測領域110に通過させるための計測センサ11,12の姿勢を示す(例えば、測定用台車20が境界130に接近または、測定用台車20が境界130と並行して走行していることを示す)疑似画像を生成する。また、二次元地図生成・位置姿勢推定部34は、未計測領域110については、なんら画像を生成しないようにしても良い。
そして、図11(b)に示されるように、表示部15は、計測センサ11、12から照射されるレーザパルスが通過した計測領域120と、レーザパルスが通過していない未計測領域110との境界130を表示する。また、表示部15は、計測領域120と未計測領域110とを異なる態様で表示する。また、表示部15は、境界130の中心点と直行する直線上に所定間隔ごとに疑似画像140を表示するとともに、計測センサの現在位置を示す測定用台車画像160を表示する。
<実施の形態2の効果>
以上説明した実施の形態2によれば、実施の形態1と異なる効果として、計測センサ11,12から照射されるレーザが通過した計測領域120とレーザが通過していない未計測領域110との境界を表示することで、未計測領域110があることをユーザに認識させることができ、漏れのない地図を生成可能になる。
また、計測センサ11,12の現在位置と、レーザを未計測領域110に通過させるための計測センサ11,12の位置や姿勢とを表示することで、どのように測定用台車20を移動させれば未計測領域110を計測できるのかをユーザに示すことが可能になる。そして、未計測領域110の計測が容易になる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
なお、本発明は上記した実施の形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加、削除、置換をすることが可能である。