スイング分析装置、スイング分析プログラム、および記録媒体
【課題】ユーザーがスイング動作の開始や終了のタイミングを指示する必要がなく、比較的小さい計算負荷でスイングデータの抽出を行うことが可能なスイング分析装置、スイング分析プログラム、およびスイング分析プログラムを記録した記録媒体を提供すること。
【解決手段】スイング分析装置1は、少なくとも、モーション10、データ取得部22、動作検出部24、スイングデータ判定部26を含む。データ取得部22は、モーションセンサー10の検出データを取得する。動作検出部24は、取得した検出データを用いてスイングの動作の検出を行い、スイングの動作が検出されたデータをスイング候補データとして抽出する。スイングデータ判定部26は、スイングに関連付けられる判定条件に基づき、スイング候補データから真のスイングデータを選択する。
【解決手段】スイング分析装置1は、少なくとも、モーション10、データ取得部22、動作検出部24、スイングデータ判定部26を含む。データ取得部22は、モーションセンサー10の検出データを取得する。動作検出部24は、取得した検出データを用いてスイングの動作の検出を行い、スイングの動作が検出されたデータをスイング候補データとして抽出する。スイングデータ判定部26は、スイングに関連付けられる判定条件に基づき、スイング候補データから真のスイングデータを選択する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スイング分析装置、スイング分析プログラム、およびスイング分析プログラムを記録した記録媒体に関する。
【背景技術】
【0002】
ゴルフ、テニス、野球などのスポーツでは、スイングのリズムを改善することで競技力を向上させることができると考えられている。特に、ゴルフでは静止したボールを打つため、スイングの各フェーズ(バックスイング、トップ、ダウンスイング、インパクト、フォロースルー)のリズム(時間配分)が安定しているほど良いスイングができているとの見方があり、練習用具などでは各フェーズの時間のばらつきなどを計測し、分析のための情報を提供しているものもある。また、特許文献1では、練習者の身体の加速度を検知し、この加速度情報を解析することでバックスイング期間、ダウンスイング(フォワードスイング)期間、フォロースルー期間などを算出する手法が提案されている。さらに、特許文献2では、ユーザーの体幹軸の動きを検出できる部位に角速度センサー等のモーションセンサーを取り付け、ゴルフスイングによって生じる角速度を測定し、この角速度情報を解析することでバックスイング、ダウンスイング、フォロースルーなどの時間を算出する手法が提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−43349号公報
【特許文献2】特開2010−68947号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、スイングの計測では、計測の開始と終了のタイミングをユーザーが指定する必要がある場合が多く、スイング動作が制限されていつもどおりの自然な動きの中でのスイングの計測ができない場合が多い。また、一般的にモーションセンサーのセンシングデータの中からスイング動作に対応するスイングデータを抽出するためには、波形のパターンマッチングにより適合するパターンを見つける処理を行っており、計算負荷が大きいという問題がある。
【0005】
本発明は、以上のような問題点に鑑みてなされたものであり、本発明のいくつかの態様によれば、ユーザーがスイング動作の開始や終了のタイミングを指示する必要がなく、比較的小さい計算負荷でスイングデータの抽出を行うことが可能なスイング分析装置、スイング分析プログラム、およびスイング分析プログラムを記録した記録媒体を提供することができる。
【課題を解決するための手段】
【0006】
(1)本発明は、スイングにより発生する物理量を検出するモーションセンサーと、前記モーションセンサーの検出データを取得するデータ取得部と、取得した前記検出データを用いて前記スイングの動作の検出を行い、前記スイングの動作が検出されたデータをスイング候補データとして抽出する動作検出部と、前記スイングに関連付けられる判定条件に基づき、前記スイング候補データから真のスイングデータを選択するスイングデータ判定部と、を含む、スイング分析装置である。
【0007】
本発明のスイング分析装置によれば、モーションセンサーから取得した検出データからスイング候補データを抽出し、スイング候補データが真のスイングデータであるか否かを判定するので、ユーザーがスイング動作の開始や終了のタイミングを指示する必要がない。
【0008】
また、本発明のスイング分析装置によれば、検出したリズムの妥当性を評価することによりスイング候補データが真のスイングデータであるか否かを判定するので、波形のパターンマッチングを行う場合と比較して、より小さい計算負荷でスイングデータを抽出することができる。
【0009】
(2)このスイング分析装置において、前記動作検出部は、取得した前記検出データを用いて前記スイングのインパクトのタイミングを検出するインパクト検出部を含み、前記インパクトのタイミングを基準に前記スイング候補データの前記スイングの動作を検出するようにしてもよい。
【0010】
インパクトの瞬間は角速度の値が急激に変化するので、一連のスイング動作の中でインパクトのタイミングが最も捉えやすい。そこで、インパクトのタイミングを最初に検出し、インパクトのタイミングを基準とすることで、より確実にスイングの各動作の検出を行うことができる。
【0011】
(3)このスイング分析装置において、前記スイングの動作は、バックスイング、トップ、およびダウンスイングの少なくとも1つの動作を含むようにしてもよい。
【0012】
(4)このスイング分析装置において、前記スイングデータ判定部が、1つの前記スイング候補データにおいて、前記インパクトのタイミングが1つであることを前記判定条件の1つとしているようにしてもよい。
【0013】
通常のスイング動作では、スイングの開始から終了までにインパクトが1つであると考えられる。従って、スイング候補データの期間にインパクトのタイミングが1つでなければ当該スイング候補データは真のスイングデータではないと判定することができる。
【0014】
(5)このスイング分析装置において、前記スイングデータ判定部が、1つの前記スイング候補データにおいて、前記ダウンスイングの時間が前記バックスイングの時間よりも短いことを前記判定条件の1つとしているようにしてもよい。
【0015】
通常のスイング動作では、ダウンスイングの時間がバックスイングの時間よりも短いと考えられる。従って、スイング候補データにおけるダウンスイングの時間がバックスイングの時間よりも長ければ当該スイング候補データは真のスイングデータではないと判定することができる。
【0016】
(6)このスイング分析装置において、前記スイングデータ判定部が、1つの前記スイング候補データにおいて、前記トップの時間を前記スイング候補データの前記スイングの開始から前記スイングの終了までの時間で割った値が第1閾値よりも小さいことを前記判定条件の1つとしているようにしてもよい。
【0017】
通常のスイング動作では、トップ区間の時間と全時間との比が所定範囲であると考えられる。従って、トップ区間の時間と全時間との比が所定範囲でなければ当該スイング候補データは真のスイングデータではないと判定することができる。
【0018】
(7)このスイング分析装置において、前記第1閾値は15%であるようにしてもよい。
【0019】
(8)このスイング分析装置において、前記モーションセンサーは、前記スイングにより複数軸の回りに発生する角速度を検出する角速度センサーであり、前記動作検出部は、取得した前記検出データを用いて、前記複数軸の各々の軸に発生する前記角速度の大きさの和を計算する角速度計算部を含むようにしてもよい。
【0020】
このように、角速度センサーを用いることで、加速度センサーを用いた場合と比較してスイング動作をより正確に検出するとともに、動きの小さいスイングも検出可能である。
【0021】
さらに、角速度センサーにより複数軸の角速度を検出し、各々の軸回りの角速度の大きさの和(ノルム)に基づいてスイングの各動作を検出するので、スイング動作に連動して動く場所に任意の向きに角速度センサーを取り付けることができ、取り扱いが容易である。
【0022】
(9)このスイング分析装置において、前記動作検出部は、前記角速度の大きさの和を用いて、前記スイングにおけるインパクトのタイミングを検出するようにしてもよい。
【0023】
インパクトの瞬間は角速度の大きさの和(ノルム)の値が急激に変化するので、一連のスイング動作の中でインパクトのタイミングが最も捉えやすい。そこで、インパクトのタイミングを最初に検出することで、より確実にスイングの各動作の検出を行うことができる。
【0024】
(10)このスイング分析装置において、前記動作検出部は、前記角速度の大きさの和を時間で微分する微分計算部をさらに含むようにしてもよい。
【0025】
(11)このスイング分析装置において、前記動作検出部は、前記微分の値で正のピークと負のピークとが連続する部分を検出し、前記正のピークおよび前記負のピークのうち先のピークのタイミングをインパクトのタイミングとして検出するようにしてもよい。
【0026】
通常のスイング動作では、インパクトの際にその衝撃により角速度が急激に変化する。したがって、一連のスイング動作の中で角速度の大きさの和(ノルム)の微分値が極大又は極小となるタイミング(すなわち、角速度の大きさの和の微分値が正のピーク又は負のピークになるタイミング)をインパクトのタイミングとして捉えることができる。なお、スイングに用いられる器具がインパクトにより振動するため、角速度の大きさの和(ノルム)の微分値が極大となるタイミングと極小となるタイミングが対になって生じると考えられるが、そのうちの先のタイミングがインパクトの瞬間と考えられる。
【0027】
(12)このスイング分析装置において、前記動作検出部は、前記インパクトより前で、前記角速度の大きさの和が極小となるタイミングを前記スイングのトップのタイミングとして検出するようにしてもよい。
【0028】
通常のスイング動作では、スイング開始後、トップで一旦動作が止まり、その後、徐々にスイング速度が大きくなってインパクトに至ると考えられる。従って、インパクトのタイミングより前で角速度の大きさの和(ノルム)が極小となるタイミングをスイングのトップのタイミングとして捉えることができる。
【0029】
(13)このスイング分析装置において、前記動作検出部は、前記トップより前で、前記角速度の大きさの和が第2閾値以下となるタイミングを前記スイングの開始のタイミングとして検出するようにしてもよい。
【0030】
通常のスイング動作では、静止した状態からスイング動作を開始し、トップまでにスイング動作が止まることは考えにくい。従って、トップより前で、角速度の大きさの和(ノルム)が第2閾値以下となる最後のタイミングをスイングの開始のタイミングとして捉えることができる。
【0031】
(14)このスイング分析装置において、前記動作検出部は、前記インパクトより後で、前記角速度の大きさの和が極小となるタイミングを前記スイングのフィニッシュのタイミングとして検出するようにしてもよい。
【0032】
通常のスイング動作では、インパクトの後、徐々にスイング速度が小さくなって止まると考えられる。従って、インパクトより後で、角速度の大きさの和(ノルム)が極小となるタイミングをフィニッシュのタイミングとして捉えることができる。
【0033】
(15)このスイング分析装置において、前記動作検出部は、前記インパクトより後で、前記角速度の大きさの和が第3閾値以下となる最初のタイミングを前記スイングのフィニッシュのタイミングとして検出するようにしてもよい。
【0034】
通常のスイング動作では、インパクトの後、徐々にスイング速度が小さくなって止まると考えられる。従って、インパクトより後で、角速度の大きさの和(ノルム)が第3閾値以下となる最初のタイミングをフィニッシュのタイミングとして捉えることができる。
【0035】
(16)このスイング分析装置において、前記動作検出部は、前記スイングの開始のタイミングから前記トップのタイミングまでの間をバックスイングの区間として特定し、前記トップのタイミングから前記インパクトのタイミングまでの間をダウンスイングの区間として特定するようにしてもよい。
【0036】
(17)このスイング分析装置において、前記角速度センサーは、ユーザーの手、グローブ、およびスイング器具の少なくとも1つに取り付け可能であるようにしてもよい。
【0037】
角速度センサーをユーザーの手またはグローブに取り付け可能とすることにより、センサーの取り付けに時間がかからず、容易にスイング解析を行うことができる。また、角速度センサーをスイング器具に取り付け可能とすることにより、ユーザーの手またはグローブにセンサーを取り付けるよりも精密に角速度を検出することができる。
【0038】
(18)このスイング分析装置は、前記動作検出部が検出した前記スイングの動作に基づいて、前記スイングの動作の時間を算出し、算出結果を画面に表示する表示処理部をさらに含むようにしてもよい。
【0039】
このように、スイング動作の各動作の少なくとも1つの時間を表示することで、ユーザーはスイングの詳細な動作を把握することができる。
【0040】
(19)このスイング分析装置において、前記スイングは、ゴルフのスイングであるようにしてもよい。すなわち、ゴルフスイング分析装置であってもよい。
【0041】
(20)本発明は、モーションセンサーからスイングにより発生する物理量の検出データを取得するデータ取得部と、取得した前記検出データを用いて前記スイングの動作の検出を行い、前記スイングの動作が検出されたデータをスイング候補データとして抽出する動作検出部と、前記スイングに関連付けられる判定条件に基づき、当該スイング候補データから真のスイングデータを選択するスイングデータ判定部としてコンピューターを機能させる、スイング分析プログラムである。
【0042】
(21)本発明は、上記のスイング分析プログラムを記録した記録媒体である。
【図面の簡単な説明】
【0043】
【図1】本実施形態のスイング分析装置の構成を示す図。
【図2】モーションセンサーの取り付け位置の一例を示す図。
【図3】スイング分析の全体処理の一例を示すフローチャート図。
【図4】スイング動作の検出処理の一例を示すフローチャート図。
【図5】トップ区間、フィニッシュ区間、スイング開始の閾値テーブルの一例を示す図。
【図6】スイングデータ判定処理の一例を示すフローチャート図。
【図7】スイングデータ判定処理の説明図。
【図8】スイング動作の表示処理の一例を示すフローチャート図。
【図9】スイング動作の表示の一例を示す図。
【図10】実験例におけるモーションセンサーの取り付け位置及び向きの説明図。
【図11】図11(A)はフルスイング時の3軸角速度をグラフ表示した図であり、図11(B)は3軸角速度の大きさの和(ノルム)の計算値をグラフ表示した図であり、図11(C)は3軸角速度の大きさの和(ノルム)の微分の計算値をグラフ表示した図。
【図12】フルスイング時のスイング動作の表示を示す図。
【図13】図13(A)はスイング時の3軸角速度をグラフ表示した図であり、図13(B)は3軸角速度の大きさの和(ノルム)の計算値をグラフ表示した図であり、図13(C)は3軸角速度の大きさの和(ノルム)の微分の計算値をグラフ表示した図。
【図14】スイング時のスイング動作の表示を示す図。
【図15】変形例1のスイングデータ判定処理を示すフローチャート図。
【図16】変形例1のスイングデータ判定処理の説明図。
【図17】変形例2のスイング動作の検出処理を示すフローチャート図。
【図18】変形例2のスイングデータ判定処理を示すフローチャート図。
【発明を実施するための形態】
【0044】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【0045】
以下では、ゴルフスイングの分析を行うスイング分析装置を例に挙げて説明するが、本発明のスイング分析装置は、テニスラケットや野球のバットなどスイングに用いられる様々な器具のスイング分析に適用することができる。
【0046】
1.スイング分析装置の構成
図1は、本実施形態のスイング分析装置の構成を示す図である。本実施形態のスイング分析装置1は、モーションセンサー10、処理部20、操作部30、表示部40、ROM50、RAM60、不揮発性メモリー70、記録媒体80を含んで構成されている。
【0047】
モーションセンサー10は、スイングにより発生する物理量を検出し、検出データを出力する。なお、モーションセンサー10は、1つの素子で複数軸の物理量を検出可能な多軸センサーであっても良いし、1つの素子で1軸の物理量を検出可能な1軸センサーを複数個実装したセンサーであっても良い。モーションセンサー10としては、角速度センサーや加速度センサーなどを適用することができる。特に、本実施形態のモーションセンサー10は角速度センサーであり、複数軸の回りの角速度を検出し、各軸回りの角速度の検出データを出力する。
【0048】
操作部30は、ユーザーからの操作データを取得し、処理部20に送る処理を行う。操作部30は、例えば、タッチパネル型ディスプレイ、ボタン、キー、マイクなどである。
【0049】
表示部40は、処理部20の処理結果を文字やグラフ、その他の画像として表示するものである。表示部40は、例えば、CRT、LCD、タッチパネル型ディスプレイ、HMD(ヘッドマウントディスプレイ)などである。なお、1つのタッチパネル型ディスプレイで操作部30と表示部40の機能を実現するようにしてもよい。
【0050】
ROM50は、処理部20が各種の計算処理や制御処理を行うための基本プログラムや基本プログラムで用いるデータ等を記憶している。
【0051】
RAM60は、処理部20の作業領域として用いられ、ROM50から読み出されたプログラムやデータ、操作部30から入力されたデータ、処理部20が各種プログラムに従って実行した演算結果等を一時的に記憶する記憶部である。
【0052】
不揮発性メモリー70は、処理部20の処理により生成されたデータのうち、長期的な保存が必要なデータを記録する記録部である。
【0053】
記録媒体80は、各種のアプリケーション機能を実現するためのアプリケーションプログラムやデータを記憶しており、例えば、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、メモリー(ROM、フラッシュメモリーなど)により実現することができる。
【0054】
処理部20は、ROM50に記憶されている基本プログラムや記録媒体80に記憶されているアプリケーションプログラムに従って、各種の処理(モーションセンサー10の検出データの取得処理、各種の計算処理、各種の制御処理等を行う。処理部20は、マイクロプロセッサーなどで実現することができる。
【0055】
特に、本実施形態では、処理部20は、以下に説明するデータ取得部22、動作検出部24、スイングデータ判定部26、表示処理部28を含み、ユーザーによるスイング動作の各動作を分析する。本実施形態では、処理部20が記録媒体80に記憶されているスイング分析プログラムを実行することで、データ取得部22、動作検出部24、スイングデータ判定部26、表示処理部28として機能する。すなわち、記録媒体80には、コンピューターを上記の各部として機能させるためのスイング分析プログラムが記憶されている。あるいは、スイング分析装置1に通信部を追加し、通信部を介して有線又は無線の通信ネットワークを介してサーバーからスイング分析プログラムを受信し、受信したスイング分析プログラムをRAM60や記録媒体80に記憶して当該スイング分析プログラムを実行するようにしてもよい。ただし、データ取得部22、動作検出部24、スイングデータ判定部26、表示処理部28の少なくとも一部をハードウェア(専用回路)で実現してもよい。
【0056】
データ取得部22は、ユーザーのスイング動作に対するモーションセンサー10の一連の検出データを連続して取得する処理を行う。取得したデータは、例えばRAM60に記憶される。
【0057】
動作検出部24は、データ取得部20が取得した検出データを用いてスイングの動作(例えば、バックスイング、トップ、およびダウンスイングの少なくとも1つの動作を含むスイングの動作)の検出を行い、スイングの動作が検出されたデータをスイング候補データとして抽出する処理を行う。特に、本実施形態の動作検出部24は、角速度計算部240、微分計算部242、インパクト検出部244を含む。ただし、本実施形態の動作検出部24は、これらの一部又は全部の構成(要素)を省略したり、新たな構成(要素)を追加した構成としてもよい。
【0058】
角速度計算部240は、データ取得部22がモーションセンサー10から取得した検出データに基づいて、複数軸の回りの角速度の大きさの和(ノルム)を計算する処理を行う。なお、以下では各軸で生じた角速度の大きさの和のことを「ノルム」と表現する。
【0059】
微分計算部242は、角速度計算部240が計算した角速度のノルムを時間で微分する処理を行う。
【0060】
インパクト検出部244は、データ取得部22が取得した検出データを用いて、スイングにおけるインパクトのタイミングを検出する処理を行う。例えば、インパクト検出部244は、角速度計算部240が検出データに基づいて計算した角速度のノルムを用いて、スイングにおけるインパクトのタイミングを検出する処理を行う。インパクト検出部244は、微分計算部242が計算した角速度のノルムの微分の値で正のピーク(極大点)と負のピーク(極小点)とが連続する部分(所定時間内にこれらのピークを含む部分)を検出し、当該正のピークおよび当該負のピークのうち先のピークのタイミングをインパクトのタイミングとして検出するようにしてもよい。特に、インパクト検出部244は、微分計算部242が計算した角速度のノルムの微分の値が最大となるタイミングと最小となるタイミングのうち、先のタイミングを1つのインパクト(最大インパクト)のタイミングとして検出するようにしてもよい。あるいは、インパクト検出部244は、角速度のノルムが最大となるタイミングを1つのインパクト(最大インパクト)のタイミングとして検出するようにしてもよい。
【0061】
動作検出部24は、インパクト検出部244が検出したインパクト(最大インパクト)のタイミングを基準にスイング候補データのスイングの動作を検出するようにしてもよい。
【0062】
なお、動作検出部24は、スイング候補データにおいて、インパクト検出部244が検出したインパクト(最大インパクト)より前で、角速度計算部240が計算した角速度のノルムが極小となるタイミングをスイングのトップのタイミングとして検出するようにしてもよい。
【0063】
また、動作検出部24は、スイング候補データにおいて、インパクト(最大インパクト)より前で角速度のノルムが所与の閾値以下の連続した区間をトップ区間(トップでの溜めの区間)として特定するようにしてもよい。
【0064】
また、動作検出部24は、スイング候補データにおいて、トップより前で、角速度のノルムが第2閾値以下となるタイミングをスイングの開始のタイミングとして検出するようにしてもよい。
【0065】
さらに、動作検出部24は、スイングの開始のタイミングからトップのタイミングまでの間をバックスイングの区間として特定し、トップのタイミングからインパクト(最大インパクト)のタイミングまでの間をダウンスイングの区間として特定するようにしてもよい。
【0066】
また、動作検出部24は、スイング候補データにおいて、インパクト(最大インパクト)より後で、角速度のノルムが極小となるタイミングをスイングの終了(フィニッシュ)のタイミングとして検出するようにしてもよい。あるいは、動作検出部24は、インパクト(最大インパクト)より後で、角速度のノルムが第3閾値以下となる最初のタイミングをスイングの終了(フィニッシュ)のタイミングとして検出するようにしてもよい。
【0067】
また、動作検出部24は、スイング候補データにおいて、インパクト(最大インパクト)のタイミングより後で且つインパクト(最大インパクト)のタイミングに接近し、角速度のノルムが第4閾値以下となる連続した区間をフィニッシュ区間として特定するようにしてもよい。
【0068】
スイングデータ判定部26は、スイングに関連付けられる判定条件に基づき、スイング候補データから真のスイングデータを選択する処理を行う。
【0069】
スイングデータ判定部26は、1つのスイング候補データにおいて、インパクトのタイミングが1つである(最大インパクトのみである)ことを判定条件の1つとしてもよい。
【0070】
また、スイングデータ判定部26は、1つのスイング候補データにおいて、ダウンスイングの時間がバックスイングの時間よりも短いことを判定条件の1つとしてもよい。
【0071】
また、スイングデータ判定部26は、1つのスイング候補データにおいて、トップの時間を当該スイング候補データのスイングの開始からスイングの終了までの時間で割った値が第1閾値よりも小さいことを判定条件の1つとしてもよい。
【0072】
表示処理部28は、動作検出部24が検出したユーザーのスイングの各動作に基づいて、当該スイングの各動作の時間を算出して、算出結果を画面(表示部40)に表示する処理を行う。
【0073】
なお、本実施形態の処理部20は、これらの一部の構成(要素)を省略したり、新たな構成(要素)を追加した構成としてもよい。
【0074】
この処理部20、操作部30、表示部40、ROM50、RAM60、不揮発性メモリー70、記録媒体80の全部又は一部の機能は、パーソナルコンピューター(PC)、あるいはスマートフォンなどの携帯機器などで実現することができる。
【0075】
このスイング分析装置1は、モーションセンサー10と処理部20を物理的に分離した分離型として構成し、モーションセンサー10と処理部20のデータ通信を無線又は有線で行うようにしてもよい。あるいは、スイング分析装置1は、モーションセンサー10と処理部20を1つの筐体の中に設けた一体型として構成してもよい。
【0076】
スイング分析装置1を分離型で構成する場合には、モーションセンサー10を、スイング動作に応じて発生する角速度を検出可能な任意の位置に取り付ければよい。例えば、モーションセンサー10は、図2(A)に示すようにゴルフクラブ等のスイング器具に取り付けられる。ただし、インパクト時の衝撃の影響を受けないように、図示のようにシャフトに取り付けるのが好ましい。それ以外にも、図2(B)に示すようにユーザーの手やグローブなどに取り付けられてもよいし、図2(C)に示すように腕時計などのアクセサリーに取り付けられてもよい。
【0077】
また、スイング分析装置1を一体型で構成する場合には、スイング分析装置1自体をゴルフクラブ等のスイング器具、ユーザーの手やグローブ、アクセサリーなどに取り付けてもよい。
【0078】
2.スイング分析装置の処理
2−1.スイング分析の全体処理
図3は、スイング分析装置1の処理部20によるスイング分析の全体処理の一例を示すフローチャート図である。
【0079】
図3に示すように、本実施形態の処理部20は、まず、データ取得部22として機能し、モーションセンサー10から検出データを取得する(S10、データ取得ステップ)。データ取得部22がモーションセンサー10からデータを取得する期間(データ取得期間)は、何らかの方法で設定する。例えば、ユーザーあるいは補助者が、スイング開始前に操作部30を操作することでデータ取得期間の開始タイミングを指示し、スイング終了後に操作部30を操作することでデータ取得期間の終了タイミングを指示するようにしてもよい。また、例えば、ユーザーあるいは補助者が、スイング開始前に操作部30を操作することでデータ取得期間の開始タイミングを指示し、所定時間経過後に自動的にデータ取得期間を終了するようにしてもよい。
【0080】
次に、処理部20は、動作検出部24として機能し、ステップS10で取得したすべてのデータをリズム検出の対象範囲に設定し(S12)、リズム検出の対象範囲に設定されたデータ(すなわち取得した全データ)に対してリズム検出を行う(S14、リズム検出ステップ)。なお、リズムとは、スイングの開始からスイングの終了までの一連の動作のことを言い、例えば、ゴルフスイングの場合、スイングの開始から、バックスイング、トップ、ダウンスイング、インパクト、フォロースルー、スイングの終了までの一連の動作に相当する。
【0081】
ステップS14でリズム検出がされなかった場合(S16のN)は、取得したデータにスイング動作に対応するデータ(スイングデータ)が含まれていなかった判断して処理を終了する。この場合、取得したデータにスイングデータが含まれなかったことを表示部40に表示するようにしてもよい。
【0082】
一方、ステップS14でリズム検出がされた場合(S16のY)、処理部20は、スイングデータ判定部26として機能し、ステップS14でリズム検出されたデータ(スイング候補データ)がユーザーのスイング動作に対応するスイングデータか否かを判定する(S18、スイングデータ判定ステップ)。
【0083】
ステップS18でスイング候補データがスイングデータであると判定された場合(S20のY)、処理部20は、表示処理部28として機能し、スイングデータのリズムを表示部40に表示し(S22、リズム表示ステップ)、処理を終了する。
【0084】
一方、ステップS18でスイング候補データがスイングデータでないと判定された場合(S20のN)は、処理部20は、リズム検出の対象範囲を設定し直して、再度、ステップS14以降の処理を行う。
【0085】
2−2.リズム検出処理
図4は、処理部20(動作検出部24)によるリズム検出処理の一例を示すフローチャート図である。
【0086】
図4に示すように、処理部20(動作検出部24)は、1回目のリズム検出処理において(S100のY)、まず、角速度計算部240として機能し、リズム検出の対象範囲に設定されたデータ(以下、「リズム検出対象データ」という)に対して、各時刻tでの角速度のノルムn0(t)の値を計算する(S110)。角速度のノルム(角速度の大きさの和)の求め方の一例として「角速度の大きさの2乗の和の平方根」から求める方法がある。例えば、モーションセンサー10が3軸回りの角速度を検出し、リズム検出対象データに対して、各時刻tでの3軸分の検出データをx(t)、y(t)、z(t)とすると、角速度のノルムn0(t)は、次式(1)で計算される。
【0087】
【数1】
【0088】
次に、処理部20(動作検出部24)は、リズム検出対象データに対して、各時刻tでの角速度のノルムn0(t)を所定範囲に正規化したノルムn(t)に変換する(S120)。具体的には、リズム検出対象データにおける角速度のノルムの最大値をmax(n0)とすると、次式(2)により、角速度のノルムn0(t)が0〜100の範囲に正規化したノルムn(t)に変換される。
【0089】
【数2】
【0090】
次に、処理部20(動作検出部24)は、ノルム微分計算部242として機能し、各時刻tでのノルム(正規化後のノルムn(t))の微分の値を計算する(S130)。例えば、リズム検出対象データの取得間隔をΔtとすると、時刻tでの角速度のノルムの微分(差分)dn(t)は次式(3)で計算される。
【0091】
【数3】
【0092】
一方、2回目以降のリズム検出処理(S100のN)では、ステップS110〜S130の処理は行われない。
【0093】
次に、処理部20(動作検出部24)は、インパクト検出部244として機能し、ノルムの微分dn(t)の値が最大となる時刻と最小となる時刻のうち、先の時刻をインパクト(最大インパクト)の時刻T5として設定する(S140)。通常のゴルフスイングでは、インパクトの瞬間にスイング速度が最大になると考えられる。そして、スイング速度に応じて角速度のノルムの値も変化すると考えられるので、一連のスイング動作の中で角速度のノルムの微分値が最大又は最小となるタイミング(すなわち、角速度のノルムの微分値が正の最大値又は負の最小値になるタイミング)をインパクトのタイミングとして捉えることができる。なお、インパクトによりゴルフクラブが振動するため、角速度のノルムの微分値が最大となるタイミングと最小となるタイミングが対になって生じると考えられるが、そのうちの先のタイミングがインパクトの瞬間と考えられる。
【0094】
次に、処理部20(動作検出部24)は、インパクトの時刻T5より前でノルムn(t)の値が0に近づく極小点が存在するか否かを判定し(S150)、存在すれば(S150のY)、当該極小点の時刻をトップの時刻T3として設定する(S152)。通常のゴルフスイングでは、スイング開始後、トップで一旦動作が止まり、その後、徐々にスイング速度が大きくなってインパクトに至ると考えられる。従って、インパクトのタイミングより前で角速度のノルムが0に近づき極小となるタイミングをトップのタイミングとして捉えることができる。
【0095】
一方、インパクトの時刻T5より前でノルムn(t)の値が0に近づく極小点が存在しなければ(S150のN)、処理部20(動作検出部24)は、リズム検出対象データに対するリズム検出に失敗した(リズム検出対象データにはスイング候補データが含まれていない)として処理を終了する。
【0096】
次に、処理部20(動作検出部24)は、インパクトの時刻T5より後でノルムn(t)の値が0に近づく極小点が存在するか否かを判定し(S154)、存在すれば(S154のY)、当該極小点の時刻をフィニッシュの時刻T7として設定する(S156)。通常のゴルフスイングでは、インパクトの後、徐々にスイング速度が小さくなって止まると考えられる。従って、インパクトのタイミングより後で角速度のノルムが0に近づき極小となるタイミングをフィニッシュのタイミングとして捉えることができる。
【0097】
一方、インパクトの時刻T5より後でノルムn(t)の値が0に近づく極小点が存在しなければ(S154のN)、処理部20(動作検出部24)は、リズム検出対象データに対するリズム検出に失敗した(リズム検出対象データにはスイング候補データが含まれていない)として処理を終了する。
【0098】
次に、処理部20(動作検出部24)は、トップの時刻T3の前後でノルムn(t)の値があらかじめ設定された閾値以下の区間が存在するか否かを判定し(S158)、存在すれば(S158のY)、当該区間の最初と最後の時刻をそれぞれトップ区間の開始時刻T2と終了時刻T4として設定する(S160)。通常のゴルフスイングでは、トップで一旦動作が止まるので、トップの前後ではスイング速度が小さいと考えられる。従って、トップのタイミングを含み角速度のノルムが所与の閾値以下の連続した区間をトップ区間として捉えることができる。
【0099】
一方、トップの時刻T3の前後でノルムn(t)の値が閾値以下の区間が存在しなければ(S158のN)、処理部20(動作検出部24)は、リズム検出対象データに対するリズム検出に失敗した(リズム検出対象データにはスイング候補データが含まれていない)として処理を終了する。
【0100】
次に、処理部20(動作検出部24)は、フィニッシュの時刻T7の前後でノルムn(t)の値があらかじめ設定された閾値以下の区間が存在するか否かを判定し(S162)、存在すれば(S162のY)、当該区間の最初と最後の時刻をそれぞれフィニッシュ区間の開始時刻T6と終了時刻T8として設定する(S164)。通常のゴルフスイングでは、インパクトの後、徐々にスイング速度が小さくなって止まると考えられる。従って、フィニッシュのタイミングを含み角速度のノルムが所与の閾値以下の連続した区間をフィニッシュ区間として捉えることができる。
【0101】
一方、フィニッシュの時刻T7の前後でノルムn(t)の値が閾値以下の区間が存在しなければ(S162のN)、処理部20(動作検出部24)は、リズム検出対象データに対するリズム検出に失敗した(リズム検出対象データにはスイング候補データが含まれていない)として処理を終了する。
【0102】
次に、処理部20(動作検出部24)は、トップ区間の開始時刻T2より前でノルムn(t)の値があらかじめ設定された閾値(第2閾値の一例)以下となるか否かを判定し(S166)、閾値以下となれば(S166のY)、当該閾値以下になる最後の時刻をスイング開始の時刻T1として設定する(S168)。なお、トップを特定する極小点より前で、ノルムが0に近づく極小点をスイング開始とみなしても良い。通常のゴルフスイングでは、静止した状態からスイング動作を開始し、トップまでにスイング動作が止まることは考えにくい。従って、トップのタイミングより前で角速度のノルムが閾値以下となる最後のタイミングをスイング動作の開始のタイミングとして捉えることができる。
【0103】
一方、トップ区間の開始時刻T2より前でノルムn(t)の値が閾値以下とならなければ(S166のN)、処理部20(動作検出部24)は、リズム検出対象データに対するリズム検出に失敗した(リズム検出対象データにはスイング候補データが含まれていない)として処理を終了する。
【0104】
最後に、処理部20(動作検出部24)は、リズム検出されたT1〜T8のデータをスイング候補データとし(S170)、処理を終了する。
【0105】
トップ区間、フィニッシュ区間、スイング開始の各閾値は、例えば、図5に示すようなテーブルデータとしてROM50やRAM60などに記憶される。これらの閾値は、固定値でもよいし、可変値(例えば、ユーザー毎に個別に設定)でもよい。図5のように、各動作に対応して各閾値を設けておけば、極小点が複数発生した場合においても、スイングに対応した極小点の抽出が容易となる。
【0106】
なお、図4のフローチャートの各ステップを適宜入れ替えてもよい。
【0107】
また、図4のフローチャートにおいて、各時刻tでのノルム(正規化後のノルム)n(t)の微分dn(t)の値を計算する工程(S130)は省略することが可能である。特にドライバーのスイングのように角速度のノルムの変化が大きいものについては微分工程(S130)は省略することができる。S130を省略する場合は、S120で求めた角速度のノルムの最大値をインパクト(最大インパクト)のタイミングとして検出すれば良い。
【0108】
また、図4のフローチャートのステップS154、S156において、インパクトのタイミングより後で角速度のノルムn(t)の値が0に近づく極小点をフィニッシュのタイミングとしているが、例えば、インパクトより後で、角速度のノルムn(t)の値があらかじめ設定された閾値(第3閾値の一例)以下となる最初のタイミングをスイングのフィニッシュのタイミングとして設定してもよい。
【0109】
また、図4のフローチャートでは、スイングの開始から、バックスイング、トップ、ダウンスイング、インパクト、フォロースルー、スイングの終了までのすべての動作を検出しているが、例えば、インパクトとダウンスイングだけの動作を検出するなどスイング動作の少なくとも1つの動作を検出するようにしてもよい。
【0110】
2−3.スイングデータ判定処理
図6は、処理部20(スイングデータ判定部26)によるスイングデータ判定処理の一例を示すフローチャート図である。
【0111】
図6に示すように、処理部20(スイングデータ判定部26)は、まず、スイング候補データにおいて、スイング開始の時刻T1からフィニッシュ区間の終了時刻T8までのインパクトの数を算出する(S200)。ここでいうインパクトとは、ゴルフクラブがボールに当たるインパクト(最大インパクト)だけでなく、ゴルフクラブが地面や障害物などに当たるインパクトも含まれる。例えば、処理部20(スイングデータ判定部26)は、角速度のノルムの微分(差分)dn(t)があらかじめ設定した閾値を横切って超える回数をインパクトの数として算出する。
【0112】
スイング開始の時刻T1からフィニッシュ区間の終了時刻T8までに含まれるインパクトが1つのみであれば(S210のY)、処理部20(スイングデータ判定部26)は、バックスイングの時間Ta=トップの時刻T3−スイング開始の時刻T1を計算し(S220)、さらに、ダウンスイングの時間Tc=インパクトの時刻T5−トップの時刻T3を計算する(S230)。
【0113】
一方、スイング開始の時刻T1からフィニッシュ区間の終了時刻T8までに含まれるインパクトが2つ以上あれば(S210のN)、処理部20(スイングデータ判定部26)は、当該スイング候補データが真のスイングデータではないと判定し、リズム検出の対象範囲から時刻T8以前のデータを除外した残りのデータを新たなリズム検出の対象範囲に設定する(S290)。通常のスイング動作では、スイングの開始から終了までにインパクトが1つであると考えられるので、スイング候補データの期間にインパクトのタイミングが1つでなければ当該スイング候補データは真のスイングデータではないと判定することができる。
【0114】
そして、バックスイングの時間Taがダウンスイングの時間Tcよりも短ければ(S240のY)、処理部20(スイングデータ判定部26)は、トップ区間の時間Tb=トップ区間の終了時刻T4−トップ区間の開始時刻T2を計算し(S250)、さらに、スイング候補データの全時間T=フィニッシュ区間の終了時刻T8−スイング開始の時刻T1を計算する(S260)。
【0115】
一方、バックスイングの時間Taがダウンスイングの時間Tc以上であれば(S240のN)、処理部20(スイングデータ判定部26)は、当該スイング候補データが真のスイングデータではないと判定し、リズム検出の対象範囲から時刻T8以前のデータを除外した残りのデータを新たなリズム検出の対象範囲に設定する(S290)。通常のスイング動作では、ダウンスイングの時間がバックスイングの時間よりも短いと考えられるので、スイング候補データにおけるダウンスイングの時間Tcがバックスイングの時間Ta以上であれば当該スイング候補データは真のスイングデータではないと判定することができる。
【0116】
最後に、処理部20(スイングデータ判定部26)は、(トップ区間の時間Tb/スイング候補データの全時間T)の値を計算し、Tb/Tの値があらかじめ設定された閾値(第1閾値の一例)以下であれば(S270のY)、当該スイング候補データ(T1〜T8のデータ)を真のスイングデータと決定し(S280)、処理を終了する。
【0117】
一方、Tb/Tの値が閾値以下でなければ(S270のN)、処理部20(スイングデータ判定部26)は、当該スイング候補データが真のスイングデータではないと判定し、リズム検出の対象範囲から時刻T8以前のデータを除外した残りのデータを新たなリズム検出の対象範囲に設定する(S290)。通常のスイング動作では、トップ区間の時間と全時間との比が所定範囲であると考えられるので、スイング候補データにおけるTb/Tの値が閾値以下でなければ当該スイング候補データは真のスイングデータではないと判定することができる。例えば、真のスイングデータであればTb/Tの値が0.15(=15%)を超えることはないと考えられるので、閾値を0.15(=15%)に設定することができる。
【0118】
なお、図6のフローチャートの各ステップを適宜入れ替えてもよい。
【0119】
モーションセンサー10から取得した全データの中にスイング候補データとなる複数のデータパターンが含まれる場合は、スイングデータが検出されるか、あるいはすべてのデータパターンがスイングデータでないと判定されるまで、図4のリズム検出処理と図6のスイングデータ判定処理が繰り返し行われる。例えば、モーションセンサー10から取得した全データの中にスイング候補データとなる3つのデータパターン(時系列順にデータパターン1、データパターン2、データパターン3)が含まれ、最後のデータパターン3がスイングデータであるとする。この場合、図7に示すように、1回目はモーションセンサー10から取得した全データをリズム検出対象データとしてリズム検出処理を行い、例えばデータパターン1がスイング候補データとして検出される。そして、このデータパターン1はスイングデータではないので、1回目のリズム検出対象データからデータパターン1を削除した残りのデータに対して2回目のリズム検出を行う。2回目のリズム検出処理で例えばデータパターン2が検出されると、このデータパターン2もスイングデータではないので、2回目のリズム検出対象データからデータパターン2を削除した残りのデータに対して3回目のリズム検出を行う。3回目のリズム検出処理でデータパターン3が検出され、このデータパターン3がスイングデータと判定される。
【0120】
2−4.リズム表示処理
図8は、処理部20(表示処理部28)によるリズム表示処理の一例を示すフローチャート図である。
【0121】
まず、処理部20(表示処理部28)は、スイングデータに対して、フォロースルーの時間Td=フィニッシュの時刻T7−インパクトの時刻T5を計算する(S300)。
【0122】
次に、処理部20(表示処理部28)は、フィニッシュ区間の時間Te=フィニッシュ区間の終了時刻T8−フィニッシュ区間の開始時刻T6を計算する(S310)。
【0123】
最後に、処理部20(表示処理部28)は、図6のステップS220、S250、S230、図8のステップS300、S310でそれぞれ計算した各フェーズの時間(バックスイングの時間Ta、トップ区間の時間Tb、ダウンスイングの時間Tc、フォロースルーの時間Td、フィニッシュ区間の時間Te)をグラフ化して表示部40に表示する(S320)。
【0124】
図9は、スイング動作のリズム表示の一例を示す図である。図9の表示例では、スイング動作における各フェーズ(バックスイング、トップ区間、ダウンスイング、フォロースルー、フィニッシュ区間)を、それぞれの時間Ta,Tb,Tc,Td,Teに比例した長さで固有の色あるいは模様を有する矩形で時系列に沿って表示している。また、各フェーズの矩形表示の上側にそれぞれの時間Ta,Tb,Tc,Td,Teを表示している。このようなリズム表示により、ユーザーは、例えば、トップ区間Tbが短いからトップでの溜めが足りない、ダウンスイングの時間Tcが長いからインパクトが弱いというような自己のスイング動作のリズムに関する詳細な情報を得ることができる。また、スイングのリズムを全て表示させるだけでなく、スイングの各動作ごとに時間を表示しても良い。
【0125】
3.実験例
図10〜図14は、本実施形態のスイング分析装置1を用いたスイング動作のリズム分析の実験例に関する図である。
【0126】
図10に示すように、本実験例では、ゴルフクラブ(ドライバー)のシャフトのグリップ近くに3軸の角速度を検出するモーションセンサー10を取り付け、被験者が1回だけスイングを行ってゴルフボールを打った時のリズムを分析した。モーションセンサー10は、x軸がシャフトに平行な方向、y軸がスイングの方向、z軸がスイング面と垂直な方向になるように取り付けた。ただし、本実施形態のスイング分析装置1は、角速度のノルムに基づいて各フェーズの時間を計算するので、モーションセンサー10の取り付け角は任意である。また、モーションセンサー10を、不図示のPC(処理部20、操作部30、表示部40、ROM50、RAM60、不揮発性メモリー70、記録媒体80などを備えている)とケーブルで接続し、PC側でモーションセンサー10が検出した一連の3軸角速度データをRAM60に取得し、取得したデータに含まれるスイングデータのリズムを分析して表示させた。
【0127】
図11(A)は、被験者がドライバーを持ってすぐにフルスイングした時のデータ取得期間(5秒間)に取得されたデータから3軸の角速度x(t),y(t),z(t)をグラフ表示した図である。図11(A)において、横軸は時間(msec)、縦軸は角速度(dps)である。
【0128】
図11(B)は、図11(A)の3軸角速度x(t),y(t),z(t)から3軸角速度のノルムn0(t)を式(1)に従って計算した後に式(2)に従って0〜100にスケール変換(正規化)したノルムn(t)をグラフ表示した図である。図11(B)において、横軸は時間(msec)、縦軸は角速度のノルム(0〜100にスケール変換)である。
【0129】
図11(C)は、図11(B)の3軸角速度のノルムn(t)からその微分dn(t)を式(3)に従って計算し、グラフ表示した図である。図11(C)において、横軸は時間(msec)、縦軸は3軸角速度のノルムの微分値である。なお、図11(A)及び図11(B)では横軸を0〜5秒で表示しているが、図11(C)では、インパクトの前後の微分値の変化がわかるように、横軸を2秒〜2.8秒で表示している。
【0130】
図11(B)及び図11(C)より、図4に示したリズム検出処理のフローチャートに従ってスイング候補データを抽出し、スイング開始の時刻T1、トップ区間の開始時刻T2、トップの時刻T3、トップ区間の終了時刻T4、インパクトの時刻T5、フィニッシュ区間の開始時刻T6、フィニッシュの時刻T7、フィニッシュ区間の終了時刻T8を計算した。その結果、T1=1000msec,T2=1967msec,T3=2024msec,T4=2087msec,T5=2397msec,T6=3002msec,T7=3075msec,T8=3210msecであった。
【0131】
次に、このスイングデータ候補のT1〜T8の計算値を用いて、図6に示したスイングデータ判定処理のフローチャートに従って、バックスイングの時間Ta、トップ区間の時間Tb、ダウンスイングの時間Tc、全時間Tを計算した。その結果、Ta=T3−T1=1024msec,Tb=T4−T2=120msec,Tc=T5−T3=373msec,T=T8−T1=2210msecであった。
【0132】
このスイング候補データが真のスイングデータであるか否かを判定すると、T1〜T8の間に1つのインパクト(時刻T5のインパクト)のみ存在し、かつ、Ta>Tc、かつ、Tb/T<閾値(例えば15%)を満たすので、スイングデータの条件を満たしている。
【0133】
そこで、次に、図8に示したリズム表示処理に従い、フォロースルーの時間Td及びフィニッシュ区間の時間Teを計算すると、Td=T7−T5=678msec,Te=T8−T6=208msecであり、図12に示すリズム表示が得られた。
【0134】
これに対して、図13(A)は、被験者がドライバーを持ってスイング前にドライバーを動かした後フルスイングした時のデータ取得期間(約25秒間)に取得されたデータから3軸の角速度x(t),y(t),z(t)をグラフ表示した図である。図13(A)において、横軸は時間(msec)、縦軸は角速度(dps)である。
【0135】
図13(B)は、図13(A)の3軸角速度x(t),y(t),z(t)から3軸角速度のノルムn0(t)を式(1)に従って計算した後に式(2)に従って0〜100にスケール変換(正規化)したノルムn(t)をグラフ表示した図である。図13(B)において、横軸は時間(msec)、縦軸は角速度のノルム(0〜100にスケール変換)である。
【0136】
図13(C)は、図13(B)の3軸角速度のノルムn(t)からその微分dn(t)を式(3)に従って計算し、グラフ表示した図である。図13(C)において、横軸は時間(msec)、縦軸は3軸角速度のノルムの微分値である。
【0137】
図13(B)及び図13(C)より、図4に示したリズム検出処理のフローチャートに従ってスイング候補データを抽出し、スイング開始の時刻T1、トップ区間の開始時刻T2、トップの時刻T3、トップ区間の終了時刻T4、インパクトの時刻T5、フィニッシュ区間の開始時刻T6、フィニッシュの時刻T7、フィニッシュ区間の終了時刻T8を計算した。その結果、T1=307msec,T2=984msec,T3=998msec,T4=1019msec,T5=1982msec,T6=2092msec,T7=2100msec,T8=2109msecのスイング候補データが抽出された。
【0138】
次に、この1回目のスイングデータ候補のT1〜T8の計算値を用いて、図6に示したスイングデータ判定処理のフローチャートに従って、バックスイングの時間Ta、トップ区間の時間Tb、ダウンスイングの時間Tc、全時間Tを計算した。その結果、Ta=T3−T1=691msec,Tb=T4−T2=35msec,Tc=T5−T3=984msec,T=1802msecであった。
【0139】
この1回目のスイング候補データが真のスイングデータであるか否かを判定すると、T1〜T8の間に2つのインパクト(時刻Txのインパクトと時刻T5のインパクト)が存在し、また、Ta<Tcなので、スイングデータの条件を満たしていない。
【0140】
従って、1回目のスイング候補データは、真のスイングデータではないと判断し、全データから時刻T8以前のデータを削除した残りのデータに対して、2回目のリズム検出処理を行ってスイング候補データを抽出し、T1〜T8を計算した。その結果、T1=18324msec,T2=18976msec,T3=18997msec,T4=19018msec,T5=19233msec,T6=19746msec,T7=19891msec,T8=20902msecのスイング候補データが抽出された。
【0141】
次に、この2回目のスイングデータ候補のT1〜T8の計算値を用いて、Ta,Tb,Tc,Tを計算した結果、Ta=673msec,Tb=42msec,Tc=236msec,T=2578msecであった。
【0142】
そして、2回目のスイング候補データが真のスイングデータであるか否かを判定すると、T1〜T8の間に1つのインパクト(時刻T5のインパクト)のみ存在し、かつ、Ta>Tc、かつ、Tb/T<閾値(例えば15%)を満たすので、スイングデータの条件を満たしている。
【0143】
そこで、次に、図8に示したリズム表示処理に従い、フォロースルーの時間Td及びフィニッシュ区間の時間Teを計算すると、Td=658msec,Te=1156msecであり、図14に示すリズム表示が得られた。このように、ユーザーがスイング動作の前に自由な動きをしたとしてもスイングデータが正しく選別され、スイング動作の詳細なリズムのデータが得られた。
【0144】
なお、図11、図13の例において、前述したように、各時刻tでのノルム(正規化後のノルム)n(t)の微分dn(t)の値を計算する工程(S130)は省略することが可能である。特に図ドライバーのスイングのように角速度のノルムの変化が大きいものについては微分工程(S130)は省略することができる。微分工程を省略する場合は、S120で求めた角速度のノルム(図11(b)、図12(b))の最大値を最大インパクトのタイミングとして検出すれば良い。
【0145】
以上に説明したように、本実施形態によれば、モーションセンサー10から取得した検出データからスイング候補データを抽出し、スイング候補データがスイングデータであるか否かを判定するので、ユーザーがスイング動作の開始や終了のタイミングを指示する必要がない。従って、ユーザーは、スイング前後に自由な動作を行うことができ、自然な動きの中でスイングを分析することができる。
【0146】
また、本実施形態によれば、検出したリズムの妥当性を評価することによりスイング候補データがスイングデータであるか否かを判定するので、波形のパターンマッチングを行う場合と比較して、より小さい計算負荷でスイングデータを抽出することができる。
【0147】
また、本実施形態によれば、モーションセンサー10として角速度センサーを用いることで、加速度センサーを用いた場合と比較してスイング動作をより正確に検出するとともに、動きの小さいスイングも検出可能である。従って、例えば、トップとフィニッシュでゴルフクラブをどの程度緩やかに留めているかなど、より詳細な分析をすることができる。また、インパクトを基準にして、スイングの開始から、バックスイング、トップ、ダウンスイング、フォロースルー、スイングの終了までの各動作の少なくとも1つを検出することが可能となる。
【0148】
また、本実施形態によれば、角速度のノルムに基づいてスイング動作を検出するので、スイング動作に連動して動く場所に任意の向きにモーションセンサー10を取り付けることができ、取り扱いが容易である。
【0149】
また、本実施形態によれば、角速度のノルムの値が急激に変化するため一連のスイング動作の中で最も捉えやすいインパクトのタイミングを最初に検出し、インパクトのタイミングに基づいてスイング動作の各フェーズを特定することで、より確実にスイング動作の検出を行うことができる。
【0150】
また、本実施形態によれば、スイング動作の各フェーズの時間を表示するので、ユーザーはスイング動作の詳細なリズムを容易に把握することができる。
【0151】
4,変形例
本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、以下のような変形例が考えられる。
【0152】
[変形例1]
図15は、変形例1におけるスイングデータ判定処理を示すフローチャート図である。図15において、図6と同じ処理には同じ符号を付している。図15に示すように、変形例1におけるスイングデータ判定処理では、スイング候補データがスイングデータではないと判定した場合(S210のN、S240のN又はS270のN)、リズム検出の対象範囲から当該スイング候補データ(時刻T1〜T8のデータ)を除外した残りのデータを新たなリズム検出の対象範囲に設定する(S292)。図15におけるその他の処理については図6と同じである。
【0153】
例えば、モーションセンサー10から取得した全データの中にスイング候補データとなる3つのデータパターン(時系列順にデータパターン1、データパターン2、データパターン3)が含まれ、2番目のデータパターン2がスイングデータであるとする。この場合、図16に示すように、1回目はモーションセンサー10から取得した全データをリズム検出対象データとしてリズム検出処理を行い、例えばデータパターン1がスイング候補データとして検出される。そして、このデータパターン1は真のスイングデータではないので、1回目のリズム検出対象データからデータパターン1を削除した残りのデータに対して2回目のリズム検出を行う。2回目のリズム検出処理で例えばデータパターン3が検出されると、このデータパターン3も真のスイングデータではないので、2回目のリズム検出対象データからデータパターン3を削除した残りのデータに対して3回目のリズム検出を行う。3回目のリズム検出処理でデータパターン2が検出され、このデータパターン2が真のスイングデータと判定される。
【0154】
このように、本変形例によれば、ユーザーがスイング動作の前だけでなく、スイング動作の後に大きなインパクトを生じさせるような動きをしても、確実にスイング動作を検出することができる。
【0155】
[変形例2]
図17は、変形例1におけるリズム検出処理を示すフローチャート図である。また、図18は、変形例1におけるスイングデータ判定処理を示すフローチャート図である。図17に示すように、変形例1におけるリズム検出処理では、1回目のリズム検出処理において(S100のY)、ノルムの微分dn(t)の値があらかじめ設定された閾値以上となる時刻tとdn(t)の値との対応関係を示すテーブルを作成する(S132)。そして、ステップS132で作成した対応テーブル中のdn(t)が最大の時刻tをインパクト(最大インパクト)の時刻T5として設定する(S142)。図17におけるその他の処理については図4と同じである。
【0156】
また、図18に示すように、変形例1におけるスイングデータ判定処理では、スイング候補データが真のスイングデータではないと判定した場合(S210のN、S240のN又はS270のN)、対応テーブルから時刻T5と時刻T5におけるノルムの微分dn(T5)の値との対応関係を削除する(S292)。この新たな対応テーブルを用いて、2回目以降のリズム検出処理が行われる。
【0157】
このように、本変形例によれば、2回目以降のリズム検出処理において、インパクトの検出処理を最初からやり直す手間を省くことができるので、計算量及び計算時間を減らすことができる。
【0158】
[その他の変形例]
例えば、ユーザーがデータ取得期間において複数回のスイング動作を連続して行った場合、図4及び図6のフローチャートに従って複数のインパクトを含むデータからその前後の情報を解析し、複数回のスイング動作にそれぞれ対応する複数のスイングデータを選別するようにしてもよい。例えば、選別された複数のスイングデータに対するリズムを時系列に並べて表示するようにしてもよい。このようにすれば、複数回連続でスイングした際のスイング動作の抽出が可能になり、ユーザーは、スイング動作の安定性を明確に評価することができる。
【0159】
また、ユーザー毎に、過去に検出したスイング動作のリズムの情報を記憶し、その平均的な情報を用いて、スイングデータ判定処理で用いる種々の閾値を設定するようにしてもよい。このようにすれば、ユーザーの個性を反映してスイング動作の検出精度を向上させることができる。
【0160】
本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【符号の説明】
【0161】
1 スイング分析装置、10 モーションセンサー、20 処理部、22 データ取得部、24 動作検出部、26 スイングデータ判定部、28 表示処理部、30 操作部、40 表示部、50 ROM、60 RAM、70 不揮発性メモリー、80 記録媒体、240 角速度計算部、242 微分計算部、244 インパクト検出部
【技術分野】
【0001】
本発明は、スイング分析装置、スイング分析プログラム、およびスイング分析プログラムを記録した記録媒体に関する。
【背景技術】
【0002】
ゴルフ、テニス、野球などのスポーツでは、スイングのリズムを改善することで競技力を向上させることができると考えられている。特に、ゴルフでは静止したボールを打つため、スイングの各フェーズ(バックスイング、トップ、ダウンスイング、インパクト、フォロースルー)のリズム(時間配分)が安定しているほど良いスイングができているとの見方があり、練習用具などでは各フェーズの時間のばらつきなどを計測し、分析のための情報を提供しているものもある。また、特許文献1では、練習者の身体の加速度を検知し、この加速度情報を解析することでバックスイング期間、ダウンスイング(フォワードスイング)期間、フォロースルー期間などを算出する手法が提案されている。さらに、特許文献2では、ユーザーの体幹軸の動きを検出できる部位に角速度センサー等のモーションセンサーを取り付け、ゴルフスイングによって生じる角速度を測定し、この角速度情報を解析することでバックスイング、ダウンスイング、フォロースルーなどの時間を算出する手法が提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−43349号公報
【特許文献2】特開2010−68947号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、スイングの計測では、計測の開始と終了のタイミングをユーザーが指定する必要がある場合が多く、スイング動作が制限されていつもどおりの自然な動きの中でのスイングの計測ができない場合が多い。また、一般的にモーションセンサーのセンシングデータの中からスイング動作に対応するスイングデータを抽出するためには、波形のパターンマッチングにより適合するパターンを見つける処理を行っており、計算負荷が大きいという問題がある。
【0005】
本発明は、以上のような問題点に鑑みてなされたものであり、本発明のいくつかの態様によれば、ユーザーがスイング動作の開始や終了のタイミングを指示する必要がなく、比較的小さい計算負荷でスイングデータの抽出を行うことが可能なスイング分析装置、スイング分析プログラム、およびスイング分析プログラムを記録した記録媒体を提供することができる。
【課題を解決するための手段】
【0006】
(1)本発明は、スイングにより発生する物理量を検出するモーションセンサーと、前記モーションセンサーの検出データを取得するデータ取得部と、取得した前記検出データを用いて前記スイングの動作の検出を行い、前記スイングの動作が検出されたデータをスイング候補データとして抽出する動作検出部と、前記スイングに関連付けられる判定条件に基づき、前記スイング候補データから真のスイングデータを選択するスイングデータ判定部と、を含む、スイング分析装置である。
【0007】
本発明のスイング分析装置によれば、モーションセンサーから取得した検出データからスイング候補データを抽出し、スイング候補データが真のスイングデータであるか否かを判定するので、ユーザーがスイング動作の開始や終了のタイミングを指示する必要がない。
【0008】
また、本発明のスイング分析装置によれば、検出したリズムの妥当性を評価することによりスイング候補データが真のスイングデータであるか否かを判定するので、波形のパターンマッチングを行う場合と比較して、より小さい計算負荷でスイングデータを抽出することができる。
【0009】
(2)このスイング分析装置において、前記動作検出部は、取得した前記検出データを用いて前記スイングのインパクトのタイミングを検出するインパクト検出部を含み、前記インパクトのタイミングを基準に前記スイング候補データの前記スイングの動作を検出するようにしてもよい。
【0010】
インパクトの瞬間は角速度の値が急激に変化するので、一連のスイング動作の中でインパクトのタイミングが最も捉えやすい。そこで、インパクトのタイミングを最初に検出し、インパクトのタイミングを基準とすることで、より確実にスイングの各動作の検出を行うことができる。
【0011】
(3)このスイング分析装置において、前記スイングの動作は、バックスイング、トップ、およびダウンスイングの少なくとも1つの動作を含むようにしてもよい。
【0012】
(4)このスイング分析装置において、前記スイングデータ判定部が、1つの前記スイング候補データにおいて、前記インパクトのタイミングが1つであることを前記判定条件の1つとしているようにしてもよい。
【0013】
通常のスイング動作では、スイングの開始から終了までにインパクトが1つであると考えられる。従って、スイング候補データの期間にインパクトのタイミングが1つでなければ当該スイング候補データは真のスイングデータではないと判定することができる。
【0014】
(5)このスイング分析装置において、前記スイングデータ判定部が、1つの前記スイング候補データにおいて、前記ダウンスイングの時間が前記バックスイングの時間よりも短いことを前記判定条件の1つとしているようにしてもよい。
【0015】
通常のスイング動作では、ダウンスイングの時間がバックスイングの時間よりも短いと考えられる。従って、スイング候補データにおけるダウンスイングの時間がバックスイングの時間よりも長ければ当該スイング候補データは真のスイングデータではないと判定することができる。
【0016】
(6)このスイング分析装置において、前記スイングデータ判定部が、1つの前記スイング候補データにおいて、前記トップの時間を前記スイング候補データの前記スイングの開始から前記スイングの終了までの時間で割った値が第1閾値よりも小さいことを前記判定条件の1つとしているようにしてもよい。
【0017】
通常のスイング動作では、トップ区間の時間と全時間との比が所定範囲であると考えられる。従って、トップ区間の時間と全時間との比が所定範囲でなければ当該スイング候補データは真のスイングデータではないと判定することができる。
【0018】
(7)このスイング分析装置において、前記第1閾値は15%であるようにしてもよい。
【0019】
(8)このスイング分析装置において、前記モーションセンサーは、前記スイングにより複数軸の回りに発生する角速度を検出する角速度センサーであり、前記動作検出部は、取得した前記検出データを用いて、前記複数軸の各々の軸に発生する前記角速度の大きさの和を計算する角速度計算部を含むようにしてもよい。
【0020】
このように、角速度センサーを用いることで、加速度センサーを用いた場合と比較してスイング動作をより正確に検出するとともに、動きの小さいスイングも検出可能である。
【0021】
さらに、角速度センサーにより複数軸の角速度を検出し、各々の軸回りの角速度の大きさの和(ノルム)に基づいてスイングの各動作を検出するので、スイング動作に連動して動く場所に任意の向きに角速度センサーを取り付けることができ、取り扱いが容易である。
【0022】
(9)このスイング分析装置において、前記動作検出部は、前記角速度の大きさの和を用いて、前記スイングにおけるインパクトのタイミングを検出するようにしてもよい。
【0023】
インパクトの瞬間は角速度の大きさの和(ノルム)の値が急激に変化するので、一連のスイング動作の中でインパクトのタイミングが最も捉えやすい。そこで、インパクトのタイミングを最初に検出することで、より確実にスイングの各動作の検出を行うことができる。
【0024】
(10)このスイング分析装置において、前記動作検出部は、前記角速度の大きさの和を時間で微分する微分計算部をさらに含むようにしてもよい。
【0025】
(11)このスイング分析装置において、前記動作検出部は、前記微分の値で正のピークと負のピークとが連続する部分を検出し、前記正のピークおよび前記負のピークのうち先のピークのタイミングをインパクトのタイミングとして検出するようにしてもよい。
【0026】
通常のスイング動作では、インパクトの際にその衝撃により角速度が急激に変化する。したがって、一連のスイング動作の中で角速度の大きさの和(ノルム)の微分値が極大又は極小となるタイミング(すなわち、角速度の大きさの和の微分値が正のピーク又は負のピークになるタイミング)をインパクトのタイミングとして捉えることができる。なお、スイングに用いられる器具がインパクトにより振動するため、角速度の大きさの和(ノルム)の微分値が極大となるタイミングと極小となるタイミングが対になって生じると考えられるが、そのうちの先のタイミングがインパクトの瞬間と考えられる。
【0027】
(12)このスイング分析装置において、前記動作検出部は、前記インパクトより前で、前記角速度の大きさの和が極小となるタイミングを前記スイングのトップのタイミングとして検出するようにしてもよい。
【0028】
通常のスイング動作では、スイング開始後、トップで一旦動作が止まり、その後、徐々にスイング速度が大きくなってインパクトに至ると考えられる。従って、インパクトのタイミングより前で角速度の大きさの和(ノルム)が極小となるタイミングをスイングのトップのタイミングとして捉えることができる。
【0029】
(13)このスイング分析装置において、前記動作検出部は、前記トップより前で、前記角速度の大きさの和が第2閾値以下となるタイミングを前記スイングの開始のタイミングとして検出するようにしてもよい。
【0030】
通常のスイング動作では、静止した状態からスイング動作を開始し、トップまでにスイング動作が止まることは考えにくい。従って、トップより前で、角速度の大きさの和(ノルム)が第2閾値以下となる最後のタイミングをスイングの開始のタイミングとして捉えることができる。
【0031】
(14)このスイング分析装置において、前記動作検出部は、前記インパクトより後で、前記角速度の大きさの和が極小となるタイミングを前記スイングのフィニッシュのタイミングとして検出するようにしてもよい。
【0032】
通常のスイング動作では、インパクトの後、徐々にスイング速度が小さくなって止まると考えられる。従って、インパクトより後で、角速度の大きさの和(ノルム)が極小となるタイミングをフィニッシュのタイミングとして捉えることができる。
【0033】
(15)このスイング分析装置において、前記動作検出部は、前記インパクトより後で、前記角速度の大きさの和が第3閾値以下となる最初のタイミングを前記スイングのフィニッシュのタイミングとして検出するようにしてもよい。
【0034】
通常のスイング動作では、インパクトの後、徐々にスイング速度が小さくなって止まると考えられる。従って、インパクトより後で、角速度の大きさの和(ノルム)が第3閾値以下となる最初のタイミングをフィニッシュのタイミングとして捉えることができる。
【0035】
(16)このスイング分析装置において、前記動作検出部は、前記スイングの開始のタイミングから前記トップのタイミングまでの間をバックスイングの区間として特定し、前記トップのタイミングから前記インパクトのタイミングまでの間をダウンスイングの区間として特定するようにしてもよい。
【0036】
(17)このスイング分析装置において、前記角速度センサーは、ユーザーの手、グローブ、およびスイング器具の少なくとも1つに取り付け可能であるようにしてもよい。
【0037】
角速度センサーをユーザーの手またはグローブに取り付け可能とすることにより、センサーの取り付けに時間がかからず、容易にスイング解析を行うことができる。また、角速度センサーをスイング器具に取り付け可能とすることにより、ユーザーの手またはグローブにセンサーを取り付けるよりも精密に角速度を検出することができる。
【0038】
(18)このスイング分析装置は、前記動作検出部が検出した前記スイングの動作に基づいて、前記スイングの動作の時間を算出し、算出結果を画面に表示する表示処理部をさらに含むようにしてもよい。
【0039】
このように、スイング動作の各動作の少なくとも1つの時間を表示することで、ユーザーはスイングの詳細な動作を把握することができる。
【0040】
(19)このスイング分析装置において、前記スイングは、ゴルフのスイングであるようにしてもよい。すなわち、ゴルフスイング分析装置であってもよい。
【0041】
(20)本発明は、モーションセンサーからスイングにより発生する物理量の検出データを取得するデータ取得部と、取得した前記検出データを用いて前記スイングの動作の検出を行い、前記スイングの動作が検出されたデータをスイング候補データとして抽出する動作検出部と、前記スイングに関連付けられる判定条件に基づき、当該スイング候補データから真のスイングデータを選択するスイングデータ判定部としてコンピューターを機能させる、スイング分析プログラムである。
【0042】
(21)本発明は、上記のスイング分析プログラムを記録した記録媒体である。
【図面の簡単な説明】
【0043】
【図1】本実施形態のスイング分析装置の構成を示す図。
【図2】モーションセンサーの取り付け位置の一例を示す図。
【図3】スイング分析の全体処理の一例を示すフローチャート図。
【図4】スイング動作の検出処理の一例を示すフローチャート図。
【図5】トップ区間、フィニッシュ区間、スイング開始の閾値テーブルの一例を示す図。
【図6】スイングデータ判定処理の一例を示すフローチャート図。
【図7】スイングデータ判定処理の説明図。
【図8】スイング動作の表示処理の一例を示すフローチャート図。
【図9】スイング動作の表示の一例を示す図。
【図10】実験例におけるモーションセンサーの取り付け位置及び向きの説明図。
【図11】図11(A)はフルスイング時の3軸角速度をグラフ表示した図であり、図11(B)は3軸角速度の大きさの和(ノルム)の計算値をグラフ表示した図であり、図11(C)は3軸角速度の大きさの和(ノルム)の微分の計算値をグラフ表示した図。
【図12】フルスイング時のスイング動作の表示を示す図。
【図13】図13(A)はスイング時の3軸角速度をグラフ表示した図であり、図13(B)は3軸角速度の大きさの和(ノルム)の計算値をグラフ表示した図であり、図13(C)は3軸角速度の大きさの和(ノルム)の微分の計算値をグラフ表示した図。
【図14】スイング時のスイング動作の表示を示す図。
【図15】変形例1のスイングデータ判定処理を示すフローチャート図。
【図16】変形例1のスイングデータ判定処理の説明図。
【図17】変形例2のスイング動作の検出処理を示すフローチャート図。
【図18】変形例2のスイングデータ判定処理を示すフローチャート図。
【発明を実施するための形態】
【0044】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【0045】
以下では、ゴルフスイングの分析を行うスイング分析装置を例に挙げて説明するが、本発明のスイング分析装置は、テニスラケットや野球のバットなどスイングに用いられる様々な器具のスイング分析に適用することができる。
【0046】
1.スイング分析装置の構成
図1は、本実施形態のスイング分析装置の構成を示す図である。本実施形態のスイング分析装置1は、モーションセンサー10、処理部20、操作部30、表示部40、ROM50、RAM60、不揮発性メモリー70、記録媒体80を含んで構成されている。
【0047】
モーションセンサー10は、スイングにより発生する物理量を検出し、検出データを出力する。なお、モーションセンサー10は、1つの素子で複数軸の物理量を検出可能な多軸センサーであっても良いし、1つの素子で1軸の物理量を検出可能な1軸センサーを複数個実装したセンサーであっても良い。モーションセンサー10としては、角速度センサーや加速度センサーなどを適用することができる。特に、本実施形態のモーションセンサー10は角速度センサーであり、複数軸の回りの角速度を検出し、各軸回りの角速度の検出データを出力する。
【0048】
操作部30は、ユーザーからの操作データを取得し、処理部20に送る処理を行う。操作部30は、例えば、タッチパネル型ディスプレイ、ボタン、キー、マイクなどである。
【0049】
表示部40は、処理部20の処理結果を文字やグラフ、その他の画像として表示するものである。表示部40は、例えば、CRT、LCD、タッチパネル型ディスプレイ、HMD(ヘッドマウントディスプレイ)などである。なお、1つのタッチパネル型ディスプレイで操作部30と表示部40の機能を実現するようにしてもよい。
【0050】
ROM50は、処理部20が各種の計算処理や制御処理を行うための基本プログラムや基本プログラムで用いるデータ等を記憶している。
【0051】
RAM60は、処理部20の作業領域として用いられ、ROM50から読み出されたプログラムやデータ、操作部30から入力されたデータ、処理部20が各種プログラムに従って実行した演算結果等を一時的に記憶する記憶部である。
【0052】
不揮発性メモリー70は、処理部20の処理により生成されたデータのうち、長期的な保存が必要なデータを記録する記録部である。
【0053】
記録媒体80は、各種のアプリケーション機能を実現するためのアプリケーションプログラムやデータを記憶しており、例えば、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、メモリー(ROM、フラッシュメモリーなど)により実現することができる。
【0054】
処理部20は、ROM50に記憶されている基本プログラムや記録媒体80に記憶されているアプリケーションプログラムに従って、各種の処理(モーションセンサー10の検出データの取得処理、各種の計算処理、各種の制御処理等を行う。処理部20は、マイクロプロセッサーなどで実現することができる。
【0055】
特に、本実施形態では、処理部20は、以下に説明するデータ取得部22、動作検出部24、スイングデータ判定部26、表示処理部28を含み、ユーザーによるスイング動作の各動作を分析する。本実施形態では、処理部20が記録媒体80に記憶されているスイング分析プログラムを実行することで、データ取得部22、動作検出部24、スイングデータ判定部26、表示処理部28として機能する。すなわち、記録媒体80には、コンピューターを上記の各部として機能させるためのスイング分析プログラムが記憶されている。あるいは、スイング分析装置1に通信部を追加し、通信部を介して有線又は無線の通信ネットワークを介してサーバーからスイング分析プログラムを受信し、受信したスイング分析プログラムをRAM60や記録媒体80に記憶して当該スイング分析プログラムを実行するようにしてもよい。ただし、データ取得部22、動作検出部24、スイングデータ判定部26、表示処理部28の少なくとも一部をハードウェア(専用回路)で実現してもよい。
【0056】
データ取得部22は、ユーザーのスイング動作に対するモーションセンサー10の一連の検出データを連続して取得する処理を行う。取得したデータは、例えばRAM60に記憶される。
【0057】
動作検出部24は、データ取得部20が取得した検出データを用いてスイングの動作(例えば、バックスイング、トップ、およびダウンスイングの少なくとも1つの動作を含むスイングの動作)の検出を行い、スイングの動作が検出されたデータをスイング候補データとして抽出する処理を行う。特に、本実施形態の動作検出部24は、角速度計算部240、微分計算部242、インパクト検出部244を含む。ただし、本実施形態の動作検出部24は、これらの一部又は全部の構成(要素)を省略したり、新たな構成(要素)を追加した構成としてもよい。
【0058】
角速度計算部240は、データ取得部22がモーションセンサー10から取得した検出データに基づいて、複数軸の回りの角速度の大きさの和(ノルム)を計算する処理を行う。なお、以下では各軸で生じた角速度の大きさの和のことを「ノルム」と表現する。
【0059】
微分計算部242は、角速度計算部240が計算した角速度のノルムを時間で微分する処理を行う。
【0060】
インパクト検出部244は、データ取得部22が取得した検出データを用いて、スイングにおけるインパクトのタイミングを検出する処理を行う。例えば、インパクト検出部244は、角速度計算部240が検出データに基づいて計算した角速度のノルムを用いて、スイングにおけるインパクトのタイミングを検出する処理を行う。インパクト検出部244は、微分計算部242が計算した角速度のノルムの微分の値で正のピーク(極大点)と負のピーク(極小点)とが連続する部分(所定時間内にこれらのピークを含む部分)を検出し、当該正のピークおよび当該負のピークのうち先のピークのタイミングをインパクトのタイミングとして検出するようにしてもよい。特に、インパクト検出部244は、微分計算部242が計算した角速度のノルムの微分の値が最大となるタイミングと最小となるタイミングのうち、先のタイミングを1つのインパクト(最大インパクト)のタイミングとして検出するようにしてもよい。あるいは、インパクト検出部244は、角速度のノルムが最大となるタイミングを1つのインパクト(最大インパクト)のタイミングとして検出するようにしてもよい。
【0061】
動作検出部24は、インパクト検出部244が検出したインパクト(最大インパクト)のタイミングを基準にスイング候補データのスイングの動作を検出するようにしてもよい。
【0062】
なお、動作検出部24は、スイング候補データにおいて、インパクト検出部244が検出したインパクト(最大インパクト)より前で、角速度計算部240が計算した角速度のノルムが極小となるタイミングをスイングのトップのタイミングとして検出するようにしてもよい。
【0063】
また、動作検出部24は、スイング候補データにおいて、インパクト(最大インパクト)より前で角速度のノルムが所与の閾値以下の連続した区間をトップ区間(トップでの溜めの区間)として特定するようにしてもよい。
【0064】
また、動作検出部24は、スイング候補データにおいて、トップより前で、角速度のノルムが第2閾値以下となるタイミングをスイングの開始のタイミングとして検出するようにしてもよい。
【0065】
さらに、動作検出部24は、スイングの開始のタイミングからトップのタイミングまでの間をバックスイングの区間として特定し、トップのタイミングからインパクト(最大インパクト)のタイミングまでの間をダウンスイングの区間として特定するようにしてもよい。
【0066】
また、動作検出部24は、スイング候補データにおいて、インパクト(最大インパクト)より後で、角速度のノルムが極小となるタイミングをスイングの終了(フィニッシュ)のタイミングとして検出するようにしてもよい。あるいは、動作検出部24は、インパクト(最大インパクト)より後で、角速度のノルムが第3閾値以下となる最初のタイミングをスイングの終了(フィニッシュ)のタイミングとして検出するようにしてもよい。
【0067】
また、動作検出部24は、スイング候補データにおいて、インパクト(最大インパクト)のタイミングより後で且つインパクト(最大インパクト)のタイミングに接近し、角速度のノルムが第4閾値以下となる連続した区間をフィニッシュ区間として特定するようにしてもよい。
【0068】
スイングデータ判定部26は、スイングに関連付けられる判定条件に基づき、スイング候補データから真のスイングデータを選択する処理を行う。
【0069】
スイングデータ判定部26は、1つのスイング候補データにおいて、インパクトのタイミングが1つである(最大インパクトのみである)ことを判定条件の1つとしてもよい。
【0070】
また、スイングデータ判定部26は、1つのスイング候補データにおいて、ダウンスイングの時間がバックスイングの時間よりも短いことを判定条件の1つとしてもよい。
【0071】
また、スイングデータ判定部26は、1つのスイング候補データにおいて、トップの時間を当該スイング候補データのスイングの開始からスイングの終了までの時間で割った値が第1閾値よりも小さいことを判定条件の1つとしてもよい。
【0072】
表示処理部28は、動作検出部24が検出したユーザーのスイングの各動作に基づいて、当該スイングの各動作の時間を算出して、算出結果を画面(表示部40)に表示する処理を行う。
【0073】
なお、本実施形態の処理部20は、これらの一部の構成(要素)を省略したり、新たな構成(要素)を追加した構成としてもよい。
【0074】
この処理部20、操作部30、表示部40、ROM50、RAM60、不揮発性メモリー70、記録媒体80の全部又は一部の機能は、パーソナルコンピューター(PC)、あるいはスマートフォンなどの携帯機器などで実現することができる。
【0075】
このスイング分析装置1は、モーションセンサー10と処理部20を物理的に分離した分離型として構成し、モーションセンサー10と処理部20のデータ通信を無線又は有線で行うようにしてもよい。あるいは、スイング分析装置1は、モーションセンサー10と処理部20を1つの筐体の中に設けた一体型として構成してもよい。
【0076】
スイング分析装置1を分離型で構成する場合には、モーションセンサー10を、スイング動作に応じて発生する角速度を検出可能な任意の位置に取り付ければよい。例えば、モーションセンサー10は、図2(A)に示すようにゴルフクラブ等のスイング器具に取り付けられる。ただし、インパクト時の衝撃の影響を受けないように、図示のようにシャフトに取り付けるのが好ましい。それ以外にも、図2(B)に示すようにユーザーの手やグローブなどに取り付けられてもよいし、図2(C)に示すように腕時計などのアクセサリーに取り付けられてもよい。
【0077】
また、スイング分析装置1を一体型で構成する場合には、スイング分析装置1自体をゴルフクラブ等のスイング器具、ユーザーの手やグローブ、アクセサリーなどに取り付けてもよい。
【0078】
2.スイング分析装置の処理
2−1.スイング分析の全体処理
図3は、スイング分析装置1の処理部20によるスイング分析の全体処理の一例を示すフローチャート図である。
【0079】
図3に示すように、本実施形態の処理部20は、まず、データ取得部22として機能し、モーションセンサー10から検出データを取得する(S10、データ取得ステップ)。データ取得部22がモーションセンサー10からデータを取得する期間(データ取得期間)は、何らかの方法で設定する。例えば、ユーザーあるいは補助者が、スイング開始前に操作部30を操作することでデータ取得期間の開始タイミングを指示し、スイング終了後に操作部30を操作することでデータ取得期間の終了タイミングを指示するようにしてもよい。また、例えば、ユーザーあるいは補助者が、スイング開始前に操作部30を操作することでデータ取得期間の開始タイミングを指示し、所定時間経過後に自動的にデータ取得期間を終了するようにしてもよい。
【0080】
次に、処理部20は、動作検出部24として機能し、ステップS10で取得したすべてのデータをリズム検出の対象範囲に設定し(S12)、リズム検出の対象範囲に設定されたデータ(すなわち取得した全データ)に対してリズム検出を行う(S14、リズム検出ステップ)。なお、リズムとは、スイングの開始からスイングの終了までの一連の動作のことを言い、例えば、ゴルフスイングの場合、スイングの開始から、バックスイング、トップ、ダウンスイング、インパクト、フォロースルー、スイングの終了までの一連の動作に相当する。
【0081】
ステップS14でリズム検出がされなかった場合(S16のN)は、取得したデータにスイング動作に対応するデータ(スイングデータ)が含まれていなかった判断して処理を終了する。この場合、取得したデータにスイングデータが含まれなかったことを表示部40に表示するようにしてもよい。
【0082】
一方、ステップS14でリズム検出がされた場合(S16のY)、処理部20は、スイングデータ判定部26として機能し、ステップS14でリズム検出されたデータ(スイング候補データ)がユーザーのスイング動作に対応するスイングデータか否かを判定する(S18、スイングデータ判定ステップ)。
【0083】
ステップS18でスイング候補データがスイングデータであると判定された場合(S20のY)、処理部20は、表示処理部28として機能し、スイングデータのリズムを表示部40に表示し(S22、リズム表示ステップ)、処理を終了する。
【0084】
一方、ステップS18でスイング候補データがスイングデータでないと判定された場合(S20のN)は、処理部20は、リズム検出の対象範囲を設定し直して、再度、ステップS14以降の処理を行う。
【0085】
2−2.リズム検出処理
図4は、処理部20(動作検出部24)によるリズム検出処理の一例を示すフローチャート図である。
【0086】
図4に示すように、処理部20(動作検出部24)は、1回目のリズム検出処理において(S100のY)、まず、角速度計算部240として機能し、リズム検出の対象範囲に設定されたデータ(以下、「リズム検出対象データ」という)に対して、各時刻tでの角速度のノルムn0(t)の値を計算する(S110)。角速度のノルム(角速度の大きさの和)の求め方の一例として「角速度の大きさの2乗の和の平方根」から求める方法がある。例えば、モーションセンサー10が3軸回りの角速度を検出し、リズム検出対象データに対して、各時刻tでの3軸分の検出データをx(t)、y(t)、z(t)とすると、角速度のノルムn0(t)は、次式(1)で計算される。
【0087】
【数1】
【0088】
次に、処理部20(動作検出部24)は、リズム検出対象データに対して、各時刻tでの角速度のノルムn0(t)を所定範囲に正規化したノルムn(t)に変換する(S120)。具体的には、リズム検出対象データにおける角速度のノルムの最大値をmax(n0)とすると、次式(2)により、角速度のノルムn0(t)が0〜100の範囲に正規化したノルムn(t)に変換される。
【0089】
【数2】
【0090】
次に、処理部20(動作検出部24)は、ノルム微分計算部242として機能し、各時刻tでのノルム(正規化後のノルムn(t))の微分の値を計算する(S130)。例えば、リズム検出対象データの取得間隔をΔtとすると、時刻tでの角速度のノルムの微分(差分)dn(t)は次式(3)で計算される。
【0091】
【数3】
【0092】
一方、2回目以降のリズム検出処理(S100のN)では、ステップS110〜S130の処理は行われない。
【0093】
次に、処理部20(動作検出部24)は、インパクト検出部244として機能し、ノルムの微分dn(t)の値が最大となる時刻と最小となる時刻のうち、先の時刻をインパクト(最大インパクト)の時刻T5として設定する(S140)。通常のゴルフスイングでは、インパクトの瞬間にスイング速度が最大になると考えられる。そして、スイング速度に応じて角速度のノルムの値も変化すると考えられるので、一連のスイング動作の中で角速度のノルムの微分値が最大又は最小となるタイミング(すなわち、角速度のノルムの微分値が正の最大値又は負の最小値になるタイミング)をインパクトのタイミングとして捉えることができる。なお、インパクトによりゴルフクラブが振動するため、角速度のノルムの微分値が最大となるタイミングと最小となるタイミングが対になって生じると考えられるが、そのうちの先のタイミングがインパクトの瞬間と考えられる。
【0094】
次に、処理部20(動作検出部24)は、インパクトの時刻T5より前でノルムn(t)の値が0に近づく極小点が存在するか否かを判定し(S150)、存在すれば(S150のY)、当該極小点の時刻をトップの時刻T3として設定する(S152)。通常のゴルフスイングでは、スイング開始後、トップで一旦動作が止まり、その後、徐々にスイング速度が大きくなってインパクトに至ると考えられる。従って、インパクトのタイミングより前で角速度のノルムが0に近づき極小となるタイミングをトップのタイミングとして捉えることができる。
【0095】
一方、インパクトの時刻T5より前でノルムn(t)の値が0に近づく極小点が存在しなければ(S150のN)、処理部20(動作検出部24)は、リズム検出対象データに対するリズム検出に失敗した(リズム検出対象データにはスイング候補データが含まれていない)として処理を終了する。
【0096】
次に、処理部20(動作検出部24)は、インパクトの時刻T5より後でノルムn(t)の値が0に近づく極小点が存在するか否かを判定し(S154)、存在すれば(S154のY)、当該極小点の時刻をフィニッシュの時刻T7として設定する(S156)。通常のゴルフスイングでは、インパクトの後、徐々にスイング速度が小さくなって止まると考えられる。従って、インパクトのタイミングより後で角速度のノルムが0に近づき極小となるタイミングをフィニッシュのタイミングとして捉えることができる。
【0097】
一方、インパクトの時刻T5より後でノルムn(t)の値が0に近づく極小点が存在しなければ(S154のN)、処理部20(動作検出部24)は、リズム検出対象データに対するリズム検出に失敗した(リズム検出対象データにはスイング候補データが含まれていない)として処理を終了する。
【0098】
次に、処理部20(動作検出部24)は、トップの時刻T3の前後でノルムn(t)の値があらかじめ設定された閾値以下の区間が存在するか否かを判定し(S158)、存在すれば(S158のY)、当該区間の最初と最後の時刻をそれぞれトップ区間の開始時刻T2と終了時刻T4として設定する(S160)。通常のゴルフスイングでは、トップで一旦動作が止まるので、トップの前後ではスイング速度が小さいと考えられる。従って、トップのタイミングを含み角速度のノルムが所与の閾値以下の連続した区間をトップ区間として捉えることができる。
【0099】
一方、トップの時刻T3の前後でノルムn(t)の値が閾値以下の区間が存在しなければ(S158のN)、処理部20(動作検出部24)は、リズム検出対象データに対するリズム検出に失敗した(リズム検出対象データにはスイング候補データが含まれていない)として処理を終了する。
【0100】
次に、処理部20(動作検出部24)は、フィニッシュの時刻T7の前後でノルムn(t)の値があらかじめ設定された閾値以下の区間が存在するか否かを判定し(S162)、存在すれば(S162のY)、当該区間の最初と最後の時刻をそれぞれフィニッシュ区間の開始時刻T6と終了時刻T8として設定する(S164)。通常のゴルフスイングでは、インパクトの後、徐々にスイング速度が小さくなって止まると考えられる。従って、フィニッシュのタイミングを含み角速度のノルムが所与の閾値以下の連続した区間をフィニッシュ区間として捉えることができる。
【0101】
一方、フィニッシュの時刻T7の前後でノルムn(t)の値が閾値以下の区間が存在しなければ(S162のN)、処理部20(動作検出部24)は、リズム検出対象データに対するリズム検出に失敗した(リズム検出対象データにはスイング候補データが含まれていない)として処理を終了する。
【0102】
次に、処理部20(動作検出部24)は、トップ区間の開始時刻T2より前でノルムn(t)の値があらかじめ設定された閾値(第2閾値の一例)以下となるか否かを判定し(S166)、閾値以下となれば(S166のY)、当該閾値以下になる最後の時刻をスイング開始の時刻T1として設定する(S168)。なお、トップを特定する極小点より前で、ノルムが0に近づく極小点をスイング開始とみなしても良い。通常のゴルフスイングでは、静止した状態からスイング動作を開始し、トップまでにスイング動作が止まることは考えにくい。従って、トップのタイミングより前で角速度のノルムが閾値以下となる最後のタイミングをスイング動作の開始のタイミングとして捉えることができる。
【0103】
一方、トップ区間の開始時刻T2より前でノルムn(t)の値が閾値以下とならなければ(S166のN)、処理部20(動作検出部24)は、リズム検出対象データに対するリズム検出に失敗した(リズム検出対象データにはスイング候補データが含まれていない)として処理を終了する。
【0104】
最後に、処理部20(動作検出部24)は、リズム検出されたT1〜T8のデータをスイング候補データとし(S170)、処理を終了する。
【0105】
トップ区間、フィニッシュ区間、スイング開始の各閾値は、例えば、図5に示すようなテーブルデータとしてROM50やRAM60などに記憶される。これらの閾値は、固定値でもよいし、可変値(例えば、ユーザー毎に個別に設定)でもよい。図5のように、各動作に対応して各閾値を設けておけば、極小点が複数発生した場合においても、スイングに対応した極小点の抽出が容易となる。
【0106】
なお、図4のフローチャートの各ステップを適宜入れ替えてもよい。
【0107】
また、図4のフローチャートにおいて、各時刻tでのノルム(正規化後のノルム)n(t)の微分dn(t)の値を計算する工程(S130)は省略することが可能である。特にドライバーのスイングのように角速度のノルムの変化が大きいものについては微分工程(S130)は省略することができる。S130を省略する場合は、S120で求めた角速度のノルムの最大値をインパクト(最大インパクト)のタイミングとして検出すれば良い。
【0108】
また、図4のフローチャートのステップS154、S156において、インパクトのタイミングより後で角速度のノルムn(t)の値が0に近づく極小点をフィニッシュのタイミングとしているが、例えば、インパクトより後で、角速度のノルムn(t)の値があらかじめ設定された閾値(第3閾値の一例)以下となる最初のタイミングをスイングのフィニッシュのタイミングとして設定してもよい。
【0109】
また、図4のフローチャートでは、スイングの開始から、バックスイング、トップ、ダウンスイング、インパクト、フォロースルー、スイングの終了までのすべての動作を検出しているが、例えば、インパクトとダウンスイングだけの動作を検出するなどスイング動作の少なくとも1つの動作を検出するようにしてもよい。
【0110】
2−3.スイングデータ判定処理
図6は、処理部20(スイングデータ判定部26)によるスイングデータ判定処理の一例を示すフローチャート図である。
【0111】
図6に示すように、処理部20(スイングデータ判定部26)は、まず、スイング候補データにおいて、スイング開始の時刻T1からフィニッシュ区間の終了時刻T8までのインパクトの数を算出する(S200)。ここでいうインパクトとは、ゴルフクラブがボールに当たるインパクト(最大インパクト)だけでなく、ゴルフクラブが地面や障害物などに当たるインパクトも含まれる。例えば、処理部20(スイングデータ判定部26)は、角速度のノルムの微分(差分)dn(t)があらかじめ設定した閾値を横切って超える回数をインパクトの数として算出する。
【0112】
スイング開始の時刻T1からフィニッシュ区間の終了時刻T8までに含まれるインパクトが1つのみであれば(S210のY)、処理部20(スイングデータ判定部26)は、バックスイングの時間Ta=トップの時刻T3−スイング開始の時刻T1を計算し(S220)、さらに、ダウンスイングの時間Tc=インパクトの時刻T5−トップの時刻T3を計算する(S230)。
【0113】
一方、スイング開始の時刻T1からフィニッシュ区間の終了時刻T8までに含まれるインパクトが2つ以上あれば(S210のN)、処理部20(スイングデータ判定部26)は、当該スイング候補データが真のスイングデータではないと判定し、リズム検出の対象範囲から時刻T8以前のデータを除外した残りのデータを新たなリズム検出の対象範囲に設定する(S290)。通常のスイング動作では、スイングの開始から終了までにインパクトが1つであると考えられるので、スイング候補データの期間にインパクトのタイミングが1つでなければ当該スイング候補データは真のスイングデータではないと判定することができる。
【0114】
そして、バックスイングの時間Taがダウンスイングの時間Tcよりも短ければ(S240のY)、処理部20(スイングデータ判定部26)は、トップ区間の時間Tb=トップ区間の終了時刻T4−トップ区間の開始時刻T2を計算し(S250)、さらに、スイング候補データの全時間T=フィニッシュ区間の終了時刻T8−スイング開始の時刻T1を計算する(S260)。
【0115】
一方、バックスイングの時間Taがダウンスイングの時間Tc以上であれば(S240のN)、処理部20(スイングデータ判定部26)は、当該スイング候補データが真のスイングデータではないと判定し、リズム検出の対象範囲から時刻T8以前のデータを除外した残りのデータを新たなリズム検出の対象範囲に設定する(S290)。通常のスイング動作では、ダウンスイングの時間がバックスイングの時間よりも短いと考えられるので、スイング候補データにおけるダウンスイングの時間Tcがバックスイングの時間Ta以上であれば当該スイング候補データは真のスイングデータではないと判定することができる。
【0116】
最後に、処理部20(スイングデータ判定部26)は、(トップ区間の時間Tb/スイング候補データの全時間T)の値を計算し、Tb/Tの値があらかじめ設定された閾値(第1閾値の一例)以下であれば(S270のY)、当該スイング候補データ(T1〜T8のデータ)を真のスイングデータと決定し(S280)、処理を終了する。
【0117】
一方、Tb/Tの値が閾値以下でなければ(S270のN)、処理部20(スイングデータ判定部26)は、当該スイング候補データが真のスイングデータではないと判定し、リズム検出の対象範囲から時刻T8以前のデータを除外した残りのデータを新たなリズム検出の対象範囲に設定する(S290)。通常のスイング動作では、トップ区間の時間と全時間との比が所定範囲であると考えられるので、スイング候補データにおけるTb/Tの値が閾値以下でなければ当該スイング候補データは真のスイングデータではないと判定することができる。例えば、真のスイングデータであればTb/Tの値が0.15(=15%)を超えることはないと考えられるので、閾値を0.15(=15%)に設定することができる。
【0118】
なお、図6のフローチャートの各ステップを適宜入れ替えてもよい。
【0119】
モーションセンサー10から取得した全データの中にスイング候補データとなる複数のデータパターンが含まれる場合は、スイングデータが検出されるか、あるいはすべてのデータパターンがスイングデータでないと判定されるまで、図4のリズム検出処理と図6のスイングデータ判定処理が繰り返し行われる。例えば、モーションセンサー10から取得した全データの中にスイング候補データとなる3つのデータパターン(時系列順にデータパターン1、データパターン2、データパターン3)が含まれ、最後のデータパターン3がスイングデータであるとする。この場合、図7に示すように、1回目はモーションセンサー10から取得した全データをリズム検出対象データとしてリズム検出処理を行い、例えばデータパターン1がスイング候補データとして検出される。そして、このデータパターン1はスイングデータではないので、1回目のリズム検出対象データからデータパターン1を削除した残りのデータに対して2回目のリズム検出を行う。2回目のリズム検出処理で例えばデータパターン2が検出されると、このデータパターン2もスイングデータではないので、2回目のリズム検出対象データからデータパターン2を削除した残りのデータに対して3回目のリズム検出を行う。3回目のリズム検出処理でデータパターン3が検出され、このデータパターン3がスイングデータと判定される。
【0120】
2−4.リズム表示処理
図8は、処理部20(表示処理部28)によるリズム表示処理の一例を示すフローチャート図である。
【0121】
まず、処理部20(表示処理部28)は、スイングデータに対して、フォロースルーの時間Td=フィニッシュの時刻T7−インパクトの時刻T5を計算する(S300)。
【0122】
次に、処理部20(表示処理部28)は、フィニッシュ区間の時間Te=フィニッシュ区間の終了時刻T8−フィニッシュ区間の開始時刻T6を計算する(S310)。
【0123】
最後に、処理部20(表示処理部28)は、図6のステップS220、S250、S230、図8のステップS300、S310でそれぞれ計算した各フェーズの時間(バックスイングの時間Ta、トップ区間の時間Tb、ダウンスイングの時間Tc、フォロースルーの時間Td、フィニッシュ区間の時間Te)をグラフ化して表示部40に表示する(S320)。
【0124】
図9は、スイング動作のリズム表示の一例を示す図である。図9の表示例では、スイング動作における各フェーズ(バックスイング、トップ区間、ダウンスイング、フォロースルー、フィニッシュ区間)を、それぞれの時間Ta,Tb,Tc,Td,Teに比例した長さで固有の色あるいは模様を有する矩形で時系列に沿って表示している。また、各フェーズの矩形表示の上側にそれぞれの時間Ta,Tb,Tc,Td,Teを表示している。このようなリズム表示により、ユーザーは、例えば、トップ区間Tbが短いからトップでの溜めが足りない、ダウンスイングの時間Tcが長いからインパクトが弱いというような自己のスイング動作のリズムに関する詳細な情報を得ることができる。また、スイングのリズムを全て表示させるだけでなく、スイングの各動作ごとに時間を表示しても良い。
【0125】
3.実験例
図10〜図14は、本実施形態のスイング分析装置1を用いたスイング動作のリズム分析の実験例に関する図である。
【0126】
図10に示すように、本実験例では、ゴルフクラブ(ドライバー)のシャフトのグリップ近くに3軸の角速度を検出するモーションセンサー10を取り付け、被験者が1回だけスイングを行ってゴルフボールを打った時のリズムを分析した。モーションセンサー10は、x軸がシャフトに平行な方向、y軸がスイングの方向、z軸がスイング面と垂直な方向になるように取り付けた。ただし、本実施形態のスイング分析装置1は、角速度のノルムに基づいて各フェーズの時間を計算するので、モーションセンサー10の取り付け角は任意である。また、モーションセンサー10を、不図示のPC(処理部20、操作部30、表示部40、ROM50、RAM60、不揮発性メモリー70、記録媒体80などを備えている)とケーブルで接続し、PC側でモーションセンサー10が検出した一連の3軸角速度データをRAM60に取得し、取得したデータに含まれるスイングデータのリズムを分析して表示させた。
【0127】
図11(A)は、被験者がドライバーを持ってすぐにフルスイングした時のデータ取得期間(5秒間)に取得されたデータから3軸の角速度x(t),y(t),z(t)をグラフ表示した図である。図11(A)において、横軸は時間(msec)、縦軸は角速度(dps)である。
【0128】
図11(B)は、図11(A)の3軸角速度x(t),y(t),z(t)から3軸角速度のノルムn0(t)を式(1)に従って計算した後に式(2)に従って0〜100にスケール変換(正規化)したノルムn(t)をグラフ表示した図である。図11(B)において、横軸は時間(msec)、縦軸は角速度のノルム(0〜100にスケール変換)である。
【0129】
図11(C)は、図11(B)の3軸角速度のノルムn(t)からその微分dn(t)を式(3)に従って計算し、グラフ表示した図である。図11(C)において、横軸は時間(msec)、縦軸は3軸角速度のノルムの微分値である。なお、図11(A)及び図11(B)では横軸を0〜5秒で表示しているが、図11(C)では、インパクトの前後の微分値の変化がわかるように、横軸を2秒〜2.8秒で表示している。
【0130】
図11(B)及び図11(C)より、図4に示したリズム検出処理のフローチャートに従ってスイング候補データを抽出し、スイング開始の時刻T1、トップ区間の開始時刻T2、トップの時刻T3、トップ区間の終了時刻T4、インパクトの時刻T5、フィニッシュ区間の開始時刻T6、フィニッシュの時刻T7、フィニッシュ区間の終了時刻T8を計算した。その結果、T1=1000msec,T2=1967msec,T3=2024msec,T4=2087msec,T5=2397msec,T6=3002msec,T7=3075msec,T8=3210msecであった。
【0131】
次に、このスイングデータ候補のT1〜T8の計算値を用いて、図6に示したスイングデータ判定処理のフローチャートに従って、バックスイングの時間Ta、トップ区間の時間Tb、ダウンスイングの時間Tc、全時間Tを計算した。その結果、Ta=T3−T1=1024msec,Tb=T4−T2=120msec,Tc=T5−T3=373msec,T=T8−T1=2210msecであった。
【0132】
このスイング候補データが真のスイングデータであるか否かを判定すると、T1〜T8の間に1つのインパクト(時刻T5のインパクト)のみ存在し、かつ、Ta>Tc、かつ、Tb/T<閾値(例えば15%)を満たすので、スイングデータの条件を満たしている。
【0133】
そこで、次に、図8に示したリズム表示処理に従い、フォロースルーの時間Td及びフィニッシュ区間の時間Teを計算すると、Td=T7−T5=678msec,Te=T8−T6=208msecであり、図12に示すリズム表示が得られた。
【0134】
これに対して、図13(A)は、被験者がドライバーを持ってスイング前にドライバーを動かした後フルスイングした時のデータ取得期間(約25秒間)に取得されたデータから3軸の角速度x(t),y(t),z(t)をグラフ表示した図である。図13(A)において、横軸は時間(msec)、縦軸は角速度(dps)である。
【0135】
図13(B)は、図13(A)の3軸角速度x(t),y(t),z(t)から3軸角速度のノルムn0(t)を式(1)に従って計算した後に式(2)に従って0〜100にスケール変換(正規化)したノルムn(t)をグラフ表示した図である。図13(B)において、横軸は時間(msec)、縦軸は角速度のノルム(0〜100にスケール変換)である。
【0136】
図13(C)は、図13(B)の3軸角速度のノルムn(t)からその微分dn(t)を式(3)に従って計算し、グラフ表示した図である。図13(C)において、横軸は時間(msec)、縦軸は3軸角速度のノルムの微分値である。
【0137】
図13(B)及び図13(C)より、図4に示したリズム検出処理のフローチャートに従ってスイング候補データを抽出し、スイング開始の時刻T1、トップ区間の開始時刻T2、トップの時刻T3、トップ区間の終了時刻T4、インパクトの時刻T5、フィニッシュ区間の開始時刻T6、フィニッシュの時刻T7、フィニッシュ区間の終了時刻T8を計算した。その結果、T1=307msec,T2=984msec,T3=998msec,T4=1019msec,T5=1982msec,T6=2092msec,T7=2100msec,T8=2109msecのスイング候補データが抽出された。
【0138】
次に、この1回目のスイングデータ候補のT1〜T8の計算値を用いて、図6に示したスイングデータ判定処理のフローチャートに従って、バックスイングの時間Ta、トップ区間の時間Tb、ダウンスイングの時間Tc、全時間Tを計算した。その結果、Ta=T3−T1=691msec,Tb=T4−T2=35msec,Tc=T5−T3=984msec,T=1802msecであった。
【0139】
この1回目のスイング候補データが真のスイングデータであるか否かを判定すると、T1〜T8の間に2つのインパクト(時刻Txのインパクトと時刻T5のインパクト)が存在し、また、Ta<Tcなので、スイングデータの条件を満たしていない。
【0140】
従って、1回目のスイング候補データは、真のスイングデータではないと判断し、全データから時刻T8以前のデータを削除した残りのデータに対して、2回目のリズム検出処理を行ってスイング候補データを抽出し、T1〜T8を計算した。その結果、T1=18324msec,T2=18976msec,T3=18997msec,T4=19018msec,T5=19233msec,T6=19746msec,T7=19891msec,T8=20902msecのスイング候補データが抽出された。
【0141】
次に、この2回目のスイングデータ候補のT1〜T8の計算値を用いて、Ta,Tb,Tc,Tを計算した結果、Ta=673msec,Tb=42msec,Tc=236msec,T=2578msecであった。
【0142】
そして、2回目のスイング候補データが真のスイングデータであるか否かを判定すると、T1〜T8の間に1つのインパクト(時刻T5のインパクト)のみ存在し、かつ、Ta>Tc、かつ、Tb/T<閾値(例えば15%)を満たすので、スイングデータの条件を満たしている。
【0143】
そこで、次に、図8に示したリズム表示処理に従い、フォロースルーの時間Td及びフィニッシュ区間の時間Teを計算すると、Td=658msec,Te=1156msecであり、図14に示すリズム表示が得られた。このように、ユーザーがスイング動作の前に自由な動きをしたとしてもスイングデータが正しく選別され、スイング動作の詳細なリズムのデータが得られた。
【0144】
なお、図11、図13の例において、前述したように、各時刻tでのノルム(正規化後のノルム)n(t)の微分dn(t)の値を計算する工程(S130)は省略することが可能である。特に図ドライバーのスイングのように角速度のノルムの変化が大きいものについては微分工程(S130)は省略することができる。微分工程を省略する場合は、S120で求めた角速度のノルム(図11(b)、図12(b))の最大値を最大インパクトのタイミングとして検出すれば良い。
【0145】
以上に説明したように、本実施形態によれば、モーションセンサー10から取得した検出データからスイング候補データを抽出し、スイング候補データがスイングデータであるか否かを判定するので、ユーザーがスイング動作の開始や終了のタイミングを指示する必要がない。従って、ユーザーは、スイング前後に自由な動作を行うことができ、自然な動きの中でスイングを分析することができる。
【0146】
また、本実施形態によれば、検出したリズムの妥当性を評価することによりスイング候補データがスイングデータであるか否かを判定するので、波形のパターンマッチングを行う場合と比較して、より小さい計算負荷でスイングデータを抽出することができる。
【0147】
また、本実施形態によれば、モーションセンサー10として角速度センサーを用いることで、加速度センサーを用いた場合と比較してスイング動作をより正確に検出するとともに、動きの小さいスイングも検出可能である。従って、例えば、トップとフィニッシュでゴルフクラブをどの程度緩やかに留めているかなど、より詳細な分析をすることができる。また、インパクトを基準にして、スイングの開始から、バックスイング、トップ、ダウンスイング、フォロースルー、スイングの終了までの各動作の少なくとも1つを検出することが可能となる。
【0148】
また、本実施形態によれば、角速度のノルムに基づいてスイング動作を検出するので、スイング動作に連動して動く場所に任意の向きにモーションセンサー10を取り付けることができ、取り扱いが容易である。
【0149】
また、本実施形態によれば、角速度のノルムの値が急激に変化するため一連のスイング動作の中で最も捉えやすいインパクトのタイミングを最初に検出し、インパクトのタイミングに基づいてスイング動作の各フェーズを特定することで、より確実にスイング動作の検出を行うことができる。
【0150】
また、本実施形態によれば、スイング動作の各フェーズの時間を表示するので、ユーザーはスイング動作の詳細なリズムを容易に把握することができる。
【0151】
4,変形例
本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、以下のような変形例が考えられる。
【0152】
[変形例1]
図15は、変形例1におけるスイングデータ判定処理を示すフローチャート図である。図15において、図6と同じ処理には同じ符号を付している。図15に示すように、変形例1におけるスイングデータ判定処理では、スイング候補データがスイングデータではないと判定した場合(S210のN、S240のN又はS270のN)、リズム検出の対象範囲から当該スイング候補データ(時刻T1〜T8のデータ)を除外した残りのデータを新たなリズム検出の対象範囲に設定する(S292)。図15におけるその他の処理については図6と同じである。
【0153】
例えば、モーションセンサー10から取得した全データの中にスイング候補データとなる3つのデータパターン(時系列順にデータパターン1、データパターン2、データパターン3)が含まれ、2番目のデータパターン2がスイングデータであるとする。この場合、図16に示すように、1回目はモーションセンサー10から取得した全データをリズム検出対象データとしてリズム検出処理を行い、例えばデータパターン1がスイング候補データとして検出される。そして、このデータパターン1は真のスイングデータではないので、1回目のリズム検出対象データからデータパターン1を削除した残りのデータに対して2回目のリズム検出を行う。2回目のリズム検出処理で例えばデータパターン3が検出されると、このデータパターン3も真のスイングデータではないので、2回目のリズム検出対象データからデータパターン3を削除した残りのデータに対して3回目のリズム検出を行う。3回目のリズム検出処理でデータパターン2が検出され、このデータパターン2が真のスイングデータと判定される。
【0154】
このように、本変形例によれば、ユーザーがスイング動作の前だけでなく、スイング動作の後に大きなインパクトを生じさせるような動きをしても、確実にスイング動作を検出することができる。
【0155】
[変形例2]
図17は、変形例1におけるリズム検出処理を示すフローチャート図である。また、図18は、変形例1におけるスイングデータ判定処理を示すフローチャート図である。図17に示すように、変形例1におけるリズム検出処理では、1回目のリズム検出処理において(S100のY)、ノルムの微分dn(t)の値があらかじめ設定された閾値以上となる時刻tとdn(t)の値との対応関係を示すテーブルを作成する(S132)。そして、ステップS132で作成した対応テーブル中のdn(t)が最大の時刻tをインパクト(最大インパクト)の時刻T5として設定する(S142)。図17におけるその他の処理については図4と同じである。
【0156】
また、図18に示すように、変形例1におけるスイングデータ判定処理では、スイング候補データが真のスイングデータではないと判定した場合(S210のN、S240のN又はS270のN)、対応テーブルから時刻T5と時刻T5におけるノルムの微分dn(T5)の値との対応関係を削除する(S292)。この新たな対応テーブルを用いて、2回目以降のリズム検出処理が行われる。
【0157】
このように、本変形例によれば、2回目以降のリズム検出処理において、インパクトの検出処理を最初からやり直す手間を省くことができるので、計算量及び計算時間を減らすことができる。
【0158】
[その他の変形例]
例えば、ユーザーがデータ取得期間において複数回のスイング動作を連続して行った場合、図4及び図6のフローチャートに従って複数のインパクトを含むデータからその前後の情報を解析し、複数回のスイング動作にそれぞれ対応する複数のスイングデータを選別するようにしてもよい。例えば、選別された複数のスイングデータに対するリズムを時系列に並べて表示するようにしてもよい。このようにすれば、複数回連続でスイングした際のスイング動作の抽出が可能になり、ユーザーは、スイング動作の安定性を明確に評価することができる。
【0159】
また、ユーザー毎に、過去に検出したスイング動作のリズムの情報を記憶し、その平均的な情報を用いて、スイングデータ判定処理で用いる種々の閾値を設定するようにしてもよい。このようにすれば、ユーザーの個性を反映してスイング動作の検出精度を向上させることができる。
【0160】
本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【符号の説明】
【0161】
1 スイング分析装置、10 モーションセンサー、20 処理部、22 データ取得部、24 動作検出部、26 スイングデータ判定部、28 表示処理部、30 操作部、40 表示部、50 ROM、60 RAM、70 不揮発性メモリー、80 記録媒体、240 角速度計算部、242 微分計算部、244 インパクト検出部
【特許請求の範囲】
【請求項1】
スイングにより発生する物理量を検出するモーションセンサーと、
前記モーションセンサーの検出データを取得するデータ取得部と、
取得した前記検出データを用いて前記スイングの動作の検出を行い、前記スイングの動作が検出されたデータをスイング候補データとして抽出する動作検出部と、
前記スイングに関連付けられる判定条件に基づき、前記スイング候補データから真のスイングデータを選択するスイングデータ判定部と、を含む、スイング分析装置。
【請求項2】
請求項1において、
前記動作検出部は、
取得した前記検出データを用いて前記スイングのインパクトのタイミングを検出するインパクト検出部を含み、前記インパクトのタイミングを基準に前記スイング候補データの前記スイングの動作を検出する、スイング分析装置。
【請求項3】
請求項1または2において、
前記スイングの動作は、バックスイング、トップ、およびダウンスイングの少なくとも1つの動作を含む、スイング分析装置。
【請求項4】
請求項2または3において、
前記スイングデータ判定部が、
1つの前記スイング候補データにおいて、前記インパクトのタイミングが1つであることを前記判定条件の1つとしている、スイング分析装置。
【請求項5】
請求項3において、
前記スイングデータ判定部が、
1つの前記スイング候補データにおいて、前記ダウンスイングの時間が前記バックスイングの時間よりも短いことを前記判定条件の1つとしている、スイング分析装置。
【請求項6】
請求項3乃至5のいずれか一項において、
前記スイングデータ判定部が、
1つの前記スイング候補データにおいて、前記トップの時間を前記スイング候補データの前記スイングの開始から前記スイングの終了までの時間で割った値が第1閾値よりも小さいことを前記判定条件の1つとしている、スイング分析装置。
【請求項7】
請求項6において、
前記第1閾値は15%である、スイング分析装置。
【請求項8】
請求項1乃至7のいずれか一項において、
前記モーションセンサーは、前記スイングにより複数軸の回りに発生する角速度を検出する角速度センサーであり、
前記動作検出部は、
取得した前記検出データを用いて、前記複数軸の各々の軸に発生する前記角速度の大きさの和を計算する角速度計算部を含む、スイング分析装置。
【請求項9】
請求項8において、
前記動作検出部は、
前記角速度の大きさの和を用いて、前記スイングにおけるインパクトのタイミングを検出する、スイング分析装置。
【請求項10】
請求項8または9において、
前記動作検出部は、
前記角速度の大きさの和を時間で微分する微分計算部をさらに含む、スイング分析装置。
【請求項11】
請求項10において、
前記動作検出部は、
前記微分の値で正のピークと負のピークとが連続する部分を検出し、前記正のピークおよび前記負のピークのうち先のピークのタイミングをインパクトのタイミングとして検出する、スイング分析装置。
【請求項12】
請求項9乃至11のいずれか一項において、
前記動作検出部は、
前記インパクトより前で、前記角速度の大きさの和が極小となるタイミングを前記スイングのトップのタイミングとして検出する、スイング分析装置。
【請求項13】
請求項12において、
前記動作検出部は、
前記トップより前で、前記角速度の大きさの和が第2閾値以下となるタイミングを前記スイングの開始のタイミングとして検出する、スイング分析装置。
【請求項14】
請求項9乃至13のいずれか一項において、
前記動作検出部は、
前記インパクトより後で、前記角速度の大きさの和が極小となるタイミングを前記スイングのフィニッシュのタイミングとして検出する、スイング分析装置。
【請求項15】
請求項9乃至13のいずれか一項において、
前記動作検出部は、
前記インパクトより後で、前記角速度の大きさの和が第3閾値以下となる最初のタイミングを前記スイングのフィニッシュのタイミングとして検出する、スイング分析装置。
【請求項16】
請求項13において、
前記動作検出部は、
前記スイングの開始のタイミングから前記トップのタイミングまでの間をバックスイングの区間として特定し、
前記トップのタイミングから前記インパクトのタイミングまでの間をダウンスイングの区間として特定する、スイング分析装置。
【請求項17】
請求項8乃至16のいずれか一項において、
前記角速度センサーは、ユーザーの手、グローブ、およびスイング器具の少なくとも1つに取り付け可能である、スイング分析装置。
【請求項18】
請求項1乃至17のいずれか一項において、
前記動作検出部が検出した前記スイングの動作に基づいて、前記スイングの動作の時間を算出し、算出結果を画面に表示する表示処理部をさらに含む、スイング分析装置。
【請求項19】
請求項1乃至18のいずれか一項において、
前記スイングは、ゴルフのスイングである、スイング分析装置。
【請求項20】
モーションセンサーからスイングにより発生する物理量の検出データを取得するデータ取得部と、
取得した前記検出データを用いて前記スイングの動作の検出を行い、前記スイングの動作が検出されたデータをスイング候補データとして抽出する動作検出部と、
前記スイングに関連付けられる判定条件に基づき、当該スイング候補データから真のスイングデータを選択するスイングデータ判定部としてコンピューターを機能させる、スイング分析プログラム。
【請求項21】
請求項20に記載のスイング分析プログラムを記録した記録媒体。
【請求項1】
スイングにより発生する物理量を検出するモーションセンサーと、
前記モーションセンサーの検出データを取得するデータ取得部と、
取得した前記検出データを用いて前記スイングの動作の検出を行い、前記スイングの動作が検出されたデータをスイング候補データとして抽出する動作検出部と、
前記スイングに関連付けられる判定条件に基づき、前記スイング候補データから真のスイングデータを選択するスイングデータ判定部と、を含む、スイング分析装置。
【請求項2】
請求項1において、
前記動作検出部は、
取得した前記検出データを用いて前記スイングのインパクトのタイミングを検出するインパクト検出部を含み、前記インパクトのタイミングを基準に前記スイング候補データの前記スイングの動作を検出する、スイング分析装置。
【請求項3】
請求項1または2において、
前記スイングの動作は、バックスイング、トップ、およびダウンスイングの少なくとも1つの動作を含む、スイング分析装置。
【請求項4】
請求項2または3において、
前記スイングデータ判定部が、
1つの前記スイング候補データにおいて、前記インパクトのタイミングが1つであることを前記判定条件の1つとしている、スイング分析装置。
【請求項5】
請求項3において、
前記スイングデータ判定部が、
1つの前記スイング候補データにおいて、前記ダウンスイングの時間が前記バックスイングの時間よりも短いことを前記判定条件の1つとしている、スイング分析装置。
【請求項6】
請求項3乃至5のいずれか一項において、
前記スイングデータ判定部が、
1つの前記スイング候補データにおいて、前記トップの時間を前記スイング候補データの前記スイングの開始から前記スイングの終了までの時間で割った値が第1閾値よりも小さいことを前記判定条件の1つとしている、スイング分析装置。
【請求項7】
請求項6において、
前記第1閾値は15%である、スイング分析装置。
【請求項8】
請求項1乃至7のいずれか一項において、
前記モーションセンサーは、前記スイングにより複数軸の回りに発生する角速度を検出する角速度センサーであり、
前記動作検出部は、
取得した前記検出データを用いて、前記複数軸の各々の軸に発生する前記角速度の大きさの和を計算する角速度計算部を含む、スイング分析装置。
【請求項9】
請求項8において、
前記動作検出部は、
前記角速度の大きさの和を用いて、前記スイングにおけるインパクトのタイミングを検出する、スイング分析装置。
【請求項10】
請求項8または9において、
前記動作検出部は、
前記角速度の大きさの和を時間で微分する微分計算部をさらに含む、スイング分析装置。
【請求項11】
請求項10において、
前記動作検出部は、
前記微分の値で正のピークと負のピークとが連続する部分を検出し、前記正のピークおよび前記負のピークのうち先のピークのタイミングをインパクトのタイミングとして検出する、スイング分析装置。
【請求項12】
請求項9乃至11のいずれか一項において、
前記動作検出部は、
前記インパクトより前で、前記角速度の大きさの和が極小となるタイミングを前記スイングのトップのタイミングとして検出する、スイング分析装置。
【請求項13】
請求項12において、
前記動作検出部は、
前記トップより前で、前記角速度の大きさの和が第2閾値以下となるタイミングを前記スイングの開始のタイミングとして検出する、スイング分析装置。
【請求項14】
請求項9乃至13のいずれか一項において、
前記動作検出部は、
前記インパクトより後で、前記角速度の大きさの和が極小となるタイミングを前記スイングのフィニッシュのタイミングとして検出する、スイング分析装置。
【請求項15】
請求項9乃至13のいずれか一項において、
前記動作検出部は、
前記インパクトより後で、前記角速度の大きさの和が第3閾値以下となる最初のタイミングを前記スイングのフィニッシュのタイミングとして検出する、スイング分析装置。
【請求項16】
請求項13において、
前記動作検出部は、
前記スイングの開始のタイミングから前記トップのタイミングまでの間をバックスイングの区間として特定し、
前記トップのタイミングから前記インパクトのタイミングまでの間をダウンスイングの区間として特定する、スイング分析装置。
【請求項17】
請求項8乃至16のいずれか一項において、
前記角速度センサーは、ユーザーの手、グローブ、およびスイング器具の少なくとも1つに取り付け可能である、スイング分析装置。
【請求項18】
請求項1乃至17のいずれか一項において、
前記動作検出部が検出した前記スイングの動作に基づいて、前記スイングの動作の時間を算出し、算出結果を画面に表示する表示処理部をさらに含む、スイング分析装置。
【請求項19】
請求項1乃至18のいずれか一項において、
前記スイングは、ゴルフのスイングである、スイング分析装置。
【請求項20】
モーションセンサーからスイングにより発生する物理量の検出データを取得するデータ取得部と、
取得した前記検出データを用いて前記スイングの動作の検出を行い、前記スイングの動作が検出されたデータをスイング候補データとして抽出する動作検出部と、
前記スイングに関連付けられる判定条件に基づき、当該スイング候補データから真のスイングデータを選択するスイングデータ判定部としてコンピューターを機能させる、スイング分析プログラム。
【請求項21】
請求項20に記載のスイング分析プログラムを記録した記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2012−254205(P2012−254205A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2011−129134(P2011−129134)
【出願日】平成23年6月9日(2011.6.9)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願日】平成23年6月9日(2011.6.9)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
[ Back to top ]