Wie misst man die Entfernung mit ARCore?

8

Ist es möglich, die Entfernung zwischen zwei HitResult zu berechnen?

Oder wie können wir echte Entfernung (z. B. Meter) mit ARCore berechnen?

    
Alexey Podolian 31.08.2017, 13:07
quelle

2 Antworten

11

In Java sind ARCore-Welteinheiten Meter (ich habe gerade festgestellt, dass wir das vielleicht nicht dokumentieren ... aaaund sieht aus wie Nope. Hoppla , Fehlerfeld). Durch Subtrahieren der Übersetzungskomponente von zwei Pose s können Sie den Abstand zwischen ihnen erhalten. Ihr Code würde etwa so aussehen:

Beim ersten Treffer als hitResult :

%Vor%

Beim zweiten Treffer als hitResult :

%Vor%

Unter der Annahme, dass diese Trefferergebnisse nicht im selben Frame vorkommen, ist die Erstellung von Anchor wichtig, da die virtuelle Welt bei jedem Aufruf von Session.update() umgestaltet werden kann. Wenn Sie diesen Ort mit einem Anker statt nur mit einer Pose halten, wird seine Pose aktualisiert, um das physische Feature über diese Umbauten hinweg zu verfolgen.

    
Ian M 31.08.2017, 17:35
quelle
3

Sie können die beiden HitResult Posen mithilfe von getHitPose () und vergleichen Sie dann deren Übersetzungskomponente ( getTranslation () ). Die Übersetzung ist definiert als

  

... der Positionsvektor vom Ziel (normalerweise   Welt) Koordinatenrahmen an den lokalen Koordinatenrahmen, ausgedrückt in   Ziel (Welt) Koordinaten.

Was die physische Einheit betrifft, konnte ich keine Bemerkung finden. Mit einer kalibrierten Kamera sollte dies mathematisch möglich sein, aber ich weiß nicht, ob sie tatsächlich eine API dafür bereitstellen.

    
PhilLab 31.08.2017 13:21
quelle

Tags und Links