ARCore vs. ARKit, in terms of indoor positioning

Zhongyu Wang
4 min readOct 27, 2020

--

Introduction

In order to develop AR applications on the mobile platform, Apple introduces ARKit on iOS whereas Google publishes ARCore on Android. Both tools share some common features, such as motion tracking, light estimation, image tracking, anchors, and cloud anchors.

In this post, several aspects of both tools, which are mainly used to create an indoor navigation app, are introduced and compared.

Augmented Images

Both tools are able to track a known image. It can return the device position and orientation relative to an image or poster in the real world. As a consequence, the image can be used as a benchmark to align the AR world coordinate system with the real-world coordinate system.

The tracking error, especially the orientation error, has a large impact on the performance of indoor navigation. For example, only a 5-degree error in the orientation could result in an 0.87-meter uncertainty after moving 10 meters.

In terms of performance, ARCore requires the image to fill at least 25% of the camera frame to be initially detected. Results show that ARCore image tracking has an average of 0.65 degrees offset in the image norm direction and 2.5 degrees offset in the other two axes.

In contrast, ARKit does not seem to require the image to fill that much in the view and the initial detecting is much faster and more accurate. Results show that ARKit has an average of 0.29 degrees offset in the image norm direction and 0.64 degrees offset in the other two axes.

It should also be noticed that the images used for tracking in the same app should not be too similar. Otherwise, it might confuse the tracking and return the position of the wrong image.

In terms of aligning the coordinate systems, ARCore and ARKit take different approaches. In ARCore, the AR world coordinate can not be reset. As a result, the image coordinate should be added as a child of the AR world coordinate and then all the AR content should refer to the image coordinate system. In ARKit, however, the world coordinate can be reset. Therefore, it is possible to reset the world coordinate same as the image coordinate.

Motion Tracking & SLAM

After the position is initialized by the image, the app then is able to navigate in the real world and render 3D content.

Both ARCore and ARKit are running simultaneous localization and mapping (SLAM) algorithm. It is implemented by the camera, inertial measurement unit (IMU), and other sensors in the device. According to our experience, ARCore relies on the re-localization more than ARKit. As a result, it can be observed that the result from ARCore jumps quite often but the positioning is more accurate afterward. In contrast, ARKit provides a smoother user experience but the result is less accurate. The conclusion is obtained without the help of location anchors, which have the potential to enhance the SLAM performance.

Besides, the lidar camera on the new iPad and iPhone could improve the motion tracking a lot and make the performance much better than that on a normal mobile device. With the help of the lidar camera, the SLAM could achieve centimeter-level accuracy.

In addition, when the ARCore camera finds no features in the view and then lose track, the ARCore will stop working and cannot resume. Whereas, ARKit is much more robust to it.

Depth API

In June 2020, Google introduces the ARCore Depth API based on a mobile device with a normal camera. The Depth API uses a depth-from-motion algorithm to create depth maps, which takes multiple frames and compare them to estimate the distance to every pixel as the device is moving.

ARKit introduces the Depth API as well in ARKit 3.5. The difference is that only a device with a lidar camera supports the depth information. Compared with ARCore, ARKit integrates lidar results for motion tracking automatically without change any line of code whereas ARCore does not use the depth information by default to achieve a better result.

Funding

The project was executed by Alexandra Institute and was partially funded by InfinIT (the innovation network for IT in Denmark) and by a performance contract from the Danish Ministry of Higher Education and Science.

Reference

Alapetite, Alexandre, Zhongyu Wang, John Paulin Hansen, Marcin Zajączkowski, and Mikołaj Patalan. “Comparison of Three Off-the-Shelf Visual Odometry Systems.” Robotics 9, no. 3 (2020): 56.

--

--

No responses yet