Electronic device, exercise data acquisition method and program
The electronic device corrects for measurement errors and integration drift in exercise data by using inertial sensors to accurately calculate lateral movements through multiple cycle averaging and linear interpolation, enhancing exercise data precision.
Patent Information
- Application Number
- JP2024081128
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-05-17
- Publication Date
- 2025-08-26
- Estimated Expiration
- 2040-09-14
AI Technical Summary
Existing methods for calculating left and right movements during exercise, such as running, suffer from measurement errors and integration drift, leading to inaccurate and unstable data calculations.
An electronic device that includes inertial sensors to acquire angular velocity and acceleration data, corrects the moving direction using deviation values over multiple two-step cycles, and corrects speed and position data by subtracting integration errors using linear interpolation over two-step cycles.
Enables accurate and stable calculation of lateral movements by correcting for errors in direction, speed, and position data, ensuring precise exercise data acquisition.
Smart Images

Figure 0007729434000001 
Figure 0007729434000002 
Figure 0007729434000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to an electronic device, an exercise data acquisition method, and a program. [Background technology]
[0002] 2. Description of the Related Art When exercising, such as running, an inertial sensor is attached to a user's waist to acquire exercise data and analyze body movements during exercise, such as running form.
[0003] Patent Document 1 discloses a motion analysis device that calculates the left and right movements of a user based on measurement data acquired from an inertial sensor attached to the user. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2016-32611 Summary of the Invention [Problem to be solved by the invention]
[0005] However, when attempting to obtain desired data based on certain data, errors accumulate due to measurement errors, direction estimation accuracy, drift due to integration, etc., making it difficult to calculate left and right movements accurately and stably.
[0006] The present invention has been made in view of the above, and provides a method for controlling a user's posture during exercise. Movement of The purpose is to calculate the value of the saturation voltage accurately and stably. [Means for solving the problem]
[0007] The electronic device according to the present invention comprises: Acquire angular velocity data in the user's body axis direction; deriving a deviation value based on a first average value of angles obtained based on the angular velocity data during a period that is a multiple of a first two-step cycle and a second average value of angles obtained based on the angular velocity data during a period that is a multiple of a second two-step cycle that is earlier than the first two-step cycle; Correcting the moving direction of the user using the angle obtained based on the angular velocity data and the deviation value. death, Based on the correction of the moving direction of the user, acceleration data corresponding to a moving state of the user in a lateral direction of the body perpendicular to a body axis of the user is acquired; Deriving speed data based on the acceleration data, and deriving an error in the speed data based on an average value of the speed data over a period that is a multiple of the first two-step cycle and an average value of the speed data over a period that is a multiple of the second two-step cycle, and correcting the speed data using the error in the speed data. . [Effects of the Invention]
[0008] According to the present invention, a user who is exercising Movement of This allows for accurate and stable calculation of the time. [Brief explanation of the drawings]
[0009] [Figure 1] 1 is a front view showing the appearance of an electronic device according to an embodiment of the present invention. [Figure 2] 1 is a diagram showing a state in which an electronic device according to an embodiment of the present invention is worn on a human body; [Figure 3] 1 is a diagram showing a configuration of an electronic device according to an embodiment of the present invention; [Figure 4] 2A to 2C are diagrams illustrating three axis directions of an acceleration sensor and a gyro sensor according to an embodiment of the present invention. [Figure 5] FIG. 2 is a diagram illustrating a functional configuration of a control unit of the electronic device according to the embodiment of the present invention. [Figure 6] 10 is a flowchart showing a lateral movement acquisition process procedure of a control unit of the electronic device according to the embodiment of the present invention. [Figure 7] 10 is a flowchart illustrating a procedure for estimating an attitude of a control unit of the electronic device according to the embodiment of the present invention. [Figure 8] 10A and 10B are diagrams illustrating deviations in the attitude of the electronic device in the traveling direction according to the embodiment of the present invention. [Figure 9]1A is a waveform diagram of angular velocity showing the deviation of the attitude of the electronic device in the traveling direction according to the embodiment of the present invention, and FIG. 1B is a waveform diagram of angle showing the deviation of the attitude of the electronic device in the traveling direction according to the embodiment of the present invention. [Figure 10] 10 is a flowchart showing a lateral movement estimation process procedure of a control unit of the electronic device according to the embodiment of the present invention. [Figure 11] 10A and 10B are waveform diagrams showing integral errors of the electronic device according to the embodiment of the present invention; [Figure 12] 10 is a flowchart showing a speed data correction process performed by a control unit of the electronic device according to the embodiment of the present invention. [Figure 13] 10 is a flowchart showing a position data correction process procedure of the control unit of the electronic device according to the embodiment of the present invention. [Figure 14] 6 is a time chart illustrating a speed data and position data correction process performed by a control unit of the electronic device according to the embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0010] Hereinafter, an electronic device according to an embodiment of the present invention will be described with reference to the drawings. In the following description, "running" is a general term for the action of moving using the user's own feet, including walking.
[0011] An electronic device 1 according to this embodiment is integrated with various inertial sensors, which will be described later. As shown in FIG. 1 , the electronic device 1 has a power key 2 and a display unit 3, for example, an LED (Light Emitting Diode), on the front side. By operating the power key 2, sensor data is acquired by the inertial sensor. The display unit 3 indicates the operating state; for example, when the power is turned on and sensor data is being acquired from the inertial sensor, the LED remains lit. The electronic device 1 also has a clip 4, which is an attachment part, on the back side, and can be attached by clipping the clip 4 to an object.
[0012] As shown in FIG. 2, for example, the electronic device 1 is worn near the center of the waist on the user's back while running. The electronic device 1 is attached to the waist by clipping the clip 4 to the user's clothing or belt. By being worn on the user's waist, the electronic device 1 acquires the body movement during exercise using a built-in inertial sensor. Note that the electronic device 1 may be worn in close contact with any part of the human body, such as the chest, the center of the abdomen, or the neck, instead of the waist, as long as it can accurately detect the movement of the user's torso, including the trunk, during exercise. Furthermore, the method of attaching the electronic device 1 is not limited to the clip 4, and may also be a pin, adhesive tape, or the like, as long as it can be worn in close contact with the user.
[0013] As shown in FIG. 3, the electronic device 1 includes a central control circuit 31 that controls the entire device, a ROM (Read Only Memory) 32 that is a nonvolatile storage circuit, a RAM (Random Access Memory) 33 that is a volatile storage circuit, a storage unit 34, a wireless communication module 35 that performs wireless communication, an input / output control circuit 36 that controls input from the power key 2 and output to the display unit 3, an acceleration sensor 37 that detects acceleration, a gyro sensor 38 that detects angular velocity, a timer unit 39 that measures time, and a power supply circuit 40 that supplies power to the above circuits and includes a battery such as a secondary battery.
[0014] The acceleration sensor 37 and gyro sensor 38, which are inertial sensors, measure the user's state of motion. The acceleration sensor 37 is a triaxial acceleration sensor that detects acceleration in three mutually orthogonal axial directions to measure changes in the movement speed of the user while exercising.
[0015] The gyro sensor 38 is a three-axis angular velocity sensor, and measures changes in the direction of movement of the user while exercising by detecting the angular velocity of rotation around each of the three axes that define the acceleration in the acceleration sensor 37.
[0016] FIG. 4 is a diagram showing the three axis directions of the acceleration sensor 37 and the gyro sensor 38. The forward and backward direction of a human body during exercise such as running is defined as the y-axis. Here, the forward direction of the user is defined as the + direction, and the opposite direction is defined as the - direction. The left and right lateral directions of the human body, which are perpendicular to the y-axis, are defined as the x-axis direction. Here, the direction of the user's right hand is defined as the + direction, and the opposite direction is defined as the - direction. The body axis direction, which is the up and down direction of the human body, which is perpendicular to the xy plane, is defined as the z-axis direction. Here, the direction above the user's head is defined as the + direction, and the opposite direction is defined as the - direction. Furthermore, the angular velocity occurring in a clockwise direction toward the + direction of each axis is defined as the + direction.
[0017] The timing unit 39 measures the elapsed time when acquiring sensor data from the acceleration sensor 37 and the gyro sensor 38, and outputs the measured time as time data. Here, the timing unit 39 has, for example, a radio-controlled clock function, and measures the elapsed time during the user's exercise with high accuracy based on standard radio waves transmitted from a transmitting station or time information transmitted from a GPS (Global Positioning System) satellite. Alternatively, the timing unit 39 may measure time using a base clock generated by a built-in quartz oscillator.
[0018] The central control circuit 31 includes a processor and is connected to each circuit via a bus, and executes a control program stored in a ROM 32 to realize various functions and control the entire device.
[0019] The ROM 32 stores control programs and various fixed data for the central control circuit 31 to realize various functions. The RAM 33 functions as a work area for the central control circuit 31. The storage unit 34 is a non-volatile memory such as a flash memory or a hard disk. The storage unit 34 stores programs used by the central control circuit 31 to perform various processes and data generated or acquired by the various processes. By executing a predetermined control program, the central control circuit 31 controls the detection operations of the acceleration sensor 37 and gyro sensor 38, the measurement of elapsed time by the timer unit 39, the saving and reading of sensor data to the RAM 33 and storage unit 34, and the transmission of motion data to an external device 41 via the wireless communication module 35. The central control circuit 31 also performs posture estimation and lateral movement estimation processes (described below) on the sensor data, correcting the motion data so that the motion data can be analyzed correctly.
[0020] The wireless communication module 35 has an interface for communicating with the external device 41 via a wireless LAN (Local Area Network), Bluetooth (registered trademark), or the like, and communicates wirelessly with the external device 41 via an antenna (not shown). The exercise data acquired by the electronic device 1 is transmitted to the external device 41 via the wireless communication module 35. Note that communication with the external device 41 may be performed via a wired communication module such as a USB (Universal Serial Bus) instead of the wireless communication module 35.
[0021] The input / output control circuit 36 converts a signal input from the power key 2 into data and transmits it to the central control circuit 31 , and also controls the lighting of the display unit 3 based on a control signal from the central control circuit 31 .
[0022] The power supply circuit 40 includes a power supply IC (Integrated Circuit) and generates and supplies the power required for each circuit from a battery. The power supply circuit 40 also charges the battery.
[0023] The external device 41 receives the user's exercise data transmitted from the electronic device 1 via the wireless communication module 35. The external device 41 analyzes the received exercise data and displays the analysis results. The external device 41 is, for example, a smart watch worn by the user, a smartphone, a tablet terminal, a personal computer, a server device on a network, etc. That is, the external device 41 may be a device carried by the user or worn on the body so that the user can check the analysis results during exercise, or may be a device installed separately from the electronic device 1 without being carried by the user so that the user can carefully check the analysis results after exercise.
[0024] In the electronic device 1, the central control circuit 31 controls the operation of each part according to instructions written in a program, and the software and hardware work together to form a control unit 50 that realizes the functions described below, as shown in Figure 5.
[0025] The control unit 50 includes an acceleration data acquisition unit 51 that acquires acceleration data from an acceleration sensor, an angular velocity data acquisition unit 52 that acquires angular velocity data from a gyro sensor, a posture estimation unit 53, and a lateral movement estimation unit 54.
[0026] The acceleration data acquisition unit 51 samples the acceleration signal detected by the acceleration sensor 37 at a predetermined sampling period to acquire acceleration data.
[0027] The angular velocity data acquisition unit 52 samples the angular velocity signal detected by the gyro sensor 38 at a predetermined sampling period to acquire angular velocity data.
[0028] The posture estimation unit 53 estimates the posture of the electronic device 1 worn on the user's waist based on data from the acceleration sensor 37 and the gyro sensor 38. The posture estimation unit 53 includes a gravity direction estimation / correction unit 53a and a traveling direction posture estimation unit 53b. The gravity direction estimation / correction unit 53a estimates the inclination with respect to the gravity direction and converts it into data along an axis with respect to the gravity direction. Furthermore, the traveling direction posture estimation unit 53b estimates the inclination with respect to the traveling direction in which the user is running.
[0029] The lateral movement estimation unit 54 estimates the lateral movement (x-axis direction) of the electronic device 1 worn on the user's waist, i.e., the lateral movement of the user. The lateral movement estimation unit 54 includes a traveling direction attitude correction unit 54a, a speed data correction unit 54b, and a position data correction unit 54c. The traveling direction attitude correction unit 54a corrects the inclination with respect to the traveling direction in which the user is traveling, estimated by the traveling direction attitude estimation unit 53b, so as to align the y-axis parallel to the traveling direction. The speed data correction unit 54b calculates the speed data by integrating the acceleration data and subtracts the integral error from the speed data to correct the speed data. The position data correction unit 54c calculates the position data by integrating the speed data corrected by the speed data correction unit 54b and subtracts the integral error from the position data to correct the position data.
[0030] Next, a control method (exercise data acquisition method) in the electronic device 1 will be described with reference to the drawings. The series of exercise data acquisition methods described below are realized by executing a predetermined control program in the central control circuit 31 described above.
[0031] First, an outline of a lateral movement data acquisition method in the electronic device 1 according to this embodiment will be described. FIG. 6 is a flowchart showing a lateral movement acquisition process in the electronic device 1 according to this embodiment. The user wears the electronic device 1 around their waist, operates the power key 2 to enable measurement of exercise data, and then starts running. When running begins, sensor signals are output from the acceleration sensor 37 and the gyro sensor 38. When the sensor signals are output, the acceleration data acquisition unit 51 samples the sensor signal from the acceleration sensor 37 at a predetermined sampling frequency, for example, 200 Hz, and stores the acceleration data in the storage unit 34 to acquire acceleration data. Similarly, the angular velocity data acquisition unit 52 samples the sensor signal from the gyro sensor 38 at a sampling frequency of 200 Hz and stores the angular velocity data in the storage unit 34 to acquire angular velocity data.
[0032] The control unit 50 monitors the movement state based on the acceleration signal detected by the acceleration sensor 37 or the angular velocity signal detected by the gyro sensor 38, and determines whether the user is continuing to run or has ended (step S101). For example, if an acceleration signal equal to or greater than a predetermined value is detected within a predetermined interval, the control unit 50 determines that the user is continuing to run; otherwise, the control unit 50 determines that the user has ended to run. If the control unit 50 determines that the user is continuing to run (step S101: NO), the control unit 50 performs a posture estimation process each time sensor data is obtained (step S102). At the same time, the control unit 50 determines whether the user has taken two steps as the user's running state based on the acceleration of the sensor data (step S103). The control unit 50 acquires and stores in memory acceleration data (acceleration data in the x-axis direction) for two step cycles, and determines that the user has completed two step cycles of acceleration data (step S103: YES). If the control unit 50 determines that the user has completed two step cycles of acceleration data in the x-axis direction, the control unit 50 performs a lateral movement estimation process to estimate the user's lateral movement (step S104). After the lateral movement estimation process is executed, the process returns to step S101. If the x-axis direction acceleration data for two step cycles is not collected (step S103: NO), the process returns to step S101, and as long as running continues, the process returns to step S101 repeatedly until the x-axis direction acceleration data for two step cycles is collected. If it is determined in step S101 that running has ended (step S101: YES), the lateral movement acquisition process ends.
[0033] Next, the posture estimation process will be described with reference to Fig. 7. As described above, the inertial sensor including the acceleration sensor 37 and the gyro sensor 38 is attached to the user's waist. Here, when running, the user's posture may lean forward or to the left or right. In this case, the z-axis direction, which should be parallel to the direction of gravity, and the y-axis direction, which should be parallel to the user's direction of travel, are tilted by the angle of inclination of the waist of the user wearing the inertial sensor. Therefore, posture estimation process is performed to estimate these inclinations based on data from the acceleration sensor 37 and the gyro sensor 38.
[0034] In the attitude estimation process, the control unit 50 first estimates the tilt with respect to the direction of gravity and performs gravity direction estimation and correction processing to convert data along axes with respect to the direction of gravity, i.e., y-axis and x-axis along the horizontal direction, into axial coordinate data with the direction of gravity as the z-axis direction (step S201). As an example of this estimation method, the triaxial output of the acceleration sensor 37 and the triaxial output of the gyro sensor 38 are input to a Kalman filter or a low-pass filter to calculate triaxial data of acceleration and triaxial data of angular velocity with respect to the ground, thereby estimating the direction of gravity. Alternatively, an axis estimation method other than a Kalman filter or a low-pass filter may be employed to estimate the direction of gravity. Once the direction of gravity is estimated, the attitude is corrected to the estimated direction of gravity based on the data from the acceleration sensor 37 and the gyro sensor 38. This processing aligns the z-axis direction of the data from the acceleration sensor 37 and the gyro sensor 38 with the direction of gravity.
[0035] Next, the control unit 50 performs a traveling direction estimation process to estimate the inclination relative to the traveling direction in which the user is traveling, and align the y-axis so that it is parallel to the traveling direction (step S202). The control unit 50 obtains angle data by integrating angular velocity data from the gyro sensor 38, which has undergone processing to correct the attitude in the direction of gravity in the traveling direction estimation process, and calculates the difference between the current y-axis direction of the gyro sensor 38 and the traveling direction, thereby estimating the traveling direction and correcting the traveling direction attitude. However, since the angle is obtained by integrating the angular velocity data, an integration error occurs, and errors also occur when the user turns around a curve while traveling, and these errors may accumulate, causing the results to be inaccurate.
[0036] This state will be explained with reference to Fig. 8. Fig. 8 shows a state in which the user is running, and the user is shifted by the angular velocity data GyrZ in the z-axis direction relative to the direction of travel. While running, the user alternately puts their feet out and swings their arms, causing their hips to rotate alternately left and right, and the angular velocity data GyrZ about the z-axis describes a sine wave centered on the direction of travel. However, for example, when the user is running around a curve, a shift occurs in the center of the angular velocity.
[0037] Figure 9(a) shows angular velocity data GyrZ around the z-axis when the user changes from driving straight to driving around a curve. Here, a shift occurs in the center of angular velocity when the user drives around the curve. This angular velocity data is integrated and shown as angle data, which is shown as curve 91 in Figure 9(b). Normally, the angular velocity would be as shown in curve 93, but a large shift occurs in the angle when the user turns the curve.
[0038] In this way, the direction of travel changes from moment to moment, and as this change occurs, the posture error in the direction of travel increases. When the posture error in the direction of travel increases, the y-axis is not corrected to the correct direction, and as a result, the x-axis is also not corrected to the correct direction. In other words, it becomes impossible to accurately calculate left and right movements. Therefore, by extracting and removing this posture error from the angle data, the y-axis is corrected to the correct direction. In this embodiment, this correction is performed using angular velocity data for two stride periods when walking or running.
[0039] Generally, in running, one foot, for example the right foot, steps forward in the direction of travel and lands, then the other foot (left foot) kicks off (right foot lift-off), then the other foot (left foot) lands, then the other foot kicks off (left foot lift-off), and then the other foot (right foot) lands again, totaling two steps, one on each side, one on the left and one on the right.
[0040] At this time, as the right foot steps out, the hips move clockwise from the direction of travel, then turn around and move counterclockwise as the right foot lands, return to the direction of travel as the right foot kicks off, then move counterclockwise again, then turn around and move clockwise as the left foot lands, returning to the direction of travel.
[0041] In other words, the trajectory of the angle around the z-axis during this time is symmetrical and averages out to 0. Therefore, if there is no error as described above, the average angle over a two-step cycle is 0, and conversely, if there is an error, the average angle over a two-step cycle indicates an attitude error in the direction of travel.
[0042] Therefore, the average of the integration results for two step periods is calculated and subtracted from the integration result. This obtains speed data with posture error removed. This makes it possible to make the difference between the direction of travel and the y-axis direction of the sensor zero on average over two step periods.
[0043] The two-step period is calculated based on angular velocity data from the gyro sensor 38. When the user runs, the angular velocity becomes 0 when the left foot is put forward in the direction of travel and the heel touches the ground. After the heel of the left foot touches the ground, the angular velocity increases in the negative direction by kicking backward. The angular velocity is maximum when the user is facing the direction of travel. After the user is facing the direction of travel, the angular velocity decreases as the right foot moves in the direction of travel. Then, the angular velocity becomes 0 when the heel of the right foot lands.
[0044] After the heel of the right foot lands, the angular velocity increases in the positive direction as the user kicks off backward. The angular velocity is at its maximum when the user is facing the direction of travel. After the user is facing the direction of travel, the angular velocity decreases as the left foot moves in the direction of travel. Then, when the heel of the left foot lands, the angular velocity becomes 0. In this way, the two-step period can be calculated from the timing when the angular velocity becomes 0, or when the angular velocity is at its maximum or minimum.
[0045] Alternatively, the two-step period can be determined from acceleration data from the acceleration sensor 37. In a series of running movements, the vertical acceleration component of the acceleration data acquired by the acceleration sensor 37 exhibits a signal waveform with periodicity for each step on the left and right. Therefore, two step cycles of the vertical acceleration component correspond to one cycle of the running movement. Therefore, based on the vertical acceleration component acquired by the acceleration sensor, it is possible to stably extract motion data for each two-step cycle of the user's running movement. At the same time, it is possible to accurately measure the time for each two-step cycle. For example, the acceleration in the positive direction is maximized when the heel of the right foot lands, and the acceleration in the negative direction is maximized when the heel of the left foot lands. Note that other methods may be used as the period estimation method.
[0046] Before estimating the direction of travel, it is necessary to collect angular velocity data for two step cycles. The angular velocity signal detected by the gyro sensor 38 is input to the angular velocity data acquisition unit 52, which samples it at a predetermined sampling period and stores it in the memory unit 34. Once the angular velocity data for two step cycles has been stored in the memory unit 34, the angular velocity data GyrZ in the z-axis direction for these two step cycles is read from the memory unit 34. The angular velocity data GyrZ in the z-axis direction for these two step cycles is integrated to calculate the angle. Once the angle is calculated, the average angle within the two step cycles is calculated. Because the left and right swings in these two step cycles form a pair, the average angle should be zero.
[0047] However, deviations due to integration errors, curves, etc. appear in this average. The curve representing this average is curve 92 in FIG. 9(b). Here, the average is calculated by linearly interpolating between the average value of a two-step cycle and the average value of a two-step cycle centered on the point one step before that. The average value used for linear interpolation may be the average value of a two-step cycle and the average value of an adjacent two-step cycle centered on the point two steps before that. Furthermore, the average value is not limited to a two-step cycle, and may be an integer multiple of a two-step cycle, such as a four-step cycle or a six-step cycle. The control unit 50 calculates deviations due to integration errors, etc. by calculating the average as described above, and subtracts this deviation from the angle calculated by integrating the velocity data to correct the traveling direction. This completes the posture estimation process.
[0048] In FIG. 7, the posture estimation process is performed, and the acceleration data for two step periods is stored in the storage unit 34. Then, the acceleration data for two step periods is read from the storage unit 34, and the lateral movement estimation process is performed (FIG. 6, step S104).
[0049] Next, the lateral movement estimation process will be described with reference to FIG. First, the posture error in the traveling direction obtained by the posture estimation process is used to correct the posture in the traveling direction for the stored acceleration data for two step periods. As a result, posture correction in the traveling direction is performed in addition to the posture correction in the gravity direction already performed by the posture estimation process, and the acceleration in the x-axis direction is obtained, where the z-axis is the gravity direction and the y-axis is the traveling direction (step S301).
[0050] The acceleration data after the posture correction for the traveling direction in step S301 is integrated to calculate the velocity. However, the integration process generates an integration error, and the calculated velocity data contains this integration error. To calculate the position data, the velocity data must be further integrated. Integrating the velocity data generates an additional integration error, increasing the error in the calculated position data. FIG. 11 shows the position data obtained by integrating the acceleration data twice, with curve 111 representing the position data after two integrations. The error increases due to the accumulation of the integration error from the integration of the acceleration data and the integration error from the integration of the velocity data. Therefore, as in the case of posture correction for the traveling direction described above, this error component is calculated by averaging the integrated data for two step cycles. As described above, the trajectory of the angle around the z-axis in a two-step cycle is symmetrical and averages out to zero. Similarly, the changes in the velocity data and position data in the left-right direction, i.e., the x-axis direction, are also symmetrical and average out to zero. Therefore, if there is no integral error, the average of the velocity data and position data in the x-axis direction over a two-step cycle is 0, and conversely, if there is an error, the average of the velocity data and position data in the x-axis direction over a two-step cycle will indicate an integral error.
[0051] Here, the error component is calculated by finding an average every two step cycles, and interpolating the velocity data and position data between the found average and the next found average. In step S302, the acceleration data after posture correction in the direction of travel is integrated to calculate velocity data, and the error component of the velocity data is found and subtracted from the velocity data to find error-corrected velocity data.
[0052] Next, the speed data correction process in step S302 will be described with reference to Figures 12 and 14. In the time chart of Figure 14, the horizontal time axis indicates, from right to left, the most recent touchdown landing [0], the touchdown landing one step ago [1], the touchdown landing two steps ago [2], the touchdown landing three steps ago [3], and the touchdown landing four steps ago [4].
[0053] The correction process is performed for each step, and the memory unit 34 stores the following parameters: acceleration data accX, speed data velo_tmp, the most recently determined average value of speed data for a two-step cycle period velo_ave_cur, the previously determined average value of speed data for a two-step cycle period velo_ave_pst, an interpolated value velo_LI of speed data interpolated based on both average values, corrected speed data velo_cur corrected based on both most recently determined average values, the previously determined corrected speed data velo_pst, position data pos_tmp, the most recently determined average value of position data pos_ave_cur, the previously determined average value of position data pos_ave_pst, an interpolated value pos_LI of position data interpolated based on both average values, and corrected position data pos_cur corrected based on both average values.
[0054] Currently, data based on acceleration data up to landing [1] before landing [0] touches the ground is stored as the above parameters in storage unit 34. That is, the average value of the velocity data in the range between landing [1] and landing [3] two step cycles earlier is stored as the average value velo_ave_cur of the velocity data in the period of the most recently obtained two step cycle, the corrected velocity data between landing [2] and landing [3] is stored as the most recently obtained corrected velocity data velo_cur, and the average value of the position data in the range between landing [2] and landing [4] two step cycles earlier is stored as the average value pos_ave_cur of the position data in the period of the most recently obtained two step cycle.
[0055] Here, when new acceleration data for landing [0] is input, the speed data correction process is updated.
[0056] 12, the control unit 50 reads from the storage unit 34 the most recently calculated average value of velocity data for a two-step cycle period, velo_ave_cur, the most recently calculated corrected velocity data, velo_cur, and the most recently calculated average value of position data for a two-step cycle period, pos_ave_cur. The control unit 50 copies the average velocity data between landing [1] and landing [3] read as the most recently calculated average value of velocity data for a two-step cycle period, velo_ave_cur, to the previously calculated average value of velocity data for a two-step cycle period, velo_ave_pst. The control unit 50 also copies the corrected velocity data between landing [2] and landing [3] read as the most recently calculated corrected velocity data, velo_cur, to the previously calculated corrected velocity data, velo_pst. Furthermore, the control unit 50 copies the average position data between landing [2] and landing [4] read as the average value pos_ave_cur of the position data for the most recently determined two-step cycle period to the average value pos_ave_pst of the position data for the previously determined two-step cycle period (step S401).
[0057] Next, the control unit 50 integrates the acceleration data accX in the range between landing[0] and landing[2] to obtain velocity data velo_tmp at each time point (step S402). velo_tmp is obtained as an array of velocity data for every 5 ms, for example.
[0058] Once the speed data velo_tmp between landing [0] and landing [2] is calculated, the control unit 50 calculates the average value of the speed data within the two-step cycle range between landing [0] and landing [2] as the average value velo_ave_cur of the speed data for the most recently calculated two-step cycle period, and stores this in the memory unit 34 (step S403). Here, the most recently calculated two-step cycle period is an example of a period that is a multiple of the first two-step cycle or a multiple of the second two-step cycle. As described above, the average of the speed data for the two-step cycle period should be zero, but errors occur due to integration errors and the like. Therefore, the speed data is corrected by subtracting the average value of the speed data for the two-step cycle period from the speed data.
[0059] Once velo_ave_cur is calculated, the control unit 50 calculates an interpolated value using this velo_ave_cur and the previously calculated average value velo_ave_pst of the speed data for the two-step cycle period, which is the average value of the speed data for the two-step cycle period of landing [1] and landing [3] copied in step S401 (step S404). Here, the previously calculated two-step cycle period is an example of a period of a multiple of the second two-step cycle or a multiple of the first two-step cycle. velo_ave_pst, which is the average value of the speed data for the two-step cycle period of landing [1] and landing [3], is the average value of the two-step cycle period centered on landing [2], which is one step before velo_ave_cur, and velo_ave_cur is set so that the two-step cycle periods between landing [1] and landing [2] partially overlap on the time axis. Therefore, the average value of the speed data for a two-step period centered on the time of landing [1], velo_ave_cur, and the average value of the speed data for a two-step period centered on the time of landing [2], velo_ave_pst, are used to interpolate the average value of the speed data for each two-step period between landing [1] and landing [2]. Here, linear interpolation is used. A straight line is drawn between the average value of the speed data at landing [1], velo_ave_cur, and the average value of the speed data at landing [2], velo_ave_pst, to determine the average value of the speed data at each time point between them. The linearly interpolated average value of the speed data at each time point, velo_LI, is calculated as an array of average values of the speed data every 5 ms, for example, in the same way as velo_tmp.
[0060] Once the array velo_LI of the average values of the linearly interpolated speed data at each time point between landing [1] and landing [2] has been obtained, the control unit 50 obtains corrected speed data velo_cur by removing the average value of the speed data from the speed data velo_tmp obtained in step S402 (step S405). velo_tmp uses the speed data at each time point between landing [1] and landing [2] from the speed data velo_tmp obtained in step S402. The corrected speed data velo_cur at each time point between landing [1] and landing [2] is obtained by subtracting the average value velo_LI of the linearly interpolated speed data at each corresponding time point from the speed data velo_tmp at each corresponding time point between landing [1] and landing [2].
[0061] The control unit 50 combines the corrected speed data velo_cur at each point between landing [1] and landing [2] and the corrected speed data velo_pst between landing [2] and landing [3] copied in step S401 to obtain corrected speed data velo for two step periods between landing [1] and landing [3] (step S406). This completes the speed data correction process.
[0062] Returning to Fig. 10, the corrected speed data, for which the integral error has been corrected in step S302, is subjected to integration processing to calculate position data. As described above, integral processing of speed data generates integral error, and the calculated position data contains this integral error. The average value of the position data for a two-step cycle period should essentially be zero, but an error occurs due to integral error, etc. Therefore, the corrected position data is calculated by removing the average value of the position data for a two-step cycle period centered around that point from the position data calculated by integrating the corrected speed data (step S303).
[0063] Next, the correction process of the position data in step S303 will be described with reference to FIG. 13 and the time chart of FIG.
[0064] The control unit 50 integrates the corrected velocity data velo for two stride periods of landing [1] and landing [3] corrected in the velocity data correction process of Fig. 12 to obtain position data pos_tmp (step S501). pos_tmp is obtained as an array of position data every 5 ms, for example.
[0065] When the position data pos_tmp between landing [1] and landing [3] is obtained, the control unit 50 obtains the average value of the position data for the two-step period between landing [1] and landing [3] as the average value pos_ave_cur of the position data for the most recently obtained two-step period (step S502). As described above, the average for a two-step period should be zero, but errors occur due to integration errors, etc. Therefore, the position data is corrected by subtracting the average value of the position data for the two-step period from the position data.
[0066] When pos_ave_cur is calculated, the control unit 50 calculates an interpolated value (step S503) using this pos_ave_cur and the average value of the position data for the two-step cycle period of landing [2] and landing [4], which was copied to pos_ave_pst, the average value of the position data for the two-step cycle period previously calculated in step S401 of Fig. 11. pos_ave_pst, which is the average value of the position data for the two-step cycle period of landing [2] and landing [4], is the average value of the position data for the two-step cycle period centered on landing [3], which is one step before pos_ave_cur, and pos_ave_cur is set so that the two-step cycle periods between landing [2] and landing [3] on the time axis partially overlap. Therefore, the average value of the position data for the two-step period centered on the time of landing [2], pos_ave_cur, and the average value of the position data for the two-step period centered on the time of landing [3], pos_ave_pst, are used to interpolate the average value of the position data for the two-step period at each time point between landing [2] and landing [3]. Here, linear interpolation is used as in the case of speed. A straight line is connected between the average value of the position data for the two-step period centered on the time of landing [2], pos_ave_cur, and the average value of the position data for the two-step period centered on the time of landing [3], pos_ave_pst, to determine the average value of the position data for the two-step period at each time point between them. The average value of the linearly interpolated position data for the two-step period at each time point, pos_LI, is calculated as an array of the average values of the position data for the two-step period every 5 ms, for example, in the same way as pos_tmp.
[0067] Once the average value pos_LI of the position data over the two-step period linearly interpolated at each time point between landing [2] and landing [3] has been determined, the control unit 50 determines corrected position data pos_cur by removing the average value of the position data over the two-step period from the position data pos_tmp determined in step S501 (step S504). pos_tmp uses the position data at each time point between landing [2] and landing [3] from the position data pos_tmp determined in step S501. The corrected position data pos_cur at each time point between landing [2] and landing [3] is determined by subtracting the average value pos_LI of the position data over the two-step period linearly interpolated at each corresponding time point from the position data pos_tmp at each corresponding time point between landing [2] and landing [3]. This completes the position data correction process.
[0068] As described above, when integrating acceleration data to obtain speed data, the average of the speed data over two step cycles is subtracted to obtain error-corrected speed data, and when integrating the corrected speed data to obtain lateral movement position data, the average of the speed data over two step cycles is subtracted to obtain error-corrected lateral movement position data.This reduces the error in the lateral movement position data due to the accumulation of integration error from double integration, and enables the lateral movement position data to be calculated with high accuracy.
[0069] Then, by correcting the speed data and position data using linear interpolation based on the average of two-step cycles, errors can be corrected stably and accurately. Because correction using linear interpolation is a simple process, it requires less memory capacity and less calculation, reducing the load on the CPU. Furthermore, because it is a simple process, it can respond immediately even if the two-step cycle suddenly changes, such as when the user trips while running.
[0070] In the above embodiment, error components due to integration errors and the like of the speed data and position data are calculated by linearly interpolating between the average value of a two-step cycle and the average value of a two-step cycle centered on the step immediately preceding it. However, this is not limited to this. The average values used for the linear interpolation may be the average value of a two-step cycle and the average value of a consecutive two-step cycle centered on the step immediately preceding it. They may be set so that they partially overlap each other on the time axis, or so that they do not overlap each other on the time axis and are consecutive with no gap between them. Furthermore, while the average value used for the linear interpolation is the average value of a two-step cycle, this is not limited to this. For example, the average value of the speed data or the average value of the position data over a period that is a multiple of a two-step cycle, such as a four-step cycle or a six-step cycle, may also be used. Furthermore, in this case, adjacent cycles used for the linear interpolation may partially overlap or may be consecutive without overlapping. For example, in the case of a four-step cycle, adjacent four-step cycles may be four-step cycles centered on the step immediately preceding it, or four-step cycles centered on the step immediately preceding it. Furthermore, the interpolation is not limited to linear interpolation based on two average values, but may be quadratic interpolation based on three average values, for example. That is, an interpolated value between these three average values may be obtained by quadratic interpolation using three average values: the average value of the speed data or the average value of the position data during a first two-step cycle, the average value of the speed data or the average value of the position data during a second two-step cycle centered one step before that, and the average value of the speed data or the average value of the position data during a third two-step cycle centered two steps before that. Alternatively, interpolation may be based on four or more average values.
[0071] Furthermore, by integrating the angular velocity data to calculate the angle data, and correcting the angle data in the direction of travel using the error in the angle data calculated by linearly interpolating the angle data based on the average of two step periods, the posture in the direction of travel can be corrected to correspond to the direction of travel that changes from moment to moment, and the position data for left and right movement can be calculated more stably and accurately.
[0072] In this embodiment, the posture estimation process is performed to correct the posture, and then the lateral movement estimation process is performed to acquire data on the user's lateral movement. However, this is not limiting, and for example, the posture estimation process may be omitted and only the lateral movement estimation process may be performed. As described above, by performing the lateral movement estimation process, it is possible to eliminate the accumulation of integration errors due to double integration of acceleration data, and it is possible to calculate lateral movement position data stably and accurately. Furthermore, by adding the posture estimation process as in this embodiment, it is possible to correct the posture in response to changes in the traveling direction, and it is also possible to calculate lateral movement position data stably and accurately.
[0073] Although the present embodiment has been described as acquiring exercise data when the user is walking or running, the present invention is not limited to this and may be applied to recording exercise data such as cycling.
[0074] Furthermore, in the present embodiment, the electronic device 1 is provided with the acceleration sensor 37 and the gyro sensor 38, but the acceleration sensor 37 and the gyro sensor 38 may be provided separately from the electronic device 1. In this case, the acceleration sensor 37 and the gyro sensor 38 are attached to the user's waist and connected to the electronic device 1 by wire or wirelessly.
[0075] Furthermore, in this embodiment, electronic device 1 acquires sensor data from acceleration sensor 37 and gyro sensor 38, corrects the lateral movement motion data, and wirelessly transmits the corrected lateral movement motion data to external device 41, which analyzes the data and displays the analysis results. Thus, electronic device 1 and external device 41 constitute a system for acquiring and analyzing motion data. However, this is not limiting, and electronic device 1 may analyze the data and transmit the analysis results to external device 41. Furthermore, electronic device 1 may be provided with a display unit such as a liquid crystal display and display the display results.
[0076] Conversely, the electronic device 1 may only acquire sensor data from the acceleration sensor 37 and the gyro sensor 38, and the external device 41 may perform the correction process for the lateral movement motion data.
[0077] Furthermore, the electronic device 1 may have, for example, a card slot, in which a recording medium such as a memory card is detachably mounted, and the acquired data and corrected data may be stored in this recording medium.
[0078] Furthermore, although the electronic device 1 is provided with the acceleration sensor 37 and the gyro sensor 38 as sensors, it may also be provided with a geomagnetic sensor, a GPS receiver, and the like.
[0079] In the above embodiment, the central control circuit 31 functions as the control unit 50 by executing a program stored in the ROM 32. However, instead of the central control circuit 31 executing a program stored in the ROM 32, dedicated hardware such as an ASIC (Application Specific Integrated Circuit), an FPGA (Field-Programmable Gate Array), or various control circuits may be provided, and the dedicated hardware may function as the control unit. In this case, part of the control unit may be realized by the dedicated hardware, and other parts may be realized by software or firmware.
[0080] In the above embodiment, the program may be stored in advance in ROM 32, or may be read from an external recording medium such as a memory card via a recording medium reader into RAM 33, etc. Additionally, the program may be superimposed on a carrier wave and read and stored in RAM 33, etc. via a communication medium such as the Internet.
[0081] Although the embodiments of the present invention have been described, the scope of the present invention is not limited to the above-described embodiments, but includes the scope of the invention described in the claims and their equivalents. The inventions described in the claims originally attached to this application are appended below. The appended number corresponds to the claim originally attached to this application.
[0082] (Appendix 1) An electronic device including a control unit, The control unit Acquire acceleration data from the acceleration sensor corresponding to the movement state of the user in a lateral direction of the body perpendicular to the body axis while the user is moving on his / her feet; deriving speed data based on the acceleration data, and deriving an error in the speed data based on an average value of the speed data for a period of a multiple of a first two-step cycle and an average value of the speed data for a period of a multiple of a second two-step cycle that is continuous either before or after the period of the first two-step cycle, and generating corrected speed data by correcting the speed data using the error in the speed data; electronic equipment.
[0083] (Appendix 2) The control unit deriving position data based on the corrected speed data, and deriving an error in the position data based on an average value of the position data for a period of a multiple of the first two-step cycle and an average value of the position data for a period of a multiple of the second two-step cycle that is continuous either before or after the period of the first two-step cycle, and generating corrected position data by correcting the position data using the error in the position data; 1. The electronic device described in Appendix 1.
[0084] (Appendix 3) An electronic device including a control unit, The control unit Acquire acceleration data from the acceleration sensor corresponding to the movement state of the user in a lateral direction of the body perpendicular to the body axis while the user is moving on his / her feet; deriving position data based on the acceleration data, and deriving an error in the position data based on an average value of the position data for a period of a multiple of a first two-step cycle and an average value of the position data for a period of a multiple of a second two-step cycle that is continuous either before or after the period of the first two-step cycle, and generating corrected position data by correcting the position data using the error in the position data; electronic equipment.
[0085] (Appendix 4) The control unit deriving an error in the speed data by linearly interpolating an average value of the speed data over a period that is a multiple of the first two-step cycle and an average value of the speed data over a period that is a multiple of the second two-step cycle; 3. An electronic device according to claim 1 or 2.
[0086] (Appendix 5) The control unit calculating an average value of the speed data for a period of a third multiple of two step periods that is consecutive to the period of a multiple of the second two step periods; deriving an error in the speed data by performing quadratic interpolation between an average value of the speed data in a period that is a multiple of the first two-step cycle, an average value of the speed data in a period that is a multiple of the second two-step cycle, and an average value of the speed data in a period that is a multiple of the third two-step cycle; 3. An electronic device according to claim 1 or 2.
[0087] (Appendix 6) The control unit deriving an error in the position data by linearly interpolating an average value of the position data over a period that is a multiple of the first two-step cycle and an average value of the position data over a period that is a multiple of the second two-step cycle; 4. The electronic device according to claim 2 or 3.
[0088] (Appendix 7) The control unit calculating an average value of the position data for a period of a third multiple of two step cycles that is consecutive to the period of a multiple of the second two step cycles; deriving an error in the position data by quadratically interpolating an average value of the position data in a period that is a multiple of the first two-step cycle, an average value of the position data in a period that is a multiple of the second two-step cycle, and an average value of the position data in a period that is a multiple of the third two-step cycle; 4. The electronic device according to claim 2 or 3.
[0089] (Appendix 8) the first period corresponding to a multiple of two step cycles and the second period corresponding to a multiple of two step cycles are set so as to partially overlap each other on a time axis. 8. The electronic device of any one of appendices 1 to 7.
[0090] (Appendix 9) the first period corresponding to a multiple of two step cycles and the second period corresponding to a multiple of two step cycles are set so as not to overlap with each other on a time axis and so as to be continuous with each other without any gap between them; 8. The electronic device of any one of appendices 1 to 7.
[0091] (Appendix 10) Further provided is an attachment portion to be attached to the waist of the user. 10. The electronic device of any one of appendices 1 to 9.
[0092] (Appendix 11) The acceleration sensor is further included. 11. The electronic device of any one of appendices 1 to 10.
[0093] (Appendix 12) acquiring, from an acceleration sensor, acceleration data corresponding to a movement state in a lateral direction of the body perpendicular to a body axis of the user moving on his / her feet; deriving velocity data based on the acceleration data; deriving an error in the speed data based on an average value of the speed data in a period that is a multiple of a first two-step cycle and an average value of the speed data in a period that is a multiple of a second two-step cycle and that is continuous either before or after the period that is a multiple of the first two-step cycle; generating corrected speed data by correcting the speed data using the error in the speed data; An exercise data acquisition method comprising:
[0094] (Appendix 13) acquiring, from an acceleration sensor, acceleration data corresponding to a movement state in a lateral direction of the body perpendicular to a body axis of the user moving on his / her feet; deriving position data based on the acceleration data; deriving an error in the position data based on an average value of the position data for a period of a multiple of a first two-step cycle and an average value of the position data for a period of a multiple of a second two-step cycle that is continuous with or before or after the period of the first two-step cycle; generating corrected position data by correcting the position data using the error in the position data; An exercise data acquisition method comprising:
[0095] (Appendix 14) On the computer, acquiring, from an acceleration sensor, acceleration data corresponding to a movement state in a lateral direction of the body perpendicular to a body axis of the user moving on his / her feet; deriving velocity data based on the acceleration data; deriving an error in the speed data based on an average value of the speed data in a period that is a multiple of a first two-step cycle and an average value of the speed data in a period that is a multiple of a second two-step cycle and that is continuous with either the period before or the period after the first period; generating corrected speed data by correcting the speed data using the error in the speed data; A program that executes the following.
[0096] (Appendix 15) On the computer, acquiring, from an acceleration sensor, acceleration data corresponding to a movement state in a lateral direction of the body perpendicular to a body axis of the user moving on his / her feet; deriving position data based on the acceleration data; deriving an error in the position data based on an average value of the position data for a period of a multiple of a first two-step cycle and an average value of the position data for a period of a multiple of a second two-step cycle that is continuous with or before or after the period of the first two-step cycle; generating corrected position data by correcting the position data using the error in the position data; A program that executes the following. [Explanation of symbols]
[0097] 1...electronic device, 2...power key, 3...display unit, 4...clip, 31...central control circuit, 32...ROM, 33...RAM, 34...storage unit, 35...wireless communication module, 36...input / output control circuit, 37...acceleration sensor, 38...gyro sensor, 39...timekeeping unit, 40...power supply circuit, 41...external device, 50...control unit, 51...acceleration data acquisition unit, 52...angular velocity data acquisition unit, 53...attitude estimation unit, 53a...gravity direction estimation / correction unit, 53b...traveling direction attitude estimation unit, 54...lateral movement estimation unit, 54a...traveling direction attitude correction unit, 54b...speed data correction unit, 54c...position data correction unit, 91, 92, 93, 111, 112, 113...curve
Claims
1. Acquire angular velocity data in the user's body axis direction; deriving a deviation value based on a first average value of angles obtained based on the angular velocity data during a period that is a multiple of a first two-step cycle and a second average value of angles obtained based on the angular velocity data during a period that is a multiple of a second two-step cycle that is earlier than the first two-step cycle; correcting the direction of travel of the user using the angle obtained based on the angular velocity data and the deviation value; Based on the correction of the moving direction of the user, acceleration data corresponding to a moving state of the user in a lateral direction of the body perpendicular to a body axis of the user is acquired; deriving speed data based on the acceleration data, and deriving an error in the speed data based on an average value of the speed data over a period that is a multiple of the first two-step cycle and an average value of the speed data over a period that is a multiple of the second two-step cycle, and correcting the speed data using the error in the speed data; electronic equipment.
2. correcting the traveling direction of the user by subtracting the deviation value from an angle obtained based on the angular velocity data; The electronic device according to claim 1 .
3. The offset value is linearly interpolated. The electronic device according to claim 1 .
4. The angle is obtained by integrating the angular velocity data. The electronic device according to claim 1 .
5. deriving position data based on the corrected speed data, and deriving an error in the position data based on an average value of the position data for a period that is a multiple of the first two-step cycle and an average value of the position data for a period that is a multiple of the second two-step cycle, and correcting the position data using the error in the position data to generate corrected position data; The electronic device according to claim 1 .
6. A method for acquiring movement data of an electronic device, comprising: The electronic device includes: Acquire angular velocity data in the user's body axis direction; deriving a deviation value based on a first average value of angles obtained based on the angular velocity data during a period that is a multiple of a first two-step cycle and a second average value of angles obtained based on the angular velocity data during a period that is a multiple of a second two-step cycle that is earlier than the first two-step cycle; correcting the direction of travel of the user using the angle obtained based on the angular velocity data and the deviation value; Based on the correction of the moving direction of the user, acceleration data corresponding to a moving state of the user in a lateral direction of the body perpendicular to a body axis of the user is acquired; deriving speed data based on the acceleration data, and deriving an error in the speed data based on an average value of the speed data over a period that is a multiple of the first two-step cycle and an average value of the speed data over a period that is a multiple of the second two-step cycle, and correcting the speed data using the error in the speed data; How to obtain exercise data.
7. On the computer, Acquire angular velocity data in the user's body axis direction; deriving a deviation value based on a first average value of angles obtained based on the angular velocity data during a period that is a multiple of a first two-step cycle and a second average value of angles obtained based on the angular velocity data during a period that is a multiple of a second two-step cycle that is earlier than the first two-step cycle; correcting the direction of travel of the user using the angle obtained based on the angular velocity data and the deviation value; acquiring acceleration data corresponding to a motion state of the user in a lateral direction perpendicular to a body axis of the user based on the correction of the moving direction of the user; deriving speed data based on the acceleration data, deriving an error in the speed data based on an average value of the speed data over a period that is a multiple of the first two-step cycle and an average value of the speed data over a period that is a multiple of the second two-step cycle, and correcting the speed data using the error in the speed data; program.
Citation Information
Patent Citations
Information processing method, device and program
JP2012055624A
Exercise analysis device, exercise analysis system, exercise analysis method and exercise analysis program
JP2016032611A
On-running landing position evaluation method, on-running landing position evaluation apparatus, detection method, detection apparatus, running motion evaluation method, and running motion evaluation apparatus
JP2016034479A
Motion analysis device
JP2016150193A
Estimation device, estimation method, and computer program
JP2018042672A