I did some more debugging and it seems the errors is propagated from the pose matrix. As I said earlier I take the pose matrix and convert it to a GL Matrix44f using Tool.converPose2GLMatrix. I've print out 12, 13, and 14 of the resulting model view matrix each second while looking at an object the glasses recognize (a crayon box in this case). The log is below. As you can see the x, y, and z jump around considerably. I do expect the matrix values to waiver a bit as I can't stand perfectly still among other reasons but the jump 272 to 216 to 255 to 301 in the x over 4 seconds seems too much (this example from time 50-53 below). I'm building my app based on the Object Recognition example using Android studio.
My question for the developers is: Is this a known bug? Is there a fix or workaround you suggest?
As I've commented previously I am using the coordinates to determine the distance between two objects which is integral to my app - if I can't depend on the distance to be stable then my entire app is rendered unusable. I appreciate your insight.
D/Matrix: printLocMatrix crayonbox @ time 50 : 272.37936 , -3.772043 , 782.1126
D/Matrix: printLocMatrix crayonbox @ time 51 : 216.1481 , -30.2614 , 820.7488
D/Matrix: printLocMatrix crayonbox @ time 52 : 255.52536 , -13.465515 , 780.9556
D/Matrix: printLocMatrix crayonbox @ time 53 : 301.86456 , -25.388443 , 707.0505
D/Matrix: printLocMatrix crayonbox @ time 54 : 304.31418 , -11.584133 , 697.81354
D/Matrix: printLocMatrix crayonbox @ time 55 : 235.73526 , -2.8857994 , 805.36566
D/Matrix: printLocMatrix crayonbox @ time 56 : 259.70938 , 3.829364 , 804.2539
D/Matrix: printLocMatrix crayonbox @ time 57 : 257.8614 , -9.380328 , 804.44104
D/Matrix: printLocMatrix crayonbox @ time 58 : 254.46094 , -15.544216 , 797.64386
D/Matrix: printLocMatrix crayonbox @ time 59 : 253.47845 , -12.152511 , 791.4636
D/Matrix: printLocMatrix crayonbox @ time 60 : 256.30576 , -14.068097 , 802.7336
D/Matrix: printLocMatrix crayonbox @ time 61 : 259.47333 , -10.621282 , 800.9758
D/Matrix: printLocMatrix crayonbox @ time 62 : 265.26804 , -5.668472 , 799.73724
D/Matrix: printLocMatrix crayonbox @ time 63 : 263.9983 , -7.4550457 , 794.42163
D/Matrix: printLocMatrix crayonbox @ time 64 : 262.45435 , -6.933034 , 796.99097
D/Matrix: printLocMatrix crayonbox @ time 65 : 265.47052 , -4.6592126 , 797.33777
D/Matrix: printLocMatrix crayonbox @ time 66 : 264.3025 , -8.039713 , 794.62555
D/Matrix: printLocMatrix crayonbox @ time 67 : 263.45358 , -8.953372 , 793.3308
D/Matrix: printLocMatrix crayonbox @ time 68 : 262.21768 , -3.8726013 , 793.5258
D/Matrix: printLocMatrix crayonbox @ time 69 : 264.492 , -2.5033474 , 805.17896
D/Matrix: printLocMatrix crayonbox @ time 70 : 265.11716 , -3.7662926 , 799.5619
D/Matrix: printLocMatrix crayonbox @ time 71 : 270.00327 , 2.1144118 , 798.9259
D/Matrix: printLocMatrix crayonbox @ time 72 : 266.76105 , -0.14821105 , 796.25323
D/Matrix: printLocMatrix crayonbox @ time 73 : 268.65448 , 1.0939136 , 800.45294
D/Matrix: printLocMatrix crayonbox @ time 74 : 270.48782 , 1.3340439 , 802.33405
D/Matrix: printLocMatrix crayonbox @ time 75 : 271.75696 , 0.30668855 , 794.84674
D/Matrix: printLocMatrix crayonbox @ time 76 : 262.94504 , 0.101476036 , 806.49115
D/Matrix: printLocMatrix crayonbox @ time 77 : 270.00882 , 0.4237549 , 804.9055
D/Matrix: printLocMatrix crayonbox @ time 78 : 267.27707 , -3.4285145 , 805.91925
D/Matrix: printLocMatrix crayonbox @ time 79 : 267.34372 , -2.100721 , 797.383
D/Matrix: printLocMatrix crayonbox @ time 80 : 262.5265 , -1.4916053 , 798.55664
D/Matrix: printLocMatrix crayonbox @ time 81 : 267.9655 , -1.1607212 , 798.13635
D/Matrix: printLocMatrix crayonbox @ time 82 : 267.39978 , -4.9988427 , 800.8022
D/Matrix: printLocMatrix crayonbox @ time 83 : 263.46417 , -9.864267 , 804.3163
D/Matrix: printLocMatrix crayonbox @ time 84 : 263.99628 , -10.491708 , 799.7593
D/Matrix: printLocMatrix crayonbox @ time 85 : 270.70236 , -6.756596 , 805.79474
Thank you @Medabit for the information. If the distance is truly in mm then jumps in the pose matrix aren't as bad as I had initially thought. I had done a quick search in your documents and wasn't able to find information on the units, would you be able to point me to the document I missed?
I'm using the pose matrix of the crayonbox and the pose matrix from the medbox to determine the distance between the crayonbox and medbox. I'm then using the distances from one second to another to determine if the objects are moving towards or away from each other. The problem then occurs when the objects are stationary but I'm registering movement within the pose matrixes and therefore within the distances - making it seem like the objects are moving when they are not. I apologize for the confusion.
I'm using the Epson Moverio Bt-200 Model: V11H560020. I also have a Nexus 7 tablet running android 6.0.1 which I'm using to test, I can observe the issue on both devices.
I ran a 5 minute test and observed the same jumps in x, y, and z on both the medbox and crayonbox (at the approximate distance from the previous test which can be seen in the screenshots). I can try moving closer to the crayon box but then I will loose the recognition on the medbox. Though I appreciate the suggestion for debugging, it's not a valid long term solution.
During the longer test it looked like the medbox and crayon box 'jumps' had a range of 35 in the x, 65 in the y, and 30 in the z. Now that I'm aware of the general 'movement' I can account for it in my app. The data indicated that the 'jumps' in the x, y, and z were the same for both objects as I mentioned before (ie if the medbox jumped 15mm in the X the crayonbox also jumped approximately 15mm in the X) - so it does seem to be consistent.