特許第6525148号(P6525148)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社パスコの特許一覧 ▶ 国立大学法人神戸大学の特許一覧

特許6525148軌跡推定方法、軌跡推定装置及び軌跡推定プログラム
<>
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000011
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000012
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000013
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000014
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000015
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000016
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000017
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000018
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000019
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000020
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000021
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000022
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000023
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000024
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000025
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000026
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000027
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000028
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000029
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000030
  • 特許6525148-軌跡推定方法、軌跡推定装置及び軌跡推定プログラム 図000031
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6525148
(24)【登録日】2019年5月17日
(45)【発行日】2019年6月5日
(54)【発明の名称】軌跡推定方法、軌跡推定装置及び軌跡推定プログラム
(51)【国際特許分類】
   G05D 1/02 20060101AFI20190527BHJP
   G01B 11/00 20060101ALI20190527BHJP
【FI】
   G05D1/02 H
   G01B11/00 H
【請求項の数】6
【全頁数】29
(21)【出願番号】特願2015-116954(P2015-116954)
(22)【出願日】2015年6月9日
(65)【公開番号】特開2017-4228(P2017-4228A)
(43)【公開日】2017年1月5日
【審査請求日】2018年2月15日
(73)【特許権者】
【識別番号】000135771
【氏名又は名称】株式会社パスコ
(73)【特許権者】
【識別番号】504150450
【氏名又は名称】国立大学法人神戸大学
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100165191
【弁理士】
【氏名又は名称】河合 章
(74)【代理人】
【識別番号】100180806
【弁理士】
【氏名又は名称】三浦 剛
(74)【代理人】
【識別番号】100161089
【弁理士】
【氏名又は名称】萩原 良一
(74)【代理人】
【識別番号】100196829
【弁理士】
【氏名又は名称】中澤 言一
(72)【発明者】
【氏名】深尾 隆則
(72)【発明者】
【氏名】吉田 武史
(72)【発明者】
【氏名】佐藤 俊明
(72)【発明者】
【氏名】小澤 淳眞
(72)【発明者】
【氏名】李 勇鶴
【審査官】 加藤 啓
(56)【参考文献】
【文献】 特開2012−168788(JP,A)
【文献】 特表2012−526335(JP,A)
【文献】 特開2011−141221(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/02
G01B 11/00
(57)【特許請求の範囲】
【請求項1】
ループ状の経路を2周移動する間に測定された複数の地物の位置を所定の測定時間毎に測定し、測定した地物のセンサ座標系の位置を示す点群を出力するセンサを搭載した移動体の軌跡を推定する方法であって、
前記センサから出力された点群から特徴部をフレーム毎に抽出し、
所定のフレームに含まれる前記特徴部の位置と、次のフレームに含まれる前記特徴部の位置との関係からフレーム間の並進ベクトル及び回転行列を算出し、
1周目の所定のフレームから当該フレームに対応する2周目のフレームまでの前記並進ベクトル及び前記回転行列を蓄積した蓄積並進ベクトル及び蓄積回転行列を前記2周目の全てのフレームについてそれぞれ算出し、
前記1周目の所定のフレームに含まれる前記特徴部の位置と当該フレームに対応する前記2周目のフレームに含まれる前記特徴部の位置関係を示す直接並進ベクトル及び直接回転行列を前記2周目の全てのフレームについてそれぞれ算出し、
前記2周目の所定のフレームに関する前記蓄積並進ベクトル及び前記蓄積回転行列と前記直接並進ベクトル及び前記直接回転行列とから、前記蓄積並進ベクトルと前記直接並進ベクトルとの差を示す推定誤差ベクトル及び前記蓄積回転行例と前記直接回転行列の差を示す推定誤差行列を前記2周目の全てのフレームについてそれぞれ算出し、
所定のフレームにおける前記推定誤差ベクトルと次のフレームにおける前記推定誤差ベクトルとに基づいた当該所定のフレームについての推定誤差変化量を前記2周目の全てのフレームについてそれぞれ算出し、
前記2周目の最後のフレームの推定誤差ベクトルに、前記2周目の全てのフレームについての前記推定誤差変化量の総和に対する前記2周目の所定のフレームの前記推定誤差変化量の比率を乗じて算出された補正ベクトルを、前記2周目の全てのフレームについてそれぞれ求め、
前記2周目の所定のフレーム間についての前記並進ベクトルを対応する前記補正ベクトルに基づいて補正した第1の補正並進ベクトルを前記2周目の全てのフレーム間についてそれぞれ算出し、
前記第1の補正並進ベクトル及び前記回転行列を使用して前記2周目の軌跡を推定する
ことを含むことを特徴とする軌跡推定方法。
【請求項2】
前記特徴部は、平面であり、
前記特徴部を抽出することは、
前記センサから出力された点群をフレーム毎に取得し、
前記取得された点群から、平面を形成する点群を平面点群としてフレーム毎に抽出し、
前記平面点群により形成される前記平面を抽出することを含む、請求項1に記載の軌跡推定方法。
【請求項3】
前記2周目の各フレームにおける推定誤差変化量を、当該フレームに対応付けられた前記1周目の各フレームに対応付け、
前記1周目の最後のフレームの推定誤差ベクトルに、前記1周目の全てのフレームに対応付けられた前記推定誤差変化量の総和に対する前記1周目の所定のフレームの前記推定誤差変化量の比率を乗じて算出された補正ベクトルを、前記1周目の全てのフレームについてそれぞれ求め、
前記1周目の所定のフレーム間についての前記並進ベクトルを対応する前記補正ベクトルに基づいて補正した第2の補正並進ベクトルを前記1周目の全てのフレーム間についてそれぞれ算出し、
前記第2の補正並進ベクトル及び前記回転行列を使用して前記1周目の軌跡を推定することを更に含む、請求項1又は2に記載の軌跡推定方法。
【請求項4】
ループ状の経路を2周移動する間に測定された複数の地物の位置を所定の測定時間毎に測定し、測定した地物のセンサ座標系の位置を示す点群を出力するセンサを搭載した移動体の軌跡を推定する方法であって、
前記センサから出力された点群から特徴部をフレーム毎に抽出し、
所定のフレームに含まれる前記特徴部の位置と、次のフレームに含まれる前記特徴部の位置との関係からフレーム間の並進ベクトル及び回転行列を算出し、
1周目の所定のフレームから当該フレームに対応する2周目のフレームまでの前記並進ベクトル及び前記回転行列を蓄積した蓄積並進ベクトル及び蓄積回転行列を前記2周目の全てのフレームについてそれぞれ算出し、
前記1周目の所定のフレームに含まれる前記特徴部の位置と当該フレームに対応する前記2周目のフレームに含まれる前記特徴部の位置関係を示す直接並進ベクトル及び直接回転行列を前記2周目の全てのフレームについてそれぞれ算出し、
前記2周目の所定のフレームに関する前記蓄積並進ベクトル及び前記蓄積回転行列と前記直接並進ベクトル及び前記直接回転行列とから、前記蓄積並進ベクトルと前記直接並進ベクトルとの差を示す推定誤差ベクトル及び前記蓄積回転行例と前記直接回転行列の差を示す推定誤差行列を前記2周目の全てのフレームについてそれぞれ算出し、
所定のフレームにおける前記推定誤差ベクトルと次のフレームにおける前記推定誤差ベクトルとに基づいた当該所定のフレームについての推定誤差変化量を前記2周目の全てのフレームについてそれぞれ算出し、
前記2周目の各フレームにおける推定誤差変化量を、当該フレームに対応付けられた前記1周目の各フレームに対応付け、
前記1周目の最後のフレームの推定誤差ベクトルに、前記1周目の全てのフレームに対応付けられた前記推定誤差変化量の総和に対する前記1周目の所定のフレームの前記推定誤差変化量の比率を乗じて算出された補正ベクトルを、前記1周目の全てのフレームについてそれぞれ求め、
前記1周目の所定のフレーム間についての前記並進ベクトルを対応する前記補正ベクトルに基づいて補正した補正並進ベクトルを前記1周目の全てのフレーム間についてそれぞれ算出し、
記補正並進ベクトル及び前記回転行列を使用して前記1周目の軌跡を推定する
ことを含むことを特徴とする軌跡推定方法。
【請求項5】
ループ状の経路を2周移動する間に測定された複数の地物の位置を所定の測定時間毎に測定し、測定した地物のセンサ座標系の位置を示す点群を出力するセンサを搭載した移動体の軌跡を推定する軌跡推定装置であって、
前記センサから出力された点群から特徴部をフレーム毎に抽出する抽出部と、
所定のフレームに含まれる前記特徴部の位置と、次のフレームに含まれる前記特徴部の位置との関係からフレーム間の並進ベクトル及び回転行列を算出する算出部と、
1周目の各フレームから当該フレームに対応する2周目のフレームまでの前記並進ベクトル及び前記回転行列を蓄積した蓄積並進ベクトル及び蓄積回転行列を前記2周目のフレーム毎に算出し、
前記1周目の各フレームに含まれる前記特徴部の位置と当該フレームに対応する前記2周目のフレームに含まれる前記特徴部の位置とから、前記1周目の各フレームに含まれる前記特徴部と前記2周目の対応するフレームに含まれる前記特徴部との間の位置関係を示す直接並進ベクトル及び直接回転行列を前記2周目のフレーム毎に算出し、
前記蓄積並進ベクトル及び前記蓄積回転行列と前記直接並進ベクトル及び前記直接回転行列とから、前記蓄積並進ベクトルと前記直接並進ベクトルとの差を示す推定誤差ベクトル及び推定誤差行列を前記2周目のフレーム毎に算出し、
所定のフレームにおける前記推定誤差ベクトルと次のフレームにおける前記推定誤差ベクトルとの間の距離を示す推定誤差変化量を前記2周目のフレーム毎に算出し、
前記2周目の最後のフレームの推定誤差ベクトルに、各フレームの推定誤差変化量に応じた比率を乗じて算出された補正ベクトルに基づいて、前記2周目の前記並進ベクトルを補正した補正並進ベクトルを算出し、
記補正並進ベクトル及び前記回転行列を使用して前記2周目の軌跡を推定する推定部と
を備えることを特徴とする軌跡推定装置。
【請求項6】
ループ状の経路を2周移動する間に測定された複数の地物の位置を所定の測定時間毎に測定し、測定した地物のセンサ座標系の位置を示す点群を出力するセンサを搭載した移動体の軌跡を推定する軌跡推定プログラムであって、
前記センサから出力された点群から特徴部をフレーム毎に抽出し、
所定のフレームに含まれる前記特徴部の位置と、次のフレームに含まれる前記特徴部の位置との関係からフレーム間の並進ベクトル及び回転行列を算出し、
1周目の所定のフレームから当該フレームに対応する2周目のフレームまでの前記並進ベクトル及び前記回転行列を蓄積した蓄積並進ベクトル及び蓄積回転行列を前記2周目の全てのフレームについてそれぞれ算出し、
前記1周目の所定のフレームに含まれる前記特徴部の位置と当該フレームに対応する前記2周目のフレームに含まれる前記特徴部の位置関係を示す直接並進ベクトル及び直接回転行列を前記2周目の全てのフレームについてそれぞれ算出し、
前記2周目の所定のフレームに関する前記蓄積並進ベクトル及び前記蓄積回転行列と前記直接並進ベクトル及び前記直接回転行列とから、前記蓄積並進ベクトルと前記直接並進ベクトルとの差を示す推定誤差ベクトル及び前記蓄積回転行例と前記直接回転行列の差を示す推定誤差行列を前記2周目の全てのフレームについてそれぞれ算出し、
所定のフレームにおける前記推定誤差ベクトルと次のフレームにおける前記推定誤差ベクトルとに基づいた当該所定のフレームについての推定誤差変化量を前記2周目の全てのフレームについてそれぞれ算出し、
前記2周目の最後のフレームの推定誤差ベクトルに、前記2周目の全てのフレームについての前記推定誤差変化量の総和に対する前記2周目の所定のフレームの前記推定誤差変化量の比率を乗じて算出された補正ベクトルを、前記2周目の全てのフレームについてそれぞれ求め、
前記2周目の所定のフレーム間についての前記並進ベクトルを対応する前記補正ベクトルに基づいて補正した補正並進ベクトルを前記2周目の全てのフレーム間についてそれぞれ算出し、
前記補正並進ベクトル及び前記回転行列を使用して前記2周目の軌跡を推定する
ことをコンピュータに実行させることを特徴とする軌跡推定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、軌跡推定方法、軌跡推定装置及び軌跡推定プログラムに関する。
【背景技術】
【0002】
軌跡推定方法として、レーザセンサ又は撮像装置等のセンサを用いて周囲の地物の位置を測定し、測定された周囲の地物の位置に基づいて自己位置を推定する軌跡推定方法が知られている。このような軌跡推定方法では、測定中における各センサの位置及び姿勢が推定され、推定された位置及び姿勢と周囲の地物の位置とに基づいて自己位置が推定される。
【0003】
例えば、非特許文献1には、移動ロボットに搭載されたカメラによって撮影された複数の画像に含まれる複数の特徴点座標に基づいてカメラの位置姿勢が推定され、推定された位置姿勢から移動ロボットの自己位置が推定される軌跡推定方法が記載されている。この軌跡推定方法では、撮影された最初の画像から特徴点が抽出され、特徴点追跡手法によって移動後の画像に含まれる特徴点が追跡され、各画像における特徴点に基づいて並進ベクトル及び回転行列が算出される。そして、算出された複数の並進ベクトル及び回転行列に基づいて当該カメラの移動軌跡が推定される。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】川西亮輔, 外2名, “全方位カメラを用いた周囲環境測定のための特徴点フローモデルによる位置姿勢推定”, 映像情報メディア学会技術報告, 2009年2月, Vol.33, No.11, pp.65-68
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来の軌跡推定方法においては、複数の並進ベクトル及び回転行列のそれぞれにおいて誤差が生じているため、カメラの移動軌跡は、各並進ベクトル及び回転行列の誤差の蓄積を含むものとなっていた。例えば、カメラを搭載した移動ロボットが、出発した地点に再び戻ってくるような場合、推定された移動軌跡上の出発地点と推定された移動軌跡上の到着地点との間に大きなずれが生じるという問題があった。
【0006】
本発明は、このような課題を解決すべくなされたものであり、出発地点に再び戻る移動を行う移動体の自己位置推定の精度を向上させることを可能とする軌跡推定方法、軌跡推定装置及び軌跡推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る軌跡推定方法は、ループ状の経路を2周移動する間に測定された複数の地物の位置を所定の測定時間毎に測定し、測定した地物のセンサ座標系の位置を示す点群を出力するセンサを搭載した移動体の軌跡を推定する方法であって、センサから出力された点群から特徴部をフレーム毎に抽出し、所定のフレームに含まれる特徴部の位置と、次のフレームに含まれる特徴部の位置との関係からフレーム間の並進ベクトル及び回転行列を算出し、1周目の所定のフレームから当該フレームに対応する2周目のフレームまでの並進ベクトル及び回転行列を蓄積した蓄積並進ベクトル及び蓄積回転行列を2周目の全てのフレームについてそれぞれ算出し、1周目の所定のフレームに含まれる特徴部の位置と当該フレームに対応する2周目のフレームに含まれる特徴部の位置関係を示す直接並進ベクトル及び直接回転行列を2周目の全てのフレームについてそれぞれ算出し、2周目の所定のフレームに関する蓄積並進ベクトル及び蓄積回転行列と直接並進ベクトル及び直接回転行列とから、蓄積並進ベクトルと直接並進ベクトルとの差を示す推定誤差ベクトル及び蓄積回転行例と直接回転行列の差を示す推定誤差行列を2周目の全てのフレームについてそれぞれ算出し、所定のフレームにおける推定誤差ベクトルと次のフレームにおける推定誤差ベクトルとに基づいた当該所定のフレームについての推定誤差変化量を2周目の全てのフレームについてそれぞれ算出し、2周目の最後のフレームの推定誤差ベクトルに、2周目の全てのフレームについての推定誤差変化量の総和に対する2周目の所定のフレームの推定誤差変化量の比率を乗じて算出された補正ベクトルを、2周目の全てのフレームについてそれぞれ求め、2周目の所定のフレーム間についての並進ベクトルを対応する補正ベクトルに基づいて補正した補正並進ベクトルを2周目の全てのフレーム間についてそれぞれ算出し、補正並進ベクトル及び回転行列を使用して2周目の軌跡を推定することを含む。
【0008】
また、本発明に係る軌跡推定方法において、特徴部は、平面であり、特徴部を抽出することは、センサから出力された点群をフレーム毎に取得し、取得された点群から、平面を形成する点群を平面点群としてフレーム毎に抽出し、平面点群により形成される平面を抽出することを含むことが好ましい。
【0009】
また、本発明に係る軌跡推定方法において、2周目の各フレームにおける推定誤差変化量を、当該フレームに対応付けられた1周目の各フレームに対応付け、1周目の最後のフレームの推定誤差ベクトルに、1周目の全てのフレームに対応付けられた推定誤差変化量の総和に対する1周目の所定のフレームの推定誤差変化量の比率を乗じて算出された補正ベクトルを、1周目の全てのフレームについてそれぞれ求め、1周目の所定のフレーム間についての並進ベクトルを対応する補正ベクトルに基づいて補正した第2の補正並進ベクトルを1周目の全てのフレーム間についてそれぞれ算出し、第2の補正並進ベクトル及び回転行列を使用して1周目の軌跡を推定することを更に含むことが好ましい。
【0010】
本発明に係る他の軌跡推定方法は、ループ状の経路を2周移動する間に測定された複数の地物の位置を所定の測定時間毎に測定し、測定した地物のセンサ座標系の位置を示す点群を出力するセンサを搭載した移動体の軌跡を推定する方法であって、センサから出力された点群から特徴部をフレーム毎に抽出し、所定のフレームに含まれる特徴部の位置と、次のフレームに含まれる特徴部の位置との関係からフレーム間の並進ベクトル及び回転行列を算出し、1周目の所定のフレームから当該フレームに対応する2周目のフレームまでの並進ベクトル及び回転行列を蓄積した蓄積並進ベクトル及び蓄積回転行列を2周目の全てのフレームについてそれぞれ算出し、1周目の所定のフレームに含まれる特徴部の位置と当該フレームに対応する2周目のフレームに含まれる特徴部の位置関係を示す直接並進ベクトル及び直接回転行列を2周目の全てのフレームについてそれぞれ算出し、2周目の所定のフレームに関する蓄積並進ベクトル及び蓄積回転行列と直接並進ベクトル及び直接回転行列とから、蓄積並進ベクトルと直接並進ベクトルとの差を示す推定誤差ベクトル及び蓄積回転行例と直接回転行列の差を示す推定誤差行列を2周目の全てのフレームについてそれぞれ算出し、所定のフレームにおける推定誤差ベクトルと次のフレームにおける推定誤差ベクトルとに基づいた当該所定のフレームについての推定誤差変化量を2周目の全てのフレームについてそれぞれ算出し、2周目の各フレームにおける推定誤差変化量を、当該フレームに対応付けられた1周目の各フレームに対応付け、1周目の最後のフレームの推定誤差ベクトルに、1周目の全てのフレームに対応付けられた推定誤差変化量の総和に対する1周目の所定のフレームの推定誤差変化量の比率を乗じて算出された補正ベクトルを、1周目の全てのフレームについてそれぞれ求め、1周目の所定のフレーム間についての並進ベクトルを対応する補正ベクトルに基づいて補正した第2の補正並進ベクトルを1周目の全てのフレーム間についてそれぞれ算出し、第2の補正並進ベクトル及び回転行列を使用して1周目の軌跡を推定することを含む。
【0011】
本発明に係る軌跡推定装置は、ループ状の経路を2周移動する間に測定された複数の地物の位置を所定の測定時間毎に測定し、測定した地物のセンサ座標系の位置を示す点群を出力するセンサを搭載した移動体の軌跡を推定する軌跡推定装置であって、センサから出力された点群から特徴部をフレーム毎に抽出する抽出部と、所定のフレームに含まれる特徴部の位置と、次のフレームに含まれる特徴部の位置との関係からフレーム間の並進ベクトル及び回転行列を算出する算出部と、1周目の各フレームから当該フレームに対応する2周目のフレームまでの並進ベクトル及び回転行列を蓄積した蓄積並進ベクトル及び蓄積回転行列を2周目のフレーム毎に算出し、1周目の各フレームに含まれる特徴部の位置と当該フレームに対応する2周目のフレームに含まれる特徴部の位置とから、1周目の各フレームに含まれる特徴部と2周目の対応するフレームに含まれる特徴部との間の位置関係を示す直接並進ベクトル及び直接回転行列を2周目のフレーム毎に算出し、蓄積並進ベクトル及び蓄積回転行列と直接並進ベクトル及び直接回転行列とから、蓄積並進ベクトルと直接並進ベクトルとの差を示す推定誤差ベクトル及び推定誤差行列を2周目のフレーム毎に算出し、所定のフレームにおける推定誤差ベクトルと次のフレームにおける推定誤差ベクトルとの間の距離を示す推定誤差変化量を2周目のフレーム毎に算出し、2周目の最後のフレームの推定誤差ベクトルに、各フレームの推定誤差変化量に応じた比率を乗じて算出された補正ベクトルに基づいて、2周目の並進ベクトルを補正した第2補正並進ベクトルを算出し、第2補正並進ベクトル及び回転行列を使用して2周目の軌跡を推定する推定部とを備える。
【0012】
本発明に係る軌跡推定プログラムは、ループ状の経路を2周移動する間に測定された複数の地物の位置を所定の測定時間毎に測定し、測定した地物のセンサ座標系の位置を示す点群を出力するセンサを搭載した移動体の軌跡を推定する軌跡推定プログラムであって、
センサから出力された点群から特徴部をフレーム毎に抽出し、所定のフレームに含まれる特徴部の位置と、次のフレームに含まれる特徴部の位置との関係からフレーム間の並進ベクトル及び回転行列を算出し、1周目の所定のフレームから当該フレームに対応する2周目のフレームまでの並進ベクトル及び回転行列を蓄積した蓄積並進ベクトル及び蓄積回転行列を2周目の全てのフレームについてそれぞれ算出し、1周目の所定のフレームに含まれる特徴部の位置と当該フレームに対応する2周目のフレームに含まれる特徴部の位置関係を示す直接並進ベクトル及び直接回転行列を2周目の全てのフレームについてそれぞれ算出し、2周目の所定のフレームに関する蓄積並進ベクトル及び蓄積回転行列と直接並進ベクトル及び直接回転行列とから、蓄積並進ベクトルと直接並進ベクトルとの差を示す推定誤差ベクトル及び蓄積回転行例と直接回転行列の差を示す推定誤差行列を2周目の全てのフレームについてそれぞれ算出し、所定のフレームにおける推定誤差ベクトルと次のフレームにおける推定誤差ベクトルとに基づいた当該所定のフレームについての推定誤差変化量を2周目の全てのフレームについてそれぞれ算出し、2周目の最後のフレームの推定誤差ベクトルに、2周目の全てのフレームについての推定誤差変化量の総和に対する2周目の所定のフレームの推定誤差変化量の比率を乗じて算出された補正ベクトルを、2周目の全てのフレームについてそれぞれ求め、2周目の所定のフレーム間についての並進ベクトルを対応する補正ベクトルに基づいて補正した補正並進ベクトルを2周目の全てのフレーム間についてそれぞれ算出し、補正並進ベクトル及び回転行列を使用して2周目の軌跡を推定する
ことをコンピュータに実行させる。
【発明の効果】
【0013】
本発明に係る軌跡推定方法、軌跡推定装置及び軌跡推定プログラムでは、出発地点に再び戻る移動を行う移動体の自己位置推定の精度を向上させることが可能となる。
【図面の簡単な説明】
【0014】
図1】位置推定システムの概要を説明するための模式図である。
図2】位置推定システム1の概略構成の一例を示す図である。
図3】位置推定装置2の概略構成の一例を示す図である。
図4】点群テーブルのデータ構造の一例を示す図である。
図5】位置推定処理の動作フローの一例を示す図である。
図6】1フレームの点群をマッピングした3次元空間の一例を示す模式図である。
図7】平面抽出処理の動作フローの一例を示す図である。
図8】特定の1つのレイヤーにおける各セグメントをマッピングした2次元空間の一例を示す模式図である。
図9】特定の1つのレイヤーにおける各直線状のセグメントをマッピングした2次元空間の一例を示す模式図である。
図10】特定の1つのフレームにおける各直線状のセグメントをマッピングした3次元空間の一例を示す模式図である。
図11】直線状のセグメントにおける法線ベクトルの一例を説明するための模式図である。
図12】特定の1つのフレームにおける各直線状のセグメントの法線ベクトルをマッピングした3次元空間の一例を示す模式図である。
図13】特定の1つのフレームにおける平面点群をマッピングした3次元空間の一例を示す模式図である。
図14】並進ベクトル・回転行列算出処理の動作フローの一例を示す図である。
図15】隣り合う2つのフレームの平面点群のマッチングを説明するための模式図である。
図16】(a)平面点群の平面への射影を説明するための模式図である。(b)マッチング候補の平面点群の平面への射影を説明するための模式図である。
図17】Convex hullを説明するための模式図である。
図18】最適化処理の動作フローの一例を示す図である。
図19】(a)平面点群の実際の平面及びマッチング平面を説明するための模式図である。(b)平面点群の最適化を説明するための模式図である。
図20】推定処理の動作フローの一例を示す図である。
図21】(a)蓄積並進ベクトル及び蓄積回転行列及び直接並進ベクトル及び直接回転行列の一例を説明するための模式図である。(b)推定誤差ベクトルと推定誤差変化量の一例を説明するための模式図である。
【発明を実施するための形態】
【0015】
以下、図面を参照しつつ、本発明の様々な実施形態について説明する。ただし、本発明の技術的範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【0016】
1.本実施形態の概略
図1は、本実施形態の位置推定システムの概要を説明するための模式図である。本実施形態の位置推定システムでは、複数の地物の位置を所定の測定時間毎に測定し、測定した地物の複数のセンサ座標系の位置を示す点群PTを出力するセンサを搭載した移動体の軌跡が推定される。位置推定装置は、コンピュータであるが、本発明が適用可能であればどのような形態でもよい。なお、位置推定装置は、軌跡推定装置の一例である。例えば、位置推定装置は、パーソナルコンピュータ、サーバ、ノートPC、多機能携帯電話機(所謂「スマートフォン」)、携帯情報端末(Personal Digital Assistant, PDA)、タブレット端末、タブレットPC、携帯型ゲーム機等でもよい。移動体は、自動車、原動機付自転車、又は軽車両(自転車等)等である。
【0017】
センサは、周囲にある地物等の物体までの距離及び角度を連続して測定し、測定された距離及び角度に基づいてセンサ座標系の3次元位置を出力する。センサは、LiDAR(Light Detection and Ranging)又はレーザレンジファインダ等のレーザ測距装置である。レーザ測距装置のレーザ照射部分は、パルス状に発光するレーザを照射して散乱光を測定し、照射から検出までの時間に基づいて反射した位置を測定する。レーザ照射部分は、垂直視野角約40度の範囲を測定できるように32個のレーザ送受信センサを備え、接地面と平行面上に360度回転する。このレーザ測距装置では、垂直視野角約40度の範囲内において32本のレーザが同時に照射され、レーザ照射部分の回転により、周囲360度の地物の位置が測定される。なお、センサとして、レーダ測距装置、撮像装置等が用いられてもよい。センサとして撮像装置が用いられる場合、例えば、2地点において、撮像装置がセンサの周囲にある同一物体を撮像することにより、三角測量によって物体の位置が測定される。
【0018】
図1(1)に示すとおり、位置推定装置が位置推定処理を実行する前に、センサによる測定が行われる。まず、センサが移動体に搭載され、移動体が移動を開始する。移動体は、少なくともループ状の経路を2周移動する。すなわち、移動体は、予め定められた道路上の設定地点から出発し、所定のループ状の経路上を移動して設定地点に戻り、再び同じ所定のループ状の経路上を移動して設定地点に戻る。以下、移動体が2周移動した所定のループ状の経路において、最初に位置した設定地点を1周目の始点と称し、2度目に位置した設定地点を1周目の終点又は2周目の始点と称し、3度目に位置した設定地点を2周目の終点と称する。そして、移動体が移動を続けながら、センサは、所定の測定時間毎(例えば、0.1秒毎)にレーザ照射部分を1回転させながら、移動体周囲の地物までの距離及び角度を測定し、地物のセンサ座標系の3次元位置を複数出力する。以上により、センサによる測定が終了する。
【0019】
次に、位置推定装置は、センサから出力された点群のうち1周目の点群を所定数のフレーム毎に取得するとともに、2周目の点群を所定数のフレーム毎に取得する。位置推定装置は、出力された複数の地物の3次元位置を示す点群PTを、レーザ照射部分が1回転するたびに1フレームずつ順次取得する。以下、センサのレーザ照射部分が1回転されることによって取得された点群を1フレームの点群と称する。なお、点群PTに含まれる各点は、各フレームにおいてセンサによって測定された測距値及び角度に基づく複数のセンサ座標系の3次元位置(x、y、z)で表される。図1(2)に示すとおり、特定のフレームにおいて点群PTによって示される位置は、センサ周囲の地物の表面上の位置である。
【0020】
次に、位置推定装置は、取得した点群PTから、特徴部をフレーム毎に抽出する。特徴部は、例えば、平面を形成する点群である。以下、平面を形成する点群を平面点群と称する。なお、特徴部は、平面点群に限定されず、建築物の角等の地物の特徴点等でもよい。
【0021】
次に、位置推定装置は、所定のフレームに含まれる特徴部の位置と、次のフレームに含まれる特徴部の位置との関係からフレーム間の並進ベクトルT及び回転行列Rを算出する。まず、位置推定装置は、複数のフレーム毎に、各フレームにおける特徴部と次のフレームにおける特徴部とのマッチングを行う。そして、図1(2)に示すとおり、位置推定装置は、マッチングが成立したフレーム間の並進ベクトルT及び回転行列Rを算出する。なお、次のフレームは、所定のフレームの次に取得されたフレームである。
【0022】
次に、位置推定装置は、1周目の所定のフレームから当該フレームに対応する2周目のフレームまでの並進ベクトル及び回転行列を蓄積した蓄積並進ベクトル及び蓄積回転行列を2周目の全てのフレームについてそれぞれ算出する。図1(3)に示すとおり、蓄積並進ベクトル及び蓄積回転行列は、1周目の各フレームを取得した時のセンサ座標系を基準とした並進ベクトル及び回転行列で表される。また、蓄積並進ベクトル及び蓄積回転行列は、1周目の各フレームを取得した位置に対する、2周目の対応するフレームを取得したと推定される位置の相対位置を示す。フレーム間の並進ベクトル及び回転行列は誤差を含むため、蓄積並進ベクトル及び蓄積回転行列は、各フレーム間の並進ベクトル及び回転行列の誤差の蓄積を含むものである。なお、蓄積並進ベクトル及び蓄積回転行列は、対応する2周目のフレーム毎に対応付けられる。
【0023】
次に、位置推定装置は、1周目の所定のフレームに含まれる特徴部の位置と当該フレームに対応する2周目のフレームに含まれる特徴部の位置関係を示す直接並進ベクトル及び直接回転行列を2周目の全てのフレームについてそれぞれ算出する。図1(3)に示すとおり、直接並進ベクトル及び直接回転行列は、1周目の各フレームを取得した位置に対する、2周目の対応するフレームを取得したと推定される位置の相対位置を示す。先に算出された蓄積並進ベクトル及び蓄積回転行列は複数のフレーム間の並進ベクトル及び回転行列の誤差が蓄積されるのに対し、ここで算出される直接並進ベクトル及び直接回転行列は誤差が蓄積されるおそれがない。したがって、直接並進ベクトル及び直接回転行列の誤差は、蓄積並進ベクトル及び蓄積回転行列の誤差よりも小さいと推定される。なお、直接並進ベクトル及び直接回転行列は、対応する2周目のフレーム毎に対応付けられる。
【0024】
次に、位置推定装置は、2周目の所定のフレームに関する蓄積並進ベクトル及び蓄積回転行列と直接並進ベクトル及び直接回転行列とから、蓄積並進ベクトルと直接並進ベクトルとの差を示す推定誤差ベクトル及び蓄積回転行例と直接回転行列の差を示す推定誤差行列を2周目の全てのフレームについてそれぞれ算出する。上述したとおり、直接並進ベクトル及び直接回転行列は、1周目の各フレームに含まれる特徴部の位置と2周目の対応するフレームに含まれる特徴部の位置とから直接算出された並進ベクトル及び回転行列である。一方、蓄積並進ベクトル及び蓄積回転行列は、1周目の各フレームから2周目の対応するフレームまでの間において算出された並進ベクトル及び回転行列の蓄積である。したがって、図1(3)に示す蓄積並進ベクトル及び蓄積回転行列と直接並進ベクトル及び直接回転行列との差である推定誤差ベクトル及び推定誤差行列は、1周目の各フレームから2周目の対応するフレームまでの間において算出された並進ベクトル及び回転行列のそれぞれの誤差の蓄積である。
【0025】
次に、位置推定装置は、所定のフレームにおける推定誤差ベクトルと次のフレームにおける推定誤差ベクトルとに基づいた当該所定のフレームについての推定誤差変化量を2周目の全てのフレームについてそれぞれ算出する。推定誤差ベクトルは、1周目の各フレームから2周目の対応するフレームまでの間において算出された並進ベクトルのそれぞれの誤差の蓄積である。したがって、図1(4)に示すとおり、各フレーム間の並進ベクトルの誤差は、当該フレームの推定誤差ベクトルと前の推定誤差ベクトルとの間の距離に対応する。
【0026】
次に、位置推定装置は、2周目の最後のフレームの推定誤差ベクトルに、2周目の全てのフレームについての推定誤差変化量の総和に対する2周目の所定のフレームの推定誤差変化量の比率を乗じて算出された補正ベクトルを、2周目の全てのフレームについてそれぞれ求め、2周目の所定のフレーム間についての並進ベクトルを対応する補正ベクトルに基づいて補正した補正並進ベクトルを2周目の全てのフレーム間についてそれぞれ算出する。2周目の最後のフレームにおける推定誤差ベクトルは、1周目の終点すなわち2周目の始点から2周目の終点までの並進ベクトルのそれぞれの誤差の蓄積である。各フレーム間の並進ベクトルの誤差の比率は、各フレームの推定誤差変化量の比率に近似すると推定される。したがって、2周目の最後のフレームにおける推定誤差ベクトルに、2周目の各フレームの推定誤差変化量の比率を乗ずることにより算出された補正ベクトルが、各フレーム間の並進ベクトルを補正するベクトルとなる。
【0027】
そして、位置推定装置は、図1(5)に示すとおり、補正並進ベクトル及び回転行列を使用して2周目の軌跡を推定する。
【0028】
これにより、本実施形態の軌跡推定装置は、誤差が蓄積される並進ベクトルを、誤差が蓄積されるおそれが少ない直接並進ベクトルに近づけることができるため、並進ベクトル及び回転行列を蓄積することによって推定される移動体の移動軌跡を、並進ベクトルのそれぞれの誤差を排除した移動体の移動軌跡に補正することができる。また、本実施形態の軌跡推定装置は、出発地点に再び戻る移動を行う移動体の自己位置推定の精度を向上させることが可能となる。
【0029】
2.位置推定システム1の構成
図2は、位置推定システム1の概略構成の一例を示す図である。
【0030】
位置推定システム1は、位置推定装置2、センサ3、センサ3が搭載された移動体4を有する。センサ3は、測定された3次元位置の情報を出力するための出力インターフェース(図示せず)を備える。位置推定装置2は、センサ3と有線又は無線接続され、センサ3の出力インターフェース経由でセンサ3から出力された点群の情報を取得する。
【0031】
なお、センサ3は、出力インターフェースを介して、CD−ROM(compact disk read only memory)、DVD−ROM(digital versatile disk read only memory)等のコンピュータ読み取り可能な可搬型記録媒体の記録装置と接続されてもよい。この場合、可搬型記録媒体の記録装置は、センサ3の出力インターフェースを介して入力された点群の置の情報を、可搬型記録媒体に記録する。そして、位置推定装置2は、点群の情報が記録された可搬型記録媒体を読み込むことにより、当該点群の情報を取得する。
【0032】
2.1.位置推定装置2の構成
図3は、位置推定装置2の概略構成の一例を示す図である。また、図4は、記憶部21が記憶する点群テーブルのデータ構造の一例を示す図である。
【0033】
図3に示すように、位置推定装置2は、記憶部21と、入力部22と、出力部23と、処理部24とを備える。位置推定装置2は、センサから出力された点群を取得し、取得された点群に基づいてセンサを搭載した移動体の軌跡を推定する。
【0034】
記憶部21は、例えば、磁気テープ装置、磁気ディスク装置、又は光ディスク装置のうちの少なくとも一つを備える。記憶部21は、処理部24での処理に用いられるオペレーティングシステムプログラム、ドライバプログラム、アプリケーションプログラム、データ等を記憶する。例えば、記憶部21は、アプリケーションプログラムとして、点群を取得する処理、取得された点群に基づく移動体の位置推定処理、及び位置推定処理の結果に係る表示データを作成する処理等を、処理部24に実行させるための位置推定プログラム等を記憶する。位置推定プログラムは、例えばCD−ROM、DVD−ROM等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて記憶部21にインストールされてもよい。
【0035】
また、記憶部21は、データとして、取得した点群を管理するための点群テーブル等を記憶する。さらに、記憶部21は、所定の処理に係る一時的なデータを一時的に記憶してもよい。
【0036】
図4は、点群テーブルのデータ構造の一例を示す図である。
【0037】
点群テーブルには、垂直視野角約40度の範囲内において32本のレーザを同時に照射し、レーザ照射部分の回転により周囲360度の地物の位置を測定するセンサによる測定結果のデータが格納される。図4に示すように、点群テーブルには、レーザID毎に、フレーム番号と、レーザの照射によって測定された測距値及び各レーザに固有の垂直視野角に基づくセンサ座標系の3次元位置(x、y、z)とが、測定時間に従って順次関連付けられて記憶される。なお、1回のレーザの照射によって測定された測距値及び垂直視野角に基づくセンサ座標系の3次元位置(x、y、z)が、1レコードとして記憶され、各レコードは、測定された順番に、レコード1、レコード2、レコード3、・・・として記憶される。レーザIDは、32本のレーザをそれぞれ識別するための識別情報である。フレーム番号は、フレームを識別するための番号であり、レーザ照射部分が1回転するたびに時系列順に付与される。
【0038】
図3に戻り、入力部22は、データの入力が可能であればどのようなデバイスでもよく、例えば、タッチパネル、キーボタン等である。操作者は、入力部22を用いて、文字、数字、記号等を入力することができる。入力部22は、操作者により操作されると、その操作に対応する信号を生成する。そして、生成された信号は、操作者の指示として、処理部24に供給される。
【0039】
出力部23も、映像や画像等の表示が可能であればどのようなデバイスでもよく、例えば、液晶ディスプレイや有機EL(Electro−Luminescence)ディスプレイ等である。出力部23は、処理部24から供給された映像データに応じた映像や、画像データに応じた画像等を表示する。また、出力部23は、紙などの表示媒体に、映像、画像又は文字等を印刷する出力装置であってもよい。
【0040】
処理部24は、一又は複数個のプロセッサ及びその周辺回路を有する。処理部24は、位置推定装置2の全体的な動作を統括的に制御するものであり、例えば、CPUである。処理部24は、記憶部21に記憶されているプログラム(ドライバプログラム、オペレーティングシステムプログラム、アプリケーションプログラム等)に基づいて処理を実行する。また、処理部24は、複数のプログラム(アプリケーションプログラム等)を並列に実行できる。
【0041】
2.2.処理部24の構成
処理部24は、取得部241、抽出部242、平面特定部243、算出部244、最適化部245、及び推定部246を備える。これらの各部は、処理部24が備えるプロセッサで実行されるプログラムにより実現される機能モジュールである。あるいは、これらの各部は、ファームウェアとして位置推定装置2に実装されてもよい。
【0042】
図5は、位置推定処理の動作フローの一例を示す図である。この動作フローは、予め記憶部21に記憶されているプログラムに基づいて、主に処理部24により、位置推定装置2の各要素と協働して実行される。
【0043】
まず、センサが、移動体が移動している間に回転されるレーザ照射部分によって測定された地物の位置を示す点群PTを出力し、位置推定装置2の取得部241は、出力された点群PTを1回転毎に1フレームずつ順次取得する(ステップS101)。取得部241は、取得した点群PTを記憶部21の点群テーブルに記憶する。
【0044】
図6は、1フレームの点群をマッピングした3次元空間の一例を示す模式図である。図6に示すように、1フレームの点群は、32本のレーザを同時に照射するセンサのレーザ照射部分の回転によって測定された、周囲360度の複数の地物のセンサ座標系の3次元位置である。以下、1フレームにおけるセンサ1本分の点群を1レイヤーの点群と称する。
【0045】
図5に戻り、次に、位置推定装置2の抽出部242及び平面特定部243は、取得部241によって点群PTが取得されると、平面を抽出するための平面抽出処理を実行する(ステップS102)。平面抽出処理の詳細については後述する。
【0046】
次に、位置推定装置2の算出部244は、抽出部242及び平面特定部243によって平面抽出処理が行われると、並進ベクトル・回転行列算出処理を実行する(ステップS103)。並進ベクトル・回転行列算出処理の詳細については後述する。
【0047】
次に、位置推定装置2の最適化部245は、算出部244によって並進ベクトル・回転行列算出処理が実行されると、最適化処理を実行する(ステップS104)。最適化処理の詳細については後述する。
【0048】
そして、位置推定装置2の推定部246は、最適化部245によって最適化処理が実行されると、推定処理を実行し(ステップS105)、一連のステップを終了する。なお、位置推定処理の一連のステップが終了すると、操作者の指示に応じて、位置推定装置2の処理部24は、出力部23に、位置推定処理の結果(移動体の移動軌跡等)を表示する。
【0049】
図7は、位置推定装置2の抽出部242及び平面特定部243による平面抽出処理の動作フローの一例を示す図である。図7に示す平面抽出処理は、図5のステップS102において実行される。
【0050】
まず、抽出部242は、点群テーブルに記憶された複数のフレームの点群のうち、1つのフレームの点群を取得する(ステップS201)。以下のステップS202〜S207は、取得された1つのフレームの点群に対して実行される。
【0051】
次に、抽出部242は、レイヤー毎に、取得した点群のうちの所定の点と次の点との間の距離を算出する(ステップS202)。すなわち、抽出部242は、レーザID毎に、所定のレコードの3次元位置(x、y、z)と、当該レコードの次のレコードの3次元位置(x、y、z)とを特定し、特定した両位置を端点とする線分の距離を算出する。以下、算出された距離を点間距離と称する。
【0052】
次に、抽出部242は、各レイヤーの点群を点間距離に基づいてセグメントに分類する(ステップS203)。すなわち、抽出部242は、レーザID毎に、レコードの順番に従って各点間距離を累積加算した値が閾値を超えた場合、当該閾値を超える前までに累積加算した全ての点間距離における端点を示す各点を1つのセグメントとする。なお、以下、セグメントに含まれる全ての点を、セグメントに含まれる点群と称する場合がある。図8は、特定の1つのレイヤーにおける全てのセグメントをマッピングした2次元空間の一例を示す模式図である。
【0053】
次に、抽出部242は、S203において分割したセグメントのうち、セグメントに含まれる点群の数が所定数以上であり且つセグメントに含まれる点群の形状が直線状であるセグメントを検出する(ステップS204)。ステップS204では、まず、抽出部242は、セグメントに含まれる点群の数が所定数以上であるか否か判断する。次に、抽出部242は、点群の数が所定数以上であるセグメントに含まれる全て点群に対して、主成分分析を行う。次に、抽出部242は、第1主成分の分散が第2主成分の分散及び第3主成分の分散よりも所定比率以上大きい場合,主成分分析を行った点群を含むセグメントを直線状のセグメントとして検出する。これにより、セグメントに含まれる点群によって形成される形状が、第1主成分を軸とする直線状であると判定される。
【0054】
図9は、特定の1つのレイヤーにおける各直線状のセグメントをマッピングした2次元空間の一例を示す模式図であり、図10は、特定の1つのフレームにおける各直線状のセグメントをマッピングした3次元空間の一例を示す模式図である。
【0055】
次に、抽出部242は、S204において特定された直線状のセグメントの法線ベクトルを算出する(ステップS205)。ステップS205では、まず、抽出部242は、S204において特定された全ての直線状のセグメントを取得する。次に、抽出部242は、取得した全ての直線状のセグメントのそれぞれに対して、各直線状のセグメントを中心とした所定範囲内の他の直線状のセグメントを検出する。次に、抽出部242は、各直線状のセグメントと各直線状のセグメントに対して検出された他の直線状のセグメントとの内積のなす角が所定閾値以下の他の直線状のセグメントを近傍セグメントとして検出する。次に、抽出部242は、各直線状のセグメントと各直線状のセグメントに対して検出された近傍セグメントとに含まれる点群に対して主成分分析を行う。そして、抽出部242は、第1主成分の分散及び第2主成分の分散が第3主成分の分散よりも一定比率以上(例えば、400倍以上)大きい場合、第1主成分及び第2主成分を軸とした平面に対する法線ベクトルを、各直線状のセグメントの法線ベクトルとして算出する。以下、図11(a)及び(b)を参照して、ステップS205の処理について具体的に説明する。
【0056】
図1(a)は、直線状のセグメントにおける法線ベクトルの一例を説明するための模式図である。レイヤーA、B、C,D,及びE毎に、ステップS204において検出された直線状のセグメントが特定されている。例えば、セグメントS15は、レイヤーAにおける直線状のセグメントである。また、セグメントS11、S12、S16は、レイヤーBにおける直線状のセグメントである。また、セグメントS13、S14は、レイヤーCにおける直線状のセグメントである。なお、図11(a)及び(b)において示される全てのセグメントは、直線状のセグメントである。図11(a)に示すように、抽出部242は、セグメントS11を中心とした所定範囲内にある他のセグメントS12〜S16を検出する。次に、抽出部242は、セグメントS11とセグメントS12〜S16のそれぞれとの内積のなす角度が所定閾値(例えば、60度)以下であるか否か判断する。図11(a)では、セグメントS12〜S16の全てにおいて、セグメントS11との内積のなす角度が所定閾値以下であるので、抽出部242は、セグメントS11〜S16に含まれる点群に基づいて法線ベクトルを算出し、算出した法線ベクトルをS11の法線ベクトルとして特定する。
【0057】
図11(b)は、直線状のセグメントにおける法線ベクトルの他の一例を説明するための模式図である。レイヤーA、B、C,D,及びEは、図11(a)と同様である。セグメントS24、S25は、レイヤーCにおける直線状のセグメントである。また、セグメントS21、S23、S26は、レイヤーDにおける直線状のセグメントである。また、セグメントS22は、レイヤーEにおける直線状のセグメントである。図11(b)に示すように、抽出部242は、セグメントS21を中心とした所定範囲内にある他のセグメントS22〜S26を検出する。次に、抽出部242は、セグメントS21とセグメントS22〜S26のそれぞれとの内積のなす角度が所定閾値(例えば、60度)以下であるか否か判断する。図11(b)では、セグメントS22〜S25のそれぞれとセグメントS21との内積のなす角度は、それぞれ所定閾値以下であり、セグメントS26とセグメントS21との内積のなす角度は所定閾値よりも大きい。したがって、抽出部242は、セグメントS21〜S25に含まれる点群に基づいて法線ベクトルを算出し、算出した法線ベクトルをS21の法線ベクトルとして特定する。
【0058】
図12は、特定の1つのフレームにおける各直線状のセグメントの法線ベクトルをマッピングした3次元空間の一例を示す模式図である。
【0059】
図7に戻り、次に、抽出部242及び平面特定部243は、平面を形成する点群を平面点群として抽出する(ステップS206)。ステップS206では、まず、抽出部242は、各直線状のセグメントを無向グラフの節点vkとして扱い、法線ベクトル間の類似度が高い2つの直線状のセグメントに対応する2つの節点vi、vjに対し、無向辺が存在すると判定する。例えば、抽出部242は、2つの直線状のセグメントの法線ベクトルの内積が所定閾値(例えば、10度)以内である場合、法線ベクトル間の類似度が高いと判定する。抽出部242は、無向辺が存在する場合、aij=1とし、無向辺が存在しない場合、aij=0とする隣接行列A=[aij]を作成する。なお、各直線状のセグメントの数がnである場合、i=1,2,3,・・・,nであり、j=1,2,3,・・・,nであり、隣接行列A=[aij]は、n×nの正方行列である。このようにして、各直線状のセグメントの法線ベクトル間の類似度を示す隣接行列A=[aij]が作成される。
【0060】
次に、抽出部242は、隣接行列Aの作成処理と同様に、各直線状のセグメントを無向グラフの節点vkとして扱い、各直線状のセグメントの位置間の類似度が高い2つの直線状のセグメントに対応する2つの節点vi、vjに対し、無向辺が存在すると判定する。例えば、抽出部242は、特定の直線状のセグメントと他の直線状のセグメントとの間の距離を算出し、特定の直線状のセグメントとの距離が短い所定数(例えば、5つ)の他の直線状のセグメントを特定する。そして、特定の直線状のセグメントと、特定の直線状のセグメントとの距離が短い所定数の他の直線状のセグメントとの間において、位置間の類似度が高いと判定する。抽出部242は、無向辺が存在する場合、bij=1とし、無向辺が存在しない場合、bij=0とする隣接行列B=[bij]を作成する。このようにして、各直線状のセグメントの位置間の類似度を示す隣接行列B=[bij]が作成される。
【0061】
次に、抽出部242は、次の式(1)によって、隣接行列A及び隣接行列Bの要素積Cを算出する。
【0062】
【数1】
【0063】
次に、抽出部242は、次の式(2)によって、ベキ乗行列のブール和を算出する。
【0064】
【数2】
【0065】
次に、抽出部242は、次の式(3)に示すとおり、ベキ乗行列のブール和CkとCk+1とが変わらなくなる場合におけるCk(又はCk+1)を可到達行列Dとして算出する。
【0066】
【数3】
【0067】
次に、抽出部242は、可到達行列Dに対して、ガウスの消去法の前進消去を行うことにより重複する行を削除し、Dの上三角行列を算出する。次に、抽出部242は、Dの上三角行列において、要素が0でない行を1つの平面点群であると判定し、列に各平面点群に属する直線状のセグメントを抽出する。なお、行列のランクは、当該フレームにおける平面点群の総数である。
【0068】
そして、平面特定部243は、抽出された各平面点群に属する直線状のセグメントの点群に対し主成分分析を行う。平面特定部243は、主成分分析によって算出された第1主成分及び第2主成分に基づき各平面点群の平面の式を算出することにより、平面の位置を特定する。以上により、ステップS206の処理が終了する。図13は、特定の1つのフレームにおいて、同一の平面を形成する平面点群をマッピングした3次元空間の一例を示す模式図である。
【0069】
図7に戻り、次に、平面特定部243は、ステップS201〜S206において実行されたフレームが点群テーブルに記憶された最後のフレームであるか否かを判定する(ステップS207)。平面特定部243は、ステップS201〜S206において実行されたフレームが点群テーブルに記憶された最後のフレームでない場合(ステップS207−No)、ステップS201に処理を戻す。
【0070】
平面特定部243は、ステップS201〜S206において実行されたフレームが点群テーブルに記憶された最後のフレームである場合(ステップS207−Yes)、一連のステップを終了する。
【0071】
図14は、位置推定装置2の算出部244による並進ベクトル・回転行列算出処理の動作フローの一例を示す図である。図14に示す並進ベクトル・回転行列算出処理は、図5のステップS103において実行される。
【0072】
まず、算出部244は、抽出部242がステップS206において抽出した複数のフレームの平面点群のうち、特定のフレームの平面点群及び特定のフレームの次のフレームの平面点群を取得する(ステップS301)。以下、特定のフレームの次のフレームを、単に次のフレームと称する場合がある。
【0073】
まず、算出部244は、ステップS301で取得した特定のフレームの平面点群と次のフレームの平面点群とのマッチング候補を検出する(ステップS302)。ステップS302では、まず、算出部244は、特定のフレームの各平面点群の重心位置及び次のフレームの各平面点群の重心位置を算出し、特定のフレームの各平面点群の重心位置と次のフレームの各平面点群の重心位置との重心間距離を算出する。次に、算出部244は、特定のフレームの各平面点群の法線ベクトル及び次のフレームの各平面点群の法線ベクトルを算出する。なお、算出部244が実行する法線ベクトルの算出処理は、抽出部242がステップS205において実行する法線ベクトルの算出処理と同様の処理である。次に、算出部244は、特定のフレームの各平面点群の法線ベクトルと、特定のフレームの各平面点群との重心間距離が一番短い次のフレームの平面点群の法線ベクトルとのなす角が、閾値以下であるか否かを判定する。次に、算出部244は、特定のフレームの各平面点群の法線ベクトルと次のフレームの平面点群の法線ベクトルとのなす角が、閾値以下であると判定された場合、当該特定のフレームの平面点群と当該次のフレームの平面点群とを互いにマッチング候補として関連付ける。以上により、ステップS302の処理が終了する。
【0074】
算出部244が実行するステップS302の処理により、特定のフレームの平面点群と次のフレームの平面点群との誤マッチングを防止することができる。以下、図15を参照して、隣り合う2つのフレームの平面点群のマッチングについて具体的に説明する。
【0075】
図15は、隣り合う2つのフレームの平面点群のマッチングを説明するための模式図である。図15では、平面点群A1及びA2は、特定のフレームの平面点群であり、平面点群B1及びB2は、次のフレームの平面点群である。センサ3を搭載した移動体4の移動方向は、図15に示す矢印のとおりであり、特定のフレームの平面点群A1が位置する実際の平面は、次のフレームの平面点群B1が位置する平面であり。特定のフレームの平面点群A2が位置する実際の平面は、次のフレームの平面点群B2が位置する平面である。
【0076】
特定のフレームの各平面点群に対して、各平面点群の法線ベクトルとの重心間距離が一番短い次のフレームの平面点群をマッチング候補とした場合、図15に示す模式図では、平面点群B2が平面点群A1のマッチング候補となる。このような誤マッチングを防止するため、算出部244は、特定のフレームの各平面点群の法線ベクトルと、各平面点群との重心間距離が一番短い次のフレームの平面点群の法線ベクトルとのなす角が、閾値以下であるか否かを判定する。これにより、平面点群A1の法線ベクトルと平面点群B2の法線ベクトルとの誤マッチングを防止することができる。
【0077】
図14に戻り、次に、算出部244は、特定のフレームのマッチング候補の平面点群と次のフレームのマッチング候補の平面点群とのマッチングを判定する(ステップS303)。
【0078】
ステップS303では、まず、算出部244は、マッチング候補として互いに関連付けられた特定のフレームの平面点群及び次のフレームの平面点群を取得し、特定のフレームの平面点群に対して主成分分析を行う。算出部244は、図16(a)に示すように、主成分分析によって算出された第1主成分及び第2主成分を軸とした2次元平面を算出し、算出された2次元平面に、特定のフレームのマッチング候補の平面点群を射影することにより次元圧縮を行う。次に、算出部244は、図16(b)に示すように、特定のフレームのマッチング候補の平面点群に対して算出された2次元平面に、次のフレームのマッチング候補の平面点群を射影する。次に、算出部244は、図17に示すように、次元圧縮された特定のフレームのマッチング候補の平面点群に対してドロネー三角形分割を求め、求められたドロネー三角形分割に基づいてConvex hullを作成する。次に、算出部244は、作成したConvex hullの内部に、射影された次のフレームのマッチング候補の平面点群が包含される包含率を算出し、算出された包含率が所定の閾値(例えば、60%)以上である場合は、マッチングが成立したと判定する。以上により、ステップS303の処理が終了する。
【0079】
図14に戻り、次に、算出部244は、マッチングが成立した特定のフレームの平面点群及び次のフレームの平面点群に基づいてフレーム間の並進ベクトルT及び回転行列Rを算出する(ステップS304)。
【0080】
ステップS304では、まず、算出部244は、マッチングが成立した特定のフレームの平面点群及び次のフレームの平面点群のそれぞれに対する平面の式を算出する。以下、前者を、特定のフレームのマッチング平面と称し、後者を、次のフレームのマッチング平面と称する。なお、算出部244が実行する平面の式の算出処理は、平面特定部243がステップS206において実行する平面の式の算出処理と同様である。次に、算出部244は、特定のフレームのマッチング平面の法線ベクトルN1と次のフレームのマッチング平面の法線ベクトルN2とにより次の式(4)に示す目的関数を最小二乗法を用いて最小化する行列R1を算出する。
【0081】
【数4】
【0082】
次に、算出部244は、行列のpolar decompositionを利用して、次の式(5)及び(6)によってフレーム間の回転行列Rを算出する。
【0083】
【数5】
【0084】
【数6】
【0085】
次に、算出部244は、特定のフレームのマッチング平面の垂線の足からなるベクトルd1と次のフレームのマッチング平面の垂線の足からなるベクトルd2とから、次の式(7)によってフレーム間の並進ベクトルTを算出する。以上により、ステップS304の処理が終了する。
【0086】
【数7】
【0087】
そして、算出部244は、ステップS301〜S304において実行された次のフレームが最後のフレームでない場合(ステップS305−No)、ステップS301に処理を戻す。また、算出部244は、ステップS301〜S304において実行された次のフレームが最後のフレームである場合(ステップS305−Yes)、一連のステップを終了する。
【0088】
図18は、位置推定装置2の最適化部245による最適化処理の動作フローの一例を示す図である。図18に示す最適化処理は、図5のステップS104において実行される。以下、図19(a)及び(b)を参照して、マッチングが成立した特定のフレームの平面点群及び次のフレームの平面点群について説明する。
【0089】
図19(a)は、平面点群の真の平面及びマッチング平面を説明するための模式図である。図19(a)に示すように、特定のフレームの平面点群の真の平面(実際の平面)と特定のフレームのマッチング平面との間に誤差が生じている場合がある。同様に、次のフレームの平面点群の真の平面(実際の平面)と次のフレームのマッチング平面との間に誤差が生じている場合がある。
【0090】
図19(b)は、平面点群の最適化を説明するための模式図である。特定のフレームの平面点群の真の平面と特定のフレームのマッチング平面との間に誤差が生じている場合や、次のフレームの平面点群の真の平面(実際の平面)と次のフレームのマッチング平面との誤差が生じている場合、フレーム間の並進ベクトルT及び回転行列Rを用いて、マッチングが成立した特定のフレームの平面点群を移動させると、特定のフレームのマッチング平面と次のフレームのマッチング平面との間にぶれが生じる。
【0091】
最適化部245は、特定のフレームのマッチング平面と次のフレームのマッチング平面との間にぶれが生じることが無いように、フレーム間の並進ベクトルT及び回転行列Rを最適化する。
【0092】
まず、最適化部245は、マッチングが成立した特定のフレームの平面点群及び次のフレームの平面点群、並びに、特定のフレーム及び次のフレームのフレーム間の並進ベクトルT及び回転行列Rを取得する(ステップS401)。
【0093】
次に、最適化部245は、フレーム間の並進ベクトルT及び回転行列Rの最適化処理を行う(ステップS402)。ステップ402では、最適化部245は、まず、フレーム間の並進ベクトルT及び回転行列Rを用いて、マッチングが成立した特定のフレームの平面点群を移動させ、マッチングが成立した特定のフレームの平面点群とマッチングが成立した次のフレームの平面点群とを重ねる。次に、最適化部245は、マッチングが成立した全ての特定のフレームの平面点群及び次のフレームの平面点群の法線方向の分散が最小となるような目的関数を設定し、レーベンバーグ・マルカート法によって、並進ベクトルT及び回転行列Rの最適化を行う。なお、レーベンバーグ・マルカート法による最適化は、並進ベクトルT及び回転行列Rを交互に最適化し、並進ベクトルTに対して最適化を行っている場合は、回転行列Rを固定し、回転行列Rに対して最適化を行っている場合は、並進ベクトルTを固定する。以上により、ステップS402の処理が終了する。
【0094】
そして、最適化部245は、ステップS401〜S402において実行された次のフレームが最後のフレームでない場合(ステップS403−No)、ステップS401に処理を戻す。また、最適化部245は、ステップS401〜S402において実行された次のフレームが最後のフレームである場合(ステップS403−Yes)、一連のステップを終了する。
【0095】
図20は、位置推定装置2の推定部246による推定処理の動作フローの一例を示す図である。図20に示す推定処理は、図5のステップS105において実行される。
【0096】
まず、位置推定装置2の推定部246は、最適化部245によって最適化された並進ベクトルT及び回転行列Rに基づいて、1周目に所定のループ状の経路を移動した移動体の軌跡及び2周目に所定のループ状の経路を移動した移動体の軌跡を算出(ステップS501)する。以下、1周目に所定のループ状の経路を移動した移動体の軌跡を1周目の軌跡と称し、2周目に所定のループ状の経路を移動した移動体の軌跡を2周目の軌跡と称する。
【0097】
次に、推定部246は、1周目の軌跡及び2周目の軌跡によって、1周目の各フレームと2周目の各フレームを互いに対応付ける(ステップS502)。まず、推定部246は、1周目の各フレームの点群を取得した移動体(センサ)のフレーム取得位置を1周目の軌跡から算出し、2周目の各フレームの点群を取得した移動体(センサ)のフレーム取得位置を2周目の軌跡から算出する。そして、推定部246は、1周目のフレーム毎に、1周目の各フレーム取得位置から最も近い2周目の各フレーム所得位置のフレームを抽出し、1周目の各フレームと抽出した2周目のフレームとを対応付ける。
【0098】
次に、推定部246は、蓄積並進ベクトルTacc,i及び蓄積回転行列Racc,iを算出する(ステップS503)。蓄積並進ベクトルTacc,i及び蓄積回転行列Racc,iは、1周目のi番目のフレームF1,iと1周目のi+1番目のフレームF1,i+1との間の並進ベクトルTi及び回転行列Riから、2周目のi−1番目のフレームF2,i-1と2周目のi番目のフレームF2,iとの間の並進ベクトルTi-1及び回転行列Ri-1までの全ての並進ベクトルT及び回転行列Rを蓄積したものである。
【0099】
ここで、並進ベクトルT及び回転行列Rの蓄積処理について説明する。1周目のi番目のフレームF1,iと1周目のi+1番目のフレームF1,i+1との間の並進ベクトルTi及び回転行列Riは、センサがフレームF1,iの点群を取得した際のセンサ座標系の並進ベクトル及び回転行列である。すなわち、並進ベクトルTi及び回転行列Riは、センサがフレームF1,iの点群を取得した際のセンサ(移動体)の位置に対する、センサがフレームF1,i+1の点群を取得した際のセンサ(移動体)の相対的な推定位置を示す。同様に、並進ベクトルTi+1及び回転行列Ri+1は、センサがフレームF1,i+1の点群を取得した際のセンサの位置に対する、センサがフレームF1,i+2の点群を取得した際のセンサの相対的な推定位置を示す。並進ベクトルTi及び回転行列Riと並進ベクトルTi+1及び回転行列Ri+1とにより、センサがフレームF1,iの点群を取得した際のセンサの位置に対する、センサがフレームF1,i+2の点群を取得した際のセンサの相対的な推定位置が算出される。したがって、1周目のi番目の並進ベクトルTi及び回転行列Riから、2周目のi−1番目の並進ベクトルTi-1及び回転行列Ri-1までの全ての並進ベクトルT及び回転行列Rによって、センサがフレームF1,iの点群を取得した際のセンサの位置に対する、センサがフレームF2,iの点群を取得した際のセンサの相対的な推定位置が算出される。
【0100】
次に、推定部246は、1周目の各フレームに含まれる特徴部の位置と当該フレームに対応する2周目のフレームに含まれる特徴部の位置とから、1周目の各フレームと2周目対応するフレームとの間の直接並進ベクトルTdir,i及び直接回転行列Rdir,iを算出する(ステップS504)。直接並進ベクトルTdir,i及び直接回転行列Rdir,iの算出処理は、図14の位置推定装置2の算出部244による並進ベクトル・回転行列算出処理の動作フローと同様の処理によって実行される。
【0101】
次に、推定部246は、蓄積並進ベクトルTacc,i及び蓄積回転行列Racc,iと直接並進ベクトルTdir,i及び直接回転行列Rdir,iとの差を示す推定誤差ベクトルTerror,iと推定誤差行列Rerror,iを、次の式(8)によって算出する(ステップS505)。なお、RTaccは、Raccの転置行列を示す。
【0102】
【数8】
【0103】
また、図21(a)は、蓄積並進ベクトルTacc,i及び蓄積回転行列Racc,i及び直接並進ベクトルTdir,i及び直接回転行列Rdir,iの一例を説明するための模式図である。図21(a)に示すとおり、蓄積並進ベクトルTacc,i及び蓄積回転行列Racc,iは、フレームF1,iを取得した時のセンサ座標系を基準とした並進ベクトル及び回転行列で表される。また、蓄積並進ベクトル及び蓄積回転行列は、フレームF1,iを取得した位置に対する、フレームF1,iからフレームF2,iまでのフレーム間の並進ベクトル及び回転行列の蓄積によって推定されるフレームF2,iの位置の相対位置を示す。フレーム間の並進ベクトルT及び回転行列Rは誤差を含むため、蓄積並進ベクトル及び蓄積回転行列は、フレームF1,iからフレームF2,iまでの各フレーム間の並進ベクトルT及び回転行列Rの誤差の蓄積を含むものである。
【0104】
また、図21(a)に示すとおり、直接並進ベクトルTdir,i及び直接回転行列Rdir,iは、1周目のフレームF1,iに含まれる特徴部の位置と当該フレームF1,iに対応する2周目のフレームF2,iに含まれる特徴部の位置とから、直接求めた並進ベクトル及び回転行列である。直接並進ベクトルTdir,i及び直接回転行列Rdir,iによって算出される、フレームF1,iにおけるセンサの位置に対するフレームF2,iにおけるセンサの相対的な推定位置には、誤差が蓄積されるおそれがないため、直接並進ベクトルTdir,i及び直接回転行列Rdir,iによって算出される推定位置が、フレームF2,iにおけるセンサの相対的な位置として、正確な位置であると仮定される。
【0105】
図21(a)に示すとおり、蓄積並進ベクトルTacc,i及び蓄積回転行列Racc,iと直接並進ベクトルTdir,i及び直接回転行列Rdir,iとの差を示す推定誤差ベクトルTerror,iと推定誤差行列Rerror,iは、蓄積並進ベクトルTacc,i及び蓄積回転行列Racc,iによって算出される推定位置から、直接並進ベクトルTdir,i及び直接回転行列Rdir,iによって算出される推定位置との誤差を示す。
【0106】
次に、推定部246は、フレームF1,i及びフレームF2,iにおける推定誤差ベクトルTerror,iとフレームF1,i+1及びフレームF2,i+1における推定誤差ベクトルTerror,i+1との間の推定誤差の差を示す推定誤差変化ベクトルから、所定のフレームにおける推定誤差変化量Eiを算出する(ステップS506)。推定誤差変化量Eiは、フレームF1,i-1及びフレームF2,i-1における推定誤差ベクトルTerror,i-1までの影響を受けないため、並進ベクトルT1,iのみの誤差に影響される量である(図21(b))。
【0107】
次に、推定部246は、推定誤差変化量EiをフレームF1,i及びフレームF2,iのいずれか一方に振り分ける(ステップS507)。まず、推定部246は、1周目の各並進ベクトルT1,iに推定誤差変化ベクトルを除算した各第2並進ベクトルT'1,iを算出するとともに、2周目の各並進ベクトルT2,iに推定誤差変化ベクトルを加算した各第2並進ベクトルT'2,iを算出する。次に、推定部246は、第2並進ベクトルT'1,i及び第2並進ベクトルT'2,iを用いて、フレームF1,i+1及びフレームF2,i+1における平面を、フレームF1,i及びフレームF2,iにおけるセンサ座標系に座標変換し、座標変換された平面を用いて、フレームF1,i及びフレームF1,i+1における第3並進ベクトルT"1,iとフレームF2,i及びフレームF2,i+1における第3並進ベクトルT"2,iとを求める。
【0108】
次に、推定部246は、次の式(9)によって、第3並進ベクトルT"1,iと第3並進ベクトルT"2,iとのL1ノルム差を示すDiを算出する。
【数9】
【0109】
1周目の各並進ベクトルT1,iの誤差が小さい場合、1周目の各並進ベクトルT1,iに推定誤差変化ベクトルを除算した各第2並進ベクトルT'1,iは、1周目の各並進ベクトルT1,iよりも大きくなる。同様に、2周目の各並進ベクトルT2,iの誤差が小さい場合、2周目の各並進ベクトルT2,iに推定誤差変化ベクトルを加算した各第2並進ベクトルT'2,iは、各並進ベクトルT2,iよりも大きくなる。したがって、1周目の第3並進ベクトルT"1,iのL1ノルムと2周目の第3並進ベクトルT"2,iのL1ノルム差との差であるDiが負の場合すなわち2周目の第3並進ベクトルT"2,iのL1ノルムの方が大きい場合は、1周目の各並進ベクトルT1,iの方が、誤差が大きかったことになるため、推定誤差変化量Eiを1周目のフレームF1,iに振り分ける。また、1周目の第3並進ベクトルT"1,iのL1ノルムと2周目の第3並進ベクトルT"2,iのL1ノルム差との差であるDiが正の場合すなわち1周目の第3並進ベクトルT"1,iのL1ノルムの方が大きい場合は、2周目の各並進ベクトルT2,iの方が、誤差が大きかったことになるため、推定誤差変化量Eiを2周目のフレームF2,iに振り分ける。以上により、ステップS507の処理が終了する。なお、推定部246は、上述したステップS507を実行せずに、全ての推定誤差変化量Eiを、1周目のフレームF1,i及び2周目のフレームF2,iの両方/いずれか一方に振り分けるようにしてもよい。
【0110】
次に、推定部246は、1周目の終点のフレームF1,nの推定誤差ベクトルT1,allerrorと、1周目に振り分けられた推定誤差変化量Eiとによって補正ベクトルC1,iを算出する(ステップS508)。すなわち、推定部246は、1周目に振り分けられた全ての推定誤差変化量Eiの総和に対する各推定誤差変化量Eiの比率を算出する。そして、推定部246は、推定誤差ベクトルT1,allerrorに、各フレームの推定誤差変化量Eiの比率を乗ずることにより、各フレームの補正ベクトルC1,iを算出する。
【0111】
次に、推定部246は、2周目の終点のフレームF2,nの推定誤差ベクトルT2,allerrorと、2周目に振り分けられた推定誤差変化量Eiとによって補正ベクトルC2,iを算出する(ステップS509)。すなわち、推定部246は、2周目に振り分けられた全ての推定誤差変化量Eiの総和に対する各推定誤差変化量Eiの比率を算出する。そして、推定部246は、推定誤差ベクトルT2,allerrorに、各フレームの推定誤差変化量Eiの比率を乗ずることにより、各フレームの補正ベクトルC2,iを算出する。
【0112】
次に、推定部246は、1周目のフレームF1,iの並進ベクトルT1,iに補正ベクトルC1,iを加算することにより、並進ベクトルT1,iを補正する。また、推定部246は、2周目のフレームF2,iの並進ベクトルT2,iに補正ベクトルC2,iを加算することにより、並進ベクトルT2,iを補正する。そして、推定部246は、補正された並進ベクトルT1,iと回転行列1,iとによって、1周目において移動体が移動した軌跡を推定するとともに、補正された並進ベクトルT2,iと回転行列2,iとによって、2周目において移動体が移動した軌跡を推定する(ステップS510)。
【0113】
以上説明してきたように、位置推定装置2は、誤差が蓄積される並進ベクトルを、誤差が蓄積されるおそれが少ない直接並進ベクトルに近づけることができるため、並進ベクトル及び回転行列を蓄積することによって推定される移動体の移動軌跡を、並進ベクトルのそれぞれの誤差を排除した移動体の移動軌跡に補正することが可能となる。また、位置推定装置2は、出発地点に再び戻る移動を行う移動体の自己位置推定の精度を向上させることが可能となる。
【0114】
当業者は、本発明の精神及び範囲から外れることなく、様々な変更、置換、及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【0115】
1 位置推定システム
2 位置推定装置
21 記憶部
22 入力部
23 出力部
24 処理部
241 取得部
242 抽出部
243 平面特定部
244 算出部
245 最適化部
246 推定部
3 センサ
4 移動体
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21