Use millimeter as unit for extrinsic parameter between depth camera and color camera
Hi,
I have a D435i camera and I need to find the extrinsic parameter from the depth sensor to the color sensor such as the translation and rotation.
As I know Realsense sdk use meter as the default unit.
Does this mean the extrinsic parameter has unit meter?
If yes, how to use millimeter as the unit?
Thanks a lot!
Yixun
-
Hi Yixun Liu
Intel's Calibration Tools User Guide for Intel RealSense D400 Series document, linked to below, provides the following information about rotation and translation between the RGB camera and the left camera (the 'world origin' of the coordinate system). Millimeter is used for the translation.
RotationLeftRGB - rotation from RGB camera coordinate system to left camera coordinate system, specified as a 3x3 rotation matrix
TranslationLeftRGB - translation from RGB camera coordinate system to left camera coordinate system, specified as a 3x1 vector in millimeters
The above guide relates to the Dynamic Calibration Tool. The guidance for the RealSense SDK's other calibration tool, On-Chip Calibration, is here:
https://dev.intelrealsense.com/docs/self-calibration-for-depth-cameras
You can obtain the extrinsics and intrinsics of a camera using the command below in a terminal (such as the Ubuntu terminal or the Windows command prompt).
rs-enumerate-devices -c
This command will generate a long list of extrinsic and intrinsic data. You can then scroll up through the listing in the terminal until you reach the sections titled Extrinsic from "Color" to "Depth" and Extrinsic from "Depth" to "Color"
The inages below were taken from my D435i camera model.


-
Thank you so much for your detailed reply.
I still have several questions to need your help.
1. I check the value of the translation from Color camera to Depth camera and I think the unit should be meter rather than millimeter because the values are very close to zero. I also check the following link:
https://github.com/IntelRealSense/librealsense/wiki/Projection-in-RealSense-SDK-2.0#
In extrinsic camera parameters section, the translation between two imagers has unit meter.
2. I run the command rs-enumerate-devices.exe -c as you said and check the Stream Profiles. I am a little bit of confused about the name of "Depth" camera. Does the "Depth" camera means the entire stereo module or just the left infrared camera? For D435i it only has two infrared sensors, one color sensor, a projector and some IMU. So I think the depth camera means the entire stereo modules, in another word, the two infrared sensors. Am I right?
Thanks.
Yixun
-
1. You have a point. If you google for librealsense extrinsics translation meters then most reference sources state the translation as being in meters. Possibly, the earlier reference to millimeters is in regard to how the Dynamic Calibration tool specifically handles translation values in TranslationLeftRGB. Apologies for that.
2. As the depth origin (0,0,0) is the center of the left infrared sensor, I would think (not certain) that it refers to that rather than the depth module as a whole.
Please sign in to leave a comment.
Comments
3 comments