Dong_Liu Hi, I want to read imu data at higher rate and feature tracker at lower rate. What is the correct way to do it? Do I need to use multi-thread? Thanks! Dong
erik Hello Dong_Liu, would it suffice if you would just configure the rate/FPS of IMU/feature tracker? That way you wouldn't need to do any special host-side code. Thanks, Erik
Dong_Liu But I think it is better to have high frequency imu data for better VIO result. Thanks, Dong
Dong_Liu Looks like device queue event is what I should use. But TrackedFeatures doesn't have timestamp. I think I can use the system time to sync the left and right features. Thanks, Dong
erik Dong_Liu you could use passthroughInputImage (FeatureTracker output) frame to get the timestamp of all features. Also, when sending it via XLink to the host, you can use xlink_out_node.setMetadataOnly(True) to send only metadata (eg. timestamp/sequence number) of the frame, without the frame itself.
erik Also Dong_Liu , just realized that XLinkOut has function setFpsLimit() which might achieve what you would like.
Dong_Liu erik, thanks! I just wait for all queue events for left frame, left feature, right frame and right feature, then processing them. The timestamp for the left frame and right frame indeed are very close. Thanks again.