A method for a 3DOF handle to simulate the spatial movement of a 6DOF handle

By calculating the positional data difference and rotation quaternion of the 3DOF controller, the spatial movement of the 6DOF controller is simulated, solving the problem that the 3DOF controller cannot move in space and improving the user experience.

CN115390681BActive Publication Date: 2025-08-01SHENZHEN RENDERBUS TECH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211027955.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-08-25
Publication Date
2025-08-01
Estimated Expiration
2042-08-25

AI Technical Summary

Technical Problem

Existing 3DOF controllers cannot move in space in VR applications or VR games, limiting interactive functions and reducing the user experience.

Method used

By calculating the difference between the current controller orientation data and the previously acquired controller orientation data, vectors and rotation quaternions are calculated to simulate the spatial movement of the 6DOF controller. This includes calculating vector vTD, rotation quaternions qGR, qLerpRotation, and qERotation to generate controller orientation and position information between adjacent frames.

Benefits of technology

It enables the movement and interaction of the 3DOF controller in space, improving the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115390681B_ABST
    Figure CN115390681B_ABST
Patent Text Reader

Abstract

The present invention discloses a method for a 3DOF handle to simulate the spatial movement of a 6DOF handle, including the following steps: calculating the difference q between the orientation data orientation of the current handle and the orientation data orientation of the handle obtained last time; calculating the vector vTD by using spherical linear interpolation, and calculating the rotation quaternion qGR between the vector vTD and the vector (0, 0, 1), and calculating the linear difference qLerpRotation between the rotation quaternion b and the unit quaternion; combining and rotating the rotation quaternion qGR, qLerpRotation ‑1 , and the orientation data orientation of the current handle to obtain qERotation; calculating the handle orientation data qNewOrientation between two frames; calculating the position information vNewPosition of the handle between two frames. The present invention can ensure that the 3DOF handle has both the orientation data qNewOrientation and the position information vNewPosition. Therefore, a fixed motion trajectory can be simulated, the movement and interactive operation of the 3DOF handle in space can be realized, and the user experience can be effectively improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of VR handles, and particularly to a method for simulating the spatial movement of a 6DOF handle with a 3DOF handle. Background Art

[0002] VR handles can be classified into 3DOF handles and 6DOF handles according to the degree of freedom, where DOF refers to the degree of freedom. The pose information of the VR handle includes orientation and position information, and the 3DOF handle can only obtain the orientation data and cannot obtain the position data. Therefore, the 3DOF handle can only rotate along the x, y, and z axes, while the 6DOF handle can not only rotate but also move in space. Therefore, when using a 3DOF handle for VR applications or VR games, the handle can only rotate at a point in the picture and cannot move in space, which limits the interaction function of the 3DOF handle and reduces the user experience.

[0003] Therefore, the prior art has deficiencies and needs to be improved. Summary of the Invention

[0004] The object of the present invention is to overcome the deficiencies of the prior art and provide a method for simulating the spatial movement of a 6DOF handle with a 3DOF handle, so as to solve the problem that when using a 3DOF handle for VR applications or VR games in the prior art, the 3DOF handle cannot move in space, which limits the interaction function of the 3DOF handle and reduces the user experience.

[0005] The technical solution of the present invention is as follows: A method for simulating the spatial movement of a 6DOF handle with a 3DOF handle, comprising the following steps:

[0006] S1: Calculate the difference q between the orientation data orientation of the current handle and the orientation data orientation of the handle obtained last time;

[0007] The orientation data orientation of the current handle, the orientation data orientation of the handle obtained last time, and q are all quaternions.

[0008] S2: Combine the quaternion components X q , Y q , Z q in q to form a vector V, calculate the rotation angle O of q, and calculate the angular velocity a through the rotation angle O; According to the angular velocity a, the zero vector, and the unit vector of the current orientation of the VR headset, calculate the vector vTD by spherical linear interpolation.

[0009] The rotation angle O = 2 * tan2(|v|, w q ); where w q is the quaternion component w in q q .

[0010] The angular velocity a = rotation radian / frame interval time value; the frame interval time value is the time difference between the data frame corresponding to the orientation of the current handle and the data frame corresponding to the orientation of the handle obtained last time.

[0011] S3: Calculate the rotation quaternion qGR between the vector vTD and the vector (0, 0, 1). Calculate the rotation quaternion b through the Z-axis of the current handle and the Z-axis of the world coordinate, and calculate the linear interpolation qLerpRotation between the rotation quaternion b and the unit quaternion.

[0012] S4: Combine and rotate the rotation quaternions qGR, qLerpRotation -1 , and the orientation data of the current handle to obtain qERotation.

[0013] The qERotation = rotation quaternion qGR * (-qLerpRotation) * orientation data of the current handle.

[0014] S5: Calculate the orientation data of the handle between two frames and denote it as qNewOrientation.

[0015] The qNewOrientation = rotation quaternion qGR * (-rotation quaternion qGR) * orientation data of the current handle.

[0016] S6: Calculate the position information position of the handle between two frames and denote it as vNewPosition.

[0017] The vNewPosition = qERotation * (0, 0, 1).

[0018] Further, after the step S6, it further includes:

[0019] S7: Send qNewOrientation and vNewPosition to the VR headset. The VR headset sends them to the rendering device for rendering, and sends the rendered data to the VR headset.

[0020] Further, the handle orientation data orientation between two frames in step S5 is the handle orientation data orientation between the data frame corresponding to the current handle orientation data orientation and the data frame of the handle orientation data orientation obtained last time.

[0021] Further, the unit quaternion is (0, 0, 0, 1).

[0022] Adopting the above solution, the present invention provides a method for a 3dof handle to simulate the spatial movement of a 6dof handle, with the following specific beneficial effects: By calculating the difference q between the orientation data orientation of the current handle and the orientation data orientation of the handle obtained last time, and successively calculating the values of vectors vTD, rotation quaternions qGR, qLerpRotation, qERotation, etc., and calculating the handle orientation data qNewOrientation and position information vNewPosition between adjacent two frames through these values, so that the 3dof handle has both the orientation data qNewOrientation and the position information vNewPosition data. Therefore, a fixed motion trajectory can be simulated, realizing the movement and interactive operation of the 3dof handle in space, and effectively improving the user experience. BRIEF DESCRIPTION OF THE DRAWINGS

[0023] Figure 1 It is a flowchart of the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0024] The present invention will be described in detail below in conjunction with the accompanying drawings and specific embodiments.

[0025] Please refer to Figure 1 , the present invention provides a method for a 3dof handle to simulate the spatial movement of a 6dof handle, including the following steps:

[0026] S1: Calculate the difference q between the orientation data orientation of the current handle and the orientation data orientation of the handle obtained last time; it should be noted that if the orientation data orientation of the current handle is the initial handle orientation data orientation, then the orientation data orientation of the handle obtained last time is (0, 0, 0, 1);

[0027] Specifically, the orientation data orientation of the current handle, the orientation data orientation of the handle obtained last time, and q are all quaternions.

[0028] S2: The quaternion component X in qq , Y q , Z q form a vector V, calculate the rotation angle O of q, and calculate the angular velocity a based on the rotation angle O; calculate the vector vTD using spherical linear interpolation based on the angular velocity a, the zero vector, and the unit vector of the current orientation of the VR headset. Specifically, the calculation process of the vector vTD can be referred to the following link:

[0029] https: / / blog.csdn.net / u012947821 / article / details / 17136443 ; where the angular velocity a, the zero vector, and the unit vector of the current orientation of the VR headset correspond to P0, P1, and t in the formula of the above link respectively.

[0030] The rotation angle O = 2 * tan2(|v|, w q ); where w q is the quaternion component w in q q .

[0031] Specifically, in this embodiment, the angular velocity a = rotation radian / frame interval time value; the frame interval time value is the time difference between the data frame corresponding to the orientation of the current handle and the data frame corresponding to the orientation of the handle obtained last time; it should be noted that the rotation radian is obtained through the transformation of the rotation angle O, and specifically, it is implemented with reference to the transformation process between the rotation radian and the rotation angle in the prior art.

[0032] S3: Calculate the rotation quaternion qGR between the vector vTD and the vector (0, 0, 1), calculate the rotation quaternion b through the Z - axis of the current handle and the Z - axis of the world coordinate, and calculate the linear interpolation qLerpRotation between the rotation quaternion b and the unit quaternion. Specifically, the unit quaternion is (0, 0, 0, 1). The calculation methods of the rotation quaternion qGR and the rotation quaternion b can be implemented with reference to the calculation methods of rotation quaternions in the prior art.

[0033] S4: Combine and rotate the rotation quaternion qGR, qLerpRotation -1 , and the orientation data orientation of the current handle to obtain qERotation.

[0034] The qERotation = rotation quaternion qGR * (-qLerpRotation) * orientation data orientation of the current handle.

[0035] S5: Calculate the orientation data orientation between two frames of the handle and denote it as qNewOrientation.

[0036] The qNewOrientation = the rotation quaternion qGR * (- the rotation quaternion qGR) * the orientation data orientation of the current handle. Specifically, the handle orientation data orientation between two frames in step S5 is the handle orientation data orientation between the data frame corresponding to the orientation data orientation of the current handle and the data frame of the orientation data orientation of the handle obtained last time. Therefore, after the calculation in step S5, the handle orientation data orientation between two adjacent frames can be obtained.

[0037] S6: Calculate the position information position of the handle between two frames, denoted as vNewPosition.

[0038] The vNewPosition = qERotation * (0, 0, 1). Through the above calculation, the position information position of the handle between two frames can be obtained, rather than only being able to obtain the handle orientation data orientation.

[0039] The present invention provides a method for a 3dof handle to simulate the spatial movement of a 6dof handle. By calculating the difference q between the orientation data orientation of the current handle and the orientation data orientation of the handle obtained last time, that is, the difference in the orientation data orientation between two adjacent frames, and successively calculating the values of the vector vTD, the rotation quaternions qGR, qLerpRotation, and qERotation, and calculating the handle orientation data qNewOrientation and the position information vNewPosition between two adjacent frames through these values, the 3dof handle also has the position information vNewPosition. Under the condition that the 3dof handle has both the orientation data qNewOrientation and the position information vNewPosition, the 3dof handle can be moved in space, realizing the simulation of the 3dof handle moving in space like a 6dof handle, effectively improving the user experience.

[0040] Specifically, in this embodiment, after step S6, it further includes:

[0041] S7: Send qNewOrientation and vNewPosition to the SDK plugin of the VR headset, and send them to the rendering device through the VR headset, perform rendering through the rendering device, and send the data after rendering to the VR headset. After receiving the data after rendering, the 3dof handle can be moved in space; specifically, the rendering device is a rendering node machine, etc., mainly used for rendering frame data.

[0042] In summary, the present invention provides a method for a 3 - dof handle to simulate the spatial movement of a 6 - dof handle, with the following specific beneficial effects: By calculating the difference q between the orientation data orientation of the current handle and the orientation data orientation of the handle obtained last time, and successively calculating the values of vectors vTD, rotation quaternions qGR, qLerpRotation, qERotation, etc., and calculating the handle orientation data qNewOrientation and position information vNewPosition between adjacent two frames through these values, so that the 3 - dof handle has both the orientation data qNewOrientation and the position information vNewPosition. Therefore, a fixed motion trajectory can be simulated to achieve the movement and interactive operation of the 3 - dof handle in space, effectively improving the user experience.

[0043] The above are only the preferred embodiments of the present invention and are not used to limit the present invention. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principle of the present invention shall be included within the protection scope of the present invention.

Claims

1. A method for a 3 - dof handle to simulate the spatial movement of a 6 - dof handle, characterized in that, Including the following steps: S1: Calculate the difference q between the orientation data orientation of the current handle and the orientation data orientation of the handle obtained last time; The orientation data orientation of the current handle, the orientation data orientation of the handle obtained last time, and q are all quaternions; S2: Take the quaternion components X q , Y q , Z q within q to form a vector V, calculate the rotation angle O of q, and calculate the angular velocity a by rotating the rotation angle O; According to the angular velocity a, the zero vector, and the unit vector of the current orientation of the VR headset, use spherical linear interpolation to calculate the vector vTD; The rotation angle θ = 2 * tan2(|v|, w q ); where w q is the quaternion component w in q q ; The angular velocity a = rotation radian / frame interval time value; the frame interval time value is the time difference between the data frame corresponding to the orientation data orientation of the current handle and the data frame corresponding to the orientation data orientation of the handle obtained last time; S3: Calculate the rotation quaternion qGR between the vector vTD and the vector (0, 0, 1), calculate the rotation quaternion b through the Z-axis of the current handle and the Z-axis of the world coordinate, and calculate the linear difference qLerpRotation between the rotation quaternion b and the unit quaternion; S4: Combine and rotate the rotation quaternion qGR, qLerpRotation -1 , and the orientation data orientation of the current handle to obtain qERotation; The qERotation = rotation quaternion qGR * (-qLerpRotation) * the orientation data orientation of the current handle; S5: Calculate the handle orientation data orientation between two frames and denote it as qNewOrientation; The qNewOrientation = rotation quaternion qGR * (-rotation quaternion qGR) * the orientation data orientation of the current handle; S6: Calculate the position information position of the handle between two frames and denote it as vNewPosition; The vNewPosition = qERotation * (0, 0, 1).

2. A method for a 3DOF handle to simulate the spatial movement of a 6DOF handle according to claim 1, wherein After the step S6, it further includes: S7: Send qNewOrientation and vNewPosition to the VR headset, send them to the rendering device through the VR headset, perform rendering through the rendering device, and send the data after rendering to the VR headset.

3. A method for simulating the spatial movement of a 6DOF handle with a 3DOF handle according to claim 1, wherein The handle orientation data orientation between two frames in the step S5 is the handle orientation data orientation between the data frame corresponding to the orientation data orientation of the current handle and the data frame of the orientation data orientation of the handle obtained last time.

4. A method for simulating the spatial movement of a 6DOF handle with a 3DOF handle according to claim 1, wherein The unit quaternion is (0, 0, 0, 1).

Citation Information

Patent Citations

  • Remote extension rendering system applied to mobile terminal virtual / augmented reality

    CN110751711A

  • Magnetic gyroscope, and three dimensional azimuth meter

    JP2015148497A