以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の負荷検出装置を示す図である。負荷検出装置1は、第1の算出部1a、第2の算出部1b、判定部1cおよび演算部1dを有する。第1の算出部1a、第2の算出部1b、判定部1cおよび演算部1dは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
負荷検出装置1は、被験者2の身体の部位2aにかかる負荷の有無を検出する装置である。部位2aは、例えば、被験者2の背中や肩など、被験者2の身体の任意の箇所とすることができる。
被験者2は、加速度センサ3を装着する。加速度センサ3は、例えば、3軸加速度センサである。この場合、加速度センサ3は、3軸方向に対する加速度の値を測定する。また、例えば、加速度センサ3は部位2aに装着されてもよいし、あるいは、部位2aの周囲の複数箇所に加速度センサ3が装着されてもよい。負荷検出装置1は、加速度センサ3による測定結果を取得することができる。
また、負荷検出装置1は、モーションキャプチャによる被験者2の身体の測定結果を取得することができる。図1では、撮像デバイス4と演算部1dとを含む光学式のモーションキャプチャシステム5が例示されている。撮像デバイス4は、被験者2を撮像する。演算部1dは、撮像デバイス4による測定値に基づいて、被験者2の身体に関する測定結果を出力する。
例えば、被験者2の部位2aおよびその周辺に複数のマーカが装着され、撮像デバイス4は、これらのマーカを撮像する。なお、複数台の撮像デバイス4によって異なる位置から各マーカが撮像されてもよい。演算部1dは、撮像デバイス4による撮像結果に基づいて、各マーカの3次元空間上の位置を測定する。
なお、演算部1dの機能は、負荷検出装置1とは別の装置に実装されてもよい。また、撮像デバイス4としては、例えば、可視領域を撮像するデバイス、赤外領域を撮像するデバイス、これらを組み合わせた複合デバイスなどが用いられてもよい。さらに、モーションキャプチャシステム5としては、光学式のものに限らず、例えば、磁気センサを用いた磁気式などの他の方式を用いたシステムを利用することもできる。
第1の算出部1aは、加速度センサ3による測定結果を取得する。第2の算出部1bは、モーションキャプチャシステム5による測定結果を取得する。これらの測定結果は、同じ時刻に測定されたものである。なお、第1の算出部1aおよび第2の算出部1bは、これらの測定結果をリアルタイムで取得してもよいし、あるいは、記憶装置(図示せず)に蓄積された測定結果の中からこれらの測定結果を取得してもよい。
第1の算出部1aは、加速度センサ3による測定結果に基づいて、部位2aの傾きを示す第1の角度を算出する。例えば、第1の算出部1aは、加速度センサ3が測定したx方向、y方向、z方向の測定値に基づいて、重力の方向を基準とした第1の角度を算出する。第2の算出部1bは、モーションキャプチャシステム5による測定結果に基づいて、部位2aの傾きを示す第2の角度を算出する。なお、第1の角度および第2の角度は、3次元空間上の角度であってもよいし、所定の基準平面上における角度であってもよい。
ここで、部位2aが動いていないとき、加速度センサ3の測定結果には重力加速度成分のみが含まれ、運動加速度成分が含まれない。このような状態では、加速度センサ3の測定結果に基づく第1の角度には、誤差が発生しにくい。しかし、部位2aが加速を伴って動いているとき、加速度センサ3の測定結果には重力加速度成分に加えて運動加速度成分も含まれる。このような状態では、第1の角度には、運動加速度成分による誤差が発生する。
一方、モーションキャプチャシステム5による測定結果に基づく第2の角度には、部位2aが動いているか否かにかかわらず、誤差が発生しにくい。このため、第1の角度と第2の角度との差分が0でない場合には、部位2aが動いており、第1の角度に運動加速度成分による誤差が発生していると推定される。
判定部1cは、このような第1の角度に生じ得る誤差を利用して、部位2aに負荷がかかっているか否かを判定する。すなわち、判定部1cは、第1の角度と第2の角度との差分に基づいて、部位2aにかかる負荷の有無を判定する。第1の角度と第2の角度とに差分がある場合、その原因は、運動加速度成分によるものである。第1の角度と第2の角度とに差分がある部位2aには運動加速度が加わっているため、運動の第2の法則(F=ma:Fは力、mは質量、aは運動加速度)から、部位2aに負荷がかかっているといえる。このように、判定部1cは、第1の角度と第2の角度とに差分がある場合、部位2aに負荷がかかっていると判定する。なお、負荷がかかっていると判定する部位2aは、身体の特定の領域に限定してもよいし、広範囲な領域を示してもよい。
以上の第1の実施の形態によれば、負荷検出装置1は、加速度センサ3に基づく角度の算出誤差を利用することで、部位2aにかかる負荷の有無を正確に判定することができる。また、加速度センサ3の測定値に基づく傾きと、モーションキャプチャによる測定値に基づく傾きは、被験者2の身体のどの部位でも検出可能である。したがって、負荷検出装置1は、このように傾きを検出可能な部位であれば、被験者2の身体のどの部位でも負荷の有無を判定することができる。
なお、上記の例では、モーションキャプチャシステム5による測定結果に基づく第2の角度が算出されているが、傾斜計などのセンサが計測した測定結果に基づいて第2の角度が算出されてもよい。
[第2の実施の形態]
図2は、第2の実施の形態の負荷検出システムを示す図である。負荷検出システムは、負荷検出装置100、加速度センサ200a,200b,・・・およびカメラ300a〜300dを含む。負荷検出装置100、加速度センサ200a,200b,・・・およびカメラ300a〜300dは、ネットワークを介して接続される。加速度センサの数は、2つに限定されない。カメラの数は、4つに限定されない。
負荷検出装置100は、図1の負荷検出装置1の一例であり、加速度センサ200a,200b,・・・は、図1の加速度センサ3の一例であり、カメラ300a〜300dは、図1の撮像デバイス4の一例である。
負荷検出装置100は、加速度センサ200a,200b,・・・およびカメラ300a〜300dから取得した情報を解析して、人体の部位に加わる負荷を検出する装置である。
加速度センサ200a,200b,・・・は、被験者に装着される、いわゆる“ウェアラブルセンサ”である。また、加速度センサ200a,200b,・・・は、重力方向を基準とした3軸方向の加速度を検出する3軸加速度センサである。なお、3軸方向がどのように規定されるかについては後述する。
負荷検出装置100とカメラ300a〜300dとにより、光学式モーションキャプチャシステムが構築される。光学式モーションキャプチャシステムでは、被験者に反射マーカ(以下、マーカという場合がある)が装着される。反射マーカに光を当て反射マーカから反射された光をカメラ300a〜300dが撮像する。負荷検出装置100は、カメラ300a〜300dが撮像した情報を基に三角測量の原理を用いて、3次元空間における反射マーカの位置(3次元座標)を算出する。
図3は、負荷検出装置のハードウェア例を示す図である。負荷検出装置100は、プロセッサ101、RAM(Random Access Memory)102、HDD(Hard Disk Drive)103、画像信号処理部104、入力信号処理部105、読み取り装置106および通信インタフェース107,107aを有する。
プロセッサ101は、負荷検出装置100全体を制御する。プロセッサ101は、複数のプロセッシング要素を含むマルチプロセッサであってもよい。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。また、プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM102は、負荷検出装置100の主記憶装置である。RAM102は、プロセッサ101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
HDD103は、負荷検出装置100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。負荷検出装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
画像信号処理部104は、プロセッサ101からの命令に従って、負荷検出装置100に接続されたディスプレイ11に画像を出力する。ディスプレイ11としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(Electro-Luminescence)ディスプレイなど各種のディスプレイを用いることができる。負荷検出装置100は、ディスプレイ11を一体に備えてもよい。
入力信号処理部105は、負荷検出装置100に接続された入力デバイス12から入力信号を取得し、プロセッサ101に出力する。入力デバイス12としては、マウスやタッチパネルなどのポインティングデバイスやキーボードなどの各種の入力デバイスを用いることができる。負荷検出装置100には、複数の種類の入力デバイスが接続されてもよい。負荷検出装置100は、入力デバイス12を一体に備えてもよい。
読み取り装置106は、可搬型の記録媒体13に記録されたプログラムやデータを読み取る装置である。記録媒体13として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体13として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置106は、例えば、プロセッサ101からの命令に従って、記録媒体13から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワークを介して、加速度センサ200a,200b,・・・と通信を行う。通信インタフェース107aは、ネットワークを介して、カメラ300a〜300dと通信を行う。通信インタフェース107,107aは、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
図4は、被験者に加速度センサと反射マーカを装着させている状態を示す図である。被験者900の背中には、背骨に沿って直線上に加速度センサと反射マーカが交互に装着される。例えば、被験者900の背中には、上側から加速度センサ200a、反射マーカ400a、加速度センサ200b、反射マーカ400bが順に装着される。反射マーカは、所定の間隔で装着される。例えば、所定の間隔とは、6cmである。また、背骨を腰椎などの5つの領域に分けたそれぞれの領域の境目に少なくとも1つの反射マーカが装着されるようにしてもよい。加速度センサは、両側の反射マーカの中間の位置に装着される。なお、後述するように、本実施の形態では、反射マーカの位置が負荷の有無が検出される対象部位となる。
被験者900は、加速度センサと反射マーカを装着した状態で何らかの動作を行う。負荷検出装置100は、ネットワークを介して、動作中の被験者900の背中に装着されている各加速度センサが測定した測定値を取得する。
なお、図4では、背中に加速度センサと反射マーカが装着されているが、他の部位に装着されてもよい。例えば、脇腹に沿って直線上に加速度センサと反射マーカが交互に装着されてもよい。
図5は、負荷検出装置の機能例を示す図である。負荷検出装置100は、取得部110、センサ角度算出部120、モーションキャプチャ処理部130、座標変換部140、マーカ角度算出部150、負荷判定部160、負荷情報算出部170および履歴記憶部180を有する。
取得部110、センサ角度算出部120、モーションキャプチャ処理部130、座標変換部140、マーカ角度算出部150、負荷判定部160、負荷情報算出部170は、例えば、プロセッサ101が実行するプログラムのモジュールとして実装される。履歴記憶部180は、例えば、RAM102またはHDD103に確保した記憶領域として実装される。
取得部110は、加速度センサ200とカメラ300とから同じ時刻に測定された測定値を取得する。なお、図5の加速度センサ200は、加速度センサ200a,200b,・・・を1つにまとめて示したものである。図5のカメラ300は、カメラ300a〜300dを1つにまとめて示したものである。
取得部110は、リアルタイムに加速度センサ200とカメラ300とから測定値を取得しなくてもよい。例えば、一旦、加速度センサ200とカメラ300とから出力される測定値がHDD103に格納された後、取得部110は、HDD103から同じ時刻に測定された加速度センサ200とカメラ300それぞれの測定値を取得する。
取得部110が加速度センサ200から取得する測定値は、加速度センサ毎のx方向、y方向、z方向の加速度である。取得部110がカメラ300から取得する情報は、各反射マーカを撮像した情報である。
センサ角度算出部120は、各加速度センサが測定した測定値を基に、各加速度センサが装着されている箇所の、被験者から見て左右方向および前後方向それぞれの傾斜角度を算出する。以下、加速度センサの装着箇所の傾斜角度を「センサ角度」と記載する場合がある。本実施の形態では、センサ角度は、加速度センサが装着された位置における背中の傾斜角度を示し、静止している場合、これは加速度センサ自体の傾斜角度と等価である。
なお、加速度センサが被験者に傾いた状態で装着されている場合、センサ角度算出部120は、左右方向の傾斜角度を補正したセンサ角度を算出する。加速度センサが被験者に傾いた状態で装着されていない場合、センサ角度算出部120は、算出された傾斜角度をそのままセンサ角度とする。
モーションキャプチャ処理部130は、カメラ300から取得した情報を基に三角測量の原理を用いて、各反射マーカの位置(3次元座標)を算出する。なお、これ以後、反射マーカの位置を単に「マーカ位置」と記載する場合がある。
座標変換部140は、モーションキャプチャ処理部130が算出した各マーカ位置の3次元座標を2次元座標に変換する。具体的には、座標変換部140は、マーカ位置の3次元座標を、被験者の前後方向に沿った垂直な平面上の2次元座標と、被験者の左右方向に沿った水平な平面上の2次元座標とに変換する。
マーカ角度算出部150は、センサ角度算出部120によって算出されたセンサ角度と、座標変換部140によって算出されたマーカ位置の2次元座標の両方から、マーカ位置の傾斜角度をそれぞれ個別に算出する。以下、マーカ位置の傾斜角度を「マーカ角度」と記載する場合がある。本実施の形態では、マーカ角度は、反射マーカが装着された位置における背中の傾斜角度を示し、これは反射マーカ自体の傾斜角度と等価である。
マーカ角度算出部150は、センサ角度を補間演算し、マーカ位置の角度(マーカ角度)を算出する。具体的には、2つの加速度センサの間に反射マーカが存在するので、マーカ角度算出部150は、例えば、当該2つの加速度センサそれぞれの位置でのセンサ角度の平均をマーカ位置の角度とみなす。
また、マーカ角度算出部150は、各マーカ位置の2次元座標に基づいて、マーカ位置の角度(マーカ角度)を算出する。例えば、マーカ角度算出部150は、算出対象のマーカ位置の反射マーカと、これに隣接する反射マーカのそれぞれの2次元座標から、マーカ角度を算出する。
なお、モーションキャプチャ処理部130によって各マーカ位置の傾きが直接算出可能な場合もある。この場合、例えば、マーカ角度算出部150は、算出されたマーカ位置の傾きを左右方向と前後方向の各成分に分離する。マーカ角度算出部150は、分離された各成分を、上記の2次元座標に基づく左右方向および前後方向の傾きの代わりに出力する。
負荷判定部160は、マーカ位置毎に、センサ角度を基に算出されたマーカ角度と、2次元座標を基に算出されたマーカ角度とに差分があるか否かを判定する。角度に差分がある場合、原因は、運動加速度成分により生じた前者のマーカ角度の誤差によるものである。角度に差分があるマーカ位置には運動加速度が加わっているため、運動の第2の法則(F=ma:Fは力、mは質量、aは運動加速度)から、マーカ位置に負荷が加えられているといえる。そのため、負荷判定部160は、角度に差分があるマーカ位置を負荷が加えられている箇所と判定する。負荷判定部160は、負荷が加えられている箇所の情報(マーカ番号など)を履歴記憶部180に格納する。また、角度に差分がない場合、負荷判定部160は、対応するマーカ位置には負荷が加えられていないと判定する。
なお、本実施の形態では負荷の測定箇所をマーカ位置としているが、センサ位置でもよい。具体的には、マーカ角度算出部150は、各マーカ位置の2次元座標に基づいて算出されたマーカ角度を補間演算し、センサ位置での角度を算出する。そして、センサ位置毎にセンサ角度と、マーカ角度を基に算出されたセンサ角度とに差分があるか否かを判定してもよい。
負荷情報算出部170は、負荷が加えられていると判定されたマーカ位置について、負荷の向きと大きさを算出する。負荷が加えられている向きは運動加速度の向きなので、負荷情報算出部170は、運動加速度の向きと大きさを、マーカ位置の周囲に装着された加速度センサの測定値に基づいて算出する。運動加速度の向きが、マーカ位置に加えられている負荷の向きとして出力される。また、運動の第2の法則から、運動加速度の大きさは、負荷の大きさを示す指標として出力される。
また、負荷情報算出部170は、負荷の大きさを、現時点で計測された運動加速度と過去に同じマーカ位置で計測された運動加速度の大きさとの比に基づき、過去の計測時での負荷に対する相対的な大きさとして出力してもよい。この場合、負荷情報算出部170は、過去に計測された運動加速度を履歴記憶部180から取得する。
履歴記憶部180は、各マーカ位置での負荷の計測結果の情報を記憶する。例えば、当該情報は、マーカ番号、負荷の有無、負荷の向き、運動加速度または負荷の大きさを含む。
なお、負荷検出装置100による各センサ位置の負荷の計測は、一定間隔に設定された計測時刻毎に行われる。履歴記憶部180は、各計測時刻での負荷の計測結果の情報を蓄積する。蓄積された情報は、負荷情報算出部170が、負荷の大きさを相対的な値とし算出する際に利用される。
図6は、センサ角度の算出について示す図である。図6の右上側では、加速度センサ200aが被験者900の背中に装着されていることを示している。
図6の左上側に示すように、加速度センサ200aは、x方向、y方向、z方向のそれぞれに対する加速度を測定する。x方向、y方向、z方向は、重力gの方向に対する相対的な方向として検知される。
x方向は、被験者900の背中に対して前後方向に直交する方向を示し、y方向は、被験者900の背中に対して左右方向に直交する方向を示す。本実施の形態では、図6に示すように、x方向については被験者900の後側方向を正の方向とし、y方向については被験者900の右側方向を正の方向とする。z方向は、被験者900の背中に沿った方向を示す。本実施の形態では、図6に示すように、z方向については被験者900の上側方向を正の方向とする。
センサ角度算出部120は、加速度センサによる上記のような測定値に基づいてセンサ角度を算出する。上からi番目のセンサ位置でのセンサ角度としては、被験者900の左右方向に対するセンサ角度θiS01と、被験者900の前後方向に対するセンサ角度θiS02とが算出される。なお、iは1以上の整数であり、その最大値は加速度センサの個数である。
具体的には、図6の下側に示すように、前後方向に対するセンサ角度θiS02は、被験者900の前後方向を含む垂直な平面における、鉛直上方向に対する角度として算出される。また、図示しないが、左右方向に対するセンサ角度θiS01は、被験者900の左右方向を含む垂直な平面における、鉛直上方向に対する角度として算出される。なお、加速度センサの装着箇所が左右方向に対して傾いていない場合、左右方向に対する角度のずれは0°となる。
図7は、負荷判定処理の概要を示す図である。図7(i)は、センサ位置とマーカ位置の例を示す。図7(i)に示すように、被験者900には加速度センサと反射マーカとが交互に装着される。本実施の形態では、背骨に沿って加速度センサと反射マーカとが装着される。
センサ角度算出部120は、各センサ位置に対応する加速度センサから取得した測定結果に基づいて、各センサ位置での傾斜角度(センサ角度)を算出する。図7(ii)は、各センサ位置で加速度センサによって測定された測定値を基にセンサ角度が算出されることを示している。
負荷の測定箇所はマーカ位置であることから、マーカ角度算出部150は、算出された各センサ位置でのセンサ角度に基づいて、各マーカ位置でのマーカ角度を補間演算により算出する。図7(iii)は、センサ角度を補間演算することでマーカ位置でのマーカ角度が算出されることを示している。マーカ角度は、例えば、対応する反射マーカの上下に存在する2つの加速度センサの位置におけるそれぞれのセンサ角度を平均した角度である。なお、実際には、上からi番目のマーカ位置のマーカ角度として、左右方向に対するマーカ角度θiS1と、前後方向に対するマーカ角度θiS2とが算出される。
これに加え、マーカ角度算出部150は、モーションキャプチャによる測定結果に基づく各マーカ位置の2次元座標を用いて、各マーカ位置でのマーカ角度を算出する。図7(v)は、被験者900に装着される反射マーカの位置のみを示している。図7(iv)は、マーカ角度算出部150により、各マーカ位置の2次元座標に基づいて、マーカ位置でのマーカ角度が算出されることを示している。なお、実際には、上からi番目のマーカ位置のマーカ角度として、左右方向に対するマーカ角度θiM1と、前後方向に対するマーカ角度θiM2とが算出される。
負荷判定部160は、図7(iii)のように算出されたマーカ角度と、図7(iv)のように算出された同じマーカ位置でのマーカ角度とを比較し、角度に差分があるか否かを判定する。負荷判定部160は、マーカ角度に差分があるマーカ位置を負荷が加えられている箇所と判定する。
図8は、負荷の発生箇所を特定する処理について示す図である。図8では例として、前後方向に対するマーカ角度についてのみ示す。
被験者の背中には、上から順に反射マーカ400a,400b,400c,400dが装着されている。図8(A)は、センサ角度から算出したマーカ角度θiS2を示す。例えば、上から1番目の反射マーカ400aの位置での前後方向に対するマーカ角度は、「θ1S2」と表される。図8(B)は、2次元座標に基づいて算出したマーカ角度θiM2を示す。例えば、上から1番目の反射マーカ400aの位置での前後方向に対するマーカ角度は、「θ1M2」と表される。
ここで、i番目のマーカ位置に負荷が加わっている場合、センサ角度に基づくマーカ角度θiS2には、動きによって生じる誤差が含まれる。この誤差は、i番目のマーカ位置での加速度センサによる(仮想的な)測定値に、重力加速度成分だけでなく運動加速度成分が含まれることから生じる。一方、i番目のマーカ位置についての2次元座標に基づくマーカ角度θiM2には、そのマーカ位置が動いているか否かに起因する誤差が発生しない。
そこで、負荷判定部160は、同じマーカ位置でのマーカ角度θiS2とマーカ角度θiM2との差分を算出する。差分が0でない場合、i番目のマーカ位置には負荷が加えられていると推定できる。例えば、負荷判定部160は、1番目の反射マーカ400aの位置のマーカ角度θ1S2とマーカ角度θ1M2との差分を算出する。算出された差分が0でない場合、負荷判定部160は、反射マーカ400aの位置を負荷が加えられている箇所と特定する。
このようにして、負荷判定部160は、マーカ角度の差分が0でないマーカ位置を負荷が加えられている箇所として特定する。また、マーカ角度に差分がない場合、負荷判定部160は、対応するマーカ位置には負荷が加えられていないと判定する。
次に、負荷検出装置100の処理の詳細について、フローチャートを用いて説明する。
図9は、負荷判定処理の例を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
(S11)取得部110は、各加速度センサが時刻tに測定したx方向、y方向、z方向の測定値を取得する。また、取得部110は、時刻tに各カメラが反射マーカを撮像した情報を取得する。
(S12)センサ角度算出部120は、ステップS11で取得した各加速度センサの測定値を基に、各加速度センサが装着されたセンサ位置についての左右方向および前後方向それぞれの傾斜角度を算出する。算出される傾斜角度は、重力の方向を基準とした角度として表される。上からi番目のセンサ位置での左右方向の傾斜角度φiS1、前後方向の傾斜角度φiS2は、それぞれ次の式(1−1),(1−2)に従って算出される。なお、XiS,YiS,ZiSは、それぞれi番目の加速度センサによるx方向、y方向、z方向についての加速度の測定値を示す。
(S13)センサ角度算出部120は、傾斜角度φiS1,φiS2を補正することで、センサ角度θiS01,θiS02を算出する。この補正は、加速度センサが傾いた状態で被験者に装着された場合による誤差を低減するためのものである。ここでは、加速度センサのy方向が傾いた場合、すなわち、被験者の後側から見たときに加速度センサが左右方向に傾いた状態で装着された場合を想定して、左右方向の傾斜角度φiS1を補正する。
基準姿勢(すなわち、加速度センサが被験者に傾いていない状態で装着された場合)で加速度センサの左右方向の傾斜角度をφi01と表すと、左右方向、前後方向のセンサ角度θiS01,θiS02は、次の式(2)に従って算出される。
(θiS01,θiS02)=(φiS1−φi01,φiS2) ・・・(2)
センサ平面と左右方向の面は平行であると仮定しているため、センサ角度θiS02と傾斜角度φiS2は、同じ角度になる。
(S14)マーカ角度算出部150は、センサ角度を補間演算し、各マーカ位置での左右方向、前後方向のマーカ角度θiS1,θiS2を算出する。マーカ角度θiS1,θi
S2は、次の式(3−1),(3−2)に従って算出される。
θiS1=(θiS01+θ(i+1)S01)/2 ・・・(3−1)
θiS2=(θiS02+θ(i+1)S02)/2 ・・・(3−2)
このように、2つのセンサ位置でのセンサ角度に基づいて、マーカ位置でのマーカ角度が算出される。例えば、i=1の場合、マーカ角度算出部150は、加速度センサ2
00a,200bの位置のセンサ角度を用いて、反射マーカ400aの位置のマーカ角度を算出する。なお、2つのセンサ角度からマーカ角度を算出するため、反射マーカ数は、加速度センサ数よりも1つ少ない。
また、他の方法として、マーカ角度算出部150は、例えば、各センサ角度の変化を関数によって近似し、その関数を用いてマーカ角度θiS1,θiS2を算出してもよい。
例えば、マーカ角度算出部150は、左右方向、前後方向それぞれについて、センサ位置とセンサ角度との関係を2次関数によって近似し、その2次関数を用いてマーカ角度θiS1,θiS2を算出する。
(S15)モーションキャプチャ処理部130は、ステップS11で取得した反射マーカを撮像した情報を基に、三角測量の原理を用いて、マーカ位置を示す3次元座標を算出する。
(S16)座標変換部140は、算出した各マーカ位置の3次元座標を、被験者の左右方向および前後方向にそれぞれ対応する2次元座標に変換する。
ステップS15,S16の処理は、例えば、次のように行われる。カメラによって撮像される際、被験者は、モーションキャプチャにおいて定義される3次元座標系(マーカ座標系)における特定の方向を向くように配置される。例えば、この3次元座標系では、水平面上にx軸とy軸が設定され、鉛直方向にz軸が設定されているとする。そして、被験者は、x軸の方向を向くように配置される。なお、この場合、y軸は被験者の左右方向に伸びる。
ステップS15では、i番目のマーカ位置の3次元座標(XiM,YiM,ZiM)が算出される。ステップS16において、座標変換部140は、左右方向に対応する2次元座標(XiC1,YiC1)として(YiM,ZiM)を算出し、前後方向に対応する2次元座標(XiC2,YiC2)として(XiM,ZiM)を算出する。
なお、ステップS15,S16では、後の図11または図12で説明する方法が用いられてもよい。
(S17)マーカ角度算出部150は、ステップS16で変換した各マーカ位置の2次元座標を基に、各マーカ位置のマーカ角度θiM1,θiM2を算出する。
例えば、i番目のマーカ位置での前後方向についてのマーカ角度θiM2は、次の式(4−1),(4−2)に従って算出される。なお、式(4−1)はiが2以上の場合の計算式であり、式(4−2)はi=1の場合の計算式である。
式(4−2)で示すように、マーカ角度算出部150は、最上部(1番目)のマーカ位置のマーカ角度を2番目のマーカ位置のマーカ角度と同じものとみなす。
また、マーカ角度算出部150は、マーカ位置のマーカ角度θiM2を次の式(5−1),(5−2),(5−3)に従って算出してもよい。なお、式(5−1)はi=マーカ数の場合、式(5−2)は2≦i<マーカ数の場合、式(5−3)はi=1の場合の計算式である。
なお、i番目のマーカ位置での左右方向についてのマーカ角度θiM1は、式(4−1),(4−2),(5−1),(5−2),(5−3)において、θiM2の代わりにθiM1を代入し、(XiC2,YiC2)の代わりに(XiC1,YiC1)を代入することで算出することができる。
(S18)負荷判定部160は、マーカ位置毎に、センサ角度に基づくマーカ角度と2次元座標に基づくマーカ角度との差分を算出する。具体的には、負荷判定部160は、(θiS1−θiM1)および(θiS2−θiM2)を算出する。
(S19)負荷判定部160は、角度に差分があるマーカ位置を負荷が加えられている箇所として特定する。
実際の処理としては、例えば、負荷判定部160は、ステップS18において、左右方向および前後方向のそれぞれについてマーカ角度の差分の絶対値を算出し、ステップS19において、算出された絶対値を所定の閾値と比較する。閾値は、0より大きい値に設定される。負荷判定部160は、左右方向と前後方向の少なくとも一方について、差分の絶対値が閾値を超える場合に、対応するマーカ位置に負荷が加えられていると判定する。
なお、ステップS19で所定の閾値と比較する値は、マーカ位置における加速度ベクトルを考慮した値とされてもよい。例えば、負荷判定部160は、マーカ位置における重力加速度ベクトルGeと、センサから算出したマーカの位置における加速度ベクトルArを用いて、「Ge・Ar/(||Ge||・||Ar||)」という式に従って値Hを算出する。マーカ位置における加速度ベクトルArは、例えば、マーカ位置を挟んだ両側のセンサ位置での加速度の測定値に基づく加速度ベクトルを、平均することで算出される。||Ge||,||Ar||は、それぞれ重力加速度ベクトルGeおよび加速度ベクトルArの大きさ(ノルム)を示す。ステップS19では、負荷判定部160は、例えば、値Hに所定の重み係数を乗算した値と、上記の差分の絶対値とを加算した値と、上記の閾値とを比較することで、マーカ位置に負荷が加えられているかを判定する。
(S20)負荷情報算出部170は、各ステップS19で負荷が加えられていると特定されたマーカ位置について、負荷の向きと大きさを算出する。
なお、ステップS20において負荷の相対的な大きさを算出するために履歴記憶部180内の過去の情報が参照される場合には、ステップS20ではさらに次のような処理が行われる。負荷情報算出部170は、負荷の相対的な大きさを算出する過程で得られた運動加速度の値を、マーカ位置を示す識別情報および測定時刻と対応付けて履歴記憶部180に登録する。負荷情報算出部170は、すべてのマーカ位置について運動加速度の値を履歴記憶部180に登録する。ステップS19で負荷が加えられていないと判定されたマーカ位置については、運動加速度=0と登録される。
なお、以上の図9では、左右方向および前後方向の両方のマーカ角度を用いて処理が実行されたが、例えば、左右方向と前後方向の一方についてのマーカ角度を用いて処理が実行されてもよい。この場合、左右方向と前後方向の一方に対する負荷の有無を検出可能である。
ここで、ステップS20の処理の具体例について、図10を用いて説明する。
図10は、負荷の向きおよび大きさの算出について示す図である。はじめに、負荷が加えられている向きは運動加速度の向きなので、負荷情報算出部170は、マーカ位置での運動加速度を算出する。運動加速度は、加速度センサの測定値に基づいて算出される。
例えば、負荷が加えられている箇所として、上からi番目の反射マーカ400_iが特定されているものとする。ここで、実際には、反射マーカ400_iの位置には加速度センサが搭載されていない。そこで、負荷情報算出部170は、反射マーカ400_iの位置での加速度センサによる加速度の仮想的な測定値(bx,by,bz)を、そのマーカ位置の周囲の複数の加速度センサの測定値から補間演算によって算出する。例えば、測定値(bx,by,bz)は、i番目の加速度センサの測定値(XiS,YiS,ZiS)と、(i+1)番目の加速度センサの測定値(X(i+1)S,Y(i+1)S,Z(i+1)S)との平均を、x成分、y成分、z成分のそれぞれについて算出することで得られる。
図10(A)では、加速度センサの測定値についての座標系(センサ座標系)のx軸、y軸、z軸を、それぞれXS、YS、ZSで表している。また、反射マーカの3次元座標についての座標系(マーカ座標系)のx軸、y軸、z軸を、それぞれXM、YM、ZMで表している。マーカ座標系は、前述のように、モーションキャプチャにおいて定義される3次元座標系である。ここでは例として、マーカ座標系のXM軸の方向は被験者の前方方向であり、YM軸の方向は被験者の右方向であり、ZM軸の方向は鉛直上側方向であるものとする。
また、図10(A)に示すbは、反射マーカ400_iの位置での加速度の測定値(bx,by,bz)が示す全加速度ベクトルである。全加速度ベクトルbには、重力加速度ベクトルgの成分と運動加速度ベクトルa’の成分とが含まれるため、b=g+a’という式で表すことができる。重力加速度gの向きと大きさは予めわかっているので、負荷情報算出部170は、全加速度ベクトルbと重力加速度ベクトルgのそれぞれの向きと大きさに基づき、a’=b−gという式によって運動加速度aの向きと大きさを算出することができる。
ただし、図10(A)に示すようにセンサ座標系とマーカ座標系は異なるため、負荷情報算出部170は、センサ座標系の値である測定値(bx,by,bz)を、マーカ座標系における測定値(bxM,byM,bzM)に変換する。ここで、反射マーカ400_iがYS軸を中心に角度θiM2だけ傾いているものとする。この場合、YM軸はYS軸と一致する。また、この角度θiM2は、反射マーカ400_iの2次元座標を基に算出されたマーカ角度である。
図10(B)では、被験者の左右方向から見たときのセンサ座標系とマーカ座標系との関係を表している。マーカ座標系における測定値(bxM,byM,bzM)は、次の式(6−1),(6−2),(6−3)によって表される。
負荷情報算出部170は、変換後の測定値(bxM,byM,bzM)を用いて、次の式(7)に従って運動加速度ベクトルa’を算出する。なお、重力加速度ベクトルgは、(0,0,G)と表される。
式(7)から、運動加速度aの向きと大きさを運動加速度ベクトルa’の向きと大きさとしてそれぞれ算出することができる。負荷が加えられている向きは運動加速度の向きと同じなので、負荷情報算出部170は、式(7)が示すベクトルの向きを負荷が加えられている向きとして出力する。
また、負荷の大きさは、運動加速度と質量との乗算値として算出される。検出対象箇所の質量は予め決まる定数であり、各マーカ位置での質量を同一とみなすと、負荷情報算出部170は、負荷の大きさを示す指標として、式(7)から算出される運動加速度aの大きさを出力することができる。
また、他の方法として、負荷情報算出部170は、負荷の大きさを示す指標を、前回の測定時刻と今回の測定時刻との相対的な大きさとして出力してもよい。具体的には、負荷情報算出部170は、履歴記憶部180を参照して、ステップS19で特定したマーカ位置についての時刻(t−1)での運動加速度の大きさ||a(t−1)||を取得する。時刻(t−1)での当該マーカ位置での負荷の大きさは、次の式(8−1)によって表される。
||F(t−1)||=m・||a(t−1)|| ・・・(8−1)
また、負荷検出対象の時刻tでの運動加速度の大きさ||a(t)||を用いて、ステップS19で特定したマーカ位置での時刻tの負荷は、次の式(8−2)によって表される。
||F(t)||=m・||a(t)|| ・・・(8−2)
負荷情報算出部170は、時刻tでの負荷の大きさを示す指標として、次の式(8−3)により、相対的な負荷の大きさ||F(t)||/||F(t−1)||を算出する。
なお、負荷情報算出部170は、負荷の大きさを示す指標として、運動加速度の代わりに力積や運動量を用いてもよい。
ところで、ステップS16での各マーカ位置を示す3次元座標を2次元座標に変換する処理は、以下の2つの方法を用いて実行されてもよい。1つ目の方法について、図11を用いて説明する。
図11は、2次元座標に変換する第1の方法を説明するための図である。図11では、モーションキャプチャにより、Xp,Yp,Zp軸によって表される3次元空間における各反射マーカの座標が特定されているものとする。Xp軸およびYp軸は水平面に沿っており、Zp軸の方向は鉛直方向である。
座標変換部140は、主成分分析を用いて、各反射マーカのXp,Ypの値(座標)の分散が最大となる固有ベクトルを算出する。図11では、固有ベクトルをq1で表している。例えば、図11では、被験者がベクトルq1の方向に前屈しているので、各反射マーカのXp,Ypの値の分散が最大となる方向は、ベクトルq1の向きである。この場合、各反射マーカは、q1−Zp平面に存在する。
ただし、被験者の動きが前後方向であるかはわからない。そこで、座標変換部140は、例えば、加速度センサによって検出された加速度変化が前後方向のみであると判定した場合に、各反射マーカはq1−Zp平面に存在すると判定する。また、他の方法としては、被験者に前後方向にのみ動くように指示が与えられてもよい。
座標変換部140は、反射マーカ毎に、反射マーカのXp,Ypの値と方向q1との内積を算出する。これにより、Xp,Ypの値(座標)が、ベクトルq1上に射影される。座標変換部140は、各反射マーカを表した3次元座標について、算出した内積の値をXiC2、Zpの値をYiC2に設定した2次元座標(XiC2,YiC2)に変換する。
なお、以上の説明では被験者が前後方向に動いた場合について示したが、左右方向に動く場合でも同様の処理によって2次元座標に変換できる。ただし、上記の第1の方法では、左右方向と前後方向の一方に対応する2次元座標にのみ変換可能である。
次に、2つ目の方法について、図12を用いて説明する。図12は、2次元座標に変換する第2の方法を説明するための図である。図12では、モーションキャプチャにより、Xr,Yr,Zr軸によって表される3次元空間における各反射マーカの座標が特定されているものとする。Xr軸およびYr軸は水平面に沿っており、Zr軸の方向は鉛直方向である。
図12では、背中以外に被験者の両肩にも反射マーカ401a,401bが装着される。また、反射マーカ401a,401bは、両肩以外の箇所に装着されてもよい。例えば、被験者の両腕に反射マーカ401a,401bが装着される。反射マーカ401a,401bは、背骨の位置よりも左右方向にずれた位置に装着される。
座標変換部140は、反射マーカ401a,401bをXr−Yr平面に射影する。射影した反射マーカ401a,401bの位置をそれぞれ点R1,R2とする。座標変換部140は、原点Qから、点R1,R2を含む直線に直交するベクトルq2を算出する。座標変換部140は、反射マーカ毎に、反射マーカのXr,Yrの各成分の値とベクトルq2との内積を算出する。これにより、Xr,Yrの値(座標)が、ベクトルq2上に射影される。座標変換部140は、各反射マーカを表した3次元座標について、算出した内積の値をXiC2、Zrの値をYiC2に設定した、前後方向についての2次元
座標(XiC2,YiC2)に変換する。
また、座標変換部140は、Xr−Yr平面においてベクトルq2に直交するベクトルq3を算出する。座標変換部140は、反射マーカ毎に、反射マーカのXr,Yrの値とベクトルq3との内積を算出する。これにより、Xr,Yrの値(座標)が、ベクトルq3上に射影される。座標変換部140は、各反射マーカを表した3次元座標について、算出した内積の値をXiC1、Zrの値をYiC1に設定した、左右方向についての
2次元座標(XiC1,YiC1)に変換する。
このように、2つの方法を用いて、各マーカ位置を示す3次元座標を2次元座標に変換することもできる。
第2の実施の形態によれば、加速度センサとモーションキャプチャとを用いて、被験者に加わる負荷の箇所を特定できる。そして、特定した箇所に加わる負荷の向きおよび負荷の大きさを特定できる。負荷の検出箇所は、傾きを算出可能な箇所であれば被験者の身体のどの箇所にも設定できる。
[第3の実施の形態]
次に、第3の実施の形態を説明する。前述の第2の実施の形態との相違する事項を主に説明し、共通する事項の説明を省略する。
第2の実施の形態では、加速度センサとモーションキャプチャとを用いて、被験者に加わる負荷の箇所を特定した。第3の実施の形態では、加速度センサと傾斜計とを用いて、被験者に加わる負荷の箇所を特定する機能を提供する。
第3の実施の形態では、加速度センサと傾斜計とが被験者に装着される。例えば、図4のように被験者900の背中に複数の加速度センサが装着され、反射マーカに代えて傾斜計が装着される。すなわち、加速度センサと傾斜計とが、交互に装着される。
図13は、第3の実施の形態の負荷検出装置の機能例を示す図である。負荷検出装置100aは、取得部110a、センサ角度算出部120、負荷判定部160a、負荷情報算出部170a、履歴記憶部180aおよび角度算出部190を有する。負荷検出装置100aは、図3の負荷検出装置100と同様のハードウェア構成によって実現される。また、負荷検出装置100aの通信インタフェース107aは、ネットワークを介して、傾斜計と通信を行う。取得部110a、センサ角度算出部120、負荷判定部160a、負荷情報算出部170aおよび角度算出部190は、例えば、負荷検出装置100aが備えるプロセッサ101が実行するプログラムのモジュールとして実装される。
取得部110aは、加速度センサ200と傾斜計500とから同じ時刻に測定された測定値を取得する。傾斜計500は、被験者に装着された複数の傾斜計を1つにまとめて示したものである。ここで、傾斜計500は、2軸傾斜計でもよいし、3軸傾斜計でもよい。傾斜計500が2軸傾斜計の場合、取得部110aは、各傾斜計の装着箇所についての左右方向または前後方向の傾きを示す測定値を傾斜計毎に取得する。傾斜計500が3軸傾斜計の場合、取得部110は、傾斜計毎にx方向、y方向、z方向の測定値を取得する。
センサ角度算出部120は、第2の実施の形態と同様に、加速度センサ毎に取得された測定値を基に、各センサ位置での左右方向および前後方向のそれぞれの傾斜角度を算出する。センサ角度算出部120は、これらのうち左右方向の傾斜角度を補正することで、各センサ位置での左右方向および前後方向のそれぞれのセンサ角度を算出する。
角度算出部190は、センサ角度および傾斜計500の測定値のそれぞれに基づいて、傾斜計500の位置(以下、「傾斜計位置」と記載する場合がある)における角度を算出する。具体的には、角度算出部190は、第2の実施の形態のマーカ角度算出部150と同様の手順により、傾斜計位置における左右方向および前後方向のそれぞれの角度を、各センサ角度を補間演算することによって算出する。また、角度算出部190は、傾斜計500が3軸傾斜計の場合、傾斜計毎に取得された測定値を基に、各傾斜計位置における左右方向および前後方向のそれぞれの角度を算出する。傾斜計が左右方向および前後方向のそれぞれの角度を直接出力する場合、角度算出部190は、取得部110aによって取得されたそれらの角度をそのまま負荷判定部160aに出力する。
ここで、傾斜計の測定値に基づく角度には、傾斜計の装着位置が動いていることによる誤差が生じない。そこで、負荷判定部160aは、傾斜計位置毎に、センサ角度に基づく傾斜計位置の角度と、傾斜計の測定値に基づく傾斜計位置の角度とに差分があるか否かを判定する。角度に差分がある場合、原因は、運動加速度成分により生じた前者の角度の誤差によるものである。角度に差分がある傾斜計位置には運動加速度が加わっているため、運動の第2の法則(F=ma:Fは力、mは質量、aは運動加速度)から、傾斜計位置に負荷が加えられているといえる。そのため、負荷判定部160aは、角度に差分がある傾斜計位置を負荷が加えられている箇所と判定する。負荷判定部160aは、負荷が加えられている箇所の情報(傾斜計番号など)を履歴記憶部180に格納する。
負荷情報算出部170aは、負荷が加えられている向きと大きさを算出する。前述のように、傾斜計の測定値に基づく傾斜計位置の角度には、運動加速度による誤差が含まれないので、この角度は地上座標系の鉛直方向を基準とした正確な角度を示しているといえる。これはすなわち、傾斜計の測定値に基づく角度は、傾斜計位置における加速度センサの3次元座標系の、地上座標系に対する回転角度を示す。
そこで、負荷情報算出部170aは、第2の実施の形態の負荷情報算出部170によるセンサ座標系のマーカ座標系への変換と同様の手順により、傾斜計の測定値に基づく角度を用いて、センサ座標系を地上座標系へ変換する。これにより、負荷情報算出部170aは、第2の実施の形態と同様の手順で、傾斜計位置における加速度センサの仮想的な測定値に基づいて、傾斜計位置での運動加速度の向きと大きさを算出することができる。負荷情報算出部170aは、第2の実施の形態の負荷情報算出部170と同様の手順で、運動加速度の向きと大きさから、傾斜計位置での負荷の向きと、負荷の大きさを示す指標とを出力する。
履歴記憶部180aは、各傾斜計位置における運動加速度の大きさを、計測時刻毎に記憶する。記憶された運動加速度の大きさは、負荷情報算出部170aが相対的な負荷の大きさを算出する際に参照される。
このように、第3の実施の形態によれば、加速度センサと傾斜計とを用いて、被験者に加わる負荷の箇所を特定できる。そして、特定した箇所に加わる負荷の向きおよび負荷の大きさを特定できる。第2の実施の形態と同様に、負荷の検出箇所は、傾きを算出可能な箇所であれば被験者の身体のどの箇所にも設定できる。
なお、第1の実施の形態の情報処理は、負荷検出装置1に用いられるプロセッサに、プログラムを実行させることで実現できる。第2,3の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体に記録できる。
例えば、プログラムを記録した記録媒体を配布することで、プログラムを流通させることができる。また、取得部110、センサ角度算出部120、モーションキャプチャ処理部130、座標変換部140、マーカ角度算出部150、負荷判定部160、負荷情報算出部170に相当する機能を実現するプログラムを別個のプログラムとし、各プログラムを別個に配布してもよい。取得部110、センサ角度算出部120、モーションキャプチャ処理部130、座標変換部140、マーカ角度算出部150、負荷判定部160、負荷情報算出部170の機能が別個のコンピュータにより実現されてもよい。図13の取得部110a、センサ角度算出部120、角度算出部190、負荷判定部160aおよび負荷情報算出部170aについても同様である。コンピュータは、例えば、記録媒体に記録されたプログラムを、RAM102やHDD103に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。