Build the first demo

I was focused on course projects and TA work for the past two weeks, so I didn’t make too much progress. Now I have built the first demo. I can move the tablet to see a cube from different angles.

The pose data structure returned by Tango actually describes the position of the Target frame in the coordinate system of the Base frame. So if I want to transform a vector from the first frame to the current frame, I need to invert the matrix.

The transformation formula on the document is slightly different from that in the sample code. The sample code version adds another term so that the eye space is aligned to the color camera coordinate system. The document version aligns the eye space to the “device” coordinate system, which is at the center of the tablet. Perhaps this matters for AR applications?

As time elapses, the cube shifts away from its original position. This is because the Motion Tracking module only computes the transformation between two consecutive frames so error accumulates. Maybe the Area Learning module can help with this.

Getting familiar with Tango

Hello everyone,

My name is Sizhuo. I am a first-year PhD student in Department of Computer Sciences. I started working with Prof. Ponto from this month. I am currently working on Tango (https://www.google.com/atap/project-tango/), and hopefully the Tango tablet will offer a new way to explore the point clouds in the visHOME project.

This week I went through the documents on the Tango’s webpage. I ran some sample code and learned how to use Tango API. There are three parts in the API: Motion Tracking, Area Learning and Depth Perception. The Motion Tracking API is quite easy to use. Basically there are three steps:

  • Set up a Tango service.
  • Register a listener to Tango events.
  • In the callback function, you can get the pose change represented as a translation vector and a quaternion. Then you can do whatever you want.

Tango will run as a back-end service and handle everything for you. Additional care may be needed, such as pause Tango service when the user switch to another app, or attempt to recover when the tracking quality is low.

Now I’m trying to build a graphical demo to see if I can match the pose change of the Tango tablet to the pose change of the virtual camera. After that I can move on to work with some real-world data.

I used to think that Motion Tracking is the only part that I need to use. Later I learned from the documents that Area Learning may also be helpful, since it can keep a memory of the environment to improve the tracking quality, of course at the cost of more processing resources. I would build the demo first and then see if this is needed.