Motion Tracking and EasyAR Features

What is Motion Tracking

In the context of AR, motion tracking usually means the capability to get device (smart phones, eyewears and others) pose in real-time, where the pose is normally 6-DOF. Most software and device use visual-inertial odometry (VIO) technology to implement motion tracking.

From the aspect of effect, only devices which have motion tracking capability can move free in space and the virtual object keep sticking with the environment without any prior input (like an image marker or nature object). The motion tracking itself does not necessarily provide environment perception. In another world, the device can construct a virtual environment same as real world, but the device does not know where the virtual environment is on the earth.

In common usages, with motion tracking inside, you can put virtual objects on a table in front of current view or make a virtual ruler in the virtual space. But you cannot put a virtual object on top of Eiffel Tower, and the object is always there whenever you turn on your device.

Who Can Provide Motion Tracking Capability

There are various implementations for motion tracking, we list some of them we can use normally, especially those can interact with EasyAR.

Operating Systems

It is not quite accurate to mention only operating system, because OS venders usually have some kind of control of underlying hardware.

There are three similar implementations software services,

  • ARKit (Apple for iOS devices)

  • ARCore (Google for Android devices)

  • AREngine (Huawei for Android devices)

To be noticed, these software do not provide motion tracking only, and the motion tracking capability is accurately one of their basic capabilities.

Hardware devices like AR Eyewears

Similarly, dividing hardware and operating system is not accurate. We want to mention a situation when the manufacturer has strong customization on their hardware, which is not common on smart phones.

  • Pico

  • Qiyu

  • Nreal/XREAL

  • Rokid

  • Other eyewear devices

If you are an eyewear manufacturer and want to use some of EasyAR features, it is usually suggested to implement motion tracking on your device in some way. Because there are much more space for customization on such devices, and these customization can provide better motion tracking capability which is incomparable to those on usual smart phones.

EasyAR

EasyAR motion tracking feature (MotionTracker) is similar with ARKit or ARCore’s motion tracking in functionality.

  • EasyAR Sense (for Android devices, and usually mobile phones)

EasyAR Sense provides motion tracking capability, and you need a application to use it. Motion tracking from EasyAR Sense can usually run on mobile phones and some other devices. In the latter case, EasyAR will require the hardware structure and parameters to meet some specifications, and it require adaption for each device series normally. There is no simple plug and play.

To be noticed, EasyAR does not provide motion tracking only, and the motion tracking capability is accurately one of EasyAR’s basic capabilities.

When using EasyAR Sense Unity Plugin, a typical AR Session will choose which motion tracking frame source will be used in runtime according to configurations and device availabilities.

What is AR Foundation then

AR Foundation is officially defined as “a framework purpose-built for augmented reality development that allows you to build rich experiences once, then deploy across multiple mobile and wearable AR devices”. Generally, AR Foundation provides a unified interface, its AR capabilities are provided by underlying software and hardware, which can be ARCore, ARKit or some special devices through OpenXR standard and other interfaces plugged into AR Foundation.

So you cannot get motion tracking capability from AR Foundation itself, you need the underlying ARCore, ARKit too, or you can get motion tracking capability from EasyAR or Nreal SDK.

Relationships between EasyAR features and motion tracking

EasyAR features do not depend on external motion tracking implementations on Android devices, which means you do not need ARCore or AREngine installed when using EasyAR. Sometimes you may want to use their own motion tracking capabilities on devices running ARCore or AREngine. Some of EasyAR features will use ARKit for motion tracking on iOS devices.

Which EasyAR features do not take use of motion tracking at all

Motion tracking is not required when using features bellow only, you can disable ARCore AREngine in the build process if desired.

  • Plane image tracking (not in motion fusion)

  • 3D object tracking (not in motion fusion)

  • Cloud recognition

  • Multi target tracking

  • Surface tracking

Which EasyAR features must run on motion tracking capable devices

Motion tracking is required when using features bellow, you can consider using ARCore, AREngine or others when using these features if you want to use their motion tracking capabilities on devices supported. EasyAR motion tracking will be used if ARCore, AREngine or others are not used when using these features.

  • Motion tracking

  • Plane detection and put objects on the plane (EasyAR Motion Tracker or AR Foundation is required when running on a phone)

  • Sparse spatial map

  • Dense spatial map

  • Motion fusion

  • Mega

How to configure to use motion tracking capability

Generally, AR Session created using context menus (GameObject menus) can use motion tracking directly without further configuration. You can reference related parts in Start from Zero, Working with AR Foundation, and EasyAR HMD Extensions for more details.