Skip to main content
Log in

Accurate and stable alignment of virtual and real spaces using consumer-grade trackers

  • Original Article
  • Published:
Virtual Reality Aims and scope Submit manuscript

Abstract

The world space defined by a traditional virtual reality application is generally regarded as separate from the real-world space in which users actually exist. In this paper, we present a method that enables such detached spaces to connect in an integrated space. In particular, we show that by using a specially manufactured calibration board and three consumer-grade position tracking devices, a reference coordinate system can easily be set up in the physical space, whose geometric relationship with the virtual reality space is estimated with high numerical accuracy and stability. Then, we demonstrate that, combined with traditional computer vision techniques for marker tracking, the presented technique allows colocated users from virtual, augmented, and mixed realities to cooperate with each other while making effective use of technologies from other realities.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13

Similar content being viewed by others

Explore related subjects

Discover the latest articles, news and stories from top researchers in related subjects.

References

  • Azimi E, Qian L, Navab N, Kazanzides P (2018) Alignment of the virtual scene to the tracking space of a mixed reality head-mounted display. arXiv:1703.05834

  • Bai H, Gao L, Billinghurst M (2017) Demo: 6DoF input for Hololens using Vive controller. In: Proceedings of the SIGGRAPH Asia 2017 mobile graphics & interactive applications, p 4:1

  • Chun W, Choi G, An J, Seo W, Park S, Ihm I (2019) On sharing physical geometric space between augmented and virtual reality environments. In: Proceedings of the 2019 IEEE conference on virtual reality and 3D user interfaces, pp 884–885

  • Claraco J (2018) A tutorial on SE(3) transformation parameterizations and on-manifold optimization. Tech. Rep. #012010, Universidad de Malága

  • Gottlieb D (2018) Mixing reality with virtual reality. http://drewgottlieb.net/2017/01/31/mixing-reality-with-vr.htm

  • Grandi JG, Debarba HG, Maciel A (2019) Characterizing asymmetric collaborative interactions in virtual and augmented realities. In: Proceedings of the 2019 IEEE conference on virtual reality and 3D user interfaces, pp 127–135

  • Gugenheimer J, Stemasov E, Frommel J, Rukzio E (2017) ShareVR: enabling co-located experiences for virtual reality between HMD and non-HMD users. In: Proceedings of the 2017 CHI conference on human factors in computing systems, pp 4021–4033

  • Luckett E, Key T, Newsome N, Jones JA (2019) Metrics for the evaluation of tracking systems for virtual environments. In: Proceedings of the 2019 IEEE conference on virtual reality and 3D user interfaces, pp 1711–1716

  • Niehorster DC, Li L, Lappe M (2017) The accuracy and precision of position and orientation tracking in the HTC Vive virtual reality system for scientific research. i-Perception 8(3)

  • Peer A, Ullich P, Ponto K (2018) Vive tracking alignment and correction made easy. In: Proceedings of the 2018 IEEE conference on virtual reality and 3D user interfaces, pp 653–654

  • Piumsomboon T, Day A, Ens B, Lee Y, Lee G, Billinghurst M (2017) Exploring enhancements for remote mixed reality collaboration. In: Proceedings of the SIGGRAPH Asia 2017 mobile graphics & interactive applications, pp 16:1–16:5

  • PTC (2020) Getting started with Vuforia engine in unity. https://library.vuforia.com/content/vuforia-library/en/articles/Training/getting-started-with-vuforia-in-unity.html

  • Roo JS, Hachet M (2017) One reality: augmenting how the physical world is experienced by combining multiple mixed reality modalities. In: Proceedings of the 30th annual ACM symposium on user interface software and technology, pp 787–795

  • Solomon J (2015) Numerical algorithms: methods for computer vision, machine learning, and graphics. CRC Press, Boca Raton

    Book  Google Scholar 

  • Todd MJ, Yıldırım EA (2007) On Khachiyan’s algorithm for the computation of minimum-volume enclosing ellipsoids. Discrete Appl Math 155(13):1731–1744

    Article  MathSciNet  Google Scholar 

  • Weissker T, Tornow P, Froehlich B (2020) Tracking multiple collocated HTC Vive setups in a common coordinate system. In: Proceedings of the 2020 IEEE conference on virtual reality and 3D user interfaces

Download references

Funding

This work was supported by the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIT) (No. NRF-2020R1A2C2011709).

Author information

Authors and Affiliations

Authors

Contributions

JA, WC, SP, II helped in conceptualization; JA, GC, WC, SP, II formally analyzed and investigated; JA, GC, WC, YJ involved in implementation; II helped in writing and funding acquisition.

Corresponding author

Correspondence to Insung Ihm.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Supplementary Information

Below is the link to the electronic supplementary material.

Supplementary material 1 (mp4 6154 KB)

Supplementary material 2 (mp4 24893 KB)

Supplementary material 3 (mp4 12235 KB)

Supplementary material 4 (mp4 16096 KB)

Appendices

Appendix 1: The numerical method to solve the nonlinear least-squares problem in Sect. 3.2.2

Consider a triangle (not necessarily equilateral) on the plane formed by three 2D points \(\tilde{\mathbf{p}}_i = ({\tilde{x}}_i, {\tilde{y}}_i)^{\top } (i = 0, 1, 2)\), whose center of mass is assumed to exist, without loss of generality, at the origin of the 2D coordinate system (see Fig. 4 again). Now, the problem is to find an equilateral triangle of side \(s = 200\sqrt{3}\) mm that fits best, in the least-squares sense, the given triangle. This can be done by computing a rigid body transformation that transforms the triangle, defined by three vertices \(\mathbf{q}_i = (x_i, y_i)^{\top }\) with \(\mathbf{q}_0 = (\frac{1}{2}s, -\frac{\sqrt{3}}{6}s)^{\top }\), \(\mathbf{q}_1 = (0, \frac{\sqrt{3}}{3}s)^{\top }\), and \(\mathbf{q}_2 = (-\frac{1}{2}s, -\frac{\sqrt{3}}{6}s)^{\top }\), so that the sum of squared distances between the corresponding points is minimized.

Let \(M(\alpha , \beta ;\theta ) = T(\alpha , \beta )\cdot R(\theta )\) be a 2D rigid body transformation represented by a rotation followed by a translation. Then, for the transformed positions \(\bar{\mathbf{q}}_{i}\) of \(\mathbf{q}_{i}\) with \(\bar{\mathbf{q}}_{i} = (x_{i} \cos \theta - y_{i} \sin \theta + \alpha , \, x_{i} \sin \theta + y_{i} \cos \theta + \beta )^{\top }\), the squared sum of the distances between \(\bar{\mathbf{q}}_{i}\) and \(\bar{\mathbf{p}}\) is expressed as

$$\begin{aligned} F(\alpha , \beta ;\theta )& {}= \sum _{i=0}^{2} \big \{ ( x_{i} \cos \theta - y_{i} \sin \theta + \alpha - {\tilde{x}}_{i})^{2} \nonumber \\&\quad + (x_{i} \sin \theta + y_{i} \cos \theta + \beta - {\tilde{y}}_{i})^{2} \, \big \}. \end{aligned}$$

Then, by noting that \(\sum _0^2 x_i = \sum _0^2 y_i = 0\), we are led to

$$\begin{aligned} \frac{\partial F}{\partial \alpha } = \sum _{i=0}^{2} {2 (x_{i} \cos \theta - y_{i} \sin \theta + \alpha - {\tilde{x}}_{i}) } = 2\left (3\alpha - \sum _{i=0}^{2} {\tilde{x}}_{i}\right). \end{aligned}$$

From \(\nabla F(\alpha , \beta ;\theta ) = 0\) and the similarity between the two variables \(\alpha \) and \(\beta \), we find the summed error is minimized at \(({\alpha }^*, {\beta }^*)\) where \({\alpha }^* = \sum _{i=0}^{2} {\tilde{x}}_{i}/{3}\) and \({\beta }^* = \sum _{i=0}^{2} {\tilde{y}}_{i}/{3}\). For the other variable \(\theta \),

$$\begin{aligned} \frac{\partial F}{\partial \theta } = 2 \left \{ \,\sin \theta \sum _{i=0}^{2} ({\tilde{x}}_{i}x_i + {\tilde{y}}_{i}y_{i}) + \cos \theta \sum _{i=0}^{2} ({\tilde{x}}_{i}y_i - {\tilde{y}}_{i}x_{i}) \,\right \}. \end{aligned}$$

To obtain \({\theta }^*\) such that \(\frac{\partial F}{\partial \theta } = 0\), the Newton–Raphson method (Solomon 2015) is applied to the nonlinear function \(f(\theta ) = S\cdot \sin \theta + C\cdot \cos \theta \) with \(S = \sum _{i=0}^{2} ({\tilde{x}}_{i}x_i + {\tilde{y}}_{i}y_{i})\) and \(C = \sum _{i=0}^{2} ({\tilde{x}}_{i}y_i - {\tilde{y}}_{i}x_{i})\). Note that, since the rotational displacement is usually very small, the Newton–Raphson iteration converges quickly to the solution \({\theta }^*\) for initial value \(\theta _0 = 0\):

$$\begin{aligned} \theta _{k+1} = \theta _{k}-\frac{f(\theta _{k})}{f'(\theta _{k})} = \theta _{k}-\frac{S \sin \theta _{k} + C \cos \theta _{k}}{S \cos \theta _{k} - C \sin \theta _{k}}. \end{aligned}$$

Appendix 2: The Gauss–Newton method to solve the nonlinear least-squares problem in Sect. 3.2.3

Consider an enumeration of the entire position samples \(\mathbf{p}_{ij}\) (\(i = 0, 1, 2\) and \(j = 0, 1, \ldots , n_{{\rm total}}-1\)), for which i(k) and j(k) denote the tracker number i and the tracker’s sample number j of the kth sample, respectively. If we define \(\mathbf{f}({\varvec{\xi }})\) to be a function from \({\mathbb {R}}^6\) to \({\mathbb {R}}^{9\cdot n_{{\rm total}}}\) whose value is a vector constructed by stacking the vectors \(\tau (\mathbf{q}_{ i(k)},T({{\varvec{\xi }}})) - \mathbf{p}_{i(k),j(k)} \in {\mathbb {R}}^3\) in the enumeration order, the nonlinear minimization problem can be restated as

$$\begin{aligned} {{\varvec{\xi }}}_{{\rm opt}} = \arg \min _{{\varvec{\xi }}}\, \mathbf{f}({\varvec{\xi }})^{\top }\mathbf{f}({\varvec{\xi }}). \end{aligned}$$

Then, given an initial value \({\varvec{\xi }}^{(0)}\), the current estimate for the transformation parameter is improved iteratively until convergence as \({\varvec{\xi }}^{(k+1)} = {\varvec{\xi }}^{(k)} + \Delta \,{\varvec{\xi }}\) by solving the \(6\times 6\) linear system for \(\Delta {\varvec{\xi }}\)

$$\begin{aligned} \mathbf{J}_\mathbf{f}({\varvec{\xi }}^{(k)})^{\top }{} \mathbf{J}_\mathbf{f}({\varvec{\xi }}^{(k)})\Delta \,{\varvec{\xi }}= -\mathbf{J}_\mathbf{f}({\varvec{\xi }}^{(k)})^{\top }{} \mathbf{f}({\varvec{\xi }}^{(k)}), \end{aligned}$$

where \(\mathbf{J}_\mathbf{f}({\varvec{\xi }}^{(k)}) \in {\mathbb {R}}^{9\cdot n_{{\rm total}}\times 6}\) is the Jacobian matrix of \(\mathbf{f}\) at \({\varvec{\xi }}^{(k)}\), which can be constructed by stacking the following \(3\times 6\) matrix for the kth position sample (Claraco 2018):

$$\begin{aligned} \left[ \begin{array}{c|c} I_{3\times 3}&-[\tau (\mathbf{p}_{i(k),j(k)},T({\varvec{\xi }}^{(k)}) )]_{\times } \end{array} \right] . \end{aligned}$$

(Here, \(I_{3\times 3}\) and \([\cdot ]_{\times }\) represent the \(3\times 3\) identity matrix and the skew-symmetric matrix operator, respectively.) Note that when the parameter \({\varvec{\xi }}\) is updated in each iteration, the rigid body transformation is also updated correspondingly as \(T({\varvec{\xi }}^{(k+1)}) = T(\Delta {\varvec{\xi }})T({\varvec{\xi }}^{(k)})\).

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

An, J., Choi, G., Chun, W. et al. Accurate and stable alignment of virtual and real spaces using consumer-grade trackers. Virtual Reality 26, 125–141 (2022). https://doi.org/10.1007/s10055-021-00542-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10055-021-00542-1

Keywords