Swing analysis device, non-transitory computer-readable storage medium storing program for analyzing swing, and swing analysis system
10046220 ยท 2018-08-14
Assignee
Inventors
Cpc classification
A63B2220/833
HUMAN NECESSITIES
A63B2225/50
HUMAN NECESSITIES
A63B2220/17
HUMAN NECESSITIES
A63B2225/20
HUMAN NECESSITIES
A63B2071/065
HUMAN NECESSITIES
G06V40/23
PHYSICS
G09B19/00
PHYSICS
A63B71/0622
HUMAN NECESSITIES
International classification
A63B24/00
HUMAN NECESSITIES
A63B69/00
HUMAN NECESSITIES
Abstract
A swing analysis device for analyzing a swing of a ball hitting tool includes: an information input unit configured to receive input of acceleration information and angular velocity information detected by a sensor attached to the ball hitting tool; a posture calculation unit configured to calculate posture information of the ball hitting tool in the swing by applying a predetermined filter to the acceleration information and the angular velocity information; a correction unit configured to correct the posture information of the ball hitting tool in the swing based on the posture information of the ball hitting tool at a first time in the swing; and a swing information calculation unit configured to calculate a swing trajectory of the ball hitting tool based on the acceleration information and the posture information of the ball hitting tool corrected by the correction unit.
Claims
1. A swing analysis device for analyzing a plurality of swings of a ball hitting tool, the swing analysis device comprising: an information input unit configured to receive input of acceleration information and angular velocity information detected by a sensor attached to the ball hitting tool; and a swing analysis unit configured to analyze, for each of the plurality of continuous swings, the swing during a certain period from a first time preceding a predetermined time of the swing to a second time after the predetermined time, wherein the predetermined time is a time at which a velocity of the ball hitting tool, which is calculated based on the angular velocity information, reaches a predetermined threshold value, the swing analysis unit including a posture calculation unit configured to calculate posture information of the ball hitting tool in the certain period by applying a predetermined filter to the acceleration information and the angular velocity information, wherein the posture information includes a first rotation matrix for conversion from a sensor coordinate system to a global coordinate system, and the first rotation matrix is obtained by converting a quaternion indicating a posture of the ball hitting tool; a correction unit configured to correct the first rotation matrix of the ball hitting tool in the certain period based on the first rotation matrix of the ball hitting tool at particular time in the certain period; and a swing information calculation unit configured to calculate a swing trajectory of the ball hitting tool in the certain period based on the acceleration information and the first rotation matrix of the ball hitting tool corrected by the correction unit, wherein the particular time is a time at which the velocity of the ball hitting tool, which is calculated based on the angular velocity information, is at a maximum in the certain period.
2. The swing analysis device according to claim 1, further comprising a number calculation unit configured to calculate the number of swings of the ball hitting tool based on the number of times the velocity of the ball hitting tool calculated based on the angular velocity information reaches a predetermined velocity.
3. The swing analysis device according to claim 1, wherein the swing information calculation unit further calculates a maximum velocity of a head of the ball hitting tool in the certain period based on the acceleration information and the posture information of the ball hitting tool corrected by the correction unit.
4. The swing analysis device according to claim 1, wherein the predetermined filter includes an extended Kalman filter.
5. The swing analysis device according to claim 1, wherein the correction unit is configured to correct the first rotation matrix by multiplying the first rotation matrix by a transposed matrix of a second rotation matrix indicating rotation around a vertical direction at the specific time.
6. A non-transitory computer-readable storage medium storing a program for causing a computer to analyze a plurality of swings of a ball hitting tool, the program causing the computer to perform: receiving input of acceleration information and angular velocity information detected by a sensor attached to the ball hitting tool; and analyzing, for each of the plurality of continuous swings, the swing for a certain period from a first time before a predetermined time of the swing to a second time after the predetermined time, wherein the predetermined time is a time at which a velocity of the ball hitting tool, which is calculated based on the angular velocity information, reaches a predetermined threshold value, the analyzing including: calculating posture information of the ball hitting tool in the certain period by applying a predetermined filter to the acceleration information and the angular velocity information, wherein the posture information includes a first rotation matrix for conversion from a sensor coordinate system to a global coordinate system, and the first rotation matrix is obtained by converting a quaternion indicating a posture of the ball hitting tool; correcting the first rotation matrix of the ball hitting tool in the certain period based on the posture information of the ball hitting tool at a particular time in the certain period; and calculating a swing trajectory of the ball hitting tool in the certain period based on the acceleration information and the corrected first rotation matrix of the ball hitting tool, wherein the particular time is a time at which the velocity of the ball hitting tool, which is calculated based on the angular velocity information, is at a maximum in the certain period.
7. A swing analysis system comprising: a sensor attached to a ball hitting tool; and a swing analysis device configured to analyze a plurality of swings of the ball hitting tool, the swing analysis device including: an information input unit configured to receive input of acceleration information and angular velocity information detected by the sensor attached to the ball hitting tool; and a swing analysis unit configured to analyze, for each of the plurality of swings, the swing for a certain period from a first time preceding a predetermined time to a second time after the predetermined time, wherein the predetermined time is a time at which a velocity of the ball hitting tool, which is calculated based on the angular velocity information, reaches a predetermined threshold value, the swing analysis unit including: a posture calculation unit configured to calculate posture information of the ball hitting tool in the certain period by applying a predetermined filter to the acceleration information and the angular velocity information, wherein the posture information includes a first rotation matrix for conversion from a sensor coordinate system to a global coordinate system, and the first rotation matrix is obtained by converting a quaternion indicating a posture of the ball hitting tool; a correction unit configured to correct the first rotation matrix of the ball hitting tool in the certain period based on the first rotation matrix of the ball hitting tool at a particular time in the certain period, and a swing information calculation unit configured to calculate a swing trajectory of the ball hitting tool in the certain period based on the acceleration information and the first rotation matrix of the ball hitting tool corrected by the correction unit, wherein the particular time is a time at which the velocity of the ball hitting tool, which is calculated based on the angular velocity information, is at a maximum in the certain period.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DESCRIPTION OF THE PREFERRED EMBODIMENTS
(13) Hereinafter, the present embodiment will be described. It should be noted that the same or corresponding components will be given the same reference characters and may not be described repeatedly.
(14) It should be also noted that when referring to the number, an amount, or the like in the embodiment described below, the scope of the present invention is not necessarily limited to the number, the amount, or the like unless otherwise stated particularly. Moreover, in the embodiment below, each component is not necessarily essential for the present invention unless otherwise particularly stated.
(15) <Configuration of System>
(16)
(17) Bat 80 may be any bat, such as a bat prepared by the batter or a bat prepared by a different person. Moreover, the batter may make a practice swing, may swing against a ball placed on a tee, or may swing against a thrown ball.
(18) Swing analysis device 10 is constituted of a smartphone. However, swing analysis device 10 may be implemented as any device regardless of its type. For example, swing analysis device 10 may be a device such as a notebook PC (Personal Computer), a tablet terminal, a PDA (Personal Digital Assistance), a desktop PC, or the like.
(19) Swing analysis device 10 communicates with sensor device 20 using wireless communication such as Bluetooth, wireless LAN (Local Area Network), or infrared ray communication. It should be noted that swing analysis device 10 may be configured to be capable of communicating with sensor device 20 using wired communication such as USB (Universal Serial Bus).
(20) Sensor device 20 includes: an angular velocity sensor capable of detecting angular velocities (hereinafter, also referred to as angular velocity information) around three axes (the X axis, the Y axis, and the Z axis) orthogonal to one another; and an acceleration sensor capable of detecting accelerations (hereinafter, also referred to as acceleration information) in the directions of the three axes (the X axis, the Y axis, and the Z axis) orthogonal to one another.
(21) Moreover, sensor device 20 is attached to a grip end portion of bat 80 such that the acceleration sensor and angular velocity sensor of sensor device 20 are less affected by bat vibrations. Sensor device 20 is firmly fixed to the grip end portion so as not to move during a swing of bat 80. Preferably, the acceleration sensor included in sensor device 20 is provided on the longitudinal axis of bat 80 to avoid influence of centrifugal acceleration resulting from rotation around the longitudinal axis of bat 80. Here, it is assumed that the Z axis in the sensor coordinate system corresponds to the longitudinal axis of the bat, and the X axis and the Y axis can be appropriately set. Moreover, it is also assumed that the Z axis in the global coordinate system corresponds to the vertical direction, and the X axis and the Y axis can be appropriately set.
(22) <Overview of Operation of System>
(23)
(24) With reference to
(25) Swing analysis device 10 applies an extended Kalman filter to the angular velocity information and acceleration information obtained from sensor device 20, thereby calculating posture information of sensor device 20 (the grip end portion of bat 80) (step S300). Swing analysis device 10 corrects the posture information in accordance with a method described later (step S400). Although details will be described later, the process of step S400 is a process for correcting an azimuth error of sensor device 20.
(26) Using the corrected posture information, swing analysis device 10 performs coordinate conversion of (i) the acceleration information (in the sensor coordinate system) received from sensor device 20 into (ii) acceleration information in the global coordinate system (step S500). Then, swing analysis device 10 performs time integral of the acceleration information (in the global coordinate system) thus having been through the coordinate conversion, thereby calculating swing trajectory and head velocity (step S600). Swing analysis device 10 notifies the calculation result to the batter (step S700). Specifically, swing analysis device 10 displays, on a display, an image indicating the swing trajectory and the head velocity. Accordingly, the batter can check his/her swing trajectory and head velocity.
(27) In swing analysis system 1000 according to the present embodiment, the posture information of sensor device 20 (grip end portion of bat 80) is corrected for each swing performed by the subject (step S400). Accordingly, even when the subject continuously swings for a plurality of times, an influence from accumulation of azimuth errors can be avoided, whereby an appropriate swing trajectory can be calculated for each swing.
(28) The following provides detailed description of the above-described swing analysis system and a swing analysis method employed therein.
(29) <Hardware Configuration>
(30) (Swing Analysis Device 10)
(31)
(32) CPU 102 reads and executes a program stored in memory 104, thereby controlling an operation of each component of swing analysis device 10. More specifically, CPU 102 executes the program to implement each of below-described processes (steps) of swing analysis device 10.
(33) Memory 104 is implemented by a RAM (Random Access Memory), a ROM (Read-Only Memory), a flash memory, or the like. Memory 104 stores a program executed by CPU 102, data used by CPU 102, or the like.
(34) Touch panel 106, which is provided on display 110 having a function as a display unit, may be of any type, such as a resistance film type or a capacitance type. Button 108 is provided at a surface of swing analysis device 10, receives an instruction from the user, and sends the instruction to CPU 102.
(35) Wireless communication unit 112 is connected to a mobile communication network via communication antenna 113 to transmit/receive a signal for wireless communication. Accordingly, swing analysis device 10 can communicate with a predetermined external device via a mobile communication network such as third generation mobile communication systems (3G) or LTE (Long Term Evolution).
(36) Memory interface (I/F) 114 reads data from external storage medium 115. That is, CPU 102 reads, via memory interface 114, data stored in external storage medium 115 and stores the data into memory 104. CPU 102 reads data from memory 104 and stores the data into external storage medium 115 via memory interface 114.
(37) It should be noted that examples of storage medium 115 includes mediums configured to store programs in a nonvolatile manner, such as a CD (Compact Disc), a DVD (Digital Versatile Disk), a BD (Blu-Ray Disc), a USB (Universal Serial Bus) memory, a memory card, a FD (Flexible Disk), and a hard disk.
(38) Speaker 116 outputs a sound based on a command from CPU 102. Microphone 118 receives speech made to swing analysis device 10.
(39) For example, communication interface (I/F) 120 is a communication interface for transmitting and receiving data between swing analysis device 10 and sensor device 20 and is implemented by an adapter, a connector, and the like. A communication method is, for example, Bluetooth, wireless communication by a wireless LAN or the like, or wired communication using USB.
(40) (Sensor Device 20)
(41)
(42) <Functional Configuration>
(43) Next, the following describes a functional configuration for implementing swing analysis device 10.
(44) With reference to
(45) Information input unit 150 receives input of acceleration information and angular velocity information both detected by sensor device 20 attached to bat 80. In the present embodiment, sensor device 20 is attached to the grip end portion of bat 80. Hence, information input unit 150 receives input of acceleration information and angular velocity information of the grip end portion. It should be noted that typically, information input unit 150 receives acceleration information and angular velocity information from sensor device 20 via communication interface 120. It should be also noted that information input unit 150 may receive input of these pieces of information via touch panel 106 (or button 108).
(46) Posture calculation unit 152 applies a predetermined filter (extended Kalman filter in the present embodiment) to the acceleration information and angular velocity information of the grip end portion of bat 80, thereby calculating posture information of the grip end portion in the swing. Specifically, posture calculation unit 152 applies the predetermined filter to the acceleration information and angular velocity information, thereby calculating a quaternion indicating a posture of the grip end portion. Then, posture calculation unit 152 converts the quaternion into a rotation matrix for conversion from the sensor coordinate system to the global coordinate system. Thus, as the posture information of the grip end portion, posture calculation unit 152 calculates the rotation matrix corresponding to the quaternion.
(47) Correction unit 154 corrects the posture information of the grip end portion in the swing based on the posture information (rotation matrix) of the grip end portion at a first time in the swing. The first time includes a time at which the velocity (in the sensor coordinate system) of the head portion of bat 80 calculated based on the length of bat 80 and the angular velocity information is at maximum in the swing. Alternatively, the first time may be a time at which the velocity (in the sensor coordinate system) of the head portion reaches a predetermined velocity (for example, 20 km/h) in the swing.
(48) Among pieces of the posture information of the grip end portion in the swing, correction unit 154 corrects a piece of the posture information of the grip end portion during a certain period from a time before a second time to a time after the second time (past and future) in the swing. The second time is a time at which the velocity (in the sensor coordinate system) of the head portion reaches a predetermined velocity (for example, 20 km/h) in the swing. That is, the first time and the second time may be the same.
(49) Swing information calculation unit 156 calculates a swing trajectory of bat 80 based on the acceleration information (in the sensor coordinate system) received by information input unit 150 and the posture information of the grip end portion corrected by correction unit 154.
(50) Specifically, swing information calculation unit 156 employs the corrected posture information of the grip end portion to perform coordinate conversion of the acceleration information in the sensor coordinate system into acceleration information in the global coordinate system. Swing information calculation unit 156 calculates velocity information (in the global coordinate system) of the grip end portion from the acceleration information (in the global coordinate system) by way of time integral and calculates position information of the grip end portion (in the global coordinate system) by way of second-order time integral. Swing information calculation unit 156 calculates the position information of the head portion (in the global coordinate system) based on the length of bat 80 and the position information of the grip end portion (in the global coordinate system). Moreover, swing information calculation unit 156 can also calculate the maximum velocity of the head portion of bat 80 in the swing based on the length of bat 80 and the velocity information of the grip end portion (in the global coordinate system).
(51) It should be noted that when the velocity (resultant velocity) of the grip end portion calculated based on the angular velocity information (in the sensor coordinate system) received by information input unit 150 is equal to or more than a threshold value Vth (for example, 10 rad/(sec)), swing information calculation unit 156 may calculate the swing trajectory of bat 80 by performing time integral as described above. Specifically, when the velocity (resultant angular velocity) of the grip end portion is less than threshold value Vth, it is considered that the subject does not swing and prepares for swing. If time integral is performed during the preparation of swing, integral errors are accumulated to presumably result in failing to obtain an appropriate swing trajectory. To address this, when it is estimated that the subject is swinging, swing information calculation unit 156 performs time integral to calculate the swing trajectory of bat 80.
(52) Number calculation unit 158 calculates the number of swings of bat 80 based on the number of times the resultant velocity (in the sensor coordinate system) of the head portion of bat 80 calculated based on the length of bat 80 and the angular velocity information reaches the predetermined velocity (for example, 20 km/h). Preferably, the predetermined velocity is a velocity with which it can be estimated that a swing has been started.
(53) Notification unit 160 notifies the calculation result (and calculation result of number calculation unit 158) of swing information calculation unit 156 to the subject. For example, notification unit 160 causes display 110 to display an image indicating the calculation result. Alternatively, notification unit 160 causes speaker 116 to output a sound indicating the calculation result.
(54) <Details of Swing Analysis Process>
(55) Next, the following provides detailed description of a flow of the swing analysis process performed by swing analysis device 10 according to the present embodiment. Generally, a batter actually starts a swing after performing a routine (which differs among batters) such as re-gripping a bat or moving a hand or foot. Swing analysis device 10 always receives sensor information (acceleration information and angular velocity information) from sensor device 20; however, a process load will be large if sensor information obtained when making a movement irrelevant to the actual swing as described above is also subjected to the calculation process. To address this, in order to reduce the process load, swing analysis device 10 is configured to perform the swing analysis process using sensor information obtained during a certain period from a time before the swing to a time after the swing.
(56)
(57) With reference to
(58) CPU 102 calculates a head resultant velocity (in the sensor coordinate system) of bat 80 using the angular velocity information and below-described equations (1) to (3) (step S12). Specifically, in the sensor coordinate system, when it is assumed that angular velocities around the X axis, the Y axis, and the Z axis at the grip end portion are respectively indicated by .sub.x, .sub.y, and .sub.z, an angular velocity vector is indicated as in the following equation (1):
(59)
(60) By using the equation (1) and a vector r of the head portion in the sensor coordinate system, a velocity vector V.sub.hs of the head portion is indicated as in the equation (2). It should be noted that V.sub.hsx, V.sub.hsy, and V.sub.hsz are respective velocities in the X axis, the Y axis, and the Z axis (the sensor coordinate system) at the head portion.
(61)
(62) From the equation (2), a resultant velocity V.sub.hcs of the head portion in the sensor coordinate system is derived as in the following equation (3):
V.sub.hcs={square root over (V.sub.hsx.sup.2+V.sub.hsy.sup.2+V.sub.hsz.sup.2)}(3)
(63) Next, CPU 102 determines whether or not resultant velocity V.sub.hcs (in the sensor coordinate system) of the head portion is equal to or more than a threshold value A (step S14). Threshold value A is set at a velocity with which it is estimated that a subject has started a swing, such as 20 km/h. It should be noted that threshold value A is stored in memory 104 and can be appropriately changed by the user.
(64) When resultant velocity V.sub.hcs of the head portion is less than threshold value A, CPU 102 repeats the process from step S10. Specifically, CPU 102 determines that the subject has not started a swing, and does not transition to the next process. On the other hand, when resultant velocity V.sub.hcs of the head portion is equal to or more than threshold value A, CPU 102 calculates a time ts at which resultant velocity V.sub.hcs reaches threshold value A (step S16). Then, CPU 102 makes reference to memory 104, and performs the swing analysis process using time-series data of sensor information obtained during a predetermined period Ta from a time before time ts to a time after time ts (step S18). Predetermined period Ta is set to include a period from the start time of the swing to the end time of the swing. For example, predetermined period Ta is set as a period from a time one second before time ts to a time one second after time ts.
(65) Hereinafter, the swing analysis process will be described in detail.
(66) With reference to
(67) CPU 102 receives (i) accelerations (in the sensor coordinate system) in the directions of the X axis, the Y axis, and the Z axis at the grip end portion and (ii) angular velocities (in the sensor coordinate system) around the X axis, the Y axis, and the Z axis at the grip end portion, and solves below-described nonlinear state equation (4) and nonlinear observation equation (5). It should be noted that j(t), F(j(t)), and W(t) in the equation (4) respectively indicate a state quantity, a linear model for time transition of the system, and system noise. Moreover, k(t), H(j(t)), and m(t) in the equation (5) respectively indicate an observation quantity, an observation model for linear mapping of a state space to an observation space, and observation noise.
j(t)=F(j(t))+W(t)(4)
k(t)=H(j(t))+m(t)(5)
(68) Moreover, j(t) and F(j(t)) in the equation (4) are respectively indicated as in equations (6) and (7-1) or (7-2). Moreover, q(t) in the equation (6) is the quaternion indicating the grip end posture at certain time t during predetermined period Ta. T.sub.s in the equations (7-1) and (7-2) is the sampling period in sensor device 20. It should be noted that the equation (7-2) is an equation in which bias errors b.sub.x, b.sub.y, b.sub.z of sensor device 20 are taken into consideration with regard to the equation (7-1).
(69)
(70) Further, k(t) and H(j(t)) in the equation (5) are respectively indicated as in equations (8) and (9). Rq(t) in the equation (9) is obtained by converting q(t) (quaternion) into the rotation matrix for conversion from the sensor coordinate system to the global coordinate system.
(71)
(72) By using the equations (4) to (9) mentioned above, quaternion q(t) is derived which indicates the grip end posture at certain time t during predetermined period Ta.
(73) A quaternion is a vector composed of four variables including three imaginary numbers q1, q2, and q3 and one real number q4. In a posture representation with roll, pitch, and yaw, there is a singularity problem such as gimbal lock; however, in the quaternion, there is no singularity and all the postures can be represented.
(74) Next, CPU 102 converts the derived grip end posture q(t) into the rotation matrix for conversion from the sensor coordinate system to the global coordinate system (step S52). Specifically, Rq(t) (hereinafter, also referred to as grip end posture (rotation matrix) Rq(t)), which is obtained by converting the grip end posture (quaternion) at time t for conversion from the sensor coordinate system to the rotation matrix in the global coordinate system, is indicated as in the following equation (10):
(75)
(76) Next, at time t, CPU 102 determines whether or not the grip end portion is in an acceleration state (step S54). Specifically, at time t, CPU 102 determines whether or not the resultant acceleration of the grip end portion (in the sensor coordinate system) satisfies an equation (11) below. It should be noted that a.sub.x(t), a.sub.y(t), and a.sub.z(t) in the equation (11) are respective accelerations in the directions of the X axis, the Y axis, and the Z axis (the sensor coordinate system) at the grip end portion at time t.
0.9<{square root over (a.sub.x(t).sup.2+a.sub.y(t).sup.2+a.sub.z(t).sup.2)}<1.2(11)
(77) The equation (11) employs such a fact that when sensor device 20 is in a stationary state, the acceleration sensor detects a gravity acceleration of 1 g (9.8 m/s.sup.2). Specifically, when the resultant acceleration of the grip end portion is around 1 g (when the equation (11) is satisfied), it can be assumed that the grip end portion is not in the acceleration state. On the other hand, when the resultant acceleration of the grip end portion is not around 1 g (when the equation (11) is not satisfied), it can be assumed that the grip end portion is in the acceleration state. In view of this, the lower limit threshold value (0.9) and the upper limit threshold (1.2) in the equation (11) may be values other than these as long as they are values around 1.
(78) Next, when the grip end portion is not in the acceleration state at time t (NO in step S54), CPU 102 sets, to the initial value, grip end acceleration a.sub.W(t) in the global coordinate system at time t (step S56). Specifically, CPU 102 sets a.sub.W(t)=(0, 0, 0).
(79) On the other hand, when the grip end portion is the acceleration state at time t (YES in step S54), CPU 102 corrects grip end posture (rotation matrix) Rq(t) at time t based on grip end posture (rotation matrix) Rq at time tx at which the head velocity (in the sensor coordinate system) is at maximum (step S58). Specifically, CPU 102 performs calculations as follows.
(80) First, it is assumed that quaternion q indicating the grip end posture at time tx is indicated as in the following equation (12):
(81)
(82) Accordingly, Rq, which is obtained by converting the grip end posture (quaternion) at time tx into the rotation matrix based on the equation (10), is indicated as in the following equation (13):
(83)
(84) Rotation matrix Rz indicating rotation around the Z axis at time tx is indicated as in the following equation (14) with the rotation angle being represented by :
(85)
(86) It should be noted that rotation angle is indicated as in the following equation (15):
(87)
(88) By multiplying grip end posture (rotation matrix) Rq(t) by transposed matrix Rz.sup.T of rotation matrix Rz, grip end posture (rotation matrix) Rq(t) at time t is corrected. Specifically, time tx at which the head velocity (in the sensor coordinate system) is at maximum is generally around the time of impact in batting (time at which both the shoulders of the batter are substantially in parallel with the bat). Hence, grip end posture (rotation matrix) Rq(t) at time t is corrected based on the grip end posture (rotation matrix) obtained at that time (corresponding to time tx) at which the grip end portion is assumed to face the front during the batting. Accordingly, azimuth errors resulting from a plurality of swings are reset, whereby the swing trajectory can be calculated with high precision.
(89) Next, CPU 102 calculates grip end acceleration a.sub.W(t) in the global coordinate system based on (i) grip end accelerations a.sub.x(t), a.sub.y(t), and a.sub.z(t) in the three axis directions in the sensor coordinate system and (ii) corrected grip end posture (rotation matrix) Rq(t) (step S60). Specifically, CPU 102 calculates grip end acceleration a.sub.W(t) using the following equation (16):
(90)
(91) It should be noted that as described above, the acceleration sensor detects gravity acceleration. Hence, as shown in the equation (16), the gravity acceleration is subtracted in the case of coordinate conversion from the grip end acceleration in the sensor coordinate system to the grip end acceleration in the global coordinate system.
(92) Next, at time t, CPU 102 determines whether or not resultant angular velocity V.sub.cs (in the sensor coordinate system) of the grip end portion is less than threshold value Vth (step S62). It should be noted that resultant angular velocity V.sub.cs(t) of the grip end portion at time t is indicated as in the following equations (17):
V.sub.cs(t)={square root over (.sub.x(t).sup.2+.sub.y(t).sup.2+.sub.z(t).sup.2)}(17)
(93) When resultant angular velocity V.sub.cs(t) of the grip end portion is less than threshold value Vth at time t (NO in step S62), CPU 102 sets, to the initial value, grip end velocity v.sub.W(t) in the global coordinate system at time t (step S64). Specifically, CPU 102 sets v.sub.W(t)=(0, 0, 0).
(94) On the other hand, when resultant angular velocity V.sub.cs of the grip end portion is equal to or more than threshold value Vth at time t (YES in step S62), CPU 102 calculates grip end velocity v.sub.W(t) by way of time integral of grip end acceleration a.sub.W(t), and calculates grip end position p.sub.W(t) in the global coordinate system by way of double integral (step S66).
(95) Next, CPU 102 calculates head velocity v.sub.hW(t) and head position p.sub.hW(t) at time t in the global coordinate system based on grip end velocity v.sub.W(t) and grip end position p.sub.W(t) (step S68). Specifically, head velocity v.sub.hW(t) is indicated as in an equation (18) and head position p.sub.hW(t) is indicated as in an equation (19) as follows:
v.sub.hw(t)=v.sub.w(t)+Rq(t)((t)r)(18)
p.sub.hw(t)=p.sub.w(t)+Rq(t)r(19)
(96) Next, CPU 102 calculates head resultant velocity V.sub.hcW(t) at time t, using the following equation (20) that is based on grip end velocities v.sub.hwx(t), v.sub.hwy(t), v.sub.hwz(t) in the three axis directions in the global coordinate system (step S70):
V.sub.hcw(t)={square root over (v.sub.hwx(t).sup.2+v.sub.hwy(t).sup.2+v.sub.hwz(t).sup.2)}(20)
(97) Next, CPU 102 determines whether or not the series of processes from step S50 to step S70 have been performed for each of pieces of sensor data at respective times in predetermined period Ta (time-series data of acceleration and angular velocity) (step S72). When the series of processes have not been performed for all the time-series data (NO in step S72), CPU 102 repeats the series of processes at a time other than time t.
(98) On the other hand, when the series of processes have been performed for all the time-series data (YES in step S72), CPU 102 calculates a swing trajectory based on the time-series data of the grip end position (p.sub.W(t) to p.sub.w(tn)) and the time-series data of the head position (p.sub.hW(t) to p.sub.hw(tn)) (step S74). Then, CPU 102 displays the swing trajectory and the time-series head resultant velocity on display 110 (step S76). Then, the process is ended.
Example
(99) The inventor of the present application examined validity of the swing analysis method mentioned above. With reference to
(100) Moreover, in the present example, a right-handed subject continuously swung for twenty times, and swing trajectory and head velocity were calculated for each swing. It should be noted that each of the actual swings by the subject was such that the bat was gradually changed from a standing state to a lying state.
(101) (Swing Trajectory)
(102)
(103) With reference to
(104) On the other hand, with reference to
(105)
(106) As with the swing trajectory of the first swing (
(107)
(108) The swing trajectory calculated using the comparison analysis method (
(109) On the other hand, as with the swing trajectories of the first and fifth swings, the swing trajectory calculated using the present analysis method (
(110) According to the results of
(111) (Head Velocity)
(112)
(113)
(114) First, with reference to
(115) Next, with reference to
Other Embodiment
(116) In the embodiment mentioned above, it has been illustrated that the ball hitting tool is a bat; however, the ball hitting tool is not limited to such a configuration. For example, sports such as baseball, tennis, golf, and badminton are similar in that subjects swing ball hitting tools. Hence, the ball hitting tool may be a racket used in tennis or badminton, or a golf club used in golf. Thus, the configuration illustrated as the embodiment mentioned above can be also applied to a ball hitting tool used in a sport in which a subject swings.
(117) In the embodiment mentioned above, swing analysis device 10 may display the swing trajectory as in
(118) It should be noted that a program for performing the control described in the above-described flowcharts by operating a computer can also be provided. Such a program can be stored in a non-transitory computer readable storage medium and can be provided as a program product. Examples of the non-transitory computer readable storage medium includes a flexible disk attached to the computer, a CD-ROM (Compact Disk Read Only Memory), a ROM, a RAM, a memory card, and the like. Alternatively, the program can be provided by recording it in a storage medium such as a hard disk provided in the computer. Alternatively, the program can also be provided through download via a network.
(119) The program may be configured to invoke a necessary module of program modules, which are provided as part of the operating system (OS) of the computer, at a predetermined timing and cause execution of a process. In that case, the above module is not included in the program and the process is performed in cooperation with the OS. Such a program including no module can be also included in the program according to the present embodiment.
(120) Moreover, the program according to the present embodiment may be incorporated in part of another program and may be provided. Also in that case, the program itself does not include a module included in the other program, and the process is performed in cooperation with the other program. Such a program incorporated in the other program can also be included in the program according to the present embodiment.
(121) The configuration illustrated as the above-described embodiment is an exemplary configuration of the present invention, can be combined with another known technique, and can be configured in a different manner without deviating from the gist of the present invention, for example, can be configured such that some components are omitted.
Effect of Embodiment
(122) According to the present embodiment, even when the subject swings for a plurality of times continuously for a long time, swing trajectory and head velocity can be precisely calculated for each swing. This can eliminate an extra effort of resetting the sensor device to correct measurement errors (drift error and the like) caused by performing a larger number of swings, for example. Accordingly, the subject can only focus on swings.
(123) According to the present embodiment, only the sensor device is attached to the bat. Hence, it can be readily utilized in various scenes such as swing check at home of the subject and swing check for a club member by a supervisor or the like.
(124) Moreover, according to the present embodiment, since it is not necessary to use a geomagnetic field sensor for correcting a drift error or the like, cost reduction as a whole of system can be achieved.
(125) Although the present invention has been described and illustrated in detail, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, the scope of the present invention being interpreted by the terms of the appended claims.