I’m setting setup camera triggering with a point grey flea3 camera and have been looking at the docs here (which are great btw). The camera is set to auto exposure and depending on the light sometimes the shutter speed goes much longer than the trigger cycle time (e.g. I started out simply triggering at 30Hz or 33.3 ms cycle time and sometimes the shutter speed would be 60-70 ms). The result is that there were missed triggers. I haven’t dug in super deep but assume the autopilot still sent out the CAMERA_TRIGGER msg even though the camera didn’t acknowledge that trigger and am trying to figure out if that will cause things to get out of sync.
I haven’t got it to work yet, but I know the flea3 supports sending out a pulse when it actually begins to take the image. Is it possible to configure the GPIO of the autopilot to look for that pulse and upon detecting it then send out the CAMERA_TRIGGER message? I assume that functionality doesn’t currently exist but wonder if it’s possible without too much work (which I would be happy to help out with). Or is there a better way to make sure things robustly stay in sync?
Also, I’m a little curious-- on the docs page I reference above the comment
To be clear, the idea here isn’t to take an IMU measurement exactly at the same time as we take a picture but rather to correctly time stamp our images so as to provide accurate data to our VIO algorithm
Why is that case? Why is it preferable to just correctly timestamp the images instead of taking a snapshot of the IMU right as you take the picture? A naive guess would be that it has something to do with taking the picture is not an instantaneous event but is an event with a non-zero duration and doing it this way allows the user to decide what to do.