Items with no label
3335 Discussions

Hardware trigger for depth images

idata
Employee
1,891 Views

Hello, does anyone know if the realsense cameras have any external hardware triggering capabilities for depth frame capture? We are trying to sync depth data measurements with other data sensors running on a different device/clock, and we need really high (sub-millisecond) precision alignment between the two data sources. We could try triggering from software, but the OS would add some delay, and we would lose sub-millisecond precision. Alternatively if there was some sync pulse that the board can output whenever a frame is taken, we can use that for data alignment as well. The datasheet for the ZR300 indicates there is some Trigger (from Depth Camera) for the fish-eye camera, but I'm not sure what the "from depth camera" means. Would someone be able to clarify whether we can use this trigger for depth frame collection as well as the fish-eye?

Thanks!

0 Kudos
7 Replies
MartyG
Honored Contributor III
362 Views

The topic of how best to trigger streams in the shortest possible time, and the wish for a hardware trigger solution, was discussed in depth last month and may be useful to you.

The discussion mentions how AikenControls used physical external shutters but found them ugly and expensive.

0 Kudos
idata
Employee
362 Views

Hi Marty, thanks for the link. It seems like the issue there was laser interference between multiple cameras so hardware triggering of the IR projector would have solved that issue, but yeah, they did mention it would be nice to have hardware trigger of sensors too. I guess I should take this to mean that there currently is no way to externally trigger the cameras outside of the SDK to take frames (although the discussion was for the SR300, and the triggering capabilities of the ZR300 wasn't really discussed). I'm still curious about the "G0" and "G1" trigger under the Motion Control Unit Functions section and the "Trigger (from Depth Camera)" under the Fisheye Camera Functions section in the ZR300 datasheet. Any insight on what those might be?

0 Kudos
MartyG
Honored Contributor III
362 Views

An Intel member with specialist ZR300 knowledge would be better able to answer your question, so I have linked.amitmoran to this discussion for his input.

0 Kudos
MartyG
Honored Contributor III
362 Views

I just wanted to update you that the new RealSense SDK 2.0 has a tool with a function for adding an auto-disable to an RGB control.

0 Kudos
idata
Employee
362 Views

Hi MartyG, what do you mean by auto-disable, do you mean for the laser projector?

0 Kudos
MartyG
Honored Contributor III
362 Views

There isn't any more explanation yet, other than some possible hints on the comments of line 50 to 53 of this script.

https://github.com/IntelRealSense/librealsense/commit/dd8d3d04fea6c9c20bb14b3dfa274a4c8772d8c0 Add auto_disabling_control to RGB controls. Tracked On: DSO-6892 · IntelRealSense/librealsense@dd8d3d0 · GitHub

-* stop raising events when the devices connected to the computer change.-* additionally, block the calling thread until all in-flight callbacks return.-* \param context Object representing librealsense session-* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored
0 Kudos
idata
Employee
362 Views

Hi xingy,

 

 

I was looking at this thread, I would like to add the ZR300 dev kit does not have a trigger signal that can be accessed externally. The signals are all accessible through software.

 

 

Additionally, this page, https://software.intel.com/sites/products/realsense/camera/namespacers.html https://software.intel.com/sites/products/realsense/camera/namespacers.html, describes fisheye_external_trigger as "Enable/disable fisheye external trigger mode. When enabled, fisheye image will be acquired in-sync with the depth image." The G0 and G1 signals are used for gyro synchronization. This page, https://software.intel.com/sites/products/realsense/camera/developer_guide.html https://software.intel.com/sites/products/realsense/camera/developer_guide.html, under ZR300 Asynchronous APIs mentions the GPIOs. The cpp-motion-module.cpp file, https://github.com/IntelRealSense/librealsense/blob/master/examples/cpp-motion-module.cpp https://github.com/IntelRealSense/librealsense/blob/master/examples/cpp-motion-module.cpp, shows how to use it.

 

 

Hope you find this information useful.

 

 

Regards,

 

-Yermi A.

 

0 Kudos
Reply