I'm trying out Sensor.TYPE_ROTATION_VECTOR on Android. It is supposed to use magnetfieldsensor, accelerometer and gyroscope to provide accurate rotation at all times. However, I notice enormous drift occurring on Moto G 2nd. I wonder if this is a device specific issue, or that this occurs on a lot of phones (which I would assume, although I am familiar that Moto G 2nd is a problematic case with it's gyroscope).
Is there an alternative form of sensor fusion, which is drift free (using magnetsensor)? I have tried Google Cardboard's sensor fusion as well, but it uses bias estimation, so presumably not entirely drift free (as the magnetfieldsensor is not used at this time it seems), although still A LOT better than TYPE_ROTATION_VECTOR.
https://play.google.com/store/apps/details?id=org.hitlabnz.sensor_fusion_demo has some handy alternatives I just found. I still have to test which fusion leads to most steady results. Source here: https://bitbucket.org/apacha/sensor-fusion-demo/src .
A lot of these also show drift; in particular the ones which use the gyro.