Skip to content

User Interface marker detection

dvargasfr edited this page Oct 2, 2019 · 1 revision

When ARViz User Interface starts, the marker detector module is active. This module is used to find the ArUco pattern and set the system coordinates.

The process that makes this possible is based on the Microsoft MixedRealityToolkit SpectatorView project.

In ARViz Unity project, this code is placed in Assets - ARViz - Scripts - Marker_Detector folder, and the main script MarkerDetectionHololens.cs runs when ARViz starts. This script is included into the MarkerDetectorManager prefab, so the user just have to include such a prefab on the scene and the detection mechanism will work.

In order to make it possible for HoloLens to perform the image processing necessary for ArUcos detection, it is required to place OpenCV DLLs into Pluginsfolder. In Microsoft MixedRealityToolkit is explained how to generate these required DLLs, but it is also possible to get them from this repo.

When this software is running, every frame captured by the HoloLens camera is processed and the ArUco pattern that sets the world coordinate system is searched. Unity coordinate frame is set regarding to the HoloLens position and orientation at the start of the application, so once the ArUco pattern is found for first time, Unity coordinate frame is reset regarding to the HoloLens current position (UnityEngine.XR.InputTracking.Recenter()), the detection process stops, a success sound is played and User Interface visualization starts.

Clone this wiki locally