View my account

What's the intrinsics and extrinsics (w.r.t. left IR cam) of the depth map? (D430)

Comments

7 comments

  • MartyG

    You can use an SDK tool called sensor-control to read the intrinsics and extrinsics of both IR and depth streams.  The link below has an example guide.  Though the guide uses an SR300 camera, the process is the same for the 400 Series cameras.

    https://github.com/IntelRealSense/librealsense/issues/5134#issuecomment-546641014 

    1
    Comment actions Permalink
  • Zjwang

    Thanks, MartyG, this is a very useful tool.

     

    Another follow-on question, the sensor-control tool you mentioned can give me the extrinsics between the depth map and the RECTIFIED left IR image (the extrinsics is basically identity according to the print out from sensor-control).

    I'm wondering how I can get the extrinsics:

    1. between depth map and the UNRECTIFIED left IR image, or

    2. between RECTIFIED left IR image and the UNRECTIFIED left IR image?

    Thank you!

    0
    Comment actions Permalink
  • MartyG

    To get the extrinsics of an unrectified IR channel, I believe that you would have to look at the Y16 profile.  Y16 is unrectified whist Y8 is rectified.  This is because Y16 is used for camera calibration.

    1
    Comment actions Permalink
  • Zjwang

    MartyG,

    First, I checked the extrinsics between rectified left IR image (Y8 profile) and depth map, and found it to be identity:

    Translation: [0,0,0]

    Rotation Matrix:

    [1,0,0]

    [0,1,0]

    [0,0,0]

    which makes sense to me because the depth map is rectified and centered at the left rectified IR image

     

    Then I checked the extrinsics between unrectified Y16 IR profile (Infrared #1 Video Stream: Y16 1280x800@25Hz) and the depthmap (Depth #0 Video Stream Z16 1280x720@30Hz), however, the extrinsics I got was still identity:

    Translation: [0,0,0]

    Rotation Matrix:

    [1,0,0]

    [0,1,0]

    [0,0,0]

    which can't be true because this should be between rectified depth and unrectified raw IR image?

     

     

    0
    Comment actions Permalink
  • MartyG

    I would imagine that there would be discrepancy between an unrectified image and a rectified one, since the rectified one will have gone through a transformation in the Vision Processor D4 component inside the camera before being sent to the computer.  Plus, the Y16 format is designed for use with camera calibration, not for everyday use in RealSense applications like the Y8 format is.

    For expert advice on rectified and non-rectified images, the RealSense GitHub is an excellent place to ask questions.  You can do so at the link below by clicking the 'New Issue' button on that page.  Good luck!

    https://github.com/IntelRealSense/librealsense/issues

    0
    Comment actions Permalink
  • Zjwang

    MartyG Thank you very much for your continued help.

    Does this mean sensor-control failed to output the extrinsics between unrectified and rectified IR image? Are there any other ways that can potentially do this and you would recommend me to try?

    I understand Y16 is for calibration purpose only, and in my specific application I need to have access to it. Thank you for the pointer to Github too.

    0
    Comment actions Permalink
  • MartyG

    This is the first time that I have heard of someone trying to compare the extrinsics of rectified and unrectified stream profiles and my research could not find an example of it, and so the GitHub is likely to be the best place to get advice on this from an Intel RealSense team member.  I do apologize.

    0
    Comment actions Permalink

Please sign in to leave a comment.