JP6035749B2 - Information processing apparatus, information processing program, and information processing method - Google Patents

Information processing apparatus, information processing program, and information processing method Download PDF

Info

Publication number
JP6035749B2
JP6035749B2 JP2012017323A JP2012017323A JP6035749B2 JP 6035749 B2 JP6035749 B2 JP 6035749B2 JP 2012017323 A JP2012017323 A JP 2012017323A JP 2012017323 A JP2012017323 A JP 2012017323A JP 6035749 B2 JP6035749 B2 JP 6035749B2
Authority
JP
Japan
Prior art keywords
time
exercise
calculation process
elapsed time
period
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012017323A
Other languages
Japanese (ja)
Other versions
JP2013153975A (en
Inventor
陽介 千田
陽介 千田
史朗 永嶋
史朗 永嶋
貴光 栗林
貴光 栗林
理恵 歌代
理恵 歌代
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012017323A priority Critical patent/JP6035749B2/en
Publication of JP2013153975A publication Critical patent/JP2013153975A/en
Application granted granted Critical
Publication of JP6035749B2 publication Critical patent/JP6035749B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理装置、情報処理プログラム及び情報処理方法に関する。   The present invention relates to an information processing apparatus, an information processing program, and an information processing method.

近年の健康ブームの中、身体の健康度合を測定する測定装置が普及されつつある。例えば、測定装置の一つとして、側屈運動やひねり運動での身体の左右のズレや、最終位置に到達するまでの身体の運動軌跡の歪み等を測定するものがある。この測定装置は、身体上の任意の点が移動した軌跡を運動軌跡として演算するものである。   In the recent health boom, measuring devices for measuring the degree of physical health are becoming popular. For example, as one of the measuring devices, there is a device that measures a left / right displacement of the body in a lateral bending motion or a twisting motion, a distortion of a body motion trajectory until reaching a final position, and the like. This measuring device calculates a trajectory of movement of an arbitrary point on the body as a motion trajectory.

また、測定装置を携帯電話機等の携帯端末に組み込む場合、携帯端末に内蔵されている、例えば、角速度計及び加速度計等の慣性センサを使用して測定装置としての測定機能を実現するものである。慣性センサを用いて運動軌跡を演算する場合、角速度の1回分の積分と、加速度の2回分の積分とで運動軌跡を演算できる。   Further, when the measuring device is incorporated into a portable terminal such as a mobile phone, the measuring function as the measuring device is realized using an inertial sensor such as an angular velocity meter and an accelerometer built in the portable terminal. . When calculating the motion trajectory using the inertial sensor, the motion trajectory can be calculated by integrating one angular velocity and integrating two accelerations.

しかしながら、携帯電話機等の民生品では、部品コスト、部品サイズや消費電力量等を考慮すると、高精度の慣性センサを使用するのは困難である。しかも、ドリフト及びオフセットを抑制するためのアイドリング期間を設けることも困難である。従って、軌跡演算の測定機能を携帯電話機に組み込む場合には、様々な技法が考えられる。   However, in consumer products such as mobile phones, it is difficult to use a high-precision inertial sensor in view of component cost, component size, power consumption, and the like. In addition, it is difficult to provide an idling period for suppressing drift and offset. Therefore, various techniques are conceivable when incorporating the measurement function of trajectory calculation into a mobile phone.

そこで、軌跡演算を実現する技法の一例として射的法がある。射的法は、軌跡の始点及び終点が同じ往復運動の軌跡演算に適している。   Therefore, there is a shooting method as an example of a technique for realizing the trajectory calculation. The shooting method is suitable for the calculation of a reciprocating locus having the same starting point and ending point.

特開2002−65640号公報JP 2002-65640 A 国際公開第2003/090981号International Publication No. 2003/090981

しかしながら、健康度合を測定する測定機能を使用する利用者は、老若男女、様々であり、その運動速度にも個人差があるため、その運動に要する時間も異なる。従って、運動速度が遅くなると、運動に要する時間も長くなるため、その分、軌跡演算に使用する積分時間も長くなる。その結果、射的法では、積分時間が長くなると累積誤差も大きくなるため、正しい演算結果が得られない。   However, the users who use the measurement function for measuring the degree of health vary among men and women of all ages, and the exercise speed varies depending on the individual, so the time required for the exercise also differs. Therefore, when the motion speed is slowed down, the time required for the motion becomes long, and accordingly, the integration time used for the locus calculation becomes long. As a result, in the shooting method, since the accumulated error increases as the integration time increases, a correct calculation result cannot be obtained.

例えば、慣性センサを使用して軌跡演算を実行する際、加速度及び角速度等のアナログ情報をデジタル情報に変換する必要があるが、デジタルで扱える最小単位以下の加速度及び角速度が取りこぼされてしまう。取りこぼされた加速度及び角速度等が積分値(軌跡)に及ぼす影響は積分時間が長くなる程、その累積誤差が大きくなる。図12は、加速度の積分時間に応じて累計誤差が生じる関係の一例を示す説明図である。例えば、角速度センサの分解能をRrez(rad/s)とした場合、時間T(s)経過後、RrezT(rad)が計測不能となる。また、図12に示すように、加速度センサの分解能をArez(m/s)とした場合、時間T(s)経過後、ArezT/2(m)が計測不能となる。 For example, when performing locus calculation using an inertial sensor, it is necessary to convert analog information such as acceleration and angular velocity into digital information. However, acceleration and angular velocity below the minimum unit that can be handled digitally are lost. The influence of the missed acceleration and angular velocity on the integrated value (trajectory) increases as the integration time increases. FIG. 12 is an explanatory diagram illustrating an example of a relationship in which a cumulative error occurs according to the acceleration integration time. For example, when the resolution of the angular velocity sensor is Rrez (rad / s), RrezT (rad) cannot be measured after the time T (s) has elapsed. Further, as shown in FIG. 12, when the resolution of the acceleration sensor as Arez (m / s 2), the time T (s) after, ArezT 2/2 (m) is not measurable.

例えば、民生品の携帯電話機に使用される加速度センサとして10ビットで±4Gを計測するタイプがある。この加速度センサの分解能はArez=(2×4×9.8)/1024=0.0766(m/s)である。すなわち、例えば、3秒で約34cm、5秒で約95cm、10秒で約3.8mの距離が計測不能なことを意味する。尚、射的法で補正できる時間は、発明者の経験則から考えると、求められる精度の約10倍の距離の時間が必要となる。すなわち、精度1cmの軌跡を得ようとする場合には、その10倍の10cmの距離Lを必要とし、この距離Lで得られる時間は√(2L/Arez)の1.6秒程度である。従って、1.6秒を超える運動時間を射的法に採用した場合、射的法で得られた軌跡は実際の軌跡と一致しない不自然な軌跡となる。 For example, there is a type that measures ± 4G with 10 bits as an acceleration sensor used in a consumer-use mobile phone. The resolution of this acceleration sensor is Arez = (2 × 4 × 9.8) /1024=0.0766 (m / s 2 ). That is, for example, it means that a distance of about 34 cm in 3 seconds, about 95 cm in 5 seconds, and about 3.8 m in 10 seconds cannot be measured. It should be noted that the time that can be corrected by the shooting method requires a distance of about 10 times the required accuracy when considered by the inventor's empirical rule. That is, in order to obtain a trajectory with an accuracy of 1 cm, a distance L of 10 cm that is 10 times that is required, and the time obtained at this distance L is approximately 1.6 seconds of √ (2L / Arez). Therefore, when an exercise time exceeding 1.6 seconds is adopted for the shooting method, the track obtained by the shooting method becomes an unnatural track that does not match the actual track.

つまり、民生品の慣性センサを備えた携帯電話機等の情報処理装置では、利用者の運動時間が異なるため、正確な運動軌跡が得られないのが実情である。   In other words, in an information processing apparatus such as a mobile phone equipped with an inertial sensor for consumer goods, the actual movement path cannot be obtained because the exercise time of the user is different.

一つの側面では、利用者の運動時間に応じて正確な運動軌跡が得られる情報処理装置、情報処理プログラム及び情報処理方法を提供することを目的とする。   In one aspect, an object is to provide an information processing apparatus, an information processing program, and an information processing method capable of obtaining an accurate motion trajectory according to a user's exercise time.

開示の態様は、装置本体と、加速度を検出する加速度検出部と、角速度を検出する角速度検出部と、記憶部とを有する。記憶部には、当該装置本体を装着した身体部位が動作する際の運動が開始された始点から前記運動が終了された終点までの運動期間を確定し、確定された前記運動期間内の前記加速度及び前記角速度に基づき、前記運動期間内の運動軌跡を算出する第1の演算処理が記憶してある。更に、記憶部には、前記始点から、前記角速度に基づき推定された終点までの運動期間を確定し、確定された前記運動期間内の前記加速度及び前記角速度に基づき、前記運動軌跡を算出する第2の演算処理が記憶してある。更に、記憶部には、前記始点から前記加速度及び前記角速度に基づき前記運動軌跡を算出する第3の演算処理が記憶してある。更に、開示の態様は、前記運動期間内の前記始点からの運動時間が第1の経過時間を超えたか否かを判定する第1判定部と、前記運動時間が前記第1の経過時間よりも長い第2の経過時間以上であるか否かを判定する第2判定部とを有する。更に、開示の態様は、前記運動時間が前記第1の経過時間を超えていないと判定されると、前記第1の演算処理を選択する選択部を有する。更に、選択部は、前記運動時間が前記第1の時間を超え、かつ、前記第2の経過時間以上でないと判定されると、前記第2の演算処理を選択すると共に、前記運動時間が前記第2の経過時間以上と判定されると、前記第3の演算処理を選択する。更に、開示の態様は、前記選択部によって選択された前記演算処理に基づき、前記運動軌跡を算出する制御部を有する。 An aspect of the disclosure includes an apparatus main body, an acceleration detection unit that detects acceleration, an angular velocity detection unit that detects angular velocity, and a storage unit. The storage unit determines an exercise period from a start point at which exercise is started when the body part to which the apparatus body is mounted operates to an end point at which the exercise is ended, and the acceleration within the determined exercise period is determined. And the 1st arithmetic processing which calculates the movement locus in the above-mentioned movement period based on the above-mentioned angular velocity is memorized. Further, the storage unit determines a motion period from the start point to the end point estimated based on the angular velocity, and calculates the motion trajectory based on the acceleration and the angular velocity within the determined motion period . Two arithmetic processes are stored. Further, the storage unit stores a third calculation process for calculating the motion trajectory based on the acceleration and the angular velocity from the start point. Further, the disclosed aspect includes a first determination unit that determines whether or not an exercise time from the start point within the exercise period exceeds a first elapsed time, and the exercise time is more than the first elapsed time. A second determination unit that determines whether or not the second elapsed time is longer. Furthermore, the aspect of an indication has a selection part which selects the said 1st arithmetic processing, when it determines with the said exercise time not exceeding the said 1st elapsed time. Furthermore, the selection unit, when it is determined that the exercise time exceeds the first time and is not equal to or longer than the second elapsed time, the selection unit selects the second arithmetic processing, and the exercise time is If it is determined that the second elapsed time or longer, the third calculation process is selected. Furthermore, the aspect of an indication has a control part which calculates the said movement locus | trajectory based on the said arithmetic processing selected by the said selection part.

開示の態様では、利用者の運動時間に応じて正確な運動軌跡が得られる。   In the disclosed aspect, an accurate motion trajectory can be obtained according to the exercise time of the user.

図1は、実施例1の情報処理装置の一例を示すブロック図である。FIG. 1 is a block diagram illustrating an example of an information processing apparatus according to the first embodiment. 図2Aは、情報処理装置を装着した人体のリンクモデルの一例を示す説明図である。FIG. 2A is an explanatory diagram illustrating an example of a link model of a human body equipped with an information processing apparatus. 図2Bは、情報処理装置を装着した人体のリンクモデルの一例を示す説明図である。FIG. 2B is an explanatory diagram illustrating an example of a link model of a human body equipped with an information processing apparatus. 図2Cは、情報処理装置を装着した人体のリンクモデルの一例を示す説明図である。FIG. 2C is an explanatory diagram illustrating an example of a link model of a human body equipped with an information processing apparatus. 図2Dは、情報処理装置を装着した人体のリンクモデルの一例を示す説明図である。FIG. 2D is an explanatory diagram illustrating an example of a link model of a human body equipped with an information processing apparatus. 図2Eは、情報処理装置を装着した人体のリンクモデルの一例を示す説明図である。FIG. 2E is an explanatory diagram illustrating an example of a link model of a human body equipped with an information processing apparatus. 図3は、角速度の二乗和と時間との関係に基づき運動区間を特定する際の一例を示す説明図である。FIG. 3 is an explanatory diagram showing an example when an exercise section is specified based on the relationship between the square sum of angular velocities and time. 図4は、情報処理装置の位置座標の一例を示す説明図である。FIG. 4 is an explanatory diagram illustrating an example of position coordinates of the information processing apparatus. 図5は、第1の演算処理及び第2の演算処理に関わるMCUの処理動作の一例を示すフローチャートである。FIG. 5 is a flowchart illustrating an example of the processing operation of the MCU related to the first calculation process and the second calculation process. 図6は、第3の演算処理に関わる演算処理部の動作の一例を示す説明図である。FIG. 6 is an explanatory diagram illustrating an example of the operation of the arithmetic processing unit related to the third arithmetic processing. 図7は、最適演算処理に関わるMCUの処理動作の一例を示すフローチャートである。FIG. 7 is a flowchart illustrating an example of the processing operation of the MCU related to the optimal calculation processing. 図8は、実施例2の最適演算処理に関わるMCUの処理動作の一例を示すフローチャートである。FIG. 8 is a flowchart illustrating an example of the processing operation of the MCU related to the optimal calculation processing according to the second embodiment. 図9は、実施例3の情報処理装置の一例を示すブロック図である。FIG. 9 is a block diagram illustrating an example of an information processing apparatus according to the third embodiment. 図10は、実施例3の最適演算処理に関わるMCUの処理動作の一例を示すフローチャートである。FIG. 10 is a flowchart illustrating an example of the processing operation of the MCU related to the optimal calculation processing according to the third embodiment. 図11は、演算処理の一例を示すフローチャートである。FIG. 11 is a flowchart illustrating an example of calculation processing. 図12は、加速度の積分時間に応じて累計誤差が生じる関係の一例を示す説明図である。FIG. 12 is an explanatory diagram illustrating an example of a relationship in which a cumulative error occurs according to the acceleration integration time.

以下、図面に基づいて、本願の開示する情報処理装置、情報処理プログラム及び情報処理方法の実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。   Hereinafter, embodiments of an information processing apparatus, an information processing program, and an information processing method disclosed in the present application will be described in detail based on the drawings. The disclosed technology is not limited by the present embodiment. Moreover, you may combine suitably each Example shown below in the range which does not cause contradiction.

図1は、実施例1の情報処理装置の一例を示すブロック図である。図1に示す情報処理装置1は、例えば、慣性センサを内蔵した携帯電話機等の携帯端末である。情報処理装置1は、通信部11と、加速度センサ12と、角速度センサ13と、操作部14と、表示部15と、ワークメモリ16と、プログラム領域17と、メモリストレージ18と、MCU(Micro Controller Unit)19とを有する。   FIG. 1 is a block diagram illustrating an example of an information processing apparatus according to the first embodiment. An information processing apparatus 1 illustrated in FIG. 1 is a mobile terminal such as a mobile phone that incorporates an inertial sensor. The information processing apparatus 1 includes a communication unit 11, an acceleration sensor 12, an angular velocity sensor 13, an operation unit 14, a display unit 15, a work memory 16, a program area 17, a memory storage 18, and an MCU (Micro Controller). Unit) 19.

通信部11は、例えば、無線通信を司るインタフェースである。加速度センサ12は、例えば、x軸、y軸及びz軸の3軸の加速度Sを検出するセンサ等の加速度検出部である。角速度センサ13は、例えば、3軸の角速度Gを検出するセンサ等の角速度検出部である。操作部14は、コマンド等の各種情報を入力する。表示部15は、各種情報を表示出力する。ワークメモリ16は、演算に使用するメモリ領域である。プログラム領域17は、各種プログラムが格納された記憶部である。メモリストレージ18は、例えば、一定期間のセンサ情報等の各種情報を記憶する領域である。MCU19は、情報処理装置1全体を制御するプロセッサである。   The communication unit 11 is an interface that controls wireless communication, for example. The acceleration sensor 12 is an acceleration detection unit such as a sensor that detects three-axis acceleration S of x-axis, y-axis, and z-axis, for example. The angular velocity sensor 13 is an angular velocity detector such as a sensor that detects a triaxial angular velocity G, for example. The operation unit 14 inputs various information such as commands. The display unit 15 displays and outputs various information. The work memory 16 is a memory area used for calculation. The program area 17 is a storage unit in which various programs are stored. The memory storage 18 is an area for storing various information such as sensor information for a certain period. The MCU 19 is a processor that controls the entire information processing apparatus 1.

図2A〜Eは、情報処理装置1を装着した人体のリンクモデルの一例を示す説明図である。例えば、前屈運動、側屈運動やひねり運動等の運動軌跡を演算する場合、利用者の正面胸部に情報処理装置1を装着する。図2Aに示すように、原点を人体の背骨101の腰関節102付近とし、x軸を人体の左手方向、y軸を人体の頭頂方向、z軸を人体の前方方向に設定する。   2A to 2E are explanatory diagrams illustrating an example of a link model of a human body on which the information processing apparatus 1 is mounted. For example, when calculating a motion trajectory such as a forward bending motion, a lateral bending motion or a twisting motion, the information processing apparatus 1 is mounted on the front chest of the user. As shown in FIG. 2A, the origin is set near the hip joint 102 of the spine 101 of the human body, the x axis is set to the left hand direction of the human body, the y axis is set to the top of the human body, and the z axis is set to the front direction of the human body.

図2Bの前屈運動は、x軸回りの回転φxが主たる動きである。尚、x軸回りの回転φxは、人体の前方向への傾き度合を示す。図2Cの側屈運動は、z軸回りの回転φzが主な動きである。z軸回りの回転φzは、人体の直立した姿勢から真横に人体を倒す度合を示す。人体が左右対称の場合、z軸回りの回転角の正の方向(人体を直立させたときの回転角を0とした場合、回転角が正の値となる方向)と負の方向(回転角が負の値となる方向)との最大値が略一致する。図2Dのひねり運動は、y軸回りの回転φyが主な動きである。尚、y軸回りの回転φyは、人体のひねり度合を示す。   The forward bending motion of FIG. 2B is mainly a rotation φx around the x axis. Note that the rotation φx around the x axis indicates the degree of inclination of the human body in the forward direction. The side-bending movement in FIG. 2C is mainly a rotation φz around the z-axis. The rotation φz around the z-axis indicates the degree to which the human body is tilted straight from the upright posture of the human body. When the human body is symmetrical, the positive direction of the rotation angle around the z axis (the rotation angle when the human body is upright is 0, the rotation angle is a positive value) and the negative direction (rotation angle) The maximum value substantially coincides with the negative value. In the twisting motion of FIG. 2D, the rotation φy around the y-axis is the main motion. Note that the rotation φy around the y axis indicates the degree of twist of the human body.

この際、情報処理装置1の位置と背骨101の位置との間の距離をd1、腰関節102の位置と背骨101の位置との間の距離をh1とした場合、正面胸部に設置された情報処理装置1の初期位置は(0、h1、d1)である。尚、情報処理装置1の位置は、情報処理装置1の任意の点の位置である。 At this time, when the distance between the position of the information processing apparatus 1 and the position of the spine 101 is d1, and the distance between the position of the hip joint 102 and the position of the spine 101 is h1, information installed on the front chest The initial position of the processing apparatus 1 is (0, h1, d1) T. Note that the position of the information processing apparatus 1 is a position of an arbitrary point of the information processing apparatus 1.

また、図2Eに示す足踏み運動の軌跡を演算する場合、利用者の腰関節102付近に情報処理装置1を装着する。この際、情報処理装置1の位置と腰関節102の位置との間の距離をd2、腰関節102と繋がる背骨101の位置と、足首の関節103と繋がる脚骨104の位置との間の距離をh2とした場合、腰関節102付近に装着された情報処理装置1の初期位置は(0、h2、−d2)である。 2E, the information processing apparatus 1 is mounted near the user's hip joint 102. At this time, the distance between the position of the information processing apparatus 1 and the position of the hip joint 102 is d2, and the distance between the position of the spine 101 connected to the hip joint 102 and the position of the leg bone 104 connected to the ankle joint 103. Is h2, the initial position of the information processing apparatus 1 mounted in the vicinity of the hip joint 102 is (0, h2, -d2) T.

また、MCU19は、角速度センサ13で検出された角速度Gの二乗和pに基づき運動区間Tpを算出する。図3は、角速度の二乗和と時間との関係に基づき運動区間を特定する際の一例を示す説明図である。MCU19は、角速度Gの二乗和pが所定閾値αを超えた時刻を運動区間の開始時刻(始点)T0とする。また、MCU19は、角速度Gの二乗和pが所定閾値α以下のまま、所定時間T1を経過した場合、所定閾値α以下になった時点を運動区間の終了時刻(終点)Tnとする。その結果、MCU19は、始点T0及び終点Tnで運動区間Tpを特定する。   Further, the MCU 19 calculates the motion section Tp based on the square sum p of the angular velocities G detected by the angular velocity sensor 13. FIG. 3 is an explanatory diagram showing an example when an exercise section is specified based on the relationship between the square sum of angular velocities and time. The MCU 19 sets the time when the square sum p of the angular velocities G exceeds the predetermined threshold value α as the start time (start point) T0 of the motion section. In addition, when the square sum p of the angular velocities G remains below the predetermined threshold value α and the predetermined time T1 has elapsed, the MCU 19 sets the time point when the angular velocity G becomes equal to or lower than the predetermined threshold value α as the end time (end point) Tn of the motion section. As a result, the MCU 19 specifies the motion section Tp at the start point T0 and the end point Tn.

図4は、情報処理装置1の位置座標の一例を示す説明図である。加速度センサ12で検出される加速度Siは、(ax,ay,az)で表現する。角速度センサ13で検出される角速度Giは、(gx、gy、gz)で表現する。   FIG. 4 is an explanatory diagram illustrating an example of position coordinates of the information processing apparatus 1. The acceleration Si detected by the acceleration sensor 12 is expressed by (ax, ay, az). The angular velocity Gi detected by the angular velocity sensor 13 is expressed by (gx, gy, gz).

また、プログラム領域17に格納される演算処理には、後述する、第1の演算処理と、第2の演算処理と、第3の演算処理とがある。第1の演算処理は、運動区間を確定し、確定された運動区間内の加速度S及び角速度Gに基づき、往復運動(始点=終点)の運動区間内の運動軌跡を算出する往復運動に適した第1の射的法の演算処理である。第2の演算処理は、始点から角速度Gに基づき推定された終点までの運動区間を確定し、確定された運動区間内の加速度S及び角速度Gに基づき、片道運動(始点≠終点)の運動区間内の運動軌跡を算出する片道運動に適した第2の射的法の演算処理である。第3の演算処理は、始点から加速度S及び角速度Gに基づき運動軌跡を算出するフィードバック積分の演算処理である。   The arithmetic processing stored in the program area 17 includes a first arithmetic processing, a second arithmetic processing, and a third arithmetic processing, which will be described later. The first calculation process is suitable for a reciprocating motion that determines a motion section and calculates a motion trajectory in the motion section of the reciprocating motion (start point = end point) based on the acceleration S and the angular velocity G in the determined motion section. This is a calculation process of the first shooting method. The second calculation process determines the motion section from the start point to the end point estimated based on the angular velocity G, and based on the acceleration S and the angular velocity G within the determined motion section, the one-way motion (start point ≠ end point) motion section It is the calculation process of the 2nd shooting method suitable for the one-way movement which calculates the movement locus | trajectory of the inside. The third calculation process is a feedback integration calculation process for calculating a motion trajectory based on the acceleration S and the angular velocity G from the starting point.

また、図1に示すMCU19は、第1判定部21と、第2判定部22と、第3判定部23と、選択部24と、制御部25とを有する。MCU19は、加速度センサ12及び角速度センサ13の検出結果に基づき運動区間Tpを算出する。   The MCU 19 illustrated in FIG. 1 includes a first determination unit 21, a second determination unit 22, a third determination unit 23, a selection unit 24, and a control unit 25. The MCU 19 calculates the motion section Tp based on the detection results of the acceleration sensor 12 and the angular velocity sensor 13.

第1判定部21は、運動区間Tp内の始点から運動時間が第1の経過時間Tx1を超えたか否かを判定する。尚、第1の経過時間Tx1は、例えば、1.5秒である。第2判定部22は、運動時間が第2の経過時間Tx2を超えたか否かを判定する。尚、第2の経過時間Tx2は、例えば、5秒である。第3判定部23は、運動区間Tpの始点及び終点が同一、すなわち始点の重力加速度ベクトルGr1及び終点の重力加速度ベクトルGr2が同一の往復運動であるか否かを判定する。 The first determination unit 21, the exercise time from the starting point in the exercise period Tp is determined whether more than a first elapsed time T x1. Note that the first elapsed time T x1 is, for example, 1.5 seconds. The second determination unit 22 determines whether the exercise time has exceeded the second elapsed time T x2 . Note that the second elapsed time T x2 is, for example, 5 seconds. The third determination unit 23 determines whether or not the start point and the end point of the motion section Tp are the same, that is, the gravity acceleration vector Gr1 at the start point and the gravity acceleration vector Gr2 at the end point are the same reciprocating motion.

選択部24は、運動時間が第1の経過時間Tx1を超えてない場合、かつ、運動区間Tpの始点及び終点が同一の往復運動の場合、第1の演算処理を選択する。選択部24は、運動時間が第1の経過時間Tx1を超え、かつ、運動時間が第2の経過時間Tx2を超えてない場合、第2の演算処理を選択する。更に、選択部24は、運動時間が第1の経過時間Tx1を超えず、かつ、往復運動でない場合には、第2の演算処理を選択する。また、選択部24は、運動時間が第2の経過時間Tx2を超えた場合、第3の演算処理を選択する。 When the exercise time does not exceed the first elapsed time Tx1 and when the start point and the end point of the exercise section Tp are the same reciprocating motion, the selection unit 24 selects the first calculation process. When the exercise time exceeds the first elapsed time T x1 and the exercise time does not exceed the second elapsed time T x2 , the selection unit 24 selects the second calculation process. Furthermore, the selection unit 24 selects the second calculation process when the exercise time does not exceed the first elapsed time T x1 and the reciprocation is not performed. The selection unit 24 selects the third calculation process when the exercise time exceeds the second elapsed time Tx2 .

制御部25は、選択部24によって選択された演算処理に基づき、運動区間内の運動軌跡を算出する。   The control unit 25 calculates an exercise trajectory in the exercise section based on the arithmetic process selected by the selection unit 24.

次に情報処理装置1の動作について説明する。軌跡演算は、微小時間T毎に取得された角速度G及び加速度SをT毎の姿勢R及び位置Pに変換する演算である。T毎に更新される時刻Tは、0、T、2T、3T…と離散的な値である。添え字iを用いて、時刻i・Tの角速度をG=(gx,gy,gz)、加速度をS=(ax,ay,az)、情報処理装置1の姿勢をR、情報処理装置1の位置をP=(x,y,z)と表現する。尚、姿勢Rは、ピッチ、ロール及びヨーと呼ばれる三つの角度で表現し、計算の便宜上、ローカル座標をグローバル座標に変換して3×3の回転行列と考える。また、グローバル座標は、情報処理装置1を装着した人の空間の絶対座標であるのに対し、ローカル座標は、情報処理装置1自体に固定された座標である。 Next, the operation of the information processing apparatus 1 will be described. The trajectory calculation is an operation for converting the angular velocity G and acceleration S acquired every minute time T into posture R and position P for each T. The time T updated every T is a discrete value such as 0, T, 2T, 3T. Using the subscript i, the angular velocity at time i · T is G i = (gx, gy, gz) T , the acceleration is S i = (ax, ay, az) T , and the attitude of the information processing apparatus 1 is R i , The position of the information processing apparatus 1 is expressed as P i = (x, y, z) T. The orientation R i is expressed by three angles called pitch, roll, and yaw, and for convenience of calculation, the local coordinates are converted into global coordinates and considered as a 3 × 3 rotation matrix. The global coordinates are absolute coordinates of the space of the person wearing the information processing apparatus 1, whereas the local coordinates are coordinates fixed to the information processing apparatus 1 itself.

図5は、第1の演算処理及び第2の演算処理に関わるMCU19の処理動作の一例を示すフローチャートである。尚、運動区間をi=0,1,2,3…nで表現し、始点をi=0、終点をi=nとした場合、始点の姿勢をR=I、終点の姿勢をR=RN、始点の速度をV=0、終点の速度をV=VN、始点の位置をP=0、終点の位置をP=PNとする。第1の演算処理で使用する第1の射的法は、終点の姿勢RN、速度VN及び位置PNが、始点の姿勢R、速度V及び位置Pと等しく、姿勢R及びRNがI、速度V及びVNが0、位置P及びPNが0である往復運動を対象とする。これに対して、第2の演算処理で使用する第2の射的法は、片道運動を対象とし、運動区間の終点の姿勢R、速度V及び位置Pを角速度Gに基づき推定する。 FIG. 5 is a flowchart illustrating an example of the processing operation of the MCU 19 related to the first calculation process and the second calculation process. If the motion section is expressed by i = 0, 1, 2, 3,... N, the starting point is i = 0 and the ending point is i = n, the starting point posture is R 0 = I and the ending point posture is R n. = RN, start point speed is V 0 = 0, end point speed is V n = VN, start point position is P 0 = 0, and end point position is P n = PN. In the first shooting method used in the first calculation process, the posture RN, velocity VN and position PN of the end point are equal to the posture R 0 , velocity V 0 and position P 0 of the starting point, and the postures R 0 and RN are A reciprocating motion in which I, velocities V 0 and VN are 0, and positions P 0 and PN are 0 is targeted. On the other hand, the second shooting method used in the second calculation process targets one-way motion, and estimates the posture R n , velocity V n and position P n of the end point of the motion section based on the angular velocity G n. To do.

図5においてMCU19の制御部25は、加速度センサ12の検出結果である加速度S=(ax,ay,az)の時系列データ及び角速度センサ13の検出結果である角速度G=(gx,gy,gz)の時系列データを収集する(ステップS11)。 In FIG. 5, the control unit 25 of the MCU 19 includes time series data of acceleration S = (ax, ay, az) T that is a detection result of the acceleration sensor 12 and angular velocity G = (gx, gy, T ) that is a detection result of the angular velocity sensor 13. gz) Collect time series data of T (step S11).

制御部25は、収集された加速度S及び角速度Gの時系列データから運動区間に対応した加速度S0〜Sn及び角速度G0〜Gnを抽出する(ステップS12)。そして、制御部25は、運動区間に基づき、終点の姿勢RN、速度VN及び位置PNを決定する(ステップS13)。尚、往復運動の場合、始点及び終点が同一値であるため、終点の姿勢RNはI、終点の速度VNは0、終点の位置PNは0である。これに対して、片道運動の場合、始点及び終点が同一値でないため、終点の姿勢RN、速度VN及び位置PNが角速度Gnに基づき推定する。 The control unit 25 extracts the accelerations S 0 to S n and the angular velocities G 0 to G n corresponding to the motion section from the collected time series data of the acceleration S and the angular velocity G (step S12). Then, the control unit 25 determines the end point posture RN, the speed VN, and the position PN based on the motion section (step S13). In the case of the reciprocating motion, since the start point and the end point have the same value, the end point posture RN is I, the end point speed VN is 0, and the end point position PN is 0. On the other hand, in the case of one-way motion, since the start point and the end point are not the same value, the posture RN, speed VN, and position PN of the end point are estimated based on the angular speed G n .

制御部25は、始点の姿勢RをI、始点の速度Vを0、始点の位置Pを0に決定する(ステップS14)。制御部25は、オフセット量o=0に設定し(ステップS15)、ループカウンタの値i=1に設定する(ステップS16)。制御部25は、RS=Ri-1・(Gi−o)に基づき絶対座標の回転速度RSを算出する(ステップS17)。 Control unit 25, the posture R 0 of the starting point I, the velocity V 0 which start 0, the position P 0 of the starting point determined in 0 (step S14). The control unit 25 sets the offset amount o = 0 (step S15), and sets the loop counter value i = 1 (step S16). The control unit 25 calculates the rotational speed RS of absolute coordinates based on RS = R i−1 · (G i −o) (step S17).

制御部25は、dR=Ri-1×RSで微分値を算出する(ステップS18)。尚、Ri-1は、(ωxT,ωyT,ωzT)とした場合、ωは1×3行列であるため、例えば、dR=((ωx×RS)T,(ωy×RS)T,(ωz×RS)T)となる。そして、制御部25は、微分値dRを時間について積分し、Ri=Ri-1+∫dRdtに基づき姿勢Riを算出する(ステップS19)。 The control unit 25 calculates a differential value with dR = R i−1 × RS (step S18). When R i-1 is (ωx T , ωy T , ωz T ), ω is a 1 × 3 matrix. For example, dR = ((ωx × RS) T , (ωy × RS) T , (Ωz × RS) T ). Then, the control unit 25 integrates the differential value dR with respect to time, and calculates the posture R i based on R i = R i−1 + ∫dRdt (step S19).

制御部25は、ループカウンタの値iを+1インクリメントし(ステップS20)、ループカウンタの値iがnを超えたか否かを判定する(ステップS21)。尚、ステップS16〜ステップS20までの処理は、姿勢Rを積分する処理である。 The control unit 25 increments the loop counter value i by +1 (step S20), and determines whether or not the loop counter value i exceeds n (step S21). Note that the processing from step S16~ step S20 is a process of integrating the orientation R i.

制御部25は、値iがnを超えていない場合(ステップS21否定)、回転速度RSを算出すべく、ステップS17に移行する。また、制御部25は、値iがnを超えた場合(ステップS21肯定)、1回目であるか否かを判定する(ステップS22)。   When the value i does not exceed n (No at Step S21), the control unit 25 proceeds to Step S17 to calculate the rotation speed RS. Moreover, the control part 25 determines whether it is the 1st time, when the value i exceeds n (step S21 affirmation) (step S22).

制御部25は、1回目の場合(ステップS22肯定)、RR=RN-1×Rnに基づき、積分値と理想値との誤差RRを算出する(ステップS23)。尚、RN-1とRnとの積RRは、理想的には単位行列になる。しかし、実際には、センサのドリフト等でRRは単位行列にはならず、積分値の誤差、つまり、重力の変化から得られた運動前後の姿勢の変化とセンサを積分して得られた姿勢の変化との間にズレが生じる。従って、射的法では、RRが単位行列となる角速度センサ13のオフセット値oを求める。つまり、誤差RRは、姿勢のズレを示し、姿勢変化RRから回転ベクトル(回転軸)Qと、その変化量である回転量θとを算出する際、回転量θが発生しないようにオフセット値oを求める。 Control unit 25, when the first (step S22: Yes), on the basis of the RR = RN -1 × R n, calculates an error RR of the integral value and the ideal value (step S23). The product RR of RN −1 and R n is ideally a unit matrix. However, in reality, RR does not become a unit matrix due to sensor drift or the like, and an error of an integral value, that is, a posture obtained by integrating a sensor with a change in posture before and after movement obtained from a change in gravity. Deviation occurs between changes. Therefore, in the shooting method, the offset value o of the angular velocity sensor 13 in which RR is a unit matrix is obtained. That is, the error RR indicates a deviation of the posture, and when calculating the rotation vector (rotation axis) Q and the rotation amount θ which is the change amount from the posture change RR, the offset value o so that the rotation amount θ does not occur. Ask for.

制御部25は、誤差RRに基づき、RRの回転ベクトルQ及び回転量θを算出する(ステップS24)。尚、誤差RRは、回転行列のため3×3行列である。その要素を回転行列の第1段目の横行列をr11、r12及びr13、第2段目の横行列をr21、r22及びr23、第3段目の横行列をr31、r32及びr33とした場合、回転ベクトルは、Q=(r23−r32、r31−r13、r12−r21)となる。更に、その回転量は、θ=cos-1((r11+r22+r33−1)/2)となる。 The control unit 25 calculates the rotation vector Q and the rotation amount θ of RR based on the error RR (step S24). The error RR is a 3 × 3 matrix because of the rotation matrix. When the first row of the rotation matrix is r11, r12 and r13, the second row is r21, r22 and r23, and the third row is r31, r32 and r33. The rotation vector is Q = (r23−r32, r31−r13, r12−r21) T. Further, the rotation amount is θ = cos −1 ((r11 + r22 + r33-1) / 2).

制御部25は、o=θ/Qdtに基づき、姿勢Rのオフセット量oを算出し(ステップS25)、算出されたオフセット量oをRS=Ri-1・(Gi−o)に代入して回転速度RSを算出すべく、ステップS16を経てステップS17に移行する。その結果、ループカウンタの値iがnを超えた2回目以降は、オフセット量oの代入に応じて誤差RRの回転量θが0となるため、誤差RRが単位行列となる。 The control unit 25 calculates the offset amount o of the posture R based on o = θ / Qdt (step S25), and substitutes the calculated offset amount o into RS = R i−1 · (G i −o). In order to calculate the rotation speed RS, the process proceeds to step S17 via step S16. As a result, after the second time when the value i of the loop counter exceeds n, the rotation amount θ of the error RR becomes 0 in accordance with the substitution of the offset amount o, so that the error RR becomes a unit matrix.

制御部25は、1回目でない場合(ステップS22否定)、すなわち2回目以降は誤差RRが単位行列のため、オフセット量o=0に設定し(ステップS26)、ループカウンタの値i=1に設定する(ステップS27)。尚、制御部25は、説明の便宜上、1回目の処理で姿勢RRのオフセット量oが「0」にみなせるものとした。しかしながら、ステップS25のθ/Qdtに「1」よりも小さい正の数をかけ、オフセット量oが「0」とみなされるまで、ステップS16〜ステップS25の処理動作を繰り返す方法もあり得る。制御部25は、Ai=Ri×Si−oに基づき絶対座標上の加速度Aiを算出する(ステップS28)。 If it is not the first time (No at Step S22), that is, the error RR is a unit matrix after the second time, the control unit 25 sets the offset amount o = 0 (Step S26) and sets the loop counter value i = 1. (Step S27). For convenience of explanation, the control unit 25 can assume that the offset amount o of the posture RR is “0” in the first process. However, there may be a method of multiplying θ / Qdt in step S25 by a positive number smaller than “1” and repeating the processing operations in steps S16 to S25 until the offset amount o is regarded as “0”. The control unit 25 calculates the acceleration A i on absolute coordinates based on A i = R i × S i −o (step S28).

制御部25は、加速度Aiを時間で積分して、Vi=Vi-1+∫Adtに基づき、絶対座標上の速度Viを算出する(ステップS29)。制御部25は、ループカウンタの値iを+1インクリメントし(ステップS30)、値iがnを超えたか否かを判定する(ステップS31)。制御部25は、値iがnを超えなかった場合(ステップS31否定)、値iの加速度Aを算出すべく、ステップS28に移行する。制御部25は、値iがnを超えた場合(ステップS31肯定)、1回目であるか否かを判定する(ステップS32)。 The control unit 25 integrates the acceleration A i with time, and calculates the velocity V i on the absolute coordinates based on V i = V i-1 + ∫A i dt (step S29). The control unit 25 increments the value i of the loop counter by +1 (step S30), and determines whether or not the value i exceeds n (step S31). When the value i does not exceed n (No at Step S31), the control unit 25 proceeds to Step S28 in order to calculate the acceleration A i of the value i. When the value i exceeds n (Yes at Step S31), the control unit 25 determines whether it is the first time (Step S32).

制御部25は、1回目の場合(ステップS32肯定)、o=(Vn−VN)/dtに基づき、速度Vのオフセット量oを算出し(ステップS33)、値i=1に設定すべく、ステップS27に移行する。 In the first time (Yes at Step S32), the control unit 25 calculates the offset amount o of the speed V based on o = (V n −VN) / dt (Step S33) and sets the value i = 1. The process proceeds to step S27.

また、制御部25は、1回目でない場合(ステップS32否定)、すなわち2回目以降はオフセット量o=0に設定し(ステップS34)、値i=1に設定する(ステップS35)。尚、制御部25は、説明の便宜上、1回目の演算処理で速度Viのオフセット量oが0になるものとする。 Further, when it is not the first time (No at Step S32), that is, after the second time, the control unit 25 sets the offset amount o = 0 (Step S34) and sets the value i = 1 (Step S35). Note that, for convenience of explanation, the control unit 25 assumes that the offset amount o of the speed V i becomes 0 in the first calculation process.

制御部25は、V=Vi−oに基づき速度Vを算出する(ステップS36)。制御部25は、速度Vを時間で積分し、Pi=Pi-1+∫Vdtに基づき、絶対座標上の位置Piを算出する(ステップS37)。制御部25は、ループカウンタの値iを+1インクリメントし(ステップS38)、値iがnを超えたか否かを判定する(ステップS39)。制御部25は、値iがnを超えなかった場合(ステップS39否定)、速度Vを算出すべく、ステップS36に移行する。制御部25は、値iがnを超えた場合(ステップS39肯定)、1回目であるか否かを判定する(ステップS40)。 The control unit 25 calculates the speed V based on V = V i -o (step S36). The control unit 25 integrates the velocity V with time, and calculates a position P i on absolute coordinates based on P i = P i-1 + ∫Vdt (step S37). The control unit 25 increments the value i of the loop counter by +1 (step S38) and determines whether the value i exceeds n (step S39). When the value i does not exceed n (No at Step S39), the control unit 25 proceeds to Step S36 to calculate the speed V. When the value i exceeds n (Yes at Step S39), the control unit 25 determines whether or not it is the first time (Step S40).

制御部25は、1回目の場合(ステップS40肯定)、o=(Pn−PN)/dtに基づき、位置Pのオフセット量oを算出し(ステップS41A)、ループカウンタの値i=1に設定すべく、ステップS35に移行する。制御部25は、1回目でない場合(ステップS40否定)、すなわち2回目以降は、図5に示す処理動作を終了する。尚、制御部25は、説明の便宜上、1回目の演算処理で位置Piのオフセット量oが0になるものとする。 In the case of the first time (Yes at Step S40), the control unit 25 calculates the offset amount o of the position P based on o = (P n −PN) / dt (Step S41A), and sets the loop counter value i = 1. To set, the process proceeds to step S35. If not the first time (No at Step S40), that is, after the second time, the control unit 25 ends the processing operation shown in FIG. The control unit 25, for convenience of explanation, it is assumed that the offset amount o position P i in the first arithmetic processing is zero.

第1の演算処理では、運動区間内の始点及び終点が同一と捉え、加速度S及び角速度Gに基づき姿勢Rを算出し、算出された姿勢Rに基づき速度Vを算出し、算出された速度Vに基づき位置Pを算出する。その結果、往復運動の姿勢R及び位置Pに基づき運動区間内の運動軌跡を算出できる。   In the first calculation process, it is assumed that the start point and the end point in the motion section are the same, the posture R is calculated based on the acceleration S and the angular velocity G, the velocity V is calculated based on the calculated posture R, and the calculated velocity V Based on this, the position P is calculated. As a result, the motion trajectory in the motion section can be calculated based on the posture R and position P of the reciprocating motion.

第2の演算処理では、運動区間内の終点を角速度Gnで推定し、加速度S及び角速度Gに基づき姿勢Rを算出し、算出された姿勢Rに基づき速度Vを算出し、算出された速度Vに基づき位置Pを算出する。その結果、片道運動の姿勢R及び位置Pに基づき運動区間内の運動軌跡を算出できる。尚、第2の演算処理では、運動区間の往路及び復路を区分して片道分の射的法を適用するため、積分しなければならない時間が往復の半分で済み、正しい演算結果が得られる。   In the second calculation process, the end point in the motion section is estimated by the angular velocity Gn, the posture R is calculated based on the acceleration S and the angular velocity G, the velocity V is calculated based on the calculated posture R, and the calculated velocity V Based on this, the position P is calculated. As a result, the motion trajectory in the motion section can be calculated based on the posture R and position P of the one-way motion. In the second calculation process, since the one-way shooting method is applied by dividing the forward path and the return path of the motion section, the time required to be integrated is half of the round trip, and a correct calculation result is obtained.

また、制御部25は、第3の演算処理を実行する演算処理部25Aを有する。図6は、第3の演算処理に関わる演算処理部25Aの動作の一例を示す説明図である。図6に示す演算処理部25AのLPF(Low Pass Filter)31は、加速度センサ12で検出された加速度S=(ax,ay,az)にフィルタ処理を施して重力加速度ベクトルSgを算出する。 The control unit 25 includes an arithmetic processing unit 25A that executes a third arithmetic process. FIG. 6 is an explanatory diagram illustrating an example of the operation of the arithmetic processing unit 25A related to the third arithmetic processing. An LPF (Low Pass Filter) 31 of the arithmetic processing unit 25A shown in FIG. 6 performs a filtering process on the acceleration S = (ax, ay, az) T detected by the acceleration sensor 12 to calculate a gravitational acceleration vector Sg.

演算処理部25Aの第1の回転行列変換部32は、重力加速度ベクトルSgを、ローカル座標から重力方向をy軸とする絶対座標系に変換して回転行列Rgを求める。更に、逆行列変換部33は、回転行列Rgを逆行列(転置行列)Rgに変換する。尚、重力方向の二次元座標からRgという三次元情報に変換するには情報を一次元に落とす必要がある。今回、運動の軌跡を求める場合、y軸回りで回転しないものとする。 The first rotation matrix conversion unit 32 of the arithmetic processing unit 25A determines the rotation matrix Rg by converting the gravitational acceleration vector Sg from the local coordinates to an absolute coordinate system having the gravity direction as the y axis. Further, the inverse matrix conversion unit 33 converts the rotation matrix Rg into an inverse matrix (transposed matrix) Rg T. Incidentally, the conversion from the direction of gravity of the two-dimensional coordinates in the three-dimensional information that Rg T needs to drop the information in one dimension. In this case, when the locus of motion is obtained, it is assumed that it does not rotate around the y-axis.

更に、演算処理部25Aの姿勢メモリ34は、回転行列R(i=0〜n)の時系列データを格納する。演算処理部25Aの第1の演算部35は、逆行列変換部33の逆行列Rgと、姿勢メモリ34内の回転行列Rとの積で、誤差RRを算出する。ベクトル演算部35Aは、誤差RRから回転軸の回転ベクトルQ及び、その変化量である回転量θを算出する。 Further, the attitude memory 34 of the arithmetic processing unit 25A stores time series data of the rotation matrix R i (i = 0 to n). The first calculation unit 35 of the calculation processing unit 25A calculates an error RR by the product of the inverse matrix Rg T of the inverse matrix conversion unit 33 and the rotation matrix R in the attitude memory 34. The vector calculation unit 35A calculates the rotation vector Q of the rotation shaft and the rotation amount θ that is a change amount from the error RR.

演算処理部25Aの第1ゲイン部36は、回転ベクトルQ及び回転量θの積に定数Krをゲイン調整することでオフセット量KrQθを算出する。また、演算処理部25Aの第2の演算部37は、姿勢メモリ34内の回転行列R及び、角速度センサ13の検出結果である角速度Gに基づき回転速度RSを算出する。更に、演算処理部25Aの第3の演算部38は、回転速度RSからオフセット量KrQθを減算し、減算結果の回転速度RSを外積演算部39に入力する。外積演算部39は、回転速度RSと前回の姿勢(回転行列)Ri-1とでベクトルの微分値dRを得る。 The first gain unit 36 of the arithmetic processing unit 25A calculates the offset amount KrQθ by adjusting the gain of the constant Kr to the product of the rotation vector Q and the rotation amount θ. The second calculation unit 37 of the calculation processing unit 25 </ b> A calculates the rotation speed RS based on the rotation matrix R i in the attitude memory 34 and the angular velocity G i that is the detection result of the angular velocity sensor 13. Further, the third calculation unit 38 of the calculation processing unit 25A subtracts the offset amount KrQθ from the rotation speed RS, and inputs the rotation speed RS as a subtraction result to the outer product calculation unit 39. The outer product calculation unit 39 obtains a vector differential value dR based on the rotation speed RS and the previous posture (rotation matrix) R i−1 .

演算処理部25Aの姿勢積分部40は、ベクトルの微分値dRの積分値∫dRdtを算出する。更に、演算処理部25Aの第4の演算部41は、前回の姿勢(回転行列)Ri-1と積分値∫dRdtとを加算して姿勢Riを算出し、算出した姿勢Riを姿勢メモリ34に更新する。 The posture integration unit 40 of the arithmetic processing unit 25A calculates an integral value ∫dRdt of the vector differential value dR. Further, the fourth calculation unit 41 of the calculation processing unit 25A calculates the posture R i by adding the previous posture (rotation matrix) R i−1 and the integral value ∫dRdt, and uses the calculated posture R i as the posture. Update to memory 34.

第5の演算部42A及び第6の演算部42Bは、運動の回転中心から見た情報処理装置1の位置X=(x,y,z)と、姿勢メモリ34からの姿勢RXとに基づきXx=RX−Xの演算で、運動開始時点を原点とした場合のリンクモデルの移動量Xxを求める。尚、情報処理装置1の位置Xはメモリ42Cに格納されているものとする。演算処理部25Aの第7の演算部43は、移動量Xxと現在位置メモリ44の現在位置Pとに基づき、Px=P−Xxで位置Pの誤差Pxを算出する。演算処理部25Aの第8の演算部45は、Zにdt(RPx)を加算することでZを更新する。 The fifth calculation unit 42A and the sixth calculation unit 42B are based on the position X = (x, y, z) T of the information processing apparatus 1 viewed from the rotation center of the motion and the posture RX from the posture memory 34. By calculating Xx = RX−X, the movement amount Xx of the link model when the movement start time is used as the origin is obtained. It is assumed that the position X of the information processing apparatus 1 is stored in the memory 42C. The seventh calculation unit 43 of the calculation processing unit 25A calculates the error Px of the position P with Px = P−Xx based on the movement amount Xx and the current position P of the current position memory 44. The eighth arithmetic unit 45 of the arithmetic processing unit 25A updates Z by adding dt (R T Px) to Z.

演算処理部25Aの第2ゲイン部46は、Zに対して定数Kiを積分ゲインしてKi・Zを得る。演算処理部25Aの第9の演算部47は、S−Ki・Zを算出する。演算処理部25Aの第10の演算部48は、姿勢メモリ34からの回転行列Rと、第9の演算部47からS−Ki・Zとに基づき、R(S−Ki・Z)を算出する。   The second gain unit 46 of the arithmetic processing unit 25A obtains Ki · Z by integrating the constant Ki with respect to Z as an integral gain. The ninth calculation unit 47 of the calculation processing unit 25A calculates S−Ki · Z. The tenth arithmetic unit 48 of the arithmetic processing unit 25A calculates R (S−Ki · Z) based on the rotation matrix R from the attitude memory 34 and the S−Ki · Z from the ninth arithmetic unit 47. .

演算処理部25Aの第3ゲイン部49は、第7の演算部43からの誤差Pxに定数Kpを比例ゲインとしてPx・Kpを算出する。演算処理部25Aの第11の演算部50は、第3ゲイン部49からのPx・Kpと、第10の演算部48からのS−Ki・Zとに基づき、R(S−Ki・Z)−Kp・Pxを算出する。更に、演算処理部25Aの第4ゲイン部51は、現在速度メモリ52で得た速度Vに対して定数Kdを微分ゲインしてKd・Vを算出する。更に、演算処理部25Aの第12の演算部53は、R(S−Ki・Z)−Kp・Px−Kd・Vに基づき、加速度Aを算出する。尚、Kiは積分ゲインの定数,Kdは微分ゲインの定数,Kpは比例ゲインの定数である。R・Sは、例えば、HPF(High Pass Filter)で重力加速度成分を除去しても良い。   The third gain unit 49 of the arithmetic processing unit 25A calculates Px · Kp using the constant Kp as a proportional gain for the error Px from the seventh arithmetic unit 43. The eleventh arithmetic unit 50 of the arithmetic processing unit 25A is based on Px · Kp from the third gain unit 49 and S−Ki · Z from the tenth arithmetic unit 48, and R (S−Ki · Z). -Calculate Kp · Px. Further, the fourth gain unit 51 of the arithmetic processing unit 25 </ b> A calculates Kd · V by differentiating the constant Kd with respect to the speed V obtained in the current speed memory 52. Further, the twelfth calculation unit 53 of the calculation processing unit 25A calculates the acceleration A based on R (S−Ki · Z) −Kp · Px−Kd · V. Ki is an integral gain constant, Kd is a differential gain constant, and Kp is a proportional gain constant. For R · S, for example, a gravitational acceleration component may be removed by an HPF (High Pass Filter).

演算処理部25Aの第13の演算部54は、速度V及び加速度Aの積分値∫AdtのVi=V+∫Adtに基づき、現在の速度Viを算出し、算出された現在の速度Viを現在速度メモリ52に格納する。演算処理部25Aの第14の演算部55は、現在位置P及び速度Vの積分値∫VdtのPi=P+∫Vdtに基づき、現在の位置Piを算出し、算出された現在のPiを現在位置メモリ44に格納する。 The thirteenth calculation unit 54 of the calculation processing unit 25A calculates the current speed V i based on V i = V + ∫Adt of the integral value ∫Adt of the velocity V and the acceleration A, and calculates the calculated current velocity V i. Is stored in the current speed memory 52. 14 operation unit 55 of the arithmetic processing unit 25A, based on the P i = P + ∫Vdt integrated value ∫Vdt the current position P and velocity V, and calculates the current position P i, the current P i calculated Is stored in the current position memory 44.

第3の演算処理では、第2の演算処理に比較して長時間の運動軌跡に対応し、現在姿勢Ri及び現在位置Piに基づき運動軌跡を演算できる。また、第3の演算処理では、微分ゲインKdを設けることで比例ゲインKpが大きくできるため、その分、収束を速めることができる。また、第3の演算処理では、積分ゲインKiを設けることで、重力の影響や加速度センサ12の零点ドリフトを抑制できる。 In the third calculation process, a movement trajectory can be calculated based on the current posture R i and the current position P i corresponding to a longer movement trajectory than in the second calculation process. In the third arithmetic processing, since the proportional gain Kp can be increased by providing the differential gain Kd, the convergence can be accelerated accordingly. In the third calculation process, the influence of gravity and the zero point drift of the acceleration sensor 12 can be suppressed by providing the integral gain Ki.

図7は、最適演算処理に関わるMCU19の処理動作の一例を示すフローチャートである。図7に示す最適演算処理は、運動区間の時間及び条件に応じて第1の演算処理、第2の演算処理又は第3の演算処理を実行する処理である。尚、演算精度は、第1の演算処理が一番高く、第2の演算処理が二番目に高く、第3の演算処理が三番目に高い。また、第1の演算処理は、例えば、Tp<1.5秒の運動区間に適し、第2の演算処理は、例えば、1.5秒≦Tp<5秒の運動区間に適し、第3の演算処理は、例えば、5秒≦Tpの運動区間に適している。   FIG. 7 is a flowchart showing an example of the processing operation of the MCU 19 related to the optimum calculation processing. The optimal calculation process shown in FIG. 7 is a process for executing the first calculation process, the second calculation process, or the third calculation process in accordance with the time and condition of the exercise section. Note that the calculation accuracy is highest in the first calculation process, second in the second calculation process, and third in the third calculation process. In addition, the first calculation process is suitable for a motion interval of Tp <1.5 seconds, for example, and the second calculation process is suitable for a motion interval of 1.5 seconds ≦ Tp <5 seconds, for example. The arithmetic processing is suitable for, for example, a motion section of 5 seconds ≦ Tp.

MCU19は、加速度センサ12の検出結果である加速度Sにローパスフィルタ処理を施すことで、重力加速度ベクトルGr1を算出すると共に、角速度センサ13の検出結果である角速度Gの二乗和pを算出する(ステップS41)。   The MCU 19 performs a low-pass filter process on the acceleration S that is the detection result of the acceleration sensor 12, thereby calculating the gravitational acceleration vector Gr1 and the square sum p of the angular velocity G that is the detection result of the angular velocity sensor 13 (step). S41).

MCU19は、二乗和pが所定閾値αを超えた(p>α)か否かを判定する(ステップS42)。MCU19は、二乗和pが所定閾値αを超えた場合(ステップS42肯定)、運動時間の現在時刻を運動区間の開始時刻とする(ステップS43)。   The MCU 19 determines whether or not the sum of squares p exceeds a predetermined threshold value α (p> α) (step S42). When the sum of squares p exceeds the predetermined threshold value α (Yes at Step S42), the MCU 19 sets the current time of the exercise time as the start time of the exercise section (Step S43).

MCU19は、サンプリング時間をt=0に設定し(ステップS44)、加速度S及び角速度Gを抽出し(ステップS45A)、角速度Gの二乗和pを算出する(ステップS45)。MCU19は、角速度Gの二乗和pが所定閾値αを超えたか否かを判定する(ステップS46)。MCU19は、二乗和pが所定閾値αを超えた場合(ステップS46肯定)、サンプリング時間をt=0に設定すべく、ステップS44に移行する。   The MCU 19 sets the sampling time to t = 0 (step S44), extracts the acceleration S and the angular velocity G (step S45A), and calculates the square sum p of the angular velocity G (step S45). The MCU 19 determines whether or not the square sum p of the angular velocities G has exceeded a predetermined threshold value α (step S46). If the sum of squares p exceeds the predetermined threshold value α (Yes at Step S46), the MCU 19 proceeds to Step S44 in order to set the sampling time to t = 0.

また、MCU19は、二乗和pが所定閾値αを超えていない場合(ステップS46否定)、サンプリング時間t=0であるか否かを判定する(ステップS47)。MCU19は、サンプリング時間t=0の場合(ステップS47肯定)、現在時刻を運動区間の終了時刻とする(ステップS48)。   Further, when the sum of squares p does not exceed the predetermined threshold value α (No at Step S46), the MCU 19 determines whether or not the sampling time t = 0 (Step S47). When the sampling time t = 0 (Yes at Step S47), the MCU 19 sets the current time as the end time of the exercise section (Step S48).

MCU19は、終了時刻の重力加速度ベクトルGr2を算出し(ステップS49)、終了時刻からのサンプリング時間tの計時動作を開始し(ステップS50)、サンプリング時間tが所定時間T1以上であるか否かを判定する(ステップS51)。   The MCU 19 calculates the gravitational acceleration vector Gr2 at the end time (step S49), starts the timing operation of the sampling time t from the end time (step S50), and determines whether the sampling time t is equal to or greater than the predetermined time T1. Determination is made (step S51).

MCU19は、サンプリング時間tが所定時間T1以上でない場合(ステップS51否定)、現時点の加速度S及び角速度Gを抽出すべく、ステップS45Aに移行する。また、MCU19は、サンプリング時間tが所定時間T1以上の場合(ステップS51肯定)、終了時刻Ts−開始時刻Teに基づき運動区間Tpを算出する(ステップS52)。   If the sampling time t is not equal to or greater than the predetermined time T1 (No at Step S51), the MCU 19 proceeds to Step S45A to extract the current acceleration S and angular velocity G. Further, when the sampling time t is equal to or longer than the predetermined time T1 (Yes at Step S51), the MCU 19 calculates the exercise section Tp based on the end time Ts-start time Te (Step S52).

MCU19の第1判定部21は、運動区間Tpが第1の経過時間Tx1、例えば、1.5秒を超えた(Tp>1.5秒)か否かを判定する(ステップS53)。第1判定部21は、運動区間Tpが1.5秒を超えていない場合(ステップS53否定)、重力加速度ベクトルGr1と重力加速度ベクトルGr2とがほぼ同一であるか否かを判定する(ステップS54)。 The first determination unit 21 of the MCU 19 determines whether or not the exercise section Tp has exceeded a first elapsed time T x1 , for example, 1.5 seconds (Tp> 1.5 seconds) (step S53). If the motion section Tp does not exceed 1.5 seconds (No at Step S53), the first determination unit 21 determines whether or not the gravity acceleration vector Gr1 and the gravity acceleration vector Gr2 are substantially the same (Step S54). ).

MCU19の制御部25は、重力加速度ベクトルGr1と重力加速度ベクトルGr2とがほぼ同一の場合(ステップS54肯定)、往復運動のため、第1の演算処理を選択して実行し(ステップS55)、図7に示す処理動作を終了する。   When the gravitational acceleration vector Gr1 and the gravitational acceleration vector Gr2 are substantially the same (Yes at Step S54), the control unit 25 of the MCU 19 selects and executes the first arithmetic processing for reciprocation (Step S55). The processing operation shown in FIG.

また、MCU19の第2判定部22は、運動区間Tpが1.5秒を超えた場合(ステップS53肯定)、又は、重力加速度ベクトルGr1と重力加速度ベクトルGr2とが同一でない場合(ステップS54否定)、運動区間Tpが第2の経過時間Tx2、例えば、5秒以上(Tp≧5秒)か否かを判定する(ステップS56)。 Further, the second determination unit 22 of the MCU 19 determines that the motion section Tp exceeds 1.5 seconds (Yes at Step S53), or the gravity acceleration vector Gr1 and the gravity acceleration vector Gr2 are not the same (No at Step S54). Then, it is determined whether or not the motion section Tp is the second elapsed time T x2 , for example, 5 seconds or more (Tp ≧ 5 seconds) (step S56).

制御部25は、運動区間Tpが5秒以上でない場合(ステップS56否定)、第2の演算処理を選択して実行し(ステップS57)、図7に示す処理動作を終了する。   When the exercise section Tp is not 5 seconds or longer (No at Step S56), the control unit 25 selects and executes the second calculation process (Step S57), and ends the processing operation shown in FIG.

また、制御部25は、運動区間Tpが5秒以上の場合(ステップS56肯定)、第3の演算処理を選択して実行し(ステップS58)、図7に示す処理動作を終了する。   Further, when the exercise section Tp is 5 seconds or longer (Yes at Step S56), the control unit 25 selects and executes the third calculation process (Step S58), and ends the processing operation shown in FIG.

運動区間が1.5秒を超えず、かつ、運動区間内の始点の重力加速度ベクトルGr1及び終点の重力加速度ベクトルGr2が同一の場合、往復運動に適した第1の演算処理を実行する。また、運動区間が5秒を超えず、かつ、運動区間内の始点の重力加速度ベクトルGr1及び終点の重力加速度ベクトルGr2が異なる場合、片道運動に適した第2の演算処理を実行する。また、運動区間が5秒以上の場合、第3の演算処理を実行する。   When the motion section does not exceed 1.5 seconds and the gravitational acceleration vector Gr1 at the start point and the gravitational acceleration vector Gr2 at the end point in the motion section are the same, the first calculation process suitable for the reciprocating motion is executed. Further, when the motion section does not exceed 5 seconds and the gravitational acceleration vector Gr1 at the start point and the gravitational acceleration vector Gr2 at the end point in the motion section are different, the second calculation process suitable for the one-way motion is executed. Further, when the motion section is 5 seconds or longer, the third calculation process is executed.

実施例1では、運動区間Tpが1.5秒を超えず、かつ、運動区間内の始点及び終点が同一の往復運動の場合、第1の演算処理を実行する。その結果、情報処理装置1では、例えば、1.5秒未満の往復運動の運動軌跡を高精度に演算できる。   In the first embodiment, when the motion section Tp does not exceed 1.5 seconds and the reciprocating motion is the same in the motion section, the first calculation process is executed. As a result, the information processing apparatus 1 can calculate, for example, a reciprocal motion trajectory of less than 1.5 seconds with high accuracy.

また、実施例1では、運動区間Tpが1.5秒を超えず、かつ、運動区間の始点及び終点が異なる片道運動の場合、又は、運動区間Tpが5秒以上でない場合、第2の演算処理を実行する。その結果、情報処理装置1では、例えば、1.5秒≦Tp<5秒の運動軌跡を高精度に演算できる。   In the first embodiment, the second calculation is performed when the motion section Tp does not exceed 1.5 seconds and the start and end points of the motion section are different, or when the motion section Tp is not 5 seconds or more. Execute the process. As a result, the information processing apparatus 1 can calculate, for example, a motion trajectory of 1.5 seconds ≦ Tp <5 seconds with high accuracy.

また、実施例1では、運動区間Tpが5秒以上の場合、第3の演算処理を実行する。その結果、情報処理装置1では、例えば、5秒以上の長時間の運動軌跡を演算できる。   In the first embodiment, the third calculation process is executed when the motion section Tp is 5 seconds or longer. As a result, the information processing apparatus 1 can calculate a long-time motion trajectory of, for example, 5 seconds or more.

実施例1では、運動区間の時間及び条件に応じて最適な演算処理を選択して実行する。その結果、利用者の時間及び条件に応じた正確な運動軌跡が得られる。   In the first embodiment, the optimum arithmetic processing is selected and executed according to the time and condition of the exercise section. As a result, an accurate motion trajectory according to the user's time and conditions can be obtained.

尚、上記実施例1では、第1の演算処理〜第3の演算処理を区別する閾値として、例えば、1.5秒及び5秒を設定したが、これら数値に限定されるものではなく、適宜変更可能である。   In the first embodiment, for example, 1.5 seconds and 5 seconds are set as thresholds for distinguishing between the first calculation process to the third calculation process. However, the threshold values are not limited to these values, and are appropriately set. It can be changed.

また、側屈運動やひねり運動等の運動では、右方向の片道運動及び左方向の片道運動が連続し、右方向の片道運動が1.49秒、左方向の片道運動が1.5秒の場合がある。この場合、MCU19は、右方向の片道運動で第1の演算処理を選択し、左方向の片道運動で第2の演算処理を選択する。従って、0.01秒の差しかないにもかかわらず、右方向の片道運動及び左方向の片道運動で異なる演算処理を使用することになる。   Also, in movements such as lateral bending and twisting movements, the one-way movement in the right direction and the one-way movement in the left direction are continuous, the one-way movement in the right direction is 1.49 seconds, and the one-way movement in the left direction is 1.5 seconds. There is a case. In this case, the MCU 19 selects the first calculation process by the one-way movement in the right direction and selects the second calculation process by the one-way movement in the left direction. Therefore, different arithmetic processing is used for the one-way movement in the right direction and the one-way movement in the left direction, regardless of the difference of 0.01 seconds.

しかしながら、連続した右方向及び左方向の片道運動で演算処理が異なると、演算処理毎に精度が異なるため、連続する運動では、同一精度の演算処理を使用することが望ましい。そこで、このような実施の形態につき、実施例2として以下に説明する。尚、図1に示す情報処理装置1と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。   However, if the arithmetic processing is different between the continuous rightward and leftward one-way motions, the accuracy differs for each arithmetic processing. Therefore, it is desirable to use the arithmetic processing with the same accuracy for the continuous motions. Therefore, such an embodiment will be described below as Example 2. The same components as those of the information processing apparatus 1 shown in FIG. 1 are denoted by the same reference numerals, and the description of the overlapping configuration and operation is omitted.

選択部24は、指定された期間内の運動区間毎に演算処理を仮選択し、仮選択された演算処理の内、最長の運動区間に仮選択された演算処理を、当該指定された期間内の全運動区間の演算処理として選択する。尚、期間とは、例えば、運動開始から運動終了までの期間に相当する。また、仮選択される演算処理は、第1の演算処理と、第2の演算処理と、第3の演算処理とがある。前述した通り、第1の演算処理は、Tp<1.5秒の往復運動の軌跡演算に適し、第2の演算処理は、例えば、1.5秒≦Tp<5秒の運動の軌跡演算に適し、第3の演算処理は、5秒≦Tpの運動の軌跡演算に適している。   The selection unit 24 temporarily selects a calculation process for each exercise section within a specified period, and selects a calculation process temporarily selected for the longest exercise section among the calculation processes temporarily selected within the specified period. Is selected as the calculation process for all the motion sections. The period corresponds to, for example, a period from the start of exercise to the end of exercise. The temporarily selected calculation processes include a first calculation process, a second calculation process, and a third calculation process. As described above, the first calculation process is suitable for the trajectory calculation of the reciprocating motion of Tp <1.5 seconds, and the second calculation process is, for example, the calculation of the trajectory of the movement of 1.5 seconds ≦ Tp <5 seconds. The third calculation process is suitable for calculating a trajectory of a motion of 5 seconds ≦ Tp.

次に、実施例2の情報処理装置1の動作について説明する。図8は、実施例2の最適演算処理に関わるMCU19の処理動作の一例を示すフローチャートである。   Next, the operation of the information processing apparatus 1 according to the second embodiment will be described. FIG. 8 is a flowchart illustrating an example of the processing operation of the MCU 19 related to the optimal calculation processing according to the second embodiment.

図8においてMCU19は、運動区間の値i=0に設定し(ステップS61)、加速度センサ12の検出結果である加速度S及び角速度センサ13の検出結果である角速度Gの時系列データから運動区間Tpを抽出する(ステップS62)。   In FIG. 8, the MCU 19 sets the motion section value i = 0 (step S 61), and the motion section Tp from the time series data of the acceleration S as the detection result of the acceleration sensor 12 and the angular velocity G as the detection result of the angular velocity sensor 13. Is extracted (step S62).

MCU19は、運動区間Tpが抽出されると、運動区間Tp内の加速度S及び角速度Gの時系列データDをワークメモリ16に格納する(ステップS63)。更に、MCU19の選択部24は、運動区間Tpに適用する演算処理を決定した場合、即適用するのではなく、運動区間Tpに適用する演算処理を仮選択する(ステップS64)。尚、選択部24は、例えば、運動区間Tpが第1の演算処理に仮選択された場合、当該運動区間Tpの値iに対応付けて識別値「0」を設定する。また、MCU19は、第2の演算処理に仮選択された場合、当該運動区間Tpの値iに対応付けて識別値「1」を設定する。更に、MCU19は、第3の演算処理に仮選択された場合、当該運動区間Tpの値iに対応付けて識別値「2」を設定する。尚、識別値「0」→「1」→「2」の順序で高くなる。 MCU19, when motion section Tp is extracted, and stores the time-series data D i of the acceleration S and the angular velocity G in motion interval Tp in the work memory 16 (step S63). Furthermore, if the selection unit 24 of the MCU 19 determines the calculation process to be applied to the exercise section Tp, the selection unit 24 temporarily selects the calculation process to be applied to the movement section Tp instead of immediately applying the calculation process (step S64). For example, when the exercise section Tp is temporarily selected in the first calculation process, the selection unit 24 sets the identification value “0” in association with the value i of the exercise section Tp. Further, when the MCU 19 is temporarily selected in the second calculation process, the MCU 19 sets the identification value “1” in association with the value i of the motion section Tp. Further, when temporarily selected in the third calculation process, the MCU 19 sets an identification value “2” in association with the value i of the motion section Tp. The identification value increases in the order of “0” → “1” → “2”.

MCU19は、運動区間Tpに対応した演算処理を仮選択した後、運動区間Tpの値iを+1インクリメントし(ステップS65)、運動が終了したか否かを判定する(ステップS66)。尚、例えば、所定回数の運動実行、所定時間の経過、角速度Gの二乗和pの閾値αの一定時間T1以上の超過や停止ボタンの押下で運動終了と判定するものとする。   The MCU 19 tentatively selects a calculation process corresponding to the exercise section Tp, and then increments the value i of the exercise section Tp by +1 (step S65), and determines whether or not the exercise has ended (step S66). Note that, for example, it is determined that the exercise is finished when a predetermined number of exercises are executed, a predetermined time elapses, the threshold α of the square sum p of the angular velocity G exceeds a certain time T1, or a stop button is pressed.

MCU19は、運動が終了しなかった場合(ステップS66否定)、運動区間Tpを抽出すべく、ステップS62に移行する。また、MCU19は、運動が終了した場合(ステップS66肯定)、n=0に設定し(ステップS67)、識別値a=0に設定する(ステップS68)。   If the exercise has not ended (No at Step S66), the MCU 19 proceeds to Step S62 in order to extract the exercise section Tp. Further, when the exercise is completed (Yes at Step S66), the MCU 19 sets n = 0 (Step S67) and sets the identification value a = 0 (Step S68).

MCU19は、運動区間の識別値An>aであるか否かを判定する(ステップS69)。MCU19は、An>aの場合(ステップS69肯定)、a=Anに設定し(ステップS70)、次の運動区間を選択すべく、nを+1インクリメントする(ステップS71)。   The MCU 19 determines whether or not the motion section identification value An> a is satisfied (step S69). If An> a (Yes at Step S69), the MCU 19 sets a = An (Step S70), and increments n by +1 to select the next motion section (Step S71).

MCU19は、n=iであるか否かを判定する(ステップS72)。MCU19は、n=iである場合(ステップS72肯定)、全ての運動区間の比較が完了したと判断し、仮選択された演算処理の内、最大の識別値に対応した演算処理を選択し(ステップS73)、図8に示す処理動作を終了する。尚、MCU19は、例えば、運動区間[0]〜運動区間[n]の内、仮選択された演算処理の識別値が「0」、「1」及び「2」の場合、最大の識別値「2」の演算処理である第3の演算処理で全運動区間[0]〜[n]の運動軌跡を演算する。   The MCU 19 determines whether n = i (step S72). If n = i (Yes at step S72), the MCU 19 determines that all the motion sections have been compared, and selects the calculation process corresponding to the maximum identification value among the temporarily selected calculation processes ( Step S73), the processing operation shown in FIG. For example, the MCU 19 determines the maximum identification value “0” when the identification values of the temporarily selected calculation process are “0”, “1”, and “2” in the exercise interval [0] to the exercise interval [n]. The motion trajectory of all motion sections [0] to [n] is calculated in the third calculation process that is the calculation process of “2”.

また、MCU19は、例えば、運動区間[0]〜運動区間[n]の内、仮選択された演算処理の識別値が「0」及び「1」の場合、最大の識別値「1」の演算処理である第2の演算処理で全運動区間の運動軌跡を演算する。また、MCU19は、仮選択された演算処理の識別値が「1」及び「2」の場合、最大の識別値「2」の演算処理である第3の演算処理で全運動区間の運動軌跡を演算する。   For example, the MCU 19 calculates the maximum identification value “1” when the identification values of the temporarily selected calculation process are “0” and “1” in the exercise section [0] to the exercise section [n]. The motion trajectory of the entire motion section is calculated by the second calculation processing that is processing. In addition, when the identification values of the temporarily selected calculation process are “1” and “2”, the MCU 19 determines the movement trajectory of all the movement sections in the third calculation process that is the calculation process of the maximum identification value “2”. Calculate.

実施例2では、指定された運動内の運動区間毎に演算処理を仮選択し、全ての運動が完了した時点で仮選択された演算処理の内、識別値が最大の演算処理を運動全体の演算処理として選択し、選択された演算処理に基づき運動全体の運動軌跡を演算する。その結果、連続する運動区間毎に異なる演算処理を実行するような事態を回避して、同一の演算処理で連続する運動軌跡を演算できる。   In the second embodiment, a calculation process is provisionally selected for each movement section in the designated movement, and the calculation process having the maximum identification value is selected among the calculation processes temporarily selected when all movements are completed. It selects as a calculation process, and calculates the exercise | movement locus | trajectory of the whole exercise | movement based on the selected calculation process. As a result, it is possible to calculate a continuous motion trajectory with the same calculation processing while avoiding a situation where different calculation processing is executed for each continuous motion section.

また、前述した上記実施例1では、例えば、運動区間Tpが1.5秒を超えず、かつ、始点及び終点が同一の場合、第1の演算処理を実行すると共に、運動区間Tpが1.5秒以上、かつ、5秒未満の場合、第2の演算処理を実行する。しかしながら、例えば、運動区間Tpが1.49秒の場合には第1の演算処理を実行するが、運動区間Tpが1.5秒の場合には第2の演算処理を実行するため、僅か0.01秒の差で選択する演算処理が異なる。   In the first embodiment described above, for example, when the motion section Tp does not exceed 1.5 seconds and the start point and the end point are the same, the first calculation process is executed and the motion section Tp is 1. If it is 5 seconds or longer and less than 5 seconds, the second calculation process is executed. However, for example, when the movement section Tp is 1.49 seconds, the first calculation process is executed, but when the movement section Tp is 1.5 seconds, the second calculation process is executed. The calculation process to be selected differs depending on the difference of 01 seconds.

そこで、このような事態に対処した実施の形態につき、実施例3として以下に説明する。図9は、実施例3の情報処理装置1Aの一例を示すブロック図である。尚、図1に示す情報処理装置1と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。図9に示す情報処理装置1AのMCU19は、第4判定部26と、第5判定部27と、第6判定部28と、第7判定部29とを有する。   Therefore, an embodiment that copes with such a situation will be described below as a third embodiment. FIG. 9 is a block diagram illustrating an example of the information processing apparatus 1A according to the third embodiment. The same components as those of the information processing apparatus 1 shown in FIG. 1 are denoted by the same reference numerals, and the description of the overlapping configuration and operation is omitted. The MCU 19 of the information processing apparatus 1A illustrated in FIG. 9 includes a fourth determination unit 26, a fifth determination unit 27, a sixth determination unit 28, and a seventh determination unit 29.

第4判定部26は、運動区間Tpが第3の経過時間Tx3、例えば1.3秒未満、Tp<1.3秒か否かを判定する。第5判定部27は、運動区間Tpが第3の経過時間Tx3と第4の経過時間Tx4、例えば、1.7秒との間の第1の中間時間帯、例えば、1.3秒≦Tp<1.7秒であるか否かを判定する。 The fourth determination unit 26 determines whether or not the motion section Tp is a third elapsed time T x3 , for example, less than 1.3 seconds, and Tp <1.3 seconds. The fifth determination unit 27 determines that the exercise section Tp is a first intermediate time zone between the third elapsed time T x3 and the fourth elapsed time T x4 , for example, 1.7 seconds, for example, 1.3 seconds. It is determined whether or not ≦ Tp <1.7 seconds.

第6判定部28は、運動区間Tpが第4の経過時間Tx4と、第4の経過時間Tx4を超えた第5の経過時間Tx5、例えば、4.8秒との間の第2の中間時間帯、例えば、1.7秒≦Tp<4.8秒であるか否かを判定する。第7判定部29は、運動区間Tpが第5の経過時間Tx5と、第5の経過時間Tx5を超えた第6の経過時間Tx6、例えば、5.2秒との間の第3の中間時間帯、例えば、4.8秒≦Tp<5.2秒であるか否かを判定する。 The sixth determination unit 28 determines the second interval between the fourth elapsed time T x4 and the fifth elapsed time T x5 exceeding the fourth elapsed time T x4 , for example, 4.8 seconds. It is determined whether or not the intermediate time zone is, for example, 1.7 seconds ≦ Tp <4.8 seconds. Seventh determining section 29, a motion section Tp fifth elapsed time T x5 the sixth elapsed time T x6 of exceeding the elapsed time T x5 of the fifth, for example, the third between 5.2 seconds It is determined whether or not the intermediate time zone is, for example, 4.8 seconds ≦ Tp <5.2 seconds.

選択部24は、運動区間Tp内の始点及び終点が同一、かつ、運動区間TpがTp<1.3秒の場合、第1の演算処理を選択する。選択部24は、運動区間Tp内の始点及び終点が同一、かつ、運動区間Tpが1.3秒≦Tp<1.7秒の場合、第1の演算処理及び第2の演算処理を混合した演算処理を選択する。尚、選択部24は、1.3秒≦Tp<1.7秒の場合、第1の中間時間帯の全時間に対する1.3秒からTpまでの時間の比率で第1の演算処理を使用する。更に、選択部24は、第1の中間時間帯の全時間に対するTpから1.7秒直前までの時間との比率に応じて第2の演算処理を使用する。つまり、第1の演算処理及び第2の演算処理を混合使用する。   The selection unit 24 selects the first calculation process when the start point and the end point in the motion section Tp are the same and the motion section Tp is Tp <1.3 seconds. The selection unit 24 mixes the first calculation process and the second calculation process when the start point and the end point in the movement section Tp are the same and the movement section Tp is 1.3 seconds ≦ Tp <1.7 seconds. Select a computation process. Note that when 1.3 seconds ≦ Tp <1.7 seconds, the selection unit 24 uses the first arithmetic processing at a ratio of time from 1.3 seconds to Tp with respect to the total time of the first intermediate time zone. To do. Furthermore, the selection unit 24 uses the second calculation process according to the ratio of the time from Tp to just before 1.7 seconds with respect to the entire time in the first intermediate time zone. That is, the first calculation process and the second calculation process are mixedly used.

選択部24は、運動区間Tpが1.7秒≦Tp<4.8秒の第2の中間時間帯の場合、第2の演算処理を使用する。また、選択部24は、運動区間Tpが4.8秒≦Tp<5.2秒の第3の中間時間帯の場合、第2の演算処理及び第3の演算処理を混合した演算処理を使用する。尚、選択部24は、運動区間Tpが4.8秒≦Tp<5.2秒の場合、第3の中間時間帯の全時間に対する4.8秒からTpまでの時間の比率に応じて第2の演算処理を使用する。更に、選択部24は、第3の中間時間帯の全時間に対するTpから5.2秒直前までの時間との比率に応じて第3の演算処理を使用する。これら第2の演算処理の使用割合と第3の演算処理の使用割合との使用比率で第2の演算処理及び第3の演算処理を混合使用する。   The selection unit 24 uses the second calculation process when the motion section Tp is in the second intermediate time zone of 1.7 seconds ≦ Tp <4.8 seconds. In addition, when the motion section Tp is 4.8 seconds ≦ Tp <5.2 seconds, the selection unit 24 uses a calculation process in which the second calculation process and the third calculation process are mixed. To do. Note that when the motion section Tp is 4.8 seconds ≦ Tp <5.2 seconds, the selection unit 24 selects the first time according to the ratio of the time from 4.8 seconds to Tp with respect to the total time of the third intermediate time zone. 2 arithmetic processing is used. Further, the selection unit 24 uses the third calculation process according to the ratio of the time from Tp to the time immediately before 5.2 seconds with respect to the entire time in the third intermediate time zone. The second calculation process and the third calculation process are mixedly used at the use ratio of the use ratio of the second calculation process and the use ratio of the third calculation process.

選択部24は、運動区間Tpが第6の経過時間、例えば、5.2秒以上、すなわちTp≧5.2秒の場合、第3の演算処理を使用する。   The selection unit 24 uses the third calculation process when the motion section Tp is a sixth elapsed time, for example, 5.2 seconds or more, that is, Tp ≧ 5.2 seconds.

次に実施例3の情報処理装置1Aの動作について説明する。図10は、実施例3の最適演算処理に関わるMCU19の処理動作の一例を示すフローチャートである。図10においてMCU19は、運動区間Tp内の加速度Si(S〜S)及び角速度Gi(G〜G)の時系列データを保存し、運動区間Tpの始点及び終点の重力加速度ベクトルGr1,Gr2を保存する(ステップS81)。 Next, the operation of the information processing apparatus 1A according to the third embodiment will be described. FIG. 10 is a flowchart illustrating an example of the processing operation of the MCU 19 related to the optimum calculation processing according to the third embodiment. In FIG. 10, the MCU 19 stores time series data of acceleration S i (S 0 to S n ) and angular velocity G i (G 0 to G n ) in the motion section Tp, and gravitational acceleration at the start point and end point of the motion section Tp. Vectors Gr1 and Gr2 are stored (step S81).

MCU19は、第1の演算処理を適用して姿勢の回転行列の時系列情報Raiを生成する(ステップS82)。MCU19は、第2の演算処理を適用して姿勢の回転行列の時系列情報Rbiを生成する(ステップS83)。MCU19は、第3の演算処理を適用して姿勢の回転行列の時系列情報Rciを生成する(ステップS84)。 The MCU 19 applies the first calculation process to generate time series information R ai of the posture rotation matrix (step S82). The MCU 19 applies the second calculation process to generate time series information R bi of the posture rotation matrix (step S83). The MCU 19 applies the third calculation process to generate time series information R ci of the posture rotation matrix (step S84).

MCU19は、始点の重力加速度ベクトルGr1と終点の重力加速度ベクトルGr2とがほぼ同一であるか否かを判定する(ステップS85)。MCU19は、Gr1≒Gr2の場合(ステップS85肯定)、運動区間がTp<1.3秒であるか否かを判定する(ステップS86)。   The MCU 19 determines whether or not the gravitational acceleration vector Gr1 at the start point and the gravitational acceleration vector Gr2 at the end point are substantially the same (step S85). When Gr1≈Gr2 (Yes at Step S85), the MCU 19 determines whether or not the motion section is Tp <1.3 seconds (Step S86).

MCU19は、Tp<1.3秒の場合(ステップS86肯定)、第1の演算処理を使用して姿勢RiはRi=Raiとする(ステップS87)。MCU19は、姿勢Ri及び加速度Siに基づき速度Vi及び位置Piを演算する演算処理を実行し(ステップS88)、図10に示す処理動作を終了する。尚、ステップS88の演算処理は、ステップS87で第1の演算処理を使用した場合、第1の演算処理を使用して速度Vi及び位置Piを算出する。 If Tp <1.3 seconds (Yes at Step S86), the MCU 19 uses the first calculation process to set the posture R i to R i = R ai (Step S87). The MCU 19 executes calculation processing for calculating the speed V i and the position P i based on the posture R i and the acceleration S i (step S88), and ends the processing operation shown in FIG. In the calculation process in step S88, when the first calculation process is used in step S87, the speed V i and the position P i are calculated using the first calculation process.

MCU19は、Tp<1.3秒でない場合(ステップS86否定)、運動区間Tpが第1の中間時間帯内、例えば、1.3秒≦Tp<1.7秒であるか否かを判定する(ステップS89)。   If Tp <1.3 seconds is not satisfied (No at Step S86), the MCU 19 determines whether or not the motion section Tp is within the first intermediate time zone, for example, 1.3 seconds ≦ Tp <1.7 seconds. (Step S89).

MCU19は、1.3秒≦Tp<1.7秒の場合(ステップS89肯定)、姿勢Rを第1の演算処理及び第2の演算処理を混合使用したRi=((1.7−Tp)Rai+(Tp−1.3)Rbi)/0.4を算出する(ステップS90)。そして、MCU19は、ステップS90で算出した姿勢Ri及び加速度Siに基づき速度Vi及び位置Piを演算する演算処理を実行すべく、ステップS88に移行する。尚、ステップS88の演算処理は、ステップS90で第1の演算処理及び第2の演算処理を混合使用した場合、ステップS90と同一の使用比率で第1の演算処理及び第2の演算処理を混合使用して速度Vi及び位置Piを算出する。 If 1.3 seconds ≦ Tp <1.7 seconds (Yes in step S89), the MCU 19 uses the orientation R i as a mixture of the first calculation process and the second calculation process, R i = ((1.7− Tp) R ai + (Tp−1.3) R bi ) /0.4 is calculated (step S90). Then, the MCU 19 proceeds to step S88 in order to execute a calculation process for calculating the speed V i and the position P i based on the posture R i and the acceleration S i calculated in step S90. In addition, when the first calculation process and the second calculation process are mixed in step S90, the calculation process in step S88 is a mixture of the first calculation process and the second calculation process at the same usage ratio as in step S90. Used to calculate the speed V i and position P i .

MCU19は、1.3秒≦Tp<1.7秒でない場合(ステップS89否定)、運動区間Tpが第2の中間時間帯内、例えば、1.7秒≦Tp<4.8秒であるか否かを判定する(ステップS91)。MCU19は、1.7秒≦Tp<4.8秒の場合(ステップS91肯定)、第2の演算処理を使用して姿勢RiはRi=Rbiとし(ステップS92)、ステップS88に移行する。尚、ステップS88の演算処理は、ステップS92で第2の演算処理を使用した場合、第2の演算処理を使用して速度Vi及び位置Piを算出する。MCU19は、1.7秒≦Tp<4.8秒でない場合(ステップS91否定)、運動区間Tpが第3の中間時間帯内、例えば、4.8秒≦Tp<5.2秒であるか否かを判定する(ステップS93)。 If the MCU 19 does not satisfy 1.3 seconds ≦ Tp <1.7 seconds (No at Step S89), does the motion section Tp fall within the second intermediate time zone, for example, 1.7 seconds ≦ Tp <4.8 seconds? It is determined whether or not (step S91). In the case of 1.7 seconds ≦ Tp <4.8 seconds (Yes in step S91), the MCU 19 uses the second calculation process to set the posture R i to R i = R bi (step S92), and proceeds to step S88. To do. In the calculation process in step S88, when the second calculation process is used in step S92, the speed V i and the position P i are calculated using the second calculation process. If the MCU 19 is not 1.7 seconds ≦ Tp <4.8 seconds (No at Step S91), does the motion section Tp fall within the third intermediate time zone, for example, 4.8 seconds ≦ Tp <5.2 seconds? It is determined whether or not (step S93).

MCU19は、4.8秒≦Tp<5.2秒の場合(ステップS93肯定)、姿勢Rを第2の演算処理及び第3の演算処理を混合使用したRi=((5.2−Tp)Rbi+(Tp−4.8)Rci)/0.4を算出する(ステップS94)。そして、MCU19は、ステップS94で算出した姿勢Ri及び加速度Siに基づき速度Vi及び位置Piを演算する演算処理を実行すべく、ステップS88に移行する。尚、ステップS88の演算処理は、ステップS94で第2の演算処理及び第3の演算処理を混合使用した場合、ステップS94と同一の使用比率で第2の演算処理及び第3の演算処理を混合使用して速度Vi及び位置Piを算出する。 In the case of 4.8 seconds ≦ Tp <5.2 seconds (Yes in step S93), the MCU 19 uses the posture R i as a mixed value of R i = ((5.2- Tp) R bi + (Tp-4.8) R ci ) /0.4 is calculated (step S94). Then, the MCU 19 proceeds to step S88 in order to execute a calculation process for calculating the speed V i and the position P i based on the posture R i and the acceleration S i calculated in step S94. In addition, when the second calculation process and the third calculation process are mixed and used in step S94, the calculation process of step S88 is a mixture of the second calculation process and the third calculation process at the same usage ratio as step S94. Used to calculate the speed V i and position P i .

MCU19は、4.8秒≦Tp<5.2秒でない場合(ステップS93否定)、運動区間Tpが5.2秒以上と判断し、第3の演算処理を使用して姿勢RiはRi=Rciとし(ステップS95)、ステップS88に移行する。尚、ステップS88の演算処理は、ステップS95で第3の演算処理を使用した場合、第3の演算処理を使用して速度Vi及び位置Piを算出する。 If the MCU 19 does not satisfy 4.8 seconds ≦ Tp <5.2 seconds (No at step S93), the MCU 19 determines that the motion section Tp is 5.2 seconds or more, and uses the third arithmetic processing to change the posture R i to R i. = R ci (step S95), the process proceeds to step S88. In the calculation process in step S88, when the third calculation process is used in step S95, the speed V i and the position P i are calculated using the third calculation process.

尚、ステップS90及びステップS94の処理では、模式的な考えで演算方法を表現したが、回転行列の場合、図11に示す処理動作で演算することになる。図11は、演算処理の一例を示すフローチャートである。尚、図11の処理は、第1の演算処理及び第2の演算処理を混合使用した場合の回転行列に対する分配の一例である。   In the processing of step S90 and step S94, the calculation method is expressed by a schematic idea, but in the case of a rotation matrix, the calculation is performed by the processing operation shown in FIG. FIG. 11 is a flowchart illustrating an example of calculation processing. The process of FIG. 11 is an example of distribution to the rotation matrix when the first calculation process and the second calculation process are mixedly used.

図11においてMCU19は、2列の回転行列の積で誤差RRを算出する(ステップS101)。すなわち、MCU19は、例えば、回転行列Raの逆行列Ra -1と、回転行列Rbとの積で、回転行列Raを回転行列Rbに変換する誤差RRを算出する。MCU19は、算出された誤差RRから回転軸の回転ベクトルQ及び、その変化量である回転量θを算出する(ステップS102)。つまり、回転軸の回転ベクトルQは、回転量θ回転した場合、回転行列Raは回転行列Rbとなる。従って、回転量θが「0」の場合、回転行列Raは回転行列Rのままである。 In FIG. 11, the MCU 19 calculates an error RR by the product of two columns of rotation matrices (step S101). That, MCU 19, for example, the inverse matrix R a -1 rotation matrix R a, by the product of the rotation matrix R b, calculates an error RR for converting the rotation matrix R a in the rotation matrix R b. The MCU 19 calculates the rotation vector Q of the rotation shaft and the rotation amount θ which is the change amount from the calculated error RR (step S102). That is, when the rotation vector Q of the rotation axis rotates by the rotation amount θ, the rotation matrix R a becomes the rotation matrix R b . Therefore, when the rotation amount θ is "0", the rotation matrix R a remains rotation matrix R a.

ここで、MCU19は、0≦k<1のkを用いてφ=kθを算出する(ステップS103)。そして、MCU19は、回転ベクトルQを回転軸としてφ回転させた場合の回転行列QXを算出する(ステップS104)。尚、回転行列QXは、3×3行列である。その要素として回転行列の第1段目の横列は、qx(1−cp)+cp,qxqy(1−cp)−qzsp,qzqx(1−cp)+qyspである。第2段目の横列は、qxqy(1−cp)+qzsp,qy(1−cp)+cp,qyqz(1−cp)−qxspである。第3段目の横列は、qzqx(1−cp)−qysp,qyqz(1−cp)+qxsp,qz(1−cp)+cpである。尚、回転ベクトルQ=(qx,qy,qz)、sp=sinφ及びcp=cosφである。 Here, the MCU 19 calculates φ = kθ using k of 0 ≦ k <1 (step S103). Then, the MCU 19 calculates a rotation matrix QX when the rotation vector Q is rotated by φ using the rotation vector Q as a rotation axis (step S104). The rotation matrix QX is a 3 × 3 matrix. As the elements, the first row of the rotation matrix is qx 2 (1-cp) + cp, qxqy (1-cp) -qzsp, qzqx (1-cp) + qysp. The row of the second stage, qxqy (1-cp) + qzsp, a qy 2 (1-cp) + cp, qyqz (1-cp) -qxsp. The rows of the third stage, qzqx (1-cp) -qysp , qyqz (1-cp) + qxsp, a qz 2 (1-cp) + cp. Note that the rotation vector Q = (qx, qy, qz) T , sp = sinφ, and cp = cosφ.

そして、MCU19は、算出された回転行列QXと回転行列Raとの積で回転行列の姿勢Riを算出し(ステップS105)、図11に示す処理動作を終了する。その結果、第1の演算処理及び第2の演算処理を混合使用して姿勢Riを算出できる。 Then, MCU 19 is a product of the calculated rotation matrix QX and the rotation matrix R a to calculate the attitude R i of the rotation matrix (step S105), and ends the processing operation illustrated in FIG. 11. As a result, the orientation R i can be calculated using a mixture of the first calculation process and the second calculation process.

尚、図11の例では、第1の演算処理及び第2の演算処理を混合使用する場合について説明したが、第2の演算処理及び第3の演算処理を混合使用する場合にも適用可能である。   In the example of FIG. 11, the case where the first arithmetic processing and the second arithmetic processing are mixedly used has been described. However, the present invention can also be applied to the case where the second arithmetic processing and the third arithmetic processing are mixedly used. is there.

実施例3では、運動区間Tpが第1の中間時間帯内の場合、第1の中間時間帯内のTpの比率に応じて第1の演算処理及び第2の演算処理を混合使用し、運動区間Tpの姿勢、速度及び位置を算出し、算出された姿勢及び位置に基づき運動軌跡を算出する。その結果、第1の中間時間帯の運動区間を反映した演算処理を提供できる。   In the third embodiment, when the motion section Tp is in the first intermediate time zone, the first arithmetic processing and the second arithmetic processing are mixed and used according to the ratio of Tp in the first intermediate time zone, The posture, speed, and position of the section Tp are calculated, and the motion trajectory is calculated based on the calculated posture and position. As a result, it is possible to provide a calculation process that reflects the motion section in the first intermediate time zone.

実施例3では、運動区間Tpが第3の中間時間帯内の場合、第3の中間時間帯内のTpの比率に応じて第2の演算処理及び第3の演算処理を混合使用し、運動区間Tpの姿勢、速度及び位置を算出し、算出された姿勢及び位置に基づき運動軌跡を算出する。その結果、第3の中間時間帯の運動区間を反映した演算処理を提供できる。   In the third embodiment, when the motion section Tp is in the third intermediate time zone, the second arithmetic processing and the third arithmetic processing are mixedly used according to the ratio of Tp in the third intermediate time zone, The posture, speed, and position of the section Tp are calculated, and the motion trajectory is calculated based on the calculated posture and position. As a result, it is possible to provide a calculation process that reflects the motion section in the third intermediate time zone.

尚、例えば、第3の経過時間を1.3秒、第4の経過時間を1.7秒、第5の経過時間を4.8秒、第6の経過時間を5.2秒とした。更に、例えば、第1の中間時間帯を1.3秒≦Tp<1.7秒、第2の中間時間帯を1.7秒≦Tp<4.8秒、第3の中間時間帯を4.8秒≦Tp<5.2秒としたが、これら数値に限定されるものではない。   For example, the third elapsed time is 1.3 seconds, the fourth elapsed time is 1.7 seconds, the fifth elapsed time is 4.8 seconds, and the sixth elapsed time is 5.2 seconds. Further, for example, the first intermediate time zone is 1.3 seconds ≦ Tp <1.7 seconds, the second intermediate time zone is 1.7 seconds ≦ Tp <4.8 seconds, and the third intermediate time zone is 4 seconds. Although .8 seconds ≦ Tp <5.2 seconds, it is not limited to these values.

また、上記実施例3では、姿勢を演算する際、演算処理の使用比率を算出し、この使用比率を速度及び位置を演算する際にも使用したが、速度及び位置毎に使用比率を順次算出して割当てるようにしても良い。   In the third embodiment, when calculating the posture, the usage ratio of the calculation process is calculated, and this usage ratio is also used when calculating the speed and position. However, the usage ratio is sequentially calculated for each speed and position. May be assigned.

また、上記実施例3の図10の処理では、例えば、ステップS87の第1の演算処理に移行する場合でも、ステップS83及びステップS84の処理を実行した。しかしながら、ステップS87の第1の演算処理を実行する場合、ステップS83及びステップS84の処理を実行しないようにしても良い。また、ステップS92の第2の演算処理に移行する場合、ステップS82及びステップS84の処理を実行しないようにしても良い。また、ステップS95の第3の演算処理を実行する場合、ステップS82及びステップS83の処理を実行しないようにしても良い。   Further, in the process of FIG. 10 of the third embodiment, for example, even when the process shifts to the first calculation process of step S87, the processes of step S83 and step S84 are executed. However, when the first calculation process of step S87 is executed, the processes of step S83 and step S84 may not be executed. Further, when the process proceeds to the second calculation process of step S92, the processes of step S82 and step S84 may not be executed. Further, when the third calculation process of step S95 is executed, the processes of step S82 and step S83 may not be executed.

また、上記実施例では、MCU19内に第3の演算処理を実行する演算処理部25Aを内蔵するようにしたが、第3の演算処理を実行する演算処理部を別個に設けるようにしても良い。また、演算処理部25Aをハードウェア構成で説明したが、処理プログラムとしてMCU19で実行させるようにしても良い。   In the above embodiment, the arithmetic processing unit 25A for executing the third arithmetic processing is built in the MCU 19, but an arithmetic processing unit for executing the third arithmetic processing may be provided separately. . Further, although the arithmetic processing unit 25A has been described with a hardware configuration, it may be executed by the MCU 19 as a processing program.

また、上記実施例では、加速度センサ12及び角速度センサ13を内蔵した携帯電話機等の情報処理装置を例示して説明したが、タブレット端末等の携帯端末に適用しても良い。   In the above-described embodiment, the information processing apparatus such as a mobile phone including the acceleration sensor 12 and the angular velocity sensor 13 is described as an example. However, the present invention may be applied to a mobile terminal such as a tablet terminal.

また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。   In addition, each component of each part illustrated does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution / integration of each part is not limited to the one shown in the figure, and all or a part thereof may be functionally or physically distributed / integrated in arbitrary units according to various loads and usage conditions. Can be configured.

更に、各装置で行われる各種処理機能は、MCU19(又はCPU(Central Processing Unit)やMPU(Micro Processing Unit)等のマイクロ・コンピュータ)上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、MCU(又はCPUやMPU等のマイクロ・コンピュータ)で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。   Furthermore, the various processing functions performed by each device are executed on the MCU 19 (or on a microcomputer such as a CPU (Central Processing Unit) or MPU (Micro Processing Unit)), all or any part thereof. Also good. Various processing functions may be executed entirely or arbitrarily on a program that is analyzed and executed by an MCU (or a microcomputer such as a CPU or MPU) or on hardware based on wired logic. Needless to say.

1 情報処理装置
1A 情報処理装置
12 加速度センサ
13 角速度センサ
17 プログラム領域
19 MCU
21 第1判定部
22 第2判定部
23 第3判定部
24 選択部
25 制御部
26 第4判定部
27 第5判定部
28 第6判定部
29 第7判定部
DESCRIPTION OF SYMBOLS 1 Information processing apparatus 1A Information processing apparatus 12 Acceleration sensor 13 Angular velocity sensor 17 Program area 19 MCU
21 First determination unit 22 Second determination unit 23 Third determination unit 24 Selection unit 25 Control unit 26 Fourth determination unit 27 Fifth determination unit 28 Sixth determination unit 29 Seventh determination unit

Claims (6)

装置本体と、
加速度を検出する加速度検出部と、
角速度を検出する角速度検出部と、
当該装置本体を装着した身体部位が動作する際の運動が開始された始点から前記運動が終了された終点までの運動期間を確定し、確定された前記運動期間内の前記加速度及び前記角速度に基づき、前記運動期間内の運動軌跡を算出する第1の演算処理と、前記始点から、前記角速度に基づき推定された終点までの運動期間を確定し、確定された前記運動期間内の前記加速度及び前記角速度に基づき、前記運動軌跡を算出する第2の演算処理と、前記始点から前記加速度及び前記角速度に基づき前記運動軌跡を算出する第3の演算処理とを記憶した記憶部と、
前記運動期間内の前記始点からの運動時間が第1の経過時間を超えたか否かを判定する第1判定部と、
前記運動時間が前記第1の経過時間よりも長い第2の経過時間以上であるか否かを判定する第2判定部と、
前記運動時間が前記第1の経過時間を超えていないと判定されると、前記第1の演算処理を選択すると共に、前記運動時間が前記第1の経過時間を超え、かつ、前記第2の経過時間以上でないと判定されると、前記第2の演算処理を選択すると共に、前記運動時間が前記第2の経過時間以上であると判定されると、前記第3の演算処理を選択する選択部と、
前記選択部によって選択された前記演算処理に基づき、前記運動軌跡を算出する制御部と
を有することを特徴とする情報処理装置。
The device body;
An acceleration detector for detecting acceleration;
An angular velocity detector for detecting angular velocity;
Determine the exercise period from the start point of the exercise when the body part to which the apparatus main body is attached to the movement to the end point where the exercise is ended, and based on the acceleration and the angular velocity within the decided exercise period A first computation process for calculating a motion trajectory within the motion period, a motion period from the start point to an end point estimated based on the angular velocity, and the acceleration within the determined motion period and the A storage unit storing a second calculation process for calculating the movement locus based on an angular velocity, and a third calculation process for calculating the movement locus based on the acceleration and the angular velocity from the start point;
A first determination unit for determining whether the exercise time from the start point within the exercise period has exceeded a first elapsed time;
A second determination unit that determines whether or not the exercise time is equal to or longer than a second elapsed time longer than the first elapsed time;
When it is determined that the exercise time does not exceed the first elapsed time, the first calculation process is selected, the exercise time exceeds the first elapsed time, and the second When it is determined that the elapsed time is not greater than or equal to the elapsed time, the second arithmetic process is selected, and when the exercise time is determined to be equal to or greater than the second elapsed time, the third arithmetic process is selected. And
An information processing apparatus comprising: a control unit that calculates the movement trajectory based on the arithmetic processing selected by the selection unit.
前記始点及び前記終点が同一であるか否かを判定する第3判定部を更に有し、
前記選択部は、
前記運動時間が前記第1の経過時間を超えていないと判定され、かつ、前記始点及び前記終点が同一であると判定されると、前記第1の演算処理を選択すると共に、前記運動時間が前記第1の経過時間を超えていないと判定され、かつ、前記始点及び前記終点が同一でないと判定されると、前記第2の演算処理を選択する
ことを特徴とする請求項1に記載の情報処理装置。
A third determination unit that determines whether the start point and the end point are the same;
The selection unit includes:
When it is determined that the exercise time does not exceed the first elapsed time and the start point and the end point are the same, the first calculation process is selected, and the exercise time is selected. The second calculation process is selected when it is determined that the first elapsed time has not been exceeded and the start point and the end point are not the same. Information processing device.
前記選択部は、
指定された期間内の運動期間毎に演算処理を仮選択し、仮選択された演算処理の内、前記運動時間が最長の運動期間に仮選択された演算処理を、当該指定された期間内の全運動期間の演算処理として選択することを特徴とする請求項1に記載の情報処理装置。
The selection unit includes:
A calculation process is provisionally selected for each exercise period within the specified period, and the calculation process temporarily selected for the exercise period with the longest exercise time among the calculation processes temporarily selected is within the specified period. The information processing apparatus according to claim 1, wherein the information processing apparatus is selected as a calculation process for the entire exercise period.
前記第1判定部及び前記第2判定部の代わりに、
前記運動時間が第3の経過時間未満であるか否かを判定する第4判定部と、
前記運動時間が前記第3の経過時間と、前記第3の経過時間よりも長い第4の経過時間との間の第1の中間時間帯内であるか否かを判定する第5判定部と、
前記運動時間が前記第4の経過時間と、前記第4の経過時間よりも長い第5の経過時間との間の第2の中間時間帯内であるか否かを判定する第6判定部と、
前記運動時間が前記第5の経過時間と、前記第5の経過時間よりも長い第6の経過時間との間の第3の中間時間帯内であるか否かを判定する第7判定部と
を有し、
前記選択部は、
前記運動時間が前記第3の経過時間未満と判定されると、前記第1の演算処理を選択すると共に、
前記運動時間が前記第1の中間時間帯内と判定されると、前記第1の中間時間帯の始点から前記運動時間までの時間の当該中間時間帯に対する割合と前記運動時間から前記第1の中間時間帯の終点までの時間の当該中間時間帯に対する割合との比率に基づき前記第1の演算処理及び前記第2の演算処理を選択すると共に、
前記運動時間が前記第2の中間時間帯内と判定されると、前記第2の演算処理を選択すると共に、
前記運動時間が前記第3の中間時間帯内と判定されると、前記第3の中間時間帯の始点から前記運動時間までの時間の当該中間時間帯に対する割合と前記運動時間から前記第3の中間時間帯の終点までの時間の当該中間時間帯に対する割合との比率に基づき前記第2の演算処理及び前記第3の演算処理を選択すると共に、
前記経過時間が前記第6の経過時間以上と判定されると、前記第3の演算処理を選択する
ことを特徴とする請求項1に記載の情報処理装置。
Instead of the first determination unit and the second determination unit,
A fourth determination unit that determines whether or not the exercise time is less than a third elapsed time;
A fifth determination unit that determines whether or not the exercise time is within a first intermediate time period between the third elapsed time and a fourth elapsed time longer than the third elapsed time; ,
A sixth determination unit that determines whether or not the exercise time is within a second intermediate time period between the fourth elapsed time and a fifth elapsed time longer than the fourth elapsed time; ,
A seventh determination unit that determines whether or not the exercise time is within a third intermediate time period between the fifth elapsed time and a sixth elapsed time longer than the fifth elapsed time; Have
The selection unit includes:
When it is determined that the exercise time is less than the third elapsed time, the first calculation process is selected,
When it is determined that the exercise time is within the first intermediate time zone, the first time from the start point of the first intermediate time zone to the exercise time with respect to the intermediate time zone and the exercise time, the first time While selecting the first calculation process and the second calculation process based on the ratio of the time to the end point of the intermediate time zone and the ratio to the intermediate time zone,
When the exercise time is determined to be within the second intermediate time zone, the second calculation process is selected,
When it is determined that the exercise time is within the third intermediate time zone, a ratio of a time from a start point of the third intermediate time zone to the exercise time with respect to the intermediate time zone and the exercise time are used to determine the third time zone. Selecting the second calculation process and the third calculation process based on the ratio of the time to the end point of the intermediate time period and the ratio to the intermediate time period;
The information processing apparatus according to claim 1, wherein when the elapsed time is determined to be equal to or longer than the sixth elapsed time, the third arithmetic process is selected.
加速度を検出する加速度検出部と、角速度を検出する角速度検出部と、プロセッサとを有する情報処理装置の情報処理プログラムであって、
当該情報処理装置を装着した身体部位が動作する際の運動が開始された始点から前記運動が終了された終点までの運動期間を確定し、前記運動期間内の前記始点からの運動時間が第1の経過時間を超えていないと判定されると、確定された前記運動期間内の前記加速度及び前記角速度に基づき、前記運動期間内の運動軌跡を算出する第1の演算処理を選択すると共に、前記運動時間が前記第1の経過時間を超え、かつ、前記第1の経過時間よりも長い第2の経過時間以上でないと判定されると、前記始点から、前記角速度に基づき推定された終点までの運動期間を確定し、確定された前記運動期間内の前記加速度及び前記角速度に基づき、前記運動軌跡を算出する第2の演算処理を選択すると共に、前記運動時間が前記第2の経過時間以上であると判定されると、前記始点から前記加速度及び前記角速度に基づき前記運動軌跡を算出する第3の演算処理を選択し、
選択された演算処理に基づき、前記運動軌跡を算出する
各処理を前記プロセッサに実行させることを特徴とする情報処理プログラム。
An information processing program for an information processing apparatus having an acceleration detection unit for detecting acceleration, an angular velocity detection unit for detecting angular velocity, and a processor,
The exercise period from the start point at which the exercise when the body part to which the information processing device is mounted is operated to the end point at which the exercise is completed is determined, and the exercise time from the start point within the exercise period is first. If it is determined that the elapsed time is not exceeded, a first calculation process for calculating a motion trajectory within the exercise period is selected based on the determined acceleration and angular velocity within the exercise period, and If it is determined that the exercise time exceeds the first elapsed time and is not equal to or longer than the second elapsed time longer than the first elapsed time, from the start point to the end point estimated based on the angular velocity A motion period is determined, and a second calculation process for calculating the motion trajectory is selected based on the acceleration and the angular velocity within the determined motion period, and the motion time is equal to or longer than the second elapsed time. If it is determined that, to select the third arithmetic process for calculating the motion trajectory based on the acceleration and the angular velocity from the start point,
An information processing program for causing the processor to execute each process for calculating the motion trajectory based on a selected arithmetic process.
加速度を検出する加速度検出部と、角速度を検出する角速度検出部とを有する情報処理装置の情報処理方法であって、
前記情報処理装置が、
当該情報処理装置を装着した身体部位が動作する際の運動が開始された始点から前記運動が終了された終点までの運動期間を確定し、前記運動期間内の前記始点からの運動時間が第1の経過時間を超えていないと判定されると、確定された前記運動期間内の前記加速度及び前記角速度に基づき、前記運動期間内の運動軌跡を算出する第1の演算処理を選択すると共に、前記運動時間が前記第1の経過時間を超え、かつ、前記第1の経過時間よりも長い第2の経過時間以上でないと判定されると、前記始点から、前記角速度に基づき推定された終点までの運動期間を確定し、確定された前記運動期間内の前記加速度及び前記角速度に基づき、前記運動軌跡を算出する第2の演算処理を選択すると共に、前記運動時間が前記第2の経過時間以上であると判定されると、前記始点から前記加速度及び前記角速度に基づき前記運動軌跡を算出する第3の演算処理を選択し、
選択された演算処理に基づき、前記運動軌跡を算出する
各処理を実行することを特徴とする情報処理方法。
An information processing method for an information processing apparatus having an acceleration detection unit for detecting acceleration and an angular velocity detection unit for detecting angular velocity,
The information processing apparatus is
The exercise period from the start point at which the exercise when the body part to which the information processing device is mounted is operated to the end point at which the exercise is completed is determined, and the exercise time from the start point within the exercise period is first. If it is determined that the elapsed time is not exceeded, a first calculation process for calculating a motion trajectory within the exercise period is selected based on the determined acceleration and angular velocity within the exercise period, and If it is determined that the exercise time exceeds the first elapsed time and is not equal to or longer than the second elapsed time longer than the first elapsed time, from the start point to the end point estimated based on the angular velocity A motion period is determined, and a second calculation process for calculating the motion trajectory is selected based on the acceleration and the angular velocity within the determined motion period, and the motion time is equal to or longer than the second elapsed time. If it is determined that, to select the third arithmetic process for calculating the motion trajectory based on the acceleration and the angular velocity from the start point,
An information processing method comprising: executing each process of calculating the motion trajectory based on a selected arithmetic process.
JP2012017323A 2012-01-30 2012-01-30 Information processing apparatus, information processing program, and information processing method Expired - Fee Related JP6035749B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012017323A JP6035749B2 (en) 2012-01-30 2012-01-30 Information processing apparatus, information processing program, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012017323A JP6035749B2 (en) 2012-01-30 2012-01-30 Information processing apparatus, information processing program, and information processing method

Publications (2)

Publication Number Publication Date
JP2013153975A JP2013153975A (en) 2013-08-15
JP6035749B2 true JP6035749B2 (en) 2016-11-30

Family

ID=49049779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012017323A Expired - Fee Related JP6035749B2 (en) 2012-01-30 2012-01-30 Information processing apparatus, information processing program, and information processing method

Country Status (1)

Country Link
JP (1) JP6035749B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6277674B2 (en) * 2013-10-30 2018-02-14 富士通株式会社 Information processing apparatus, method of operating information processing apparatus, and program
JP6648833B2 (en) 2016-08-30 2020-02-14 富士通株式会社 Information processing apparatus, information processing system, information processing method, and information processing program
KR102245204B1 (en) * 2019-05-29 2021-04-27 서울대학교산학협력단 Spinal motion analysis system and Spinal motion analysis method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8351958B2 (en) * 2008-07-15 2013-01-08 Panasonic Corporation Mobile device and method for identifying location thereof
JP5421571B2 (en) * 2008-11-05 2014-02-19 国立大学法人弘前大学 Walking characteristic evaluation system and locus generation method
JP5870656B2 (en) * 2011-11-30 2016-03-01 富士通株式会社 Trajectory calculation device and trajectory calculation method

Also Published As

Publication number Publication date
JP2013153975A (en) 2013-08-15

Similar Documents

Publication Publication Date Title
JP6183906B2 (en) Gait estimation device and program, fall risk calculation device and program
KR101751760B1 (en) Method for estimating gait parameter form low limb joint angles
US20150149104A1 (en) Motion Tracking Solutions Using a Self Correcting Three Sensor Architecture
US20140229135A1 (en) Motion analysis apparatus and motion analysis method
US9599634B2 (en) System and method for calibrating inertial measurement units
US8186217B2 (en) Device and method for measuring the dynamic interaction between bodies
WO2017005130A1 (en) Method and device for measuring energy used by human body during exercise, and pedometer
JP6035749B2 (en) Information processing apparatus, information processing program, and information processing method
CN107613867B (en) Action display system and recording medium
JP5233000B2 (en) Motion measuring device
US20180111021A1 (en) Exercise analysis device, exercise analysis system, and exercise analysis method
Salehi et al. Body-IMU autocalibration for inertial hip and knee joint tracking
JP5633472B2 (en) Electronic device and tilt balance calculation program
WO2016033717A1 (en) Combined motion capturing system
JP5870656B2 (en) Trajectory calculation device and trajectory calculation method
JP2009186244A (en) Tilt angle estimation system, relative angle estimation system, and angular velocity estimation system
KR102182974B1 (en) System for supporting virtual reality indoor bike exercise and method thereof
JP5691387B2 (en) Gait measuring device, gait measuring method and program
JP2010127921A (en) Moving type floor reaction force measuring device
JP6277694B2 (en) Pedometer
KR102229070B1 (en) Motion capture apparatus based sensor type motion capture system and method thereof
JP2016158699A (en) Landing position evaluation method and landing position evaluation apparatus
JP2022058484A (en) 3d geolocation system
JP5424224B2 (en) Relative angle estimation system
CN108697377A (en) gait analyzer system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150818

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160329

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160530

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161017

R150 Certificate of patent or registration of utility model

Ref document number: 6035749

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees