Fig 1.
The subject wears a VR headset and moves a linear stage along the X and Y axes. The VR controller, IMU, and forceps are attached to a linear stage. Acceleration data is processed via the Arduino integrated development environment (IDE) software and then sent to Unity software. The VR controller data is acquired by Unity software as well.
Fig 2.
The hardware is composed of a HMD, an IMU sensor, a VR controller, forceps, and an XY linear stage.
Fig 3.
Arduino IDE, Oculus SDK, and Unity were the software used in this study. Arduino processes all the electronic signals provided by the IMU. Oculus gathers the VR signals. Unity merges the data from the IMU and VR controller in a sensor fusion algorithm. The VR graphics are processed in Unity as well.
Fig 4.
The presented system merges position and acceleration data into a KF loop. The KF algorithm uses recursive methods for accurate estimations. The prediction and correction processes store and update the KF variables in the cycle.
Fig 5.
(A) Point to point movement, where the distance between each target was 1 mm; (B) motorized trace, where the XY stage simulated a 12 mm trace along its axis of motion; and (C) 2-D trace, where the subjects traced a 10 mm diameter circle for the human experiments.
Fig 6.
(A) Printed circle (B) VR circle 2-D trace. (A) shows a printed trace on a sheet and (B) represents a VR capture of a 2-D trace.
Fig 7.
Subject performing the 2-D printed circle experiment.
The figure shows one subject conducting the experiment with manual movement of the linear stage. A 10 mm circle is printed on a sheet of paper. The subject traced the circle by using the linear stage manually.
Fig 8.
Experimental results of point to point movement.
One subject attempted to place the forceps in three different reference points (black). In each trial, the subject stayed still for 11 seconds under the KF deactivated (blue) and activated (red). (A) Target 1 location (mm): X = 0 Y = 0, (B) Target 2 location (mm): X = 0 Y = 1, and (C) Target 3 location (mm): X = 0 Y = 2.
Table 1.
The RMSE of point to point movement results.
Fig 9.
Covariance, Kalman gain, and position over time for the X-axis (A) and Y-axis (B) are shown. The covariance indicates the accuracy of the state calculation along the X-axis (A) and Y-axis (B) motion. The predicted position (red) is compared under two conditions: when the KF is deactivated (blue) and the reference (black). In the KF algorithm, the Kalman gain is updated. Hence, the Kalman gain adapts to the motion along the X-axis (A) and Y-axis (B).
Fig 10.
One subject 2-D axis trace (printed circle) result.
The subject without the HMD performed the circle trace. The KF activated (red) shows a tendency to be more accurate than the KF deactivated (blue) along the reference (black).
Table 2.
T-test results of printed circle experiment.
Fig 11.
One subject 2-D axis trace (VR circle) result.
The subject with the HMD showed more tendency to follow the reference (black) with KF activated (red) than under KF deactivated (blue).
Table 3.
T-test results of VR circle experiment.