WO2022054464A1 - 電子機器、運動データ取得方法およびプログラム - Google Patents

電子機器、運動データ取得方法およびプログラム Download PDF

Info

Publication number
WO2022054464A1
WO2022054464A1 PCT/JP2021/028781 JP2021028781W WO2022054464A1 WO 2022054464 A1 WO2022054464 A1 WO 2022054464A1 JP 2021028781 W JP2021028781 W JP 2021028781W WO 2022054464 A1 WO2022054464 A1 WO 2022054464A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
period
step cycle
position data
average value
Prior art date
Application number
PCT/JP2021/028781
Other languages
English (en)
French (fr)
Inventor
倫治 山口
博康 井手
Original Assignee
カシオ計算機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2020153469A external-priority patent/JP7494671B2/ja
Application filed by カシオ計算機株式会社 filed Critical カシオ計算機株式会社
Priority to US18/022,997 priority Critical patent/US20230364466A1/en
Publication of WO2022054464A1 publication Critical patent/WO2022054464A1/ja

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/11Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb
    • A61B5/1118Determining activity level
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B24/00Electric or electronic controls for exercising apparatus of preceding groups; Controlling or monitoring of exercises, sportive games, training or athletic performances
    • A63B24/0003Analysing the course of a movement or motion sequences during an exercise or trainings sequence, e.g. swing for golf or tennis
    • A63B24/0006Computerised comparison for qualitative assessment of motion sequences or the course of a movement
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B2562/00Details of sensors; Constructional details of sensor housings or probes; Accessories for sensors
    • A61B2562/02Details of sensors specially adapted for in-vivo measurements
    • A61B2562/0219Inertial sensors, e.g. accelerometers, gyroscopes, tilt switches
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/11Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb
    • A61B5/112Gait analysis
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/68Arrangements of detecting, measuring or recording means, e.g. sensors, in relation to patient
    • A61B5/6801Arrangements of detecting, measuring or recording means, e.g. sensors, in relation to patient specially adapted to be attached to or worn on the body surface
    • A61B5/6813Specially adapted to be attached to a specific body part
    • A61B5/6823Trunk, e.g., chest, back, abdomen, hip
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2220/00Measuring of physical parameters relating to sporting activity
    • A63B2220/10Positions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2220/00Measuring of physical parameters relating to sporting activity
    • A63B2220/40Acceleration
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2220/00Measuring of physical parameters relating to sporting activity
    • A63B2220/80Special sensors, transducers or devices therefor
    • A63B2220/83Special sensors, transducers or devices therefor characterised by the position of the sensor
    • A63B2220/836Sensors arranged on the body of the user

Definitions

  • the present invention relates to an electronic device, an exercise data acquisition method and a program.
  • an inertia sensor is attached to the user's waist to acquire exercise data and analyze the movement of the body during exercise such as running form.
  • Patent Document 1 discloses a motion analysis device that calculates left and right movements of a user based on measurement data acquired from an inertial sensor attached to the user.
  • the present invention has been made in view of the above, and an object of the present invention is to accurately and stably calculate the left and right movements of a user during exercise.
  • the electronic device is An electronic device equipped with a control unit
  • the control unit From the accelerometer, acquire the acceleration data corresponding to the operating state in the direction of the side of the body orthogonal to the body axis of the user who is moving with his / her feet.
  • speed data based on the acceleration data, either before or after the average value of the speed data for a period that is a multiple of the first two-step cycle and the period that is a multiple of the first two-step cycle.
  • the error of the speed data is derived based on the average value of the speed data for a period of multiples of the second continuous two-step cycle, and the error of the speed data is used to correct the speed data.
  • Generate speed data is generated from the accelerometer, acquire the acceleration data corresponding to the operating state in the direction of the side of the body orthogonal to the body axis of the user who is moving with his / her feet.
  • the left and right movements of the user during exercise can be calculated accurately and stably.
  • running is a general term for actions to move using the user's own feet, including walking.
  • the electronic device 1 has various inertial sensors, which will be described later, integrated therein.
  • the electronic device 1 includes a power key 2 and a display unit 3 including, for example, an LED (Light Emitting Diode) on the front surface.
  • a display unit 3 including, for example, an LED (Light Emitting Diode) on the front surface.
  • LED Light Emitting Diode
  • the display unit 3 shows an operating state, and for example, the LED keeps the lighting state in a state where the power is turned on and the sensor data is acquired from the inertial sensor.
  • the electronic device 1 is provided with a clip 4 which is a mounting portion on the back surface, and can be mounted by sandwiching the clip 4 with an object.
  • the electronic device 1 is mounted near the center of the waist of the user's back during traveling.
  • the electronic device 1 is attached to the waist by sandwiching the clip 4 in the user's clothes or belt.
  • the electronic device 1 acquires the movement of the body during movement by the built-in inertial sensor. If the electronic device 1 can accurately detect the movement of the torso including the trunk during the user's exercise, the electronic device 1 is in close contact with any position of the human body such as the chest, the center of the abdomen, and the neck, not limited to the lumbar region. It may be attached.
  • the mounting method of the electronic device 1 is not limited to the clip 4 as long as it can be mounted in close contact with the user, and may be a pin, an adhesive tape, or the like.
  • the electronic device 1 includes a central control circuit 31 that controls the entire device, a ROM (ReadOnlyMemory) 32 that is a non-volatile storage circuit, and a RAM (RandomAccess) that is a volatile storage circuit.
  • Memory 33, a storage unit 34, a wireless communication module 35 that performs wireless communication, an input / output control circuit 36 that controls input by the power key 2 and output to the display unit 3, and an acceleration sensor 37 that detects acceleration.
  • It includes a gyro sensor 38 that detects an angular velocity, a time measuring unit 39 that measures time, and a power supply circuit 40 that includes a battery such as a secondary battery that supplies power to each of the above circuits.
  • the acceleration sensor 37 and the gyro sensor 38 which are inertial sensors, measure the user's motion state.
  • the acceleration sensor 37 is a three-axis acceleration sensor, and measures a change in operating speed during a user's exercise by detecting acceleration in three-axis directions orthogonal to each other.
  • the gyro sensor 38 is a three-axis angular velocity sensor, and measures a change in the movement direction during a user's movement by detecting an angular velocity that rotates about each of the three axes that define acceleration in the acceleration sensor 37. ..
  • FIG. 4 is a diagram showing three axial directions in the acceleration sensor 37 and the gyro sensor 38.
  • the front-back direction of the human body during exercise such as running is defined as the y-axis direction.
  • the traveling direction in which the user moves is the + direction, and the opposite direction is the-direction.
  • the left and right body side surface directions of the human body orthogonal to the y-axis are defined as the x-axis direction.
  • the right-hand direction of the user is the + direction
  • the opposite direction is the-direction.
  • the body axis direction which is the vertical direction of the human body orthogonal to the xy plane, is defined as the z-axis direction.
  • the overhead direction of the user is defined as the + direction
  • the opposite direction is defined as the-direction.
  • the angular velocity generated in the clockwise direction toward the + direction of each axis is defined as the + direction.
  • the timekeeping unit 39 measures the elapsed time when acquiring sensor data from the acceleration sensor 37 and the gyro sensor 38, and outputs it as time data.
  • the timekeeping unit 39 has a function of, for example, a radio clock, and the user is exercising based on the standard radio wave transmitted from the transmitting station and the time information transmitted from the GPS (Global Positioning System) satellite. Measure the elapsed time with high accuracy. Further, the time may be measured by using the basic clock generated by the built-in crystal oscillator.
  • the central control circuit 31 includes at least one processor, is connected to each circuit via a bus, and realizes various functions to control the entire device by executing a control program stored in the ROM 32.
  • the ROM 32 stores a control program and various fixed data for the central control circuit 31 to realize various functions.
  • the RAM 33 functions as a working area of 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 a program used by the central control circuit 31 to perform various processes and data generated or acquired by performing various processes.
  • the central control circuit 31 executes a detection operation in the acceleration sensor 37 and the gyro sensor 38, a measurement operation of the elapsed time in the timekeeping unit 39, and stores and reads sensor data in the RAM 33 and the storage unit 34.
  • the central control circuit 31 performs posture estimation processing and left-right movement estimation processing, which will be described later, on the sensor data, and corrects the movement data so that the movement data analysis processing can be performed correctly.
  • the wireless communication module 35 includes an interface for communicating with the external device 41 via a wireless LAN (Local Area Network), Bluetooth (registered trademark), etc., and wirelessly communicates with the external device 41 via an antenna (not shown).
  • the motion data acquired by the electronic device 1 is transmitted to the external device 41 via the wireless communication module 35.
  • the communication with the external device 41 may be performed via a wired communication module such as USB (Universal Serial Bus) instead of the wireless communication module 35.
  • the input / output control circuit 36 converts the signal input from the power key 2 into data and transmits it to the central control circuit 31, and controls the lighting of the display unit 3 based on the control signal from the central control circuit 31.
  • the power supply circuit 40 is provided with a power supply IC (Integrated Circuit) or the like, and produces and supplies the power supply required for each circuit from the battery.
  • the power supply circuit 40 also charges the battery.
  • the external device 41 receives the user's motion data transmitted from the electronic device 1 via the wireless communication module 35.
  • the external device 41 analyzes the received motion data and displays the analysis result.
  • the external device 41 is, for example, a smart watch, a smartphone, a tablet terminal, a personal computer, a server device on a network, or the like worn by a user. That is, the external device 41 may be carried or worn on the body so that the user can confirm the analysis result during exercise, or the user can carry it so that the analysis result can be thoroughly confirmed after exercise. It may be installed separately from the electronic device 1 without doing so.
  • the electronic device 1 will be described below as shown in FIG. 5 by the central control circuit 31 controlling the operation of each part according to the instruction described in the program and the software and the hardware operating in cooperation with each other.
  • a control unit 50 that realizes the function is configured.
  • 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, an attitude estimation unit 53, and a left-right motion estimation unit 54. Be prepared.
  • the acceleration data acquisition unit 51 acquires acceleration data by sampling the acceleration signal detected by the acceleration sensor 37 at a predetermined sampling cycle.
  • the angular velocity data acquisition unit 52 acquires the angular velocity data by sampling the angular velocity signal detected by the gyro sensor 38 at a predetermined sampling cycle.
  • the posture estimation unit 53 estimates the posture of the electronic device 1 mounted on the user's waist based on the data of 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 the axis with respect to the gravity direction.
  • the traveling direction posture estimation unit 53b estimates the inclination with respect to the traveling direction in which the user travels.
  • the left-right movement estimation unit 54 estimates the movement of the electronic device 1 mounted on the waist of the user in the left-right direction (x-axis direction), that is, the movement in the left-right direction of the user.
  • the left-right motion estimation unit 54 includes a traveling direction posture correction unit 54a, a velocity data correction unit 54b, and a position data correction unit 54c.
  • the traveling direction posture correction unit 54a corrects the inclination with respect to the traveling direction estimated by the traveling direction posture estimation unit 53b so that the y-axis is parallel to the traveling direction.
  • the speed data correction unit 54b corrects the speed data by obtaining the integration error included in the speed data calculated by integrating the acceleration data and subtracting the integration error from the speed data.
  • the position data correction unit 54c obtains the integration error included in the position data calculated by integrating the speed data corrected by the speed data correction unit 54b, and subtracts the integration error from the position data to obtain the position data. to correct.
  • control method motion data acquisition method
  • the electronic device 1 will be described with reference to the drawings.
  • a series of motion data acquisition methods shown below are realized by executing a predetermined control program in the central control circuit 31 described above.
  • FIG. 6 is a flowchart showing a left-right motion acquisition process in the electronic device 1 according to the present embodiment.
  • the user attaches the electronic device 1 to the lumbar region and operates the power key 2 to make the movement data measurable, and then starts running.
  • sensor signals are output from the acceleration sensor 37 and the gyro sensor 38.
  • the acceleration data acquisition unit 51 samples the sensor signal of the acceleration sensor 37 at a predetermined period, for example, a sampling frequency of 200 Hz, and stores the acceleration data in the storage unit 34 to store the acceleration data. get.
  • the angular velocity data acquisition unit 52 acquires the angular velocity data by sampling the sensor signal of the gyro sensor 38 at a sampling frequency of 200 Hz and storing the angular velocity data in the storage unit 34.
  • the control unit 50 monitors the motion state based on the acceleration signal detected from the acceleration sensor 37 or the angular velocity signal detected from the gyro sensor 38, and determines whether the running is continued or finished (step). S101). For example, if an acceleration signal of a predetermined value or more is detected within a predetermined interval, it is determined that the running is continuing, and if it is not detected, it is determined that the running is completed. When it is determined that the traveling is continuing (step S101: NO), the control unit 50 performs a posture estimation process every time sensor data is obtained (step S102).
  • the control unit 50 determines whether or not the user has moved two steps as a running state based on the acceleration of the sensor data (step S103), and the acceleration data for two steps (acceleration data in the x-axis direction). ) Is acquired and stored in the memory, so that it is determined that the acceleration data for the two-step cycle is complete (step S103: YES).
  • the control unit 50 performs a left-right motion estimation process for estimating the user's left-right motion (step S104). After the left / right motion estimation process is executed, the process returns to step S101.
  • step S103 If the acceleration data in the x-axis direction for two steps is not available (step S103: NO), the process returns to step S101, and as long as the running is continued, the acceleration data in the x-axis direction for two steps are available. The operation of returning to step S101 is repeated until. Further, in step S101, when it is determined that the running is completed (step S101: YES), the left-right movement acquisition process is completed.
  • the inertial sensor including the acceleration sensor 37 and the gyro sensor 38 is attached to the waist of the user.
  • the posture of the user may be tilted forward or tilted to the left or right.
  • the z-axis direction, which should be originally parallel to the gravity direction, and the y-axis direction, which should be parallel to the traveling direction of the user are tilted by the inclination angle of the waist of the user wearing the inertial sensor. Therefore, a posture estimation process for estimating these inclinations is performed based on the data of the acceleration sensor 37 and the gyro sensor 38.
  • the control unit 50 first estimates the inclination with respect to the gravity direction, takes the data along the axis with respect to the gravity direction, that is, the y-axis and the x-axis along the horizontal direction, and sets the gravity direction in the z-axis direction.
  • the gravity direction estimation / correction process for converting to the axis coordinate data is performed (step S201).
  • this estimation method by inputting the 3-axis output of the acceleration sensor 37 and the 3-axis output of the gyro sensor 38 to the Kalman filter or the low-pass filter, the 3-axis data of the acceleration and the 3-axis data of the angular velocity with respect to the ground can be obtained. Calculate and estimate the direction of gravity.
  • the gravity direction may be estimated by adopting an axis estimation method other than the Kalman filter or the low-pass filter.
  • the attitude is corrected in the estimated gravity direction for the data of the acceleration sensor 37 and the gyro sensor 38.
  • the z-axis direction of the data of the acceleration sensor 37 and the gyro sensor 38 faces the gravity direction.
  • the control unit 50 estimates the inclination with respect to the traveling direction in which the user travels, and performs a traveling direction estimation process in which the y-axis is aligned so as to be parallel to the traveling direction (step S202).
  • Angular velocity data is obtained by integrating the angular velocity data from the gyro sensor 38 whose posture in the gravity direction has been corrected in the traveling direction estimation process, and the difference between the y-axis direction and the traveling direction of the current gyro sensor 38 is calculated. Then, the traveling direction is estimated and the traveling direction attitude is corrected.
  • the angle is obtained by integrating the angular velocity data, an integration error occurs, and an error occurs even when the user bends on a curve or the like while driving, and the accumulation of these errors causes the result to shift. It is possible that it will end up.
  • FIG. 8 shows a state in which the user is traveling, and the user shows a state in which the user is deviated by the angular velocity data GyrZ in the z-axis direction with respect to the traveling direction.
  • the user alternately puts out his legs and swings his arms, so that his hips rotate alternately left and right, and the angular velocity data GyrZ around the z-axis draws a sine wave around the direction of travel.
  • the center of the angular velocity is deviated.
  • FIG. 9A shows the angular velocity data GyrZ around the z-axis in a state where the user is traveling from a straight line to a curve.
  • the curve 91 in FIG. 9B is obtained by integrating the data of the angular velocity and showing it as the angular data.
  • the angular velocity is as shown in the curve 93, but when the user turns the curve, a large deviation in the angle occurs.
  • the direction of travel changes from moment to moment, and the attitude error in the direction of travel increases according to this change.
  • the attitude error in the traveling direction increases, the y-axis is not corrected in the correct direction, and the x-axis is not corrected in the correct direction accordingly. That is, it becomes impossible to accurately calculate the movement in the left-right direction. Therefore, by extracting this attitude error and removing it from the angle data, the y-axis is corrected in the correct direction. In the present embodiment, this correction is performed using the angular velocity data for two steps during walking or running.
  • one foot for example, the right foot
  • one foot is stepped in the direction of travel to land, then one foot is kicked (right foot is taken off), then the other foot (left foot) is landed, and the other.
  • a total of two steps, one step each on the left and right, can be defined as one cycle, in which one foot is kicked out (the left foot is taken off) and one foot (the right foot) is landed again.
  • the waist moves clockwise from the direction of travel with respect to the stepping of the right foot. After that, it reverses and moves counterclockwise due to the landing of the right foot, returns to the direction of travel by the time the right foot is kicked, then moves counterclockwise, reverses due to the landing of the left foot, moves clockwise and returns to the direction of travel.
  • the locus of the angle around the z-axis during this period is symmetrical, and averages 0. Therefore, if there is no error described above, the average of the angles of the two-step cycle is 0, and conversely, if there is an error, the average of the angles of the two-step cycle indicates the attitude error in the traveling direction.
  • the average of the integration results for two steps is calculated and subtracted from the integration results.
  • velocity data with the attitude error removed is obtained.
  • the difference between the traveling direction and the y-axis direction of the sensor can be averaged to 0 in a two-step cycle.
  • the two-step cycle is obtained based on the angular velocity data from the gyro sensor 38.
  • the angular velocity becomes 0 when the left foot is put out in the traveling direction and the heel touches the ground. After the heel of the left foot touches the ground, the angular velocity increases in the-direction by kicking it backward. The angular velocity is maximized when the user faces 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. And when the heel of the right foot lands, the angular velocity becomes 0.
  • the angular velocity increases in the + direction by kicking backward.
  • the angular velocity is maximized when the user faces the direction of travel.
  • the angular velocity decreases as the left foot moves in the direction of travel.
  • the heel of the left foot lands, the angular velocity becomes 0. In this way, the two-step cycle can be obtained from the timing when the angular velocity becomes 0 or the timing when the angular velocity becomes the maximum or the minimum.
  • the two-step cycle can be obtained from the acceleration data from the acceleration sensor 37.
  • the acceleration component in the vertical direction in the acceleration data acquired by the acceleration sensor 37 shows a signal waveform having periodicity for each step on the left and right. From this, the two steps of the acceleration component in the vertical direction correspond to one cycle of the traveling operation. Therefore, based on the vertical acceleration component acquired by the acceleration sensor, it is possible to stably cut out the operation data for each two-step cycle in the traveling operation performed by the user.
  • the time of the two-step cycle can be accurately measured. For example, the acceleration in the + direction becomes maximum at the timing of landing the heel of the right foot, and the acceleration in the-direction becomes maximum at the timing of landing the heel of the left foot.
  • another method may be adopted as a cycle estimation method.
  • the angular velocity signal detected from the gyro sensor 38 is input to the angular velocity data acquisition unit 52, and the angular velocity data acquisition unit 52 samples at a predetermined sampling cycle and stores it in the storage unit 34.
  • the angular velocity data GyrZ in the z-axis direction for the two steps is read from the storage unit 34. Integral is performed on the angular velocity data GyrZ in the z-axis direction during this two-step cycle period, and the angle is calculated.
  • the angle is calculated, the average of the angles within the two-step cycle period is calculated. Since the left and right swings in this two-step cycle are paired, the average angle should be zero.
  • the deviation due to integration error, curve, etc. appears in this average.
  • the curve representing this average is the curve 92 in FIG. 9B.
  • the mean is obtained by linear interpolation between the average value of the two-step cycle and the average value of the two-step cycle centered one step before this.
  • the mean value used for linear interpolation the mean value of the two-step cycle and the mean value of the adjacent two-step cycles centered on two steps before this may be used.
  • the average value of not only the two-step cycle but also an integral multiple of the two-step cycle such as a four-step cycle and a six-step cycle may be used.
  • the control unit 50 calculates the deviation due to the integration error or the like by obtaining the average as described above, subtracts this deviation from the angle obtained by integrating the velocity data, and corrects the traveling direction. This completes the posture estimation process.
  • step S104 the posture estimation process is performed, and when the acceleration data for the two-step cycle is stored in the storage unit 34, the acceleration data for the two-step cycle is read from the storage unit 34, and the left-right motion estimation process is performed. (FIG. 6, step S104).
  • the posture in the traveling direction is corrected by using the posture error in the traveling direction obtained by the posture estimation process.
  • the attitude correction in the traveling direction is performed, and the z-axis is the gravity direction and the y-axis is the acceleration along the traveling direction, that is, the x-axis direction.
  • the posture-corrected acceleration is acquired (step S301).
  • the acceleration data whose attitude is corrected in the traveling direction in step S301 is subjected to integration processing, and the velocity is calculated.
  • an integration error is generated by performing the integration process, and the calculated velocity data includes this integration error.
  • an integration error is further generated, and the error of the calculated position data becomes large.
  • FIG. 11 is a diagram showing the position data when the acceleration data is integrated twice, and the curve 111 shows the position data integrated twice. The error is increased by accumulating the integration error due to the integration of the acceleration data and the integration error due to the integration of the velocity data.
  • this error component is calculated by obtaining the average of the integrated data for two steps, as in the case of the posture correction in the traveling direction described above.
  • the locus of the angle around the z-axis in the two-step cycle is symmetrical, and the average is 0.
  • changes in velocity data and changes in position data in the left-right direction, that is, in the x-axis direction are also left-right symmetric and average 0. Therefore, if there is no integration error, the average of the velocity data and position data in the x-axis direction of the 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 of the two-step cycle. Indicates the integration error.
  • the error component is calculated by calculating the average every two steps and interpolating the velocity data and the position data between them based on the obtained average and the next obtained average.
  • the error is corrected by integrating the acceleration data in which the attitude in the traveling direction is corrected to calculate the velocity data, obtaining the error component of the velocity data, and subtracting the error component from the velocity data. Obtain the speed data.
  • step S302 the speed data correction process in step S302 will be described with reference to FIGS. 12 and 14.
  • the time axis on the horizontal axis is from right to left toward the past, the most recent grounding landing [0], one step before grounding landing [1], and two steps before grounding. [2] The landing at the time of touchdown 3 steps before [3] and the landing at the time of touchdown 4 steps before [4] are shown.
  • the correction process is performed for each step touchdown, and the storage unit 34 has the acceleration data accX, the velocity data vero_tp, and the average value vero_ave_cur of the velocity data for the period of the most recently obtained two-step cycle, which was obtained last time.
  • the interpolated value pos_LI of the performed position data, the corrected position data pos_cur corrected based on both average values, and the like are stored.
  • the above parameter of the storage unit 34 data based on the acceleration data up to the landing [1] before the landing [0] is stored is stored. That is, the average value of the velocity data in the range between the landing [1] and the landing [3] two steps before the landing [1] 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 correction speed data between landing [2] and landing [3] is stored as the most recently obtained correction speed data vero_cur, and the average value of the position data during the period of the most recently obtained two-step cycle is landing [2]. ]
  • the landing [4] two steps before that, the average value of the position data in the range is stored respectively.
  • the control unit 50 has the average value velo_ave_cur of the speed data for the period of the most recently obtained two-step cycle, the most recently obtained correction speed data velo_cur, and the most recently obtained two-step cycle from the storage unit 34.
  • the control unit 50 uses the average velocity data between landing [1] and landing [3] read out as the average value velo_ave_cur of the velocity data for the period of the most recently obtained two-step cycle, and obtains the average velocity data of the previously obtained two-step cycle.
  • Data is copied to the average value velo_ave_pst of the velocity data of the period.
  • control unit 50 copies the correction speed data between the landing [2] and the landing [3] read out as the most recently obtained correction speed data velo_cur to the previously obtained correction speed data velo_pst. Further, the control unit 50 obtains the average position data between the landing [2] and the landing [4] read out as the average value pos_ave_cur of the position data in the period of the most recently obtained two-step cycle, which was obtained last time. Data is copied to the average value pos_ave_pst of the position data during the step period (step S401).
  • control unit 50 integrates the acceleration data accX in the range between landing [0] and landing [2] to obtain the velocity data vero_tmp at each time point (step S402).
  • velo_tmp is obtained, for example, as an array of velocity data every 5 ms.
  • the control unit 50 When the velocity data velo_tmp between landing [0] and landing [2] is obtained, the control unit 50 immediately obtains the average value of the velocity data in the range of the two-step cycle of landing [0] and landing [2]. It is obtained as an average value velo_ave_cur of the velocity data during the period of the two-step cycle, and is stored in the storage unit 34 (step S403).
  • the period of the two-step cycle obtained most recently is an example of a period of a multiple of the first two-step cycle or a period of a multiple of the second two-step cycle.
  • the average of the velocity data in the period of two steps is supposed to be 0, but an error occurs due to an integration error or the like. Therefore, the speed data is corrected by subtracting the average value of the speed data for the period of two steps from the speed data.
  • the control unit 50 has the velo_ave_cur and the previously obtained two-step cycle which is the average value of the velocity data of the two-step cycle of landing [1] and landing [3] which are data copied in step S401.
  • the interpolation value is calculated using the average value velo_ave_pst of the velocity data in the period of (step S404).
  • the period of the two-step cycle obtained last time is an example of a period of a multiple of the second two-step cycle or a period of a multiple of the first two-step cycle.
  • Velo_ave_pst which is the average value of the velocity data during the two-step cycle of landing [1] and landing [3], is the average value of the two-step cycle centered on landing [2] one step before velo_ave_cur.
  • the average_ave_cur is set so that the periods of two step cycles partially overlap each other between landing [1] and landing [2] on the time axis. Therefore, the average value of the velocity data for the period of the two-step cycle centered on the time point of landing [1] vero_ave_cur and the average value of the velocity data of the period of the two-step cycle centered on the time point of landing [2] vero_ave_pst.
  • the average value of the velocity data at the time point of landing [1] vero_ave_cur and the average value of the velocity data at the time point of landing [2] vero_ave_pst are connected by a straight line, and the average value of the velocity data at each time point in the meantime is obtained.
  • the average value velo_LI of the linearly interpolated velocity data at each time point is obtained as an array of the average values of the velocity data every 5 ms, for example, like velo_tmp.
  • the control unit 50 averages the velocity data from the velocity data vero_tpp obtained in step S402.
  • the correction speed data velo_cur corrected by removing the value is obtained (step S405).
  • velo_tpm among the velocity data velo_tpmp obtained in step S402, the velocity data at each time point between landing [1] and landing [2] is used.
  • Landing [1] and landing [2] by subtracting the mean value velo_LI of the linearly interpolated velocity data at each corresponding time point from the velocity data velo_tp at each time point between landing [1] and landing [2]. ].
  • the corrected correction speed data velo_cur is obtained at each time point.
  • the control unit 50 is between the speed data vero_cur corrected at each time point between the obtained landing [1] and the landing [2] and the landing [2] and the landing [3] data copied in step S401.
  • the correction speed data vero for two steps of landing [1] and landing [3] is obtained by combining the correction speed data vero_pst (step S406). As a result, the speed data correction process is completed.
  • the position data is calculated by performing the integration process.
  • an integration error is generated by performing the integration process on the velocity data, and the calculated position data includes this integration error.
  • the average value of the position data during the two-step cycle should be 0, but an error occurs due to an integration error or the like. Therefore, the corrected position data is obtained by removing the average value of the position data during the period of two steps from the position data obtained by integrating the correction speed data (step S303).
  • step S303 the position data correction process in step S303 will be described with reference to FIG. 13 and the time chart of FIG. 14 above.
  • the control unit 50 integrates the corrected speed data vero for the two steps of landing [1] and landing [3] corrected in the speed data correction process of FIG. 12 to obtain the position data pos_tmp (step S501). ).
  • pos_tmp is obtained as an array of position data every 5 ms, for example.
  • the control unit 50 sets the landing [1] and the landing [1] and landing [1] as the average value of the position data during the period of the most recently obtained two-step cycle.
  • the average value of the position data in the period of the two-step cycle of 3] is obtained (step S502).
  • the average of the two-step cycle should be 0, but an error occurs due to an integration error or the like. Therefore, the position data is corrected by subtracting the average value of the position data in the period of two steps from the position data.
  • pos_ave_cur When pos_ave_cur is obtained, the control unit 50 of the landing [2] and landing [4] that have been data-copied to this pos_ave_cur and the average value of the position data of the period of the two-step cycle previously obtained in step S401 of FIG.
  • the interpolation value is calculated using the average value of the position data in the period of the two-step cycle (step S503).
  • Pos_ave_pst which is the average value of the position data of the two-step cycle period of landing [2] and landing [4] is the average value of the position data of the two-step cycle period centered on landing [3] one step before pose_ave_cur.
  • the pose_ave_cur is set so that the periods of the two-step cycle partially overlap each other between the landing [2] and the landing [3] on the time axis. Therefore, the average value of the position data of the period of the two-step cycle centered on the time point of landing [2] pos_ave_cur and the average value of the position data of the period of the two-step cycle centered on the time point of landing [3] pos_ave_pst. It is used to interpolate the average value of the position data for the period of the two-step cycle at each time point between landing [2] and landing [3].
  • linear interpolation is used as the interpolation as in the case of velocity.
  • the average value of the position data of the period of the two-step cycle centered on the time point of landing [2] pos_ave_cur and the average value of the position data of the period of the two-step cycle centered on the time point of landing [3] are connected by a straight line.
  • the average value of the position data during the period of two steps at each time point in the meantime is obtained.
  • the average value pos_LI of the position data in the period of the two-step cycle linearly interpolated at each time point is obtained as an array of the average values of the position data of the two-step cycle every 5 ms, for example, like pos_tmp.
  • the control unit 50 receives the position data pos_tpp obtained in step S501.
  • the corrected position data pos_cur is obtained by removing the average value of the position data during the period of two steps (step S504).
  • pos_tpm among the position data pos_tpp obtained in step S501, the position data at each time point between landing [2] and landing [3] is used.
  • Landing [2] by subtracting the mean value pos_LI of the linearly interpolated two-step cycle position data of each corresponding time point from the position data pos_tp at each time point between landing [2] and landing [3]. And the correction position data pos_cur at each time point between landing [3] is obtained. As a result, the position data correction process is completed.
  • the acceleration data is integrated to obtain the speed data
  • the average of the speed data for two steps is subtracted to obtain the error-corrected speed data
  • the corrected speed data is integrated.
  • the position data of the left-right movement due to the accumulation of the integration error by the two-time integration is obtained by subtracting the average for two steps and obtaining the position data of the left-right movement in which the error is corrected. It is possible to calculate the position data of the left-right movement with high accuracy by reducing the error of.
  • the error can be corrected stably and accurately. Since the correction by linear interpolation is simple, the memory capacity required for the processing can be reduced, the amount of calculation can be reduced, and the load on the CPU can be reduced. Further, even if the two-step cycle suddenly changes, such as when the user trips on the foot during running, the process is simple and can be dealt with immediately.
  • the error component due to the integration error of the speed data and the position data is linearly interpolated between the average value of the two-step cycle and the average value of the two-step cycle centered one step before this.
  • the mean value used for linear interpolation may be the mean value of the two-step cycle and the mean value of the continuous two-step cycle centered on two steps before this, and each other on the time axis. It may be set so as to partially overlap each other in two steps, or it may be set so as not to overlap each other on the time axis and to be continuous with each other without an interval.
  • the average value used for linear interpolation is not limited to the average value of the 2-step cycle, but is not limited to this, and the average value or position of the speed data for a period that is a multiple of the 2-step cycle such as a 4-step cycle or a 6-step cycle.
  • the average value of the data may be used.
  • the adjacent periods used for linear interpolation may be partially overlapped or may be continuous without overlapping.
  • the adjacent 4-step cycle may be a 4-step cycle centered on 2 steps before, or may be a 4-step cycle centered on 4 steps before.
  • the interpolation is not limited to linear interpolation based on two average values, and may be, for example, quadratic interpolation based on three average values. That is, the average value of the speed data or the average value of the position data during the period of the first two steps, and the average value or the position data of the speed data during the period of the second two steps centered one step before this. Second-order interpolation may be performed from the three mean values of the mean value and the mean value of the speed data or the mean value of the position data in the period of the third two-step cycle centered on two steps before, and the interpolated value between them may be obtained. .. In addition to this, interpolation based on four or more average values may be used.
  • the angle data is calculated by integrating the angle velocity data, and the angle data in the traveling direction is corrected using the error of the angle data calculated by the value linearly interpolated based on the average of the two-step cycle of the angle data.
  • the left / right motion estimation process is performed to acquire the data of the user's left / right motion, but the present invention is not limited to this, for example.
  • the posture estimation process may be omitted and only the left / right motion estimation process may be performed.
  • by performing the left-right movement estimation process it is possible to remove the accumulation of integration errors due to the double integration of the acceleration data, and it is possible to stably and accurately calculate the position data of the left-right movement.
  • the posture can be corrected in response to the change in the traveling direction, and the position data of the left-right movement can be calculated stably and accurately. ..
  • the present embodiment has been described to acquire exercise data when the user walks or runs, the present embodiment is not limited to this, and may be applied to record exercise data such as cycling.
  • the electronic device 1 includes 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.
  • the acceleration sensor 37 and the gyro sensor 38 are attached to the waist of the user and are connected to the electronic device 1 by wire or wirelessly.
  • the electronic device 1 acquires sensor data from the acceleration sensor 37 and the gyro sensor 38, corrects the left-right movement data, and wirelessly transfers the corrected left-right movement data to the external device 41. After transmission, the external device 41 analyzed the data and displayed the analysis result. Therefore, the electronic device 1 and the external device 41 constitute a system for acquiring and analyzing motion data. However, the present invention is not limited to this, and the electronic device 1 may analyze the data and transmit the analysis result to the external device 41. Further, the electronic device 1 may include a display unit such as a liquid crystal display and display a display result.
  • 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 processing of the left-right motion data.
  • the electronic device 1 may have, for example, a card slot, and a recording medium such as a memory card may be detachably provided, and the acquired data and the corrected data may be stored in the recording medium.
  • a recording medium such as a memory card
  • the electronic device 1 is provided with an acceleration sensor 37 and a gyro sensor 38 as sensors, a geomagnetic sensor, a GPS receiver, or the like may be further provided.
  • the central control circuit 31 functions as the control unit 50 by executing the program stored in the ROM 32.
  • the central control circuit 31 is provided with dedicated hardware such as ASIC (Application Specific Integrated Circuit), FPGA (Field-Programmable Gate Array), and various control circuits, and is dedicated.
  • Hardware may function as a control unit. In this case, a part may be realized by dedicated hardware, and the other part may be realized by software or firmware.
  • the program is stored in the ROM 32 in advance, and even if the program is read from an external recording medium such as a memory card into the RAM 33 or the like via the recording medium reading unit and stored. good.
  • the program can be superimposed on the carrier wave and read into the RAM 33 or the like via a communication medium such as the Internet and stored.
  • the present invention is applicable to electronic devices that generate motion data using inertial sensors, motion data acquisition methods and programs.

Landscapes

  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Physics & Mathematics (AREA)
  • Dentistry (AREA)
  • Biophysics (AREA)
  • Pathology (AREA)
  • Physiology (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Medical Informatics (AREA)
  • Molecular Biology (AREA)
  • Surgery (AREA)
  • Animal Behavior & Ethology (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)

Abstract

電子機器は、加速度センサから自らの足で移動中のユーザの体軸に直交する体側面方向の動作状態に対応する加速度データを取得し、加速度データに基づいて速度データを導出するとともに、第一の2歩周期の倍数分の期間の速度データの平均値と第一の2歩周期の倍数分の期間の前後のいずれかに連続する第二の2歩周期の倍数分の期間の速度データの平均値に基づいて速度データの誤差を導出し、速度データの誤差を用いて速度データを補正することにより補正速度データを生成する制御部(50)を備える。

Description

電子機器、運動データ取得方法およびプログラム
 本発明は、電子機器、運動データ取得方法およびプログラムに関する。
 ランニング等の運動時において、慣性センサをユーザの腰に装着して、運動データを取得し、ランニングフォーム等の運動中の体の動きを解析することが行われている。
 特許文献1は、ユーザに取り付けられた慣性センサから取得した測定データに基づいて、ユーザの左右の動きを算出する運動解析装置を開示している。
特開2016-32611号公報
 しかしながら、あるデータに基づいて所望のデータを得ようとする場合、測定誤差、方向推定精度、積分によるドリフト等により誤差が蓄積し、精度良く安定的に左右の動きを算出することは困難である。
 本発明は、上記に鑑みてなされたものであって、運動中のユーザの左右の動きを精度良く安定的に算出することを目的とする。
 本発明に係る電子機器は、
 制御部を備える電子機器であって、
 前記制御部は、
 加速度センサから自らの足で移動中のユーザの体軸に直交する体側面方向の動作状態に対応する加速度データを取得し、
 前記加速度データに基づいて速度データを導出するとともに、第一の2歩周期の倍数分の期間の前記速度データの平均値と前記第一の2歩周期の倍数分の期間の前後のいずれかに連続する第二の2歩周期の倍数分の期間の前記速度データの平均値とに基づいて前記速度データの誤差を導出し、前記速度データの誤差を用いて前記速度データを補正することにより補正速度データを生成する。
 本発明によれば、運動中のユーザの左右の動きを精度良く安定的に算出することができる。
本発明の実施形態に係る電子機器の外観を示す正面図である。 本発明の実施の形態に係る電子機器の人体への装着状態を示す図である。 本発明の実施の形態に係る電子機器の構成を示す図である。 本発明の実施の形態に係る加速度センサおよびジャイロセンサの3軸方向を説明する図である。 本発明の実施の形態に係る電子機器の制御部の機能的構成を示す図である。 本発明の実施の形態に係る電子機器の制御部の左右動取得処理手順を示すフローチャートである。 本発明の実施の形態に係る電子機器の制御部の姿勢推定処理手順を示すフローチャートである。 本発明の実施の形態に係る電子機器の進行方向の姿勢のずれを示す図である。 本発明の実施の形態に係る電子機器の進行方向の姿勢のずれを示す角速度の波形図である。 本発明の実施の形態に係る電子機器の進行方向の姿勢のずれを示す角度の波形図である。 本発明の実施の形態に係る電子機器の制御部の左右動推定処理手順を示すフローチャートである。 本発明の実施の形態に係る電子機器の積分誤差を示す位置の波形図である。 本発明の実施の形態に係る電子機器の制御部の速度データ補正処理手順を示すフローチャートである。 本発明の実施の形態に係る電子機器の制御部の位置データ補正処理手順を示すフローチャートである。 本発明の実施の形態に係る電子機器の制御部の速度データおよび位置データ補正処理を説明するタイムチャートである。
 以下、本発明の実施の形態にかかる電子機器について図面を参照して説明する。
 なお、以下における、「走行」は、歩行も含めユーザ自身の足を使って移動する行動の総称である。
 本実施の形態にかかる電子機器1は、後述する各種の慣性センサが一体となって内蔵されている。電子機器1は、図1に示すように、正面に電源キー2と、例えば、LED(Light Emitting Diode)からなる表示部3を備える。電源キー2を操作することによって、慣性センサによるセンサデータの取得が行われる。表示部3は、動作状態を示し、例えば、電源がONされて慣性センサからセンサデータの取得が行われている状態で、LEDが点灯状態を維持する。また、電子機器1は、背面に取付部であるクリップ4が設けられており、クリップ4を物に挟み込むことによって取付可能となっている。
 電子機器1は、例えば図2に示すように、走行時において、ユーザの背中の腰部の中央付近に装着される。電子機器1は、クリップ4をユーザの衣服やベルトに挟み込むことによって腰部へ取り付けられる。電子機器1は、ユーザの腰部に装着されることによって、内蔵された慣性センサにより運動中の体の動きを取得する。なお、電子機器1は、ユーザの運動中の、体幹を含む胴体の動きを精度よく検出できれば、腰部に限らず胸部や腹部の中央部、頸部等の人体の任意の位置に密着して装着してもよい。また、電子機器1の取付方法は、ユーザに密着して装着できるものであれば、クリップ4に限らず、ピン、接着テープ等であってもよい。
 電子機器1は、図3に示すように、装置全体を制御する中央制御回路31と、不揮発性の記憶回路であるROM(Read Only Memory)32と、揮発性の記憶回路であるRAM(Random Access Memory)33と、記憶部34と、無線通信を行う無線通信モジュール35と、電源キー2による入力、表示部3への出力を制御する入出力制御回路36と、加速度を検出する加速度センサ37と、角速度を検出するジャイロセンサ38と、時間を計測する計時部39と、上記各回路へ電源を供給する、二次電池等のバッテリを含む電源回路40と、を備える。
 慣性センサである加速度センサ37およびジャイロセンサ38はユーザの運動状態を測定する。加速度センサ37は、3軸加速度センサであり、互いに直交する3軸方向の加速度を検出することにより、ユーザの運動中の動作速度の変化を計測する。
 ジャイロセンサ38は、3軸角速度センサであり、加速度センサ37において加速度を規定する3軸について各々の軸を中心として回転する角速度を検出することにより、ユーザの運動中の動作方向の変化を計測する。
 図4は、加速度センサ37およびジャイロセンサ38における3軸方向を示す図である。走行等の運動中の人体の前後方向をy軸方向とする。ここで、ユーザが移動する進行方向を+方向、その反対方向を-方向とする。また、y軸に直交する人体の左右の体側面方向をx軸方向とする。ここで、ユーザの右手方向を+方向、その反対方向を-方向とする。また、x-y平面に直交する人体の上下方向である体軸方向をz軸方向とする。ここで、ユーザの頭上方向を+方向、その反対方向を-方向と規定する。さらに、各軸の+方向に向かって右回り方向に生じる角速度を+方向と規定する。
 計時部39は、加速度センサ37、ジャイロセンサ38からセンサデータを取得する際の経過時間を計測して時間データとして出力する。ここで、計時部39は、例えば電波時計の機能を有して、送信局から送信される標準電波や、GPS(Global Positioning System)衛星から送信される時刻情報に基づいて、ユーザの運動中の経過時間を高い精度で計測する。また、内蔵されている水晶振動子により生成される基本クロックを用いて、時間を計測するものであってもよい。
 中央制御回路31は、少なくとも1つのプロセッサを備え、バスを通じて各回路と接続されており、ROM32に記憶されている制御プログラムを実行することにより、各種機能を実現して装置全体を制御する。
 ROM32は、中央制御回路31が各種機能を実現するための制御プログラム、各種固定データを記憶している。RAM33は、中央制御回路31の作業領域として機能する。記憶部34は、フラッシュメモリ、ハードディスク等の不揮発性メモリである。記憶部34は、中央制御回路31が各種処理を行うために使用するプログラムおよび各種処理を行うことにより生成又は取得するデータを記憶する。中央制御回路31は、所定の制御プログラムを実行することにより、加速度センサ37、ジャイロセンサ38における検出動作、計時部39における経過時間の計測動作、センサデータのRAM33および記憶部34への保存および読出し動作、無線通信モジュール35を介した外部装置41への運動データの送信動作等の制御を行う。また、中央制御回路31は、センサデータについて、後述する姿勢推定処理、左右動推定処理を行い、運動データの解析処理が正しく行えるよう、運動データを補正する。
 無線通信モジュール35は、無線LAN(Local Area Network)、Bluetooth(登録商標)等を介して外部装置41と通信を行うインタフェースを備え、図示しないアンテナを介して外部装置41と無線通信を行う。電子機器1が取得した運動データは、無線通信モジュール35を介して外部装置41へ送信される。なお、外部装置41との通信は、無線通信モジュール35の代わりに、USB(Universal Serial Bus)等の有線による通信モジュールを介して行われてもよい。
 入出力制御回路36は、電源キー2から入力された信号をデータに変換して中央制御回路31に送信するとともに、中央制御回路31からの制御信号に基づいて表示部3の点灯を制御する。
 電源回路40は、電源IC(Integrated Circuit)等を備え、バッテリから各回路に必要な電源を作り出して供給する。また電源回路40は、バッテリを充電する。
 外部装置41は、電子機器1から無線通信モジュール35を介して送信されたユーザの運動データを受信する。外部装置41は、受信した運動データを解析し、解析した結果を表示する。外部装置41は、例えば、ユーザが装着するスマートウォッチ、スマートフォン、タブレット端末、パーソナルコンピュータ、ネットワーク上のサーバ装置等である。すなわち、外部装置41は、ユーザが運動中に解析結果を確認できるように、携帯又は身体に装着しているものであってもよいし、運動後に解析結果をじっくり確認できるように、ユーザが携帯することなく、電子機器1とは別個に設置されているものであってもよい。
 電子機器1は、プログラムに記述された命令に従って中央制御回路31が各部の動作を制御し、ソフトウェアとハードウェアとが協働して動作することにより、図5に示すように、以下に説明する機能を実現する制御部50を構成する。
 制御部50は、加速度センサからの加速度データを取得する加速度データ取得部51と、ジャイロセンサから角速度データを取得する角速度データ取得部52と、姿勢推定部53と、左右動推定部54と、を備える。
 加速度データ取得部51は、加速度センサ37により検出される加速度信号を所定のサンプリング周期でサンプリングして加速度データを取得する。
 角速度データ取得部52は、ジャイロセンサ38により検出される角速度信号を所定のサンプリング周期でサンプリングして角速度データを取得する。
 姿勢推定部53は、加速度センサ37やジャイロセンサ38のデータに基づいてユーザの腰部に装着されている電子機器1の姿勢を推定する。姿勢推定部53は、重力方向推定・補正部53aと、進行方向姿勢推定部53bと、を備える。重力方向推定・補正部53aは、重力方向に対する傾斜を推定し、重力方向に対する軸に沿ったデータに変換する。また、進行方向姿勢推定部53bは、ユーザが走行する進行方向に対する傾斜を推定する。
 左右動推定部54は、ユーザの腰部に装着されている電子機器1の左右方向(x軸方向)の動き、すなわち、ユーザの左右方向の動きを推定する。左右動推定部54は、進行方向姿勢補正部54aと、速度データ補正部54bと、位置データ補正部54cと、を備える。進行方向姿勢補正部54aは、進行方向姿勢推定部53bにより推定されたユーザが走行する進行方向に対する傾斜についてy軸を進行方向に平行となるように揃えるように補正する。速度データ補正部54bは、加速度データを積分して算出された速度データに含まれる積分誤差を求めて、速度データから積分誤差を減算することにより、速度データを補正する。位置データ補正部54cは、速度データ補正部54bで補正された速度データを積分して算出された位置データに含まれる積分誤差を求めて、位置データから積分誤差を減算することにより、位置データを補正する。
 次に、電子機器1における制御方法(運動データ取得方法)について、図面を参照して説明する。ここで、以下に示す一連の運動データ取得方法は、上述した中央制御回路31において所定の制御プログラムを実行することにより実現される。
 まず、本実施の形態に係る電子機器1における左右動データ取得方法の概略について説明する。図6は、本実施の形態に係る電子機器1における左右動取得処理を示すフローチャートである。ユーザは腰部に電子機器1を装着して電源キー2を操作して運動データを測定可能状態としてから、走行を開始する。走行が開始されると、加速度センサ37およびジャイロセンサ38からセンサ信号が出力される。センサ信号が出力されると、加速度データ取得部51は、加速度センサ37のセンサ信号を所定の周期、例えば200Hzのサンプリング周波数でサンプリングして、加速度データを記憶部34に記憶することによって加速度データを取得する。同様に、角速度データ取得部52は、ジャイロセンサ38のセンサ信号を、200Hzのサンプリング周波数でサンプリングして、角速度データを記憶部34に記憶することにより、角速度データを取得する。
 制御部50は、加速度センサ37から検出される加速度信号、あるいはジャイロセンサ38から検出される角速度信号に基づき、運動状態を監視して、走行が継続しているか、終了したかを判断する(ステップS101)。例えば、所定値以上の加速度信号が所定間隔内で検出される場合は、走行が続いていると判断し、検出されない場合は、走行が終了したと判断する。制御部50は、走行が続いていると判断した場合(ステップS101:NO)、センサデータが得られるごとに、姿勢推定処理を行う(ステップS102)。また、同時に制御部50はセンサデータの加速度などからユーザの走行状態として足を2歩移動したか否かの判定を行い(ステップS103)、2歩周期分の加速度データ(x軸方向の加速度データ)が取得されてメモリに格納されることにより、2歩周期分の加速度データが揃ったと判定される(ステップS103:YES)。2歩周期分のx軸方向の加速度データが揃ったと判定されると、制御部50は、ユーザの左右方向の動きを推定する左右動推定処理を行う(ステップS104)。左右動推定処理が実行された後、ステップS101に戻る。また、2歩周期分のx軸方向の加速度データが揃わない場合(ステップS103:NO)、ステップS101に戻り、走行が継続している限り、2歩周期分のx軸方向の加速度データが揃うまでステップS101に戻る動作が繰り返される。また、ステップS101において、走行が終了したと判断された場合(ステップS101:YES)、左右動取得処理は終了する。
 続いて、姿勢推定処理について図7を参照して説明する。加速度センサ37、ジャイロセンサ38を含む慣性センサは前述したように、ユーザの腰部に装着されている。ここで、ランニングをしている時、ユーザの姿勢が前傾になったり左右に傾いたりしている場合がある。この場合、慣性センサを装着したユーザの腰部の傾斜角度分だけ、本来重力方向と平行となるべきz軸方向、および、ユーザの進行方向と平行となるべきy軸方向が傾斜する。そこで、加速度センサ37やジャイロセンサ38のデータに基づいてこれらの傾斜を推定する姿勢推定処理を行う。
 姿勢推定処理において、制御部50は、まず、重力方向に対する傾斜を推定し、重力方向に対する軸に沿ったデータ、すなわち、水平方向に沿ってy軸およびx軸をとり、重力方向をz軸方向とした軸座標データに変換する重力方向推定・補正処理を行う(ステップS201)。この推定方式の一例として、加速度センサ37の3軸出力とジャイロセンサ38の3軸出力をカルマンフィルタやローパスフィルタに入力することにより、地面に対する、加速度の3軸データと、角速度の3軸データとを算出して、重力方向の推定を行う。また、カルマンフィルタやローパスフィルタ以外の軸推定方式を採用して重力方向の推定を行ってもよい。重力方向の推定が行われると、加速度センサ37やジャイロセンサ38のデータについて推定された重力方向に姿勢を補正する。この処理により、加速度センサ37とジャイロセンサ38のデータのz軸方向が重力方向を向くこととなる。
 続いて、制御部50は、ユーザが走行する進行方向に対する傾斜を推定し、y軸を進行方向に平行となるように揃える進行方向推定処理を行う(ステップS202)。進行方向推定処理において重力方向の姿勢の補正処理が行われたジャイロセンサ38からの角速度データを積分することにより角度データを求め、現在のジャイロセンサ38のy軸方向と進行方向との差分を算出して、進行方向の推定を行い、進行方向姿勢補正を行う。しかしながら、角度は角速度データを積分することにより求めるため積分誤差が生じ、また、走行中、ユーザがカーブなどで曲がった場合にも誤差が生じ、これらの誤差が累積することにより、結果がずれてしまうことが考えられる。
 この状態を図8を参照して説明する。図8は、ユーザが走行している状態を示しており、ユーザは進行方向に対してz軸方向の角速度データGyrZだけずれた状態を示している。走行中において、ユーザは交互に足を出し、腕を振ることから、腰は左右に交互に回転し、z軸回りの角速度データGyrZは、進行方向を中心として正弦波を描いている。しかし、例えば、ユーザがカーブを曲がって走行している場合、角速度の中心にずれが生じる。
 ユーザが直線からカーブに沿って走行している状態におけるz軸回りの角速度データGyrZを示したのが、図9Aである。ここで、ユーザがカーブに沿って走行している状態において、角速度の中心にずれが生じている。この角速度のデータを積分して角度データとして示したのが、図9Bの曲線91である。本来であれば、角速度は曲線93のようになるところ、ユーザがカーブを曲がることによって角度に大きなずれが発生している。
 このように、進行方向は時々刻々変化し、この変化にしたがい、進行方向の姿勢誤差が増大する。進行方向の姿勢誤差が増大すると、y軸が正しい方向に補正されず、これに伴いx軸も正しい方向に補正されないこととなる。すなわち、左右方向の動きについて精度良く算出することができなくなる。そこで、この姿勢誤差を抽出して角度データから除去することにより、y軸を正しい方向に補正する。本実施の形態において、歩行時、あるいは走行時の2歩周期分の角速度データを用いてこの補正を行う。
 一般に、走行動作においては、一方の足、例えば右足を進行方向に踏み出して着地してから、一方の足を蹴り出し(右足の離地)、続いて他方の足(左足)が着地し、他方の足を蹴り出し(左足の離地)、再び一方の足(右足)を着地する、左右各1歩の計2歩分を1周期として定義することができる。
 このとき、右足の踏み出しに対して腰は進行方向から右回りに移動する。その後右足の着地により反転して左回りに移動し、右足を蹴り出す頃には進行方向に戻り、さらに左回りに移動し左足の着地により反転して右回りに移動して進行方向に戻る。
 すなわち、この間のz軸回りの角度の軌跡は左右対称であり、平均すると0になる。したがって、上述した誤差がなければ、2歩周期の角度の平均は0であり、逆に誤差があれば、2歩周期の角度の平均は進行方向の姿勢誤差を示す。
 そこで、2歩周期分の積分結果の平均を算出して積分結果から減算する。これによって姿勢誤差を除去した速度データを得る。これにより、進行方向とセンサのy軸方向の差分を2歩周期で平均0にすることができる。
 2歩周期は、ジャイロセンサ38からの角速度データに基づき求められる。ユーザが走行する場合、左足を進行方向に出して踵を地面についたときに角速度は0となる。左足の踵を地面についた後、後方に蹴り出すことにより角速度は-方向に大きくなる。ユーザが進行方向を向いた状態で角速度は最大となる。ユーザが進行方向を向いた状態となった後、右足が進行方向に移動するにしたがって、角速度は小さくなっていく。そして右足の踵が着地したときに角速度は0となる。
 右足の踵が着地した後、後方に蹴り出すことにより角速度は+方向に大きくなる。ユーザが進行方向を向いた状態で角速度は最大となる。ユーザが進行方向を向いた状態となった後、左足が進行方向に移動するにしたがって、角速度は小さくなっていく。そして左足の踵が着地したときに角速度は0となる。このように、角速度が0となるとき、あるいは、角速度が最大または最小となるタイミングから2歩周期を求めることができる。
 あるいは、加速度センサ37からの加速度データから2歩周期を求めることができる。一連の走行動作において、加速度センサ37により取得された加速度データのうち上下方向の加速度成分は、左右の一歩ごとに周期性を有する信号波形を示す。このことから、上下方向の加速度成分における2歩周期分が、走行動作における1周期に対応することになる。したがって、加速度センサにより取得された上下方向の加速度成分に基づいて、ユーザが行った走行動作における2歩周期ごとの動作データを安定的に切り出すことができる。これとともに、2歩周期の時間を正確に計測することができる。例えば、右足の踵を着地するタイミングで、+方向の加速度が最大となり、左足の踵を着地するタイミングで-方向の加速度が最大となる。なお、周期推定方法として、他の方式が採用されてもよい。
 進行方向の推定処理を行う前に、2歩周期分の角速度データが揃うことが必要である。ジャイロセンサ38から検出された角速度信号は、角速度データ取得部52に入力され、角速度データ取得部52は、所定のサンプリング周期でサンプリングし、記憶部34に記憶される。記憶部34に角速度データが2歩周期分格納されると、記憶部34からこの2歩周期分のz軸方向の角速度データGyrZが読み出される。この2歩周期期間のz軸方向の角速度データGyrZについて積分が行われ、角度が算出される。角度が算出されると、2歩周期期間内の角度の平均が算出される。この2歩周期における左右の揺動は対となることから、角度の平均は0となるはずである。
 しかしながら、積分誤差、カーブ等によるずれがこの平均に表れる。この平均を表す曲線が図9Bの曲線92である。ここで、平均は、2歩周期の平均値とこれより1歩手前を中心とした2歩周期の平均値に基づいてその間を線形補間することによって求められる。なお、線形補間に用いる平均値は、2歩周期の平均値とこれより2歩手前を中心とした隣接する2歩周期の平均値を用いてもよい。また、2歩周期に限らず、例えば4歩周期、6歩周期等2歩周期の整数倍の平均値を用いてもよい。制御部50は、上述のように平均を求めることにより積分誤差等によるずれを算出し、速度データを積分して求めた角度からこのずれを減算し、進行方向を補正する。以上により、姿勢推定処理は終了する。
 図7において姿勢推定処理が行われ、2歩周期分の加速度データが記憶部34に格納されると、2歩周期分の加速度データが記憶部34から読み出され、左右動推定処理が行われる(図6、ステップS104)。
 続いて、左右動推定処理について図10を参照して説明する。
 まず、保存されている2歩周期分の加速度データに対して、姿勢推定処理で得られた進行方向の姿勢誤差を用いて進行方向の姿勢補正を行う。これにより、姿勢推定処理により既に行われた重力方向の姿勢補正に加えて、進行方向の姿勢補正が行われ、z軸が重力方向、y軸が進行方向に沿った加速度、すなわち、x軸方向についても姿勢補正された加速度が取得される(ステップS301)。
 ステップS301で進行方向の姿勢補正が行われた加速度データは、積分処理が行なわれ、速度が算出される。しかしながら、積分処理を行うことにより積分誤差が発生し、算出された速度データはこの積分誤差を含んでいる。位置データを算出するためには、さらに速度データを積分する必要がある。速度データを積分することによって、さらに積分誤差が発生し、算出された位置データの誤差は大きくなる。図11は、加速度のデータを2回積分した場合の位置データを示した図であり、曲線111が2回積分した位置データを示している。加速度データの積分による積分誤差と速度データの積分による積分誤差が累積することによって誤差が増大している。そこで、前述の進行方向の姿勢補正の場合と同様に、2歩周期分の積分データの平均を求めることにより、この誤差成分を算出する。前述したように、2歩周期におけるz軸回りの角度の軌跡は左右対称であり、平均すると0になる。同様に、左右方向、すなわち、x軸方向の速度データの変化および位置データの変化も左右対称であり、平均すると0になる。したがって、積分誤差がなければ、2歩周期のx軸方向の速度データおよび位置データの平均は0であり、逆に誤差があれば、2歩周期のx軸方向の速度データおよび位置データの平均は積分誤差を示す。
 ここで、誤差成分は、2歩周期分ごとに平均を求め、求められた平均と次に求められた平均に基づいてその間の速度データおよび位置データについて補間を行うことにより算出される。ステップS302において、進行方向の姿勢補正が行われた加速度データを積分処理して速度データを算出するとともに、速度データの誤差成分を求めて、速度データから誤差成分を減算することにより、誤差が補正された速度データを求める。
 次に、ステップS302における速度データの補正処理について、図12および図14を参照して説明する。図14のタイムチャートにおいて、横軸の時間軸は、右から左に過去に向かって、直近の接地時landing〔0〕、1歩前の接地時landing〔1〕、2歩前の接地時landing〔2〕、3歩前の接地時landing〔3〕、4歩前の接地時landing〔4〕を示している。
 補正処理は1歩接地毎に行われ、記憶部34には、パラメータとして、加速度データaccX、速度データvelo_tmp、直近に求められた2歩周期の期間の速度データの平均値velo_ave_cur、前回求められた2歩周期の期間の速度データの平均値velo_ave_pst、両平均値に基づき補間された速度データの補間値velo_LI、直近に求められた両平均値に基づき補正された補正速度データvelo_cur、前回求められた補正速度データvelo_pst、位置データpos_tmp、直近に求められた2歩周期の期間の位置データの平均値pos_ave_cur、前回求められた2歩周期の期間の位置データの平均値pos_ave_pst、両平均値に基づき補間された位置データの補間値pos_LI、両平均値に基づき補正された補正位置データpos_cur等が記憶されている。
 今、記憶部34の上記パラメータとして、landing〔0〕の接地前のlanding〔1〕までの加速度データに基づくデータが記憶されている。すなわち、直近に求められた2歩周期の期間の速度データの平均値velo_ave_curとしてlanding〔1〕とその2歩周期前のlanding〔3〕との間の範囲の速度データの平均値が記憶され、直近に求められた補正速度データvelo_curとしてlanding〔2〕とlanding〔3〕の間における補正速度データが記憶され、直近に求められた2歩周期の期間の位置データの平均値pos_ave_curとしてlanding〔2〕とその2歩周期前のlanding〔4〕との間の範囲の位置データの平均値が、それぞれ記憶されている。
 ここで、新たに、接地時landing〔0〕の加速度データが入力されると、速度データの補正処理について更新が行われる。
 図12において、制御部50は、記憶部34から、直近に求められた2歩周期の期間の速度データの平均値velo_ave_cur、直近に求められた補正速度データvelo_cur、直近に求められた2歩周期の期間の位置データの平均値pos_ave_curを読み出す。制御部50は、直近に求められた2歩周期の期間の速度データの平均値velo_ave_curとして読み出したlanding〔1〕とlanding〔3〕の間の平均速度データを、前回求められた2歩周期の期間の速度データの平均値velo_ave_pstにデータコピーする。また、制御部50は、直近に求められた補正速度データvelo_curとして読み出したlanding〔2〕とlanding〔3〕の間における補正速度データを、前回求められた補正速度データvelo_pstにデータコピーする。さらに、制御部50は、直近に求められた2歩周期の期間の位置データの平均値pos_ave_curとして読み出したlanding〔2〕とlanding〔4〕との間の平均位置データを、前回求められた2歩周期の期間の位置データの平均値pos_ave_pstにデータコピーする(ステップS401)。
 次に制御部50は、landing〔0〕とlanding〔2〕の間の範囲の加速度データaccXを積分して各時点における速度データvelo_tmpを求める(ステップS402)。velo_tmpは、例えば5ms毎の速度データの配列として求められる。
 landing〔0〕とlanding〔2〕の間の速度データvelo_tmpが求められると、制御部50は、landing〔0〕とlanding〔2〕の2歩周期の範囲の速度データの平均値を直近に求められた2歩周期の期間の速度データの平均値velo_ave_curとして求め、記憶部34に記憶する(ステップS403)。ここで、直近に求められた2歩周期の期間は、第一の2歩周期の倍数分の期間あるいは第二の2歩周期の倍数分の期間の一例である。前述したように、2歩周期の期間の速度データの平均は本来であれば0となるはずであるが、積分誤差等により誤差が生じる。そこで、速度データから2歩周期の期間の速度データの平均値を減算することにより速度データを補正する。
 velo_ave_curが求められると、制御部50は、このvelo_ave_curとステップS401においてデータコピーしたlanding〔1〕とlanding〔3〕の2歩周期の期間の速度データの平均値である前回求められた2歩周期の期間の速度データの平均値velo_ave_pstを用いて補間値を計算する(ステップS404)。ここで、前回求められた2歩周期の期間は、第二の2歩周期の倍数分の期間あるいは第一の2歩周期の倍数分の期間の一例である。landing〔1〕とlanding〔3〕の2歩周期の期間の速度データの平均値であるvelo_ave_pstはvelo_ave_curより1歩手前のlanding〔2〕を中心とした2歩周期の期間の平均値であり、velo_ave_curとは、時間軸上においてlanding〔1〕とlanding〔2〕の間で互いに2歩周期の期間が部分的に重なるように設定されている。したがって、landing〔1〕の時点を中心とした2歩周期の期間の速度データの平均値velo_ave_curとlanding〔2〕の時点を中心とした2歩周期の期間の速度データの平均値velo_ave_pstの値を用いてlanding〔1〕とlanding〔2〕の間の各時点の2歩周期の期間の速度データの平均値を補間する。ここでは、補間として線形補間を用いる。landing〔1〕の時点における速度データの平均値velo_ave_curとlanding〔2〕の時点における速度データの平均値velo_ave_pstを直線で結んでその間の各時点における速度データの平均値を求める。各時点における線形補間された速度データの平均値velo_LIは、velo_tmpと同様に、例えば5ms毎の速度データの平均値の配列として求められる。
 landing〔1〕とlanding〔2〕の間の各時点の線形補間された速度データの平均値の配列velo_LIが求められると、制御部50は、ステップS402において求めた速度データvelo_tmpから速度データの平均値を除去して補正された補正速度データvelo_curを求める(ステップS405)。velo_tmpは、ステップS402において求めた速度データvelo_tmpのうち、landing〔1〕とlanding〔2〕の間の各時点における速度データを用いる。landing〔1〕とlanding〔2〕の間の各時点における速度データvelo_tmpから、それぞれ対応する各時点の線形補間された速度データの平均値velo_LIを減算することにより、landing〔1〕とlanding〔2〕の間の各時点において補正された補正速度データvelo_curが求められる。
 制御部50は、求められたlanding〔1〕とlanding〔2〕との間の各時点において補正された速度データvelo_curとステップS401においてデータコピーしたlanding〔2〕とlanding〔3〕との間における補正速度データvelo_pstとを合わせてlanding〔1〕とlanding〔3〕の2歩周期分の補正速度データveloを求める(ステップS406)。以上により、速度データの補正処理が終了する。
 図10に戻って、ステップS302で積分誤差の補正が行われた補正速度データは、積分処理が行われることにより、位置データが算出される。前述したように、速度データについて積分処理を行うことにより積分誤差が発生し、算出された位置データはこの積分誤差を含んでいる。2歩周期の期間の位置データの平均値は本来であれば0となるはずであるが、積分誤差等により誤差が生じる。そこで補正速度データを積分して求めた位置データからその時点を中心として2歩周期の期間の位置データの平均値を除去して補正位置データを求める(ステップS303)。
 次に、ステップS303における位置データの補正処理について、図13と先ほどの図14のタイムチャートを参照して説明する。
 制御部50は、前述の図12の速度データの補正処理において補正されたlanding〔1〕とlanding〔3〕の2歩周期分の補正速度データveloについて積分して位置データpos_tmpを求める(ステップS501)。pos_tmpは、例えば5ms毎の位置データの配列として求められる。
 landing〔1〕とlanding〔3〕の間の位置データpos_tmpが求められると、制御部50は、直近に求められた2歩周期の期間の位置データの平均値pos_ave_curとしてlanding〔1〕とlanding〔3〕の2歩周期の期間の位置データの平均値を求める(ステップS502)。前述したように、2歩周期の平均は本来であれば0となるはずであるが、積分誤差等により誤差が生じる。そこで、位置データから2歩周期の期間の位置データの平均値を減算することにより位置データを補正する。
 pos_ave_curが求められると、制御部50は、このpos_ave_curと図11のステップS401において前回求められた2歩周期の期間の位置データの平均値pos_ave_pstにデータコピーしたlanding〔2〕とlanding〔4〕の2歩周期の期間の位置データの平均値を用いて補間値を計算する(ステップS503)。landing〔2〕とlanding〔4〕の2歩周期の期間の位置データの平均値であるpos_ave_pstはpos_ave_curより1歩手前のlanding〔3〕を中心とした2歩周期の期間の位置データの平均値であり、pos_ave_curとは、時間軸上のlanding〔2〕とlanding〔3〕の間で互いに2歩周期の期間が部分的に重なるように設定されている。したがって、landing〔2〕の時点を中心とした2歩周期の期間の位置データの平均値pos_ave_curとlanding〔3〕の時点を中心とした2歩周期の期間の位置データの平均値pos_ave_pstの値を用いてlanding〔2〕とlanding〔3〕の間の各時点における2歩周期の期間の位置データの平均値を補間する。ここでは、補間として速度の場合と同様に線形補間を用いる。landing〔2〕の時点を中心とした2歩周期の期間の位置データの平均値pos_ave_curとlanding〔3〕の時点を中心とした2歩周期の期間の位置データの平均値pos_ave_pstを直線で結んでその間の各時点における2歩周期の期間の位置データの平均値を求める。各時点における線形補間された2歩周期の期間の位置データの平均値pos_LIは、pos_tmpと同様に、例えば5ms毎の2歩周期の位置データの平均値の配列として求められる。
 landing〔2〕とlanding〔3〕の間の各時点の線形補間された2歩周期の期間の位置データの平均値pos_LIが求められると、制御部50は、ステップS501において求めた位置データpos_tmpから2歩周期の期間の位置データの平均値を除去して補正された補正位置データpos_curを求める(ステップS504)。pos_tmpは、ステップS501において求めた位置データpos_tmpのうち、landing〔2〕とlanding〔3〕の間の各時点における位置データを用いる。landing〔2〕とlanding〔3〕の間の各時点における位置データpos_tmpから、それぞれ対応する各時点の線形補間された2歩周期の位置データの平均値pos_LIを減算することにより、landing〔2〕とlanding〔3〕の間の各時点における補正位置データpos_curが求められる。以上により、位置データの補正処理が終了する。
 以上のように、加速度データを積分して速度データを求める際に、2歩周期分の速度データの平均を減算して誤差が補正された速度データを得るとともに、補正された速度データを積分して左右動の位置データを求める際に、2歩周期分の平均を減算して誤差が補正された左右動の位置データを得ることにより、2回積分による積分誤差の累積による左右動の位置データの誤差を減じ、精度よく左右動の位置データを算出することができる。
 そして、2歩周期分の平均に基づいて線形補間により、速度データおよび位置データを補正することにより、安定的で精度良く誤差を補正することができる。線形補間による補正は処理が単純であることから、処理に要するメモリの容量を小さくて済み、計算量も少なくて済み、CPUに対する負荷を少なくできる。また、ユーザがランニング途中で足をつまずいた場合等2歩周期が急に変化した場合であっても単純な処理であることから即時対応可能である。
 上記の実施の形態において、速度データおよび位置データの積分誤差等による誤差成分は、2歩周期の平均値とこれより1歩手前を中心とした2歩周期の平均値に基づいてその間を線形補間することによって求めた。ただし、これに限らず、線形補間に用いる平均値は、2歩周期の平均値とこれより2歩手前を中心とした連続する2歩周期の平均値を用いてもよく、時間軸上で互いに部分的に2歩周期重なるように設定されてもよいし、時間軸上で互いに重複せずに、かつ、間隔をあけずに互いに連続するように設定されてもよい。また、線形補間に用いる平均値は、2歩周期の平均値としたが、これに限らず、例えば4歩周期、6歩周期等2歩周期の倍数分の期間の速度データの平均値あるいは位置データの平均値を用いてもよい。さらにこの場合、線形補間に用いる隣接する周期は一部が重複してもよいし、重複しないで連続してもよい。例えば、4歩周期の場合、隣接する4歩周期は、2歩手前を中心とした4歩周期であってもよく、4歩手前を中心として4歩周期であってもよい。また、補間は2つの平均値に基づく線形補間に限らず、例えば、3つの平均値に基づく2次補間であってもよい。すなわち、第一の2歩周期の期間の速度データの平均値あるいは位置データの平均値、これより1歩手前を中心とした第二の2歩周期の期間の速度データの平均値あるいは位置データの平均値、2歩手前を中心とした第三の2歩周期の期間の速度データの平均値あるいは位置データの平均値の3つの平均値より2次補間してその間の補間値を求めてもよい。なお、この他にも、4つ以上の平均値に基づく補間であってもよい。
 また、角速度データを積分して角度データを算出するとともに、角度データの2歩周期の平均に基づいて線形補間した値により算出された角度データの誤差を用いて進行方向の角度データを補正して進行方向の姿勢を補正することにより、時々刻々変化する進行方向に対応して姿勢が補正可能であり、さらに安定的に精度よく左右動の位置データを算出することができる。
 なお、本実施の形態において、姿勢推定処理を行って姿勢を補正した後、左右動推定処理を行い、ユーザの左右の動きのデータを取得することを説明したが、これに限らず、例えば、姿勢推定処理を省略して左右動推定処理のみを行ってもよい。上述したように、左右動推定処理を行うことにより、加速度データの2回積分による積分誤差の累積を除去することができ、安定的に精度よく左右動の位置データを算出することができる。さらに、本実施の形態のように、姿勢推定処理を追加することにより、進行方向の変化に対応して姿勢を補正でき、さらに、安定的に精度よく左右動の位置データを算出することができる。
 本実施の形態は、ユーザが歩行や走行を行う場合の運動データを取得することについて説明したが、これに限らず例えばサイクリング等の運動データを収録する場合に適用してもよい。
 また、本実施の形態において、電子機器1は、加速度センサ37およびジャイロセンサ38を備えていたが、加速度センサ37およびジャイロセンサ38は電子機器1とは、別に設けてもよい。この場合、加速度センサ37およびジャイロセンサ38は、ユーザの腰部に装着され、電子機器1と有線あるいは無線により接続されるようにする。
 また、本実施の形態において、電子機器1は、加速度センサ37およびジャイロセンサ38からセンサデータを取得し、左右動の運動データを補正し、補正した左右動の運動データを無線により外部装置41に送信し、外部装置41がデータの解析を行い、解析結果を表示した。したがって、電子機器1と外部装置41は、運動データを取得・解析するシステムを構成する。しかし、これに限らず、電子機器1がデータの解析を行い、解析結果を外部装置41に送信してもよい。また、電子機器1は、液晶表示器等の表示部を備え、表示結果を表示してもよい。
 また、逆に、電子機器1は、加速度センサ37およびジャイロセンサ38からセンサデータを取得することのみを行い、左右動の運動データの補正処理は、外部装置41が行ってもよい。
 また、電子機器1は、例えばカードスロットを有し、メモリカードのごとき記録媒体が着脱自在に設けられ、この記録媒体に取得されたデータ、補正されたデータを記憶してもよい。
 また、電子機器1はセンサとして加速度センサ37とジャイロセンサ38を設けたが、さらに地磁気センサ、GPS受信器等を設けてもよい。
 上記実施の形態において、中央制御回路31がROM32に記憶されたプログラムを実行することによって、制御部50として機能した。しかしながら、中央制御回路31がROM32に記憶されたプログラムを実行する代わりに、例えばASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、各種制御回路等の専用のハードウェアを備え、専用のハードウェアが、制御部として機能しても良い。この場合、一部を専用のハードウェアによって実現し、他の一部をソフトウェア又はファームウェアによって実現しても良い。
 また、上記実施の形態において、ROM32に予めプログラムを記憶しておくことはもとより、メモリカード等の外部記録媒体から記録媒体読取部を介してRAM33等に読み込ませて記憶されたものであってもよい。これに加えて、プログラムを搬送波に重畳し、インターネット等の通信媒体を介してRAM33等に読み込ませて記憶することもできる。
 本発明の実施の形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。
 本出願は、2020年9月14日に出願された日本国特許出願特願2020-153469号に基づく。本明細書中に日本国特許出願特願2020-153469号の明細書、特許請求の範囲、図面全体を参照として取り込むものとする。
 本発明は、慣性センサを用いて運動データを生成する電子機器、運動データ取得方法およびプログラムに適用可能である。
1…電子機器、2…電源キー、3…表示部、4…クリップ、31…中央制御回路、32…ROM、33…RAM、34…記憶部、35…無線通信モジュール、36…入出力制御回路、37…加速度センサ、38…ジャイロセンサ、39…計時部、40…電源回路、41…外部装置、50…制御部、51…加速度データ取得部、52…角速度データ取得部、53…姿勢推定部、53a…重力方向推定・補正部、53b…進行方向姿勢推定部、54…左右動推定部、54a…進行方向姿勢補正部、54b…速度データ補正部、54c…位置データ補正部、91,92,93,111,112,113…曲線

Claims (15)

  1.  制御部を備える電子機器であって、
     前記制御部は、
     加速度センサから自らの足で移動中のユーザの体軸に直交する体側面方向の動作状態に対応する加速度データを取得し、
     前記加速度データに基づいて速度データを導出するとともに、第一の2歩周期の倍数分の期間の前記速度データの平均値と前記第一の2歩周期の倍数分の期間の前後のいずれかに連続する第二の2歩周期の倍数分の期間の前記速度データの平均値とに基づいて前記速度データの誤差を導出し、前記速度データの誤差を用いて前記速度データを補正することにより補正速度データを生成する、
     電子機器。
  2.  前記制御部は、
     前記補正速度データに基づいて位置データを導出するとともに、前記第一の2歩周期の倍数分の期間の前記位置データの平均値と前記第一の2歩周期の倍数分の期間の前後のいずれかに連続する前記第二の2歩周期の倍数分の期間の前記位置データの平均値とに基づいて前記位置データの誤差を導出し、前記位置データの誤差を用いて前記位置データを補正することにより補正位置データを生成する、
     請求項1に記載の電子機器。
  3.  制御部を備える電子機器であって、
     前記制御部は、
     加速度センサから自らの足で移動中のユーザの体軸に直交する体側面方向の動作状態に対応する加速度データを取得し、
     前記加速度データに基づいて位置データを導出するとともに、第一の2歩周期の倍数分の期間の前記位置データの平均値と前記第一の2歩周期の倍数分の期間の前後のいずれかに連続する第二の2歩周期の倍数分の期間の前記位置データの平均値とに基づいて前記位置データの誤差を導出し、前記位置データの誤差を用いて前記位置データを補正することにより補正位置データを生成する、
     電子機器。
  4.  前記制御部は、
     前記第一の2歩周期の倍数分の期間の前記速度データの平均値と前記第二の2歩周期の倍数分の期間の前記速度データの平均値とを線形補間することにより前記速度データの誤差を導出する、
     請求項1又は2に記載の電子機器。
  5.  前記制御部は、
     前記第二の2歩周期の倍数分の期間に連続する第三の2歩周期の倍数分の期間の前記速度データの平均値を求め、
     前記第一の2歩周期の倍数分の期間の前記速度データの平均値と前記第二の2歩周期の倍数分の期間の前記速度データの平均値と前記第三の2歩周期の倍数分の期間の前記速度データの平均値とを2次補間することにより前記速度データの誤差を導出する、
     請求項1又は2に記載の電子機器。
  6.  前記制御部は、
     前記第一の2歩周期の倍数分の期間の前記位置データの平均値と前記第二の2歩周期の倍数分の期間の前記位置データの平均値とを線形補間することにより前記位置データの誤差を導出する、
     請求項2又は3に記載の電子機器。
  7.  前記制御部は、
     前記第二の2歩周期の倍数分の期間に連続する第三の2歩周期の倍数分の期間の前記位置データの平均値を求め、
     前記第一の2歩周期の倍数分の期間の前記位置データの平均値と前記第二の2歩周期の倍数分の期間の前記位置データの平均値と前記第三の2歩周期の倍数分の期間の前記位置データの平均値とを2次補間することにより前記位置データの誤差を導出する、
     請求項2又は3に記載の電子機器。
  8.  前記第一の2歩周期の倍数分の期間と前記第二の2歩周期の倍数分の期間は、時間軸上で互いに部分的に重なるように設定される、
     請求項1から7のいずれか1項に記載の電子機器。
  9.  前記第一の2歩周期の倍数分の期間と前記第二の2歩周期の倍数分の期間は、時間軸上で互いに重複せずに、かつ、間隔をあけずに互いに連続するように設定される、
     請求項1から7のいずれか1項に記載の電子機器。
  10.  前記ユーザの腰に装着する取付部をさらに備える、
     請求項1から9のいずれか1項に記載の電子機器。
  11.  前記加速度センサをさらに備える、
     請求項1から10のいずれか1項に記載の電子機器。
  12.  加速度センサから自らの足で移動中のユーザの体軸に直交する体側面方向の動作状態に対応する加速度データを取得するステップと、
     前記加速度データに基づいて速度データを導出するステップと、
     第一の2歩周期の倍数分の期間の前記速度データの平均値と前記第一の2歩周期の倍数分の期間の前後のいずれかに連続する第二の2歩周期の倍数分の期間の前記速度データの平均値とに基づいて前記速度データの誤差を導出するステップと、
     前記速度データの誤差を用いて前記速度データを補正することにより補正速度データを生成するステップと、
     を備える運動データ取得方法。
  13.  加速度センサから自らの足で移動中のユーザの体軸に直交する体側面方向の動作状態に対応する加速度データを取得するステップと、
     前記加速度データに基づいて位置データを導出するステップと、
     第一の2歩周期の倍数分の期間の前記位置データの平均値と前記第一の2歩周期の倍数分の期間の前後のいずれかに連続する第二の2歩周期の倍数分の期間の前記位置データの平均値とに基づいて前記位置データの誤差を導出するステップと、
     前記位置データの誤差を用いて前記位置データを補正することにより補正位置データを生成するステップと、
     を備える運動データ取得方法。
  14.  コンピュータに、
     加速度センサから自らの足で移動中のユーザの体軸に直交する体側面方向の動作状態に対応する加速度データを取得するステップと、
     前記加速度データに基づいて速度データを導出するステップと、
     第一の2歩周期の倍数分の期間の前記速度データの平均値と前記第一の2歩周期の倍数分の期間の前後のいずれかに連続する第二の2歩周期の倍数分の期間の前記速度データの平均値とに基づいて前記速度データの誤差を導出するステップと、
     前記速度データの誤差を用いて前記速度データを補正することにより補正速度データを生成するステップと、
     を実行させるプログラム。
  15.  コンピュータに、
     加速度センサから自らの足で移動中のユーザの体軸に直交する体側面方向の動作状態に対応する加速度データを取得するステップと、
     前記加速度データに基づいて位置データを導出するステップと、
     第一の2歩周期の倍数分の期間の前記位置データの平均値と前記第一の2歩周期の倍数分の期間の前後のいずれかに連続する第二の2歩周期の倍数分の期間の前記位置データの平均値とに基づいて前記位置データの誤差を導出するステップと、
     前記位置データの誤差を用いて前記位置データを補正することにより補正位置データを生成するステップと、
     を実行させるプログラム。
PCT/JP2021/028781 2020-09-14 2021-08-03 電子機器、運動データ取得方法およびプログラム WO2022054464A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/022,997 US20230364466A1 (en) 2020-09-14 2021-08-03 Electronic device, exercise data acquisition method, and recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020153469A JP7494671B2 (ja) 2020-09-14 電子機器、運動データ取得方法およびプログラム
JP2020-153469 2020-09-14

Publications (1)

Publication Number Publication Date
WO2022054464A1 true WO2022054464A1 (ja) 2022-03-17

Family

ID=80632546

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/028781 WO2022054464A1 (ja) 2020-09-14 2021-08-03 電子機器、運動データ取得方法およびプログラム

Country Status (2)

Country Link
US (1) US20230364466A1 (ja)
WO (1) WO2022054464A1 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930741A (en) * 1995-02-28 1999-07-27 Virtual Technologies, Inc. Accurate, rapid, reliable position sensing using multiple sensing technologies
JP2001258870A (ja) * 2000-03-14 2001-09-25 Tabai Espec Corp 運動カロリー測定方法及び装置
JP2013143996A (ja) * 2012-01-13 2013-07-25 Microstone Corp 運動計測装置
JP2015188605A (ja) * 2014-03-28 2015-11-02 セイコーエプソン株式会社 誤差推定方法、運動解析方法、誤差推定装置及びプログラム
JP2016042879A (ja) * 2014-08-19 2016-04-04 マイクロストーン株式会社 ストライド計測システム
JP2017009341A (ja) * 2015-06-18 2017-01-12 カシオ計算機株式会社 データ解析装置及びデータ解析方法、データ解析プログラム
JP2017161458A (ja) * 2016-03-11 2017-09-14 カシオ計算機株式会社 測定装置、測定方法及びプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930741A (en) * 1995-02-28 1999-07-27 Virtual Technologies, Inc. Accurate, rapid, reliable position sensing using multiple sensing technologies
JP2001258870A (ja) * 2000-03-14 2001-09-25 Tabai Espec Corp 運動カロリー測定方法及び装置
JP2013143996A (ja) * 2012-01-13 2013-07-25 Microstone Corp 運動計測装置
JP2015188605A (ja) * 2014-03-28 2015-11-02 セイコーエプソン株式会社 誤差推定方法、運動解析方法、誤差推定装置及びプログラム
JP2016042879A (ja) * 2014-08-19 2016-04-04 マイクロストーン株式会社 ストライド計測システム
JP2017009341A (ja) * 2015-06-18 2017-01-12 カシオ計算機株式会社 データ解析装置及びデータ解析方法、データ解析プログラム
JP2017161458A (ja) * 2016-03-11 2017-09-14 カシオ計算機株式会社 測定装置、測定方法及びプログラム

Also Published As

Publication number Publication date
JP2022047600A (ja) 2022-03-25
US20230364466A1 (en) 2023-11-16

Similar Documents

Publication Publication Date Title
US10234293B2 (en) Inertial device including an acceleration, method performed by the same, and program
US9804189B2 (en) Upper body motion measurement system and upper body motion measurement method
TW479145B (en) Terrain navigation apparatus for a legged animal traversing terrain
US10240945B2 (en) Correlation coefficient correction method, exercise analysis method, correlation coefficient correction apparatus, and program
JP7023234B2 (ja) 歩行者の動きを推定する方法
JP6083279B2 (ja) 移動状況情報算出方法及び移動状況情報算出装置
JP2016033473A (ja) 位置算出方法及び位置算出装置
US20220409097A1 (en) Joint Axis Direction Estimation
CN109009142B (zh) 跑步姿势判定方法、系统、智能穿戴设备及存储介质
JP2016034479A (ja) 走行時着地位置評価方法、走行時着地位置評価装置、検出方法、検出装置、走行運動評価方法及び走行運動評価装置
WO2015146048A1 (ja) 誤差推定方法、運動解析方法、誤差推定装置、及びプログラム
JP2018068396A (ja) 運動解析装置、運動解析システム、及び運動解析方法
EP3227634B1 (en) Method and system for estimating relative angle between headings
JP5821513B2 (ja) 参照値生成方法及び参照値生成装置
JP2015190850A (ja) 誤差推定方法、運動解析方法、誤差推定装置及びプログラム
JP5906687B2 (ja) 慣性航法演算装置および電子機器
KR102253298B1 (ko) 골프 퍼팅라인 측정장치
WO2022054464A1 (ja) 電子機器、運動データ取得方法およびプログラム
CN107782302B (zh) 一种基于下肢运动实现定位的方法、装置及系统
CN116817905A (zh) 一种可穿戴多mems准实时协同导航系统及方法
JP7494671B2 (ja) 電子機器、運動データ取得方法およびプログラム
JP2017169726A (ja) 測定装置、測定方法、及び測定プログラム
JP2015184158A (ja) 誤差推定方法、運動解析方法、誤差推定装置及びプログラム
JP2021146025A (ja) 運動データ取得装置、運動データ取得方法およびプログラム
JP7115578B2 (ja) 進行方向推定装置、進行方向推定方法及び進行方向推定プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21866424

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21866424

Country of ref document: EP

Kind code of ref document: A1