Motion sensing game linear acceleration anti-drifting processing method fusing space anchor points

By integrating spatial anchor point data processing methods and utilizing extended Kalman filtering and temperature-error models, the drift problem of inertial navigation systems in motion-sensing devices was solved, achieving high-precision, low-latency six-degree-of-freedom pose tracking and enhancing the immersive experience of motion-sensing games.

CN121371604APending Publication Date: 2026-01-23上海屏云科技有限公司
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202511537417.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-10-27
Publication Date
2026-01-23

AI Technical Summary

Technical Problem

Existing motion sensing devices suffer from drift problems caused by error integration in inertial navigation systems, especially during long-term tracking, resulting in low accuracy. Furthermore, external correction is ineffective, filtering algorithms are computationally intensive, leading to delays, and the devices exhibit poor robustness when external signals are lost. Sensor performance is significantly affected by temperature, and data fusion errors are substantial.

Method used

By acquiring data from the inertial measurement unit and the spatial positioning system, the extended Kalman filter algorithm is used for data fusion. Combined with the temperature-error model and time-series filtering, sensor errors are corrected in real time, high-frequency noise is suppressed, and gravity-compensated acceleration data is used to achieve optimized encapsulation and transmission of six-degree-of-freedom pose information.

Benefits of technology

It effectively suppresses the drift of the inertial measurement unit, improves the accuracy and stability of pose tracking in motion-sensing game scenarios, ensures the reliability and real-time nature of the data, and provides a smooth gaming experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121371604A_ABST
    Figure CN121371604A_ABST
Patent Text Reader

Abstract

The invention discloses a motion sensing game linear acceleration anti-drifting method fusing space anchor points, and belongs to the technical field of motion sensing game pose tracking. The method comprises the following steps: synchronously acquiring IMU (Inertial Measurement Unit) original data and a space anchor point absolute pose; the method comprises the following steps: preprocessing IMU data, resolving an attitude matrix in real time by utilizing the angular velocity of a gyroscope, estimating attitude, velocity and displacement, and constructing a state vector; by taking the anchor point pose as observation, through fusion of extended Kalman filtering and state estimation, the optimal estimation is corrected, and the sensor error is calibrated on line; the six-degree-of-freedom pose and the linear acceleration are output to drive a game role to interact with an object, meanwhile, the correction state is fed back to a filter to form a closed loop, integral drift is remarkably restrained, and long-term precision and robustness are improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The application belongs to the technical field of body sense game pose tracking, and particularly relates to a body sense game linear acceleration anti-drift processing method fusing a space anchor point. BACKGROUND

[0002] With the rapid development of virtual reality (VR) and body sense interaction technology, high-precision and low-delay six-degree-of-freedom (6DoF) pose tracking has become a key technology for improving immersive game experience. At present, consumer-level body sense devices generally adopt a tracking scheme based on an inertial measurement unit (IMU). The scheme relies on gyroscopes, accelerometers and other sensors to calculate the attitude, speed and displacement of a carrier in real time through the strapdown inertial navigation principle. The scheme has the advantages of low cost, high sampling rate and no external occlusion problem. However, a pure inertial navigation system will produce significant drift after integral operation due to the inherent errors of the sensors, and cannot meet the demand for long-time stable tracking. To overcome this limitation, the existing technology usually provides an absolute pose reference through an external space positioning system such as an optical camera or an infrared beacon, and suppresses the drift of inertial navigation through a data fusion algorithm.

[0003] Although the fusion scheme is adopted, the existing technology still faces the following core problems in actual application, especially in the consumer-level body sense game scene: The errors (such as temperature drift and zero bias instability) of the IMU will cause the speed and displacement information obtained by integration to diverge over time, and even with external correction, there will still be jitter and drift before the filter converges or during the correction gap; The performance (especially the zero bias) of the IMU sensor is significantly affected by temperature. The heat generated by the device during operation or the change in ambient temperature will change the error characteristics of the sensor, causing the previously calibrated parameters to be invalid, the compensation effect to decrease, and the drift to increase; Although a complex filtering algorithm can improve the accuracy, it has a large amount of calculation and introduces processing delay, which is not conducive to body sense interaction with high real-time requirements. At the same time, when the external signal (such as the space anchor point) is temporarily lost, the system has poor robustness and the trajectory is easily distorted; The IMU data is high-frequency, and the visual / space positioning data is low-frequency. Any deviation in time stamp alignment, coordinate system unification and data packaging and transmission between the two will introduce new errors and affect the final fusion effect. SUMMARY

[0004] To solve the above problems in the existing technology, the application provides a body sense game linear acceleration anti-drift processing method fusing a space anchor point, The object of the application can be achieved by the following technical scheme: A body sense game linear acceleration anti-drift processing method fusing a space anchor point, comprising: S1: Obtain raw data of an inertial measurement unit of a body sensing device, and obtain absolute pose information of a spatial anchor point provided by a spatial positioning system; S2: Preprocess the raw data, and obtain preliminary attitude, velocity and displacement information of a carrier by solving an attitude matrix in real time through a direction cosine matrix differential equation based on angular velocity output by a gyroscope; and construct a state vector for data fusion; S3: Fuse the absolute pose information captured by the spatial positioning system as an observation with a stage state estimation value of the state vector; in a filter update stage, calculate and correct an optimal estimation of the state vector through a difference between the observation and the state vector, and simultaneously obtain sensor error of the inertial measurement unit; S4: Output six-degree-of-freedom pose information and linear acceleration information after fusion and correction, control a character and interact with an object in a body sensing game according to the six-degree-of-freedom pose information and the linear acceleration information; and feed back the state vector after correction to the filter as prior information for prediction at the next time.

[0005] Specifically, the spatial anchor point is a virtual coordinate reference point arranged in a game space, which is stored in a storage medium of the spatial positioning system in a fixed and known global three-dimensional coordinate and attitude data, and is mapped to a local coordinate system of the body sensing device in real time by the spatial positioning system.

[0006] Specifically, the preprocessing method is to perform time series filtering on raw angular velocity and acceleration data output by the inertial measurement unit to suppress high-frequency noise, to perform drift compensation on the filtered data, and to convert the compensated data from a sensor coordinate system to a carrier coordinate system.

[0007] Specifically, the method for real-time solving is: Based on angular velocity data output by the gyroscope, a direction cosine matrix of a carrier coordinate system to a navigation coordinate system is constructed; the direction cosine matrix is updated in real time by solving a direction cosine matrix differential equation, and attitude angles of the carrier are extracted according to the updated direction cosine matrix; accelerometer data is rotated to the navigation coordinate system through the direction cosine matrix, and then gravity compensation is performed, and velocity and displacement information are solved by integration.

[0008] Specifically, the stage state estimation value of the state vector is obtained by one-step prediction through a state transition equation of a filter based on a posteriori estimation value of the state vector at the last time and current data of the inertial measurement unit; the state transition equation is established based on a strapdown inertial navigation principle, and the input is angular velocity and acceleration data after preprocessing and error compensation.

[0009] Specifically, the fusion method is: The fusion method is based on an extended Kalman filter algorithm, and time update and measurement update are performed; in the time update stage, the state vector stage estimation value at the current time and its error covariance are predicted according to the state transition equation; in the measurement update stage, the absolute pose information provided by the spatial positioning system is used as an observation, the Kalman gain is calculated, and the state vector estimation value and the error covariance are updated according to the residual error of the observation and the predicted observation, to obtain the optimal estimation of the state vector.

[0010] Further, the time sequence filtering performs a sliding window interception on the original angular velocity and acceleration data at an original sampling rate of the inertial measurement unit, to obtain a discrete sequence with a fixed length; a finite impulse response low-pass filtering operation is performed on the discrete sequence, and coefficients of the filtering operation are generated by a symmetric 32-order Kaiser window function, and a cutoff frequency is set according to an upper limit of a valid signal bandwidth of the gyroscope and the accelerometer.

[0011] Further, the drift compensation method is: A temperature-error model of the inertial measurement unit is established, the chip temperature is collected in real time by a temperature sensor, and the temperature drift compensation is performed on the angular velocity and acceleration data based on a pre-calibrated temperature-zero offset lookup table or a polynomial fitting function; the zero offset correction is performed on the angular velocity and acceleration data based on a zero offset instability parameter; The data subjected to the temperature drift compensation and the zero offset correction is converted from the sensor coordinate system to the carrier coordinate system through a coordinate system transformation matrix, to complete the drift compensation.

[0012] Further, the gravity compensation is: The specific force vector of the accelerometer after being rotated by a direction cosine matrix is subtracted from a theoretical gravity vector, to obtain an acceleration vector caused only by motion; the acceleration vector is integrated once to obtain a velocity increment, and is integrated twice to obtain a displacement increment.

[0013] Further, the temperature-error model performs multi-point constant temperature calibration on the inertial measurement unit in a temperature control environment, and records the angular velocity and acceleration zero offsets at each temperature point; The curve of the zero offset changing with temperature is fitted by a polynomial, to generate a temperature-zero offset mapping function; The coefficients of the mapping function are written into a storage medium, and during real-time operation, the current chip temperature is used as an input to call the mapping function to obtain a corresponding temperature drift compensation value; The temperature drift compensation value is periodically superimposed on the angular velocity and acceleration data subjected to the zero offset correction.

[0014] Specifically, the six-degree-of-freedom pose information represents the attitude in quaternion form and the position in three-dimensional Cartesian coordinates; the quaternion is normalized and output to drive the skeletal node rotation of the motion sensing game character; the three-dimensional Cartesian coordinates are scaled and mapped to the game world coordinates to drive the skeletal node translation; the six-degree-of-freedom pose information and linear acceleration information are encapsulated by a network protocol and transmitted to the game module through inter-process communication or a local loop network mechanism inside the mobile phone; the network protocol includes a frame sequence number, a check code and a variable compression rate field to adopt lossless compression when the packet loss rate is below a first threshold value and switch to fixed-point quantization compression when the packet loss rate is above a second threshold value.

[0015] Specifically, the absolute pose information of the spatial positioning system is obtained by ultra-wideband ranging-angle fusion or visual marker-inertial joint solution, and time stamp alignment and packet loss detection are performed before each measurement update; if the spatial anchor point signal is detected to be lost, the corresponding observation is temporarily shielded in the measurement update stage of the extended Kalman filter.

[0016] The beneficial effects of the present application are: By fusing the absolute pose information of the spatial anchor point, the drift problem of the inertial measurement unit in long-time operation is effectively suppressed, and the pose tracking accuracy and stability in the motion sensing game scene are significantly improved. Using the extended Kalman filter algorithm for data fusion, not only can it quickly converge, but also can maintain high robustness in the case of short-term loss of external signals, avoiding trajectory distortion. In addition, through accurate calibration and real-time compensation of the temperature-error model, the influence of environmental temperature change on the performance of the sensor is further reduced, ensuring the reliability and consistency of the data. The introduction of time series filtering and gravity compensation effectively suppresses the interference of high-frequency noise and static acceleration components, making the extraction of motion acceleration more accurate. The finally output six-degree-of-freedom pose information and linear acceleration information are optimized and packaged, which can dynamically adjust the compression strategy according to the network condition in wireless transmission, ensuring the efficiency and real-time performance of data transmission, thereby providing users with a smoother and more immersive game experience. BRIEF DESCRIPTION OF DRAWINGS

[0017] In order to facilitate those skilled in the art to understand, the present application will be further described below with reference to the drawings.

[0018] Fig. 1 The flowchart of the motion sensing game linear acceleration anti-drift processing method fusing spatial anchor points according to the present application; Fig. 2 The block diagram of the motion sensing game anti-drift processing system fusing spatial anchor points in the present application; DETAILED DESCRIPTION

[0019] Example implementations are now described with reference to the drawings. Example implementations can, however, be implemented in many different forms and should not be construed as limited to the examples set forth herein; rather, these implementations are provided so that this disclosure will be thorough and complete, and will fully convey the inventive aspects to those skilled in the art. Additionally, the described features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided to give a thorough understanding of embodiments of the disclosure. One skilled in the relevant art will recognize, however, that the aspects of the disclosure can be practiced without one or more of the specific details, or with other methods, components, materials, and so forth. In other instances, well-known structures, devices, implementations, and operations have not been shown or described in detail to avoid obscuring aspects of the disclosure. The figures shown in the drawings are only functional entities and do not necessarily have to correspond to physically independent entities. That is, these functional entities can be implemented in the form of software or in one or more hardware modules or integrated circuits, or in different network and / or processor devices and / or microcontroller devices. The flowcharts shown in the drawings are only exemplary illustrations and do not necessarily have to include all contents and operations / steps and are not necessarily executed in the order described. For example, some operations / steps can be further divided, and some operations / steps can be combined or partially combined, so that the actual execution order can be changed according to the actual situation.

[0020] To further clarify the technical means and effects taken by the present application to achieve the predetermined inventive purpose, the specific embodiments, structures, features and effects thereof according to the present application are described in detail below in combination with the drawings and preferred embodiments.

[0021] Please refer to Figs. 1-2 A somatosensory game linear acceleration anti-drift processing method fusing a spatial anchor point, comprising: S1: obtaining original data of an inertial measurement unit of a somatosensory device, and simultaneously obtaining absolute pose information of a spatial anchor point provided by a spatial positioning system; S2: preprocessing the original data, using the angular velocity output by the gyroscope to solve the attitude matrix in real time through the directional cosine matrix differential equation to obtain the preliminary attitude, velocity and displacement information of the carrier; and simultaneously constructing a state vector for data fusion; S3: taking the absolute attitude information captured by the spatial positioning system as an observation, and fusing it with the stage state estimation value of the state vector; in the filter update stage, the difference between the observation and the state vector is used to calculate and correct the optimal estimation of the state vector, and at the same time the sensor error of the inertial measurement unit is obtained; S4: output the fused corrected six-degree-of-freedom pose information and linear acceleration information, control a character and interact with an object in a motion sensing game according to the six-degree-of-freedom pose information and linear acceleration information, and feed back the corrected state vector to the filter as prior information for prediction at the next time.

[0022] Specifically, the spatial anchor point is a virtual coordinate reference point arranged in a game space, which is stored in a storage medium of the spatial positioning system in a fixed and known global three-dimensional coordinate and attitude data, and is mapped to a local coordinate system of the motion sensing device in real time by the spatial positioning system.

[0023] Specifically, the preprocessing method is to perform time series filtering on the original angular velocity and acceleration data output by the inertial measurement unit to suppress high-frequency noise, to perform drift compensation on the filtered data, and to convert the compensated data from a sensor coordinate system to a carrier coordinate system.

[0024] Specifically, the real-time solving method is: Based on the angular velocity data output by the gyroscope, a direction cosine matrix of the carrier coordinate system to the navigation coordinate system is constructed; the direction cosine matrix is updated in real time by solving a direction cosine matrix differential equation, and the attitude angle of the carrier is extracted according to the updated direction cosine matrix; the accelerometer data is rotated to the navigation coordinate system through the direction cosine matrix, then gravity compensation is performed, and velocity and displacement information are solved by integration.

[0025] Specifically, the stage state estimate value of the state vector is based on the posterior estimate value of the state vector at the last time, and is obtained by one-step prediction through a state transition equation of the filter using the current data of the inertial measurement unit; the state transition equation is established based on the principle of strapdown inertial navigation, and the input is the angular velocity and acceleration data after preprocessing and error compensation.

[0026] Specifically, the fusion method is: The fusion method is based on an extended Kalman filter algorithm, and performs time update and measurement update; in the time update stage, the state vector stage estimate value at the current time and its error covariance are predicted according to the state transition equation; in the measurement update stage, the absolute pose information provided by the spatial positioning system is used as an observation, a Kalman gain is calculated, and the state vector estimate value and error covariance are updated according to the residual error between the observation and the predicted observation, to obtain the optimal estimate of the state vector.

[0027] Further, the timing filtering performs a sliding window interception on the original angular velocity and acceleration data at the original sampling rate of the inertial measurement unit to obtain a discrete sequence of fixed length; a finite impulse response low-pass filtering operation is performed on the discrete sequence, and coefficients of the filtering operation are generated by a symmetric 32-order Kaiser window function, and a cutoff frequency is set according to an upper limit of a valid signal bandwidth of the gyroscope and the accelerometer.

[0028] Further, the drift compensation method is: A temperature-error model of the inertial measurement unit is established, a chip temperature is collected in real time by a temperature sensor, and temperature drift compensation is performed on the angular velocity and acceleration data based on a pre-calibrated temperature-zero offset lookup table or a polynomial fitting function; zero offset correction is performed on the angular velocity and acceleration data based on a zero offset instability parameter; The data subjected to the temperature drift compensation and the zero offset correction is converted from a sensor coordinate system to a carrier coordinate system through a coordinate system conversion matrix, and the drift compensation is completed.

[0029] Further, the gravity compensation is: A specific force vector after rotation of the accelerometer in a direction cosine matrix is subtracted from a theoretical gravity vector to obtain an acceleration vector caused only by motion; a first integration is performed on the acceleration vector to obtain a velocity increment, and a second integration is performed to obtain a displacement increment.

[0030] Further, the temperature-error model is used to calibrate the inertial measurement unit at multiple constant temperatures in a temperature control environment, and angular velocity and acceleration zero offsets at various temperature points are recorded. A polynomial fitting is performed on a curve of the zero offset changing with temperature to generate a temperature-zero offset mapping function; Coefficients of the mapping function are written into a storage medium, and during real-time operation, a current chip temperature is taken as an input to call the mapping function to obtain a corresponding temperature drift compensation value; The temperature drift compensation value is periodically superimposed on the angular velocity and acceleration data subjected to the zero offset correction.

[0031] Specifically, the six-degree-of-freedom pose information represents an attitude in the form of a quaternion and represents a position in the form of a three-dimensional Cartesian coordinate; the quaternion is output after normalization and is used to drive a skeletal node of a motion sensing game character to rotate; the three-dimensional Cartesian coordinate is mapped into a game world coordinate after scaling and is used to drive the skeletal node to translate; the six-degree-of-freedom pose information and linear acceleration information are encapsulated through a network protocol and are transmitted to a game module through inter-process communication or a local loop network mechanism inside a mobile phone; the network protocol includes a frame sequence number, a check code and a variable compression rate field, so that lossless compression is used when a packet loss rate is lower than a first threshold value, and fixed-point quantization compression is switched to when the packet loss rate is higher than a second threshold value.

[0032] Specifically, the absolute pose information of the spatial positioning system is obtained by ultra-wideband ranging-angle fusion or visual marker-inertial joint solution, and is time-stamped and packet loss detected before each measurement update; if the spatial anchor point signal is lost, the corresponding observation is temporarily shielded in the measurement update stage of the extended Kalman filter.

[0033] In this embodiment, the IMU data acquisition method is that STM32 reads the raw data (angular velocity [ω x ,ω y ,ω z ]) of ICM-42688-P through SPI bus at a frequency of 1 kHz; The UWB tag and anchor point are measured by two-way time of flight ranging, and the positioning base station sends the calculated absolute pose (position [X uwb , Y uwb , Z uwb ]) and attitude quaternion [q0 uwb , q1 uwb , q2 uwb , q3 uwb ] to the game module through USB. All data packets are attached with the system tick timer timestamp of STM32 for subsequent data synchronization.

[0034] A circular buffer with a length of 33 is maintained for each IMU channel on STM32. For new sampling points, 32-order FIR low-pass filtering is performed. Kaiser window (β=5.0) is used, and the cutoff frequency is set to 50Hz (much higher than the human motion frequency, effectively suppressing high-frequency noise and controllable phase delay); the filtered angular velocity ω filtered and acceleration a filtered are output; The IMU chip is calibrated in a temperature control box from -10°C to 60°C in advance, with one point every 5°C, and the gyro and accelerometer zero offsets (b gyro_temp , b acc_temp ) at each temperature point are recorded when stationary; The zero offset-temperature curve is fitted with a cubic polynomial to generate the mapping function bias=f(T); read the current temperature sensor value T current , and obtain the zero offset estimate b gyro_current , b acc_current at the current temperature by table lookup or calculation, and subtract from ω filtered and a filtered .

[0035] In the initial stationary stage of device startup, an initial zero offset b gyro_init is estimated, and b acc_initDuring operation, the estimated bias error δb gyro ,δb acc is corrected online: b gyro_corrected = b gyro_init +δb gyro ; The data is converted from the sensor coordinate system to the body (handle) coordinate system using the pre-calibrated sensor-to-body coordinate system installation transformation matrix C_s: ω b =C s *ω compensated ; a b =C s *a compensated .

[0036] The Runge-Kutta method is used to solve the direction cosine matrix (DCM) differential equation at the time of pose update, updating the body pose. The current time's attitude quaternion q ins is extracted from the updated DCM.

[0037] The acceleration a b of the body coordinate system is converted to the navigation coordinate system using the current DCM matrix D {b} : a n =D {b} *a b -[0,0,g] T ; Integrate a n once (trapezoidal integration method) to get the velocity v ins , and twice to get the position p ins ; The state vector is constructed, and the state vector X is designed to be 21-dimensional: X=[δθ x ,δθ y ,δθ z ,δv x ,δv y ,δv z ,δp x ,δp y ,δp z ,δb gx ,δb gy ,δb gz ,δb ax ,δb ay ,δb az ,δs ax ,δs ay ,δs az ] T ; where δθ x ,δθy , δθ z is the attitude error angle (3D), δv x , δv y , δv z is the velocity error (3D), δp x , δp y , δp z is the position error (3D), δb gx , δb gy , δb gz is the gyroscope bias error, δb ax , δb ay , δb az is the accelerometer bias error (3D), δs ax , δs ay , δs az is the accelerometer scale factor error (3D); Based on EKF when data fusion, according to IMU data ω b , a b and the strapdown inertial navigation error model to construct the state transition matrix F and the process noise matrix Q in the time prediction stage.

[0038] Perform the EKF prediction step: X k - =F*X {k-1} + ; P k - =F*P {k-1} + *F T +Q; Wherein, P is the error covariance matrix, - represents priori, + represents posteriori; Check the received UWB pose data timestamp, align with the current IMU data timestamp. If the UWB data packet is lost, skip this update, only prediction; Construct the observation Z=[p ins -p uwb ,2*(q ins ⊗q uwb {-1} ) {vec} ] T ; That is, the position error and the attitude quaternion error (converted into a rotation vector); Link the observation Z and the state vector X, the position observation in the H matrix corresponds to δp, and the attitude observation corresponds to δθ.

[0039] Calculate the Kalman gain K=P k - *H T *(H*Pk - *H T +R) {-1} (R is the observation noise matrix of the UWB system). State update: X k + =X k - +K*(ZH*X k - Covariance update: P k + =(IK*H)* P k - ; The estimated error X k + Feedback to the inertial navigation system for calculation: Attitude correction: q corrected =q ins ⊗(1+0.5*δθ); Correction speed: v corrected =v ins -δv; Correction position: p corrected =p ins -δp; Update sensor error: b gyro =b gyro +δb g ,b acc =b acc +δb a ; State reset: Set X k + δθ, δv, and δp are set to zero because the error has been compensated by feedback.

[0040] Output the optimal 6DoF pose after EKF fusion correction: pose q corrected (Quaternion), position p corrected (Three-dimensional coordinates); a in the carrier coordinate system b Subtract the estimated zero bias b acc Then through D {b} Rotate to the navigation frame to obtain the linear acceleration 'a' in the world coordinate system. linear ; After the game module receives the data, it will... corrected Directly assign rotation to the virtual hand model (requires conversion to Unity left-handed coordinate system). (P) corrected The position of the virtual hand model is assigned after multiplying by a scaling factor; the q values ​​for the left and right hands. corrected and p corrected Each corresponding skeletal node is driven to achieve real-time mapping between gestures and arm movements; For the case where only the phone serves as the source of data for the motion capture, the system implements full-body motion control through the phone's built-in inertial measurement unit and ultra-wideband spatial positioning system. The technical path combines sensor data fusion with human kinematics models.

[0041] Gait detection and stride estimation: The user's gait pattern is detected by analyzing the phone's accelerometer and gyroscope data. The combined amplitude of acceleration and angular velocity is calculated, and an adaptive threshold algorithm is used to identify the features of the steps. The confidence of each step is evaluated by comparing the acceleration amplitude with a dynamic threshold.

[0042] Stride estimation is based on the principle of double integration of acceleration combined with an empirical kinematics model. By calculating the time interval and acceleration variance of consecutive steps, the stride length is estimated, including a base stride constant and a linear combination coefficient of acceleration variance and step frequency, which can adapt to different users' walking habits.

[0043] The full-body motion mapping calculation method establishes a simplified human skeleton model, including key nodes such as the hip joint, left and right hips, left and right knees, and left and right ankles, and defines standard length parameters for the torso, thigh, and shank.

[0044] Inverse kinematics is used to solve the joint positions. For example, based on the positions of the hip joint and ankle joint, combined with the known lengths of the thigh and shank, the cosine theorem is applied to calculate the knee joint angle, thereby determining the spatial position of the knee joint. All calculations include angle constraints to ensure that the results conform to human physiological structures.

[0045] The game module system defines various motion states (such as standing, walking, running, jumping, and squatting) by calculating the motion intensity and body posture angle, and comparing them with preset thresholds to achieve automatic classification of states. For example, when the motion intensity is below the walking threshold and the posture angle is below the squatting threshold, it is determined to be in a standing state; when the motion intensity exceeds the running threshold, it is determined to be in a running state; when a specific acceleration pattern is detected, it is recognized as a jumping state.

[0046] Mapping the estimated full-body posture to the game character's skeleton nodes: Root node (hip) control: using the estimated hip position and rotation, after coordinate transformation and scaling, driving the character's root node; Lower limb control: converting the estimated hip, knee, and ankle positions to the game character's leg skeleton chain through inverse kinematics, ensuring that the feet naturally contact the ground; Upper limb control: inferring the arm posture based on the phone's position. If the phone is in the left hand, directly drive the left arm, and the right arm is generated by mirror symmetry; if the phone is in the right hand, the opposite is true; if the phone is not in the hand, generate natural arm swing according to the lower limb motion state; Use a linear to calculate the force of sword swinging, throwing and other actions. For example, a linear The velocity change Δv is integrated in a certain time window to calculate the initial speed of the thrown object. The somatosensory device packs data such as q corrected ,p corrected ,a linear When the Wi-Fi signal is good, use differential compression (only send the change from the previous frame), when the Wi-Fi signal is poor, switch to fixed point quantization (such as converting float32 to int16, losing some precision but greatly reducing data volume); In the EKF measurement update stage, check the timestamp. If the UWB data is not received within a certain time, set UWB Valid = false. EKF only performs prediction in this state, and no longer updates. The system is purely inertial navigation in the short term, and the accuracy slowly decreases. If the data is lost for a long time, the user is prompted.

[0047] Preliminary judgment is made by checking the data range (such as whether the angular velocity is out of range) and the rate of change (such as whether the acceleration has outliers), and the data is rejected or smoothed.

[0048] The above is only the preferred embodiment of the present application, and is not intended to limit the present application in any form. Although the present application has been disclosed as above with the preferred embodiment, it is not intended to limit the present application. Any person skilled in the art can make some changes or modifications to the above disclosed technical content without departing from the scope of the present application, and any equivalent embodiments with equivalent changes are also within the scope of the present application. Any modification, equivalent change and modification of the above embodiments, which does not depart from the technical solution of the present application, is still within the scope of the present application.

Claims

1. A method for fusing spatial anchors' motion drift-free processing of a motion game linear acceleration, characterized in that, The method comprises the following steps: S1: obtaining original data of an inertial measurement unit of a body sensing device, and obtaining absolute pose information of a spatial anchor point provided by a spatial positioning system; S2: preprocessing the original data, using angular velocity output by a gyroscope to solve an attitude matrix in real time through a differential equation of a direction cosine matrix to obtain preliminary attitude, velocity and displacement information of a carrier, and constructing a state vector for data fusion; S3: fusing the absolute pose information captured by the spatial positioning system as an observation with a stage state estimation value of the state vector; in a filter update stage, calculating and correcting an optimal estimation of the state vector through a difference between the observation and the state vector, and simultaneously obtaining sensor error of the inertial measurement unit; S4: outputting six-degree-of-freedom pose information and linear acceleration information after fusion and correction, performing role control and object interaction in a body sensing game according to the six-degree-of-freedom pose information and the linear acceleration information, and feeding back the state vector after correction to the filter as prior information for prediction at the next moment.

2. The method of claim 1, wherein, The spatial anchor point is a virtual coordinate reference point arranged in a game space, which is stored in a storage medium of the spatial positioning system in a fixed and known global three-dimensional coordinate and attitude data, and is mapped to a local coordinate system of the body sensing device in real time by the spatial positioning system.

3. The method of claim 1, wherein, The preprocessing method is to perform time series filtering on original angular velocity and acceleration data output by the inertial measurement unit to suppress high-frequency noise, to perform drift compensation on the filtered data, and to convert the compensated data from a sensor coordinate system to a carrier coordinate system.

4. The method of claim 1, wherein, The real-time solving method is: Based on angular velocity data output by the gyroscope, a direction cosine matrix of a carrier coordinate system to a navigation coordinate system is constructed; the direction cosine matrix is updated in real time by solving a differential equation of the direction cosine matrix, and an attitude angle of the carrier is extracted according to the updated direction cosine matrix; After the accelerometer data is rotated to the navigation coordinate system through the direction cosine matrix, gravity compensation is performed, and velocity and displacement information are integrated and solved.

5. The method of claim 1, wherein, The stage state estimation value of the state vector is based on a posteriori estimation value of the state vector at the last moment, and is obtained by one-step prediction through a state transition equation of the filter using current data of the inertial measurement unit; The state transition equation is established based on the principle of strapdown inertial navigation, and the input is angular velocity and acceleration data after preprocessing and error compensation.

6. The method of claim 1, wherein, The fusion method is: The fusion method is based on an extended Kalman filter algorithm, and time update and measurement update are performed; in the time update stage, the stage estimation value of the state vector at the current moment and its error covariance are predicted according to the state transition equation; In the measurement update stage, the absolute pose information provided by the spatial positioning system is used as an observation to calculate a Kalman gain, and the state vector estimation value and the error covariance are updated according to a residual error between the observation and a predicted observation to obtain an optimal estimation of the state vector.

7. The method of claim 3, wherein, The timing filter performs a sliding window interception on the original angular velocity and acceleration data at the original sampling rate of the inertial measurement unit, to obtain a discrete sequence of fixed length; a finite impulse response low-pass filter operation is performed on the discrete sequence, the coefficient of the filter operation is generated by a symmetric 32-order Kaiser window function, and the cutoff frequency is set according to the upper limit of the effective signal bandwidth of the gyroscope and the accelerometer.

8. The method of claim 3, wherein, The method for drift compensation is: A temperature-error model of the inertial measurement unit is established, the chip temperature is collected in real time by a temperature sensor, and the temperature drift compensation is performed on the angular velocity and acceleration data based on a pre-calibrated temperature-zero offset lookup table or a polynomial fitting function; the zero offset correction is performed on the angular velocity and acceleration data based on the zero offset instability parameter; The data after temperature drift compensation and zero offset correction is converted from the sensor coordinate system to the carrier coordinate system through a coordinate system transformation matrix, to complete the drift compensation.

9. The method of claim 4, wherein, The gravity compensation is: The specific force vector after the accelerometer is rotated by a direction cosine matrix is subtracted from the theoretical gravity vector, to obtain an acceleration vector caused only by motion; the acceleration vector is integrated once to obtain a velocity increment, and is integrated twice to obtain a displacement increment.

10. The method of claim 8, wherein, The temperature-error model is used to calibrate the inertial measurement unit at multiple constant temperatures in a temperature control environment, and the angular velocity and acceleration zero offsets at each temperature point are recorded; The zero offset curve with temperature is fitted by a polynomial, to generate a temperature-zero offset mapping function; The coefficients of the mapping function are written into a storage medium, and during real-time operation, the current chip temperature is used as input to call the mapping function to obtain the corresponding temperature drift compensation value; The temperature drift compensation value is periodically superimposed on the angular velocity and acceleration data after zero offset correction.

11. The method of claim 1, wherein, The six-degree-of-freedom pose information represents the attitude in the form of a quaternion and represents the position in the form of a three-dimensional Cartesian coordinate; the quaternion is output after normalization and is used to drive the rotation of the skeleton node of a motion sensing game character; the three-dimensional Cartesian coordinate is mapped to a game world coordinate after scaling and is used to drive the translation of the skeleton node; the six-degree-of-freedom pose information and linear acceleration information are encapsulated by a network protocol and transmitted to a game module through inter-process communication or a local loop network mechanism inside a mobile phone; the network protocol includes a frame sequence number, a check code and a variable compression rate field, so that lossless compression is used when the packet loss rate is below a first threshold value, and fixed-point quantization compression is switched to when the packet loss rate is higher than a second threshold value.

12. The method of claim 1, wherein, The absolute pose information of the spatial positioning system is obtained by ultra-wideband ranging-angle fusion or visual marker-inertial joint solution, and is time-stamped and aligned and packet loss is detected before each measurement update; if the spatial anchor point signal is lost, the corresponding observation is temporarily shielded in the measurement update stage of the extended Kalman filter.

Citation Information

Cited By

  • Mobile phone motion sensing game visual angle control method based on gyroscope direct mapping

    CN121891769A