Varvrar / ios_logger

Application for camera and sensor data logging (iOS)
149 stars 28 forks source link

Poses fitted on the sphere #10

Open Vadkoz opened 2 years ago

Vadkoz commented 2 years ago

Hello! I tried to observe camera poses using COLMAP (by passed logged quat and translation vector to COLMAP), but faced the problem that camera poses from ios_logger look like something fitted on the sphere, but the real path of the camera definitely differs from the "spherical" one. Why does it happen? And how can I get the real poses? Thanks! image

Varvrar commented 2 years ago

If you use quat and translation from ARKit (ARposes.txt) it should be "real". Check output and input formats.

amughrabi commented 6 months ago

@Varvrar, can you please advise how ARKit computes these translation and quat values? I have a row of accelerometer and gyro data with timestamps, but I am unsure if we can derive similar ARKit information from them.

Varvrar commented 6 months ago

@amughrabi for computes device poses ARKit use some visual inertial odometry algorithm (with mapping for corrections so it's rather some kind of SLAM). From accelerometer and gyro data + images with timestamp you could get similar device poses by using any visual inertial odometry. For example you could try https://github.com/HKUST-Aerial-Robotics/VINS-Mono

amughrabi commented 6 months ago

@amughrabi for computes device poses ARKit use some visual inertial odometry algorithm (with mapping for corrections so it's rather some kind of SLAM). From accelerometer and gyro data + images with timestamp you could get similar device poses by using any visual inertial odometry. For example you could try https://github.com/HKUST-Aerial-Robotics/VINS-Mono

Thanks a million for the quick answer, @Varvrar!!! It is definitely helpful. I will have a try and let you know!

amughrabi commented 6 months ago

Hi @Varvrar, I was working on VINS-MONO, and I realised that VINS-MONO wants 10 seconds frames for initialization, then it starts matching. It does not fit my dataset since my frame durations are less than 10 seconds. Any other options?