I have been working with both image and inertial data from the vertical camera and synchronised IMU (sensors_imu_vcam) within airsdk. However, timestamps (ts) from camera frames and inertial data never match. The difference between the frame ts and the nearest IMU sample can even reach up to 2ms, where specification is 1us. I checked both sof and eof frame timestamps but they have the exact same value (?).
Am I missing something ? How do you do to know which inertial sample matches the last frame provided?
I can confirm that it’s correct. The sensors_imu_vcam have the same available data as sensors_imu (see the Telemetry list page of the documentation). But unlike sensors_imu, sensors_imu_vcam run at 1000Hz (2000Hz for sensors_imu). As the processing runs at 200Hz, 5 values are provided at every sample (the table is size 10) so the other 5 values are useless. You can see the values of sensors_imu_vcam with this command (to be executed in the drone shell):
IMPORTANT NOTE:sensors_imu_vcam is not present in Parrot’s official public documentation, it is not guaranteed to work and can be changed in the future.