# Analysis Device and Analysis System

An analysis device for analyzing a spin axis of a ball receives an input of acceleration data and geomagnetic data detected on a time-series basis by a sensor device built in the ball; calculates attitude information of the ball, based on the acceleration data and the geomagnetic data; calculates the spin rate of the ball released from a subject, based on the geomagnetic data; and calculates an angle of the spin axis of the ball relative to a predetermined direction, using a predetermined filter and based on the attitude information, the spin rate, the geomagnetic data, and a first-order differential value and a second-order differential value of the geomagnetic data.

**Description**

**BACKGROUND OF THE INVENTION**

**Field of the Invention**

The present disclosure relates to a technique for analyzing the spin axis of a ball.

**Description of the Background Art**

In recent years, a method has been known by which to measure spin parameters of a thrown baseball, such as the movement locus, the spin rate, and the spin axis direction, by using information from a sensor built in the ball. For example, Japanese Patent Laying-Open No. 2018-134153 discloses a throw analysis system.

The throw analysis system according to Japanese Patent Laying-Open No. 2018-134153 includes a ball having a sensor unit and a transmitting unit that are built in the ball, and an analysis device to receive the detection value of the sensor unit transmitted from the transmitting unit and analyze the detection value. The sensor unit includes a substrate; and an acceleration sensor, a geomagnetic sensor, and a gyroscope sensor mounted on the substrate. The analysis device identifies and stores the initial direction of the substrate in the global coordinate system, calculates the successively changing direction of the substrate in the global coordinate system, calculates the successively changing acceleration of the ball in the global coordinate system, and calculates the movement locus of the ball in the global coordinate system.

Japanese Patent Laying-Open No. 2018-134153 discloses calculating the spin axis direction using a gyroscope sensor. However, since a gyroscope sensor is generally large in size, a gyroscope sensor that is small enough to be built in a ball can measure only a limited range. Accordingly, when a thrown ball rotates at a high speed, such as in baseball, the angle of the spin axis of the ball may not be calculated accurately with a gyroscope sensor due to saturation.

**SUMMARY OF THE INVENTION**

An object of the present disclosure in one aspect is to provide an analysis device and an analysis system that can calculate the angle of the spin axis of a ball more accurately.

According to an embodiment, an analysis device for analyzing a spin axis of a ball is provided. The analysis device includes: an information input unit configured to receive an input of acceleration data and geomagnetic data detected on a time-series basis by a sensor device built in the ball; an attitude calculation unit configured to calculate attitude information of the ball, based on the acceleration data and the geomagnetic data; a spin rate calculation unit configured to calculate the spin rate of the ball released from a subject, based on the geomagnetic data; and a spin axis calculation unit configured to calculate an angle of the spin axis of the ball relative to a predetermined direction, using a predetermined filter and based on the attitude information, the spin rate, the geomagnetic data, and a first-order differential value and a second-order differential value of the geomagnetic data.

Preferably, the spin axis calculation unit is configured to calculate the angle of the spin axis of the ball in a predetermined period around a timing at which the ball was released.

Preferably, the spin axis calculation unit is configured to, based on the attitude information, the spin rate, the geomagnetic data, the first-order differential value, and the second-order differential value, calculate the angle of the spin axis of the ball by applying the predetermined filter to an observation equation where the geomagnetic data, the first-order differential value, and the second-order differential value are observation values.

Preferably, the analysis device further includes a direction calculation unit configured to calculate a traveling direction of the ball released from the subject, using the predetermined filter and based on the acceleration data. The predetermined direction is the traveling direction calculated by the direction calculation unit.

Preferably, the direction calculation unit is configured to calculate a rotation matrix that defines the traveling direction, by applying the predetermined filter to a state equation where the rotation matrix that defines the traveling direction is a state value, and to an observation equation where a maximum value of the acceleration data in a predetermined period is an observation value, the predetermined period being a period around a timing at which the ball was released.

Preferably, the sensor device includes a low acceleration sensor configured to detect a low acceleration, and a high acceleration sensor configured to detect a high acceleration. The acceleration data includes low acceleration data detected by the low acceleration sensor, and high acceleration data detected by the high acceleration sensor. The attitude calculation unit is configured to, when calculating initial attitude information of the ball, adopt the low acceleration data as the acceleration data.

Preferably, the predetermined filter is an extended Kalman filter.

According to another embodiment, an analysis device for analyzing a spin axis of a ball is provided. The analysis device includes: an information input unit configured to receive an input of acceleration data and geomagnetic data detected on a time-series basis by a sensor device built in the ball; an attitude calculation unit configured to calculate attitude information of the ball, based on the acceleration data and the geomagnetic data; a spin rate calculation unit configured to calculate the spin rate of the ball released from a subject, based on the geomagnetic data; and a spin axis calculation unit configured to calculate an angle of the spin axis of the ball relative to a predetermined direction, using a predetermined filter and based on the attitude information, the spin rate, the acceleration data, and a first-order differential value and a second-order differential value of the acceleration data.

Preferably, the spin axis calculation unit is configured to, based on the attitude information, the spin rate, the acceleration data, the first-order differential value, and the second-order differential value, calculate the angle of the spin axis of the ball by applying the predetermined filter to an observation equation where the acceleration data, the first-order differential value, and the second-order differential value are observation values.

An analysis system according to still another embodiment includes: an analysis device for analyzing a spin axis of a ball; and a sensor device built in the ball. The analysis device includes: an information input unit configured to receive an input of acceleration data and geomagnetic data detected on a time-series basis by the sensor device; an attitude calculation unit configured to calculate attitude information of the ball, based on the acceleration data and the geomagnetic data; a spin rate calculation unit configured to calculate the spin rate of the ball released from a subject, based on the geomagnetic data; and a spin axis calculation unit configured to calculate an angle of the spin axis of the ball relative to a predetermined direction, using a predetermined filter and based on the geomagnetic data, the attitude information, the spin rate, and a first-order differential value and a second-order differential value of the geomagnetic data.

The foregoing and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.

**BRIEF DESCRIPTION OF THE DRAWINGS**

**DESCRIPTION OF THE PREFERRED EMBODIMENTS**

Embodiments of the present invention are described hereinafter with reference to the drawings. In the description hereinafter, identical parts are identically denoted.

They have the same names and functions. The detailed explanation of such parts is not repeated.

**Embodiment 1**

**<General Configuration of System>**

**1000** according to embodiment 1. With reference to **1000** is a system for analyzing the spin axis of a baseball thrown by a subject **5** (pitcher), and displaying the results of the analysis. Analysis system **1000** includes an analysis device **10**, and a ball **2** including a built-in sensor device **20**. In

Analysis device **10** is a smartphone. However, analysis device **10** may be implemented as any type of device. For example, analysis device **10** may be a laptop personal computer (PC), a tablet-type device, a desktop PC, or the like.

Analysis device **10** communicates with sensor device **20** by a wireless communication system. As the wireless communication system, Bluetooth (registered trademark) low energy (BLE) is adopted, for example. However, analysis device **10** may adopt other wireless communication systems, such as Bluetooth (registered trademark), wireless local area network (LAN), or the like.

**2** according to embodiment 1. **2**. **2**.

With reference to **2** is equivalent to that of a typical regulation ball. Ball **2** has a leather outer skin with seams showing. With reference to **2** includes built-in sensor device **20** in its center for detecting the behavior of ball **2**. Sensor device **20** is fixed with a polycarbonate capsule **62** and a silicone gel **64** and thus has a good shock resistance.

Referring back to **20** detects accelerations and magnetic fields (magnetic flux densities) in the sensor coordinate system (local coordinate system). Specifically, sensor device **20** includes two acceleration sensors (a low acceleration sensor and a high acceleration sensor) and a geomagnetic sensor. The acceleration sensors detect acceleration data representing the accelerations in the directions of three axes (the x-axis, the y-axis, and the z-axis) orthogonal to one another.

The geomagnetic sensor detects geomagnetic data representing the magnetic fields (magnetic flux densities) in the directions of three axes orthogonal to one another. For example, a magneto-resistive (MR) element, a magneto-impedance (MI) element, a Hall element, or the like is used as the geomagnetic sensor.

**<Hardware Configuration>**

**(Analysis Device**

**10**)**10** according to embodiment 1. With reference to **10** includes a central processing unit (CPU) **102**, a memory **104**, a touch panel **106**, a button **108**, a display **110**, a wireless communication unit **112**, a communication antenna **113**, a memory interface (I/F) **114**, a speaker **116**, a microphone **118**, and a communication interface (I/F) **120**, as main components. A storage medium **115** is an external storage medium.

CPU **102** controls the operation of each unit in analysis device **10** by reading a program stored in memory **104** and executing the program. Specifically, CPU **102** implements the later-described processes (steps) in analysis device **10** by executing the program.

Memory **104** is implemented as a random access memory (RAM), a read-only memory (ROM), a flash memory or the like. Memory **104** stores a program to be executed by CPU **102**, data to be used by CPU **102**, and the like.

Touch panel **106** is provided on display **110** which serves as a display unit. Touch panel **106** may be of any type, such as a resistive type and a capacitive type. Button **108** is arranged on the surface of analysis device **10**. Button **108** receives user instructions and inputs the instructions to CPU **102**.

Wireless communication unit **112** connects with a mobile communication network via communication antenna **113**, and sends and receives a signal for wireless communication. Thus, analysis device **10** can communicate with a predetermined external device via a mobile communication network, such as long term evolution (LTE).

Memory interface (I/F) **114** reads data from external storage medium **115**. CPU **102** reads data stored in external storage medium **115** via memory interface **114** and stores the data in memory **104**. CPU **102** reads data from memory **104** and stores the data in external storage medium **115** via memory interface **114**.

Examples of storage medium **115** include a medium having stored thereon a program in a nonvolatile manner, such as a compact disc (CD), a digital versatile disk (DVD), a Blu-ray (registered trademark) Disc (BD), a universal serial bus (USB) memory, a memory card, a flexible disk (FD), or a hard disk.

Speaker **116** outputs a voice based on instructions from CPU **102**. Microphone **118** receives an utterance for analysis device **10**.

Communication interface (I/F) **120** is a communication interface for exchanging data between, for example, analysis device **10** and sensor device **20**. Communication interface (I/F) **120** is implemented as an adapter, a connector, or the like. The communication system may be wireless communication, such as BLE, wireless LAN, or the like.

**(Sensor Device**

**20**)**20** according to embodiment 1. With reference to **20** includes a CPU **202** for executing various types of processes; a memory **204** for storing a program to be executed by CPU **202**, data, and the like; an acceleration sensor **220**; a geomagnetic sensor **208** to detect magnetic fields in the three axis directions orthogonal to one another; a communication interface (I/F) **210** for communicating with analysis device **10**; and a storage battery **212** to supply power to the components of sensor device **20**, as a main components.

Acceleration sensor **220** includes a low acceleration sensor **205** and a high acceleration sensor **206**. Low acceleration sensor **205**, which is an acceleration sensor for detecting a low acceleration range (e.g. less than 24 G), detects accelerations in the three axis directions orthogonal to one another. High acceleration sensor **206**, which is an acceleration sensor for detecting a high acceleration range that is not detectable by the low acceleration sensor (e.g. 24 G or more), detects accelerations in the three axis directions orthogonal to one another. For the low acceleration range, the detection accuracy is higher with low acceleration sensor **205** than with high acceleration sensor **206**, though still detectable by high acceleration sensor **206**.

**<Operation>**

**10** according to embodiment 1. The steps below are implemented typically by CPU **102** of analysis device **10** executing the program stored in memory **104**.

Analysis device **10** is operated by, for example, a shop clerk. Analysis device **10** may be operated also by subject **5** him/herself. Here, analysis device **10** always acquires the acceleration data detected by each of low acceleration sensor **205** and high acceleration sensor **206**, and the geomagnetic data detected by geomagnetic sensor **208**.

With reference to **10** executes calibration of geomagnetic sensor **208** (step S**10**). Specifically, subject **5** spins ball **2** (e.g. throws ball **2**) in accordance with a clerk's instruction. Analysis device **10** successively plots the magnetic fields in the three axis directions detected by geomagnetic sensor **208**. Analysis device **10** approximates the plotted data (e.g. 18-point data) by the equation of an ellipse and calculates the central point and the radius of the ellipse. Next, analysis device **10** calibrates the geomagnetic data so that the approximated ellipse will be a perfect circle around the origin. Thus, the offset error and the sensitivity error of the geomagnetic sensor are corrected. Analysis device **10** may use other known methods to perform calibration of geomagnetic sensor **208**.

Analysis device **10** executes calibration of low acceleration sensor **205** and high acceleration sensor **206** (step S**12**). Specifically, subject **5** brings ball **2** into a stationary state (e.g. puts ball **2** on the ground) in accordance with a clerk's instruction. When ball **2** is in a stationary state, analysis device **10** acquires the acceleration data detected by each of low acceleration sensor **205** and high acceleration sensor **206**.

Analysis device **10** calculates the average acceleration in a predetermined period of time (e.g. one second) for each of the accelerations in the three axis directions detected by low acceleration sensor **205**. Analysis device **10** calculates a synthetic acceleration As by synthesizing average accelerations a_{cx}, a_{cy}, a_{cz }of the three axes, the x-axis, the y-axis, and the z-axis, using the following formula (1).

*As*=√{square root over (*a*_{cx}^{2}*+a*_{cy}^{2}*+a*_{cz}^{2})} (1)

Analysis device **10** performs bias correction of low acceleration sensor **205** (i.e., performs calibration of low acceleration sensor **205**) by subtracting a value obtained by dividing synthetic acceleration As by 1000 from the accelerations in the three axis directions detected by low acceleration sensor **205**.

Calibration for high acceleration sensor **206** is performed in the same manner. Specifically, analysis device **10** calculates the average value in a predetermined period of time (e.g. one second) for each of the accelerations in the three axis directions detected by high acceleration sensor **206**. Analysis device **10** then calculates the synthetic acceleration of the three axes using the above-described formula (1). Analysis device **10** performs offset correction of high acceleration sensor **206** (i.e., performs calibration of high acceleration sensor **206**) by subtracting a value obtained by dividing the synthetic acceleration by 1000 from the accelerations in the three axis directions detected by high acceleration sensor **206**.

When the calibration of low acceleration sensor **205** and high acceleration sensor **206** is completed, analysis device **10** gives notification that urges subject **5** to throw (step S**14**). For example, analysis device **10** may output a voice of “Throw the ball” or may display the words on display **110**. Subject **5** throws ball **2** in accordance with the notification.

Analysis device **10** determines whether or not the acceleration data detected by low acceleration sensor **205** is less than threshold value J1 (step S**16**). Specifically, analysis device **10** determines, for the acceleration in each axis direction detected by low acceleration sensor **205**, whether or not the acceleration in the axis direction is less than threshold value J1.

If the acceleration in the axis direction is less than threshold value J1 (YES in step S**16**), analysis device **10** adopts the acceleration in the axis direction detected by low acceleration sensor **205** as the acceleration to be used in the subsequent steps (step S**18**). If the acceleration in the axis direction is equal to or more than threshold value J1 (NO in step S**16**), analysis device **10** adopts the acceleration in the axis direction detected by high acceleration sensor **206** as the acceleration to be used in the subsequent steps (step S**20**).

The processes in steps S**16** to S**20** are described with a specific example. For example, suppose the accelerations in the x-axis direction and the y-axis direction detected by low acceleration sensor **205** are less than threshold value J1, and the acceleration in the z-axis direction is equal to or more than threshold value J1. In this case, analysis device **10** adopts the accelerations detected by low acceleration sensor **205**, as the accelerations in the x-axis direction and the y-axis direction to be used in the processes after step S**20**; and adopts the acceleration detected by high acceleration sensor **206** as the acceleration in the z-axis direction. Thus, the acceleration detected by low acceleration sensor **205**, which has a high detection accuracy for a low acceleration range, is used for the acceleration less than threshold value J1.

Next, analysis device **10** calculates the attitude of ball **2** of when ball **2** is in a stationary state (i.e., the initial attitude of ball **2**) (step S**22**). Specifically, analysis device **10** calculates a roll angle φ that represents the spin angle around the x-axis and a pitch angle θ that represents the spin angle around the y-axis, based on the acceleration data detected by sensor device **20**. Roll angle φ is expressed by the following formula (2) using average accelerations a_{cy}, a_{cz }of when ball **2** is in a stationary state.

Pitch angle θ is expressed by the following formula (3) using average accelerations a_{cx}, a_{cy}, a_{cz }of when ball **2** is in a stationary state.

At this time, since ball **2** is in a stationary state, the acceleration data detected by low acceleration sensor **205** is used to calculate roll angle φ and pitch angle θ.

Analysis device **10** calculates a yaw angle Ψ that represents the spin angle around the z-axis, based on the geomagnetic data detected by sensor device **20** (geomagnetic sensor **208**), roll angle φ calculated using formula (2), and pitch angle θ calculated using formula (3).

Specifically, analysis device **10** corrects a tilt error in the geomagnetic data of geomagnetic sensor **208** using a rotation matrix composed of roll angle φ and pitch angle θ. When the magnetic fields in the x-axis, y-axis, and z-axis directions after the correction are denoted by M_{xi}, M_{yi}, M_{zi}, respectively, they are expressed by the following formula (4), using M_{x}, M_{y}, M_{z }that represent the magnetic fields before the correction in the x-axis, y-axis, and z-axis directions, respectively, and using the rotation matrix.

Using magnetic fields M_{xi}, M_{yi}, M_{zi }with the tilt error being corrected, yaw angle Ψ is expressed by the following formula (5).

As described above, the information (i.e., roll angle φ, pitch angle θ, and yaw angle Ψ) representing the initial attitude of ball **2** in a stationary state is calculated.

Analysis device **10** calculates the rotation matrix from the sensor coordinate system to the absolute coordinate system using roll angle φ, pitch angle θ, and yaw angle Ψ (step S**24**). Specifically, analysis device **10** calculates rotation matrix ^{0}R_{i }from the sensor coordinate system to the absolute coordinate system of when ball **2** is in a stationary state, using the following formula (6).

Next, analysis device **10** detects the timing at which subject **5** released ball **2** (i.e., at which subject **5** released ball **2** from his/her hand) (step S**26**). Specifically, analysis device **10** calculates an inexact differential value D of the geomagnetic data using the following formula (7). The character of s denotes the Laplace operator, and the character of n denotes a differential coefficient. Inexact differential value D is calculated for each of the magnetic fields in the three axis directions.

Analysis device **10** detects, as the release timing, the point of time at which inexact differential value D becomes 0. For example, analysis device **10** detects, as the release timing, the point of time at which any one of three inexact differential values D corresponding to the respective magnetic fields in the three axis directions becomes 0.

Analysis device **10** may detect the release timing using the acceleration data. In this case, analysis device **10** detects, as the release timing, the point of time at which the differential value of the acceleration data detected by high acceleration sensor **206** becomes more than threshold value J2. For example, analysis device **10** detects, as the release timing, the point of time at which any one of the three differential values corresponding to the respective accelerations in the three axis directions becomes more than threshold value J2.

Next, analysis device **10** sets a target period (hereinafter also referred to as an “analysis period”) during which the spin axis of ball **2** is to be analyzed (step S**28**). Specifically, analysis device **10** sets a certain period around the timing at which ball **2** was released, as the analysis period to analyze the spin axis of ball **2**. More specifically, analysis device **10** sets a specified period of time (e.g. 100 ms) before the release timing, as the analysis start timing (i.e., the point of time at which the analysis period starts); and sets a specified period of time (e.g. 60 ms) after the release timing, as the analysis end timing (i.e., the point of time at which the analysis period ends).

Analysis device **10** applies the extended Kalman filter to the acceleration data detected by high acceleration sensor **206** and estimates the traveling direction of ball **2** in the analysis period (step S**30**). Specifically, analysis device **10** executes the following computation.

Analysis device **10** calculates the rotation matrices around the x-axis, the y-axis, and the z-axis by solving the following formula (8) that expresses a non-linear state equation and the following formula (9) that expresses a non-linear observation equation, with the input of the maximum values of the accelerations in the x-axis, y-axis, and z-axis directions (sensor coordinate system) in the analysis period detected by high acceleration sensor **206**.

*x*_{t+1}*=F*(*x*_{t})+*w*_{t} (8)

*y*_{t}*=H*(*x*_{t})+*v*_{t} (9)

The character oft denotes a step as a discrete time. In formula (8), the characters of x_{t}, F(x_{t}), and w_{t }respectively denote the state value at step t (time t), the linear model related to the time transition in the system, and the system noise. In formula (9), the characters of y_{t}, H(x_{t}), and v_{t }respectively denote the observation value at time t, the observation model obtained by linearly mapping the state space into the observation space, and the observation noise. The characters of x_{t}, F(x_{t}), y_{t}, and H(x_{t}) in formula (8) are respectively expressed by formulae (10), (11), (12), and (13).

In formulae (10) and (11), the characters of X_{rot}, Y_{rot}, Z_{rot }respectively denote the rotation matrices around the x-axis, the y-axis, and the z-axis. From formulae (8), (10), and (11), rotation matrices X_{rot}, Y_{rot}, Z_{rot }at step (t+1) are obtained by adding the system noise to rotation matrices X_{rot}, Y_{rot}, Z_{rot }at step t. The acceleration of ball **2** is maximum at around a release (i.e., the acceleration is maximum in the analysis period), and the direction defined by the rotation matrices of when the acceleration is maximum generally shows the traveling direction of ball **2**. Therefore, the direction defined by rotation matrices X_{rot}, Y_{rot}, Z_{rot}, with the input of the maximum values of the accelerations in the respective axis directions, is determined as the traveling direction of ball **2**.

In formula (12), the characters of Ax_{max}, Ay_{max}, Az_{max }respectively denote the maximum values of the accelerations in the x-axis, y-axis, and z-axis directions (sensor coordinate system). In formula (13), the character of A_{t }denotes the synthetic acceleration of accelerations Ax_{t}, Ay_{t}, Az_{t }in the x-axis, y-axis, and z-axis directions (sensor coordinate system) at time t in the analysis period detected by high acceleration sensor **206**. Synthetic acceleration A_{t }is the square root of the sum of squares of the components of accelerations Ax_{t}, Ay_{t}, Az_{t}.

Here, f(x_{t}) obtained by partially differentiating F(x_{t}) with respect to x_{t }is defined by formula (14), and h(x_{t}) obtained by partially differentiating H(x_{t}) with respect to x_{t }is defined by formula (15).

The character of I denotes a unit matrix. The extended Kalman filter algorithm using f(x_{t}) and h(x_{t}) defined as described above are given by the following formulae (16), (17), (18), and (19).

*P*_{t}^{−}*=f*_{t−1}*P*_{t−1}*f*_{t−1T}*+Q*_{t} (16)

*K*_{t}*=P*_{t}^{−}*h*_{t}^{T}(*h*_{t}*P*_{t}^{−}*h*_{t}^{T}*+R*_{t})^{−1} (17)

*P*_{t}=(*I−K*_{t}*h*_{t})*P*_{t}^{−} (18)

*x*_{t}*=x*_{t}^{−}*+K*_{t}(*y*_{t}*−H*_{t}*x*_{t}^{−}) (19)

where P_{t }and P_{t}^{−} denote the error covariance matrix, K_{t }denotes the Kalman gain, Q_{t }denotes the covariance matrix of the system noise, and R_{t }denotes the covariance matrix of the observation noise.

The above-described algorithm consists of two parts: a part to predict an estimated value in the next step, and a part to update the estimated value using an obtained observation value. Formula (16) falls under the former, and formulae (17) to (19) fall under the latter. By repeatedly calculating formulae (16) to (19), given as described above, using a value at a certain moment (here, the maximum value of the accelerations in each axis direction), state value x_{t }converges on an optimal value. That is, by applying the extended Kalman filter to f(x_{t}) expressed by formula (14) and h(x_{t}) expressed by formula (15), the most probable estimated value of state value x_{t }at time t (here, the traveling direction of ball **2** defined by the rotation matrix around each axis) can be calculated.

Next, analysis device **10** calculates the spin rate of ball **2** based on the geomagnetic data in the analysis period detected by geomagnetic sensor **208** (step S**32**).

**2** according to embodiment 1. With reference to **602** shows the output value of the geomagnetic data. For example, the output value is the magnetic field in the x-axis direction. Graph **604** shows the difference value for the output value of the geomagnetic data. For example, the difference value is the value that represents the difference between the current output value and the last output value.

Analysis device **10** counts the points (zero cross points) at which the difference value crosses 0, and counts a predetermined number of counts (e.g. three counts) as one rotation. With reference to graph **604**, the first, second, and third zero cross points are counted at times p**1**, p**2**, and p**3**, respectively. Analysis device **10** calculates the spin rate (rpm) of ball **2** from the number of zero cross points counted in a unit period (e.g. 0.5 seconds).

Referring back to **10** calculates the angle of the spin axis of ball **2** by applying the extended Kalman filter to the geomagnetic data in the analysis period detected by geomagnetic sensor **208** (step S**34**). Specifically, analysis device **10** executes the following computation.

Analysis device **10** calculates the angle of the spin axis of ball **2** by solving the above-described non-linear state equation (8) and non-linear observation equation (9), with the input of the magnetic field component of each of the x-axis, y-axis, and z-axis directions (sensor coordinate system) in the analysis period detected by geomagnetic sensor **208**; the first-order differential value of each magnetic field component; and the second-order differential value of each magnetic field component. The characters of x_{t }and F(x_{t}) in formula (8) are respectively expressed by the following formulae (20) and (21).

The character of ω denotes the spin rate of ball **2** which corresponds to the spin rate calculated in step S**32**. The characters of φ_{a }and θ_{a }respectively denote the roll angle and the pitch angle at time t in the absolute coordinate system. The characters of φ_{s}, θ_{s}, and Ψ_{s }respectively denote the roll angle, the pitch angle, and the yaw angle at time t in the sensor coordinate system. The characters of y_{t }and H(x_{t}) in formula (9) are respectively expressed by formulae (22) and (23).

where m denotes the matrix representing the magnetic field components (m_{x}, m_{y}, m_{z}) in the three axes at time t in the sensor coordinate system; {dot over (m)} denotes the first-order differential value of m; {umlaut over (m)} denotes the second-order differential value of m; and ^{0}m denotes the matrix representing the magnetic field components in the three axes at time t in the absolute coordinate system.

The character of ^{0}R_{s }which denotes the rotation matrix from the sensor coordinate system to the absolute coordinate system is expressed by the following formula (24). The initial value of rotation matrix ^{s}R_{s }corresponds to ^{i}R_{s }which denotes the rotation matrix from the sensor coordinate system to the absolute coordinate system of when ball **2** is in a stationary state. That is, the initial values of roll angle φ_{s}, pitch angle θ_{s}, and yaw angle Ψ_{s }in the sensor coordinate system correspond to roll angle φ, pitch angle θ, and yaw angle Ψ of when ball **2** is in a stationary state.

The character of ^{S}R_{a }which denotes the rotation matrix from the spin axis coordinate system to the sensor coordinate system is expressed by the following formula (25).

As in the calculation of the traveling direction in step S**30**, by repeatedly calculating formulae (14) to (19) using x_{t}, F(x_{t}), y_{t}, H(x_{t}) expressed by formulae (20) to (23), the most probable estimated value of state value x_{t }at time tin the analysis period can be calculated. That is, roll angle φ_{a }and pitch angle θ_{a }of the spin axis of ball **2** in the absolute coordinate system; and roll angle φ_{s}, pitch angle θ_{s}, and yaw angle Ψ_{s }of the spin axis of the ball in the sensor coordinate system are estimated. Although the spin rate ω is included as the estimated value in formula (20), the spin rate calculated in step S**32** may be used as the spin rate ω, as describe above. Thus, the spin rate ω may not be adopted as the estimated value.

Then, analysis device **10** calculates angle θ_{h }of the spin axis of ball **2** relative to a horizontal plane (i.e., a plane orthogonal to the gravity direction) using the estimated roll angle φ_{a }and pitch angle θ_{a}. Specifically, analysis device **10** calculates ^{0}R_{a }which denotes the rotation matrix from the spin axis coordinate system to the absolute coordinate system, using the following formula (26).

^{0}*R*_{a}=^{0}*R*_{s}×^{s}*R*_{a} (26)

Next, when the vector representing the direction of the spin axis of ball **2** is defined as (p_{x}, p_{y}, p_{z}), formula (27) is satisfied, where p denotes a constant, and ^{0}R_{a}^{T }is a transposed matrix of ^{0}R_{a}.

Using vector (p_{x}, p_{y}, p_{z}) obtained by formula (27), angle θ_{h }is expressed by formula (28).

Analysis device **10** displays, on display **110**, angle θ_{h }of the spin axis of ball **2** calculated in step S**36** (step S**36**).

**2** according to embodiment 1. With reference to **10** displays, on display **110**, a screen **502** showing the angle of the spin axis. For example, screen **502** shows that the angle of the spin axis of ball **2** is 23 degrees and that the spin rate of ball **2** is 1673.4 rpm. The angle of 23 degrees is the average value of θ_{h }calculated in the analysis period.

Analysis device **10** may calculate angle Ψ_{h }of the spin axis relative to the traveling direction using the traveling direction of ball **2** calculated in step S**30** (i.e., the rotation matrix in each axis direction), and using rotation matrix ^{0}R_{a }from the spin axis coordinate system to the absolute coordinate system shown in formula (26). First, using rotation matrices X_{rot}, Y_{rot}, Z_{rot }that define the traveling direction of ball **2**, rotation matrix ^{0}R_{tr }from the traveling direction coordinate system to the absolute coordinate system is expressed by the following formula (29).

Next, rotation matrix ^{tr}R_{a }from the spin axis coordinate system to the traveling direction coordinate system is expressed by the following formula (30), using transposed matrix ^{0}R_{tr}^{T }of rotation matrix ^{0}R_{tr }and using rotation matrix ^{0}R_{a}.

Using components of rotation matrix ^{tr}R_{a }obtained by formula (30), angle Ψ_{h}, which is the azimuth of the spin axis as seen from the traveling direction coordinate system, is expressed by formula (31).

Analysis device **10** may display angle ^{tr}P_{h }of the spin axis of ball **2** on display **110**.

**<Functional Configuration>**

**10** according to embodiment 1. With reference to **10** includes an information input unit **302**, an attitude calculation unit **304**, an analysis period setting unit **306**, a direction calculation unit **308**, a spin rate calculation unit **310**, a spin axis calculation unit **312**, and a display control unit **314**. The functional configuration is implemented basically by CPU **102** of analysis device **10** executing a program stored in memory **104** and giving instructions to the components of analysis device **10**.

Information input unit **302** receives an input of the acceleration data and the geomagnetic data detected on a time-series basis by sensor device **20**. In the present embodiment, sensor device **20** is built in the center of ball **2**. Accordingly, information input unit **302** receives an input of the acceleration data and the geomagnetic data of ball **2**. Typically, information input unit **302** receives the acceleration data and the geomagnetic data transmitted from sensor device **20** via communication interface **120**.

Attitude calculation unit **304** calculates the attitude information of ball **2** based on the acceleration data and the geomagnetic data. Typically, attitude calculation unit **304** calculates, as the initial attitude information of ball **2**, rotation matrix ^{0}R_{s }from the sensor coordinate system to the absolute coordinate system of when ball **2** is in a stationary state. In this case, when calculating the initial attitude information of ball **2**, attitude calculation unit **304** adopts, as the acceleration data to be used for the process, the acceleration data detected by low acceleration sensor **205**.

Specifically, attitude calculation unit **304** calculates roll angle φ and pitch angle θ in the sensor coordinate system, using the acceleration data of when ball **2** is in a stationary state. Attitude calculation unit **304** calculates yaw angle Ψ (sensor coordinate system), using the calculated roll angle φ and pitch angle θ, and using the geomagnetic data of when ball **2** is in a stationary state. Attitude calculation unit **304** calculates rotation matrix ^{0}R_{s }from the sensor coordinate system to the absolute coordinate system, using the calculated roll angle φ, pitch angle θ, and yaw angle Ψ, and using formula (6).

Analysis period setting unit **306** sets, as the analysis period, a predetermined period around the timing at which the ball was released. Specifically, analysis period setting unit **306** detects the timing (release timing) at which ball **2** was released from subject **5**, based on the amount of change in geomagnetic data or the amount of change in acceleration data. For example, analysis period setting unit **306** uses formula (7) to detect, as the release timing, the point of time at which inexact differential value D, indicating the amount of change in geomagnetic data, becomes 0. Alternatively, analysis period setting unit **306** detects, as the release timing, the point of time at which the differential value of the acceleration data detected by high acceleration sensor **206** becomes more than threshold value J2.

Then, analysis period setting unit **306** sets a specified period of time (e.g. 100 ms) before the release timing, as the analysis start timing (i.e., the point of time at which the analysis period starts); and sets a specified period of time (e.g. 60 ms) after the release timing, as the analysis end timing (i.e., the point of time at which the analysis period ends).

Direction calculation unit **308** calculates the traveling direction of ball **2** released from subject **5**, using the extended Kalman filter and based on the acceleration data. Specifically, direction calculation unit **308** calculates the rotation matrix that defines the traveling direction of ball **2**, by applying the extended Kalman filter to a state equation where the rotation matrix that defines the traveling direction of ball **2** is a state value, and to an observation equation where the maximum value of the acceleration data in the analysis period is an observation value. More specifically, direction calculation unit **308** calculates rotation matrices X_{rot}, Y_{rot}, Z_{rot }around the respective axes that define the traveling direction of ball **2** by executing the computation using the above-described formulae (8) to (19).

Spin rate calculation unit **310** calculates the spin rate of ball **2** based on the geomagnetic data in the analysis period. Specifically, spin rate calculation unit **310** counts the number of times at which the difference value of the output value of the geomagnetic data becomes zero (the number of zero cross points) as described with reference to **2** based on the number of counts of the zero cross points in a unit period.

Spin axis calculation unit **312** calculates (estimates) the angle of the spin axis of ball **2** relative to a predetermined direction using the extended Kalman filter, based on the attitude information calculated by attitude calculation unit **304**, the spin rate of ball **2** calculated by spin rate calculation unit **310**, the geomagnetic data (i.e., the magnetic fields in the x-axis, y-axis, and z-axis directions) in the analysis period detected by geomagnetic sensor **208**, the first-order differential value of the geomagnetic data, and the second-order differential value of the geomagnetic data.

Specifically, based on the attitude information, the spin rate, the geomagnetic data, and the first-order and second-order differential values of the geomagnetic data, spin axis calculation unit **312** calculates angle θ_{h }of the spin axis of ball **2** relative to a horizontal plane, by applying the extended Kalman filter to a state equation where the angle of the spin axis of ball **2** (e.g. roll φ_{a}, pitch angle θ_{a}) is a state value, and to an observation equation where the geomagnetic data and the first-order and second-order differential values of the geomagnetic data are observation values. More specifically, spin axis calculation unit **312** calculates angle θ_{h }by executing the computation using the above-described formulae (8), (9), and (14) to (28).

In another aspect, spin axis calculation unit **312** calculates angle Ψ_{h }of the spin axis of ball **2** relative to the traveling direction, based on rotation matrices X_{rot}, Y_{rot}, Z_{rot }around the respective axes and based on rotation matrix ^{0}R_{a }from the spin axis coordinate system to the absolute coordinate system. More specifically, spin axis calculation unit **312** calculates angle Ψ_{h }representing the azimuth of the spin axis of ball **2** relative to the traveling direction, by executing the computation using the above-described formulae (8), (9), (14) to (26), and (29) to (31).

Display control unit **314** displays, on display **110**, the angle of the spin axis of ball **2** (e.g. angles θ_{h}, Ψ_{h}) calculated by spin axis calculation unit **312**. Display control unit **314** may display, on display **110**, the spin rate of ball **2** calculated by spin rate calculation unit **310**. For example, display control unit **314** displays screen **502** as shown in

**<Advantages>**

According to embodiment 1, the acceleration data and the geomagnetic data can be used to calculate the angle of the spin axis of the ball. Therefore, the angle of the spin axis of the ball can be calculated more accurately with no saturation that would occur in a gyroscope sensor.

Measurement with a sensor device and a terminal device (e.g. a smartphone) each having a built-in geomagnetic sensor is also known. Generally, geomagnetic sensors have individual differences in performance and thus require, for example, calibration. If a terminal device and a ball each have a built-in geomagnetic sensor, the geomagnetic sensors have different sensitivities, leading to decrease in performance. For example, if a geomagnetic sensor having a low sensitivity and a geomagnetic sensor having a high sensitivity are combined, the performance depends on the lower one. If they are used at different places (e.g. places close to each other but not the same), they have different error factors in detection (e.g. magnetic fields in the absolute coordinate system, such as magnetic dip and sensitivity), leading to reduction in accuracy.

Therefore, in order to maximize the performance of the geomagnetic sensor built in a ball, it is preferable that calibration be preformed and then the magnetic field information in the absolute coordinate system be calculated using only the geomagnetic sensor built in the ball for calculation of the spin axis, as in the present embodiment.

**Embodiment 2**

Embodiment 1 describes a configuration in which the angle of the spin axis is calculated using geomagnetic data. Embodiment 2 describes a configuration in which the angle of the spin axis is calculated using acceleration data. The <General Configuration> and <Hardware Configuration> of embodiment 2 are the same as those of embodiment 1, and thus the detailed explanation thereof is not repeated.

**<Operation>**

**10** according to embodiment 2. The steps below are implemented typically by CPU **102** of analysis device **10** according to embodiment 2 executing a program stored in memory **104**.

With reference to **12** to step S**32** are as described with reference to **10** of **208** will not significantly affect the accuracy of the angle of the spin axis. However, in embodiment 2, calibration of geomagnetic sensor **208** may be executed in the same manner as embodiment 1.

Analysis device **10** according to embodiment 2 calculates the angle of the spin axis of ball **2** by applying the extended Kalman filter to the acceleration data in the analysis period detected by acceleration sensor **220** (step S**52**). Specifically, analysis device **10** executes the following computation.

Analysis device **10** calculates the angle of the spin axis of ball **2** by solving the above-described non-linear state equation (8) and non-linear observation equation (9), with the input of the respective acceleration components in the x-axis, y-axis, and z-axis directions in the analysis period detected by high acceleration sensor **206**, the first-order differential value of each acceleration component, and the second-order differential value of each acceleration component. Here, the characters of x_{t }and F(x_{t}) in formula (8) are expressed by the above-described formulae (20) and (21). The characters of y_{t }and H(x_{t}) in formula (9) are expressed by the following formulae (32) and (33).

where A denotes a matrix showing the acceleration components (A_{x}, A_{y}, A_{z}) of the three axes at time t in the sensor coordinate system; {dot over (A)} denotes the first-order differential value of A; Ä denotes the second-order differential value of A; and ^{0}A denotes a matrix showing the acceleration components of the three axes at time t in the absolute coordinate system.

The character of ^{s}R_{s }which denotes a rotation matrix from the sensor coordinate system to the absolute coordinate system is expressed by the above-described formula (24), and the character of ^{S}R_{a }which denotes a rotation matrix from the spin axis coordinate system to the sensor coordinate system is expressed by the above-described formula (25).

As in the calculation of the traveling direction in step S**30**, by repeatedly calculating formulae (14) to (19) using x_{t }and F(x_{t}) expressed by formulae (20) and (21) and using y_{t }and H(x_{t}) expressed by formulae (32) and (33), the most probable estimated value of state value x_{t }at time t can be calculated. That is, roll angle φ_{a }and pitch angle θ_{a }of the spin axis of ball **2** in the absolute coordinate system, and roll angle φ_{s}, pitch angle θ_{s}, and yaw angle of the spin axis of the ball in the sensor coordinate system are estimated.

Then, analysis device **10** calculates angle θ_{h }of the spin axis of ball **2** relative to a horizontal plane (a plane orthogonal to the gravity direction) using the estimated roll angle φ_{a }and pitch angle θ_{a}. Specifically, analysis device **10** executes the computation using the above-described formulae (26) to (28). Also, analysis device **10** can calculate angle Ψ_{h }of the spin axis relative to the traveling direction, using the traveling direction of ball **2** calculated in step S**30** (i.e., the rotation matrix in each axis direction), and using rotation matrix ^{0}R_{a }from the spin axis coordinate system to the absolute coordinate system shown in formula (26). In this case, analysis device **10** executes the computation using the above-described formulae (29) to (31).

Analysis device **10** displays, on display **110**, the angle of the spin axis of ball **2** (e.g. angles θ_{h}, Ψ_{h}) calculated in step S**52** (step S**54**), and ends the process.

**<Functional Configuration>**

**10**A according to embodiment 2. With reference to **10**A includes a spin axis calculation unit **312**A, instead of spin axis calculation unit **312** in analysis device **10** in **10**, and thus the detailed explanation thereof is not repeated.

Spin axis calculation unit **312**A calculates (estimates) the angle of the spin axis of ball **2** relative to a predetermined direction using the extended Kalman filter, based on the attitude information calculated by attitude calculation unit **304**, the spin rate of ball **2** calculated by spin rate calculation unit **310**, the accelerations in the x-axis, y-axis, and z-axis directions (sensor coordinate system) in the analysis period detected by acceleration sensor **220**, the first-order differential value of the acceleration, and the second-order differential value of the acceleration.

Specifically, based on the attitude information, the spin rate, the acceleration data, and the first-order and second-order differential values of the acceleration data, spin axis calculation unit **312**A calculates angle θ_{h }of the spin axis of ball **2** relative to a horizontal plane and angle Ψ_{h }of the spin axis relative to the traveling direction, by applying the extended Kalman filter to a state equation where the angle of the spin axis of ball **2** (e.g. roll φ_{a}, pitch angle θ_{a}) is a state value, and to an observation equation where the acceleration data and the first-order and second-order differential values of the acceleration data are observation values. More specifically, spin axis calculation unit **312**A calculates angle θ_{h }and angle Ψ_{h }by executing the computation using the above-described formulae (8), (9), (14) to (21), and (24) to (33).

**<Advantages>**

According to embodiment 2, the angle of the spin axis of ball **2** is calculated using acceleration data but without geomagnetic data. Accordingly, the angle of the spin axis of ball **2** can be calculated accurately even at a place vulnerable to magnetic field.

**OTHER EMBODIMENTS**

(1) In analysis system **1000** in the above-described embodiments, ball **2** is a baseball, by way of example but without limitation. For example, analysis system **1000** is applicable to a softball as well.

(2) In the above-described embodiment, a computer may be used to provide a program to execute control as described above in the flowcharts. Such a program may be provided as a program product by being stored in a non-transitory computer-readable storage medium, such as a flexible disk, a compact disk read only memory (CD-ROM), a ROM, a RAM, and a memory card for the computer. Alternatively, the program may be provided by being stored in a storage medium built in a computer, such as a hard disk. Further, the program may be provided through download via a network.

The program may be the one that calls a necessary module among program modules provided as a part of an operating system (OS) of the computer at a predetermined timing and executes the process. In this case, the program itself does not include the above-described module but cooperates with the OS to execute the process. Such a program that does not include a module may also be included in a program according to the present embodiment.

A program according to the present embodiment may be provided by being incorporated in a part of another program. In such a case, the program itself does not include a module included in the other program but cooperates with the other program to execute the process. Such a program incorporated in another program may also be included in a program according to the present embodiment.

(3) The configurations shown above in the embodiments are examples of the present invention. They may be combined with other known techniques or may be modified by, for example, skipping a part thereof, within the scope not departing from the gist of the present invention.

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.

## Claims

1. An analysis device for analyzing a spin axis of a ball, the analysis device comprising:

- an information input unit configured to receive an input of acceleration data and geomagnetic data detected on a time-series basis by a sensor device built in the ball;

- an attitude calculation unit configured to calculate attitude information of the ball, based on the acceleration data and the geomagnetic data;

- a spin rate calculation unit configured to calculate the spin rate of the ball released from a subject, based on the geomagnetic data; and

- a spin axis calculation unit configured to calculate an angle of the spin axis of the ball relative to a predetermined direction, using a predetermined filter and based on the attitude information, the spin rate, the geomagnetic data, and a first-order differential value and a second-order differential value of the geomagnetic data.

2. The analysis device according to claim 1, wherein the spin axis calculation unit is configured to calculate the angle of the spin axis of the ball in a predetermined period around a timing at which the ball was released.

3. The analysis device according to claim 1, wherein the spin axis calculation unit is configured to, based on the attitude information, the spin rate, the geomagnetic data, the first-order differential value, and the second-order differential value, calculate the angle of the spin axis of the ball by applying the predetermined filter to an observation equation where the geomagnetic data, the first-order differential value, and the second-order differential value are observation values.

4. The analysis device according to claim 1, further comprising a direction calculation unit configured to calculate a traveling direction of the ball released from the subject, using the predetermined filter and based on the acceleration data, wherein

- the predetermined direction is the traveling direction calculated by the direction calculation unit.

5. The analysis device according to claim 4, wherein the direction calculation unit is configured to calculate a rotation matrix that defines the traveling direction, by applying the predetermined filter to

- a state equation where the rotation matrix that defines the traveling direction is a state value, and

- an observation equation where a maximum value of the acceleration data in a predetermined period is an observation value, the predetermined period being a period around a timing at which the ball was released.

6. The analysis device according to claim 1, wherein

- the sensor device includes a low acceleration sensor configured to detect a low acceleration, and a high acceleration sensor configured to detect a high acceleration,

- the acceleration data includes low acceleration data detected by the low acceleration sensor, and high acceleration data detected by the high acceleration sensor, and

- the attitude calculation unit is configured to, when calculating initial attitude information of the ball, adopt the low acceleration data as the acceleration data.

7. The analysis device according to claim 1, wherein the predetermined filter is an extended Kalman filter.

8. An analysis device for analyzing a spin axis of a ball, the analysis device comprising:

- an information input unit configured to receive an input of acceleration data and geomagnetic data detected on a time-series basis by a sensor device built in the ball;

- an attitude calculation unit configured to calculate attitude information of the ball, based on the acceleration data and the geomagnetic data;

- a spin rate calculation unit configured to calculate the spin rate of the ball released from a subject, based on the geomagnetic data; and

- a spin axis calculation unit configured to calculate an angle of the spin axis of the ball relative to a predetermined direction, using a predetermined filter and based on the attitude information, the spin rate, the acceleration data, and a first-order differential value and a second-order differential value of the acceleration data.

9. The analysis device according to claim 8, wherein the spin axis calculation unit is configured to, based on the attitude information, the spin rate, the acceleration data, the first-order differential value, and the second-order differential value, calculate the angle of the spin axis of the ball by applying the predetermined filter to an observation equation where the acceleration data, the first-order differential value, and the second-order differential value are observation values.

10. An analysis system comprising:

- an analysis device for analyzing a spin axis of a ball; and

- a sensor device built in the ball,

- the analysis device including: an information input unit configured to receive an input of acceleration data and geomagnetic data detected on a time-series basis by the sensor device; an attitude calculation unit configured to calculate attitude information of the ball, based on the acceleration data and the geomagnetic data; a spin rate calculation unit configured to calculate the spin rate of the ball released from a subject, based on the geomagnetic data; and a spin axis calculation unit configured to calculate an angle of the spin axis of the ball relative to a predetermined direction, using a predetermined filter and based on the attitude information, the spin rate, the geomagnetic data, and a first-order differential value and a second-order differential value of the geomagnetic data.

**Patent History**

**Publication number**: 20190336826

**Type:**Application

**Filed**: Nov 8, 2018

**Publication Date**: Nov 7, 2019

**Inventors**: Shohei Shibata (Osaka), Takeshi Naruo (Osaka), Yuto Kase (Osaka), Kiyoshi Hirose (Kyoto)

**Application Number**: 16/184,302

**Classifications**

**International Classification**: A63B 24/00 (20060101);