HoloLens with ARToolKit v0.2
Author: Long Qian
HoloLensARToolKit is a successful experiment to integrate ARToolKit (v5.3.2) with HoloLens, or generally UWP (Universal Windows Platform). With fiducial marker tracking provided by ARToolKit, plus the indoor localization of HoloLens, many Augmented Reality applications would be made possible.
This repository contains:
ARToolKitUWP/: Wrapper of ARToolKit5 for UWP
ARToolKitUWP.unitypackage: Unity package to interface the native library
HoloLensARSample/: Some sample Unity scenes to demo the use of them
HoloLensCamCalib/: Link to camera calibration of HoloLens
What's new in v0.2?
HoloLensARToolKit v0.2 involves a re-write of video pipeline, taking advantage of Windows.Media.Capture APIs. Compared to v0.1 where the frame data is achieved via Unity WebcamTexture, Windows UWP APIs provide direct access to video control.
The current implementation uses .NET Task-based Asynchronous Pattern widely, to parallelize video capture, tracking, and Unity rendering. The dependency between each module is loosened. HoloLensARToolKit v0.2 is able to achieve: rendering at 45-60 fps, video capture at 30 fps, and tracking at 25-30 fps performance.
In addition, matrix code mismatch issue is fixed, and coordinate system representation is more consistent.
The following example videos are taken with HoloLensARToolKit v0.1.
|Minion on the Cube (Youtube Video)||HoloLensARToolKit Samples (Youtube Video)|
Run the sample
- Make sure you have HoloLens development tools installed.
- HoloLens Emulator and Vuforia are not required.
- Visual Studio 2017 is preferred.
- Launch Unity3D, open project folder
- Unity 5.6.x is preferred.
- Import the unity package
- Open one of the sample scenes
- Configure HoloLens deployment settings and deploy to HoloLens.
- See Chapter 4 and 5 of Holograms 100.
- Make sure "Allow Unsafe Code" is checked in the project
- Deploy using
Release|x86|Start Debuggingto see Debug logs.
- Deploy using
Release|x86|Start Without Debuggingto maximize the performance.
- Prepare the correspondent printed marker of ARToolKit.
- Marker images are Here.
- Make sure the printed marker size is same as configured in Unity.
- Move the marker around and see the effect.
- HoloLens clicker or air tap is able to disable and enable video preview. Disabled preview accelerates the rendering.
- Unity 5.6.0f3
- Visual Studio 2017 (Toolset v141)
- ARToolKit 5.3.2
- Windows 10 SDK 10.0.10240.0 to 10.0.14393.0
Understand HoloLensARToolKit v0.2
- Overview: ARToolKit on HoloLens
- Unity native programming
- ARUWPController options v0.2
- ARUWPMarker options v0.2
- ARUWPVideo options v0.2
- Coordinate systems in HoloLensARToolKit v0.2
HoloLensARToolKit is composed of two separate projects: ARToolKitUWP and ARToolKitUWP-Unity (including samples). Both of them are open for use in compliance with GNU Lesser General Public License (LGPL v3.0). Please see COPYING and COPYING.LESSER for license details.
ARToolKitUWP is a modified version of ARToolKit, statically links against ARToolKit binaries, and therefore complies with the license restrictions of ARToolKit (see details).