以下、図面を参照しながら本技術の実施の形態について説明する。
<<本技術を適用した測位装置の概要>>
PDRでは特許文献1に記載の技術のように歩行者の歩数を検出し、歩数と歩幅とに基づいて移動量を推定することが一般的に行われる。
しかしながら、歩幅は、人物、歩行動作、歩行場所等の歩行状況によって変化し、歩幅の変化が移動量の誤差を生じさせ、測位精度を低下させる原因となる。
特許文献1によれば、歩行者ごとに平均歩幅が計測され、計測された平均歩幅を用いて移動量が算出されるため、人物ごとの歩幅の違いによる移動量の誤差は低減される。
しかしながら、同一人物であってもが歩き方や歩く場所等の歩行状況が相違すれば歩幅も相違するため、多様な歩行状況下において測位精度を向上させることは難しい。
また、特許文献2に記載の技術では、測位開始時における歩行者の位置及び移動方向の精度の向上が図られるが、その後の加速度センサ及び角速度センサを用いた測位精度の向上を図るものではない。
さらに、特許文献3に記載の技術は、GPSによる測位結果を用いて移動方向を推定する技術であり、GPSによる測位が必要となるため加速度センサと角速度センサとにより測位を行う技術とは相違する。
図1は、本技術を適用した測位方法の概要を示す模式図である。
図1において説明する測位方法は歩行者を測位対象とした例であり、本技術を適用した測位装置10は、歩行者が保持(携帯)するスマートフォン20に実装され、または、歩行者が身に着ける帽子等の装着品に専用機22として取り付けられる。なお、歩行自体を目的としない対象が保持する装置、例えば、VR(仮想現実)、AR(拡張現実)、MR(複合現実)等で使用されるHMD(ヘッドマウントディスプレイ)24に測位装置10を装着または内蔵してもよい。
後述のように測位装置10は、慣性センサとして3軸の加速度センサと3軸の角速度センサを搭載しており、歩行者の動きによって生じた加速度及び角速度を示す図1のセンサデータ12をそれらの加速度センサ及び角速度センサから取得する。
続いて、測位装置10は、機械学習のアルゴリズムにより構築された図1の機械学習モデル14に対してセンサデータ12を入力する。機械学習モデル14は、入力されたセンサデータ12に基づいて測位装置10の移動量及び移動方向を示す移動ベクトルを推定(算出)する。この移動ベクトルは、前回の移動ベクトルの推定時からの測位装置10の相対位置変化を示す。
機械学習モデル14は、図1の学習用歩行データ18を用いて事前に訓練(学習)される。学習用歩行データ18は、色々な箇所に慣性センサを取り付けたときの歩行データ、色々な歩き方をしたときの歩行データ、色々な人に慣性センサを取り付けたときの歩行データ等、様々の状況を想定して収集されたデータにより生成される。
次いで、測位装置10は、機械学習モデル14により推定された移動ベクトルと、測位装置10の実空間での初期位置及び初期方位と、測位装置10の相対姿勢変化の推定情報とを統合する。この統合により、測位装置10は、実空間において測位装置10が通過した位置を求めて、図1の軌跡データ16のように実空間における測位装置10(歩行者)の移動軌跡を求める。
<<本技術を適用した測位装置10の一実施の形態>>
図2は、本技術を適用した測位装置10の一実施の形態の構成例を示したブロック図である。本実施の形態では図2の全ての構成部が支持体などを介して一体化されているものとし、例えば歩行者、自動車等の任意の移動体を測位対象として移動体の所望の部位に保持(装着、把持等)される。以下の説明では測位対象を歩行者と想定して説明する。
測位装置10は、IMU30(Inertial Measurement Unit:慣性計測装置)と、AHRS32(Attitude Heading Reference System)と、DNN34(Deep Neural Network)と、外界センサ36と、センサ融合部38とを備える。
IMU30は、慣性センサであり、3軸の加速度センサ40と、3軸の角速度センサ42と、IMUキャリブレーション部44とを備え、これらの加速度センサ40、角速度センサ42、及びIMUキャリブレーション部44は枠体によって一体的に保持される。
加速度センサ40は、機体に生じた加速度であって、互いに直交する3軸の各軸方向の加速度を検出し、検出した3軸方向の加速度の大きさ及び向きを示す加速度信号をIMUキャリブレーション部44に供給する。なお、機体とは加速度センサ40及び角速度センサ42を支持する支持体をいうものとする。
角速度センサ42は、機体に生じた角速度であって、互いに直交する3軸の各軸周りの角速度を検出し、検出した3軸周りの角速度の大きさ及び向きに応じた角速度信号をIMUキャリブレーション部44に供給する。
(機体座標系)
ここで、加速度センサ40が加速度を検出する3軸をx軸、y軸、及びz軸とすると、角速度センサ42が角速度を検出する3軸もx軸、y軸、及びz軸となるように加速度センサ40及び角速度センサ42が機体に固定されている。このx軸、y軸、及びz軸を座標軸とする座標系を機体座標系(ローカル座標系)というものとする。機体座標系は、機体に対して固定された座標系であり、x軸、y軸、及びz軸は、例えば図3に示すように機体と一体的に動く測位装置10に対して予め決められた方向の3軸を示す。
IMUキャリブレーション部44は、加速度センサ40及び角速度センサ42の各々からの加速度信号及び角速度信号に対してバイアス除去、ゲイン調整等の校正処理を施し、測定誤差を軽減する。
そして、IMUキャリブレーション部44は、校正処理を施した加速度信号及び角速度信号をデジタルデータである加速度データ及び角速度データとして所定の出力周期でDNN34及びAHRS32に供給する。本実施の形態において加速度データ及び角速度データの出力周期は0.02秒(周波数50Hz)とするがこれに限らない。
なお、xyz軸3方向の加速度データを(Ax,Ay,Az)で表し、xyz軸の各軸周りの角速度データを(ωx,ωy,ωz)で表す。
図2において、AHRS32は、地磁気センサ45と姿勢推定部46とを備える。
地磁気センサ45は、機体座標系のxyz軸3方向の地磁気を検出し、xyz軸3方向の地磁気の大きさ及び向きに応じた地磁気信号を姿勢推定部46に供給する。
姿勢推定部46は、IMU30のIMUキャリブレーション部44からの加速度データ(Ax,Ay,Az)及び角速度データ(ωx,ωy,ωz)と、地磁気センサ45からの地磁気信号とに基づいてIMU30の姿勢を検出(推定)する。
具体的には、姿勢推定部46は、IMUキャリブレーション部44からの加速度データ(Ax,Ay,Az)及び角速度データ(ωx,ωy,ωz)に基づいて、機体座標系における鉛直方向(重力加速度方向)を検出する。
なお、加速度データ(Ax,Ay,Az)及び角速度データ(ωx,ωy,ωz)に基づいて鉛直方向を検出する方法は周知であり、詳細な説明は省略する。また、加速度データ(Ax,Ay,Az)のみから鉛直方向を検出することも可能であり、鉛直方向の検出の方法は任意の方法を採用することができる。
また、姿勢推定部46は、地磁気センサ45からの地磁気信号に基づいて機体座標系における地磁気方向を検出し、検出した地磁気方向を機体座標系における磁北方向として決定する。
姿勢推定部46は、検出した機体座標系における磁北方向と鉛直方向とに基づいて機体座標系における真北方向を検出する。なお、真北方向は鉛直方向に対して直交する。
そして、姿勢推定部46は、機体座標系における鉛直方向と真北方向とを、IMU30の姿勢(以下、機体の姿勢という)を示す姿勢データとして所定の出力周期でセンサ融合部38に供給する。本実施の形態において姿勢データの出力周期は、1秒(周波数1Hz)とするがこれに限らない。
(姿勢推定の他の形態)
なお、姿勢推定部46における機体の姿勢の推定は次のようにしてもよい。
まず、姿勢推定部46は、姿勢推定開始時において、加速度データ(Ax,Ay,Az)及び角速度データ(ωx,ωy,ωz)に基づいて機体座標系における鉛直方向を検出し、地磁気センサ45からの地磁気信号に基づいて機体座標系における磁北方向を検出する。そして、姿勢推定部46は、検出した鉛直方向と磁北方向とに基づいて機体座標系における真北方向を算出する。
姿勢推定部46は、このようにして地磁気センサ45からの地磁気信号を利用することにより取得した機体座標系における鉛直方向と真北方向とを機体の初期の姿勢(初期方位)を示す姿勢データとしてセンサ融合部38に供給する。その後、姿勢推定部46は、地磁気センサ45からの地磁気信号を参照することなく、IMUキャリブレーション部44からの角速度データ(ωx,ωy,ωz)に基づいて機体の回転移動を検出して機体座標系における鉛直方向と真北方向とを更新する。
これにより、姿勢推定部46は、IMUキャリブレーション部44から角速度データ(ωx,ωy,ωz)が供給される1秒ごとに機体座標系における鉛直方向と真北方向とを示す姿勢データを更新し、更新した姿勢データをセンサ融合部38に供給する。なお、地磁気センサ45からの地磁気信号を利用せずに鉛直方向と真北方向との更新を継続すると、鉛直方向と真北方向との誤差が蓄積して徐々に大きくなるので、適宜のタイミングで本形態による処理を初めから実施するようにしてもよい。
ここで、AHRS32は地磁気センサ45を必ずしも備えていなくてもよい。AHRS32が地磁気センサ45を備えない場合に、姿勢推定部46は、磁北方向(または真北方向)の情報を外部の地磁気センサから取得してもよい。または、歩行者が機体座標系(測位装置10)の特定の方向を磁北方向に向けて所定の操作を行うと、姿勢推定部46が機体座標系(測位装置10)のその特定の方向を磁北方向として認識するようにしてもよい。または、姿勢推定部46は、真北方向の情報を外部のGNSS受信機(例えば後述の外界センサ36)、地球自転センサ等の姿勢推定センサや、地図情報等から取得してもよい。なお、測位装置10がGNSS受信機を複数備えることで、姿勢推定部46は、それらの複数のGNSS受信機により検出された緯度値、経度値、及び高度値に基づいて機体座標系における真北方向を検出することができる。また、姿勢推定部46は、GNSS受信機から得られる機体の速度情報(移動方向)と、後述の移動ベクトル推定部48により推定される機体の移動方向とから機体座標系における真北方向を検出することができる。
また、機体座標系における鉛直方向と真北方向との検出、すなわち、機体の絶対的な姿勢(絶対姿勢)の検出については、その検出の全ての処理を姿勢推定部46が行うのではなく、その検出の一部の処理をセンサ融合部38が行うようにしてもよい。
例えば、姿勢推定部46は、機体の初期の絶対姿勢に対する相対的な姿勢変化(相対姿勢変化)、または、所定時間ごとの機体の相対姿勢変化をIMUキャリブレーション部44からの角速度データ(ωx,ωy,ωz)に基づいて検出し、検出した相対姿勢変化を姿勢データとしてセンサ融合部38に供給する。また、姿勢推定部46は、IMUキャリブレーション部44からの加速度データ(Ax,Ay,Az)に基づいて機体座標系における鉛直方向の情報も姿勢データとしてセンサ融合部38に供給する。
センサ融合部38は、地磁気センサ45、後述の外界センサ36、地球自転センサ等の姿勢推定センサ、または、地図情報等から取得したデータに基づいて機体座標系における磁北方向または真北方向を検出する。そして、センサ融合部38は、検出した磁北方向または真北方向の情報と姿勢推定部46からの鉛直方向の情報とにより機体の初期の絶対姿勢を検出する。センサ融合部38は、機体の初期の絶対姿勢を検出した後、機体の初期の絶対姿勢と姿勢推定部46からの機体の相対姿勢変化の情報とに基づいて機体の絶対姿勢を検出する。
DNN34は、機械学習モデルにより演算処理を行う移動ベクトル推定部48を備える。
移動ベクトル推定部48は、IMU30のIMUキャリブレーション部44からの加速度データ(Ax,Ay,Az)及び角速度データ(ωx,ωy,ωz)に基づいて機体が移動した移動量及び移動方向を示す機体座標系における移動ベクトルMを推定(算出)する。そして、移動ベクトル推定部48は、推定した移動ベクトルMを所定の出力周期でセンサ融合部38に供給する。本実施の形態において移動ベクトルMの出力周期は1秒(周波数1Hz)とするがこれに限らない。
移動ベクトルMの推定は、機械学習のアルゴリズムに基づいて構築された機械学習モデルを用いて行われ、移動ベクトル推定部48は、事前に訓練された機械学習モデルの演算処理を実施して移動ベクトルMを推定する。
機械学習モデルは、IMUキャリブレーション部44から供給された加速度データ(Ax,Ay,Az)及び角速度データ(ωx,ωy,ωz)の合計6軸分のセンサデータ(Ax,Ay,Az,ωx,ωy,ωz)を入力データとする。そして、機械学習モデルは、入力データに対して、所定の移動ベクトル推定期間において機体が移動したと推定される移動量及び移動方向を示す機体座標系における移動ベクトルMを出力データとする。
出力データは具体的には推定された移動ベクトルMの機体座標系におけるxyz軸3方向の成分値(xyz成分値)であり、移動ベクトルMの機体座標系におけるxyz成分値を(Mx,My,Mz)と表す。
移動ベクトル推定期間は、前回推定した移動ベクトルMの算出時から今回推定する移動ベクトルMの算出時までの時間を示す。移動ベクトル推定時間は、推定した移動ベクトルMをセンサ融合部38に供給する出力周期と同期(一致)しており、本実施の形態では1秒(周波数1Hz)とする。したがって、移動ベクトル推定部48により推定される移動ベクトルMは1秒間に機体が移動した移動量及び移動方向を示す。
外界センサ36は、人工衛星を利用した全地球航法衛星システム(GNSS:Global Navigation Satellite System)の1つである衛星測位システム(GPS:Global Positioning System)を用いた測位センサである。
外界センサ36は、センサ部50と測位地図データ記憶部52と測位部54とを備える。
センサ部50は、地球低軌道を周回する複数(例えば4機)のGPS衛星から送信される衛星電波信号を受信し、衛星電波信号に含まれる情報であって、衛星位置を示す軌道情報及び送信時刻を示す時刻情報等の情報を抽出する。そして、センサ部50は、抽出した情報を衛星受信データとして測位部54に供給する。
測位地図データ記憶部52は、道路形状、道路幅、道路名、建造物、各種施設、地名、地形等のデータと、地理座標系における緯度、経度、及び高度とを対応付ける地図データを記憶している。
測位部54は、センサ部50からの衛星受信データと、測位地図データ記憶部52の地図データとに基づいて、衛星電波信号受信時における機体の位置を地球の地理座標系における緯度値、経度値、及び高度値(標高値)として算出する。
すなわち、測位部54は、センサ部50からの衛星受信データに含まれる軌道情報及び時刻情報に基づいて衛星電波信号受信時の機体の位置を示す地理座標系における座標値G(緯度値,経度値,高度値)を算出する。
また、測位部54は、算出した座標値Gの周辺の地図データを測位地図データ記憶部52から取得し、取得した地図データに基づいて座標値Gを適宜補正する。例えば、測位部54は、測位地図データ記憶部52から取得した地図データが示す地図上において、座標値Gの位置が物理的に機体の存在できない位置と判断した場合に、座標値Gをその近傍の適切な座標値に補正する。
なお、座標値Gの補正については、様々な方法が周知であり、どのような方法を用いてもよいし、補正自体を行わなくてもよい。
測位部54は、以上の処理により得られた地理座標系における座標値G(緯度値,経度値,高度値)を、機体の現在位置を示す外界測位データとして所定の出力周期でセンサ融合部38に供給する。本実施の形態において外界測位データの出力周期は1秒とするがこれに限らない。測位部54は後述のセンサ融合部38から要求があったときのみ外界測位データをセンサ融合部38に供給するようにしてもよい。
センサ融合部38は、座標変換部56と積算部58とPDR絶対位置化部60とを備える。
座標変換部56は、DNN34の移動ベクトル推定部48からの機体座標系における移動ベクトルMを、AHRS32の姿勢推定部46からの姿勢データに基づいて、後述の世界座標系における移動ベクトルMGに変換する。
具体的には、座標変換部56は、姿勢推定部46からの姿勢データに基づいて、移動ベクトル推定部48からの移動ベクトルMの機体座標系におけるxyz成分値(Mx,My,Mz)を世界座標系におけるXYZ成分値(MX,MY,MZ)に変換する。
座標変換部56は、世界座標系における移動ベクトルMGを所定の出力周期で積算部58に供給する。本実施の形態において移動ベクトルMGの出力周期は1秒とするがこれに限らない。
(世界座標系)
ここで、世界座標系(ワールド座標系)は、実空間に固定された座標系であり、図3に例示するように互いに直交するX軸、Y軸、及びZ軸の3軸を座標軸とする。なお、世界座標系は、真北方向と鉛直方向とが予め決められた方向となるように設定され、例えば、真北方向がY軸方向、鉛直方向がZ軸方向逆向きとなるように設定される。
(姿勢データ)
座標変換部56は、姿勢推定部46からの姿勢データが示す機体座標系のおける鉛直方向と真北方向に基づいて、世界座標系における機体座標系のxyz軸3方向を特定する。すなわち、座標変換部56は、世界座標系における鉛直方向と真北方向に対して、姿勢データが示す機体座標系における鉛直方向と真北方向とを一致させた状態のときの世界座標系のおける機体座標系のxyz軸3方向を特定する。
(座標変換の説明)
図4は、座標変換部56の処理内容を説明する図である。なお、同図では、機体座標系のz軸と世界座標系のZ軸は紙面に直交する方向として省略して機体座標系のxy軸と世界座標系のXY軸のみを紙面上に表し、機体座標系をO1-xy、世界座標系をO2-XYとして表している。また、機体座標系のz軸は世界座標系のZ軸に常に一致しているものとし、機体の姿勢の変化を、Z軸(z軸)周りの回転移動のみに制限して表している。
図4のAにおいて、機体座標系O1-xyに示された移動ベクトルM1、M2、M3は、移動ベクトル推定部48から座標変換部56に順に供給された移動ベクトルMであって、機体の移動をXY軸(xy軸)2方向のみに制限した場合の移動ベクトルMを例示している。
これに対して、図4のBの世界座標系O2-XYにおいて、機体座標系80は、移動ベクトル推定部48により移動ベクトルM1が推定されたときの機体座標系O1-xyを示す。機体座標系O1-xyと世界座標系O2-XYとの空間的な関係(回転移動に関する関係)は姿勢推定部46からの姿勢データにより把握することができ、機体座標系80は、移動ベクトルM1が推定されたときの姿勢データに基づいてそのときの機体座標系O1-xyを世界座標系O2-XYに表した場合の機体座標系O1-xyである。
そして、機体座標系80には、移動ベクトルM1を機体座標系O1-xyにおける大きさ及び方向を維持したまま機体座標系80に表した移動ベクトルMG1が示されている。
なお、座標変換部56における処理は、機体座標系から世界座標系へのベクトル成分の座標変換であり、世界座標系に対する機体座標系の並進移動は変換結果に影響を及ぼさないため、図4のBでは、便宜上、機体座標系80の原点O1を世界座標系O2-XYの原点O2に一致させてある。
図4のBの世界座標系O2-XYにおいて、機体座標系82、84は、機体座標系80と同様に、移動ベクトル推定部48により移動ベクトルM2、M3が推定されたときの姿勢データに基づいて、移動ベクトルM2、M3が推定されたときの機体座標系O1-xyを世界座標系O2-XYに表した場合の機体座標系O1-xyである。
そして、機体座標系82、84の各々には、移動ベクトルM2、M3を機体座標系O1-xyにおける大きさ及び方向を維持したまま機体座標系82、84に表した移動ベクトルMG2、MG3が示されている。
なお、移動ベクトルMG2の始点が移動ベクトルMG1の終点に一致するように機体座標系82の原点O1を移動ベクトルMG1の終点に一致させ、移動ベクトルMG3の始点が移動ベクトルMG2の終点に一致するように機体座標系84の原点O1を移動ベクトルMG2の終点に一致させてある。
図4のBの機体座標系80、82、84及び移動ベクトルMG1、MG2、MG3に示すように、機体座標系80、82、84の世界座標系O2-XYに対する回転移動量は機体の姿勢に応じて異なり、移動ベクトルMG1、MG2、MG3の相互間の角度も、図4のAに示した機体座標系O1-xyにおける移動ベクトルM1、M2、M3の相互間の角度と相違する。
実空間における機体の移動を表すのは、世界座標系O2-XYにおける移動ベクトルMG1、MG2、MG3であることから、座標変換部56は機体座標系O1-xyにおける移動ベクトルM1、M2、M3を世界座標系O2-XYにおける移動ベクトルMG1、MG2、MG3に変換する。例えば、機体座標系O1-xyにおける移動ベクトルM1は、そのxy成分値を世界座標系O2-XYのXY成分値とするベクトルを、世界座標系O2-XYにおける機体座標系80のZ軸周りの回転移動量分だけZ軸周りに回転させたときのXY成分値に座標変換される。これにより、機体座標系O1-xyにおける移動ベクトルMを世界座標系における移動ベクトルMGに変換したときの移動ベクトルMGのXY成分値が算出される。
ここでは、機体の姿勢の変化をZ軸周りの回転移動のみに制限し、機体の移動をXY軸2方向のみに制限した場合を例示したが、これらの制限がない場合においても同様にして機体座標系における移動ベクトルMのxyz成分値が世界座標系における移動ベクトルMGのXYZ成分値に変換される。すなわち、機体座標系における移動ベクトルMは、そのxyz成分値(Mx,My,Mz)を世界座標系O2-XYZのXYZ成分値とするベクトルを世界座標系O2-XYZにおけるXYZ軸の各軸周りの機体座標系O1-xyzの回転移動の分だけXYZ軸の各軸周りに回転させたときのXYZ成分値(MX,MY,MZ)に座標変換される。これにより、機体座標系における移動ベクトルMを世界座標系における移動ベクトルMGに変換したときのXYZ成分値(MX,MY,MZ)が算出される。
このように、移動ベクトル推定部48により推定された機体座標系における移動ベクトルMを世界座標系における移動ベクトルMGに変換することで、機体の姿勢変化の影響を除去した機体の移動量及び移動方向が得られる。
図2において、積算部58は、座標変換部56からの移動ベクトルMGを積算して変位ベクトルDを算出し、算出した変位ベクトルDを所定の出力周期でPDR絶対位置化部60に供給する。本実施の形態において、変位ベクトルDの出力周期は、座標変換部56から移動ベクトルMGが供給される周期と同期して1秒とするがこれに限らない。
(移動ベクトルの積算)
移動ベクトルMGの積算は、座標変換部56から1秒ごとに供給される移動ベクトルMGのXYZ成分値(MX,MY,MZ)をXYZ成分ごとに積算することにより行われる。そして、その積算により得られたXYZ成分ごとの積算値DX、DY、DZを変位ベクトルDのXYZ成分値(DX,DY,DZ)とする。したがって、変位ベクトルDは、初期値を零ベクトルとし、座標変換部56から新たな移動ベクトルMGが供給されるごとにその移動ベクトルMGが加算されて更新される。
ここで、座標変換部56からの移動ベクトルMGを積算して変位ベクトルDを算出することで、機体の変位が推定される。すなわち、積算部58での積算開始時(変位ベクトルDが零ベクトルのとき)における実空間及び世界座標系での機体の位置を基準位置(初期位置)として、変位ベクトルDは、実空間及び世界座標系における基準位置から現在位置までの機体の変位量及び変位方向を示す。また、変位ベクトルDは、実空間及び機体座標系における基準位置に対する機体の相対的な現在位置(相対位置)を示す。
<積算部58の積算の説明>
図5は、積算部58の処理内容を説明する図である。なお、同図では、世界座標系のZ軸は紙面に直交する方向として省略して世界座標系のXY軸のみを紙面上に表すとともに、世界座標系をO2-XYとして表し、また、機体の移動をXY軸2方向のみに制限した場合を例示する。
同図において、世界座標系O2-XYには、移動ベクトルMG1、MG2、MG3、・・・、MGp、・・・、MGq(p、qは正の整数でありp<q)と変位ベクトルD1、D2、D3、・・・、Dp、・・・、Dq(p、qは自然数でありp<q)とが例示されている。
移動ベクトルMG1、MG2、MG3、・・・、MGp、・・・、MGqは、変位ベクトルDが零ベクトルのときにおいて、座標変換部56から積算部58に順次供給された移動ベクトルMGを示し、それらを古い順に接続した状態を示す。なお、接続とは、時間的に隣接する2つの移動ベクトルのうちの先に供給された移動ベクトルの終点を、後に供給された移動ベクトルの始点とすることを示す。
変位ベクトルD1、D2、D3、・・・、Dp、・・・、Dqは、移動ベクトルMG1、MG2、MG3、・・・、MGp、・・・、MGqを積算部58により順次加算して得られた変位ベクトルDを示す。
変位ベクトルD1は、変位ベクトルDが零ベクトルのときに座標変換部56から最初に供給された移動ベクトルMG1を加算したときの変位ベクトルであり、移動ベクトルMG1と等価である。変位ベクトルD1の終点は、原点O2から移動ベクトルMG1が示す移動量及び移動方向にしたがって機体が移動したときの位置を示し、実空間における機体の基準位置に対する現在の相対位置を示す。なお、変位ベクトルDが零ベクトルのときの実空間及び世界座標系における機体の位置を示す基準位置を世界座標系の原点O2としているが、必ずしもこれに限らない。
続いて移動ベクトルMG2が積算部58に供給されると、変位ベクトルD1に移動ベクトルMG2が加算されて変位ベクトルD2が算出される。変位ベクトルD2の終点は、変位ベクトルD1の終点から移動ベクトルMG2が示す移動量及び移動方向にしたがって機体が移動したときの位置を示し、同図のように移動ベクトルMG1、MG2を接続して示したときの移動ベクトルMG2の終点に一致する。
このようにして積算部58は、移動ベクトルMGpが供給されると、変位ベクトルD(p-1)に移動ベクトルMGpを加算して変位ベクトルDpを算出する。このとき変位ベクトルDpの終点は、変位ベクトルD(p-1)の終点から移動ベクトルMGpが示す移動量及び移動方向にしたがって機体が移動したときの位置を示す。
そして、積算部58に最新の移動ベクトルMGqが供給されたときに算出された変位ベクトルDqの終点が実空間及び世界座標系における基準位置に対する現在の機体の相対位置を示す。
なお、積算部58により順次算出される変位ベクトルDの世界座標系におけるXYZ成分値(DX,DY,DZ)を実空間の所定の基準位置に対する機体の相対位置を示すデータとして不図示の記憶部に記憶し、基準位置に対する機体の相対位置の軌跡の表示等を行えるようにしてもよい。
図2において、PDR絶対位置化部60は、積算部58からの変位ベクトルDに基づいて実空間における機体の現在位置(現在の絶対位置)を示す絶対座標系の座標値を算出する。
絶対座標系とは、実空間、例えば、地球上の任意の位置を座標値によって一意に特定する座標系である。例えば、緯度値、経度値、高度値を座標値とする地理座標系が絶対座標系に該当する。
ここで、本実施の形態における世界座標系は、例えば、xyz軸3方向の原点からの距離を座標値とする。この場合に、一般的には実空間の位置と世界座標系の座標点との対応付けが行われていないため、実空間の位置と座標値との対応付けが事前に行われている地理座標系の座標値(緯度値,軽度値,高度値)を用いて実空間における機体の現在位置を示す座標値を求める。
なお、PDR絶対位置化部60は、地理座標系のように実空間の位置と座標値との対応付けが事前に行われている他の種類の絶対座標系の座標値により機体の現在位置を求めるようにしてもよいし、絶対座標系自体を世界座標系として世界座標系の座標値により機体の現在位置を求めるようにしてもよい。
また、本実施の形態のように機体の現在位置を示す座標値として絶対座標系の座標値を求める場合には、絶対座標系自体を世界座標系とすれば、絶対座標系以外の世界座標系を用いることは不要である。ただし、絶対座標系以外の座標系において機体の現在位置を示す座標値を求める場合も考慮して、本実施の形態では、世界座標系と絶対座標系との2つの座標系を用いて機体の現在位置を示す座標値を求めるものとする。
PDR絶対位置化部60は、まず、世界座標系及び地理座標系の基準位置を設定する。基準位置の設定は、PDR絶対位置化部60での処理を開始した時等、任意のタイミングで行うようにしてもよいし、歩行者が実空間の基準位置とする場所にいる際に、歩行者自身が所定の入力手段により基準位置の設定を指示した時や、不図示の外界センサにより基準位置であることを示す信号が与えられた時に行うようにしてもよい。
また、移動ベクトル推定部48が算出する移動ベクトルMには理論的に算出可能な誤差が生じており、変位ベクトルDにはその誤差が蓄積される。そこで、PDR絶対位置化部60は、変位ベクトルDの誤差を算出し、算出した誤差が所定の閾値以上となったときに後述のように変位ベクトルDをリセットするために基準位置の設定を行うようにしてもよい。
PDR絶対位置化部60は、外界センサ36から1秒ごと供給される外界測位データのうち、世界座標系及び地理座標系の基準位置を設定する時に供給された外界測位データを取得する。なお、PDR絶対位置化部60が必要なときに外界センサ36に外界測位データの供給を要求してもよい。
そして、PDR絶対位置化部60は、取得した外界測位データが示す地理座標系における座標値G(緯度値,経度値,高度値)を、地理座標系の基準位置を示す基準座標値SBとして設定し、積算部58の変位ベクトルDを零ベクトルにリセットする。また、地理座標系の基準座標値SBに対応する世界座標系の座標値を世界座標系の基準位置を示す基準座標値PBとして設定する。
なお、基準座標値PBを初めて設定する際には、予め決められた座標値(例えば原点)が世界座標系の基準座標値PBとして設定される。図6には、Z軸を紙面に直交する方向として示した世界座標系O2-XYZにおいて設定された基準座標値PB(D0X,D0Y,D0Z)が例示されている。
世界座標系は、XYZ軸3方向に対して実空間における鉛直方向と真北方向とが所定方向となるように設定されるため、世界座標系の基準座標値PBと地理座標系の基準座標値SBとが実空間の同一位置を示す座標値として対応付けられることによって、世界座標系の各座標値と地理座標系の各座標値とが対応付けられるとともに実空間の位置と世界座標系の座標値とが地理座標系の座標値を介して対応付けられる。
なお、地理座標系を用いない場合においても、歩行者が実空間の基準位置とする場所にいる際に、世界座標系の予めら決められた座標値を基準座標値PBに設定することによって、実空間の位置と世界座標系の座標値が対応付けられる。
PDR絶対位置化部60は、世界座標系及び地理座標系の基準位置の設定を行った後、積算部58から変位ベクトルDが供給されるごとに、図6に示すように変位ベクトルDのXYZ成分値(DX,DY,DZ)を世界座標系の基準座標値PB(D0X,D0Y,D0Z)に加算した座標値P(D0X+DX,D0Y+DY,D0Z+DZ)を機体の現在位置を示す座標値Pとして算出する。
また、世界座標系の座標値P(D0X+DX,D0Y+DY,D0Z+DZ)に対応付けられた地理座標系の座標値S(緯度値,経度値,高度値)を機体の現在位置を示す座標値Sとして算出する。
なお、変位ベクトルDを地理座標系の各軸の成分値に変換して地理座標系の基準座標値SBに加算することで世界座標系を介さずに直接的に地理座標系の座標値S(緯度値,経度値,高度値)を算出することもできる。
そして、PDR絶対位置化部60は、求めた世界座標系の座標値P及び地理座標系の座標値Sを、機体の現在位置を示す座標値とし、かつ、測位結果を示す測位データとする。
また、PDR絶対位置化部60は、積算部58から1秒ごとに供給される変位ベクトルDに基づいて測位データを順時求めて、実空間において機体が移動した軌跡を示す軌跡データを生成する。
PDR絶対位置化部60は、このようにして得られた測位データや軌跡データを不図示の表示部、記憶部、外部装置の少なくとも1つに供給する。測位データや軌跡データを表示部に供給する場合には、それらのデータの示す位置を地図画像上の対応位置に視覚化して表示する等、どのような表示形態で表示するようにしてもよい。
図7には、世界座標系の座標値により生成された軌跡データの表示例が示されている。図7において、横軸は世界座標系のX座標値を表し、縦軸は世界座標系のY座標値を表す。図7のように世界座標系を表したXY座標面上において機体が通過した座標点を通過した順に線で結ぶことで軌跡データを視覚化して表示してもよい。
なお、同図では世界座標系のZ軸方向についての軌跡データの表示は省略されているが、世界座標系のXZ座標面やYZ座標面を表示して、それらの座標面上に軌跡データを表示することでZ軸方向についての軌跡データも表示してもよい。さらに、世界座標系のXYZ軸を立体的に表示してXYZ軸方向の軌跡データを3次元的に表示することもできる。
ここで、外部装置は、測位装置10と無線接続と有線接続のうちの少なくとも一方により接続されるコンピュータ等の装置を示す。
また、記憶部は、フラッシュメモリ等のデータの書き換え可能な不揮発性メモリにPDR絶対位置化部60から供給されたデータを記憶する。
また、上記実施の形態では、全ての構成部が支持体などを介して一体化されているものとしたが、必ずしも一体でなくても無線通信や有線通信等により信号のやりとりが可能であれば複数の部分に分かれていてもよい。ただし、加速度センサ40、角速度センサ42、及び地磁気センサ45は歩行者等の測定対象が保持する。
<<図2の本実施の形態の処理手順>>
図8は、図2に示した測位装置10が行う処理の例を説明するフローチャートである。
図8においてステップS10乃至S20は、AHRS32、DNN34、センサ融合部38において繰り返し実行される。
ステップS10では、AHRS32及びDNN34は、IMU30の加速度センサ40及び角速度センサ42により検出された加速度及び角速度を示す加速度データ(Ax,Ay,Az)及び角速度データ(ωx,ωy,ωz)をセンサデータ(Ax,Ay,Az,ωx,ωy,ωz)としてIMU30から取得する。なお、ステップS10において、AHRS32及びDNN34は、IMU30から0.02秒ごとに供給されるセンサデータ(Ax,Ay,Az,ωx,ωy,ωz)を1秒間分取得する。
ステップS12では、AHRS32は、ステップS10で取得したセンサデータ(Ax,Ay,Az,ωx,ωy,ωz)と、AHRS32に含まれる地磁気センサ45からの地磁気信号とに基づいて実空間における機体の姿勢を推定する。すなわち、AHRS32は、機体の姿勢を示す姿勢データとして、機体座標系における鉛直方向と真北方向とを算出する。
AHRS32は、IMU30からの1秒間分のセンサデータ(Ax,Ay,Az,ωx,ωy,ωz)に対して、その1秒間において変化した後の機体の姿勢を推定する。そして、AHRS32は、ステップS10乃至S20の繰り返しにより、姿勢データを1秒ごとに更新して、更新した姿勢データを1秒ごとにセンサ融合部38の座標変換部56に供給する。
ステップS14では、DNN34の移動ベクトル推定部48は、ステップS10で取得したセンサデータ(Ax,Ay,Az,ωx,ωy,ωz)に基づいて機体座標系における移動ベクトルMを推定する。すなわち、移動ベクトル推定部48は、移動ベクトル推定期間である1秒間において機体が移動したと推定される移動量及び移動方向を示す移動ベクトルMの機体座標系におけるxyz成分値(Mx,My,Mz)を算出する。
この移動ベクトルの推定では、後述の図9のモデル生成機90及びデータ収集機92により生成された訓練済み(学習済み)の機械学習モデルが用いられる。
移動ベクトル推定部48は、ステップS10乃至S20の繰り返しにより、移動ベクトルMを1秒ごとに推定し、推定した移動ベクトルMを1秒ごとにセンサ融合部38の座標変換部56に供給する。
ステップS16では、センサ融合部38の座標変換部56は、ステップS12でAHRS32から供給された姿勢データと、ステップS14で移動ベクトル推定部48から供給された移動ベクトルMとに基づいて、機体座標系における移動ベクトルMを世界座標系における移動ベクトルMGに変換する。
すなわち、座標変換部56は、機体座標系における移動ベクトルMのxyz成分値(Mx,My,Mz)を機体の姿勢に基づいて世界座標系における移動ベクトルMGのXYZ成分値(MX,MY,MZ)に座標変換する。
座標変換部56は、ステップS10乃至S20の繰り返しにより、移動ベクトル推定部48から1秒ごとに供給される機体座標系における移動ベクトルMを世界座標系における移動ベクトルMGに変換し、変換した移動ベクトルMGを1秒ごとにセンサ融合部38の積算部58に供給する。
ステップS18では、センサ融合部38の積算部58は、ステップS16で座標変換部56から供給される移動ベクトルMGを変位ベクトルDに加算して変位ベクトルDを更新する。
すなわち、積算部58は、座標変換部56から供給された移動ベクトルMGのXYZ成分値(MX,MY,MZ)を変位ベクトルDのXYZ成分値(DX,DY,DZ)に加算し、加算して得られたXYZ成分値(DX+MX,DY+MY,DZ+MZ)を変位ベクトルDのXYZ成分値(DX,DY,DZ)として更新する。これにより、世界座標系における基準位置から現在位置までの機体の変位量及び変位方向(基準位置に対する機体の相対位置)を示す変位ベクトルDが算出される。
積算部58は、ステップS10乃至S20の繰り返しにより、積算部58から1秒ごとに供給される移動ベクトルMGに対して変位ベクトルDを1秒ごとに更新して、更新した変位ベクトルDを1秒ごとにPDR絶対位置化部60に供給する。
ステップS20では、センサ融合部38のPDR絶対位置化部60は、積算部58から供給された変位ベクトルDに基づいて、実空間における機体の現在位置(現在の絶対位置)を示す座標値を算出する。
すなわち、PDR絶対位置化部60は、積算部58からの変位ベクトルDのXYZ成分値(DX,DY,DZ)を世界座標系の基準座標値PB(D0X,D0Y,D0Z)に加算して機体の現在位置を示す座標値P(D0X+DX,D0Y+DY,D0Z+DZ)を算出する。
また、PDR絶対位置化部60は、世界座標系の座標値P(D0X+DX,D0Y+DY,D0Z+DZ)に対応付けられた地理座標系の座標値S(緯度値,経度値,高度値)を機体の現在位置を示す座標値Sとして算出する。
なお、PDR絶対位置化部60は、処理開始時等において、積算部58の変位ベクトルDを零ベクトルにリセットし、そのときに外界センサ36から取得した外界測位データが示す地理座標系における座標値G(緯度値,経度値,高度値)を地理座標系の基準位置を示す基準座標値SBとして設定する。
また、これと同時にPDR絶対位置化部60は、地理座標系の基準座標値SBに対応する世界座標系の座標値を世界座標系の基準位置を示す基準座標値PBとして設定する。基準座標値PBを初めて設定する際には、PDR絶対位置化部60は、予め決められた座標値(例えば原点)を世界座標系の基準座標値PBとして設定する。これによって、PDR絶対位置化部60は、世界座標系の座標値と地理座標系の座標値との対応付けを行っておく。
そして、PDR絶対位置化部60は、ステップS10乃至S20の繰り返しにより、積算部58から1秒ごとに供給される変位ベクトルDに対して、実空間における機体の現在位置を示す座標値として世界座標系の座標値P及び地理座標系の座標値Sを1秒ごとに算出し、算出した世界座標系の座標値P及び地理座標系の座標値Sを測位装置10の測位結果である測位データとする。
また、PDR絶対位置化部60は、ステップS10乃至S20の繰り返しにより、1秒ごとに得られた測位データを記憶することで機体が通過した位置の軌跡を示す軌跡データを生成する。
<<機械学習モデルの生成>>
次に、機械学習モデルの生成(訓練)について説明する。機械学習モデルの生成(訓練)は、図9に示すように汎用のコンピュータ等にインストールされたソフトウエアのプログラムにより動作するモデル生成機90とデータ収集機92と用いて実施される。
図9は、汎用のコンピュータにインストールされたソフトウエアのプログラムにより機械学習モデルの生成の処理を実行するモデル生成機90と、歩行データの収集を行うデータ収集機92の構成例を示したブロック図である。
モデル生成機90において、CPU(Central Processing Unit)151,ROM(Read Only Memory)152,RAM(Random Access Memory)153は、バス154により相互に接続されている。
バス154には、さらに、入出力インタフェース155が接続されている。入出力インタフェース155には、入力部156、出力部157、記憶部158、通信部159、及びドライブ160が接続されている。
入力部156は、キーボード、マウス、マイクロフォンなどよりなる。出力部157は、ディスプレイ、スピーカなどよりなる。記憶部158は、ハードディスクや不揮発性のメモリなどよりなる。通信部159は、ネットワークインタフェースなどよりなる。ドライブ160は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア161を駆動する。
以上のように構成されるモデル生成機90において、CPU151が、例えば、記憶部158に記憶されているプログラムを、入出力インタフェース155及びバス154を介して、RAM153にロードして実行することにより、CPU151が機械学習モデルの生成処理を行う。
データ収集機92は、例えば、上記実施の形態における測位装置10と同様に構成され、モデル生成機90の通信部159に通信可能に接続される。
なお、データ収集機92の構成要素について測位装置10と同一または類似の構成要素には同一符号を用いて以下の説明を行う。ただし、データ収集機92は移動ベクトル推定部48を備える必要はなく、測位装置10と同様のIMU30、AHRS32を備え、それらのIMU30、AHRS32から出力される加速度データ、角速度データ、及び姿勢データを取得することができる構成であれば良い。
また、姿勢データは機械学習モデルの訓練データを生成する際に出力データとして正解とする移動ベクトルの機体座標系におけるxyz成分値を求めるために使用するデータであるが、必ずしもAHRS32によって測定する必要はない。例えば、歩行データの収集時において実空間におけるデータ収集機92の姿勢が略一定であり、その姿勢を維持できる場合には、AHRS32による姿勢データの測定は不要でありAHRS32も不要である。
さらに、データ収集機92には無線通信を行う装置からの信号(ビーコン信号等)を利用した測位手段が搭載され、測位手段によりデータ収集機92の3次元位置が測定される。ただし、測位手段はこれに限らない。
図10は、モデル生成機90及びデータ収集機92が行う機械学習モデル生成処理の例を説明するフローチャートである。
図10のステップS22では、モデル生成機90(CPU151)はデータ収集機92を介して歩行データの収集を行う。歩行データは、機械学習モデルの訓練(学習)に使用する訓練データを生成するための実測データであり、歩行データから生成された訓練データを学習用歩行データと称する。
機械学習モデル作成者はデータ収集機92を用いて歩行データの収集を行う際に、歩行者にデータ収集機92を保持させてデータ収集機92に測定(データ取得処理)を開始させる。そして、歩行者が予め決められた移動経路に沿って歩行(走行も含む)する。ただし、移動経路は歩行者が自由に決めてもよい。
データ収集機92は、測定開始後、IMU30から所定時間おきに出力された加速度データ(Ax,Ay,Az)及び角速度データ(ωx,ωy,ωz)からなるセンサデータ(Ax,Ay,Az,ωx,ωy,ωz)を歩行データとして取得する。このセンサデータは歩行者が測位装置10(機体)を保持している際に測位装置10の加速度センサ40及び角速度センサ42により得られる加速度データ及び角速度データに相当する。
また、データ収集機92は、AHRS32から所定時間おきに出力された姿勢データと、測位手段から所定時間置きに出力されたデータ収集機92の3次元位置を示す位置データとを歩行データとして取得する。
さらにデータ収集機92は、測定開始後からの経過時刻を示す時刻データであって、センサデータ(Ax,Ay,Az,ωx,ωy,ωz)、姿勢データ、及び位置データの各々が出力された時刻を示す時刻データを歩行データとして取得する。
データ収集機92により取得された歩行データは、データ収集機92において一時的に保存され、測定終了後にモデル生成機90の通信部159を介して記憶部158に転送される。
以上のような歩行データの収集は、歩行者の動きに関する要素、歩行者(人物)に関する要素、及び歩行の環境に関する要素を変更しながら様々な状況下で行われる。
歩行者の動きに関する要素としては、例えば、わき見歩き、進行と停止とを繰り返すSTOP & GO、横歩き等がある。
また、歩行者に関する要素としては、例えば、歩き方の個人差(歩行者自体)、データ収集機92を保持する位置(足、腰、手、腕、及び頭部等)、データ収集機92を保持する状態(身体への装着、着衣への装着、手による把持、ポケットや鞄への収納等)、歩行者の性別、歩行者の靴(スニーカー、革靴、ハイヒール等)等がある。
また、環境に関する要素としては、歩行場所の状態(階段、坂道等)がある。
歩行データの収集は、これらの要素の組み合わせを変えて行われる。このような様々の状況を想定した歩行データを用いて機械モデルの訓練を行うことで、機械学習モデルによる移動ベクトルの推定が様々な状況に対して高精度に行われるようになる。
図10のステップS24では、モデル生成機90(CPU151)はステップS22で収集した歩行データに前処理を施し、訓練データである学習用歩行データを生成する。
ここで、機械学習モデルの訓練(学習)に使用する訓練データである学習用歩行データは、訓練の際に機械学習モデルのデータ入力部から入力する入力データと、その入力データに対して正解とする出力データとからなる。入力データは、加速度データ(Ax,Ay,Az)及び角速度データ(ωx,ωy,ωz)からなるセンサデータ(Ax,Ay,Az,ωx,ωy,ωz)であり、出力データは、入力データに対して正解とする移動ベクトルMの機体座標系におけるxyz成分値(Mx,My,Mz)である。
歩行データの前処理は、ステップS22において様々な状況下で取得された多数の歩行データの各々に対して同様に行われるが、以下においては1つの歩行データに着目していることを前提に説明する。
まず、モデル生成機90(CPU151)は、歩行データのうちの加速度データから重力を分離した歩行データを生成してもよい。すなわち、モデル生成機90(CPU151)のセンサデータ(Ax,Ay,Az,ωx,ωy,ωz)に基づいて、加速度データ(Ax,Ay,Az)に含まれる重力加速度のxyz軸成分値を求める。重力加速度のxyz軸成分値を重力加速度データ(Gx,Gy,Gz)で表すと、モデル生成機90(CPU151)は、加速度データ(Ax,Ay,Az)から重力加速度データ(Gx,Gy,Gz)を減算した重力除去加速度(Ax-Gx,Ay-Gy,Az-Gz)を求める。これによりモデル生成機90(CPU151)は、加速度データ(Ax,Ay,Az)を、重力除去加速度(Ax-Gx,Ay-Gy,Az-Gz)と重力加速度データ(Gx,Gy,Gz)とに分離する。そして、モデル生成機90(CPU151)は、センサデータ(Ax,Ay,Az,ωx,ωy,ωz)を9軸のデータ(Ax-Gx,Ay-Gy,Az-Gz,Gx,Gy,Gz,ωx,ωy,ωz)として機体の姿勢への依存を低減した歩行データを生成してもよい。ただし、以下の歩行データの前処理の説明においてモデル生成機90(CPU151)は加速度データから重力を分離した歩行データの生成を行っていないものとする。
モデル生成機90(CPU151)は、測位装置10の形状(外形)の対称性に基づいて、歩行データの収集時における姿勢(原姿勢という)に対して、測位装置10の外形が略一致する関係にある姿勢(対称姿勢という)における歩行データを、原姿勢における歩行データから生成する。
すなわち、測位装置10が歩行者に保持される際に想定される1つの姿勢(原姿勢)に対して、測位装置10の外形が略一致する関係にある他の姿勢(対称姿勢)も、測位装置10が歩行者に携帯される際に想定される姿勢である。
例えば、測位装置10の外形が図3のようにz軸周りの180度の回転に対して対称性を有している場合において、原姿勢に対して、z軸周りに180度回転させたときの姿勢は、測位装置10の外形が略一致する関係にある対称姿勢であり、歩行者に保持されるときの姿勢として想定され得る。この場合にz軸周りの180度の回転によりx軸とy軸の向きが反転するため、原姿勢におけるセンサデータ(Ax,Ay,Az,ωx,ωy,ωz)のx成分値とy成分値の正負を反転させ、z成分値はそのままの値としたセンサデータ(-Ax,-Ay,Az,-ωx,-ωy,ωz)が対称姿勢におけるセンサデータとなる。
このように、モデル生成機90(CPU151)は、歩行データを取得したときの原姿勢に対して測位装置10の外形が略一致する関係にある対称姿勢の全てにおける歩行データを、原姿勢のxyz軸と対称姿勢のxyz軸との関係に基づいて算出する。これにより、機体の姿勢を原姿勢と異なる対称姿勢としたときの歩行データが実測することなく得られるため、歩行データが容易に拡張される。
なお、モデル生成機90(CPU151)は、原姿勢での歩行データから対称姿勢での歩行データを生成する場合に、原姿勢の歩行データに含まれる姿勢データを対称姿勢での姿勢データに変更したものを対称姿勢の歩行データにおける姿勢データとする。
また、モデル生成機90(CPU151)は、原姿勢の歩行データから任意の姿勢の歩行データを生成してもよい。
また、モデル生成機90(CPU151)は、ステップS20で取得した歩行データ及び前処理により生成した歩行データに対してランダムな微小回転による信号を付加した歩行データを生成する。
すなわち、モデル生成機90(CPU151)は、歩行データのうちの角速度データ(ωx,ωy,ωz)に対してランダムに発生させた微小値を姿勢変動の値として加算することで角速度データ(ωx,ωy,ωz)を加工した新たな歩行データを生成する。
なお、モデル生成機90(CPU151)は、歩行データのうちの加速度データ(Ax,Ay,Az)に対してもランダムに発生させた微小値を姿勢変動の値として加算することで加速度データ(Ax,Ay,Az)を加工した新たな歩行データを生成してもよい。
次に、モデル生成機90(CPU151)は、以上のようにして得られた歩行データのうちから、所望時刻の一定期間において得られたデータであって、移動ベクトル推定期間とする1秒間において得られたセンサデータ(Ax,Ay,Az,ωx,ωy,ωz)を、時刻データを参照して抽出する。
続いて、モデル生成機90(CPU151)は、データ収集機92により得られた姿勢データのうちから、センサデータ(Ax,Ay,Az,ωx,ωy,ωz)を抽出した期間において得られた姿勢データの1つを抽出する。また、モデル生成機90(CPU151)は、センサデータ(Ax,Ay,Az,ωx,ωy,ωz)を抽出した期間においてデータ収集機92が移動した実空間における移動量及び移動方向を、歩行データに含まれる位置データと時刻データとに基づいて把握する。
そして、モデル生成機90(CPU151)は、抽出した姿勢データと、把握した移動量及び移動方向とから、移動ベクトルMの機体座標系におけるxyz成分値(Mx,My,Mz)を算出する。
これにより、モデル生成機90(CPU151)は、入力データとするセンサデータ(Ax,Ay,Az,ωx,ωy,ωz)と、その入力データに対して正解とする出力データである移動ベクトルMの機体座標系におけるxyz成分値(Mx,My,Mz)とからなる学習用歩行データ(Ax,Ay,Az,ωx,ωy,ωz:Mx,My,Mz)を生成する。
また、データ収集機92を用いた1回の測定(データ取得処理)で得られた歩行データに対して、複数の異なる期間(複数の異なる時刻範囲)の歩行データを抽出して学習用歩行データ(Ax,Ay,Az,ωx,ωy,ωz:Mx,My,Mz)を生成することで、1回の測定に対して複数の学習用歩行データを生成することができる。
図10のステップS26では、モデル生成機90(CPU151)は、ステップS24で生成した学習用歩行データを用いて機械学習モデルの生成(訓練)を行う。
機械学習モデルは、例えばニューラルネットワーク(NN:Deep Neural Network)の一種であるディープニューラルネットワーク(DNN:Deep Neural Network)の構造を有する。ディープニューラルネットワークは、周知であるので詳細な説明は省略するが、入力層と、複数の隠れ層と、出力層とを有し、入力層の各ノードから入力された値が隠れ層の各ノードを介して出力層の各ノードへと伝搬される。また、隠れ層と出力層の各ノードでは各ノードからの入力値に対して重みやバイアスといったパラメータや活性化関数を用いた演算が行われて各々の出力値が算出される。
本実施の形態の機械学習モデルでは、入力層のノードに直接的またはメモリなどを介して間接的に接続されたデータ入力部から、センサデータ(Ax,Ay,Az,ωx,ωy,ωz)が入力され、出力層に直接的または間接的に接続されたデータ出力部から、推定された移動ベクトルMのxyz成分値(Mx,My,Mz)が出力される。
(機械学習モデルの入出力形態)
ここで、機械学習モデルは、センサデータ(Ax,Ay,Az,ωx,ωy,ωz)の入力に関して次のような第1入力形態または第2入力形態が採用され得る。
図11に示すように第1入力形態の機械学習モデル100では、IMU30から0.02秒(IMU30の出力周期)ごとに供給された移動ベクトル推定期間の1秒間分(50個)のセンサデータのうち、いずれか1個のセンサデータ(同図ではデータa)がデータ入力部102から入力データとして入力される。
第2入力形態の機械学習モデル100では、図12及び図13に示すように、IMU30から0.02秒(IMU30の出力周期)ごとに供給された移動ベクトル推定期間の1秒間分(50個)のセンサデータが、入力周期の0.02秒ごとに、かつ、時系列順にデータ入力部102から入力データとして順次入力される。ただし、機械学習モデル100への入力データの入力周期は、IMU30の出力周期と一致してなくてもよく、IMU30から取得したセンサデータを間引くことにより、IMU30の出力周期の整数倍、かつ、移動ベクトル推定期間の1/2以下とした場合も第2入力形態に該当する。
また、本実施の形態では、移動ベクトル推定期間においてデータ入力部102から入力されたセンサデータに基づいて移動ベクトルMが推定されるが、移動ベクトル推定期間と時間長さが異なる推定期間においてデータ入力部102から入力されたセンサデータに基づいて移動ベクトルMが推定されるようにしてもよい。
一方、機械学習モデル100は、移動ベクトルMの出力に関して次のような第1出力形態または第2出力形態が採用され得る。
第1出力形態の機械学習モデル100は、図11及び図12に示すように、第1入力形態または第2入力形態を採用した場合において、移動ベクトル推定期間の1秒間においてデータ入力部102から入力されたセンサデータに基づいてその移動ベクトル推定期間における機体の移動を示す移動ベクトルMを推定し、推定した移動ベクトルMを移動ベクトル推定期間の1秒ごとにデータ出力部104から出力する。
第2出力形態の機械学習モデル100は、図13に示すように、第2入力形態を採用した場合において、センサデータがデータ入力部102から入力される入力周期の0.02秒ごとに、移動ベクトル推定期間の1秒間における機体の移動を示す移動ベクトルMを推定してその推定した移動ベクトルMをデータ出力部104から出力する。このとき、移動ベクトルの推定は、移動ベクトル推定期間前からデータ入力部102に順次入力された時系列のセンサデータに基づいて行われる。そして、センサデータの入力周期と同期して出力される移動ベクトルMのうち、移動ベクトル推定期間の1秒ごとに出力される移動ベクトルM(同図では移動ベクトルb)のみがセンサ融合部38に供給される。
モデル生成機90(CPU151)は、図10のステップS24で生成した多数の学習用歩行データのセットを訓練データセットとして用いて機械学習モデル100の訓練を行う。
訓練は、モデル生成機90(CPU151)において、例えば、勾配降下法や誤差逆伝播法(バック・プロパゲーション)と呼ばれる周知の技法を用いて行われる。原理的には、学習用歩行データセットの多数の学習用歩行データを用いて、それらの学習用歩行データにおける入力データを機械学習モデル100に入力して算出される出力データと、学習用歩行データにおける正解の出力データとの誤差が小さくなるように、機械学習モデルが内包するパラメータ(重み、バイアスなど)に修正が加えられて最適なパラメータが算出される。
ただし、訓練の方法は勾配降下法やバック・プロパゲーションに限らない。また、学習用歩行データセットを訓練データセットとテストデータセットに分割して、テストデータセットにより訓練の結果を検証する周知の訓練手法も用いられるが適宜、詳細な説明は省略する。
モデル生成機90により訓練されてパラメータが最適化された訓練済みの機械学習モデルが生成されると、訓練済みの機械学習モデルの演算処理を行うプログラムが測位装置10のDNN34に組み込まれて、移動ベクトル推定部48により機械学習モデルの演算処理が実施される。
なお、機械学習モデルは、上記のような構成を有するディープニューラルネットワークに限らず、他の構造のディープニューラルネットワークや各種のニューラルネットワーク(畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)、再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)など)を採用することができる。また、ニューラルネットワーク以外の機械学習のアルゴリズムとして、ID3(Iterative Dichotomiser 3)、決定木学習、創刊ルール学習、遺伝的プログラミング(GP:Genetic Programming)、帰納論理プログラミング(ILP:Inductive Logic Programming)、ファジィアルゴリズム、進化的アルゴリズム、強化学習、サポートベクターマシン(SVM:Support Vector Machine)、クラスタリング(Clustering)、ベイジアンネットワーク(Bayesian Network)等が周知であるが、本技術に係る機械学習モデルは、これらのような機械学習のアルゴリズに含まれるものあれば任意のアルゴリズムを採用できる。
<<効果>>
測位装置10の効果について説明する。
<比較装置との比較>
図14及び図15は、本実施の形態における測位装置10と、比較のための自律航法装置(以下、比較装置という)との測位データの誤差評価を示す。
比較装置は、本実施の形態の移動ベクトル推定部48を備えず、加速度センサ及び角速度センサから得られる加速度及び角速度に基づいて歩行者の歩数と機体の姿勢を検出する。そして、比較装置は、検出した歩数と事前に決められた一歩当たりの移動距離とに基づいて移動量を推定し、また、本実施の形態における測位装置10と同様に推定した機体の姿勢に基づいて移動方向を検出する。
図14は、移動量の誤差を比較、評価した図であり、図15は、移動方向の誤差を比較、評価した図である。
<移動量誤差>
図14のAは、検証の際の歩行者の歩行の様子を示しており、測位装置10と比較装置とを同一位置で保持した歩行者が停止と進行を繰り返す歩行(STOP&GO)として、20mの距離を直進的に歩行し、その間に丸印を付した5m間隔の3カ所において一時的に停止したことを示す。
図14のBは、図14のAのように歩行者が歩行を開始してから20mを移動して歩行を終了するまでの間に、測位装置10と比較装置の各々において測位された位置の軌跡を示す。図14のBのXY座標は実空間における水平面上での位置を表し、歩行開始位置を原点とし、歩行者の移動経路をX軸(X軸上の線分)として表している。
図14のBのXY座標面上において、移動軌跡r1は、測位装置10により測位された位置を一定時間おきにプロットして線でつないだ軌跡を示し、移動軌跡r2は、比較装置により測位された位置を一定時間おきにプロットして線でつないだ軌跡を示す。
図14のBによれば、比較装置により得られた移動軌跡r2は、歩行者の実際の移動経路であるX軸上の線分に沿っており、歩行者の移動方向を略正確に検出している。一方、歩行者が20mの歩行を終了した時点では約25mの位置を示し、移動量の誤差が5m程度生じている。
これに対して、測位装置10により得られた移動軌跡r1は、歩行者の実際の移動経路であるX軸上の線分に対して、Y軸方向への少しのずれが生じたものの、歩行者が20mの歩行を終了した時点でX軸方向に関して略20mの位置を示しており、少なくとも移動量の誤差が比較装置よりも十分に小さい。
なお、移動軌跡r1の丸で囲まれた部分のプロットは、他の部分よりもXY座標面上での間隔が狭くなっており、歩行者が停止したことを示している。このような現象はX軸の5m、10m、及び15mの付近において生じており、実際に歩行者がそれらの位置で停止したことと合致している。このことからも、歩行終了時だけでなく歩行開始から歩行終了までの全般にわたり、測位装置10の移動量の誤差が、STOP&GOのような歩行に対しても比較装置よりも十分に小さいことがわかる。
また、測位装置10により測位された位置の誤差は、Y軸方向だけに着目すると比較装置よりも大きく見えるが、X軸方向にはほとんど生じていないため、2m未満の誤差でしかない。
一方、比較装置により測位された位置の誤差は、X軸方向への誤差が大きく歩行者が20mの歩行を終了したときには5m程度の誤差を生じている。
したがって、本実施の形態における測位装置10は、比較装置と比較して、移動量の誤差が小さく、また、測位した位置の誤差も小さい。
<移動方向誤差>
図15において、図15のAは、検証の際の歩行者の歩行の様子を示しており、測位装置10と比較装置とを同一位置で保持した歩行者が、わき見歩きとして、20mの距離を直進的に歩行し、その間に5mおきに、左わき見、右わき見、左わき見を行ったことを示す。
図15のBは、図15のAのように歩行者が歩行を開始してから20mを移動して歩行を終了するまでの間に、測位装置10と比較装置の各々において測位された位置の軌跡を示す。図14と同様に図15のXY座標は実空間における水平面上での位置を表し、歩行開始位置を原点とし、歩行者の移動経路をX軸(X軸上の線分)として表している。
図15のBのXY座標面上において、移動軌跡r1は、測位装置10により測位された位置を一定時間おきにプロットして線でつないだ軌跡を示し、移動軌跡r2は、比較装置により測位された位置を一定時間おきにプロットして線でつないだ軌跡を示す。
図15のBによれば、比較装置により得られた移動軌跡r2は、歩行者の実際の移動経路であるX軸上の線分に対してY軸方向に最大で3m程度のずれを生じている。このY軸方向へのずれは、歩行者のわき見によって、比較装置により検出される移動方向に誤差が生じたためである。
これに対して、測位装置10により得られた移動軌跡r1は、歩行者の実際の移動経路であるX軸上の線分に対して、Y軸方向へのずれが最大でも1m程度であり、比較装置と比較して十分に小さい。
移動軌跡r1の丸で囲まれた部分に着目すると、プロット間の線分の向きが比較装置の同時刻のものと比較してX軸方向に向いている。
このことから、測位装置10が検出する移動方向の誤差は、比較装置と比べて十分に小さいことがわかる。
また、測位装置10により測位された位置の誤差は、X軸方向にほとんど生じておらず、X軸方向の誤差とY軸方向の誤差を両方考慮しても、大きくても1m程度の誤差しか生じていない。
したがって、本実施の形態における測位装置10は、比較装置と比較し、移動方向の誤差が小さく、また、測位した位置の誤差も小さい。
以上のように移動量の誤差が生じやすいSTOP&GOの歩行や、移動方向の誤差が生じやすいわき見歩きに対しても本技術に係る測位装置10は精度良く測位できることがわかる。
<誤差検証>
図16は、比較装置における移動量または移動方向の検出に誤差を生じさせる要素であって本実施の形態における測位装置10の移動ベクトルMの推定においては十分な精度を得る対応が可能な要素を示した図である。図16に示すように、比較装置における移動量または移動方向の検出に誤差を生じさせる要素を大別すると、歩行者の動きに関する要素、歩行者(人)に関する要素、及び歩行の環境に関する要素に分類される。
動きに関する要素として、“わき見歩き”(図18参照)、“STOP&GO” (図17参照)及び“ゆっくり歩き”、“人を避ける”、“走り”(図17参照)、“横歩き”(図18参照)等が挙げられる。
人に関する要素として、“歩き方の個人差”、“端末の持ち方/装着方法の個人差”、“履いている靴の違い(スニーカー、革靴、ハイヒール)”等が挙げられる。
環境に関する要素として、“階段”、“坂道”等が挙げられる。
そして、各要素について、比較装置の移動量の誤差への影響が大きいものにはその右側の“移動量の誤差”の欄に丸印が付けられ、移動方向の誤差に対して影響が大きいものは更にその右側の“移動方向の誤差”の欄に丸印が付けられている。
これに対して、本技術が適用された測位装置10は、一例として“STOP&GO”(図14)と“わき見歩き”(図15)に対する実測結果を比較して説明したように図16に挙げられるような要素による誤差を抑制することができる。
<装着部位に関する効果>
また、比較装置のように歩行の動作を検出する場合、ユーザが歩行中において歩行以外の動作を行う可能性の高い部位に比較装置を装着すると、歩行の動作の検出が適切に行われず、測位した位置に誤差が生じやすい。
図19に示すように、足は、歩行中において歩ごとに静止するので比較装置の装着部位としては適している。
また、腰も、歩行中において体と比較装置の向きが一定になるので装着部位としては適している。
一方、手や腕、は、歩行中における動きの個人差が大きく、向きの自由度も大きいため、比較装置の装着部位としては適さない。
また、頭部は、手や腕よりは自由度は小さいが、動きに個人差があることや、わき見により体と頭部の向きが変化するため比較装置の装着位置としては適さない。
一般に足や体幹から離れる部位ほど運動の自由度が大きくなり、比較装置の装着部位としては適さない。
これに対して本実施の形態における測位装置10は、装着部位の違いによる誤差を抑制することができるため、装着部位を制限することなく、精度良く測位できる。
また、測位装置10は、頭部に装着しても精度良く測位することができるため、測位装置10をVision ARやHearable ARなどで使用される頭部への装着機器(ヘッドマウントディスプレイ等)に搭載することも有効である。
さらに、測位装置10を頭部への装着機器に搭載した場合、測位装置10はユーザのしゃがみや伏せなどの動作時に頭の位置(高さ)も測定できる。そのため、目や耳の位置が直接把握できるので測位装置10のVision ARやHearable ARへの利用は効果的である。
<誤差領域に関する効果>
また、図20は、歩行者が所定方向に1歩進んで1/2(m)の距離を移動したときに歩行者が保持する3軸の加速度センサ及び角速度センサから出力される加速度データ及び角速度データを示す。これに対して、図21のAには、図20の加速度データ及び角速度データに基づいて比較装置が算出した移動量及び移動方向を示すベクトル120が示されるとともに、算出した移動量及び移動方向の誤差範囲aが示されている。
比較装置は、加速度データ及び角速度データに基づいて移動量と移動方向とを分けて算出しているため、図21のAが示すように移動量及び移動方向の誤差範囲aは、ベクトル120の始点を中心として移動ベクトルの終点を通るように描いた円弧に沿った細長い非円形の範囲となる。
一方、図21のBには、図20の加速度データ及び角速度データに基づいて本実施の形態における測位装置10の移動ベクトル推定部48が推定した移動ベクトルMが示されるとともに、移動ベクトルMの誤差範囲bが示されている。
測位装置10は、加速度データ信号と角速度データから直接的に移動ベクトルMを推定するため、誤差範囲bが示すように、移動ベクトルMの終点を中心とした略円形の範囲となる。このような誤差範囲bの誤差は、比較装置における誤差範囲aの誤差に比べて低速時の精度指標として優れている。
また、本実施の形態における測位装置10は、次のような効果も有する。
測位装置10は、位置の更新のタイミングが歩によらないので、任意のタイミングで推定位置を出力することができる。測位装置10による測位をAR(拡張現実)に適用した場合、任意のタイミングで拡張画像の結像位置(表示位置)が更新できるようになり、表現が滑らかになる。
また、測位装置10は、全地球航法衛星システム(GNSS)とカルマンフィルタ等により統合することができ、高架下やトンネル、ビル街に強いGNSS受信機を作ることができる。
また、測位装置10は、ヘッドマウント装置に組み込むことができ、測位装置10とヘッドマウント装置とを別々に装着する方法よりも効果的である。
また、測位装置10は、スマートフォンに組み込むことができ、スマートフォンのディスプレイによるVision ARに用いることができる。
また、測位装置10は、通話持ち、ポケット持ち、手持ちなど、様々な持ち替えにかかわらず測位を行うことができるため、使用中に横向きや通話状態になることや、画面を見ないときはポケットにしまう挙動を許容するスマートフォンVision ARアプリを実現できる。
<<他の実施の形態>>
<磁北方向の算出の他の実施の形態>
図2に示した実施の形態において、AHRS32の姿勢推定部46は、地磁気センサ45から供給された地磁気信号に基づいて検出した機体座標系における地磁気方向をそのまま機体座標系における磁北方向として決定したが、地磁気の乱れを考慮して次のような算出処理を行って磁北方向を決定してもよい。
地磁気の乱れは周囲環境の影響を受けて生じ、地磁気方向が真の磁北方向を示さない場合がある。図22は、施設内における地磁気の乱れを例示しており、図22には施設内における各所の地磁気方向をベクトルで表した地磁気ベクトル70が実線矢印により示されている。
図22の地磁気ベクトル70が示すように施設内における地磁気方向は、施設内に配置された不図示の壁や電子機器等の影響により様々な方向にばらつき、地磁気方向が真の磁北方向(紙面上方)と相違する場所が存在する。このような場合に、1カ所において検出した地磁気方向を磁北方向として決定すると、決定した磁北方向が真の磁北方向に対して大きく相違する可能性がある。
そこで、姿勢推定部46は、地磁気センサ45から供給される地磁気信号に基づいて複数の場所での地磁気方向の検出及び収集を行い、収集した地磁気方向を平均化した平均方向を磁北方向として算出するようにしてもよい。
これによれば、例えば、図22の丸印で示すような施設内の複数の場所71の地磁気方向が収集され、それらの地磁気方向の平均方向72が磁北方向として算出される。平均方向72は真の磁北方向に略一致する。このように複数の場所の地磁気方向の平均方向を磁北方向とすることで、周囲環境の影響に起因する地磁気方向のばらつきに対して磁北方向の検出誤差が軽減される。
このような磁北方向の算出処理を行う場合における姿勢推定部46の処理について説明する。
(地磁気方向の収集)
姿勢推定部46は、まず、地磁気センサ45から供給される地磁気信号に基づいて複数の場所で地磁気方向を検出し、複数の場所の地磁気方向の収集を行う。
地磁気方向の収集は、歩行者が移動しているときに予め設定された所定時間おきに行い、予め設定された回数の地磁気方向の検出が終了した際に、または、地磁気方向の収集開始から予め設定された時間が経過した際に終了するようにしてもよい。また、地磁気方向の収集は、後述のように地磁気方向を検出した場所を考慮して行うようにしてもよいし、特定の方法に限定されない。更に、地磁気方向の収集の際には、測位装置10を保持した歩行者が意図的に施設内を動き回るようにしてもよいし、歩行者が地磁気方向の収集を意識することなく移動している際に地磁気方向の収集を行うようにしてもよい。
また、姿勢推定部46は、複数の場所の地磁気方向の収集を行っている間、センサ融合部38から機体の現在位置(絶対位置)を示す座標値Pを取得する。これによって、姿勢推定部46は、地磁気方向を検出した場所を知ることができるため、同一の場所の地磁気方向を重複して検出することを回避することができる。
なお、磁北方向の算出が一度も行われていない間は、姿勢推定部46は、1カ所において検出した磁北方向を用いて姿勢データを求めてセンサ融合部38の座標変換部56に供給する。
また、姿勢推定部46は、地磁気方向の収集を行っている間、IMUキャリブレーション部44から供給される角速度データ(ωx,ωy,ωz)に基づいて機体の初期姿勢(初期方位)に対する相対姿勢変化を推定する。
(地磁気方向の平均方向の算出)
姿勢推定部46は、地磁気方向の収集が終了すると、収集した地磁気方向を平均化した平均方向を算出する。
ここで、姿勢推定部46における地磁気方向の検出は、地磁気センサ45からの地磁気信号に基づいて、機体座標系における地磁気方向を検出する処理である。具体的には、地磁気センサ45からの地磁気信号に基づいて、機体座標系における地磁気方向をベクトルで表した地磁気方向ベクトルのxyz成分値を検出することに相当する。ここでは、地磁気の強さを考慮しないものとして地磁気方向ベクトルは単位ベクトルとする。
一方、地磁気方向(地磁気方向ベクトル)の収集を行っている間に機体の姿勢が変化すると、実空間における機体座標系のxyz軸の方向が変化するため、複数の場所で検出した地磁気方向ベクトルを、検出時のxyz成分値によりそのまま1つの機体座標系に表しても実空間における各場所の地磁気方向を正しく示したものとはならない。
そこで、姿勢推定部46は、複数の場所で検出した地磁気方向ベクトルを、1つの場所での機体座標系に表したときのxyz成分値を算出する。
具体的には、複数の場所において検出した地磁気方向ベクトルの各々を検出順に第1乃至第nの地磁気方向ベクトル(nは2以上の整数)とし、第1乃至第nの地磁気方向ベクトルの各々を検出した場所を第1乃至第nの場所とすると、姿勢推定部46は、第1乃至第nの地磁気方向ベクトルを第n場所での機体座標系に表したときのxyz成分値を算出する。
第1乃至第(n-1)の地磁気方向ベクトルのうちの所望の地磁気方向ベクトルを、第mの地磁気方向ベクトル(mは1乃至n-1の任意の整数)で表すと、姿勢推定部46は、地磁気方向の収集を行っている間に推定した機体の相対姿勢変化に基づいて、第mの場所から第nの場所まで歩行者が移動した間に生じた機体の相対姿勢変化を求める。
そして、姿勢推定部46は、求めた機体の相対姿勢変化に基づいて、第mの地磁気方向ベクトルが示す実空間における第mの場所での地磁気方向を、第nの場所での機体座標系に表したときのxyz成分値を算出する。
なお、姿勢推定部46は、第1乃至第(n-1)の地磁気方向ベクトルを、地磁気方向を最後に検出した第nの場所での機体座標系に表したときのxyz成分値を算出したが、地磁気方向ベクトルを表す対象の機体座標系は第nの場所での機体座標系に限らない。地磁気方向ベクトルを表す対象の機体座標系は、例えば、地磁気方向の収集が終了した後も機体の相対姿勢変化の推定を継続することで、地磁気方向の収集が終了した後の任意の場所または任意の時刻における機体座標系とすることができる。このとき、姿勢推定部46は第nの地磁気方向ベクトルについても第1乃至第(n-1)の地磁気方向ベクトルと同様に、地磁気方向ベクトルを表す対象の機体座標系に表したときのxyz成分値を算出する。
また、以下の処理の説明においては、地磁気方向ベクトルを表す対象の機体座標系がどの場所またはどの時刻における機体座標系かを明示することなく、単に機体座標系というものとする。
(地磁気方向の平均方向の算出・磁北方向の決定)
次に、姿勢推定部46は、第1乃至第nの場所において収集した全ての地磁気方向(第1乃至第nの地磁気方向ベクトル)の相加平均を算出し、算出した相加平均が示すベクトルの方向を第1乃至第nの場所において収集した全ての地磁気方向の平均方向とする。
そして、姿勢推定部46は、第1乃至第nの場所において収集した全ての地磁気方向の平均方向を磁北方向として決定する。
なお、第1乃至第nの地磁気方向ベクトルの相加平均を個数nで除する前の第1乃至第nの地磁気方向ベクトルの総和が示すベクトルの方向を平均方向としてもよい。また、地磁気方向ベクトルは地磁気の強さを考慮しない単位ベクトルであるものとしたが、姿勢推定部46は、地磁気方向を検出する際に地磁気の強さも検出し、地磁気方向ベクトルを、検出した場所における地磁気方向を表すベクトルとするとともに、検出した場所における地磁気の強さに応じた大きさを有するベクトルとしてもよい。この場合に、姿勢推定部46は、複数の場所で検出した地磁気方向ベクトルに対して相加平均のベクトルを算出し、算出した相加平均のベクトルの方向を平均方向として磁北方向を決定することで、各場所での地磁気の強さを考慮した磁北方向を求めることができる。
(機体の姿勢推定)
姿勢推定部46は、以上のようにして機体座標系における磁北方向を決定すると、IMUキャリブレーション部44から供給される加速度データ(Ax,Ay,Az)及び角速度データ(ωx,ωy,ωz)に基づいて機体座標系における鉛直方向を検出し、検出した鉛直方向と磁北方向とに基づいて機体座標系における真北方向を検出する。そして、姿勢推定部46は、検出した鉛直方向と真北方向とに基づいて、世界座標系における機体の姿勢を検出する。
姿勢推定部46は、このときの検出した機体の姿勢を初期姿勢とし、その後、IMUキャリブレーション部44から供給される角速度データ(ωx,ωy,ωz)に基づいて機体の初期姿勢に対する相対姿勢変化を推定する。そして、姿勢推定部46は、初期姿勢と推定した機体の相対姿勢変化とに基づいて世界座標系における機体の姿勢を推定する。
以上の磁北方向の算出は、測位開始時だけでなく、所定時間おきに繰り返し行うようにしてもよい。この場合に、姿勢推定部46は、磁北方向を算出するごとに、算出した磁北方向に基づいて機体の姿勢を求める。姿勢推定部46は、ここで求めた機体の姿勢を初期姿勢として、その後、その初期姿勢に対する相対姿勢変化を推定して機体の姿勢を推定する。
(地磁気方向の収集に関する形態)
続いて、磁北方向を算出するための複数の場所の地磁気方向の収集に関して更に説明する。
図23は、図22と同様に施設内における地磁気の乱れを例示しており、図22と同一要素には同一符号を付して説明を省略する。
施設内の局所的な領域73内では略全ての場所において地磁気ベクトル70の方向が、真の磁北方向に対して大きく相違し、かつ、略均一方向となる場合もあり得る。この場合に、領域73内の複数の場所において地磁気方向を検出して、それらの地磁気方向の平均方向74を磁北方向として算出しても、算出した平均方向74は、真の磁北方向に対して大きく相違する。
一方、施設内の広範囲の領域75内では、各所において周辺環境の影響を受けて地磁気に乱れが生じたとしても全体的には地磁気ベクトル70の方向が真の磁北方向を基準にして不均一な方向にばらつく。したがって、広範囲の領域75の複数の場所において地磁気方向を検出して、それらの地磁気方向の平均方向76を磁北方向として算出すれば、算出した平均方向76が真の磁北方向と略一致し、適切に真の磁北方向を検出することができる。
そこで、姿勢推定部46は、複数の場所の地磁気方向の収集を行っている間、後述のセンサ融合部38から取得した機体の位置情報に基づいて、既に地磁気方向を検出している全ての場所に対して、所定距離(例えば2m)以上離間した場所であると判断したときに、地磁気方向を検出する。すなわち、姿勢推定部46は、互いに所定距離以上離間した場所において地磁気方向を検出する。
そして、姿勢推定部46は、地磁気方向を収集した全ての場所を内包する最小円の直径が、所定長さ(例えば10m)以上となったときに地磁気方向の収集を終了する。
<外界センサ36>
本技術の実施の形態において、外界センサ36の測位方法は、測位装置10が実際に移動する実空間における機体の位置を任意の絶対座標系により特定するものであれば任意の測位方法を採用することができる。採用可能な測位方法としては例えばGPS(Global Positioning System)等の衛星情報を利用したGNSS(Global Navigation Satellite System:全地球航法衛星システム)を利用した測位方法、WiFi(登録商標)、Bluetooth(登録商標)、iBeacon(登録商標)、UWB(Ultra-WideBand)、その他の無線通信規格にしたがって無線通信を行う装置からの信号(ビーコン信号等)を利用した測位方法、無線通信網の基地局装置の位置情報を利用した測位方法がある。また、環境設置カメラや機器上のカメラによる測位方法(SLAM等)、マップマッチングによる測位方法も採用可能である。
<測位対象>
本技術の実施の形態の説明において、測位装置10を保持する測位対象である移動体を主に歩行者としたが、歩行者には、歩行自体を目的としない人も含み、測位対象とする移動体は歩行者に限らず、自動車、自転車等の移動可能な任意の移動体を測位対象とすることができる。本技術を適用した測位装置10を移動体に組み込むこともできる。
<2次元への摘要>
本技術の実施の形態では、絶対座標系における緯度、経度、及び高度の3次元の測位を行うものとして説明したが、緯度、経度の2次元のみ測位であってもよい。この場合に、PDR絶対位置化部60において積算部58からの変位ベクトルDに対して地理座標系の座標値(緯度値、経度値、高度値)の高度値を算出しない態様としてもよいし、座標変換部56において世界座標系の高さ方向の成分値を算出しない態様としてもよいし、積算部58において世界座標系の高さ方向の成分値を算出しない態様としてもよい。その他の処理部においても2次元への対応への変更は適宜容易になし得る。
<他の効果>
また、本明細書中に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
<プログラム>
また、図2のDNN34、センサ融合部38、姿勢推定部46、座標変換部56、積算部58、PDR絶対位置化部60における一連の処理の一部及び全ては、ハードウェアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図24は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)201,ROM(Read Only Memory)202,RAM(Random Access Memory)203は、バス204により相互に接続されている。
バス204には、さらに、入出力インタフェース205が接続されている。入出力インタフェース205には、入力部206、出力部207、記憶部208、通信部209、及びドライブ210が接続されている。
入力部206は、キーボード、マウス、マイクロフォンなどよりなる。出力部207は、ディスプレイ、スピーカなどよりなる。記憶部208は、ハードディスクや不揮発性のメモリなどよりなる。通信部209は、ネットワークインタフェースなどよりなる。ドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア211を駆動する。
以上のように構成されるコンピュータでは、CPU201が、例えば、記憶部208に記憶されているプログラムを、入出力インタフェース205及びバス204を介して、RAM203にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU201)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア211に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア211をドライブ210に装着することにより、入出力インタフェース205を介して、記憶部208にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部209で受信し、記憶部208にインストールすることができる。その他、プログラムは、ROM202や記憶部208に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
なお、本技術は、以下のような構成も取ることができる。
<1> 機体の加速度を検出する加速度センサにより検出された前記加速度と、前記機体の角速度を検出する角速度センサにより検出された前記角速度とに基づいて、前記機体の移動量及び移動方向を示す移動ベクトルを機械学習モデルにより推定する移動ベクトル推定部と、
前記移動ベクトルを積算し、前記機体の相対位置を算出する積算部と
を含む測位装置。
<2>
前記移動ベクトル推定部は、前記加速度センサにより検出された前記加速度と前記角速度センサにより検出された前記角速度とに基づいて、前記機体に固定された機体座標系における移動量及び移動方向を示す移動ベクトルを前記機械学習モデルにより推定する
<1>に記載の測位装置。
<3>
前記移動ベクトル推定部により推定された、前記機体座標系における前記移動ベクトルを、実空間に固定された世界座標系における移動ベクトルに変換する変換部をさらに含み、
前記積算部は、前記変換部により変換された前記世界座標系における前記移動ベクトルを積算し、前記実空間の所定の基準位置に対する前記機体の相対位置を算出する
<2>に記載の測位装置。
<4> 前記世界座標系における前記機体の姿勢を検出する姿勢推定部をさらに含み、
前記変換部は、前記姿勢推定部により検出された前記姿勢に基づいて、前記移動ベクトル推定部により推定された前記移動ベクトルを前記世界座標系における移動ベクトルに変換する
<3>に記載の測位装置。
<5> 前記機体座標系における地磁気方向を検出する地磁気センサをさらに含み
前記姿勢推定部は、前記地磁気センサにより検出された前記地磁気方向に基づいて前記機体の前記姿勢を検出する
<4>に記載の測位装置。
<6> 前記姿勢推定部は、複数の場所において前記地磁気センサにより検出された前記地磁気方向の平均方向に基づいて前記機体の前記姿勢を検出する
<5>に記載の測位装置。
<7> 前記姿勢推定部は、互いに所定距離以上離間した複数の場所において検出された前記地磁気方向の平均方向に基づいて前記機体の前記姿勢を検出する
<6>に記載の測位装置。
<8> 前記積算部により算出された前記基準位置に対する前記機体の前記相対位置に基づいて、前記実空間に対して予め座標値が定められた絶対座標系における前記機体の絶対位置であって、前記相対位置に対応する前記実空間における位置を算出する絶対位置化部
をさらに含む<1>乃至<3>のいずれかに記載の測位装置。
<9> 前記絶対座標系における前記機体の絶対位置を取得する外界センサをさらに含み、
前記絶対位置化部は、前記外界センサにより取得された前記機体の前記絶対位置に基づいて前記絶対座標系における前記基準位置を設定し、設定した前記基準位置と前記相対位置とに基づいて前記機体の前記絶対位置を算出する
<8>に記載の測位装置。
<10>
前記外界センサからの情報を用いて前記機体の姿勢を検出する姿勢推定部をさらに含み、
前記変換部は、前記姿勢推定部により検出された前記姿勢に基づいて、前記移動ベクトル推定部により推定された前記移動ベクトルを前記世界座標系における移動ベクトルに変換する
<9>に記載の測位装置。
<11> 前記機械学習モデルは、所定の移動ベクトル推定期間において、前記加速度センサにより検出された前記加速度と前記角速度センサにより検出された前記角速度とが入力データとして入力され、前記入力データに対して前記移動ベクトル推定期間において前記機体が移動したと推定される前記機体座標系における移動量及び移動方向を示す移動ベクトルを前記移動ベクトル推定期間ごとに出力する
<2>乃至<10>のいずれかに記載の測位装置。
<12> 前記加速度センサは互いに直交する3軸方向の加速度を検出し、
前記角速度センサは前記3軸方向の角速度を検出し、
前記移動ベクトル推定部は、前記機体座標系における移動ベクトルを前記機体座標系の直交する3軸方向の成分値として推定する
<2>乃至<11>のいずれかに記載の測位装置。
<13> 前記機械学習モデルは、学習用歩行データにより予め訓練され、
前記学習用歩行データは、歩行者が前記機体を保持した際に前記加速度センサ及び前記角速度センサにより得られる前記加速度及び前記角速度に相当する入力データと、前記入力データに対して正解とする移動ベクトルとからなる
<1>乃至<12>のいずれかに記載の測位装置。
<14> 前記機械学習モデルは、ニューラルネットワークにより構成される
<1>乃至<13>のいずれかに記載の測位装置。
<15> 測位装置は、
移動ベクトル推定部と、
積算部と
を含み、
前記移動ベクトル推定部が、機体の加速度を検出する加速度センサにより検出された前記加速度と、前記機体の角速度を検出する角速度センサにより検出された前記角速度とに基づいて、前記機体の移動量及び移動方向を示す移動ベクトルを機械学習モデルにより推定し、
前記積算部が、前記移動ベクトルを積算し、前記機体の相対位置を算出する
測位方法。
<16> コンピュータを、
機体の加速度を検出する加速度センサにより検出された前記加速度と、前記機体の角速度を検出する角速度センサにより検出された前記角速度とに基づいて、前記機体の移動量及び移動方向を示す移動ベクトルを機械学習モデルにより推定する移動ベクトル推定部と、
前記移動ベクトルを積算し、前記機体の相対位置を算出する積算部と
して機能させるためのプログラム。