Tango and Augmented Reality

Tango & Augmented Reality

Virtual Reality and Augmented Reality are hot topics nowadays. Google has provided a better solution for augmented reality development. This article will summarize key concepts that you should know about Google Tango. I suggest you to embrace Tango technology and make your systems more cool and exciting. 😊

Introduction to Tango

Tango is an augmenting reality computing platform provided by Google. It mainly uses computer vision to enable mobile devices, such as smartphones and tablets, to detect their position relative to the world around them without using GPS or other external signals. This allows application developers to create user experiences that include indoor navigation, 3D mapping, physical space measurement, environmental recognition, augmented reality, and windows into a virtual world

Tango Concepts


Tango uses computer vision give device the ability to understand the relativity to the world. It uses 3 core technologies;

  • Motion-tracking: track movements and orientation in 3D space using pose. where it is and which way it’s facing.

  • Area learning: remembers, store and recall environment data in a map that can be reused later, shared with other Tango devices, and enhanced with metadata such as notes, instructions, or points of interest. it can recognize that area again later.
  1. Improve the accuracy of the trajectory by performing "drift corrections."
  2. Orient and position itself within a previously learned area by performing "localization."


  • Depth perception: understand the shape of your surroundings by detecting distances, sizes, and surfaces in the environment. It let virtual objects to be a part of actual environment.

Visual positioning service(VPS)- a system for mapping indoor environments using core Tango technologies: Motion Tracking, Area Learning, and Depth Perception. Using VPS, developers can build location-based mobile AR experiences.
 

Tango Pose  (more details)

Tango calculates the position and orientation frequently as the device move in the 3D space. A single instance out of it is called as a pose.
2 key components of a pose :
  • Rotation- a quaternion
  • Translation - 3D vector

Pose status :
Reactivity and Sensitivity to the the pose status changes should be considered while development of the application.

  • INITIALIZING
  • VALID
  • INVALID
  • UNKNOWN

Life cycle of pose status :

Tango Events (more details)

Primary Events

Sending and receiving sensor data from core activities
  • The pose of the device.
  • Frames and textures from a camera.
  • Point clouds, which are generated via depth sensing.

Status events

Receiving Tango status

Tango Frames of references (more details)


base frame - fixed reference(measuring from)
target frame - its pose changes as the device move (measuring to)

Combinations :


Target Frame
Base Frame
COORDINATE_FRAME_DEVICE
COORDINATE_FRAME_START_OF_SERVICE
Pose of the device relative to the start of the tango service.



Target Frame
Base Frame
COORDINATE_FRAME_DEVICE
COORDINATE_FRAME_AREA_DESCRIPTION
pose of the device, including corrections, relative to the loaded area description's origin. It requires that area learning mode is turned on or a previously created ADF(Area Description File) is loaded.



Target Frame
Base Frame
COORDINATE_FRAME_START_OF_SERVICE
COORDINATE_FRAME_AREA_DESCRIPTION
provides updates only when a localization event or a drift correction occurs.


Coordinate system

The coordination system follows the right hand rule. So there 2 system namely; right hand local and right hand android.

Right hand local level


Right Hand Android

Unity coordinate system

Converting Tango Pose data into the Unity Coordinate System

transformation converts between the Project Tango START_OF_SERVICE (SS) coordinate frame and the Unity World (UW) coordinate frame
transformation converts between the Unity Camera (UC) coordinate frame and the Tango Device (D)


Multiply the first conversion and then multiply the second conversion to get a matrix that converts pose data between the Unity Camera (UC) coordinate frame and the Unity World (UW) coordinate frame.


Languages and tools


Tango offers APIs in C and Java, and an SDK for Unity.

Applications


  • in-store navigation
  • measurement and mapping utilities
  • presentation and design tools
  • Immersive games. (Immersive = generating a three-dimensional image that appears to surround the user.)

Concerns

Tango just won't work on any phone. It requires a lot of processing power and an array of special cameras and sensors. Only 2 devices, Lenovo phab 2 pro and Asus ZenPhone support it so far.



References

https://developers.google.com/tango/developer-overview





Comments

Post a Comment