We have 2x Oak-d W PoE with the latest bootloader (0.0.28) and depthai version 2.26.1
and depthai ubuntu package ros-noetic-depthai-ros-driver v 2.9.0 on ubuntu 20.04.
We analyze the timestamping of the imu and the cameras, and make sure that we have sufficient bandwidth on the PoE link (15FPS, stereo only, no rgb, downscaled and jpg compression enabled)
The analysis is by recording a rosbag of the oak topics and then checking jitter on the timestamps. For the camera images, the timestamp is always <1ms in deviation of the 15Hz or even at the 30Hz sampling rate. For the IMU however, both at 100Hz and 200Hz (gyro and accel are set at the same rate, no interpolation, we use COPY) the jitter is large, up to 7ms in some instances. The ros driver is running for at least a 30 seconds before we start capturing data.
We checked setting the imu_i_get_base_device_timestamp to true or false, with the same result. We can confirm that the devices is properly time synchronized with the PC time, as the ros base time updates are always <1000ns.
The above plot is an example of ~3ms jitter, but we can have worse. We have no samples dropped, the ros topic hz /oak/imu/data nicely shows 100Hz or 200Hz, same for the camera images, no frames are dropped.
How come the camera timestamps are so accurate while the imu timestamp is so jittery? Is there any setting we are overlooking? Is the imu internally sampled at 100Hz (or 200Hz) and could we just assume the timetamps are wrong, and restamp them ourselves with nice 10ms / 5ms intervals ?