Search code examples
androidandroid-sensorsgoogle-project-tango

Accuracy deviation > 15cm within few seconds


I have intended to use the Google Project Tango device to explore and research in the area of autonomous indoor navigation. This should be part of my master thesis. In the mean time I had to change the topic to something like "Is Google Project Tango suitable for any modest location application". While this is the official channel to request support, I hope any Google representative will follow up to my questions.

I started months ago with the 1.27 release and now I'm using the up to date release 1.36.

Observed behaviors:

  • The device is docked to the charging station and untouched during the test. After starting any application (Tango Explorer, Java Motion Tracking, 3rd party and my own) the tango shows a shift or drift of several centimeters within 2-5s. After ~15s and not moving or touching the device, I have a deviation of 15-20cm. Sometimes only on the X-axis, sometimes on the Y-axis and mostly random deviation on both axes.

  • Using the official but pre-release calibration tool doesn't lead to success. I'm able to proceed until the step when the device is processing the gathered information. After that, one of the following happen (each time, wasn't able to successfully finish this process). Therefore, I have no idea of the reason, because the app wasn't able to show. Not at once.

    • Application crashes due unexpected error
    • Application freezes after processing and in the notification bar a message appear, that the process failed. Either, open the notification or waiting until the UI gets responding again leads to a crash
  • The device is mounted on a small vehicle without motors. The pose is the same as having the tablet on the charging dock. The vehicle is moving with low velocity 1m straight, by hand. (The tango measurement is ok +/- 1cm). Then the vehicle is moving back (backwards) with the same velocity. Back on the starting point the measurement is already +/- 5cm. Repeating this steps much faster, a measurement failure of almost 20-30cm occurs. (I'm not able to tell you the exact speed but approx. 0.6m/s)
  • The accuracy of the rotation hasn't been measured yet.
  • Using the orientation sensor (Sensor.TYPE_ORIENTATION) or the suggested method with Sensor.TYPE_ACCELEROMETER and Sensor.TYPE_MAGNETICFIELD is unusable. Without touching the device, the orientation changes continuously in one direction up to a deviation of 10 degrees. Due the fact, that the deviation is not constant, no static or smart adjustments can be made. After a turn of 90°, the sensor needs seconds to estimate the new heading in a range of +/- 10°.
  • Almost every time I use the Tango Explorer to record a new ADF, I need at least three tries. Either the application crashes unexpectedly while recording or while saving. Only noticed for recordings >1min.

Important: Every test has been conducted in a bright room. On the floor as well as on a table. In the center of the room and next to the walls. Just to discover the impact of heating pipes, electric cables, ...

I'm looking forward to hear from official side, if this is just normal, a hardware defect or inappropriate use of the device. Also all owners of a tango device are very welcome to give their experiences.


Solution

  • @dannyyy I have experienced a great deal of non linear position drift and a minor amount of pose drift.
    The worst effects are when initiating moves similar to your "new effect" comment. Device isn't moving initially, rotate smoothly 20 degrees or more in any direction, then at the tail end of the rotation, initiate a small forward linear movement about 1cm and stop. But the displayed motion does not stop. It continues moving(accelerating) close to the forward direction (up to 20 meters)with a slight continued pose rotation(up to 5 degrees) while the tablet is motionless in reality. The effect would continue up to about 10 seconds and stop abruptly.
    The effect was more reproducible when there was an overall scarcity of movement. Frequent movement in many directions tend to keep the position more accurate. Unfortunate for my slow robotics work. The likelihood of it occurring seemed to depend on that particular boot cycle. If it happened once, it would likely continue happening in all apps, through suspend cycles, until the tablet was rebooted. The next boot it might not happen at all.

    Prior to the current release, it was reproducible about 5% of the times I tried to make it happen. Now, upon triggering the behavior, it doesn't last longer than about 1 second. I thought I may have heard some soft clicks around the time it happened, but I don't know what that could possibly be. AFAIK there are no moving parts in the tablet.