VideoIMUCapture-Android
VideoIMUCapture-Android copied to clipboard
Timestamp abnormal.
Some problems were encountered in the data conversion, and the timestamp of the converted data was abnormal.
Hi, I take it you figured out the issue. Please let me know if there is a bug in the code.
@DavidGillsjo Thank you very much for this excellent project. He has provided me with great help in my work. Yes, I have encountered some problems. During this process, I saw the issues templates you submitted, so I closed it in a hurry. I'm so sorry. Let me tell you about the problems I encountered. I used the latest code to collect the camera and IMU data of my mobile phone. After using the data conversion data2kalibr script in docker, I found that the timestamp of my camera and the timestamp of IMU data were abnormal. Like I mentioned before. I found that the commit before you update issue templates is normal. Sorry I know very little about Android development and haven't been able to find the problem yet.
OK, so you mean that if you run the code from commit 0a4d0911bba425bb7f01744c0f41f42c517c8437 it all works? I have not personally yet tested the latest pull request so the bug might be related to that.
Could you describe the issue? From the image I take it that there is some offset between the images and IMU?
57bc0511cd5e003f914ccbcf23a01162d0c0a48a This is also possible. Yes, as you said, there is some offset between the image time stamp and the IMU time stamp, but the data should be fine, because I have calibrated with each of their individual data, and from the results of the calibration, they are No problem.
OK, glad to know it works anyways. I'll test it for myself in a couple of weeks, currently too busy with work.
Hi, I met the same problem too. The timeoffset is too large (around 7.33 seconds for my oneplus 9). I guess there are some initialization issues of the videoimucapture apk. Do u guys have any idea about this bug?
Even though the temporal offset exists, I calibrate the extrinsic parameters successfully with kalibr, and I think the result is pretty good. The image and imu streams are synchronized actually, but maybe the timestamps are wrongly assigned.
If the camera device reports UNKNOWN, and the sensors are using REALTIME (which I believe is the case), then the difference can be very large since one doesn't increment while the device is asleep. While the camera is running, the difference is unlikely to grow (since the device will not go to sleep), so you can in principle measure both times at start and use that difference to correct the timestamps to the same timebase. – Eddy Talvala May 23, 2017 at 21:36
I find this discussion on stackoverflow may be helpful for this bug.
Hi @bzdfzfer, If you checkout commit 0a4d0911bba425bb7f01744c0f41f42c517c8437 and capture data using that version, does it work properly? @Taol777 indicated that it might be related to a code change after this point, though I'm not sure how it could be, I haven't investigated it.
The timestamp source for the camera is stored in the protobuf file, see this line for definition. It is not stored for the IMU but that could of course be added.
I tried the release app of v.0.10.apk, and it worked pretty well (but there are still 20ms delay hhh, it's ok for the test).