(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
[システム構成]
本発明の一実施形態について図面を参照して説明する。本実施形態は、センサユニットに設けられた角速度センサの検出値に基づいてセンサユニットの姿勢を算出する姿勢計測システムに関する。検出された角速度を時間経過に沿って積算することで、すなわち時間経過に沿って姿勢を回転させてトラッキングしていくことで、センサユニットの姿勢(以下、角速度に基づいて算出されるセンサユニットの姿勢をセンサ姿勢と称する)は高精度で求められ得る。
【0012】
すなわち、各時刻のセンサユニットの姿勢をP
i、各時刻の角速度すなわち回転変化をR
iとしたとき、両者の関係は、
P
i = R
i-1・P
i-1
で表される。ここで、初期姿勢P
0は既知である。P
i、R
iは3×3の回転行列でもよいし、大きさ1のクォータニオンでもよい。
【0013】
ただし、角速度センサの検出値は誤差を有している。このため、検出結果を積算すると誤差も蓄積され、算出される姿勢は正しい値から離れていく。そこで本実施形態では、角速度センサとの位置関係が固定された加速度センサ及び磁気センサを用いて計測された重力方向及び磁気方向に基づいて、算出されるセンサユニットの姿勢(センサ姿勢)の誤差が評価され、センサ姿勢が補正される。
【0014】
本実施形態に係る姿勢計測システム1の構成例の概要を
図1に示す。姿勢計測システム1は、センサユニット10と解析ユニット20とを含む。本実施形態では、センサユニット10は、角速度、加速度、磁気方向を検出するセンサを有しており、任意の期間の検出結果を保存する。解析ユニット20は、センサユニット10に記録された任意の期間の角速度、加速度、磁気方向に係る情報を読み出して、これらに基づいて解析を行いセンサユニット10の姿勢を算出する。解析ユニット20は、姿勢算出装置として機能する。
【0015】
センサユニット10は、バスライン19を介して互いに接続された角速度センサ11と、加速度センサ12と、磁気センサ13と、プロセッサ14と、random access memory(RAM)15と、フラッシュメモリ16と、入力装置17と、インターフェイス(I/F)18とを備える。
【0016】
角速度センサ11は、例えばMEMS角速度センサが3軸方向に設けられた構成を有し、各軸周りの角速度を検出する。加速度センサ12は、例えばMEMS加速度センサが3軸方向に設けられた構成を有し、各軸方向の加速度を検出する。加速度センサ12の検出結果に基づけば、重力方向が求められる。磁気センサ13は、例えば3軸磁気センサであり、磁気方向を検出する。
【0017】
プロセッサ14は、例えばCentral Processing Unit(CPU)、Application Specific Integrated Circuit(ASIC)、Field Programmable Gate Array(FPGA)等といった集積回路であり、各種信号処理等を行う。RAM15は、プロセッサ14の主記憶装置として機能する。フラッシュメモリ16には、角速度センサ11、加速度センサ12、磁気センサ13により検出され、プロセッサ14で処理された角速度情報、加速度情報、磁気情報等が記録される。また、フラッシュメモリ16には、プロセッサ14で用いられるプログラム、パラメータ等各種情報も記録されている。RAM15及びフラッシュメモリ16は、これに限らず各種記憶装置に置換され得る。入力装置17は、例えばスイッチ等、ユーザの入力を受け付ける装置であり、例えばセンサユニット10の起動や計測の開始及び終了の指示が入力される。I/F18は、センサユニット10の外部とデータの送受信を行うためのインターフェイスである。
【0018】
解析ユニット20は、例えばバスライン29によって互いに接続されたプロセッサ21と、RAM22と、記録装置23と、ディスプレイ24と、入力装置25と、I/F26とを備える。I/F26は、解析ユニット20の外部とデータの送受信を行うためのインターフェイスであり、例えばセンサユニット10と通信を行う。センサユニット10と解析ユニット20との間の通信は、有線で行われても、無線で行われてもよい。
【0019】
プロセッサ21は、例えばCPU、ASIC、FPGA等といった集積回路であり、各種信号処理等を行う。プロセッサ21は、センサユニット10から読み出した、角速度情報、加速度情報、磁気情報に基づいて、センサユニット10の姿勢を算出する。RAM22は、プロセッサ21の主記憶装置として機能する。
【0020】
記録装置23には、プロセッサ21で用いられるプログラム、パラメータ等各種情報が記録されている。また、記録装置23には、センサユニット10から読み出された検出結果、プロセッサ21で算出されたセンサユニット10の姿勢等が記録される。RAM22及び記録装置23は、これに限らず各種記憶装置に置換され得る。ディスプレイ24は、これに限らないが例えば液晶ディスプレイ等であり、センサユニット10の姿勢等は、ディスプレイ24に表示される。入力装置25は、例えばキーボード、マウス等である。解析ユニット20は、例えばパーソナルコンピュータ(PC)等であり得る。
【0021】
姿勢計測システム1の使用状況の一例を
図2に模式的に示す。
図2の例において、センサユニット10は、計測対象である人物90の腰などの体幹に装着される。この状態で人物90が運動をする。その結果、センサユニット10には、人物90の動きに関わるデータが蓄積される。運動後、解析ユニット20は、センサユニット10からデータを読み出し、人物90の運動を解析する。解析ユニット20は、解析結果に基づいて、そのディスプレイ24に、姿勢をアニメーション表示してもよいし、力積、速度等を表示してもよい。姿勢計測システム1によれば、例えば人物90がダンスをしたときの人物90の動きが記録される。
【0022】
本実施形態では、場所によって磁気方向が異なることがあることが考慮されている。例えば、スピーカー、スチール机等の磁性体の影響を受けて他の場所と磁気方向が異なる場所が存在することがある。このような状況は、姿勢計測システム1が用いられ得るダンス競技等の場面においても生じ得る。
図2は、磁気方向を矢印で示している。この例では、磁気方向は、磁性体110の影響を受けている。第1の領域101では、例えば地磁気に由来する、矢印で示した図中左から右への磁気方向(地磁気方向)を有する磁場が存在する。一方で、磁性体110の近傍の第2の領域102では、磁性体110が存在するために、矢印で示した図中上から下への磁気方向を有する磁場が存在する。以下、地磁気に由来する磁気方向(地磁気方向)及び磁性体の影響による磁気方向を合わせて環境の磁気方向と称する。
【0023】
センサユニット10を装着した人物90は、例えば、第1の領域101内(図中(1))から第2の領域102内(図中(2))へと移動し、さらに第1の領域101内(図中(3))へ、第2の領域102内(図中(4))へ等と移動することがある。
【0024】
センサユニット10が磁気方向が異なる領域間を移動するような場合には、センサユニット10が存在する位置の磁気方向が変化する。このようなときに、角速度センサ11の検出値に基づいて算出されたセンサ姿勢の誤差を、磁気センサ13の検出値を用いて評価すると、評価結果は誤ったものとなることがある。そこで本実施形態では、センサユニット10が磁気方向が異なる領域間を移動するような場合等、磁気センサ13で検出される磁気方向が不安定な場合には、磁気センサ13の検出値を用いたセンサ姿勢の誤差の評価が行われない。
【0025】
また、上述の説明のように、センサユニット10を装着した人物90は、
図2における第1の領域101にしばらく位置し、さらに
図2における第2の領域102の中にしばらく位置するといったことも想定される。第1の領域101内と第2の領域102内では、磁気方向は異なるものの、磁気方向は安定している。このような場合、第1の領域101内で検出した磁気センサ13の検出値と第2の領域102内で検出した磁気センサ13の検出値とのうち何れか一方のみしかセンサ姿勢の誤差の評価に用いられないとすると、長期間誤差の評価が行われない状況が生じ、算出されるセンサ姿勢の誤差が大きくなることが起こり得る。そこで本実施形態では、安定した磁気方向が計測されるときには、各々の環境の磁気方向を利用して、センサ姿勢の誤差の評価が行われる。
【0026】
なお、センサユニット10は、人物90のどこにいくつ装着されてもよい。また、姿勢計測システム1は、人物の運動に関わらず、例えば各種ロボット、機械、自動車、航空機等の運動解析に用いられてもよい。
【0027】
また、ここでは、センサユニット10は人物90の運動に支障が出ない程度に小型のものであることを想定しているが、これに限らない。角速度センサ11と、加速度センサ12と、磁気センサ13とは、相対的な位置関係が維持されていれば、互いに離れて配置されていてもよい。
【0028】
[システムの動作]
〈概要〉
上述のとおり、姿勢計測システム1が使用される際、まずセンサユニット10が計測対象に装着される。センサユニット10は、計測対象の運動中に計測される角速度、加速度、磁気方向をフラッシュメモリ16に記録する。計測対象である運動の終了後、センサユニット10と解析ユニット20とは接続され、解析ユニット20は、センサユニット10のフラッシュメモリ16に記録された運動に係るデータを読み出し、記録装置23に保存する。その後、解析ユニット20のプロセッサ21は、記録装置23に記録されたデータを用いて、計測期間中のセンサユニット10の姿勢の変化を解析する。
【0029】
角速度センサ11の出力の積算によって得られるセンサユニット10の姿勢を上述のとおりセンサ姿勢と称し、センサ姿勢が示す重力方向の成分をセンサ重力方向と称し、センサ姿勢が示す磁気方向の成分をセンサ地磁気方向と称することにする。また、加速度センサ12の出力に基づいて得られる重力方向を参照重力方向と称し、磁気センサ13の出力に基づいて得られる磁気方向を参照地磁気方向と称し、参照重力方向及び参照地磁気方向を合わせて参照姿勢と称することにする。参照重力方向の算出には、加速度センサ12の出力の所定期間の時間平均が用いられることが好ましい。また、参照地磁気方向の算出には、磁気センサ13の出力の所定期間の時間平均が用いられることが好ましい。
【0030】
本実施形態で取り扱われる方向等について、
図3を参照して説明する。
図3に示すように、センサ重力方向と参照重力方向とには、角度θ1に示すような重力方向誤差が生じることがある。同様に、センサ地磁気方向と参照地磁気方向とには、角度θ2に示すような地磁気方向誤差が生じることがある。この重力方向誤差θ1及び地磁気方向誤差θ2を含む参照角度差が小さくなるようにセンサ姿勢の算出は行われる。
【0031】
本実施形態では、解析ユニット20は、角速度センサ11で取得された角速度履歴値と、加速度センサ12で取得された参照重力方向履歴値と、磁気センサ13で取得された参照地磁気方向履歴値とを取得する。解析ユニット20のプロセッサ21で行われる本実施形態に係る姿勢算出処理について説明する。
【0032】
本実施形態に係る姿勢算出処理について、
図4に示すフローチャートを参照して説明する。
【0033】
ステップS101において、プロセッサ21は、磁場安定区間ラベリング処理を行う。磁場安定区間ラベリング処理では、プロセッサ21は、センサユニット10によって記録されたデータについて、磁気方向が安定している時系列的な区間と不安定な時系列的な区間とを特定する。センサユニット10が同一の磁気方向を有する磁場が存在する場所に居続けたときに得られたデータは、安定区間として特定される。一方、ある磁場が存在する場所から異なる磁場が存在する場所へと移動したときに得られたデータは、不安定区間として特定される。さらに、プロセッサ21は、磁気方向が安定している安定区間について、それぞれ区間ラベルを付す。また、安定区間の各々についてセンサ姿勢を利用して環境の磁気方向を決定する。
【0034】
ステップS102において、プロセッサ21は、磁気データベース(DB)作成処理を行う。磁気DB作成処理では、プロセッサ21は、磁場安定区間ラベリング処理で区間ラベルが付された各々の安定区間について、同一の磁気方向に係る区間には同一の磁気ラベルを付与する。
【0035】
ステップS103において、プロセッサ21は、姿勢推定・誤差評価処理を行う。姿勢推定・誤差評価処理では、プロセッサ21は、センサユニット10によって記録されたデータに基づいて、各時刻のセンサユニット10の姿勢であるセンサ姿勢を算出する。すなわち、プロセッサ21は、角速度センサ11で取得された角速度を積算することで、センサ姿勢を順に回転させて、センサ姿勢を算出する。さらに、プロセッサ21は、算出されたセンサ姿勢の重力方向成分であるセンサ重力方向と、加速度センサ12を用いて取得された参照重力方向とを比較して、誤差を評価する。また、プロセッサ21は、算出されたセンサ姿勢の地磁気方向成分であるセンサ地磁気方向と、磁気センサ13を用いて取得された参照地磁気方向とを比較して、誤差を評価する。地磁気方向の誤差の評価において、プロセッサ21は、磁気ラベルを利用し、環境の磁気方向を考慮する。プロセッサ21は、この誤差の評価結果を利用して、センサ姿勢の補正を行う。
【0036】
このように、プロセッサ21を含む解析ユニット20は、センサユニット10で取得された、角速度値の履歴値を取得する角速度取得部としての機能と、参照地磁気方向の履歴値を取得する磁気方向取得部としての機能と、センサ地磁気方向を算出する方向算出部としての機能と、センサ地磁気方向の履歴値と参照地磁気方向の履歴値とに基づいて、磁気センサで検出された環境の磁気方向の履歴を決定する環境磁気方向決定部としての機能と、決定された環境の磁気方向の履歴と参照地磁気方向の履歴値とを補正のために用いながら、角速度値を順次に積算することでセンサユニット10の姿勢を算出する姿勢算出部としての機能とを備える。
【0037】
〈磁場安定区間ラベリング処理〉
ステップS101で行われる磁場安定区間ラベリング処理について
図5に示すフローチャートを参照して説明する。
【0038】
ステップS201において、プロセッサ21は、センサユニット10を用いて記録された、角速度データ及び磁気データを取得する。以下のステップS202乃至ステップS206の処理において、プロセッサ21は、得られた角速度を時間順に積算してセンサ姿勢を回転させることで、各時刻のセンサ姿勢を算出する。ここで、プロセッサ21は、定期的に参照地磁気方向をセンサ地磁気方向の初期値として、所定の期間だけセンサ姿勢を回転させた後に求まったセンサ地磁気方向と、その時点における参照地磁気方向とを比較する。
【0039】
すなわち、ステップS202において、プロセッサ21は、センサ姿勢をリセットする。このとき、プロセッサ21は、初期値として、センサ姿勢の地磁気方向を磁気センサ13を用いて得られた参照地磁気方向に設定する。また、プロセッサ21は、角速度を積算してセンサ姿勢を回転させた回数示す積算回数を0に設定する。
【0040】
ステップS203において、プロセッサ21は、センサ姿勢に計算対象としている角速度を積算することでセンサ姿勢を加速度の分だけ回転させて、計算対象としている時点のセンサ姿勢を算出する。プロセッサ21は、この角速度の積算の度に積算回数を1だけ増加させる。
【0041】
ステップS204において、プロセッサ21は、積算回数が所定の第1の閾値よりも小さいか否かを判定する。第1の閾値は任意に設定され得る。積算回数が第1の閾値よりも小さいとき、処理はステップS205に進む。
【0042】
ステップS205において、プロセッサ21は、次のデータがあるか否かを判定する。次のデータがあるとき、処理はステップS203に戻る。その結果、角速度データに基づいて時間経過の順にセンサ姿勢が算出される。なお、ステップS205において、次のデータがないと判定されたとき、処理はステップS211に進む。
【0043】
ステップS204において、積算回数が第1の閾値よりも小さくないと判定されたとき、処理はステップS206に進む。ステップS203の繰り返し処理の対象となった期間、すなわちセンサ姿勢がリセットされてから角速度が繰り返し積算された期間を安定性評価区間とする。
【0044】
ステップS206において、プロセッサ21は、センサ姿勢の地磁気方向成分であるセンサ地磁気方向を算出する。プロセッサ21は、算出したセンサ地磁気方向と、磁気センサ13を用いて取得された参照地磁気方向とを比較し、それらの角度差を算出する。安定性評価区間の最初においてセンサ地磁気方向は参照地磁気方向に設定されているので、算出される角度差は、安定性評価区間におけるセンサ地磁気方向の変化量と参照地磁気方向の変化量との差とも表現され得る。
【0045】
ステップS207において、プロセッサ21は、算出された角度差が、所定の第2の閾値以下であるか否かを判定する。第2の閾値は任意に設定され得る。角度差が第2の閾値以下であるとき、処理はステップS208に進む。ステップS208において、プロセッサ21は、対象としている安定性評価区間を安定区間として登録し、その結果を一時記憶する。その後、処理はステップS210に進む。
【0046】
ステップS207において算出された角度差が第2の閾値より大きいと判定されたとき、処理はステップS209に進む。ステップS209において、プロセッサ21は、対象としている安定性評価区間を不安定区間として登録し、その結果を一時記憶する。また、プロセッサ21は、不安定区間の最初及び最後のセンサ地磁気方向と、不安定区間の最初及び最後の参照地磁気方向とを一時記憶する。これらの方向を用いれば、後述するように不安定区間の前後の安定区間における環境の磁気方向を決定することができる。ステップS209の処理の後、処理はステップS210に進む。
【0047】
ステップS210において、プロセッサ21は、次のデータがあるか否かを判定する。次のデータがあるとき、処理はステップS202に戻る。すなわち、上述の処理が繰り返され、ステップS208又はステップS209で登録された後の所定の期間が安定区間又は不安定区間として登録される。
【0048】
ステップS210で次のデータがないと判定されたとき、処理はステップS211に進む。ステップS211において、プロセッサ21は、安定区間に順に区間ラベルを付する。プロセッサ21は、ラベル付けした安定区間の情報と、不安定区間の情報とを、記録装置23に記録する。また、プロセッサ21は、連続する不安定区間の最初及び最後のセンサ地磁気方向と、連続する不安定区間の最初及び最後の参照地磁気方向とを用いて、連続する不安定区間の前後の安定区間における環境の磁気方向を決定する。プロセッサ21は、安定区間ごとに求まった環境の磁気方向を、当該安定区間においてセンサユニット10が位置した領域の環境の磁気方向として、区間ラベルと共に記録装置23に記録する。以上で、磁場安定区間ラベリング処理は終了する。
【0049】
区間ラベルの概要について、
図6を参照して説明する。積算回数が第1の閾値に達する毎に、すなわち安定性評価区間毎に、当該安定性評価区間の安定又は不安定が判定される。
図6において横軸は時間を示す。ここでは、時間は安定性評価区間毎に区切られているので、
図6の横軸には、安定性評価区間毎に順に1から25までの番号を示した。
図6の縦軸は、安定性を示し、1から25までの各区間が安定(1)であるか不安定(0)であるかを示している。
図6の例では、1乃至4の区間は安定であり、5及び6の区間は不安定であり、7乃至10の区間は安定であり、11及び12の区間は不安定であり、13乃至19の区間は安定であり、20及び21の区間は不安定であり、22乃至25の区間は安定となっている。
【0050】
プロセッサ21は、安定な区間に順に区間ラベルを付与するので、
図6の例では、プロセッサ21は、1乃至4の安定区間には区間ラベル(1)を付与し、7乃至10の安定区間には区間ラベル(2)を付与し、13乃至19の安定区間には区間ラベル(3)を付与し、22乃至25の安定区間には区間ラベル(4)を付与する。
【0051】
また
図6には、不安定区間の前後で変化した磁気方向が示されている。すなわち、5及び6の不安定区間の前の区間ラベル(1)における磁気方向と後の区間ラベル(2)における磁気方向とは+90度異なることが示されている。したがって、区間ラベル(1)の環境の磁気方向を0度としたとき、区間ラベル(2)の環境の磁気方向は90度となる。同様に、11及び12の不安定区間の前の区間ラベル(2)における磁気方向と後の区間ラベル(3)における磁気方向とは−90度異なることが示されている。したがって、区間ラベル(1)の磁気方向を0度としたとき、区間ラベル(3)の環境の磁気方向は0度となる。同様に、20及び21の不安定区間の前の区間ラベル(3)における磁気方向と後の区間ラベル(4)における磁気方向とは+90度異なることが示されている。したがって、区間ラベル(1)の磁気方向を0度としたとき、区間ラベル(4)の環境の磁気方向は90度となる。
【0052】
〈磁気DB作成処理〉
ステップS102で行われる磁気DB作成処理について、
図7に示すフローチャートを参照して説明する。磁気DB作成処理では、磁場安定区間ラベリング処理でラベリングされた各々の安定区間について、磁気ラベルが付される。磁気DB作成処理では、同一の磁気方向を示す安定区間には、同一の磁気ラベルが付される。
【0053】
ステップS301において、プロセッサ21は、最初の区間ラベルが付された安定区間を新しい磁気ラベルに登録する。一例として、
図6に示されるようなラベル付けがされた区間ラベルに基づいて作成される磁気DBの例を
図8に示す。例えばステップS301では、磁気DBにおいて新しい磁気ラベルM1が作成され、磁気ラベルM1に対応する区間ラベルとして区間ラベル(1)が登録される。区間ラベル(1)が登録される最初の磁気ラベルM1の環境の磁気方向を0度とする。
【0054】
ステップS302において、プロセッサ21は、次の区間ラベルに係る情報を取得する。ステップS303において、プロセッサ21は、取得された区間ラベルの磁気方向と磁気DBに登録された磁気ラベルの環境の磁気方向とを比較し、それら磁気方向の角度差が最小となる磁気ラベルを選択する。
【0055】
ステップS304において、プロセッサ21は、選択された磁気ラベルの環境の磁気方向と区間ラベルの磁気方向との角度差が、第3の閾値以下であるか否かを判定する。第3の閾値は任意に設定され得る。角度差が第3の閾値以下でないと判定されたとき、処理はステップS305に進む。ステップS305において、プロセッサ21は、磁気DBにおいて新しい磁気ラベルを作成し、当該新しい磁気ラベルに対象としている区間ラベルを登録する。その後、処理はステップS307に進む。
【0056】
例えば
図8に示す例では、磁気ラベルM1のみが存在し、磁気ラベルM1に区間ラベル(1)のみが登録されている状態で、区間ラベル(2)が処理対象とされたとする。このとき、磁気ラベルM1の環境の磁気方向である0度と区間ラベル(2)の磁気方向である90度とでは、角度差が90度ある。このような場合に角度差が第3の閾値より大きいと判定される。ステップS305において、新しい磁気ラベルM2が作成され、磁気ラベルM2に対応する区間ラベルとして区間ラベル(2)が登録される。
【0057】
ステップS304において、角度差が第3の閾値以下であると判定されたとき、処理はステップS306に進む。ステップS306において、プロセッサ21は、処理対象としている区間ラベルをステップS303で選択した磁気ラベルに登録する。その後、処理はステップS307に進む。
【0058】
例えば
図8に示す例では、磁気DBには磁気ラベルM1と磁気ラベルM2とが存在し、区間ラベル(3)が処理対象とされたとする。このとき、磁気ラベルM1が選択され(ステップS303)、磁気ラベルM1の環境の磁気方向(0度)と区間ラベル(3)の磁気方向(0度)との角度差は0度になり、角度差は第3の閾値よりも小さいと判定される(ステップS304)。このとき、ステップS306において、磁気DBの磁気ラベルM1に対応する区間ラベルとして区間ラベル(3)が登録される。
【0059】
ステップS307において、プロセッサ21は、次の区間ラベルがあるか否かを判定する。次の区間ラベルがあるとき、処理はステップS302に戻り、上述の処理が繰り返される。このようにして、全ての区間ラベルを対象とした処理により、必要な磁気ラベルが作成され、各々の区間ラベルが何れかの磁気ラベルに登録される。ステップS307において、次の区間ラベルがないと判定されたとき、磁気DB作成処理は終了する。
【0060】
以上のような磁気DB作成処理により、例えば
図8に示すような磁気DBが作成される。
図8に示す例では、磁気ラベルとして、M1とM2との2つが登録されている。磁気ラベルの数は、計測に応じて1つ又は3つ以上になり得る。
図8に示す例では、磁気ラベルM1の環境の磁気方向は0度であり、磁気ラベルM1には区間ラベル(1)及び(3)が登録される。また、磁気ラベルM2の環境の磁気方向は90度であり、磁気ラベルM2には区間ラベル(2)及び(4)が登録される。
【0061】
〈姿勢推定・誤差評価処理〉
ステップS103で行われる姿勢推定・誤差評価処理について、
図9に示すフローチャートを参照して説明する。姿勢推定・誤差評価処理では、センサ姿勢が算出される。また、姿勢推定・誤差評価処理では、センサ姿勢の算出の際に、誤差の評価が行われる。
【0062】
姿勢推定・誤差評価処理の演算結果の概要の一部の例を
図10に示す。
図10の例は、
図6及び
図8に示した区間ラベル及び磁気ラベルに対応した例を示す。ただし、データは間引かれて示されている。
図10には、センサユニット10で取得されたデータの順を示す時刻tと、各データに対応付けられた磁気ラベルと、磁気ラベルM1の環境の磁気方向(0度)を基準としたセンサ姿勢に係る第1のセンサ地磁気方向SM1と、磁気ラベルM2の環境の磁気方向(90度)を基準としたセンサ姿勢に係る第2のセンサ地磁気方向SM2と、磁気センサ13で取得された参照地磁気方向と、センサ地磁気方向と参照地磁気方向との差である評価値とが示されている。評価値は、第1のセンサ地磁気方向SM1と第2のセンサ地磁気方向SM2とのうち磁気ラベルに対応する方と、参照地磁気方向との差である。これらの値の他にも、センサ重力方向及び参照重力方向のデータも併せて記録される。
【0063】
ステップS401において、プロセッサ21は、処理対象を最初のデータに設定する。すなわち、処理対象の時刻tを1に設定する。プロセッサ21は、時刻tに係るデータを取得し、初期値の設定を行う。
【0064】
例えば
図10に示すように、時刻t=1のときとして、磁気DBに基づいて、磁気ラベルとしてM1が設定される。また、磁気ラベルM1の環境の磁気方向(0度)を基準とした第1のセンサ地磁気方向SM1として、初期値である0度が設定される。また、磁気ラベルM2の環境の磁気方向(90度)を基準とした第2のセンサ地磁気方向SM2として、初期値である90°が設定される。また、参照地磁気方向として、初期値である0度が設定される。時刻t=1においては、磁気ラベルがM1であるので、第1のセンサ地磁気方向SM1の値と参照地磁気方向の値との差である0が評価値となる。この他、センサ重力方向及び参照重力方向の初期値も設定される。
【0065】
ステップS402において、プロセッサ21は、時刻tを1進めて、t=t+1とする。さらに新たに設定した時刻tに対応する情報を処理対象として取得する。
【0066】
ステップS403において、プロセッサ21は、各磁気ラベルに係るセンサ姿勢について角速度センサ11で得られた角速度を積算することで、回転後のセンサ姿勢を算出する。
【0067】
例えば
図10に示す例では、時刻t=2のデータとして、磁気DBに基づいて磁気ラベルはM1であると特定される。また、磁気ラベルM1を基準とする第1のセンサ姿勢が算出され、その地磁気方向である第1のセンサ地磁気方向SM1が算出される。
図10に示す例では、時刻t=2における第1のセンサ地磁気方向SM1は8度であると算出されている。同様に、磁気ラベルM2を基準とする第2のセンサ姿勢が算出され、その地磁気方向である第2のセンサ地磁気方向SM2が算出される。
図10に示す例では、時刻t=2における第2のセンサ地磁気方向SM2は98度であると算出されている。なお、第1のセンサ地磁気方向SM1と第2のセンサ地磁気方向SM2とは、初期値が90度ずれているので
図10に示すように以降も90度ずれている。
図10に示す例では、時刻t=2における参照地磁気方向は7度であると特定されている。
【0068】
ステップS404において、プロセッサ21は、現在の処理対象のデータが安定区間のデータであるか否かを判定する。処理対象データが安定区間のデータでないと判定されたとき、処理はステップS408に進む。一方、処理対象データが安定区間のデータであると判定されたとき、処理はステップS405に進む。
【0069】
ステップS405において、プロセッサ21は、評価値を算出する。評価値は、上述のとおり、現在の磁気ラベルと一致するセンサ地磁気方向と参照地磁気方向との角度差である。例えば
図10に示す例では、時刻t=2において、データは安定区間のデータであり、磁気ラベルがM1である。したがって、評価値は、第1のセンサ地磁気方向SM1の値と参照地磁気方向の値との差である−1度と算出されている。
【0070】
ステップS406において、プロセッサ21は、評価値が第4の閾値よりも大きいか否かを判定する。第4の閾値は任意に設定され得る。評価値が第4の閾値よりも大きくないとき、処理はステップS408に進む。一方、評価値が第4の閾値よりも大きいとき、処理はステップS407に進む。
【0071】
ステップS407において、プロセッサ21は、センサ姿勢をリセットする。すなわち、プロセッサ21は、例えば第1のセンサ姿勢又は第2のセンサ姿勢といった磁気ラベルに応じたセンサ姿勢の値を、加速度センサ12及び磁気センサ13の検出結果に基づいて決定する。その後、処理はステップS408に進む。
【0072】
ステップS408において、プロセッサ21は、次のデータがあるか否かを判定する。次のデータがあるとき、処理はステップS402に戻り、上述の処理が繰り返される。
【0073】
例えば、時刻t=3,4と進み、第1のセンサ地磁気方向SM1が4度,1度と算出され、第2のセンサ地磁気方向SM2が94度,91度と算出される。このとき、参照地磁気方向は、5度,3度と特定される。時刻t=3,4においては、磁気ラベルがM1に対応するので、評価値は、第1のセンサ地磁気方向SM1を用いて1度,2度と算出される。
【0074】
時刻t=5,6のデータは不安定区間のデータである。このため、磁気ラベルが不定となる。不安定区間においても、角速度センサ検出値に基づいて第1のセンサ姿勢及び第2のセンサ姿勢は算出される。しかしながら、評価値の算出は行われない。不安定区間では、磁気方向が変化しているので、磁気センサ13によって検出される参照地磁気方向の信頼性が低い。信頼性が低い参照地磁気方向を用いて評価値が算出されると、センサ姿勢の信頼度について誤った判断をするおそれがある。本実施形態によれば、不安定区間においては評価値の算出及びそれを用いた評価が行われないので、誤った結論が導き出されることが回避され得る。
【0075】
図10の例において、時刻tが7乃至10のとき、磁気ラベルはM2となっている。この期間においては、第1のセンサ地磁気方向SM1ではなく第2のセンサ地磁気方向SM2が評価値の算出に用いられる。このように、磁気方向に応じた評価値算出が行われることで、妥当な評価値が得られる。
【0076】
図10の例においては、時刻tが1乃至30の区間において、評価値が徐々に増加している。これは、角速度センサ11によって検出された角速度を積算することによって算出されるセンサ姿勢に誤差が蓄積されていることを示す。例えば、時刻t=31の処理において、ステップS405で算出される評価値が第4の閾値よりも大きくなると、ステップS406の判定の結果、処理はステップS407に進む。このとき、ステップS407においてセンサ姿勢がリセットされる。すなわち、時刻t=31において磁気ラベルはM2となっているので、第2のセンサ姿勢が加速度センサ12及び磁気センサ13の出力によって決定される。例えば
図10に示すように、第2のセンサ地磁気方向SM2は、磁気センサ13によって検出された参照地磁気方向の値に設定され、38度となっている。このとき、評価値も0となる。すなわち、センサ姿勢が補正される。以下上述の場合と同様に、第1のセンサ姿勢及び第2のセンサ姿勢の算出が行われる。また、磁気ラベルに応じた評価値の算出が行われる。
【0077】
図10の例では、姿勢推定・誤差評価処理により、角速度センサ11によって検出された角速度を積算することで算出される第1のセンサ姿勢及び第2のセンサ姿勢が得られる。第1のセンサ姿勢と第2のセンサ姿勢とは、センサ地磁気方向の初期値が違うのみであり、相対的には何れも同じ姿勢を示している。第1のセンサ姿勢と第2のセンサ姿勢とのうち何れかを参照することで、ユーザは十分に精度のよいセンサ姿勢を得ることができる。
【0078】
[姿勢計測システムの特長]
本実施形態によれば、角速度センサ11を用いて検出された角速度を積算し、センサ姿勢を回転させることで、正確なセンサ姿勢が算出される。さらに本実施形態では、センサ姿勢に誤差が蓄積されたときには、センサ姿勢は、加速度センサ12及び磁気センサ13の検出値に基づいて再設定される。ここで、磁気センサ13の検出結果は、磁気方向が安定しているときに取得されたデータのみが用いられる。また、磁気方向が安定しているとき、複数の環境の磁気方向が登録された磁気DBを参照して、各々の環境の磁気方向に応じたセンサ姿勢の評価がなされる。すなわち、複数の環境の磁気方向に基づいてセンサ姿勢の評価及びセンサ姿勢の補正が行われ得る。したがって、得られるセンサ姿勢の信頼度は高い。また、同一の磁気方向とみなされる安定区間が統一されることで、少ない演算量で適切なセンサ姿勢の算出が行われ得る。
【0079】
[変形例]
以下、上述の姿勢計測システム1のいくつかの変形例について説明する。
【0080】
上述の実施形態では、センサ姿勢を算出するセンサ姿勢算出装置として説明したが、角速度センサ11で取得された各速度値に基づいて算出したセンサ姿勢を評価するセンサ姿勢評価装置としてもよい。
【0081】
上述の実施形態では、センサ姿勢は、重力方向及び磁気方向に変化する例を示したが、例えば、重力方向の回転方向に制限が設けられている場合、センサ姿勢は磁気方向のみに変化し得る。例えば、重力方向に維持される回転軸周りにのみ回転する系においては、磁気方向についてのみ各種データを取得し、各種演算が行われればよい。必要な軸についてのみ演算が行われることで、演算量が削減され得る。なお、上述の実施形態のように3軸について演算が行われれば、どのような姿勢であっても算出され得る。
【0082】
また、上述の実施形態は、センサユニット10と別体として設けられている解析ユニット20がセンサ姿勢の算出を行う場合である。しかしながらこれに限らない。センサ姿勢の算出は、計測対象に取り付けられるセンサユニット10のプロセッサ14で行われてもよい。すなわち、検出データに基づいてセンサ姿勢を算出する姿勢算出装置は、センサユニット10に組み込まれていてもよく、その場合、磁気方向が安定している安定区間において、磁気センサ13で取得された磁気方向を環境の磁気方向として決定し、角速度センサ11で取得された角速度値と環境の磁気方向に基づいて、センサ姿勢を算出してもよい。また、センサユニット10で算出されたセンサ姿勢が、センサユニット10の外部のPC等に出力されてもよい。
【0083】
上述の実施形態では、磁場安定区間ラベリング処理で積算回数が所定の回数に達したときにセンサ地磁気方向と参照地磁気方向との角度差が評価されて安定区間又は不安定区間の登録が行われる。このような方法は、少ない演算量で安定区間及び不安定区間を特定することに効を奏する。しかしながら、これに限らない。センサ地磁気方向と参照地磁気方向とは時間経過に従って連続的に比較され、センサ地磁気方向と参照地磁気方向との差が急激に大きくなった期間が不安定区間として特定されてもよい。このような方法によれば、磁気方向の変化がどのようなタイミングで生じても、精度よく安定区間及び不安定区間を特定することができる。
【0084】
また、上述の実施形態では、参照地磁気方向が、センサ姿勢の誤差の評価と、センサ姿勢をリセットするときの基準とに用いられる例を示した。しかしながら、これに限らない。磁気方向の変化が考慮された参照地磁気方向は、算出されるセンサ姿勢の精度を向上させるために種々の方法で用いられ得る。例えば、参照地磁気方向に基づいて角速度センサ11の出力値が補正されてもよい。
【0085】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0086】
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1]
角速度センサと磁気センサとを有するセンサユニットで取得された検出値を取得する検出値取得部と、
前記角速度センサで取得された角速度値に基づいて、前記センサユニットの姿勢を算出する姿勢算出部と、
前記磁気センサで取得された磁気方向が安定している安定区間における、前記磁気センサで取得された前記磁気方向を環境の磁気方向として決定する環境磁気方向決定部と、
前記環境磁気方向決定部により決定された前記環境の磁気方向に基づいて、前記姿勢算出部により算出された前記センサユニットの姿勢を評価する姿勢評価部と、
を備える姿勢評価装置。
[2]
前記角速度センサで取得された前記角速度値の履歴値を取得する角速度取得部と、
前記磁気センサで取得された参照地磁気方向の履歴値を取得する磁気方向取得部と、
前記角速度値を順次に積算することで得られるセンサ姿勢の地磁気方向成分であるセンサ地磁気方向を算出する方向算出部と、を備え、
前記環境磁気方向決定部は、前記センサ地磁気方向と前記参照地磁気方向とを比較することで、前記磁気センサが検出した前記環境の磁気方向が安定している安定区間を特定する、
[1]に記載の姿勢評価装置。
[3]
前記環境磁気方向決定部は、前記センサ地磁気方向の履歴値と前記参照地磁気方向の履歴値とに基づいて、前記磁気センサで検出された前記環境の磁気方向の履歴を決定する、
[2]に記載の姿勢評価装置。
[4]
前記姿勢算出部は、前記角速度センサで取得された前記角速度値を順次に積算することで前記センサユニットの姿勢を算出する、
[2]又は[3]に記載の姿勢評価装置。
[5]
前記姿勢算出部は、前記環境の磁気方向の履歴と前記参照地磁気方向の履歴値に基づいて、前記センサユニットの姿勢を補正する、
[3]に記載の姿勢評価装置。
[6]
前記姿勢評価部は、前記安定区間と特定されなかった区間では、前記センサユニットの姿勢を評価しない、
[2]に記載の姿勢評価装置。
[7]
前記環境磁気方向決定部は、互いに異なる前記安定区間についての前記環境の磁気方向を比較して、互いの前記環境の磁気方向が所定の範囲内であるとき、当該環境の磁気方向を同一のものとする、
[2]乃至[6]のうち何れか一に記載の姿勢評価装置。
[8]
前記環境磁気方向決定部は、前記安定区間と前記安定区間との間の前記環境の磁気方向が不安定である区間において算出された前記センサ地磁気方向の変化に基づいて、前記安定区間の前記環境の磁気方向を決定する、
[2]乃至[7]のうち何れか一に記載の姿勢評価装置。
[9]
前記環境磁気方向決定部は、所定期間における前記センサ地磁気方向の変化量と前記参照地磁気方向の変化量との差が所定値以下であるとき、前記所定期間を前記安定区間とする、
[2]乃至[8]のうち何れか一に記載の姿勢評価装置。
[10]
角速度センサと磁気センサとを有するセンサユニットで取得された検出値を取得する検出値取得部と、
前記磁気センサで取得された磁気方向が安定している安定区間における、前記磁気センサで取得された前記磁気方向を環境の磁気方向として決定する環境磁気方向決定部と、
前記角速度センサで取得された角速度値と、前記環境磁気方向決定部により決定された前記環境の磁気方向に基づいて、前記センサユニットの姿勢を算出する姿勢算出部と、
を備える姿勢算出装置。
[11]
[1]乃至[9]のうち何れか一に記載の姿勢評価装置と、
前記センサユニットと
を備える姿勢計測システム。
[12]
角速度センサと磁気センサとを有するセンサユニットで取得された検出値を取得することと、
前記角速度センサで取得された角速度値に基づいて、前記センサユニットの姿勢を算出することと、
前記磁気センサで取得された磁気方向が安定している安定区間における、前記磁気センサで取得された前記磁気方向を環境の磁気方向として決定することと、
決定された前記環境の磁気方向に基づいて、算出された前記センサユニットの姿勢を評価することと、
を備える姿勢評価方法。
[13]
角速度センサと磁気センサとを有するセンサユニットで取得された検出値を取得することと、
前記角速度センサで取得された角速度値に基づいて、前記センサユニットの姿勢を算出することと、
前記磁気センサで取得された磁気方向が安定している安定区間における、前記磁気センサで取得された前記磁気方向を環境の磁気方向として決定することと、
決定された前記環境の磁気方向に基づいて、算出された前記センサユニットの姿勢を評価することと、
をコンピュータに実行させる姿勢評価プログラム。