You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

622 lines
28 KiB

# License: Apache 2.0. See LICENSE file in root directory.
# Copyright(c) 2024 Intel Corporation. All Rights Reserved.
import pyrealdds as dds
from rspy import log, test
device_info = dds.message.device_info.from_json({
"name": "Intel RealSense D435I",
"serial": "036522070660",
"product-line": "D400",
"topic-root": "realsense/D435I_036522070660"
})
def build( participant ):
"""
Build a D435i device server for use in DDS
"""
d435i = dds.device_server( participant, device_info.topic_root )
d435i.init( build_streams(), build_options(), get_extrinsics() )
return d435i
def build_streams():
"""
Build the streams for a D435i device server
"""
motion = motion_stream()
depth = depth_stream()
ir1 = ir_stream( 1 )
ir2 = ir_stream( 2 )
color = color_stream()
return [color, depth, motion, ir1, ir2]
def build_options():
return []
def gyro_stream_profiles():
return [
dds.motion_stream_profile( 200 ),
dds.motion_stream_profile( 400 )
]
def motion_stream():
stream = dds.motion_stream_server( "Motion", "Motion Module" )
stream.init_profiles( gyro_stream_profiles(), 0 )
stream.init_options( motion_module_options() )
intr = dds.motion_intrinsics()
intr.data = [[1.0,0.0,0.0,0.0],[0.0,1.0,0.0,0.0],[0.0,0.0,1.0,0.0]]
intr.noise_variances = [0.0,0.0,0.0]
intr.bias_variances = [0.0,0.0,0.0]
stream.set_gyro_intrinsics( intr )
intr = dds.motion_intrinsics()
intr.data = [[1.0,0.0,0.0,0.0],[0.0,1.0,0.0,0.0],[0.0,0.0,1.0,0.0]]
intr.noise_variances = [0.0,0.0,0.0]
intr.bias_variances = [0.0,0.0,0.0]
stream.set_accel_intrinsics( intr )
return stream
def depth_stream_profiles():
return [
dds.video_stream_profile( 30, dds.video_encoding.z16, 1280,720 ),
dds.video_stream_profile( 15, dds.video_encoding.z16, 1280,720 ),
dds.video_stream_profile( 6, dds.video_encoding.z16, 1280,720 ),
dds.video_stream_profile( 90, dds.video_encoding.z16, 848,480 ),
dds.video_stream_profile( 60, dds.video_encoding.z16, 848,480 ),
dds.video_stream_profile( 30, dds.video_encoding.z16, 848,480 ),
dds.video_stream_profile( 15, dds.video_encoding.z16, 848,480 ),
dds.video_stream_profile( 6, dds.video_encoding.z16, 848,480 ),
dds.video_stream_profile( 300, dds.video_encoding.z16, 848,100 ),
dds.video_stream_profile( 100, dds.video_encoding.z16, 848,100 ),
dds.video_stream_profile( 90, dds.video_encoding.z16, 640,480 ),
dds.video_stream_profile( 60, dds.video_encoding.z16, 640,480 ),
dds.video_stream_profile( 30, dds.video_encoding.z16, 640,480 ),
dds.video_stream_profile( 15, dds.video_encoding.z16, 640,480 ),
dds.video_stream_profile( 6, dds.video_encoding.z16, 640,480 ),
dds.video_stream_profile( 90, dds.video_encoding.z16, 640,360 ),
dds.video_stream_profile( 60, dds.video_encoding.z16, 640,360 ),
dds.video_stream_profile( 30, dds.video_encoding.z16, 640,360 ),
dds.video_stream_profile( 15, dds.video_encoding.z16, 640,360 ),
dds.video_stream_profile( 6, dds.video_encoding.z16, 640,360 ),
dds.video_stream_profile( 90, dds.video_encoding.z16, 480,270 ),
dds.video_stream_profile( 60, dds.video_encoding.z16, 480,270 ),
dds.video_stream_profile( 30, dds.video_encoding.z16, 480,270 ),
dds.video_stream_profile( 15, dds.video_encoding.z16, 480,270 ),
dds.video_stream_profile( 6, dds.video_encoding.z16, 480,270 ),
dds.video_stream_profile( 90, dds.video_encoding.z16, 424,240 ),
dds.video_stream_profile( 60, dds.video_encoding.z16, 424,240 ),
dds.video_stream_profile( 30, dds.video_encoding.z16, 424,240 ),
dds.video_stream_profile( 15, dds.video_encoding.z16, 424,240 ),
dds.video_stream_profile( 6, dds.video_encoding.z16, 424,240 ),
dds.video_stream_profile( 300, dds.video_encoding.z16, 256,144 ),
dds.video_stream_profile( 90, dds.video_encoding.z16, 256,144 )
]
def depth_stream():
stream = dds.depth_stream_server( "Depth", "Stereo Module" )
stream.init_profiles( depth_stream_profiles(), 5 )
stream.init_options( stereo_module_options() )
stream.set_intrinsics( depth_stream_intrinsics() )
return stream
def ir_stream_profiles():
return [
dds.video_stream_profile( 30, dds.video_encoding.y8, 1280,800 ),
dds.video_stream_profile( 25, dds.video_encoding.y16, 1280,800 ),
dds.video_stream_profile( 15, dds.video_encoding.y16, 1280,800 ),
dds.video_stream_profile( 15, dds.video_encoding.y8, 1280,800 ),
dds.video_stream_profile( 30, dds.video_encoding.y8, 1280,720 ),
dds.video_stream_profile( 15, dds.video_encoding.y8, 1280,720 ),
dds.video_stream_profile( 6, dds.video_encoding.y8, 1280,720 ),
dds.video_stream_profile( 90, dds.video_encoding.y8, 848,480 ),
dds.video_stream_profile( 60, dds.video_encoding.y8, 848,480 ),
dds.video_stream_profile( 30, dds.video_encoding.y8, 848,480 ),
dds.video_stream_profile( 15, dds.video_encoding.y8, 848,480 ),
dds.video_stream_profile( 6, dds.video_encoding.y8, 848,480 ),
dds.video_stream_profile( 300, dds.video_encoding.y8, 848,100 ),
dds.video_stream_profile( 100, dds.video_encoding.y8, 848,100 ),
dds.video_stream_profile( 90, dds.video_encoding.y8, 640,480 ),
dds.video_stream_profile( 60, dds.video_encoding.y8, 640,480 ),
dds.video_stream_profile( 30, dds.video_encoding.y8, 640,480 ),
dds.video_stream_profile( 15, dds.video_encoding.y8, 640,480 ),
dds.video_stream_profile( 6, dds.video_encoding.y8, 640,480 ),
dds.video_stream_profile( 25, dds.video_encoding.y16, 640,400 ),
dds.video_stream_profile( 15, dds.video_encoding.y16, 640,400 ),
dds.video_stream_profile( 90, dds.video_encoding.y8, 640,360 ),
dds.video_stream_profile( 60, dds.video_encoding.y8, 640,360 ),
dds.video_stream_profile( 30, dds.video_encoding.y8, 640,360 ),
dds.video_stream_profile( 15, dds.video_encoding.y8, 640,360 ),
dds.video_stream_profile( 6, dds.video_encoding.y8, 640,360 ),
dds.video_stream_profile( 90, dds.video_encoding.y8, 480,270 ),
dds.video_stream_profile( 60, dds.video_encoding.y8, 480,270 ),
dds.video_stream_profile( 30, dds.video_encoding.y8, 480,270 ),
dds.video_stream_profile( 15, dds.video_encoding.y8, 480,270 ),
dds.video_stream_profile( 6, dds.video_encoding.y8, 480,270 ),
dds.video_stream_profile( 90, dds.video_encoding.y8, 424,240 ),
dds.video_stream_profile( 60, dds.video_encoding.y8, 424,240 ),
dds.video_stream_profile( 30, dds.video_encoding.y8, 424,240 ),
dds.video_stream_profile( 15, dds.video_encoding.y8, 424,240 ),
dds.video_stream_profile( 6, dds.video_encoding.y8, 424,240 )
]
def ir_stream( number ):
stream = dds.ir_stream_server( "Infrared_" + str(number), "Stereo Module" )
stream.init_profiles( ir_stream_profiles(), 9 )
#stream.init_options( stereo_module_options() )
stream.set_intrinsics( ir_stream_intrinsics() )
return stream
def color_stream_profiles():
return [
dds.video_stream_profile( 30, dds.video_encoding.byr2, 1920,1080 ),
dds.video_stream_profile( 30, dds.video_encoding.yuyv, 1920,1080 ),
dds.video_stream_profile( 15, dds.video_encoding.yuyv, 1920,1080 ),
dds.video_stream_profile( 6, dds.video_encoding.yuyv, 1920,1080 ),
dds.video_stream_profile( 30, dds.video_encoding.yuyv, 1280,720 ),
dds.video_stream_profile( 15, dds.video_encoding.yuyv, 1280,720 ),
dds.video_stream_profile( 6, dds.video_encoding.yuyv, 1280,720 ),
dds.video_stream_profile( 60, dds.video_encoding.yuyv, 960,540 ),
dds.video_stream_profile( 30, dds.video_encoding.yuyv, 960,540 ),
dds.video_stream_profile( 15, dds.video_encoding.yuyv, 960,540 ),
dds.video_stream_profile( 6, dds.video_encoding.yuyv, 960,540 ),
dds.video_stream_profile( 60, dds.video_encoding.yuyv, 848,480 ),
dds.video_stream_profile( 30, dds.video_encoding.yuyv, 848,480 ),
dds.video_stream_profile( 15, dds.video_encoding.yuyv, 848,480 ),
dds.video_stream_profile( 6, dds.video_encoding.yuyv, 848,480 ),
dds.video_stream_profile( 60, dds.video_encoding.yuyv, 640,480 ),
dds.video_stream_profile( 30, dds.video_encoding.yuyv, 640,480 ),
dds.video_stream_profile( 15, dds.video_encoding.yuyv, 640,480 ),
dds.video_stream_profile( 6, dds.video_encoding.yuyv, 640,480 ),
dds.video_stream_profile( 60, dds.video_encoding.yuyv, 640,360 ),
dds.video_stream_profile( 30, dds.video_encoding.yuyv, 640,360 ),
dds.video_stream_profile( 15, dds.video_encoding.yuyv, 640,360 ),
dds.video_stream_profile( 6, dds.video_encoding.yuyv, 640,360 ),
dds.video_stream_profile( 60, dds.video_encoding.yuyv, 424,240 ),
dds.video_stream_profile( 30, dds.video_encoding.yuyv, 424,240 ),
dds.video_stream_profile( 15, dds.video_encoding.yuyv, 424,240 ),
dds.video_stream_profile( 6, dds.video_encoding.yuyv, 424,240 ),
dds.video_stream_profile( 60, dds.video_encoding.yuyv, 320,240 ),
dds.video_stream_profile( 30, dds.video_encoding.yuyv, 320,240 ),
dds.video_stream_profile( 6, dds.video_encoding.yuyv, 320,240 ),
dds.video_stream_profile( 60, dds.video_encoding.yuyv, 320,180 ),
dds.video_stream_profile( 30, dds.video_encoding.yuyv, 320,180 ),
dds.video_stream_profile( 6, dds.video_encoding.yuyv, 320,180 )
]
def color_stream():
stream = dds.color_stream_server( "Color", "RGB Camera" )
stream.init_profiles( color_stream_profiles(), 8 )
stream.init_options( rgb_camera_options() )
stream.set_intrinsics( color_stream_intrinsics() )
return stream
def stereo_module_options():
options = []
option = dds.option.from_json( ["Exposure", 8500, 1, 200000, 1, 8500, "Depth Exposure (usec)"] )
options.append( option )
option = dds.option.from_json( ["Gain", 16, 16, 248, 1, 16, "UVC image gain"] )
options.append( option )
option = dds.option.from_json( ["Enable Auto Exposure", 1, 0, 1, 1, 1, "Enable Auto Exposure"] )
options.append( option )
option = dds.option.from_json( ["Visual Preset", 0, 0, 5, 1, 0, "Advanced-Mode Preset"] )
options.append( option )
option = dds.option.from_json( ["Laser Power", 150, 0, 360, 30, 150, "Manual laser power in mw. applicable only when laser power mode is set to Manual"] )
options.append( option )
option = dds.option.from_json( ["Emitter Enabled", 1, 0, 2, 1, 1, "Emitter select, 0-disable all emitters, 1-enable laser, 2-enable laser auto (opt), 3-enable LED (opt)"] )
options.append( option )
option = dds.option.from_json( ["Error Polling Enabled", 1, 0, 1, 1, 0, "Enable / disable polling of camera internal errors"] )
options.append( option )
option = dds.option.from_json( ["Output Trigger Enabled", 0, 0, 1, 1, 0, "Generate trigger from the camera to external device once per frame"] )
options.append( option )
option = dds.option.from_json( ["Depth Units", 0.001, 1e-06, 0.01, 1e-06, 0.001, "Number of meters represented by a single depth unit"] )
options.append( option )
option = dds.option.from_json( ["Stereo Baseline", 49.864, 49.864, 49.864, 0, 49.864, "Distance in mm between the stereo imagers"] )
options.append( option )
option = dds.option.from_json( ["Inter Cam Sync Mode", 0, 0, 260, 1, 0,
"Inter-camera synchronization mode: 0:Default, 1:Master, 2:Slave, 3:Full Salve, 4-258:Genlock with burst count of 1-255 frames for each trigger, 259 and 260 for two frames per trigger with laser ON-OFF and OFF-ON."] )
options.append( option )
option = dds.option.from_json( ["Emitter On Off", 0, 0, 1, 1, 0, "Alternating emitter pattern, toggled on/off on per-frame basis"] )
options.append( option )
option = dds.option.from_json( ["Global Time Enabled", 1, 0, 1, 1, 1, "Enable/Disable global timestamp"] )
options.append( option )
option = dds.option.from_json( ["Emitter Always On", 0, 0, 1, 1, 0, "Emitter always on mode: 0:disabled(default), 1:enabled"] )
options.append( option )
option = dds.option.from_json( ["Hdr Enabled", 0, 0, 1, 1, 0, "HDR Option"] )
options.append( option )
option = dds.option.from_json( ["Sequence Name", 0, 0, 3, 1, 1, "HDR Option"] )
options.append( option )
option = dds.option.from_json( ["Sequence Size", 2, 2, 2, 1, 2, "HDR Option"] )
options.append( option )
option = dds.option.from_json( ["Sequence Id", 0, 0, 2, 1, 0, "HDR Option"] )
options.append( option )
option = dds.option.from_json( ["Auto Exposure Limit", 200000, 1, 200000, 1, 8500,
"Exposure limit is in microseconds. If the requested exposure limit is greater than frame time, it will be set to frame time at runtime. Setting will not take effect until next streaming session."] )
options.append( option )
option = dds.option.from_json( ["Auto Gain Limit", 248, 16, 248, 1, 16,
"Gain limits ranges from 16 to 248. If the requested gain limit is less than 16, it will be set to 16. If the requested gain limit is greater than 248, it will be set to 248. Setting will not take effect until next streaming session."] )
options.append( option )
option = dds.option.from_json( ["Auto Exposure Limit Toggle", 0, 0, 1, 1, 0, "Toggle Auto-Exposure Limit"] )
options.append( option )
option = dds.option.from_json( ["Auto Gain Limit Toggle", 0, 0, 1, 1, 0, "Toggle Auto-Gain Limit"] )
options.append( option )
return options
def rgb_camera_options():
options = []
option = dds.option.from_json( ["Backlight Compensation", 0, 0, 1, 1, 0, "Enable / disable backlight compensation"] )
options.append( option )
option = dds.option.from_json( ["Brightness", 0, -64, 64, 1, 0, "UVC image brightness"] )
options.append( option )
option = dds.option.from_json( ["Contrast", 50, 0, 100, 1, 50, "UVC image contrast"] )
options.append( option )
option = dds.option.from_json( ["Exposure", 156, 1, 10000, 1, 156, "Controls exposure time of color camera. Setting any value will disable auto exposure"] )
options.append( option )
option = dds.option.from_json( ["Gain", 6, 0, 128, 1, 64, "UVC image gain"] )
options.append( option )
option = dds.option.from_json( ["Gamma", 300, 100, 500, 1, 300, "UVC image gamma setting"] )
options.append( option )
option = dds.option.from_json( ["Hue", 0, -180, 180, 1, 0, "UVC image hue"] )
options.append( option )
option = dds.option.from_json( ["Saturation", 64, 0, 100, 1, 64, "UVC image saturation setting"] )
options.append( option )
option = dds.option.from_json( ["Sharpness", 50, 0, 100, 1, 50, "UVC image sharpness setting"] )
options.append( option )
option = dds.option.from_json( ["White Balance", 4600, 2800, 6500, 10, 4600,
"Controls white balance of color image. Setting any value will disable auto white balance"] )
options.append( option )
option = dds.option.from_json( ["Enable Auto Exposure", 0, 0, 1, 1, 1, "Enable / disable auto-exposure"] )
options.append( option )
option = dds.option.from_json( ["Enable Auto White Balance", 1, 0, 1, 1, 1, "Enable / disable auto-white-balance"] )
options.append( option )
option = dds.option.from_json( ["Power Line Frequency", 3, 0, 3, 1, 3, "Power Line Frequency"] )
options.append( option )
option = dds.option.from_json( ["Auto Exposure Priority", 0, 0, 1, 1, 0,
"Restrict Auto-Exposure to enforce constant FPS rate. Turn ON to remove the restrictions (may result in FPS drop)"] )
options.append( option )
option = dds.option.from_json( ["Global Time Enabled", 1, 0, 1, 1, 1, "Enable/Disable global timestamp"] )
options.append( option )
return options
def motion_module_options():
options = []
option = dds.option.from_json( ["Enable Motion Correction", 1, 0, 1, 1, 1, "Enable/Disable Automatic Motion Data Correction"] )
options.append( option )
option = dds.option.from_json( ["Global Time Enabled", 1, 0, 1, 1, 1, "Enable/Disable global timestamp"] )
options.append( option )
return options
def color_stream_intrinsics():
intrinsics = []
intr = dds.video_intrinsics();
intr.width = 320
intr.height = 180
intr.principal_point_x = 161.7417755126953
intr.principal_point_y = 90.47455596923828
intr.focal_lenght_x = 227.0221710205078
intr.focal_lenght_y = 227.1049346923828
intr.distortion_model = 2
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intr = dds.video_intrinsics();
intr.width = 320
intr.height = 240
intr.principal_point_x = 162.32237243652344
intr.principal_point_y = 120.63274383544922
intr.focal_lenght_x = 302.69622802734375
intr.focal_lenght_y = 302.80657958984375
intr.distortion_model = 2
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intr = dds.video_intrinsics();
intr.width = 424
intr.height = 240
intr.principal_point_x = 214.32235717773438
intr.principal_point_y = 120.63274383544922
intr.focal_lenght_x = 302.69622802734375
intr.focal_lenght_y = 302.80657958984375
intr.distortion_model = 2
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intr = dds.video_intrinsics();
intr.width = 640
intr.height = 360
intr.principal_point_x = 323.4835510253906
intr.principal_point_y = 180.94911193847656
intr.focal_lenght_x = 454.0443420410156
intr.focal_lenght_y = 454.2098693847656
intr.distortion_model = 2
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intr = dds.video_intrinsics();
intr.width = 640
intr.height = 480
intr.principal_point_x = 324.6447448730469
intr.principal_point_y = 241.26548767089844
intr.focal_lenght_x = 605.3924560546875
intr.focal_lenght_y = 605.6131591796875
intr.distortion_model = 2
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intr = dds.video_intrinsics();
intr.width = 848
intr.height = 480
intr.principal_point_x = 428.64471435546875
intr.principal_point_y = 241.26548767089844
intr.focal_lenght_x = 605.3924560546875
intr.focal_lenght_y = 605.6131591796875
intr.distortion_model = 2
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intr = dds.video_intrinsics();
intr.width = 960
intr.height = 540
intr.principal_point_x = 485.2253112792969
intr.principal_point_y = 271.4236755371094
intr.focal_lenght_x = 681.0665283203125
intr.focal_lenght_y = 681.3148193359375
intr.distortion_model = 2
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intr = dds.video_intrinsics();
intr.width = 1280
intr.height = 720
intr.principal_point_x = 646.9671020507813
intr.principal_point_y = 361.8982238769531
intr.focal_lenght_x = 908.0886840820313
intr.focal_lenght_y = 908.4197387695313
intr.distortion_model = 2
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intr = dds.video_intrinsics();
intr.width = 1920
intr.height = 1080
intr.principal_point_x = 970.4506225585938
intr.principal_point_y = 542.8473510742188
intr.focal_lenght_x = 1362.133056640625
intr.focal_lenght_y = 1362.629638671875
intr.distortion_model = 2
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
return set( intrinsics )
def depth_ir_common_intrinsics():
intrinsics = []
intr = dds.video_intrinsics();
intr.width = 424
intr.height = 240
intr.principal_point_x = 212.0788116455078
intr.principal_point_y = 119.07991790771484
intr.focal_lenght_x = 209.13233947753906
intr.focal_lenght_y = 209.13233947753906
intr.distortion_model = 4
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intr = dds.video_intrinsics();
intr.width = 480
intr.height = 270
intr.principal_point_x = 240.08921813964844
intr.principal_point_y = 134.00367736816406
intr.focal_lenght_x = 236.7535858154297
intr.focal_lenght_y = 236.7535858154297
intr.distortion_model = 4
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intr = dds.video_intrinsics();
intr.width = 640
intr.height = 360
intr.principal_point_x = 320.11895751953125
intr.principal_point_y = 178.67156982421875
intr.focal_lenght_x = 315.67144775390625
intr.focal_lenght_y = 315.67144775390625
intr.distortion_model = 4
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intr = dds.video_intrinsics();
intr.width = 640
intr.height = 480
intr.principal_point_x = 320.14276123046875
intr.principal_point_y = 238.4058837890625
intr.focal_lenght_x = 378.80572509765625
intr.focal_lenght_y = 378.80572509765625
intr.distortion_model = 4
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intr = dds.video_intrinsics();
intr.width = 848
intr.height = 100
intr.principal_point_x = 424.1576232910156
intr.principal_point_y = 48.239837646484375
intr.focal_lenght_x = 418.2646789550781
intr.focal_lenght_y = 418.2646789550781
intr.distortion_model = 4
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intr = dds.video_intrinsics();
intr.width = 848
intr.height = 480
intr.principal_point_x = 424.1576232910156
intr.principal_point_y = 238.23983764648438
intr.focal_lenght_x = 418.2646789550781
intr.focal_lenght_y = 418.2646789550781
intr.distortion_model = 4
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intr = dds.video_intrinsics();
intr.width = 1280
intr.height = 720
intr.principal_point_x = 640.2379150390625
intr.principal_point_y = 357.3431396484375
intr.focal_lenght_x = 631.3428955078125
intr.focal_lenght_y = 631.3428955078125
intr.distortion_model = 4
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
return intrinsics
def depth_stream_intrinsics():
intrinsics = []
intr = dds.video_intrinsics();
intr.width = 256
intr.height = 144
intr.principal_point_x = 128.2379150390625
intr.principal_point_y = 69.3431396484375
intr.focal_lenght_x = 631.3428955078125
intr.focal_lenght_y = 631.3428955078125
intr.distortion_model = 4
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
intrinsics.extend( depth_ir_common_intrinsics() )
return set( intrinsics )
def ir_stream_intrinsics():
intrinsics = depth_ir_common_intrinsics()
intr = dds.video_intrinsics();
intr.width = 1280
intr.height = 800
intr.principal_point_x = 640.2379150390625
intr.principal_point_y = 397.3431396484375
intr.focal_lenght_x = 631.3428955078125
intr.focal_lenght_y = 631.3428955078125
intr.distortion_model = 4
intr.distortion_coeffs = [0.0,0.0,0.0,0.0,0.0]
intrinsics.append( intr )
return set( intrinsics )
def get_extrinsics():
extrinsics = {}
extr = dds.extrinsics();
extr.rotation = (0.9999951720237732,0.00040659401565790176,0.0030847808811813593,-0.0004076171899214387,0.9999998807907104,0.0003310548490844667,-0.00308464583940804,-0.0003323106502648443,0.9999951720237732)
extr.translation = (-0.015078110620379448,-1.0675736120902002e-05,-0.00021772991749458015)
extrinsics[("Color","Depth")] = extr
extr = dds.extrinsics();
extr.rotation = (0.9999951720237732,0.00040659401565790176,0.0030847808811813593,-0.0004076171899214387,0.9999998807907104,0.0003310548490844667,-0.00308464583940804,-0.0003323106502648443,0.9999951720237732)
extr.translation = (-0.02059810981154442,0.0050893244333565235,0.011522269807755947)
extrinsics[("Color","Motion")] = extr
extr = dds.extrinsics();
extr.rotation = (0.9999951720237732,0.00040659401565790176,0.0030847808811813593,-0.0004076171899214387,0.9999998807907104,0.0003310548490844667,-0.00308464583940804,-0.0003323106502648443,0.9999951720237732)
extr.translation = (-0.015078110620379448,-1.0675736120902002e-05,-0.00021772991749458015)
extrinsics[("Color","Infrared_1")] = extr
extr = dds.extrinsics();
extr.rotation = (0.9999951720237732,0.00040659401565790176,0.0030847808811813593,-0.0004076171899214387,0.9999998807907104,0.0003310548490844667,-0.00308464583940804,-0.0003323106502648443,0.9999951720237732)
extr.translation = (-0.06494206935167313,-1.0675736120902002e-05,-0.00021772991749458015)
extrinsics[("Color","Infrared_2")] = extr
extr = dds.extrinsics();
extr.rotation = (0.9999951720237732,-0.0004076171899214387,-0.00308464583940804,0.00040659401565790176,0.9999998807907104,-0.0003323106502648443,0.0030847808811813593,0.0003310548490844667,0.9999951720237732)
extr.translation = (0.015078714117407799,4.601718956109835e-06,0.00017121469136327505)
extrinsics[("Depth","Color")] = extr
extr = dds.extrinsics();
extr.rotation = (1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0)
extr.translation = (-0.005520000122487545,0.005100000184029341,0.011739999987185001)
extrinsics[("Depth","Motion")] = extr
extr = dds.extrinsics();
extr.rotation = (1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0)
extr.translation = (0.0,0.0,0.0)
extrinsics[("Depth","Infrared_1")] = extr
extr = dds.extrinsics();
extr.rotation = (1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0)
extr.translation = (-0.04986396059393883,0.0,0.0)
extrinsics[("Depth","Infrared_2")] = extr
extr = dds.extrinsics();
extr.rotation = (0.9999951720237732,-0.0004076171899214387,-0.00308464583940804,0.00040659401565790176,0.9999998807907104,-0.0003323106502648443,0.0030847808811813593,0.0003310548490844667,0.9999951720237732)
extr.translation = (0.02056039869785309,-0.00510153453797102,-0.011584061197936535)
extrinsics[("Motion","Color")] = extr
extr = dds.extrinsics();
extr.rotation = (1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0)
extr.translation = (0.005520000122487545,-0.005100000184029341,-0.011739999987185001)
extrinsics[("Motion","Depth")] = extr
extr = dds.extrinsics();
extr.rotation = (1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0)
extr.translation = (0.005520000122487545,-0.005100000184029341,-0.011739999987185001)
extrinsics[("Motion","Infrared_1")] = extr
extr = dds.extrinsics();
extr.rotation = (1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0)
extr.translation = (-0.04434395954012871,-0.005100000184029341,-0.011739999987185001)
extrinsics[("Motion","Infrared_2")] = extr
extr = dds.extrinsics();
extr.rotation = (0.9999951720237732,-0.0004076171899214387,-0.00308464583940804,0.00040659401565790176,0.9999998807907104,-0.0003323106502648443,0.0030847808811813593,0.0003310548490844667,0.9999951720237732)
extr.translation = (0.015078714117407799,4.601718956109835e-06,0.00017121469136327505)
extrinsics[("Infrared_1","Color")] = extr
extr = dds.extrinsics();
extr.rotation = (1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0)
extr.translation = (0.0,0.0,0.0)
extrinsics[("Infrared_1","Depth")] = extr
extr = dds.extrinsics();
extr.rotation = (1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0)
extr.translation = (-0.005520000122487545,0.005100000184029341,0.011739999987185001)
extrinsics[("Infrared_1","Motion")] = extr
extr = dds.extrinsics();
extr.rotation = (1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0)
extr.translation = (-0.04986396059393883,0.0,0.0)
extrinsics[("Infrared_1","Infrared_2")] = extr
extr = dds.extrinsics();
extr.rotation = (0.9999951720237732,-0.0004076171899214387,-0.00308464583940804,0.00040659401565790176,0.9999998807907104,-0.0003323106502648443,0.0030847808811813593,0.0003310548490844667,0.9999951720237732)
extr.translation = (0.06494243443012238,-1.5723688193247654e-05,1.7402038793079555e-05)
extrinsics[("Infrared_2","Color")] = extr
extr = dds.extrinsics();
extr.rotation = (1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0)
extr.translation = (0.04986396059393883,0.0,0.0)
extrinsics[("Infrared_2","Depth")] = extr
extr = dds.extrinsics();
extr.rotation = (1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0)
extr.translation = (0.04434395954012871,0.005100000184029341,0.011739999987185001)
extrinsics[("Infrared_2","Motion")] = extr
extr = dds.extrinsics();
extr.rotation = (1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0)
extr.translation = (0.04986396059393883,0.0,0.0)
extrinsics[("Infrared_2","Infrared_1")] = extr
return extrinsics