Prosilica Hardware Synchronization [closed]
Goal: I am trying to create a stereo set up with two Prosilica GC750C cameras. I would like to collect the stereo data and store it into a bag file to post process later. I am limited by the quality of cabling and processing power. I am running an Intel Atom processor and have underwater cabling.
Problem: My problem is that I cannot get synchronized image capture. I have my cameras hardwired so that the syncin2 of one camera is connected to the syncout2 of the other camera 1. I have tried various configurations in ROS and I feel that the most promising is to run one camera in the "streaming" mode and have the other in "syncin2" and receive triggers from the streaming camera.
Using the Sample Viewer I currently have the "syncout" set to strobe1 which is set up to reflect when the camera is exposing(I have read that the FrameTrigger pulse is too short to trigger the camera and have had no luck getting the FrameTrigger to work with the strobe feature). The Strobe is used to limit the pulse length of the exposing trigger. While I have played around with the settings of SyncOut I am not sure that "exposing" is what I am looking for.
Under this setup I frequently get a scenario where the "streaming" camera logs frames twice as fast as the synced camera. I believe that this is because the "synced" camera is still capturing when the "streaming" camera sends its next trigger. Significantly reducing the max exposure time of the synced camera eliminates this problem, yet I feel that this is a poor hack to this problem. Also, using rxbag I can see that the frames coming from the "synced" camera are logged a little bit later. I am not sure if this is a result of triggering the camera with "exposing" and not "FrameTrigger" or a result of how the frames are time stamped, as described in ticket 4636
I feel that the best thing for me to do would be to try to have the streaming camera set to a fixed rate. That way I could insure an adequate amount of time between the triggers of the "syncin2" triggered camera so that camera can finish exposing before the next trigger is received. I understand that the ROS drivers do not have this functionality yet but that it is something that prosilica API does. Has anyone played with this?
Has anyone achieved hardware synchronization with prosilica cameras? Is your setup(hardware/software) similar to what I described or am I on the wrong track? Any suggestions on what I should try?
Thanks!