[D435i] Synchronization method of binocular camera and imu ;
Hi Intel,
I'd like to know how the D435i's stereo camera and IMU are synchronized. Is it hardware sync or software sync? I didn't find it in the Product Family D400 Series Datasheet.
And can I hardware sync the D435 with an IMU?
-
Hi Spr Ingli In Intel's guide to getting IMU data from D435i at the link below, the guide states that "each IMU data packet is timestamped using the depth sensor hardware clock to allow temporal synchronization between gyro, accel and depth frames".
https://www.intelrealsense.com/how-to-getting-imu-data-from-d435i-and-t265/
It should be possible to obtain data from an external IMU by publishing its data to a ROS /camera/imu topic. RealSense cameras without an IMU can publish depth and color data to topics in the RealSense ROS wrapper.
However, the external IMU would not be hardware synced with the D435. It is possible to sync the timestamps of a RealSense camera with a non-RealSense external device though. The discussion at the link below about synchronizing a RealSense D415's depth stream with the RGB from a non-RealSense camera is an example of this.
https://github.com/IntelRealSense/librealsense/issues/2186
Another possibility for synchronization is to emit a 'master' trigger signal from the external device and set the RealSense camera to act as a 'slave' that syncs to the timing of that trigger.
-
Hi MartyG,
Thank you for your reply!
One more question.I'm using D435i for pose estimation.When I hold the device by hand ,the estimation is quiet accurate. But when I put the device on my legged robot, the estimation results drift dramatically. Do you think this is because the robot brings a lot of noise and but IMU sampling frequency is low?
-
You could check whether the robot's frame is transmitting vibration through the mounting point of the camera, in which case adding a damping pad to the mounting point could help.
Also, Intel's D435i SLAM guide for ROS offers the following warning:
The built-in IMU can only keep track for a very short time. Moving or turning too quickly will break the sequence of successful point cloud matches and will result in the system losing track. It could happen that the system will recover immediately if stopped moving but if not, the longer the time passed since the break, the farther away it will drift from the correct position. The odds for recovery get very slim, very quickly.
https://github.com/IntelRealSense/realsense-ros/wiki/SLAM-with-D435i
The IMU will also be quite noisy by default. If using RealSense SDK scripting it is possible to re-balance the weighting of IMU data so that it is less sensitive, as demonstrated in the SDK's rs-motion IMU example program.
https://github.com/IntelRealSense/librealsense/blob/master/examples/motion/rs-motion.cpp#L117-L118
The IMU supports being set to a higher frequency of '400' for Gyro.
For 'Accel', if you have an old D435i the supported faster frequency will be '250', whilst on newer D435i units manufactured after early 2022 it will be '200'.
You can check which frequencies are supported on your particular D435i unit by looking at the frequency drop-down menus in the Motion Module section of the RealSense Viewer tool.
Please sign in to leave a comment.
Comments
3 comments