Etes-vous plutôt Rift ou Vive ? Personnellement, j’ai une préférence pour le Rift, simplement parce que je le trouve plus confortable. Mais je vous l’accorde, c’est assez subjectif. Et assez souvent, il peut être nécessaire d’aller un petit peu plus loin dans l’argumentation quant au choix d’un matériel… C’est d’ailleurs un exercice que nous sommes souvent amenés à réaliser dans le cadre de nos missions de conseil technologique, mais également lors de la conception de solutions répondant à un besoin fonctionnel précis.
Malheureusement, si l’exercice est fréquent, il n’en demeure pas moins ardu. Les spécifications des matériels sont en général difficiles à trouver, parfois savamment noyées dans une foule de noms de technologies aussi révolutionnaires qu’opaques imaginés par les génies des services marketing. Mais la vraie difficulté tient au fait qu’il n’existe pas a priori de standard quant aux mesures des performances des matériels de RV/RA, et que de ce fait les mesures réalisées par différents fabricants ne le sont jamais dans les mêmes conditions, voire ne mesurent pas réellement les mêmes grandeurs.
Pour compenser ces manques, nous avons mis en place depuis plusieurs mois des actions de caractérisation des dispositifs que nous sommes amenés à conseiller ou à mettre en œuvre dans nos différents projets. Nous proposons de partager les résultats de ces réflexions dans une série d’articles pour qu’ils puissent profiter au plus grand nombre.
Nous nous intéresserons dans un premier temps aux performances des systèmes de suivi de position (tracking) que nous utilisons le plus souvent.
Le tracking est en effet une brique technologique cruciale pour garantir la qualité d’une expérience impliquant du spatial computing [1] (RV et RA entre autres). Commencer par le tracking est d’autant plus intéressant que si les systèmes optiques (ART, Vicon, Natural Point…) ont longtemps dominé le marché, des alternatives sont récemment apparues : le système Lighthouse de Valve/HTC, et exploité par exemple dans le Valve Index, propose une approche réellement originale du problème, tandis que les solutions basées sur des algorithmes de computer vision, SLAM en tête, sont sorties des labos et ont franchi avec succès le cap de l’industrialisation (HoloLens, Oculus Quest, ARKit…).
Parmi les grandeurs caractérisant un système de tracking, nous en avons retenu deux qui nous paraissent particulièrement pertinentes lors du choix d’une solution : la répétabilité des mesures et leur dérive spatiale.
La répétabilité reflète la capacité du système de tracking à donner la même mesure dans les mêmes conditions, et en particulier pour la même position mesurée.
La dérive spatiale quant à elle représente l’erreur de mesure accumulée lors du déplacement de l’objet tracké.
En particulier, une mauvaise répétabilité et/ou une dérive spatiale importante ne permettront pas de co-localiser plusieurs espaces pour les applications le nécessitant, comme par exemple les applications mettant en œuvre une interaction tangible via des props[2], ou celles visant à superposer des éléments virtuels et des éléments réels.
Intéressons-nous dans un premier temps à la répétabilité. L’idée ici est de positionner plusieurs fois un objet tracké exactement au même endroit et de vérifier si le système donne bien à chaque fois la même mesure. La métrique que nous utilisons pour caractériser cette répétabilité est l’erreur maximale entre toutes les mesures prises deux à deux. Pour chaque dispositif, nous réalisons dix mesures sur six sites différents répartis sur l’étendue du volume de tracking, soit un total de soixante mesures. Afin de garantir un repositionnement précis de l’objet tracké sur chaque site, nous avons mis en place des butées physiques assurant sa mise en position (cf. Figure 1).
Figure 1. Mise en position de l'objet tracké sur l’un des six sites de mesure.
Concernant la dérive spatiale, il s’agit de comparer le déplacement mesuré par le système de tracking à son déplacement réel. Pour cela, nous avons déplacé un objet tracké selon une trajectoire donnée et d’une distance donnée. En pratique, nous avons repris le dispositif de butée décrit ci-dessus et ajouté une autre butée. L’objet tracké est ainsi déplacé d’une butée à l’autre, guidé en translation par la barre de profilé aluminium pour en contrôler la trajectoire. La distance parcourue dans cette installation est de 1600mm. Cette mesure est répétée dix fois. La métrique que nous avons choisie est le rapport entre le déplacement mesuré et le déplacement réel (1600mm), ce qui nous donne un pourcentage d’erreur.
Dans ce premier article, nous proposons de nous intéresser au Vive Tracker de HTC, qui exploite le système Lighthouse (Base Station version 1.0) . Nous nous plaçons dans un cas d’usage ordinaire, conforme aux préconisations Vive, avec deux stations de base fixées à deux angles opposés de la salle de mesure sur une structure rigide à 1,85m du sol, distantes de 4.8m et orientées vers le centre de la pièce. La version de SteamVR utilisée pour les mesures est la 1.3.23.
En mettant en œuvre le protocole décrit plus haut, les mesures révèlent une très bonne répétabilité du Vive Tracker. L’erreur de position, quel que soit l’endroit de la mesure, reste en moyenne inférieure à 7.04mm. Comme l’indique l’écart-type élevé (4.16mm), on observe cependant une différence assez forte entre certains sites (cf. Figure 2) : l’erreur maximale descend à 3mm pour le site n°6 et culmine à plus de 14mm pour le site n°4. On retrouve globalement la même tendance sur les orientations, avec une erreur moyenne inférieure à 0.37° avec un écart-type de 0.17°, et toujours une erreur plus grande sur le site n°4.
Figure 2. Erreur de répétabilité maximale mesurée pour chaque site en position (gauche) et en orientation (droite).
Pour ce qui est de la dérive spatiale, l’erreur moyenne est de 3.84mm pour un déplacement en translation de 1600mm, soit une erreur de 0.24%.
Ces résultats paraissent à première vue excellents et suffisants pour une très large majorité d’applications de réalité virtuelle. Cependant, si nos conditions de mesures correspondent aux préconisations Vive comme précisé plus haut, notre procédure diffère d’un cas d’usage réel sur un point essentiel : les pertes de tracking. Elles se manifestent lorsque des occultations des récepteurs du Vive Tracker apparaissent, ce qui peut arriver assez souvent avec seulement deux émetteurs. Dans ce cas, le tracking continue pendant un certain temps en extrapolant sur les dernières données valides, mais lorsque les occultations disparaissent, une discontinuité sur les positions mesurées peut être observée.
Nous reprenons donc la même procédure mais en forçant une occultation entre chaque mesure. Et les résultats sont assez différents dans ces conditions ! L’erreur de position maximale moyenne atteint 181mm, mais avec un écart-type de 198mm ! A ce niveau-là, même sans être des experts en statistiques, nous considérons que la moyenne ne veut pas dire grand-chose. Si on regarde les mesures pour chaque site (cf. Figure 3), on s’aperçoit que les données du site 1 sont nettement moins bonnes que les autres, et que ce sont elles qui plombent la moyenne. En excluant ce site, l’erreur maximale moyenne tombe à 102mm (écart-type 37mm) en position. Néanmoins, le site n°1 n’avait a priori rien de particulier, ce qui signifie que ce genre de résultats peuvent apparaitre dans une application lambda de réalité virtuelle. Les mesures d’orientations quant à elles sont plus uniformes entre les différents sites : 3.82° d’erreur max en moyenne avec un écart-type plus raisonnable de 1.97°.
La dérive spatiale quant à elle n’est que peu impactée par les pertes de tracking avec une erreur moyenne est de 11.84mm pour un déplacement en translation de 1600mm, soit une erreur de 0.74%.
Figure 3. Erreur de répétabilité maximale mesurée pour chaque site en position (gauche) et en orientation (droite) à la suite d’une perte de tracking.
A titre de comparaison, nous avons réalisé les mêmes mesures sur un système de tracking optique A.R.T. composé de 4 caméras ARTTRACK2 positionnées dans les angles de la même salle de mesure que le tracker Vive, à 1.8m du sol. La version du logiciel de pilotage DTrack est la 2.11.1, et nous avons utilisé la constellation standard CEST1. Les dispositifs ne sont pas comparables en termes de tarif de commercialisation ( > 50k€), mais le système A.R.T. représente une référence éprouvée dans de nombreuses applications industrielles auquel il est intéressant de confronter les Vive Trackers.
Figure 4. Exemple d'un Cadwall équipé d'un système de tracking A.R.T (Copyright A.R.T Tracking)
En moyenne, l’erreur de repositionnement sur chaque site ne dépasse pas 1.29mm (écart-type 0.78mm) en translation et 0.67° (écart-type 0.39°) en orientation. L’influence d’une perte de tracking entre les mesures est faible, avec une erreur maximale de 2.02mm (écart-type 1.27mm) en moyenne en translation et 1.38° (écart-type 1.34°) en orientation. La dérive spatiale reste dans tous les cas très faible avec une erreur de 0.08% sur notre déplacement de 1600m sans perte de tracking et 0.09% avec.
Tableau 1. Comparaison VIVE Tracker et A.R.T - Récapitulatif des erreurs moyennes.
Le Tableau 1 présente une synthèse des mesures réalisées. Ces quelques tests nous apportent déjà quelques éclairages intéressants. Tout d’abord, on constate que le système Lighthouse + Vive Tracker propose d’excellentes performances, surtout compte-tenu de son tarif de commercialisation. Félicitations aux ingénieurs de Valve pour ça. Néanmoins, il présente des limitations qui le pénaliseront dans certaines applications.
En cas d’occultations entrainant une perte de tracking, des discontinuités dans les positions mesurées pourront être observées, à hauteur de 58cm dans le pire des cas mesurés (18cm en moyenne). Donc dans le cas d’applications nécessitant d’être co-localisées avec un autre espace, il sera crucial de garantir qu’aucune perte de tracking n’intervient tout au long de l’expérience immersive. En outre, pour certaines applications nécessitant une co-localisation particulièrement fine (visuo-haptique par exemple), le système Lighthouse semble a priori déconseillé, même en garantissant qu’aucune perte de tracking ne se produira.
Nous n’avons présenté que deux caractéristiques dans cet article (répétabilité et dérive spatiale), mais les procédures que nous avons développées en incluent d’autres, disponibles sur demande. N’hésitez donc pas à nous contacter si vous souhaitez approfondir le sujet !
A très bientôt avec un nouvel article qui passera au crible quelques-unes des principales solutions basées sur du SLAM.
--> Retrouvez nos autres articles lié au banc d'essai : Comparatif HandTracking VIVE versus LEAP
Références
[1] S. Shekhar, S. K. Feiner, et W. G. Aref, « Spatial Computing », Commun. ACM, vol. 59, no 1, p. 72–81, déc. 2015.
[2] K. Hinckley, R. Pausch, J. C. Goble, et N. F. Kassell, « Passive Real-world Interface Props for Neurosurgical Visualization », in Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, New York, NY, USA, 1994, p. 452–458.