Items with no label
3338 Discussions

D435 : Multi-sensor image acquisition

MAbdo2
New Contributor I
2,346 Views

My existing (fully-functional and working happily) application uses one (1) D435 sensor. There is a new requirement to extend the field-of-view. This calls for additional D435 sensors. So, I would like to enhance my application to use two (2) D435 sensors.

 

I have already reviewed the article in https://www.intel.com/content/www/us/en/support/articles/000028140/emerging-technologies/intel-realsense-technology.html , and my setup uses a "Master" and "Slave" configuration whereby the hardware synchronization is achieved by using an appropriate sync-cable between the two D435 sensors.

 

The following questions have come to light:

 

1) It is my understanding that the "Slave" sensor will capture an image ONLY when the "Master" sensor issues the trigger (sync) signal. So, a call to capture an image from the "Slave" sensor will block until a call to capture an image from the "Master" sensor is issued. Is my understanding correct?

 

2) Is there any snippet of code to illustrate how to use the "rs2_set_option" to setup each D435 sensor to act as Slave or Master?

 

Thanks,

 

MoA 

0 Kudos
1 Solution
MartyG
Honored Contributor III
1,080 Views

Hi MAbdo2,

 

In answer to your questions:

 

1. A slave camera can be capturing even when a hardware sync signal is not present. The slave listens for a sync trigger and if it does not detect one within a certain time period, it gives up listening and triggers itself, doing a non-synced capture.

 

2. I believe you are on the right track with set_option. A typical way of formatting the master / slave setup instruction is:

 

depth_sensor.set_option(RS2_OPTION_INTER_CAM_SYNC_MODE );

 

I have seen users take the approach of designating the master as '1' and the slave as '2', using a logic argument like the one below, where if the camera ID is not '0' (the master camera') then set the camera as a slave.

 

if (dev_id == 0) {

 

depth_sensor.set_option(RS2_OPTION_INTER_CAM_SYNC_MODE, 1);

}

else

{

depth_sensor.set_option(RS2_OPTION_INTER_CAM_SYNC_MODE, 2);

}

View solution in original post

0 Kudos
1 Reply
MartyG
Honored Contributor III
1,081 Views

Hi MAbdo2,

 

In answer to your questions:

 

1. A slave camera can be capturing even when a hardware sync signal is not present. The slave listens for a sync trigger and if it does not detect one within a certain time period, it gives up listening and triggers itself, doing a non-synced capture.

 

2. I believe you are on the right track with set_option. A typical way of formatting the master / slave setup instruction is:

 

depth_sensor.set_option(RS2_OPTION_INTER_CAM_SYNC_MODE );

 

I have seen users take the approach of designating the master as '1' and the slave as '2', using a logic argument like the one below, where if the camera ID is not '0' (the master camera') then set the camera as a slave.

 

if (dev_id == 0) {

 

depth_sensor.set_option(RS2_OPTION_INTER_CAM_SYNC_MODE, 1);

}

else

{

depth_sensor.set_option(RS2_OPTION_INTER_CAM_SYNC_MODE, 2);

}

0 Kudos
Reply