(57)【要約】【課題】歩行体が特殊な歩き方をした場合であっても、高精度に歩行体の移動方向を算出可能な移動方向算出装置を提供すること。【解決手段】移動方向算出装置１１０は、検出部１１１によって歩行体１００におけるＸ軸、Ｙ軸、およびＺ軸との３軸方向の加速度を検出する。そして、クロススペクトル算出部１１２では、検出されたＺ軸方向の加速度とＸ軸方向の加速度とクロススペクトルと、Ｚ軸方向の加速度とＹ軸方向の加速度とクロススペクトルとを算出することによって、歩行体１００の上下運動と連動した加速度変化を検出する。判別部１１３では、算出されたクロススペクトルのうち最大値となる値が、いずれの軸方向の加速度であるかに応じて、歩行体１００の移動方向を判別し、出力部１１４によって、判別された方向を歩行体１００の移動方向として出力させる。【選択図】図１−１
2010071792.tif 000002
【特許請求の範囲】
【請求項１】
歩行体の正面方向となるＸ軸と、前記正面方向に対して直角に交わる当該歩行体の左右方向となるＹ軸と、当該歩行体の垂直方向となるＺ軸との３軸方向の加速度を検出する検出手段と、
前記検出手段によって検出されたＸ軸方向の加速度とＺ軸方向の加速度との相関性をあらわすＸＺクロススペクトルと、Ｙ軸方向の加速度と前記Ｚ軸方向の加速度との相関性をあらわすＹＺクロススペクトルとを算出するクロススペクトル算出手段と、
前記クロススペクトル算出手段によって算出されたＸＺクロススペクトルまたはＹＺクロススペクトルの最大値がしきい値以上となった場合に、前記ＸＺクロススペクトルの最大値と前記ＹＺクロススペクトルの最大値との大小の比較結果に応じて前記歩行体の移動方向を判別する方向判別手段と、
前記方向判別手段によって判別された方向を出力する出力手段と、
を備えることを特徴とする移動方向算出装置。
【請求項２】
前記方向判別手段は、前記ＸＺクロススペクトルの最大値と前記ＹＺクロススペクトルの最大値との大小を比較して前記ＸＺクロススペクトルの最大値が大きいと判断された場合、前記歩行体は前後方向に移動していると判別し、前記ＹＺクロススペクトルの最大値が大きいと判断された場合、前記歩行体は左右方向に移動していると判別することを特徴とする請求項１に記載の移動方向算出装置。
【請求項３】
前記方向判別手段は、前記歩行体が前後方向に移動していると判別された場合、前記ＸＺクロススペクトルの最大値の実部と虚部から算出される位相差が−９０°〜９０°に収まれば、前記歩行体は前方向に移動していると判別し、収まらなければ、前記歩行体は後方向に移動していると判別することを特徴とする請求項２に記載の移動方向算出装置。
【請求項４】
前記方向判別手段は、前記歩行体が左右方向に移動していると判別された場合、前記ＹＺクロススペクトルの最大値の実部と虚部から算出される位相差が−９０°〜９０°に収まれば、前記歩行体は前方向に移動していると判別し、収まらなければ、前記歩行体は後方向に移動していると判別することを特徴とする請求項２に記載の移動方向算出装置。
【請求項５】
前記歩行体が駆け足で移動しているか否かを判別する駆け足判別手段と、
前記駆け足判別手段によって前記歩行体が駆け足で移動していると判別された場合に、前記方向判別手段によって移動方向として判別された方向を、反対方向に補正する補正手段と、を備え、
前記出力手段は、前記補正手段によって補正された方向を出力することを特徴とする請求項１〜４のいずれか一つに記載の移動方向算出装置。
【請求項６】
歩行体に装着された加速度センサに装着された加速度センサからの出力を受け付けるコンピュータを、
前記歩行体の正面方向となるＸ軸と、前記正面方向に対して直角に交わる当該歩行体の左右方向となるＹ軸と、当該歩行体の垂直方向となるＺ軸との３軸方向の加速度を検出する検出手段、
前記検出手段によって検出されたＸ軸方向の加速度とＺ軸方向の加速度との相関性をあらわすＸＺクロススペクトルと、Ｙ軸方向の加速度と前記Ｚ軸方向の加速度との相関性をあらわすＹＺクロススペクトルとを算出するクロススペクトル算出手段、
前記クロススペクトル算出手段によって算出されたＸＺクロススペクトルまたはＹＺクロススペクトルの最大値がしきい値以上となった場合に、前記ＸＺクロススペクトルの最大値と前記ＹＺクロススペクトルの最大値との大小の比較結果に応じて前記歩行体の移動方向を判別する方向判別手段、
前記方向判別手段によって判別された方向を出力する出力手段、
として機能させることを特徴とする移動方向算出プログラム。
【請求項７】
歩行体に装着された加速度センサに装着された加速度センサからの出力を受け付ける装置が、
前記歩行体の正面方向となるＸ軸と、前記正面方向に対して直角に交わる当該歩行体の左右方向となるＹ軸と、当該歩行体の垂直方向となるＺ軸との３軸方向の加速度を検出する検出工程と、
前記検出工程によって検出されたＸ軸方向の加速度とＺ軸方向の加速度との相関性をあらわすＸＺクロススペクトルと、Ｙ軸方向の加速度と前記Ｚ軸方向の加速度との相関性をあらわすＹＺクロススペクトルとを算出するクロススペクトル算出工程と、
前記クロススペクトル算出工程によって算出されたＸＺクロススペクトルまたはＹＺクロススペクトルの最大値がしきい値以上となった場合に、前記ＸＺクロススペクトルの最大値と前記ＹＺクロススペクトルの最大値との大小の比較結果に応じて前記歩行体の移動方向を判別する方向判別工程と、
前記方向判別工程によって判別された方向を出力する出力工程と、
を実行することを特徴とする移動方向算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、歩行体に装着して歩行体の移動方向を算出する移動方向算出装置、移動方向算出プログラムおよび移動方向算出方法に関する。
【背景技術】
【０００２】
従来より、ＧＰＳ信号などの外部からの測定信号を使用することなく自律的に歩行体自身の体の移動方向を算出する技術は多数提供されている。移動方向を検出するには、通常、磁気センサおよびジャイロセンサを利用し、それぞれのセンサから得られる情報を使用して体の向きを検出し、その体の向きに対して進んでいる、もしくは、あらかじめ設定した方向に進むとして人が移動する方向を算出していた。
【０００３】
具体的には、たとえば、Ｘ軸、Ｙ軸およびＺ軸の加速度センサを用いてＺ軸加速度の正の値のピークから負の値のピークの間で、Ｘ軸とＹ軸の加速度の合成値を求め、この合成値が正の値のピークの時のＸ軸とＹ軸の加速度から移動角度や移動方向を求める技術が開示されている（たとえば、下記特許文献１，２参照。）。
【０００４】
【特許文献１】特開２００３−３０２４１９号公報
【特許文献２】特開２００７−３２５７２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したような従来の移動方向を判別する技術では、歩行者（歩行体）が忍び足のように、加速度変化が非常に小さい歩き方をした場合にはピークの検出が困難になり、結果として移動方向の判別精度が悪くなってしまうという問題があった。同様に、歩行者が横方向の移動、いわゆるカニ歩きによって移動する場合にも、同様の理由によって移動方向の判別精度が悪くなってしまう問題があった。
【０００６】
また、上述した特殊な歩行は、たとえば、犯罪者が立て篭もっている建屋内で、鎮圧用の要員が配置位置に向かう際などの実行が想定される。しかしながら、上述のような場合、建屋内など、ＧＰＳなどで位置確認ができない場所である可能性が高く、位置把握が困難な上に、装置構成が複雑になったり、装置サイズが形態に適さなくなってしまう場合という問題があった。
【０００７】
この発明は、上述した従来技術による問題点を解消するため、歩行体が特殊な歩き方をした場合であっても、高精度に歩行体の移動方向を算出可能な移動方向算出装置、移動方向算出プログラムおよび移動方向算出方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、この移動方向算出装置、移動方向算出プログラムおよび移動方向算出方法は、歩行体に装着された加速度センサに装着された加速度センサからの出力を受け付けるコンピュータが、前記歩行体の正面方向となるＸ軸と、前記正面方向に対して直角に交わる当該歩行体の左右方向となるＹ軸と、当該歩行体の垂直方向となるＺ軸との３軸方向の加速度を検出する処理と、検出されたＸ軸方向の加速度とＺ軸方向の加速度との相関性をあらわすＸＺクロススペクトルと、Ｙ軸方向の加速度と前記Ｚ軸方向の加速度との相関性をあらわすＹＺクロススペクトルとを算出する処理と、算出されたＸＺクロススペクトルまたはＹＺクロススペクトルの最大値がしきい値以上となった場合に、前記ＸＺクロススペクトルの最大値と前記ＹＺクロススペクトルの最大値との大小の比較結果に応じて前記歩行体の移動方向の移動方向を判別する処理と、判別された方向を出力する処理と、を含むことを要件とする。
【０００９】
この移動方向算出装置、移動方向算出プログラムおよび移動方向算出方法によれば、３軸の加速度を検出して、ＸＺクロススペクトルおよびＹＺクロススペクトルを算出することによって、Ｚ軸方向（上下移動）の加速度の変化とＸ軸方向の加速度（前後移動）との相関性や、Ｚ軸方向（上下移動）の加速度の変化とＹ軸方向の加速度（左右移動）との相関性を求めることができる。したがって、上下移動と前後移動または左右移動とが連動した場合にのみ、歩行体の移動をあらわす情報として利用される。
【発明の効果】
【００１０】
この移動方向算出装置、移動方向算出プログラムおよび移動方向算出方法によれば、歩行体が特殊な歩き方をした場合であっても、高精度に歩行体の移動方向算出を実現することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下に添付図面を参照して、この移動方向算出装置、移動方向算出プログラムおよび移動方向算出方法の好適な実施の形態を詳細に説明する。この移動方向算出装置、移動方向算出プログラムおよび移動方向算出方法では、人間をはじめとする二足歩行をおこなう歩行体の歩行に特有な上下方向と相関性のある前後移動または左右移動を検出するため、Ｘ，Ｙ，Ｚの３軸方向の加速度からＺ軸方向とのクロススペクトルを算出し、クロススペクトルが最大となる方向を移動方向として判別するため、誤判別のない高精度な移動方向判別を実現することができる。
【００１２】
（移動方向算出処理の概要）
まず、本実施の形態にかかる移動方向算出処理の概要について説明する。図１−１は、移動方向算出処理の概要を示す説明図である。図１−１のように、本実施の形態では、歩行体１００に移動方向算出装置１１０を装着させる。移動方向算出装置１１０は、検出部１１１と、クロススペクトル算出部１１２と、判別部１１３と、出力部１１４と、を含んでいる。
【００１３】
検出部１１１は、図１−１に示したように、歩行体１００の正面方向となるＸ軸と、正面方向に対して直角に交わる歩行体１００の左右方向となるＹ軸と、歩行体１００の垂直方向となるＺ軸との３軸方向の加速度を検出する。なお、本実施の形態では、便宜上図１−１に示した方向にＸ、Ｙ、Ｚの名称を付けて説明するが、これら３方向の加速度を検出することができれば、特に名称は限定されない。
【００１４】
クロススペクトル算出部１１２は、検出部１１１によって検出されたＸ軸方向の加速度とＺ軸方向の加速度との相関性をあらわすＸＺクロススペクトルを算出する。同時にクロススペクトル算出部１１２は、検出部１１１によって検出されたＹ軸方向の加速度とＺ軸方向の加速度との相関性をあらわすＹＺクロススペクトルも併せて算出する。クロススペクトル算出部１１２によって算出されたＸＺクロススペクトルと、ＹＺクロススペクトルとは、判別部１１３へ出力される。
【００１５】
判別部１１３は、クロススペクトル算出部１１２によって算出されたＸＺクロススペクトルまたはＹＺクロススペクトルの最大値があらかじめ設定したしきい値以上（いずれか一方がしきい値以上となればよい）となった場合に、歩行体１００が歩行していると判断し、移動方向を判別する処理を開始する。いずれかのクロススペクトルの最大値がしきい値に満たない場合には、歩行していないと判断され、停止中である旨を出力し待機状態となる。
【００１６】
判別部１１３は、ＸＺクロススペクトルの最大値とＹＺクロススペクトルの最大値との大小の比較結果に応じて歩行体１００の移動方向を判別する。そこで、判別部１１３は、まず、移動体１００が前後方向に移動しているか、左右方向に移動しているかを判別する。具体的に説明すると、判別部１１３は、ＸＺクロススペクトルの最大値とＹＺクロススペクトルの最大値との大小を比較する。この比較によって、ＸＺクロススペクトルの最大値が大きいと判断された場合、歩行体１００は前後方向に移動していると判別され、ＹＺクロススペクトルの最大値が大きいと判断された場合、歩行体１００は左右方向に移動していると判別される。
【００１７】
判別部１１３は、前後方向に移動しているか、左右方向に移動しているかが判別されると、さらに、前後いずれか、または、左右いずれかに移動しているかを判別する処理に移行する。歩行体１００が前後方向に移動していると判別された場合、判別部１１３は、ＸＺクロススペクトルの最大値の実部と虚部から算出される位相差が−９０°〜９０°に収まれば、歩行体１００が前方向に移動していると判別し、収まらなければ、歩行体１００が後ろ方向に移動していると判別する。
【００１８】
一方、歩行体１００が左右方向に移動していると判別された場合、判別部１１３は、ＹＺクロススペクトルの最大値の実部と虚部から算出される位相差が−９０°〜９０°に収まれば、歩行体１３０が右方向に移動していると判別し、収まらなければ、歩行体１００が左方向に移動していると判別する。
【００１９】
ここで、図１−２は、クロススペクトルの位相差と移動方向との関係を示す説明図である。図１−２の単位円１２０は、ＸＺクロススペクトルの実部と虚部から算出される位相差と移動方向との関係を示している。したがって、単位円１２０に示したように位相差が−９０°〜９０°の値となれば前方向に移動していると判別され、９１°〜１８０°または−９１°〜−１７９°の値となれば、後ろ方向に移動していると判別される。同様に、単位円１３０は、ＹＺクロススペクトルの実部と虚部から算出される位相差と移動方向との関係を示している。したがって、単位円１３０に示したように位相差が−９０°〜９０°の値となれば右方向に移動していると判別され、９１°〜１８０°または−９１°〜−１７９°の値となれば、左方向に移動していると判別される。なお、９０°および２７０°近傍の値については、どのように判別するかを調整することもできる。たとえば、検出部１１１の検出傾向に応じて、−８９°〜８９°までを前進としてそれ以外の値の場合は後進と判別するように設定してもよい。
【００２０】
また、判別部１１３には、駆け足判別機能部が備わっている。駆け足判別機能部は、歩行体１００が駆け足で移動しているか否かを判別する。駆け足判別機能部によって歩行体１００が駆け足で移動していると判別された場合には、移動体１００の体が跳び上がるため、検出部１１１によって検出される移動方向の加速度が反転している状態にある。したがって、判別部１１３には、駆け足判別部によって駆け足と判別された場合に、移動方向として判別された方向を反対方向に補正する補正機能部が備えられている。
【００２１】
なお、駆け足判別機能部としては、公知の駆け足判別機器を搭載してもよいし、検出部１１１によって検出された３軸の加速度を利用して判別してもよい。たとえば、所定の周期において、検出部１１１によって検出されたＸ軸方向の加速度またはＹ軸方向の加速度の最大値がしきい値以上であり、かつ、この最大値の周波数成分がしきい値以上であった場合、歩行体１００は駆け足で移動していると判別するような構成が挙げられる。
【００２２】
出力部１１４は、判別部１１３によって判別された歩行体１００の移動方向を外部に出力する。また、判別部１１３によって駆け足中であると判別された場合には、補正機能部によって反対方向に補正された方向を出力する。なお、出力部１１４による出力先は任意に設定できる。たとえば、移動方向算出装置１１０に表示部（不図示）を取り付けて歩行体１００自身に算出結果を表示してもよいし、通信Ｉ／Ｆ（インターフェース）を介して他の装置に送信してもよい。
【００２３】
このように、本実施の形態では、移動体１００について、３軸方向の加速度を検出し、この加速度からクロススペクトルを算出することによって、上下運動と連動した前後移動もしくは左右移動を判別することができる。したがって、歩行体１００自らが駆動して移動している場合にのみ方向判別が実行されるため、歩行以外によって生じた移動や、加速度の変化を、歩行体１００による歩行と誤って検出するような事態を防ぎ、高精度な移動方向検出が可能となる。また、Ｚ軸方向の加速度の値が小さいため、従来検出が困難であった忍び足やカニ歩きなどの特殊な歩行についても、Ｚ軸方向の加速度が小さくても、Ｘ軸方向もしくはＹ軸方向の移動との相関性が高ければ歩行として検出されるため、見落とすことなく移動方向を判別することができる。
【００２４】
以下に、上述した本実施の形態にかかる移動方向算出処理を実現するための、具体的な構成例や処理手順について順番に説明する。
【００２５】
（移動方向算出装置のハードウェア構成）
まず、本実施の形態にかかる移動方向算出装置のハードウェア構成について説明する。図２は、移動方向算出装置のハードウェア構成を示すブロック図である。図１−１にあらわしたように移動方向算出装置１１０は、たばこ箱サイズの小型装置である。また、移動方向算出装置１１０は、たとえば、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）やＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの既存の端末に以下で説明するハードウェア構成を追加したものでもよいし、専用の筐体からなる装置であってもよい。
【００２６】
さらに移動方向算出装置１１０の内部は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ（ハードディスクドライブ）２０４と、ＨＤ（ハードディスク）２０５と、メモリドライブ２０６と、着脱可能な記録媒体としてリムーバブルメモリ２０７と、ディスプレイ２０８と、入力Ｉ／Ｆ（インターフェース）２０９と、各種センサ２１０と、ネットワークＩ／Ｆ２１１を備えている。また、各構成部はバス２２０によってそれぞれ接続されている。
【００２７】
ここで、ＣＰＵ２０１は、移動方向算出装置１１０の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ＨＤＤ２０４は、ＣＰＵ２０１の制御にしたがってＨＤ２０５に対するデータのリード／ライトを制御する。ＨＤ２０５は、ＨＤＤ２０４の制御で書き込まれたデータを記憶する。
【００２８】
メモリドライブ２０６は、ＣＰＵ２０１の制御にしたがってリムーバブルメモリ２０７に対するデータのリード／ライトを制御する。リムーバブルメモリ２０７は、メモリドライブ２０６の制御で書き込まれたデータを記憶したり、リムーバブルメモリ２０７に記憶されたデータをＣＰＵ２０１の制御に応じてメモリドライブ２０６に読み取らせたりする。
【００２９】
ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像によって移動方向算出結果に関するデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３０】
入力Ｉ／Ｆ２０９は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。また、入力Ｉ／Ｆ２０９の入力手段は、タッチパネルやトラックボールなどのポインティングデバイスであってもよい。
【００３１】
各種センサ２１０は、移動方向を算出するための情報を測定するための異なる機能のセンサから構成されている。具体的には、歩行体１００の歩行間隔を検出するための加速度センサと、歩行体１００の移動方向を算出するための磁気センサとジャイロセンサとが搭載されている。なお、本実施の形態にかかる移動方向算出装置１１０の場合、加速度センサは必須の構成となるが、他のセンサは任意である。
【００３２】
ネットワークＩ／Ｆ２１１は、有線無線を問わずに通信回線２１２を通じてインターネットなどのネットワーク２３０に接続し、このネットワーク２３０を介して移動方向算出装置１１０を他の装置に接続させる。そして、ネットワークＩ／Ｆ２１１は、ネットワーク２３０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。ネットワークＩ／Ｆ２１１には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３３】
（移動方向算出装置の機能的構成）
つぎに、本実施の形態にかかる移動方向算出装置の機能的構成について説明する。図３は、移動方向算出装置の機能的構成を示すブロック図である。図３のように、移動方向算出装置１１０は、センサ部３１０と、演算処理部３２０と、記憶部３３０と、表示部３４０と、通信部３５０とから構成されている。
【００３４】
センサ部３１０は、加速度センサ３１１と、磁気センサ３１２と、ジャイロセンサ３１３との３種類のセンサを備えている。これらのセンサから歩行体１００の移動に伴う動作内容を所定の間隔ごとに連続して検出する。このセンサ部３１０は、たとえば、図２にて説明した各種センサ２１０によって実現される。また、上述したように、加速度センサ３１１以外のセンサを搭載するかは任意である。
【００３５】
演算処理部３２０は、センサ部３１０から取得した検出値を用いて歩行体１００の移動方向を算出する機能部である。この演算処理部３２０は、たとえば、図２にて説明したＣＰＵ２０１、ＲＯＭ２０２およびＲＡＭ２０３によって実現される。
【００３６】
記憶部３３０は、ＣＰＵ２０１の制御に応じて所定の情報を保存する記憶領域である。この記憶部３３０に保存されている情報としては、入力情報３３１、出力情報３３２、演算処理に必要な設定パラメータ３３３、判定処理内容と判定基準が設定された判定テーブル３３４、演算処理に用いる演算アルゴリズム３３５がある。この記憶部３３０は、たとえば、図２にて説明したＨＤＤ２０４、ＨＤ２０５、メモリドライブ２０６およびリムーバブルメモリ２０７によって実現される。
【００３７】
表示部３４０および通信部３５０は、演算処理部３２０によって演算された歩行体１００の移動方向算出結果の出力手段として機能する。表示部３４０では、液晶ディスプレイなどの表示デバイスによって移動方向算出結果を歩行体１００自身に報知することができる。また、通信部３５０は、移動方向算出結果を他の装置や所定のアドレスに送信することができるため、他者に対して歩行体１００の移動方向を報知することができる。
【００３８】
なお、通信部３５０は、移動方向算出結果の他に、外部の装置との通信によって、演算処理部３２０における演算に必要な設定パラメータ３３３、判定テーブル３３４および演算アルゴリズム３３５を外部から取得することができる。この表示部３４０は、たとえば、図２のディスプレイ２０８によって実現される。また、通信部３５０は、たとえば、図２のネットワークＩ／Ｆ２１１によって実現される。
【００３９】
（移動方向算出処理の手順）
つぎに、移動方向算出装置１１０における移動方向算出処理の手順について説明する。図４−１および図４−２は、移動方向算出処理の手順を示すフローチャートである。図４−１に示した各処理は、検出部１１１によって検出した３軸方向の加速度から移動算出用の情報を算出する処理であり、言わば移動方向判別のための準備処理である。
【００４０】
図４−１のフローチャートにおいて、まず、所定の周期ごとに加速度センサ３１１からＸ，Ｙ，Ｚ軸の加速度を取得する（ステップＳ４０１）。所定の周期としては、歩行体１００の一歩ごとの歩行間隔を一周期として設定すればよい。したがって、あらかじめ移動方向算出装置１１０を装着する歩行体１００の歩行間隔を測定しておき、周期として設定してもよいし、平均的な歩行間隔（たとえば、２秒間隔）を初期値として設定しておいてもよい。
【００４１】
つぎに、演算処理部３２０によって、取得した各軸の加速度の周波数成分を算出する（ステップＳ４０２）。ステップＳ４０２において、周波数成分を算出するには、検出した加速度に、たとえばＦＦＴ（Ｆｉｎｉｔｅ  Ｆｏｕｒｉｅｒ  ｔｒａｎｓｆｏｒｍ）などによって変換を施せばよい。具体例を挙げると、下記（１）〜（３）式のようにＸ，Ｙ，Ｚ軸方向の加速度にフーリエ変換を施し、虚数単位ｊを用いてあらわすことができる。
【００４２】
【数１】
2010071792.tif 000003
【００４３】
その後、演算処理部３２０は、ステップＳ４０２によって算出されたＸ軸とＺ軸の加速度の周波数成分より、さらに、各加速度の相関性をあらわすＸＺクロススペクトルを算出する（ステップＳ４０３）。周波数成分の算出例として上記（１），（３）式を利用する場合、Ｘ軸方向の加速度とＺ軸方向の加速度とのクロススペクトル（ＸＺクロススペクトル）＝ＳXZ（ｋΔｆ）は、下記（４）式のようになる。また、ＳXZ（ｋΔｆ）の複素共役関数Ｆ*X（ｋΔｆ）は、下記（５）式のようになる。したがって、ＸＺクロススペクトルの実部ＳXZR（ｋΔｆ）は下記（６）式、ＸＺクロススペクトルの虚部ＳXZJ（ｋΔｆ）は、下記（７）式のようになる。
【００４４】
【数２】
2010071792.tif 000004
【００４５】
ＸＺクロススペクトルが算出されると、つぎに、ＸＺクロススペクトルの最大値ＸＺｍａｘを算出する（ステップＳ４０４）。ＸＺクロススペクトルの最大値ＸＺｍａｘとは、すなわち、クロススペクトルＳXZ（ｋΔｆ）が最大の時の振幅ＡXZである。したがって、下記（８）式によってクロススペクトルＳXZ（ｋΔｆ）が最大の時の振幅ＡXZを算出すればよい。
【数３】
2010071792.tif 000005
【００４６】
演算処理部３２０では、上述したステップＳ４０３およびＳ４０４の処理と並列して、クロススペクトルＹＺについての処理も実行されている。ステップＳ４０２によって算出されたＹ軸とＺ軸の加速度の周波数成分より、さらに、各加速度の相関性をあらわすＹＺクロススペクトルを算出する（ステップＳ４０５）。周波数成分の算出例として上記（２），（３）式を利用する場合、Ｙ軸方向の加速度とＺ軸方向の加速度とのクロススペクトル（ＹＺクロススペクトル）＝ＳYZ（ｋΔｆ）は、下記（９）式のようになる。また、ＳYZ（ｋΔｆ）の複素共役関数Ｆ*Y（ｋΔｆ）は、下記（１０）式のようになる。したがって、ＹＺクロススペクトルの実部ＳYZR（ｋΔｆ）は下記（１１）式、ＸＺクロススペクトルの虚部ＳYZJ（ｋΔｆ）は、下記（１２）式のようになる。
【００４７】
【数４】
2010071792.tif 000006
【００４８】
ＹＺクロススペクトルが算出されると、つぎに、ＹＺクロススペクトルの最大値ＹＺｍａｘを算出する（ステップＳ４０６）。ここでも、ステップＳ４０４の演算と同様に、クロススペクトルＳYZ（ｋΔｆ）が最大の時の振幅ＡYZを算出すればよい。したがって、下記（１３）式によってクロススペクトルＳYZ（ｋΔｆ）最大の時の振幅ＡYZとして算出された値が、ＹＺクロススペクトルの最大値ＹＺｍａｘとなる。
【００４９】
【数５】
2010071792.tif 000007
【００５０】
そして、ステップＳ４０４によってＸＺクロススペクトルの最大値ＸＺｍａｘが算出され、ステップＳ４０６によってＹＺクロススペクトルの最大値ＹＺｍａｘが算出されたかを判断する（ステップＳ４０７）。ここで、双方の算出が終了するまで待ち（ステップＳ４０７：Ｎｏのループ）、算出が終了すると（ステップＳ４０７：Ｙｅｓ）、具体的に移動方向を判別するための処理（図４−２、ステップＳ４０８〜）に移行する。
【００５１】
続いて、図４−２の各処理について説明する。図４−２に示した各処理は、歩行体１００が具体的にどのような方向に移動しているかを判別する処理である。まず、ＸＺクロススペクトルの最大値ＸＺｍａｘまたは、ＹＺクロススペクトルの最大値ＹＺｍａｘのいずれかが、しきい値より大きいか否かを判断する（ステップＳ４０８）。このステップＳ４０８の判断基準となるしきい値は、歩き方にかかわらず、歩行体１００が移動する場合に発生する最低限の値を設定すればよい。
【００５２】
ここで、図５は、歩行時のＸＺクロススペクトル最大値の算出例を示す図表である。図表５００のように、歩行体１００の停止時と歩行時では、ＸＺクロススペクトル最大値に大差がある。したがって、図表５００のように、停止時の最大値の平均＋誤差をしきい値と設定すればよい。
【００５３】
図４−２に戻り、ＸＺクロススペクトルの最大値ＸＺｍａｘまたは、ＹＺクロススペクトルの最大値ＹＺｍａｘのいずれかが、しきい値より大きいと判断された場合（ステップＳ４０８：Ｙｅｓ）、つぎに、ＸＺクロススペクトルの最大値ＸＺｍａｘがＹＺクロススペクトルの最大値ＹＺｍａｘよりも大きいか否かを判断する（ステップＳ４０９）。この判断によって、Ｘ軸方向とＹ軸方向のいずれの方向を考慮したクロススペクトルを移動方向の判別に利用するかが選択される。
【００５４】
ここで、図６は、前進行時のＸＺクロススペクトルとＹＺクロススペクトルとの最大値の算出例を示す図表である。算出された二つのクロススペクトルの最大値は、実際に移動している方向（前後または左右）の加速度がより大きく検出される。したがって、図表６００のように、前進時には、ＸＺクロススペクトルの最大値ＸＺｍａｘが大きくなる。
【００５５】
したがって、ＸＺクロススペクトルの最大値ＸＺｍａｘがＹＺクロススペクトルの最大値ＹＺｍａｘよりも大きいと判断された場合（ステップＳ４０９：Ｙｅｓ）、前後方向に移動していると判別され、ＸＺクロススペクトルの最大値ＸＺｍａｘがＹＺクロススペクトルの最大値ＹＺｍａｘよりも大きくないと判断された場合（ステップＳ４０９：Ｎｏ）、左右方向に移動していると判別され、以下、判別結果に応じた処理に移行する。
【００５６】
図４−２に戻り、まず前後方向に移動していると判別された場合の処理について説明する。まず、ＸＺクロススペクトルの最大値ＸＺｍａｘにおける周波数成分の実部と虚部との位相差ＸＺｐｈａを算出する（ステップＳ４１０）。位相差ＸＺｐｈａを算出するには、下記（１４）式を用いてクロススペクトルＳXZ（ｋΔｆ）が最大の時の位相差ΘXZを算出すればよい。
【００５７】
【数６】
2010071792.tif 000008
【００５８】
そして、図７は、前進時の位相差の算出例を示す図表である。また、図８は、後進時の位相差の算出例を示す図表である。図表７００，８００のように、歩行時の位相差は移動方向に応じて特定の値に収束する。具体的には、図１−２にて説明したように、−９０°〜９０°に収まれば前進、収まらなければ後進をあらわす。したがって、図４−２に戻り、つぎに、ステップＳ４１０によって算出された位相差ＸＺｐｈａが−９０°〜９０°の間に収まる角度であるか否かを判断する（ステップＳ４１１）。
【００５９】
位相差ＸＺｐｈａが−９０°〜９０°の間に収まる角度である場合（ステップＳ４１１：Ｙｅｓ）、歩行体１００は、前進していると判別される（ステップＳ４１２）。また、位相差ＸＺｐｈａが−９０°〜９０°の間に収まらない角度である場合（ステップＳ４１１：Ｎｏ）、歩行体１００は、後進していると判別される（ステップＳ４１３）。
【００６０】
つぎに、左右方向に移動していると判別された場合の処理について説明する。図９は、右歩行時のＸＺクロススペクトルとＹＺクロススペクトルとの最大値の算出例を示す図表である。算出された二つのクロススペクトルの最大値は、実際に移動している方向（前後または左右）の加速度がより大きく検出される。したがって、図表９００のように、左右移動時にはクロススペクトルの最大値ＸＺｍａｘが大きくなる。そこで、つぎに、ＹＺクロススペクトルの最大値ＹＺｍａｘにおける周波数成分の実部と虚部との位相差ＹＺｐｈａを算出する（ステップＳ４１４）。位相差ＹＺｐｈａを算出するには、下記（１５）式を用いてクロススペクトルＳYZ（ｋΔｆ）が最大の時の位相差ΘYZを算出すればよい。
【００６１】
【数７】
2010071792.tif 000009
【００６２】
そして、図１０は、右歩行時の位相差の算出例を示す図表である。また、図１１は、左歩行時の位相差の算出例を示す図表である。図表１０００，１１００のように、歩行時の位相差は移動方向に応じて特定の値に収束する。具体的には、図１−２にて説明したように、−９０°〜９０°に収まれば右歩行、収まらなければ左歩行をあらわす。したがって、図４−２に戻り、ステップＳ４１４によって算出された位相差ＹＺｐｈａが−９０°〜９０°の間に収まる角度であるか否かを判断する（ステップＳ４１５）。
【００６３】
位相差ＹＺｐｈａが−９０°〜９０°の間に収まる角度である場合（ステップＳ４１５：Ｙｅｓ）、歩行体１００は、右歩行していると判別される（ステップＳ４１６）。また、位相差ＹＺｐｈａが−９０°〜９０°の間に収まらない角度である場合（ステップＳ４１５：Ｎｏ）、歩行体１００は、左歩行していると判別される（ステップＳ４１７）。
【００６４】
つぎに、歩行体１００が駆け足で歩行しているか否かを判別する（ステップＳ４１８）。ここで、図１２は、駆け足時の位相差の算出例を示す図表である。図表１２００には、前進時に算出したＸＺ位相差であるが、駆け足であったため、後進時のような値が算出されてしまっている。したがって、駆け足時には、算出値の狂いを補正する処理が必要となる。図４−２に戻り、ステップＳ４１８において、歩行体１００が駆け足ではなく、通常の歩行をおこなっていると判別された場合（ステップＳ４１８：Ｎｏ）、ステップＳ４１２，Ｓ４１３，Ｓ４１６，Ｓ４１７における判別結果を歩行体１００の移動方向として出力し（ステップＳ４１９）、そのまま、一連の処理を終了する。
【００６５】
一方、ステップＳ４１８において、歩行体１００が駆け足歩行をおこなっていると判別された場合（ステップＳ４１８：Ｙｅｓ）、ステップＳ４０１において取得された加速度は実際の移動方向が反転した値となっているため、ステップＳ４１２，Ｓ４１３，Ｓ４１６，Ｓ４１７における判別結果を反転して、逆方向を歩行体１００の移動方向として出力し（ステップＳ４２０）、そのまま、一連の処理を終了する。
【００６６】
また、ステップＳ４０８において、ＸＺクロススペクトルの最大値ＸＺｍａｘまたは、ＹＺクロススペクトルの最大値ＹＺｍａｘのいずれかが、しきい値に満たないと判断された場合（ステップＳ４０８：Ｎｏ）、歩行体１００は、歩行状態ではないため、停止状態であると判断し（ステップＳ４２１）、ステップ４１９に移行して判断結果を出力させ、一連の処理を終了する。
【００６７】
なお、上述した図４−２におけるしきい値設定や、位相差の判断基準は、加速度を検出する加速度センサ３１１（図３参照）の特性や歩行体１００の歩行の動きの癖に応じて適宜調整してもよい。また、ＸＺクロススペクトルの最大値ＸＺｍａｘとＹＺクロススペクトルの最大値ＹＺｍａｘとが等しくなった場合なども、動作結果などにフィードバックして前後または左右のいずれかの方向に移動していると判断するように設定しておけばよい。
【００６８】
以上説明したように、本実施の形態の移動方向算出装置１１０では、加速度センサ３１１は、外部から３軸の加速度のみを検出すればよく、検出後も、クロススペクトルに関する値を算出して比較すれば、移動方向を判別することができる。したがって、移動方向算出装置１１０に必須となるハードウェア構成も少なく、要求される処理能力も高くない。結果として、移動方向算出装置１１０にかかる処理負担を軽減させるという効果も併せもつことになる。また、歩行体１００自らが駆動して移動している場合にのみ方向判別が実行されるため、歩行以外によって生じた移動や、加速度の変化を、歩行体１００による歩行と誤って検出するような事態を防ぎ、高精度な移動方向検出を実現することができる。
【００６９】
また、図３にて説明した他のセンサ（磁気センサ３１２、ジャイロセンサ３１３）を用いて、移動体の位置情報が特定された場合には、移動方向の判別結果と対応付けて、東西南北のいずれに移動しているかを判別することもできる。
【００７０】
なお、本実施の形態で説明した移動方向算出方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な媒体であってもよい。
【００７１】
また、本実施の形態で説明した移動方向算出装置１１０は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した移動方向算出装置１１０の機能（１１１〜１１４）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、移動方向算出装置１１０を製造することができる。
【００７２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００７３】
（付記１）歩行体の正面方向となるＸ軸と、前記正面方向に対して直角に交わる当該歩行体の左右方向となるＹ軸と、当該歩行体の垂直方向となるＺ軸との３軸方向の加速度を検出する検出手段と、
前記検出手段によって検出されたＸ軸方向の加速度とＺ軸方向の加速度との相関性をあらわすＸＺクロススペクトルと、Ｙ軸方向の加速度と前記Ｚ軸方向の加速度との相関性をあらわすＹＺクロススペクトルとを算出するクロススペクトル算出手段と、
前記クロススペクトル算出手段によって算出されたＸＺクロススペクトルまたはＹＺクロススペクトルの最大値がしきい値以上となった場合に、前記ＸＺクロススペクトルの最大値と前記ＹＺクロススペクトルの最大値との大小の比較結果に応じて前記歩行体の移動方向を判別する方向判別手段と、
前記方向判別手段によって判別された方向を出力する出力手段と、
を備えることを特徴とする移動方向算出装置。
【００７４】
（付記２）前記方向判別手段は、前記ＸＺクロススペクトルの最大値と前記ＹＺクロススペクトルの最大値との大小を比較して前記ＸＺクロススペクトルの最大値が大きいと判断された場合、前記歩行体は前後方向に移動していると判別し、前記ＹＺクロススペクトルの最大値が大きいと判断された場合、前記歩行体は左右方向に移動していると判別することを特徴とする付記１に記載の移動方向算出装置。
【００７５】
（付記３）前記方向判別手段は、前記歩行体が前後方向に移動していると判別された場合、前記ＸＺクロススペクトルの最大値の実部と虚部から算出される位相差が−９０°〜９０°に収まれば、前記歩行体は前方向に移動していると判別し、収まらなければ、前記歩行体は後ろ方向に移動していると判別することを特徴とする付記２に記載の移動方向算出装置。
【００７６】
（付記４）前記方向判別手段は、前記歩行体が左右方向に移動していると判別された場合、前記ＹＺクロススペクトルの最大値の実部と虚部から算出される位相差が−９０°〜９０°に収まれば、前記歩行体は前方向に移動していると判別し、収まらなければ、前記歩行体は後ろ方向に移動していると判別することを特徴とする付記２に記載の移動方向算出装置。
【００７７】
（付記５）前記歩行体が駆け足で移動しているか否かを判別する駆け足判別手段と、
前記駆け足判別手段によって前記歩行体が駆け足で移動していると判別された場合に、前記方向判別手段によって移動方向として判別された方向を、反対方向に補正する補正手段と、を備え、
前記出力手段は、前記補正手段によって補正された方向を出力することを特徴とする付記１〜４のいずれか一つに記載の移動方向算出装置。
【００７８】
（付記６）前記駆け足判別手段は、所定の周期において、前記検出手段によって検出されたＸＺクロススペクトルまたはＹＺクロススペクトルの最大値がしきい値以上かつ、当該最大値の周波数がしきい値以上であった場合、前記歩行体は駆け足で移動していると判別することを特徴とする付記５に記載の移動方向算出装置。
【００７９】
（付記７）前記方向判別手段は、前記クロススペクトル算出手段によって算出されたＸＺクロススペクトルまたはＹＺクロススペクトルの最大値がしきい値未満となった場合に、前記歩行体が停止状態と判別することを特徴とする付記１〜６のいずれか一つに記載の移動方向算出装置。
【００８０】
（付記８）歩行体に装着された加速度センサに装着された加速度センサからの出力を受け付けるコンピュータを、
前記歩行体の正面方向となるＸ軸と、前記正面方向に対して直角に交わる当該歩行体の左右方向となるＹ軸と、当該歩行体の垂直方向となるＺ軸との３軸方向の加速度を検出する検出手段、
前記検出手段によって検出されたＸ軸方向の加速度とＺ軸方向の加速度との相関性をあらわすＸＺクロススペクトルと、Ｙ軸方向の加速度と前記Ｚ軸方向の加速度との相関性をあらわすＹＺクロススペクトルとを算出するクロススペクトル算出手段、
前記クロススペクトル算出手段によって算出されたＸＺクロススペクトルまたはＹＺクロススペクトルの最大値がしきい値以上となった場合に、前記ＸＺクロススペクトルの最大値と前記ＹＺクロススペクトルの最大値との大小の比較結果に応じて前記歩行体の移動方向を判別する方向判別手段、
前記方向判別手段によって判別された方向を出力する出力手段、
として機能させることを特徴とする移動方向算出プログラム。
【００８１】
（付記９）歩行体に装着された加速度センサに装着された加速度センサからの出力を受け付ける装置が、
前記歩行体の正面方向となるＸ軸と、前記正面方向に対して直角に交わる当該歩行体の左右方向となるＹ軸と、当該歩行体の垂直方向となるＺ軸との３軸方向の加速度を検出する検出工程と、
前記検出工程によって検出されたＸ軸方向の加速度とＺ軸方向の加速度との相関性をあらわすＸＺクロススペクトルと、Ｙ軸方向の加速度と前記Ｚ軸方向の加速度との相関性をあらわすＹＺクロススペクトルとを算出するクロススペクトル算出工程と、
前記クロススペクトル算出工程によって算出されたＸＺクロススペクトルまたはＹＺクロススペクトルの最大値がしきい値以上となった場合に、前記ＸＺクロススペクトルの最大値と前記ＹＺクロススペクトルの最大値との大小の比較結果に応じて前記歩行体の移動方向を判別する方向判別工程と、
前記方向判別工程によって判別された方向を出力する出力工程と、
を実行することを特徴とする移動方向算出方法。
【図面の簡単な説明】
【００８２】
【図１−１】移動方向算出処理の概要を示す説明図である。
【図１−２】クロススペクトルの位相差と移動方向との関係を示す説明図である。
【図２】移動方向算出装置のハードウェア構成を示すブロック図である。
【図３】移動方向算出装置の機能的構成を示すブロック図である。
【図４−１】移動方向算出処理の手順を示すフローチャート（その１）である。
【図４−２】移動方向算出処理の手順を示すフローチャート（その２）である。
【図５】歩行時のＸＺクロススペクトル最大値の算出例を示す図表である。
【図６】前進行時のＸＺクロススペクトルとＹＺクロススペクトルとの最大値の算出例を示す図表である。
【図７】前進時の位相差の算出例を示す図表である。
【図８】後進時の位相差の算出例を示す図表である。
【図９】右歩行時のＸＺクロススペクトルとＹＺクロススペクトルとの最大値の算出例を示す図表である。
【図１０】右歩行時の位相差の算出例を示す図表である。
【図１１】左歩行時の位相差の算出例を示す図表である。
【図１２】駆け足時の位相差の算出例を示す図表である。
【符号の説明】
【００８３】
１００  歩行体
１１０  移動方向算出装置
１１１  検出部
１１２  クロススペクトル算出部
１１３  判別部
１１４  出力部
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  ＨＤＤ
２０５  ＨＤ
２０６  メモリドライブ
２０７  リムーバブルメモリ
２０８  ディスプレイ
２０９  入力Ｉ／Ｆ
２１０  各種センサ
２１１  ネットワークＩ／Ｆ
２２０  バス
２３０  ネットワーク（ＮＥＴ）
３１０  センサ部
３１１  加速度センサ
３１２  磁気センサ
３１３  ジャイロセンサ
３２０  演算処理部
３３０  記憶部
３３１  入力情報
３３２  出力情報
３３３  設定パラメータ
３３４  判定テーブル
３３５  演算アルゴリズム
３４０  表示部
３５０  通信部
【図１−１】
2010071792.tif 000010
【図１−２】
2010071792.tif 000011
【図２】
2010071792.tif 000012
【図３】
2010071792.tif 000013
【図４−１】
2010071792.tif 000014
【図４−２】
2010071792.tif 000015
【図５】
2010071792.tif 000016
【図６】
2010071792.tif 000017
【図７】
2010071792.tif 000018
【図８】
2010071792.tif 000019
【図９】
2010071792.tif 000020
【図１０】
2010071792.tif 000021
【図１１】
2010071792.tif 000022
【図１２】
2010071792.tif 000023