I’d like to access angular rate data from our ZED Mini at the highest possible rate within a Unity application. I note that it’s possible to use ‘GetInternalSensorsData()’ to retrieve a range of internal sensor data including the angular rate data. This is great, but with this function, I can only grab the most recent values. Ideally, I want to be able to block on each angular rate reading to reduce latency and ensure that I use every sample. I am lead to believe that it may be possible to access IMU angular rate data at 800Hz.
So my question is, is there a means via the ZED SDK to block on the next available IMU sample?
Thanks for any pointers,
I don’t think there’s a way to block on the next IMU sample, but setting a separate thread to retrieve the IMUData and checking the timestamps to validate the rate should be possible. You would need to have a fast enough computer to get the data at 800Hz though.
Thanks Jean-Loup. Surely the ZED SDK must access the IMU data at that rate though? If not, there would be no point in having that capability. I assume that no processing of any note is actually performed in the ZED Mini hardware itself. It had always been my assumption that the tracker processing was performed on the host using CUDA.
The SDK does use all the data it gets from the IMU, at the highest rate possible. The camera’s pose is updated using the IMU data (updated and processed at up to 800Hz) and the visual odometry, so it is updated only at the rate of the slowest of the two, image retrievals.
So to sum up, you can access the data at up to 800Hz, the SDK does too internally.